@redneckz/wildless-cms-uni-blocks 0.7.5 → 0.7.7
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 +189 -78
- package/bundle/bundle.umd.min.js +1 -1
- package/bundle/components/CarouselRecommendationCard/CarouselRecommendationCardContent.d.ts +5 -9
- package/bundle/components/Footer/MediaButton.d.ts +3 -4
- package/bundle/components/Footer/SocialMedia.d.ts +2 -3
- package/bundle/components/Header/HeaderChatBotButton.d.ts +11 -0
- package/bundle/components/Header/HeaderContent.d.ts +6 -1
- package/bundle/components/Header/HeaderSecondaryMenu.d.ts +2 -0
- package/bundle/components/Header/HeaderSecondaryMenuButton.d.ts +7 -2
- package/bundle/components/Header/useChatBot.d.ts +2 -0
- package/bundle/components/Tabs/LinkTab.d.ts +1 -0
- package/bundle/components/Tabs/ScrollableTabs.d.ts +8 -0
- package/bundle/components/Tabs/TabsContent.d.ts +12 -0
- package/bundle/components/Tabs/renderGroupTab.d.ts +2 -2
- package/bundle/components/Tabs/renderTab.d.ts +2 -1
- package/bundle/components/Tabs/tabItemClasses.d.ts +6 -1
- package/bundle/hooks/useBool.d.ts +9 -0
- package/bundle/icons/IconName.d.ts +4 -2
- package/bundle/model/ButtonVersion.d.ts +2 -2
- package/cosmos-static/icons/HeadphonesIcon.svg +1 -0
- package/dist/components/CarouselCatalogCard/CarouselCatalogCard.js +1 -1
- package/dist/components/CarouselCatalogCard/CarouselCatalogCard.js.map +1 -1
- package/dist/components/CarouselProductCard/CarouselProductCard.js +1 -1
- package/dist/components/CarouselProductCard/CarouselProductCard.js.map +1 -1
- package/dist/components/CarouselRecommendationCard/CarouselRecommendationCard.js +2 -2
- package/dist/components/CarouselRecommendationCard/CarouselRecommendationCard.js.map +1 -1
- package/dist/components/CarouselRecommendationCard/CarouselRecommendationCardContent.d.ts +5 -9
- package/dist/components/Footer/Footer.js +2 -2
- package/dist/components/Footer/Footer.js.map +1 -1
- package/dist/components/Footer/Footer.mobile.js.map +1 -1
- package/dist/components/Footer/MediaButton.d.ts +3 -4
- package/dist/components/Footer/MediaButton.js +4 -5
- package/dist/components/Footer/MediaButton.js.map +1 -1
- package/dist/components/Footer/SocialMedia.d.ts +2 -3
- package/dist/components/Footer/SocialMedia.js +1 -1
- package/dist/components/Footer/SocialMedia.js.map +1 -1
- package/dist/components/Header/DropdownMenu.js +3 -2
- package/dist/components/Header/DropdownMenu.js.map +1 -1
- package/dist/components/Header/Header.js +3 -2
- package/dist/components/Header/Header.js.map +1 -1
- package/dist/components/Header/HeaderChatBotButton.d.ts +11 -0
- package/dist/components/Header/HeaderChatBotButton.js +19 -0
- package/dist/components/Header/HeaderChatBotButton.js.map +1 -0
- package/dist/components/Header/HeaderContent.d.ts +6 -1
- package/dist/components/Header/HeaderSecondaryMenu.d.ts +2 -0
- package/dist/components/Header/HeaderSecondaryMenu.js +6 -11
- package/dist/components/Header/HeaderSecondaryMenu.js.map +1 -1
- package/dist/components/Header/HeaderSecondaryMenuButton.d.ts +7 -2
- package/dist/components/Header/HeaderSecondaryMenuButton.js +5 -1
- package/dist/components/Header/HeaderSecondaryMenuButton.js.map +1 -1
- package/dist/components/Header/useChatBot.d.ts +2 -0
- package/dist/components/Header/useChatBot.js +15 -0
- package/dist/components/Header/useChatBot.js.map +1 -0
- package/dist/components/Tabs/LinkTab.d.ts +1 -0
- package/dist/components/Tabs/LinkTab.js +2 -2
- package/dist/components/Tabs/LinkTab.js.map +1 -1
- package/dist/components/Tabs/ScrollableTabs.d.ts +8 -0
- package/dist/components/Tabs/ScrollableTabs.js +24 -0
- package/dist/components/Tabs/ScrollableTabs.js.map +1 -0
- package/dist/components/Tabs/Tabs.js +9 -2
- package/dist/components/Tabs/Tabs.js.map +1 -1
- package/dist/components/Tabs/TabsContent.d.ts +12 -0
- package/dist/components/Tabs/renderGroupTab.d.ts +2 -2
- package/dist/components/Tabs/renderGroupTab.js +12 -4
- package/dist/components/Tabs/renderGroupTab.js.map +1 -1
- package/dist/components/Tabs/renderTab.d.ts +2 -1
- package/dist/components/Tabs/renderTab.js +4 -6
- package/dist/components/Tabs/renderTab.js.map +1 -1
- package/dist/components/Tabs/tabItemClasses.d.ts +6 -1
- package/dist/components/Tabs/tabItemClasses.js +61 -2
- package/dist/components/Tabs/tabItemClasses.js.map +1 -1
- package/dist/hooks/useBool.d.ts +9 -0
- package/dist/hooks/useBool.js +12 -0
- package/dist/hooks/useBool.js.map +1 -0
- package/dist/icons/IconName.d.ts +4 -2
- package/dist/icons/IconName.js +3 -1
- package/dist/icons/IconName.js.map +1 -1
- package/dist/model/ButtonVersion.d.ts +2 -2
- package/dist/setup-fixture.js +0 -1
- package/dist/setup-fixture.js.map +1 -1
- package/dist/ui-kit/Button/buttonClassNameConstants.js +3 -0
- package/dist/ui-kit/Button/buttonClassNameConstants.js.map +1 -1
- package/lib/common.css +1 -1
- package/lib/components/CarouselCatalogCard/CarouselCatalogCard.js +1 -1
- package/lib/components/CarouselCatalogCard/CarouselCatalogCard.js.map +1 -1
- package/lib/components/CarouselProductCard/CarouselProductCard.js +1 -1
- package/lib/components/CarouselProductCard/CarouselProductCard.js.map +1 -1
- package/lib/components/CarouselRecommendationCard/CarouselRecommendationCard.js +2 -2
- package/lib/components/CarouselRecommendationCard/CarouselRecommendationCard.js.map +1 -1
- package/lib/components/CarouselRecommendationCard/CarouselRecommendationCardContent.d.ts +5 -9
- package/lib/components/Footer/Footer.js +2 -2
- package/lib/components/Footer/Footer.js.map +1 -1
- package/lib/components/Footer/Footer.mobile.js.map +1 -1
- package/lib/components/Footer/MediaButton.d.ts +3 -4
- package/lib/components/Footer/MediaButton.js +4 -5
- package/lib/components/Footer/MediaButton.js.map +1 -1
- package/lib/components/Footer/SocialMedia.d.ts +2 -3
- package/lib/components/Footer/SocialMedia.js +1 -1
- package/lib/components/Footer/SocialMedia.js.map +1 -1
- package/lib/components/Header/DropdownMenu.js +3 -2
- package/lib/components/Header/DropdownMenu.js.map +1 -1
- package/lib/components/Header/Header.js +3 -2
- package/lib/components/Header/Header.js.map +1 -1
- package/lib/components/Header/HeaderChatBotButton.d.ts +11 -0
- package/lib/components/Header/HeaderChatBotButton.js +17 -0
- package/lib/components/Header/HeaderChatBotButton.js.map +1 -0
- package/lib/components/Header/HeaderContent.d.ts +6 -1
- package/lib/components/Header/HeaderSecondaryMenu.d.ts +2 -0
- package/lib/components/Header/HeaderSecondaryMenu.js +6 -11
- package/lib/components/Header/HeaderSecondaryMenu.js.map +1 -1
- package/lib/components/Header/HeaderSecondaryMenuButton.d.ts +7 -2
- package/lib/components/Header/HeaderSecondaryMenuButton.js +5 -1
- package/lib/components/Header/HeaderSecondaryMenuButton.js.map +1 -1
- package/lib/components/Header/useChatBot.d.ts +2 -0
- package/lib/components/Header/useChatBot.js +12 -0
- package/lib/components/Header/useChatBot.js.map +1 -0
- package/lib/components/Tabs/LinkTab.d.ts +1 -0
- package/lib/components/Tabs/LinkTab.js +3 -3
- package/lib/components/Tabs/LinkTab.js.map +1 -1
- package/lib/components/Tabs/ScrollableTabs.d.ts +8 -0
- package/lib/components/Tabs/ScrollableTabs.js +22 -0
- package/lib/components/Tabs/ScrollableTabs.js.map +1 -0
- package/lib/components/Tabs/Tabs.fixture.d.ts +1 -0
- package/lib/components/Tabs/Tabs.js +9 -2
- package/lib/components/Tabs/Tabs.js.map +1 -1
- package/lib/components/Tabs/TabsContent.d.ts +12 -0
- package/lib/components/Tabs/renderGroupTab.d.ts +2 -2
- package/lib/components/Tabs/renderGroupTab.js +13 -5
- package/lib/components/Tabs/renderGroupTab.js.map +1 -1
- package/lib/components/Tabs/renderTab.d.ts +2 -1
- package/lib/components/Tabs/renderTab.js +4 -6
- package/lib/components/Tabs/renderTab.js.map +1 -1
- package/lib/components/Tabs/tabItemClasses.d.ts +6 -1
- package/lib/components/Tabs/tabItemClasses.js +58 -1
- package/lib/components/Tabs/tabItemClasses.js.map +1 -1
- package/lib/hooks/useBool.d.ts +9 -0
- package/lib/hooks/useBool.js +9 -0
- package/lib/hooks/useBool.js.map +1 -0
- package/lib/icons/IconName.d.ts +4 -2
- package/lib/icons/IconName.js +3 -1
- package/lib/icons/IconName.js.map +1 -1
- package/lib/model/ButtonVersion.d.ts +2 -2
- package/lib/setup-fixture.js +0 -1
- package/lib/setup-fixture.js.map +1 -1
- package/lib/ui-kit/Button/buttonClassNameConstants.js +3 -0
- package/lib/ui-kit/Button/buttonClassNameConstants.js.map +1 -1
- package/mobile/bundle/bundle.umd.js +7 -5
- package/mobile/bundle/bundle.umd.min.js +1 -1
- package/mobile/bundle/components/CarouselRecommendationCard/CarouselRecommendationCardContent.d.ts +5 -9
- package/mobile/bundle/components/Footer/MediaButton.d.ts +3 -4
- package/mobile/bundle/components/Header/HeaderChatBotButton.d.ts +11 -0
- package/mobile/bundle/components/Header/HeaderContent.d.ts +6 -1
- package/mobile/bundle/components/Header/HeaderSecondaryMenu.d.ts +2 -0
- package/mobile/bundle/components/Header/HeaderSecondaryMenuButton.d.ts +7 -2
- package/mobile/bundle/components/Header/useChatBot.d.ts +2 -0
- package/mobile/bundle/components/Tabs/LinkTab.d.ts +1 -0
- package/mobile/bundle/components/Tabs/ScrollableTabs.d.ts +8 -0
- package/mobile/bundle/components/Tabs/TabsContent.d.ts +12 -0
- package/mobile/bundle/components/Tabs/renderGroupTab.d.ts +2 -2
- package/mobile/bundle/components/Tabs/renderTab.d.ts +2 -1
- package/mobile/bundle/components/Tabs/tabItemClasses.d.ts +6 -1
- package/mobile/bundle/hooks/useBool.d.ts +9 -0
- package/mobile/bundle/icons/IconName.d.ts +4 -2
- package/mobile/bundle/model/ButtonVersion.d.ts +2 -2
- package/mobile/dist/components/CarouselCatalogCard/CarouselCatalogCard.js +1 -1
- package/mobile/dist/components/CarouselCatalogCard/CarouselCatalogCard.js.map +1 -1
- package/mobile/dist/components/CarouselProductCard/CarouselProductCard.js +1 -1
- package/mobile/dist/components/CarouselProductCard/CarouselProductCard.js.map +1 -1
- package/mobile/dist/components/CarouselRecommendationCard/CarouselRecommendationCard.js +2 -2
- package/mobile/dist/components/CarouselRecommendationCard/CarouselRecommendationCard.js.map +1 -1
- package/mobile/dist/components/CarouselRecommendationCard/CarouselRecommendationCardContent.d.ts +5 -9
- package/mobile/dist/components/Footer/Footer.js.map +1 -1
- package/mobile/dist/components/Footer/MediaButton.d.ts +3 -4
- package/mobile/dist/components/Footer/MediaButton.js +4 -5
- package/mobile/dist/components/Footer/MediaButton.js.map +1 -1
- package/mobile/dist/components/Header/DropdownMenu.js +3 -2
- package/mobile/dist/components/Header/DropdownMenu.js.map +1 -1
- package/mobile/dist/components/Header/HeaderChatBotButton.d.ts +11 -0
- package/mobile/dist/components/Header/HeaderChatBotButton.js +19 -0
- package/mobile/dist/components/Header/HeaderChatBotButton.js.map +1 -0
- package/mobile/dist/components/Header/HeaderContent.d.ts +6 -1
- package/mobile/dist/components/Header/HeaderSecondaryMenu.d.ts +2 -0
- package/mobile/dist/components/Header/HeaderSecondaryMenu.js +6 -11
- package/mobile/dist/components/Header/HeaderSecondaryMenu.js.map +1 -1
- package/mobile/dist/components/Header/HeaderSecondaryMenuButton.d.ts +7 -2
- package/mobile/dist/components/Header/HeaderSecondaryMenuButton.js +5 -1
- package/mobile/dist/components/Header/HeaderSecondaryMenuButton.js.map +1 -1
- package/mobile/dist/components/Header/useChatBot.d.ts +2 -0
- package/mobile/dist/components/Header/useChatBot.js +15 -0
- package/mobile/dist/components/Header/useChatBot.js.map +1 -0
- package/mobile/dist/components/Tabs/LinkTab.d.ts +1 -0
- package/mobile/dist/components/Tabs/LinkTab.js +2 -2
- package/mobile/dist/components/Tabs/LinkTab.js.map +1 -1
- package/mobile/dist/components/Tabs/ScrollableTabs.d.ts +8 -0
- package/mobile/dist/components/Tabs/ScrollableTabs.js +24 -0
- package/mobile/dist/components/Tabs/ScrollableTabs.js.map +1 -0
- package/mobile/dist/components/Tabs/Tabs.js +9 -2
- package/mobile/dist/components/Tabs/Tabs.js.map +1 -1
- package/mobile/dist/components/Tabs/TabsContent.d.ts +12 -0
- package/mobile/dist/components/Tabs/renderGroupTab.d.ts +2 -2
- package/mobile/dist/components/Tabs/renderGroupTab.js +12 -4
- package/mobile/dist/components/Tabs/renderGroupTab.js.map +1 -1
- package/mobile/dist/components/Tabs/renderTab.d.ts +2 -1
- package/mobile/dist/components/Tabs/renderTab.js +4 -6
- package/mobile/dist/components/Tabs/renderTab.js.map +1 -1
- package/mobile/dist/components/Tabs/tabItemClasses.d.ts +6 -1
- package/mobile/dist/components/Tabs/tabItemClasses.js +61 -2
- package/mobile/dist/components/Tabs/tabItemClasses.js.map +1 -1
- package/mobile/dist/hooks/useBool.d.ts +9 -0
- package/mobile/dist/hooks/useBool.js +12 -0
- package/mobile/dist/hooks/useBool.js.map +1 -0
- package/mobile/dist/icons/IconName.d.ts +4 -2
- package/mobile/dist/icons/IconName.js +3 -1
- package/mobile/dist/icons/IconName.js.map +1 -1
- package/mobile/dist/model/ButtonVersion.d.ts +2 -2
- package/mobile/dist/setup-fixture.js +0 -1
- package/mobile/dist/setup-fixture.js.map +1 -1
- package/mobile/dist/ui-kit/Button/buttonClassNameConstants.js +3 -0
- package/mobile/dist/ui-kit/Button/buttonClassNameConstants.js.map +1 -1
- package/mobile/lib/components/CarouselCatalogCard/CarouselCatalogCard.js +1 -1
- package/mobile/lib/components/CarouselCatalogCard/CarouselCatalogCard.js.map +1 -1
- package/mobile/lib/components/CarouselProductCard/CarouselProductCard.js +1 -1
- package/mobile/lib/components/CarouselProductCard/CarouselProductCard.js.map +1 -1
- package/mobile/lib/components/CarouselRecommendationCard/CarouselRecommendationCard.js +2 -2
- package/mobile/lib/components/CarouselRecommendationCard/CarouselRecommendationCard.js.map +1 -1
- package/mobile/lib/components/CarouselRecommendationCard/CarouselRecommendationCardContent.d.ts +5 -9
- package/mobile/lib/components/Footer/Footer.js.map +1 -1
- package/mobile/lib/components/Footer/MediaButton.d.ts +3 -4
- package/mobile/lib/components/Footer/MediaButton.js +4 -5
- package/mobile/lib/components/Footer/MediaButton.js.map +1 -1
- package/mobile/lib/components/Header/DropdownMenu.js +3 -2
- package/mobile/lib/components/Header/DropdownMenu.js.map +1 -1
- package/mobile/lib/components/Header/HeaderChatBotButton.d.ts +11 -0
- package/mobile/lib/components/Header/HeaderChatBotButton.js +17 -0
- package/mobile/lib/components/Header/HeaderChatBotButton.js.map +1 -0
- package/mobile/lib/components/Header/HeaderContent.d.ts +6 -1
- package/mobile/lib/components/Header/HeaderSecondaryMenu.d.ts +2 -0
- package/mobile/lib/components/Header/HeaderSecondaryMenu.js +6 -11
- package/mobile/lib/components/Header/HeaderSecondaryMenu.js.map +1 -1
- package/mobile/lib/components/Header/HeaderSecondaryMenuButton.d.ts +7 -2
- package/mobile/lib/components/Header/HeaderSecondaryMenuButton.js +5 -1
- package/mobile/lib/components/Header/HeaderSecondaryMenuButton.js.map +1 -1
- package/mobile/lib/components/Header/useChatBot.d.ts +2 -0
- package/mobile/lib/components/Header/useChatBot.js +12 -0
- package/mobile/lib/components/Header/useChatBot.js.map +1 -0
- package/mobile/lib/components/Tabs/LinkTab.d.ts +1 -0
- package/mobile/lib/components/Tabs/LinkTab.js +3 -3
- package/mobile/lib/components/Tabs/LinkTab.js.map +1 -1
- package/mobile/lib/components/Tabs/ScrollableTabs.d.ts +8 -0
- package/mobile/lib/components/Tabs/ScrollableTabs.js +22 -0
- package/mobile/lib/components/Tabs/ScrollableTabs.js.map +1 -0
- package/mobile/lib/components/Tabs/Tabs.js +9 -2
- package/mobile/lib/components/Tabs/Tabs.js.map +1 -1
- package/mobile/lib/components/Tabs/TabsContent.d.ts +12 -0
- package/mobile/lib/components/Tabs/renderGroupTab.d.ts +2 -2
- package/mobile/lib/components/Tabs/renderGroupTab.js +13 -5
- package/mobile/lib/components/Tabs/renderGroupTab.js.map +1 -1
- package/mobile/lib/components/Tabs/renderTab.d.ts +2 -1
- package/mobile/lib/components/Tabs/renderTab.js +4 -6
- package/mobile/lib/components/Tabs/renderTab.js.map +1 -1
- package/mobile/lib/components/Tabs/tabItemClasses.d.ts +6 -1
- package/mobile/lib/components/Tabs/tabItemClasses.js +58 -1
- package/mobile/lib/components/Tabs/tabItemClasses.js.map +1 -1
- package/mobile/lib/hooks/useBool.d.ts +9 -0
- package/mobile/lib/hooks/useBool.js +9 -0
- package/mobile/lib/hooks/useBool.js.map +1 -0
- package/mobile/lib/icons/IconName.d.ts +4 -2
- package/mobile/lib/icons/IconName.js +3 -1
- package/mobile/lib/icons/IconName.js.map +1 -1
- package/mobile/lib/model/ButtonVersion.d.ts +2 -2
- package/mobile/lib/setup-fixture.js +0 -1
- package/mobile/lib/setup-fixture.js.map +1 -1
- package/mobile/lib/ui-kit/Button/buttonClassNameConstants.js +3 -0
- package/mobile/lib/ui-kit/Button/buttonClassNameConstants.js.map +1 -1
- package/mobile/src/components/CarouselCatalogCard/CarouselCatalogCard.tsx +0 -1
- package/mobile/src/components/CarouselProductCard/CarouselProductCard.tsx +0 -1
- package/mobile/src/components/CarouselRecommendationCard/CarouselRecommendationCard.example.json +6 -3
- package/mobile/src/components/CarouselRecommendationCard/CarouselRecommendationCard.tsx +2 -0
- package/mobile/src/components/CarouselRecommendationCard/CarouselRecommendationCard.ui.json +7 -0
- package/mobile/src/components/CarouselRecommendationCard/CarouselRecommendationCardContent.ts +5 -9
- package/mobile/src/components/Footer/Footer.tsx +1 -1
- package/mobile/src/components/Footer/MediaButton.tsx +19 -17
- package/mobile/src/components/Header/DropdownMenu.tsx +7 -5
- package/mobile/src/components/Header/HeaderChatBotButton.tsx +45 -0
- package/mobile/src/components/Header/HeaderContent.ts +7 -1
- package/mobile/src/components/Header/HeaderSecondaryMenu.tsx +20 -30
- package/mobile/src/components/Header/HeaderSecondaryMenuButton.tsx +24 -5
- package/mobile/src/components/Header/useChatBot.ts +16 -0
- package/mobile/src/components/Tabs/LinkTab.tsx +5 -13
- package/mobile/src/components/Tabs/ScrollableTabs.tsx +55 -0
- package/mobile/src/components/Tabs/Tabs.tsx +26 -4
- package/mobile/src/components/Tabs/TabsContent.ts +13 -0
- package/mobile/src/components/Tabs/renderGroupTab.tsx +30 -20
- package/mobile/src/components/Tabs/renderTab.tsx +8 -5
- package/mobile/src/components/Tabs/tabItemClasses.ts +65 -1
- package/mobile/src/hooks/useBool.ts +19 -0
- package/mobile/src/icons/HeadphonesIcon.svg +5 -0
- package/mobile/src/icons/IconName.ts +5 -5
- package/mobile/src/model/ButtonVersion.ts +9 -2
- package/mobile/src/setup-fixture.ts +0 -1
- package/mobile/src/ui-kit/Button/buttonClassNameConstants.ts +3 -0
- package/mobile/src/ui-kit/Img/ImgProps.ts +1 -0
- package/package.json +1 -1
- package/src/components/CarouselCatalogCard/CarouselCatalogCard.tsx +0 -1
- package/src/components/CarouselProductCard/CarouselProductCard.tsx +0 -1
- package/src/components/CarouselRecommendationCard/CarouselRecommendationCard.example.json +6 -3
- package/src/components/CarouselRecommendationCard/CarouselRecommendationCard.fixture.tsx +20 -5
- package/src/components/CarouselRecommendationCard/CarouselRecommendationCard.tsx +2 -0
- package/src/components/CarouselRecommendationCard/CarouselRecommendationCard.ui.json +7 -0
- package/src/components/CarouselRecommendationCard/CarouselRecommendationCardContent.ts +5 -9
- package/src/components/Footer/Footer.mobile.tsx +1 -1
- package/src/components/Footer/Footer.tsx +2 -2
- package/src/components/Footer/MediaButton.tsx +19 -17
- package/src/components/Footer/SocialMedia.tsx +4 -5
- package/src/components/Header/DropdownMenu.tsx +7 -5
- package/src/components/Header/Header.fixture.tsx +3 -3
- package/src/components/Header/Header.tsx +13 -5
- package/src/components/Header/HeaderChatBotButton.tsx +45 -0
- package/src/components/Header/HeaderContent.ts +7 -1
- package/src/components/Header/HeaderSecondaryMenu.tsx +20 -30
- package/src/components/Header/HeaderSecondaryMenuButton.tsx +24 -5
- package/src/components/Header/useChatBot.ts +16 -0
- package/src/components/Tabs/LinkTab.tsx +5 -13
- package/src/components/Tabs/ScrollableTabs.tsx +55 -0
- package/src/components/Tabs/Tabs.fixture.tsx +22 -0
- package/src/components/Tabs/Tabs.tsx +26 -4
- package/src/components/Tabs/TabsContent.ts +13 -0
- package/src/components/Tabs/renderGroupTab.tsx +30 -20
- package/src/components/Tabs/renderTab.tsx +8 -5
- package/src/components/Tabs/tabItemClasses.ts +65 -1
- package/src/hooks/useBool.ts +19 -0
- package/src/icons/HeadphonesIcon.svg +5 -0
- package/src/icons/IconName.ts +6 -340
- package/src/model/ButtonVersion.ts +9 -2
- package/src/setup-fixture.ts +0 -1
- package/src/ui-kit/Button/buttonClassNameConstants.ts +3 -0
- package/src/ui-kit/Img/ImgProps.ts +1 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IconName.js","sourceRoot":"","sources":["../../src/icons/IconName.ts"],"names":[],"mappings":"AACA,0BAA0B;AAC1B,uCAAuC;AAEvC,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAC;IAC3C,mBAAmB,EAAE,cAAc,EAAE,iBAAiB,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,gBAAgB,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,oBAAoB,EAAE,SAAS,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,SAAS,EAAE,oBAAoB,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,EAAE,WAAW,EAAE,cAAc,EAAE,qBAAqB,EAAE,UAAU,EAAE,iBAAiB;
|
|
1
|
+
{"version":3,"file":"IconName.js","sourceRoot":"","sources":["../../src/icons/IconName.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @title Тема кнопки
|
|
3
|
-
* @enumNames ["Основная", "Второстепенная", "Белая", "Ссылка", "Прозрачная", "Наследуемая"]
|
|
3
|
+
* @enumNames ["Основная", "Второстепенная", "Белая", "Ссылка", "Прозрачная", "Серая", "Наследуемая"]
|
|
4
4
|
* @default primary
|
|
5
5
|
*/
|
|
6
|
-
export declare type ButtonVersion = 'primary' | 'secondary' | 'white' | 'link' | 'transparent' | '';
|
|
6
|
+
export declare type ButtonVersion = 'primary' | 'secondary' | 'white' | 'link' | 'transparent' | 'gray' | '';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup-fixture.js","sourceRoot":"","sources":["../src/setup-fixture.ts"],"names":[],"mappings":"AAAA,OAAO,mCAAmC,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,GAAG,MAAM,YAAY,CAAC;AAE7B,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAE3B,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAS,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAE/D,OAAO;QACL,IAAI,EAAE,GAAG,UAAU,CAAC,QAAQ,CAAC,MAAM,GAAG,eAAe,CAAC,SAAS,cAAc;QAC7E,QAAQ,EAAE,eAAe;QACzB,KAAK,EAAE,EAAE;QACT,IAAI,EAAE,CAAC,GAAW,EAAE,EAAE;YACpB,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;YAC5C,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC;QACD,OAAO,EAAE,CAAC,GAAW,EAAE,EAAE;YACvB,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;YAC/C,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC;KACF,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,gBAAgB,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,aAAa,EAAO,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE;IAC7D,EAAE,CAAC,cAAc,EAAE,CAAC;IACpB,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"setup-fixture.js","sourceRoot":"","sources":["../src/setup-fixture.ts"],"names":[],"mappings":"AAAA,OAAO,mCAAmC,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,GAAG,MAAM,YAAY,CAAC;AAE7B,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAE3B,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAS,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAE/D,OAAO;QACL,IAAI,EAAE,GAAG,UAAU,CAAC,QAAQ,CAAC,MAAM,GAAG,eAAe,CAAC,SAAS,cAAc;QAC7E,QAAQ,EAAE,eAAe;QACzB,KAAK,EAAE,EAAE;QACT,IAAI,EAAE,CAAC,GAAW,EAAE,EAAE;YACpB,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;YAC5C,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC;QACD,OAAO,EAAE,CAAC,GAAW,EAAE,EAAE;YACvB,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;YAC/C,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC;KACF,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,gBAAgB,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,aAAa,EAAO,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE;IAC7D,EAAE,CAAC,cAAc,EAAE,CAAC;IACpB,OAAO,CAAC,EAAE,CAAC,CAAC;AACd,CAAC,CAAC,CAAC"}
|
|
@@ -4,6 +4,7 @@ export const buttonStyleMap = {
|
|
|
4
4
|
white: 'text-primary-main bg-white hover:text-white hover:bg-primary-hover active:bg-white active:text-primary-main',
|
|
5
5
|
link: '',
|
|
6
6
|
transparent: '',
|
|
7
|
+
gray: 'text-primary-main bg-main-divider hover:text-white hover:bg-primary-hover active:bg-primary-active',
|
|
7
8
|
'': '',
|
|
8
9
|
};
|
|
9
10
|
const DisabledStyle = 'bg-main-divider text-main-disabled';
|
|
@@ -13,6 +14,7 @@ export const buttonDisabledStyleMap = {
|
|
|
13
14
|
white: DisabledStyle,
|
|
14
15
|
link: '',
|
|
15
16
|
transparent: '',
|
|
17
|
+
gray: DisabledStyle,
|
|
16
18
|
'': '',
|
|
17
19
|
};
|
|
18
20
|
export const buttonStyle = 'text-center font-sans select-none';
|
|
@@ -22,6 +24,7 @@ export const iconStyleMap = {
|
|
|
22
24
|
white: 'group-hover/btn:brightness-0 group-hover/btn:invert',
|
|
23
25
|
link: '',
|
|
24
26
|
transparent: '',
|
|
27
|
+
gray: 'group-hover/btn:brightness-0 group-hover/btn:invert',
|
|
25
28
|
'': '',
|
|
26
29
|
};
|
|
27
30
|
//# sourceMappingURL=buttonClassNameConstants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buttonClassNameConstants.js","sourceRoot":"","sources":["../../../src/ui-kit/Button/buttonClassNameConstants.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,cAAc,GAAkC;IAC3D,OAAO,EAAE,4EAA4E;IACrF,SAAS,EACP,oGAAoG;IACtG,KAAK,EACH,6GAA6G;IAC/G,IAAI,EAAE,EAAE;IACR,WAAW,EAAE,EAAE;IACf,EAAE,EAAE,EAAE;CACP,CAAC;AAEF,MAAM,aAAa,GAAG,oCAAoC,CAAC;AAE3D,MAAM,CAAC,MAAM,sBAAsB,GAAkC;IACnE,OAAO,EAAE,aAAa;IACtB,SAAS,EAAE,aAAa;IACxB,KAAK,EAAE,aAAa;IACpB,IAAI,EAAE,EAAE;IACR,WAAW,EAAE,EAAE;IACf,EAAE,EAAE,EAAE;CACP,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,mCAAmC,CAAC;AAE/D,MAAM,CAAC,MAAM,YAAY,GAAkC;IACzD,OAAO,EAAE,qDAAqD;IAC9D,SAAS,EAAE,qDAAqD;IAChE,KAAK,EAAE,qDAAqD;IAC5D,IAAI,EAAE,EAAE;IACR,WAAW,EAAE,EAAE;IACf,EAAE,EAAE,EAAE;CACP,CAAC"}
|
|
1
|
+
{"version":3,"file":"buttonClassNameConstants.js","sourceRoot":"","sources":["../../../src/ui-kit/Button/buttonClassNameConstants.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,cAAc,GAAkC;IAC3D,OAAO,EAAE,4EAA4E;IACrF,SAAS,EACP,oGAAoG;IACtG,KAAK,EACH,6GAA6G;IAC/G,IAAI,EAAE,EAAE;IACR,WAAW,EAAE,EAAE;IACf,IAAI,EAAE,oGAAoG;IAC1G,EAAE,EAAE,EAAE;CACP,CAAC;AAEF,MAAM,aAAa,GAAG,oCAAoC,CAAC;AAE3D,MAAM,CAAC,MAAM,sBAAsB,GAAkC;IACnE,OAAO,EAAE,aAAa;IACtB,SAAS,EAAE,aAAa;IACxB,KAAK,EAAE,aAAa;IACpB,IAAI,EAAE,EAAE;IACR,WAAW,EAAE,EAAE;IACf,IAAI,EAAE,aAAa;IACnB,EAAE,EAAE,EAAE;CACP,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,mCAAmC,CAAC;AAE/D,MAAM,CAAC,MAAM,YAAY,GAAkC;IACzD,OAAO,EAAE,qDAAqD;IAC9D,SAAS,EAAE,qDAAqD;IAChE,KAAK,EAAE,qDAAqD;IAC5D,IAAI,EAAE,EAAE;IACR,WAAW,EAAE,EAAE;IACf,IAAI,EAAE,qDAAqD;IAC3D,EAAE,EAAE,EAAE;CACP,CAAC"}
|
|
@@ -20,7 +20,6 @@ export const CarouselCatalogCard = JSX<CarouselCatalogCardProps>(
|
|
|
20
20
|
({ className = '', title, description, image, price, button, colors, ...rest }) => (
|
|
21
21
|
<BlockWrapper
|
|
22
22
|
className={`border box-border border-gray p-7 min-w-[392px] flex flex-col justify-left ${className}`}
|
|
23
|
-
role="listitem"
|
|
24
23
|
{...rest}
|
|
25
24
|
>
|
|
26
25
|
{image?.src ? <Img className="mb-5 flex justify-center" image={image} /> : null}
|
package/mobile/src/components/CarouselRecommendationCard/CarouselRecommendationCard.example.json
CHANGED
|
@@ -10,9 +10,12 @@
|
|
|
10
10
|
"title": "Заголовок 1",
|
|
11
11
|
"description": "Описание 1",
|
|
12
12
|
"socialMedia": [
|
|
13
|
-
{
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
{
|
|
14
|
+
"href": "https://t.me",
|
|
15
|
+
"target": "_blank",
|
|
16
|
+
"version": "gray",
|
|
17
|
+
"rounded": false
|
|
18
|
+
}
|
|
16
19
|
],
|
|
17
20
|
"version": "primary"
|
|
18
21
|
}
|
|
@@ -21,6 +21,7 @@ export const CarouselRecommendationCard = JSX<RecommendationCardProps>(
|
|
|
21
21
|
items = [],
|
|
22
22
|
socialMedia = [],
|
|
23
23
|
title,
|
|
24
|
+
version = 'primary',
|
|
24
25
|
...rest
|
|
25
26
|
}) => {
|
|
26
27
|
const tileTitle = title ? (
|
|
@@ -39,6 +40,7 @@ export const CarouselRecommendationCard = JSX<RecommendationCardProps>(
|
|
|
39
40
|
BORDER_STYLE,
|
|
40
41
|
className,
|
|
41
42
|
)}
|
|
43
|
+
version={version}
|
|
42
44
|
{...rest}
|
|
43
45
|
>
|
|
44
46
|
<BaseTile className="flex justify-between" title={tileTitle} image={tileImage}>
|
package/mobile/src/components/CarouselRecommendationCard/CarouselRecommendationCardContent.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
+
import type { BlockVersion } from '../../model/BlockVersion';
|
|
1
2
|
import type { HeadlineCommonProps } from '../../model/HeadlineType';
|
|
2
|
-
import type { LinkCommonProps } from '../../model/LinkProps';
|
|
3
3
|
import type { Picture } from '../../model/Picture';
|
|
4
|
-
import type { ButtonProps } from '../../ui-kit/Button/ButtonProps';
|
|
4
|
+
import type { ButtonWithIconProps, ButtonProps } from '../../ui-kit/Button/ButtonProps';
|
|
5
5
|
import type { ListContent } from '../../ui-kit/List/ListContent';
|
|
6
6
|
|
|
7
7
|
/**
|
|
@@ -10,14 +10,9 @@ import type { ListContent } from '../../ui-kit/List/ListContent';
|
|
|
10
10
|
export interface CarouselRecommendationCardContent extends HeadlineCommonProps, ListContent {
|
|
11
11
|
/**
|
|
12
12
|
* @title Соц сети
|
|
13
|
-
* @minItems
|
|
14
|
-
* @default [
|
|
15
|
-
* { "href": "https://t.me" },
|
|
16
|
-
* { "href": "https://vk.com" },
|
|
17
|
-
* { "href": "https://ok.ru" },
|
|
18
|
-
* ]
|
|
13
|
+
* @minItems 1
|
|
19
14
|
*/
|
|
20
|
-
socialMedia?:
|
|
15
|
+
socialMedia?: ButtonWithIconProps[];
|
|
21
16
|
/**
|
|
22
17
|
* @default {
|
|
23
18
|
* "format": "webp",
|
|
@@ -40,4 +35,5 @@ export interface CarouselRecommendationCardContent extends HeadlineCommonProps,
|
|
|
40
35
|
* }
|
|
41
36
|
*/
|
|
42
37
|
button?: ButtonProps;
|
|
38
|
+
version?: BlockVersion;
|
|
43
39
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { JSX } from '@redneckz/uni-jsx';
|
|
2
|
-
import type { UniBlockProps } from '../../model/JSXBlock';
|
|
3
2
|
import { projectSettings } from '../../ProjectSettings';
|
|
3
|
+
import type { UniBlockProps } from '../../model/JSXBlock';
|
|
4
4
|
import type { SitemapDataProps } from '../../services/sitemap/SitemapProps';
|
|
5
5
|
import { useSWRResource } from '../../services/sitemap/useSWRResource';
|
|
6
6
|
import { Button } from '../../ui-kit/Button/Button';
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { JSX } from '@redneckz/uni-jsx';
|
|
2
|
-
import { useLink } from '../../hooks/useLink';
|
|
3
2
|
import { Img } from '../../ui-kit/Img/Img';
|
|
4
3
|
import { getIconWithVersion } from '../../utils/getIconWithVersion';
|
|
5
4
|
import { style } from '../../utils/style';
|
|
6
5
|
import type { Picture } from '../../model/Picture';
|
|
7
6
|
import type { IconVersion } from '../../model/IconVersion';
|
|
7
|
+
import { Button } from '../../ui-kit/Button/Button';
|
|
8
|
+
import type { ButtonProps } from '../../ui-kit/Button/ButtonProps';
|
|
8
9
|
|
|
9
10
|
const ICONS_MAP: Array<{
|
|
10
11
|
origins: string[];
|
|
@@ -45,11 +46,9 @@ const ICONS_MAP: Array<{
|
|
|
45
46
|
|
|
46
47
|
export type ButtonSize = 'default' | 'small';
|
|
47
48
|
|
|
48
|
-
interface MediaButtonProps {
|
|
49
|
-
href?: string;
|
|
50
|
-
isRounded?: boolean;
|
|
51
|
-
buttonSize?: ButtonSize;
|
|
49
|
+
interface MediaButtonProps extends ButtonProps {
|
|
52
50
|
iconVersion?: IconVersion;
|
|
51
|
+
buttonSize?: ButtonSize;
|
|
53
52
|
}
|
|
54
53
|
|
|
55
54
|
const buttonSizeStyles = {
|
|
@@ -58,29 +57,32 @@ const buttonSizeStyles = {
|
|
|
58
57
|
};
|
|
59
58
|
|
|
60
59
|
export const MediaButton = JSX<MediaButtonProps>(
|
|
61
|
-
({
|
|
62
|
-
const
|
|
63
|
-
const { href, onClick } = link(rest);
|
|
60
|
+
({ iconVersion = 'color', buttonSize = 'default', rounded = false, ...rest }) => {
|
|
61
|
+
const { href, version } = rest;
|
|
64
62
|
|
|
65
63
|
const { icon, label } =
|
|
66
64
|
ICONS_MAP.find(({ origins }) => origins.some((_) => href?.includes(_))) || {};
|
|
67
65
|
const iconWithVersion = icon ? { ...getIconWithVersion(icon), iconVersion } : null;
|
|
68
66
|
|
|
69
|
-
return
|
|
70
|
-
<
|
|
67
|
+
return (
|
|
68
|
+
<Button
|
|
71
69
|
className={style(
|
|
72
70
|
'group/media flex items-center justify-center box-border',
|
|
73
71
|
buttonSizeStyles[buttonSize],
|
|
74
|
-
|
|
75
|
-
'border
|
|
72
|
+
rounded ? 'rounded-full' : 'rounded-md',
|
|
73
|
+
'border border-solid hover:border-transparent',
|
|
74
|
+
'group-data-primary:border-main-divider',
|
|
76
75
|
'hover:bg-primary-main hover:text-black',
|
|
77
|
-
'group-data-secondary:bg-white group-data-secondary:hover:bg-secondary-hover',
|
|
76
|
+
'group-data-secondary:bg-white border-main-divider group-data-secondary:hover:bg-secondary-hover',
|
|
77
|
+
'group-data-gray:border-green',
|
|
78
|
+
|
|
79
|
+
buttonSizeStyles[buttonSize],
|
|
78
80
|
)}
|
|
79
|
-
href={href}
|
|
80
81
|
aria-label={label}
|
|
81
82
|
target="_blank"
|
|
82
83
|
rel="noopener noreferrer"
|
|
83
|
-
|
|
84
|
+
version={version}
|
|
85
|
+
{...rest}
|
|
84
86
|
>
|
|
85
87
|
{iconWithVersion ? (
|
|
86
88
|
<Img
|
|
@@ -91,7 +93,7 @@ export const MediaButton = JSX<MediaButtonProps>(
|
|
|
91
93
|
asSVG
|
|
92
94
|
/>
|
|
93
95
|
) : null}
|
|
94
|
-
</
|
|
95
|
-
)
|
|
96
|
+
</Button>
|
|
97
|
+
);
|
|
96
98
|
},
|
|
97
99
|
);
|
|
@@ -3,6 +3,7 @@ import { useCallback, useState } from '@redneckz/uni-jsx/lib/hooks';
|
|
|
3
3
|
import { useLink } from '../../hooks/useLink';
|
|
4
4
|
import { useOutsideClick } from '../../hooks/useOutsideClick';
|
|
5
5
|
import type { LinkProps } from '../../model/LinkProps';
|
|
6
|
+
import { style } from '../../utils/style';
|
|
6
7
|
|
|
7
8
|
interface DropdownMenuProps {
|
|
8
9
|
className?: string;
|
|
@@ -21,7 +22,7 @@ export const DropdownMenu = JSX<DropdownMenuProps>(({ className = '', items, act
|
|
|
21
22
|
|
|
22
23
|
return (
|
|
23
24
|
<div
|
|
24
|
-
className={
|
|
25
|
+
className={style(visible ? 'bg-white rounded-md shadow-blue-gray' : '', className)}
|
|
25
26
|
ref={ref}
|
|
26
27
|
>
|
|
27
28
|
<button
|
|
@@ -39,15 +40,16 @@ export const DropdownMenu = JSX<DropdownMenuProps>(({ className = '', items, act
|
|
|
39
40
|
))}
|
|
40
41
|
</button>
|
|
41
42
|
<div
|
|
42
|
-
className={
|
|
43
|
+
className={style('flex flex-col rounded-md bg-white p-6 pb-2', visible ? '' : 'hidden')}
|
|
43
44
|
aria-hidden={!visible}
|
|
44
45
|
>
|
|
45
46
|
{items?.map((item, i) => (
|
|
46
47
|
<a
|
|
47
48
|
key={item.href || String(i)}
|
|
48
|
-
className={
|
|
49
|
-
|
|
50
|
-
|
|
49
|
+
className={style(
|
|
50
|
+
'text-l-light pb-4 hover:text-primary-main',
|
|
51
|
+
item === activeItem ? 'text-primary-main' : '',
|
|
52
|
+
)}
|
|
51
53
|
{...link(item)}
|
|
52
54
|
>
|
|
53
55
|
{item.text}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { JSX } from '@redneckz/uni-jsx';
|
|
2
|
+
import { useBool } from '../../hooks/useBool';
|
|
3
|
+
import type { IconVersion } from '../../model/IconVersion';
|
|
4
|
+
import { style } from '../../utils/style';
|
|
5
|
+
import type { ChatBot as ChatBotWithEmptyOption } from './HeaderContent';
|
|
6
|
+
import { HeaderSecondaryMenuButton } from './HeaderSecondaryMenuButton';
|
|
7
|
+
import { useChatBot } from './useChatBot';
|
|
8
|
+
|
|
9
|
+
export type ChatBot = Exclude<ChatBotWithEmptyOption, ''>;
|
|
10
|
+
|
|
11
|
+
interface HeaderChatBotButtonProps {
|
|
12
|
+
className?: string;
|
|
13
|
+
iconVersion?: IconVersion;
|
|
14
|
+
chat?: ChatBot;
|
|
15
|
+
onClick?: () => void;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
const CHAT_BUTTON_EXTERNAL_NAME = 'text-page__btn-chat';
|
|
19
|
+
|
|
20
|
+
export const HeaderChatBotButton = JSX<HeaderChatBotButtonProps>((props) => {
|
|
21
|
+
const [loadRequested, { setTrue: load }] = useBool();
|
|
22
|
+
|
|
23
|
+
return loadRequested ? (
|
|
24
|
+
<HeaderChatBotButtonWithLoader {...props} />
|
|
25
|
+
) : (
|
|
26
|
+
renderChatBotButton({ ...props, onClick: load })
|
|
27
|
+
);
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
const HeaderChatBotButtonWithLoader = JSX<HeaderChatBotButtonProps>(
|
|
31
|
+
({ chat = 'personal', ...rest }) => {
|
|
32
|
+
useChatBot(chat);
|
|
33
|
+
|
|
34
|
+
return renderChatBotButton(rest);
|
|
35
|
+
},
|
|
36
|
+
);
|
|
37
|
+
|
|
38
|
+
const renderChatBotButton = ({ className, iconVersion, onClick }: HeaderChatBotButtonProps) => (
|
|
39
|
+
<HeaderSecondaryMenuButton
|
|
40
|
+
className={style(CHAT_BUTTON_EXTERNAL_NAME, className)}
|
|
41
|
+
image={{ icon: 'HeadphonesIcon', iconVersion }}
|
|
42
|
+
ariaLabel="Чат"
|
|
43
|
+
onClick={onClick}
|
|
44
|
+
/>
|
|
45
|
+
);
|
|
@@ -7,6 +7,12 @@ import type { IconProps, Picture } from '../../model/Picture';
|
|
|
7
7
|
*/
|
|
8
8
|
export type SubMenuItem = LinkProps & IconProps;
|
|
9
9
|
|
|
10
|
+
/**
|
|
11
|
+
* @title Чат-бот
|
|
12
|
+
* @enumNames ["", "Для физических лиц", "Для юридических лиц"]
|
|
13
|
+
*/
|
|
14
|
+
export type ChatBot = '' | 'personal' | 'business';
|
|
15
|
+
|
|
10
16
|
/**
|
|
11
17
|
* @title Ссылка дополнительного меню
|
|
12
18
|
* @required ["text", "href"]
|
|
@@ -28,11 +34,11 @@ export interface Logo {
|
|
|
28
34
|
|
|
29
35
|
/**
|
|
30
36
|
* @title Шапка (для мобильных горизонтальная прокрутка shift+mouseScroll)
|
|
31
|
-
* @required ["defaultLocation", "topItems"]
|
|
32
37
|
*/
|
|
33
38
|
export interface HeaderContent {
|
|
34
39
|
/** @hidden */
|
|
35
40
|
showSubMenu?: boolean;
|
|
36
41
|
/** @hidden */
|
|
37
42
|
bgColor?: BgColorVersion;
|
|
43
|
+
chat?: ChatBot;
|
|
38
44
|
}
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { JSX } from '@redneckz/uni-jsx';
|
|
2
|
-
import {
|
|
2
|
+
import { useBool } from '../../hooks/useBool';
|
|
3
3
|
import { useLocation } from '../../hooks/useLocation';
|
|
4
4
|
import type { BlockVersion } from '../../model/BlockVersion';
|
|
5
5
|
import type { IconVersion } from '../../model/IconVersion';
|
|
6
6
|
import type { ForeignOffice } from '../../services/sitemap/SitemapProps';
|
|
7
|
-
import { Img } from '../../ui-kit/Img/Img';
|
|
8
7
|
import { Location } from '../../ui-kit/Location/Location';
|
|
9
8
|
import { TopItem } from '../../ui-kit/TopItem/TopItem';
|
|
9
|
+
import { style } from '../../utils/style';
|
|
10
|
+
import { HeaderChatBotButton } from './HeaderChatBotButton';
|
|
11
|
+
import type { ChatBot } from './HeaderContent';
|
|
10
12
|
import { HeaderSecondaryMenuButton } from './HeaderSecondaryMenuButton';
|
|
11
13
|
|
|
12
14
|
interface HeaderSecondaryMenuContent {
|
|
@@ -14,6 +16,7 @@ interface HeaderSecondaryMenuContent {
|
|
|
14
16
|
defaultLocation?: string;
|
|
15
17
|
officesLink?: string;
|
|
16
18
|
foreignOffices?: ForeignOffice[];
|
|
19
|
+
chat?: ChatBot;
|
|
17
20
|
}
|
|
18
21
|
|
|
19
22
|
export interface HeaderSecondaryMenuProps extends HeaderSecondaryMenuContent {
|
|
@@ -21,22 +24,16 @@ export interface HeaderSecondaryMenuProps extends HeaderSecondaryMenuContent {
|
|
|
21
24
|
}
|
|
22
25
|
|
|
23
26
|
export const HeaderSecondaryMenu = JSX<HeaderSecondaryMenuProps>(
|
|
24
|
-
({ version, className, officesLink, defaultLocation = 'Москва', foreignOffices }) => {
|
|
25
|
-
const [isShowLocationModal,
|
|
27
|
+
({ version, className, officesLink, defaultLocation = 'Москва', foreignOffices, chat }) => {
|
|
28
|
+
const [isShowLocationModal, { setTrue: showLocationModal, setFalse: hideLocationModal }] =
|
|
29
|
+
useBool();
|
|
26
30
|
|
|
27
31
|
const [location, onChangeLocation] = useLocation(defaultLocation);
|
|
28
32
|
|
|
29
|
-
const showLocationModal = useCallback(() => {
|
|
30
|
-
setShowLocationModal(true);
|
|
31
|
-
}, []);
|
|
32
|
-
const hideLocationModal = useCallback(() => {
|
|
33
|
-
setShowLocationModal(false);
|
|
34
|
-
}, []);
|
|
35
|
-
|
|
36
33
|
const iconVersion: IconVersion = version === 'transparent' ? 'white' : 'black';
|
|
37
34
|
|
|
38
35
|
return (
|
|
39
|
-
<div className={
|
|
36
|
+
<div className={style('flex items-center', className)}>
|
|
40
37
|
<TopItem
|
|
41
38
|
className="mr-5"
|
|
42
39
|
flat={true}
|
|
@@ -54,28 +51,21 @@ export const HeaderSecondaryMenu = JSX<HeaderSecondaryMenuProps>(
|
|
|
54
51
|
ariaLabel="Список всех доступных офисов и банкоматов"
|
|
55
52
|
/>
|
|
56
53
|
) : null}
|
|
54
|
+
{chat ? (
|
|
55
|
+
<HeaderChatBotButton className="mr-5" iconVersion={iconVersion} chat={chat} />
|
|
56
|
+
) : null}
|
|
57
57
|
<HeaderSecondaryMenuButton
|
|
58
|
-
className="mr-5
|
|
58
|
+
className="mr-5"
|
|
59
|
+
image={{ icon: 'LoupeIcon', iconVersion }}
|
|
59
60
|
ariaLabel="Поиск по сайту"
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
image={{ icon: 'LoupeIcon', iconVersion }}
|
|
63
|
-
className="h-full pointer-events-none"
|
|
64
|
-
imageClassName="group-hover/btn:text-primary-hover group-hover/btn:invert-0 pointer-events-none"
|
|
65
|
-
asSVG
|
|
66
|
-
/>
|
|
67
|
-
</HeaderSecondaryMenuButton>
|
|
61
|
+
disabled={true}
|
|
62
|
+
/>
|
|
68
63
|
<HeaderSecondaryMenuButton
|
|
69
|
-
|
|
64
|
+
image={{ icon: 'GridIcon', iconVersion }}
|
|
70
65
|
ariaLabel="Дополнительные ссылки"
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
className="h-full bg-main-divider/20 rounded-full pointer-events-none"
|
|
75
|
-
imageClassName="group-hover/btn:text-primary-hover group-hover/btn:invert-0"
|
|
76
|
-
asSVG
|
|
77
|
-
/>
|
|
78
|
-
</HeaderSecondaryMenuButton>
|
|
66
|
+
isRounded={true}
|
|
67
|
+
disabled={true}
|
|
68
|
+
/>
|
|
79
69
|
{isShowLocationModal ? (
|
|
80
70
|
<Location
|
|
81
71
|
currentLocation={location}
|
|
@@ -1,19 +1,38 @@
|
|
|
1
1
|
import { JSX } from '@redneckz/uni-jsx';
|
|
2
|
+
import { Img } from '../../ui-kit/Img/Img';
|
|
3
|
+
import type { ImageContent } from '../../ui-kit/Img/ImgProps';
|
|
4
|
+
import { style } from '../../utils/style';
|
|
2
5
|
|
|
3
|
-
interface HeaderSecondaryMenuButtonProps {
|
|
6
|
+
export interface HeaderSecondaryMenuButtonProps extends ImageContent {
|
|
4
7
|
className?: string;
|
|
8
|
+
isRounded?: boolean;
|
|
9
|
+
disabled?: boolean;
|
|
5
10
|
ariaLabel?: string;
|
|
11
|
+
onClick?: (ev?: { preventDefault: () => void }) => void;
|
|
6
12
|
}
|
|
7
13
|
|
|
8
14
|
export const HeaderSecondaryMenuButton = JSX<HeaderSecondaryMenuButtonProps>(
|
|
9
|
-
({ className
|
|
15
|
+
({ className, isRounded, disabled, ariaLabel, image, onClick }) => (
|
|
10
16
|
<button
|
|
17
|
+
className={style(
|
|
18
|
+
'group/btn border-0 p-0 flex items-center bg-inherit',
|
|
19
|
+
isRounded
|
|
20
|
+
? 'w-8 h-8 text-secondary-light hover:text-secondary-hove'
|
|
21
|
+
: 'w-6 h-6 text-primary-text hover:text-primary-main',
|
|
22
|
+
'group-data-transparent:text-white',
|
|
23
|
+
className,
|
|
24
|
+
)}
|
|
11
25
|
type="button"
|
|
12
|
-
|
|
13
|
-
disabled={true}
|
|
26
|
+
disabled={disabled}
|
|
14
27
|
aria-label={ariaLabel}
|
|
28
|
+
onClick={onClick}
|
|
15
29
|
>
|
|
16
|
-
|
|
30
|
+
<Img
|
|
31
|
+
image={image}
|
|
32
|
+
className={style('h-full', isRounded ? 'bg-main-divider/20 rounded-full' : '')}
|
|
33
|
+
imageClassName="group-hover/btn:text-primary-hover group-hover/btn:invert-0"
|
|
34
|
+
asSVG
|
|
35
|
+
/>
|
|
17
36
|
</button>
|
|
18
37
|
),
|
|
19
38
|
);
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { useEffect } from '@redneckz/uni-jsx/lib/hooks';
|
|
2
|
+
import { useExternalNS } from '../../hooks/useExternalNS';
|
|
3
|
+
import { ChatBot } from './HeaderChatBotButton';
|
|
4
|
+
|
|
5
|
+
const CHATBOT_NAMESPACE = 'chatbot';
|
|
6
|
+
|
|
7
|
+
const CHATBOT_URL: Record<ChatBot, string> = {
|
|
8
|
+
personal: '//chat.mes.rshb.ru/assets/js/webchat_rshb',
|
|
9
|
+
business: '', //TODO: add url business chat
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
export const useChatBot = (chat: ChatBot) => {
|
|
13
|
+
useEffect(() => globalThis.localStorage?.setItem('webchat-keep-open', String(Date.now())), []);
|
|
14
|
+
|
|
15
|
+
return useExternalNS(CHATBOT_NAMESPACE, CHATBOT_URL[chat]);
|
|
16
|
+
};
|
|
@@ -1,22 +1,16 @@
|
|
|
1
1
|
import { JSX } from '@redneckz/uni-jsx';
|
|
2
2
|
import { useLink } from '../../hooks/useLink';
|
|
3
|
-
import {
|
|
4
|
-
ACTIVE_LINK_CLASSES,
|
|
5
|
-
ACTIVE_TEXT_CLASSES,
|
|
6
|
-
INACTIVE_LINK_CLASSES,
|
|
7
|
-
INACTIVE_TEXT_CLASSES,
|
|
8
|
-
LINK_CLASSES,
|
|
9
|
-
TEXT_CLASSES,
|
|
10
|
-
} from './tabItemClasses';
|
|
3
|
+
import { getLinkTabClassName } from './tabItemClasses';
|
|
11
4
|
import type { LinkTabData, TabData } from './TabsContent';
|
|
12
5
|
|
|
13
6
|
interface LinkTabProps {
|
|
14
7
|
tab: LinkTabData;
|
|
15
8
|
currentTab?: TabData;
|
|
9
|
+
isScrollable?: boolean;
|
|
16
10
|
}
|
|
17
11
|
|
|
18
12
|
export const LinkTab = JSX<LinkTabProps>((props) => {
|
|
19
|
-
const { tab, currentTab } = props;
|
|
13
|
+
const { tab, currentTab, isScrollable = false } = props;
|
|
20
14
|
const active = currentTab?.type === 'link' && currentTab.href === tab.href;
|
|
21
15
|
|
|
22
16
|
const link = useLink();
|
|
@@ -25,14 +19,12 @@ export const LinkTab = JSX<LinkTabProps>((props) => {
|
|
|
25
19
|
return (
|
|
26
20
|
<a
|
|
27
21
|
role="tab"
|
|
28
|
-
className={
|
|
22
|
+
className={getLinkTabClassName('link', active, isScrollable)}
|
|
29
23
|
target={tab.target}
|
|
30
24
|
href={adjustedProps.href}
|
|
31
25
|
onClick={adjustedProps.onClick}
|
|
32
26
|
>
|
|
33
|
-
<span className={
|
|
34
|
-
{tab.text}
|
|
35
|
-
</span>
|
|
27
|
+
<span className={getLinkTabClassName('text', active, isScrollable)}>{tab.text}</span>
|
|
36
28
|
</a>
|
|
37
29
|
);
|
|
38
30
|
});
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { JSX } from '@redneckz/uni-jsx';
|
|
2
|
+
import type { RenderTabProps } from './renderTab';
|
|
3
|
+
import type { TabData } from './TabsContent';
|
|
4
|
+
import { SwipeListContainer } from '../../ui-kit/SwipeListControl/SwipeListContainer';
|
|
5
|
+
import { useSwipeListScroll } from '../../ui-kit/SwipeListControl/useSwipeListScroll';
|
|
6
|
+
import { ScrollLeftButton, ScrollRightButton } from '../../ui-kit/Button/ArrowButton';
|
|
7
|
+
import { renderTab } from './renderTab';
|
|
8
|
+
|
|
9
|
+
interface ScrollableTabsProps extends RenderTabProps {
|
|
10
|
+
tabs?: TabData[];
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export type IsScrollButtonsShown = boolean[];
|
|
14
|
+
|
|
15
|
+
const scrollButtonStyle = 'absolute z-50 top-0';
|
|
16
|
+
|
|
17
|
+
export const ScrollableTabs = JSX<ScrollableTabsProps>((props) => {
|
|
18
|
+
const { tabs, onClick, currentTab, page, showCounter } = props;
|
|
19
|
+
|
|
20
|
+
const [containerRef, scroll] = useSwipeListScroll<HTMLDivElement>({
|
|
21
|
+
itemCount: tabs?.length || 0,
|
|
22
|
+
isCyclic: false,
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
return (
|
|
26
|
+
<div className="relative max-w-full m-auto">
|
|
27
|
+
<div className={`font-sans max-w-full w-full overflow-hidden relative bg-white`}>
|
|
28
|
+
<SwipeListContainer
|
|
29
|
+
containerRef={containerRef}
|
|
30
|
+
snapAlign="snap-start"
|
|
31
|
+
onVisibleIndicesChange={scroll.handleVisibleIndicesChange}
|
|
32
|
+
>
|
|
33
|
+
{tabs?.map(
|
|
34
|
+
renderTab({
|
|
35
|
+
onClick,
|
|
36
|
+
currentTab,
|
|
37
|
+
showCounter,
|
|
38
|
+
page,
|
|
39
|
+
isScrollable: true,
|
|
40
|
+
}),
|
|
41
|
+
)}
|
|
42
|
+
</SwipeListContainer>
|
|
43
|
+
</div>
|
|
44
|
+
{scroll.canScrollLeft ? (
|
|
45
|
+
<ScrollLeftButton className={`${scrollButtonStyle} left-6`} onClick={scroll.scrollLeft} />
|
|
46
|
+
) : null}
|
|
47
|
+
{scroll.canScrollRight ? (
|
|
48
|
+
<ScrollRightButton
|
|
49
|
+
className={`${scrollButtonStyle} rotate-180 right-6`}
|
|
50
|
+
onClick={scroll.scrollRight}
|
|
51
|
+
/>
|
|
52
|
+
) : null}
|
|
53
|
+
</div>
|
|
54
|
+
);
|
|
55
|
+
});
|