@anker-in/headless-ui 1.1.33 → 1.1.34-alpha.1768461697532

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (856) hide show
  1. package/dist/cjs/biz-components/AccordionCards/index.d.ts +3 -3
  2. package/dist/cjs/biz-components/ActiveShelf/index.d.ts +222 -0
  3. package/dist/cjs/biz-components/ActiveShelf/index.js +2 -0
  4. package/dist/cjs/biz-components/ActiveShelf/index.js.map +7 -0
  5. package/dist/cjs/biz-components/ActiveShelf/types.d.ts +22 -0
  6. package/dist/cjs/biz-components/ActiveShelf/types.js +2 -0
  7. package/dist/cjs/biz-components/ActiveShelf/types.js.map +7 -0
  8. package/dist/cjs/biz-components/AiuiProvider/index.d.ts +7 -0
  9. package/dist/cjs/biz-components/AiuiProvider/index.js +1 -1
  10. package/dist/cjs/biz-components/AiuiProvider/index.js.map +2 -2
  11. package/dist/cjs/biz-components/AnchorNavigation/index.d.ts +42 -0
  12. package/dist/cjs/biz-components/AnchorNavigation/index.js +2 -0
  13. package/dist/cjs/biz-components/AnchorNavigation/index.js.map +7 -0
  14. package/dist/cjs/biz-components/AnchorNavigation/useAnchorPosition.d.ts +2 -0
  15. package/dist/cjs/biz-components/AnchorNavigation/useAnchorPosition.js +2 -0
  16. package/dist/cjs/biz-components/AnchorNavigation/useAnchorPosition.js.map +7 -0
  17. package/dist/cjs/biz-components/AplusDesc/index.d.ts +3 -3
  18. package/dist/cjs/biz-components/BrandCardLink/BrandCardLink.d.ts +3 -3
  19. package/dist/cjs/biz-components/BrandCardLink/BrandCardLink.js +1 -1
  20. package/dist/cjs/biz-components/BrandCardLink/BrandCardLink.js.map +1 -1
  21. package/dist/cjs/biz-components/BrandEquity/BrandEquity.d.ts +3 -3
  22. package/dist/cjs/biz-components/BrandEquity/BrandEquity.js +1 -1
  23. package/dist/cjs/biz-components/BrandEquity/BrandEquity.js.map +3 -3
  24. package/dist/cjs/biz-components/BrandEquity/types.d.ts +1 -0
  25. package/dist/cjs/biz-components/BrandEquity/types.js +1 -1
  26. package/dist/cjs/biz-components/BrandEquity/types.js.map +1 -1
  27. package/dist/cjs/biz-components/BuyOneGetOneShelf/ProductCard.d.ts +74 -0
  28. package/dist/cjs/biz-components/BuyOneGetOneShelf/ProductCard.js +2 -0
  29. package/dist/cjs/biz-components/BuyOneGetOneShelf/ProductCard.js.map +7 -0
  30. package/dist/cjs/biz-components/BuyOneGetOneShelf/hooks/useBogoDataTransform.d.ts +36 -0
  31. package/dist/cjs/biz-components/BuyOneGetOneShelf/hooks/useBogoDataTransform.js +2 -0
  32. package/dist/cjs/biz-components/BuyOneGetOneShelf/hooks/useBogoDataTransform.js.map +7 -0
  33. package/dist/cjs/biz-components/BuyOneGetOneShelf/index.d.ts +193 -0
  34. package/dist/cjs/biz-components/BuyOneGetOneShelf/index.js +2 -0
  35. package/dist/cjs/biz-components/BuyOneGetOneShelf/index.js.map +7 -0
  36. package/dist/cjs/biz-components/Category/index.d.ts +3 -3
  37. package/dist/cjs/biz-components/CreativeModule/index.d.ts +3 -3
  38. package/dist/cjs/biz-components/DownLoad/index.d.ts +3 -3
  39. package/dist/cjs/biz-components/Evaluate/index.d.ts +3 -3
  40. package/dist/cjs/biz-components/EventSchedule/index.d.ts +63 -0
  41. package/dist/cjs/biz-components/EventSchedule/index.js +2 -0
  42. package/dist/cjs/biz-components/EventSchedule/index.js.map +7 -0
  43. package/dist/cjs/biz-components/Faq/Faq.d.ts +3 -3
  44. package/dist/cjs/biz-components/FeatureCards/FeatureCards.d.ts +3 -3
  45. package/dist/cjs/biz-components/FeatureShowcase/FeatureShowcase.d.ts +3 -3
  46. package/dist/cjs/biz-components/Features/index.d.ts +3 -3
  47. package/dist/cjs/biz-components/FootCharger/index.d.ts +3 -3
  48. package/dist/cjs/biz-components/FooterNavigation/index.d.ts +3 -3
  49. package/dist/cjs/biz-components/GiftBox/index.d.ts +3 -3
  50. package/dist/cjs/biz-components/Graphic/index.d.ts +3 -3
  51. package/dist/cjs/biz-components/GraphicAttractionBlock/index.d.ts +3 -3
  52. package/dist/cjs/biz-components/GraphicMore/index.d.ts +3 -3
  53. package/dist/cjs/biz-components/GraphicOverlay/GraphicOverlay.d.ts +3 -3
  54. package/dist/cjs/biz-components/HeaderNavigation/MobileSidebarMenu.js +1 -1
  55. package/dist/cjs/biz-components/HeaderNavigation/MobileSidebarMenu.js.map +3 -3
  56. package/dist/cjs/biz-components/HeaderNavigation/SidebarDropdown.js +1 -1
  57. package/dist/cjs/biz-components/HeaderNavigation/SidebarDropdown.js.map +2 -2
  58. package/dist/cjs/biz-components/HeaderNavigation/index.d.ts +3 -3
  59. package/dist/cjs/biz-components/HeroBanner/Countdown.js +1 -1
  60. package/dist/cjs/biz-components/HeroBanner/Countdown.js.map +2 -2
  61. package/dist/cjs/biz-components/HeroBanner/HeroBanner.d.ts +6 -3
  62. package/dist/cjs/biz-components/HeroBanner/HeroBanner.js +1 -1
  63. package/dist/cjs/biz-components/HeroBanner/HeroBanner.js.map +3 -3
  64. package/dist/cjs/biz-components/IPRedirect/RegionBanner.d.ts +37 -0
  65. package/dist/cjs/biz-components/IPRedirect/RegionBanner.js +60 -0
  66. package/dist/cjs/biz-components/IPRedirect/RegionBanner.js.map +7 -0
  67. package/dist/cjs/biz-components/IPRedirect/RegionSelectorModal.d.ts +47 -0
  68. package/dist/cjs/biz-components/IPRedirect/RegionSelectorModal.js +69 -0
  69. package/dist/cjs/biz-components/IPRedirect/RegionSelectorModal.js.map +7 -0
  70. package/dist/cjs/biz-components/IPRedirect/index.d.ts +9 -0
  71. package/dist/cjs/biz-components/IPRedirect/index.js +2 -0
  72. package/dist/cjs/biz-components/IPRedirect/index.js.map +7 -0
  73. package/dist/cjs/biz-components/IPRedirect/type.d.ts +36 -0
  74. package/dist/cjs/biz-components/IPRedirect/type.js +2 -0
  75. package/dist/cjs/biz-components/IPRedirect/type.js.map +7 -0
  76. package/dist/cjs/biz-components/IPRedirect/useAutoRedirect.d.ts +66 -0
  77. package/dist/cjs/biz-components/IPRedirect/useAutoRedirect.js +2 -0
  78. package/dist/cjs/biz-components/IPRedirect/useAutoRedirect.js.map +7 -0
  79. package/dist/cjs/biz-components/IPRedirect/useDetectedRegionRedirect.d.ts +51 -0
  80. package/dist/cjs/biz-components/IPRedirect/useDetectedRegionRedirect.js +2 -0
  81. package/dist/cjs/biz-components/IPRedirect/useDetectedRegionRedirect.js.map +7 -0
  82. package/dist/cjs/biz-components/IPRedirect/useIPRedirect.d.ts +42 -0
  83. package/dist/cjs/biz-components/IPRedirect/useIPRedirect.js +2 -0
  84. package/dist/cjs/biz-components/IPRedirect/useIPRedirect.js.map +7 -0
  85. package/dist/cjs/biz-components/IPRedirect/useRedirectBanner.d.ts +108 -0
  86. package/dist/cjs/biz-components/IPRedirect/useRedirectBanner.js +2 -0
  87. package/dist/cjs/biz-components/IPRedirect/useRedirectBanner.js.map +7 -0
  88. package/dist/cjs/biz-components/IPRedirect/useRegionRedirectManager.d.ts +152 -0
  89. package/dist/cjs/biz-components/IPRedirect/useRegionRedirectManager.js +2 -0
  90. package/dist/cjs/biz-components/IPRedirect/useRegionRedirectManager.js.map +7 -0
  91. package/dist/cjs/biz-components/IPRedirect/useSavedRegionRedirect.d.ts +51 -0
  92. package/dist/cjs/biz-components/IPRedirect/useSavedRegionRedirect.js +2 -0
  93. package/dist/cjs/biz-components/IPRedirect/useSavedRegionRedirect.js.map +7 -0
  94. package/dist/cjs/biz-components/IPRedirect/utils.d.ts +222 -0
  95. package/dist/cjs/biz-components/IPRedirect/utils.js +2 -0
  96. package/dist/cjs/biz-components/IPRedirect/utils.js.map +7 -0
  97. package/dist/cjs/biz-components/ImageOverlayShelf/index.d.ts +130 -0
  98. package/dist/cjs/biz-components/ImageOverlayShelf/index.js +2 -0
  99. package/dist/cjs/biz-components/ImageOverlayShelf/index.js.map +7 -0
  100. package/dist/cjs/biz-components/ImageTextFeature/ImageTextFeature.d.ts +3 -3
  101. package/dist/cjs/biz-components/ImageTextFeature/ImageTextFeature.js +1 -1
  102. package/dist/cjs/biz-components/ImageTextFeature/ImageTextFeature.js.map +3 -3
  103. package/dist/cjs/biz-components/ImageWithText/ImageWithText.d.ts +3 -3
  104. package/dist/cjs/biz-components/Ksp/index.d.ts +3 -3
  105. package/dist/cjs/biz-components/Listing/components/PaidShipping/index.d.ts +4 -4
  106. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/BenefitsTab.d.ts +3 -3
  107. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductBundle/index.d.ts +3 -3
  108. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductExchangePurchase/index.d.ts +3 -3
  109. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductFreeGift/index.d.ts +3 -3
  110. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductHighlight/index.d.ts +3 -3
  111. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductOptions/index.d.ts +3 -3
  112. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGallery/index.d.ts +3 -3
  113. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductSummary/index.d.ts +3 -3
  114. package/dist/cjs/biz-components/Listing/components/PurchaseBar/index.d.ts +3 -3
  115. package/dist/cjs/biz-components/Marquee/Marquee.d.ts +3 -3
  116. package/dist/cjs/biz-components/Marquee/Marquee.js +1 -1
  117. package/dist/cjs/biz-components/Marquee/Marquee.js.map +3 -3
  118. package/dist/cjs/biz-components/MarqueeReview/index.d.ts +3 -3
  119. package/dist/cjs/biz-components/Media/index.d.ts +32 -0
  120. package/dist/cjs/biz-components/Media/index.js +2 -0
  121. package/dist/cjs/biz-components/Media/index.js.map +7 -0
  122. package/dist/cjs/biz-components/MediaPlayerBase/index.d.ts +3 -3
  123. package/dist/cjs/biz-components/MediaPlayerMulti/index.d.ts +3 -3
  124. package/dist/cjs/biz-components/MediaPlayerSticky/index.d.ts +4 -4
  125. package/dist/cjs/biz-components/MediaPlayerSticky/types.d.ts +1 -0
  126. package/dist/cjs/biz-components/MediaPlayerSticky/types.js +1 -1
  127. package/dist/cjs/biz-components/MediaPlayerSticky/types.js.map +1 -1
  128. package/dist/cjs/biz-components/MediaSceneSwitcher/MediaSceneSwitcher.d.ts +3 -3
  129. package/dist/cjs/biz-components/MediaShelf/index.d.ts +216 -0
  130. package/dist/cjs/biz-components/MediaShelf/index.js +2 -0
  131. package/dist/cjs/biz-components/MediaShelf/index.js.map +7 -0
  132. package/dist/cjs/biz-components/MediaShelf/types.d.ts +22 -0
  133. package/dist/cjs/biz-components/MediaShelf/types.js +2 -0
  134. package/dist/cjs/biz-components/MediaShelf/types.js.map +7 -0
  135. package/dist/cjs/biz-components/MemberEquity/index.d.ts +3 -3
  136. package/dist/cjs/biz-components/MiniCart/index.d.ts +88 -0
  137. package/dist/cjs/biz-components/MiniCart/index.js +2 -0
  138. package/dist/cjs/biz-components/MiniCart/index.js.map +7 -0
  139. package/dist/cjs/biz-components/MultiLayoutGraphicBlock/MultiLayoutGraphicBlock.d.ts +3 -3
  140. package/dist/cjs/biz-components/ProductCompare/index.d.ts +3 -3
  141. package/dist/cjs/biz-components/ProductHero/ProductHero.d.ts +3 -3
  142. package/dist/cjs/biz-components/ProductNav/ProductNav.d.ts +3 -3
  143. package/dist/cjs/biz-components/PromotionalBar/index.d.ts +49 -0
  144. package/dist/cjs/biz-components/PromotionalBar/index.js +2 -0
  145. package/dist/cjs/biz-components/PromotionalBar/index.js.map +7 -0
  146. package/dist/cjs/biz-components/SecondaryBanner/index.d.ts +69 -0
  147. package/dist/cjs/biz-components/SecondaryBanner/index.js +2 -0
  148. package/dist/cjs/biz-components/SecondaryBanner/index.js.map +7 -0
  149. package/dist/cjs/biz-components/SelectStore/index.d.ts +3 -3
  150. package/dist/cjs/biz-components/ShelfDisplay/index.d.ts +3 -3
  151. package/dist/cjs/biz-components/ShelfDisplay/shelfDisplay.d.ts +0 -11
  152. package/dist/cjs/biz-components/ShelfDisplay/shelfDisplay.js +1 -1
  153. package/dist/cjs/biz-components/ShelfDisplay/shelfDisplay.js.map +3 -3
  154. package/dist/cjs/biz-components/Slogan/index.d.ts +3 -3
  155. package/dist/cjs/biz-components/Spacer/index.d.ts +3 -3
  156. package/dist/cjs/biz-components/Specs/index.d.ts +3 -3
  157. package/dist/cjs/biz-components/Specs/index.js +1 -1
  158. package/dist/cjs/biz-components/Specs/index.js.map +2 -2
  159. package/dist/cjs/biz-components/SpecsComparison/SpecsComparison.d.ts +3 -3
  160. package/dist/cjs/biz-components/TabWithImage/TabWithImage.d.ts +3 -3
  161. package/dist/cjs/biz-components/Tabs/Tabs.d.ts +3 -3
  162. package/dist/cjs/biz-components/TabsGroup/index.d.ts +3 -3
  163. package/dist/cjs/biz-components/TabsWithMedia/TabsWithMedia.d.ts +3 -3
  164. package/dist/cjs/biz-components/ThreeDCarousel/ThreeDCarousel.d.ts +3 -3
  165. package/dist/cjs/biz-components/Title/Countdown.d.ts +14 -0
  166. package/dist/cjs/biz-components/Title/Countdown.js +2 -0
  167. package/dist/cjs/biz-components/Title/Countdown.js.map +7 -0
  168. package/dist/cjs/biz-components/Title/index.d.ts +3 -3
  169. package/dist/cjs/biz-components/Title/index.js +1 -1
  170. package/dist/cjs/biz-components/Title/index.js.map +3 -3
  171. package/dist/cjs/biz-components/Title/types.d.ts +55 -0
  172. package/dist/cjs/biz-components/Title/types.js +1 -1
  173. package/dist/cjs/biz-components/Title/types.js.map +1 -1
  174. package/dist/cjs/biz-components/VideoFeature/VideoFeature.d.ts +3 -3
  175. package/dist/cjs/biz-components/WheelLottery/BaseModal.d.ts +55 -0
  176. package/dist/cjs/biz-components/WheelLottery/BaseModal.js +12 -0
  177. package/dist/cjs/biz-components/WheelLottery/BaseModal.js.map +7 -0
  178. package/dist/cjs/biz-components/WheelLottery/ChanceMethods.d.ts +30 -0
  179. package/dist/cjs/biz-components/WheelLottery/ChanceMethods.js +2 -0
  180. package/dist/cjs/biz-components/WheelLottery/ChanceMethods.js.map +7 -0
  181. package/dist/cjs/biz-components/WheelLottery/ErrorModal.d.ts +42 -0
  182. package/dist/cjs/biz-components/WheelLottery/ErrorModal.js +2 -0
  183. package/dist/cjs/biz-components/WheelLottery/ErrorModal.js.map +7 -0
  184. package/dist/cjs/biz-components/WheelLottery/MyRewardsModal.d.ts +91 -0
  185. package/dist/cjs/biz-components/WheelLottery/MyRewardsModal.js +2 -0
  186. package/dist/cjs/biz-components/WheelLottery/MyRewardsModal.js.map +7 -0
  187. package/dist/cjs/biz-components/WheelLottery/PrizePool.d.ts +26 -0
  188. package/dist/cjs/biz-components/WheelLottery/PrizePool.js +2 -0
  189. package/dist/cjs/biz-components/WheelLottery/PrizePool.js.map +7 -0
  190. package/dist/cjs/biz-components/WheelLottery/RulesModal.d.ts +43 -0
  191. package/dist/cjs/biz-components/WheelLottery/RulesModal.js +2 -0
  192. package/dist/cjs/biz-components/WheelLottery/RulesModal.js.map +7 -0
  193. package/dist/cjs/biz-components/WheelLottery/ShareModal.d.ts +74 -0
  194. package/dist/cjs/biz-components/WheelLottery/ShareModal.js +2 -0
  195. package/dist/cjs/biz-components/WheelLottery/ShareModal.js.map +7 -0
  196. package/dist/cjs/biz-components/WheelLottery/Wheel.d.ts +27 -0
  197. package/dist/cjs/biz-components/WheelLottery/Wheel.js +2 -0
  198. package/dist/cjs/biz-components/WheelLottery/Wheel.js.map +7 -0
  199. package/dist/cjs/biz-components/WheelLottery/WinnerModal.d.ts +25 -0
  200. package/dist/cjs/biz-components/WheelLottery/WinnerModal.js +2 -0
  201. package/dist/cjs/biz-components/WheelLottery/WinnerModal.js.map +7 -0
  202. package/dist/cjs/biz-components/WheelLottery/index.d.ts +52 -0
  203. package/dist/cjs/biz-components/WheelLottery/index.js +2 -0
  204. package/dist/cjs/biz-components/WheelLottery/index.js.map +7 -0
  205. package/dist/cjs/biz-components/WheelLottery/types.d.ts +1193 -0
  206. package/dist/cjs/biz-components/WheelLottery/types.js +2 -0
  207. package/dist/cjs/biz-components/WheelLottery/types.js.map +7 -0
  208. package/dist/cjs/biz-components/WhyChoose/WhyChoose.d.ts +3 -3
  209. package/dist/cjs/biz-components/index.d.ts +30 -2
  210. package/dist/cjs/biz-components/index.js +1 -1
  211. package/dist/cjs/biz-components/index.js.map +3 -3
  212. package/dist/cjs/components/badge.js +1 -1
  213. package/dist/cjs/components/badge.js.map +2 -2
  214. package/dist/cjs/components/index.d.ts +2 -0
  215. package/dist/cjs/components/index.js +1 -1
  216. package/dist/cjs/components/index.js.map +3 -3
  217. package/dist/cjs/components/paginator.d.ts +12 -0
  218. package/dist/cjs/components/paginator.js +7 -0
  219. package/dist/cjs/components/paginator.js.map +7 -0
  220. package/dist/cjs/components/progress.d.ts +46 -0
  221. package/dist/cjs/components/progress.js +2 -0
  222. package/dist/cjs/components/progress.js.map +7 -0
  223. package/dist/cjs/components/tabs.d.ts +2 -1
  224. package/dist/cjs/components/tabs.js +1 -1
  225. package/dist/cjs/components/tabs.js.map +2 -2
  226. package/dist/cjs/helpers/index.d.ts +1 -0
  227. package/dist/cjs/helpers/index.js +1 -1
  228. package/dist/cjs/helpers/index.js.map +3 -3
  229. package/dist/cjs/helpers/priceFormatting.d.ts +11 -0
  230. package/dist/cjs/helpers/priceFormatting.js +2 -0
  231. package/dist/cjs/helpers/priceFormatting.js.map +7 -0
  232. package/dist/cjs/shared/Styles.d.ts +5 -4
  233. package/dist/cjs/shared/Styles.js +1 -1
  234. package/dist/cjs/shared/Styles.js.map +3 -3
  235. package/dist/cjs/types/props.d.ts +0 -3
  236. package/dist/cjs/types/props.js +1 -1
  237. package/dist/cjs/types/props.js.map +1 -1
  238. package/dist/esm/biz-components/AccordionCards/index.d.ts +3 -3
  239. package/dist/esm/biz-components/ActiveShelf/index.d.ts +222 -0
  240. package/dist/esm/biz-components/ActiveShelf/index.js +2 -0
  241. package/dist/esm/biz-components/ActiveShelf/index.js.map +7 -0
  242. package/dist/esm/biz-components/ActiveShelf/types.d.ts +22 -0
  243. package/dist/esm/biz-components/ActiveShelf/types.js +1 -0
  244. package/dist/esm/biz-components/ActiveShelf/types.js.map +7 -0
  245. package/dist/esm/biz-components/AiuiProvider/index.d.ts +7 -0
  246. package/dist/esm/biz-components/AiuiProvider/index.js +1 -1
  247. package/dist/esm/biz-components/AiuiProvider/index.js.map +2 -2
  248. package/dist/esm/biz-components/AnchorNavigation/index.d.ts +42 -0
  249. package/dist/esm/biz-components/AnchorNavigation/index.js +2 -0
  250. package/dist/esm/biz-components/AnchorNavigation/index.js.map +7 -0
  251. package/dist/esm/biz-components/AnchorNavigation/useAnchorPosition.d.ts +2 -0
  252. package/dist/esm/biz-components/AnchorNavigation/useAnchorPosition.js +2 -0
  253. package/dist/esm/biz-components/AnchorNavigation/useAnchorPosition.js.map +7 -0
  254. package/dist/esm/biz-components/AplusDesc/index.d.ts +3 -3
  255. package/dist/esm/biz-components/BrandCardLink/BrandCardLink.d.ts +3 -3
  256. package/dist/esm/biz-components/BrandCardLink/BrandCardLink.js +1 -1
  257. package/dist/esm/biz-components/BrandCardLink/BrandCardLink.js.map +1 -1
  258. package/dist/esm/biz-components/BrandEquity/BrandEquity.d.ts +3 -3
  259. package/dist/esm/biz-components/BrandEquity/BrandEquity.js +1 -1
  260. package/dist/esm/biz-components/BrandEquity/BrandEquity.js.map +3 -3
  261. package/dist/esm/biz-components/BrandEquity/types.d.ts +1 -0
  262. package/dist/esm/biz-components/BuyOneGetOneShelf/ProductCard.d.ts +74 -0
  263. package/dist/esm/biz-components/BuyOneGetOneShelf/ProductCard.js +2 -0
  264. package/dist/esm/biz-components/BuyOneGetOneShelf/ProductCard.js.map +7 -0
  265. package/dist/esm/biz-components/BuyOneGetOneShelf/hooks/useBogoDataTransform.d.ts +36 -0
  266. package/dist/esm/biz-components/BuyOneGetOneShelf/hooks/useBogoDataTransform.js +2 -0
  267. package/dist/esm/biz-components/BuyOneGetOneShelf/hooks/useBogoDataTransform.js.map +7 -0
  268. package/dist/esm/biz-components/BuyOneGetOneShelf/index.d.ts +193 -0
  269. package/dist/esm/biz-components/BuyOneGetOneShelf/index.js +2 -0
  270. package/dist/esm/biz-components/BuyOneGetOneShelf/index.js.map +7 -0
  271. package/dist/esm/biz-components/Category/index.d.ts +3 -3
  272. package/dist/esm/biz-components/CreativeModule/index.d.ts +3 -3
  273. package/dist/esm/biz-components/DownLoad/index.d.ts +3 -3
  274. package/dist/esm/biz-components/Evaluate/index.d.ts +3 -3
  275. package/dist/esm/biz-components/EventSchedule/index.d.ts +63 -0
  276. package/dist/esm/biz-components/EventSchedule/index.js +2 -0
  277. package/dist/esm/biz-components/EventSchedule/index.js.map +7 -0
  278. package/dist/esm/biz-components/Faq/Faq.d.ts +3 -3
  279. package/dist/esm/biz-components/FeatureCards/FeatureCards.d.ts +3 -3
  280. package/dist/esm/biz-components/FeatureShowcase/FeatureShowcase.d.ts +3 -3
  281. package/dist/esm/biz-components/Features/index.d.ts +3 -3
  282. package/dist/esm/biz-components/FootCharger/index.d.ts +3 -3
  283. package/dist/esm/biz-components/FooterNavigation/index.d.ts +3 -3
  284. package/dist/esm/biz-components/GiftBox/index.d.ts +3 -3
  285. package/dist/esm/biz-components/Graphic/index.d.ts +3 -3
  286. package/dist/esm/biz-components/GraphicAttractionBlock/index.d.ts +3 -3
  287. package/dist/esm/biz-components/GraphicMore/index.d.ts +3 -3
  288. package/dist/esm/biz-components/GraphicOverlay/GraphicOverlay.d.ts +3 -3
  289. package/dist/esm/biz-components/HeaderNavigation/MobileSidebarMenu.js +1 -1
  290. package/dist/esm/biz-components/HeaderNavigation/MobileSidebarMenu.js.map +3 -3
  291. package/dist/esm/biz-components/HeaderNavigation/SidebarDropdown.js +1 -1
  292. package/dist/esm/biz-components/HeaderNavigation/SidebarDropdown.js.map +2 -2
  293. package/dist/esm/biz-components/HeaderNavigation/index.d.ts +3 -3
  294. package/dist/esm/biz-components/HeroBanner/Countdown.js +1 -1
  295. package/dist/esm/biz-components/HeroBanner/Countdown.js.map +2 -2
  296. package/dist/esm/biz-components/HeroBanner/HeroBanner.d.ts +6 -3
  297. package/dist/esm/biz-components/HeroBanner/HeroBanner.js +1 -1
  298. package/dist/esm/biz-components/HeroBanner/HeroBanner.js.map +3 -3
  299. package/dist/esm/biz-components/IPRedirect/RegionBanner.d.ts +37 -0
  300. package/dist/esm/biz-components/IPRedirect/RegionBanner.js +60 -0
  301. package/dist/esm/biz-components/IPRedirect/RegionBanner.js.map +7 -0
  302. package/dist/esm/biz-components/IPRedirect/RegionSelectorModal.d.ts +47 -0
  303. package/dist/esm/biz-components/IPRedirect/RegionSelectorModal.js +69 -0
  304. package/dist/esm/biz-components/IPRedirect/RegionSelectorModal.js.map +7 -0
  305. package/dist/esm/biz-components/IPRedirect/index.d.ts +9 -0
  306. package/dist/esm/biz-components/IPRedirect/index.js +2 -0
  307. package/dist/esm/biz-components/IPRedirect/index.js.map +7 -0
  308. package/dist/esm/biz-components/IPRedirect/type.d.ts +36 -0
  309. package/dist/esm/biz-components/IPRedirect/type.js +1 -0
  310. package/dist/esm/biz-components/IPRedirect/type.js.map +7 -0
  311. package/dist/esm/biz-components/IPRedirect/useAutoRedirect.d.ts +66 -0
  312. package/dist/esm/biz-components/IPRedirect/useAutoRedirect.js +2 -0
  313. package/dist/esm/biz-components/IPRedirect/useAutoRedirect.js.map +7 -0
  314. package/dist/esm/biz-components/IPRedirect/useDetectedRegionRedirect.d.ts +51 -0
  315. package/dist/esm/biz-components/IPRedirect/useDetectedRegionRedirect.js +2 -0
  316. package/dist/esm/biz-components/IPRedirect/useDetectedRegionRedirect.js.map +7 -0
  317. package/dist/esm/biz-components/IPRedirect/useIPRedirect.d.ts +42 -0
  318. package/dist/esm/biz-components/IPRedirect/useIPRedirect.js +2 -0
  319. package/dist/esm/biz-components/IPRedirect/useIPRedirect.js.map +7 -0
  320. package/dist/esm/biz-components/IPRedirect/useRedirectBanner.d.ts +108 -0
  321. package/dist/esm/biz-components/IPRedirect/useRedirectBanner.js +2 -0
  322. package/dist/esm/biz-components/IPRedirect/useRedirectBanner.js.map +7 -0
  323. package/dist/esm/biz-components/IPRedirect/useRegionRedirectManager.d.ts +152 -0
  324. package/dist/esm/biz-components/IPRedirect/useRegionRedirectManager.js +2 -0
  325. package/dist/esm/biz-components/IPRedirect/useRegionRedirectManager.js.map +7 -0
  326. package/dist/esm/biz-components/IPRedirect/useSavedRegionRedirect.d.ts +51 -0
  327. package/dist/esm/biz-components/IPRedirect/useSavedRegionRedirect.js +2 -0
  328. package/dist/esm/biz-components/IPRedirect/useSavedRegionRedirect.js.map +7 -0
  329. package/dist/esm/biz-components/IPRedirect/utils.d.ts +222 -0
  330. package/dist/esm/biz-components/IPRedirect/utils.js +2 -0
  331. package/dist/esm/biz-components/IPRedirect/utils.js.map +7 -0
  332. package/dist/esm/biz-components/ImageOverlayShelf/index.d.ts +130 -0
  333. package/dist/esm/biz-components/ImageOverlayShelf/index.js +2 -0
  334. package/dist/esm/biz-components/ImageOverlayShelf/index.js.map +7 -0
  335. package/dist/esm/biz-components/ImageTextFeature/ImageTextFeature.d.ts +3 -3
  336. package/dist/esm/biz-components/ImageTextFeature/ImageTextFeature.js +1 -1
  337. package/dist/esm/biz-components/ImageTextFeature/ImageTextFeature.js.map +3 -3
  338. package/dist/esm/biz-components/ImageWithText/ImageWithText.d.ts +3 -3
  339. package/dist/esm/biz-components/Ksp/index.d.ts +3 -3
  340. package/dist/esm/biz-components/Listing/components/PaidShipping/index.d.ts +4 -4
  341. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/BenefitsTab.d.ts +3 -3
  342. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductBundle/index.d.ts +3 -3
  343. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductExchangePurchase/index.d.ts +3 -3
  344. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductFreeGift/index.d.ts +3 -3
  345. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductHighlight/index.d.ts +3 -3
  346. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductOptions/index.d.ts +3 -3
  347. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/index.d.ts +3 -3
  348. package/dist/esm/biz-components/Listing/components/ProductCard/ProductSummary/index.d.ts +3 -3
  349. package/dist/esm/biz-components/Listing/components/PurchaseBar/index.d.ts +3 -3
  350. package/dist/esm/biz-components/Marquee/Marquee.d.ts +3 -3
  351. package/dist/esm/biz-components/Marquee/Marquee.js +1 -1
  352. package/dist/esm/biz-components/Marquee/Marquee.js.map +3 -3
  353. package/dist/esm/biz-components/MarqueeReview/index.d.ts +3 -3
  354. package/dist/esm/biz-components/Media/index.d.ts +32 -0
  355. package/dist/esm/biz-components/Media/index.js +2 -0
  356. package/dist/esm/biz-components/Media/index.js.map +7 -0
  357. package/dist/esm/biz-components/MediaPlayerBase/index.d.ts +3 -3
  358. package/dist/esm/biz-components/MediaPlayerMulti/index.d.ts +3 -3
  359. package/dist/esm/biz-components/MediaPlayerSticky/index.d.ts +4 -4
  360. package/dist/esm/biz-components/MediaPlayerSticky/types.d.ts +1 -0
  361. package/dist/esm/biz-components/MediaSceneSwitcher/MediaSceneSwitcher.d.ts +3 -3
  362. package/dist/esm/biz-components/MediaShelf/index.d.ts +216 -0
  363. package/dist/esm/biz-components/MediaShelf/index.js +2 -0
  364. package/dist/esm/biz-components/MediaShelf/index.js.map +7 -0
  365. package/dist/esm/biz-components/MediaShelf/types.d.ts +22 -0
  366. package/dist/esm/biz-components/MediaShelf/types.js +1 -0
  367. package/dist/esm/biz-components/MediaShelf/types.js.map +7 -0
  368. package/dist/esm/biz-components/MemberEquity/index.d.ts +3 -3
  369. package/dist/esm/biz-components/MiniCart/index.d.ts +88 -0
  370. package/dist/esm/biz-components/MiniCart/index.js +2 -0
  371. package/dist/esm/biz-components/MiniCart/index.js.map +7 -0
  372. package/dist/esm/biz-components/MultiLayoutGraphicBlock/MultiLayoutGraphicBlock.d.ts +3 -3
  373. package/dist/esm/biz-components/ProductCompare/index.d.ts +3 -3
  374. package/dist/esm/biz-components/ProductHero/ProductHero.d.ts +3 -3
  375. package/dist/esm/biz-components/ProductNav/ProductNav.d.ts +3 -3
  376. package/dist/esm/biz-components/PromotionalBar/index.d.ts +49 -0
  377. package/dist/esm/biz-components/PromotionalBar/index.js +2 -0
  378. package/dist/esm/biz-components/PromotionalBar/index.js.map +7 -0
  379. package/dist/esm/biz-components/SecondaryBanner/index.d.ts +69 -0
  380. package/dist/esm/biz-components/SecondaryBanner/index.js +2 -0
  381. package/dist/esm/biz-components/SecondaryBanner/index.js.map +7 -0
  382. package/dist/esm/biz-components/SelectStore/index.d.ts +3 -3
  383. package/dist/esm/biz-components/ShelfDisplay/index.d.ts +3 -3
  384. package/dist/esm/biz-components/ShelfDisplay/shelfDisplay.d.ts +0 -11
  385. package/dist/esm/biz-components/ShelfDisplay/shelfDisplay.js +1 -1
  386. package/dist/esm/biz-components/ShelfDisplay/shelfDisplay.js.map +3 -3
  387. package/dist/esm/biz-components/Slogan/index.d.ts +3 -3
  388. package/dist/esm/biz-components/Spacer/index.d.ts +3 -3
  389. package/dist/esm/biz-components/Specs/index.d.ts +3 -3
  390. package/dist/esm/biz-components/Specs/index.js +1 -1
  391. package/dist/esm/biz-components/Specs/index.js.map +2 -2
  392. package/dist/esm/biz-components/SpecsComparison/SpecsComparison.d.ts +3 -3
  393. package/dist/esm/biz-components/TabWithImage/TabWithImage.d.ts +3 -3
  394. package/dist/esm/biz-components/Tabs/Tabs.d.ts +3 -3
  395. package/dist/esm/biz-components/TabsGroup/index.d.ts +3 -3
  396. package/dist/esm/biz-components/TabsWithMedia/TabsWithMedia.d.ts +3 -3
  397. package/dist/esm/biz-components/ThreeDCarousel/ThreeDCarousel.d.ts +3 -3
  398. package/dist/esm/biz-components/Title/Countdown.d.ts +14 -0
  399. package/dist/esm/biz-components/Title/Countdown.js +2 -0
  400. package/dist/esm/biz-components/Title/Countdown.js.map +7 -0
  401. package/dist/esm/biz-components/Title/index.d.ts +3 -3
  402. package/dist/esm/biz-components/Title/index.js +1 -1
  403. package/dist/esm/biz-components/Title/index.js.map +3 -3
  404. package/dist/esm/biz-components/Title/types.d.ts +55 -0
  405. package/dist/esm/biz-components/VideoFeature/VideoFeature.d.ts +3 -3
  406. package/dist/esm/biz-components/WheelLottery/BaseModal.d.ts +55 -0
  407. package/dist/esm/biz-components/WheelLottery/BaseModal.js +12 -0
  408. package/dist/esm/biz-components/WheelLottery/BaseModal.js.map +7 -0
  409. package/dist/esm/biz-components/WheelLottery/ChanceMethods.d.ts +30 -0
  410. package/dist/esm/biz-components/WheelLottery/ChanceMethods.js +2 -0
  411. package/dist/esm/biz-components/WheelLottery/ChanceMethods.js.map +7 -0
  412. package/dist/esm/biz-components/WheelLottery/ErrorModal.d.ts +42 -0
  413. package/dist/esm/biz-components/WheelLottery/ErrorModal.js +2 -0
  414. package/dist/esm/biz-components/WheelLottery/ErrorModal.js.map +7 -0
  415. package/dist/esm/biz-components/WheelLottery/MyRewardsModal.d.ts +91 -0
  416. package/dist/esm/biz-components/WheelLottery/MyRewardsModal.js +2 -0
  417. package/dist/esm/biz-components/WheelLottery/MyRewardsModal.js.map +7 -0
  418. package/dist/esm/biz-components/WheelLottery/PrizePool.d.ts +26 -0
  419. package/dist/esm/biz-components/WheelLottery/PrizePool.js +2 -0
  420. package/dist/esm/biz-components/WheelLottery/PrizePool.js.map +7 -0
  421. package/dist/esm/biz-components/WheelLottery/RulesModal.d.ts +43 -0
  422. package/dist/esm/biz-components/WheelLottery/RulesModal.js +2 -0
  423. package/dist/esm/biz-components/WheelLottery/RulesModal.js.map +7 -0
  424. package/dist/esm/biz-components/WheelLottery/ShareModal.d.ts +74 -0
  425. package/dist/esm/biz-components/WheelLottery/ShareModal.js +2 -0
  426. package/dist/esm/biz-components/WheelLottery/ShareModal.js.map +7 -0
  427. package/dist/esm/biz-components/WheelLottery/Wheel.d.ts +27 -0
  428. package/dist/esm/biz-components/WheelLottery/Wheel.js +2 -0
  429. package/dist/esm/biz-components/WheelLottery/Wheel.js.map +7 -0
  430. package/dist/esm/biz-components/WheelLottery/WinnerModal.d.ts +25 -0
  431. package/dist/esm/biz-components/WheelLottery/WinnerModal.js +2 -0
  432. package/dist/esm/biz-components/WheelLottery/WinnerModal.js.map +7 -0
  433. package/dist/esm/biz-components/WheelLottery/index.d.ts +52 -0
  434. package/dist/esm/biz-components/WheelLottery/index.js +2 -0
  435. package/dist/esm/biz-components/WheelLottery/index.js.map +7 -0
  436. package/dist/esm/biz-components/WheelLottery/types.d.ts +1193 -0
  437. package/dist/esm/biz-components/WheelLottery/types.js +2 -0
  438. package/dist/esm/biz-components/WheelLottery/types.js.map +7 -0
  439. package/dist/esm/biz-components/WhyChoose/WhyChoose.d.ts +3 -3
  440. package/dist/esm/biz-components/index.d.ts +30 -2
  441. package/dist/esm/biz-components/index.js +1 -1
  442. package/dist/esm/biz-components/index.js.map +3 -3
  443. package/dist/esm/components/badge.js +1 -1
  444. package/dist/esm/components/badge.js.map +2 -2
  445. package/dist/esm/components/index.d.ts +2 -0
  446. package/dist/esm/components/index.js +1 -1
  447. package/dist/esm/components/index.js.map +2 -2
  448. package/dist/esm/components/paginator.d.ts +12 -0
  449. package/dist/esm/components/paginator.js +7 -0
  450. package/dist/esm/components/paginator.js.map +7 -0
  451. package/dist/esm/components/progress.d.ts +46 -0
  452. package/dist/esm/components/progress.js +2 -0
  453. package/dist/esm/components/progress.js.map +7 -0
  454. package/dist/esm/components/tabs.d.ts +2 -1
  455. package/dist/esm/components/tabs.js +1 -1
  456. package/dist/esm/components/tabs.js.map +2 -2
  457. package/dist/esm/helpers/index.d.ts +1 -0
  458. package/dist/esm/helpers/index.js +1 -1
  459. package/dist/esm/helpers/index.js.map +3 -3
  460. package/dist/esm/helpers/priceFormatting.d.ts +11 -0
  461. package/dist/esm/helpers/priceFormatting.js +2 -0
  462. package/dist/esm/helpers/priceFormatting.js.map +7 -0
  463. package/dist/esm/shared/Styles.d.ts +5 -4
  464. package/dist/esm/shared/Styles.js +1 -1
  465. package/dist/esm/shared/Styles.js.map +3 -3
  466. package/dist/esm/types/props.d.ts +0 -3
  467. package/dist/tokens/base.css +4 -3
  468. package/dist/tokens/eufy.css +1 -0
  469. package/dist/tokens/soundcore.css +4 -3
  470. package/package.json +8 -3
  471. package/style.css +4915 -126
  472. package/tailwind.config.js +19 -2
  473. package/dist/cjs/stories/HeroBanner.stories.d.ts +0 -28
  474. package/dist/cjs/stories/HeroBanner.stories.js +0 -11
  475. package/dist/cjs/stories/HeroBanner.stories.js.map +0 -7
  476. package/dist/cjs/stories/InlineVideo.stories.d.ts +0 -37
  477. package/dist/cjs/stories/InlineVideo.stories.js +0 -164
  478. package/dist/cjs/stories/InlineVideo.stories.js.map +0 -7
  479. package/dist/cjs/stories/MarqueeReview.stories.d.ts +0 -72
  480. package/dist/cjs/stories/MarqueeReview.stories.js +0 -19
  481. package/dist/cjs/stories/MarqueeReview.stories.js.map +0 -7
  482. package/dist/cjs/stories/MediaSceneSwitcher.stories.d.ts +0 -47
  483. package/dist/cjs/stories/MediaSceneSwitcher.stories.js +0 -2
  484. package/dist/cjs/stories/MediaSceneSwitcher.stories.js.map +0 -7
  485. package/dist/cjs/stories/MemberEquity.stories.d.ts +0 -9
  486. package/dist/cjs/stories/MemberEquity.stories.js +0 -31
  487. package/dist/cjs/stories/MemberEquity.stories.js.map +0 -7
  488. package/dist/cjs/stories/MultiLayoutGraphicBlock.stories.d.ts +0 -9
  489. package/dist/cjs/stories/MultiLayoutGraphicBlock.stories.js +0 -2
  490. package/dist/cjs/stories/MultiLayoutGraphicBlock.stories.js.map +0 -7
  491. package/dist/cjs/stories/ProductNav.stories.d.ts +0 -55
  492. package/dist/cjs/stories/ProductNav.stories.js +0 -2
  493. package/dist/cjs/stories/ProductNav.stories.js.map +0 -7
  494. package/dist/cjs/stories/ThreeDCarousel.stories.d.ts +0 -27
  495. package/dist/cjs/stories/ThreeDCarousel.stories.js +0 -118
  496. package/dist/cjs/stories/ThreeDCarousel.stories.js.map +0 -7
  497. package/dist/cjs/stories/accordionCards.stories.d.ts +0 -38
  498. package/dist/cjs/stories/accordionCards.stories.js +0 -2
  499. package/dist/cjs/stories/accordionCards.stories.js.map +0 -7
  500. package/dist/cjs/stories/alert.stories.d.ts +0 -27
  501. package/dist/cjs/stories/alert.stories.js +0 -2
  502. package/dist/cjs/stories/alert.stories.js.map +0 -7
  503. package/dist/cjs/stories/avatar.stories.d.ts +0 -39
  504. package/dist/cjs/stories/avatar.stories.js +0 -2
  505. package/dist/cjs/stories/avatar.stories.js.map +0 -7
  506. package/dist/cjs/stories/badge.stories.d.ts +0 -96
  507. package/dist/cjs/stories/badge.stories.js +0 -2
  508. package/dist/cjs/stories/badge.stories.js.map +0 -7
  509. package/dist/cjs/stories/bizTabs.stories.d.ts +0 -7
  510. package/dist/cjs/stories/bizTabs.stories.js +0 -2
  511. package/dist/cjs/stories/bizTabs.stories.js.map +0 -7
  512. package/dist/cjs/stories/board.stories.d.ts +0 -6
  513. package/dist/cjs/stories/board.stories.js +0 -2
  514. package/dist/cjs/stories/board.stories.js.map +0 -7
  515. package/dist/cjs/stories/brandEquity.stories.d.ts +0 -16
  516. package/dist/cjs/stories/brandEquity.stories.js +0 -2
  517. package/dist/cjs/stories/brandEquity.stories.js.map +0 -7
  518. package/dist/cjs/stories/brandStrip.stories.d.ts +0 -12
  519. package/dist/cjs/stories/brandStrip.stories.js +0 -2
  520. package/dist/cjs/stories/brandStrip.stories.js.map +0 -7
  521. package/dist/cjs/stories/button.stories.d.ts +0 -56
  522. package/dist/cjs/stories/button.stories.js +0 -2
  523. package/dist/cjs/stories/button.stories.js.map +0 -7
  524. package/dist/cjs/stories/card.stories.d.ts +0 -27
  525. package/dist/cjs/stories/card.stories.js +0 -2
  526. package/dist/cjs/stories/card.stories.js.map +0 -7
  527. package/dist/cjs/stories/carousel.stories.d.ts +0 -8
  528. package/dist/cjs/stories/carousel.stories.js +0 -2
  529. package/dist/cjs/stories/carousel.stories.js.map +0 -7
  530. package/dist/cjs/stories/category.stories.d.ts +0 -17
  531. package/dist/cjs/stories/category.stories.js +0 -2
  532. package/dist/cjs/stories/category.stories.js.map +0 -7
  533. package/dist/cjs/stories/checkbox.stories.d.ts +0 -46
  534. package/dist/cjs/stories/checkbox.stories.js +0 -2
  535. package/dist/cjs/stories/checkbox.stories.js.map +0 -7
  536. package/dist/cjs/stories/container.stories.d.ts +0 -28
  537. package/dist/cjs/stories/container.stories.js +0 -15
  538. package/dist/cjs/stories/container.stories.js.map +0 -7
  539. package/dist/cjs/stories/cpnBanner.stories.d.ts +0 -14
  540. package/dist/cjs/stories/cpnBanner.stories.js +0 -2
  541. package/dist/cjs/stories/cpnBanner.stories.js.map +0 -7
  542. package/dist/cjs/stories/cpnCountdown.stories.d.ts +0 -12
  543. package/dist/cjs/stories/cpnCountdown.stories.js +0 -2
  544. package/dist/cjs/stories/cpnCountdown.stories.js.map +0 -7
  545. package/dist/cjs/stories/cpnNavigation.stories.d.ts +0 -14
  546. package/dist/cjs/stories/cpnNavigation.stories.js +0 -2
  547. package/dist/cjs/stories/cpnNavigation.stories.js.map +0 -7
  548. package/dist/cjs/stories/cpnProductcard.stories.d.ts +0 -14
  549. package/dist/cjs/stories/cpnProductcard.stories.js +0 -2
  550. package/dist/cjs/stories/cpnProductcard.stories.js.map +0 -7
  551. package/dist/cjs/stories/cpnTitle.stories.d.ts +0 -14
  552. package/dist/cjs/stories/cpnTitle.stories.js +0 -2
  553. package/dist/cjs/stories/cpnTitle.stories.js.map +0 -7
  554. package/dist/cjs/stories/creativeModule.stories.d.ts +0 -19
  555. package/dist/cjs/stories/creativeModule.stories.js +0 -2
  556. package/dist/cjs/stories/creativeModule.stories.js.map +0 -7
  557. package/dist/cjs/stories/dialog.stories.d.ts +0 -20
  558. package/dist/cjs/stories/dialog.stories.js +0 -2
  559. package/dist/cjs/stories/dialog.stories.js.map +0 -7
  560. package/dist/cjs/stories/drawer.stories.d.ts +0 -20
  561. package/dist/cjs/stories/drawer.stories.js +0 -2
  562. package/dist/cjs/stories/drawer.stories.js.map +0 -7
  563. package/dist/cjs/stories/drop-down.stories.d.ts +0 -16
  564. package/dist/cjs/stories/drop-down.stories.js +0 -2
  565. package/dist/cjs/stories/drop-down.stories.js.map +0 -7
  566. package/dist/cjs/stories/evaluate.stories.d.ts +0 -16
  567. package/dist/cjs/stories/evaluate.stories.js +0 -2
  568. package/dist/cjs/stories/evaluate.stories.js.map +0 -7
  569. package/dist/cjs/stories/faq.stories.d.ts +0 -21
  570. package/dist/cjs/stories/faq.stories.js +0 -2
  571. package/dist/cjs/stories/faq.stories.js.map +0 -7
  572. package/dist/cjs/stories/featureCards.stories.d.ts +0 -30
  573. package/dist/cjs/stories/featureCards.stories.js +0 -61
  574. package/dist/cjs/stories/featureCards.stories.js.map +0 -7
  575. package/dist/cjs/stories/featureShowcase.stories.d.ts +0 -29
  576. package/dist/cjs/stories/featureShowcase.stories.js +0 -44
  577. package/dist/cjs/stories/featureShowcase.stories.js.map +0 -7
  578. package/dist/cjs/stories/graphic.stories.d.ts +0 -64
  579. package/dist/cjs/stories/graphic.stories.js +0 -2
  580. package/dist/cjs/stories/graphic.stories.js.map +0 -7
  581. package/dist/cjs/stories/graphicAttractionBlock.stories.d.ts +0 -6
  582. package/dist/cjs/stories/graphicAttractionBlock.stories.js +0 -2
  583. package/dist/cjs/stories/graphicAttractionBlock.stories.js.map +0 -7
  584. package/dist/cjs/stories/grid.stories.d.ts +0 -22
  585. package/dist/cjs/stories/grid.stories.js +0 -13
  586. package/dist/cjs/stories/grid.stories.js.map +0 -7
  587. package/dist/cjs/stories/heading.stories.d.ts +0 -84
  588. package/dist/cjs/stories/heading.stories.js +0 -15
  589. package/dist/cjs/stories/heading.stories.js.map +0 -7
  590. package/dist/cjs/stories/imageTextFeature.stories.d.ts +0 -28
  591. package/dist/cjs/stories/imageTextFeature.stories.js +0 -50
  592. package/dist/cjs/stories/imageTextFeature.stories.js.map +0 -7
  593. package/dist/cjs/stories/imageWithText.stories.d.ts +0 -51
  594. package/dist/cjs/stories/imageWithText.stories.js +0 -84
  595. package/dist/cjs/stories/imageWithText.stories.js.map +0 -7
  596. package/dist/cjs/stories/input-number.stories.d.ts +0 -39
  597. package/dist/cjs/stories/input-number.stories.js +0 -2
  598. package/dist/cjs/stories/input-number.stories.js.map +0 -7
  599. package/dist/cjs/stories/input.stories.d.ts +0 -35
  600. package/dist/cjs/stories/input.stories.js +0 -2
  601. package/dist/cjs/stories/input.stories.js.map +0 -7
  602. package/dist/cjs/stories/ksp.stories.d.ts +0 -63
  603. package/dist/cjs/stories/ksp.stories.js +0 -128
  604. package/dist/cjs/stories/ksp.stories.js.map +0 -7
  605. package/dist/cjs/stories/link.stories.d.ts +0 -69
  606. package/dist/cjs/stories/link.stories.js +0 -2
  607. package/dist/cjs/stories/link.stories.js.map +0 -7
  608. package/dist/cjs/stories/marquee.stories.d.ts +0 -30
  609. package/dist/cjs/stories/marquee.stories.js +0 -2
  610. package/dist/cjs/stories/marquee.stories.js.map +0 -7
  611. package/dist/cjs/stories/mediaplayerBase.stories.d.ts +0 -6
  612. package/dist/cjs/stories/mediaplayerBase.stories.js +0 -2
  613. package/dist/cjs/stories/mediaplayerBase.stories.js.map +0 -7
  614. package/dist/cjs/stories/mediaplayerMulti.stories.d.ts +0 -16
  615. package/dist/cjs/stories/mediaplayerMulti.stories.js +0 -2
  616. package/dist/cjs/stories/mediaplayerMulti.stories.js.map +0 -7
  617. package/dist/cjs/stories/picture.stories.d.ts +0 -23
  618. package/dist/cjs/stories/picture.stories.js +0 -9
  619. package/dist/cjs/stories/picture.stories.js.map +0 -7
  620. package/dist/cjs/stories/popover.stories.d.ts +0 -17
  621. package/dist/cjs/stories/popover.stories.js +0 -2
  622. package/dist/cjs/stories/popover.stories.js.map +0 -7
  623. package/dist/cjs/stories/productCompare.stories.d.ts +0 -54
  624. package/dist/cjs/stories/productCompare.stories.js +0 -54
  625. package/dist/cjs/stories/productCompare.stories.js.map +0 -7
  626. package/dist/cjs/stories/productHero.stories.d.ts +0 -29
  627. package/dist/cjs/stories/productHero.stories.js +0 -50
  628. package/dist/cjs/stories/productHero.stories.js.map +0 -7
  629. package/dist/cjs/stories/radio.stories.d.ts +0 -39
  630. package/dist/cjs/stories/radio.stories.js +0 -2
  631. package/dist/cjs/stories/radio.stories.js.map +0 -7
  632. package/dist/cjs/stories/shelfDisplay.stories.d.ts +0 -16
  633. package/dist/cjs/stories/shelfDisplay.stories.js +0 -2
  634. package/dist/cjs/stories/shelfDisplay.stories.js.map +0 -7
  635. package/dist/cjs/stories/skeleton.stories.d.ts +0 -20
  636. package/dist/cjs/stories/skeleton.stories.js +0 -2
  637. package/dist/cjs/stories/skeleton.stories.js.map +0 -7
  638. package/dist/cjs/stories/slogan.stories.d.ts +0 -20
  639. package/dist/cjs/stories/slogan.stories.js +0 -6
  640. package/dist/cjs/stories/slogan.stories.js.map +0 -7
  641. package/dist/cjs/stories/specs.stories.d.ts +0 -13
  642. package/dist/cjs/stories/specs.stories.js +0 -57
  643. package/dist/cjs/stories/specs.stories.js.map +0 -7
  644. package/dist/cjs/stories/specsComparison.stories.d.ts +0 -28
  645. package/dist/cjs/stories/specsComparison.stories.js +0 -105
  646. package/dist/cjs/stories/specsComparison.stories.js.map +0 -7
  647. package/dist/cjs/stories/tabWithImage.stories.d.ts +0 -28
  648. package/dist/cjs/stories/tabWithImage.stories.js +0 -53
  649. package/dist/cjs/stories/tabWithImage.stories.js.map +0 -7
  650. package/dist/cjs/stories/tabs.stories.d.ts +0 -373
  651. package/dist/cjs/stories/tabs.stories.js +0 -2
  652. package/dist/cjs/stories/tabs.stories.js.map +0 -7
  653. package/dist/cjs/stories/tabsWithMedia.stories.d.ts +0 -28
  654. package/dist/cjs/stories/tabsWithMedia.stories.js +0 -68
  655. package/dist/cjs/stories/tabsWithMedia.stories.js.map +0 -7
  656. package/dist/cjs/stories/text.stories.d.ts +0 -86
  657. package/dist/cjs/stories/text.stories.js +0 -21
  658. package/dist/cjs/stories/text.stories.js.map +0 -7
  659. package/dist/cjs/stories/videoFeature.stories.d.ts +0 -29
  660. package/dist/cjs/stories/videoFeature.stories.js +0 -56
  661. package/dist/cjs/stories/videoFeature.stories.js.map +0 -7
  662. package/dist/cjs/stories/whychoose.stories.d.ts +0 -21
  663. package/dist/cjs/stories/whychoose.stories.js +0 -2
  664. package/dist/cjs/stories/whychoose.stories.js.map +0 -7
  665. package/dist/esm/stories/HeroBanner.stories.d.ts +0 -28
  666. package/dist/esm/stories/HeroBanner.stories.js +0 -11
  667. package/dist/esm/stories/HeroBanner.stories.js.map +0 -7
  668. package/dist/esm/stories/InlineVideo.stories.d.ts +0 -37
  669. package/dist/esm/stories/InlineVideo.stories.js +0 -164
  670. package/dist/esm/stories/InlineVideo.stories.js.map +0 -7
  671. package/dist/esm/stories/MarqueeReview.stories.d.ts +0 -72
  672. package/dist/esm/stories/MarqueeReview.stories.js +0 -19
  673. package/dist/esm/stories/MarqueeReview.stories.js.map +0 -7
  674. package/dist/esm/stories/MediaSceneSwitcher.stories.d.ts +0 -47
  675. package/dist/esm/stories/MediaSceneSwitcher.stories.js +0 -2
  676. package/dist/esm/stories/MediaSceneSwitcher.stories.js.map +0 -7
  677. package/dist/esm/stories/MemberEquity.stories.d.ts +0 -9
  678. package/dist/esm/stories/MemberEquity.stories.js +0 -31
  679. package/dist/esm/stories/MemberEquity.stories.js.map +0 -7
  680. package/dist/esm/stories/MultiLayoutGraphicBlock.stories.d.ts +0 -9
  681. package/dist/esm/stories/MultiLayoutGraphicBlock.stories.js +0 -2
  682. package/dist/esm/stories/MultiLayoutGraphicBlock.stories.js.map +0 -7
  683. package/dist/esm/stories/ProductNav.stories.d.ts +0 -55
  684. package/dist/esm/stories/ProductNav.stories.js +0 -2
  685. package/dist/esm/stories/ProductNav.stories.js.map +0 -7
  686. package/dist/esm/stories/ThreeDCarousel.stories.d.ts +0 -27
  687. package/dist/esm/stories/ThreeDCarousel.stories.js +0 -118
  688. package/dist/esm/stories/ThreeDCarousel.stories.js.map +0 -7
  689. package/dist/esm/stories/accordionCards.stories.d.ts +0 -38
  690. package/dist/esm/stories/accordionCards.stories.js +0 -2
  691. package/dist/esm/stories/accordionCards.stories.js.map +0 -7
  692. package/dist/esm/stories/alert.stories.d.ts +0 -27
  693. package/dist/esm/stories/alert.stories.js +0 -2
  694. package/dist/esm/stories/alert.stories.js.map +0 -7
  695. package/dist/esm/stories/avatar.stories.d.ts +0 -39
  696. package/dist/esm/stories/avatar.stories.js +0 -2
  697. package/dist/esm/stories/avatar.stories.js.map +0 -7
  698. package/dist/esm/stories/badge.stories.d.ts +0 -96
  699. package/dist/esm/stories/badge.stories.js +0 -2
  700. package/dist/esm/stories/badge.stories.js.map +0 -7
  701. package/dist/esm/stories/bizTabs.stories.d.ts +0 -7
  702. package/dist/esm/stories/bizTabs.stories.js +0 -2
  703. package/dist/esm/stories/bizTabs.stories.js.map +0 -7
  704. package/dist/esm/stories/board.stories.d.ts +0 -6
  705. package/dist/esm/stories/board.stories.js +0 -2
  706. package/dist/esm/stories/board.stories.js.map +0 -7
  707. package/dist/esm/stories/brandEquity.stories.d.ts +0 -16
  708. package/dist/esm/stories/brandEquity.stories.js +0 -2
  709. package/dist/esm/stories/brandEquity.stories.js.map +0 -7
  710. package/dist/esm/stories/brandStrip.stories.d.ts +0 -12
  711. package/dist/esm/stories/brandStrip.stories.js +0 -2
  712. package/dist/esm/stories/brandStrip.stories.js.map +0 -7
  713. package/dist/esm/stories/button.stories.d.ts +0 -56
  714. package/dist/esm/stories/button.stories.js +0 -2
  715. package/dist/esm/stories/button.stories.js.map +0 -7
  716. package/dist/esm/stories/card.stories.d.ts +0 -27
  717. package/dist/esm/stories/card.stories.js +0 -2
  718. package/dist/esm/stories/card.stories.js.map +0 -7
  719. package/dist/esm/stories/carousel.stories.d.ts +0 -8
  720. package/dist/esm/stories/carousel.stories.js +0 -2
  721. package/dist/esm/stories/carousel.stories.js.map +0 -7
  722. package/dist/esm/stories/category.stories.d.ts +0 -17
  723. package/dist/esm/stories/category.stories.js +0 -2
  724. package/dist/esm/stories/category.stories.js.map +0 -7
  725. package/dist/esm/stories/checkbox.stories.d.ts +0 -46
  726. package/dist/esm/stories/checkbox.stories.js +0 -2
  727. package/dist/esm/stories/checkbox.stories.js.map +0 -7
  728. package/dist/esm/stories/container.stories.d.ts +0 -28
  729. package/dist/esm/stories/container.stories.js +0 -15
  730. package/dist/esm/stories/container.stories.js.map +0 -7
  731. package/dist/esm/stories/cpnBanner.stories.d.ts +0 -14
  732. package/dist/esm/stories/cpnBanner.stories.js +0 -2
  733. package/dist/esm/stories/cpnBanner.stories.js.map +0 -7
  734. package/dist/esm/stories/cpnCountdown.stories.d.ts +0 -12
  735. package/dist/esm/stories/cpnCountdown.stories.js +0 -2
  736. package/dist/esm/stories/cpnCountdown.stories.js.map +0 -7
  737. package/dist/esm/stories/cpnNavigation.stories.d.ts +0 -14
  738. package/dist/esm/stories/cpnNavigation.stories.js +0 -2
  739. package/dist/esm/stories/cpnNavigation.stories.js.map +0 -7
  740. package/dist/esm/stories/cpnProductcard.stories.d.ts +0 -14
  741. package/dist/esm/stories/cpnProductcard.stories.js +0 -2
  742. package/dist/esm/stories/cpnProductcard.stories.js.map +0 -7
  743. package/dist/esm/stories/cpnTitle.stories.d.ts +0 -14
  744. package/dist/esm/stories/cpnTitle.stories.js +0 -2
  745. package/dist/esm/stories/cpnTitle.stories.js.map +0 -7
  746. package/dist/esm/stories/creativeModule.stories.d.ts +0 -19
  747. package/dist/esm/stories/creativeModule.stories.js +0 -2
  748. package/dist/esm/stories/creativeModule.stories.js.map +0 -7
  749. package/dist/esm/stories/dialog.stories.d.ts +0 -20
  750. package/dist/esm/stories/dialog.stories.js +0 -2
  751. package/dist/esm/stories/dialog.stories.js.map +0 -7
  752. package/dist/esm/stories/drawer.stories.d.ts +0 -20
  753. package/dist/esm/stories/drawer.stories.js +0 -2
  754. package/dist/esm/stories/drawer.stories.js.map +0 -7
  755. package/dist/esm/stories/drop-down.stories.d.ts +0 -16
  756. package/dist/esm/stories/drop-down.stories.js +0 -2
  757. package/dist/esm/stories/drop-down.stories.js.map +0 -7
  758. package/dist/esm/stories/evaluate.stories.d.ts +0 -16
  759. package/dist/esm/stories/evaluate.stories.js +0 -2
  760. package/dist/esm/stories/evaluate.stories.js.map +0 -7
  761. package/dist/esm/stories/faq.stories.d.ts +0 -21
  762. package/dist/esm/stories/faq.stories.js +0 -2
  763. package/dist/esm/stories/faq.stories.js.map +0 -7
  764. package/dist/esm/stories/featureCards.stories.d.ts +0 -30
  765. package/dist/esm/stories/featureCards.stories.js +0 -61
  766. package/dist/esm/stories/featureCards.stories.js.map +0 -7
  767. package/dist/esm/stories/featureShowcase.stories.d.ts +0 -29
  768. package/dist/esm/stories/featureShowcase.stories.js +0 -44
  769. package/dist/esm/stories/featureShowcase.stories.js.map +0 -7
  770. package/dist/esm/stories/graphic.stories.d.ts +0 -64
  771. package/dist/esm/stories/graphic.stories.js +0 -2
  772. package/dist/esm/stories/graphic.stories.js.map +0 -7
  773. package/dist/esm/stories/graphicAttractionBlock.stories.d.ts +0 -6
  774. package/dist/esm/stories/graphicAttractionBlock.stories.js +0 -2
  775. package/dist/esm/stories/graphicAttractionBlock.stories.js.map +0 -7
  776. package/dist/esm/stories/grid.stories.d.ts +0 -22
  777. package/dist/esm/stories/grid.stories.js +0 -13
  778. package/dist/esm/stories/grid.stories.js.map +0 -7
  779. package/dist/esm/stories/heading.stories.d.ts +0 -84
  780. package/dist/esm/stories/heading.stories.js +0 -15
  781. package/dist/esm/stories/heading.stories.js.map +0 -7
  782. package/dist/esm/stories/imageTextFeature.stories.d.ts +0 -28
  783. package/dist/esm/stories/imageTextFeature.stories.js +0 -50
  784. package/dist/esm/stories/imageTextFeature.stories.js.map +0 -7
  785. package/dist/esm/stories/imageWithText.stories.d.ts +0 -51
  786. package/dist/esm/stories/imageWithText.stories.js +0 -84
  787. package/dist/esm/stories/imageWithText.stories.js.map +0 -7
  788. package/dist/esm/stories/input-number.stories.d.ts +0 -39
  789. package/dist/esm/stories/input-number.stories.js +0 -2
  790. package/dist/esm/stories/input-number.stories.js.map +0 -7
  791. package/dist/esm/stories/input.stories.d.ts +0 -35
  792. package/dist/esm/stories/input.stories.js +0 -2
  793. package/dist/esm/stories/input.stories.js.map +0 -7
  794. package/dist/esm/stories/ksp.stories.d.ts +0 -63
  795. package/dist/esm/stories/ksp.stories.js +0 -128
  796. package/dist/esm/stories/ksp.stories.js.map +0 -7
  797. package/dist/esm/stories/link.stories.d.ts +0 -69
  798. package/dist/esm/stories/link.stories.js +0 -2
  799. package/dist/esm/stories/link.stories.js.map +0 -7
  800. package/dist/esm/stories/marquee.stories.d.ts +0 -30
  801. package/dist/esm/stories/marquee.stories.js +0 -2
  802. package/dist/esm/stories/marquee.stories.js.map +0 -7
  803. package/dist/esm/stories/mediaplayerBase.stories.d.ts +0 -6
  804. package/dist/esm/stories/mediaplayerBase.stories.js +0 -2
  805. package/dist/esm/stories/mediaplayerBase.stories.js.map +0 -7
  806. package/dist/esm/stories/mediaplayerMulti.stories.d.ts +0 -16
  807. package/dist/esm/stories/mediaplayerMulti.stories.js +0 -2
  808. package/dist/esm/stories/mediaplayerMulti.stories.js.map +0 -7
  809. package/dist/esm/stories/picture.stories.d.ts +0 -23
  810. package/dist/esm/stories/picture.stories.js +0 -9
  811. package/dist/esm/stories/picture.stories.js.map +0 -7
  812. package/dist/esm/stories/popover.stories.d.ts +0 -17
  813. package/dist/esm/stories/popover.stories.js +0 -2
  814. package/dist/esm/stories/popover.stories.js.map +0 -7
  815. package/dist/esm/stories/productCompare.stories.d.ts +0 -54
  816. package/dist/esm/stories/productCompare.stories.js +0 -54
  817. package/dist/esm/stories/productCompare.stories.js.map +0 -7
  818. package/dist/esm/stories/productHero.stories.d.ts +0 -29
  819. package/dist/esm/stories/productHero.stories.js +0 -50
  820. package/dist/esm/stories/productHero.stories.js.map +0 -7
  821. package/dist/esm/stories/radio.stories.d.ts +0 -39
  822. package/dist/esm/stories/radio.stories.js +0 -2
  823. package/dist/esm/stories/radio.stories.js.map +0 -7
  824. package/dist/esm/stories/shelfDisplay.stories.d.ts +0 -16
  825. package/dist/esm/stories/shelfDisplay.stories.js +0 -2
  826. package/dist/esm/stories/shelfDisplay.stories.js.map +0 -7
  827. package/dist/esm/stories/skeleton.stories.d.ts +0 -20
  828. package/dist/esm/stories/skeleton.stories.js +0 -2
  829. package/dist/esm/stories/skeleton.stories.js.map +0 -7
  830. package/dist/esm/stories/slogan.stories.d.ts +0 -20
  831. package/dist/esm/stories/slogan.stories.js +0 -6
  832. package/dist/esm/stories/slogan.stories.js.map +0 -7
  833. package/dist/esm/stories/specs.stories.d.ts +0 -13
  834. package/dist/esm/stories/specs.stories.js +0 -57
  835. package/dist/esm/stories/specs.stories.js.map +0 -7
  836. package/dist/esm/stories/specsComparison.stories.d.ts +0 -28
  837. package/dist/esm/stories/specsComparison.stories.js +0 -105
  838. package/dist/esm/stories/specsComparison.stories.js.map +0 -7
  839. package/dist/esm/stories/tabWithImage.stories.d.ts +0 -28
  840. package/dist/esm/stories/tabWithImage.stories.js +0 -53
  841. package/dist/esm/stories/tabWithImage.stories.js.map +0 -7
  842. package/dist/esm/stories/tabs.stories.d.ts +0 -373
  843. package/dist/esm/stories/tabs.stories.js +0 -2
  844. package/dist/esm/stories/tabs.stories.js.map +0 -7
  845. package/dist/esm/stories/tabsWithMedia.stories.d.ts +0 -28
  846. package/dist/esm/stories/tabsWithMedia.stories.js +0 -68
  847. package/dist/esm/stories/tabsWithMedia.stories.js.map +0 -7
  848. package/dist/esm/stories/text.stories.d.ts +0 -86
  849. package/dist/esm/stories/text.stories.js +0 -21
  850. package/dist/esm/stories/text.stories.js.map +0 -7
  851. package/dist/esm/stories/videoFeature.stories.d.ts +0 -29
  852. package/dist/esm/stories/videoFeature.stories.js +0 -56
  853. package/dist/esm/stories/videoFeature.stories.js.map +0 -7
  854. package/dist/esm/stories/whychoose.stories.d.ts +0 -21
  855. package/dist/esm/stories/whychoose.stories.js +0 -2
  856. package/dist/esm/stories/whychoose.stories.js.map +0 -7
