@anker-in/headless-ui 1.1.32 → 1.1.34-alpha.1768461697532
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/dist/cjs/biz-components/AccordionCards/index.d.ts +3 -3
- package/dist/cjs/biz-components/ActiveShelf/index.d.ts +222 -0
- package/dist/cjs/biz-components/ActiveShelf/index.js +2 -0
- package/dist/cjs/biz-components/ActiveShelf/index.js.map +7 -0
- package/dist/cjs/biz-components/ActiveShelf/types.d.ts +22 -0
- package/dist/cjs/biz-components/ActiveShelf/types.js +2 -0
- package/dist/cjs/biz-components/ActiveShelf/types.js.map +7 -0
- package/dist/cjs/biz-components/AiuiProvider/index.d.ts +7 -0
- package/dist/cjs/biz-components/AiuiProvider/index.js +1 -1
- package/dist/cjs/biz-components/AiuiProvider/index.js.map +2 -2
- package/dist/cjs/biz-components/AnchorNavigation/index.d.ts +42 -0
- package/dist/cjs/biz-components/AnchorNavigation/index.js +2 -0
- package/dist/cjs/biz-components/AnchorNavigation/index.js.map +7 -0
- package/dist/cjs/biz-components/AnchorNavigation/useAnchorPosition.d.ts +2 -0
- package/dist/cjs/biz-components/AnchorNavigation/useAnchorPosition.js +2 -0
- package/dist/cjs/biz-components/AnchorNavigation/useAnchorPosition.js.map +7 -0
- package/dist/cjs/biz-components/AplusDesc/index.d.ts +3 -3
- package/dist/cjs/biz-components/BrandCardLink/BrandCardLink.d.ts +3 -3
- package/dist/cjs/biz-components/BrandCardLink/BrandCardLink.js +1 -1
- package/dist/cjs/biz-components/BrandCardLink/BrandCardLink.js.map +1 -1
- package/dist/cjs/biz-components/BrandEquity/BrandEquity.d.ts +3 -3
- package/dist/cjs/biz-components/BrandEquity/BrandEquity.js +1 -1
- package/dist/cjs/biz-components/BrandEquity/BrandEquity.js.map +3 -3
- package/dist/cjs/biz-components/BrandEquity/types.d.ts +1 -0
- package/dist/cjs/biz-components/BrandEquity/types.js +1 -1
- package/dist/cjs/biz-components/BrandEquity/types.js.map +1 -1
- package/dist/cjs/biz-components/BuyOneGetOneShelf/ProductCard.d.ts +74 -0
- package/dist/cjs/biz-components/BuyOneGetOneShelf/ProductCard.js +2 -0
- package/dist/cjs/biz-components/BuyOneGetOneShelf/ProductCard.js.map +7 -0
- package/dist/cjs/biz-components/BuyOneGetOneShelf/hooks/useBogoDataTransform.d.ts +36 -0
- package/dist/cjs/biz-components/BuyOneGetOneShelf/hooks/useBogoDataTransform.js +2 -0
- package/dist/cjs/biz-components/BuyOneGetOneShelf/hooks/useBogoDataTransform.js.map +7 -0
- package/dist/cjs/biz-components/BuyOneGetOneShelf/index.d.ts +193 -0
- package/dist/cjs/biz-components/BuyOneGetOneShelf/index.js +2 -0
- package/dist/cjs/biz-components/BuyOneGetOneShelf/index.js.map +7 -0
- package/dist/cjs/biz-components/Category/index.d.ts +3 -3
- package/dist/cjs/biz-components/CreativeModule/index.d.ts +3 -3
- package/dist/cjs/biz-components/DownLoad/index.d.ts +3 -3
- package/dist/cjs/biz-components/Evaluate/index.d.ts +3 -3
- package/dist/cjs/biz-components/Evaluate/index.js +1 -1
- package/dist/cjs/biz-components/Evaluate/index.js.map +3 -3
- package/dist/cjs/biz-components/EventSchedule/index.d.ts +63 -0
- package/dist/cjs/biz-components/EventSchedule/index.js +2 -0
- package/dist/cjs/biz-components/EventSchedule/index.js.map +7 -0
- package/dist/cjs/biz-components/Faq/Faq.d.ts +3 -3
- package/dist/cjs/biz-components/FeatureCards/FeatureCards.d.ts +3 -3
- package/dist/cjs/biz-components/FeatureShowcase/FeatureShowcase.d.ts +3 -3
- package/dist/cjs/biz-components/Features/index.d.ts +3 -3
- package/dist/cjs/biz-components/FootCharger/index.d.ts +3 -3
- package/dist/cjs/biz-components/FooterNavigation/index.d.ts +3 -3
- package/dist/cjs/biz-components/GiftBox/index.d.ts +3 -3
- package/dist/cjs/biz-components/Graphic/index.d.ts +3 -3
- package/dist/cjs/biz-components/Graphic/index.js +1 -1
- package/dist/cjs/biz-components/Graphic/index.js.map +3 -3
- package/dist/cjs/biz-components/GraphicAttractionBlock/index.d.ts +3 -3
- package/dist/cjs/biz-components/GraphicMore/index.d.ts +3 -3
- package/dist/cjs/biz-components/GraphicOverlay/GraphicOverlay.d.ts +3 -3
- package/dist/cjs/biz-components/HeaderNavigation/MobileSidebarMenu.js +1 -1
- package/dist/cjs/biz-components/HeaderNavigation/MobileSidebarMenu.js.map +3 -3
- package/dist/cjs/biz-components/HeaderNavigation/SidebarDropdown.js +1 -1
- package/dist/cjs/biz-components/HeaderNavigation/SidebarDropdown.js.map +2 -2
- package/dist/cjs/biz-components/HeaderNavigation/index.d.ts +3 -3
- package/dist/cjs/biz-components/HeroBanner/Countdown.js +1 -1
- package/dist/cjs/biz-components/HeroBanner/Countdown.js.map +2 -2
- package/dist/cjs/biz-components/HeroBanner/HeroBanner.d.ts +6 -3
- package/dist/cjs/biz-components/HeroBanner/HeroBanner.js +1 -1
- package/dist/cjs/biz-components/HeroBanner/HeroBanner.js.map +3 -3
- package/dist/cjs/biz-components/IPRedirect/RegionBanner.d.ts +37 -0
- package/dist/cjs/biz-components/IPRedirect/RegionBanner.js +60 -0
- package/dist/cjs/biz-components/IPRedirect/RegionBanner.js.map +7 -0
- package/dist/cjs/biz-components/IPRedirect/RegionSelectorModal.d.ts +47 -0
- package/dist/cjs/biz-components/IPRedirect/RegionSelectorModal.js +69 -0
- package/dist/cjs/biz-components/IPRedirect/RegionSelectorModal.js.map +7 -0
- package/dist/cjs/biz-components/IPRedirect/index.d.ts +9 -0
- package/dist/cjs/biz-components/IPRedirect/index.js +2 -0
- package/dist/cjs/biz-components/IPRedirect/index.js.map +7 -0
- package/dist/cjs/biz-components/IPRedirect/type.d.ts +36 -0
- package/dist/cjs/biz-components/IPRedirect/type.js +2 -0
- package/dist/cjs/biz-components/IPRedirect/type.js.map +7 -0
- package/dist/cjs/biz-components/IPRedirect/useAutoRedirect.d.ts +66 -0
- package/dist/cjs/biz-components/IPRedirect/useAutoRedirect.js +2 -0
- package/dist/cjs/biz-components/IPRedirect/useAutoRedirect.js.map +7 -0
- package/dist/cjs/biz-components/IPRedirect/useDetectedRegionRedirect.d.ts +51 -0
- package/dist/cjs/biz-components/IPRedirect/useDetectedRegionRedirect.js +2 -0
- package/dist/cjs/biz-components/IPRedirect/useDetectedRegionRedirect.js.map +7 -0
- package/dist/cjs/biz-components/IPRedirect/useIPRedirect.d.ts +42 -0
- package/dist/cjs/biz-components/IPRedirect/useIPRedirect.js +2 -0
- package/dist/cjs/biz-components/IPRedirect/useIPRedirect.js.map +7 -0
- package/dist/cjs/biz-components/IPRedirect/useRedirectBanner.d.ts +108 -0
- package/dist/cjs/biz-components/IPRedirect/useRedirectBanner.js +2 -0
- package/dist/cjs/biz-components/IPRedirect/useRedirectBanner.js.map +7 -0
- package/dist/cjs/biz-components/IPRedirect/useRegionRedirectManager.d.ts +152 -0
- package/dist/cjs/biz-components/IPRedirect/useRegionRedirectManager.js +2 -0
- package/dist/cjs/biz-components/IPRedirect/useRegionRedirectManager.js.map +7 -0
- package/dist/cjs/biz-components/IPRedirect/useSavedRegionRedirect.d.ts +51 -0
- package/dist/cjs/biz-components/IPRedirect/useSavedRegionRedirect.js +2 -0
- package/dist/cjs/biz-components/IPRedirect/useSavedRegionRedirect.js.map +7 -0
- package/dist/cjs/biz-components/IPRedirect/utils.d.ts +222 -0
- package/dist/cjs/biz-components/IPRedirect/utils.js +2 -0
- package/dist/cjs/biz-components/IPRedirect/utils.js.map +7 -0
- package/dist/cjs/biz-components/ImageOverlayShelf/index.d.ts +130 -0
- package/dist/cjs/biz-components/ImageOverlayShelf/index.js +2 -0
- package/dist/cjs/biz-components/ImageOverlayShelf/index.js.map +7 -0
- package/dist/cjs/biz-components/ImageTextFeature/ImageTextFeature.d.ts +3 -3
- package/dist/cjs/biz-components/ImageTextFeature/ImageTextFeature.js +1 -1
- package/dist/cjs/biz-components/ImageTextFeature/ImageTextFeature.js.map +3 -3
- package/dist/cjs/biz-components/ImageWithText/ImageWithText.d.ts +3 -3
- package/dist/cjs/biz-components/Ksp/index.d.ts +3 -3
- package/dist/cjs/biz-components/Listing/components/PaidShipping/index.d.ts +4 -4
- package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/BenefitsTab.d.ts +3 -3
- package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductBundle/index.d.ts +3 -3
- package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductExchangePurchase/index.d.ts +3 -3
- package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductFreeGift/index.d.ts +3 -3
- package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductHighlight/index.d.ts +3 -3
- package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductOptions/index.d.ts +3 -3
- package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGallery/index.d.ts +3 -3
- package/dist/cjs/biz-components/Listing/components/ProductCard/ProductSummary/index.d.ts +3 -3
- package/dist/cjs/biz-components/Listing/components/PurchaseBar/index.d.ts +3 -3
- package/dist/cjs/biz-components/Marquee/Marquee.d.ts +3 -3
- package/dist/cjs/biz-components/Marquee/Marquee.js +1 -1
- package/dist/cjs/biz-components/Marquee/Marquee.js.map +3 -3
- package/dist/cjs/biz-components/MarqueeReview/index.d.ts +3 -3
- package/dist/cjs/biz-components/Media/index.d.ts +32 -0
- package/dist/cjs/biz-components/Media/index.js +2 -0
- package/dist/cjs/biz-components/Media/index.js.map +7 -0
- package/dist/cjs/biz-components/MediaPlayerBase/index.d.ts +3 -3
- package/dist/cjs/biz-components/MediaPlayerMulti/index.d.ts +3 -3
- package/dist/cjs/biz-components/MediaPlayerSticky/index.d.ts +4 -4
- package/dist/cjs/biz-components/MediaPlayerSticky/types.d.ts +1 -0
- package/dist/cjs/biz-components/MediaPlayerSticky/types.js +1 -1
- package/dist/cjs/biz-components/MediaPlayerSticky/types.js.map +1 -1
- package/dist/cjs/biz-components/MediaSceneSwitcher/MediaSceneSwitcher.d.ts +3 -3
- package/dist/cjs/biz-components/MediaShelf/index.d.ts +216 -0
- package/dist/cjs/biz-components/MediaShelf/index.js +2 -0
- package/dist/cjs/biz-components/MediaShelf/index.js.map +7 -0
- package/dist/cjs/biz-components/MediaShelf/types.d.ts +22 -0
- package/dist/cjs/biz-components/MediaShelf/types.js +2 -0
- package/dist/cjs/biz-components/MediaShelf/types.js.map +7 -0
- package/dist/cjs/biz-components/MemberEquity/index.d.ts +3 -3
- package/dist/cjs/biz-components/MiniCart/index.d.ts +88 -0
- package/dist/cjs/biz-components/MiniCart/index.js +2 -0
- package/dist/cjs/biz-components/MiniCart/index.js.map +7 -0
- package/dist/cjs/biz-components/MultiLayoutGraphicBlock/MultiLayoutGraphicBlock.d.ts +3 -3
- package/dist/cjs/biz-components/ProductCompare/index.d.ts +3 -3
- package/dist/cjs/biz-components/ProductHero/ProductHero.d.ts +3 -3
- package/dist/cjs/biz-components/ProductNav/ProductNav.d.ts +3 -3
- package/dist/cjs/biz-components/PromotionalBar/index.d.ts +49 -0
- package/dist/cjs/biz-components/PromotionalBar/index.js +2 -0
- package/dist/cjs/biz-components/PromotionalBar/index.js.map +7 -0
- package/dist/cjs/biz-components/SecondaryBanner/index.d.ts +69 -0
- package/dist/cjs/biz-components/SecondaryBanner/index.js +2 -0
- package/dist/cjs/biz-components/SecondaryBanner/index.js.map +7 -0
- package/dist/cjs/biz-components/SelectStore/index.d.ts +3 -3
- package/dist/cjs/biz-components/ShelfDisplay/index.d.ts +3 -3
- package/dist/cjs/biz-components/ShelfDisplay/shelfDisplay.d.ts +0 -11
- package/dist/cjs/biz-components/ShelfDisplay/shelfDisplay.js +1 -1
- package/dist/cjs/biz-components/ShelfDisplay/shelfDisplay.js.map +3 -3
- package/dist/cjs/biz-components/Slogan/index.d.ts +3 -3
- package/dist/cjs/biz-components/Spacer/index.d.ts +3 -3
- package/dist/cjs/biz-components/Specs/index.d.ts +3 -3
- package/dist/cjs/biz-components/Specs/index.js +1 -1
- package/dist/cjs/biz-components/Specs/index.js.map +2 -2
- package/dist/cjs/biz-components/SpecsComparison/SpecsComparison.d.ts +3 -3
- package/dist/cjs/biz-components/TabWithImage/TabWithImage.d.ts +3 -3
- package/dist/cjs/biz-components/Tabs/Tabs.d.ts +3 -3
- package/dist/cjs/biz-components/TabsGroup/index.d.ts +3 -3
- package/dist/cjs/biz-components/TabsWithMedia/TabsWithMedia.d.ts +3 -3
- package/dist/cjs/biz-components/ThreeDCarousel/ThreeDCarousel.d.ts +3 -3
- package/dist/cjs/biz-components/Title/Countdown.d.ts +14 -0
- package/dist/cjs/biz-components/Title/Countdown.js +2 -0
- package/dist/cjs/biz-components/Title/Countdown.js.map +7 -0
- package/dist/cjs/biz-components/Title/index.d.ts +3 -3
- package/dist/cjs/biz-components/Title/index.js +1 -1
- package/dist/cjs/biz-components/Title/index.js.map +3 -3
- package/dist/cjs/biz-components/Title/types.d.ts +55 -0
- package/dist/cjs/biz-components/Title/types.js +1 -1
- package/dist/cjs/biz-components/Title/types.js.map +1 -1
- package/dist/cjs/biz-components/VideoFeature/VideoFeature.d.ts +3 -3
- package/dist/cjs/biz-components/WheelLottery/BaseModal.d.ts +55 -0
- package/dist/cjs/biz-components/WheelLottery/BaseModal.js +12 -0
- package/dist/cjs/biz-components/WheelLottery/BaseModal.js.map +7 -0
- package/dist/cjs/biz-components/WheelLottery/ChanceMethods.d.ts +30 -0
- package/dist/cjs/biz-components/WheelLottery/ChanceMethods.js +2 -0
- package/dist/cjs/biz-components/WheelLottery/ChanceMethods.js.map +7 -0
- package/dist/cjs/biz-components/WheelLottery/ErrorModal.d.ts +42 -0
- package/dist/cjs/biz-components/WheelLottery/ErrorModal.js +2 -0
- package/dist/cjs/biz-components/WheelLottery/ErrorModal.js.map +7 -0
- package/dist/cjs/biz-components/WheelLottery/MyRewardsModal.d.ts +91 -0
- package/dist/cjs/biz-components/WheelLottery/MyRewardsModal.js +2 -0
- package/dist/cjs/biz-components/WheelLottery/MyRewardsModal.js.map +7 -0
- package/dist/cjs/biz-components/WheelLottery/PrizePool.d.ts +26 -0
- package/dist/cjs/biz-components/WheelLottery/PrizePool.js +2 -0
- package/dist/cjs/biz-components/WheelLottery/PrizePool.js.map +7 -0
- package/dist/cjs/biz-components/WheelLottery/RulesModal.d.ts +43 -0
- package/dist/cjs/biz-components/WheelLottery/RulesModal.js +2 -0
- package/dist/cjs/biz-components/WheelLottery/RulesModal.js.map +7 -0
- package/dist/cjs/biz-components/WheelLottery/ShareModal.d.ts +74 -0
- package/dist/cjs/biz-components/WheelLottery/ShareModal.js +2 -0
- package/dist/cjs/biz-components/WheelLottery/ShareModal.js.map +7 -0
- package/dist/cjs/biz-components/WheelLottery/Wheel.d.ts +27 -0
- package/dist/cjs/biz-components/WheelLottery/Wheel.js +2 -0
- package/dist/cjs/biz-components/WheelLottery/Wheel.js.map +7 -0
- package/dist/cjs/biz-components/WheelLottery/WinnerModal.d.ts +25 -0
- package/dist/cjs/biz-components/WheelLottery/WinnerModal.js +2 -0
- package/dist/cjs/biz-components/WheelLottery/WinnerModal.js.map +7 -0
- package/dist/cjs/biz-components/WheelLottery/index.d.ts +52 -0
- package/dist/cjs/biz-components/WheelLottery/index.js +2 -0
- package/dist/cjs/biz-components/WheelLottery/index.js.map +7 -0
- package/dist/cjs/biz-components/WheelLottery/types.d.ts +1193 -0
- package/dist/cjs/biz-components/WheelLottery/types.js +2 -0
- package/dist/cjs/biz-components/WheelLottery/types.js.map +7 -0
- package/dist/cjs/biz-components/WhyChoose/WhyChoose.d.ts +3 -3
- package/dist/cjs/biz-components/index.d.ts +30 -2
- package/dist/cjs/biz-components/index.js +1 -1
- package/dist/cjs/biz-components/index.js.map +3 -3
- package/dist/cjs/components/badge.js +1 -1
- package/dist/cjs/components/badge.js.map +2 -2
- package/dist/cjs/components/index.d.ts +2 -0
- package/dist/cjs/components/index.js +1 -1
- package/dist/cjs/components/index.js.map +3 -3
- package/dist/cjs/components/paginator.d.ts +12 -0
- package/dist/cjs/components/paginator.js +7 -0
- package/dist/cjs/components/paginator.js.map +7 -0
- package/dist/cjs/components/progress.d.ts +46 -0
- package/dist/cjs/components/progress.js +2 -0
- package/dist/cjs/components/progress.js.map +7 -0
- package/dist/cjs/components/tabs.d.ts +2 -1
- package/dist/cjs/components/tabs.js +1 -1
- package/dist/cjs/components/tabs.js.map +2 -2
- package/dist/cjs/helpers/index.d.ts +1 -0
- package/dist/cjs/helpers/index.js +1 -1
- package/dist/cjs/helpers/index.js.map +3 -3
- package/dist/cjs/helpers/priceFormatting.d.ts +11 -0
- package/dist/cjs/helpers/priceFormatting.js +2 -0
- package/dist/cjs/helpers/priceFormatting.js.map +7 -0
- package/dist/cjs/shared/Styles.d.ts +5 -4
- package/dist/cjs/shared/Styles.js +1 -1
- package/dist/cjs/shared/Styles.js.map +3 -3
- package/dist/cjs/types/props.d.ts +0 -3
- package/dist/cjs/types/props.js +1 -1
- package/dist/cjs/types/props.js.map +1 -1
- package/dist/esm/biz-components/AccordionCards/index.d.ts +3 -3
- package/dist/esm/biz-components/ActiveShelf/index.d.ts +222 -0
- package/dist/esm/biz-components/ActiveShelf/index.js +2 -0
- package/dist/esm/biz-components/ActiveShelf/index.js.map +7 -0
- package/dist/esm/biz-components/ActiveShelf/types.d.ts +22 -0
- package/dist/esm/biz-components/ActiveShelf/types.js +1 -0
- package/dist/esm/biz-components/ActiveShelf/types.js.map +7 -0
- package/dist/esm/biz-components/AiuiProvider/index.d.ts +7 -0
- package/dist/esm/biz-components/AiuiProvider/index.js +1 -1
- package/dist/esm/biz-components/AiuiProvider/index.js.map +2 -2
- package/dist/esm/biz-components/AnchorNavigation/index.d.ts +42 -0
- package/dist/esm/biz-components/AnchorNavigation/index.js +2 -0
- package/dist/esm/biz-components/AnchorNavigation/index.js.map +7 -0
- package/dist/esm/biz-components/AnchorNavigation/useAnchorPosition.d.ts +2 -0
- package/dist/esm/biz-components/AnchorNavigation/useAnchorPosition.js +2 -0
- package/dist/esm/biz-components/AnchorNavigation/useAnchorPosition.js.map +7 -0
- package/dist/esm/biz-components/AplusDesc/index.d.ts +3 -3
- package/dist/esm/biz-components/BrandCardLink/BrandCardLink.d.ts +3 -3
- package/dist/esm/biz-components/BrandCardLink/BrandCardLink.js +1 -1
- package/dist/esm/biz-components/BrandCardLink/BrandCardLink.js.map +1 -1
- package/dist/esm/biz-components/BrandEquity/BrandEquity.d.ts +3 -3
- package/dist/esm/biz-components/BrandEquity/BrandEquity.js +1 -1
- package/dist/esm/biz-components/BrandEquity/BrandEquity.js.map +3 -3
- package/dist/esm/biz-components/BrandEquity/types.d.ts +1 -0
- package/dist/esm/biz-components/BuyOneGetOneShelf/ProductCard.d.ts +74 -0
- package/dist/esm/biz-components/BuyOneGetOneShelf/ProductCard.js +2 -0
- package/dist/esm/biz-components/BuyOneGetOneShelf/ProductCard.js.map +7 -0
- package/dist/esm/biz-components/BuyOneGetOneShelf/hooks/useBogoDataTransform.d.ts +36 -0
- package/dist/esm/biz-components/BuyOneGetOneShelf/hooks/useBogoDataTransform.js +2 -0
- package/dist/esm/biz-components/BuyOneGetOneShelf/hooks/useBogoDataTransform.js.map +7 -0
- package/dist/esm/biz-components/BuyOneGetOneShelf/index.d.ts +193 -0
- package/dist/esm/biz-components/BuyOneGetOneShelf/index.js +2 -0
- package/dist/esm/biz-components/BuyOneGetOneShelf/index.js.map +7 -0
- package/dist/esm/biz-components/Category/index.d.ts +3 -3
- package/dist/esm/biz-components/CreativeModule/index.d.ts +3 -3
- package/dist/esm/biz-components/DownLoad/index.d.ts +3 -3
- package/dist/esm/biz-components/Evaluate/index.d.ts +3 -3
- package/dist/esm/biz-components/Evaluate/index.js +1 -1
- package/dist/esm/biz-components/Evaluate/index.js.map +3 -3
- package/dist/esm/biz-components/EventSchedule/index.d.ts +63 -0
- package/dist/esm/biz-components/EventSchedule/index.js +2 -0
- package/dist/esm/biz-components/EventSchedule/index.js.map +7 -0
- package/dist/esm/biz-components/Faq/Faq.d.ts +3 -3
- package/dist/esm/biz-components/FeatureCards/FeatureCards.d.ts +3 -3
- package/dist/esm/biz-components/FeatureShowcase/FeatureShowcase.d.ts +3 -3
- package/dist/esm/biz-components/Features/index.d.ts +3 -3
- package/dist/esm/biz-components/FootCharger/index.d.ts +3 -3
- package/dist/esm/biz-components/FooterNavigation/index.d.ts +3 -3
- package/dist/esm/biz-components/GiftBox/index.d.ts +3 -3
- package/dist/esm/biz-components/Graphic/index.d.ts +3 -3
- package/dist/esm/biz-components/Graphic/index.js +1 -1
- package/dist/esm/biz-components/Graphic/index.js.map +3 -3
- package/dist/esm/biz-components/GraphicAttractionBlock/index.d.ts +3 -3
- package/dist/esm/biz-components/GraphicMore/index.d.ts +3 -3
- package/dist/esm/biz-components/GraphicOverlay/GraphicOverlay.d.ts +3 -3
- package/dist/esm/biz-components/HeaderNavigation/MobileSidebarMenu.js +1 -1
- package/dist/esm/biz-components/HeaderNavigation/MobileSidebarMenu.js.map +3 -3
- package/dist/esm/biz-components/HeaderNavigation/SidebarDropdown.js +1 -1
- package/dist/esm/biz-components/HeaderNavigation/SidebarDropdown.js.map +2 -2
- package/dist/esm/biz-components/HeaderNavigation/index.d.ts +3 -3
- package/dist/esm/biz-components/HeroBanner/Countdown.js +1 -1
- package/dist/esm/biz-components/HeroBanner/Countdown.js.map +2 -2
- package/dist/esm/biz-components/HeroBanner/HeroBanner.d.ts +6 -3
- package/dist/esm/biz-components/HeroBanner/HeroBanner.js +1 -1
- package/dist/esm/biz-components/HeroBanner/HeroBanner.js.map +3 -3
- package/dist/esm/biz-components/IPRedirect/RegionBanner.d.ts +37 -0
- package/dist/esm/biz-components/IPRedirect/RegionBanner.js +60 -0
- package/dist/esm/biz-components/IPRedirect/RegionBanner.js.map +7 -0
- package/dist/esm/biz-components/IPRedirect/RegionSelectorModal.d.ts +47 -0
- package/dist/esm/biz-components/IPRedirect/RegionSelectorModal.js +69 -0
- package/dist/esm/biz-components/IPRedirect/RegionSelectorModal.js.map +7 -0
- package/dist/esm/biz-components/IPRedirect/index.d.ts +9 -0
- package/dist/esm/biz-components/IPRedirect/index.js +2 -0
- package/dist/esm/biz-components/IPRedirect/index.js.map +7 -0
- package/dist/esm/biz-components/IPRedirect/type.d.ts +36 -0
- package/dist/esm/biz-components/IPRedirect/type.js +1 -0
- package/dist/esm/biz-components/IPRedirect/type.js.map +7 -0
- package/dist/esm/biz-components/IPRedirect/useAutoRedirect.d.ts +66 -0
- package/dist/esm/biz-components/IPRedirect/useAutoRedirect.js +2 -0
- package/dist/esm/biz-components/IPRedirect/useAutoRedirect.js.map +7 -0
- package/dist/esm/biz-components/IPRedirect/useDetectedRegionRedirect.d.ts +51 -0
- package/dist/esm/biz-components/IPRedirect/useDetectedRegionRedirect.js +2 -0
- package/dist/esm/biz-components/IPRedirect/useDetectedRegionRedirect.js.map +7 -0
- package/dist/esm/biz-components/IPRedirect/useIPRedirect.d.ts +42 -0
- package/dist/esm/biz-components/IPRedirect/useIPRedirect.js +2 -0
- package/dist/esm/biz-components/IPRedirect/useIPRedirect.js.map +7 -0
- package/dist/esm/biz-components/IPRedirect/useRedirectBanner.d.ts +108 -0
- package/dist/esm/biz-components/IPRedirect/useRedirectBanner.js +2 -0
- package/dist/esm/biz-components/IPRedirect/useRedirectBanner.js.map +7 -0
- package/dist/esm/biz-components/IPRedirect/useRegionRedirectManager.d.ts +152 -0
- package/dist/esm/biz-components/IPRedirect/useRegionRedirectManager.js +2 -0
- package/dist/esm/biz-components/IPRedirect/useRegionRedirectManager.js.map +7 -0
- package/dist/esm/biz-components/IPRedirect/useSavedRegionRedirect.d.ts +51 -0
- package/dist/esm/biz-components/IPRedirect/useSavedRegionRedirect.js +2 -0
- package/dist/esm/biz-components/IPRedirect/useSavedRegionRedirect.js.map +7 -0
- package/dist/esm/biz-components/IPRedirect/utils.d.ts +222 -0
- package/dist/esm/biz-components/IPRedirect/utils.js +2 -0
- package/dist/esm/biz-components/IPRedirect/utils.js.map +7 -0
- package/dist/esm/biz-components/ImageOverlayShelf/index.d.ts +130 -0
- package/dist/esm/biz-components/ImageOverlayShelf/index.js +2 -0
- package/dist/esm/biz-components/ImageOverlayShelf/index.js.map +7 -0
- package/dist/esm/biz-components/ImageTextFeature/ImageTextFeature.d.ts +3 -3
- package/dist/esm/biz-components/ImageTextFeature/ImageTextFeature.js +1 -1
- package/dist/esm/biz-components/ImageTextFeature/ImageTextFeature.js.map +3 -3
- package/dist/esm/biz-components/ImageWithText/ImageWithText.d.ts +3 -3
- package/dist/esm/biz-components/Ksp/index.d.ts +3 -3
- package/dist/esm/biz-components/Listing/components/PaidShipping/index.d.ts +4 -4
- package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/BenefitsTab.d.ts +3 -3
- package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductBundle/index.d.ts +3 -3
- package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductExchangePurchase/index.d.ts +3 -3
- package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductFreeGift/index.d.ts +3 -3
- package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductHighlight/index.d.ts +3 -3
- package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductOptions/index.d.ts +3 -3
- package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/index.d.ts +3 -3
- package/dist/esm/biz-components/Listing/components/ProductCard/ProductSummary/index.d.ts +3 -3
- package/dist/esm/biz-components/Listing/components/PurchaseBar/index.d.ts +3 -3
- package/dist/esm/biz-components/Marquee/Marquee.d.ts +3 -3
- package/dist/esm/biz-components/Marquee/Marquee.js +1 -1
- package/dist/esm/biz-components/Marquee/Marquee.js.map +3 -3
- package/dist/esm/biz-components/MarqueeReview/index.d.ts +3 -3
- package/dist/esm/biz-components/Media/index.d.ts +32 -0
- package/dist/esm/biz-components/Media/index.js +2 -0
- package/dist/esm/biz-components/Media/index.js.map +7 -0
- package/dist/esm/biz-components/MediaPlayerBase/index.d.ts +3 -3
- package/dist/esm/biz-components/MediaPlayerMulti/index.d.ts +3 -3
- package/dist/esm/biz-components/MediaPlayerSticky/index.d.ts +4 -4
- package/dist/esm/biz-components/MediaPlayerSticky/types.d.ts +1 -0
- package/dist/esm/biz-components/MediaSceneSwitcher/MediaSceneSwitcher.d.ts +3 -3
- package/dist/esm/biz-components/MediaShelf/index.d.ts +216 -0
- package/dist/esm/biz-components/MediaShelf/index.js +2 -0
- package/dist/esm/biz-components/MediaShelf/index.js.map +7 -0
- package/dist/esm/biz-components/MediaShelf/types.d.ts +22 -0
- package/dist/esm/biz-components/MediaShelf/types.js +1 -0
- package/dist/esm/biz-components/MediaShelf/types.js.map +7 -0
- package/dist/esm/biz-components/MemberEquity/index.d.ts +3 -3
- package/dist/esm/biz-components/MiniCart/index.d.ts +88 -0
- package/dist/esm/biz-components/MiniCart/index.js +2 -0
- package/dist/esm/biz-components/MiniCart/index.js.map +7 -0
- package/dist/esm/biz-components/MultiLayoutGraphicBlock/MultiLayoutGraphicBlock.d.ts +3 -3
- package/dist/esm/biz-components/ProductCompare/index.d.ts +3 -3
- package/dist/esm/biz-components/ProductHero/ProductHero.d.ts +3 -3
- package/dist/esm/biz-components/ProductNav/ProductNav.d.ts +3 -3
- package/dist/esm/biz-components/PromotionalBar/index.d.ts +49 -0
- package/dist/esm/biz-components/PromotionalBar/index.js +2 -0
- package/dist/esm/biz-components/PromotionalBar/index.js.map +7 -0
- package/dist/esm/biz-components/SecondaryBanner/index.d.ts +69 -0
- package/dist/esm/biz-components/SecondaryBanner/index.js +2 -0
- package/dist/esm/biz-components/SecondaryBanner/index.js.map +7 -0
- package/dist/esm/biz-components/SelectStore/index.d.ts +3 -3
- package/dist/esm/biz-components/ShelfDisplay/index.d.ts +3 -3
- package/dist/esm/biz-components/ShelfDisplay/shelfDisplay.d.ts +0 -11
- package/dist/esm/biz-components/ShelfDisplay/shelfDisplay.js +1 -1
- package/dist/esm/biz-components/ShelfDisplay/shelfDisplay.js.map +3 -3
- package/dist/esm/biz-components/Slogan/index.d.ts +3 -3
- package/dist/esm/biz-components/Spacer/index.d.ts +3 -3
- package/dist/esm/biz-components/Specs/index.d.ts +3 -3
- package/dist/esm/biz-components/Specs/index.js +1 -1
- package/dist/esm/biz-components/Specs/index.js.map +2 -2
- package/dist/esm/biz-components/SpecsComparison/SpecsComparison.d.ts +3 -3
- package/dist/esm/biz-components/TabWithImage/TabWithImage.d.ts +3 -3
- package/dist/esm/biz-components/Tabs/Tabs.d.ts +3 -3
- package/dist/esm/biz-components/TabsGroup/index.d.ts +3 -3
- package/dist/esm/biz-components/TabsWithMedia/TabsWithMedia.d.ts +3 -3
- package/dist/esm/biz-components/ThreeDCarousel/ThreeDCarousel.d.ts +3 -3
- package/dist/esm/biz-components/Title/Countdown.d.ts +14 -0
- package/dist/esm/biz-components/Title/Countdown.js +2 -0
- package/dist/esm/biz-components/Title/Countdown.js.map +7 -0
- package/dist/esm/biz-components/Title/index.d.ts +3 -3
- package/dist/esm/biz-components/Title/index.js +1 -1
- package/dist/esm/biz-components/Title/index.js.map +3 -3
- package/dist/esm/biz-components/Title/types.d.ts +55 -0
- package/dist/esm/biz-components/VideoFeature/VideoFeature.d.ts +3 -3
- package/dist/esm/biz-components/WheelLottery/BaseModal.d.ts +55 -0
- package/dist/esm/biz-components/WheelLottery/BaseModal.js +12 -0
- package/dist/esm/biz-components/WheelLottery/BaseModal.js.map +7 -0
- package/dist/esm/biz-components/WheelLottery/ChanceMethods.d.ts +30 -0
- package/dist/esm/biz-components/WheelLottery/ChanceMethods.js +2 -0
- package/dist/esm/biz-components/WheelLottery/ChanceMethods.js.map +7 -0
- package/dist/esm/biz-components/WheelLottery/ErrorModal.d.ts +42 -0
- package/dist/esm/biz-components/WheelLottery/ErrorModal.js +2 -0
- package/dist/esm/biz-components/WheelLottery/ErrorModal.js.map +7 -0
- package/dist/esm/biz-components/WheelLottery/MyRewardsModal.d.ts +91 -0
- package/dist/esm/biz-components/WheelLottery/MyRewardsModal.js +2 -0
- package/dist/esm/biz-components/WheelLottery/MyRewardsModal.js.map +7 -0
- package/dist/esm/biz-components/WheelLottery/PrizePool.d.ts +26 -0
- package/dist/esm/biz-components/WheelLottery/PrizePool.js +2 -0
- package/dist/esm/biz-components/WheelLottery/PrizePool.js.map +7 -0
- package/dist/esm/biz-components/WheelLottery/RulesModal.d.ts +43 -0
- package/dist/esm/biz-components/WheelLottery/RulesModal.js +2 -0
- package/dist/esm/biz-components/WheelLottery/RulesModal.js.map +7 -0
- package/dist/esm/biz-components/WheelLottery/ShareModal.d.ts +74 -0
- package/dist/esm/biz-components/WheelLottery/ShareModal.js +2 -0
- package/dist/esm/biz-components/WheelLottery/ShareModal.js.map +7 -0
- package/dist/esm/biz-components/WheelLottery/Wheel.d.ts +27 -0
- package/dist/esm/biz-components/WheelLottery/Wheel.js +2 -0
- package/dist/esm/biz-components/WheelLottery/Wheel.js.map +7 -0
- package/dist/esm/biz-components/WheelLottery/WinnerModal.d.ts +25 -0
- package/dist/esm/biz-components/WheelLottery/WinnerModal.js +2 -0
- package/dist/esm/biz-components/WheelLottery/WinnerModal.js.map +7 -0
- package/dist/esm/biz-components/WheelLottery/index.d.ts +52 -0
- package/dist/esm/biz-components/WheelLottery/index.js +2 -0
- package/dist/esm/biz-components/WheelLottery/index.js.map +7 -0
- package/dist/esm/biz-components/WheelLottery/types.d.ts +1193 -0
- package/dist/esm/biz-components/WheelLottery/types.js +2 -0
- package/dist/esm/biz-components/WheelLottery/types.js.map +7 -0
- package/dist/esm/biz-components/WhyChoose/WhyChoose.d.ts +3 -3
- package/dist/esm/biz-components/index.d.ts +30 -2
- package/dist/esm/biz-components/index.js +1 -1
- package/dist/esm/biz-components/index.js.map +3 -3
- package/dist/esm/components/badge.js +1 -1
- package/dist/esm/components/badge.js.map +2 -2
- package/dist/esm/components/index.d.ts +2 -0
- package/dist/esm/components/index.js +1 -1
- package/dist/esm/components/index.js.map +2 -2
- package/dist/esm/components/paginator.d.ts +12 -0
- package/dist/esm/components/paginator.js +7 -0
- package/dist/esm/components/paginator.js.map +7 -0
- package/dist/esm/components/progress.d.ts +46 -0
- package/dist/esm/components/progress.js +2 -0
- package/dist/esm/components/progress.js.map +7 -0
- package/dist/esm/components/tabs.d.ts +2 -1
- package/dist/esm/components/tabs.js +1 -1
- package/dist/esm/components/tabs.js.map +2 -2
- package/dist/esm/helpers/index.d.ts +1 -0
- package/dist/esm/helpers/index.js +1 -1
- package/dist/esm/helpers/index.js.map +3 -3
- package/dist/esm/helpers/priceFormatting.d.ts +11 -0
- package/dist/esm/helpers/priceFormatting.js +2 -0
- package/dist/esm/helpers/priceFormatting.js.map +7 -0
- package/dist/esm/shared/Styles.d.ts +5 -4
- package/dist/esm/shared/Styles.js +1 -1
- package/dist/esm/shared/Styles.js.map +3 -3
- package/dist/esm/types/props.d.ts +0 -3
- package/dist/tokens/base.css +4 -3
- package/dist/tokens/eufy.css +1 -0
- package/dist/tokens/soundcore.css +4 -3
- package/package.json +8 -3
- package/style.css +4915 -126
- package/tailwind.config.js +19 -2
- package/dist/cjs/stories/HeroBanner.stories.d.ts +0 -28
- package/dist/cjs/stories/HeroBanner.stories.js +0 -11
- package/dist/cjs/stories/HeroBanner.stories.js.map +0 -7
- package/dist/cjs/stories/InlineVideo.stories.d.ts +0 -37
- package/dist/cjs/stories/InlineVideo.stories.js +0 -164
- package/dist/cjs/stories/InlineVideo.stories.js.map +0 -7
- package/dist/cjs/stories/MarqueeReview.stories.d.ts +0 -72
- package/dist/cjs/stories/MarqueeReview.stories.js +0 -19
- package/dist/cjs/stories/MarqueeReview.stories.js.map +0 -7
- package/dist/cjs/stories/MediaSceneSwitcher.stories.d.ts +0 -47
- package/dist/cjs/stories/MediaSceneSwitcher.stories.js +0 -2
- package/dist/cjs/stories/MediaSceneSwitcher.stories.js.map +0 -7
- package/dist/cjs/stories/MemberEquity.stories.d.ts +0 -9
- package/dist/cjs/stories/MemberEquity.stories.js +0 -31
- package/dist/cjs/stories/MemberEquity.stories.js.map +0 -7
- package/dist/cjs/stories/MultiLayoutGraphicBlock.stories.d.ts +0 -9
- package/dist/cjs/stories/MultiLayoutGraphicBlock.stories.js +0 -2
- package/dist/cjs/stories/MultiLayoutGraphicBlock.stories.js.map +0 -7
- package/dist/cjs/stories/ProductNav.stories.d.ts +0 -55
- package/dist/cjs/stories/ProductNav.stories.js +0 -2
- package/dist/cjs/stories/ProductNav.stories.js.map +0 -7
- package/dist/cjs/stories/ThreeDCarousel.stories.d.ts +0 -27
- package/dist/cjs/stories/ThreeDCarousel.stories.js +0 -118
- package/dist/cjs/stories/ThreeDCarousel.stories.js.map +0 -7
- package/dist/cjs/stories/accordionCards.stories.d.ts +0 -38
- package/dist/cjs/stories/accordionCards.stories.js +0 -2
- package/dist/cjs/stories/accordionCards.stories.js.map +0 -7
- package/dist/cjs/stories/alert.stories.d.ts +0 -27
- package/dist/cjs/stories/alert.stories.js +0 -2
- package/dist/cjs/stories/alert.stories.js.map +0 -7
- package/dist/cjs/stories/avatar.stories.d.ts +0 -39
- package/dist/cjs/stories/avatar.stories.js +0 -2
- package/dist/cjs/stories/avatar.stories.js.map +0 -7
- package/dist/cjs/stories/badge.stories.d.ts +0 -96
- package/dist/cjs/stories/badge.stories.js +0 -2
- package/dist/cjs/stories/badge.stories.js.map +0 -7
- package/dist/cjs/stories/bizTabs.stories.d.ts +0 -7
- package/dist/cjs/stories/bizTabs.stories.js +0 -2
- package/dist/cjs/stories/bizTabs.stories.js.map +0 -7
- package/dist/cjs/stories/board.stories.d.ts +0 -6
- package/dist/cjs/stories/board.stories.js +0 -2
- package/dist/cjs/stories/board.stories.js.map +0 -7
- package/dist/cjs/stories/brandEquity.stories.d.ts +0 -16
- package/dist/cjs/stories/brandEquity.stories.js +0 -2
- package/dist/cjs/stories/brandEquity.stories.js.map +0 -7
- package/dist/cjs/stories/brandStrip.stories.d.ts +0 -12
- package/dist/cjs/stories/brandStrip.stories.js +0 -2
- package/dist/cjs/stories/brandStrip.stories.js.map +0 -7
- package/dist/cjs/stories/button.stories.d.ts +0 -56
- package/dist/cjs/stories/button.stories.js +0 -2
- package/dist/cjs/stories/button.stories.js.map +0 -7
- package/dist/cjs/stories/card.stories.d.ts +0 -27
- package/dist/cjs/stories/card.stories.js +0 -2
- package/dist/cjs/stories/card.stories.js.map +0 -7
- package/dist/cjs/stories/carousel.stories.d.ts +0 -8
- package/dist/cjs/stories/carousel.stories.js +0 -2
- package/dist/cjs/stories/carousel.stories.js.map +0 -7
- package/dist/cjs/stories/category.stories.d.ts +0 -17
- package/dist/cjs/stories/category.stories.js +0 -2
- package/dist/cjs/stories/category.stories.js.map +0 -7
- package/dist/cjs/stories/checkbox.stories.d.ts +0 -46
- package/dist/cjs/stories/checkbox.stories.js +0 -2
- package/dist/cjs/stories/checkbox.stories.js.map +0 -7
- package/dist/cjs/stories/container.stories.d.ts +0 -28
- package/dist/cjs/stories/container.stories.js +0 -15
- package/dist/cjs/stories/container.stories.js.map +0 -7
- package/dist/cjs/stories/cpnBanner.stories.d.ts +0 -14
- package/dist/cjs/stories/cpnBanner.stories.js +0 -2
- package/dist/cjs/stories/cpnBanner.stories.js.map +0 -7
- package/dist/cjs/stories/cpnCountdown.stories.d.ts +0 -12
- package/dist/cjs/stories/cpnCountdown.stories.js +0 -2
- package/dist/cjs/stories/cpnCountdown.stories.js.map +0 -7
- package/dist/cjs/stories/cpnNavigation.stories.d.ts +0 -14
- package/dist/cjs/stories/cpnNavigation.stories.js +0 -2
- package/dist/cjs/stories/cpnNavigation.stories.js.map +0 -7
- package/dist/cjs/stories/cpnProductcard.stories.d.ts +0 -14
- package/dist/cjs/stories/cpnProductcard.stories.js +0 -2
- package/dist/cjs/stories/cpnProductcard.stories.js.map +0 -7
- package/dist/cjs/stories/cpnTitle.stories.d.ts +0 -14
- package/dist/cjs/stories/cpnTitle.stories.js +0 -2
- package/dist/cjs/stories/cpnTitle.stories.js.map +0 -7
- package/dist/cjs/stories/creativeModule.stories.d.ts +0 -19
- package/dist/cjs/stories/creativeModule.stories.js +0 -2
- package/dist/cjs/stories/creativeModule.stories.js.map +0 -7
- package/dist/cjs/stories/dialog.stories.d.ts +0 -20
- package/dist/cjs/stories/dialog.stories.js +0 -2
- package/dist/cjs/stories/dialog.stories.js.map +0 -7
- package/dist/cjs/stories/drawer.stories.d.ts +0 -20
- package/dist/cjs/stories/drawer.stories.js +0 -2
- package/dist/cjs/stories/drawer.stories.js.map +0 -7
- package/dist/cjs/stories/drop-down.stories.d.ts +0 -16
- package/dist/cjs/stories/drop-down.stories.js +0 -2
- package/dist/cjs/stories/drop-down.stories.js.map +0 -7
- package/dist/cjs/stories/evaluate.stories.d.ts +0 -16
- package/dist/cjs/stories/evaluate.stories.js +0 -2
- package/dist/cjs/stories/evaluate.stories.js.map +0 -7
- package/dist/cjs/stories/faq.stories.d.ts +0 -21
- package/dist/cjs/stories/faq.stories.js +0 -2
- package/dist/cjs/stories/faq.stories.js.map +0 -7
- package/dist/cjs/stories/featureCards.stories.d.ts +0 -30
- package/dist/cjs/stories/featureCards.stories.js +0 -61
- package/dist/cjs/stories/featureCards.stories.js.map +0 -7
- package/dist/cjs/stories/featureShowcase.stories.d.ts +0 -29
- package/dist/cjs/stories/featureShowcase.stories.js +0 -44
- package/dist/cjs/stories/featureShowcase.stories.js.map +0 -7
- package/dist/cjs/stories/graphic.stories.d.ts +0 -64
- package/dist/cjs/stories/graphic.stories.js +0 -2
- package/dist/cjs/stories/graphic.stories.js.map +0 -7
- package/dist/cjs/stories/graphicAttractionBlock.stories.d.ts +0 -6
- package/dist/cjs/stories/graphicAttractionBlock.stories.js +0 -2
- package/dist/cjs/stories/graphicAttractionBlock.stories.js.map +0 -7
- package/dist/cjs/stories/grid.stories.d.ts +0 -22
- package/dist/cjs/stories/grid.stories.js +0 -13
- package/dist/cjs/stories/grid.stories.js.map +0 -7
- package/dist/cjs/stories/heading.stories.d.ts +0 -84
- package/dist/cjs/stories/heading.stories.js +0 -15
- package/dist/cjs/stories/heading.stories.js.map +0 -7
- package/dist/cjs/stories/imageTextFeature.stories.d.ts +0 -28
- package/dist/cjs/stories/imageTextFeature.stories.js +0 -50
- package/dist/cjs/stories/imageTextFeature.stories.js.map +0 -7
- package/dist/cjs/stories/imageWithText.stories.d.ts +0 -51
- package/dist/cjs/stories/imageWithText.stories.js +0 -84
- package/dist/cjs/stories/imageWithText.stories.js.map +0 -7
- package/dist/cjs/stories/input-number.stories.d.ts +0 -39
- package/dist/cjs/stories/input-number.stories.js +0 -2
- package/dist/cjs/stories/input-number.stories.js.map +0 -7
- package/dist/cjs/stories/input.stories.d.ts +0 -35
- package/dist/cjs/stories/input.stories.js +0 -2
- package/dist/cjs/stories/input.stories.js.map +0 -7
- package/dist/cjs/stories/ksp.stories.d.ts +0 -63
- package/dist/cjs/stories/ksp.stories.js +0 -128
- package/dist/cjs/stories/ksp.stories.js.map +0 -7
- package/dist/cjs/stories/link.stories.d.ts +0 -69
- package/dist/cjs/stories/link.stories.js +0 -2
- package/dist/cjs/stories/link.stories.js.map +0 -7
- package/dist/cjs/stories/marquee.stories.d.ts +0 -30
- package/dist/cjs/stories/marquee.stories.js +0 -2
- package/dist/cjs/stories/marquee.stories.js.map +0 -7
- package/dist/cjs/stories/mediaplayerBase.stories.d.ts +0 -6
- package/dist/cjs/stories/mediaplayerBase.stories.js +0 -2
- package/dist/cjs/stories/mediaplayerBase.stories.js.map +0 -7
- package/dist/cjs/stories/mediaplayerMulti.stories.d.ts +0 -16
- package/dist/cjs/stories/mediaplayerMulti.stories.js +0 -2
- package/dist/cjs/stories/mediaplayerMulti.stories.js.map +0 -7
- package/dist/cjs/stories/picture.stories.d.ts +0 -23
- package/dist/cjs/stories/picture.stories.js +0 -9
- package/dist/cjs/stories/picture.stories.js.map +0 -7
- package/dist/cjs/stories/popover.stories.d.ts +0 -17
- package/dist/cjs/stories/popover.stories.js +0 -2
- package/dist/cjs/stories/popover.stories.js.map +0 -7
- package/dist/cjs/stories/productCompare.stories.d.ts +0 -54
- package/dist/cjs/stories/productCompare.stories.js +0 -54
- package/dist/cjs/stories/productCompare.stories.js.map +0 -7
- package/dist/cjs/stories/productHero.stories.d.ts +0 -29
- package/dist/cjs/stories/productHero.stories.js +0 -50
- package/dist/cjs/stories/productHero.stories.js.map +0 -7
- package/dist/cjs/stories/radio.stories.d.ts +0 -39
- package/dist/cjs/stories/radio.stories.js +0 -2
- package/dist/cjs/stories/radio.stories.js.map +0 -7
- package/dist/cjs/stories/shelfDisplay.stories.d.ts +0 -16
- package/dist/cjs/stories/shelfDisplay.stories.js +0 -2
- package/dist/cjs/stories/shelfDisplay.stories.js.map +0 -7
- package/dist/cjs/stories/skeleton.stories.d.ts +0 -20
- package/dist/cjs/stories/skeleton.stories.js +0 -2
- package/dist/cjs/stories/skeleton.stories.js.map +0 -7
- package/dist/cjs/stories/slogan.stories.d.ts +0 -20
- package/dist/cjs/stories/slogan.stories.js +0 -6
- package/dist/cjs/stories/slogan.stories.js.map +0 -7
- package/dist/cjs/stories/specs.stories.d.ts +0 -13
- package/dist/cjs/stories/specs.stories.js +0 -57
- package/dist/cjs/stories/specs.stories.js.map +0 -7
- package/dist/cjs/stories/specsComparison.stories.d.ts +0 -28
- package/dist/cjs/stories/specsComparison.stories.js +0 -105
- package/dist/cjs/stories/specsComparison.stories.js.map +0 -7
- package/dist/cjs/stories/tabWithImage.stories.d.ts +0 -28
- package/dist/cjs/stories/tabWithImage.stories.js +0 -53
- package/dist/cjs/stories/tabWithImage.stories.js.map +0 -7
- package/dist/cjs/stories/tabs.stories.d.ts +0 -373
- package/dist/cjs/stories/tabs.stories.js +0 -2
- package/dist/cjs/stories/tabs.stories.js.map +0 -7
- package/dist/cjs/stories/tabsWithMedia.stories.d.ts +0 -28
- package/dist/cjs/stories/tabsWithMedia.stories.js +0 -68
- package/dist/cjs/stories/tabsWithMedia.stories.js.map +0 -7
- package/dist/cjs/stories/text.stories.d.ts +0 -86
- package/dist/cjs/stories/text.stories.js +0 -21
- package/dist/cjs/stories/text.stories.js.map +0 -7
- package/dist/cjs/stories/videoFeature.stories.d.ts +0 -29
- package/dist/cjs/stories/videoFeature.stories.js +0 -56
- package/dist/cjs/stories/videoFeature.stories.js.map +0 -7
- package/dist/cjs/stories/whychoose.stories.d.ts +0 -21
- package/dist/cjs/stories/whychoose.stories.js +0 -2
- package/dist/cjs/stories/whychoose.stories.js.map +0 -7
- package/dist/esm/stories/HeroBanner.stories.d.ts +0 -28
- package/dist/esm/stories/HeroBanner.stories.js +0 -11
- package/dist/esm/stories/HeroBanner.stories.js.map +0 -7
- package/dist/esm/stories/InlineVideo.stories.d.ts +0 -37
- package/dist/esm/stories/InlineVideo.stories.js +0 -164
- package/dist/esm/stories/InlineVideo.stories.js.map +0 -7
- package/dist/esm/stories/MarqueeReview.stories.d.ts +0 -72
- package/dist/esm/stories/MarqueeReview.stories.js +0 -19
- package/dist/esm/stories/MarqueeReview.stories.js.map +0 -7
- package/dist/esm/stories/MediaSceneSwitcher.stories.d.ts +0 -47
- package/dist/esm/stories/MediaSceneSwitcher.stories.js +0 -2
- package/dist/esm/stories/MediaSceneSwitcher.stories.js.map +0 -7
- package/dist/esm/stories/MemberEquity.stories.d.ts +0 -9
- package/dist/esm/stories/MemberEquity.stories.js +0 -31
- package/dist/esm/stories/MemberEquity.stories.js.map +0 -7
- package/dist/esm/stories/MultiLayoutGraphicBlock.stories.d.ts +0 -9
- package/dist/esm/stories/MultiLayoutGraphicBlock.stories.js +0 -2
- package/dist/esm/stories/MultiLayoutGraphicBlock.stories.js.map +0 -7
- package/dist/esm/stories/ProductNav.stories.d.ts +0 -55
- package/dist/esm/stories/ProductNav.stories.js +0 -2
- package/dist/esm/stories/ProductNav.stories.js.map +0 -7
- package/dist/esm/stories/ThreeDCarousel.stories.d.ts +0 -27
- package/dist/esm/stories/ThreeDCarousel.stories.js +0 -118
- package/dist/esm/stories/ThreeDCarousel.stories.js.map +0 -7
- package/dist/esm/stories/accordionCards.stories.d.ts +0 -38
- package/dist/esm/stories/accordionCards.stories.js +0 -2
- package/dist/esm/stories/accordionCards.stories.js.map +0 -7
- package/dist/esm/stories/alert.stories.d.ts +0 -27
- package/dist/esm/stories/alert.stories.js +0 -2
- package/dist/esm/stories/alert.stories.js.map +0 -7
- package/dist/esm/stories/avatar.stories.d.ts +0 -39
- package/dist/esm/stories/avatar.stories.js +0 -2
- package/dist/esm/stories/avatar.stories.js.map +0 -7
- package/dist/esm/stories/badge.stories.d.ts +0 -96
- package/dist/esm/stories/badge.stories.js +0 -2
- package/dist/esm/stories/badge.stories.js.map +0 -7
- package/dist/esm/stories/bizTabs.stories.d.ts +0 -7
- package/dist/esm/stories/bizTabs.stories.js +0 -2
- package/dist/esm/stories/bizTabs.stories.js.map +0 -7
- package/dist/esm/stories/board.stories.d.ts +0 -6
- package/dist/esm/stories/board.stories.js +0 -2
- package/dist/esm/stories/board.stories.js.map +0 -7
- package/dist/esm/stories/brandEquity.stories.d.ts +0 -16
- package/dist/esm/stories/brandEquity.stories.js +0 -2
- package/dist/esm/stories/brandEquity.stories.js.map +0 -7
- package/dist/esm/stories/brandStrip.stories.d.ts +0 -12
- package/dist/esm/stories/brandStrip.stories.js +0 -2
- package/dist/esm/stories/brandStrip.stories.js.map +0 -7
- package/dist/esm/stories/button.stories.d.ts +0 -56
- package/dist/esm/stories/button.stories.js +0 -2
- package/dist/esm/stories/button.stories.js.map +0 -7
- package/dist/esm/stories/card.stories.d.ts +0 -27
- package/dist/esm/stories/card.stories.js +0 -2
- package/dist/esm/stories/card.stories.js.map +0 -7
- package/dist/esm/stories/carousel.stories.d.ts +0 -8
- package/dist/esm/stories/carousel.stories.js +0 -2
- package/dist/esm/stories/carousel.stories.js.map +0 -7
- package/dist/esm/stories/category.stories.d.ts +0 -17
- package/dist/esm/stories/category.stories.js +0 -2
- package/dist/esm/stories/category.stories.js.map +0 -7
- package/dist/esm/stories/checkbox.stories.d.ts +0 -46
- package/dist/esm/stories/checkbox.stories.js +0 -2
- package/dist/esm/stories/checkbox.stories.js.map +0 -7
- package/dist/esm/stories/container.stories.d.ts +0 -28
- package/dist/esm/stories/container.stories.js +0 -15
- package/dist/esm/stories/container.stories.js.map +0 -7
- package/dist/esm/stories/cpnBanner.stories.d.ts +0 -14
- package/dist/esm/stories/cpnBanner.stories.js +0 -2
- package/dist/esm/stories/cpnBanner.stories.js.map +0 -7
- package/dist/esm/stories/cpnCountdown.stories.d.ts +0 -12
- package/dist/esm/stories/cpnCountdown.stories.js +0 -2
- package/dist/esm/stories/cpnCountdown.stories.js.map +0 -7
- package/dist/esm/stories/cpnNavigation.stories.d.ts +0 -14
- package/dist/esm/stories/cpnNavigation.stories.js +0 -2
- package/dist/esm/stories/cpnNavigation.stories.js.map +0 -7
- package/dist/esm/stories/cpnProductcard.stories.d.ts +0 -14
- package/dist/esm/stories/cpnProductcard.stories.js +0 -2
- package/dist/esm/stories/cpnProductcard.stories.js.map +0 -7
- package/dist/esm/stories/cpnTitle.stories.d.ts +0 -14
- package/dist/esm/stories/cpnTitle.stories.js +0 -2
- package/dist/esm/stories/cpnTitle.stories.js.map +0 -7
- package/dist/esm/stories/creativeModule.stories.d.ts +0 -19
- package/dist/esm/stories/creativeModule.stories.js +0 -2
- package/dist/esm/stories/creativeModule.stories.js.map +0 -7
- package/dist/esm/stories/dialog.stories.d.ts +0 -20
- package/dist/esm/stories/dialog.stories.js +0 -2
- package/dist/esm/stories/dialog.stories.js.map +0 -7
- package/dist/esm/stories/drawer.stories.d.ts +0 -20
- package/dist/esm/stories/drawer.stories.js +0 -2
- package/dist/esm/stories/drawer.stories.js.map +0 -7
- package/dist/esm/stories/drop-down.stories.d.ts +0 -16
- package/dist/esm/stories/drop-down.stories.js +0 -2
- package/dist/esm/stories/drop-down.stories.js.map +0 -7
- package/dist/esm/stories/evaluate.stories.d.ts +0 -16
- package/dist/esm/stories/evaluate.stories.js +0 -2
- package/dist/esm/stories/evaluate.stories.js.map +0 -7
- package/dist/esm/stories/faq.stories.d.ts +0 -21
- package/dist/esm/stories/faq.stories.js +0 -2
- package/dist/esm/stories/faq.stories.js.map +0 -7
- package/dist/esm/stories/featureCards.stories.d.ts +0 -30
- package/dist/esm/stories/featureCards.stories.js +0 -61
- package/dist/esm/stories/featureCards.stories.js.map +0 -7
- package/dist/esm/stories/featureShowcase.stories.d.ts +0 -29
- package/dist/esm/stories/featureShowcase.stories.js +0 -44
- package/dist/esm/stories/featureShowcase.stories.js.map +0 -7
- package/dist/esm/stories/graphic.stories.d.ts +0 -64
- package/dist/esm/stories/graphic.stories.js +0 -2
- package/dist/esm/stories/graphic.stories.js.map +0 -7
- package/dist/esm/stories/graphicAttractionBlock.stories.d.ts +0 -6
- package/dist/esm/stories/graphicAttractionBlock.stories.js +0 -2
- package/dist/esm/stories/graphicAttractionBlock.stories.js.map +0 -7
- package/dist/esm/stories/grid.stories.d.ts +0 -22
- package/dist/esm/stories/grid.stories.js +0 -13
- package/dist/esm/stories/grid.stories.js.map +0 -7
- package/dist/esm/stories/heading.stories.d.ts +0 -84
- package/dist/esm/stories/heading.stories.js +0 -15
- package/dist/esm/stories/heading.stories.js.map +0 -7
- package/dist/esm/stories/imageTextFeature.stories.d.ts +0 -28
- package/dist/esm/stories/imageTextFeature.stories.js +0 -50
- package/dist/esm/stories/imageTextFeature.stories.js.map +0 -7
- package/dist/esm/stories/imageWithText.stories.d.ts +0 -51
- package/dist/esm/stories/imageWithText.stories.js +0 -84
- package/dist/esm/stories/imageWithText.stories.js.map +0 -7
- package/dist/esm/stories/input-number.stories.d.ts +0 -39
- package/dist/esm/stories/input-number.stories.js +0 -2
- package/dist/esm/stories/input-number.stories.js.map +0 -7
- package/dist/esm/stories/input.stories.d.ts +0 -35
- package/dist/esm/stories/input.stories.js +0 -2
- package/dist/esm/stories/input.stories.js.map +0 -7
- package/dist/esm/stories/ksp.stories.d.ts +0 -63
- package/dist/esm/stories/ksp.stories.js +0 -128
- package/dist/esm/stories/ksp.stories.js.map +0 -7
- package/dist/esm/stories/link.stories.d.ts +0 -69
- package/dist/esm/stories/link.stories.js +0 -2
- package/dist/esm/stories/link.stories.js.map +0 -7
- package/dist/esm/stories/marquee.stories.d.ts +0 -30
- package/dist/esm/stories/marquee.stories.js +0 -2
- package/dist/esm/stories/marquee.stories.js.map +0 -7
- package/dist/esm/stories/mediaplayerBase.stories.d.ts +0 -6
- package/dist/esm/stories/mediaplayerBase.stories.js +0 -2
- package/dist/esm/stories/mediaplayerBase.stories.js.map +0 -7
- package/dist/esm/stories/mediaplayerMulti.stories.d.ts +0 -16
- package/dist/esm/stories/mediaplayerMulti.stories.js +0 -2
- package/dist/esm/stories/mediaplayerMulti.stories.js.map +0 -7
- package/dist/esm/stories/picture.stories.d.ts +0 -23
- package/dist/esm/stories/picture.stories.js +0 -9
- package/dist/esm/stories/picture.stories.js.map +0 -7
- package/dist/esm/stories/popover.stories.d.ts +0 -17
- package/dist/esm/stories/popover.stories.js +0 -2
- package/dist/esm/stories/popover.stories.js.map +0 -7
- package/dist/esm/stories/productCompare.stories.d.ts +0 -54
- package/dist/esm/stories/productCompare.stories.js +0 -54
- package/dist/esm/stories/productCompare.stories.js.map +0 -7
- package/dist/esm/stories/productHero.stories.d.ts +0 -29
- package/dist/esm/stories/productHero.stories.js +0 -50
- package/dist/esm/stories/productHero.stories.js.map +0 -7
- package/dist/esm/stories/radio.stories.d.ts +0 -39
- package/dist/esm/stories/radio.stories.js +0 -2
- package/dist/esm/stories/radio.stories.js.map +0 -7
- package/dist/esm/stories/shelfDisplay.stories.d.ts +0 -16
- package/dist/esm/stories/shelfDisplay.stories.js +0 -2
- package/dist/esm/stories/shelfDisplay.stories.js.map +0 -7
- package/dist/esm/stories/skeleton.stories.d.ts +0 -20
- package/dist/esm/stories/skeleton.stories.js +0 -2
- package/dist/esm/stories/skeleton.stories.js.map +0 -7
- package/dist/esm/stories/slogan.stories.d.ts +0 -20
- package/dist/esm/stories/slogan.stories.js +0 -6
- package/dist/esm/stories/slogan.stories.js.map +0 -7
- package/dist/esm/stories/specs.stories.d.ts +0 -13
- package/dist/esm/stories/specs.stories.js +0 -57
- package/dist/esm/stories/specs.stories.js.map +0 -7
- package/dist/esm/stories/specsComparison.stories.d.ts +0 -28
- package/dist/esm/stories/specsComparison.stories.js +0 -105
- package/dist/esm/stories/specsComparison.stories.js.map +0 -7
- package/dist/esm/stories/tabWithImage.stories.d.ts +0 -28
- package/dist/esm/stories/tabWithImage.stories.js +0 -53
- package/dist/esm/stories/tabWithImage.stories.js.map +0 -7
- package/dist/esm/stories/tabs.stories.d.ts +0 -373
- package/dist/esm/stories/tabs.stories.js +0 -2
- package/dist/esm/stories/tabs.stories.js.map +0 -7
- package/dist/esm/stories/tabsWithMedia.stories.d.ts +0 -28
- package/dist/esm/stories/tabsWithMedia.stories.js +0 -68
- package/dist/esm/stories/tabsWithMedia.stories.js.map +0 -7
- package/dist/esm/stories/text.stories.d.ts +0 -86
- package/dist/esm/stories/text.stories.js +0 -21
- package/dist/esm/stories/text.stories.js.map +0 -7
- package/dist/esm/stories/videoFeature.stories.d.ts +0 -29
- package/dist/esm/stories/videoFeature.stories.js +0 -56
- package/dist/esm/stories/videoFeature.stories.js.map +0 -7
- package/dist/esm/stories/whychoose.stories.d.ts +0 -21
- package/dist/esm/stories/whychoose.stories.js +0 -2
- package/dist/esm/stories/whychoose.stories.js.map +0 -7
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/biz-components/BrandCardLink/BrandCardLink.tsx"],
|
|
4
|
-
"sourcesContent": ["'use client'\nimport { forwardRef, useEffect, useRef, useState, useImperativeHandle } from 'react'\n\nimport { cn } from '../../helpers/utils.js'\nimport Picture from '../../components/picture.js'\nimport { withLayout } from '../../shared/Styles.js'\nimport type { BrandCardLinkProps, BrandCardLinkItemProps } from './types.js'\n\nimport type { Img } from '../../types/props.js'\nimport { useMediaQuery } from 'react-responsive'\nimport { useExposure } from '../../hooks/useExposure.js'\n\nimport { Swiper, SwiperSlide } from 'swiper/react'\nimport { Pagination, FreeMode, Mousewheel } from 'swiper/modules'\nimport Title from '../Title/index.js'\nimport Link from '../../components/link.js'\n\nconst componentType = 'copy'\nconst componentName = 'store_benefits'\n\nconst chunkArray = (arr: BrandCardLinkItemProps[], size: number) => {\n const chunks = []\n for (let i = 0; i < arr.length; i += size) {\n chunks.push(arr.slice(i, i + size))\n }\n return chunks\n}\n\nconst BrandCardLink = forwardRef<HTMLDivElement, BrandCardLinkProps>(\n ({ data: { items = [], itemShape }, className }, ref) => {\n const [isMobile, setIsMobile] = useState(false)\n const mediaQuery = useMediaQuery({ query: '(max-width: 768px)' })\n const paginationRef = useRef<HTMLDivElement>(null)\n const innerRef = useRef<HTMLDivElement>(null)\n useImperativeHandle(ref, () => innerRef.current as HTMLDivElement)\n useExposure(innerRef, {\n componentType,\n componentName,\n })\n\n useEffect(() => {\n setIsMobile(mediaQuery)\n }, [mediaQuery])\n\n const itemsArray = isMobile ? chunkArray(items,
|
|
4
|
+
"sourcesContent": ["'use client'\nimport { forwardRef, useEffect, useRef, useState, useImperativeHandle } from 'react'\n\nimport { cn } from '../../helpers/utils.js'\nimport Picture from '../../components/picture.js'\nimport { withLayout } from '../../shared/Styles.js'\nimport type { BrandCardLinkProps, BrandCardLinkItemProps } from './types.js'\n\nimport type { Img } from '../../types/props.js'\nimport { useMediaQuery } from 'react-responsive'\nimport { useExposure } from '../../hooks/useExposure.js'\n\nimport { Swiper, SwiperSlide } from 'swiper/react'\nimport { Pagination, FreeMode, Mousewheel } from 'swiper/modules'\nimport Title from '../Title/index.js'\nimport Link from '../../components/link.js'\n\nconst componentType = 'copy'\nconst componentName = 'store_benefits'\n\nconst chunkArray = (arr: BrandCardLinkItemProps[], size: number) => {\n const chunks = []\n for (let i = 0; i < arr.length; i += size) {\n chunks.push(arr.slice(i, i + size))\n }\n return chunks\n}\n\nconst BrandCardLink = forwardRef<HTMLDivElement, BrandCardLinkProps>(\n ({ data: { items = [], itemShape }, className }, ref) => {\n const [isMobile, setIsMobile] = useState(false)\n const mediaQuery = useMediaQuery({ query: '(max-width: 768px)' })\n const paginationRef = useRef<HTMLDivElement>(null)\n const innerRef = useRef<HTMLDivElement>(null)\n useImperativeHandle(ref, () => innerRef.current as HTMLDivElement)\n useExposure(innerRef, {\n componentType,\n componentName,\n })\n\n useEffect(() => {\n setIsMobile(mediaQuery)\n }, [mediaQuery])\n\n const itemsArray = isMobile ? chunkArray(items, 4) : items\n return (\n <div ref={innerRef} className={cn('brand-equity-wrapper w-full', className)}>\n {isMobile ? (\n <Swiper\n className={cn(className)}\n modules={[FreeMode, Mousewheel, Pagination]}\n freeMode={true}\n mousewheel={{\n forceToAxis: true,\n }}\n pagination={{\n clickable: true,\n el: paginationRef.current,\n }}\n breakpoints={{\n 0: {\n spaceBetween: 12,\n },\n }}\n >\n {itemsArray?.map((item, jIndex) => (\n <SwiperSlide key={'SwiperSlide' + jIndex} className=\"!flex flex-col gap-3\">\n {Array.isArray(item) &&\n item?.map((item, index) => (\n <BrandCardLinkItem key={index} data={item} itemShape={itemShape} index={index} />\n ))}\n </SwiperSlide>\n ))}\n <div ref={paginationRef} className=\"mt-3 flex justify-center\"></div>\n </Swiper>\n ) : (\n <div className={cn('laptop:gap-4 tablet:grid-cols-2 laptop:grid-cols-4 grid grid-cols-1 gap-3')}>\n {items.map((item, index) => (\n <BrandCardLinkItem key={index} data={item} itemShape={itemShape} index={index} />\n ))}\n </div>\n )}\n </div>\n )\n }\n)\n\nconst BrandCardLinkItem = ({\n data,\n itemShape,\n index,\n}: {\n data: BrandCardLinkItemProps\n itemShape?: 'round' | 'square'\n index: number\n}) => {\n return (\n <div\n className={cn(\n 'brand-equity-item',\n 'lg-desktop:p-8 desktop:p-6 p-4',\n 'laptop:h-[192px] lg-desktop:h-[240px] h-[160px]',\n 'box-border flex w-full flex-col justify-between overflow-hidden bg-[#DAE7F2]',\n itemShape === 'round' ? 'rounded-box' : 'rounded-none'\n )}\n >\n <div className=\"lg-desktop:h-[50px] flex h-10 items-center justify-between gap-3\">\n <h3 className=\"link-item-title lg-desktop:text-[18px] desktop:text-[16px] line-clamp-2 flex-1 text-[14px] font-bold leading-[1.2] tracking-[-0.02em] text-[#080A0F]\">\n {data.title}\n </h3>\n <div className=\"link-item-img lg-desktop:size-[36px] size-[30px] shrink-0\">\n <Picture\n className=\"size-full object-cover\"\n source={data.icon?.url}\n alt={data.icon?.alt}\n imgClassName=\"w-full h-full object-cover\"\n />\n </div>\n </div>\n <div className=\"box-border overflow-hidden\">\n <p\n title={data.description || ''}\n className=\"link-item-description lg-desktop:text-[24px] line-clamp-2 text-[20px] font-semibold leading-[1.2] tracking-[-0.04em] text-[#767880]\"\n >\n {data.description || ''}\n </p>\n <Link\n href={data?.link}\n asChild={!data?.link}\n className=\"desktop:mt-4 mt-2 flex items-center gap-0.5 no-underline hover:underline\"\n >\n <span className=\"link-item-text laptop:text-base text-sm\">{data?.linkText}</span>\n <div className=\"size-6\">\n <svg\n width=\"24\"\n height=\"24\"\n className=\"mb-[3px]\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n >\n <path\n className=\"transition-all duration-[0.4s]\"\n d=\"M10.5 8L14.5 12L10.5 16\"\n stroke=\"#777\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n ></path>\n </svg>\n </div>\n </Link>\n </div>\n </div>\n )\n}\n\nBrandCardLink.displayName = 'BrandCardLink'\n\nexport default withLayout(BrandCardLink)\n"],
|
|
5
5
|
"mappings": "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",
|
|
6
6
|
"names": ["BrandCardLink_exports", "__export", "BrandCardLink_default", "__toCommonJS", "import_jsx_runtime", "import_react", "import_utils", "import_picture", "import_Styles", "import_react_responsive", "import_useExposure", "import_modules", "import_Title", "import_link", "componentType", "componentName", "chunkArray", "arr", "size", "chunks", "i", "BrandCardLink", "items", "itemShape", "className", "ref", "isMobile", "setIsMobile", "mediaQuery", "paginationRef", "innerRef", "itemsArray", "item", "jIndex", "index", "BrandCardLinkItem", "data", "Picture", "Link"]
|
|
7
7
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { BrandEquityProps } from './types.js';
|
|
2
|
-
declare const _default: import("react").ForwardRefExoticComponent<Omit<
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
declare const _default: import("react").ForwardRefExoticComponent<Omit<BrandEquityProps & import("react").RefAttributes<HTMLDivElement> & {
|
|
3
|
+
style?: string | React.CSSProperties;
|
|
4
|
+
container?: import("../../shared/Styles.js").ContainerProps["container"];
|
|
5
5
|
}, "ref"> & import("react").RefAttributes<any>>;
|
|
6
6
|
export default _default;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";"use client";var
|
|
1
|
+
"use strict";"use client";var I=Object.create;var m=Object.defineProperty;var j=Object.getOwnPropertyDescriptor;var P=Object.getOwnPropertyNames;var L=Object.getPrototypeOf,z=Object.prototype.hasOwnProperty;var H=(e,r)=>{for(var o in r)m(e,o,{get:r[o],enumerable:!0})},b=(e,r,o,i)=>{if(r&&typeof r=="object"||typeof r=="function")for(let a of P(r))!z.call(e,a)&&a!==o&&m(e,a,{get:()=>r[a],enumerable:!(i=j(r,a))||i.enumerable});return e};var h=(e,r,o)=>(o=e!=null?I(L(e)):{},b(r||!e||!e.__esModule?m(o,"default",{value:e,enumerable:!0}):o,e)),D=e=>b(m({},"__esModule",{value:!0}),e);var _={};H(_,{default:()=>C});module.exports=D(_);var t=require("react/jsx-runtime"),s=require("react"),l=require("../../helpers/utils.js"),f=h(require("../../components/picture.js")),N=require("../../shared/Styles.js"),E=require("react-responsive"),q=require("../../hooks/useExposure.js"),c=require("swiper/react"),p=require("swiper/modules"),S=h(require("../Title/index.js")),M=require("../../components/index.js");const F="copy",R="store_benefits",Q=(e,r)=>{const o=[];for(let i=0;i<e.length;i+=r)o.push(e.slice(i,i+r));return o},k=(0,s.forwardRef)(({data:{items:e=[],itemShape:r,title:o},className:i},a)=>{const[x,T]=(0,s.useState)(!1),y=(0,E.useMediaQuery)({query:"(max-width: 768px)"}),v=(0,s.useRef)(null),u=(0,s.useRef)(null);(0,s.useImperativeHandle)(a,()=>u.current),(0,q.useExposure)(u,{componentType:F,componentName:R}),(0,s.useEffect)(()=>{T(y)},[y]);const B=x?Q(e,3):e;return(0,t.jsxs)("div",{ref:u,className:(0,l.cn)("brand-equity-wrapper w-full",i),children:[o&&(0,t.jsx)(S.default,{data:{title:o}}),x?(0,t.jsxs)(c.Swiper,{className:(0,l.cn)(i),modules:[p.FreeMode,p.Mousewheel,p.Pagination],freeMode:!0,mousewheel:{forceToAxis:!0},pagination:{clickable:!0,el:v.current},breakpoints:{0:{spaceBetween:12}},children:[B?.map((n,d)=>(0,t.jsx)(c.SwiperSlide,{className:"!flex flex-col gap-3",children:Array.isArray(n)&&n?.map((A,g)=>(0,t.jsx)(w,{data:A,itemShape:r,index:g},g))},"SwiperSlide"+d)),(0,t.jsx)("div",{ref:v,className:"mt-3 flex justify-center"})]}):(0,t.jsx)("div",{className:(0,l.cn)("grid grid-cols-1 gap-3","tablet:grid-cols-2","laptop:gap-4 laptop:grid-cols-10"),children:e.map((n,d)=>(0,t.jsx)(w,{data:n,itemShape:r,index:d},d))})]})}),w=({data:e,itemShape:r,index:o})=>(0,t.jsxs)("div",{className:(0,l.cn)("brand-equity-item","box-border flex w-full flex-col bg-white p-4","desktop:p-6 justify-between","laptop:col-span-3 lg-desktop:p-8","laptop:h-[192px] lg-desktop:h-[240px] h-[160px]",{"laptop:col-span-4":[0,5,6,11].includes(o)},r==="round"?"rounded-box":"rounded-none"),children:[(0,t.jsxs)("div",{className:"lg-desktop:h-[36px] flex h-[30px] items-center justify-between gap-3",children:[(0,t.jsx)("h3",{className:"lg-desktop:text-[18px] desktop:text-[16px] text-[14px] font-bold leading-[1.2] tracking-[-0.02em] text-[#080A0F]",children:e.title}),e.type==="avatar"?(0,t.jsx)("div",{className:"flex shrink-0 -space-x-2",children:e?.avatarList?.map((i,a)=>(0,t.jsx)("div",{className:(0,l.cn)("size-[30px] overflow-hidden rounded-full border-2 border-white","relative inline-block shrink-0","lg-desktop:size-[36px]"),children:(0,t.jsx)(f.default,{source:i.avatar?.url,alt:i.avatar?.alt,className:"size-full object-cover"})},a))}):(0,t.jsx)("div",{className:"lg-desktop:size-[36px] size-[30px] shrink-0",children:(0,t.jsx)(f.default,{className:"size-full object-cover",source:e.icon?.url,alt:e.icon?.alt,imgClassName:"w-full h-full object-cover"})})]}),(0,t.jsx)("p",{className:"lg-desktop:text-[24px] line-clamp-3 text-[20px] font-bold leading-[1.2] tracking-[-0.04em] text-[#080A0F]",children:e.description}),e?.descText&&(0,t.jsx)(M.Text,{className:"lg-desktop:text-[24px] line-clamp-3 text-[20px] font-bold leading-[1.2] tracking-[-0.04em] text-[#080A0F]",html:e.descText})]});k.displayName="BrandEquity";var C=(0,N.withLayout)(k);
|
|
2
2
|
//# sourceMappingURL=BrandEquity.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/biz-components/BrandEquity/BrandEquity.tsx"],
|
|
4
|
-
"sourcesContent": ["'use client'\nimport { forwardRef, useEffect, useRef, useState, useImperativeHandle } from 'react'\n\nimport { cn } from '../../helpers/utils.js'\nimport Picture from '../../components/picture.js'\nimport { withLayout } from '../../shared/Styles.js'\nimport type { BrandEquityProps, BrandEquityItemProps } from './types.js'\n\nimport type { Img } from '../../types/props.js'\nimport { useMediaQuery } from 'react-responsive'\nimport { useExposure } from '../../hooks/useExposure.js'\n\nimport { Swiper, SwiperSlide } from 'swiper/react'\nimport { Pagination, FreeMode, Mousewheel } from 'swiper/modules'\nimport Title from '../Title/index.js'\n\nconst componentType = 'copy'\nconst componentName = 'store_benefits'\n\nconst chunkArray = (arr: BrandEquityItemProps[], size: number) => {\n const chunks = []\n for (let i = 0; i < arr.length; i += size) {\n chunks.push(arr.slice(i, i + size))\n }\n return chunks\n}\n\nconst BrandEquity = forwardRef<HTMLDivElement, BrandEquityProps>(\n ({ data: { items = [], itemShape, title }, className }, ref) => {\n const [isMobile, setIsMobile] = useState(false)\n const mediaQuery = useMediaQuery({ query: '(max-width: 768px)' })\n const paginationRef = useRef<HTMLDivElement>(null)\n const innerRef = useRef<HTMLDivElement>(null)\n useImperativeHandle(ref, () => innerRef.current as HTMLDivElement)\n useExposure(innerRef, {\n componentType,\n componentName,\n })\n\n useEffect(() => {\n setIsMobile(mediaQuery)\n }, [mediaQuery])\n\n const itemsArray = isMobile ? chunkArray(items, 3) : items\n return (\n <div ref={innerRef} className={cn('brand-equity-wrapper w-full', className)}>\n {title && <Title data={{ title: title }} />}\n {isMobile ? (\n <Swiper\n className={cn(className)}\n modules={[FreeMode, Mousewheel, Pagination]}\n freeMode={true}\n mousewheel={{\n forceToAxis: true,\n }}\n pagination={{\n clickable: true,\n el: paginationRef.current,\n }}\n breakpoints={{\n 0: {\n spaceBetween: 12,\n },\n }}\n >\n {itemsArray?.map((item, jIndex) => (\n <SwiperSlide key={'SwiperSlide' + jIndex} className=\"!flex flex-col gap-3\">\n {Array.isArray(item) &&\n item?.map((item, index) => (\n <BrandEquityItem key={index} data={item} itemShape={itemShape} index={index} />\n ))}\n </SwiperSlide>\n ))}\n <div ref={paginationRef} className=\"mt-3 flex justify-center\"></div>\n </Swiper>\n ) : (\n <div className={cn('grid grid-cols-1 gap-3', 'tablet:grid-cols-2', 'laptop:gap-4 laptop:grid-cols-10')}>\n {items.map((item, index) => (\n <BrandEquityItem key={index} data={item} itemShape={itemShape} index={index} />\n ))}\n </div>\n )}\n </div>\n )\n }\n)\n\nconst BrandEquityItem = ({\n data,\n itemShape,\n index,\n}: {\n data: BrandEquityItemProps\n itemShape?: 'round' | 'square'\n index: number\n}) => {\n return (\n <div\n className={cn(\n 'brand-equity-item',\n 'box-border flex w-full flex-col bg-white p-4',\n 'desktop:p-6 justify-between',\n 'laptop:col-span-3 lg-desktop:p-8',\n 'laptop:h-[192px] lg-desktop:h-[240px] h-[160px]',\n {\n ['laptop:col-span-4']: [0, 5, 6, 11].includes(index),\n },\n itemShape === 'round' ? 'rounded-box' : 'rounded-none'\n )}\n >\n <div className=\"lg-desktop:h-[36px] flex h-[30px] items-center justify-between gap-3\">\n <h3 className=\"lg-desktop:text-[18px] desktop:text-[16px] text-[14px] font-bold leading-[1.2] tracking-[-0.02em] text-[#080A0F]\">\n {data.title}\n </h3>\n {data.type === 'avatar' ? (\n <div className=\"flex shrink-0 -space-x-2\">\n {data?.avatarList?.map((item: { avatar: Img }, index: number) => (\n <div\n key={index}\n className={cn(\n 'size-[30px] overflow-hidden rounded-full border-2 border-white',\n 'relative inline-block shrink-0',\n 'lg-desktop:size-[36px]'\n )}\n >\n <Picture source={item.avatar?.url} alt={item.avatar?.alt} className=\"size-full object-cover\" />\n </div>\n ))}\n </div>\n ) : (\n <div className=\"lg-desktop:size-[36px] size-[30px] shrink-0\">\n <Picture\n className=\"size-full object-cover\"\n source={data.icon?.url}\n alt={data.icon?.alt}\n imgClassName=\"w-full h-full object-cover\"\n />\n </div>\n )}\n </div>\n <p className=\"lg-desktop:text-[24px] line-clamp-3 text-[20px] font-bold leading-[1.2] tracking-[-0.04em] text-[#080A0F]\">\n {data.description}\n </p>\n </div>\n )\n}\n\nBrandEquity.displayName = 'BrandEquity'\n\nexport default withLayout(BrandEquity)\n"],
|
|
5
|
-
"mappings": "ukBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,IAAA,eAAAC,EAAAH,
|
|
6
|
-
"names": ["BrandEquity_exports", "__export", "BrandEquity_default", "__toCommonJS", "import_jsx_runtime", "import_react", "import_utils", "import_picture", "import_Styles", "import_react_responsive", "import_useExposure", "import_modules", "import_Title", "componentType", "componentName", "chunkArray", "arr", "size", "chunks", "BrandEquity", "items", "itemShape", "title", "className", "ref", "isMobile", "setIsMobile", "mediaQuery", "paginationRef", "innerRef", "itemsArray", "Title", "item", "jIndex", "index", "BrandEquityItem", "data", "Picture"]
|
|
4
|
+
"sourcesContent": ["'use client'\nimport { forwardRef, useEffect, useRef, useState, useImperativeHandle } from 'react'\n\nimport { cn } from '../../helpers/utils.js'\nimport Picture from '../../components/picture.js'\nimport { withLayout } from '../../shared/Styles.js'\nimport type { BrandEquityProps, BrandEquityItemProps } from './types.js'\n\nimport type { Img } from '../../types/props.js'\nimport { useMediaQuery } from 'react-responsive'\nimport { useExposure } from '../../hooks/useExposure.js'\n\nimport { Swiper, SwiperSlide } from 'swiper/react'\nimport { Pagination, FreeMode, Mousewheel } from 'swiper/modules'\nimport Title from '../Title/index.js'\nimport { Text } from '../../components/index.js'\n\nconst componentType = 'copy'\nconst componentName = 'store_benefits'\n\nconst chunkArray = (arr: BrandEquityItemProps[], size: number) => {\n const chunks = []\n for (let i = 0; i < arr.length; i += size) {\n chunks.push(arr.slice(i, i + size))\n }\n return chunks\n}\n\nconst BrandEquity = forwardRef<HTMLDivElement, BrandEquityProps>(\n ({ data: { items = [], itemShape, title }, className }, ref) => {\n const [isMobile, setIsMobile] = useState(false)\n const mediaQuery = useMediaQuery({ query: '(max-width: 768px)' })\n const paginationRef = useRef<HTMLDivElement>(null)\n const innerRef = useRef<HTMLDivElement>(null)\n useImperativeHandle(ref, () => innerRef.current as HTMLDivElement)\n useExposure(innerRef, {\n componentType,\n componentName,\n })\n\n useEffect(() => {\n setIsMobile(mediaQuery)\n }, [mediaQuery])\n\n const itemsArray = isMobile ? chunkArray(items, 3) : items\n return (\n <div ref={innerRef} className={cn('brand-equity-wrapper w-full', className)}>\n {title && <Title data={{ title: title }} />}\n {isMobile ? (\n <Swiper\n className={cn(className)}\n modules={[FreeMode, Mousewheel, Pagination]}\n freeMode={true}\n mousewheel={{\n forceToAxis: true,\n }}\n pagination={{\n clickable: true,\n el: paginationRef.current,\n }}\n breakpoints={{\n 0: {\n spaceBetween: 12,\n },\n }}\n >\n {itemsArray?.map((item, jIndex) => (\n <SwiperSlide key={'SwiperSlide' + jIndex} className=\"!flex flex-col gap-3\">\n {Array.isArray(item) &&\n item?.map((item, index) => (\n <BrandEquityItem key={index} data={item} itemShape={itemShape} index={index} />\n ))}\n </SwiperSlide>\n ))}\n <div ref={paginationRef} className=\"mt-3 flex justify-center\"></div>\n </Swiper>\n ) : (\n <div className={cn('grid grid-cols-1 gap-3', 'tablet:grid-cols-2', 'laptop:gap-4 laptop:grid-cols-10')}>\n {items.map((item, index) => (\n <BrandEquityItem key={index} data={item} itemShape={itemShape} index={index} />\n ))}\n </div>\n )}\n </div>\n )\n }\n)\n\nconst BrandEquityItem = ({\n data,\n itemShape,\n index,\n}: {\n data: BrandEquityItemProps\n itemShape?: 'round' | 'square'\n index: number\n}) => {\n return (\n <div\n className={cn(\n 'brand-equity-item',\n 'box-border flex w-full flex-col bg-white p-4',\n 'desktop:p-6 justify-between',\n 'laptop:col-span-3 lg-desktop:p-8',\n 'laptop:h-[192px] lg-desktop:h-[240px] h-[160px]',\n {\n ['laptop:col-span-4']: [0, 5, 6, 11].includes(index),\n },\n itemShape === 'round' ? 'rounded-box' : 'rounded-none'\n )}\n >\n <div className=\"lg-desktop:h-[36px] flex h-[30px] items-center justify-between gap-3\">\n <h3 className=\"lg-desktop:text-[18px] desktop:text-[16px] text-[14px] font-bold leading-[1.2] tracking-[-0.02em] text-[#080A0F]\">\n {data.title}\n </h3>\n {data.type === 'avatar' ? (\n <div className=\"flex shrink-0 -space-x-2\">\n {data?.avatarList?.map((item: { avatar: Img }, index: number) => (\n <div\n key={index}\n className={cn(\n 'size-[30px] overflow-hidden rounded-full border-2 border-white',\n 'relative inline-block shrink-0',\n 'lg-desktop:size-[36px]'\n )}\n >\n <Picture source={item.avatar?.url} alt={item.avatar?.alt} className=\"size-full object-cover\" />\n </div>\n ))}\n </div>\n ) : (\n <div className=\"lg-desktop:size-[36px] size-[30px] shrink-0\">\n <Picture\n className=\"size-full object-cover\"\n source={data.icon?.url}\n alt={data.icon?.alt}\n imgClassName=\"w-full h-full object-cover\"\n />\n </div>\n )}\n </div>\n <p className=\"lg-desktop:text-[24px] line-clamp-3 text-[20px] font-bold leading-[1.2] tracking-[-0.04em] text-[#080A0F]\">\n {data.description}\n </p>\n {data?.descText && (\n <Text\n className=\"lg-desktop:text-[24px] line-clamp-3 text-[20px] font-bold leading-[1.2] tracking-[-0.04em] text-[#080A0F]\"\n html={data.descText}\n />\n )}\n </div>\n )\n}\n\nBrandEquity.displayName = 'BrandEquity'\n\nexport default withLayout(BrandEquity)\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["BrandEquity_exports", "__export", "BrandEquity_default", "__toCommonJS", "import_jsx_runtime", "import_react", "import_utils", "import_picture", "import_Styles", "import_react_responsive", "import_useExposure", "import_modules", "import_Title", "import_components", "componentType", "componentName", "chunkArray", "arr", "size", "chunks", "BrandEquity", "items", "itemShape", "title", "className", "ref", "isMobile", "setIsMobile", "mediaQuery", "paginationRef", "innerRef", "itemsArray", "Title", "item", "jIndex", "index", "BrandEquityItem", "data", "Picture"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var n=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var p=Object.prototype.hasOwnProperty;var m=(r,t,s,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let e of i(t))!p.call(r,e)&&e!==s&&n(r,e,{get:()=>t[e],enumerable:!(o=a(t,e))||o.enumerable});return r};var d=r=>m(n({},"__esModule",{value:!0}),r);var g={};module.exports=d(g);
|
|
2
2
|
//# sourceMappingURL=types.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/biz-components/BrandEquity/types.ts"],
|
|
4
|
-
"sourcesContent": ["import type { ComponentCommonProps, Img } from '../../types/props.js'\n\nexport interface BrandEquityItemProps {\n icon?: Img\n type?: 'icon' | 'avatar'\n title: string\n description: string\n avatarList?: {\n avatar: Img\n }[]\n}\n\nexport interface BrandEquityProps extends ComponentCommonProps {\n data: {\n title?: string\n items: BrandEquityItemProps[]\n itemShape?: 'round' | 'square'\n }\n className?: string\n}\n"],
|
|
4
|
+
"sourcesContent": ["import type { ComponentCommonProps, Img } from '../../types/props.js'\n\nexport interface BrandEquityItemProps {\n icon?: Img\n type?: 'icon' | 'avatar'\n title: string\n description: string\n descText?: string\n avatarList?: {\n avatar: Img\n }[]\n}\n\nexport interface BrandEquityProps extends ComponentCommonProps {\n data: {\n title?: string\n items: BrandEquityItemProps[]\n itemShape?: 'round' | 'square'\n }\n className?: string\n}\n"],
|
|
5
5
|
"mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
|
|
6
6
|
"names": ["types_exports", "__toCommonJS"]
|
|
7
7
|
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* 免费赠品接口
|
|
4
|
+
*/
|
|
5
|
+
export interface FreeGift {
|
|
6
|
+
/** 赠品ID */
|
|
7
|
+
id: string;
|
|
8
|
+
/** 赠品图片URL */
|
|
9
|
+
image: string;
|
|
10
|
+
/** 赠品名称 */
|
|
11
|
+
name: string;
|
|
12
|
+
/** 原价 */
|
|
13
|
+
originalPrice: string;
|
|
14
|
+
/** 现价(通常为Free) */
|
|
15
|
+
currentPrice: string;
|
|
16
|
+
/** 是否为新品 */
|
|
17
|
+
isNew?: boolean;
|
|
18
|
+
/** 是否被选中 */
|
|
19
|
+
selected?: boolean;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* 产品卡片数据接口
|
|
23
|
+
*/
|
|
24
|
+
export interface ProductCardData {
|
|
25
|
+
/** 产品图片URL */
|
|
26
|
+
image: string;
|
|
27
|
+
/** 产品标签列表 */
|
|
28
|
+
tags?: string[];
|
|
29
|
+
/** 产品名称 */
|
|
30
|
+
name: string;
|
|
31
|
+
/** 产品描述 */
|
|
32
|
+
description: string;
|
|
33
|
+
/** 免费赠品说明文字 */
|
|
34
|
+
freeGiftLabel?: string;
|
|
35
|
+
/** 免费赠品列表 */
|
|
36
|
+
freeGifts?: FreeGift[];
|
|
37
|
+
/** 赠品选择模式:单选或多选 */
|
|
38
|
+
giftSelectionMode?: 'single' | 'multiple';
|
|
39
|
+
/** 当前价格 */
|
|
40
|
+
currentPrice: string;
|
|
41
|
+
/** 原价 */
|
|
42
|
+
originalPrice?: string;
|
|
43
|
+
/** Learn More按钮文本 */
|
|
44
|
+
learnMoreText?: string;
|
|
45
|
+
/** Shop Now按钮文本 */
|
|
46
|
+
shopNowText?: string;
|
|
47
|
+
}
|
|
48
|
+
export interface ProductCardProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
49
|
+
/** 产品数据 */
|
|
50
|
+
data: ProductCardData;
|
|
51
|
+
/** 礼品数据源,用于匹配实际的价格、图片、标题 */
|
|
52
|
+
giftData?: any;
|
|
53
|
+
/** 布局模式:一排一个或一排两个 */
|
|
54
|
+
layout?: 'single' | 'double';
|
|
55
|
+
/** 产品卡片点击事件 */
|
|
56
|
+
onProductClick?: (product: ProductCardData) => void;
|
|
57
|
+
/** 产品图片点击事件 */
|
|
58
|
+
onProductImageClick?: (product: ProductCardData) => void;
|
|
59
|
+
/** Learn More按钮点击事件 */
|
|
60
|
+
onLearnMore?: (product: ProductCardData) => void;
|
|
61
|
+
/** Shop Now按钮点击事件 */
|
|
62
|
+
onShopNow?: (product: ProductCardData) => void;
|
|
63
|
+
/** 赠品点击事件 */
|
|
64
|
+
onGiftClick?: (gift: FreeGift, product: ProductCardData) => void;
|
|
65
|
+
/** 赠品选择变化事件 */
|
|
66
|
+
onGiftSelectionChange?: (selectedGifts: FreeGift[], product: ProductCardData) => void;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* ProductCard - 买赠货架产品卡片
|
|
70
|
+
*
|
|
71
|
+
* @description 用于买一赠一活动的产品展示卡片,左侧展示产品图片和标签,右侧展示产品信息、赠品和购买按钮
|
|
72
|
+
*/
|
|
73
|
+
declare const ProductCard: React.ForwardRefExoticComponent<ProductCardProps & React.RefAttributes<HTMLDivElement>>;
|
|
74
|
+
export default ProductCard;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";"use client";var q=Object.create;var v=Object.defineProperty;var J=Object.getOwnPropertyDescriptor;var K=Object.getOwnPropertyNames;var O=Object.getPrototypeOf,Q=Object.prototype.hasOwnProperty;var X=(t,e)=>{for(var l in e)v(t,l,{get:e[l],enumerable:!0})},P=(t,e,l,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of K(e))!Q.call(t,a)&&a!==l&&v(t,a,{get:()=>e[a],enumerable:!(r=J(e,a))||r.enumerable});return t};var w=(t,e,l)=>(l=t!=null?q(O(t)):{},P(e||!t||!t.__esModule?v(l,"default",{value:t,enumerable:!0}):l,t)),Y=t=>P(v({},"__esModule",{value:!0}),t);var ee={};X(ee,{default:()=>_});module.exports=Y(ee);var i=require("react/jsx-runtime"),f=w(require("react")),n=require("../../helpers/index.js"),h=w(require("../../components/picture.js")),y=w(require("../../components/button.js")),u=require("../../components/text.js"),F=require("../../components/heading.js"),L=w(require("../../components/badge.js"));function Z(t,e){return!e||!Array.isArray(e)?null:e.find(r=>r.handle&&r.handle===t||r.id&&r.id===t?!0:r.variants&&Array.isArray(r.variants)?r.variants.some(a=>a.sku===t):!1)||null}const G=f.forwardRef(({image:t,name:e,layout:l="single",className:r,onClick:a},p)=>(0,i.jsx)("div",{ref:p,className:(0,n.cn)("rounded-l-box laptop:rounded-l-box tablet:rounded-t-box tablet:rounded-r-none relative flex items-start gap-6 overflow-hidden p-6",l==="single"?"w-[964px]":"w-[482px]",l==="single"?" tablet:w-full tablet:p-4":"",a?"cursor-pointer":"",r),onClick:a,children:(0,i.jsx)(h.default,{source:t,alt:e,className:"absolute inset-0 w-full max-w-none",imgClassName:"h-full object-cover"})}));G.displayName="ProductImage";const k=f.forwardRef(({name:t,description:e,layout:l="single",className:r},a)=>(0,i.jsxs)("div",{ref:a,className:(0,n.cn)("flex w-full flex-col gap-1",r),children:[(0,i.jsx)(F.Heading,{as:"h4",size:4,weight:"semibold",className:(0,n.cn)("text-info-primary w-full text-2xl leading-[1.2] tracking-[-0.96px]","tablet:text-[20px] tablet:tracking-[-0.8px]"),children:t}),(0,i.jsx)(u.Text,{size:4,weight:"semibold",className:(0,n.cn)("text-info-primary w-full leading-[1.4] tracking-[-0.36px]","tablet:text-sm tablet:tracking-[-0.28px]"),children:e})]}));k.displayName="ProductInfo";const T=f.forwardRef(({gift:t,onClick:e,className:l},r)=>(0,i.jsx)("div",{ref:r,className:(0,n.cn)("bg-container-primary rounded-box relative flex w-full cursor-pointer flex-col border-2 transition-all hover:shadow-sm",t.selected?"border-brand-0":"border-container-secondary-1",l),onClick:()=>e?.(t),children:(0,i.jsxs)("div",{className:"flex w-full flex-col items-end",children:[t.isNew&&(0,i.jsx)("div",{className:"absolute right-0 top-0 flex items-start",children:(0,i.jsx)(L.default,{size:"lg",variant:"fill",children:"Free"})}),(0,i.jsxs)("div",{className:(0,n.cn)("flex w-full items-center gap-4 p-4","tablet:p-2"),children:[(0,i.jsx)("div",{className:(0,n.cn)("size-14 shrink-0","tablet:size-12"),children:(0,i.jsx)(h.default,{source:t.image,alt:t.name,className:"size-full object-cover"})}),(0,i.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col gap-1",children:[(0,i.jsx)(u.Text,{size:4,weight:"semibold",className:(0,n.cn)("text-info-primary truncate leading-[1.4] tracking-[-0.36px]","tablet:text-sm tablet:tracking-[-0.28px]"),children:t.name}),(0,i.jsxs)("div",{className:"flex items-center gap-1",children:[(0,i.jsx)(u.Text,{size:4,weight:"semibold",className:(0,n.cn)(),children:t.currentPrice}),(0,i.jsx)(u.Text,{size:4,weight:"semibold",className:(0,n.cn)(),children:t.originalPrice})]})]})]})]})}));T.displayName="FreeGiftItem";const S=f.forwardRef(({freeGiftLabel:t,freeGifts:e,onGiftClick:l,layout:r="single",className:a},p)=>!e||e.length===0?null:(0,i.jsxs)("div",{ref:p,className:(0,n.cn)("flex w-full flex-col gap-2",a),children:[t&&(0,i.jsx)(u.Text,{size:4,weight:"semibold",className:(0,n.cn)("text-info-primary w-full leading-[1.4] tracking-[-0.36px]","tablet:text-sm tablet:tracking-[-0.28px]"),children:t}),(0,i.jsx)("div",{className:(0,n.cn)("tablet:flex-row laptop:flex-col flex flex-col gap-2"),children:e.map((g,b)=>(0,i.jsx)("div",{children:(0,i.jsx)(T,{gift:g,onClick:l})},g.id||b))})]}));S.displayName="GiftSelection";const M=f.forwardRef(({currentPrice:t,originalPrice:e,learnMoreText:l="Learn More",shopNowText:r="Shop Now",onLearnMore:a,onShopNow:p,layout:g="single",className:b},N)=>(0,i.jsxs)("div",{ref:N,className:(0,n.cn)("flex w-full flex-col justify-center gap-2",b),children:[(0,i.jsxs)("div",{className:"flex w-full items-center gap-1",children:[(0,i.jsx)(u.Text,{size:4,weight:"semibold",className:(0,n.cn)(),children:t}),e&&(0,i.jsx)(u.Text,{size:4,weight:"semibold",className:(0,n.cn)("line-through"),children:e})]}),(0,i.jsxs)("div",{className:(0,n.cn)("flex items-start gap-3","tablet:gap-2"),children:[(0,i.jsx)(y.default,{variant:"secondary",size:"lg",className:(0,n.cn)("tablet:px-5 tablet:py-[10px] tablet:text-sm tablet:tracking-[-0.56px]"),onClick:a,children:l}),(0,i.jsx)(y.default,{variant:"primary",size:"lg",className:(0,n.cn)("tablet:px-5 tablet:py-[10px] tablet:text-sm tablet:tracking-[-0.56px]"),onClick:p,children:r})]})]}));M.displayName="PriceAndActions";const D=f.forwardRef(({className:t,data:e,giftData:l,layout:r="single",onProductClick:a,onProductImageClick:p,onLearnMore:g,onShopNow:b,onGiftClick:N,onGiftSelectionChange:z,...H},A)=>{const E=r==="single"?"w-full max-w-[1664px]":"w-full",R=r==="single"?"w-[700px]":"w-[350px]",[x,C]=f.useState(()=>e.freeGifts?.filter(s=>s.selected)||[]);f.useEffect(()=>{const s=e.freeGifts?.filter(o=>o.selected)||[];C(s)},[e.freeGifts]);const I=f.useMemo(()=>e.freeGifts?.map(s=>{const o=Z(s.id,l),c={...s};if(o){if(o.title&&(c.name=o.title),o.price){const d=o.price.value||o.price,m=o.price.currencyCode||"USD";c.originalPrice=`${m} ${d}`,c.currentPrice="Free"}if(o.images&&o.images.length>0&&(c.image=o.images[0].url||s.image),o.variants&&o.variants.length>0){const d=o.variants[0];if(d.price){const m=d.price.value||d.price,U=d.price.currencyCode||"USD";c.originalPrice=`${U} ${m}`,c.currentPrice="Free"}d.image&&d.image.url&&(c.image=d.image.url)}}return{...c,selected:x.some(d=>d.id===s.id)}})||[],[e.freeGifts,x,l]),B=()=>{a?.(e)},W=()=>{p?.(e)},$=()=>{g?.(e)},j=()=>{b?.(e)},V=s=>{const o=e.giftSelectionMode||"multiple";let c;o==="single"?c=x.some(m=>m.id===s.id)?[]:[s]:x.some(m=>m.id===s.id)?c=x.filter(m=>m.id!==s.id):c=[...x,s],C(c),N?.(s,e),z?.(c,e)};return(0,i.jsxs)("div",{ref:A,className:(0,n.cn)("bg-container-primary laptop:flex-row rounded-box flex flex-col items-stretch",E,r==="single"?"tablet:flex-col tablet:max-w-[704px]":"",a?"cursor-pointer":"",t),onClick:B,...H,children:[(0,i.jsx)(G,{image:e.image,name:e.name,layout:r,onClick:W}),(0,i.jsxs)("div",{className:(0,n.cn)("bg-container-secondary-1 rounded-r-box laptop:rounded-r-box tablet:rounded-b-box tablet:rounded-l-none flex flex-col justify-between p-6",R,r==="single"?"tablet:w-full tablet:p-4 tablet:gap-4":""),children:[(0,i.jsx)(k,{name:e.name,description:e.description,layout:r}),(0,i.jsx)(S,{freeGiftLabel:e.freeGiftLabel,freeGifts:I,onGiftClick:V,layout:r}),(0,i.jsx)(M,{currentPrice:e.currentPrice,originalPrice:e.originalPrice,learnMoreText:e.learnMoreText,shopNowText:e.shopNowText,onLearnMore:$,onShopNow:j,layout:r})]})]})});D.displayName="ProductCard";var _=D;
|
|
2
|
+
//# sourceMappingURL=ProductCard.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/biz-components/BuyOneGetOneShelf/ProductCard.tsx"],
|
|
4
|
+
"sourcesContent": ["'use client'\n\nimport * as React from 'react'\nimport { cn } from '../../helpers/index.js'\nimport Picture from '../../components/picture.js'\nimport Button from '../../components/button.js'\nimport { Text } from '../../components/text.js'\nimport { Heading } from '../../components/heading.js'\nimport Badge from '../../components/badge.js'\n\n/**\n * \u5339\u914D\u793C\u54C1\u6570\u636E\u51FD\u6570\n * \u901A\u8FC7 ID\u3001handle \u6216 SKU \u5339\u914D giftData \u4E2D\u7684\u5B9E\u9645\u793C\u54C1\u4FE1\u606F\n */\nfunction matchGiftData(giftId: string, giftData?: any): any | null {\n if (!giftData || !Array.isArray(giftData)) {\n return null\n }\n\n // \u5C1D\u8BD5\u901A\u8FC7\u591A\u79CD\u65B9\u5F0F\u5339\u914D\u793C\u54C1\n const matchedGift = giftData.find((gift: any) => {\n // \u901A\u8FC7 handle \u5339\u914D\n if (gift.handle && gift.handle === giftId) {\n return true\n }\n\n // \u901A\u8FC7 id \u5339\u914D\n if (gift.id && gift.id === giftId) {\n return true\n }\n\n // \u901A\u8FC7 variants \u4E2D\u7684 sku \u5339\u914D\n if (gift.variants && Array.isArray(gift.variants)) {\n return gift.variants.some((variant: any) => variant.sku === giftId)\n }\n\n return false\n })\n\n return matchedGift || null\n}\n\n/**\n * \u514D\u8D39\u8D60\u54C1\u63A5\u53E3\n */\nexport interface FreeGift {\n /** \u8D60\u54C1ID */\n id: string\n /** \u8D60\u54C1\u56FE\u7247URL */\n image: string\n /** \u8D60\u54C1\u540D\u79F0 */\n name: string\n /** \u539F\u4EF7 */\n originalPrice: string\n /** \u73B0\u4EF7\uFF08\u901A\u5E38\u4E3AFree\uFF09 */\n currentPrice: string\n /** \u662F\u5426\u4E3A\u65B0\u54C1 */\n isNew?: boolean\n /** \u662F\u5426\u88AB\u9009\u4E2D */\n selected?: boolean\n}\n\n/**\n * \u4EA7\u54C1\u5361\u7247\u6570\u636E\u63A5\u53E3\n */\nexport interface ProductCardData {\n /** \u4EA7\u54C1\u56FE\u7247URL */\n image: string\n /** \u4EA7\u54C1\u6807\u7B7E\u5217\u8868 */\n tags?: string[]\n /** \u4EA7\u54C1\u540D\u79F0 */\n name: string\n /** \u4EA7\u54C1\u63CF\u8FF0 */\n description: string\n /** \u514D\u8D39\u8D60\u54C1\u8BF4\u660E\u6587\u5B57 */\n freeGiftLabel?: string\n /** \u514D\u8D39\u8D60\u54C1\u5217\u8868 */\n freeGifts?: FreeGift[]\n /** \u8D60\u54C1\u9009\u62E9\u6A21\u5F0F\uFF1A\u5355\u9009\u6216\u591A\u9009 */\n giftSelectionMode?: 'single' | 'multiple'\n /** \u5F53\u524D\u4EF7\u683C */\n currentPrice: string\n /** \u539F\u4EF7 */\n originalPrice?: string\n /** Learn More\u6309\u94AE\u6587\u672C */\n learnMoreText?: string\n /** Shop Now\u6309\u94AE\u6587\u672C */\n shopNowText?: string\n}\n\nexport interface ProductCardProps extends React.HTMLAttributes<HTMLDivElement> {\n /** \u4EA7\u54C1\u6570\u636E */\n data: ProductCardData\n /** \u793C\u54C1\u6570\u636E\u6E90\uFF0C\u7528\u4E8E\u5339\u914D\u5B9E\u9645\u7684\u4EF7\u683C\u3001\u56FE\u7247\u3001\u6807\u9898 */\n giftData?: any\n /** \u5E03\u5C40\u6A21\u5F0F\uFF1A\u4E00\u6392\u4E00\u4E2A\u6216\u4E00\u6392\u4E24\u4E2A */\n layout?: 'single' | 'double'\n /** \u4EA7\u54C1\u5361\u7247\u70B9\u51FB\u4E8B\u4EF6 */\n onProductClick?: (product: ProductCardData) => void\n /** \u4EA7\u54C1\u56FE\u7247\u70B9\u51FB\u4E8B\u4EF6 */\n onProductImageClick?: (product: ProductCardData) => void\n /** Learn More\u6309\u94AE\u70B9\u51FB\u4E8B\u4EF6 */\n onLearnMore?: (product: ProductCardData) => void\n /** Shop Now\u6309\u94AE\u70B9\u51FB\u4E8B\u4EF6 */\n onShopNow?: (product: ProductCardData) => void\n /** \u8D60\u54C1\u70B9\u51FB\u4E8B\u4EF6 */\n onGiftClick?: (gift: FreeGift, product: ProductCardData) => void\n /** \u8D60\u54C1\u9009\u62E9\u53D8\u5316\u4E8B\u4EF6 */\n onGiftSelectionChange?: (selectedGifts: FreeGift[], product: ProductCardData) => void\n}\n\n/**\n * ProductImage - \u4EA7\u54C1\u56FE\u7247\u533A\u57DF\n */\nconst ProductImage = React.forwardRef<\n HTMLDivElement,\n {\n image: string\n name: string\n layout?: 'single' | 'double'\n className?: string\n onClick?: () => void\n }\n>(({ image, name, layout = 'single', className, onClick }, ref) => {\n const imageWidth = layout === 'single' ? 'w-[964px]' : 'w-[482px]'\n\n return (\n <div\n ref={ref}\n className={cn(\n 'rounded-l-box laptop:rounded-l-box tablet:rounded-t-box tablet:rounded-r-none relative flex items-start gap-6 overflow-hidden p-6',\n imageWidth,\n // \u79FB\u52A8\u7AEF\u6837\u5F0F\n layout === 'single' ? ' tablet:w-full tablet:p-4' : '',\n onClick ? 'cursor-pointer' : '',\n className\n )}\n onClick={onClick}\n >\n {/* \u80CC\u666F\u56FE\u7247 */}\n\n <Picture\n source={image}\n alt={name}\n className=\"absolute inset-0 w-full max-w-none\"\n imgClassName=\"h-full object-cover\"\n />\n </div>\n )\n})\n\nProductImage.displayName = 'ProductImage'\n\n/**\n * ProductInfo - \u4EA7\u54C1\u4FE1\u606F\u533A\u57DF\n */\nconst ProductInfo = React.forwardRef<\n HTMLDivElement,\n {\n name: string\n description: string\n layout?: 'single' | 'double'\n className?: string\n }\n>(({ name, description, layout = 'single', className }, ref) => {\n return (\n <div ref={ref} className={cn('flex w-full flex-col gap-1', className)}>\n <Heading\n as=\"h4\"\n size={4}\n weight=\"semibold\"\n className={cn(\n 'text-info-primary w-full text-2xl leading-[1.2] tracking-[-0.96px]',\n 'tablet:text-[20px] tablet:tracking-[-0.8px]'\n )}\n >\n {name}\n </Heading>\n <Text\n size={4}\n weight=\"semibold\"\n className={cn(\n 'text-info-primary w-full leading-[1.4] tracking-[-0.36px]',\n 'tablet:text-sm tablet:tracking-[-0.28px]'\n )}\n >\n {description}\n </Text>\n </div>\n )\n})\n\nProductInfo.displayName = 'ProductInfo'\n\n/**\n * FreeGiftItem - \u514D\u8D39\u8D60\u54C1\u9879\n */\nconst FreeGiftItem = React.forwardRef<\n HTMLDivElement,\n {\n gift: FreeGift\n onClick?: (gift: FreeGift) => void\n className?: string\n }\n>(({ gift, onClick, className }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(\n 'bg-container-primary rounded-box relative flex w-full cursor-pointer flex-col border-2 transition-all hover:shadow-sm',\n gift.selected ? 'border-brand-0' : 'border-container-secondary-1',\n className\n )}\n onClick={() => onClick?.(gift)}\n >\n <div className=\"flex w-full flex-col items-end\">\n {gift.isNew && (\n <div className=\"absolute right-0 top-0 flex items-start\">\n <Badge size=\"lg\" variant=\"fill\">\n Free\n </Badge>\n </div>\n )}\n <div className={cn('flex w-full items-center gap-4 p-4', 'tablet:p-2')}>\n <div className={cn('size-14 shrink-0', 'tablet:size-12')}>\n <Picture source={gift.image} alt={gift.name} className=\"size-full object-cover\" />\n </div>\n <div className=\"flex min-w-0 flex-1 flex-col gap-1\">\n <Text\n size={4}\n weight=\"semibold\"\n className={cn(\n 'text-info-primary truncate leading-[1.4] tracking-[-0.36px]',\n 'tablet:text-sm tablet:tracking-[-0.28px]'\n )}\n >\n {gift.name}\n </Text>\n <div className=\"flex items-center gap-1\">\n <Text size={4} weight=\"semibold\" className={cn()}>\n {gift.currentPrice}\n </Text>\n <Text size={4} weight=\"semibold\" className={cn()}>\n {gift.originalPrice}\n </Text>\n </div>\n </div>\n </div>\n </div>\n </div>\n )\n})\n\nFreeGiftItem.displayName = 'FreeGiftItem'\n\n/**\n * GiftSelection - \u8D60\u54C1\u9009\u62E9\u533A\u57DF\n */\nconst GiftSelection = React.forwardRef<\n HTMLDivElement,\n {\n freeGiftLabel?: string\n freeGifts?: FreeGift[]\n onGiftClick?: (gift: FreeGift) => void\n layout?: 'single' | 'double'\n className?: string\n }\n>(({ freeGiftLabel, freeGifts, onGiftClick, layout = 'single', className }, ref) => {\n if (!freeGifts || freeGifts.length === 0) {\n return null\n }\n\n return (\n <div ref={ref} className={cn('flex w-full flex-col gap-2', className)}>\n {freeGiftLabel && (\n <Text\n size={4}\n weight=\"semibold\"\n className={cn(\n 'text-info-primary w-full leading-[1.4] tracking-[-0.36px]',\n 'tablet:text-sm tablet:tracking-[-0.28px]'\n )}\n >\n {freeGiftLabel}\n </Text>\n )}\n <div className={cn('tablet:flex-row laptop:flex-col flex flex-col gap-2')}>\n {freeGifts.map((gift, index) => (\n <div key={gift.id || index}>\n <FreeGiftItem gift={gift} onClick={onGiftClick} />\n </div>\n ))}\n </div>\n </div>\n )\n})\n\nGiftSelection.displayName = 'GiftSelection'\n\n/**\n * PriceAndActions - \u4EF7\u683C\u548C\u64CD\u4F5C\u533A\u57DF\n */\nconst PriceAndActions = React.forwardRef<\n HTMLDivElement,\n {\n currentPrice: string\n originalPrice?: string\n learnMoreText?: string\n shopNowText?: string\n onLearnMore?: () => void\n onShopNow?: () => void\n layout?: 'single' | 'double'\n className?: string\n }\n>(\n (\n {\n currentPrice,\n originalPrice,\n learnMoreText = 'Learn More',\n shopNowText = 'Shop Now',\n onLearnMore,\n onShopNow,\n layout = 'single',\n className,\n },\n ref\n ) => {\n return (\n <div ref={ref} className={cn('flex w-full flex-col justify-center gap-2', className)}>\n {/* \u4EF7\u683C */}\n <div className=\"flex w-full items-center gap-1\">\n <Text size={4} weight=\"semibold\" className={cn()}>\n {currentPrice}\n </Text>\n {originalPrice && (\n <Text size={4} weight=\"semibold\" className={cn('line-through')}>\n {originalPrice}\n </Text>\n )}\n </div>\n\n {/* \u6309\u94AE\u7EC4 */}\n <div className={cn('flex items-start gap-3', 'tablet:gap-2')}>\n <Button\n variant=\"secondary\"\n size=\"lg\"\n className={cn('tablet:px-5 tablet:py-[10px] tablet:text-sm tablet:tracking-[-0.56px]')}\n onClick={onLearnMore}\n >\n {learnMoreText}\n </Button>\n <Button\n variant=\"primary\"\n size=\"lg\"\n className={cn('tablet:px-5 tablet:py-[10px] tablet:text-sm tablet:tracking-[-0.56px]')}\n onClick={onShopNow}\n >\n {shopNowText}\n </Button>\n </div>\n </div>\n )\n }\n)\n\nPriceAndActions.displayName = 'PriceAndActions'\n\n/**\n * ProductCard - \u4E70\u8D60\u8D27\u67B6\u4EA7\u54C1\u5361\u7247\n *\n * @description \u7528\u4E8E\u4E70\u4E00\u8D60\u4E00\u6D3B\u52A8\u7684\u4EA7\u54C1\u5C55\u793A\u5361\u7247\uFF0C\u5DE6\u4FA7\u5C55\u793A\u4EA7\u54C1\u56FE\u7247\u548C\u6807\u7B7E\uFF0C\u53F3\u4FA7\u5C55\u793A\u4EA7\u54C1\u4FE1\u606F\u3001\u8D60\u54C1\u548C\u8D2D\u4E70\u6309\u94AE\n */\nconst ProductCard = React.forwardRef<HTMLDivElement, ProductCardProps>(\n (\n {\n className,\n data,\n giftData,\n layout = 'single',\n onProductClick,\n onProductImageClick,\n onLearnMore,\n onShopNow,\n onGiftClick,\n onGiftSelectionChange,\n ...props\n },\n ref\n ) => {\n const containerWidth = layout === 'single' ? 'w-full max-w-[1664px]' : 'w-full'\n const contentWidth = layout === 'single' ? 'w-[700px]' : 'w-[350px]'\n\n // \u5185\u90E8\u72B6\u6001\u7BA1\u7406\u9009\u4E2D\u7684\u8D60\u54C1\n const [selectedGifts, setSelectedGifts] = React.useState<FreeGift[]>(() => {\n // \u521D\u59CB\u5316\u65F6\u4ECE data.freeGifts \u4E2D\u83B7\u53D6\u5DF2\u9009\u4E2D\u7684\u8D60\u54C1\n return data.freeGifts?.filter(gift => gift.selected) || []\n })\n\n // \u5F53\u5916\u90E8\u6570\u636E\u53D8\u5316\u65F6\uFF0C\u540C\u6B65\u5185\u90E8\u72B6\u6001\n React.useEffect(() => {\n const initialSelectedGifts = data.freeGifts?.filter(gift => gift.selected) || []\n setSelectedGifts(initialSelectedGifts)\n }, [data.freeGifts])\n\n // \u751F\u6210\u5E26\u6709\u9009\u4E2D\u72B6\u6001\u548C\u5B9E\u9645\u6570\u636E\u7684\u8D60\u54C1\u5217\u8868\n const giftsWithSelection = React.useMemo(\n () =>\n data.freeGifts?.map(gift => {\n const matchedGiftInfo = matchGiftData(gift.id, giftData)\n\n // \u6784\u5EFA\u589E\u5F3A\u7684\u8D60\u54C1\u5BF9\u8C61\uFF0C\u4F7F\u7528\u5B9E\u9645\u6570\u636E\u8986\u76D6\u539F\u59CB\u6570\u636E\n const enhancedGift = { ...gift }\n\n if (matchedGiftInfo) {\n // \u4F7F\u7528\u5B9E\u9645\u7684 title\n if (matchedGiftInfo.title) {\n enhancedGift.name = matchedGiftInfo.title\n }\n\n // \u4F7F\u7528\u5B9E\u9645\u7684 price - \u6620\u5C04\u5230 FreeGift \u7684\u4EF7\u683C\u5B57\u6BB5\n if (matchedGiftInfo.price) {\n const priceValue = matchedGiftInfo.price.value || matchedGiftInfo.price\n const currencyCode = matchedGiftInfo.price.currencyCode || 'USD'\n\n // \u66F4\u65B0 originalPrice \u548C currentPrice\n enhancedGift.originalPrice = `${currencyCode} ${priceValue}`\n enhancedGift.currentPrice = 'Free' // \u8D60\u54C1\u901A\u5E38\u663E\u793A\u4E3A\u514D\u8D39\n }\n\n // \u4F7F\u7528\u5B9E\u9645\u7684 image\n if (matchedGiftInfo.images && matchedGiftInfo.images.length > 0) {\n enhancedGift.image = matchedGiftInfo.images[0].url || gift.image\n }\n\n // \u5982\u679C\u6709 variants\uFF0C\u5C1D\u8BD5\u4ECE\u7B2C\u4E00\u4E2A variant \u83B7\u53D6\u66F4\u8BE6\u7EC6\u7684\u4FE1\u606F\n if (matchedGiftInfo.variants && matchedGiftInfo.variants.length > 0) {\n const firstVariant = matchedGiftInfo.variants[0]\n if (firstVariant.price) {\n const variantPriceValue = firstVariant.price.value || firstVariant.price\n const variantCurrencyCode = firstVariant.price.currencyCode || 'USD'\n\n enhancedGift.originalPrice = `${variantCurrencyCode} ${variantPriceValue}`\n enhancedGift.currentPrice = 'Free'\n }\n if (firstVariant.image && firstVariant.image.url) {\n enhancedGift.image = firstVariant.image.url\n }\n }\n }\n\n return {\n ...enhancedGift,\n selected: selectedGifts.some(selectedGift => selectedGift.id === gift.id),\n }\n }) || [],\n [data.freeGifts, selectedGifts, giftData]\n )\n\n const handleProductClick = () => {\n onProductClick?.(data)\n }\n\n const handleProductImageClick = () => {\n onProductImageClick?.(data)\n }\n\n const handleLearnMoreClick = () => {\n onLearnMore?.(data)\n }\n\n const handleShopNowClick = () => {\n onShopNow?.(data)\n }\n\n const handleGiftClick = (gift: FreeGift) => {\n const giftSelectionMode = data.giftSelectionMode || 'multiple'\n let newSelectedGifts: FreeGift[]\n\n if (giftSelectionMode === 'single') {\n // \u5355\u9009\u6A21\u5F0F\uFF1A\u5982\u679C\u70B9\u51FB\u7684\u662F\u5DF2\u9009\u4E2D\u7684\u8D60\u54C1\uFF0C\u5219\u53D6\u6D88\u9009\u62E9\uFF1B\u5426\u5219\u9009\u62E9\u5F53\u524D\u8D60\u54C1\n const isCurrentlySelected = selectedGifts.some(selectedGift => selectedGift.id === gift.id)\n newSelectedGifts = isCurrentlySelected ? [] : [gift]\n } else {\n // \u591A\u9009\u6A21\u5F0F\uFF1A\u5207\u6362\u5F53\u524D\u8D60\u54C1\u7684\u9009\u62E9\u72B6\u6001\n const isCurrentlySelected = selectedGifts.some(selectedGift => selectedGift.id === gift.id)\n if (isCurrentlySelected) {\n newSelectedGifts = selectedGifts.filter(selectedGift => selectedGift.id !== gift.id)\n } else {\n newSelectedGifts = [...selectedGifts, gift]\n }\n }\n\n // \u66F4\u65B0\u5185\u90E8\u72B6\u6001\n setSelectedGifts(newSelectedGifts)\n\n // \u8C03\u7528\u56DE\u8C03\u51FD\u6570\u901A\u77E5\u7236\u7EC4\u4EF6\n onGiftClick?.(gift, data)\n onGiftSelectionChange?.(newSelectedGifts, data)\n }\n\n return (\n <div\n ref={ref}\n className={cn(\n 'bg-container-primary laptop:flex-row rounded-box flex flex-col items-stretch',\n containerWidth,\n layout === 'single' ? 'tablet:flex-col tablet:max-w-[704px]' : '',\n onProductClick ? 'cursor-pointer' : '',\n className\n )}\n onClick={handleProductClick}\n {...props}\n >\n {/* \u4EA7\u54C1\u56FE\u7247\u533A\u57DF */}\n <ProductImage image={data.image} name={data.name} layout={layout} onClick={handleProductImageClick} />\n\n {/* \u4EA7\u54C1\u4FE1\u606F\u533A\u57DF */}\n <div\n className={cn(\n 'bg-container-secondary-1 rounded-r-box laptop:rounded-r-box tablet:rounded-b-box tablet:rounded-l-none flex flex-col justify-between p-6',\n contentWidth,\n // \u79FB\u52A8\u7AEF\u6837\u5F0F\n layout === 'single' ? 'tablet:w-full tablet:p-4 tablet:gap-4' : ''\n )}\n >\n {/* \u4EA7\u54C1\u6807\u9898\u548C\u63CF\u8FF0 */}\n <ProductInfo name={data.name} description={data.description} layout={layout} />\n\n {/* \u514D\u8D39\u8D60\u54C1\u533A\u57DF */}\n <GiftSelection\n freeGiftLabel={data.freeGiftLabel}\n freeGifts={giftsWithSelection}\n onGiftClick={handleGiftClick}\n layout={layout}\n />\n\n {/* \u4EF7\u683C\u548C\u6309\u94AE\u533A\u57DF */}\n <PriceAndActions\n currentPrice={data.currentPrice}\n originalPrice={data.originalPrice}\n learnMoreText={data.learnMoreText}\n shopNowText={data.shopNowText}\n onLearnMore={handleLearnMoreClick}\n onShopNow={handleShopNowClick}\n layout={layout}\n />\n </div>\n </div>\n )\n }\n)\n\nProductCard.displayName = 'ProductCard'\n\nexport default ProductCard\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["ProductCard_exports", "__export", "ProductCard_default", "__toCommonJS", "import_jsx_runtime", "React", "import_helpers", "import_picture", "import_button", "import_text", "import_heading", "import_badge", "matchGiftData", "giftId", "giftData", "gift", "variant", "ProductImage", "image", "name", "layout", "className", "onClick", "ref", "Picture", "ProductInfo", "description", "FreeGiftItem", "Badge", "GiftSelection", "freeGiftLabel", "freeGifts", "onGiftClick", "index", "PriceAndActions", "currentPrice", "originalPrice", "learnMoreText", "shopNowText", "onLearnMore", "onShopNow", "Button", "ProductCard", "data", "onProductClick", "onProductImageClick", "onGiftSelectionChange", "props", "containerWidth", "contentWidth", "selectedGifts", "setSelectedGifts", "initialSelectedGifts", "giftsWithSelection", "matchedGiftInfo", "enhancedGift", "priceValue", "currencyCode", "firstVariant", "variantPriceValue", "variantCurrencyCode", "selectedGift", "handleProductClick", "handleProductImageClick", "handleLearnMoreClick", "handleShopNowClick", "handleGiftClick", "giftSelectionMode", "newSelectedGifts"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* BuyOneGetOneShelf 数据转换 Hook
|
|
3
|
+
*
|
|
4
|
+
* 将复杂的数据转换逻辑抽离为可复用的 Hook,提供清晰的 API 和错误处理
|
|
5
|
+
*/
|
|
6
|
+
import type { BogoItem, BuildData, CopyConfig } from '../index.js';
|
|
7
|
+
import type { ProductCardData, FreeGift } from '../ProductCard.js';
|
|
8
|
+
/** 产品查找结果 */
|
|
9
|
+
interface ProductLookupResult {
|
|
10
|
+
product: any | null;
|
|
11
|
+
variant: any | null;
|
|
12
|
+
}
|
|
13
|
+
/** 赠品提取结果 */
|
|
14
|
+
interface GiftExtractionResult {
|
|
15
|
+
gifts: FreeGift[];
|
|
16
|
+
hasGifts: boolean;
|
|
17
|
+
selectionMode: 'single' | 'multiple';
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* BuyOneGetOneShelf 数据转换 Hook
|
|
21
|
+
*
|
|
22
|
+
* @param bogoItems - BOGO 商品列表
|
|
23
|
+
* @param copyConfig - 文案配置
|
|
24
|
+
* @param buildData - 构建数据(可选)
|
|
25
|
+
* @returns 转换后的产品卡片数据列表
|
|
26
|
+
*/
|
|
27
|
+
export declare const useBogoDataTransform: (bogoItems: BogoItem[], copyConfig: CopyConfig, buildData?: BuildData) => ProductCardData[];
|
|
28
|
+
/**
|
|
29
|
+
* 产品查找 Hook(用于调试和测试)
|
|
30
|
+
*/
|
|
31
|
+
export declare const useProductLookup: (sku: string, buildData?: BuildData) => ProductLookupResult;
|
|
32
|
+
/**
|
|
33
|
+
* 赠品提取 Hook(用于调试和测试)
|
|
34
|
+
*/
|
|
35
|
+
export declare const useGiftExtraction: (sku: string, buildData?: BuildData) => GiftExtractionResult;
|
|
36
|
+
export {};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var c=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var m=Object.prototype.hasOwnProperty;var P=(t,r)=>{for(var e in r)c(t,e,{get:r[e],enumerable:!0})},h=(t,r,e,n)=>{if(r&&typeof r=="object"||typeof r=="function")for(let i of p(r))!m.call(t,i)&&i!==e&&c(t,i,{get:()=>r[i],enumerable:!(n=g(r,i))||n.enumerable});return t};var G=t=>h(c({},"__esModule",{value:!0}),t);var k={};P(k,{useBogoDataTransform:()=>F,useGiftExtraction:()=>w,useProductLookup:()=>M});module.exports=G(k);var a=require("react");const u=(t,r)=>{if(!t||!r)return{product:null,variant:null};try{for(const e of r)if(e?.variants){for(const n of e.variants)if(n?.sku===t)return{product:e,variant:n}}}catch(e){console.warn("Error finding product by SKU:",e)}return{product:null,variant:null}},x=t=>{if(!t?.price)return{currentPrice:"",hasDiscount:!1};const r=`$${t.price.toFixed(2)}`,e=t.metafields?.coupons?.[0];if(e?.fixed_value){const n=Math.abs(parseFloat(e.fixed_value)),i=t.price+n;return{currentPrice:r,originalPrice:`$${i.toFixed(2)}`,hasDiscount:!0}}return{currentPrice:r,hasDiscount:!1}},y=(t,r=0)=>Array.isArray(t)?t.map((e,n)=>({id:e.variant_id||`gift-${r+n}`,image:"https://images.unsplash.com/photo-1558618666-fcd25c85cd64?ixlib=rb-4.0.3&auto=format&fit=crop&w=56&h=56&q=80",name:`Gift: ${e.sku||"Unknown"} (${e.handle||"Unknown"})`,originalPrice:"$0.00",currentPrice:"Free",isNew:n===0,selected:n===0})):[],d=(t,r)=>{const{variant:e}=u(t,r);if(!e?.metafields?.funcFreeGiftObj?.reward_list)return{gifts:[],hasGifts:!1,selectionMode:"single"};try{const n=[];let i=0;for(const o of e.metafields.funcFreeGiftObj.reward_list)if(o.variant_list){const s=y(o.variant_list,i);n.push(...s),i+=s.length}return{gifts:n,hasGifts:n.length>0,selectionMode:(n.length>1,"single")}}catch(n){return console.warn("Error extracting gifts:",n),{gifts:[],hasGifts:!1,selectionMode:"single"}}},B=t=>t&&(t.lgDesktop?.url||t.desktop?.url||t.laptop?.url||t.tablet?.url||t.mobile?.url)||"",v=t=>!t?.tags||!Array.isArray(t.tags)?[]:t.tags.filter(r=>typeof r=="string"),D=(t,r,e)=>{const n=t.data?.[0],i=n?.sku||"",{product:o,variant:s}=u(i,e),l=x(s),f=d(i,e);return{image:B(t.images),name:o?.name||n?.name||"",description:o?.title||o?.name||n?.name||"",currentPrice:l.currentPrice,originalPrice:l.originalPrice,freeGiftLabel:r.freeGiftLabel,learnMoreText:t.learnMoreText||r.learnMoreText,shopNowText:t.shopNowText||r.shopNowText,freeGifts:f.gifts,giftSelectionMode:f.selectionMode,tags:v(o)}},F=(t,r,e)=>(0,a.useMemo)(()=>{if(!Array.isArray(t)||t.length===0)return[];try{return t.map(n=>D(n,r,e))}catch(n){return console.error("Error transforming BOGO items:",n),[]}},[t,r,e]),M=(t,r)=>(0,a.useMemo)(()=>u(t,r),[t,r]),w=(t,r)=>(0,a.useMemo)(()=>d(t,r),[t,r]);
|
|
2
|
+
//# sourceMappingURL=useBogoDataTransform.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../src/biz-components/BuyOneGetOneShelf/hooks/useBogoDataTransform.ts"],
|
|
4
|
+
"sourcesContent": ["/**\n * BuyOneGetOneShelf \u6570\u636E\u8F6C\u6362 Hook\n *\n * \u5C06\u590D\u6742\u7684\u6570\u636E\u8F6C\u6362\u903B\u8F91\u62BD\u79BB\u4E3A\u53EF\u590D\u7528\u7684 Hook\uFF0C\u63D0\u4F9B\u6E05\u6670\u7684 API \u548C\u9519\u8BEF\u5904\u7406\n */\n\nimport { useMemo } from 'react'\nimport type { BogoItem, BuildData, CopyConfig, ResponsiveImages } from '../index.js'\nimport type { ProductCardData, FreeGift } from '../ProductCard.js'\n\n// ==================== \u7C7B\u578B\u5B9A\u4E49 ====================\n\n/** \u4EA7\u54C1\u67E5\u627E\u7ED3\u679C */\ninterface ProductLookupResult {\n product: any | null\n variant: any | null\n}\n\n/** \u4EF7\u683C\u8BA1\u7B97\u7ED3\u679C */\ninterface PriceCalculation {\n currentPrice: string\n originalPrice?: string\n hasDiscount: boolean\n}\n\n/** \u8D60\u54C1\u63D0\u53D6\u7ED3\u679C */\ninterface GiftExtractionResult {\n gifts: FreeGift[]\n hasGifts: boolean\n selectionMode: 'single' | 'multiple'\n}\n\n// ==================== \u6838\u5FC3\u5DE5\u5177\u51FD\u6570 ====================\n\n/**\n * \u5B89\u5168\u7684\u4EA7\u54C1\u67E5\u627E\u51FD\u6570\n */\nconst findProductBySku = (sku: string, buildData?: BuildData): ProductLookupResult => {\n if (!sku || !buildData) {\n return { product: null, variant: null }\n }\n\n try {\n for (const product of buildData) {\n if (!product?.variants) continue\n\n for (const variant of product.variants) {\n if (variant?.sku === sku) {\n return {\n product,\n variant,\n }\n }\n }\n }\n } catch (error) {\n console.warn('Error finding product by SKU:', error)\n }\n\n return { product: null, variant: null }\n}\n\n/**\n * \u8BA1\u7B97\u4EA7\u54C1\u4EF7\u683C\uFF08\u5305\u542B\u6298\u6263\u903B\u8F91\uFF09\n */\nconst calculateProductPrice = (variant: any): PriceCalculation => {\n if (!variant?.price) {\n return {\n currentPrice: '',\n hasDiscount: false,\n }\n }\n\n const currentPrice = `$${variant.price.toFixed(2)}`\n\n // \u68C0\u67E5\u662F\u5426\u6709\u4F18\u60E0\u5238\u6298\u6263\n const coupon = variant.metafields?.coupons?.[0]\n if (coupon?.fixed_value) {\n const discountAmount = Math.abs(parseFloat(coupon.fixed_value))\n const originalPriceValue = variant.price + discountAmount\n\n return {\n currentPrice,\n originalPrice: `$${originalPriceValue.toFixed(2)}`,\n hasDiscount: true,\n }\n }\n\n return {\n currentPrice,\n hasDiscount: false,\n }\n}\n\n/**\n * \u4ECE\u5956\u52B1\u53D8\u4F53\u5217\u8868\u521B\u5EFA\u8D60\u54C1\u6570\u636E\n */\nconst createGiftsFromRewards = (rewardVariants: any[], startIndex: number = 0): FreeGift[] => {\n if (!Array.isArray(rewardVariants)) return []\n\n return rewardVariants.map((rewardVariant, index) => ({\n id: rewardVariant.variant_id || `gift-${startIndex + index}`,\n image:\n 'https://images.unsplash.com/photo-1558618666-fcd25c85cd64?ixlib=rb-4.0.3&auto=format&fit=crop&w=56&h=56&q=80',\n name: `Gift: ${rewardVariant.sku || 'Unknown'} (${rewardVariant.handle || 'Unknown'})`,\n originalPrice: '$0.00',\n currentPrice: 'Free',\n isNew: index === 0, // \u7B2C\u4E00\u4E2A\u8D60\u54C1\u6807\u8BB0\u4E3A\u65B0\u54C1\n selected: index === 0, // \u9ED8\u8BA4\u9009\u4E2D\u7B2C\u4E00\u4E2A\u8D60\u54C1\n }))\n}\n\n/**\n * \u63D0\u53D6\u4EA7\u54C1\u7684\u8D60\u54C1\u4FE1\u606F\n */\nconst extractProductGifts = (sku: string, buildData?: BuildData): GiftExtractionResult => {\n const { variant } = findProductBySku(sku, buildData)\n\n if (!variant?.metafields?.funcFreeGiftObj?.reward_list) {\n return {\n gifts: [],\n hasGifts: false,\n selectionMode: 'single',\n }\n }\n\n try {\n const allGifts: FreeGift[] = []\n let giftIndex = 0\n\n // \u904D\u5386\u6240\u6709\u5956\u52B1\u5217\u8868\n for (const reward of variant.metafields.funcFreeGiftObj.reward_list) {\n if (reward.variant_list) {\n const gifts = createGiftsFromRewards(reward.variant_list, giftIndex)\n allGifts.push(...gifts)\n giftIndex += gifts.length\n }\n }\n\n return {\n gifts: allGifts,\n hasGifts: allGifts.length > 0,\n selectionMode: allGifts.length > 1 ? 'single' : 'single',\n }\n } catch (error) {\n console.warn('Error extracting gifts:', error)\n return {\n gifts: [],\n hasGifts: false,\n selectionMode: 'single',\n }\n }\n}\n\n/**\n * \u751F\u6210\u54CD\u5E94\u5F0F\u56FE\u7247 URL\n */\nconst getResponsiveImageUrl = (images?: ResponsiveImages): string => {\n if (!images) return ''\n\n // \u6839\u636E\u5C4F\u5E55\u5C3A\u5BF8\u4F18\u5148\u7EA7\u9009\u62E9\u56FE\u7247\n // \u4F18\u5148\u7EA7\uFF1AlgDesktop > desktop > laptop > tablet > mobile\n return (\n images.lgDesktop?.url || images.desktop?.url || images.laptop?.url || images.tablet?.url || images.mobile?.url || ''\n )\n}\n\n/**\n * \u521B\u5EFA\u4EA7\u54C1\u6807\u7B7E\uFF08\u8FD4\u56DE\u5B57\u7B26\u4E32\u6570\u7EC4\u4EE5\u5339\u914D ProductCardData \u63A5\u53E3\uFF09\n */\nconst createProductTags = (product: any): string[] => {\n if (!product?.tags || !Array.isArray(product.tags)) {\n return []\n }\n\n return product.tags.filter((tag: string) => typeof tag === 'string')\n}\n\n// ==================== \u4E3B\u8981\u8F6C\u6362\u51FD\u6570 ====================\n\n/**\n * \u5C06\u5355\u4E2A BogoItem \u8F6C\u6362\u4E3A ProductCardData\n */\nconst transformSingleBogoItem = (\n bogoItem: BogoItem,\n copyConfig: CopyConfig,\n buildData?: BuildData\n): ProductCardData => {\n const productData = bogoItem.data?.[0]\n const sku = productData?.sku || ''\n\n // \u67E5\u627E\u4EA7\u54C1\u4FE1\u606F\n const { product, variant } = findProductBySku(sku, buildData)\n\n // \u8BA1\u7B97\u4EF7\u683C\n const priceInfo = calculateProductPrice(variant)\n\n // \u63D0\u53D6\u8D60\u54C1\n const giftInfo = extractProductGifts(sku, buildData)\n\n // \u6784\u5EFA\u6700\u7EC8\u6570\u636E\n return {\n image: getResponsiveImageUrl(bogoItem.images),\n name: product?.name || productData?.name || '',\n description: product?.title || product?.name || productData?.name || '',\n currentPrice: priceInfo.currentPrice,\n originalPrice: priceInfo.originalPrice,\n freeGiftLabel: copyConfig.freeGiftLabel,\n learnMoreText: bogoItem.learnMoreText || copyConfig.learnMoreText,\n shopNowText: bogoItem.shopNowText || copyConfig.shopNowText,\n freeGifts: giftInfo.gifts,\n giftSelectionMode: giftInfo.selectionMode,\n tags: createProductTags(product),\n }\n}\n\n// ==================== \u4E3B\u8981 Hook ====================\n\n/**\n * BuyOneGetOneShelf \u6570\u636E\u8F6C\u6362 Hook\n *\n * @param bogoItems - BOGO \u5546\u54C1\u5217\u8868\n * @param copyConfig - \u6587\u6848\u914D\u7F6E\n * @param buildData - \u6784\u5EFA\u6570\u636E\uFF08\u53EF\u9009\uFF09\n * @returns \u8F6C\u6362\u540E\u7684\u4EA7\u54C1\u5361\u7247\u6570\u636E\u5217\u8868\n */\nexport const useBogoDataTransform = (\n bogoItems: BogoItem[],\n copyConfig: CopyConfig,\n buildData?: BuildData\n): ProductCardData[] => {\n return useMemo(() => {\n if (!Array.isArray(bogoItems) || bogoItems.length === 0) {\n return []\n }\n\n try {\n return bogoItems.map(bogoItem => transformSingleBogoItem(bogoItem, copyConfig, buildData))\n } catch (error) {\n console.error('Error transforming BOGO items:', error)\n return []\n }\n }, [bogoItems, copyConfig, buildData])\n}\n\n/**\n * \u4EA7\u54C1\u67E5\u627E Hook\uFF08\u7528\u4E8E\u8C03\u8BD5\u548C\u6D4B\u8BD5\uFF09\n */\nexport const useProductLookup = (sku: string, buildData?: BuildData) => {\n return useMemo(() => {\n return findProductBySku(sku, buildData)\n }, [sku, buildData])\n}\n\n/**\n * \u8D60\u54C1\u63D0\u53D6 Hook\uFF08\u7528\u4E8E\u8C03\u8BD5\u548C\u6D4B\u8BD5\uFF09\n */\nexport const useGiftExtraction = (sku: string, buildData?: BuildData) => {\n return useMemo(() => {\n return extractProductGifts(sku, buildData)\n }, [sku, buildData])\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["useBogoDataTransform_exports", "__export", "useBogoDataTransform", "useGiftExtraction", "useProductLookup", "__toCommonJS", "import_react", "findProductBySku", "sku", "buildData", "product", "variant", "error", "calculateProductPrice", "currentPrice", "coupon", "discountAmount", "originalPriceValue", "createGiftsFromRewards", "rewardVariants", "startIndex", "rewardVariant", "index", "extractProductGifts", "allGifts", "giftIndex", "reward", "gifts", "getResponsiveImageUrl", "images", "createProductTags", "tag", "transformSingleBogoItem", "bogoItem", "copyConfig", "productData", "priceInfo", "giftInfo", "bogoItems"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { type ProductCardData, type FreeGift } from './ProductCard.js';
|
|
3
|
+
/**
|
|
4
|
+
* 产品标签接口
|
|
5
|
+
*/
|
|
6
|
+
export interface ProductTag {
|
|
7
|
+
/** 标签文本 */
|
|
8
|
+
text: string;
|
|
9
|
+
/** 标签类型 */
|
|
10
|
+
type: 'discount' | 'new' | 'default';
|
|
11
|
+
/** 标签样式变体 */
|
|
12
|
+
variant: 'filled' | 'outlined';
|
|
13
|
+
}
|
|
14
|
+
export type BuyOneGetOneShelfSemanticName = 'root' | 'title' | 'description' | 'content' | 'productCard' | 'productCardImage' | 'productCardTitle' | 'productCardDescription' | 'productCardPrice' | 'productCardGiftsContainer' | 'productCardBtnGroup';
|
|
15
|
+
/**
|
|
16
|
+
* 响应式图片接口
|
|
17
|
+
*/
|
|
18
|
+
export interface ResponsiveImage {
|
|
19
|
+
id: number;
|
|
20
|
+
baseUrl: string;
|
|
21
|
+
url: string;
|
|
22
|
+
thumbnailURL: string;
|
|
23
|
+
filename: string;
|
|
24
|
+
mimeType: string;
|
|
25
|
+
width: number;
|
|
26
|
+
height: number;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* 响应式图片集合接口
|
|
30
|
+
*/
|
|
31
|
+
export interface ResponsiveImages {
|
|
32
|
+
laptop?: ResponsiveImage;
|
|
33
|
+
mobile?: ResponsiveImage;
|
|
34
|
+
tablet?: ResponsiveImage;
|
|
35
|
+
desktop?: ResponsiveImage;
|
|
36
|
+
lgDesktop?: ResponsiveImage;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* 产品基础数据接口
|
|
40
|
+
*/
|
|
41
|
+
export interface ProductData {
|
|
42
|
+
sku: string;
|
|
43
|
+
name: string;
|
|
44
|
+
image: string;
|
|
45
|
+
value: string;
|
|
46
|
+
handle: string;
|
|
47
|
+
shopify_id: string;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* 文案配置接口
|
|
51
|
+
*/
|
|
52
|
+
export interface CopyConfig {
|
|
53
|
+
shopNowText: string;
|
|
54
|
+
freeGiftLabel: string;
|
|
55
|
+
learnMoreText: string;
|
|
56
|
+
freeGiftHeading: string;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* 买赠项目接口
|
|
60
|
+
*/
|
|
61
|
+
export interface BogoItem {
|
|
62
|
+
id: string;
|
|
63
|
+
data: ProductData[];
|
|
64
|
+
images: ResponsiveImages;
|
|
65
|
+
shopNowFun: string;
|
|
66
|
+
shopNowText: string;
|
|
67
|
+
learnMoreText: string;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* 赠品变体接口
|
|
71
|
+
*/
|
|
72
|
+
export interface RewardVariant {
|
|
73
|
+
variant_id: string;
|
|
74
|
+
sku: string;
|
|
75
|
+
handle: string;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* 赠品奖励接口
|
|
79
|
+
*/
|
|
80
|
+
export interface RewardItem {
|
|
81
|
+
get_unit: number;
|
|
82
|
+
variant_list: RewardVariant[];
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* 免费赠品对象接口
|
|
86
|
+
*/
|
|
87
|
+
export interface FuncFreeGiftObj {
|
|
88
|
+
rule_id: number;
|
|
89
|
+
rule_type: number;
|
|
90
|
+
discount_label: {
|
|
91
|
+
cart_checkout_label: string;
|
|
92
|
+
product_label: string;
|
|
93
|
+
sold_out_label: string;
|
|
94
|
+
};
|
|
95
|
+
frontend_labels?: any[];
|
|
96
|
+
apply_unit: number;
|
|
97
|
+
discount_combinations: {
|
|
98
|
+
other_order_discounts: boolean;
|
|
99
|
+
other_product_discounts: boolean;
|
|
100
|
+
shipping_discounts: boolean;
|
|
101
|
+
};
|
|
102
|
+
gift_type: number;
|
|
103
|
+
reward_list: RewardItem[];
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* 产品变体接口 (BuildData)
|
|
107
|
+
*/
|
|
108
|
+
export interface BuildProductVariant {
|
|
109
|
+
sku: string;
|
|
110
|
+
price: number;
|
|
111
|
+
availableForSale: boolean;
|
|
112
|
+
metafields: {
|
|
113
|
+
coupons?: any[];
|
|
114
|
+
infos?: any;
|
|
115
|
+
funcFreeGiftObj?: FuncFreeGiftObj;
|
|
116
|
+
};
|
|
117
|
+
id: string;
|
|
118
|
+
name: string;
|
|
119
|
+
image?: {
|
|
120
|
+
url: string;
|
|
121
|
+
altText?: string;
|
|
122
|
+
};
|
|
123
|
+
quantityAvailable?: number;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* 构建产品接口 (BuildData)
|
|
127
|
+
*/
|
|
128
|
+
export interface BuildProduct {
|
|
129
|
+
handle: string;
|
|
130
|
+
variants: BuildProductVariant[];
|
|
131
|
+
id: string;
|
|
132
|
+
name: string;
|
|
133
|
+
title: string;
|
|
134
|
+
description: string;
|
|
135
|
+
totalInventory?: number;
|
|
136
|
+
tags?: string[];
|
|
137
|
+
price: {
|
|
138
|
+
value: number;
|
|
139
|
+
currencyCode: string;
|
|
140
|
+
};
|
|
141
|
+
images: {
|
|
142
|
+
url: string;
|
|
143
|
+
altText?: string;
|
|
144
|
+
}[];
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* BuildData 类型定义
|
|
148
|
+
*/
|
|
149
|
+
export type BuildData = BuildProduct[];
|
|
150
|
+
/**
|
|
151
|
+
* BuyOneGetOneShelf 业务组件数据接口 - 新格式
|
|
152
|
+
*/
|
|
153
|
+
export interface BuyOneGetOneShelfData {
|
|
154
|
+
id: string;
|
|
155
|
+
copy: CopyConfig;
|
|
156
|
+
theme: string;
|
|
157
|
+
title: string;
|
|
158
|
+
display: string;
|
|
159
|
+
subtitle: string;
|
|
160
|
+
blockName: string;
|
|
161
|
+
blockType: string;
|
|
162
|
+
bogoItems: BogoItem[];
|
|
163
|
+
}
|
|
164
|
+
export interface BuyOneGetOneShelfProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
165
|
+
/** 业务数据 */
|
|
166
|
+
data: BuyOneGetOneShelfData;
|
|
167
|
+
/** 构建时数据 - 产品详细信息,包含赠品数据 */
|
|
168
|
+
buildData?: BuildData;
|
|
169
|
+
/** 礼品数据源,用于匹配实际的价格、图片、标题 */
|
|
170
|
+
giftData?: any;
|
|
171
|
+
/** 布局模式:一排一个或一排两个 */
|
|
172
|
+
layout?: 'single' | 'double';
|
|
173
|
+
/** 产品卡片点击事件 */
|
|
174
|
+
onProductClick?: (product: ProductCardData, bogoItem?: BogoItem) => void;
|
|
175
|
+
/** 产品图片点击事件 */
|
|
176
|
+
onProductImageClick?: (product: ProductCardData, bogoItem?: BogoItem) => void;
|
|
177
|
+
/** Learn More按钮点击事件 */
|
|
178
|
+
onLearnMore?: (product: ProductCardData, bogoItem?: BogoItem) => void;
|
|
179
|
+
/** Shop Now按钮点击事件 */
|
|
180
|
+
onShopNow?: (product: ProductCardData, bogoItem?: BogoItem) => void;
|
|
181
|
+
/** 赠品点击事件 */
|
|
182
|
+
onGiftClick?: (gift: FreeGift, product: ProductCardData) => void;
|
|
183
|
+
/** 赠品选择变化事件 */
|
|
184
|
+
onGiftSelectionChange?: (selectedGifts: FreeGift[], product: ProductCardData) => void;
|
|
185
|
+
classNames?: Partial<Record<BuyOneGetOneShelfSemanticName, string>>;
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* BuyOneGetOneShelf - (WIP)买赠货架
|
|
189
|
+
*
|
|
190
|
+
* @description 这是一个买主商品赠送赠品的活动组件,展示产品卡片,支持一排一个或一排两个的布局
|
|
191
|
+
*/
|
|
192
|
+
declare const BuyOneGetOneShelf: React.ForwardRefExoticComponent<BuyOneGetOneShelfProps & React.RefAttributes<HTMLDivElement>>;
|
|
193
|
+
export default BuyOneGetOneShelf;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";"use client";var F=Object.create;var d=Object.defineProperty;var L=Object.getOwnPropertyDescriptor;var M=Object.getOwnPropertyNames;var H=Object.getPrototypeOf,V=Object.prototype.hasOwnProperty;var j=(t,r)=>{for(var e in r)d(t,e,{get:r[e],enumerable:!0})},I=(t,r,e,c)=>{if(r&&typeof r=="object"||typeof r=="function")for(let i of M(r))!V.call(t,i)&&i!==e&&d(t,i,{get:()=>r[i],enumerable:!(c=L(r,i))||c.enumerable});return t};var v=(t,r,e)=>(e=t!=null?F(H(t)):{},I(r||!t||!t.__esModule?d(e,"default",{value:t,enumerable:!0}):e,t)),A=t=>I(d({},"__esModule",{value:!0}),t);var U={};j(U,{default:()=>E});module.exports=A(U);var s=require("react/jsx-runtime"),l=v(require("react")),u=require("../../helpers/index.js"),P=v(require("./ProductCard.js")),D=require("./hooks/useBogoDataTransform.js"),g=require("../../components/index.js");const x=l.forwardRef(({className:t,classNames:r={},data:e,buildData:c,giftData:i,layout:p="single",onProductClick:m,onProductImageClick:f,onLearnMore:b,onShopNow:y,onGiftClick:G,onGiftSelectionChange:B,..._},k)=>{const O=(0,D.useBogoDataTransform)(e.bogoItems,e.copy,c),R=l.useCallback((n,o)=>{m?.(n,e.bogoItems[o])},[m,e]),w=l.useCallback((n,o)=>{f?.(n,e.bogoItems[o])},[f,e]),S=l.useCallback((n,o)=>{b?.(n,e.bogoItems[o])},[b,e]),T=l.useCallback((n,o)=>{y?.(n,e.bogoItems[o])},[y,e]),C=e.title,h=e.subtitle;return(0,s.jsxs)("div",{ref:k,className:(0,u.cn)("w-full px-32 py-0",t,r?.root),..._,children:[C&&(0,s.jsx)(g.Heading,{as:"h2",html:C,className:(0,u.cn)("mb-4 text-2xl font-bold",r?.title)}),h&&(0,s.jsx)(g.Text,{size:3,as:"p",html:h,className:(0,u.cn)("mb-6 text-gray-600",r?.description)}),(0,s.jsx)("div",{className:(0,u.cn)("flex flex-wrap",p==="single"?"flex-col gap-6":"flex-row gap-6"),children:O.map((n,o)=>{const N=e.bogoItems[o]?.id||o;return(0,s.jsx)(P.default,{data:n,giftData:i,layout:p,onProductClick:a=>R(a,o),onProductImageClick:a=>w(a,o),onLearnMore:a=>S(a,o),onShopNow:a=>T(a,o),onGiftClick:G,onGiftSelectionChange:B},N)})})]})});x.displayName="BuyOneGetOneShelf";var E=x;
|
|
2
|
+
//# sourceMappingURL=index.js.map
|