@redneckz/wildless-cms-uni-blocks 0.3.28 → 0.3.29
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 +119 -83
- package/bundle/bundle.umd.min.js +1 -1
- package/dist/components/Accordion/Accordion.js +2 -2
- package/dist/components/Accordion/Accordion.js.map +1 -1
- package/dist/components/BaseTile/BaseTile.js +2 -2
- package/dist/components/BaseTile/BaseTile.js.map +1 -1
- package/dist/components/BenefitsBlock/BenefitsBlock.js +2 -2
- package/dist/components/BenefitsBlock/BenefitsBlock.js.map +1 -1
- package/dist/components/BlockContent.d.ts +3 -2
- package/dist/components/Blocks.d.ts +1 -0
- package/dist/components/Blocks.js +2 -0
- package/dist/components/Blocks.js.map +1 -1
- package/dist/components/ComparisonTable/ComparisonTable.js +3 -3
- package/dist/components/ComparisonTable/ComparisonTable.js.map +1 -1
- package/dist/components/ContentPage/ContentPage.js +3 -3
- package/dist/components/ContentPage/ContentPage.js.map +1 -1
- package/dist/components/ContentPage/ContentPageContext.d.ts +2 -1
- package/dist/components/ContentPage/normalizeBlock.d.ts +1 -0
- package/dist/components/CreditCalculator/CreditCalculator.js +2 -2
- package/dist/components/CreditCalculator/CreditCalculator.js.map +1 -1
- package/dist/components/ExchangeRateTile/CurrencyTable.js +2 -2
- package/dist/components/ExchangeRateTile/CurrencyTable.js.map +1 -1
- package/dist/components/ExchangeRateTile/CurrentLocation.js +1 -1
- package/dist/components/ExchangeRateTile/CurrentLocation.js.map +1 -1
- package/dist/components/ExchangeRateTile/ExchangeCurrencyCalculator.js +2 -2
- package/dist/components/ExchangeRateTile/ExchangeCurrencyCalculator.js.map +1 -1
- package/dist/components/ExchangeRateTile/ExchangeRateTile.js +2 -2
- package/dist/components/ExchangeRateTile/ExchangeRateTile.js.map +1 -1
- package/dist/components/Footer/Footer.js +2 -2
- package/dist/components/Footer/Footer.js.map +1 -1
- package/dist/components/Gallery/GalleryInner.js +2 -2
- package/dist/components/Gallery/GalleryInner.js.map +1 -1
- package/dist/components/Header/Header.js +2 -2
- package/dist/components/Header/Header.js.map +1 -1
- package/dist/components/Headline/Headline.js +2 -2
- package/dist/components/Headline/Headline.js.map +1 -1
- package/dist/components/LikeControl/LikeControl.js +2 -2
- package/dist/components/LikeControl/LikeControl.js.map +1 -1
- package/dist/components/LinkDocs/LinkDocs.js +2 -2
- package/dist/components/LinkDocs/LinkDocs.js.map +1 -1
- package/dist/components/LinkList/LinkList.js +2 -2
- package/dist/components/LinkList/LinkList.js.map +1 -1
- package/dist/components/MobileAppTile/MobileAppTile.js +2 -2
- package/dist/components/MobileAppTile/MobileAppTile.js.map +1 -1
- package/dist/components/Navigation/Navigation.js +2 -2
- package/dist/components/Navigation/Navigation.js.map +1 -1
- package/dist/components/NavigatorTabs/NavigatorTabItem.d.ts +7 -0
- package/dist/components/NavigatorTabs/NavigatorTabItem.js +16 -0
- package/dist/components/NavigatorTabs/NavigatorTabItem.js.map +1 -0
- package/dist/components/NavigatorTabs/NavigatorTabs.d.ts +5 -0
- package/dist/components/NavigatorTabs/NavigatorTabs.js +17 -0
- package/dist/components/NavigatorTabs/NavigatorTabs.js.map +1 -0
- package/dist/components/NavigatorTabs/NavigatorTabsContent.d.ts +19 -0
- package/dist/components/NavigatorTabs/NavigatorTabsContent.js +2 -0
- package/dist/components/NavigatorTabs/NavigatorTabsContent.js.map +1 -0
- package/dist/components/PictureText/PictureText.js +2 -2
- package/dist/components/PictureText/PictureText.js.map +1 -1
- package/dist/components/Placeholder/Placeholder.js +2 -2
- package/dist/components/Placeholder/Placeholder.js.map +1 -1
- package/dist/components/ProductBlock/ProductBlock.js +2 -2
- package/dist/components/ProductBlock/ProductBlock.js.map +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 +1 -1
- package/dist/components/ProductBlock/ProductBlockInner.mobile.js.map +1 -1
- package/dist/components/ProductGallery/ProductGallery.js +2 -2
- package/dist/components/ProductGallery/ProductGallery.js.map +1 -1
- package/dist/components/ProductGalleryGreen/ProductGalleryGreen.js +10 -6
- package/dist/components/ProductGalleryGreen/ProductGalleryGreen.js.map +1 -1
- package/dist/components/ProductTile/ProductTile.js +2 -2
- package/dist/components/ProductTile/ProductTile.js.map +1 -1
- package/dist/components/PromoTile/PromoTile.js +2 -2
- package/dist/components/PromoTile/PromoTile.js.map +1 -1
- package/dist/components/Recommendation/Recommendation.js +2 -2
- package/dist/components/Recommendation/Recommendation.js.map +1 -1
- package/dist/components/StepsBlock/StepsBlock.js +2 -2
- package/dist/components/StepsBlock/StepsBlock.js.map +1 -1
- package/dist/components/TariffsTable/TariffsTable.js +2 -2
- package/dist/components/TariffsTable/TariffsTable.js.map +1 -1
- package/dist/components/TextBlock/TextBlock.js +2 -2
- package/dist/components/TextBlock/TextBlock.js.map +1 -1
- package/dist/components/Tile/Tile.js +2 -2
- package/dist/components/Tile/Tile.js.map +1 -1
- package/dist/setup-fixture.js +22 -6
- package/dist/setup-fixture.js.map +1 -1
- package/dist/types.d.ts +2 -0
- package/dist/utils/url.d.ts +1 -0
- package/dist/utils/url.js +9 -1
- package/dist/utils/url.js.map +1 -1
- package/lib/common.css +1 -1
- package/lib/components/Accordion/Accordion.js +2 -2
- package/lib/components/Accordion/Accordion.js.map +1 -1
- package/lib/components/BaseTile/BaseTile.js +2 -2
- package/lib/components/BaseTile/BaseTile.js.map +1 -1
- package/lib/components/BenefitsBlock/BenefitsBlock.js +2 -2
- package/lib/components/BenefitsBlock/BenefitsBlock.js.map +1 -1
- package/lib/components/BlockContent.d.ts +3 -2
- package/lib/components/Blocks.d.ts +1 -0
- package/lib/components/Blocks.js +2 -0
- package/lib/components/Blocks.js.map +1 -1
- package/lib/components/ComparisonTable/ComparisonTable.js +3 -3
- package/lib/components/ComparisonTable/ComparisonTable.js.map +1 -1
- package/lib/components/ContentPage/ContentPage.js +3 -3
- package/lib/components/ContentPage/ContentPage.js.map +1 -1
- package/lib/components/ContentPage/ContentPageContext.d.ts +2 -1
- package/lib/components/ContentPage/normalizeBlock.d.ts +1 -0
- package/lib/components/CreditCalculator/CreditCalculator.js +2 -2
- package/lib/components/CreditCalculator/CreditCalculator.js.map +1 -1
- package/lib/components/ExchangeRateTile/CurrencyTable.js +2 -2
- package/lib/components/ExchangeRateTile/CurrencyTable.js.map +1 -1
- package/lib/components/ExchangeRateTile/CurrentLocation.js +1 -1
- package/lib/components/ExchangeRateTile/CurrentLocation.js.map +1 -1
- package/lib/components/ExchangeRateTile/ExchangeCurrencyCalculator.js +2 -2
- package/lib/components/ExchangeRateTile/ExchangeCurrencyCalculator.js.map +1 -1
- package/lib/components/ExchangeRateTile/ExchangeRateTile.js +2 -2
- package/lib/components/ExchangeRateTile/ExchangeRateTile.js.map +1 -1
- package/lib/components/Footer/Footer.js +2 -2
- package/lib/components/Footer/Footer.js.map +1 -1
- package/lib/components/Gallery/GalleryInner.js +2 -2
- package/lib/components/Gallery/GalleryInner.js.map +1 -1
- package/lib/components/Header/Header.js +2 -2
- package/lib/components/Header/Header.js.map +1 -1
- package/lib/components/Headline/Headline.js +2 -2
- package/lib/components/Headline/Headline.js.map +1 -1
- package/lib/components/LikeControl/LikeControl.js +2 -2
- package/lib/components/LikeControl/LikeControl.js.map +1 -1
- package/lib/components/LinkDocs/LinkDocs.js +2 -2
- package/lib/components/LinkDocs/LinkDocs.js.map +1 -1
- package/lib/components/LinkList/LinkList.js +2 -2
- package/lib/components/LinkList/LinkList.js.map +1 -1
- package/lib/components/MobileAppTile/MobileAppTile.js +2 -2
- package/lib/components/MobileAppTile/MobileAppTile.js.map +1 -1
- package/lib/components/Navigation/Navigation.js +2 -2
- package/lib/components/Navigation/Navigation.js.map +1 -1
- package/lib/components/NavigatorTabs/NavigatorTabItem.d.ts +7 -0
- package/lib/components/NavigatorTabs/NavigatorTabItem.js +14 -0
- package/lib/components/NavigatorTabs/NavigatorTabItem.js.map +1 -0
- package/lib/components/NavigatorTabs/NavigatorTabs.d.ts +5 -0
- package/lib/components/NavigatorTabs/NavigatorTabs.fixture.d.ts +4 -0
- package/lib/components/NavigatorTabs/NavigatorTabs.js +15 -0
- package/lib/components/NavigatorTabs/NavigatorTabs.js.map +1 -0
- package/lib/components/NavigatorTabs/NavigatorTabsContent.d.ts +19 -0
- package/lib/components/NavigatorTabs/NavigatorTabsContent.js +2 -0
- package/lib/components/NavigatorTabs/NavigatorTabsContent.js.map +1 -0
- package/lib/components/PictureText/PictureText.js +2 -2
- package/lib/components/PictureText/PictureText.js.map +1 -1
- package/lib/components/Placeholder/Placeholder.js +2 -2
- package/lib/components/Placeholder/Placeholder.js.map +1 -1
- package/lib/components/ProductBlock/ProductBlock.js +2 -2
- package/lib/components/ProductBlock/ProductBlock.js.map +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 +1 -1
- package/lib/components/ProductBlock/ProductBlockInner.mobile.js.map +1 -1
- package/lib/components/ProductGallery/ProductGallery.js +2 -2
- package/lib/components/ProductGallery/ProductGallery.js.map +1 -1
- package/lib/components/ProductGalleryGreen/ProductGalleryGreen.js +10 -6
- package/lib/components/ProductGalleryGreen/ProductGalleryGreen.js.map +1 -1
- package/lib/components/ProductTile/ProductTile.js +2 -2
- package/lib/components/ProductTile/ProductTile.js.map +1 -1
- package/lib/components/PromoTile/PromoTile.js +2 -2
- package/lib/components/PromoTile/PromoTile.js.map +1 -1
- package/lib/components/Recommendation/Recommendation.js +2 -2
- package/lib/components/Recommendation/Recommendation.js.map +1 -1
- package/lib/components/StepsBlock/StepsBlock.js +2 -2
- package/lib/components/StepsBlock/StepsBlock.js.map +1 -1
- package/lib/components/TariffsTable/TariffsTable.js +2 -2
- package/lib/components/TariffsTable/TariffsTable.js.map +1 -1
- package/lib/components/TextBlock/TextBlock.js +2 -2
- package/lib/components/TextBlock/TextBlock.js.map +1 -1
- package/lib/components/Tile/Tile.js +2 -2
- package/lib/components/Tile/Tile.js.map +1 -1
- package/lib/setup-fixture.js +22 -6
- package/lib/setup-fixture.js.map +1 -1
- package/lib/types.d.ts +2 -0
- package/lib/utils/url.d.ts +1 -0
- package/lib/utils/url.js +7 -0
- package/lib/utils/url.js.map +1 -1
- package/mobile/bundle/bundle.umd.js +36 -28
- package/mobile/bundle/bundle.umd.min.js +1 -1
- package/mobile/dist/components/BaseTile/BaseTile.js +2 -2
- package/mobile/dist/components/BaseTile/BaseTile.js.map +1 -1
- package/mobile/dist/components/BenefitsBlock/BenefitsBlock.js +2 -2
- package/mobile/dist/components/BenefitsBlock/BenefitsBlock.js.map +1 -1
- package/mobile/dist/components/BlockContent.d.ts +3 -2
- package/mobile/dist/components/ContentPage/ContentPage.js +3 -3
- package/mobile/dist/components/ContentPage/ContentPage.js.map +1 -1
- package/mobile/dist/components/ContentPage/ContentPageContext.d.ts +2 -1
- package/mobile/dist/components/CreditCalculator/CreditCalculator.js +2 -2
- package/mobile/dist/components/CreditCalculator/CreditCalculator.js.map +1 -1
- package/mobile/dist/components/ExchangeRateTile/CurrencyTable.js +2 -2
- package/mobile/dist/components/ExchangeRateTile/CurrencyTable.js.map +1 -1
- package/mobile/dist/components/ExchangeRateTile/CurrentLocation.js +1 -1
- package/mobile/dist/components/ExchangeRateTile/CurrentLocation.js.map +1 -1
- package/mobile/dist/components/ExchangeRateTile/ExchangeCurrencyCalculator.js +2 -2
- package/mobile/dist/components/ExchangeRateTile/ExchangeCurrencyCalculator.js.map +1 -1
- package/mobile/dist/components/ExchangeRateTile/ExchangeRateTile.js +2 -2
- package/mobile/dist/components/ExchangeRateTile/ExchangeRateTile.js.map +1 -1
- package/mobile/dist/components/Gallery/GalleryInner.js +2 -2
- package/mobile/dist/components/Gallery/GalleryInner.js.map +1 -1
- package/mobile/dist/components/LikeControl/LikeControl.js +2 -2
- package/mobile/dist/components/LikeControl/LikeControl.js.map +1 -1
- package/mobile/dist/components/LinkList/LinkList.js +2 -2
- package/mobile/dist/components/LinkList/LinkList.js.map +1 -1
- package/mobile/dist/components/Navigation/Navigation.js +2 -2
- package/mobile/dist/components/Navigation/Navigation.js.map +1 -1
- package/mobile/dist/components/NavigatorTabs/NavigatorTabItem.d.ts +7 -0
- package/mobile/dist/components/NavigatorTabs/NavigatorTabItem.js +16 -0
- package/mobile/dist/components/NavigatorTabs/NavigatorTabItem.js.map +1 -0
- package/mobile/dist/components/NavigatorTabs/NavigatorTabs.d.ts +5 -0
- package/mobile/dist/components/NavigatorTabs/NavigatorTabs.js +17 -0
- package/mobile/dist/components/NavigatorTabs/NavigatorTabs.js.map +1 -0
- package/mobile/dist/components/NavigatorTabs/NavigatorTabsContent.d.ts +19 -0
- package/mobile/dist/components/NavigatorTabs/NavigatorTabsContent.js +2 -0
- package/mobile/dist/components/NavigatorTabs/NavigatorTabsContent.js.map +1 -0
- package/mobile/dist/components/PictureText/PictureText.js +2 -2
- package/mobile/dist/components/PictureText/PictureText.js.map +1 -1
- package/mobile/dist/components/Placeholder/Placeholder.js +2 -2
- package/mobile/dist/components/Placeholder/Placeholder.js.map +1 -1
- package/mobile/dist/components/ProductBlock/ProductBlockInner.js +1 -1
- package/mobile/dist/components/ProductBlock/ProductBlockInner.js.map +1 -1
- package/mobile/dist/components/ProductGalleryGreen/ProductGalleryGreen.js +10 -6
- package/mobile/dist/components/ProductGalleryGreen/ProductGalleryGreen.js.map +1 -1
- package/mobile/dist/components/ProductTile/ProductTile.js +2 -2
- package/mobile/dist/components/ProductTile/ProductTile.js.map +1 -1
- package/mobile/dist/components/PromoTile/PromoTile.js +2 -2
- package/mobile/dist/components/PromoTile/PromoTile.js.map +1 -1
- package/mobile/dist/components/Recommendation/Recommendation.js +2 -2
- package/mobile/dist/components/Recommendation/Recommendation.js.map +1 -1
- package/mobile/dist/components/Tile/Tile.js +2 -2
- package/mobile/dist/components/Tile/Tile.js.map +1 -1
- package/mobile/dist/setup-fixture.js +22 -6
- package/mobile/dist/setup-fixture.js.map +1 -1
- package/mobile/dist/types.d.ts +2 -0
- package/mobile/dist/utils/url.d.ts +1 -0
- package/mobile/dist/utils/url.js +9 -1
- package/mobile/dist/utils/url.js.map +1 -1
- package/mobile/lib/components/BaseTile/BaseTile.js +2 -2
- package/mobile/lib/components/BaseTile/BaseTile.js.map +1 -1
- package/mobile/lib/components/BenefitsBlock/BenefitsBlock.js +2 -2
- package/mobile/lib/components/BenefitsBlock/BenefitsBlock.js.map +1 -1
- package/mobile/lib/components/BlockContent.d.ts +3 -2
- package/mobile/lib/components/ContentPage/ContentPage.js +3 -3
- package/mobile/lib/components/ContentPage/ContentPage.js.map +1 -1
- package/mobile/lib/components/ContentPage/ContentPageContext.d.ts +2 -1
- package/mobile/lib/components/CreditCalculator/CreditCalculator.js +2 -2
- package/mobile/lib/components/CreditCalculator/CreditCalculator.js.map +1 -1
- package/mobile/lib/components/ExchangeRateTile/CurrencyTable.js +2 -2
- package/mobile/lib/components/ExchangeRateTile/CurrencyTable.js.map +1 -1
- package/mobile/lib/components/ExchangeRateTile/CurrentLocation.js +1 -1
- package/mobile/lib/components/ExchangeRateTile/CurrentLocation.js.map +1 -1
- package/mobile/lib/components/ExchangeRateTile/ExchangeCurrencyCalculator.js +2 -2
- package/mobile/lib/components/ExchangeRateTile/ExchangeCurrencyCalculator.js.map +1 -1
- package/mobile/lib/components/ExchangeRateTile/ExchangeRateTile.js +2 -2
- package/mobile/lib/components/ExchangeRateTile/ExchangeRateTile.js.map +1 -1
- package/mobile/lib/components/Gallery/GalleryInner.js +2 -2
- package/mobile/lib/components/Gallery/GalleryInner.js.map +1 -1
- package/mobile/lib/components/LikeControl/LikeControl.js +2 -2
- package/mobile/lib/components/LikeControl/LikeControl.js.map +1 -1
- package/mobile/lib/components/LinkList/LinkList.js +2 -2
- package/mobile/lib/components/LinkList/LinkList.js.map +1 -1
- package/mobile/lib/components/Navigation/Navigation.js +2 -2
- package/mobile/lib/components/Navigation/Navigation.js.map +1 -1
- package/mobile/lib/components/NavigatorTabs/NavigatorTabItem.d.ts +7 -0
- package/mobile/lib/components/NavigatorTabs/NavigatorTabItem.js +14 -0
- package/mobile/lib/components/NavigatorTabs/NavigatorTabItem.js.map +1 -0
- package/mobile/lib/components/NavigatorTabs/NavigatorTabs.d.ts +5 -0
- package/mobile/lib/components/NavigatorTabs/NavigatorTabs.js +15 -0
- package/mobile/lib/components/NavigatorTabs/NavigatorTabs.js.map +1 -0
- package/mobile/lib/components/NavigatorTabs/NavigatorTabsContent.d.ts +19 -0
- package/mobile/lib/components/NavigatorTabs/NavigatorTabsContent.js +2 -0
- package/mobile/lib/components/NavigatorTabs/NavigatorTabsContent.js.map +1 -0
- package/mobile/lib/components/PictureText/PictureText.js +2 -2
- package/mobile/lib/components/PictureText/PictureText.js.map +1 -1
- package/mobile/lib/components/Placeholder/Placeholder.js +2 -2
- package/mobile/lib/components/Placeholder/Placeholder.js.map +1 -1
- package/mobile/lib/components/ProductBlock/ProductBlockInner.js +1 -1
- package/mobile/lib/components/ProductBlock/ProductBlockInner.js.map +1 -1
- package/mobile/lib/components/ProductGalleryGreen/ProductGalleryGreen.js +10 -6
- package/mobile/lib/components/ProductGalleryGreen/ProductGalleryGreen.js.map +1 -1
- package/mobile/lib/components/ProductTile/ProductTile.js +2 -2
- package/mobile/lib/components/ProductTile/ProductTile.js.map +1 -1
- package/mobile/lib/components/PromoTile/PromoTile.js +2 -2
- package/mobile/lib/components/PromoTile/PromoTile.js.map +1 -1
- package/mobile/lib/components/Recommendation/Recommendation.js +2 -2
- package/mobile/lib/components/Recommendation/Recommendation.js.map +1 -1
- package/mobile/lib/components/Tile/Tile.js +2 -2
- package/mobile/lib/components/Tile/Tile.js.map +1 -1
- package/mobile/lib/setup-fixture.js +22 -6
- package/mobile/lib/setup-fixture.js.map +1 -1
- package/mobile/lib/types.d.ts +2 -0
- package/mobile/lib/utils/url.d.ts +1 -0
- package/mobile/lib/utils/url.js +7 -0
- package/mobile/lib/utils/url.js.map +1 -1
- package/mobile/src/common.css +4 -0
- package/mobile/src/components/BaseTile/BaseTile.tsx +2 -2
- package/mobile/src/components/BenefitsBlock/BenefitsBlock.tsx +19 -16
- package/mobile/src/components/BlockContent.ts +3 -1
- package/mobile/src/components/ContentPage/ContentPage.page.json +30 -0
- package/mobile/src/components/ContentPage/ContentPage.tsx +3 -3
- package/mobile/src/components/ContentPage/ContentPageContext.tsx +2 -1
- package/mobile/src/components/CreditCalculator/CreditCalculator.tsx +2 -2
- package/mobile/src/components/ExchangeRateTile/CurrencyTable.tsx +9 -5
- package/mobile/src/components/ExchangeRateTile/CurrentLocation.tsx +2 -2
- package/mobile/src/components/ExchangeRateTile/ExchangeCurrencyCalculator.tsx +4 -4
- package/mobile/src/components/ExchangeRateTile/ExchangeRateTile.tsx +11 -5
- package/mobile/src/components/Gallery/GalleryInner.tsx +2 -1
- package/mobile/src/components/LikeControl/LikeControl.tsx +3 -2
- package/mobile/src/components/LinkList/LinkList.tsx +2 -2
- package/mobile/src/components/Navigation/Navigation.tsx +31 -28
- package/mobile/src/components/NavigatorTabs/NavigatorTabItem.tsx +29 -0
- package/mobile/src/components/NavigatorTabs/NavigatorTabs.example.json +7 -0
- package/mobile/src/components/NavigatorTabs/NavigatorTabs.tsx +36 -0
- package/mobile/src/components/NavigatorTabs/NavigatorTabsContent.ts +20 -0
- package/mobile/src/components/PictureText/PictureText.tsx +18 -13
- package/mobile/src/components/Placeholder/Placeholder.tsx +2 -1
- package/mobile/src/components/ProductBlock/ProductBlockInner.tsx +3 -1
- package/mobile/src/components/ProductGalleryGreen/ProductGalleryGreen.tsx +11 -6
- package/mobile/src/components/ProductTile/ProductTile.tsx +2 -0
- package/mobile/src/components/PromoTile/PromoTile.tsx +2 -0
- package/mobile/src/components/Recommendation/Recommendation.tsx +2 -1
- package/mobile/src/components/Tile/Tile.tsx +2 -0
- package/mobile/src/services/sitemap/isTopItemActive.spec.ts +1 -0
- package/mobile/src/setup-fixture.ts +23 -8
- package/mobile/src/types.ts +2 -0
- package/mobile/src/utils/url.ts +9 -0
- package/package.json +1 -1
- package/src/common.css +4 -0
- package/src/components/Accordion/Accordion.tsx +5 -2
- package/src/components/BaseTile/BaseTile.tsx +2 -2
- package/src/components/BenefitsBlock/BenefitsBlock.tsx +19 -16
- package/src/components/BlockContent.ts +3 -1
- package/src/components/Blocks.ts +2 -0
- package/src/components/ComparisonTable/ComparisonTable.tsx +4 -2
- package/src/components/ContentPage/ContentPage.page.json +30 -0
- package/src/components/ContentPage/ContentPage.tsx +3 -3
- package/src/components/ContentPage/ContentPageContext.tsx +2 -1
- package/src/components/CreditCalculator/CreditCalculator.tsx +2 -2
- package/src/components/ExchangeRateTile/CurrencyTable.tsx +9 -5
- package/src/components/ExchangeRateTile/CurrentLocation.tsx +2 -2
- package/src/components/ExchangeRateTile/ExchangeCurrencyCalculator.tsx +4 -4
- package/src/components/ExchangeRateTile/ExchangeRateTile.fixture.tsx +1 -1
- package/src/components/ExchangeRateTile/ExchangeRateTile.tsx +11 -5
- package/src/components/Footer/Footer.tsx +11 -2
- package/src/components/Gallery/GalleryInner.tsx +2 -1
- package/src/components/Header/Header.tsx +2 -2
- package/src/components/Headline/Headline.tsx +9 -2
- package/src/components/LikeControl/LikeControl.tsx +3 -2
- package/src/components/LinkDocs/LinkDocs.tsx +2 -1
- package/src/components/LinkList/LinkList.tsx +2 -2
- package/src/components/MobileAppTile/MobileAppTile.tsx +9 -1
- package/src/components/Navigation/Navigation.tsx +31 -28
- package/src/components/NavigatorTabs/NavigatorTabItem.tsx +29 -0
- package/src/components/NavigatorTabs/NavigatorTabs.example.json +7 -0
- package/src/components/NavigatorTabs/NavigatorTabs.fixture.tsx +11 -0
- package/src/components/NavigatorTabs/NavigatorTabs.tsx +36 -0
- package/src/components/NavigatorTabs/NavigatorTabsContent.ts +20 -0
- package/src/components/PictureText/PictureText.tsx +18 -13
- package/src/components/Placeholder/Placeholder.tsx +2 -1
- package/src/components/ProductBlock/ProductBlock.tsx +10 -1
- package/src/components/ProductBlock/ProductBlockInner.mobile.tsx +3 -1
- package/src/components/ProductBlock/ProductBlockInner.tsx +1 -1
- package/src/components/ProductGallery/ProductGallery.tsx +5 -2
- package/src/components/ProductGalleryGreen/ProductGalleryGreen.tsx +11 -6
- package/src/components/ProductTile/ProductTile.tsx +2 -0
- package/src/components/PromoTile/PromoTile.tsx +2 -0
- package/src/components/Recommendation/Recommendation.tsx +2 -1
- package/src/components/StepsBlock/StepsBlock.tsx +25 -22
- package/src/components/TariffsTable/TariffsTable.tsx +2 -1
- package/src/components/TextBlock/TextBlock.tsx +10 -1
- package/src/components/Tile/Tile.tsx +2 -0
- package/src/services/sitemap/isTopItemActive.spec.ts +1 -0
- package/src/setup-fixture.ts +23 -8
- package/src/types.ts +2 -0
- package/src/utils/url.ts +9 -0
|
@@ -3,7 +3,7 @@ import { Icon } from '../../ui-kit/Icon/Icon';
|
|
|
3
3
|
import type { ExchangeCurrencyItem } from './ExchangeRateTileContent';
|
|
4
4
|
import { formatCurrency } from './formatCurrency';
|
|
5
5
|
|
|
6
|
-
const TABLE_HEAD_STYLE = 'text-left font-normal text-sm text-secondary-text';
|
|
6
|
+
const TABLE_HEAD_STYLE = 'font-light text-left font-normal text-sm text-secondary-text';
|
|
7
7
|
|
|
8
8
|
const CURRENCY_ICONS_MAP = {
|
|
9
9
|
USD: 'DollarIcon',
|
|
@@ -33,15 +33,19 @@ export const CurrencyTable = JSX<CurrencyTableProps>(({ className, exchangeCurre
|
|
|
33
33
|
const renderCurrencyRow = (exchangeCurrencyItem: ExchangeCurrencyItem) => {
|
|
34
34
|
const code = exchangeCurrencyItem?.currency?.currency;
|
|
35
35
|
return (
|
|
36
|
-
<tr key={code}>
|
|
36
|
+
<tr key={code} className="pb-1">
|
|
37
37
|
<td className="pt-4">
|
|
38
38
|
<div className="flex items-center">
|
|
39
39
|
{code ? <Icon name={CURRENCY_ICONS_MAP[code]} width="24" height="24" /> : null}
|
|
40
|
-
<span className="ml-2">{code}</span>
|
|
40
|
+
<span className="text-m-title-md ml-2">{code}</span>
|
|
41
41
|
</div>
|
|
42
42
|
</td>
|
|
43
|
-
<td className="pt-4 pl-11">
|
|
44
|
-
|
|
43
|
+
<td className="pt-4 pl-11 m-title-md font-light">
|
|
44
|
+
{formatCurrency(exchangeCurrencyItem.buyExchangeRate)}
|
|
45
|
+
</td>
|
|
46
|
+
<td className="pt-4 pl-11 m-title-md font-light">
|
|
47
|
+
{formatCurrency(exchangeCurrencyItem.saleExchangeRate)}
|
|
48
|
+
</td>
|
|
45
49
|
</tr>
|
|
46
50
|
);
|
|
47
51
|
};
|
|
@@ -11,8 +11,8 @@ export const CurrentLocation = JSX<CurrentLocationProps>(
|
|
|
11
11
|
({ className = '', address, distance }) => (
|
|
12
12
|
<div className={`flex text-sm ${className}`}>
|
|
13
13
|
<Icon className="min-w-fit" name="GpsIcon" width="24" height="24" asSVG />
|
|
14
|
-
<div className="ml-
|
|
15
|
-
{address ? <p className="m-0">{address}</p> : null}
|
|
14
|
+
<div className="ml-3 font-light">
|
|
15
|
+
{address ? <p className="m-0 mb-[3px]">{address}</p> : null}
|
|
16
16
|
{distance ? (
|
|
17
17
|
<p className="text-secondary-text m-0">Курс указан для ближайшего офиса - {distance}</p>
|
|
18
18
|
) : null}
|
|
@@ -17,7 +17,7 @@ export const ExchangeCurrencyCalculator = JSX<ExchangeCurrencyCalculatorProps>(
|
|
|
17
17
|
<div className={`grid gap-3.5 ${className}`}>
|
|
18
18
|
{renderInput('Хочу продать', codes)}
|
|
19
19
|
{renderInput('Получу', codes)}
|
|
20
|
-
<Button className="box-border mt-3.5 py-3 h-12 w-
|
|
20
|
+
<Button className="box-border mt-3.5 py-3 h-12 w-full" version="primary" href="#">
|
|
21
21
|
Купить валюту
|
|
22
22
|
</Button>
|
|
23
23
|
</div>
|
|
@@ -27,14 +27,14 @@ export const ExchangeCurrencyCalculator = JSX<ExchangeCurrencyCalculatorProps>(
|
|
|
27
27
|
|
|
28
28
|
function renderInput(placeholder: string, codes: string[]) {
|
|
29
29
|
return (
|
|
30
|
-
<div className="flex items-center">
|
|
30
|
+
<div className="relative flex items-center">
|
|
31
31
|
<Input
|
|
32
|
-
className="h-10 border pl-
|
|
32
|
+
className="h-10 border pl-4 pt-[7px] pb-[7px] rounded-md text-m-sm w-full appearance-none -mr-12"
|
|
33
33
|
type="number"
|
|
34
34
|
placeholder={`${placeholder}`}
|
|
35
35
|
/>
|
|
36
36
|
{codes.length ? (
|
|
37
|
-
<Select className="h-9 -translate-x-
|
|
37
|
+
<Select className="h-9 -translate-x-4">
|
|
38
38
|
{codes.map((code, i) => (
|
|
39
39
|
<SelectOption key={String(i)} value={code}>
|
|
40
40
|
{code}
|
|
@@ -5,7 +5,7 @@ import { ExchangeRateTile } from './ExchangeRateTile';
|
|
|
5
5
|
export default {
|
|
6
6
|
default: (
|
|
7
7
|
<div className="container grid grid-cols-12">
|
|
8
|
-
<ExchangeRateTile context={context} className="col-span-
|
|
8
|
+
<ExchangeRateTile context={context} className="col-span-8" />
|
|
9
9
|
</div>
|
|
10
10
|
),
|
|
11
11
|
};
|
|
@@ -32,7 +32,7 @@ const DEFAULT_LOCATION = {
|
|
|
32
32
|
export interface ExchangeRateTileProps extends ExchangeRateTileContent, UniBlockProps {}
|
|
33
33
|
|
|
34
34
|
export const ExchangeRateTile = JSX<ExchangeRateTileProps>(
|
|
35
|
-
({ className = '', context, title = 'Курсы обмена валют' }) => {
|
|
35
|
+
({ className = '', context, title = 'Курсы обмена валют', anchor = null }) => {
|
|
36
36
|
const data = useExchangeRates(context.useAsyncData);
|
|
37
37
|
const exchangeCurrencyItems =
|
|
38
38
|
data?.exchangeRate?.currencies?.filter((item) => {
|
|
@@ -40,21 +40,27 @@ export const ExchangeRateTile = JSX<ExchangeRateTileProps>(
|
|
|
40
40
|
}) || DEFAULT_CURRENCY_ITEMS;
|
|
41
41
|
|
|
42
42
|
return (
|
|
43
|
-
<section
|
|
43
|
+
<section
|
|
44
|
+
className={`bg-white text-primary-text font-sans p-9 box-border ${className}`}
|
|
45
|
+
id={anchor}
|
|
46
|
+
>
|
|
44
47
|
<BaseTile
|
|
45
48
|
context={context}
|
|
46
49
|
title={
|
|
47
50
|
<Heading
|
|
48
51
|
headingType={getTileHeadingType(className)}
|
|
49
52
|
title={title}
|
|
50
|
-
className="whitespace-pre-wrap
|
|
53
|
+
className="whitespace-pre-wrap"
|
|
51
54
|
/>
|
|
52
55
|
}
|
|
53
56
|
>
|
|
54
57
|
<div className="flex">
|
|
55
|
-
<div className="mr-
|
|
58
|
+
<div className="mr-[43px] pt-4">
|
|
56
59
|
{exchangeCurrencyItems ? (
|
|
57
|
-
<CurrencyTable
|
|
60
|
+
<CurrencyTable
|
|
61
|
+
className="mb-[31px]"
|
|
62
|
+
exchangeCurrencyItems={exchangeCurrencyItems}
|
|
63
|
+
/>
|
|
58
64
|
) : null}
|
|
59
65
|
<CurrentLocation {...DEFAULT_LOCATION} />
|
|
60
66
|
</div>
|
|
@@ -15,9 +15,18 @@ const LEFT_COL_WIDTH_SMALL_DESKTOP = 'xl:w-[220px]';
|
|
|
15
15
|
export interface FooterProps extends FooterContent, UniBlockProps {}
|
|
16
16
|
|
|
17
17
|
export const Footer = JSX<FooterProps>(
|
|
18
|
-
({
|
|
18
|
+
({
|
|
19
|
+
className,
|
|
20
|
+
documents,
|
|
21
|
+
relatedEnterprises,
|
|
22
|
+
contacts,
|
|
23
|
+
socialMedia,
|
|
24
|
+
topItems,
|
|
25
|
+
context,
|
|
26
|
+
anchor = null,
|
|
27
|
+
}) => {
|
|
19
28
|
return (
|
|
20
|
-
<footer className={`px-9 py-10 bg-white ${className || ''}`}>
|
|
29
|
+
<footer className={`px-9 py-10 bg-white ${className || ''}`} id={anchor}>
|
|
21
30
|
<div className="flex items-stretch gap-[54px] pb-8 xl:gap-8">
|
|
22
31
|
<Logo className={`${LEFT_COL_WIDTH_FULL_HD} ${LEFT_COL_WIDTH_SMALL_DESKTOP}`} />
|
|
23
32
|
<SearchBar context={context} className="grow" />
|
|
@@ -11,7 +11,7 @@ export interface GalleryInnerProps extends GalleryContent, UniBlockProps {
|
|
|
11
11
|
}
|
|
12
12
|
|
|
13
13
|
export const GalleryInner = JSX<GalleryInnerProps>(
|
|
14
|
-
({ context, cards = [], className = '', version = 'normal', ...rest }) => {
|
|
14
|
+
({ context, cards = [], className = '', version = 'normal', anchor = null, ...rest }) => {
|
|
15
15
|
const [activeCardIndex, setActiveCardIndex] = context.useState(0);
|
|
16
16
|
|
|
17
17
|
const handleNextClick = () => setActiveCardIndex(activeCardIndex + 1);
|
|
@@ -28,6 +28,7 @@ export const GalleryInner = JSX<GalleryInnerProps>(
|
|
|
28
28
|
return (
|
|
29
29
|
<section
|
|
30
30
|
className={`relative font-sans text-primary-text bg-white p-[50px] overflow-hidden ${className}`}
|
|
31
|
+
id={anchor}
|
|
31
32
|
>
|
|
32
33
|
<GalleryContainer
|
|
33
34
|
context={context}
|
|
@@ -20,7 +20,7 @@ const BORDER_COLORS: Record<BgColorVersion, string> = {
|
|
|
20
20
|
export interface HeaderProps extends HeaderContent, UniBlockProps {}
|
|
21
21
|
|
|
22
22
|
export const Header = JSX<HeaderProps>(
|
|
23
|
-
({ className, defaultLocation, bgColor = 'bg-white', context, topItems }) => {
|
|
23
|
+
({ className, defaultLocation, bgColor = 'bg-white', context, topItems, anchor = null }) => {
|
|
24
24
|
const router = context.useRouter();
|
|
25
25
|
const sitemap = useSitemap(context.useAsyncData);
|
|
26
26
|
const { handlerDecorator } = context;
|
|
@@ -51,7 +51,7 @@ export const Header = JSX<HeaderProps>(
|
|
|
51
51
|
));
|
|
52
52
|
|
|
53
53
|
return (
|
|
54
|
-
<header className={`pt-5 pb-8 px-20 ${bgColor} ${className || ''}`}>
|
|
54
|
+
<header className={`pt-5 pb-8 px-20 ${bgColor} ${className || ''}`} id={anchor}>
|
|
55
55
|
<div className="container">
|
|
56
56
|
<div className="flex items-center">
|
|
57
57
|
<Logo className="mr-8" bgColor={bgColor} />
|
|
@@ -8,10 +8,17 @@ import type { HeadlineContent } from './HeadlineContent';
|
|
|
8
8
|
export interface HeadlineProps extends UniBlockProps, HeadlineContent {}
|
|
9
9
|
|
|
10
10
|
export const Headline = JSX<HeadlineProps>(
|
|
11
|
-
({
|
|
11
|
+
({
|
|
12
|
+
bgColorHeadline = 'transparent',
|
|
13
|
+
align = 'left',
|
|
14
|
+
className = '',
|
|
15
|
+
title,
|
|
16
|
+
description,
|
|
17
|
+
anchor = null,
|
|
18
|
+
}) => {
|
|
12
19
|
const STYLE_MAPS = HEADLINE_BLOCK_STYLE_MAPS[bgColorHeadline];
|
|
13
20
|
return (
|
|
14
|
-
<section className={`p-[50px] ${STYLE_MAPS.background} ${className}`}>
|
|
21
|
+
<section className={`p-[50px] ${STYLE_MAPS.background} ${className}`} id={anchor}>
|
|
15
22
|
{title && (
|
|
16
23
|
<Heading
|
|
17
24
|
headingType="h2"
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { JSX } from '@redneckz/uni-jsx';
|
|
2
|
-
import { LikeButton } from '../../ui-kit/Button/LikeButton';
|
|
3
2
|
import type { UniBlockProps } from '../../types';
|
|
3
|
+
import { LikeButton } from '../../ui-kit/Button/LikeButton';
|
|
4
4
|
|
|
5
|
-
export const LikeControl = JSX<UniBlockProps>(({ className, context }) => {
|
|
5
|
+
export const LikeControl = JSX<UniBlockProps>(({ className, context, anchor = null }) => {
|
|
6
6
|
const likeService = context.useLikeService();
|
|
7
7
|
|
|
8
8
|
return (
|
|
@@ -10,6 +10,7 @@ export const LikeControl = JSX<UniBlockProps>(({ className, context }) => {
|
|
|
10
10
|
className={`border-main border-2 border-solid bg-white flex w-[125px] items-center justify-center gap-3 p-2 font-sans ${
|
|
11
11
|
className || ''
|
|
12
12
|
}`}
|
|
13
|
+
id={anchor}
|
|
13
14
|
>
|
|
14
15
|
<LikeButton onClick={likeService.like} ariaLabel="Поставить отметку «лайк»" />
|
|
15
16
|
<LikeButton
|
|
@@ -32,9 +32,10 @@ export const LinkDocs = JSX<LinkDocsProps>(
|
|
|
32
32
|
documents,
|
|
33
33
|
icon = 'DocIcon',
|
|
34
34
|
columnsMode = 'double',
|
|
35
|
+
anchor = null,
|
|
35
36
|
}) => {
|
|
36
37
|
return (
|
|
37
|
-
<section className={`font-sans text-primary-text p-12 bg-white ${className}`}>
|
|
38
|
+
<section className={`font-sans text-primary-text p-12 bg-white ${className}`} id={anchor}>
|
|
38
39
|
{title ? (
|
|
39
40
|
<Heading
|
|
40
41
|
headingType="h2"
|
|
@@ -4,9 +4,9 @@ import type { LinkListContent } from './LinkListContent';
|
|
|
4
4
|
|
|
5
5
|
export interface LinkListProps extends LinkListContent, UniBlockProps {}
|
|
6
6
|
|
|
7
|
-
export const LinkList = JSX<LinkListProps>(({ className = '', documents }) => {
|
|
7
|
+
export const LinkList = JSX<LinkListProps>(({ className = '', documents, anchor = null }) => {
|
|
8
8
|
return (
|
|
9
|
-
<section className={`font-sans bg-white mt-[10px] ${className}`}>
|
|
9
|
+
<section className={`font-sans bg-white mt-[10px] ${className}`} id={anchor}>
|
|
10
10
|
<ul className="flex flex-col text-sm text-secondary-text p-0">
|
|
11
11
|
{documents?.length ? renderLinkListItem(documents) : null}
|
|
12
12
|
</ul>
|
|
@@ -11,12 +11,20 @@ import type { MobileAppTileContent } from './MobileAppTileContent';
|
|
|
11
11
|
export interface MobileAppTileProps extends MobileAppTileContent, UniBlockProps {}
|
|
12
12
|
|
|
13
13
|
export const MobileAppTile = JSX<MobileAppTileProps>(
|
|
14
|
-
({
|
|
14
|
+
({
|
|
15
|
+
className = '',
|
|
16
|
+
context,
|
|
17
|
+
title = 'Мобильное приложение',
|
|
18
|
+
qr,
|
|
19
|
+
buttons = [],
|
|
20
|
+
anchor = null,
|
|
21
|
+
}) => {
|
|
15
22
|
return (
|
|
16
23
|
<section
|
|
17
24
|
className={`bg-white text-primary-text font-sans p-9 box-border ${className} ${getTileRightPadding(
|
|
18
25
|
className,
|
|
19
26
|
)} ${getTileMinHeight(className)} `}
|
|
27
|
+
id={anchor}
|
|
20
28
|
>
|
|
21
29
|
<BaseTile
|
|
22
30
|
context={context}
|
|
@@ -7,33 +7,36 @@ import { NavigationItem } from './NavigationItem';
|
|
|
7
7
|
|
|
8
8
|
export interface NavigationProps extends NavigationContent, UniBlockProps {}
|
|
9
9
|
|
|
10
|
-
export const Navigation = JSX<NavigationProps>(
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
export const Navigation = JSX<NavigationProps>(
|
|
11
|
+
({ className, context, title, buttons, anchor = null }) => {
|
|
12
|
+
const router = context.useRouter();
|
|
13
|
+
const { handlerDecorator } = context;
|
|
13
14
|
|
|
14
|
-
|
|
15
|
+
const activeButton = findActiveSubItem(router)(buttons);
|
|
15
16
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
17
|
+
return (
|
|
18
|
+
<section
|
|
19
|
+
className={`font-sans text-primary-text rounded-[40px] flex items-center justify-between ${
|
|
20
|
+
className || ''
|
|
21
|
+
}`}
|
|
22
|
+
id={anchor}
|
|
23
|
+
>
|
|
24
|
+
<h2 className="font-medium text-xl m-0">{title}</h2>
|
|
25
|
+
{buttons?.length ? (
|
|
26
|
+
<div className="flex rounded-md overflow-hidden bg-white">
|
|
27
|
+
{buttons
|
|
28
|
+
.filter(({ text }) => text)
|
|
29
|
+
.map((button, i) => (
|
|
30
|
+
<NavigationItem
|
|
31
|
+
key={String(i)}
|
|
32
|
+
className="first:rounded-tl-md first:rounded-bl-md last:rounded-tr-md last:rounded-br-md"
|
|
33
|
+
isActive={button === activeButton}
|
|
34
|
+
{...useLink({ router, handlerDecorator }, button)}
|
|
35
|
+
/>
|
|
36
|
+
))}
|
|
37
|
+
</div>
|
|
38
|
+
) : null}
|
|
39
|
+
</section>
|
|
40
|
+
);
|
|
41
|
+
},
|
|
42
|
+
);
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { JSX } from '@redneckz/uni-jsx';
|
|
2
|
+
import type { NavigatorTab } from './NavigatorTabsContent';
|
|
3
|
+
|
|
4
|
+
export interface NavigatorTabItemProps extends NavigatorTab {
|
|
5
|
+
active?: boolean;
|
|
6
|
+
className?: string;
|
|
7
|
+
onClick?: (ev: MouseEvent) => void;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
const TEXT_CLASSES = 'font-sans font-normal text-sm';
|
|
11
|
+
const LINK_CLASSES = 'flex-1 flex items-center justify-center';
|
|
12
|
+
|
|
13
|
+
export const NavigatorTabItem = JSX<NavigatorTabItemProps>(
|
|
14
|
+
({ className = '', label, active, children, onClick, anchor }) => (
|
|
15
|
+
<a className={getLinkClasses(className, active)} href={`#${anchor}`} onClick={onClick}>
|
|
16
|
+
<span className={getTextClasses(active)}>{label || children}</span>
|
|
17
|
+
</a>
|
|
18
|
+
),
|
|
19
|
+
);
|
|
20
|
+
|
|
21
|
+
const getLinkClasses = (className: string, active?: boolean) => {
|
|
22
|
+
const classes = active ? 'bg-primary-main' : 'bg-white';
|
|
23
|
+
return `${classes} ${LINK_CLASSES} ${className}`;
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
const getTextClasses = (active?: boolean) => {
|
|
27
|
+
const classes = active ? 'text-white' : 'text-secondary-text hover:text-primary-main';
|
|
28
|
+
return `${classes} ${TEXT_CLASSES}`;
|
|
29
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { context } from '../../setup-fixture';
|
|
2
|
+
import { NavigatorTabs } from './NavigatorTabs';
|
|
3
|
+
import tabsExample from './NavigatorTabs.example.json';
|
|
4
|
+
|
|
5
|
+
export default {
|
|
6
|
+
default: (
|
|
7
|
+
<div className="container grid grid-cols-12">
|
|
8
|
+
<NavigatorTabs context={context} className="col-span-12" {...tabsExample} />
|
|
9
|
+
</div>
|
|
10
|
+
),
|
|
11
|
+
};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { JSX } from '@redneckz/uni-jsx';
|
|
2
|
+
import type { UniBlockProps } from '../../types';
|
|
3
|
+
import { getHash } from '../../utils/url';
|
|
4
|
+
import type { Router } from '../ContentPage/ContentPageContext';
|
|
5
|
+
import { NavigatorTabItem } from './NavigatorTabItem';
|
|
6
|
+
import type { NavigatorTab, NavigatorTabsContent } from './NavigatorTabsContent';
|
|
7
|
+
|
|
8
|
+
export interface TabsBlockProps extends NavigatorTabsContent, UniBlockProps {}
|
|
9
|
+
|
|
10
|
+
export const NavigatorTabs = JSX<TabsBlockProps>(
|
|
11
|
+
({ className = '', navigatorTabs, context, anchor = null }) => {
|
|
12
|
+
const router = context.useRouter();
|
|
13
|
+
const hash = getHash(router.href);
|
|
14
|
+
return (
|
|
15
|
+
<section
|
|
16
|
+
className={`sticky top-0 z-20 box-border flex gap-x-1 h-12 ${className}`}
|
|
17
|
+
id={anchor}
|
|
18
|
+
>
|
|
19
|
+
{navigatorTabs ? navigatorTabs.map(renderTab(hash, router)) : null}
|
|
20
|
+
</section>
|
|
21
|
+
);
|
|
22
|
+
},
|
|
23
|
+
);
|
|
24
|
+
|
|
25
|
+
const renderTab = (hash?: string, router?: Router) => (tab: NavigatorTab, i: number) => {
|
|
26
|
+
const anchorHash = `#${tab.anchor}`;
|
|
27
|
+
const active = hash ? anchorHash === hash : i === 0;
|
|
28
|
+
return (
|
|
29
|
+
<NavigatorTabItem
|
|
30
|
+
key={tab.anchor}
|
|
31
|
+
active={active}
|
|
32
|
+
onClick={() => router?.replace(anchorHash)}
|
|
33
|
+
{...tab}
|
|
34
|
+
/>
|
|
35
|
+
);
|
|
36
|
+
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title Таб
|
|
3
|
+
*/
|
|
4
|
+
export interface NavigatorTab {
|
|
5
|
+
/** @title Название */
|
|
6
|
+
label?: string;
|
|
7
|
+
/** @title Якорь */
|
|
8
|
+
anchor?: string;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* @title Блок табов
|
|
13
|
+
*/
|
|
14
|
+
export interface NavigatorTabsContent {
|
|
15
|
+
/**
|
|
16
|
+
* @title Список табов
|
|
17
|
+
* @minItems 3
|
|
18
|
+
*/
|
|
19
|
+
navigatorTabs?: NavigatorTab[];
|
|
20
|
+
}
|
|
@@ -9,19 +9,24 @@ import { Benefit } from '../BenefitsBlock/BenefitsBlockContent';
|
|
|
9
9
|
|
|
10
10
|
export interface PictureTextProps extends PictureTextContent, UniBlockProps {}
|
|
11
11
|
|
|
12
|
-
export const PictureText = JSX<PictureTextProps>(
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
<
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
}
|
|
12
|
+
export const PictureText = JSX<PictureTextProps>(
|
|
13
|
+
({ className = '', title, image, benefits, anchor = null }) => {
|
|
14
|
+
return (
|
|
15
|
+
<section
|
|
16
|
+
className={`relative font-sans text-primary-text bg-white p-14 ${className}`}
|
|
17
|
+
id={anchor}
|
|
18
|
+
>
|
|
19
|
+
<Heading headingType="h2" className="text-center" title={title} />
|
|
20
|
+
<div className={'flex justify-center mt-9'}>
|
|
21
|
+
{image?.src && <Img className="mr-6" image={image} />}
|
|
22
|
+
{benefits?.length ? (
|
|
23
|
+
<div className="flex flex-col">{benefits.map(renderBenefit)}</div>
|
|
24
|
+
) : null}
|
|
25
|
+
</div>
|
|
26
|
+
</section>
|
|
27
|
+
);
|
|
28
|
+
},
|
|
29
|
+
);
|
|
25
30
|
|
|
26
31
|
function renderBenefit(benefit: Benefit, i: number) {
|
|
27
32
|
return (
|
|
@@ -15,12 +15,13 @@ export interface PlaceholderProps extends PlaceholderContent, UniBlockProps {
|
|
|
15
15
|
const GOLDEN_RATIO = 1.618;
|
|
16
16
|
|
|
17
17
|
export const Placeholder = JSX<PlaceholderProps>(
|
|
18
|
-
({ className, context, title, description = 'Блок в разработке...' }) => {
|
|
18
|
+
({ className, context, title, description = 'Блок в разработке...', anchor = null }) => {
|
|
19
19
|
return (
|
|
20
20
|
<section
|
|
21
21
|
className={`bg-white text-primary-text font-sans p-9 box-border ${className} ${getTileRightPadding(
|
|
22
22
|
className,
|
|
23
23
|
)} ${getTileMinHeight(className)} `}
|
|
24
|
+
id={anchor}
|
|
24
25
|
>
|
|
25
26
|
<BaseTile
|
|
26
27
|
context={context}
|
|
@@ -20,14 +20,23 @@ const breadcrumbsStyleMap: Record<BlockVersion, string> = {
|
|
|
20
20
|
};
|
|
21
21
|
|
|
22
22
|
export const ProductBlock = JSX<ProductBlockProps>((props) => {
|
|
23
|
-
const {
|
|
23
|
+
const {
|
|
24
|
+
context,
|
|
25
|
+
className,
|
|
26
|
+
breadcrumbs,
|
|
27
|
+
version = 'primary',
|
|
28
|
+
anchor = null,
|
|
29
|
+
...otherProps
|
|
30
|
+
} = props;
|
|
24
31
|
const router = context.useRouter();
|
|
25
32
|
const { handlerDecorator } = context;
|
|
33
|
+
|
|
26
34
|
return (
|
|
27
35
|
<section
|
|
28
36
|
className={`font-sans pt-10 pl-[50px] pb-[50px] pr-[7.5rem] box-border min-h-[420px] ${
|
|
29
37
|
className || ''
|
|
30
38
|
} ${productBlockStyleMap[version]}`}
|
|
39
|
+
id={anchor}
|
|
31
40
|
>
|
|
32
41
|
{breadcrumbs?.length ? (
|
|
33
42
|
<div className="text-xs mb-6">
|
|
@@ -86,7 +86,9 @@ const labelStyleMap: Record<BlockVersion, string> = {
|
|
|
86
86
|
};
|
|
87
87
|
|
|
88
88
|
const renderLabel = (label: string, version: BlockVersion) => (
|
|
89
|
-
<div
|
|
89
|
+
<div
|
|
90
|
+
className={`m-xs px-2.5 py-1.5 mb-5 rounded-md border-2 border-solid w-fit ${labelStyleMap[version]}`}
|
|
91
|
+
>
|
|
90
92
|
{label}
|
|
91
93
|
</div>
|
|
92
94
|
);
|
|
@@ -7,13 +7,16 @@ import type { ProductGalleryContent } from './ProductGalleryContent';
|
|
|
7
7
|
export interface ProductGalleryProps extends ProductGalleryContent, UniBlockProps {}
|
|
8
8
|
|
|
9
9
|
export const ProductGallery = JSX<ProductGalleryProps>(
|
|
10
|
-
({ className, context, duration = 0, slides = [] }) => {
|
|
10
|
+
({ className, context, duration = 0, slides = [], anchor = null }) => {
|
|
11
11
|
const galleryNav = slides.map((s) => s.nav);
|
|
12
12
|
const galleryBlocks = slides.map((s) => s.productBlock);
|
|
13
13
|
const [activeSlideIndex, setActiveSlideIndex] = context.useState(0);
|
|
14
14
|
|
|
15
15
|
return (
|
|
16
|
-
<section
|
|
16
|
+
<section
|
|
17
|
+
className={`font-sans bg-white overflow-hidden w-100 ${className || ''}`}
|
|
18
|
+
id={anchor}
|
|
19
|
+
>
|
|
17
20
|
<div
|
|
18
21
|
className={`flex duration-1000`}
|
|
19
22
|
style={{ transform: `translateX(-${activeSlideIndex}00%)` }}
|
|
@@ -8,7 +8,7 @@ import type { ProductGalleryGreenContent } from './ProductGalleryGreenContent';
|
|
|
8
8
|
export interface ProductGalleryProps extends ProductGalleryGreenContent, UniBlockProps {}
|
|
9
9
|
|
|
10
10
|
export const ProductGalleryGreen = JSX<ProductGalleryProps>(
|
|
11
|
-
({ className = '', context, slides = [] }) => {
|
|
11
|
+
({ className = '', context, slides = [], anchor = null }) => {
|
|
12
12
|
const galleryNav = slides.map((s) => s.nav);
|
|
13
13
|
const galleryBlocks = slides.map((s) => s.productBlock);
|
|
14
14
|
const [activeSlideIndex, setActiveSlideIndex] = context.useState(0);
|
|
@@ -16,6 +16,7 @@ export const ProductGalleryGreen = JSX<ProductGalleryProps>(
|
|
|
16
16
|
return (
|
|
17
17
|
<section
|
|
18
18
|
className={`box-border pt-[70px] relative font-sans overflow-hidden bg-primary-main w-100 ${className}`}
|
|
19
|
+
id={anchor}
|
|
19
20
|
>
|
|
20
21
|
<div
|
|
21
22
|
className="flex duration-1000 pb-14"
|
|
@@ -75,9 +76,13 @@ function renderNavButton({ slide, i, activeSlideIndex, onClick }) {
|
|
|
75
76
|
const isActiveBtn = i === activeSlideIndex;
|
|
76
77
|
const btnClassName = isActiveBtn
|
|
77
78
|
? 'bg-white shadow-dark-blue/42 h-[102px] w-[354px] min-w-[354px] max-w-[354px] p-0'
|
|
78
|
-
: 'bg-white/10 min-w-[277px] px-0 pt-4 pb-[23px] hover:
|
|
79
|
-
const btnTitleClassName = isActiveBtn
|
|
80
|
-
|
|
79
|
+
: 'bg-white/10 min-w-[277px] px-0 pt-4 pb-[23px] hover:pt-[21px] hover:pb-7 ease-in duration-300';
|
|
80
|
+
const btnTitleClassName = isActiveBtn
|
|
81
|
+
? 'text-[18px] text-primary-text pb-[10px]'
|
|
82
|
+
: 'text-m-base text-white pb-[3px]';
|
|
83
|
+
const btnDescClassName = isActiveBtn
|
|
84
|
+
? 'text-[18px] text-secondary-text'
|
|
85
|
+
: 'text-m-base text-white';
|
|
81
86
|
|
|
82
87
|
return (
|
|
83
88
|
<button
|
|
@@ -90,8 +95,8 @@ function renderNavButton({ slide, i, activeSlideIndex, onClick }) {
|
|
|
90
95
|
`}
|
|
91
96
|
>
|
|
92
97
|
<div className="border-0 px-6">
|
|
93
|
-
<div className={`
|
|
94
|
-
<div className={`text-
|
|
98
|
+
<div className={`font-medium ${btnTitleClassName}`}>{slide?.title}</div>
|
|
99
|
+
<div className={`text-secondary-text ${btnDescClassName}`}>{slide.description}</div>
|
|
95
100
|
</div>
|
|
96
101
|
</button>
|
|
97
102
|
);
|
|
@@ -29,12 +29,14 @@ export const ProductTile = JSX<ProductTileProps>(
|
|
|
29
29
|
buttons,
|
|
30
30
|
image,
|
|
31
31
|
version = 'primary',
|
|
32
|
+
anchor = null,
|
|
32
33
|
}) => {
|
|
33
34
|
return (
|
|
34
35
|
<section
|
|
35
36
|
className={`bg-white text-primary-text font-sans p-9 box-border ${className} ${
|
|
36
37
|
productTileStyleMap[version]
|
|
37
38
|
} ${getTileRightPadding(className)} ${getTileMinHeight(className)} `}
|
|
39
|
+
id={anchor}
|
|
38
40
|
>
|
|
39
41
|
<BaseTile
|
|
40
42
|
context={context}
|