@@ -0,0 +1,2 @@
1
+ "use client";import{jsx as i,jsxs as m}from"react/jsx-runtime";import*as u from"react";import{cn as l}from"../../helpers/index.js";import h from"../../components/picture.js";import y from"../../components/button.js";import{Text as g}from"../../components/text.js";import{Heading as $}from"../../components/heading.js";import j from"../../components/badge.js";function V(r,e){return!e||!Array.isArray(e)?null:e.find(t=>t.handle&&t.handle===r||t.id&&t.id===r?!0:t.variants&&Array.isArray(t.variants)?t.variants.some(c=>c.sku===r):!1)||null}const C=u.forwardRef(({image:r,name:e,layout:s="single",className:t,onClick:c},p)=>i("div",{ref:p,className:l("rounded-l-box laptop:rounded-l-box tablet:rounded-t-box tablet:rounded-r-none relative flex items-start gap-6 overflow-hidden p-6",s==="single"?"w-[964px]":"w-[482px]",s==="single"?" tablet:w-full tablet:p-4":"",c?"cursor-pointer":"",t),onClick:c,children:i(h,{source:r,alt:e,className:"absolute inset-0 w-full max-w-none",imgClassName:"h-full object-cover"})}));C.displayName="ProductImage";const P=u.forwardRef(({name:r,description:e,layout:s="single",className:t},c)=>m("div",{ref:c,className:l("flex w-full flex-col gap-1",t),children:[i($,{as:"h4",size:4,weight:"semibold",className:l("text-info-primary w-full text-2xl leading-[1.2] tracking-[-0.96px]","tablet:text-[20px] tablet:tracking-[-0.8px]"),children:r}),i(g,{size:4,weight:"semibold",className:l("text-info-primary w-full leading-[1.4] tracking-[-0.36px]","tablet:text-sm tablet:tracking-[-0.28px]"),children:e})]}));P.displayName="ProductInfo";const G=u.forwardRef(({gift:r,onClick:e,className:s},t)=>i("div",{ref:t,className:l("bg-container-primary rounded-box relative flex w-full cursor-pointer flex-col border-2 transition-all hover:shadow-sm",r.selected?"border-brand-0":"border-container-secondary-1",s),onClick:()=>e?.(r),children:m("div",{className:"flex w-full flex-col items-end",children:[r.isNew&&i("div",{className:"absolute right-0 top-0 flex items-start",children:i(j,{size:"lg",variant:"fill",children:"Free"})}),m("div",{className:l("flex w-full items-center gap-4 p-4","tablet:p-2"),children:[i("div",{className:l("size-14 shrink-0","tablet:size-12"),children:i(h,{source:r.image,alt:r.name,className:"size-full object-cover"})}),m("div",{className:"flex min-w-0 flex-1 flex-col gap-1",children:[i(g,{size:4,weight:"semibold",className:l("text-info-primary truncate leading-[1.4] tracking-[-0.36px]","tablet:text-sm tablet:tracking-[-0.28px]"),children:r.name}),m("div",{className:"flex items-center gap-1",children:[i(g,{size:4,weight:"semibold",className:l(),children:r.currentPrice}),i(g,{size:4,weight:"semibold",className:l(),children:r.originalPrice})]})]})]})]})}));G.displayName="FreeGiftItem";const k=u.forwardRef(({freeGiftLabel:r,freeGifts:e,onGiftClick:s,layout:t="single",className:c},p)=>!e||e.length===0?null:m("div",{ref:p,className:l("flex w-full flex-col gap-2",c),children:[r&&i(g,{size:4,weight:"semibold",className:l("text-info-primary w-full leading-[1.4] tracking-[-0.36px]","tablet:text-sm tablet:tracking-[-0.28px]"),children:r}),i("div",{className:l("tablet:flex-row laptop:flex-col flex flex-col gap-2"),children:e.map((x,v)=>i("div",{children:i(G,{gift:x,onClick:s})},x.id||v))})]}));k.displayName="GiftSelection";const T=u.forwardRef(({currentPrice:r,originalPrice:e,learnMoreText:s="Learn More",shopNowText:t="Shop Now",onLearnMore:c,onShopNow:p,layout:x="single",className:v},w)=>m("div",{ref:w,className:l("flex w-full flex-col justify-center gap-2",v),children:[m("div",{className:"flex w-full items-center gap-1",children:[i(g,{size:4,weight:"semibold",className:l(),children:r}),e&&i(g,{size:4,weight:"semibold",className:l("line-through"),children:e})]}),m("div",{className:l("flex items-start gap-3","tablet:gap-2"),children:[i(y,{variant:"secondary",size:"lg",className:l("tablet:px-5 tablet:py-[10px] tablet:text-sm tablet:tracking-[-0.56px]"),onClick:c,children:s}),i(y,{variant:"primary",size:"lg",className:l("tablet:px-5 tablet:py-[10px] tablet:text-sm tablet:tracking-[-0.56px]"),onClick:p,children:t})]})]}));T.displayName="PriceAndActions";const S=u.forwardRef(({className:r,data:e,giftData:s,layout:t="single",onProductClick:c,onProductImageClick:p,onLearnMore:x,onShopNow:v,onGiftClick:w,onGiftSelectionChange:M,...D},F)=>{const L=t==="single"?"w-full max-w-[1664px]":"w-full",z=t==="single"?"w-[700px]":"w-[350px]",[b,N]=u.useState(()=>e.freeGifts?.filter(a=>a.selected)||[]);u.useEffect(()=>{const a=e.freeGifts?.filter(n=>n.selected)||[];N(a)},[e.freeGifts]);const H=u.useMemo(()=>e.freeGifts?.map(a=>{const n=V(a.id,s),o={...a};if(n){if(n.title&&(o.name=n.title),n.price){const d=n.price.value||n.price,f=n.price.currencyCode||"USD";o.originalPrice=`${f} ${d}`,o.currentPrice="Free"}if(n.images&&n.images.length>0&&(o.image=n.images[0].url||a.image),n.variants&&n.variants.length>0){const d=n.variants[0];if(d.price){const f=d.price.value||d.price,W=d.price.currencyCode||"USD";o.originalPrice=`${W} ${f}`,o.currentPrice="Free"}d.image&&d.image.url&&(o.image=d.image.url)}}return{...o,selected:b.some(d=>d.id===a.id)}})||[],[e.freeGifts,b,s]),A=()=>{c?.(e)},E=()=>{p?.(e)},R=()=>{x?.(e)},I=()=>{v?.(e)},B=a=>{const n=e.giftSelectionMode||"multiple";let o;n==="single"?o=b.some(f=>f.id===a.id)?[]:[a]:b.some(f=>f.id===a.id)?o=b.filter(f=>f.id!==a.id):o=[...b,a],N(o),w?.(a,e),M?.(o,e)};return m("div",{ref:F,className:l("bg-container-primary laptop:flex-row rounded-box flex flex-col items-stretch",L,t==="single"?"tablet:flex-col tablet:max-w-[704px]":"",c?"cursor-pointer":"",r),onClick:A,...D,children:[i(C,{image:e.image,name:e.name,layout:t,onClick:E}),m("div",{className:l("bg-container-secondary-1 rounded-r-box laptop:rounded-r-box tablet:rounded-b-box tablet:rounded-l-none flex flex-col justify-between p-6",z,t==="single"?"tablet:w-full tablet:p-4 tablet:gap-4":""),children:[i(P,{name:e.name,description:e.description,layout:t}),i(k,{freeGiftLabel:e.freeGiftLabel,freeGifts:H,onGiftClick:B,layout:t}),i(T,{currentPrice:e.currentPrice,originalPrice:e.originalPrice,learnMoreText:e.learnMoreText,shopNowText:e.shopNowText,onLearnMore:R,onShopNow:I,layout:t})]})]})});S.displayName="ProductCard";var X=S;export{X as default};
2
+ //# sourceMappingURL=ProductCard.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/biz-components/BuyOneGetOneShelf/ProductCard.tsx"],
4
+ "sourcesContent": ["'use client'\n\nimport * as React from 'react'\nimport { cn } from '../../helpers/index.js'\nimport Picture from '../../components/picture.js'\nimport Button from '../../components/button.js'\nimport { Text } from '../../components/text.js'\nimport { Heading } from '../../components/heading.js'\nimport Badge from '../../components/badge.js'\n\n/**\n * \u5339\u914D\u793C\u54C1\u6570\u636E\u51FD\u6570\n * \u901A\u8FC7 ID\u3001handle \u6216 SKU \u5339\u914D giftData \u4E2D\u7684\u5B9E\u9645\u793C\u54C1\u4FE1\u606F\n */\nfunction matchGiftData(giftId: string, giftData?: any): any | null {\n if (!giftData || !Array.isArray(giftData)) {\n return null\n }\n\n // \u5C1D\u8BD5\u901A\u8FC7\u591A\u79CD\u65B9\u5F0F\u5339\u914D\u793C\u54C1\n const matchedGift = giftData.find((gift: any) => {\n // \u901A\u8FC7 handle \u5339\u914D\n if (gift.handle && gift.handle === giftId) {\n return true\n }\n\n // \u901A\u8FC7 id \u5339\u914D\n if (gift.id && gift.id === giftId) {\n return true\n }\n\n // \u901A\u8FC7 variants \u4E2D\u7684 sku \u5339\u914D\n if (gift.variants && Array.isArray(gift.variants)) {\n return gift.variants.some((variant: any) => variant.sku === giftId)\n }\n\n return false\n })\n\n return matchedGift || null\n}\n\n/**\n * \u514D\u8D39\u8D60\u54C1\u63A5\u53E3\n */\nexport interface FreeGift {\n /** \u8D60\u54C1ID */\n id: string\n /** \u8D60\u54C1\u56FE\u7247URL */\n image: string\n /** \u8D60\u54C1\u540D\u79F0 */\n name: string\n /** \u539F\u4EF7 */\n originalPrice: string\n /** \u73B0\u4EF7\uFF08\u901A\u5E38\u4E3AFree\uFF09 */\n currentPrice: string\n /** \u662F\u5426\u4E3A\u65B0\u54C1 */\n isNew?: boolean\n /** \u662F\u5426\u88AB\u9009\u4E2D */\n selected?: boolean\n}\n\n/**\n * \u4EA7\u54C1\u5361\u7247\u6570\u636E\u63A5\u53E3\n */\nexport interface ProductCardData {\n /** \u4EA7\u54C1\u56FE\u7247URL */\n image: string\n /** \u4EA7\u54C1\u6807\u7B7E\u5217\u8868 */\n tags?: string[]\n /** \u4EA7\u54C1\u540D\u79F0 */\n name: string\n /** \u4EA7\u54C1\u63CF\u8FF0 */\n description: string\n /** \u514D\u8D39\u8D60\u54C1\u8BF4\u660E\u6587\u5B57 */\n freeGiftLabel?: string\n /** \u514D\u8D39\u8D60\u54C1\u5217\u8868 */\n freeGifts?: FreeGift[]\n /** \u8D60\u54C1\u9009\u62E9\u6A21\u5F0F\uFF1A\u5355\u9009\u6216\u591A\u9009 */\n giftSelectionMode?: 'single' | 'multiple'\n /** \u5F53\u524D\u4EF7\u683C */\n currentPrice: string\n /** \u539F\u4EF7 */\n originalPrice?: string\n /** Learn More\u6309\u94AE\u6587\u672C */\n learnMoreText?: string\n /** Shop Now\u6309\u94AE\u6587\u672C */\n shopNowText?: string\n}\n\nexport interface ProductCardProps extends React.HTMLAttributes<HTMLDivElement> {\n /** \u4EA7\u54C1\u6570\u636E */\n data: ProductCardData\n /** \u793C\u54C1\u6570\u636E\u6E90\uFF0C\u7528\u4E8E\u5339\u914D\u5B9E\u9645\u7684\u4EF7\u683C\u3001\u56FE\u7247\u3001\u6807\u9898 */\n giftData?: any\n /** \u5E03\u5C40\u6A21\u5F0F\uFF1A\u4E00\u6392\u4E00\u4E2A\u6216\u4E00\u6392\u4E24\u4E2A */\n layout?: 'single' | 'double'\n /** \u4EA7\u54C1\u5361\u7247\u70B9\u51FB\u4E8B\u4EF6 */\n onProductClick?: (product: ProductCardData) => void\n /** \u4EA7\u54C1\u56FE\u7247\u70B9\u51FB\u4E8B\u4EF6 */\n onProductImageClick?: (product: ProductCardData) => void\n /** Learn More\u6309\u94AE\u70B9\u51FB\u4E8B\u4EF6 */\n onLearnMore?: (product: ProductCardData) => void\n /** Shop Now\u6309\u94AE\u70B9\u51FB\u4E8B\u4EF6 */\n onShopNow?: (product: ProductCardData) => void\n /** \u8D60\u54C1\u70B9\u51FB\u4E8B\u4EF6 */\n onGiftClick?: (gift: FreeGift, product: ProductCardData) => void\n /** \u8D60\u54C1\u9009\u62E9\u53D8\u5316\u4E8B\u4EF6 */\n onGiftSelectionChange?: (selectedGifts: FreeGift[], product: ProductCardData) => void\n}\n\n/**\n * ProductImage - \u4EA7\u54C1\u56FE\u7247\u533A\u57DF\n */\nconst ProductImage = React.forwardRef<\n HTMLDivElement,\n {\n image: string\n name: string\n layout?: 'single' | 'double'\n className?: string\n onClick?: () => void\n }\n>(({ image, name, layout = 'single', className, onClick }, ref) => {\n const imageWidth = layout === 'single' ? 'w-[964px]' : 'w-[482px]'\n\n return (\n <div\n ref={ref}\n className={cn(\n 'rounded-l-box laptop:rounded-l-box tablet:rounded-t-box tablet:rounded-r-none relative flex items-start gap-6 overflow-hidden p-6',\n imageWidth,\n // \u79FB\u52A8\u7AEF\u6837\u5F0F\n layout === 'single' ? ' tablet:w-full tablet:p-4' : '',\n onClick ? 'cursor-pointer' : '',\n className\n )}\n onClick={onClick}\n >\n {/* \u80CC\u666F\u56FE\u7247 */}\n\n <Picture\n source={image}\n alt={name}\n className=\"absolute inset-0 w-full max-w-none\"\n imgClassName=\"h-full object-cover\"\n />\n </div>\n )\n})\n\nProductImage.displayName = 'ProductImage'\n\n/**\n * ProductInfo - \u4EA7\u54C1\u4FE1\u606F\u533A\u57DF\n */\nconst ProductInfo = React.forwardRef<\n HTMLDivElement,\n {\n name: string\n description: string\n layout?: 'single' | 'double'\n className?: string\n }\n>(({ name, description, layout = 'single', className }, ref) => {\n return (\n <div ref={ref} className={cn('flex w-full flex-col gap-1', className)}>\n <Heading\n as=\"h4\"\n size={4}\n weight=\"semibold\"\n className={cn(\n 'text-info-primary w-full text-2xl leading-[1.2] tracking-[-0.96px]',\n 'tablet:text-[20px] tablet:tracking-[-0.8px]'\n )}\n >\n {name}\n </Heading>\n <Text\n size={4}\n weight=\"semibold\"\n className={cn(\n 'text-info-primary w-full leading-[1.4] tracking-[-0.36px]',\n 'tablet:text-sm tablet:tracking-[-0.28px]'\n )}\n >\n {description}\n </Text>\n </div>\n )\n})\n\nProductInfo.displayName = 'ProductInfo'\n\n/**\n * FreeGiftItem - \u514D\u8D39\u8D60\u54C1\u9879\n */\nconst FreeGiftItem = React.forwardRef<\n HTMLDivElement,\n {\n gift: FreeGift\n onClick?: (gift: FreeGift) => void\n className?: string\n }\n>(({ gift, onClick, className }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(\n 'bg-container-primary rounded-box relative flex w-full cursor-pointer flex-col border-2 transition-all hover:shadow-sm',\n gift.selected ? 'border-brand-0' : 'border-container-secondary-1',\n className\n )}\n onClick={() => onClick?.(gift)}\n >\n <div className=\"flex w-full flex-col items-end\">\n {gift.isNew && (\n <div className=\"absolute right-0 top-0 flex items-start\">\n <Badge size=\"lg\" variant=\"fill\">\n Free\n </Badge>\n </div>\n )}\n <div className={cn('flex w-full items-center gap-4 p-4', 'tablet:p-2')}>\n <div className={cn('size-14 shrink-0', 'tablet:size-12')}>\n <Picture source={gift.image} alt={gift.name} className=\"size-full object-cover\" />\n </div>\n <div className=\"flex min-w-0 flex-1 flex-col gap-1\">\n <Text\n size={4}\n weight=\"semibold\"\n className={cn(\n 'text-info-primary truncate leading-[1.4] tracking-[-0.36px]',\n 'tablet:text-sm tablet:tracking-[-0.28px]'\n )}\n >\n {gift.name}\n </Text>\n <div className=\"flex items-center gap-1\">\n <Text size={4} weight=\"semibold\" className={cn()}>\n {gift.currentPrice}\n </Text>\n <Text size={4} weight=\"semibold\" className={cn()}>\n {gift.originalPrice}\n </Text>\n </div>\n </div>\n </div>\n </div>\n </div>\n )\n})\n\nFreeGiftItem.displayName = 'FreeGiftItem'\n\n/**\n * GiftSelection - \u8D60\u54C1\u9009\u62E9\u533A\u57DF\n */\nconst GiftSelection = React.forwardRef<\n HTMLDivElement,\n {\n freeGiftLabel?: string\n freeGifts?: FreeGift[]\n onGiftClick?: (gift: FreeGift) => void\n layout?: 'single' | 'double'\n className?: string\n }\n>(({ freeGiftLabel, freeGifts, onGiftClick, layout = 'single', className }, ref) => {\n if (!freeGifts || freeGifts.length === 0) {\n return null\n }\n\n return (\n <div ref={ref} className={cn('flex w-full flex-col gap-2', className)}>\n {freeGiftLabel && (\n <Text\n size={4}\n weight=\"semibold\"\n className={cn(\n 'text-info-primary w-full leading-[1.4] tracking-[-0.36px]',\n 'tablet:text-sm tablet:tracking-[-0.28px]'\n )}\n >\n {freeGiftLabel}\n </Text>\n )}\n <div className={cn('tablet:flex-row laptop:flex-col flex flex-col gap-2')}>\n {freeGifts.map((gift, index) => (\n <div key={gift.id || index}>\n <FreeGiftItem gift={gift} onClick={onGiftClick} />\n </div>\n ))}\n </div>\n </div>\n )\n})\n\nGiftSelection.displayName = 'GiftSelection'\n\n/**\n * PriceAndActions - \u4EF7\u683C\u548C\u64CD\u4F5C\u533A\u57DF\n */\nconst PriceAndActions = React.forwardRef<\n HTMLDivElement,\n {\n currentPrice: string\n originalPrice?: string\n learnMoreText?: string\n shopNowText?: string\n onLearnMore?: () => void\n onShopNow?: () => void\n layout?: 'single' | 'double'\n className?: string\n }\n>(\n (\n {\n currentPrice,\n originalPrice,\n learnMoreText = 'Learn More',\n shopNowText = 'Shop Now',\n onLearnMore,\n onShopNow,\n layout = 'single',\n className,\n },\n ref\n ) => {\n return (\n <div ref={ref} className={cn('flex w-full flex-col justify-center gap-2', className)}>\n {/* \u4EF7\u683C */}\n <div className=\"flex w-full items-center gap-1\">\n <Text size={4} weight=\"semibold\" className={cn()}>\n {currentPrice}\n </Text>\n {originalPrice && (\n <Text size={4} weight=\"semibold\" className={cn('line-through')}>\n {originalPrice}\n </Text>\n )}\n </div>\n\n {/* \u6309\u94AE\u7EC4 */}\n <div className={cn('flex items-start gap-3', 'tablet:gap-2')}>\n <Button\n variant=\"secondary\"\n size=\"lg\"\n className={cn('tablet:px-5 tablet:py-[10px] tablet:text-sm tablet:tracking-[-0.56px]')}\n onClick={onLearnMore}\n >\n {learnMoreText}\n </Button>\n <Button\n variant=\"primary\"\n size=\"lg\"\n className={cn('tablet:px-5 tablet:py-[10px] tablet:text-sm tablet:tracking-[-0.56px]')}\n onClick={onShopNow}\n >\n {shopNowText}\n </Button>\n </div>\n </div>\n )\n }\n)\n\nPriceAndActions.displayName = 'PriceAndActions'\n\n/**\n * ProductCard - \u4E70\u8D60\u8D27\u67B6\u4EA7\u54C1\u5361\u7247\n *\n * @description \u7528\u4E8E\u4E70\u4E00\u8D60\u4E00\u6D3B\u52A8\u7684\u4EA7\u54C1\u5C55\u793A\u5361\u7247\uFF0C\u5DE6\u4FA7\u5C55\u793A\u4EA7\u54C1\u56FE\u7247\u548C\u6807\u7B7E\uFF0C\u53F3\u4FA7\u5C55\u793A\u4EA7\u54C1\u4FE1\u606F\u3001\u8D60\u54C1\u548C\u8D2D\u4E70\u6309\u94AE\n */\nconst ProductCard = React.forwardRef<HTMLDivElement, ProductCardProps>(\n (\n {\n className,\n data,\n giftData,\n layout = 'single',\n onProductClick,\n onProductImageClick,\n onLearnMore,\n onShopNow,\n onGiftClick,\n onGiftSelectionChange,\n ...props\n },\n ref\n ) => {\n const containerWidth = layout === 'single' ? 'w-full max-w-[1664px]' : 'w-full'\n const contentWidth = layout === 'single' ? 'w-[700px]' : 'w-[350px]'\n\n // \u5185\u90E8\u72B6\u6001\u7BA1\u7406\u9009\u4E2D\u7684\u8D60\u54C1\n const [selectedGifts, setSelectedGifts] = React.useState<FreeGift[]>(() => {\n // \u521D\u59CB\u5316\u65F6\u4ECE data.freeGifts \u4E2D\u83B7\u53D6\u5DF2\u9009\u4E2D\u7684\u8D60\u54C1\n return data.freeGifts?.filter(gift => gift.selected) || []\n })\n\n // \u5F53\u5916\u90E8\u6570\u636E\u53D8\u5316\u65F6\uFF0C\u540C\u6B65\u5185\u90E8\u72B6\u6001\n React.useEffect(() => {\n const initialSelectedGifts = data.freeGifts?.filter(gift => gift.selected) || []\n setSelectedGifts(initialSelectedGifts)\n }, [data.freeGifts])\n\n // \u751F\u6210\u5E26\u6709\u9009\u4E2D\u72B6\u6001\u548C\u5B9E\u9645\u6570\u636E\u7684\u8D60\u54C1\u5217\u8868\n const giftsWithSelection = React.useMemo(\n () =>\n data.freeGifts?.map(gift => {\n const matchedGiftInfo = matchGiftData(gift.id, giftData)\n\n // \u6784\u5EFA\u589E\u5F3A\u7684\u8D60\u54C1\u5BF9\u8C61\uFF0C\u4F7F\u7528\u5B9E\u9645\u6570\u636E\u8986\u76D6\u539F\u59CB\u6570\u636E\n const enhancedGift = { ...gift }\n\n if (matchedGiftInfo) {\n // \u4F7F\u7528\u5B9E\u9645\u7684 title\n if (matchedGiftInfo.title) {\n enhancedGift.name = matchedGiftInfo.title\n }\n\n // \u4F7F\u7528\u5B9E\u9645\u7684 price - \u6620\u5C04\u5230 FreeGift \u7684\u4EF7\u683C\u5B57\u6BB5\n if (matchedGiftInfo.price) {\n const priceValue = matchedGiftInfo.price.value || matchedGiftInfo.price\n const currencyCode = matchedGiftInfo.price.currencyCode || 'USD'\n\n // \u66F4\u65B0 originalPrice \u548C currentPrice\n enhancedGift.originalPrice = `${currencyCode} ${priceValue}`\n enhancedGift.currentPrice = 'Free' // \u8D60\u54C1\u901A\u5E38\u663E\u793A\u4E3A\u514D\u8D39\n }\n\n // \u4F7F\u7528\u5B9E\u9645\u7684 image\n if (matchedGiftInfo.images && matchedGiftInfo.images.length > 0) {\n enhancedGift.image = matchedGiftInfo.images[0].url || gift.image\n }\n\n // \u5982\u679C\u6709 variants\uFF0C\u5C1D\u8BD5\u4ECE\u7B2C\u4E00\u4E2A variant \u83B7\u53D6\u66F4\u8BE6\u7EC6\u7684\u4FE1\u606F\n if (matchedGiftInfo.variants && matchedGiftInfo.variants.length > 0) {\n const firstVariant = matchedGiftInfo.variants[0]\n if (firstVariant.price) {\n const variantPriceValue = firstVariant.price.value || firstVariant.price\n const variantCurrencyCode = firstVariant.price.currencyCode || 'USD'\n\n enhancedGift.originalPrice = `${variantCurrencyCode} ${variantPriceValue}`\n enhancedGift.currentPrice = 'Free'\n }\n if (firstVariant.image && firstVariant.image.url) {\n enhancedGift.image = firstVariant.image.url\n }\n }\n }\n\n return {\n ...enhancedGift,\n selected: selectedGifts.some(selectedGift => selectedGift.id === gift.id),\n }\n }) || [],\n [data.freeGifts, selectedGifts, giftData]\n )\n\n const handleProductClick = () => {\n onProductClick?.(data)\n }\n\n const handleProductImageClick = () => {\n onProductImageClick?.(data)\n }\n\n const handleLearnMoreClick = () => {\n onLearnMore?.(data)\n }\n\n const handleShopNowClick = () => {\n onShopNow?.(data)\n }\n\n const handleGiftClick = (gift: FreeGift) => {\n const giftSelectionMode = data.giftSelectionMode || 'multiple'\n let newSelectedGifts: FreeGift[]\n\n if (giftSelectionMode === 'single') {\n // \u5355\u9009\u6A21\u5F0F\uFF1A\u5982\u679C\u70B9\u51FB\u7684\u662F\u5DF2\u9009\u4E2D\u7684\u8D60\u54C1\uFF0C\u5219\u53D6\u6D88\u9009\u62E9\uFF1B\u5426\u5219\u9009\u62E9\u5F53\u524D\u8D60\u54C1\n const isCurrentlySelected = selectedGifts.some(selectedGift => selectedGift.id === gift.id)\n newSelectedGifts = isCurrentlySelected ? [] : [gift]\n } else {\n // \u591A\u9009\u6A21\u5F0F\uFF1A\u5207\u6362\u5F53\u524D\u8D60\u54C1\u7684\u9009\u62E9\u72B6\u6001\n const isCurrentlySelected = selectedGifts.some(selectedGift => selectedGift.id === gift.id)\n if (isCurrentlySelected) {\n newSelectedGifts = selectedGifts.filter(selectedGift => selectedGift.id !== gift.id)\n } else {\n newSelectedGifts = [...selectedGifts, gift]\n }\n }\n\n // \u66F4\u65B0\u5185\u90E8\u72B6\u6001\n setSelectedGifts(newSelectedGifts)\n\n // \u8C03\u7528\u56DE\u8C03\u51FD\u6570\u901A\u77E5\u7236\u7EC4\u4EF6\n onGiftClick?.(gift, data)\n onGiftSelectionChange?.(newSelectedGifts, data)\n }\n\n return (\n <div\n ref={ref}\n className={cn(\n 'bg-container-primary laptop:flex-row rounded-box flex flex-col items-stretch',\n containerWidth,\n layout === 'single' ? 'tablet:flex-col tablet:max-w-[704px]' : '',\n onProductClick ? 'cursor-pointer' : '',\n className\n )}\n onClick={handleProductClick}\n {...props}\n >\n {/* \u4EA7\u54C1\u56FE\u7247\u533A\u57DF */}\n <ProductImage image={data.image} name={data.name} layout={layout} onClick={handleProductImageClick} />\n\n {/* \u4EA7\u54C1\u4FE1\u606F\u533A\u57DF */}\n <div\n className={cn(\n 'bg-container-secondary-1 rounded-r-box laptop:rounded-r-box tablet:rounded-b-box tablet:rounded-l-none flex flex-col justify-between p-6',\n contentWidth,\n // \u79FB\u52A8\u7AEF\u6837\u5F0F\n layout === 'single' ? 'tablet:w-full tablet:p-4 tablet:gap-4' : ''\n )}\n >\n {/* \u4EA7\u54C1\u6807\u9898\u548C\u63CF\u8FF0 */}\n <ProductInfo name={data.name} description={data.description} layout={layout} />\n\n {/* \u514D\u8D39\u8D60\u54C1\u533A\u57DF */}\n <GiftSelection\n freeGiftLabel={data.freeGiftLabel}\n freeGifts={giftsWithSelection}\n onGiftClick={handleGiftClick}\n layout={layout}\n />\n\n {/* \u4EF7\u683C\u548C\u6309\u94AE\u533A\u57DF */}\n <PriceAndActions\n currentPrice={data.currentPrice}\n originalPrice={data.originalPrice}\n learnMoreText={data.learnMoreText}\n shopNowText={data.shopNowText}\n onLearnMore={handleLearnMoreClick}\n onShopNow={handleShopNowClick}\n layout={layout}\n />\n </div>\n </div>\n )\n }\n)\n\nProductCard.displayName = 'ProductCard'\n\nexport default ProductCard\n"],
5
+ "mappings": "aA6IM,cAAAA,EAyBF,QAAAC,MAzBE,oBA3IN,UAAYC,MAAW,QACvB,OAAS,MAAAC,MAAU,yBACnB,OAAOC,MAAa,8BACpB,OAAOC,MAAY,6BACnB,OAAS,QAAAC,MAAY,2BACrB,OAAS,WAAAC,MAAe,8BACxB,OAAOC,MAAW,4BAMlB,SAASC,EAAcC,EAAgBC,EAA4B,CACjE,MAAI,CAACA,GAAY,CAAC,MAAM,QAAQA,CAAQ,EAC/B,KAIWA,EAAS,KAAMC,GAE7BA,EAAK,QAAUA,EAAK,SAAWF,GAK/BE,EAAK,IAAMA,EAAK,KAAOF,EAClB,GAILE,EAAK,UAAY,MAAM,QAAQA,EAAK,QAAQ,EACvCA,EAAK,SAAS,KAAMC,GAAiBA,EAAQ,MAAQH,CAAM,EAG7D,EACR,GAEqB,IACxB,CA0EA,MAAMI,EAAeZ,EAAM,WASzB,CAAC,CAAE,MAAAa,EAAO,KAAAC,EAAM,OAAAC,EAAS,SAAU,UAAAC,EAAW,QAAAC,CAAQ,EAAGC,IAIvDpB,EAAC,OACC,IAAKoB,EACL,UAAWjB,EACT,oIANac,IAAW,SAAW,YAAc,YASjDA,IAAW,SAAW,4BAA8B,GACpDE,EAAU,iBAAmB,GAC7BD,CACF,EACA,QAASC,EAIT,SAAAnB,EAACI,EAAA,CACC,OAAQW,EACR,IAAKC,EACL,UAAU,sCACV,aAAa,sBACf,EACF,CAEH,EAEDF,EAAa,YAAc,eAK3B,MAAMO,EAAcnB,EAAM,WAQxB,CAAC,CAAE,KAAAc,EAAM,YAAAM,EAAa,OAAAL,EAAS,SAAU,UAAAC,CAAU,EAAGE,IAEpDnB,EAAC,OAAI,IAAKmB,EAAK,UAAWjB,EAAG,6BAA8Be,CAAS,EAClE,UAAAlB,EAACO,EAAA,CACC,GAAG,KACH,KAAM,EACN,OAAO,WACP,UAAWJ,EACT,qEACA,6CACF,EAEC,SAAAa,EACH,EACAhB,EAACM,EAAA,CACC,KAAM,EACN,OAAO,WACP,UAAWH,EACT,4DACA,0CACF,EAEC,SAAAmB,EACH,GACF,CAEH,EAEDD,EAAY,YAAc,cAK1B,MAAME,EAAerB,EAAM,WAOzB,CAAC,CAAE,KAAAU,EAAM,QAAAO,EAAS,UAAAD,CAAU,EAAGE,IAE7BpB,EAAC,OACC,IAAKoB,EACL,UAAWjB,EACT,wHACAS,EAAK,SAAW,iBAAmB,+BACnCM,CACF,EACA,QAAS,IAAMC,IAAUP,CAAI,EAE7B,SAAAX,EAAC,OAAI,UAAU,iCACZ,UAAAW,EAAK,OACJZ,EAAC,OAAI,UAAU,0CACb,SAAAA,EAACQ,EAAA,CAAM,KAAK,KAAK,QAAQ,OAAO,gBAEhC,EACF,EAEFP,EAAC,OAAI,UAAWE,EAAG,qCAAsC,YAAY,EACnE,UAAAH,EAAC,OAAI,UAAWG,EAAG,mBAAoB,gBAAgB,EACrD,SAAAH,EAACI,EAAA,CAAQ,OAAQQ,EAAK,MAAO,IAAKA,EAAK,KAAM,UAAU,yBAAyB,EAClF,EACAX,EAAC,OAAI,UAAU,qCACb,UAAAD,EAACM,EAAA,CACC,KAAM,EACN,OAAO,WACP,UAAWH,EACT,8DACA,0CACF,EAEC,SAAAS,EAAK,KACR,EACAX,EAAC,OAAI,UAAU,0BACb,UAAAD,EAACM,EAAA,CAAK,KAAM,EAAG,OAAO,WAAW,UAAWH,EAAG,EAC5C,SAAAS,EAAK,aACR,EACAZ,EAACM,EAAA,CAAK,KAAM,EAAG,OAAO,WAAW,UAAWH,EAAG,EAC5C,SAAAS,EAAK,cACR,GACF,GACF,GACF,GACF,EACF,CAEH,EAEDW,EAAa,YAAc,eAK3B,MAAMC,EAAgBtB,EAAM,WAS1B,CAAC,CAAE,cAAAuB,EAAe,UAAAC,EAAW,YAAAC,EAAa,OAAAV,EAAS,SAAU,UAAAC,CAAU,EAAGE,IACtE,CAACM,GAAaA,EAAU,SAAW,EAC9B,KAIPzB,EAAC,OAAI,IAAKmB,EAAK,UAAWjB,EAAG,6BAA8Be,CAAS,EACjE,UAAAO,GACCzB,EAACM,EAAA,CACC,KAAM,EACN,OAAO,WACP,UAAWH,EACT,4DACA,0CACF,EAEC,SAAAsB,EACH,EAEFzB,EAAC,OAAI,UAAWG,EAAG,qDAAqD,EACrE,SAAAuB,EAAU,IAAI,CAACd,EAAMgB,IACpB5B,EAAC,OACC,SAAAA,EAACuB,EAAA,CAAa,KAAMX,EAAM,QAASe,EAAa,GADxCf,EAAK,IAAMgB,CAErB,CACD,EACH,GACF,CAEH,EAEDJ,EAAc,YAAc,gBAK5B,MAAMK,EAAkB3B,EAAM,WAa5B,CACE,CACE,aAAA4B,EACA,cAAAC,EACA,cAAAC,EAAgB,aAChB,YAAAC,EAAc,WACd,YAAAC,EACA,UAAAC,EACA,OAAAlB,EAAS,SACT,UAAAC,CACF,EACAE,IAGEnB,EAAC,OAAI,IAAKmB,EAAK,UAAWjB,EAAG,4CAA6Ce,CAAS,EAEjF,UAAAjB,EAAC,OAAI,UAAU,iCACb,UAAAD,EAACM,EAAA,CAAK,KAAM,EAAG,OAAO,WAAW,UAAWH,EAAG,EAC5C,SAAA2B,EACH,EACCC,GACC/B,EAACM,EAAA,CAAK,KAAM,EAAG,OAAO,WAAW,UAAWH,EAAG,cAAc,EAC1D,SAAA4B,EACH,GAEJ,EAGA9B,EAAC,OAAI,UAAWE,EAAG,yBAA0B,cAAc,EACzD,UAAAH,EAACK,EAAA,CACC,QAAQ,YACR,KAAK,KACL,UAAWF,EAAG,uEAAuE,EACrF,QAAS+B,EAER,SAAAF,EACH,EACAhC,EAACK,EAAA,CACC,QAAQ,UACR,KAAK,KACL,UAAWF,EAAG,uEAAuE,EACrF,QAASgC,EAER,SAAAF,EACH,GACF,GACF,CAGN,EAEAJ,EAAgB,YAAc,kBAO9B,MAAMO,EAAclC,EAAM,WACxB,CACE,CACE,UAAAgB,EACA,KAAAmB,EACA,SAAA1B,EACA,OAAAM,EAAS,SACT,eAAAqB,EACA,oBAAAC,EACA,YAAAL,EACA,UAAAC,EACA,YAAAR,EACA,sBAAAa,EACA,GAAGC,CACL,EACArB,IACG,CACH,MAAMsB,EAAiBzB,IAAW,SAAW,wBAA0B,SACjE0B,EAAe1B,IAAW,SAAW,YAAc,YAGnD,CAAC2B,EAAeC,CAAgB,EAAI3C,EAAM,SAAqB,IAE5DmC,EAAK,WAAW,OAAOzB,GAAQA,EAAK,QAAQ,GAAK,CAAC,CAC1D,EAGDV,EAAM,UAAU,IAAM,CACpB,MAAM4C,EAAuBT,EAAK,WAAW,OAAOzB,GAAQA,EAAK,QAAQ,GAAK,CAAC,EAC/EiC,EAAiBC,CAAoB,CACvC,EAAG,CAACT,EAAK,SAAS,CAAC,EAGnB,MAAMU,EAAqB7C,EAAM,QAC/B,IACEmC,EAAK,WAAW,IAAIzB,GAAQ,CAC1B,MAAMoC,EAAkBvC,EAAcG,EAAK,GAAID,CAAQ,EAGjDsC,EAAe,CAAE,GAAGrC,CAAK,EAE/B,GAAIoC,EAAiB,CAOnB,GALIA,EAAgB,QAClBC,EAAa,KAAOD,EAAgB,OAIlCA,EAAgB,MAAO,CACzB,MAAME,EAAaF,EAAgB,MAAM,OAASA,EAAgB,MAC5DG,EAAeH,EAAgB,MAAM,cAAgB,MAG3DC,EAAa,cAAgB,GAAGE,CAAY,IAAID,CAAU,GAC1DD,EAAa,aAAe,MAC9B,CAQA,GALID,EAAgB,QAAUA,EAAgB,OAAO,OAAS,IAC5DC,EAAa,MAAQD,EAAgB,OAAO,CAAC,EAAE,KAAOpC,EAAK,OAIzDoC,EAAgB,UAAYA,EAAgB,SAAS,OAAS,EAAG,CACnE,MAAMI,EAAeJ,EAAgB,SAAS,CAAC,EAC/C,GAAII,EAAa,MAAO,CACtB,MAAMC,EAAoBD,EAAa,MAAM,OAASA,EAAa,MAC7DE,EAAsBF,EAAa,MAAM,cAAgB,MAE/DH,EAAa,cAAgB,GAAGK,CAAmB,IAAID,CAAiB,GACxEJ,EAAa,aAAe,MAC9B,CACIG,EAAa,OAASA,EAAa,MAAM,MAC3CH,EAAa,MAAQG,EAAa,MAAM,IAE5C,CACF,CAEA,MAAO,CACL,GAAGH,EACH,SAAUL,EAAc,KAAKW,GAAgBA,EAAa,KAAO3C,EAAK,EAAE,CAC1E,CACF,CAAC,GAAK,CAAC,EACT,CAACyB,EAAK,UAAWO,EAAejC,CAAQ,CAC1C,EAEM6C,EAAqB,IAAM,CAC/BlB,IAAiBD,CAAI,CACvB,EAEMoB,EAA0B,IAAM,CACpClB,IAAsBF,CAAI,CAC5B,EAEMqB,EAAuB,IAAM,CACjCxB,IAAcG,CAAI,CACpB,EAEMsB,EAAqB,IAAM,CAC/BxB,IAAYE,CAAI,CAClB,EAEMuB,EAAmBhD,GAAmB,CAC1C,MAAMiD,EAAoBxB,EAAK,mBAAqB,WACpD,IAAIyB,EAEAD,IAAsB,SAGxBC,EAD4BlB,EAAc,KAAKW,GAAgBA,EAAa,KAAO3C,EAAK,EAAE,EACjD,CAAC,EAAI,CAACA,CAAI,EAGvBgC,EAAc,KAAKW,GAAgBA,EAAa,KAAO3C,EAAK,EAAE,EAExFkD,EAAmBlB,EAAc,OAAOW,GAAgBA,EAAa,KAAO3C,EAAK,EAAE,EAEnFkD,EAAmB,CAAC,GAAGlB,EAAehC,CAAI,EAK9CiC,EAAiBiB,CAAgB,EAGjCnC,IAAcf,EAAMyB,CAAI,EACxBG,IAAwBsB,EAAkBzB,CAAI,CAChD,EAEA,OACEpC,EAAC,OACC,IAAKmB,EACL,UAAWjB,EACT,+EACAuC,EACAzB,IAAW,SAAW,uCAAyC,GAC/DqB,EAAiB,iBAAmB,GACpCpB,CACF,EACA,QAASsC,EACR,GAAGf,EAGJ,UAAAzC,EAACc,EAAA,CAAa,MAAOuB,EAAK,MAAO,KAAMA,EAAK,KAAM,OAAQpB,EAAQ,QAASwC,EAAyB,EAGpGxD,EAAC,OACC,UAAWE,EACT,2IACAwC,EAEA1B,IAAW,SAAW,wCAA0C,EAClE,EAGA,UAAAjB,EAACqB,EAAA,CAAY,KAAMgB,EAAK,KAAM,YAAaA,EAAK,YAAa,OAAQpB,EAAQ,EAG7EjB,EAACwB,EAAA,CACC,cAAea,EAAK,cACpB,UAAWU,EACX,YAAaa,EACb,OAAQ3C,EACV,EAGAjB,EAAC6B,EAAA,CACC,aAAcQ,EAAK,aACnB,cAAeA,EAAK,cACpB,cAAeA,EAAK,cACpB,YAAaA,EAAK,YAClB,YAAaqB,EACb,UAAWC,EACX,OAAQ1C,EACV,GACF,GACF,CAEJ,CACF,EAEAmB,EAAY,YAAc,cAE1B,IAAO2B,EAAQ3B",
6
+ "names": ["jsx", "jsxs", "React", "cn", "Picture", "Button", "Text", "Heading", "Badge", "matchGiftData", "giftId", "giftData", "gift", "variant", "ProductImage", "image", "name", "layout", "className", "onClick", "ref", "ProductInfo", "description", "FreeGiftItem", "GiftSelection", "freeGiftLabel", "freeGifts", "onGiftClick", "index", "PriceAndActions", "currentPrice", "originalPrice", "learnMoreText", "shopNowText", "onLearnMore", "onShopNow", "ProductCard", "data", "onProductClick", "onProductImageClick", "onGiftSelectionChange", "props", "containerWidth", "contentWidth", "selectedGifts", "setSelectedGifts", "initialSelectedGifts", "giftsWithSelection", "matchedGiftInfo", "enhancedGift", "priceValue", "currencyCode", "firstVariant", "variantPriceValue", "variantCurrencyCode", "selectedGift", "handleProductClick", "handleProductImageClick", "handleLearnMoreClick", "handleShopNowClick", "handleGiftClick", "giftSelectionMode", "newSelectedGifts", "ProductCard_default"]
7
+ }
@@ -0,0 +1,36 @@
1
+ /**
2
+ * BuyOneGetOneShelf 数据转换 Hook
3
+ *
4
+ * 将复杂的数据转换逻辑抽离为可复用的 Hook,提供清晰的 API 和错误处理
5
+ */
6
+ import type { BogoItem, BuildData, CopyConfig } from '../index.js';
7
+ import type { ProductCardData, FreeGift } from '../ProductCard.js';
8
+ /** 产品查找结果 */
9
+ interface ProductLookupResult {
10
+ product: any | null;
11
+ variant: any | null;
12
+ }
13
+ /** 赠品提取结果 */
14
+ interface GiftExtractionResult {
15
+ gifts: FreeGift[];
16
+ hasGifts: boolean;
17
+ selectionMode: 'single' | 'multiple';
18
+ }
19
+ /**
20
+ * BuyOneGetOneShelf 数据转换 Hook
21
+ *
22
+ * @param bogoItems - BOGO 商品列表
23
+ * @param copyConfig - 文案配置
24
+ * @param buildData - 构建数据(可选)
25
+ * @returns 转换后的产品卡片数据列表
26
+ */
27
+ export declare const useBogoDataTransform: (bogoItems: BogoItem[], copyConfig: CopyConfig, buildData?: BuildData) => ProductCardData[];
28
+ /**
29
+ * 产品查找 Hook(用于调试和测试)
30
+ */
31
+ export declare const useProductLookup: (sku: string, buildData?: BuildData) => ProductLookupResult;
32
+ /**
33
+ * 赠品提取 Hook(用于调试和测试)
34
+ */
35
+ export declare const useGiftExtraction: (sku: string, buildData?: BuildData) => GiftExtractionResult;
36
+ export {};
@@ -0,0 +1,2 @@
1
+ import{useMemo as a}from"react";const c=(t,r)=>{if(!t||!r)return{product:null,variant:null};try{for(const n of r)if(n?.variants){for(const e of n.variants)if(e?.sku===t)return{product:n,variant:e}}}catch(n){console.warn("Error finding product by SKU:",n)}return{product:null,variant:null}},d=t=>{if(!t?.price)return{currentPrice:"",hasDiscount:!1};const r=`$${t.price.toFixed(2)}`,n=t.metafields?.coupons?.[0];if(n?.fixed_value){const e=Math.abs(parseFloat(n.fixed_value)),i=t.price+e;return{currentPrice:r,originalPrice:`$${i.toFixed(2)}`,hasDiscount:!0}}return{currentPrice:r,hasDiscount:!1}},g=(t,r=0)=>Array.isArray(t)?t.map((n,e)=>({id:n.variant_id||`gift-${r+e}`,image:"https://images.unsplash.com/photo-1558618666-fcd25c85cd64?ixlib=rb-4.0.3&auto=format&fit=crop&w=56&h=56&q=80",name:`Gift: ${n.sku||"Unknown"} (${n.handle||"Unknown"})`,originalPrice:"$0.00",currentPrice:"Free",isNew:e===0,selected:e===0})):[],f=(t,r)=>{const{variant:n}=c(t,r);if(!n?.metafields?.funcFreeGiftObj?.reward_list)return{gifts:[],hasGifts:!1,selectionMode:"single"};try{const e=[];let i=0;for(const o of n.metafields.funcFreeGiftObj.reward_list)if(o.variant_list){const s=g(o.variant_list,i);e.push(...s),i+=s.length}return{gifts:e,hasGifts:e.length>0,selectionMode:(e.length>1,"single")}}catch(e){return console.warn("Error extracting gifts:",e),{gifts:[],hasGifts:!1,selectionMode:"single"}}},p=t=>t&&(t.lgDesktop?.url||t.desktop?.url||t.laptop?.url||t.tablet?.url||t.mobile?.url)||"",m=t=>!t?.tags||!Array.isArray(t.tags)?[]:t.tags.filter(r=>typeof r=="string"),P=(t,r,n)=>{const e=t.data?.[0],i=e?.sku||"",{product:o,variant:s}=c(i,n),u=d(s),l=f(i,n);return{image:p(t.images),name:o?.name||e?.name||"",description:o?.title||o?.name||e?.name||"",currentPrice:u.currentPrice,originalPrice:u.originalPrice,freeGiftLabel:r.freeGiftLabel,learnMoreText:t.learnMoreText||r.learnMoreText,shopNowText:t.shopNowText||r.shopNowText,freeGifts:l.gifts,giftSelectionMode:l.selectionMode,tags:m(o)}},G=(t,r,n)=>a(()=>{if(!Array.isArray(t)||t.length===0)return[];try{return t.map(e=>P(e,r,n))}catch(e){return console.error("Error transforming BOGO items:",e),[]}},[t,r,n]),x=(t,r)=>a(()=>c(t,r),[t,r]),y=(t,r)=>a(()=>f(t,r),[t,r]);export{G as useBogoDataTransform,y as useGiftExtraction,x as useProductLookup};
2
+ //# sourceMappingURL=useBogoDataTransform.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/biz-components/BuyOneGetOneShelf/hooks/useBogoDataTransform.ts"],
4
+ "sourcesContent": ["/**\n * BuyOneGetOneShelf \u6570\u636E\u8F6C\u6362 Hook\n *\n * \u5C06\u590D\u6742\u7684\u6570\u636E\u8F6C\u6362\u903B\u8F91\u62BD\u79BB\u4E3A\u53EF\u590D\u7528\u7684 Hook\uFF0C\u63D0\u4F9B\u6E05\u6670\u7684 API \u548C\u9519\u8BEF\u5904\u7406\n */\n\nimport { useMemo } from 'react'\nimport type { BogoItem, BuildData, CopyConfig, ResponsiveImages } from '../index.js'\nimport type { ProductCardData, FreeGift } from '../ProductCard.js'\n\n// ==================== \u7C7B\u578B\u5B9A\u4E49 ====================\n\n/** \u4EA7\u54C1\u67E5\u627E\u7ED3\u679C */\ninterface ProductLookupResult {\n product: any | null\n variant: any | null\n}\n\n/** \u4EF7\u683C\u8BA1\u7B97\u7ED3\u679C */\ninterface PriceCalculation {\n currentPrice: string\n originalPrice?: string\n hasDiscount: boolean\n}\n\n/** \u8D60\u54C1\u63D0\u53D6\u7ED3\u679C */\ninterface GiftExtractionResult {\n gifts: FreeGift[]\n hasGifts: boolean\n selectionMode: 'single' | 'multiple'\n}\n\n// ==================== \u6838\u5FC3\u5DE5\u5177\u51FD\u6570 ====================\n\n/**\n * \u5B89\u5168\u7684\u4EA7\u54C1\u67E5\u627E\u51FD\u6570\n */\nconst findProductBySku = (sku: string, buildData?: BuildData): ProductLookupResult => {\n if (!sku || !buildData) {\n return { product: null, variant: null }\n }\n\n try {\n for (const product of buildData) {\n if (!product?.variants) continue\n\n for (const variant of product.variants) {\n if (variant?.sku === sku) {\n return {\n product,\n variant,\n }\n }\n }\n }\n } catch (error) {\n console.warn('Error finding product by SKU:', error)\n }\n\n return { product: null, variant: null }\n}\n\n/**\n * \u8BA1\u7B97\u4EA7\u54C1\u4EF7\u683C\uFF08\u5305\u542B\u6298\u6263\u903B\u8F91\uFF09\n */\nconst calculateProductPrice = (variant: any): PriceCalculation => {\n if (!variant?.price) {\n return {\n currentPrice: '',\n hasDiscount: false,\n }\n }\n\n const currentPrice = `$${variant.price.toFixed(2)}`\n\n // \u68C0\u67E5\u662F\u5426\u6709\u4F18\u60E0\u5238\u6298\u6263\n const coupon = variant.metafields?.coupons?.[0]\n if (coupon?.fixed_value) {\n const discountAmount = Math.abs(parseFloat(coupon.fixed_value))\n const originalPriceValue = variant.price + discountAmount\n\n return {\n currentPrice,\n originalPrice: `$${originalPriceValue.toFixed(2)}`,\n hasDiscount: true,\n }\n }\n\n return {\n currentPrice,\n hasDiscount: false,\n }\n}\n\n/**\n * \u4ECE\u5956\u52B1\u53D8\u4F53\u5217\u8868\u521B\u5EFA\u8D60\u54C1\u6570\u636E\n */\nconst createGiftsFromRewards = (rewardVariants: any[], startIndex: number = 0): FreeGift[] => {\n if (!Array.isArray(rewardVariants)) return []\n\n return rewardVariants.map((rewardVariant, index) => ({\n id: rewardVariant.variant_id || `gift-${startIndex + index}`,\n image:\n 'https://images.unsplash.com/photo-1558618666-fcd25c85cd64?ixlib=rb-4.0.3&auto=format&fit=crop&w=56&h=56&q=80',\n name: `Gift: ${rewardVariant.sku || 'Unknown'} (${rewardVariant.handle || 'Unknown'})`,\n originalPrice: '$0.00',\n currentPrice: 'Free',\n isNew: index === 0, // \u7B2C\u4E00\u4E2A\u8D60\u54C1\u6807\u8BB0\u4E3A\u65B0\u54C1\n selected: index === 0, // \u9ED8\u8BA4\u9009\u4E2D\u7B2C\u4E00\u4E2A\u8D60\u54C1\n }))\n}\n\n/**\n * \u63D0\u53D6\u4EA7\u54C1\u7684\u8D60\u54C1\u4FE1\u606F\n */\nconst extractProductGifts = (sku: string, buildData?: BuildData): GiftExtractionResult => {\n const { variant } = findProductBySku(sku, buildData)\n\n if (!variant?.metafields?.funcFreeGiftObj?.reward_list) {\n return {\n gifts: [],\n hasGifts: false,\n selectionMode: 'single',\n }\n }\n\n try {\n const allGifts: FreeGift[] = []\n let giftIndex = 0\n\n // \u904D\u5386\u6240\u6709\u5956\u52B1\u5217\u8868\n for (const reward of variant.metafields.funcFreeGiftObj.reward_list) {\n if (reward.variant_list) {\n const gifts = createGiftsFromRewards(reward.variant_list, giftIndex)\n allGifts.push(...gifts)\n giftIndex += gifts.length\n }\n }\n\n return {\n gifts: allGifts,\n hasGifts: allGifts.length > 0,\n selectionMode: allGifts.length > 1 ? 'single' : 'single',\n }\n } catch (error) {\n console.warn('Error extracting gifts:', error)\n return {\n gifts: [],\n hasGifts: false,\n selectionMode: 'single',\n }\n }\n}\n\n/**\n * \u751F\u6210\u54CD\u5E94\u5F0F\u56FE\u7247 URL\n */\nconst getResponsiveImageUrl = (images?: ResponsiveImages): string => {\n if (!images) return ''\n\n // \u6839\u636E\u5C4F\u5E55\u5C3A\u5BF8\u4F18\u5148\u7EA7\u9009\u62E9\u56FE\u7247\n // \u4F18\u5148\u7EA7\uFF1AlgDesktop > desktop > laptop > tablet > mobile\n return (\n images.lgDesktop?.url || images.desktop?.url || images.laptop?.url || images.tablet?.url || images.mobile?.url || ''\n )\n}\n\n/**\n * \u521B\u5EFA\u4EA7\u54C1\u6807\u7B7E\uFF08\u8FD4\u56DE\u5B57\u7B26\u4E32\u6570\u7EC4\u4EE5\u5339\u914D ProductCardData \u63A5\u53E3\uFF09\n */\nconst createProductTags = (product: any): string[] => {\n if (!product?.tags || !Array.isArray(product.tags)) {\n return []\n }\n\n return product.tags.filter((tag: string) => typeof tag === 'string')\n}\n\n// ==================== \u4E3B\u8981\u8F6C\u6362\u51FD\u6570 ====================\n\n/**\n * \u5C06\u5355\u4E2A BogoItem \u8F6C\u6362\u4E3A ProductCardData\n */\nconst transformSingleBogoItem = (\n bogoItem: BogoItem,\n copyConfig: CopyConfig,\n buildData?: BuildData\n): ProductCardData => {\n const productData = bogoItem.data?.[0]\n const sku = productData?.sku || ''\n\n // \u67E5\u627E\u4EA7\u54C1\u4FE1\u606F\n const { product, variant } = findProductBySku(sku, buildData)\n\n // \u8BA1\u7B97\u4EF7\u683C\n const priceInfo = calculateProductPrice(variant)\n\n // \u63D0\u53D6\u8D60\u54C1\n const giftInfo = extractProductGifts(sku, buildData)\n\n // \u6784\u5EFA\u6700\u7EC8\u6570\u636E\n return {\n image: getResponsiveImageUrl(bogoItem.images),\n name: product?.name || productData?.name || '',\n description: product?.title || product?.name || productData?.name || '',\n currentPrice: priceInfo.currentPrice,\n originalPrice: priceInfo.originalPrice,\n freeGiftLabel: copyConfig.freeGiftLabel,\n learnMoreText: bogoItem.learnMoreText || copyConfig.learnMoreText,\n shopNowText: bogoItem.shopNowText || copyConfig.shopNowText,\n freeGifts: giftInfo.gifts,\n giftSelectionMode: giftInfo.selectionMode,\n tags: createProductTags(product),\n }\n}\n\n// ==================== \u4E3B\u8981 Hook ====================\n\n/**\n * BuyOneGetOneShelf \u6570\u636E\u8F6C\u6362 Hook\n *\n * @param bogoItems - BOGO \u5546\u54C1\u5217\u8868\n * @param copyConfig - \u6587\u6848\u914D\u7F6E\n * @param buildData - \u6784\u5EFA\u6570\u636E\uFF08\u53EF\u9009\uFF09\n * @returns \u8F6C\u6362\u540E\u7684\u4EA7\u54C1\u5361\u7247\u6570\u636E\u5217\u8868\n */\nexport const useBogoDataTransform = (\n bogoItems: BogoItem[],\n copyConfig: CopyConfig,\n buildData?: BuildData\n): ProductCardData[] => {\n return useMemo(() => {\n if (!Array.isArray(bogoItems) || bogoItems.length === 0) {\n return []\n }\n\n try {\n return bogoItems.map(bogoItem => transformSingleBogoItem(bogoItem, copyConfig, buildData))\n } catch (error) {\n console.error('Error transforming BOGO items:', error)\n return []\n }\n }, [bogoItems, copyConfig, buildData])\n}\n\n/**\n * \u4EA7\u54C1\u67E5\u627E Hook\uFF08\u7528\u4E8E\u8C03\u8BD5\u548C\u6D4B\u8BD5\uFF09\n */\nexport const useProductLookup = (sku: string, buildData?: BuildData) => {\n return useMemo(() => {\n return findProductBySku(sku, buildData)\n }, [sku, buildData])\n}\n\n/**\n * \u8D60\u54C1\u63D0\u53D6 Hook\uFF08\u7528\u4E8E\u8C03\u8BD5\u548C\u6D4B\u8BD5\uFF09\n */\nexport const useGiftExtraction = (sku: string, buildData?: BuildData) => {\n return useMemo(() => {\n return extractProductGifts(sku, buildData)\n }, [sku, buildData])\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["useMemo", "findProductBySku", "sku", "buildData", "product", "variant", "error", "calculateProductPrice", "currentPrice", "coupon", "discountAmount", "originalPriceValue", "createGiftsFromRewards", "rewardVariants", "startIndex", "rewardVariant", "index", "extractProductGifts", "allGifts", "giftIndex", "reward", "gifts", "getResponsiveImageUrl", "images", "createProductTags", "tag", "transformSingleBogoItem", "bogoItem", "copyConfig", "productData", "priceInfo", "giftInfo", "useBogoDataTransform", "bogoItems", "useProductLookup", "useGiftExtraction"]
7
+ }
@@ -0,0 +1,193 @@
1
+ import * as React from 'react';
2
+ import { type ProductCardData, type FreeGift } from './ProductCard.js';
3
+ /**
4
+ * 产品标签接口
5
+ */
6
+ export interface ProductTag {
7
+ /** 标签文本 */
8
+ text: string;
9
+ /** 标签类型 */
10
+ type: 'discount' | 'new' | 'default';
11
+ /** 标签样式变体 */
12
+ variant: 'filled' | 'outlined';
13
+ }
14
+ export type BuyOneGetOneShelfSemanticName = 'root' | 'title' | 'description' | 'content' | 'productCard' | 'productCardImage' | 'productCardTitle' | 'productCardDescription' | 'productCardPrice' | 'productCardGiftsContainer' | 'productCardBtnGroup';
15
+ /**
16
+ * 响应式图片接口
17
+ */
18
+ export interface ResponsiveImage {
19
+ id: number;
20
+ baseUrl: string;
21
+ url: string;
22
+ thumbnailURL: string;
23
+ filename: string;
24
+ mimeType: string;
25
+ width: number;
26
+ height: number;
27
+ }
28
+ /**
29
+ * 响应式图片集合接口
30
+ */
31
+ export interface ResponsiveImages {
32
+ laptop?: ResponsiveImage;
33
+ mobile?: ResponsiveImage;
34
+ tablet?: ResponsiveImage;
35
+ desktop?: ResponsiveImage;
36
+ lgDesktop?: ResponsiveImage;
37
+ }
38
+ /**
39
+ * 产品基础数据接口
40
+ */
41
+ export interface ProductData {
42
+ sku: string;
43
+ name: string;
44
+ image: string;
45
+ value: string;
46
+ handle: string;
47
+ shopify_id: string;
48
+ }
49
+ /**
50
+ * 文案配置接口
51
+ */
52
+ export interface CopyConfig {
53
+ shopNowText: string;
54
+ freeGiftLabel: string;
55
+ learnMoreText: string;
56
+ freeGiftHeading: string;
57
+ }
58
+ /**
59
+ * 买赠项目接口
60
+ */
61
+ export interface BogoItem {
62
+ id: string;
63
+ data: ProductData[];
64
+ images: ResponsiveImages;
65
+ shopNowFun: string;
66
+ shopNowText: string;
67
+ learnMoreText: string;
68
+ }
69
+ /**
70
+ * 赠品变体接口
71
+ */
72
+ export interface RewardVariant {
73
+ variant_id: string;
74
+ sku: string;
75
+ handle: string;
76
+ }
77
+ /**
78
+ * 赠品奖励接口
79
+ */
80
+ export interface RewardItem {
81
+ get_unit: number;
82
+ variant_list: RewardVariant[];
83
+ }
84
+ /**
85
+ * 免费赠品对象接口
86
+ */
87
+ export interface FuncFreeGiftObj {
88
+ rule_id: number;
89
+ rule_type: number;
90
+ discount_label: {
91
+ cart_checkout_label: string;
92
+ product_label: string;
93
+ sold_out_label: string;
94
+ };
95
+ frontend_labels?: any[];
96
+ apply_unit: number;
97
+ discount_combinations: {
98
+ other_order_discounts: boolean;
99
+ other_product_discounts: boolean;
100
+ shipping_discounts: boolean;
101
+ };
102
+ gift_type: number;
103
+ reward_list: RewardItem[];
104
+ }
105
+ /**
106
+ * 产品变体接口 (BuildData)
107
+ */
108
+ export interface BuildProductVariant {
109
+ sku: string;
110
+ price: number;
111
+ availableForSale: boolean;
112
+ metafields: {
113
+ coupons?: any[];
114
+ infos?: any;
115
+ funcFreeGiftObj?: FuncFreeGiftObj;
116
+ };
117
+ id: string;
118
+ name: string;
119
+ image?: {
120
+ url: string;
121
+ altText?: string;
122
+ };
123
+ quantityAvailable?: number;
124
+ }
125
+ /**
126
+ * 构建产品接口 (BuildData)
127
+ */
128
+ export interface BuildProduct {
129
+ handle: string;
130
+ variants: BuildProductVariant[];
131
+ id: string;
132
+ name: string;
133
+ title: string;
134
+ description: string;
135
+ totalInventory?: number;
136
+ tags?: string[];
137
+ price: {
138
+ value: number;
139
+ currencyCode: string;
140
+ };
141
+ images: {
142
+ url: string;
143
+ altText?: string;
144
+ }[];
145
+ }
146
+ /**
147
+ * BuildData 类型定义
148
+ */
149
+ export type BuildData = BuildProduct[];
150
+ /**
151
+ * BuyOneGetOneShelf 业务组件数据接口 - 新格式
152
+ */
153
+ export interface BuyOneGetOneShelfData {
154
+ id: string;
155
+ copy: CopyConfig;
156
+ theme: string;
157
+ title: string;
158
+ display: string;
159
+ subtitle: string;
160
+ blockName: string;
161
+ blockType: string;
162
+ bogoItems: BogoItem[];
163
+ }
164
+ export interface BuyOneGetOneShelfProps extends React.HTMLAttributes<HTMLDivElement> {
165
+ /** 业务数据 */
166
+ data: BuyOneGetOneShelfData;
167
+ /** 构建时数据 - 产品详细信息,包含赠品数据 */
168
+ buildData?: BuildData;
169
+ /** 礼品数据源,用于匹配实际的价格、图片、标题 */
170
+ giftData?: any;
171
+ /** 布局模式:一排一个或一排两个 */
172
+ layout?: 'single' | 'double';
173
+ /** 产品卡片点击事件 */
174
+ onProductClick?: (product: ProductCardData, bogoItem?: BogoItem) => void;
175
+ /** 产品图片点击事件 */
176
+ onProductImageClick?: (product: ProductCardData, bogoItem?: BogoItem) => void;
177
+ /** Learn More按钮点击事件 */
178
+ onLearnMore?: (product: ProductCardData, bogoItem?: BogoItem) => void;
179
+ /** Shop Now按钮点击事件 */
180
+ onShopNow?: (product: ProductCardData, bogoItem?: BogoItem) => void;
181
+ /** 赠品点击事件 */
182
+ onGiftClick?: (gift: FreeGift, product: ProductCardData) => void;
183
+ /** 赠品选择变化事件 */
184
+ onGiftSelectionChange?: (selectedGifts: FreeGift[], product: ProductCardData) => void;
185
+ classNames?: Partial<Record<BuyOneGetOneShelfSemanticName, string>>;
186
+ }
187
+ /**
188
+ * BuyOneGetOneShelf - (WIP)买赠货架
189
+ *
190
+ * @description 这是一个买主商品赠送赠品的活动组件,展示产品卡片,支持一排一个或一排两个的布局
191
+ */
192
+ declare const BuyOneGetOneShelf: React.ForwardRefExoticComponent<BuyOneGetOneShelfProps & React.RefAttributes<HTMLDivElement>>;
193
+ export default BuyOneGetOneShelf;
@@ -0,0 +1,2 @@
1
+ "use client";import{jsx as a,jsxs as T}from"react/jsx-runtime";import*as n from"react";import{cn as i}from"../../helpers/index.js";import O from"./ProductCard.js";import{useBogoDataTransform as R}from"./hooks/useBogoDataTransform.js";import{Heading as w,Text as S}from"../../components/index.js";const f=n.forwardRef(({className:b,classNames:s={},data:t,buildData:y,giftData:C,layout:l="single",onProductClick:u,onProductImageClick:c,onLearnMore:d,onShopNow:g,onGiftClick:h,onGiftSelectionChange:I,...v},x)=>{const P=R(t.bogoItems,t.copy,y),D=n.useCallback((r,e)=>{u?.(r,t.bogoItems[e])},[u,t]),G=n.useCallback((r,e)=>{c?.(r,t.bogoItems[e])},[c,t]),B=n.useCallback((r,e)=>{d?.(r,t.bogoItems[e])},[d,t]),_=n.useCallback((r,e)=>{g?.(r,t.bogoItems[e])},[g,t]),p=t.title,m=t.subtitle;return T("div",{ref:x,className:i("w-full px-32 py-0",b,s?.root),...v,children:[p&&a(w,{as:"h2",html:p,className:i("mb-4 text-2xl font-bold",s?.title)}),m&&a(S,{size:3,as:"p",html:m,className:i("mb-6 text-gray-600",s?.description)}),a("div",{className:i("flex flex-wrap",l==="single"?"flex-col gap-6":"flex-row gap-6"),children:P.map((r,e)=>{const k=t.bogoItems[e]?.id||e;return a(O,{data:r,giftData:C,layout:l,onProductClick:o=>D(o,e),onProductImageClick:o=>G(o,e),onLearnMore:o=>B(o,e),onShopNow:o=>_(o,e),onGiftClick:h,onGiftSelectionChange:I},k)})})]})});f.displayName="BuyOneGetOneShelf";var H=f;export{H as default};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/biz-components/BuyOneGetOneShelf/index.tsx"],
4
+ "sourcesContent": ["'use client'\n\nimport * as React from 'react'\nimport { cn } from '../../helpers/index.js'\nimport ProductCard, { type ProductCardData, type FreeGift } from './ProductCard.js'\nimport { useBogoDataTransform } from './hooks/useBogoDataTransform.js'\nimport { Heading, Text } from '../../components/index.js'\n\n/**\n * \u4EA7\u54C1\u6807\u7B7E\u63A5\u53E3\n */\nexport interface ProductTag {\n /** \u6807\u7B7E\u6587\u672C */\n text: string\n /** \u6807\u7B7E\u7C7B\u578B */\n type: 'discount' | 'new' | 'default'\n /** \u6807\u7B7E\u6837\u5F0F\u53D8\u4F53 */\n variant: 'filled' | 'outlined'\n}\n\nexport type BuyOneGetOneShelfSemanticName =\n | 'root'\n | 'title'\n | 'description'\n | 'content'\n | 'productCard'\n | 'productCardImage'\n | 'productCardTitle'\n | 'productCardDescription'\n | 'productCardPrice'\n | 'productCardGiftsContainer'\n | 'productCardBtnGroup'\n\n/**\n * \u54CD\u5E94\u5F0F\u56FE\u7247\u63A5\u53E3\n */\nexport interface ResponsiveImage {\n id: number\n baseUrl: string\n url: string\n thumbnailURL: string\n filename: string\n mimeType: string\n width: number\n height: number\n}\n\n/**\n * \u54CD\u5E94\u5F0F\u56FE\u7247\u96C6\u5408\u63A5\u53E3\n */\nexport interface ResponsiveImages {\n laptop?: ResponsiveImage\n mobile?: ResponsiveImage\n tablet?: ResponsiveImage\n desktop?: ResponsiveImage\n lgDesktop?: ResponsiveImage\n}\n\n/**\n * \u4EA7\u54C1\u57FA\u7840\u6570\u636E\u63A5\u53E3\n */\nexport interface ProductData {\n sku: string\n name: string\n image: string\n value: string\n handle: string\n shopify_id: string\n}\n\n/**\n * \u6587\u6848\u914D\u7F6E\u63A5\u53E3\n */\nexport interface CopyConfig {\n shopNowText: string\n freeGiftLabel: string\n learnMoreText: string\n freeGiftHeading: string\n}\n\n/**\n * \u4E70\u8D60\u9879\u76EE\u63A5\u53E3\n */\nexport interface BogoItem {\n id: string\n data: ProductData[]\n images: ResponsiveImages\n shopNowFun: string\n shopNowText: string\n learnMoreText: string\n}\n\n/**\n * \u8D60\u54C1\u53D8\u4F53\u63A5\u53E3\n */\nexport interface RewardVariant {\n variant_id: string\n sku: string\n handle: string\n}\n\n/**\n * \u8D60\u54C1\u5956\u52B1\u63A5\u53E3\n */\nexport interface RewardItem {\n get_unit: number\n variant_list: RewardVariant[]\n}\n\n/**\n * \u514D\u8D39\u8D60\u54C1\u5BF9\u8C61\u63A5\u53E3\n */\nexport interface FuncFreeGiftObj {\n rule_id: number\n rule_type: number\n discount_label: {\n cart_checkout_label: string\n product_label: string\n sold_out_label: string\n }\n frontend_labels?: any[]\n apply_unit: number\n discount_combinations: {\n other_order_discounts: boolean\n other_product_discounts: boolean\n shipping_discounts: boolean\n }\n gift_type: number\n reward_list: RewardItem[]\n}\n\n/**\n * \u4EA7\u54C1\u53D8\u4F53\u63A5\u53E3 (BuildData)\n */\nexport interface BuildProductVariant {\n sku: string\n price: number\n availableForSale: boolean\n metafields: {\n coupons?: any[]\n infos?: any\n funcFreeGiftObj?: FuncFreeGiftObj\n }\n id: string\n name: string\n image?: {\n url: string\n altText?: string\n }\n quantityAvailable?: number\n}\n\n/**\n * \u6784\u5EFA\u4EA7\u54C1\u63A5\u53E3 (BuildData)\n */\nexport interface BuildProduct {\n handle: string\n variants: BuildProductVariant[]\n id: string\n name: string\n title: string\n description: string\n totalInventory?: number\n tags?: string[]\n price: {\n value: number\n currencyCode: string\n }\n images: {\n url: string\n altText?: string\n }[]\n}\n\n/**\n * BuildData \u7C7B\u578B\u5B9A\u4E49\n */\nexport type BuildData = BuildProduct[]\n\n/**\n * BuyOneGetOneShelf \u4E1A\u52A1\u7EC4\u4EF6\u6570\u636E\u63A5\u53E3 - \u65B0\u683C\u5F0F\n */\nexport interface BuyOneGetOneShelfData {\n id: string\n copy: CopyConfig\n theme: string\n title: string\n display: string\n subtitle: string\n blockName: string\n blockType: string\n bogoItems: BogoItem[]\n}\n\nexport interface BuyOneGetOneShelfProps extends React.HTMLAttributes<HTMLDivElement> {\n /** \u4E1A\u52A1\u6570\u636E */\n data: BuyOneGetOneShelfData\n /** \u6784\u5EFA\u65F6\u6570\u636E - \u4EA7\u54C1\u8BE6\u7EC6\u4FE1\u606F\uFF0C\u5305\u542B\u8D60\u54C1\u6570\u636E */\n buildData?: BuildData\n /** \u793C\u54C1\u6570\u636E\u6E90\uFF0C\u7528\u4E8E\u5339\u914D\u5B9E\u9645\u7684\u4EF7\u683C\u3001\u56FE\u7247\u3001\u6807\u9898 */\n giftData?: any\n /** \u5E03\u5C40\u6A21\u5F0F\uFF1A\u4E00\u6392\u4E00\u4E2A\u6216\u4E00\u6392\u4E24\u4E2A */\n layout?: 'single' | 'double'\n /** \u4EA7\u54C1\u5361\u7247\u70B9\u51FB\u4E8B\u4EF6 */\n onProductClick?: (product: ProductCardData, bogoItem?: BogoItem) => void\n /** \u4EA7\u54C1\u56FE\u7247\u70B9\u51FB\u4E8B\u4EF6 */\n onProductImageClick?: (product: ProductCardData, bogoItem?: BogoItem) => void\n /** Learn More\u6309\u94AE\u70B9\u51FB\u4E8B\u4EF6 */\n onLearnMore?: (product: ProductCardData, bogoItem?: BogoItem) => void\n /** Shop Now\u6309\u94AE\u70B9\u51FB\u4E8B\u4EF6 */\n onShopNow?: (product: ProductCardData, bogoItem?: BogoItem) => void\n /** \u8D60\u54C1\u70B9\u51FB\u4E8B\u4EF6 */\n onGiftClick?: (gift: FreeGift, product: ProductCardData) => void\n /** \u8D60\u54C1\u9009\u62E9\u53D8\u5316\u4E8B\u4EF6 */\n onGiftSelectionChange?: (selectedGifts: FreeGift[], product: ProductCardData) => void\n classNames?: Partial<Record<BuyOneGetOneShelfSemanticName, string>>\n}\n\n// \u65E7\u7684\u8F6C\u6362\u51FD\u6570\u5DF2\u79FB\u81F3 hooks/useBogoDataTransform.ts \u4E2D\n// \u8FD9\u91CC\u5220\u9664\u4E86\uFF1A\n// - getResponsiveImageUrl\n// - findProductBySku\n// - getGiftProductsBySku\n// - extractFreeGifts\n// - transformBogoItemToProductCard\n\n/**\n * BuyOneGetOneShelf - (WIP)\u4E70\u8D60\u8D27\u67B6\n *\n * @description \u8FD9\u662F\u4E00\u4E2A\u4E70\u4E3B\u5546\u54C1\u8D60\u9001\u8D60\u54C1\u7684\u6D3B\u52A8\u7EC4\u4EF6\uFF0C\u5C55\u793A\u4EA7\u54C1\u5361\u7247\uFF0C\u652F\u6301\u4E00\u6392\u4E00\u4E2A\u6216\u4E00\u6392\u4E24\u4E2A\u7684\u5E03\u5C40\n */\nconst BuyOneGetOneShelf = React.forwardRef<HTMLDivElement, BuyOneGetOneShelfProps>(\n (\n {\n className,\n classNames = {},\n data,\n buildData,\n giftData,\n layout = 'single',\n onProductClick,\n onProductImageClick,\n onLearnMore,\n onShopNow,\n onGiftClick,\n onGiftSelectionChange,\n ...props\n },\n ref\n ) => {\n // \u4F7F\u7528 Hook \u5C06 bogoItems \u8F6C\u6362\u4E3A ProductCardData \u683C\u5F0F\n const products = useBogoDataTransform(data.bogoItems, data.copy, buildData)\n\n // \u5904\u7406\u4E8B\u4EF6\n const handleProductClick = React.useCallback(\n (product: ProductCardData, index: number) => {\n onProductClick?.(product, data.bogoItems[index])\n },\n [onProductClick, data]\n )\n\n const handleProductImageClick = React.useCallback(\n (product: ProductCardData, index: number) => {\n onProductImageClick?.(product, data.bogoItems[index])\n },\n [onProductImageClick, data]\n )\n\n const handleLearnMore = React.useCallback(\n (product: ProductCardData, index: number) => {\n onLearnMore?.(product, data.bogoItems[index])\n },\n [onLearnMore, data]\n )\n\n const handleShopNow = React.useCallback(\n (product: ProductCardData, index: number) => {\n onShopNow?.(product, data.bogoItems[index])\n },\n [onShopNow, data]\n )\n\n // \u83B7\u53D6\u6807\u9898\u548C\u63CF\u8FF0\n const title = data.title\n const description = data.subtitle\n\n return (\n <div ref={ref} className={cn('w-full px-32 py-0', className, classNames?.root)} {...props}>\n {title && <Heading as=\"h2\" html={title} className={cn('mb-4 text-2xl font-bold', classNames?.title)} />}\n {description && (\n <Text size={3} as=\"p\" html={description} className={cn('mb-6 text-gray-600', classNames?.description)} />\n )}\n\n {/* \u4E70\u8D60\u8D27\u67B6\u4EA7\u54C1\u533A\u57DF */}\n <div className={cn('flex flex-wrap', layout === 'single' ? 'flex-col gap-6' : 'flex-row gap-6')}>\n {products.map((product, index) => {\n const key = data.bogoItems[index]?.id || index\n return (\n <ProductCard\n key={key}\n data={product}\n giftData={giftData}\n layout={layout}\n onProductClick={productData => handleProductClick(productData, index)}\n onProductImageClick={productData => handleProductImageClick(productData, index)}\n onLearnMore={productData => handleLearnMore(productData, index)}\n onShopNow={productData => handleShopNow(productData, index)}\n onGiftClick={onGiftClick}\n onGiftSelectionChange={onGiftSelectionChange}\n />\n )\n })}\n </div>\n </div>\n )\n }\n)\n\nBuyOneGetOneShelf.displayName = 'BuyOneGetOneShelf'\n\nexport default BuyOneGetOneShelf\n"],
5
+ "mappings": "aA+RM,OACY,OAAAA,EADZ,QAAAC,MAAA,oBA7RN,UAAYC,MAAW,QACvB,OAAS,MAAAC,MAAU,yBACnB,OAAOC,MAA0D,mBACjE,OAAS,wBAAAC,MAA4B,kCACrC,OAAS,WAAAC,EAAS,QAAAC,MAAY,4BAiO9B,MAAMC,EAAoBN,EAAM,WAC9B,CACE,CACE,UAAAO,EACA,WAAAC,EAAa,CAAC,EACd,KAAAC,EACA,UAAAC,EACA,SAAAC,EACA,OAAAC,EAAS,SACT,eAAAC,EACA,oBAAAC,EACA,YAAAC,EACA,UAAAC,EACA,YAAAC,EACA,sBAAAC,EACA,GAAGC,CACL,EACAC,IACG,CAEH,MAAMC,EAAWlB,EAAqBM,EAAK,UAAWA,EAAK,KAAMC,CAAS,EAGpEY,EAAqBtB,EAAM,YAC/B,CAACuB,EAA0BC,IAAkB,CAC3CX,IAAiBU,EAASd,EAAK,UAAUe,CAAK,CAAC,CACjD,EACA,CAACX,EAAgBJ,CAAI,CACvB,EAEMgB,EAA0BzB,EAAM,YACpC,CAACuB,EAA0BC,IAAkB,CAC3CV,IAAsBS,EAASd,EAAK,UAAUe,CAAK,CAAC,CACtD,EACA,CAACV,EAAqBL,CAAI,CAC5B,EAEMiB,EAAkB1B,EAAM,YAC5B,CAACuB,EAA0BC,IAAkB,CAC3CT,IAAcQ,EAASd,EAAK,UAAUe,CAAK,CAAC,CAC9C,EACA,CAACT,EAAaN,CAAI,CACpB,EAEMkB,EAAgB3B,EAAM,YAC1B,CAACuB,EAA0BC,IAAkB,CAC3CR,IAAYO,EAASd,EAAK,UAAUe,CAAK,CAAC,CAC5C,EACA,CAACR,EAAWP,CAAI,CAClB,EAGMmB,EAAQnB,EAAK,MACboB,EAAcpB,EAAK,SAEzB,OACEV,EAAC,OAAI,IAAKqB,EAAK,UAAWnB,EAAG,oBAAqBM,EAAWC,GAAY,IAAI,EAAI,GAAGW,EACjF,UAAAS,GAAS9B,EAACM,EAAA,CAAQ,GAAG,KAAK,KAAMwB,EAAO,UAAW3B,EAAG,0BAA2BO,GAAY,KAAK,EAAG,EACpGqB,GACC/B,EAACO,EAAA,CAAK,KAAM,EAAG,GAAG,IAAI,KAAMwB,EAAa,UAAW5B,EAAG,qBAAsBO,GAAY,WAAW,EAAG,EAIzGV,EAAC,OAAI,UAAWG,EAAG,iBAAkBW,IAAW,SAAW,iBAAmB,gBAAgB,EAC3F,SAAAS,EAAS,IAAI,CAACE,EAASC,IAAU,CAChC,MAAMM,EAAMrB,EAAK,UAAUe,CAAK,GAAG,IAAMA,EACzC,OACE1B,EAACI,EAAA,CAEC,KAAMqB,EACN,SAAUZ,EACV,OAAQC,EACR,eAAgBmB,GAAeT,EAAmBS,EAAaP,CAAK,EACpE,oBAAqBO,GAAeN,EAAwBM,EAAaP,CAAK,EAC9E,YAAaO,GAAeL,EAAgBK,EAAaP,CAAK,EAC9D,UAAWO,GAAeJ,EAAcI,EAAaP,CAAK,EAC1D,YAAaP,EACb,sBAAuBC,GATlBY,CAUP,CAEJ,CAAC,EACH,GACF,CAEJ,CACF,EAEAxB,EAAkB,YAAc,oBAEhC,IAAO0B,EAAQ1B",
6
+ "names": ["jsx", "jsxs", "React", "cn", "ProductCard", "useBogoDataTransform", "Heading", "Text", "BuyOneGetOneShelf", "className", "classNames", "data", "buildData", "giftData", "layout", "onProductClick", "onProductImageClick", "onLearnMore", "onShopNow", "onGiftClick", "onGiftSelectionChange", "props", "ref", "products", "handleProductClick", "product", "index", "handleProductImageClick", "handleLearnMore", "handleShopNow", "title", "description", "key", "productData", "BuyOneGetOneShelf_default"]
7
+ }
@@ -28,8 +28,8 @@ export interface CategoryProps {
28
28
  };
