@anker-in/headless-ui 1.1.33 → 1.1.34-alpha.1768470531746
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/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/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/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/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/anker.css +1 -0
- package/dist/tokens/base.css +12 -3
- package/dist/tokens/eufy.css +1 -0
- package/dist/tokens/solix.css +1 -0
- package/dist/tokens/soundcore.css +4 -3
- package/package.json +8 -3
- package/style.css +4929 -121
- package/tailwind.config.js +20 -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
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/biz-components/WheelLottery/ShareModal.tsx"],
|
|
4
|
+
"sourcesContent": ["/**\n * ShareModal - \u5206\u4EAB\u5F39\u7A97\u7EC4\u4EF6\n *\n * \u7528\u4E8E\u5F15\u5BFC\u7528\u6237\u5206\u4EAB\u5230\u793E\u4EA4\u5A92\u4F53\u4EE5\u83B7\u53D6\u989D\u5916\u62BD\u5956\u673A\u4F1A\n *\n * @module ShareModal\n * @date 2026-01-07\n */\n\n'use client'\n\nimport React from 'react'\nimport { cn } from '../../helpers/index.js'\nimport { Heading } from '../../components/index.js'\nimport { BaseModal } from './BaseModal.js'\n\nexport type SocialPlatform = 'facebook' | 'twitter' | 'instagram' | 'linkedin' | 'tiktok' | 'youtube'\n\nexport interface SharePlatformConfig {\n /**\n * \u5E73\u53F0\u7C7B\u578B\n */\n platform: SocialPlatform\n\n /**\n * \u5E73\u53F0\u540D\u79F0\n */\n name: string\n\n /**\n * \u5206\u4EAB URL\uFF08\u53EF\u9009\uFF0C\u5982\u679C\u63D0\u4F9B\u5219\u76F4\u63A5\u8DF3\u8F6C\uFF09\n */\n url?: string\n\n /**\n * \u70B9\u51FB\u56DE\u8C03\uFF08\u5982\u679C\u63D0\u4F9B url \u5219\u6B64\u56DE\u8C03\u4F1A\u5728\u8DF3\u8F6C\u524D\u6267\u884C\uFF09\n */\n onClick?: () => void\n\n /**\n * \u662F\u5426\u7981\u7528\n */\n disabled?: boolean\n}\n\nexport interface ShareModalProps {\n /**\n * \u662F\u5426\u663E\u793A\u5F39\u7A97\n */\n isOpen: boolean\n\n /**\n * \u5173\u95ED\u5F39\u7A97\u56DE\u8C03\n */\n onClose: () => void\n\n /**\n * \u5F39\u7A97\u6807\u9898\n * @default \"Share to Get More Chances\"\n */\n title?: string\n\n /**\n * \u526F\u6807\u9898/\u5F15\u5BFC\u6587\u6848\n * @default \"Share to Play Again Keep Trying! You Could Still Win Big!\"\n */\n subtitle?: string\n\n /**\n * \u5E95\u90E8\u63D0\u793A\u6587\u6848\n * @default \"Note: Maximum of 3 times per participant.\"\n */\n note?: string\n\n /**\n * \u793E\u4EA4\u5E73\u53F0\u914D\u7F6E\u5217\u8868\n */\n platforms?: SharePlatformConfig[]\n\n /**\n * \u5206\u4EAB\u6210\u529F\u56DE\u8C03\n */\n onShareSuccess?: (platform: SocialPlatform) => void\n\n /**\n * \u81EA\u5B9A\u4E49\u7C7B\u540D\n */\n className?: string\n}\n\n// \u9ED8\u8BA4\u793E\u4EA4\u5E73\u53F0\u914D\u7F6E\nconst DEFAULT_PLATFORMS: SharePlatformConfig[] = [\n { platform: 'facebook', name: 'Facebook' },\n { platform: 'twitter', name: 'X (Twitter)' },\n { platform: 'instagram', name: 'Instagram' },\n { platform: 'linkedin', name: 'LinkedIn' },\n { platform: 'tiktok', name: 'TikTok' },\n { platform: 'youtube', name: 'YouTube' },\n]\n\n// \u793E\u4EA4\u5E73\u53F0\u56FE\u6807\u7EC4\u4EF6\nconst SocialIcon: React.FC<{ platform: SocialPlatform; className?: string }> = ({ platform, className }) => {\n const iconClass = cn('size-full', className)\n\n switch (platform) {\n case 'facebook':\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"36\" height=\"36\" viewBox=\"0 0 36 36\" fill=\"none\">\n <path\n d=\"M36 18C36 8.05887 27.9411 0 18 0C8.05887 0 0 8.05887 0 18C0 26.9842 6.5823 34.431 15.1875 35.7813V23.2031H10.6172V18H15.1875V14.0344C15.1875 9.52313 17.8748 7.03125 21.9864 7.03125C23.9551 7.03125 26.0156 7.38281 26.0156 7.38281V11.8125H23.7459C21.51 11.8125 20.8125 13.2001 20.8125 14.625V18H25.8047L25.0066 23.2031H20.8125V35.7813C29.4177 34.431 36 26.9842 36 18Z\"\n fill=\"white\"\n />\n </svg>\n )\n case 'twitter':\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"33\" height=\"30\" viewBox=\"0 0 33 30\" fill=\"none\">\n <path\n d=\"M25.485 0H30.447L19.6065 12.39L32.3595 29.25H22.374L14.553 19.0245L5.604 29.25H0.639L12.234 15.9975L0 0H10.239L17.3085 9.3465L25.485 0ZM23.7435 26.28H26.493L8.745 2.814H5.7945L23.7435 26.28Z\"\n fill=\"white\"\n />\n </svg>\n )\n case 'instagram':\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"33\" viewBox=\"0 0 32 33\" fill=\"none\">\n <path\n d=\"M16.0088 0C20.3547 0 20.8991 0.0183266 22.6123 0.0996094C24.3132 0.174649 25.4768 0.449798 26.4961 0.84375C27.5467 1.25023 28.4411 1.80146 29.3291 2.68945C30.2231 3.5773 30.7672 4.47129 31.1611 5.53418C31.5551 6.54724 31.8302 7.71702 31.9053 9.41797C31.9803 11.125 31.999 11.6696 31.999 16.0156C31.999 20.3611 31.9803 20.9054 31.9053 22.6123C31.8302 24.3133 31.5551 25.4768 31.1611 26.4961C30.7547 27.5467 30.2044 28.4411 29.3164 29.3291C28.4284 30.217 27.5339 30.7674 26.4834 31.1738C25.4704 31.5678 24.3005 31.8429 22.5996 31.918C20.8928 31.993 20.3484 32.0117 16.0029 32.0117C11.6568 32.0117 11.1124 31.993 9.40527 31.918C7.70433 31.8429 6.5408 31.5678 5.52148 31.1738C4.47114 30.7674 3.57727 30.2168 2.68945 29.3291C1.79531 28.4412 1.2506 27.5469 0.837891 26.4902C0.443929 25.4772 0.168798 24.3073 0.09375 22.6064C0.0187082 20.8992 0 20.355 0 16.0088C3.73243e-07 11.6628 0.0187102 11.1187 0.09375 9.40527C0.168792 7.70433 0.443921 6.5408 0.837891 5.52148C1.25061 4.47102 1.79528 3.57737 2.68945 2.68945C3.57745 1.7952 4.47148 1.25062 5.52832 0.837891C6.54126 0.443997 7.71051 0.168809 9.41113 0.09375C11.1183 0.0187089 11.6627 3.7324e-07 16.0088 0ZM16.0088 2.88281C11.7317 2.88281 11.225 2.90153 9.54297 2.97656C7.98585 3.04535 7.13508 3.30847 6.57227 3.52734C5.82828 3.81497 5.29709 4.15899 4.73438 4.72168C4.17785 5.2782 3.82671 5.81549 3.53906 6.55957C3.32019 7.12238 3.05805 7.96693 2.98926 9.53027C2.91422 11.2124 2.89551 11.719 2.89551 15.9961C2.89551 20.2672 2.91422 20.7745 2.98926 22.4629C3.05806 24.0194 3.32024 24.8698 3.53906 25.4326C3.82672 26.1768 4.17156 26.7087 4.73438 27.2715C5.29081 27.8279 5.82829 28.1782 6.57227 28.4658C7.13508 28.6847 7.9796 28.9478 9.54297 29.0166C11.225 29.0916 11.7317 29.1104 16.0088 29.1104C20.2796 29.1104 20.7865 29.0916 22.4746 29.0166C24.0316 28.9478 24.8825 28.6847 25.4453 28.4658C26.1895 28.1782 26.7214 27.8343 27.2842 27.2715C27.8407 26.715 28.1909 26.1767 28.4785 25.4326C28.6973 24.8699 28.9595 24.0257 29.0283 22.4629C29.1034 20.7807 29.1221 20.2735 29.1221 15.9961C29.1221 11.7253 29.1034 11.2187 29.0283 9.53027C28.9595 7.97319 28.6974 7.12238 28.4785 6.55957C28.1909 5.81565 27.8468 5.28433 27.2842 4.72168C26.7276 4.16513 26.1895 3.815 25.4453 3.52734C24.8825 3.30847 24.038 3.04535 22.4746 2.97656C20.7928 2.90154 20.2858 2.88281 16.0088 2.88281ZM16.0127 7.78711C20.5526 7.78727 24.2354 11.4708 24.2354 16.0107C24.2352 20.5505 20.5525 24.2332 16.0127 24.2334C11.4728 24.2334 7.78923 20.5506 7.78906 16.0107C7.78906 11.4707 11.4727 7.78711 16.0127 7.78711ZM16.0127 10.6758C13.0673 10.6758 10.6777 13.0654 10.6777 16.0107C10.6779 18.956 13.0674 21.3447 16.0127 21.3447C18.9578 21.3446 21.3465 18.9559 21.3467 16.0107C21.3467 13.0655 18.9579 10.6759 16.0127 10.6758ZM24.5566 5.54102C25.6134 5.54107 26.4766 6.40413 26.4766 7.46094C26.4765 8.52395 25.6134 9.3808 24.5566 9.38086C23.4936 9.38086 22.6368 8.51773 22.6367 7.46094C22.6367 6.39784 23.4998 5.54102 24.5566 5.54102Z\"\n fill=\"white\"\n />\n </svg>\n )\n case 'linkedin':\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"29\" height=\"29\" viewBox=\"0 0 29 29\" fill=\"none\">\n <path\n d=\"M26.6846 0H2.12757C0.951214 0 0 0.9287 0 2.07691V26.7353C0 27.8835 0.951214 28.8178 2.12757 28.8178H26.6846C27.861 28.8178 28.8178 27.8835 28.8178 26.7409V2.07691C28.8178 0.9287 27.861 0 26.6846 0ZM8.54967 24.5571H4.27202V10.8011H8.54967V24.5571ZM6.41084 8.92677C5.03749 8.92677 3.92868 7.81796 3.92868 6.45024C3.92868 5.08252 5.03749 3.97371 6.41084 3.97371C7.77856 3.97371 8.88737 5.08252 8.88737 6.45024C8.88737 7.81233 7.77856 8.92677 6.41084 8.92677ZM24.5571 24.5571H20.2851V17.8704C20.2851 16.2776 20.2569 14.2232 18.0618 14.2232C15.8386 14.2232 15.5008 15.9624 15.5008 17.7579V24.5571H11.2345V10.8011H15.332V12.681H15.3883C15.9567 11.6003 17.3526 10.4577 19.4295 10.4577C23.7578 10.4577 24.5571 13.3057 24.5571 17.0093V24.5571Z\"\n fill=\"white\"\n />\n </svg>\n )\n case 'tiktok':\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\">\n <path\n d=\"M32 4.51848C32 2.02299 29.977 0 27.4816 0H4.51848C2.02299 0 0 2.02299 0 4.51848V27.4816C0 29.9771 2.02299 32 4.51848 32H27.4816C29.977 32 32 29.9771 32 27.4816V4.51848ZM26.5102 13.9566C24.4458 13.9797 22.5219 13.3555 20.8328 12.1996V20.3146C20.8328 23.9211 18.364 27.0194 14.873 27.8285C10.1103 28.915 6.07845 25.4702 5.56992 21.355C5.03818 17.2397 7.66278 13.633 11.6856 12.8238C12.4716 12.662 13.654 12.662 14.2639 12.8007V17.1472C14.0762 17.1011 13.9005 17.0547 13.7156 17.0317C12.1434 16.7541 10.6207 17.5402 9.99648 18.9736C9.37229 20.4072 9.79008 22.0717 11.0616 23.0429C12.1251 23.875 13.3051 23.9906 14.5073 23.4357C15.7095 22.904 16.3557 21.9331 16.4942 20.6152C16.5174 20.4304 16.5162 20.2222 16.5162 20.0141V4.40826C16.5162 3.96899 16.5195 3.98827 16.9589 3.98827H20.4037C20.6581 3.98827 20.7506 4.02477 20.7736 4.32549C20.9586 7.00734 22.9947 9.29136 25.6072 9.63819C25.8846 9.68442 26.1819 9.7027 26.5104 9.72579L26.5102 13.9566Z\"\n fill=\"white\"\n />\n </svg>\n )\n case 'youtube':\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"33\" height=\"24\" viewBox=\"0 0 33 24\" fill=\"none\">\n <path\n d=\"M28.5006 0.731224L26.3106 0.506224C19.7579 -0.168741 13.1533 -0.168741 6.60059 0.506224L4.50059 0.731224C3.24922 0.872661 2.09527 1.47475 1.26344 2.42027C0.431611 3.36578 -0.0185587 4.58703 0.000586503 5.84622V18.1462C-0.0185587 19.4054 0.431611 20.6267 1.26344 21.5722C2.09527 22.5177 3.24922 23.1198 4.50059 23.2612L6.69059 23.4862C13.2433 24.1612 19.8479 24.1612 26.4006 23.4862L28.5006 23.2612C29.752 23.1198 30.9059 22.5177 31.7377 21.5722C32.5696 20.6267 33.0197 19.4054 33.0006 18.1462V5.84622C33.0197 4.58703 32.5696 3.36578 31.7377 2.42027C30.9059 1.47475 29.752 0.872661 28.5006 0.731224ZM21.0006 12.9262L15.1656 16.8262C14.9985 16.918 14.8107 16.9658 14.6201 16.9651C14.4294 16.9644 14.242 16.9152 14.0756 16.8222C13.9091 16.7293 13.769 16.5955 13.6684 16.4335C13.5679 16.2715 13.5101 16.0867 13.5006 15.8962V8.09622C13.501 7.89217 13.5568 7.69205 13.6622 7.51731C13.7676 7.34256 13.9185 7.19977 14.0988 7.10422C14.2791 7.00868 14.482 6.96397 14.6858 6.97489C14.8896 6.98581 15.0865 7.05195 15.2556 7.16622L21.0906 11.0662C21.2453 11.1671 21.3725 11.3049 21.4605 11.4673C21.5485 11.6297 21.5946 11.8115 21.5946 11.9962C21.5946 12.1809 21.5485 12.3627 21.4605 12.5251C21.3725 12.6875 21.2453 12.8254 21.0906 12.9262H21.0006Z\"\n fill=\"white\"\n />\n </svg>\n )\n default:\n return null\n }\n}\n\n/**\n * ShareModal \u5206\u4EAB\u5F39\u7A97\u7EC4\u4EF6\n */\nexport const ShareModal: React.FC<ShareModalProps> = ({\n isOpen,\n onClose,\n title = 'Share to Get More Chances',\n subtitle = 'Share to Play Again Keep Trying! You Could Still Win Big!',\n note = 'Note: Maximum of 3 times per participant.',\n platforms = DEFAULT_PLATFORMS,\n onShareSuccess,\n className,\n}) => {\n const handlePlatformClick = (platformConfig: SharePlatformConfig) => {\n if (platformConfig.disabled) return\n\n // \u6267\u884C\u56DE\u8C03\n platformConfig.onClick?.()\n\n // \u5982\u679C\u63D0\u4F9B\u4E86 URL\uFF0C\u5219\u6253\u5F00\u65B0\u7A97\u53E3\n if (platformConfig.url) {\n window.open(platformConfig.url, '_blank', 'noopener,noreferrer')\n }\n\n // \u89E6\u53D1\u6210\u529F\u56DE\u8C03\n onShareSuccess?.(platformConfig.platform)\n }\n\n return (\n <BaseModal\n isOpen={isOpen}\n onClose={onClose}\n maxWidth=\"max-w-[326px] laptop:max-w-[420px]\"\n background=\"bg-white\"\n className={className}\n ariaLabelledBy=\"share-modal-title\"\n >\n <div className=\"laptop:px-8 laptop:pb-8 p-6 pt-0 text-center\">\n {/* \u6807\u9898 */}\n <Heading size={2} id=\"share-modal-title\" className=\"text-center tracking-[-0.32px] text-[#1D1D1F]\">\n {title}\n </Heading>\n\n {/* \u526F\u6807\u9898 */}\n {subtitle && <p className=\"laptop:text-[16px] text-center text-[14px] font-[700] text-[#1D1D1F]\">{subtitle}</p>}\n\n {/* \u793E\u4EA4\u5E73\u53F0\u56FE\u6807\u7F51\u683C */}\n <div className=\"mx-auto mt-8 flex max-w-[300px] flex-wrap items-center justify-center gap-4\">\n {platforms.map(platformConfig => (\n <button\n key={platformConfig.platform}\n onClick={() => handlePlatformClick(platformConfig)}\n disabled={platformConfig.disabled}\n className={cn(\n 'flex aspect-square size-[64px] items-center justify-center rounded-full bg-black text-white transition-all',\n 'hover:scale-110 hover:shadow-lg',\n 'focus:ring-brand-0 focus:outline-none focus:ring-2 focus:ring-offset-2',\n 'disabled:cursor-not-allowed disabled:opacity-40 disabled:hover:scale-100'\n )}\n aria-label={`Share on ${platformConfig.name}`}\n >\n <SocialIcon platform={platformConfig.platform} />\n </button>\n ))}\n </div>\n\n {/* \u5E95\u90E8\u63D0\u793A */}\n {note && <p className={cn('mt-8 text-[16px] font-[700] text-[#767880]', 'laptop:text-[16px]')}>{note}</p>}\n </div>\n </BaseModal>\n )\n}\n\nexport default ShareModal\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["jsx", "jsxs", "cn", "Heading", "BaseModal", "DEFAULT_PLATFORMS", "SocialIcon", "platform", "className", "iconClass", "ShareModal", "isOpen", "onClose", "title", "subtitle", "note", "platforms", "onShareSuccess", "handlePlatformClick", "platformConfig", "ShareModal_default"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wheel - 转盘核心组件
|
|
3
|
+
*
|
|
4
|
+
* 基于 Figma 设计稿实现的大转盘抽奖组件核心部分。
|
|
5
|
+
* 包含 8 个奖品区块、GO 按钮和装饰元素,支持响应式布局。
|
|
6
|
+
*
|
|
7
|
+
* Figma 设计稿: https://www.figma.com/design/DhWsPamqTM76eMHS0aIQqw
|
|
8
|
+
* 设计节点: 498:10533
|
|
9
|
+
*
|
|
10
|
+
* @module Wheel
|
|
11
|
+
* @date 2025-12-17
|
|
12
|
+
*/
|
|
13
|
+
import React from 'react';
|
|
14
|
+
import type { WheelProps } from './types.js';
|
|
15
|
+
/**
|
|
16
|
+
* Wheel 转盘组件
|
|
17
|
+
*
|
|
18
|
+
* 根据 Figma 设计稿精确还原的转盘 UI,包含:
|
|
19
|
+
* - 圆形转盘容器,带边框和背景
|
|
20
|
+
* - 8 个放射状排列的奖品区块
|
|
21
|
+
* - 中心 GO 按钮,带渐变和阴影效果
|
|
22
|
+
* - 顶部指针装饰元素
|
|
23
|
+
* - 响应式尺寸适配 5 个断点
|
|
24
|
+
* - tablet/mobile 使用 CSS clip-path 仅显示上半部分
|
|
25
|
+
*/
|
|
26
|
+
export declare const Wheel: React.FC<WheelProps>;
|
|
27
|
+
export default Wheel;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use client";import{jsx as a,jsxs as s}from"react/jsx-runtime";import"react";import{cn as t}from"../../helpers/index.js";import{DEFAULT_POINTER_IMAGE as z,DEFAULT_POINTER_DISABLE_IMAGE as k,DEFAULT_WHEEL_BG_6_PRIZES as w,DEFAULT_WHEEL_BG_8_PRIZES as v}from"./types.js";import r from"../../components/picture.js";const P=({prizes:e,rotation:p,isSpinning:o,isFinished:l=!1,isButtonDisabled:n,onGoClick:c,wheelBackgroundImage:d,pointerImage:x,userData:m,className:u})=>{if(!e||e.length===0)return null;const f=e.length===6?w:v,g=d||f,b=x||(m?.isLoggedIn?z:k);return a("div",{className:t("wheel-wrapper","mx-auto flex items-center justify-center","aspect-w-[1] aspect-h-[1]","l-tablet:size-[340px]",u),children:s("div",{className:t("wheel-container","mx-auto","size-[340px]","lg-desktop:size-[85%] desktop:size-[85%] laptop:size-[90%]"),children:[a("div",{className:t("wheel-disc","absolute inset-0","rounded-full","bg-cover bg-center bg-no-repeat","shadow-[0px_2px_8px_rgba(0,0,0,0.12)]",{"animate-[spin_0.5s_linear_infinite]":o&&!l,"animate-[spin_120s_linear_infinite]":!o&&!l,"transition-none":l}),style:{transform:l?`rotate(${p}deg)`:void 0,backgroundImage:`url('${g}')`},role:"img","aria-label":"\u5927\u8F6C\u76D8",children:e.map((i,_)=>a(E,{prize:i,index:_,totalPrizes:e.length},i.prizeKey))}),s("div",{className:t("wheel-pointer-wrapper","absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2","z-10","h-auto w-[72px]","laptop:w-[86px]","desktop:w-[115px]","lg-desktop:w-[144px]"),children:[a(r,{source:b,alt:"\u8F6C\u76D8\u6307\u9488",className:"size-full object-contain"}),a("button",{onClick:c,disabled:n,className:t("absolute","bottom-[8%] left-1/2 -translate-x-1/2","size-[72px]","laptop:size-[86px]","desktop:size-[115px]","lg-desktop:size-[144px]","rounded-full","cursor-pointer","transition-transform hover:scale-105 active:scale-95","disabled:cursor-not-allowed disabled:opacity-50"),"aria-label":"\u5F00\u59CB\u62BD\u5956","aria-live":"polite"})]})]})})},E=({prize:e,index:p,totalPrizes:o})=>{const l=360/o*p;return a("div",{className:t("prize-slice","absolute left-0 top-0 size-full","flex items-start justify-center","origin-center"),style:{transform:`rotate(${l}deg)`},children:s("div",{className:t("prize-content","flex flex-col items-center gap-[6px]","pt-[44px]","laptop:pt-[62px]","desktop:pt-[82px]","lg-desktop:pt-[104px]"),children:[a("p",{className:t("prize-name","text-[12px]","laptop:text-[14px]","laptop-md:text-[16px]","desktop:text-[16px]","lg-desktop:text-[18px]","line-clamp-2 text-center font-semibold leading-[1.2] text-[#080a0f]","w-[80px]","laptop:w-[60px]","laptop-md:w-[100px]","desktop:w-[100px]","lg-desktop:w-[140px]"),children:e.name}),a(r,{source:e.image.url,alt:e.image.alt||`\u5956\u54C1:${e.name}${e.rank?`,\u6392\u540D ${e.rank}`:""}`,className:t("prize-image","size-[45px]","laptop-md:size-[64px]","laptop:size-[64px]","desktop:size-[86px]","lg-desktop:size-[108px]","rounded-lg object-cover")})]})})};var A=P;export{P as Wheel,A as default};
|
|
2
|
+
//# sourceMappingURL=Wheel.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/biz-components/WheelLottery/Wheel.tsx"],
|
|
4
|
+
"sourcesContent": ["/**\n * Wheel - \u8F6C\u76D8\u6838\u5FC3\u7EC4\u4EF6\n *\n * \u57FA\u4E8E Figma \u8BBE\u8BA1\u7A3F\u5B9E\u73B0\u7684\u5927\u8F6C\u76D8\u62BD\u5956\u7EC4\u4EF6\u6838\u5FC3\u90E8\u5206\u3002\n * \u5305\u542B 8 \u4E2A\u5956\u54C1\u533A\u5757\u3001GO \u6309\u94AE\u548C\u88C5\u9970\u5143\u7D20,\u652F\u6301\u54CD\u5E94\u5F0F\u5E03\u5C40\u3002\n *\n * Figma \u8BBE\u8BA1\u7A3F: https://www.figma.com/design/DhWsPamqTM76eMHS0aIQqw\n * \u8BBE\u8BA1\u8282\u70B9: 498:10533\n *\n * @module Wheel\n * @date 2025-12-17\n */\n\n'use client'\n\nimport React from 'react'\nimport { cn } from '../../helpers/index.js'\nimport type { Prize, WheelProps } from './types.js'\nimport {\n DEFAULT_POINTER_IMAGE,\n DEFAULT_POINTER_DISABLE_IMAGE,\n DEFAULT_WHEEL_BG_6_PRIZES,\n DEFAULT_WHEEL_BG_8_PRIZES,\n} from './types.js'\nimport Picture from '../../components/picture.js'\n\n// ============================================================================\n// Wheel \u7EC4\u4EF6\n// ============================================================================\n\n/**\n * Wheel \u8F6C\u76D8\u7EC4\u4EF6\n *\n * \u6839\u636E Figma \u8BBE\u8BA1\u7A3F\u7CBE\u786E\u8FD8\u539F\u7684\u8F6C\u76D8 UI,\u5305\u542B:\n * - \u5706\u5F62\u8F6C\u76D8\u5BB9\u5668,\u5E26\u8FB9\u6846\u548C\u80CC\u666F\n * - 8 \u4E2A\u653E\u5C04\u72B6\u6392\u5217\u7684\u5956\u54C1\u533A\u5757\n * - \u4E2D\u5FC3 GO \u6309\u94AE,\u5E26\u6E10\u53D8\u548C\u9634\u5F71\u6548\u679C\n * - \u9876\u90E8\u6307\u9488\u88C5\u9970\u5143\u7D20\n * - \u54CD\u5E94\u5F0F\u5C3A\u5BF8\u9002\u914D 5 \u4E2A\u65AD\u70B9\n * - tablet/mobile \u4F7F\u7528 CSS clip-path \u4EC5\u663E\u793A\u4E0A\u534A\u90E8\u5206\n */\nexport const Wheel: React.FC<WheelProps> = ({\n prizes,\n rotation,\n isSpinning,\n isFinished = false,\n isButtonDisabled,\n onGoClick,\n wheelBackgroundImage,\n pointerImage,\n userData,\n className,\n}) => {\n // \u9632\u5FA1\u6027\u7F16\u7A0B:\u5904\u7406 undefined \u6216\u7A7A\u6570\u7EC4\n if (!prizes || prizes.length === 0) {\n return null\n }\n\n // \u6839\u636E\u5956\u54C1\u6570\u91CF\u81EA\u52A8\u9009\u62E9\u9ED8\u8BA4\u5E95\u56FE\n const defaultWheelBg = prizes.length === 6 ? DEFAULT_WHEEL_BG_6_PRIZES : DEFAULT_WHEEL_BG_8_PRIZES\n const finalWheelBg = wheelBackgroundImage || defaultWheelBg\n const finalPointerImage =\n pointerImage || (userData?.isLoggedIn ? DEFAULT_POINTER_IMAGE : DEFAULT_POINTER_DISABLE_IMAGE)\n\n return (\n <div\n className={cn(\n 'wheel-wrapper',\n 'mx-auto flex items-center justify-center',\n 'aspect-w-[1] aspect-h-[1]',\n 'l-tablet:size-[340px]',\n className\n )}\n >\n {/* ===================================================================\n \u8F6C\u76D8\u5BB9\u5668 - \u54CD\u5E94\u5F0F\u5C3A\u5BF8 + clip-path \u88C1\u526A\n =================================================================== */}\n <div\n className={cn(\n 'wheel-container',\n // \u54CD\u5E94\u5F0F\u5C3A\u5BF8(\u57FA\u4E8E Figma \u8BBE\u8BA1\u7A3F,\n 'mx-auto',\n 'size-[340px]', // mobile/tablet (default, <768px)\n 'lg-desktop:size-[85%] desktop:size-[85%] laptop:size-[90%]' // lg-desktop (\u22651921px) - Figma: 800\u00D7800\n )}\n >\n {/* =================================================================\n \u8F6C\u76D8\u4E3B\u4F53 - \u5E94\u7528\u65CB\u8F6C\u52A8\u753B + \u80CC\u666F\u56FE\u7247\n ================================================================= */}\n <div\n className={cn(\n 'wheel-disc',\n 'absolute inset-0',\n 'rounded-full',\n 'bg-cover bg-center bg-no-repeat',\n 'shadow-[0px_2px_8px_rgba(0,0,0,0.12)]',\n {\n // \u62BD\u5956\u4E2D: \u4F7F\u7528\u5FEB\u901F\u65CB\u8F6C\u52A8\u753B\uFF080.5\u79D21\u5708\uFF09\n 'animate-[spin_0.5s_linear_infinite]': isSpinning && !isFinished,\n // \u672A\u62BD\u5956\u72B6\u6001: \u5E94\u7528\u6162\u901F\u5FAA\u73AF\u65CB\u8F6C\uFF08120\u79D21\u5708\uFF09\n 'animate-[spin_120s_linear_infinite]': !isSpinning && !isFinished,\n // \u51CF\u901F\u52A8\u753B\u671F\u95F4: \u79FB\u9664 transition\uFF0C\u4F7F\u7528 requestAnimationFrame \u63A7\u5236\n 'transition-none': isFinished,\n }\n )}\n style={{\n transform: isFinished ? `rotate(${rotation}deg)` : undefined,\n backgroundImage: `url('${finalWheelBg}')`,\n }}\n role=\"img\"\n aria-label=\"\u5927\u8F6C\u76D8\"\n >\n {/* 8 \u4E2A\u5956\u54C1\u533A\u5757 */}\n {prizes.map((prize, index) => (\n <PrizeSlice key={prize.prizeKey} prize={prize} index={index} totalPrizes={prizes.length} />\n ))}\n </div>\n\n {/* =================================================================\n \u6307\u9488\u56FE\u7247 - \u5305\u542B GO \u6309\u94AE\u7684\u5B8C\u6574\u6307\u9488\u56FE\n \u56FE\u7247\u5DF2\u5305\u542B GO \u6309\u94AE\u6837\u5F0F\uFF0C\u4EE3\u7801\u53EA\u8D1F\u8D23\u5B9A\u4F4D\u548C\u4EA4\u4E92\n ================================================================= */}\n <div\n className={cn(\n 'wheel-pointer-wrapper',\n 'absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2',\n 'z-10',\n // \u54CD\u5E94\u5F0F\u5C3A\u5BF8 - \u6839\u636E\u539F\u56FE 352\u00D7392 \u6BD4\u4F8B\n 'h-auto w-[72px]', // mobile/tablet (\u539F\u56FE\u7F29\u5C0F2\u500D)\n 'laptop:w-[86px]', // laptop\n 'desktop:w-[115px]', // desktop\n 'lg-desktop:w-[144px]' // lg-desktop (\u539F\u56FE\u5C3A\u5BF8)\n )}\n >\n <Picture source={finalPointerImage} alt=\"\u8F6C\u76D8\u6307\u9488\" className=\"size-full object-contain\" />\n\n {/* \u900F\u660E\u7684\u53EF\u70B9\u51FB\u6309\u94AE\u533A\u57DF - \u8986\u76D6\u5728\u6307\u9488\u56FE\u7684 GO \u6309\u94AE\u4F4D\u7F6E */}\n <button\n onClick={onGoClick}\n disabled={isButtonDisabled}\n className={cn(\n 'absolute',\n // GO \u6309\u94AE\u5728\u6307\u9488\u56FE\u4E2D\u7684\u4F4D\u7F6E (\u5927\u7EA6\u5728\u5E95\u90E8\u4E2D\u5FC3)\n 'bottom-[8%] left-1/2 -translate-x-1/2',\n // \u54CD\u5E94\u5F0F\u5C3A\u5BF8 - \u5339\u914D\u6307\u9488\u56FE\u4E2D\u7684 GO \u6309\u94AE\u5927\u5C0F\n 'size-[72px]', // mobile/tablet\n 'laptop:size-[86px]', // laptop\n 'desktop:size-[115px]', // desktop\n 'lg-desktop:size-[144px]', // lg-desktop\n 'rounded-full',\n 'cursor-pointer',\n 'transition-transform hover:scale-105 active:scale-95',\n 'disabled:cursor-not-allowed disabled:opacity-50'\n )}\n aria-label=\"\u5F00\u59CB\u62BD\u5956\"\n aria-live=\"polite\"\n />\n </div>\n </div>\n </div>\n )\n}\n\n// ============================================================================\n// PrizeSlice \u5B50\u7EC4\u4EF6 - \u5355\u4E2A\u5956\u54C1\u533A\u5757\n// ============================================================================\n\ninterface PrizeSliceProps {\n prize: Prize\n index: number\n totalPrizes: number\n}\n\n/**\n * PrizeSlice - \u5355\u4E2A\u5956\u54C1\u533A\u5757\n *\n * \u653E\u5C04\u72B6\u6392\u5217\u5728\u8F6C\u76D8\u4E0A,\u5305\u542B\u5956\u54C1\u56FE\u7247\u548C\u540D\u79F0\u3002\n * \u4F7F\u7528 transform rotate \u5B9E\u73B0\u653E\u5C04\u72B6\u5E03\u5C40,\u5185\u5BB9\u53CD\u5411\u65CB\u8F6C\u4FDD\u6301\u53EF\u8BFB\u3002\n */\nconst PrizeSlice: React.FC<PrizeSliceProps> = ({ prize, index, totalPrizes }) => {\n // \u8BA1\u7B97\u5F53\u524D\u5956\u54C1\u7684\u65CB\u8F6C\u89D2\u5EA6\n const angle = (360 / totalPrizes) * index\n\n return (\n <div\n className={cn(\n 'prize-slice',\n 'absolute left-0 top-0 size-full',\n 'flex items-start justify-center',\n 'origin-center'\n )}\n style={{\n transform: `rotate(${angle}deg)`,\n }}\n >\n {/* \u5956\u54C1\u5185\u5BB9\u5BB9\u5668 - \u53CD\u5411\u65CB\u8F6C\u4EE5\u4FDD\u6301\u5185\u5BB9\u76F4\u7ACB */}\n <div\n className={cn(\n 'prize-content',\n 'flex flex-col items-center gap-[6px]',\n 'pt-[44px]', // \u8DDD\u79BB\u5706\u5FC3\u7684\u8DDD\u79BB mobile/tablet\n 'laptop:pt-[62px]', // laptop\n 'desktop:pt-[82px]', // desktop\n 'lg-desktop:pt-[104px]' // lg-desktop: \u66F4\u9760\u8FD1\u8FB9\u7F18\n )}\n >\n {/* \u5956\u54C1\u540D\u79F0 */}\n <p\n className={cn(\n 'prize-name',\n 'text-[12px]',\n 'laptop:text-[14px]',\n 'laptop-md:text-[16px]',\n 'desktop:text-[16px]',\n 'lg-desktop:text-[18px]',\n 'line-clamp-2 text-center font-semibold leading-[1.2] text-[#080a0f]',\n 'w-[80px]',\n 'laptop:w-[60px]',\n 'laptop-md:w-[100px]',\n 'desktop:w-[100px]',\n 'lg-desktop:w-[140px]'\n )}\n >\n {prize.name}\n </p>\n {/* \u5956\u54C1\u56FE\u7247 */}\n <Picture\n source={prize.image.url}\n alt={prize.image.alt || `\u5956\u54C1:${prize.name}${prize.rank ? `,\u6392\u540D ${prize.rank}` : ''}`}\n className={cn(\n 'prize-image',\n 'size-[45px]', // mobile/tablet\n 'laptop-md:size-[64px]', // laptop\n 'laptop:size-[64px]', // laptop\n 'desktop:size-[86px]', // desktop\n 'lg-desktop:size-[108px]', // lg-desktop\n 'rounded-lg object-cover'\n )}\n />\n </div>\n </div>\n )\n}\n\n// ============================================================================\n// \u9ED8\u8BA4\u5BFC\u51FA\n// ============================================================================\n\nexport default Wheel\n"],
|
|
5
|
+
"mappings": "aAkHY,cAAAA,EAQJ,QAAAC,MARI,oBAnGZ,MAAkB,QAClB,OAAS,MAAAC,MAAU,yBAEnB,OACE,yBAAAC,EACA,iCAAAC,EACA,6BAAAC,EACA,6BAAAC,MACK,aACP,OAAOC,MAAa,8BAiBb,MAAMC,EAA8B,CAAC,CAC1C,OAAAC,EACA,SAAAC,EACA,WAAAC,EACA,WAAAC,EAAa,GACb,iBAAAC,EACA,UAAAC,EACA,qBAAAC,EACA,aAAAC,EACA,SAAAC,EACA,UAAAC,CACF,IAAM,CAEJ,GAAI,CAACT,GAAUA,EAAO,SAAW,EAC/B,OAAO,KAIT,MAAMU,EAAiBV,EAAO,SAAW,EAAIJ,EAA4BC,EACnEc,EAAeL,GAAwBI,EACvCE,EACJL,IAAiBC,GAAU,WAAad,EAAwBC,GAElE,OACEJ,EAAC,OACC,UAAWE,EACT,gBACA,2CACA,4BACA,wBACAgB,CACF,EAKA,SAAAjB,EAAC,OACC,UAAWC,EACT,kBAEA,UACA,eACA,4DACF,EAKA,UAAAF,EAAC,OACC,UAAWE,EACT,aACA,mBACA,eACA,kCACA,wCACA,CAEE,sCAAuCS,GAAc,CAACC,EAEtD,sCAAuC,CAACD,GAAc,CAACC,EAEvD,kBAAmBA,CACrB,CACF,EACA,MAAO,CACL,UAAWA,EAAa,UAAUF,CAAQ,OAAS,OACnD,gBAAiB,QAAQU,CAAY,IACvC,EACA,KAAK,MACL,aAAW,qBAGV,SAAAX,EAAO,IAAI,CAACa,EAAOC,IAClBvB,EAACwB,EAAA,CAAgC,MAAOF,EAAO,MAAOC,EAAO,YAAad,EAAO,QAAhEa,EAAM,QAAkE,CAC1F,EACH,EAMArB,EAAC,OACC,UAAWC,EACT,wBACA,8DACA,OAEA,kBACA,kBACA,oBACA,sBACF,EAEA,UAAAF,EAACO,EAAA,CAAQ,OAAQc,EAAmB,IAAI,2BAAO,UAAU,2BAA2B,EAGpFrB,EAAC,UACC,QAASc,EACT,SAAUD,EACV,UAAWX,EACT,WAEA,wCAEA,cACA,qBACA,uBACA,0BACA,eACA,iBACA,uDACA,iDACF,EACA,aAAW,2BACX,YAAU,SACZ,GACF,GACF,EACF,CAEJ,EAkBMsB,EAAwC,CAAC,CAAE,MAAAF,EAAO,MAAAC,EAAO,YAAAE,CAAY,IAAM,CAE/E,MAAMC,EAAS,IAAMD,EAAeF,EAEpC,OACEvB,EAAC,OACC,UAAWE,EACT,cACA,kCACA,kCACA,eACF,EACA,MAAO,CACL,UAAW,UAAUwB,CAAK,MAC5B,EAGA,SAAAzB,EAAC,OACC,UAAWC,EACT,gBACA,uCACA,YACA,mBACA,oBACA,uBACF,EAGA,UAAAF,EAAC,KACC,UAAWE,EACT,aACA,cACA,qBACA,wBACA,sBACA,yBACA,sEACA,WACA,kBACA,sBACA,oBACA,sBACF,EAEC,SAAAoB,EAAM,KACT,EAEAtB,EAACO,EAAA,CACC,OAAQe,EAAM,MAAM,IACpB,IAAKA,EAAM,MAAM,KAAO,gBAAMA,EAAM,IAAI,GAAGA,EAAM,KAAO,iBAAOA,EAAM,IAAI,GAAK,EAAE,GAChF,UAAWpB,EACT,cACA,cACA,wBACA,qBACA,sBACA,0BACA,yBACF,EACF,GACF,EACF,CAEJ,EAMA,IAAOyB,EAAQnB",
|
|
6
|
+
"names": ["jsx", "jsxs", "cn", "DEFAULT_POINTER_IMAGE", "DEFAULT_POINTER_DISABLE_IMAGE", "DEFAULT_WHEEL_BG_6_PRIZES", "DEFAULT_WHEEL_BG_8_PRIZES", "Picture", "Wheel", "prizes", "rotation", "isSpinning", "isFinished", "isButtonDisabled", "onGoClick", "wheelBackgroundImage", "pointerImage", "userData", "className", "defaultWheelBg", "finalWheelBg", "finalPointerImage", "prize", "index", "PrizeSlice", "totalPrizes", "angle", "Wheel_default"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WinnerModal - 中奖弹窗组件
|
|
3
|
+
*
|
|
4
|
+
* 基于截图设计实现的中奖结果展示弹窗。
|
|
5
|
+
* 包含标题、奖品信息、优惠码和确认按钮。
|
|
6
|
+
*
|
|
7
|
+
* @module WinnerModal
|
|
8
|
+
* @date 2025-12-24
|
|
9
|
+
*/
|
|
10
|
+
import type { WinnerModalProps } from './types.js';
|
|
11
|
+
/**
|
|
12
|
+
* WinnerModal 中奖弹窗组件
|
|
13
|
+
*
|
|
14
|
+
* 根据设计稿实现的中奖结果展示弹窗,包含:
|
|
15
|
+
* - 半透明遮罩层
|
|
16
|
+
* - 白色圆角卡片容器
|
|
17
|
+
* - 标题 "You Have Won"
|
|
18
|
+
* - 奖品名称
|
|
19
|
+
* - 优惠券图片(20% Off)
|
|
20
|
+
* - 优惠码和过期时间
|
|
21
|
+
* - 确认按钮
|
|
22
|
+
* - 右上角关闭按钮
|
|
23
|
+
*/
|
|
24
|
+
export declare const WinnerModal: ({ isOpen, prize, title, prizeTitle, prizeImage, prizeDescription, learnMoreUrl, learnMoreText, onClose, confirmText, onConfirm, className, couponCode, couponDiscount, couponUnit, expiresAt, codeText, copyText, copiedText, onCopyCode, }: WinnerModalProps) => import("react/jsx-runtime").JSX.Element | null;
|
|
25
|
+
export default WinnerModal;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use client";import{jsx as t,jsxs as e}from"react/jsx-runtime";import m from"react";import{cn as l}from"../../helpers/index.js";import{Picture as C,Heading as E,Button as H}from"../../components/index.js";import{BaseModal as R}from"./BaseModal.js";const L=({isOpen:x,prize:a,title:b="You Have Won",prizeTitle:i,prizeImage:o,prizeDescription:p,learnMoreUrl:c,learnMoreText:g="Learn More",onClose:f,confirmText:w="Okay, Got It",onConfirm:h,className:y,couponCode:s,couponDiscount:r,couponUnit:W="Off",expiresAt:d,codeText:k="CODE:",copyText:B="COPY",copiedText:M="COPIED",onCopyCode:u})=>{const[O,N]=m.useState(!1),n=m.useRef(null);m.useEffect(()=>()=>{n.current&&clearTimeout(n.current)},[]);const P=v=>{n.current&&clearTimeout(n.current),navigator.clipboard.writeText(v),u&&u?.(v),N(!0),n.current=setTimeout(()=>{N(!1)},3e3)};if(!x||!a)return null;const T=()=>{h?.(),f()};return e(R,{isOpen:x,onClose:f,className:y,maxWidth:"max-w-[326px] laptop:max-w-[420px]",ariaLabelledBy:"winner-modal-title",children:[e("div",{className:"flex flex-col items-center px-4",children:[e("div",{children:[t(E,{size:2,className:l("mb-1 text-center tracking-[-0.32px]"),children:b}),t("p",{className:"laptop:text-[16px] text-center text-[14px] font-[700] text-[#1D1D1F]",children:i||a.name}),c&&t("div",{className:"laptop:mt-4 mt-3 text-center",children:t("a",{href:c,target:"_blank",rel:"noopener noreferrer",className:l("laptop:text-[14px] text-center text-[12px]","text-blue-600 hover:text-blue-700","font-medium underline","transition-colors"),children:g})})]}),t("div",{className:l("mx-auto my-4 flex items-center justify-center","laptop:size-[200px] size-[160px]"),children:(o||a.image)&&t(C,{source:o||a?.image?.url,alt:a?.image?.alt||i||a?.name,className:l("h-auto w-full")})}),(r||s)&&e("div",{className:"mb-1 flex w-full flex-col items-center",children:[r&&e("span",{className:"text-brand-0 mb-1 text-[16px] font-bold",children:[r," ",W]}),s&&e("div",{className:"laptop:text-[16px] text-brand-0 flex items-center gap-2 text-center text-[14px] font-bold",children:[e("span",{className:"max-w-[300px] truncate",children:[k,s]}),t("button",{onClick:()=>P(s),className:"underline",style:{minWidth:60},children:O?M:B})]}),d&&e("span",{className:"mt-1 text-[12px] text-[#767880]",children:["\u6709\u6548\u671F\u81F3\uFF1A",d]})]}),p&&t("p",{className:l("laptop:text-[16px] px-4 text-center text-[14px] font-[700] text-[#767880]"),children:p})]}),t("div",{className:"laptop:p-6 p-4",children:t(H,{onClick:T,className:l("w-full"),children:w})})]})};var F=L;export{L as WinnerModal,F as default};
|
|
2
|
+
//# sourceMappingURL=WinnerModal.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/biz-components/WheelLottery/WinnerModal.tsx"],
|
|
4
|
+
"sourcesContent": ["/**\n * WinnerModal - \u4E2D\u5956\u5F39\u7A97\u7EC4\u4EF6\n *\n * \u57FA\u4E8E\u622A\u56FE\u8BBE\u8BA1\u5B9E\u73B0\u7684\u4E2D\u5956\u7ED3\u679C\u5C55\u793A\u5F39\u7A97\u3002\n * \u5305\u542B\u6807\u9898\u3001\u5956\u54C1\u4FE1\u606F\u3001\u4F18\u60E0\u7801\u548C\u786E\u8BA4\u6309\u94AE\u3002\n *\n * @module WinnerModal\n * @date 2025-12-24\n */\n\n'use client'\n\nimport React from 'react'\nimport { cn } from '../../helpers/index.js'\nimport type { WinnerModalProps } from './types.js'\nimport { Picture, Heading, Button } from '../../components/index.js'\nimport { BaseModal } from './BaseModal.js'\n\n// ============================================================================\n// WinnerModal \u7EC4\u4EF6\n// ============================================================================\n\n/**\n * WinnerModal \u4E2D\u5956\u5F39\u7A97\u7EC4\u4EF6\n *\n * \u6839\u636E\u8BBE\u8BA1\u7A3F\u5B9E\u73B0\u7684\u4E2D\u5956\u7ED3\u679C\u5C55\u793A\u5F39\u7A97,\u5305\u542B:\n * - \u534A\u900F\u660E\u906E\u7F69\u5C42\n * - \u767D\u8272\u5706\u89D2\u5361\u7247\u5BB9\u5668\n * - \u6807\u9898 \"You Have Won\"\n * - \u5956\u54C1\u540D\u79F0\n * - \u4F18\u60E0\u5238\u56FE\u7247\uFF0820% Off\uFF09\n * - \u4F18\u60E0\u7801\u548C\u8FC7\u671F\u65F6\u95F4\n * - \u786E\u8BA4\u6309\u94AE\n * - \u53F3\u4E0A\u89D2\u5173\u95ED\u6309\u94AE\n */\nexport const WinnerModal = ({\n isOpen,\n prize,\n title = 'You Have Won',\n prizeTitle,\n prizeImage,\n prizeDescription,\n learnMoreUrl,\n learnMoreText = 'Learn More',\n onClose,\n confirmText = 'Okay, Got It',\n onConfirm,\n className,\n couponCode,\n couponDiscount,\n couponUnit = 'Off',\n expiresAt,\n codeText = 'CODE:',\n copyText = 'COPY',\n copiedText = 'COPIED',\n onCopyCode,\n}: WinnerModalProps) => {\n // \u590D\u5236\u72B6\u6001\n const [copied, setCopied] = React.useState(false)\n const timerRef = React.useRef<NodeJS.Timeout | null>(null)\n\n React.useEffect(() => {\n return () => {\n if (timerRef.current) clearTimeout(timerRef.current)\n }\n }, [])\n\n // \u590D\u5236\u64CD\u4F5C\n const handleCopy = (code: string) => {\n if (timerRef.current) clearTimeout(timerRef.current)\n\n navigator.clipboard.writeText(code)\n if (onCopyCode) onCopyCode?.(code)\n setCopied(true)\n timerRef.current = setTimeout(() => {\n setCopied(false)\n }, 3000)\n }\n\n // \u4E0D\u663E\u793A\u5F39\u7A97\u6216\u65E0\u5956\u54C1\u6570\u636E\u65F6\u8FD4\u56DE null\n if (!isOpen || !prize) {\n return null\n }\n\n // \u786E\u8BA4\u6309\u94AE\u70B9\u51FB\u5904\u7406\n const handleConfirm = () => {\n onConfirm?.()\n onClose()\n }\n\n return (\n <BaseModal\n isOpen={isOpen}\n onClose={onClose}\n className={className}\n maxWidth=\"max-w-[326px] laptop:max-w-[420px]\"\n ariaLabelledBy=\"winner-modal-title\"\n >\n <div className=\"flex flex-col items-center px-4\">\n {/* =================================================================\n \u5F39\u7A97\u6807\u9898\n ================================================================= */}\n <div>\n <Heading size={2} className={cn('mb-1 text-center tracking-[-0.32px]')}>\n {title}\n </Heading>\n\n <p className=\"laptop:text-[16px] text-center text-[14px] font-[700] text-[#1D1D1F]\">\n {prizeTitle || prize.name}\n </p>\n\n {/* =================================================================\n Learn More \u6309\u94AE\n ================================================================= */}\n {learnMoreUrl && (\n <div className=\"laptop:mt-4 mt-3 text-center\">\n <a\n href={learnMoreUrl}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className={cn(\n 'laptop:text-[14px] text-center text-[12px]',\n 'text-blue-600 hover:text-blue-700',\n 'font-medium underline',\n 'transition-colors'\n )}\n >\n {learnMoreText}\n </a>\n </div>\n )}\n </div>\n\n {/* =================================================================\n \u5956\u54C1\u56FE\u7247\n ================================================================= */}\n\n <div className={cn('mx-auto my-4 flex items-center justify-center', 'laptop:size-[200px] size-[160px]')}>\n {(prizeImage || prize.image) && (\n <Picture\n source={prizeImage || prize?.image?.url}\n alt={prize?.image?.alt || prizeTitle || prize?.name}\n className={cn('h-auto w-full')}\n />\n )}\n </div>\n\n {/* =================================================================\n \u6298\u6263\u548C\u4F18\u60E0\u7801\u590D\u5236\n ================================================================= */}\n {(couponDiscount || couponCode) && (\n <div className=\"mb-1 flex w-full flex-col items-center\">\n {couponDiscount && (\n <span className=\"text-brand-0 mb-1 text-[16px] font-bold\">\n {couponDiscount} {couponUnit}\n </span>\n )}\n {couponCode && (\n <div className=\"laptop:text-[16px] text-brand-0 flex items-center gap-2 text-center text-[14px] font-bold\">\n <span className=\"max-w-[300px] truncate\">\n {codeText}\n {couponCode}\n </span>\n <button onClick={() => handleCopy(couponCode!)} className=\"underline\" style={{ minWidth: 60 }}>\n {copied ? copiedText : copyText}\n </button>\n </div>\n )}\n {expiresAt && <span className=\"mt-1 text-[12px] text-[#767880]\">\u6709\u6548\u671F\u81F3\uFF1A{expiresAt}</span>}\n </div>\n )}\n\n {/* =================================================================\n \u5956\u54C1\u8BE6\u60C5\u63CF\u8FF0\n ================================================================= */}\n {prizeDescription && (\n <p className={cn('laptop:text-[16px] px-4 text-center text-[14px] font-[700] text-[#767880]')}>\n {prizeDescription}\n </p>\n )}\n </div>\n\n {/* =================================================================\n \u786E\u8BA4\u6309\u94AE\n ================================================================= */}\n <div className=\"laptop:p-6 p-4\">\n <Button onClick={handleConfirm} className={cn('w-full')}>\n {confirmText}\n </Button>\n </div>\n </BaseModal>\n )\n}\n\n// ============================================================================\n// \u9ED8\u8BA4\u5BFC\u51FA\n// ============================================================================\n\nexport default WinnerModal\n"],
|
|
5
|
+
"mappings": "aAsGQ,OACE,OAAAA,EADF,QAAAC,MAAA,oBA1FR,OAAOC,MAAW,QAClB,OAAS,MAAAC,MAAU,yBAEnB,OAAS,WAAAC,EAAS,WAAAC,EAAS,UAAAC,MAAc,4BACzC,OAAS,aAAAC,MAAiB,iBAmBnB,MAAMC,EAAc,CAAC,CAC1B,OAAAC,EACA,MAAAC,EACA,MAAAC,EAAQ,eACR,WAAAC,EACA,WAAAC,EACA,iBAAAC,EACA,aAAAC,EACA,cAAAC,EAAgB,aAChB,QAAAC,EACA,YAAAC,EAAc,eACd,UAAAC,EACA,UAAAC,EACA,WAAAC,EACA,eAAAC,EACA,WAAAC,EAAa,MACb,UAAAC,EACA,SAAAC,EAAW,QACX,SAAAC,EAAW,OACX,WAAAC,EAAa,SACb,WAAAC,CACF,IAAwB,CAEtB,KAAM,CAACC,EAAQC,CAAS,EAAI5B,EAAM,SAAS,EAAK,EAC1C6B,EAAW7B,EAAM,OAA8B,IAAI,EAEzDA,EAAM,UAAU,IACP,IAAM,CACP6B,EAAS,SAAS,aAAaA,EAAS,OAAO,CACrD,EACC,CAAC,CAAC,EAGL,MAAMC,EAAcC,GAAiB,CAC/BF,EAAS,SAAS,aAAaA,EAAS,OAAO,EAEnD,UAAU,UAAU,UAAUE,CAAI,EAC9BL,GAAYA,IAAaK,CAAI,EACjCH,EAAU,EAAI,EACdC,EAAS,QAAU,WAAW,IAAM,CAClCD,EAAU,EAAK,CACjB,EAAG,GAAI,CACT,EAGA,GAAI,CAACrB,GAAU,CAACC,EACd,OAAO,KAIT,MAAMwB,EAAgB,IAAM,CAC1Bf,IAAY,EACZF,EAAQ,CACV,EAEA,OACEhB,EAACM,EAAA,CACC,OAAQE,EACR,QAASQ,EACT,UAAWG,EACX,SAAS,qCACT,eAAe,qBAEf,UAAAnB,EAAC,OAAI,UAAU,kCAIb,UAAAA,EAAC,OACC,UAAAD,EAACK,EAAA,CAAQ,KAAM,EAAG,UAAWF,EAAG,qCAAqC,EAClE,SAAAQ,EACH,EAEAX,EAAC,KAAE,UAAU,uEACV,SAAAY,GAAcF,EAAM,KACvB,EAKCK,GACCf,EAAC,OAAI,UAAU,+BACb,SAAAA,EAAC,KACC,KAAMe,EACN,OAAO,SACP,IAAI,sBACJ,UAAWZ,EACT,6CACA,oCACA,wBACA,mBACF,EAEC,SAAAa,EACH,EACF,GAEJ,EAMAhB,EAAC,OAAI,UAAWG,EAAG,gDAAiD,kCAAkC,EAClG,UAAAU,GAAcH,EAAM,QACpBV,EAACI,EAAA,CACC,OAAQS,GAAcH,GAAO,OAAO,IACpC,IAAKA,GAAO,OAAO,KAAOE,GAAcF,GAAO,KAC/C,UAAWP,EAAG,eAAe,EAC/B,EAEJ,GAKEmB,GAAkBD,IAClBpB,EAAC,OAAI,UAAU,yCACZ,UAAAqB,GACCrB,EAAC,QAAK,UAAU,0CACb,UAAAqB,EAAe,IAAEC,GACpB,EAEDF,GACCpB,EAAC,OAAI,UAAU,4FACb,UAAAA,EAAC,QAAK,UAAU,yBACb,UAAAwB,EACAJ,GACH,EACArB,EAAC,UAAO,QAAS,IAAMgC,EAAWX,CAAW,EAAG,UAAU,YAAY,MAAO,CAAE,SAAU,EAAG,EACzF,SAAAQ,EAASF,EAAaD,EACzB,GACF,EAEDF,GAAavB,EAAC,QAAK,UAAU,kCAAkC,2CAAMuB,GAAU,GAClF,EAMDV,GACCd,EAAC,KAAE,UAAWG,EAAG,2EAA2E,EACzF,SAAAW,EACH,GAEJ,EAKAd,EAAC,OAAI,UAAU,iBACb,SAAAA,EAACM,EAAA,CAAO,QAAS4B,EAAe,UAAW/B,EAAG,QAAQ,EACnD,SAAAe,EACH,EACF,GACF,CAEJ,EAMA,IAAOiB,EAAQ3B",
|
|
6
|
+
"names": ["jsx", "jsxs", "React", "cn", "Picture", "Heading", "Button", "BaseModal", "WinnerModal", "isOpen", "prize", "title", "prizeTitle", "prizeImage", "prizeDescription", "learnMoreUrl", "learnMoreText", "onClose", "confirmText", "onConfirm", "className", "couponCode", "couponDiscount", "couponUnit", "expiresAt", "codeText", "copyText", "copiedText", "onCopyCode", "copied", "setCopied", "timerRef", "handleCopy", "code", "handleConfirm", "WinnerModal_default"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WheelLottery - 大转盘抽奖组件
|
|
3
|
+
*
|
|
4
|
+
* 用于营销活动的交互式抽奖转盘,支持多品牌主题和响应式布局。
|
|
5
|
+
*
|
|
6
|
+
* @module WheelLottery
|
|
7
|
+
* @date 2025-12-17
|
|
8
|
+
*/
|
|
9
|
+
import React from 'react';
|
|
10
|
+
import type { WheelLotteryProps, WheelLotteryHandle } from './types.js';
|
|
11
|
+
/**
|
|
12
|
+
* WheelLottery 组件
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```tsx
|
|
16
|
+
* // 基础使用
|
|
17
|
+
* <WheelLottery
|
|
18
|
+
* prizes={prizes}
|
|
19
|
+
* winningPrizeId="prize-003"
|
|
20
|
+
* onSpinEnd={(prize) => alert(`You won ${prize.name}`)}
|
|
21
|
+
* />
|
|
22
|
+
*
|
|
23
|
+
* // 使用 ref 控制弹窗
|
|
24
|
+
* const lotteryRef = useRef<WheelLotteryHandle>(null)
|
|
25
|
+
*
|
|
26
|
+
* <WheelLottery ref={lotteryRef} prizes={prizes} />
|
|
27
|
+
*
|
|
28
|
+
* // 外部触发弹窗
|
|
29
|
+
* lotteryRef.current?.showError({
|
|
30
|
+
* title: 'Error',
|
|
31
|
+
* message: 'Something went wrong'
|
|
32
|
+
* })
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
export declare const WheelLottery: React.ForwardRefExoticComponent<WheelLotteryProps & React.RefAttributes<WheelLotteryHandle>>;
|
|
36
|
+
declare const _default: React.ForwardRefExoticComponent<Omit<WheelLotteryProps & React.RefAttributes<WheelLotteryHandle> & {
|
|
37
|
+
style?: string | React.CSSProperties;
|
|
38
|
+
container?: import("../../shared/Styles.js").ContainerProps["container"];
|
|
39
|
+
}, "ref"> & React.RefAttributes<any>>;
|
|
40
|
+
export default _default;
|
|
41
|
+
export { WinnerModal } from './WinnerModal.js';
|
|
42
|
+
export { RulesModal } from './RulesModal.js';
|
|
43
|
+
export { MyRewardsModal } from './MyRewardsModal.js';
|
|
44
|
+
export { ErrorModal } from './ErrorModal.js';
|
|
45
|
+
export { ShareModal } from './ShareModal.js';
|
|
46
|
+
export { BaseModal } from './BaseModal.js';
|
|
47
|
+
export type { WheelLotteryProps, WheelLotteryHandle, Prize, ChanceMethod, ChanceMethodStatus, WinningInfo, WheelProps, PrizePoolProps, ChanceMethodsProps, WinnerModalProps, WinnerModalConfig, UserData, ShareModalConfig, SocialPlatform, SharePlatformConfig, } from './types.js';
|
|
48
|
+
export type { RulesModalProps, RuleItem } from './RulesModal.js';
|
|
49
|
+
export type { MyRewardsModalProps, Reward, RewardStatus } from './MyRewardsModal.js';
|
|
50
|
+
export type { ErrorModalProps } from './ErrorModal.js';
|
|
51
|
+
export type { ShareModalProps } from './ShareModal.js';
|
|
52
|
+
export type { BaseModalProps } from './BaseModal.js';
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use client";import{jsx as t,jsxs as f}from"react/jsx-runtime";import{useState as o,useCallback as C,useRef as De,useEffect as H,useImperativeHandle as Le,forwardRef as Fe}from"react";import{cn as u}from"../../helpers/index.js";import{DEFAULT_WHEEL_CONFIG as k,DEFAULT_CHANCE_METHODS as Be,INITIAL_WHEEL_STATE as Oe}from"./types.js";import{Grid as Ue,GridItem as G}from"../../components/grid.js";import{Wheel as je}from"./Wheel.js";import{PrizePool as He}from"./PrizePool.js";import{ChanceMethods as Ge}from"./ChanceMethods.js";import{WinnerModal as _e}from"./WinnerModal.js";import{RulesModal as Ke}from"./RulesModal.js";import{MyRewardsModal as $e}from"./MyRewardsModal.js";import{ErrorModal as _}from"./ErrorModal.js";import{ShareModal as Ye}from"./ShareModal.js";import{withLayout as Ve}from"../../shared/Styles.js";const K=Fe(({prizes:l,theme:c,winningPrizeId:E,spinDuration:A=k.spinDuration,easing:qe=k.easing,wheelBackgroundImage:$,pointerImage:Y,chanceMethods:D=Be,chanceTitle:V=k.chanceTitle,chanceSubtitle:q,chanceFooterNote:J,winningInfos:Q=[],onSpinStart:P,onSpinEnd:S,onSpinError:z,winnerModalConfig:s,rulesModalConfig:X={},myRewardsModalConfig:Z={},errorModalConfig:m={},shareModalConfig:h={},userData:a,loginPromptText:Je="Please log in to participate",onLoginRequired:R,noChancesText:L="You have no chances left",onCopyCode:ee,opportunitiesText:F=["Number of draws remaining today:"],className:te},oe)=>{const{rulesData:N,rulesText:se="Rules"}=X,{rewardsData:v,myRewardsText:re="My Rewards",codeText:ne="CODE:",copyText:ie="COPY",prizeText:ae="Prize time:"}=Z,[r,p]=o(Oe),[le,x]=o(!1),[pe,w]=o(!1),[de,g]=o(!1),[ce,y]=o(!1),[fe,M]=o(!1),[me,W]=o(!1),[ue,B]=o(""),[he,xe]=o(),[we,ge]=o(),[ye,Me]=o(),[We,be]=o(),[Te,Ee]=o(),[n,Pe]=o(),T=De(null);Le(oe,()=>({showError:({message:e,title:i,confirmText:b})=>{B(e),xe(i),ge(b),y(!0)},hideError:()=>{y(!1)},showNoWin:e=>{Me(e?.title),be(e?.message),Ee(e?.confirmText),M(!0)},hideNoWin:()=>{M(!1)},showWinner:(e,i)=>{p(b=>({...b,winningPrize:e})),Pe(i),x(!0)},hideWinner:()=>{x(!1)},showRules:()=>{w(!0)},hideRules:()=>{w(!1)},showRewards:()=>{g(!0)},hideRewards:()=>{g(!1)},showShare:()=>{W(!0)},hideShare:()=>{W(!1)},hideAllModals:()=>{x(!1),w(!1),g(!1),y(!1),M(!1),W(!1)}}),[]),H(()=>{},[l,E]),H(()=>()=>{T.current!==null&&cancelAnimationFrame(T.current)},[]);const Se=C(async()=>{if(!r.isSpinning){if(!a?.isLoggedIn){R?.();return}if(a.availableChances<=0){z?.(new Error(L));return}p(e=>({...e,isSpinning:!0,isButtonDisabled:!0}));try{let e=E;P&&(e=await P());const i=l.find(d=>d.prizeKey===e)||l[0],b=l.findIndex(d=>d.prizeKey===i.prizeKey),Ne=360/l.length,ve=b*Ne,O=3*360+(360-ve);await new Promise(d=>setTimeout(d,1500)),p(d=>({...d,isFinished:!0,currentRotation:0}));const Ie=Date.now(),U=()=>{const Ce=Date.now()-Ie,j=Math.min(Ce/A,1),ke=1-Math.pow(1-j,3),Ae=O*ke;p(I=>({...I,currentRotation:Ae})),j<1?T.current=requestAnimationFrame(U):(p(I=>({...I,isSpinning:!1,isButtonDisabled:!0,winningPrize:i,currentRotation:O})),S?S?.(i):setTimeout(()=>{i.prizeKey==="try-again"?M(!0):x(!0)},500))};T.current=requestAnimationFrame(U)}catch(e){p(i=>({...i,isSpinning:!1,isButtonDisabled:!1})),B(e.message||"An error occurred"),y(!0),z?.(e),console.error("\u62BD\u5956\u63A5\u53E3\u8C03\u7528\u5931\u8D25:",e)}}},[r.isSpinning,l,E,A,P,S,z,a,R,L]),ze=C(()=>{x(!1),p(e=>({...e,isButtonDisabled:!1,isFinished:!1}))},[]),Re=C(()=>{M(!1),p(e=>({...e,isButtonDisabled:!1,isFinished:!1}))},[]);return f("div",{className:u("wheel-lottery-container","w-full",c==="dark"?"aiui-dark":"",te),children:[f("div",{role:"status","aria-live":"polite","aria-atomic":"true",className:"sr-only",children:[r.isSpinning&&"\u62BD\u5956\u8FDB\u884C\u4E2D...",r.winningPrize&&!r.isSpinning&&`\u5DF2\u4E2D\u5956: ${r.winningPrize.name}`]}),f(Ue,{className:u("wheel-lottery-main","tablet:mb-4 mb-3"),children:[t(G,{span:7,className:u("wheel-section","relative flex h-[200px] w-full flex-1 items-center justify-center overflow-hidden","rounded-box","lg-desktop:aspect-w-[964] lg-desktop:aspect-h-[480]","desktop:aspect-w-[759] desktop:aspect-h-[384]","laptop:aspect-w-[516] laptop:aspect-h-[288]","l-tablet:col-span-12",c==="dark"?"bg-[#1E2024]":"bg-[#EAEAEC]"),children:f("div",{className:u(" w-full px-[16px] pt-[16px]","lg-desktop:pb-[32px] lg-desktop:px-[32px] desktop:pt-[24px] desktop:px-[24px] laptop:pt-[16px] laptop:px-[16px] tablet:px-[32px]","l-tablet:absolute l-tablet:top-0"),children:[f("div",{className:"mb-2 flex w-full flex-wrap items-center justify-between gap-3",children:[f("p",{className:"text-info-primary font-[700]",children:[F?.[0],t("span",{className:"text-[#FF6B35]",children:a?.availableChances||0}),F?.[1]||""]}),f("div",{className:"flex items-center gap-4",children:[N&&t("button",{onClick:()=>w(!0),children:t("span",{className:"text-info-primary font-[700] underline ",children:se})}),v&&t("button",{onClick:()=>g(!0),children:t("span",{className:"text-info-primary font-[700] underline ",children:re})})]})]}),t(je,{theme:c,prizes:l,rotation:r.currentRotation,isSpinning:r.isSpinning,isFinished:r.isFinished,isButtonDisabled:r.isButtonDisabled||!!a?.isLoggedIn&&(a?.availableChances||0)<=0,userData:a,onGoClick:a?.isLoggedIn?Se:R,wheelBackgroundImage:$,pointerImage:Y})]})}),D.length>0&&t(G,{span:5,className:u("info-section","rounded-box","relative flex flex-col overflow-hidden","lg-desktop:aspect-w-[684] lg-desktop:aspect-h-[480]","desktop:aspect-w-[536] desktop:aspect-h-[384]","laptop:aspect-w-[364] laptop:aspect-h-[288]","max-h-[320px] w-full","l-tablet:col-span-12",c==="dark"?"bg-[#1E2024]":"bg-[#EAEAEC]"),children:t(Ge,{theme:c,userData:a,methods:D,title:V,subtitle:q,footerNote:J,onOpenShareModal:()=>W(!0)})})]}),t("div",{className:u("wheel-lottery-footer","rounded-box","flex flex-col overflow-hidden",c==="dark"?"bg-[#1E2024]":"bg-[#EAEAEC]"),children:t(He,{theme:c,prizes:l,winningInfos:Q})}),t(_e,{isOpen:le,prize:r.winningPrize,title:n?.title||s?.title,prizeTitle:n?.prizeTitle||s?.prizeTitle,prizeImage:n?.prizeImage||s?.prizeImage,prizeDescription:n?.prizeDescription||s?.prizeDescription,learnMoreUrl:n?.learnMoreUrl||s?.learnMoreUrl,learnMoreText:n?.learnMoreText||s?.learnMoreText,couponCode:n?.couponCode||s?.couponCode,expiresAt:n?.expiresAt||s?.expiresAt,couponDiscount:n?.couponDiscount||s?.couponDiscount,couponUnit:n?.couponUnit||s?.couponUnit,confirmText:n?.confirmText||s?.confirmText,onClose:ze}),N&&t(Ke,{isOpen:pe,onClose:()=>w(!1),rules:N}),v&&t($e,{isOpen:de,onClose:()=>g(!1),rewards:v,onCopyCode:ee,codeText:ne,copyText:ie,prizeText:ae}),t(_,{isOpen:ce,onClose:()=>y(!1),title:he||m?.title,message:ue||m?.message,confirmText:we||m?.confirmText}),t(_,{isOpen:fe,onClose:Re,title:ye||m?.title,message:We||m?.message,confirmText:Te||m?.confirmText}),t(Ye,{isOpen:me,onClose:()=>W(!1),title:h?.title,subtitle:h?.subtitle,note:h?.note,platforms:h?.platforms,onShareSuccess:h?.onShareSuccess})]})});K.displayName="WheelLottery";var ft=Ve(K);import{WinnerModal as ht}from"./WinnerModal.js";import{RulesModal as wt}from"./RulesModal.js";import{MyRewardsModal as yt}from"./MyRewardsModal.js";import{ErrorModal as Wt}from"./ErrorModal.js";import{ShareModal as Tt}from"./ShareModal.js";import{BaseModal as Pt}from"./BaseModal.js";export{Pt as BaseModal,Wt as ErrorModal,yt as MyRewardsModal,wt as RulesModal,Tt as ShareModal,K as WheelLottery,ht as WinnerModal,ft as default};
|
|
2
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/biz-components/WheelLottery/index.tsx"],
|
|
4
|
+
"sourcesContent": ["/**\n * WheelLottery - \u5927\u8F6C\u76D8\u62BD\u5956\u7EC4\u4EF6\n *\n * \u7528\u4E8E\u8425\u9500\u6D3B\u52A8\u7684\u4EA4\u4E92\u5F0F\u62BD\u5956\u8F6C\u76D8\uFF0C\u652F\u6301\u591A\u54C1\u724C\u4E3B\u9898\u548C\u54CD\u5E94\u5F0F\u5E03\u5C40\u3002\n *\n * @module WheelLottery\n * @date 2025-12-17\n */\n\n'use client'\n\nimport React, { useState, useCallback, useRef, useEffect, useImperativeHandle, forwardRef } from 'react'\nimport { cn } from '../../helpers/index.js'\nimport { DEFAULT_WHEEL_CONFIG, DEFAULT_CHANCE_METHODS, INITIAL_WHEEL_STATE } from './types.js'\nimport { Grid, GridItem } from '../../components/grid.js'\nimport { Wheel } from './Wheel.js'\nimport { PrizePool } from './PrizePool.js'\nimport { ChanceMethods } from './ChanceMethods.js'\nimport { WinnerModal } from './WinnerModal.js'\nimport { RulesModal } from './RulesModal.js'\nimport { MyRewardsModal } from './MyRewardsModal.js'\nimport { ErrorModal } from './ErrorModal.js'\nimport { ShareModal } from './ShareModal.js'\nimport { withLayout } from '../../shared/Styles.js'\n\nimport type { WheelLotteryProps, WheelState, WheelLotteryHandle, WinnerModalConfig } from './types.js'\n\n// ============================================================================\n// \u4E3B\u7EC4\u4EF6\n// ============================================================================\n\n/**\n * WheelLottery \u7EC4\u4EF6\n *\n * @example\n * ```tsx\n * // \u57FA\u7840\u4F7F\u7528\n * <WheelLottery\n * prizes={prizes}\n * winningPrizeId=\"prize-003\"\n * onSpinEnd={(prize) => alert(`You won ${prize.name}`)}\n * />\n *\n * // \u4F7F\u7528 ref \u63A7\u5236\u5F39\u7A97\n * const lotteryRef = useRef<WheelLotteryHandle>(null)\n *\n * <WheelLottery ref={lotteryRef} prizes={prizes} />\n *\n * // \u5916\u90E8\u89E6\u53D1\u5F39\u7A97\n * lotteryRef.current?.showError({\n * title: 'Error',\n * message: 'Something went wrong'\n * })\n * ```\n */\nexport const WheelLottery = forwardRef<WheelLotteryHandle, WheelLotteryProps>(\n (\n {\n prizes,\n theme,\n winningPrizeId,\n spinDuration = DEFAULT_WHEEL_CONFIG.spinDuration,\n easing = DEFAULT_WHEEL_CONFIG.easing,\n wheelBackgroundImage,\n pointerImage,\n chanceMethods = DEFAULT_CHANCE_METHODS,\n chanceTitle = DEFAULT_WHEEL_CONFIG.chanceTitle,\n chanceSubtitle,\n chanceFooterNote,\n winningInfos = [],\n onSpinStart,\n onSpinEnd,\n onSpinError,\n winnerModalConfig,\n rulesModalConfig = {},\n myRewardsModalConfig = {},\n errorModalConfig = {},\n shareModalConfig = {},\n userData,\n loginPromptText = 'Please log in to participate',\n onLoginRequired,\n noChancesText = 'You have no chances left',\n onCopyCode,\n opportunitiesText = ['Number of draws remaining today:'],\n className,\n },\n ref\n ) => {\n const { rulesData, rulesText = 'Rules' } = rulesModalConfig\n const {\n rewardsData,\n myRewardsText = 'My Rewards',\n codeText = 'CODE:',\n copyText = 'COPY',\n prizeText = 'Prize time:',\n } = myRewardsModalConfig\n // ==========================================================================\n // State \u7BA1\u7406\n // ==========================================================================\n\n const [wheelState, setWheelState] = useState<WheelState>(INITIAL_WHEEL_STATE)\n const [showWinnerModal, setShowWinnerModal] = useState(false)\n const [showRulesModal, setShowRulesModal] = useState(false)\n const [showRewardsModal, setShowRewardsModal] = useState(false)\n const [showErrorModal, setShowErrorModal] = useState(false)\n const [showNoWinModal, setShowNoWinModal] = useState(false)\n const [showShareModal, setShowShareModal] = useState(false)\n const [errorMessage, setErrorMessage] = useState('')\n const [errorTitle, setErrorTitle] = useState<string | undefined>()\n const [errorConfirmText, setErrorConfirmText] = useState<string | undefined>()\n const [noWinTitle, setNoWinTitle] = useState<string | undefined>()\n const [noWinMessage, setNoWinMessage] = useState<string | undefined>()\n const [noWinConfirmText, setNoWinConfirmText] = useState<string | undefined>()\n const [externalWinnerConfig, setExternalWinnerConfig] = useState<Partial<WinnerModalConfig> | undefined>()\n const animationRef = useRef<number | null>(null)\n\n // ==========================================================================\n // Imperative Handle - \u66B4\u9732\u65B9\u6CD5\u7ED9\u7236\u7EC4\u4EF6\n // ==========================================================================\n\n useImperativeHandle(\n ref,\n () => ({\n showError: ({ message, title, confirmText }) => {\n setErrorMessage(message)\n setErrorTitle(title)\n setErrorConfirmText(confirmText)\n setShowErrorModal(true)\n },\n hideError: () => {\n setShowErrorModal(false)\n },\n showNoWin: config => {\n setNoWinTitle(config?.title)\n setNoWinMessage(config?.message)\n setNoWinConfirmText(config?.confirmText)\n setShowNoWinModal(true)\n },\n hideNoWin: () => {\n setShowNoWinModal(false)\n },\n showWinner: (prize, config) => {\n setWheelState(prev => ({ ...prev, winningPrize: prize }))\n setExternalWinnerConfig(config)\n setShowWinnerModal(true)\n },\n hideWinner: () => {\n setShowWinnerModal(false)\n },\n showRules: () => {\n setShowRulesModal(true)\n },\n hideRules: () => {\n setShowRulesModal(false)\n },\n showRewards: () => {\n setShowRewardsModal(true)\n },\n hideRewards: () => {\n setShowRewardsModal(false)\n },\n showShare: () => {\n setShowShareModal(true)\n },\n hideShare: () => {\n setShowShareModal(false)\n },\n hideAllModals: () => {\n setShowWinnerModal(false)\n setShowRulesModal(false)\n setShowRewardsModal(false)\n setShowErrorModal(false)\n setShowNoWinModal(false)\n setShowShareModal(false)\n },\n }),\n []\n )\n\n // ==========================================================================\n // Props \u9A8C\u8BC1\uFF08\u5F00\u53D1\u73AF\u5883\uFF09\n // ==========================================================================\n\n useEffect(() => {\n if (process.env.NODE_ENV === 'development' && prizes) {\n if (prizes.length !== 8) {\n console.warn(\n `WheelLottery expects exactly 8 prizes, got ${prizes.length}. The component may not render correctly.`\n )\n }\n\n if (winningPrizeId && !prizes.find(p => p.prizeKey === winningPrizeId)) {\n console.warn(`WheelLottery: winningPrizeId \"${winningPrizeId}\" not found in prizes array.`)\n }\n }\n }, [prizes, winningPrizeId])\n\n // ==========================================================================\n // \u6E05\u7406\u52A8\u753B\n // ==========================================================================\n\n useEffect(() => {\n return () => {\n // \u7EC4\u4EF6\u5378\u8F7D\u65F6\u53D6\u6D88\u52A8\u753B\u5E27\n if (animationRef.current !== null) {\n cancelAnimationFrame(animationRef.current)\n }\n }\n }, [])\n\n // ==========================================================================\n // \u62BD\u5956\u903B\u8F91\n // ==========================================================================\n\n /**\n * \u5F00\u59CB\u62BD\u5956 - \u652F\u6301\u5F02\u6B65\u63A5\u53E3\u8C03\u7528\n * \u5229\u7528\u521D\u59CB\u6162\u901F\u65CB\u8F6C\uFF0C\u70B9\u51FB\u540E\u8FDB\u5165\u5FEB\u901F\u65CB\u8F6C\u72B6\u6001\uFF0C\u63A5\u53E3\u8FD4\u56DE\u540E\u51CF\u901F\u505C\u6B62\n */\n const handleSpinStart = useCallback(async () => {\n if (wheelState.isSpinning) return\n\n // \u68C0\u67E5\u7528\u6237\u662F\u5426\u5DF2\u767B\u5F55\n if (!userData?.isLoggedIn) {\n onLoginRequired?.()\n return\n }\n\n // \u68C0\u67E5\u7528\u6237\u662F\u5426\u6709\u5269\u4F59\u6B21\u6570\n if (userData.availableChances <= 0) {\n // \u53EF\u4EE5\u901A\u8FC7 onSpinError \u56DE\u8C03\u901A\u77E5\u7236\u7EC4\u4EF6\n onSpinError?.(new Error(noChancesText))\n return\n }\n\n // \u8FDB\u5165\u5FEB\u901F\u65CB\u8F6C\u72B6\u6001\uFF08\u521D\u59CB\u6162\u901F\u65CB\u8F6C\u4F1A\u81EA\u52A8\u53D8\u4E3A\u5FEB\u901F\u65CB\u8F6C\uFF09\n setWheelState(prev => ({\n ...prev,\n isSpinning: true,\n isButtonDisabled: true,\n }))\n\n try {\n // \u8C03\u7528\u5916\u90E8\u63A5\u53E3\u83B7\u53D6\u4E2D\u5956\u7ED3\u679C\n let finalWinningPrizeId = winningPrizeId\n\n if (onSpinStart) {\n // \u7B49\u5F85\u63A5\u53E3\u8FD4\u56DE\u4E2D\u5956 ID\uFF08\u63A5\u53E3\u65F6\u95F4\u4E0D\u56FA\u5B9A\uFF0C1-30s\uFF09\n // \u5728\u6B64\u671F\u95F4\uFF0C\u8F6C\u76D8\u4F1A\u4FDD\u6301\u5FEB\u901F\u65CB\u8F6C\uFF08\u7531 CSS \u52A8\u753B\u63A7\u5236\uFF09\n finalWinningPrizeId = await onSpinStart()\n }\n\n // \u786E\u5B9A\u4E2D\u5956\u5956\u54C1\n const winningPrize = prizes.find(p => p.prizeKey === finalWinningPrizeId) || prizes[0]\n const winningIndex = prizes.findIndex(p => p.prizeKey === winningPrize.prizeKey)\n\n // \u8BA1\u7B97\u76EE\u6807\u89D2\u5EA6\n const degreesPerPrize = 360 / prizes.length\n const basePrizeAngle = winningIndex * degreesPerPrize\n // \u81F3\u5C11\u65CB\u8F6C 3 \u5708\uFF081080\u5EA6\uFF09+ \u76EE\u6807\u89D2\u5EA6\n const minRotations = 3\n const targetAngle = minRotations * 360 + (360 - basePrizeAngle)\n\n // \u63A5\u53E3\u8FD4\u56DE\u540E\uFF0C\u7B49\u5F85 1.5s \u518D\u5F00\u59CB\u505C\u6B62\u52A8\u753B\n await new Promise(resolve => setTimeout(resolve, 1500))\n\n // \u7ACB\u5373\u8FDB\u5165\u51CF\u901F\u72B6\u6001\uFF0C\u505C\u6B62 CSS \u5FAA\u73AF\u52A8\u753B\n setWheelState(prev => ({\n ...prev,\n isFinished: true,\n currentRotation: 0, // \u4ECE 0 \u5EA6\u5F00\u59CB\u51CF\u901F\u52A8\u753B\n }))\n\n // \u5F00\u59CB\u505C\u6B62\u65CB\u8F6C\u52A8\u753B\n const startTime = Date.now()\n\n const animate = () => {\n const now = Date.now()\n const elapsed = now - startTime\n const progress = Math.min(elapsed / spinDuration, 1)\n\n // \u5E94\u7528 ease-out \u7F13\u52A8\u51FD\u6570\n const eased = 1 - Math.pow(1 - progress, 3)\n\n // \u8BA1\u7B97\u5F53\u524D\u65CB\u8F6C\u89D2\u5EA6\n const currentRotation = targetAngle * eased\n\n // \u66F4\u65B0\u72B6\u6001\n setWheelState(prev => ({\n ...prev,\n currentRotation,\n }))\n\n // \u7EE7\u7EED\u52A8\u753B\u6216\u7ED3\u675F\n if (progress < 1) {\n animationRef.current = requestAnimationFrame(animate)\n } else {\n // \u52A8\u753B\u7ED3\u675F - \u4FDD\u6301\u6309\u94AE\u7981\u7528\u72B6\u6001,\u76F4\u5230\u5F39\u7A97\u5173\u95ED\n setWheelState(prev => ({\n ...prev,\n isSpinning: false,\n isButtonDisabled: true,\n winningPrize,\n currentRotation: targetAngle,\n }))\n\n // \u5EF6\u8FDF\u663E\u793A\u5F39\u7A97\uFF08500ms\u540E\uFF09\n if (onSpinEnd) {\n onSpinEnd?.(winningPrize)\n } else {\n setTimeout(() => {\n // \u68C0\u67E5\u662F\u5426\u672A\u4E2D\u5956\uFF08try-again\uFF09\n if (winningPrize.prizeKey === 'try-again') {\n // \u672A\u4E2D\u5956\uFF0C\u663E\u793A ErrorModal\n setShowNoWinModal(true)\n } else {\n // \u4E2D\u5956\uFF0C\u663E\u793A WinnerModal\n setShowWinnerModal(true)\n }\n }, 500)\n }\n }\n }\n\n // \u542F\u52A8\u505C\u6B62\u52A8\u753B\n animationRef.current = requestAnimationFrame(animate)\n } catch (error) {\n // \u63A5\u53E3\u62A5\u9519\uFF0C\u6062\u590D\u5230\u521D\u59CB\u6162\u901F\u65CB\u8F6C\u72B6\u6001\n setWheelState(prev => ({\n ...prev,\n isSpinning: false,\n isButtonDisabled: false,\n }))\n\n // \u663E\u793A\u9519\u8BEF\u5F39\u7A97\n setErrorMessage((error as Error).message || 'An error occurred')\n setShowErrorModal(true)\n\n // \u89E6\u53D1\u9519\u8BEF\u56DE\u8C03\n onSpinError?.(error as Error)\n\n console.error('\u62BD\u5956\u63A5\u53E3\u8C03\u7528\u5931\u8D25:', error)\n }\n }, [\n wheelState.isSpinning,\n prizes,\n winningPrizeId,\n spinDuration,\n onSpinStart,\n onSpinEnd,\n onSpinError,\n userData,\n onLoginRequired,\n noChancesText,\n ])\n\n // ==========================================================================\n // \u5F39\u7A97\u5173\u95ED\u5904\u7406\n // ==========================================================================\n\n /**\n * \u5173\u95ED\u4E2D\u5956\u5F39\u7A97\u5E76\u91CD\u7F6E\u8F6C\u76D8\u72B6\u6001\n */\n const handleCloseWinnerModal = useCallback(() => {\n setShowWinnerModal(false)\n // \u91CD\u7F6E\u8F6C\u76D8\u72B6\u6001,\u5141\u8BB8\u4E0B\u6B21\u62BD\u5956\n setWheelState(prev => ({\n ...prev,\n isButtonDisabled: false,\n isFinished: false, // \u91CD\u7F6E\u4E3A\u672A\u5B8C\u6210,\u6062\u590D\u521D\u59CB\u65CB\u8F6C\u52A8\u753B\n }))\n }, [])\n\n /**\n * \u5173\u95ED\u672A\u4E2D\u5956\u5F39\u7A97\u5E76\u91CD\u7F6E\u8F6C\u76D8\u72B6\u6001\n */\n const handleCloseNoWinModal = useCallback(() => {\n setShowNoWinModal(false)\n // \u91CD\u7F6E\u8F6C\u76D8\u72B6\u6001,\u5141\u8BB8\u4E0B\u6B21\u62BD\u5956\n setWheelState(prev => ({\n ...prev,\n isButtonDisabled: false,\n isFinished: false, // \u91CD\u7F6E\u4E3A\u672A\u5B8C\u6210,\u6062\u590D\u521D\u59CB\u65CB\u8F6C\u52A8\u753B\n }))\n }, [])\n\n // ==========================================================================\n // \u6E32\u67D3\n // ==========================================================================\n\n return (\n <div className={cn('wheel-lottery-container', 'w-full', theme === 'dark' ? 'aiui-dark' : '', className)}>\n {/* ARIA Live Region - \u5C4F\u5E55\u9605\u8BFB\u5668\u72B6\u6001\u64AD\u62A5 */}\n <div role=\"status\" aria-live=\"polite\" aria-atomic=\"true\" className=\"sr-only\">\n {wheelState.isSpinning && '\u62BD\u5956\u8FDB\u884C\u4E2D...'}\n {wheelState.winningPrize && !wheelState.isSpinning && `\u5DF2\u4E2D\u5956: ${wheelState.winningPrize.name}`}\n </div>\n\n {/* \u4E3B\u5185\u5BB9\u533A - \u54CD\u5E94\u5F0F\u4E24\u680F/\u5355\u680F\u5E03\u5C40 */}\n <Grid className={cn('wheel-lottery-main', 'tablet:mb-4 mb-3')}>\n {/* \u5DE6\u4FA7\uFF1A\u8F6C\u76D8\u533A\u57DF */}\n <GridItem\n span={7}\n className={cn(\n 'wheel-section',\n 'relative flex h-[200px] w-full flex-1 items-center justify-center overflow-hidden',\n 'rounded-box',\n 'lg-desktop:aspect-w-[964] lg-desktop:aspect-h-[480]',\n 'desktop:aspect-w-[759] desktop:aspect-h-[384]',\n 'laptop:aspect-w-[516] laptop:aspect-h-[288]',\n 'l-tablet:col-span-12',\n theme === 'dark' ? 'bg-[#1E2024]' : 'bg-[#EAEAEC]'\n )}\n >\n <div\n className={cn(\n ' w-full px-[16px] pt-[16px]',\n 'lg-desktop:pb-[32px] lg-desktop:px-[32px] desktop:pt-[24px] desktop:px-[24px] laptop:pt-[16px] laptop:px-[16px] tablet:px-[32px]',\n 'l-tablet:absolute l-tablet:top-0'\n )}\n >\n {/* \u9876\u90E8\u4FE1\u606F\u680F\uFF1A\u5DE6\u4FA7\u673A\u4F1A\u8FDB\u5EA6\uFF0C\u53F3\u4FA7\u94FE\u63A5 */}\n <div className=\"mb-2 flex w-full flex-wrap items-center justify-between gap-3\">\n {/* \u5DE6\u4FA7\uFF1A\u673A\u4F1A\u5C55\u793A */}\n <p className=\"text-info-primary font-[700]\">\n {opportunitiesText?.[0]}\n <span className=\"text-[#FF6B35]\">{userData?.availableChances || 0}</span>\n {opportunitiesText?.[1] || ''}\n </p>\n {/* \u53F3\u4FA7\uFF1ARules \u548C My Rewards \u6309\u94AE */}\n <div className=\"flex items-center gap-4\">\n {rulesData && (\n <button onClick={() => setShowRulesModal(true)}>\n <span className=\"text-info-primary font-[700] underline \">{rulesText}</span>\n </button>\n )}\n {rewardsData && (\n <button onClick={() => setShowRewardsModal(true)}>\n <span className=\"text-info-primary font-[700] underline \">{myRewardsText}</span>\n </button>\n )}\n </div>\n </div>\n {/* \u8F6C\u76D8\u7EC4\u4EF6 */}\n <Wheel\n theme={theme}\n prizes={prizes}\n rotation={wheelState.currentRotation}\n isSpinning={wheelState.isSpinning}\n isFinished={wheelState.isFinished}\n isButtonDisabled={\n wheelState.isButtonDisabled || (!!userData?.isLoggedIn && (userData?.availableChances || 0) <= 0)\n }\n userData={userData}\n onGoClick={userData?.isLoggedIn ? handleSpinStart : onLoginRequired}\n wheelBackgroundImage={wheelBackgroundImage}\n pointerImage={pointerImage}\n />\n </div>\n </GridItem>\n\n {/* \u53F3\u4FA7\uFF1A\u83B7\u53D6\u673A\u4F1A\u533A\u57DF */}\n {chanceMethods.length > 0 && (\n <GridItem\n span={5}\n className={cn(\n 'info-section',\n 'rounded-box',\n 'relative flex flex-col overflow-hidden',\n 'lg-desktop:aspect-w-[684] lg-desktop:aspect-h-[480]',\n 'desktop:aspect-w-[536] desktop:aspect-h-[384]',\n 'laptop:aspect-w-[364] laptop:aspect-h-[288]',\n 'max-h-[320px] w-full',\n 'l-tablet:col-span-12',\n theme === 'dark' ? 'bg-[#1E2024]' : 'bg-[#EAEAEC]'\n )}\n >\n <ChanceMethods\n theme={theme}\n userData={userData}\n methods={chanceMethods}\n title={chanceTitle}\n subtitle={chanceSubtitle}\n footerNote={chanceFooterNote}\n onOpenShareModal={() => setShowShareModal(true)}\n />\n </GridItem>\n )}\n </Grid>\n\n {/* \u5E95\u90E8\u533A\u57DF\uFF1A\u5956\u54C1\u6C60(\u5305\u542B\u4E2D\u5956\u4EBA\u540D\u5355) */}\n <div\n className={cn(\n 'wheel-lottery-footer',\n 'rounded-box',\n 'flex flex-col overflow-hidden',\n theme === 'dark' ? 'bg-[#1E2024]' : 'bg-[#EAEAEC]'\n )}\n >\n {/* \u5956\u54C1\u6C60(\u5305\u542B\u4E2D\u5956\u4EBA\u540D\u5355\u81EA\u52A8\u6EDA\u52A8) */}\n <PrizePool theme={theme} prizes={prizes} winningInfos={winningInfos} />\n </div>\n\n {/* \u4E2D\u5956\u5F39\u7A97 */}\n <WinnerModal\n isOpen={showWinnerModal}\n prize={wheelState.winningPrize}\n title={externalWinnerConfig?.title || winnerModalConfig?.title}\n prizeTitle={externalWinnerConfig?.prizeTitle || winnerModalConfig?.prizeTitle}\n prizeImage={externalWinnerConfig?.prizeImage || winnerModalConfig?.prizeImage}\n prizeDescription={externalWinnerConfig?.prizeDescription || winnerModalConfig?.prizeDescription}\n learnMoreUrl={externalWinnerConfig?.learnMoreUrl || winnerModalConfig?.learnMoreUrl}\n learnMoreText={externalWinnerConfig?.learnMoreText || winnerModalConfig?.learnMoreText}\n couponCode={externalWinnerConfig?.couponCode || winnerModalConfig?.couponCode}\n expiresAt={externalWinnerConfig?.expiresAt || winnerModalConfig?.expiresAt}\n couponDiscount={externalWinnerConfig?.couponDiscount || winnerModalConfig?.couponDiscount}\n couponUnit={externalWinnerConfig?.couponUnit || winnerModalConfig?.couponUnit}\n confirmText={externalWinnerConfig?.confirmText || winnerModalConfig?.confirmText}\n onClose={handleCloseWinnerModal}\n />\n\n {/* Rules \u5F39\u7A97 */}\n {rulesData && <RulesModal isOpen={showRulesModal} onClose={() => setShowRulesModal(false)} rules={rulesData} />}\n\n {/* My Rewards \u5F39\u7A97 */}\n {rewardsData && (\n <MyRewardsModal\n isOpen={showRewardsModal}\n onClose={() => setShowRewardsModal(false)}\n rewards={rewardsData}\n onCopyCode={onCopyCode}\n codeText={codeText}\n copyText={copyText}\n prizeText={prizeText}\n />\n )}\n\n {/* \u9519\u8BEF\u5F39\u7A97 */}\n <ErrorModal\n isOpen={showErrorModal}\n onClose={() => setShowErrorModal(false)}\n title={errorTitle || errorModalConfig?.title}\n message={errorMessage || errorModalConfig?.message}\n confirmText={errorConfirmText || errorModalConfig?.confirmText}\n />\n\n {/* \u672A\u4E2D\u5956\u5F39\u7A97 */}\n <ErrorModal\n isOpen={showNoWinModal}\n onClose={handleCloseNoWinModal}\n title={noWinTitle || errorModalConfig?.title}\n message={noWinMessage || errorModalConfig?.message}\n confirmText={noWinConfirmText || errorModalConfig?.confirmText}\n />\n\n {/* \u5206\u4EAB\u5F39\u7A97 */}\n <ShareModal\n isOpen={showShareModal}\n onClose={() => setShowShareModal(false)}\n title={shareModalConfig?.title}\n subtitle={shareModalConfig?.subtitle}\n note={shareModalConfig?.note}\n platforms={shareModalConfig?.platforms}\n onShareSuccess={shareModalConfig?.onShareSuccess}\n />\n </div>\n )\n }\n)\n\n// \u8BBE\u7F6E displayName \u7528\u4E8E\u8C03\u8BD5\nWheelLottery.displayName = 'WheelLottery'\n\n// ============================================================================\n// \u5BFC\u51FA\n// ============================================================================\n\nexport default withLayout(WheelLottery)\nexport { WinnerModal } from './WinnerModal.js'\nexport { RulesModal } from './RulesModal.js'\nexport { MyRewardsModal } from './MyRewardsModal.js'\nexport { ErrorModal } from './ErrorModal.js'\nexport { ShareModal } from './ShareModal.js'\nexport { BaseModal } from './BaseModal.js'\nexport type {\n WheelLotteryProps,\n WheelLotteryHandle,\n Prize,\n ChanceMethod,\n ChanceMethodStatus,\n WinningInfo,\n WheelProps,\n PrizePoolProps,\n ChanceMethodsProps,\n WinnerModalProps,\n WinnerModalConfig,\n UserData,\n ShareModalConfig,\n SocialPlatform,\n SharePlatformConfig,\n} from './types.js'\nexport type { RulesModalProps, RuleItem } from './RulesModal.js'\nexport type { MyRewardsModalProps, Reward, RewardStatus } from './MyRewardsModal.js'\nexport type { ErrorModalProps } from './ErrorModal.js'\nexport type { ShareModalProps } from './ShareModal.js'\nexport type { BaseModalProps } from './BaseModal.js'\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["jsx", "jsxs", "useState", "useCallback", "useRef", "useEffect", "useImperativeHandle", "forwardRef", "cn", "DEFAULT_WHEEL_CONFIG", "DEFAULT_CHANCE_METHODS", "INITIAL_WHEEL_STATE", "Grid", "GridItem", "Wheel", "PrizePool", "ChanceMethods", "WinnerModal", "RulesModal", "MyRewardsModal", "ErrorModal", "ShareModal", "withLayout", "WheelLottery", "prizes", "theme", "winningPrizeId", "spinDuration", "easing", "wheelBackgroundImage", "pointerImage", "chanceMethods", "chanceTitle", "chanceSubtitle", "chanceFooterNote", "winningInfos", "onSpinStart", "onSpinEnd", "onSpinError", "winnerModalConfig", "rulesModalConfig", "myRewardsModalConfig", "errorModalConfig", "shareModalConfig", "userData", "loginPromptText", "onLoginRequired", "noChancesText", "onCopyCode", "opportunitiesText", "className", "ref", "rulesData", "rulesText", "rewardsData", "myRewardsText", "codeText", "copyText", "prizeText", "wheelState", "setWheelState", "showWinnerModal", "setShowWinnerModal", "showRulesModal", "setShowRulesModal", "showRewardsModal", "setShowRewardsModal", "showErrorModal", "setShowErrorModal", "showNoWinModal", "setShowNoWinModal", "showShareModal", "setShowShareModal", "errorMessage", "setErrorMessage", "errorTitle", "setErrorTitle", "errorConfirmText", "setErrorConfirmText", "noWinTitle", "setNoWinTitle", "noWinMessage", "setNoWinMessage", "noWinConfirmText", "setNoWinConfirmText", "externalWinnerConfig", "setExternalWinnerConfig", "animationRef", "message", "title", "confirmText", "config", "prize", "prev", "handleSpinStart", "finalWinningPrizeId", "winningPrize", "p", "winningIndex", "degreesPerPrize", "basePrizeAngle", "targetAngle", "resolve", "startTime", "animate", "elapsed", "progress", "eased", "currentRotation", "error", "handleCloseWinnerModal", "handleCloseNoWinModal", "WheelLottery_default", "BaseModal"]
|
|
7
|
+
}
|