29
29
  key?: string;
30
30
  }
31
- declare const _default: React.ForwardRefExoticComponent<Omit<Omit<CategoryProps & React.RefAttributes<HTMLDivElement>, keyof import("../../shared/Styles.js").StylesProps> & Partial<import("../../shared/Styles.js").StylesProps & import("../../shared/Styles.js").ContainerProps> & {
32
- className?: string;
33
- data?: Record<string, any>;
31
+ declare const _default: React.ForwardRefExoticComponent<Omit<CategoryProps & React.RefAttributes<HTMLDivElement> & {
32
+ style?: string | React.CSSProperties;
33
+ container?: import("../../shared/Styles.js").ContainerProps["container"];
34
34
  }, "ref"> & React.RefAttributes<any>>;
35
35
  export default _default;
@@ -14,8 +14,8 @@ type CreativeModuleType = {
14
14
  };
15
15
  className?: string;
16
16
  };
17
- declare const _default: import("react").ForwardRefExoticComponent<Omit<CreativeModuleType, keyof import("../../shared/Styles.js").StylesProps> & Partial<import("../../shared/Styles.js").StylesProps & import("../../shared/Styles.js").ContainerProps> & {
18
- className?: string;
19
- data?: Record<string, any>;
17
+ declare const _default: import("react").ForwardRefExoticComponent<CreativeModuleType & {
18
+ style?: string | React.CSSProperties;
19
+ container?: import("../../shared/Styles.js").ContainerProps["container"];
20
20
  } & import("react").RefAttributes<any>>;
21
21
  export default _default;
@@ -13,8 +13,8 @@ type DownLoadType = {
13
13
  };
14
14
  className?: string;
15
15
  };
16
- declare const _default: import("react").ForwardRefExoticComponent<Omit<DownLoadType, keyof import("../../shared/Styles.js").StylesProps> & Partial<import("../../shared/Styles.js").StylesProps & import("../../shared/Styles.js").ContainerProps> & {
17
- className?: string;
18
- data?: Record<string, any>;
16
+ declare const _default: import("react").ForwardRefExoticComponent<DownLoadType & {
17
+ style?: string | React.CSSProperties;
18
+ container?: import("../../shared/Styles.js").ContainerProps["container"];
19
19
  } & import("react").RefAttributes<any>>;
20
20
  export default _default;
@@ -30,8 +30,8 @@ export interface EvaluateProps {
30
30
  };
31
31
  key?: string;
32
32
  }
33
- declare const _default: React.ForwardRefExoticComponent<Omit<Omit<EvaluateProps & React.RefAttributes<HTMLDivElement>, keyof import("../../shared/Styles.js").StylesProps> & Partial<import("../../shared/Styles.js").StylesProps & import("../../shared/Styles.js").ContainerProps> & {
34
- className?: string;
35
- data?: Record<string, any>;
33
+ declare const _default: React.ForwardRefExoticComponent<Omit<EvaluateProps & React.RefAttributes<HTMLDivElement> & {
34
+ style?: string | React.CSSProperties;
35
+ container?: import("../../shared/Styles.js").ContainerProps["container"];
36
36
  }, "ref"> & React.RefAttributes<any>>;
37
37
  export default _default;
@@ -0,0 +1,63 @@
1
+ import * as React from 'react';
2
+ import type { Media } from '../../types/props.js';
3
+ export type EventScheduleSemanticName = 'root' | 'timeline' | 'eventScheduleCard';
4
+ /**
5
+ * 状态化图标配置
6
+ */
7
+ export interface StateIcon {
8
+ /** 激活状态的图标 */
9
+ active: Media;
10
+ /** 非激活状态的图标 */
11
+ inactive: Media;
12
+ }
13
+ /**
14
+ * 活动日程项数据接口
15
+ */
16
+ export interface EventScheduleItem {
17
+ /** 标题 */
18
+ title: string;
19
+ /** 开始日期(ISO 8601 格式或任何 dayjs 支持的格式,如 '2024-12-01') */
20
+ startDate: string;
21
+ /** 结束日期(ISO 8601 格式或任何 dayjs 支持的格式,如 '2024-12-31') */
22
+ endDate: string;
23
+ /**
24
+ * 卡片背景图标配置,状态化图标(必须包含 active 和 inactive)
25
+ *
26
+ * @example
27
+ * icon: {
28
+ * active: { url: "https://example.com/active-icon.svg", alt: "Active Icon" },
29
+ * inactive: { url: "https://example.com/inactive-icon.svg", alt: "Inactive Icon" }
30
+ * }
31
+ */
32
+ icon?: StateIcon;
33
+ /** 详细信息列表 */
34
+ items: {
35
+ /** 图标 (SVG 字符串或 URL) */
36
+ icon?: Media;
37
+ /** 文本内容 */
38
+ label: string;
39
+ }[];
40
+ }
41
+ /**
42
+ * EventSchedule 业务组件数据接口
43
+ */
44
+ export interface EventScheduleData {
45
+ /** 日程列表 */
46
+ scheduleList: EventScheduleItem[];
47
+ /** 是否显示时间轴,默认为 true */
48
+ showTimeline?: boolean;
49
+ /** 主题模式 */
50
+ theme?: 'light' | 'dark';
51
+ }
52
+ export interface EventScheduleProps extends React.HTMLAttributes<HTMLDivElement> {
53
+ /** 业务数据 */
54
+ data: EventScheduleData;
55
+ classNames?: Partial<Record<EventScheduleSemanticName, string>>;
56
+ }
57
+ /**
58
+ * EventSchedule - 活动日程组件
59
+ *
60
+ * @description 显示活动日程时间轴和活动卡片列表
61
+ */
62
+ declare const EventSchedule: React.ForwardRefExoticComponent<EventScheduleProps & React.RefAttributes<HTMLDivElement>>;
63
+ export default EventSchedule;
@@ -0,0 +1,2 @@
1
+ "use client";import{jsx as a,jsxs as m}from"react/jsx-runtime";import*as r from"react";import{cn as v}from"../../helpers/index.js";import{Text as P,Picture as T,Heading as F}from"../../components/index.js";import{Swiper as y,SwiperSlide as C}from"swiper/react";import x from"dayjs";import{cva as g}from"class-variance-authority";const z=(i,t)=>{const o=x(),c=x(i).startOf("day"),s=x(t).endOf("day");return o.isAfter(c)&&o.isBefore(s)},S=i=>z(i.startDate,i.endDate),R=g("h-2 w-full overflow-hidden",{variants:{state:{"active-light":"bg-[#F6CD4E]","inactive-light":"bg-[#EAEAEC]","active-dark":"bg-[#D79941]","inactive-dark":"bg-[#75787F]"}},defaultVariants:{state:"inactive-light"}}),j=g("size-4 rounded-full transition-colors",{variants:{state:{"active-light":"bg-[#F6CD4E]","inactive-light":"bg-[#EAEAEC]","active-dark":"bg-[#D79941]","inactive-dark":"bg-[#75787F]"}},defaultVariants:{state:"inactive-light"}}),A=g("font-bold leading-[1.2]",{variants:{state:{"active-light":"text-[#080A0F]","inactive-light":"text-[#4A4C56]","active-dark":"text-white","inactive-dark":"text-[#8A8D92]"}},defaultVariants:{state:"inactive-light"}}),H=g("laptop:h-[160px] rounded-box relative flex h-[120px] min-w-0 flex-col justify-between gap-2 overflow-hidden",{variants:{state:{"active-light":"bg-[#F4E8BC]","inactive-light":"bg-[#EAEAEC]","active-dark":"bg-[#D79941]","inactive-dark":"bg-[#1E2024]"}},defaultVariants:{state:"inactive-light"}}),$=({active:i,theme:t="light",className:o,index:c,nodeLength:s})=>{const l=`${i?"active":"inactive"}-${t}`,n=c===0,d=c===s-1;return m("div",{className:"relative my-1 flex h-2 w-full items-center justify-center",children:[a("div",{className:v(R({state:l}),n&&"rounded-l-full",d&&"rounded-r-full",o)}),a("div",{className:"absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2",children:a("div",{className:j({state:l})})})]})},O=(i,t)=>{if(i)return t?i.active:i.inactive},q=({active:i,item:t,theme:o="light",className:c})=>{const s=r.useMemo(()=>O(t.icon,i),[t.icon,i]),l=`${i?"active":"inactive"}-${o}`;return m("div",{className:v(H({state:l}),c),children:[s&&a("div",{className:"laptop:w-[128px] desktop:w-[160px] absolute bottom-0 right-0 z-10 w-[120px]",children:a(T,{source:s.url,alt:s.alt,className:"aspect-square"})}),m("div",{className:"tablet:px-4 tablet:py-3 laptop:p-4 desktop:px-6 relative z-20 flex h-full flex-col justify-between px-6 py-4",children:[a(F,{html:t.title,className:v("desktop:text-[32px] laptop:text-[24px] line-clamp-1 text-[20px]",A({state:l}))}),a("div",{className:"flex flex-col gap-0.5",children:t.items.map((n,d)=>m("div",{className:"flex items-center gap-2",children:[n.icon&&a("div",{className:"desktop:size-6 size-5 shrink-0",children:a(T,{source:n.icon.url,alt:n.icon.alt,className:"size-full"})}),a(P,{html:n.label,className:v("lg-desktop:text-[18px] desktop:text-[16px] line-clamp-1 flex-1 text-[14px] leading-[1.4]",A({state:l}))})]},d))})]})]})},I=r.forwardRef(({classNames:i={},data:t},o)=>{const c=t.theme||"light",s=r.useRef(null),l=r.useRef(null),n=r.useRef(!1),d=r.useMemo(()=>t?.scheduleList?.length||2,[t?.scheduleList]),f=r.useMemo(()=>t.scheduleList.findIndex(e=>S(e)),[t.scheduleList]),h=r.useCallback((e,p=!1)=>{const u=B=>{switch(B){case"mobile":return{slidesPerView:1.17};case"tablet":return e===2?{slidesPerView:2}:{slidesPerView:2.4};case"laptop":return e===2?{}:e===4?{slidesPerView:3.2}:{slidesPerView:e};case"desktop":return e===2?{slidesPerView:2}:{slidesPerView:e}}},w=u("mobile"),k=u("tablet"),N=u("laptop"),E=u("desktop");return p?{0:{...w,spaceBetween:12},768:{...k,spaceBetween:e===1?12:void 0},1024:{...N,spaceBetween:16},1440:{...E,spaceBetween:16}}:{0:w,768:k,1024:N,1440:E}},[]),V=r.useMemo(()=>h(d,!0),[d,h]),D=r.useMemo(()=>h(d,!1),[d,h]),b=t.showTimeline!==!1,L=r.useCallback(e=>{n.current||!l.current||(n.current=!0,l.current.slideTo(e.activeIndex,e.params.speed),setTimeout(()=>{n.current=!1},50))},[]),M=r.useCallback(e=>{n.current||!s.current||(n.current=!0,s.current.slideTo(e.activeIndex,e.params.speed),setTimeout(()=>{n.current=!1},50))},[]);return r.useEffect(()=>{s.current&&l.current&&f>=0&&setTimeout(()=>{n.current=!0,s.current?.slideTo(f,500),l.current?.slideTo(f,500),setTimeout(()=>{n.current=!1},600)},100)},[f]),m("div",{ref:o,className:v("tablet:px-8 laptop:px-16 desktop:px-16 lg-desktop:px-[calc(50%-832px)] overflow-hidden px-4",i?.root),children:[b&&a(y,{breakpoints:D,className:"h-4 w-full !overflow-visible",onSwiper:e=>{l.current=e},onSlideChange:M,children:t.scheduleList.map((e,p)=>{const u=S(e);return a(C,{className:"",children:a($,{className:i?.timeline,active:u,theme:c,index:p,nodeLength:t.scheduleList.length})},"timelineNode"+p)})}),a(y,{breakpoints:V,className:"w-full !overflow-visible",onSwiper:e=>{s.current=e},onSlideChange:L,children:t.scheduleList.map((e,p)=>{const u=S(e);return a(C,{children:a(q,{active:u,className:v(b?"laptop:mt-4 mt-2":"",i?.eventScheduleCard),item:e,theme:c})},"SwiperSlideItem"+p)})})]})});I.displayName="EventSchedule";var W=I;export{W as default};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/biz-components/EventSchedule/index.tsx"],
4
+ "sourcesContent": ["'use client'\n\nimport * as React from 'react'\nimport { cn } from '../../helpers/index.js'\nimport { Text, Picture, Heading } from '../../components/index.js'\nimport { Swiper, SwiperSlide } from 'swiper/react'\nimport type { Swiper as SwiperType } from 'swiper'\nimport dayjs from 'dayjs'\nimport { cva } from 'class-variance-authority'\nimport type { Media } from '../../types/props.js'\nexport type EventScheduleSemanticName = 'root' | 'timeline' | 'eventScheduleCard'\n\n/**\n * \u72B6\u6001\u5316\u56FE\u6807\u914D\u7F6E\n */\nexport interface StateIcon {\n /** \u6FC0\u6D3B\u72B6\u6001\u7684\u56FE\u6807 */\n active: Media\n /** \u975E\u6FC0\u6D3B\u72B6\u6001\u7684\u56FE\u6807 */\n inactive: Media\n}\n\n/**\n * \u6D3B\u52A8\u65E5\u7A0B\u9879\u6570\u636E\u63A5\u53E3\n */\nexport interface EventScheduleItem {\n /** \u6807\u9898 */\n title: string\n /** \u5F00\u59CB\u65E5\u671F\uFF08ISO 8601 \u683C\u5F0F\u6216\u4EFB\u4F55 dayjs \u652F\u6301\u7684\u683C\u5F0F\uFF0C\u5982 '2024-12-01'\uFF09 */\n startDate: string\n /** \u7ED3\u675F\u65E5\u671F\uFF08ISO 8601 \u683C\u5F0F\u6216\u4EFB\u4F55 dayjs \u652F\u6301\u7684\u683C\u5F0F\uFF0C\u5982 '2024-12-31'\uFF09 */\n endDate: string\n /**\n * \u5361\u7247\u80CC\u666F\u56FE\u6807\u914D\u7F6E\uFF0C\u72B6\u6001\u5316\u56FE\u6807\uFF08\u5FC5\u987B\u5305\u542B active \u548C inactive\uFF09\n *\n * @example\n * icon: {\n * active: { url: \"https://example.com/active-icon.svg\", alt: \"Active Icon\" },\n * inactive: { url: \"https://example.com/inactive-icon.svg\", alt: \"Inactive Icon\" }\n * }\n */\n icon?: StateIcon\n /** \u8BE6\u7EC6\u4FE1\u606F\u5217\u8868 */\n items: {\n /** \u56FE\u6807 (SVG \u5B57\u7B26\u4E32\u6216 URL) */\n icon?: Media\n /** \u6587\u672C\u5185\u5BB9 */\n label: string\n }[]\n}\n\n/**\n * EventSchedule \u4E1A\u52A1\u7EC4\u4EF6\u6570\u636E\u63A5\u53E3\n */\nexport interface EventScheduleData {\n /** \u65E5\u7A0B\u5217\u8868 */\n scheduleList: EventScheduleItem[]\n /** \u662F\u5426\u663E\u793A\u65F6\u95F4\u8F74\uFF0C\u9ED8\u8BA4\u4E3A true */\n showTimeline?: boolean\n /** \u4E3B\u9898\u6A21\u5F0F */\n theme?: 'light' | 'dark'\n}\n\nexport interface EventScheduleProps extends React.HTMLAttributes<HTMLDivElement> {\n /** \u4E1A\u52A1\u6570\u636E */\n data: EventScheduleData\n classNames?: Partial<Record<EventScheduleSemanticName, string>>\n}\n\n/**\n * \u5224\u65AD\u5F53\u524D\u65F6\u95F4\u662F\u5426\u5728\u6307\u5B9A\u7684\u65F6\u95F4\u533A\u95F4\u5185\n * @param startDate \u5F00\u59CB\u65E5\u671F\n * @param endDate \u7ED3\u675F\u65E5\u671F\n * @returns \u662F\u5426\u5728\u533A\u95F4\u5185\n */\nconst isInTimeRange = (startDate: string, endDate: string): boolean => {\n const now = dayjs()\n const start = dayjs(startDate).startOf('day')\n const end = dayjs(endDate).endOf('day')\n return now.isAfter(start) && now.isBefore(end)\n}\n\n/**\n * \u83B7\u53D6\u6D3B\u52A8\u9879\u7684\u6FC0\u6D3B\u72B6\u6001\n * @param item \u6D3B\u52A8\u9879\n * @returns \u662F\u5426\u6FC0\u6D3B\n */\nconst getItemActiveStatus = (item: EventScheduleItem): boolean => {\n // \u5426\u5219\u6839\u636E\u65F6\u95F4\u533A\u95F4\u81EA\u52A8\u5224\u65AD\n return isInTimeRange(item.startDate, item.endDate)\n}\n\n/**\n * \u65F6\u95F4\u8F74\u8FDB\u5EA6\u6761\u6FC0\u6D3B\u72B6\u6001\u6837\u5F0F\u53D8\u4F53\n */\nconst timelineProgressActiveVariants = cva('h-2 w-full overflow-hidden', {\n variants: {\n state: {\n 'active-light': 'bg-[#F6CD4E]',\n 'inactive-light': 'bg-[#EAEAEC]',\n 'active-dark': 'bg-[#D79941]',\n 'inactive-dark': 'bg-[#75787F]',\n },\n },\n defaultVariants: {\n state: 'inactive-light',\n },\n})\n\n/**\n * \u65F6\u95F4\u8F74\u8282\u70B9\u6FC0\u6D3B\u72B6\u6001\u6837\u5F0F\u53D8\u4F53\n */\nconst timelineNodeActiveVariants = cva('size-4 rounded-full transition-colors', {\n variants: {\n state: {\n 'active-light': 'bg-[#F6CD4E]',\n 'inactive-light': 'bg-[#EAEAEC]',\n 'active-dark': 'bg-[#D79941]',\n 'inactive-dark': 'bg-[#75787F]',\n },\n },\n defaultVariants: {\n state: 'inactive-light',\n },\n})\n\n/**\n * \u5361\u7247\u6587\u672C\u6837\u5F0F\u53D8\u4F53\n */\nconst cardTextVariants = cva('font-bold leading-[1.2]', {\n variants: {\n state: {\n 'active-light': 'text-[#080A0F]',\n 'inactive-light': 'text-[#4A4C56]',\n 'active-dark': 'text-white',\n 'inactive-dark': 'text-[#8A8D92]',\n },\n },\n defaultVariants: {\n state: 'inactive-light',\n },\n})\n\n/**\n * \u5361\u7247\u5BB9\u5668\u6837\u5F0F\u53D8\u4F53\n */\nconst eventScheduleCardVariants = cva(\n 'laptop:h-[160px] rounded-box relative flex h-[120px] min-w-0 flex-col justify-between gap-2 overflow-hidden',\n {\n variants: {\n state: {\n 'active-light': 'bg-[#F4E8BC]',\n 'inactive-light': 'bg-[#EAEAEC]',\n 'active-dark': 'bg-[#D79941]',\n 'inactive-dark': 'bg-[#1E2024]',\n },\n },\n defaultVariants: {\n state: 'inactive-light',\n },\n }\n)\n\n/**\n * \u65F6\u95F4\u8F74\u8282\u70B9\u7EC4\u4EF6 Props\n */\ninterface TimelineNodeProps {\n /** \u662F\u5426\u6FC0\u6D3B\u72B6\u6001 */\n active: boolean\n /** \u4E3B\u9898\u6A21\u5F0F */\n theme?: 'light' | 'dark'\n /** \u81EA\u5B9A\u4E49\u7C7B\u540D */\n className?: string\n /** \u5F53\u524D\u8282\u70B9\u7D22\u5F15 */\n index: number\n /** \u8282\u70B9\u603B\u6570 */\n nodeLength: number\n}\n\n/**\n * \u65F6\u95F4\u8F74\u8282\u70B9\u7EC4\u4EF6\n */\nconst TimelineNode = ({ active, theme = 'light', className, index, nodeLength }: TimelineNodeProps) => {\n // \u8BA1\u7B97\u7EC4\u5408\u72B6\u6001\n const state = `${active ? 'active' : 'inactive'}-${theme}` as\n | 'active-light'\n | 'inactive-light'\n | 'active-dark'\n | 'inactive-dark'\n\n // \u5224\u65AD\u9996\u5C3E\u4F4D\u7F6E\n const isFirst = index === 0\n const isLast = index === nodeLength - 1\n\n return (\n <div className=\"relative my-1 flex h-2 w-full items-center justify-center\">\n {/* \u8FDB\u5EA6\u6761\u80CC\u666F */}\n <div\n className={cn(\n timelineProgressActiveVariants({ state }),\n isFirst && 'rounded-l-full',\n isLast && 'rounded-r-full',\n className\n )}\n />\n {/* \u65F6\u95F4\u8282\u70B9\u5706\u70B9 */}\n <div className=\"absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2\">\n <div className={timelineNodeActiveVariants({ state })} />\n </div>\n </div>\n )\n}\n\n/**\n * \u6839\u636E\u6FC0\u6D3B\u72B6\u6001\u83B7\u53D6\u5BF9\u5E94\u7684\u56FE\u6807\n * @param icon \u72B6\u6001\u5316\u56FE\u6807\u914D\u7F6E\n * @param isActive \u662F\u5426\u6FC0\u6D3B\u72B6\u6001\n * @returns \u56FE\u6807 Media \u5BF9\u8C61\n */\nconst getIconByState = (icon: StateIcon | undefined, isActive: boolean): Media | undefined => {\n if (!icon) return undefined\n return isActive ? icon.active : icon.inactive\n}\n\n/**\n * \u6D3B\u52A8\u65E5\u7A0B\u5361\u7247\u7EC4\u4EF6\n */\nconst EventScheduleCard = ({\n active,\n item,\n theme = 'light',\n className,\n}: {\n active: boolean\n item: EventScheduleItem\n theme?: 'light' | 'dark'\n className?: string\n}) => {\n const currentIcon = React.useMemo(() => {\n return getIconByState(item.icon, active)\n }, [item.icon, active])\n\n // \u8BA1\u7B97\u7EC4\u5408\u72B6\u6001\n const cardState = `${active ? 'active' : 'inactive'}-${theme}` as\n | 'active-light'\n | 'inactive-light'\n | 'active-dark'\n | 'inactive-dark'\n\n return (\n <div className={cn(eventScheduleCardVariants({ state: cardState }), className)}>\n {/* \u80CC\u666F\u56FE\u6807 */}\n {currentIcon && (\n <div className=\"laptop:w-[128px] desktop:w-[160px] absolute bottom-0 right-0 z-10 w-[120px]\">\n <Picture source={currentIcon.url} alt={currentIcon.alt} className=\"aspect-square\" />\n </div>\n )}\n {/* \u5185\u5BB9\u533A\u57DF */}\n <div className=\"tablet:px-4 tablet:py-3 laptop:p-4 desktop:px-6 relative z-20 flex h-full flex-col justify-between px-6 py-4\">\n <Heading\n html={item.title}\n className={cn(\n 'desktop:text-[32px] laptop:text-[24px] line-clamp-1 text-[20px]',\n cardTextVariants({ state: cardState })\n )}\n />\n {/* \u8BE6\u7EC6\u4FE1\u606F\u5217\u8868 */}\n <div className=\"flex flex-col gap-0.5\">\n {item.items.map((detail, index) => (\n <div key={index} className=\"flex items-center gap-2\">\n {/* \u56FE\u6807 */}\n {detail.icon && (\n <div className=\"desktop:size-6 size-5 shrink-0\">\n <Picture source={detail.icon.url} alt={detail.icon.alt} className=\"size-full\" />\n </div>\n )}\n {/* \u6587\u672C */}\n <Text\n html={detail.label}\n className={cn(\n 'lg-desktop:text-[18px] desktop:text-[16px] line-clamp-1 flex-1 text-[14px] leading-[1.4]',\n cardTextVariants({ state: cardState })\n )}\n />\n </div>\n ))}\n </div>\n </div>\n </div>\n )\n}\n\n/**\n * EventSchedule - \u6D3B\u52A8\u65E5\u7A0B\u7EC4\u4EF6\n *\n * @description \u663E\u793A\u6D3B\u52A8\u65E5\u7A0B\u65F6\u95F4\u8F74\u548C\u6D3B\u52A8\u5361\u7247\u5217\u8868\n */\nconst EventSchedule = React.forwardRef<HTMLDivElement, EventScheduleProps>(({ classNames = {}, data }, ref) => {\n const theme = data.theme || 'light'\n const swiperRef = React.useRef<SwiperType | null>(null)\n const timelineSwiperRef = React.useRef<SwiperType | null>(null)\n const isSyncingRef = React.useRef(false) // \u9632\u6B62\u5FAA\u73AF\u89E6\u53D1\n const itemsPerRow = React.useMemo(() => {\n return data?.scheduleList?.length || 2\n }, [data?.scheduleList])\n\n // \u8BA1\u7B97 active item \u7684\u7D22\u5F15\n const activeIndex = React.useMemo(() => {\n return data.scheduleList.findIndex(item => getItemActiveStatus(item))\n }, [data.scheduleList])\n\n /**\n * \u751F\u6210\u7EDF\u4E00\u7684 Swiper \u65AD\u70B9\u914D\u7F6E\n * @param itemsPerRow \u6BCF\u884C\u663E\u793A\u7684\u9879\u76EE\u6570\n * @param withSpaceBetween \u662F\u5426\u5305\u542B\u95F4\u8DDD\u914D\u7F6E\n * @returns Swiper \u65AD\u70B9\u914D\u7F6E\u5BF9\u8C61\n */\n const generateSwiperBreakpoints = React.useCallback((itemsPerRow: number, withSpaceBetween: boolean = false) => {\n // \u6839\u636E itemsPerRow \u786E\u5B9A\u4E0D\u540C\u65AD\u70B9\u4E0B\u7684 slidesPerView\n const getBreakpointConfig = (breakpoint: 'mobile' | 'tablet' | 'laptop' | 'desktop') => {\n switch (breakpoint) {\n case 'mobile':\n return { slidesPerView: 1.17 }\n case 'tablet':\n if (itemsPerRow === 2) return { slidesPerView: 2 }\n return { slidesPerView: 2.4 }\n case 'laptop':\n if (itemsPerRow === 2) return {}\n if (itemsPerRow === 4) return { slidesPerView: 3.2 }\n return { slidesPerView: itemsPerRow }\n case 'desktop':\n if (itemsPerRow === 2) return { slidesPerView: 2 }\n return { slidesPerView: itemsPerRow }\n }\n }\n\n const mobileConfig = getBreakpointConfig('mobile')\n const tabletConfig = getBreakpointConfig('tablet')\n const laptopConfig = getBreakpointConfig('laptop')\n const desktopConfig = getBreakpointConfig('desktop')\n\n // \u5982\u679C\u9700\u8981 spaceBetween\uFF0C\u5219\u6DFB\u52A0\u5230\u914D\u7F6E\u4E2D\n if (withSpaceBetween) {\n return {\n 0: { ...mobileConfig, spaceBetween: 12 },\n 768: { ...tabletConfig, spaceBetween: itemsPerRow === 1 ? 12 : undefined },\n 1024: { ...laptopConfig, spaceBetween: 16 },\n 1440: { ...desktopConfig, spaceBetween: 16 },\n }\n }\n\n return {\n 0: mobileConfig,\n 768: tabletConfig,\n 1024: laptopConfig,\n 1440: desktopConfig,\n }\n }, [])\n\n // \u6839\u636E itemsPerRow \u914D\u7F6E\u54CD\u5E94\u5F0F\u65AD\u70B9\uFF08\u5361\u7247 Swiper - \u5305\u542B\u95F4\u8DDD\uFF09\n const swiperBreakpoints = React.useMemo(() => {\n return generateSwiperBreakpoints(itemsPerRow, true)\n }, [itemsPerRow, generateSwiperBreakpoints])\n\n // \u65F6\u95F4\u8F74 Swiper \u65AD\u70B9\u914D\u7F6E\uFF08\u4E0D\u5305\u542B\u95F4\u8DDD\uFF09\n const timeNodeSwiperBreakpoints = React.useMemo(() => {\n return generateSwiperBreakpoints(itemsPerRow, false)\n }, [itemsPerRow, generateSwiperBreakpoints])\n\n const showTimeline = data.showTimeline !== false // \u9ED8\u8BA4\u4E3A true\n\n // \u540C\u6B65\u4E24\u4E2A Swiper \u7684\u6ED1\u52A8\n const handleCardSwiperSlideChange = React.useCallback((swiper: SwiperType) => {\n if (isSyncingRef.current || !timelineSwiperRef.current) return\n isSyncingRef.current = true\n timelineSwiperRef.current.slideTo(swiper.activeIndex, swiper.params.speed)\n // \u5EF6\u8FDF\u91CD\u7F6E\u6807\u5FD7\uFF0C\u786E\u4FDD\u540C\u6B65\u5B8C\u6210\n setTimeout(() => {\n isSyncingRef.current = false\n }, 50)\n }, [])\n\n const handleTimelineSwiperSlideChange = React.useCallback((swiper: SwiperType) => {\n if (isSyncingRef.current || !swiperRef.current) return\n isSyncingRef.current = true\n swiperRef.current.slideTo(swiper.activeIndex, swiper.params.speed)\n // \u5EF6\u8FDF\u91CD\u7F6E\u6807\u5FD7\uFF0C\u786E\u4FDD\u540C\u6B65\u5B8C\u6210\n setTimeout(() => {\n isSyncingRef.current = false\n }, 50)\n }, [])\n\n // \u81EA\u52A8\u6EDA\u52A8\u5230 active item\n React.useEffect(() => {\n if (swiperRef.current && timelineSwiperRef.current && activeIndex >= 0) {\n // \u5EF6\u8FDF\u6267\u884C\uFF0C\u786E\u4FDD Swiper \u5DF2\u7ECF\u5B8C\u5168\u521D\u59CB\u5316\n setTimeout(() => {\n isSyncingRef.current = true\n swiperRef.current?.slideTo(activeIndex, 500)\n timelineSwiperRef.current?.slideTo(activeIndex, 500)\n setTimeout(() => {\n isSyncingRef.current = false\n }, 600)\n }, 100)\n }\n }, [activeIndex])\n\n return (\n <div\n ref={ref}\n className={cn(\n 'tablet:px-8 laptop:px-16 desktop:px-16 lg-desktop:px-[calc(50%-832px)] overflow-hidden px-4',\n classNames?.root\n )}\n >\n {showTimeline && (\n <Swiper\n breakpoints={timeNodeSwiperBreakpoints}\n className=\"h-4 w-full !overflow-visible\"\n onSwiper={swiper => {\n timelineSwiperRef.current = swiper\n }}\n onSlideChange={handleTimelineSwiperSlideChange}\n >\n {data.scheduleList.map((item, index) => {\n const isActive = getItemActiveStatus(item)\n return (\n <SwiperSlide key={'timelineNode' + index} className=\"\">\n <TimelineNode\n className={classNames?.timeline}\n active={isActive}\n theme={theme}\n index={index}\n nodeLength={data.scheduleList.length}\n />\n </SwiperSlide>\n )\n })}\n </Swiper>\n )}\n <Swiper\n breakpoints={swiperBreakpoints}\n className=\"w-full !overflow-visible\"\n onSwiper={swiper => {\n swiperRef.current = swiper\n }}\n onSlideChange={handleCardSwiperSlideChange}\n >\n {data.scheduleList.map((item, index) => {\n const isActive = getItemActiveStatus(item)\n return (\n <SwiperSlide key={'SwiperSlideItem' + index}>\n <EventScheduleCard\n active={isActive}\n className={cn(showTimeline ? 'laptop:mt-4 mt-2' : '', classNames?.eventScheduleCard)}\n item={item}\n theme={theme}\n />\n </SwiperSlide>\n )\n })}\n </Swiper>\n </div>\n )\n})\n\nEventSchedule.displayName = 'EventSchedule'\nexport default EventSchedule\n\n// \u5BFC\u51FA\u7C7B\u578B\u4F9B\u5916\u90E8\u4F7F\u7528\n// export type { StateIcon, EventScheduleItem, EventScheduleData, EventScheduleProps }\n"],
5
+ "mappings": "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",
6
+ "names": ["jsx", "jsxs", "React", "cn", "Text", "Picture", "Heading", "Swiper", "SwiperSlide", "dayjs", "cva", "isInTimeRange", "startDate", "endDate", "now", "start", "end", "getItemActiveStatus", "item", "timelineProgressActiveVariants", "timelineNodeActiveVariants", "cardTextVariants", "eventScheduleCardVariants", "TimelineNode", "active", "theme", "className", "index", "nodeLength", "state", "isFirst", "isLast", "getIconByState", "icon", "isActive", "EventScheduleCard", "currentIcon", "cardState", "detail", "EventSchedule", "classNames", "data", "ref", "swiperRef", "timelineSwiperRef", "isSyncingRef", "itemsPerRow", "activeIndex", "generateSwiperBreakpoints", "withSpaceBetween", "getBreakpointConfig", "breakpoint", "mobileConfig", "tabletConfig", "laptopConfig", "desktopConfig", "swiperBreakpoints", "timeNodeSwiperBreakpoints", "showTimeline", "handleCardSwiperSlideChange", "swiper", "handleTimelineSwiperSlideChange", "EventSchedule_default"]
7
+ }
@@ -6,9 +6,9 @@ declare const FaqItem: {
6
6
  }): import("react/jsx-runtime").JSX.Element;
7
7
  displayName: string;
8
8
  };
9
- declare const _default: React.ForwardRefExoticComponent<Omit<Omit<FaqProps & React.RefAttributes<HTMLDivElement>, keyof import("../../shared/Styles.js").StylesProps> & Partial<import("../../shared/Styles.js").StylesProps & import("../../shared/Styles.js").ContainerProps> & {
10
- className?: string;
11
- data?: Record<string, any>;
9
+ declare const _default: React.ForwardRefExoticComponent<Omit<FaqProps & React.RefAttributes<HTMLDivElement> & {
10
+ style?: string | React.CSSProperties;
11
+ container?: import("../../shared/Styles.js").ContainerProps["container"];
12
12
  }, "ref"> & React.RefAttributes<any>>;
13
13
  export default _default;
14
14
  export { FaqItem };