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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (864) 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/Evaluate/index.js +1 -1
  41. package/dist/cjs/biz-components/Evaluate/index.js.map +3 -3
  42. package/dist/cjs/biz-components/EventSchedule/index.d.ts +63 -0
  43. package/dist/cjs/biz-components/EventSchedule/index.js +2 -0
  44. package/dist/cjs/biz-components/EventSchedule/index.js.map +7 -0
  45. package/dist/cjs/biz-components/Faq/Faq.d.ts +3 -3
  46. package/dist/cjs/biz-components/FeatureCards/FeatureCards.d.ts +3 -3
  47. package/dist/cjs/biz-components/FeatureShowcase/FeatureShowcase.d.ts +3 -3
  48. package/dist/cjs/biz-components/Features/index.d.ts +3 -3
  49. package/dist/cjs/biz-components/FootCharger/index.d.ts +3 -3
  50. package/dist/cjs/biz-components/FooterNavigation/index.d.ts +3 -3
  51. package/dist/cjs/biz-components/GiftBox/index.d.ts +3 -3
  52. package/dist/cjs/biz-components/Graphic/index.d.ts +3 -3
  53. package/dist/cjs/biz-components/Graphic/index.js +1 -1
  54. package/dist/cjs/biz-components/Graphic/index.js.map +3 -3
  55. package/dist/cjs/biz-components/GraphicAttractionBlock/index.d.ts +3 -3
  56. package/dist/cjs/biz-components/GraphicMore/index.d.ts +3 -3
  57. package/dist/cjs/biz-components/GraphicOverlay/GraphicOverlay.d.ts +3 -3
  58. package/dist/cjs/biz-components/HeaderNavigation/MobileSidebarMenu.js +1 -1
  59. package/dist/cjs/biz-components/HeaderNavigation/MobileSidebarMenu.js.map +3 -3
  60. package/dist/cjs/biz-components/HeaderNavigation/SidebarDropdown.js +1 -1
  61. package/dist/cjs/biz-components/HeaderNavigation/SidebarDropdown.js.map +2 -2
  62. package/dist/cjs/biz-components/HeaderNavigation/index.d.ts +3 -3
  63. package/dist/cjs/biz-components/HeroBanner/Countdown.js +1 -1
  64. package/dist/cjs/biz-components/HeroBanner/Countdown.js.map +2 -2
  65. package/dist/cjs/biz-components/HeroBanner/HeroBanner.d.ts +6 -3
  66. package/dist/cjs/biz-components/HeroBanner/HeroBanner.js +1 -1
  67. package/dist/cjs/biz-components/HeroBanner/HeroBanner.js.map +3 -3
  68. package/dist/cjs/biz-components/IPRedirect/RegionBanner.d.ts +37 -0
  69. package/dist/cjs/biz-components/IPRedirect/RegionBanner.js +60 -0
  70. package/dist/cjs/biz-components/IPRedirect/RegionBanner.js.map +7 -0
  71. package/dist/cjs/biz-components/IPRedirect/RegionSelectorModal.d.ts +47 -0
  72. package/dist/cjs/biz-components/IPRedirect/RegionSelectorModal.js +69 -0
  73. package/dist/cjs/biz-components/IPRedirect/RegionSelectorModal.js.map +7 -0
  74. package/dist/cjs/biz-components/IPRedirect/index.d.ts +9 -0
  75. package/dist/cjs/biz-components/IPRedirect/index.js +2 -0
  76. package/dist/cjs/biz-components/IPRedirect/index.js.map +7 -0
  77. package/dist/cjs/biz-components/IPRedirect/type.d.ts +36 -0
  78. package/dist/cjs/biz-components/IPRedirect/type.js +2 -0
  79. package/dist/cjs/biz-components/IPRedirect/type.js.map +7 -0
  80. package/dist/cjs/biz-components/IPRedirect/useAutoRedirect.d.ts +66 -0
  81. package/dist/cjs/biz-components/IPRedirect/useAutoRedirect.js +2 -0
  82. package/dist/cjs/biz-components/IPRedirect/useAutoRedirect.js.map +7 -0
  83. package/dist/cjs/biz-components/IPRedirect/useDetectedRegionRedirect.d.ts +51 -0
  84. package/dist/cjs/biz-components/IPRedirect/useDetectedRegionRedirect.js +2 -0
  85. package/dist/cjs/biz-components/IPRedirect/useDetectedRegionRedirect.js.map +7 -0
  86. package/dist/cjs/biz-components/IPRedirect/useIPRedirect.d.ts +42 -0
  87. package/dist/cjs/biz-components/IPRedirect/useIPRedirect.js +2 -0
  88. package/dist/cjs/biz-components/IPRedirect/useIPRedirect.js.map +7 -0
  89. package/dist/cjs/biz-components/IPRedirect/useRedirectBanner.d.ts +108 -0
  90. package/dist/cjs/biz-components/IPRedirect/useRedirectBanner.js +2 -0
  91. package/dist/cjs/biz-components/IPRedirect/useRedirectBanner.js.map +7 -0
  92. package/dist/cjs/biz-components/IPRedirect/useRegionRedirectManager.d.ts +152 -0
  93. package/dist/cjs/biz-components/IPRedirect/useRegionRedirectManager.js +2 -0
  94. package/dist/cjs/biz-components/IPRedirect/useRegionRedirectManager.js.map +7 -0
  95. package/dist/cjs/biz-components/IPRedirect/useSavedRegionRedirect.d.ts +51 -0
  96. package/dist/cjs/biz-components/IPRedirect/useSavedRegionRedirect.js +2 -0
  97. package/dist/cjs/biz-components/IPRedirect/useSavedRegionRedirect.js.map +7 -0
  98. package/dist/cjs/biz-components/IPRedirect/utils.d.ts +222 -0
  99. package/dist/cjs/biz-components/IPRedirect/utils.js +2 -0
  100. package/dist/cjs/biz-components/IPRedirect/utils.js.map +7 -0
  101. package/dist/cjs/biz-components/ImageOverlayShelf/index.d.ts +130 -0
  102. package/dist/cjs/biz-components/ImageOverlayShelf/index.js +2 -0
  103. package/dist/cjs/biz-components/ImageOverlayShelf/index.js.map +7 -0
  104. package/dist/cjs/biz-components/ImageTextFeature/ImageTextFeature.d.ts +3 -3
  105. package/dist/cjs/biz-components/ImageTextFeature/ImageTextFeature.js +1 -1
  106. package/dist/cjs/biz-components/ImageTextFeature/ImageTextFeature.js.map +3 -3
  107. package/dist/cjs/biz-components/ImageWithText/ImageWithText.d.ts +3 -3
  108. package/dist/cjs/biz-components/Ksp/index.d.ts +3 -3
  109. package/dist/cjs/biz-components/Listing/components/PaidShipping/index.d.ts +4 -4
  110. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/BenefitsTab.d.ts +3 -3
  111. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductBundle/index.d.ts +3 -3
  112. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductExchangePurchase/index.d.ts +3 -3
  113. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductFreeGift/index.d.ts +3 -3
  114. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductHighlight/index.d.ts +3 -3
  115. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductOptions/index.d.ts +3 -3
  116. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGallery/index.d.ts +3 -3
  117. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductSummary/index.d.ts +3 -3
  118. package/dist/cjs/biz-components/Listing/components/PurchaseBar/index.d.ts +3 -3
  119. package/dist/cjs/biz-components/Marquee/Marquee.d.ts +3 -3
  120. package/dist/cjs/biz-components/Marquee/Marquee.js +1 -1
  121. package/dist/cjs/biz-components/Marquee/Marquee.js.map +3 -3
  122. package/dist/cjs/biz-components/MarqueeReview/index.d.ts +3 -3
  123. package/dist/cjs/biz-components/Media/index.d.ts +32 -0
  124. package/dist/cjs/biz-components/Media/index.js +2 -0
  125. package/dist/cjs/biz-components/Media/index.js.map +7 -0
  126. package/dist/cjs/biz-components/MediaPlayerBase/index.d.ts +3 -3
  127. package/dist/cjs/biz-components/MediaPlayerMulti/index.d.ts +3 -3
  128. package/dist/cjs/biz-components/MediaPlayerSticky/index.d.ts +4 -4
  129. package/dist/cjs/biz-components/MediaPlayerSticky/types.d.ts +1 -0
  130. package/dist/cjs/biz-components/MediaPlayerSticky/types.js +1 -1
  131. package/dist/cjs/biz-components/MediaPlayerSticky/types.js.map +1 -1
  132. package/dist/cjs/biz-components/MediaSceneSwitcher/MediaSceneSwitcher.d.ts +3 -3
  133. package/dist/cjs/biz-components/MediaShelf/index.d.ts +216 -0
  134. package/dist/cjs/biz-components/MediaShelf/index.js +2 -0
  135. package/dist/cjs/biz-components/MediaShelf/index.js.map +7 -0
  136. package/dist/cjs/biz-components/MediaShelf/types.d.ts +22 -0
  137. package/dist/cjs/biz-components/MediaShelf/types.js +2 -0
  138. package/dist/cjs/biz-components/MediaShelf/types.js.map +7 -0
  139. package/dist/cjs/biz-components/MemberEquity/index.d.ts +3 -3
  140. package/dist/cjs/biz-components/MiniCart/index.d.ts +88 -0
  141. package/dist/cjs/biz-components/MiniCart/index.js +2 -0
  142. package/dist/cjs/biz-components/MiniCart/index.js.map +7 -0
  143. package/dist/cjs/biz-components/MultiLayoutGraphicBlock/MultiLayoutGraphicBlock.d.ts +3 -3
  144. package/dist/cjs/biz-components/ProductCompare/index.d.ts +3 -3
  145. package/dist/cjs/biz-components/ProductHero/ProductHero.d.ts +3 -3
  146. package/dist/cjs/biz-components/ProductNav/ProductNav.d.ts +3 -3
  147. package/dist/cjs/biz-components/PromotionalBar/index.d.ts +49 -0
  148. package/dist/cjs/biz-components/PromotionalBar/index.js +2 -0
  149. package/dist/cjs/biz-components/PromotionalBar/index.js.map +7 -0
  150. package/dist/cjs/biz-components/SecondaryBanner/index.d.ts +69 -0
  151. package/dist/cjs/biz-components/SecondaryBanner/index.js +2 -0
  152. package/dist/cjs/biz-components/SecondaryBanner/index.js.map +7 -0
  153. package/dist/cjs/biz-components/SelectStore/index.d.ts +3 -3
  154. package/dist/cjs/biz-components/ShelfDisplay/index.d.ts +3 -3
  155. package/dist/cjs/biz-components/ShelfDisplay/shelfDisplay.d.ts +0 -11
  156. package/dist/cjs/biz-components/ShelfDisplay/shelfDisplay.js +1 -1
  157. package/dist/cjs/biz-components/ShelfDisplay/shelfDisplay.js.map +3 -3
  158. package/dist/cjs/biz-components/Slogan/index.d.ts +3 -3
  159. package/dist/cjs/biz-components/Spacer/index.d.ts +3 -3
  160. package/dist/cjs/biz-components/Specs/index.d.ts +3 -3
  161. package/dist/cjs/biz-components/Specs/index.js +1 -1
  162. package/dist/cjs/biz-components/Specs/index.js.map +2 -2
  163. package/dist/cjs/biz-components/SpecsComparison/SpecsComparison.d.ts +3 -3
  164. package/dist/cjs/biz-components/TabWithImage/TabWithImage.d.ts +3 -3
  165. package/dist/cjs/biz-components/Tabs/Tabs.d.ts +3 -3
  166. package/dist/cjs/biz-components/TabsGroup/index.d.ts +3 -3
  167. package/dist/cjs/biz-components/TabsWithMedia/TabsWithMedia.d.ts +3 -3
  168. package/dist/cjs/biz-components/ThreeDCarousel/ThreeDCarousel.d.ts +3 -3
  169. package/dist/cjs/biz-components/Title/Countdown.d.ts +14 -0
  170. package/dist/cjs/biz-components/Title/Countdown.js +2 -0
  171. package/dist/cjs/biz-components/Title/Countdown.js.map +7 -0
  172. package/dist/cjs/biz-components/Title/index.d.ts +3 -3
  173. package/dist/cjs/biz-components/Title/index.js +1 -1
  174. package/dist/cjs/biz-components/Title/index.js.map +3 -3
  175. package/dist/cjs/biz-components/Title/types.d.ts +55 -0
  176. package/dist/cjs/biz-components/Title/types.js +1 -1
  177. package/dist/cjs/biz-components/Title/types.js.map +1 -1
  178. package/dist/cjs/biz-components/VideoFeature/VideoFeature.d.ts +3 -3
  179. package/dist/cjs/biz-components/WheelLottery/BaseModal.d.ts +55 -0
  180. package/dist/cjs/biz-components/WheelLottery/BaseModal.js +12 -0
  181. package/dist/cjs/biz-components/WheelLottery/BaseModal.js.map +7 -0
  182. package/dist/cjs/biz-components/WheelLottery/ChanceMethods.d.ts +30 -0
  183. package/dist/cjs/biz-components/WheelLottery/ChanceMethods.js +2 -0
  184. package/dist/cjs/biz-components/WheelLottery/ChanceMethods.js.map +7 -0
  185. package/dist/cjs/biz-components/WheelLottery/ErrorModal.d.ts +42 -0
  186. package/dist/cjs/biz-components/WheelLottery/ErrorModal.js +2 -0
  187. package/dist/cjs/biz-components/WheelLottery/ErrorModal.js.map +7 -0
  188. package/dist/cjs/biz-components/WheelLottery/MyRewardsModal.d.ts +91 -0
  189. package/dist/cjs/biz-components/WheelLottery/MyRewardsModal.js +2 -0
  190. package/dist/cjs/biz-components/WheelLottery/MyRewardsModal.js.map +7 -0
  191. package/dist/cjs/biz-components/WheelLottery/PrizePool.d.ts +26 -0
  192. package/dist/cjs/biz-components/WheelLottery/PrizePool.js +2 -0
  193. package/dist/cjs/biz-components/WheelLottery/PrizePool.js.map +7 -0
  194. package/dist/cjs/biz-components/WheelLottery/RulesModal.d.ts +43 -0
  195. package/dist/cjs/biz-components/WheelLottery/RulesModal.js +2 -0
  196. package/dist/cjs/biz-components/WheelLottery/RulesModal.js.map +7 -0
  197. package/dist/cjs/biz-components/WheelLottery/ShareModal.d.ts +74 -0
  198. package/dist/cjs/biz-components/WheelLottery/ShareModal.js +2 -0
  199. package/dist/cjs/biz-components/WheelLottery/ShareModal.js.map +7 -0
  200. package/dist/cjs/biz-components/WheelLottery/Wheel.d.ts +27 -0
  201. package/dist/cjs/biz-components/WheelLottery/Wheel.js +2 -0
  202. package/dist/cjs/biz-components/WheelLottery/Wheel.js.map +7 -0
  203. package/dist/cjs/biz-components/WheelLottery/WinnerModal.d.ts +25 -0
  204. package/dist/cjs/biz-components/WheelLottery/WinnerModal.js +2 -0
  205. package/dist/cjs/biz-components/WheelLottery/WinnerModal.js.map +7 -0
  206. package/dist/cjs/biz-components/WheelLottery/index.d.ts +52 -0
  207. package/dist/cjs/biz-components/WheelLottery/index.js +2 -0
  208. package/dist/cjs/biz-components/WheelLottery/index.js.map +7 -0
  209. package/dist/cjs/biz-components/WheelLottery/types.d.ts +1193 -0
  210. package/dist/cjs/biz-components/WheelLottery/types.js +2 -0
  211. package/dist/cjs/biz-components/WheelLottery/types.js.map +7 -0
  212. package/dist/cjs/biz-components/WhyChoose/WhyChoose.d.ts +3 -3
  213. package/dist/cjs/biz-components/index.d.ts +30 -2
  214. package/dist/cjs/biz-components/index.js +1 -1
  215. package/dist/cjs/biz-components/index.js.map +3 -3
  216. package/dist/cjs/components/badge.js +1 -1
  217. package/dist/cjs/components/badge.js.map +2 -2
  218. package/dist/cjs/components/index.d.ts +2 -0
  219. package/dist/cjs/components/index.js +1 -1
  220. package/dist/cjs/components/index.js.map +3 -3
  221. package/dist/cjs/components/paginator.d.ts +12 -0
  222. package/dist/cjs/components/paginator.js +7 -0
  223. package/dist/cjs/components/paginator.js.map +7 -0
  224. package/dist/cjs/components/progress.d.ts +46 -0
  225. package/dist/cjs/components/progress.js +2 -0
  226. package/dist/cjs/components/progress.js.map +7 -0
  227. package/dist/cjs/components/tabs.d.ts +2 -1
  228. package/dist/cjs/components/tabs.js +1 -1
  229. package/dist/cjs/components/tabs.js.map +2 -2
  230. package/dist/cjs/helpers/index.d.ts +1 -0
  231. package/dist/cjs/helpers/index.js +1 -1
  232. package/dist/cjs/helpers/index.js.map +3 -3
  233. package/dist/cjs/helpers/priceFormatting.d.ts +11 -0
  234. package/dist/cjs/helpers/priceFormatting.js +2 -0
  235. package/dist/cjs/helpers/priceFormatting.js.map +7 -0
  236. package/dist/cjs/shared/Styles.d.ts +5 -4
  237. package/dist/cjs/shared/Styles.js +1 -1
  238. package/dist/cjs/shared/Styles.js.map +3 -3
  239. package/dist/cjs/types/props.d.ts +0 -3
  240. package/dist/cjs/types/props.js +1 -1
  241. package/dist/cjs/types/props.js.map +1 -1
  242. package/dist/esm/biz-components/AccordionCards/index.d.ts +3 -3
  243. package/dist/esm/biz-components/ActiveShelf/index.d.ts +222 -0
  244. package/dist/esm/biz-components/ActiveShelf/index.js +2 -0
  245. package/dist/esm/biz-components/ActiveShelf/index.js.map +7 -0
  246. package/dist/esm/biz-components/ActiveShelf/types.d.ts +22 -0
  247. package/dist/esm/biz-components/ActiveShelf/types.js +1 -0
  248. package/dist/esm/biz-components/ActiveShelf/types.js.map +7 -0
  249. package/dist/esm/biz-components/AiuiProvider/index.d.ts +7 -0
  250. package/dist/esm/biz-components/AiuiProvider/index.js +1 -1
  251. package/dist/esm/biz-components/AiuiProvider/index.js.map +2 -2
  252. package/dist/esm/biz-components/AnchorNavigation/index.d.ts +42 -0
  253. package/dist/esm/biz-components/AnchorNavigation/index.js +2 -0
  254. package/dist/esm/biz-components/AnchorNavigation/index.js.map +7 -0
  255. package/dist/esm/biz-components/AnchorNavigation/useAnchorPosition.d.ts +2 -0
  256. package/dist/esm/biz-components/AnchorNavigation/useAnchorPosition.js +2 -0
  257. package/dist/esm/biz-components/AnchorNavigation/useAnchorPosition.js.map +7 -0
  258. package/dist/esm/biz-components/AplusDesc/index.d.ts +3 -3
  259. package/dist/esm/biz-components/BrandCardLink/BrandCardLink.d.ts +3 -3
  260. package/dist/esm/biz-components/BrandCardLink/BrandCardLink.js +1 -1
  261. package/dist/esm/biz-components/BrandCardLink/BrandCardLink.js.map +1 -1
  262. package/dist/esm/biz-components/BrandEquity/BrandEquity.d.ts +3 -3
  263. package/dist/esm/biz-components/BrandEquity/BrandEquity.js +1 -1
  264. package/dist/esm/biz-components/BrandEquity/BrandEquity.js.map +3 -3
  265. package/dist/esm/biz-components/BrandEquity/types.d.ts +1 -0
  266. package/dist/esm/biz-components/BuyOneGetOneShelf/ProductCard.d.ts +74 -0
  267. package/dist/esm/biz-components/BuyOneGetOneShelf/ProductCard.js +2 -0
  268. package/dist/esm/biz-components/BuyOneGetOneShelf/ProductCard.js.map +7 -0
  269. package/dist/esm/biz-components/BuyOneGetOneShelf/hooks/useBogoDataTransform.d.ts +36 -0
  270. package/dist/esm/biz-components/BuyOneGetOneShelf/hooks/useBogoDataTransform.js +2 -0
  271. package/dist/esm/biz-components/BuyOneGetOneShelf/hooks/useBogoDataTransform.js.map +7 -0
  272. package/dist/esm/biz-components/BuyOneGetOneShelf/index.d.ts +193 -0
  273. package/dist/esm/biz-components/BuyOneGetOneShelf/index.js +2 -0
  274. package/dist/esm/biz-components/BuyOneGetOneShelf/index.js.map +7 -0
  275. package/dist/esm/biz-components/Category/index.d.ts +3 -3
  276. package/dist/esm/biz-components/CreativeModule/index.d.ts +3 -3
  277. package/dist/esm/biz-components/DownLoad/index.d.ts +3 -3
  278. package/dist/esm/biz-components/Evaluate/index.d.ts +3 -3
  279. package/dist/esm/biz-components/Evaluate/index.js +1 -1
  280. package/dist/esm/biz-components/Evaluate/index.js.map +3 -3
  281. package/dist/esm/biz-components/EventSchedule/index.d.ts +63 -0
  282. package/dist/esm/biz-components/EventSchedule/index.js +2 -0
  283. package/dist/esm/biz-components/EventSchedule/index.js.map +7 -0
  284. package/dist/esm/biz-components/Faq/Faq.d.ts +3 -3
  285. package/dist/esm/biz-components/FeatureCards/FeatureCards.d.ts +3 -3
  286. package/dist/esm/biz-components/FeatureShowcase/FeatureShowcase.d.ts +3 -3
  287. package/dist/esm/biz-components/Features/index.d.ts +3 -3
  288. package/dist/esm/biz-components/FootCharger/index.d.ts +3 -3
  289. package/dist/esm/biz-components/FooterNavigation/index.d.ts +3 -3
  290. package/dist/esm/biz-components/GiftBox/index.d.ts +3 -3
  291. package/dist/esm/biz-components/Graphic/index.d.ts +3 -3
  292. package/dist/esm/biz-components/Graphic/index.js +1 -1
  293. package/dist/esm/biz-components/Graphic/index.js.map +3 -3
  294. package/dist/esm/biz-components/GraphicAttractionBlock/index.d.ts +3 -3
  295. package/dist/esm/biz-components/GraphicMore/index.d.ts +3 -3
  296. package/dist/esm/biz-components/GraphicOverlay/GraphicOverlay.d.ts +3 -3
  297. package/dist/esm/biz-components/HeaderNavigation/MobileSidebarMenu.js +1 -1
  298. package/dist/esm/biz-components/HeaderNavigation/MobileSidebarMenu.js.map +3 -3
  299. package/dist/esm/biz-components/HeaderNavigation/SidebarDropdown.js +1 -1
  300. package/dist/esm/biz-components/HeaderNavigation/SidebarDropdown.js.map +2 -2
  301. package/dist/esm/biz-components/HeaderNavigation/index.d.ts +3 -3
  302. package/dist/esm/biz-components/HeroBanner/Countdown.js +1 -1
  303. package/dist/esm/biz-components/HeroBanner/Countdown.js.map +2 -2
  304. package/dist/esm/biz-components/HeroBanner/HeroBanner.d.ts +6 -3
  305. package/dist/esm/biz-components/HeroBanner/HeroBanner.js +1 -1
  306. package/dist/esm/biz-components/HeroBanner/HeroBanner.js.map +3 -3
  307. package/dist/esm/biz-components/IPRedirect/RegionBanner.d.ts +37 -0
  308. package/dist/esm/biz-components/IPRedirect/RegionBanner.js +60 -0
  309. package/dist/esm/biz-components/IPRedirect/RegionBanner.js.map +7 -0
  310. package/dist/esm/biz-components/IPRedirect/RegionSelectorModal.d.ts +47 -0
  311. package/dist/esm/biz-components/IPRedirect/RegionSelectorModal.js +69 -0
  312. package/dist/esm/biz-components/IPRedirect/RegionSelectorModal.js.map +7 -0
  313. package/dist/esm/biz-components/IPRedirect/index.d.ts +9 -0
  314. package/dist/esm/biz-components/IPRedirect/index.js +2 -0
  315. package/dist/esm/biz-components/IPRedirect/index.js.map +7 -0
  316. package/dist/esm/biz-components/IPRedirect/type.d.ts +36 -0
  317. package/dist/esm/biz-components/IPRedirect/type.js +1 -0
  318. package/dist/esm/biz-components/IPRedirect/type.js.map +7 -0
  319. package/dist/esm/biz-components/IPRedirect/useAutoRedirect.d.ts +66 -0
  320. package/dist/esm/biz-components/IPRedirect/useAutoRedirect.js +2 -0
  321. package/dist/esm/biz-components/IPRedirect/useAutoRedirect.js.map +7 -0
  322. package/dist/esm/biz-components/IPRedirect/useDetectedRegionRedirect.d.ts +51 -0
  323. package/dist/esm/biz-components/IPRedirect/useDetectedRegionRedirect.js +2 -0
  324. package/dist/esm/biz-components/IPRedirect/useDetectedRegionRedirect.js.map +7 -0
  325. package/dist/esm/biz-components/IPRedirect/useIPRedirect.d.ts +42 -0
  326. package/dist/esm/biz-components/IPRedirect/useIPRedirect.js +2 -0
  327. package/dist/esm/biz-components/IPRedirect/useIPRedirect.js.map +7 -0
  328. package/dist/esm/biz-components/IPRedirect/useRedirectBanner.d.ts +108 -0
  329. package/dist/esm/biz-components/IPRedirect/useRedirectBanner.js +2 -0
  330. package/dist/esm/biz-components/IPRedirect/useRedirectBanner.js.map +7 -0
  331. package/dist/esm/biz-components/IPRedirect/useRegionRedirectManager.d.ts +152 -0
  332. package/dist/esm/biz-components/IPRedirect/useRegionRedirectManager.js +2 -0
  333. package/dist/esm/biz-components/IPRedirect/useRegionRedirectManager.js.map +7 -0
  334. package/dist/esm/biz-components/IPRedirect/useSavedRegionRedirect.d.ts +51 -0
  335. package/dist/esm/biz-components/IPRedirect/useSavedRegionRedirect.js +2 -0
  336. package/dist/esm/biz-components/IPRedirect/useSavedRegionRedirect.js.map +7 -0
  337. package/dist/esm/biz-components/IPRedirect/utils.d.ts +222 -0
  338. package/dist/esm/biz-components/IPRedirect/utils.js +2 -0
  339. package/dist/esm/biz-components/IPRedirect/utils.js.map +7 -0
  340. package/dist/esm/biz-components/ImageOverlayShelf/index.d.ts +130 -0
  341. package/dist/esm/biz-components/ImageOverlayShelf/index.js +2 -0
  342. package/dist/esm/biz-components/ImageOverlayShelf/index.js.map +7 -0
  343. package/dist/esm/biz-components/ImageTextFeature/ImageTextFeature.d.ts +3 -3
  344. package/dist/esm/biz-components/ImageTextFeature/ImageTextFeature.js +1 -1
  345. package/dist/esm/biz-components/ImageTextFeature/ImageTextFeature.js.map +3 -3
  346. package/dist/esm/biz-components/ImageWithText/ImageWithText.d.ts +3 -3
  347. package/dist/esm/biz-components/Ksp/index.d.ts +3 -3
  348. package/dist/esm/biz-components/Listing/components/PaidShipping/index.d.ts +4 -4
  349. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/BenefitsTab.d.ts +3 -3
  350. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductBundle/index.d.ts +3 -3
  351. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductExchangePurchase/index.d.ts +3 -3
  352. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductFreeGift/index.d.ts +3 -3
  353. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductHighlight/index.d.ts +3 -3
  354. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductOptions/index.d.ts +3 -3
  355. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/index.d.ts +3 -3
  356. package/dist/esm/biz-components/Listing/components/ProductCard/ProductSummary/index.d.ts +3 -3
  357. package/dist/esm/biz-components/Listing/components/PurchaseBar/index.d.ts +3 -3
  358. package/dist/esm/biz-components/Marquee/Marquee.d.ts +3 -3
  359. package/dist/esm/biz-components/Marquee/Marquee.js +1 -1
  360. package/dist/esm/biz-components/Marquee/Marquee.js.map +3 -3
  361. package/dist/esm/biz-components/MarqueeReview/index.d.ts +3 -3
  362. package/dist/esm/biz-components/Media/index.d.ts +32 -0
  363. package/dist/esm/biz-components/Media/index.js +2 -0
  364. package/dist/esm/biz-components/Media/index.js.map +7 -0
  365. package/dist/esm/biz-components/MediaPlayerBase/index.d.ts +3 -3
  366. package/dist/esm/biz-components/MediaPlayerMulti/index.d.ts +3 -3
  367. package/dist/esm/biz-components/MediaPlayerSticky/index.d.ts +4 -4
  368. package/dist/esm/biz-components/MediaPlayerSticky/types.d.ts +1 -0
  369. package/dist/esm/biz-components/MediaSceneSwitcher/MediaSceneSwitcher.d.ts +3 -3
  370. package/dist/esm/biz-components/MediaShelf/index.d.ts +216 -0
  371. package/dist/esm/biz-components/MediaShelf/index.js +2 -0
  372. package/dist/esm/biz-components/MediaShelf/index.js.map +7 -0
  373. package/dist/esm/biz-components/MediaShelf/types.d.ts +22 -0
  374. package/dist/esm/biz-components/MediaShelf/types.js +1 -0
  375. package/dist/esm/biz-components/MediaShelf/types.js.map +7 -0
  376. package/dist/esm/biz-components/MemberEquity/index.d.ts +3 -3
  377. package/dist/esm/biz-components/MiniCart/index.d.ts +88 -0
  378. package/dist/esm/biz-components/MiniCart/index.js +2 -0
  379. package/dist/esm/biz-components/MiniCart/index.js.map +7 -0
  380. package/dist/esm/biz-components/MultiLayoutGraphicBlock/MultiLayoutGraphicBlock.d.ts +3 -3
  381. package/dist/esm/biz-components/ProductCompare/index.d.ts +3 -3
  382. package/dist/esm/biz-components/ProductHero/ProductHero.d.ts +3 -3
  383. package/dist/esm/biz-components/ProductNav/ProductNav.d.ts +3 -3
  384. package/dist/esm/biz-components/PromotionalBar/index.d.ts +49 -0
  385. package/dist/esm/biz-components/PromotionalBar/index.js +2 -0
  386. package/dist/esm/biz-components/PromotionalBar/index.js.map +7 -0
  387. package/dist/esm/biz-components/SecondaryBanner/index.d.ts +69 -0
  388. package/dist/esm/biz-components/SecondaryBanner/index.js +2 -0
  389. package/dist/esm/biz-components/SecondaryBanner/index.js.map +7 -0
  390. package/dist/esm/biz-components/SelectStore/index.d.ts +3 -3
  391. package/dist/esm/biz-components/ShelfDisplay/index.d.ts +3 -3
  392. package/dist/esm/biz-components/ShelfDisplay/shelfDisplay.d.ts +0 -11
  393. package/dist/esm/biz-components/ShelfDisplay/shelfDisplay.js +1 -1
  394. package/dist/esm/biz-components/ShelfDisplay/shelfDisplay.js.map +3 -3
  395. package/dist/esm/biz-components/Slogan/index.d.ts +3 -3
  396. package/dist/esm/biz-components/Spacer/index.d.ts +3 -3
  397. package/dist/esm/biz-components/Specs/index.d.ts +3 -3
  398. package/dist/esm/biz-components/Specs/index.js +1 -1
  399. package/dist/esm/biz-components/Specs/index.js.map +2 -2
  400. package/dist/esm/biz-components/SpecsComparison/SpecsComparison.d.ts +3 -3
  401. package/dist/esm/biz-components/TabWithImage/TabWithImage.d.ts +3 -3
  402. package/dist/esm/biz-components/Tabs/Tabs.d.ts +3 -3
  403. package/dist/esm/biz-components/TabsGroup/index.d.ts +3 -3
  404. package/dist/esm/biz-components/TabsWithMedia/TabsWithMedia.d.ts +3 -3
  405. package/dist/esm/biz-components/ThreeDCarousel/ThreeDCarousel.d.ts +3 -3
  406. package/dist/esm/biz-components/Title/Countdown.d.ts +14 -0
  407. package/dist/esm/biz-components/Title/Countdown.js +2 -0
  408. package/dist/esm/biz-components/Title/Countdown.js.map +7 -0
  409. package/dist/esm/biz-components/Title/index.d.ts +3 -3
  410. package/dist/esm/biz-components/Title/index.js +1 -1
  411. package/dist/esm/biz-components/Title/index.js.map +3 -3
  412. package/dist/esm/biz-components/Title/types.d.ts +55 -0
  413. package/dist/esm/biz-components/VideoFeature/VideoFeature.d.ts +3 -3
  414. package/dist/esm/biz-components/WheelLottery/BaseModal.d.ts +55 -0
  415. package/dist/esm/biz-components/WheelLottery/BaseModal.js +12 -0
  416. package/dist/esm/biz-components/WheelLottery/BaseModal.js.map +7 -0
  417. package/dist/esm/biz-components/WheelLottery/ChanceMethods.d.ts +30 -0
  418. package/dist/esm/biz-components/WheelLottery/ChanceMethods.js +2 -0
  419. package/dist/esm/biz-components/WheelLottery/ChanceMethods.js.map +7 -0
  420. package/dist/esm/biz-components/WheelLottery/ErrorModal.d.ts +42 -0
  421. package/dist/esm/biz-components/WheelLottery/ErrorModal.js +2 -0
  422. package/dist/esm/biz-components/WheelLottery/ErrorModal.js.map +7 -0
  423. package/dist/esm/biz-components/WheelLottery/MyRewardsModal.d.ts +91 -0
  424. package/dist/esm/biz-components/WheelLottery/MyRewardsModal.js +2 -0
  425. package/dist/esm/biz-components/WheelLottery/MyRewardsModal.js.map +7 -0
  426. package/dist/esm/biz-components/WheelLottery/PrizePool.d.ts +26 -0
  427. package/dist/esm/biz-components/WheelLottery/PrizePool.js +2 -0
  428. package/dist/esm/biz-components/WheelLottery/PrizePool.js.map +7 -0
  429. package/dist/esm/biz-components/WheelLottery/RulesModal.d.ts +43 -0
  430. package/dist/esm/biz-components/WheelLottery/RulesModal.js +2 -0
  431. package/dist/esm/biz-components/WheelLottery/RulesModal.js.map +7 -0
  432. package/dist/esm/biz-components/WheelLottery/ShareModal.d.ts +74 -0
  433. package/dist/esm/biz-components/WheelLottery/ShareModal.js +2 -0
  434. package/dist/esm/biz-components/WheelLottery/ShareModal.js.map +7 -0
  435. package/dist/esm/biz-components/WheelLottery/Wheel.d.ts +27 -0
  436. package/dist/esm/biz-components/WheelLottery/Wheel.js +2 -0
  437. package/dist/esm/biz-components/WheelLottery/Wheel.js.map +7 -0
  438. package/dist/esm/biz-components/WheelLottery/WinnerModal.d.ts +25 -0
  439. package/dist/esm/biz-components/WheelLottery/WinnerModal.js +2 -0
  440. package/dist/esm/biz-components/WheelLottery/WinnerModal.js.map +7 -0
  441. package/dist/esm/biz-components/WheelLottery/index.d.ts +52 -0
  442. package/dist/esm/biz-components/WheelLottery/index.js +2 -0
  443. package/dist/esm/biz-components/WheelLottery/index.js.map +7 -0
  444. package/dist/esm/biz-components/WheelLottery/types.d.ts +1193 -0
  445. package/dist/esm/biz-components/WheelLottery/types.js +2 -0
  446. package/dist/esm/biz-components/WheelLottery/types.js.map +7 -0
  447. package/dist/esm/biz-components/WhyChoose/WhyChoose.d.ts +3 -3
  448. package/dist/esm/biz-components/index.d.ts +30 -2
  449. package/dist/esm/biz-components/index.js +1 -1
  450. package/dist/esm/biz-components/index.js.map +3 -3
  451. package/dist/esm/components/badge.js +1 -1
  452. package/dist/esm/components/badge.js.map +2 -2
  453. package/dist/esm/components/index.d.ts +2 -0
  454. package/dist/esm/components/index.js +1 -1
  455. package/dist/esm/components/index.js.map +2 -2
  456. package/dist/esm/components/paginator.d.ts +12 -0
  457. package/dist/esm/components/paginator.js +7 -0
  458. package/dist/esm/components/paginator.js.map +7 -0
  459. package/dist/esm/components/progress.d.ts +46 -0
  460. package/dist/esm/components/progress.js +2 -0
  461. package/dist/esm/components/progress.js.map +7 -0
  462. package/dist/esm/components/tabs.d.ts +2 -1
  463. package/dist/esm/components/tabs.js +1 -1
  464. package/dist/esm/components/tabs.js.map +2 -2
  465. package/dist/esm/helpers/index.d.ts +1 -0
  466. package/dist/esm/helpers/index.js +1 -1
  467. package/dist/esm/helpers/index.js.map +3 -3
  468. package/dist/esm/helpers/priceFormatting.d.ts +11 -0
  469. package/dist/esm/helpers/priceFormatting.js +2 -0
  470. package/dist/esm/helpers/priceFormatting.js.map +7 -0
  471. package/dist/esm/shared/Styles.d.ts +5 -4
  472. package/dist/esm/shared/Styles.js +1 -1
  473. package/dist/esm/shared/Styles.js.map +3 -3
  474. package/dist/esm/types/props.d.ts +0 -3
  475. package/dist/tokens/base.css +4 -3
  476. package/dist/tokens/eufy.css +1 -0
  477. package/dist/tokens/soundcore.css +4 -3
  478. package/package.json +8 -3
  479. package/style.css +4915 -126
  480. package/tailwind.config.js +19 -2
  481. package/dist/cjs/stories/HeroBanner.stories.d.ts +0 -28
  482. package/dist/cjs/stories/HeroBanner.stories.js +0 -11
  483. package/dist/cjs/stories/HeroBanner.stories.js.map +0 -7
  484. package/dist/cjs/stories/InlineVideo.stories.d.ts +0 -37
  485. package/dist/cjs/stories/InlineVideo.stories.js +0 -164
  486. package/dist/cjs/stories/InlineVideo.stories.js.map +0 -7
  487. package/dist/cjs/stories/MarqueeReview.stories.d.ts +0 -72
  488. package/dist/cjs/stories/MarqueeReview.stories.js +0 -19
  489. package/dist/cjs/stories/MarqueeReview.stories.js.map +0 -7
  490. package/dist/cjs/stories/MediaSceneSwitcher.stories.d.ts +0 -47
  491. package/dist/cjs/stories/MediaSceneSwitcher.stories.js +0 -2
  492. package/dist/cjs/stories/MediaSceneSwitcher.stories.js.map +0 -7
  493. package/dist/cjs/stories/MemberEquity.stories.d.ts +0 -9
  494. package/dist/cjs/stories/MemberEquity.stories.js +0 -31
  495. package/dist/cjs/stories/MemberEquity.stories.js.map +0 -7
  496. package/dist/cjs/stories/MultiLayoutGraphicBlock.stories.d.ts +0 -9
  497. package/dist/cjs/stories/MultiLayoutGraphicBlock.stories.js +0 -2
  498. package/dist/cjs/stories/MultiLayoutGraphicBlock.stories.js.map +0 -7
  499. package/dist/cjs/stories/ProductNav.stories.d.ts +0 -55
  500. package/dist/cjs/stories/ProductNav.stories.js +0 -2
  501. package/dist/cjs/stories/ProductNav.stories.js.map +0 -7
  502. package/dist/cjs/stories/ThreeDCarousel.stories.d.ts +0 -27
  503. package/dist/cjs/stories/ThreeDCarousel.stories.js +0 -118
  504. package/dist/cjs/stories/ThreeDCarousel.stories.js.map +0 -7
  505. package/dist/cjs/stories/accordionCards.stories.d.ts +0 -38
  506. package/dist/cjs/stories/accordionCards.stories.js +0 -2
  507. package/dist/cjs/stories/accordionCards.stories.js.map +0 -7
  508. package/dist/cjs/stories/alert.stories.d.ts +0 -27
  509. package/dist/cjs/stories/alert.stories.js +0 -2
  510. package/dist/cjs/stories/alert.stories.js.map +0 -7
  511. package/dist/cjs/stories/avatar.stories.d.ts +0 -39
  512. package/dist/cjs/stories/avatar.stories.js +0 -2
  513. package/dist/cjs/stories/avatar.stories.js.map +0 -7
  514. package/dist/cjs/stories/badge.stories.d.ts +0 -96
  515. package/dist/cjs/stories/badge.stories.js +0 -2
  516. package/dist/cjs/stories/badge.stories.js.map +0 -7
  517. package/dist/cjs/stories/bizTabs.stories.d.ts +0 -7
  518. package/dist/cjs/stories/bizTabs.stories.js +0 -2
  519. package/dist/cjs/stories/bizTabs.stories.js.map +0 -7
  520. package/dist/cjs/stories/board.stories.d.ts +0 -6
  521. package/dist/cjs/stories/board.stories.js +0 -2
  522. package/dist/cjs/stories/board.stories.js.map +0 -7
  523. package/dist/cjs/stories/brandEquity.stories.d.ts +0 -16
  524. package/dist/cjs/stories/brandEquity.stories.js +0 -2
  525. package/dist/cjs/stories/brandEquity.stories.js.map +0 -7
  526. package/dist/cjs/stories/brandStrip.stories.d.ts +0 -12
  527. package/dist/cjs/stories/brandStrip.stories.js +0 -2
  528. package/dist/cjs/stories/brandStrip.stories.js.map +0 -7
  529. package/dist/cjs/stories/button.stories.d.ts +0 -56
  530. package/dist/cjs/stories/button.stories.js +0 -2
  531. package/dist/cjs/stories/button.stories.js.map +0 -7
  532. package/dist/cjs/stories/card.stories.d.ts +0 -27
  533. package/dist/cjs/stories/card.stories.js +0 -2
  534. package/dist/cjs/stories/card.stories.js.map +0 -7
  535. package/dist/cjs/stories/carousel.stories.d.ts +0 -8
  536. package/dist/cjs/stories/carousel.stories.js +0 -2
  537. package/dist/cjs/stories/carousel.stories.js.map +0 -7
  538. package/dist/cjs/stories/category.stories.d.ts +0 -17
  539. package/dist/cjs/stories/category.stories.js +0 -2
  540. package/dist/cjs/stories/category.stories.js.map +0 -7
  541. package/dist/cjs/stories/checkbox.stories.d.ts +0 -46
  542. package/dist/cjs/stories/checkbox.stories.js +0 -2
  543. package/dist/cjs/stories/checkbox.stories.js.map +0 -7
  544. package/dist/cjs/stories/container.stories.d.ts +0 -28
  545. package/dist/cjs/stories/container.stories.js +0 -15
  546. package/dist/cjs/stories/container.stories.js.map +0 -7
  547. package/dist/cjs/stories/cpnBanner.stories.d.ts +0 -14
  548. package/dist/cjs/stories/cpnBanner.stories.js +0 -2
  549. package/dist/cjs/stories/cpnBanner.stories.js.map +0 -7
  550. package/dist/cjs/stories/cpnCountdown.stories.d.ts +0 -12
  551. package/dist/cjs/stories/cpnCountdown.stories.js +0 -2
  552. package/dist/cjs/stories/cpnCountdown.stories.js.map +0 -7
  553. package/dist/cjs/stories/cpnNavigation.stories.d.ts +0 -14
  554. package/dist/cjs/stories/cpnNavigation.stories.js +0 -2
  555. package/dist/cjs/stories/cpnNavigation.stories.js.map +0 -7
  556. package/dist/cjs/stories/cpnProductcard.stories.d.ts +0 -14
  557. package/dist/cjs/stories/cpnProductcard.stories.js +0 -2
  558. package/dist/cjs/stories/cpnProductcard.stories.js.map +0 -7
  559. package/dist/cjs/stories/cpnTitle.stories.d.ts +0 -14
  560. package/dist/cjs/stories/cpnTitle.stories.js +0 -2
  561. package/dist/cjs/stories/cpnTitle.stories.js.map +0 -7
  562. package/dist/cjs/stories/creativeModule.stories.d.ts +0 -19
  563. package/dist/cjs/stories/creativeModule.stories.js +0 -2
  564. package/dist/cjs/stories/creativeModule.stories.js.map +0 -7
  565. package/dist/cjs/stories/dialog.stories.d.ts +0 -20
  566. package/dist/cjs/stories/dialog.stories.js +0 -2
  567. package/dist/cjs/stories/dialog.stories.js.map +0 -7
  568. package/dist/cjs/stories/drawer.stories.d.ts +0 -20
  569. package/dist/cjs/stories/drawer.stories.js +0 -2
  570. package/dist/cjs/stories/drawer.stories.js.map +0 -7
  571. package/dist/cjs/stories/drop-down.stories.d.ts +0 -16
  572. package/dist/cjs/stories/drop-down.stories.js +0 -2
  573. package/dist/cjs/stories/drop-down.stories.js.map +0 -7
  574. package/dist/cjs/stories/evaluate.stories.d.ts +0 -16
  575. package/dist/cjs/stories/evaluate.stories.js +0 -2
  576. package/dist/cjs/stories/evaluate.stories.js.map +0 -7
  577. package/dist/cjs/stories/faq.stories.d.ts +0 -21
  578. package/dist/cjs/stories/faq.stories.js +0 -2
  579. package/dist/cjs/stories/faq.stories.js.map +0 -7
  580. package/dist/cjs/stories/featureCards.stories.d.ts +0 -30
  581. package/dist/cjs/stories/featureCards.stories.js +0 -61
  582. package/dist/cjs/stories/featureCards.stories.js.map +0 -7
  583. package/dist/cjs/stories/featureShowcase.stories.d.ts +0 -29
  584. package/dist/cjs/stories/featureShowcase.stories.js +0 -44
  585. package/dist/cjs/stories/featureShowcase.stories.js.map +0 -7
  586. package/dist/cjs/stories/graphic.stories.d.ts +0 -64
  587. package/dist/cjs/stories/graphic.stories.js +0 -2
  588. package/dist/cjs/stories/graphic.stories.js.map +0 -7
  589. package/dist/cjs/stories/graphicAttractionBlock.stories.d.ts +0 -6
  590. package/dist/cjs/stories/graphicAttractionBlock.stories.js +0 -2
  591. package/dist/cjs/stories/graphicAttractionBlock.stories.js.map +0 -7
  592. package/dist/cjs/stories/grid.stories.d.ts +0 -22
  593. package/dist/cjs/stories/grid.stories.js +0 -13
  594. package/dist/cjs/stories/grid.stories.js.map +0 -7
  595. package/dist/cjs/stories/heading.stories.d.ts +0 -84
  596. package/dist/cjs/stories/heading.stories.js +0 -15
  597. package/dist/cjs/stories/heading.stories.js.map +0 -7
  598. package/dist/cjs/stories/imageTextFeature.stories.d.ts +0 -28
  599. package/dist/cjs/stories/imageTextFeature.stories.js +0 -50
  600. package/dist/cjs/stories/imageTextFeature.stories.js.map +0 -7
  601. package/dist/cjs/stories/imageWithText.stories.d.ts +0 -51
  602. package/dist/cjs/stories/imageWithText.stories.js +0 -84
  603. package/dist/cjs/stories/imageWithText.stories.js.map +0 -7
  604. package/dist/cjs/stories/input-number.stories.d.ts +0 -39
  605. package/dist/cjs/stories/input-number.stories.js +0 -2
  606. package/dist/cjs/stories/input-number.stories.js.map +0 -7
  607. package/dist/cjs/stories/input.stories.d.ts +0 -35
  608. package/dist/cjs/stories/input.stories.js +0 -2
  609. package/dist/cjs/stories/input.stories.js.map +0 -7
  610. package/dist/cjs/stories/ksp.stories.d.ts +0 -63
  611. package/dist/cjs/stories/ksp.stories.js +0 -128
  612. package/dist/cjs/stories/ksp.stories.js.map +0 -7
  613. package/dist/cjs/stories/link.stories.d.ts +0 -69
  614. package/dist/cjs/stories/link.stories.js +0 -2
  615. package/dist/cjs/stories/link.stories.js.map +0 -7
  616. package/dist/cjs/stories/marquee.stories.d.ts +0 -30
  617. package/dist/cjs/stories/marquee.stories.js +0 -2
  618. package/dist/cjs/stories/marquee.stories.js.map +0 -7
  619. package/dist/cjs/stories/mediaplayerBase.stories.d.ts +0 -6
  620. package/dist/cjs/stories/mediaplayerBase.stories.js +0 -2
  621. package/dist/cjs/stories/mediaplayerBase.stories.js.map +0 -7
  622. package/dist/cjs/stories/mediaplayerMulti.stories.d.ts +0 -16
  623. package/dist/cjs/stories/mediaplayerMulti.stories.js +0 -2
  624. package/dist/cjs/stories/mediaplayerMulti.stories.js.map +0 -7
  625. package/dist/cjs/stories/picture.stories.d.ts +0 -23
  626. package/dist/cjs/stories/picture.stories.js +0 -9
  627. package/dist/cjs/stories/picture.stories.js.map +0 -7
  628. package/dist/cjs/stories/popover.stories.d.ts +0 -17
  629. package/dist/cjs/stories/popover.stories.js +0 -2
  630. package/dist/cjs/stories/popover.stories.js.map +0 -7
  631. package/dist/cjs/stories/productCompare.stories.d.ts +0 -54
  632. package/dist/cjs/stories/productCompare.stories.js +0 -54
  633. package/dist/cjs/stories/productCompare.stories.js.map +0 -7
  634. package/dist/cjs/stories/productHero.stories.d.ts +0 -29
  635. package/dist/cjs/stories/productHero.stories.js +0 -50
  636. package/dist/cjs/stories/productHero.stories.js.map +0 -7
  637. package/dist/cjs/stories/radio.stories.d.ts +0 -39
  638. package/dist/cjs/stories/radio.stories.js +0 -2
  639. package/dist/cjs/stories/radio.stories.js.map +0 -7
  640. package/dist/cjs/stories/shelfDisplay.stories.d.ts +0 -16
  641. package/dist/cjs/stories/shelfDisplay.stories.js +0 -2
  642. package/dist/cjs/stories/shelfDisplay.stories.js.map +0 -7
  643. package/dist/cjs/stories/skeleton.stories.d.ts +0 -20
  644. package/dist/cjs/stories/skeleton.stories.js +0 -2
  645. package/dist/cjs/stories/skeleton.stories.js.map +0 -7
  646. package/dist/cjs/stories/slogan.stories.d.ts +0 -20
  647. package/dist/cjs/stories/slogan.stories.js +0 -6
  648. package/dist/cjs/stories/slogan.stories.js.map +0 -7
  649. package/dist/cjs/stories/specs.stories.d.ts +0 -13
  650. package/dist/cjs/stories/specs.stories.js +0 -57
  651. package/dist/cjs/stories/specs.stories.js.map +0 -7
  652. package/dist/cjs/stories/specsComparison.stories.d.ts +0 -28
  653. package/dist/cjs/stories/specsComparison.stories.js +0 -105
  654. package/dist/cjs/stories/specsComparison.stories.js.map +0 -7
  655. package/dist/cjs/stories/tabWithImage.stories.d.ts +0 -28
  656. package/dist/cjs/stories/tabWithImage.stories.js +0 -53
  657. package/dist/cjs/stories/tabWithImage.stories.js.map +0 -7
  658. package/dist/cjs/stories/tabs.stories.d.ts +0 -373
  659. package/dist/cjs/stories/tabs.stories.js +0 -2
  660. package/dist/cjs/stories/tabs.stories.js.map +0 -7
  661. package/dist/cjs/stories/tabsWithMedia.stories.d.ts +0 -28
  662. package/dist/cjs/stories/tabsWithMedia.stories.js +0 -68
  663. package/dist/cjs/stories/tabsWithMedia.stories.js.map +0 -7
  664. package/dist/cjs/stories/text.stories.d.ts +0 -86
  665. package/dist/cjs/stories/text.stories.js +0 -21
  666. package/dist/cjs/stories/text.stories.js.map +0 -7
  667. package/dist/cjs/stories/videoFeature.stories.d.ts +0 -29
  668. package/dist/cjs/stories/videoFeature.stories.js +0 -56
  669. package/dist/cjs/stories/videoFeature.stories.js.map +0 -7
  670. package/dist/cjs/stories/whychoose.stories.d.ts +0 -21
  671. package/dist/cjs/stories/whychoose.stories.js +0 -2
  672. package/dist/cjs/stories/whychoose.stories.js.map +0 -7
  673. package/dist/esm/stories/HeroBanner.stories.d.ts +0 -28
  674. package/dist/esm/stories/HeroBanner.stories.js +0 -11
  675. package/dist/esm/stories/HeroBanner.stories.js.map +0 -7
  676. package/dist/esm/stories/InlineVideo.stories.d.ts +0 -37
  677. package/dist/esm/stories/InlineVideo.stories.js +0 -164
  678. package/dist/esm/stories/InlineVideo.stories.js.map +0 -7
  679. package/dist/esm/stories/MarqueeReview.stories.d.ts +0 -72
  680. package/dist/esm/stories/MarqueeReview.stories.js +0 -19
  681. package/dist/esm/stories/MarqueeReview.stories.js.map +0 -7
  682. package/dist/esm/stories/MediaSceneSwitcher.stories.d.ts +0 -47
  683. package/dist/esm/stories/MediaSceneSwitcher.stories.js +0 -2
  684. package/dist/esm/stories/MediaSceneSwitcher.stories.js.map +0 -7
  685. package/dist/esm/stories/MemberEquity.stories.d.ts +0 -9
  686. package/dist/esm/stories/MemberEquity.stories.js +0 -31
  687. package/dist/esm/stories/MemberEquity.stories.js.map +0 -7
  688. package/dist/esm/stories/MultiLayoutGraphicBlock.stories.d.ts +0 -9
  689. package/dist/esm/stories/MultiLayoutGraphicBlock.stories.js +0 -2
  690. package/dist/esm/stories/MultiLayoutGraphicBlock.stories.js.map +0 -7
  691. package/dist/esm/stories/ProductNav.stories.d.ts +0 -55
  692. package/dist/esm/stories/ProductNav.stories.js +0 -2
  693. package/dist/esm/stories/ProductNav.stories.js.map +0 -7
  694. package/dist/esm/stories/ThreeDCarousel.stories.d.ts +0 -27
  695. package/dist/esm/stories/ThreeDCarousel.stories.js +0 -118
  696. package/dist/esm/stories/ThreeDCarousel.stories.js.map +0 -7
  697. package/dist/esm/stories/accordionCards.stories.d.ts +0 -38
  698. package/dist/esm/stories/accordionCards.stories.js +0 -2
  699. package/dist/esm/stories/accordionCards.stories.js.map +0 -7
  700. package/dist/esm/stories/alert.stories.d.ts +0 -27
  701. package/dist/esm/stories/alert.stories.js +0 -2
  702. package/dist/esm/stories/alert.stories.js.map +0 -7
  703. package/dist/esm/stories/avatar.stories.d.ts +0 -39
  704. package/dist/esm/stories/avatar.stories.js +0 -2
  705. package/dist/esm/stories/avatar.stories.js.map +0 -7
  706. package/dist/esm/stories/badge.stories.d.ts +0 -96
  707. package/dist/esm/stories/badge.stories.js +0 -2
  708. package/dist/esm/stories/badge.stories.js.map +0 -7
  709. package/dist/esm/stories/bizTabs.stories.d.ts +0 -7
  710. package/dist/esm/stories/bizTabs.stories.js +0 -2
  711. package/dist/esm/stories/bizTabs.stories.js.map +0 -7
  712. package/dist/esm/stories/board.stories.d.ts +0 -6
  713. package/dist/esm/stories/board.stories.js +0 -2
  714. package/dist/esm/stories/board.stories.js.map +0 -7
  715. package/dist/esm/stories/brandEquity.stories.d.ts +0 -16
  716. package/dist/esm/stories/brandEquity.stories.js +0 -2
  717. package/dist/esm/stories/brandEquity.stories.js.map +0 -7
  718. package/dist/esm/stories/brandStrip.stories.d.ts +0 -12
  719. package/dist/esm/stories/brandStrip.stories.js +0 -2
  720. package/dist/esm/stories/brandStrip.stories.js.map +0 -7
  721. package/dist/esm/stories/button.stories.d.ts +0 -56
  722. package/dist/esm/stories/button.stories.js +0 -2
  723. package/dist/esm/stories/button.stories.js.map +0 -7
  724. package/dist/esm/stories/card.stories.d.ts +0 -27
  725. package/dist/esm/stories/card.stories.js +0 -2
  726. package/dist/esm/stories/card.stories.js.map +0 -7
  727. package/dist/esm/stories/carousel.stories.d.ts +0 -8
  728. package/dist/esm/stories/carousel.stories.js +0 -2
  729. package/dist/esm/stories/carousel.stories.js.map +0 -7
  730. package/dist/esm/stories/category.stories.d.ts +0 -17
  731. package/dist/esm/stories/category.stories.js +0 -2
  732. package/dist/esm/stories/category.stories.js.map +0 -7
  733. package/dist/esm/stories/checkbox.stories.d.ts +0 -46
  734. package/dist/esm/stories/checkbox.stories.js +0 -2
  735. package/dist/esm/stories/checkbox.stories.js.map +0 -7
  736. package/dist/esm/stories/container.stories.d.ts +0 -28
  737. package/dist/esm/stories/container.stories.js +0 -15
  738. package/dist/esm/stories/container.stories.js.map +0 -7
  739. package/dist/esm/stories/cpnBanner.stories.d.ts +0 -14
  740. package/dist/esm/stories/cpnBanner.stories.js +0 -2
  741. package/dist/esm/stories/cpnBanner.stories.js.map +0 -7
  742. package/dist/esm/stories/cpnCountdown.stories.d.ts +0 -12
  743. package/dist/esm/stories/cpnCountdown.stories.js +0 -2
  744. package/dist/esm/stories/cpnCountdown.stories.js.map +0 -7
  745. package/dist/esm/stories/cpnNavigation.stories.d.ts +0 -14
  746. package/dist/esm/stories/cpnNavigation.stories.js +0 -2
  747. package/dist/esm/stories/cpnNavigation.stories.js.map +0 -7
  748. package/dist/esm/stories/cpnProductcard.stories.d.ts +0 -14
  749. package/dist/esm/stories/cpnProductcard.stories.js +0 -2
  750. package/dist/esm/stories/cpnProductcard.stories.js.map +0 -7
  751. package/dist/esm/stories/cpnTitle.stories.d.ts +0 -14
  752. package/dist/esm/stories/cpnTitle.stories.js +0 -2
  753. package/dist/esm/stories/cpnTitle.stories.js.map +0 -7
  754. package/dist/esm/stories/creativeModule.stories.d.ts +0 -19
  755. package/dist/esm/stories/creativeModule.stories.js +0 -2
  756. package/dist/esm/stories/creativeModule.stories.js.map +0 -7
  757. package/dist/esm/stories/dialog.stories.d.ts +0 -20
  758. package/dist/esm/stories/dialog.stories.js +0 -2
  759. package/dist/esm/stories/dialog.stories.js.map +0 -7
  760. package/dist/esm/stories/drawer.stories.d.ts +0 -20
  761. package/dist/esm/stories/drawer.stories.js +0 -2
  762. package/dist/esm/stories/drawer.stories.js.map +0 -7
  763. package/dist/esm/stories/drop-down.stories.d.ts +0 -16
  764. package/dist/esm/stories/drop-down.stories.js +0 -2
  765. package/dist/esm/stories/drop-down.stories.js.map +0 -7
  766. package/dist/esm/stories/evaluate.stories.d.ts +0 -16
  767. package/dist/esm/stories/evaluate.stories.js +0 -2
  768. package/dist/esm/stories/evaluate.stories.js.map +0 -7
  769. package/dist/esm/stories/faq.stories.d.ts +0 -21
  770. package/dist/esm/stories/faq.stories.js +0 -2
  771. package/dist/esm/stories/faq.stories.js.map +0 -7
  772. package/dist/esm/stories/featureCards.stories.d.ts +0 -30
  773. package/dist/esm/stories/featureCards.stories.js +0 -61
  774. package/dist/esm/stories/featureCards.stories.js.map +0 -7
  775. package/dist/esm/stories/featureShowcase.stories.d.ts +0 -29
  776. package/dist/esm/stories/featureShowcase.stories.js +0 -44
  777. package/dist/esm/stories/featureShowcase.stories.js.map +0 -7
  778. package/dist/esm/stories/graphic.stories.d.ts +0 -64
  779. package/dist/esm/stories/graphic.stories.js +0 -2
  780. package/dist/esm/stories/graphic.stories.js.map +0 -7
  781. package/dist/esm/stories/graphicAttractionBlock.stories.d.ts +0 -6
  782. package/dist/esm/stories/graphicAttractionBlock.stories.js +0 -2
  783. package/dist/esm/stories/graphicAttractionBlock.stories.js.map +0 -7
  784. package/dist/esm/stories/grid.stories.d.ts +0 -22
  785. package/dist/esm/stories/grid.stories.js +0 -13
  786. package/dist/esm/stories/grid.stories.js.map +0 -7
  787. package/dist/esm/stories/heading.stories.d.ts +0 -84
  788. package/dist/esm/stories/heading.stories.js +0 -15
  789. package/dist/esm/stories/heading.stories.js.map +0 -7
  790. package/dist/esm/stories/imageTextFeature.stories.d.ts +0 -28
  791. package/dist/esm/stories/imageTextFeature.stories.js +0 -50
  792. package/dist/esm/stories/imageTextFeature.stories.js.map +0 -7
  793. package/dist/esm/stories/imageWithText.stories.d.ts +0 -51
  794. package/dist/esm/stories/imageWithText.stories.js +0 -84
  795. package/dist/esm/stories/imageWithText.stories.js.map +0 -7
  796. package/dist/esm/stories/input-number.stories.d.ts +0 -39
  797. package/dist/esm/stories/input-number.stories.js +0 -2
  798. package/dist/esm/stories/input-number.stories.js.map +0 -7
  799. package/dist/esm/stories/input.stories.d.ts +0 -35
  800. package/dist/esm/stories/input.stories.js +0 -2
  801. package/dist/esm/stories/input.stories.js.map +0 -7
  802. package/dist/esm/stories/ksp.stories.d.ts +0 -63
  803. package/dist/esm/stories/ksp.stories.js +0 -128
  804. package/dist/esm/stories/ksp.stories.js.map +0 -7
  805. package/dist/esm/stories/link.stories.d.ts +0 -69
  806. package/dist/esm/stories/link.stories.js +0 -2
  807. package/dist/esm/stories/link.stories.js.map +0 -7
  808. package/dist/esm/stories/marquee.stories.d.ts +0 -30
  809. package/dist/esm/stories/marquee.stories.js +0 -2
  810. package/dist/esm/stories/marquee.stories.js.map +0 -7
  811. package/dist/esm/stories/mediaplayerBase.stories.d.ts +0 -6
  812. package/dist/esm/stories/mediaplayerBase.stories.js +0 -2
  813. package/dist/esm/stories/mediaplayerBase.stories.js.map +0 -7
  814. package/dist/esm/stories/mediaplayerMulti.stories.d.ts +0 -16
  815. package/dist/esm/stories/mediaplayerMulti.stories.js +0 -2
  816. package/dist/esm/stories/mediaplayerMulti.stories.js.map +0 -7
  817. package/dist/esm/stories/picture.stories.d.ts +0 -23
  818. package/dist/esm/stories/picture.stories.js +0 -9
  819. package/dist/esm/stories/picture.stories.js.map +0 -7
  820. package/dist/esm/stories/popover.stories.d.ts +0 -17
  821. package/dist/esm/stories/popover.stories.js +0 -2
  822. package/dist/esm/stories/popover.stories.js.map +0 -7
  823. package/dist/esm/stories/productCompare.stories.d.ts +0 -54
  824. package/dist/esm/stories/productCompare.stories.js +0 -54
  825. package/dist/esm/stories/productCompare.stories.js.map +0 -7
  826. package/dist/esm/stories/productHero.stories.d.ts +0 -29
  827. package/dist/esm/stories/productHero.stories.js +0 -50
  828. package/dist/esm/stories/productHero.stories.js.map +0 -7
  829. package/dist/esm/stories/radio.stories.d.ts +0 -39
  830. package/dist/esm/stories/radio.stories.js +0 -2
  831. package/dist/esm/stories/radio.stories.js.map +0 -7
  832. package/dist/esm/stories/shelfDisplay.stories.d.ts +0 -16
  833. package/dist/esm/stories/shelfDisplay.stories.js +0 -2
  834. package/dist/esm/stories/shelfDisplay.stories.js.map +0 -7
  835. package/dist/esm/stories/skeleton.stories.d.ts +0 -20
  836. package/dist/esm/stories/skeleton.stories.js +0 -2
  837. package/dist/esm/stories/skeleton.stories.js.map +0 -7
  838. package/dist/esm/stories/slogan.stories.d.ts +0 -20
  839. package/dist/esm/stories/slogan.stories.js +0 -6
  840. package/dist/esm/stories/slogan.stories.js.map +0 -7
  841. package/dist/esm/stories/specs.stories.d.ts +0 -13
  842. package/dist/esm/stories/specs.stories.js +0 -57
  843. package/dist/esm/stories/specs.stories.js.map +0 -7
  844. package/dist/esm/stories/specsComparison.stories.d.ts +0 -28
  845. package/dist/esm/stories/specsComparison.stories.js +0 -105
  846. package/dist/esm/stories/specsComparison.stories.js.map +0 -7
  847. package/dist/esm/stories/tabWithImage.stories.d.ts +0 -28
  848. package/dist/esm/stories/tabWithImage.stories.js +0 -53
  849. package/dist/esm/stories/tabWithImage.stories.js.map +0 -7
  850. package/dist/esm/stories/tabs.stories.d.ts +0 -373
  851. package/dist/esm/stories/tabs.stories.js +0 -2
  852. package/dist/esm/stories/tabs.stories.js.map +0 -7
  853. package/dist/esm/stories/tabsWithMedia.stories.d.ts +0 -28
  854. package/dist/esm/stories/tabsWithMedia.stories.js +0 -68
  855. package/dist/esm/stories/tabsWithMedia.stories.js.map +0 -7
  856. package/dist/esm/stories/text.stories.d.ts +0 -86
  857. package/dist/esm/stories/text.stories.js +0 -21
  858. package/dist/esm/stories/text.stories.js.map +0 -7
  859. package/dist/esm/stories/videoFeature.stories.d.ts +0 -29
  860. package/dist/esm/stories/videoFeature.stories.js +0 -56
  861. package/dist/esm/stories/videoFeature.stories.js.map +0 -7
  862. package/dist/esm/stories/whychoose.stories.d.ts +0 -21
  863. package/dist/esm/stories/whychoose.stories.js +0 -2
  864. package/dist/esm/stories/whychoose.stories.js.map +0 -7
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/biz-components/BrandCardLink/BrandCardLink.tsx"],
4
- "sourcesContent": ["'use client'\nimport { forwardRef, useEffect, useRef, useState, useImperativeHandle } from 'react'\n\nimport { cn } from '../../helpers/utils.js'\nimport Picture from '../../components/picture.js'\nimport { withLayout } from '../../shared/Styles.js'\nimport type { BrandCardLinkProps, BrandCardLinkItemProps } from './types.js'\n\nimport type { Img } from '../../types/props.js'\nimport { useMediaQuery } from 'react-responsive'\nimport { useExposure } from '../../hooks/useExposure.js'\n\nimport { Swiper, SwiperSlide } from 'swiper/react'\nimport { Pagination, FreeMode, Mousewheel } from 'swiper/modules'\nimport Title from '../Title/index.js'\nimport Link from '../../components/link.js'\n\nconst componentType = 'copy'\nconst componentName = 'store_benefits'\n\nconst chunkArray = (arr: BrandCardLinkItemProps[], size: number) => {\n const chunks = []\n for (let i = 0; i < arr.length; i += size) {\n chunks.push(arr.slice(i, i + size))\n }\n return chunks\n}\n\nconst BrandCardLink = forwardRef<HTMLDivElement, BrandCardLinkProps>(\n ({ data: { items = [], itemShape }, className }, ref) => {\n const [isMobile, setIsMobile] = useState(false)\n const mediaQuery = useMediaQuery({ query: '(max-width: 768px)' })\n const paginationRef = useRef<HTMLDivElement>(null)\n const innerRef = useRef<HTMLDivElement>(null)\n useImperativeHandle(ref, () => innerRef.current as HTMLDivElement)\n useExposure(innerRef, {\n componentType,\n componentName,\n })\n\n useEffect(() => {\n setIsMobile(mediaQuery)\n }, [mediaQuery])\n\n const itemsArray = isMobile ? chunkArray(items, 3) : items\n return (\n <div ref={innerRef} className={cn('brand-equity-wrapper w-full', className)}>\n {isMobile ? (\n <Swiper\n className={cn(className)}\n modules={[FreeMode, Mousewheel, Pagination]}\n freeMode={true}\n mousewheel={{\n forceToAxis: true,\n }}\n pagination={{\n clickable: true,\n el: paginationRef.current,\n }}\n breakpoints={{\n 0: {\n spaceBetween: 12,\n },\n }}\n >\n {itemsArray?.map((item, jIndex) => (\n <SwiperSlide key={'SwiperSlide' + jIndex} className=\"!flex flex-col gap-3\">\n {Array.isArray(item) &&\n item?.map((item, index) => (\n <BrandCardLinkItem key={index} data={item} itemShape={itemShape} index={index} />\n ))}\n </SwiperSlide>\n ))}\n <div ref={paginationRef} className=\"mt-3 flex justify-center\"></div>\n </Swiper>\n ) : (\n <div className={cn('laptop:gap-4 tablet:grid-cols-2 laptop:grid-cols-4 grid grid-cols-1 gap-3')}>\n {items.map((item, index) => (\n <BrandCardLinkItem key={index} data={item} itemShape={itemShape} index={index} />\n ))}\n </div>\n )}\n </div>\n )\n }\n)\n\nconst BrandCardLinkItem = ({\n data,\n itemShape,\n index,\n}: {\n data: BrandCardLinkItemProps\n itemShape?: 'round' | 'square'\n index: number\n}) => {\n return (\n <div\n className={cn(\n 'brand-equity-item',\n 'lg-desktop:p-8 desktop:p-6 p-4',\n 'laptop:h-[192px] lg-desktop:h-[240px] h-[160px]',\n 'box-border flex w-full flex-col justify-between overflow-hidden bg-[#DAE7F2]',\n itemShape === 'round' ? 'rounded-box' : 'rounded-none'\n )}\n >\n <div className=\"lg-desktop:h-[50px] flex h-10 items-center justify-between gap-3\">\n <h3 className=\"link-item-title lg-desktop:text-[18px] desktop:text-[16px] line-clamp-2 flex-1 text-[14px] font-bold leading-[1.2] tracking-[-0.02em] text-[#080A0F]\">\n {data.title}\n </h3>\n <div className=\"link-item-img lg-desktop:size-[36px] size-[30px] shrink-0\">\n <Picture\n className=\"size-full object-cover\"\n source={data.icon?.url}\n alt={data.icon?.alt}\n imgClassName=\"w-full h-full object-cover\"\n />\n </div>\n </div>\n <div className=\"box-border overflow-hidden\">\n <p\n title={data.description || ''}\n className=\"link-item-description lg-desktop:text-[24px] line-clamp-2 text-[20px] font-semibold leading-[1.2] tracking-[-0.04em] text-[#767880]\"\n >\n {data.description || ''}\n </p>\n <Link\n href={data?.link}\n asChild={!data?.link}\n className=\"desktop:mt-4 mt-2 flex items-center gap-0.5 no-underline hover:underline\"\n >\n <span className=\"link-item-text laptop:text-base text-sm\">{data?.linkText}</span>\n <div className=\"size-6\">\n <svg\n width=\"24\"\n height=\"24\"\n className=\"mb-[3px]\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n >\n <path\n className=\"transition-all duration-[0.4s]\"\n d=\"M10.5 8L14.5 12L10.5 16\"\n stroke=\"#777\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n ></path>\n </svg>\n </div>\n </Link>\n </div>\n </div>\n )\n}\n\nBrandCardLink.displayName = 'BrandCardLink'\n\nexport default withLayout(BrandCardLink)\n"],
4
+ "sourcesContent": ["'use client'\nimport { forwardRef, useEffect, useRef, useState, useImperativeHandle } from 'react'\n\nimport { cn } from '../../helpers/utils.js'\nimport Picture from '../../components/picture.js'\nimport { withLayout } from '../../shared/Styles.js'\nimport type { BrandCardLinkProps, BrandCardLinkItemProps } from './types.js'\n\nimport type { Img } from '../../types/props.js'\nimport { useMediaQuery } from 'react-responsive'\nimport { useExposure } from '../../hooks/useExposure.js'\n\nimport { Swiper, SwiperSlide } from 'swiper/react'\nimport { Pagination, FreeMode, Mousewheel } from 'swiper/modules'\nimport Title from '../Title/index.js'\nimport Link from '../../components/link.js'\n\nconst componentType = 'copy'\nconst componentName = 'store_benefits'\n\nconst chunkArray = (arr: BrandCardLinkItemProps[], size: number) => {\n const chunks = []\n for (let i = 0; i < arr.length; i += size) {\n chunks.push(arr.slice(i, i + size))\n }\n return chunks\n}\n\nconst BrandCardLink = forwardRef<HTMLDivElement, BrandCardLinkProps>(\n ({ data: { items = [], itemShape }, className }, ref) => {\n const [isMobile, setIsMobile] = useState(false)\n const mediaQuery = useMediaQuery({ query: '(max-width: 768px)' })\n const paginationRef = useRef<HTMLDivElement>(null)\n const innerRef = useRef<HTMLDivElement>(null)\n useImperativeHandle(ref, () => innerRef.current as HTMLDivElement)\n useExposure(innerRef, {\n componentType,\n componentName,\n })\n\n useEffect(() => {\n setIsMobile(mediaQuery)\n }, [mediaQuery])\n\n const itemsArray = isMobile ? chunkArray(items, 4) : items\n return (\n <div ref={innerRef} className={cn('brand-equity-wrapper w-full', className)}>\n {isMobile ? (\n <Swiper\n className={cn(className)}\n modules={[FreeMode, Mousewheel, Pagination]}\n freeMode={true}\n mousewheel={{\n forceToAxis: true,\n }}\n pagination={{\n clickable: true,\n el: paginationRef.current,\n }}\n breakpoints={{\n 0: {\n spaceBetween: 12,\n },\n }}\n >\n {itemsArray?.map((item, jIndex) => (\n <SwiperSlide key={'SwiperSlide' + jIndex} className=\"!flex flex-col gap-3\">\n {Array.isArray(item) &&\n item?.map((item, index) => (\n <BrandCardLinkItem key={index} data={item} itemShape={itemShape} index={index} />\n ))}\n </SwiperSlide>\n ))}\n <div ref={paginationRef} className=\"mt-3 flex justify-center\"></div>\n </Swiper>\n ) : (\n <div className={cn('laptop:gap-4 tablet:grid-cols-2 laptop:grid-cols-4 grid grid-cols-1 gap-3')}>\n {items.map((item, index) => (\n <BrandCardLinkItem key={index} data={item} itemShape={itemShape} index={index} />\n ))}\n </div>\n )}\n </div>\n )\n }\n)\n\nconst BrandCardLinkItem = ({\n data,\n itemShape,\n index,\n}: {\n data: BrandCardLinkItemProps\n itemShape?: 'round' | 'square'\n index: number\n}) => {\n return (\n <div\n className={cn(\n 'brand-equity-item',\n 'lg-desktop:p-8 desktop:p-6 p-4',\n 'laptop:h-[192px] lg-desktop:h-[240px] h-[160px]',\n 'box-border flex w-full flex-col justify-between overflow-hidden bg-[#DAE7F2]',\n itemShape === 'round' ? 'rounded-box' : 'rounded-none'\n )}\n >\n <div className=\"lg-desktop:h-[50px] flex h-10 items-center justify-between gap-3\">\n <h3 className=\"link-item-title lg-desktop:text-[18px] desktop:text-[16px] line-clamp-2 flex-1 text-[14px] font-bold leading-[1.2] tracking-[-0.02em] text-[#080A0F]\">\n {data.title}\n </h3>\n <div className=\"link-item-img lg-desktop:size-[36px] size-[30px] shrink-0\">\n <Picture\n className=\"size-full object-cover\"\n source={data.icon?.url}\n alt={data.icon?.alt}\n imgClassName=\"w-full h-full object-cover\"\n />\n </div>\n </div>\n <div className=\"box-border overflow-hidden\">\n <p\n title={data.description || ''}\n className=\"link-item-description lg-desktop:text-[24px] line-clamp-2 text-[20px] font-semibold leading-[1.2] tracking-[-0.04em] text-[#767880]\"\n >\n {data.description || ''}\n </p>\n <Link\n href={data?.link}\n asChild={!data?.link}\n className=\"desktop:mt-4 mt-2 flex items-center gap-0.5 no-underline hover:underline\"\n >\n <span className=\"link-item-text laptop:text-base text-sm\">{data?.linkText}</span>\n <div className=\"size-6\">\n <svg\n width=\"24\"\n height=\"24\"\n className=\"mb-[3px]\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n >\n <path\n className=\"transition-all duration-[0.4s]\"\n d=\"M10.5 8L14.5 12L10.5 16\"\n stroke=\"#777\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n ></path>\n </svg>\n </div>\n </Link>\n </div>\n </div>\n )\n}\n\nBrandCardLink.displayName = 'BrandCardLink'\n\nexport default withLayout(BrandCardLink)\n"],
5
5
  "mappings": "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",
6
6
  "names": ["BrandCardLink_exports", "__export", "BrandCardLink_default", "__toCommonJS", "import_jsx_runtime", "import_react", "import_utils", "import_picture", "import_Styles", "import_react_responsive", "import_useExposure", "import_modules", "import_Title", "import_link", "componentType", "componentName", "chunkArray", "arr", "size", "chunks", "i", "BrandCardLink", "items", "itemShape", "className", "ref", "isMobile", "setIsMobile", "mediaQuery", "paginationRef", "innerRef", "itemsArray", "item", "jIndex", "index", "BrandCardLinkItem", "data", "Picture", "Link"]
7
7
  }
@@ -1,6 +1,6 @@
1
1
  import type { BrandEquityProps } from './types.js';
2
- declare const _default: import("react").ForwardRefExoticComponent<Omit<Omit<BrandEquityProps & import("react").RefAttributes<HTMLDivElement>, keyof import("../../shared/Styles.js").StylesProps> & Partial<import("../../shared/Styles.js").StylesProps & import("../../shared/Styles.js").ContainerProps> & {
3
- className?: string;
4
- data?: Record<string, any>;
2
+ declare const _default: import("react").ForwardRefExoticComponent<Omit<BrandEquityProps & import("react").RefAttributes<HTMLDivElement> & {
3
+ style?: string | React.CSSProperties;
4
+ container?: import("../../shared/Styles.js").ContainerProps["container"];
5
5
  }, "ref"> & import("react").RefAttributes<any>>;
6
6
  export default _default;
@@ -1,2 +1,2 @@
1
- "use strict";"use client";var j=Object.create;var m=Object.defineProperty;var A=Object.getOwnPropertyDescriptor;var P=Object.getOwnPropertyNames;var T=Object.getPrototypeOf,L=Object.prototype.hasOwnProperty;var z=(e,t)=>{for(var o in t)m(e,o,{get:t[o],enumerable:!0})},b=(e,t,o,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of P(t))!L.call(e,s)&&s!==o&&m(e,s,{get:()=>t[s],enumerable:!(i=A(t,s))||i.enumerable});return e};var h=(e,t,o)=>(o=e!=null?j(T(e)):{},b(t||!e||!e.__esModule?m(o,"default",{value:e,enumerable:!0}):o,e)),H=e=>b(m({},"__esModule",{value:!0}),e);var C={};z(C,{default:()=>Q});module.exports=H(C);var r=require("react/jsx-runtime"),a=require("react"),l=require("../../helpers/utils.js"),f=h(require("../../components/picture.js")),N=require("../../shared/Styles.js"),E=require("react-responsive"),q=require("../../hooks/useExposure.js"),c=require("swiper/react"),p=require("swiper/modules"),S=h(require("../Title/index.js"));const D="copy",R="store_benefits",F=(e,t)=>{const o=[];for(let i=0;i<e.length;i+=t)o.push(e.slice(i,i+t));return o},k=(0,a.forwardRef)(({data:{items:e=[],itemShape:t,title:o},className:i},s)=>{const[x,M]=(0,a.useState)(!1),y=(0,E.useMediaQuery)({query:"(max-width: 768px)"}),v=(0,a.useRef)(null),u=(0,a.useRef)(null);(0,a.useImperativeHandle)(s,()=>u.current),(0,q.useExposure)(u,{componentType:D,componentName:R}),(0,a.useEffect)(()=>{M(y)},[y]);const B=x?F(e,3):e;return(0,r.jsxs)("div",{ref:u,className:(0,l.cn)("brand-equity-wrapper w-full",i),children:[o&&(0,r.jsx)(S.default,{data:{title:o}}),x?(0,r.jsxs)(c.Swiper,{className:(0,l.cn)(i),modules:[p.FreeMode,p.Mousewheel,p.Pagination],freeMode:!0,mousewheel:{forceToAxis:!0},pagination:{clickable:!0,el:v.current},breakpoints:{0:{spaceBetween:12}},children:[B?.map((n,d)=>(0,r.jsx)(c.SwiperSlide,{className:"!flex flex-col gap-3",children:Array.isArray(n)&&n?.map((I,g)=>(0,r.jsx)(w,{data:I,itemShape:t,index:g},g))},"SwiperSlide"+d)),(0,r.jsx)("div",{ref:v,className:"mt-3 flex justify-center"})]}):(0,r.jsx)("div",{className:(0,l.cn)("grid grid-cols-1 gap-3","tablet:grid-cols-2","laptop:gap-4 laptop:grid-cols-10"),children:e.map((n,d)=>(0,r.jsx)(w,{data:n,itemShape:t,index:d},d))})]})}),w=({data:e,itemShape:t,index:o})=>(0,r.jsxs)("div",{className:(0,l.cn)("brand-equity-item","box-border flex w-full flex-col bg-white p-4","desktop:p-6 justify-between","laptop:col-span-3 lg-desktop:p-8","laptop:h-[192px] lg-desktop:h-[240px] h-[160px]",{"laptop:col-span-4":[0,5,6,11].includes(o)},t==="round"?"rounded-box":"rounded-none"),children:[(0,r.jsxs)("div",{className:"lg-desktop:h-[36px] flex h-[30px] items-center justify-between gap-3",children:[(0,r.jsx)("h3",{className:"lg-desktop:text-[18px] desktop:text-[16px] text-[14px] font-bold leading-[1.2] tracking-[-0.02em] text-[#080A0F]",children:e.title}),e.type==="avatar"?(0,r.jsx)("div",{className:"flex shrink-0 -space-x-2",children:e?.avatarList?.map((i,s)=>(0,r.jsx)("div",{className:(0,l.cn)("size-[30px] overflow-hidden rounded-full border-2 border-white","relative inline-block shrink-0","lg-desktop:size-[36px]"),children:(0,r.jsx)(f.default,{source:i.avatar?.url,alt:i.avatar?.alt,className:"size-full object-cover"})},s))}):(0,r.jsx)("div",{className:"lg-desktop:size-[36px] size-[30px] shrink-0",children:(0,r.jsx)(f.default,{className:"size-full object-cover",source:e.icon?.url,alt:e.icon?.alt,imgClassName:"w-full h-full object-cover"})})]}),(0,r.jsx)("p",{className:"lg-desktop:text-[24px] line-clamp-3 text-[20px] font-bold leading-[1.2] tracking-[-0.04em] text-[#080A0F]",children:e.description})]});k.displayName="BrandEquity";var Q=(0,N.withLayout)(k);
1
+ "use strict";"use client";var I=Object.create;var m=Object.defineProperty;var j=Object.getOwnPropertyDescriptor;var P=Object.getOwnPropertyNames;var L=Object.getPrototypeOf,z=Object.prototype.hasOwnProperty;var H=(e,r)=>{for(var o in r)m(e,o,{get:r[o],enumerable:!0})},b=(e,r,o,i)=>{if(r&&typeof r=="object"||typeof r=="function")for(let a of P(r))!z.call(e,a)&&a!==o&&m(e,a,{get:()=>r[a],enumerable:!(i=j(r,a))||i.enumerable});return e};var h=(e,r,o)=>(o=e!=null?I(L(e)):{},b(r||!e||!e.__esModule?m(o,"default",{value:e,enumerable:!0}):o,e)),D=e=>b(m({},"__esModule",{value:!0}),e);var _={};H(_,{default:()=>C});module.exports=D(_);var t=require("react/jsx-runtime"),s=require("react"),l=require("../../helpers/utils.js"),f=h(require("../../components/picture.js")),N=require("../../shared/Styles.js"),E=require("react-responsive"),q=require("../../hooks/useExposure.js"),c=require("swiper/react"),p=require("swiper/modules"),S=h(require("../Title/index.js")),M=require("../../components/index.js");const F="copy",R="store_benefits",Q=(e,r)=>{const o=[];for(let i=0;i<e.length;i+=r)o.push(e.slice(i,i+r));return o},k=(0,s.forwardRef)(({data:{items:e=[],itemShape:r,title:o},className:i},a)=>{const[x,T]=(0,s.useState)(!1),y=(0,E.useMediaQuery)({query:"(max-width: 768px)"}),v=(0,s.useRef)(null),u=(0,s.useRef)(null);(0,s.useImperativeHandle)(a,()=>u.current),(0,q.useExposure)(u,{componentType:F,componentName:R}),(0,s.useEffect)(()=>{T(y)},[y]);const B=x?Q(e,3):e;return(0,t.jsxs)("div",{ref:u,className:(0,l.cn)("brand-equity-wrapper w-full",i),children:[o&&(0,t.jsx)(S.default,{data:{title:o}}),x?(0,t.jsxs)(c.Swiper,{className:(0,l.cn)(i),modules:[p.FreeMode,p.Mousewheel,p.Pagination],freeMode:!0,mousewheel:{forceToAxis:!0},pagination:{clickable:!0,el:v.current},breakpoints:{0:{spaceBetween:12}},children:[B?.map((n,d)=>(0,t.jsx)(c.SwiperSlide,{className:"!flex flex-col gap-3",children:Array.isArray(n)&&n?.map((A,g)=>(0,t.jsx)(w,{data:A,itemShape:r,index:g},g))},"SwiperSlide"+d)),(0,t.jsx)("div",{ref:v,className:"mt-3 flex justify-center"})]}):(0,t.jsx)("div",{className:(0,l.cn)("grid grid-cols-1 gap-3","tablet:grid-cols-2","laptop:gap-4 laptop:grid-cols-10"),children:e.map((n,d)=>(0,t.jsx)(w,{data:n,itemShape:r,index:d},d))})]})}),w=({data:e,itemShape:r,index:o})=>(0,t.jsxs)("div",{className:(0,l.cn)("brand-equity-item","box-border flex w-full flex-col bg-white p-4","desktop:p-6 justify-between","laptop:col-span-3 lg-desktop:p-8","laptop:h-[192px] lg-desktop:h-[240px] h-[160px]",{"laptop:col-span-4":[0,5,6,11].includes(o)},r==="round"?"rounded-box":"rounded-none"),children:[(0,t.jsxs)("div",{className:"lg-desktop:h-[36px] flex h-[30px] items-center justify-between gap-3",children:[(0,t.jsx)("h3",{className:"lg-desktop:text-[18px] desktop:text-[16px] text-[14px] font-bold leading-[1.2] tracking-[-0.02em] text-[#080A0F]",children:e.title}),e.type==="avatar"?(0,t.jsx)("div",{className:"flex shrink-0 -space-x-2",children:e?.avatarList?.map((i,a)=>(0,t.jsx)("div",{className:(0,l.cn)("size-[30px] overflow-hidden rounded-full border-2 border-white","relative inline-block shrink-0","lg-desktop:size-[36px]"),children:(0,t.jsx)(f.default,{source:i.avatar?.url,alt:i.avatar?.alt,className:"size-full object-cover"})},a))}):(0,t.jsx)("div",{className:"lg-desktop:size-[36px] size-[30px] shrink-0",children:(0,t.jsx)(f.default,{className:"size-full object-cover",source:e.icon?.url,alt:e.icon?.alt,imgClassName:"w-full h-full object-cover"})})]}),(0,t.jsx)("p",{className:"lg-desktop:text-[24px] line-clamp-3 text-[20px] font-bold leading-[1.2] tracking-[-0.04em] text-[#080A0F]",children:e.description}),e?.descText&&(0,t.jsx)(M.Text,{className:"lg-desktop:text-[24px] line-clamp-3 text-[20px] font-bold leading-[1.2] tracking-[-0.04em] text-[#080A0F]",html:e.descText})]});k.displayName="BrandEquity";var C=(0,N.withLayout)(k);
2
2
  //# sourceMappingURL=BrandEquity.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/biz-components/BrandEquity/BrandEquity.tsx"],
4
- "sourcesContent": ["'use client'\nimport { forwardRef, useEffect, useRef, useState, useImperativeHandle } from 'react'\n\nimport { cn } from '../../helpers/utils.js'\nimport Picture from '../../components/picture.js'\nimport { withLayout } from '../../shared/Styles.js'\nimport type { BrandEquityProps, BrandEquityItemProps } from './types.js'\n\nimport type { Img } from '../../types/props.js'\nimport { useMediaQuery } from 'react-responsive'\nimport { useExposure } from '../../hooks/useExposure.js'\n\nimport { Swiper, SwiperSlide } from 'swiper/react'\nimport { Pagination, FreeMode, Mousewheel } from 'swiper/modules'\nimport Title from '../Title/index.js'\n\nconst componentType = 'copy'\nconst componentName = 'store_benefits'\n\nconst chunkArray = (arr: BrandEquityItemProps[], size: number) => {\n const chunks = []\n for (let i = 0; i < arr.length; i += size) {\n chunks.push(arr.slice(i, i + size))\n }\n return chunks\n}\n\nconst BrandEquity = forwardRef<HTMLDivElement, BrandEquityProps>(\n ({ data: { items = [], itemShape, title }, className }, ref) => {\n const [isMobile, setIsMobile] = useState(false)\n const mediaQuery = useMediaQuery({ query: '(max-width: 768px)' })\n const paginationRef = useRef<HTMLDivElement>(null)\n const innerRef = useRef<HTMLDivElement>(null)\n useImperativeHandle(ref, () => innerRef.current as HTMLDivElement)\n useExposure(innerRef, {\n componentType,\n componentName,\n })\n\n useEffect(() => {\n setIsMobile(mediaQuery)\n }, [mediaQuery])\n\n const itemsArray = isMobile ? chunkArray(items, 3) : items\n return (\n <div ref={innerRef} className={cn('brand-equity-wrapper w-full', className)}>\n {title && <Title data={{ title: title }} />}\n {isMobile ? (\n <Swiper\n className={cn(className)}\n modules={[FreeMode, Mousewheel, Pagination]}\n freeMode={true}\n mousewheel={{\n forceToAxis: true,\n }}\n pagination={{\n clickable: true,\n el: paginationRef.current,\n }}\n breakpoints={{\n 0: {\n spaceBetween: 12,\n },\n }}\n >\n {itemsArray?.map((item, jIndex) => (\n <SwiperSlide key={'SwiperSlide' + jIndex} className=\"!flex flex-col gap-3\">\n {Array.isArray(item) &&\n item?.map((item, index) => (\n <BrandEquityItem key={index} data={item} itemShape={itemShape} index={index} />\n ))}\n </SwiperSlide>\n ))}\n <div ref={paginationRef} className=\"mt-3 flex justify-center\"></div>\n </Swiper>\n ) : (\n <div className={cn('grid grid-cols-1 gap-3', 'tablet:grid-cols-2', 'laptop:gap-4 laptop:grid-cols-10')}>\n {items.map((item, index) => (\n <BrandEquityItem key={index} data={item} itemShape={itemShape} index={index} />\n ))}\n </div>\n )}\n </div>\n )\n }\n)\n\nconst BrandEquityItem = ({\n data,\n itemShape,\n index,\n}: {\n data: BrandEquityItemProps\n itemShape?: 'round' | 'square'\n index: number\n}) => {\n return (\n <div\n className={cn(\n 'brand-equity-item',\n 'box-border flex w-full flex-col bg-white p-4',\n 'desktop:p-6 justify-between',\n 'laptop:col-span-3 lg-desktop:p-8',\n 'laptop:h-[192px] lg-desktop:h-[240px] h-[160px]',\n {\n ['laptop:col-span-4']: [0, 5, 6, 11].includes(index),\n },\n itemShape === 'round' ? 'rounded-box' : 'rounded-none'\n )}\n >\n <div className=\"lg-desktop:h-[36px] flex h-[30px] items-center justify-between gap-3\">\n <h3 className=\"lg-desktop:text-[18px] desktop:text-[16px] text-[14px] font-bold leading-[1.2] tracking-[-0.02em] text-[#080A0F]\">\n {data.title}\n </h3>\n {data.type === 'avatar' ? (\n <div className=\"flex shrink-0 -space-x-2\">\n {data?.avatarList?.map((item: { avatar: Img }, index: number) => (\n <div\n key={index}\n className={cn(\n 'size-[30px] overflow-hidden rounded-full border-2 border-white',\n 'relative inline-block shrink-0',\n 'lg-desktop:size-[36px]'\n )}\n >\n <Picture source={item.avatar?.url} alt={item.avatar?.alt} className=\"size-full object-cover\" />\n </div>\n ))}\n </div>\n ) : (\n <div className=\"lg-desktop:size-[36px] size-[30px] shrink-0\">\n <Picture\n className=\"size-full object-cover\"\n source={data.icon?.url}\n alt={data.icon?.alt}\n imgClassName=\"w-full h-full object-cover\"\n />\n </div>\n )}\n </div>\n <p className=\"lg-desktop:text-[24px] line-clamp-3 text-[20px] font-bold leading-[1.2] tracking-[-0.04em] text-[#080A0F]\">\n {data.description}\n </p>\n </div>\n )\n}\n\nBrandEquity.displayName = 'BrandEquity'\n\nexport default withLayout(BrandEquity)\n"],
5
- "mappings": "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",
6
- "names": ["BrandEquity_exports", "__export", "BrandEquity_default", "__toCommonJS", "import_jsx_runtime", "import_react", "import_utils", "import_picture", "import_Styles", "import_react_responsive", "import_useExposure", "import_modules", "import_Title", "componentType", "componentName", "chunkArray", "arr", "size", "chunks", "BrandEquity", "items", "itemShape", "title", "className", "ref", "isMobile", "setIsMobile", "mediaQuery", "paginationRef", "innerRef", "itemsArray", "Title", "item", "jIndex", "index", "BrandEquityItem", "data", "Picture"]
4
+ "sourcesContent": ["'use client'\nimport { forwardRef, useEffect, useRef, useState, useImperativeHandle } from 'react'\n\nimport { cn } from '../../helpers/utils.js'\nimport Picture from '../../components/picture.js'\nimport { withLayout } from '../../shared/Styles.js'\nimport type { BrandEquityProps, BrandEquityItemProps } from './types.js'\n\nimport type { Img } from '../../types/props.js'\nimport { useMediaQuery } from 'react-responsive'\nimport { useExposure } from '../../hooks/useExposure.js'\n\nimport { Swiper, SwiperSlide } from 'swiper/react'\nimport { Pagination, FreeMode, Mousewheel } from 'swiper/modules'\nimport Title from '../Title/index.js'\nimport { Text } from '../../components/index.js'\n\nconst componentType = 'copy'\nconst componentName = 'store_benefits'\n\nconst chunkArray = (arr: BrandEquityItemProps[], size: number) => {\n const chunks = []\n for (let i = 0; i < arr.length; i += size) {\n chunks.push(arr.slice(i, i + size))\n }\n return chunks\n}\n\nconst BrandEquity = forwardRef<HTMLDivElement, BrandEquityProps>(\n ({ data: { items = [], itemShape, title }, className }, ref) => {\n const [isMobile, setIsMobile] = useState(false)\n const mediaQuery = useMediaQuery({ query: '(max-width: 768px)' })\n const paginationRef = useRef<HTMLDivElement>(null)\n const innerRef = useRef<HTMLDivElement>(null)\n useImperativeHandle(ref, () => innerRef.current as HTMLDivElement)\n useExposure(innerRef, {\n componentType,\n componentName,\n })\n\n useEffect(() => {\n setIsMobile(mediaQuery)\n }, [mediaQuery])\n\n const itemsArray = isMobile ? chunkArray(items, 3) : items\n return (\n <div ref={innerRef} className={cn('brand-equity-wrapper w-full', className)}>\n {title && <Title data={{ title: title }} />}\n {isMobile ? (\n <Swiper\n className={cn(className)}\n modules={[FreeMode, Mousewheel, Pagination]}\n freeMode={true}\n mousewheel={{\n forceToAxis: true,\n }}\n pagination={{\n clickable: true,\n el: paginationRef.current,\n }}\n breakpoints={{\n 0: {\n spaceBetween: 12,\n },\n }}\n >\n {itemsArray?.map((item, jIndex) => (\n <SwiperSlide key={'SwiperSlide' + jIndex} className=\"!flex flex-col gap-3\">\n {Array.isArray(item) &&\n item?.map((item, index) => (\n <BrandEquityItem key={index} data={item} itemShape={itemShape} index={index} />\n ))}\n </SwiperSlide>\n ))}\n <div ref={paginationRef} className=\"mt-3 flex justify-center\"></div>\n </Swiper>\n ) : (\n <div className={cn('grid grid-cols-1 gap-3', 'tablet:grid-cols-2', 'laptop:gap-4 laptop:grid-cols-10')}>\n {items.map((item, index) => (\n <BrandEquityItem key={index} data={item} itemShape={itemShape} index={index} />\n ))}\n </div>\n )}\n </div>\n )\n }\n)\n\nconst BrandEquityItem = ({\n data,\n itemShape,\n index,\n}: {\n data: BrandEquityItemProps\n itemShape?: 'round' | 'square'\n index: number\n}) => {\n return (\n <div\n className={cn(\n 'brand-equity-item',\n 'box-border flex w-full flex-col bg-white p-4',\n 'desktop:p-6 justify-between',\n 'laptop:col-span-3 lg-desktop:p-8',\n 'laptop:h-[192px] lg-desktop:h-[240px] h-[160px]',\n {\n ['laptop:col-span-4']: [0, 5, 6, 11].includes(index),\n },\n itemShape === 'round' ? 'rounded-box' : 'rounded-none'\n )}\n >\n <div className=\"lg-desktop:h-[36px] flex h-[30px] items-center justify-between gap-3\">\n <h3 className=\"lg-desktop:text-[18px] desktop:text-[16px] text-[14px] font-bold leading-[1.2] tracking-[-0.02em] text-[#080A0F]\">\n {data.title}\n </h3>\n {data.type === 'avatar' ? (\n <div className=\"flex shrink-0 -space-x-2\">\n {data?.avatarList?.map((item: { avatar: Img }, index: number) => (\n <div\n key={index}\n className={cn(\n 'size-[30px] overflow-hidden rounded-full border-2 border-white',\n 'relative inline-block shrink-0',\n 'lg-desktop:size-[36px]'\n )}\n >\n <Picture source={item.avatar?.url} alt={item.avatar?.alt} className=\"size-full object-cover\" />\n </div>\n ))}\n </div>\n ) : (\n <div className=\"lg-desktop:size-[36px] size-[30px] shrink-0\">\n <Picture\n className=\"size-full object-cover\"\n source={data.icon?.url}\n alt={data.icon?.alt}\n imgClassName=\"w-full h-full object-cover\"\n />\n </div>\n )}\n </div>\n <p className=\"lg-desktop:text-[24px] line-clamp-3 text-[20px] font-bold leading-[1.2] tracking-[-0.04em] text-[#080A0F]\">\n {data.description}\n </p>\n {data?.descText && (\n <Text\n className=\"lg-desktop:text-[24px] line-clamp-3 text-[20px] font-bold leading-[1.2] tracking-[-0.04em] text-[#080A0F]\"\n html={data.descText}\n />\n )}\n </div>\n )\n}\n\nBrandEquity.displayName = 'BrandEquity'\n\nexport default withLayout(BrandEquity)\n"],
5
+ "mappings": "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",
6
+ "names": ["BrandEquity_exports", "__export", "BrandEquity_default", "__toCommonJS", "import_jsx_runtime", "import_react", "import_utils", "import_picture", "import_Styles", "import_react_responsive", "import_useExposure", "import_modules", "import_Title", "import_components", "componentType", "componentName", "chunkArray", "arr", "size", "chunks", "BrandEquity", "items", "itemShape", "title", "className", "ref", "isMobile", "setIsMobile", "mediaQuery", "paginationRef", "innerRef", "itemsArray", "Title", "item", "jIndex", "index", "BrandEquityItem", "data", "Picture"]
7
7
  }
@@ -4,6 +4,7 @@ export interface BrandEquityItemProps {
4
4
  type?: 'icon' | 'avatar';
5
5
  title: string;
6
6
  description: string;
7
+ descText?: string;
7
8
  avatarList?: {
8
9
  avatar: Img;
9
10
  }[];
@@ -1,2 +1,2 @@
1
- "use strict";var a=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var s=Object.getOwnPropertyNames;var p=Object.prototype.hasOwnProperty;var m=(r,t,n,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let e of s(t))!p.call(r,e)&&e!==n&&a(r,e,{get:()=>t[e],enumerable:!(o=i(t,e))||o.enumerable});return r};var d=r=>m(a({},"__esModule",{value:!0}),r);var g={};module.exports=d(g);
1
+ "use strict";var n=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var p=Object.prototype.hasOwnProperty;var m=(r,t,s,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let e of i(t))!p.call(r,e)&&e!==s&&n(r,e,{get:()=>t[e],enumerable:!(o=a(t,e))||o.enumerable});return r};var d=r=>m(n({},"__esModule",{value:!0}),r);var g={};module.exports=d(g);
2
2
  //# sourceMappingURL=types.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/biz-components/BrandEquity/types.ts"],
4
- "sourcesContent": ["import type { ComponentCommonProps, Img } from '../../types/props.js'\n\nexport interface BrandEquityItemProps {\n icon?: Img\n type?: 'icon' | 'avatar'\n title: string\n description: string\n avatarList?: {\n avatar: Img\n }[]\n}\n\nexport interface BrandEquityProps extends ComponentCommonProps {\n data: {\n title?: string\n items: BrandEquityItemProps[]\n itemShape?: 'round' | 'square'\n }\n className?: string\n}\n"],
4
+ "sourcesContent": ["import type { ComponentCommonProps, Img } from '../../types/props.js'\n\nexport interface BrandEquityItemProps {\n icon?: Img\n type?: 'icon' | 'avatar'\n title: string\n description: string\n descText?: string\n avatarList?: {\n avatar: Img\n }[]\n}\n\nexport interface BrandEquityProps extends ComponentCommonProps {\n data: {\n title?: string\n items: BrandEquityItemProps[]\n itemShape?: 'round' | 'square'\n }\n className?: string\n}\n"],
5
5
  "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
6
  "names": ["types_exports", "__toCommonJS"]
7
7
  }
@@ -0,0 +1,74 @@
1
+ import * as React from 'react';
2
+ /**
3
+ * 免费赠品接口
4
+ */
5
+ export interface FreeGift {
6
+ /** 赠品ID */
7
+ id: string;
8
+ /** 赠品图片URL */
9
+ image: string;
10
+ /** 赠品名称 */
11
+ name: string;
12
+ /** 原价 */
13
+ originalPrice: string;
14
+ /** 现价(通常为Free) */
15
+ currentPrice: string;
16
+ /** 是否为新品 */
17
+ isNew?: boolean;
18
+ /** 是否被选中 */
19
+ selected?: boolean;
20
+ }
21
+ /**
22
+ * 产品卡片数据接口
23
+ */
24
+ export interface ProductCardData {
25
+ /** 产品图片URL */
26
+ image: string;
27
+ /** 产品标签列表 */
28
+ tags?: string[];
29
+ /** 产品名称 */
30
+ name: string;
31
+ /** 产品描述 */
32
+ description: string;
33
+ /** 免费赠品说明文字 */
34
+ freeGiftLabel?: string;
35
+ /** 免费赠品列表 */
36
+ freeGifts?: FreeGift[];
37
+ /** 赠品选择模式:单选或多选 */
38
+ giftSelectionMode?: 'single' | 'multiple';
39
+ /** 当前价格 */
40
+ currentPrice: string;
41
+ /** 原价 */
42
+ originalPrice?: string;
43
+ /** Learn More按钮文本 */
44
+ learnMoreText?: string;
45
+ /** Shop Now按钮文本 */
46
+ shopNowText?: string;
47
+ }
48
+ export interface ProductCardProps extends React.HTMLAttributes<HTMLDivElement> {
49
+ /** 产品数据 */
50
+ data: ProductCardData;
51
+ /** 礼品数据源,用于匹配实际的价格、图片、标题 */
52
+ giftData?: any;
53
+ /** 布局模式:一排一个或一排两个 */
54
+ layout?: 'single' | 'double';
55
+ /** 产品卡片点击事件 */
56
+ onProductClick?: (product: ProductCardData) => void;
57
+ /** 产品图片点击事件 */
58
+ onProductImageClick?: (product: ProductCardData) => void;
59
+ /** Learn More按钮点击事件 */
60
+ onLearnMore?: (product: ProductCardData) => void;
61
+ /** Shop Now按钮点击事件 */
62
+ onShopNow?: (product: ProductCardData) => void;
63
+ /** 赠品点击事件 */
64
+ onGiftClick?: (gift: FreeGift, product: ProductCardData) => void;
65
+ /** 赠品选择变化事件 */
66
+ onGiftSelectionChange?: (selectedGifts: FreeGift[], product: ProductCardData) => void;
67
+ }
68
+ /**
69
+ * ProductCard - 买赠货架产品卡片
70
+ *
71
+ * @description 用于买一赠一活动的产品展示卡片,左侧展示产品图片和标签,右侧展示产品信息、赠品和购买按钮
72
+ */
73
+ declare const ProductCard: React.ForwardRefExoticComponent<ProductCardProps & React.RefAttributes<HTMLDivElement>>;
74
+ export default ProductCard;
@@ -0,0 +1,2 @@
1
+ "use strict";"use client";var q=Object.create;var v=Object.defineProperty;var J=Object.getOwnPropertyDescriptor;var K=Object.getOwnPropertyNames;var O=Object.getPrototypeOf,Q=Object.prototype.hasOwnProperty;var X=(t,e)=>{for(var l in e)v(t,l,{get:e[l],enumerable:!0})},P=(t,e,l,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of K(e))!Q.call(t,a)&&a!==l&&v(t,a,{get:()=>e[a],enumerable:!(r=J(e,a))||r.enumerable});return t};var w=(t,e,l)=>(l=t!=null?q(O(t)):{},P(e||!t||!t.__esModule?v(l,"default",{value:t,enumerable:!0}):l,t)),Y=t=>P(v({},"__esModule",{value:!0}),t);var ee={};X(ee,{default:()=>_});module.exports=Y(ee);var i=require("react/jsx-runtime"),f=w(require("react")),n=require("../../helpers/index.js"),h=w(require("../../components/picture.js")),y=w(require("../../components/button.js")),u=require("../../components/text.js"),F=require("../../components/heading.js"),L=w(require("../../components/badge.js"));function Z(t,e){return!e||!Array.isArray(e)?null:e.find(r=>r.handle&&r.handle===t||r.id&&r.id===t?!0:r.variants&&Array.isArray(r.variants)?r.variants.some(a=>a.sku===t):!1)||null}const G=f.forwardRef(({image:t,name:e,layout:l="single",className:r,onClick:a},p)=>(0,i.jsx)("div",{ref:p,className:(0,n.cn)("rounded-l-box laptop:rounded-l-box tablet:rounded-t-box tablet:rounded-r-none relative flex items-start gap-6 overflow-hidden p-6",l==="single"?"w-[964px]":"w-[482px]",l==="single"?" tablet:w-full tablet:p-4":"",a?"cursor-pointer":"",r),onClick:a,children:(0,i.jsx)(h.default,{source:t,alt:e,className:"absolute inset-0 w-full max-w-none",imgClassName:"h-full object-cover"})}));G.displayName="ProductImage";const k=f.forwardRef(({name:t,description:e,layout:l="single",className:r},a)=>(0,i.jsxs)("div",{ref:a,className:(0,n.cn)("flex w-full flex-col gap-1",r),children:[(0,i.jsx)(F.Heading,{as:"h4",size:4,weight:"semibold",className:(0,n.cn)("text-info-primary w-full text-2xl leading-[1.2] tracking-[-0.96px]","tablet:text-[20px] tablet:tracking-[-0.8px]"),children:t}),(0,i.jsx)(u.Text,{size:4,weight:"semibold",className:(0,n.cn)("text-info-primary w-full leading-[1.4] tracking-[-0.36px]","tablet:text-sm tablet:tracking-[-0.28px]"),children:e})]}));k.displayName="ProductInfo";const T=f.forwardRef(({gift:t,onClick:e,className:l},r)=>(0,i.jsx)("div",{ref:r,className:(0,n.cn)("bg-container-primary rounded-box relative flex w-full cursor-pointer flex-col border-2 transition-all hover:shadow-sm",t.selected?"border-brand-0":"border-container-secondary-1",l),onClick:()=>e?.(t),children:(0,i.jsxs)("div",{className:"flex w-full flex-col items-end",children:[t.isNew&&(0,i.jsx)("div",{className:"absolute right-0 top-0 flex items-start",children:(0,i.jsx)(L.default,{size:"lg",variant:"fill",children:"Free"})}),(0,i.jsxs)("div",{className:(0,n.cn)("flex w-full items-center gap-4 p-4","tablet:p-2"),children:[(0,i.jsx)("div",{className:(0,n.cn)("size-14 shrink-0","tablet:size-12"),children:(0,i.jsx)(h.default,{source:t.image,alt:t.name,className:"size-full object-cover"})}),(0,i.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col gap-1",children:[(0,i.jsx)(u.Text,{size:4,weight:"semibold",className:(0,n.cn)("text-info-primary truncate leading-[1.4] tracking-[-0.36px]","tablet:text-sm tablet:tracking-[-0.28px]"),children:t.name}),(0,i.jsxs)("div",{className:"flex items-center gap-1",children:[(0,i.jsx)(u.Text,{size:4,weight:"semibold",className:(0,n.cn)(),children:t.currentPrice}),(0,i.jsx)(u.Text,{size:4,weight:"semibold",className:(0,n.cn)(),children:t.originalPrice})]})]})]})]})}));T.displayName="FreeGiftItem";const S=f.forwardRef(({freeGiftLabel:t,freeGifts:e,onGiftClick:l,layout:r="single",className:a},p)=>!e||e.length===0?null:(0,i.jsxs)("div",{ref:p,className:(0,n.cn)("flex w-full flex-col gap-2",a),children:[t&&(0,i.jsx)(u.Text,{size:4,weight:"semibold",className:(0,n.cn)("text-info-primary w-full leading-[1.4] tracking-[-0.36px]","tablet:text-sm tablet:tracking-[-0.28px]"),children:t}),(0,i.jsx)("div",{className:(0,n.cn)("tablet:flex-row laptop:flex-col flex flex-col gap-2"),children:e.map((g,b)=>(0,i.jsx)("div",{children:(0,i.jsx)(T,{gift:g,onClick:l})},g.id||b))})]}));S.displayName="GiftSelection";const M=f.forwardRef(({currentPrice:t,originalPrice:e,learnMoreText:l="Learn More",shopNowText:r="Shop Now",onLearnMore:a,onShopNow:p,layout:g="single",className:b},N)=>(0,i.jsxs)("div",{ref:N,className:(0,n.cn)("flex w-full flex-col justify-center gap-2",b),children:[(0,i.jsxs)("div",{className:"flex w-full items-center gap-1",children:[(0,i.jsx)(u.Text,{size:4,weight:"semibold",className:(0,n.cn)(),children:t}),e&&(0,i.jsx)(u.Text,{size:4,weight:"semibold",className:(0,n.cn)("line-through"),children:e})]}),(0,i.jsxs)("div",{className:(0,n.cn)("flex items-start gap-3","tablet:gap-2"),children:[(0,i.jsx)(y.default,{variant:"secondary",size:"lg",className:(0,n.cn)("tablet:px-5 tablet:py-[10px] tablet:text-sm tablet:tracking-[-0.56px]"),onClick:a,children:l}),(0,i.jsx)(y.default,{variant:"primary",size:"lg",className:(0,n.cn)("tablet:px-5 tablet:py-[10px] tablet:text-sm tablet:tracking-[-0.56px]"),onClick:p,children:r})]})]}));M.displayName="PriceAndActions";const D=f.forwardRef(({className:t,data:e,giftData:l,layout:r="single",onProductClick:a,onProductImageClick:p,onLearnMore:g,onShopNow:b,onGiftClick:N,onGiftSelectionChange:z,...H},A)=>{const E=r==="single"?"w-full max-w-[1664px]":"w-full",R=r==="single"?"w-[700px]":"w-[350px]",[x,C]=f.useState(()=>e.freeGifts?.filter(s=>s.selected)||[]);f.useEffect(()=>{const s=e.freeGifts?.filter(o=>o.selected)||[];C(s)},[e.freeGifts]);const I=f.useMemo(()=>e.freeGifts?.map(s=>{const o=Z(s.id,l),c={...s};if(o){if(o.title&&(c.name=o.title),o.price){const d=o.price.value||o.price,m=o.price.currencyCode||"USD";c.originalPrice=`${m} ${d}`,c.currentPrice="Free"}if(o.images&&o.images.length>0&&(c.image=o.images[0].url||s.image),o.variants&&o.variants.length>0){const d=o.variants[0];if(d.price){const m=d.price.value||d.price,U=d.price.currencyCode||"USD";c.originalPrice=`${U} ${m}`,c.currentPrice="Free"}d.image&&d.image.url&&(c.image=d.image.url)}}return{...c,selected:x.some(d=>d.id===s.id)}})||[],[e.freeGifts,x,l]),B=()=>{a?.(e)},W=()=>{p?.(e)},$=()=>{g?.(e)},j=()=>{b?.(e)},V=s=>{const o=e.giftSelectionMode||"multiple";let c;o==="single"?c=x.some(m=>m.id===s.id)?[]:[s]:x.some(m=>m.id===s.id)?c=x.filter(m=>m.id!==s.id):c=[...x,s],C(c),N?.(s,e),z?.(c,e)};return(0,i.jsxs)("div",{ref:A,className:(0,n.cn)("bg-container-primary laptop:flex-row rounded-box flex flex-col items-stretch",E,r==="single"?"tablet:flex-col tablet:max-w-[704px]":"",a?"cursor-pointer":"",t),onClick:B,...H,children:[(0,i.jsx)(G,{image:e.image,name:e.name,layout:r,onClick:W}),(0,i.jsxs)("div",{className:(0,n.cn)("bg-container-secondary-1 rounded-r-box laptop:rounded-r-box tablet:rounded-b-box tablet:rounded-l-none flex flex-col justify-between p-6",R,r==="single"?"tablet:w-full tablet:p-4 tablet:gap-4":""),children:[(0,i.jsx)(k,{name:e.name,description:e.description,layout:r}),(0,i.jsx)(S,{freeGiftLabel:e.freeGiftLabel,freeGifts:I,onGiftClick:V,layout:r}),(0,i.jsx)(M,{currentPrice:e.currentPrice,originalPrice:e.originalPrice,learnMoreText:e.learnMoreText,shopNowText:e.shopNowText,onLearnMore:$,onShopNow:j,layout:r})]})]})});D.displayName="ProductCard";var _=D;
2
+ //# sourceMappingURL=ProductCard.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/biz-components/BuyOneGetOneShelf/ProductCard.tsx"],
4
+ "sourcesContent": ["'use client'\n\nimport * as React from 'react'\nimport { cn } from '../../helpers/index.js'\nimport Picture from '../../components/picture.js'\nimport Button from '../../components/button.js'\nimport { Text } from '../../components/text.js'\nimport { Heading } from '../../components/heading.js'\nimport Badge from '../../components/badge.js'\n\n/**\n * \u5339\u914D\u793C\u54C1\u6570\u636E\u51FD\u6570\n * \u901A\u8FC7 ID\u3001handle \u6216 SKU \u5339\u914D giftData \u4E2D\u7684\u5B9E\u9645\u793C\u54C1\u4FE1\u606F\n */\nfunction matchGiftData(giftId: string, giftData?: any): any | null {\n if (!giftData || !Array.isArray(giftData)) {\n return null\n }\n\n // \u5C1D\u8BD5\u901A\u8FC7\u591A\u79CD\u65B9\u5F0F\u5339\u914D\u793C\u54C1\n const matchedGift = giftData.find((gift: any) => {\n // \u901A\u8FC7 handle \u5339\u914D\n if (gift.handle && gift.handle === giftId) {\n return true\n }\n\n // \u901A\u8FC7 id \u5339\u914D\n if (gift.id && gift.id === giftId) {\n return true\n }\n\n // \u901A\u8FC7 variants \u4E2D\u7684 sku \u5339\u914D\n if (gift.variants && Array.isArray(gift.variants)) {\n return gift.variants.some((variant: any) => variant.sku === giftId)\n }\n\n return false\n })\n\n return matchedGift || null\n}\n\n/**\n * \u514D\u8D39\u8D60\u54C1\u63A5\u53E3\n */\nexport interface FreeGift {\n /** \u8D60\u54C1ID */\n id: string\n /** \u8D60\u54C1\u56FE\u7247URL */\n image: string\n /** \u8D60\u54C1\u540D\u79F0 */\n name: string\n /** \u539F\u4EF7 */\n originalPrice: string\n /** \u73B0\u4EF7\uFF08\u901A\u5E38\u4E3AFree\uFF09 */\n currentPrice: string\n /** \u662F\u5426\u4E3A\u65B0\u54C1 */\n isNew?: boolean\n /** \u662F\u5426\u88AB\u9009\u4E2D */\n selected?: boolean\n}\n\n/**\n * \u4EA7\u54C1\u5361\u7247\u6570\u636E\u63A5\u53E3\n */\nexport interface ProductCardData {\n /** \u4EA7\u54C1\u56FE\u7247URL */\n image: string\n /** \u4EA7\u54C1\u6807\u7B7E\u5217\u8868 */\n tags?: string[]\n /** \u4EA7\u54C1\u540D\u79F0 */\n name: string\n /** \u4EA7\u54C1\u63CF\u8FF0 */\n description: string\n /** \u514D\u8D39\u8D60\u54C1\u8BF4\u660E\u6587\u5B57 */\n freeGiftLabel?: string\n /** \u514D\u8D39\u8D60\u54C1\u5217\u8868 */\n freeGifts?: FreeGift[]\n /** \u8D60\u54C1\u9009\u62E9\u6A21\u5F0F\uFF1A\u5355\u9009\u6216\u591A\u9009 */\n giftSelectionMode?: 'single' | 'multiple'\n /** \u5F53\u524D\u4EF7\u683C */\n currentPrice: string\n /** \u539F\u4EF7 */\n originalPrice?: string\n /** Learn More\u6309\u94AE\u6587\u672C */\n learnMoreText?: string\n /** Shop Now\u6309\u94AE\u6587\u672C */\n shopNowText?: string\n}\n\nexport interface ProductCardProps extends React.HTMLAttributes<HTMLDivElement> {\n /** \u4EA7\u54C1\u6570\u636E */\n data: ProductCardData\n /** \u793C\u54C1\u6570\u636E\u6E90\uFF0C\u7528\u4E8E\u5339\u914D\u5B9E\u9645\u7684\u4EF7\u683C\u3001\u56FE\u7247\u3001\u6807\u9898 */\n giftData?: any\n /** \u5E03\u5C40\u6A21\u5F0F\uFF1A\u4E00\u6392\u4E00\u4E2A\u6216\u4E00\u6392\u4E24\u4E2A */\n layout?: 'single' | 'double'\n /** \u4EA7\u54C1\u5361\u7247\u70B9\u51FB\u4E8B\u4EF6 */\n onProductClick?: (product: ProductCardData) => void\n /** \u4EA7\u54C1\u56FE\u7247\u70B9\u51FB\u4E8B\u4EF6 */\n onProductImageClick?: (product: ProductCardData) => void\n /** Learn More\u6309\u94AE\u70B9\u51FB\u4E8B\u4EF6 */\n onLearnMore?: (product: ProductCardData) => void\n /** Shop Now\u6309\u94AE\u70B9\u51FB\u4E8B\u4EF6 */\n onShopNow?: (product: ProductCardData) => void\n /** \u8D60\u54C1\u70B9\u51FB\u4E8B\u4EF6 */\n onGiftClick?: (gift: FreeGift, product: ProductCardData) => void\n /** \u8D60\u54C1\u9009\u62E9\u53D8\u5316\u4E8B\u4EF6 */\n onGiftSelectionChange?: (selectedGifts: FreeGift[], product: ProductCardData) => void\n}\n\n/**\n * ProductImage - \u4EA7\u54C1\u56FE\u7247\u533A\u57DF\n */\nconst ProductImage = React.forwardRef<\n HTMLDivElement,\n {\n image: string\n name: string\n layout?: 'single' | 'double'\n className?: string\n onClick?: () => void\n }\n>(({ image, name, layout = 'single', className, onClick }, ref) => {\n const imageWidth = layout === 'single' ? 'w-[964px]' : 'w-[482px]'\n\n return (\n <div\n ref={ref}\n className={cn(\n 'rounded-l-box laptop:rounded-l-box tablet:rounded-t-box tablet:rounded-r-none relative flex items-start gap-6 overflow-hidden p-6',\n imageWidth,\n // \u79FB\u52A8\u7AEF\u6837\u5F0F\n layout === 'single' ? ' tablet:w-full tablet:p-4' : '',\n onClick ? 'cursor-pointer' : '',\n className\n )}\n onClick={onClick}\n >\n {/* \u80CC\u666F\u56FE\u7247 */}\n\n <Picture\n source={image}\n alt={name}\n className=\"absolute inset-0 w-full max-w-none\"\n imgClassName=\"h-full object-cover\"\n />\n </div>\n )\n})\n\nProductImage.displayName = 'ProductImage'\n\n/**\n * ProductInfo - \u4EA7\u54C1\u4FE1\u606F\u533A\u57DF\n */\nconst ProductInfo = React.forwardRef<\n HTMLDivElement,\n {\n name: string\n description: string\n layout?: 'single' | 'double'\n className?: string\n }\n>(({ name, description, layout = 'single', className }, ref) => {\n return (\n <div ref={ref} className={cn('flex w-full flex-col gap-1', className)}>\n <Heading\n as=\"h4\"\n size={4}\n weight=\"semibold\"\n className={cn(\n 'text-info-primary w-full text-2xl leading-[1.2] tracking-[-0.96px]',\n 'tablet:text-[20px] tablet:tracking-[-0.8px]'\n )}\n >\n {name}\n </Heading>\n <Text\n size={4}\n weight=\"semibold\"\n className={cn(\n 'text-info-primary w-full leading-[1.4] tracking-[-0.36px]',\n 'tablet:text-sm tablet:tracking-[-0.28px]'\n )}\n >\n {description}\n </Text>\n </div>\n )\n})\n\nProductInfo.displayName = 'ProductInfo'\n\n/**\n * FreeGiftItem - \u514D\u8D39\u8D60\u54C1\u9879\n */\nconst FreeGiftItem = React.forwardRef<\n HTMLDivElement,\n {\n gift: FreeGift\n onClick?: (gift: FreeGift) => void\n className?: string\n }\n>(({ gift, onClick, className }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(\n 'bg-container-primary rounded-box relative flex w-full cursor-pointer flex-col border-2 transition-all hover:shadow-sm',\n gift.selected ? 'border-brand-0' : 'border-container-secondary-1',\n className\n )}\n onClick={() => onClick?.(gift)}\n >\n <div className=\"flex w-full flex-col items-end\">\n {gift.isNew && (\n <div className=\"absolute right-0 top-0 flex items-start\">\n <Badge size=\"lg\" variant=\"fill\">\n Free\n </Badge>\n </div>\n )}\n <div className={cn('flex w-full items-center gap-4 p-4', 'tablet:p-2')}>\n <div className={cn('size-14 shrink-0', 'tablet:size-12')}>\n <Picture source={gift.image} alt={gift.name} className=\"size-full object-cover\" />\n </div>\n <div className=\"flex min-w-0 flex-1 flex-col gap-1\">\n <Text\n size={4}\n weight=\"semibold\"\n className={cn(\n 'text-info-primary truncate leading-[1.4] tracking-[-0.36px]',\n 'tablet:text-sm tablet:tracking-[-0.28px]'\n )}\n >\n {gift.name}\n </Text>\n <div className=\"flex items-center gap-1\">\n <Text size={4} weight=\"semibold\" className={cn()}>\n {gift.currentPrice}\n </Text>\n <Text size={4} weight=\"semibold\" className={cn()}>\n {gift.originalPrice}\n </Text>\n </div>\n </div>\n </div>\n </div>\n </div>\n )\n})\n\nFreeGiftItem.displayName = 'FreeGiftItem'\n\n/**\n * GiftSelection - \u8D60\u54C1\u9009\u62E9\u533A\u57DF\n */\nconst GiftSelection = React.forwardRef<\n HTMLDivElement,\n {\n freeGiftLabel?: string\n freeGifts?: FreeGift[]\n onGiftClick?: (gift: FreeGift) => void\n layout?: 'single' | 'double'\n className?: string\n }\n>(({ freeGiftLabel, freeGifts, onGiftClick, layout = 'single', className }, ref) => {\n if (!freeGifts || freeGifts.length === 0) {\n return null\n }\n\n return (\n <div ref={ref} className={cn('flex w-full flex-col gap-2', className)}>\n {freeGiftLabel && (\n <Text\n size={4}\n weight=\"semibold\"\n className={cn(\n 'text-info-primary w-full leading-[1.4] tracking-[-0.36px]',\n 'tablet:text-sm tablet:tracking-[-0.28px]'\n )}\n >\n {freeGiftLabel}\n </Text>\n )}\n <div className={cn('tablet:flex-row laptop:flex-col flex flex-col gap-2')}>\n {freeGifts.map((gift, index) => (\n <div key={gift.id || index}>\n <FreeGiftItem gift={gift} onClick={onGiftClick} />\n </div>\n ))}\n </div>\n </div>\n )\n})\n\nGiftSelection.displayName = 'GiftSelection'\n\n/**\n * PriceAndActions - \u4EF7\u683C\u548C\u64CD\u4F5C\u533A\u57DF\n */\nconst PriceAndActions = React.forwardRef<\n HTMLDivElement,\n {\n currentPrice: string\n originalPrice?: string\n learnMoreText?: string\n shopNowText?: string\n onLearnMore?: () => void\n onShopNow?: () => void\n layout?: 'single' | 'double'\n className?: string\n }\n>(\n (\n {\n currentPrice,\n originalPrice,\n learnMoreText = 'Learn More',\n shopNowText = 'Shop Now',\n onLearnMore,\n onShopNow,\n layout = 'single',\n className,\n },\n ref\n ) => {\n return (\n <div ref={ref} className={cn('flex w-full flex-col justify-center gap-2', className)}>\n {/* \u4EF7\u683C */}\n <div className=\"flex w-full items-center gap-1\">\n <Text size={4} weight=\"semibold\" className={cn()}>\n {currentPrice}\n </Text>\n {originalPrice && (\n <Text size={4} weight=\"semibold\" className={cn('line-through')}>\n {originalPrice}\n </Text>\n )}\n </div>\n\n {/* \u6309\u94AE\u7EC4 */}\n <div className={cn('flex items-start gap-3', 'tablet:gap-2')}>\n <Button\n variant=\"secondary\"\n size=\"lg\"\n className={cn('tablet:px-5 tablet:py-[10px] tablet:text-sm tablet:tracking-[-0.56px]')}\n onClick={onLearnMore}\n >\n {learnMoreText}\n </Button>\n <Button\n variant=\"primary\"\n size=\"lg\"\n className={cn('tablet:px-5 tablet:py-[10px] tablet:text-sm tablet:tracking-[-0.56px]')}\n onClick={onShopNow}\n >\n {shopNowText}\n </Button>\n </div>\n </div>\n )\n }\n)\n\nPriceAndActions.displayName = 'PriceAndActions'\n\n/**\n * ProductCard - \u4E70\u8D60\u8D27\u67B6\u4EA7\u54C1\u5361\u7247\n *\n * @description \u7528\u4E8E\u4E70\u4E00\u8D60\u4E00\u6D3B\u52A8\u7684\u4EA7\u54C1\u5C55\u793A\u5361\u7247\uFF0C\u5DE6\u4FA7\u5C55\u793A\u4EA7\u54C1\u56FE\u7247\u548C\u6807\u7B7E\uFF0C\u53F3\u4FA7\u5C55\u793A\u4EA7\u54C1\u4FE1\u606F\u3001\u8D60\u54C1\u548C\u8D2D\u4E70\u6309\u94AE\n */\nconst ProductCard = React.forwardRef<HTMLDivElement, ProductCardProps>(\n (\n {\n className,\n data,\n giftData,\n layout = 'single',\n onProductClick,\n onProductImageClick,\n onLearnMore,\n onShopNow,\n onGiftClick,\n onGiftSelectionChange,\n ...props\n },\n ref\n ) => {\n const containerWidth = layout === 'single' ? 'w-full max-w-[1664px]' : 'w-full'\n const contentWidth = layout === 'single' ? 'w-[700px]' : 'w-[350px]'\n\n // \u5185\u90E8\u72B6\u6001\u7BA1\u7406\u9009\u4E2D\u7684\u8D60\u54C1\n const [selectedGifts, setSelectedGifts] = React.useState<FreeGift[]>(() => {\n // \u521D\u59CB\u5316\u65F6\u4ECE data.freeGifts \u4E2D\u83B7\u53D6\u5DF2\u9009\u4E2D\u7684\u8D60\u54C1\n return data.freeGifts?.filter(gift => gift.selected) || []\n })\n\n // \u5F53\u5916\u90E8\u6570\u636E\u53D8\u5316\u65F6\uFF0C\u540C\u6B65\u5185\u90E8\u72B6\u6001\n React.useEffect(() => {\n const initialSelectedGifts = data.freeGifts?.filter(gift => gift.selected) || []\n setSelectedGifts(initialSelectedGifts)\n }, [data.freeGifts])\n\n // \u751F\u6210\u5E26\u6709\u9009\u4E2D\u72B6\u6001\u548C\u5B9E\u9645\u6570\u636E\u7684\u8D60\u54C1\u5217\u8868\n const giftsWithSelection = React.useMemo(\n () =>\n data.freeGifts?.map(gift => {\n const matchedGiftInfo = matchGiftData(gift.id, giftData)\n\n // \u6784\u5EFA\u589E\u5F3A\u7684\u8D60\u54C1\u5BF9\u8C61\uFF0C\u4F7F\u7528\u5B9E\u9645\u6570\u636E\u8986\u76D6\u539F\u59CB\u6570\u636E\n const enhancedGift = { ...gift }\n\n if (matchedGiftInfo) {\n // \u4F7F\u7528\u5B9E\u9645\u7684 title\n if (matchedGiftInfo.title) {\n enhancedGift.name = matchedGiftInfo.title\n }\n\n // \u4F7F\u7528\u5B9E\u9645\u7684 price - \u6620\u5C04\u5230 FreeGift \u7684\u4EF7\u683C\u5B57\u6BB5\n if (matchedGiftInfo.price) {\n const priceValue = matchedGiftInfo.price.value || matchedGiftInfo.price\n const currencyCode = matchedGiftInfo.price.currencyCode || 'USD'\n\n // \u66F4\u65B0 originalPrice \u548C currentPrice\n enhancedGift.originalPrice = `${currencyCode} ${priceValue}`\n enhancedGift.currentPrice = 'Free' // \u8D60\u54C1\u901A\u5E38\u663E\u793A\u4E3A\u514D\u8D39\n }\n\n // \u4F7F\u7528\u5B9E\u9645\u7684 image\n if (matchedGiftInfo.images && matchedGiftInfo.images.length > 0) {\n enhancedGift.image = matchedGiftInfo.images[0].url || gift.image\n }\n\n // \u5982\u679C\u6709 variants\uFF0C\u5C1D\u8BD5\u4ECE\u7B2C\u4E00\u4E2A variant \u83B7\u53D6\u66F4\u8BE6\u7EC6\u7684\u4FE1\u606F\n if (matchedGiftInfo.variants && matchedGiftInfo.variants.length > 0) {\n const firstVariant = matchedGiftInfo.variants[0]\n if (firstVariant.price) {\n const variantPriceValue = firstVariant.price.value || firstVariant.price\n const variantCurrencyCode = firstVariant.price.currencyCode || 'USD'\n\n enhancedGift.originalPrice = `${variantCurrencyCode} ${variantPriceValue}`\n enhancedGift.currentPrice = 'Free'\n }\n if (firstVariant.image && firstVariant.image.url) {\n enhancedGift.image = firstVariant.image.url\n }\n }\n }\n\n return {\n ...enhancedGift,\n selected: selectedGifts.some(selectedGift => selectedGift.id === gift.id),\n }\n }) || [],\n [data.freeGifts, selectedGifts, giftData]\n )\n\n const handleProductClick = () => {\n onProductClick?.(data)\n }\n\n const handleProductImageClick = () => {\n onProductImageClick?.(data)\n }\n\n const handleLearnMoreClick = () => {\n onLearnMore?.(data)\n }\n\n const handleShopNowClick = () => {\n onShopNow?.(data)\n }\n\n const handleGiftClick = (gift: FreeGift) => {\n const giftSelectionMode = data.giftSelectionMode || 'multiple'\n let newSelectedGifts: FreeGift[]\n\n if (giftSelectionMode === 'single') {\n // \u5355\u9009\u6A21\u5F0F\uFF1A\u5982\u679C\u70B9\u51FB\u7684\u662F\u5DF2\u9009\u4E2D\u7684\u8D60\u54C1\uFF0C\u5219\u53D6\u6D88\u9009\u62E9\uFF1B\u5426\u5219\u9009\u62E9\u5F53\u524D\u8D60\u54C1\n const isCurrentlySelected = selectedGifts.some(selectedGift => selectedGift.id === gift.id)\n newSelectedGifts = isCurrentlySelected ? [] : [gift]\n } else {\n // \u591A\u9009\u6A21\u5F0F\uFF1A\u5207\u6362\u5F53\u524D\u8D60\u54C1\u7684\u9009\u62E9\u72B6\u6001\n const isCurrentlySelected = selectedGifts.some(selectedGift => selectedGift.id === gift.id)\n if (isCurrentlySelected) {\n newSelectedGifts = selectedGifts.filter(selectedGift => selectedGift.id !== gift.id)\n } else {\n newSelectedGifts = [...selectedGifts, gift]\n }\n }\n\n // \u66F4\u65B0\u5185\u90E8\u72B6\u6001\n setSelectedGifts(newSelectedGifts)\n\n // \u8C03\u7528\u56DE\u8C03\u51FD\u6570\u901A\u77E5\u7236\u7EC4\u4EF6\n onGiftClick?.(gift, data)\n onGiftSelectionChange?.(newSelectedGifts, data)\n }\n\n return (\n <div\n ref={ref}\n className={cn(\n 'bg-container-primary laptop:flex-row rounded-box flex flex-col items-stretch',\n containerWidth,\n layout === 'single' ? 'tablet:flex-col tablet:max-w-[704px]' : '',\n onProductClick ? 'cursor-pointer' : '',\n className\n )}\n onClick={handleProductClick}\n {...props}\n >\n {/* \u4EA7\u54C1\u56FE\u7247\u533A\u57DF */}\n <ProductImage image={data.image} name={data.name} layout={layout} onClick={handleProductImageClick} />\n\n {/* \u4EA7\u54C1\u4FE1\u606F\u533A\u57DF */}\n <div\n className={cn(\n 'bg-container-secondary-1 rounded-r-box laptop:rounded-r-box tablet:rounded-b-box tablet:rounded-l-none flex flex-col justify-between p-6',\n contentWidth,\n // \u79FB\u52A8\u7AEF\u6837\u5F0F\n layout === 'single' ? 'tablet:w-full tablet:p-4 tablet:gap-4' : ''\n )}\n >\n {/* \u4EA7\u54C1\u6807\u9898\u548C\u63CF\u8FF0 */}\n <ProductInfo name={data.name} description={data.description} layout={layout} />\n\n {/* \u514D\u8D39\u8D60\u54C1\u533A\u57DF */}\n <GiftSelection\n freeGiftLabel={data.freeGiftLabel}\n freeGifts={giftsWithSelection}\n onGiftClick={handleGiftClick}\n layout={layout}\n />\n\n {/* \u4EF7\u683C\u548C\u6309\u94AE\u533A\u57DF */}\n <PriceAndActions\n currentPrice={data.currentPrice}\n originalPrice={data.originalPrice}\n learnMoreText={data.learnMoreText}\n shopNowText={data.shopNowText}\n onLearnMore={handleLearnMoreClick}\n onShopNow={handleShopNowClick}\n layout={layout}\n />\n </div>\n </div>\n )\n }\n)\n\nProductCard.displayName = 'ProductCard'\n\nexport default ProductCard\n"],
5
+ "mappings": "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",
6
+ "names": ["ProductCard_exports", "__export", "ProductCard_default", "__toCommonJS", "import_jsx_runtime", "React", "import_helpers", "import_picture", "import_button", "import_text", "import_heading", "import_badge", "matchGiftData", "giftId", "giftData", "gift", "variant", "ProductImage", "image", "name", "layout", "className", "onClick", "ref", "Picture", "ProductInfo", "description", "FreeGiftItem", "Badge", "GiftSelection", "freeGiftLabel", "freeGifts", "onGiftClick", "index", "PriceAndActions", "currentPrice", "originalPrice", "learnMoreText", "shopNowText", "onLearnMore", "onShopNow", "Button", "ProductCard", "data", "onProductClick", "onProductImageClick", "onGiftSelectionChange", "props", "containerWidth", "contentWidth", "selectedGifts", "setSelectedGifts", "initialSelectedGifts", "giftsWithSelection", "matchedGiftInfo", "enhancedGift", "priceValue", "currencyCode", "firstVariant", "variantPriceValue", "variantCurrencyCode", "selectedGift", "handleProductClick", "handleProductImageClick", "handleLearnMoreClick", "handleShopNowClick", "handleGiftClick", "giftSelectionMode", "newSelectedGifts"]
7
+ }
@@ -0,0 +1,36 @@
1
+ /**
2
+ * BuyOneGetOneShelf 数据转换 Hook
3
+ *
4
+ * 将复杂的数据转换逻辑抽离为可复用的 Hook,提供清晰的 API 和错误处理
5
+ */
6
+ import type { BogoItem, BuildData, CopyConfig } from '../index.js';
7
+ import type { ProductCardData, FreeGift } from '../ProductCard.js';
8
+ /** 产品查找结果 */
9
+ interface ProductLookupResult {
10
+ product: any | null;
11
+ variant: any | null;
12
+ }
13
+ /** 赠品提取结果 */
14
+ interface GiftExtractionResult {
15
+ gifts: FreeGift[];
16
+ hasGifts: boolean;
17
+ selectionMode: 'single' | 'multiple';
18
+ }
19
+ /**
20
+ * BuyOneGetOneShelf 数据转换 Hook
21
+ *
22
+ * @param bogoItems - BOGO 商品列表
23
+ * @param copyConfig - 文案配置
24
+ * @param buildData - 构建数据(可选)
25
+ * @returns 转换后的产品卡片数据列表
26
+ */
27
+ export declare const useBogoDataTransform: (bogoItems: BogoItem[], copyConfig: CopyConfig, buildData?: BuildData) => ProductCardData[];
28
+ /**
29
+ * 产品查找 Hook(用于调试和测试)
30
+ */
31
+ export declare const useProductLookup: (sku: string, buildData?: BuildData) => ProductLookupResult;
32
+ /**
33
+ * 赠品提取 Hook(用于调试和测试)
34
+ */
35
+ export declare const useGiftExtraction: (sku: string, buildData?: BuildData) => GiftExtractionResult;
36
+ export {};
@@ -0,0 +1,2 @@
1
+ "use strict";var c=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var m=Object.prototype.hasOwnProperty;var P=(t,r)=>{for(var e in r)c(t,e,{get:r[e],enumerable:!0})},h=(t,r,e,n)=>{if(r&&typeof r=="object"||typeof r=="function")for(let i of p(r))!m.call(t,i)&&i!==e&&c(t,i,{get:()=>r[i],enumerable:!(n=g(r,i))||n.enumerable});return t};var G=t=>h(c({},"__esModule",{value:!0}),t);var k={};P(k,{useBogoDataTransform:()=>F,useGiftExtraction:()=>w,useProductLookup:()=>M});module.exports=G(k);var a=require("react");const u=(t,r)=>{if(!t||!r)return{product:null,variant:null};try{for(const e of r)if(e?.variants){for(const n of e.variants)if(n?.sku===t)return{product:e,variant:n}}}catch(e){console.warn("Error finding product by SKU:",e)}return{product:null,variant:null}},x=t=>{if(!t?.price)return{currentPrice:"",hasDiscount:!1};const r=`$${t.price.toFixed(2)}`,e=t.metafields?.coupons?.[0];if(e?.fixed_value){const n=Math.abs(parseFloat(e.fixed_value)),i=t.price+n;return{currentPrice:r,originalPrice:`$${i.toFixed(2)}`,hasDiscount:!0}}return{currentPrice:r,hasDiscount:!1}},y=(t,r=0)=>Array.isArray(t)?t.map((e,n)=>({id:e.variant_id||`gift-${r+n}`,image:"https://images.unsplash.com/photo-1558618666-fcd25c85cd64?ixlib=rb-4.0.3&auto=format&fit=crop&w=56&h=56&q=80",name:`Gift: ${e.sku||"Unknown"} (${e.handle||"Unknown"})`,originalPrice:"$0.00",currentPrice:"Free",isNew:n===0,selected:n===0})):[],d=(t,r)=>{const{variant:e}=u(t,r);if(!e?.metafields?.funcFreeGiftObj?.reward_list)return{gifts:[],hasGifts:!1,selectionMode:"single"};try{const n=[];let i=0;for(const o of e.metafields.funcFreeGiftObj.reward_list)if(o.variant_list){const s=y(o.variant_list,i);n.push(...s),i+=s.length}return{gifts:n,hasGifts:n.length>0,selectionMode:(n.length>1,"single")}}catch(n){return console.warn("Error extracting gifts:",n),{gifts:[],hasGifts:!1,selectionMode:"single"}}},B=t=>t&&(t.lgDesktop?.url||t.desktop?.url||t.laptop?.url||t.tablet?.url||t.mobile?.url)||"",v=t=>!t?.tags||!Array.isArray(t.tags)?[]:t.tags.filter(r=>typeof r=="string"),D=(t,r,e)=>{const n=t.data?.[0],i=n?.sku||"",{product:o,variant:s}=u(i,e),l=x(s),f=d(i,e);return{image:B(t.images),name:o?.name||n?.name||"",description:o?.title||o?.name||n?.name||"",currentPrice:l.currentPrice,originalPrice:l.originalPrice,freeGiftLabel:r.freeGiftLabel,learnMoreText:t.learnMoreText||r.learnMoreText,shopNowText:t.shopNowText||r.shopNowText,freeGifts:f.gifts,giftSelectionMode:f.selectionMode,tags:v(o)}},F=(t,r,e)=>(0,a.useMemo)(()=>{if(!Array.isArray(t)||t.length===0)return[];try{return t.map(n=>D(n,r,e))}catch(n){return console.error("Error transforming BOGO items:",n),[]}},[t,r,e]),M=(t,r)=>(0,a.useMemo)(()=>u(t,r),[t,r]),w=(t,r)=>(0,a.useMemo)(()=>d(t,r),[t,r]);
2
+ //# sourceMappingURL=useBogoDataTransform.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/biz-components/BuyOneGetOneShelf/hooks/useBogoDataTransform.ts"],
4
+ "sourcesContent": ["/**\n * BuyOneGetOneShelf \u6570\u636E\u8F6C\u6362 Hook\n *\n * \u5C06\u590D\u6742\u7684\u6570\u636E\u8F6C\u6362\u903B\u8F91\u62BD\u79BB\u4E3A\u53EF\u590D\u7528\u7684 Hook\uFF0C\u63D0\u4F9B\u6E05\u6670\u7684 API \u548C\u9519\u8BEF\u5904\u7406\n */\n\nimport { useMemo } from 'react'\nimport type { BogoItem, BuildData, CopyConfig, ResponsiveImages } from '../index.js'\nimport type { ProductCardData, FreeGift } from '../ProductCard.js'\n\n// ==================== \u7C7B\u578B\u5B9A\u4E49 ====================\n\n/** \u4EA7\u54C1\u67E5\u627E\u7ED3\u679C */\ninterface ProductLookupResult {\n product: any | null\n variant: any | null\n}\n\n/** \u4EF7\u683C\u8BA1\u7B97\u7ED3\u679C */\ninterface PriceCalculation {\n currentPrice: string\n originalPrice?: string\n hasDiscount: boolean\n}\n\n/** \u8D60\u54C1\u63D0\u53D6\u7ED3\u679C */\ninterface GiftExtractionResult {\n gifts: FreeGift[]\n hasGifts: boolean\n selectionMode: 'single' | 'multiple'\n}\n\n// ==================== \u6838\u5FC3\u5DE5\u5177\u51FD\u6570 ====================\n\n/**\n * \u5B89\u5168\u7684\u4EA7\u54C1\u67E5\u627E\u51FD\u6570\n */\nconst findProductBySku = (sku: string, buildData?: BuildData): ProductLookupResult => {\n if (!sku || !buildData) {\n return { product: null, variant: null }\n }\n\n try {\n for (const product of buildData) {\n if (!product?.variants) continue\n\n for (const variant of product.variants) {\n if (variant?.sku === sku) {\n return {\n product,\n variant,\n }\n }\n }\n }\n } catch (error) {\n console.warn('Error finding product by SKU:', error)\n }\n\n return { product: null, variant: null }\n}\n\n/**\n * \u8BA1\u7B97\u4EA7\u54C1\u4EF7\u683C\uFF08\u5305\u542B\u6298\u6263\u903B\u8F91\uFF09\n */\nconst calculateProductPrice = (variant: any): PriceCalculation => {\n if (!variant?.price) {\n return {\n currentPrice: '',\n hasDiscount: false,\n }\n }\n\n const currentPrice = `$${variant.price.toFixed(2)}`\n\n // \u68C0\u67E5\u662F\u5426\u6709\u4F18\u60E0\u5238\u6298\u6263\n const coupon = variant.metafields?.coupons?.[0]\n if (coupon?.fixed_value) {\n const discountAmount = Math.abs(parseFloat(coupon.fixed_value))\n const originalPriceValue = variant.price + discountAmount\n\n return {\n currentPrice,\n originalPrice: `$${originalPriceValue.toFixed(2)}`,\n hasDiscount: true,\n }\n }\n\n return {\n currentPrice,\n hasDiscount: false,\n }\n}\n\n/**\n * \u4ECE\u5956\u52B1\u53D8\u4F53\u5217\u8868\u521B\u5EFA\u8D60\u54C1\u6570\u636E\n */\nconst createGiftsFromRewards = (rewardVariants: any[], startIndex: number = 0): FreeGift[] => {\n if (!Array.isArray(rewardVariants)) return []\n\n return rewardVariants.map((rewardVariant, index) => ({\n id: rewardVariant.variant_id || `gift-${startIndex + index}`,\n image:\n 'https://images.unsplash.com/photo-1558618666-fcd25c85cd64?ixlib=rb-4.0.3&auto=format&fit=crop&w=56&h=56&q=80',\n name: `Gift: ${rewardVariant.sku || 'Unknown'} (${rewardVariant.handle || 'Unknown'})`,\n originalPrice: '$0.00',\n currentPrice: 'Free',\n isNew: index === 0, // \u7B2C\u4E00\u4E2A\u8D60\u54C1\u6807\u8BB0\u4E3A\u65B0\u54C1\n selected: index === 0, // \u9ED8\u8BA4\u9009\u4E2D\u7B2C\u4E00\u4E2A\u8D60\u54C1\n }))\n}\n\n/**\n * \u63D0\u53D6\u4EA7\u54C1\u7684\u8D60\u54C1\u4FE1\u606F\n */\nconst extractProductGifts = (sku: string, buildData?: BuildData): GiftExtractionResult => {\n const { variant } = findProductBySku(sku, buildData)\n\n if (!variant?.metafields?.funcFreeGiftObj?.reward_list) {\n return {\n gifts: [],\n hasGifts: false,\n selectionMode: 'single',\n }\n }\n\n try {\n const allGifts: FreeGift[] = []\n let giftIndex = 0\n\n // \u904D\u5386\u6240\u6709\u5956\u52B1\u5217\u8868\n for (const reward of variant.metafields.funcFreeGiftObj.reward_list) {\n if (reward.variant_list) {\n const gifts = createGiftsFromRewards(reward.variant_list, giftIndex)\n allGifts.push(...gifts)\n giftIndex += gifts.length\n }\n }\n\n return {\n gifts: allGifts,\n hasGifts: allGifts.length > 0,\n selectionMode: allGifts.length > 1 ? 'single' : 'single',\n }\n } catch (error) {\n console.warn('Error extracting gifts:', error)\n return {\n gifts: [],\n hasGifts: false,\n selectionMode: 'single',\n }\n }\n}\n\n/**\n * \u751F\u6210\u54CD\u5E94\u5F0F\u56FE\u7247 URL\n */\nconst getResponsiveImageUrl = (images?: ResponsiveImages): string => {\n if (!images) return ''\n\n // \u6839\u636E\u5C4F\u5E55\u5C3A\u5BF8\u4F18\u5148\u7EA7\u9009\u62E9\u56FE\u7247\n // \u4F18\u5148\u7EA7\uFF1AlgDesktop > desktop > laptop > tablet > mobile\n return (\n images.lgDesktop?.url || images.desktop?.url || images.laptop?.url || images.tablet?.url || images.mobile?.url || ''\n )\n}\n\n/**\n * \u521B\u5EFA\u4EA7\u54C1\u6807\u7B7E\uFF08\u8FD4\u56DE\u5B57\u7B26\u4E32\u6570\u7EC4\u4EE5\u5339\u914D ProductCardData \u63A5\u53E3\uFF09\n */\nconst createProductTags = (product: any): string[] => {\n if (!product?.tags || !Array.isArray(product.tags)) {\n return []\n }\n\n return product.tags.filter((tag: string) => typeof tag === 'string')\n}\n\n// ==================== \u4E3B\u8981\u8F6C\u6362\u51FD\u6570 ====================\n\n/**\n * \u5C06\u5355\u4E2A BogoItem \u8F6C\u6362\u4E3A ProductCardData\n */\nconst transformSingleBogoItem = (\n bogoItem: BogoItem,\n copyConfig: CopyConfig,\n buildData?: BuildData\n): ProductCardData => {\n const productData = bogoItem.data?.[0]\n const sku = productData?.sku || ''\n\n // \u67E5\u627E\u4EA7\u54C1\u4FE1\u606F\n const { product, variant } = findProductBySku(sku, buildData)\n\n // \u8BA1\u7B97\u4EF7\u683C\n const priceInfo = calculateProductPrice(variant)\n\n // \u63D0\u53D6\u8D60\u54C1\n const giftInfo = extractProductGifts(sku, buildData)\n\n // \u6784\u5EFA\u6700\u7EC8\u6570\u636E\n return {\n image: getResponsiveImageUrl(bogoItem.images),\n name: product?.name || productData?.name || '',\n description: product?.title || product?.name || productData?.name || '',\n currentPrice: priceInfo.currentPrice,\n originalPrice: priceInfo.originalPrice,\n freeGiftLabel: copyConfig.freeGiftLabel,\n learnMoreText: bogoItem.learnMoreText || copyConfig.learnMoreText,\n shopNowText: bogoItem.shopNowText || copyConfig.shopNowText,\n freeGifts: giftInfo.gifts,\n giftSelectionMode: giftInfo.selectionMode,\n tags: createProductTags(product),\n }\n}\n\n// ==================== \u4E3B\u8981 Hook ====================\n\n/**\n * BuyOneGetOneShelf \u6570\u636E\u8F6C\u6362 Hook\n *\n * @param bogoItems - BOGO \u5546\u54C1\u5217\u8868\n * @param copyConfig - \u6587\u6848\u914D\u7F6E\n * @param buildData - \u6784\u5EFA\u6570\u636E\uFF08\u53EF\u9009\uFF09\n * @returns \u8F6C\u6362\u540E\u7684\u4EA7\u54C1\u5361\u7247\u6570\u636E\u5217\u8868\n */\nexport const useBogoDataTransform = (\n bogoItems: BogoItem[],\n copyConfig: CopyConfig,\n buildData?: BuildData\n): ProductCardData[] => {\n return useMemo(() => {\n if (!Array.isArray(bogoItems) || bogoItems.length === 0) {\n return []\n }\n\n try {\n return bogoItems.map(bogoItem => transformSingleBogoItem(bogoItem, copyConfig, buildData))\n } catch (error) {\n console.error('Error transforming BOGO items:', error)\n return []\n }\n }, [bogoItems, copyConfig, buildData])\n}\n\n/**\n * \u4EA7\u54C1\u67E5\u627E Hook\uFF08\u7528\u4E8E\u8C03\u8BD5\u548C\u6D4B\u8BD5\uFF09\n */\nexport const useProductLookup = (sku: string, buildData?: BuildData) => {\n return useMemo(() => {\n return findProductBySku(sku, buildData)\n }, [sku, buildData])\n}\n\n/**\n * \u8D60\u54C1\u63D0\u53D6 Hook\uFF08\u7528\u4E8E\u8C03\u8BD5\u548C\u6D4B\u8BD5\uFF09\n */\nexport const useGiftExtraction = (sku: string, buildData?: BuildData) => {\n return useMemo(() => {\n return extractProductGifts(sku, buildData)\n }, [sku, buildData])\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["useBogoDataTransform_exports", "__export", "useBogoDataTransform", "useGiftExtraction", "useProductLookup", "__toCommonJS", "import_react", "findProductBySku", "sku", "buildData", "product", "variant", "error", "calculateProductPrice", "currentPrice", "coupon", "discountAmount", "originalPriceValue", "createGiftsFromRewards", "rewardVariants", "startIndex", "rewardVariant", "index", "extractProductGifts", "allGifts", "giftIndex", "reward", "gifts", "getResponsiveImageUrl", "images", "createProductTags", "tag", "transformSingleBogoItem", "bogoItem", "copyConfig", "productData", "priceInfo", "giftInfo", "bogoItems"]
7
+ }
@@ -0,0 +1,193 @@
1
+ import * as React from 'react';
2
+ import { type ProductCardData, type FreeGift } from './ProductCard.js';
3
+ /**
4
+ * 产品标签接口
5
+ */
6
+ export interface ProductTag {
7
+ /** 标签文本 */
8
+ text: string;
9
+ /** 标签类型 */
10
+ type: 'discount' | 'new' | 'default';
11
+ /** 标签样式变体 */
12
+ variant: 'filled' | 'outlined';
13
+ }
14
+ export type BuyOneGetOneShelfSemanticName = 'root' | 'title' | 'description' | 'content' | 'productCard' | 'productCardImage' | 'productCardTitle' | 'productCardDescription' | 'productCardPrice' | 'productCardGiftsContainer' | 'productCardBtnGroup';
15
+ /**
16
+ * 响应式图片接口
17
+ */
18
+ export interface ResponsiveImage {
19
+ id: number;
20
+ baseUrl: string;
21
+ url: string;
22
+ thumbnailURL: string;
23
+ filename: string;
24
+ mimeType: string;
25
+ width: number;
26
+ height: number;
27
+ }
28
+ /**
29
+ * 响应式图片集合接口
30
+ */
31
+ export interface ResponsiveImages {
32
+ laptop?: ResponsiveImage;
33
+ mobile?: ResponsiveImage;
34
+ tablet?: ResponsiveImage;
35
+ desktop?: ResponsiveImage;
36
+ lgDesktop?: ResponsiveImage;
37
+ }
38
+ /**
39
+ * 产品基础数据接口
40
+ */
41
+ export interface ProductData {
42
+ sku: string;
43
+ name: string;
44
+ image: string;
45
+ value: string;
46
+ handle: string;
47
+ shopify_id: string;
48
+ }
49
+ /**
50
+ * 文案配置接口
51
+ */
52
+ export interface CopyConfig {
53
+ shopNowText: string;
54
+ freeGiftLabel: string;
55
+ learnMoreText: string;
56
+ freeGiftHeading: string;
57
+ }
58
+ /**
59
+ * 买赠项目接口
60
+ */
61
+ export interface BogoItem {
62
+ id: string;
63
+ data: ProductData[];
64
+ images: ResponsiveImages;
65
+ shopNowFun: string;
66
+ shopNowText: string;
67
+ learnMoreText: string;
68
+ }
69
+ /**
70
+ * 赠品变体接口
71
+ */
72
+ export interface RewardVariant {
73
+ variant_id: string;
74
+ sku: string;
75
+ handle: string;
76
+ }
77
+ /**
78
+ * 赠品奖励接口
79
+ */
80
+ export interface RewardItem {
81
+ get_unit: number;
82
+ variant_list: RewardVariant[];
83
+ }
84
+ /**
85
+ * 免费赠品对象接口
86
+ */
87
+ export interface FuncFreeGiftObj {
88
+ rule_id: number;
89
+ rule_type: number;
90
+ discount_label: {
91
+ cart_checkout_label: string;
92
+ product_label: string;
93
+ sold_out_label: string;
94
+ };
95
+ frontend_labels?: any[];
96
+ apply_unit: number;
97
+ discount_combinations: {
98
+ other_order_discounts: boolean;
99
+ other_product_discounts: boolean;
100
+ shipping_discounts: boolean;
101
+ };
102
+ gift_type: number;
103
+ reward_list: RewardItem[];
104
+ }
105
+ /**
106
+ * 产品变体接口 (BuildData)
107
+ */
108
+ export interface BuildProductVariant {
109
+ sku: string;
110
+ price: number;
111
+ availableForSale: boolean;
112
+ metafields: {
113
+ coupons?: any[];
114
+ infos?: any;
115
+ funcFreeGiftObj?: FuncFreeGiftObj;
116
+ };
117
+ id: string;
118
+ name: string;
119
+ image?: {
120
+ url: string;
121
+ altText?: string;
122
+ };
123
+ quantityAvailable?: number;
124
+ }
125
+ /**
126
+ * 构建产品接口 (BuildData)
127
+ */
128
+ export interface BuildProduct {
129
+ handle: string;
130
+ variants: BuildProductVariant[];
131
+ id: string;
132
+ name: string;
133
+ title: string;
134
+ description: string;
135
+ totalInventory?: number;
136
+ tags?: string[];
137
+ price: {
138
+ value: number;
139
+ currencyCode: string;
140
+ };
141
+ images: {
142
+ url: string;
143
+ altText?: string;
144
+ }[];
145
+ }
146
+ /**
147
+ * BuildData 类型定义
148
+ */
149
+ export type BuildData = BuildProduct[];
150
+ /**
151
+ * BuyOneGetOneShelf 业务组件数据接口 - 新格式
152
+ */
153
+ export interface BuyOneGetOneShelfData {
154
+ id: string;
155
+ copy: CopyConfig;
156
+ theme: string;
157
+ title: string;
158
+ display: string;
159
+ subtitle: string;
160
+ blockName: string;
161
+ blockType: string;
162
+ bogoItems: BogoItem[];
163
+ }
164
+ export interface BuyOneGetOneShelfProps extends React.HTMLAttributes<HTMLDivElement> {
165
+ /** 业务数据 */
166
+ data: BuyOneGetOneShelfData;
167
+ /** 构建时数据 - 产品详细信息,包含赠品数据 */
168
+ buildData?: BuildData;
169
+ /** 礼品数据源,用于匹配实际的价格、图片、标题 */
170
+ giftData?: any;
171
+ /** 布局模式:一排一个或一排两个 */
172
+ layout?: 'single' | 'double';
173
+ /** 产品卡片点击事件 */
174
+ onProductClick?: (product: ProductCardData, bogoItem?: BogoItem) => void;
175
+ /** 产品图片点击事件 */
176
+ onProductImageClick?: (product: ProductCardData, bogoItem?: BogoItem) => void;
177
+ /** Learn More按钮点击事件 */
178
+ onLearnMore?: (product: ProductCardData, bogoItem?: BogoItem) => void;
179
+ /** Shop Now按钮点击事件 */
180
+ onShopNow?: (product: ProductCardData, bogoItem?: BogoItem) => void;
181
+ /** 赠品点击事件 */
182
+ onGiftClick?: (gift: FreeGift, product: ProductCardData) => void;
183
+ /** 赠品选择变化事件 */
184
+ onGiftSelectionChange?: (selectedGifts: FreeGift[], product: ProductCardData) => void;
185
+ classNames?: Partial<Record<BuyOneGetOneShelfSemanticName, string>>;
186
+ }
187
+ /**
188
+ * BuyOneGetOneShelf - (WIP)买赠货架
189
+ *
190
+ * @description 这是一个买主商品赠送赠品的活动组件,展示产品卡片,支持一排一个或一排两个的布局
191
+ */
192
+ declare const BuyOneGetOneShelf: React.ForwardRefExoticComponent<BuyOneGetOneShelfProps & React.RefAttributes<HTMLDivElement>>;
193
+ export default BuyOneGetOneShelf;
@@ -0,0 +1,2 @@
1
+ "use strict";"use client";var F=Object.create;var d=Object.defineProperty;var L=Object.getOwnPropertyDescriptor;var M=Object.getOwnPropertyNames;var H=Object.getPrototypeOf,V=Object.prototype.hasOwnProperty;var j=(t,r)=>{for(var e in r)d(t,e,{get:r[e],enumerable:!0})},I=(t,r,e,c)=>{if(r&&typeof r=="object"||typeof r=="function")for(let i of M(r))!V.call(t,i)&&i!==e&&d(t,i,{get:()=>r[i],enumerable:!(c=L(r,i))||c.enumerable});return t};var v=(t,r,e)=>(e=t!=null?F(H(t)):{},I(r||!t||!t.__esModule?d(e,"default",{value:t,enumerable:!0}):e,t)),A=t=>I(d({},"__esModule",{value:!0}),t);var U={};j(U,{default:()=>E});module.exports=A(U);var s=require("react/jsx-runtime"),l=v(require("react")),u=require("../../helpers/index.js"),P=v(require("./ProductCard.js")),D=require("./hooks/useBogoDataTransform.js"),g=require("../../components/index.js");const x=l.forwardRef(({className:t,classNames:r={},data:e,buildData:c,giftData:i,layout:p="single",onProductClick:m,onProductImageClick:f,onLearnMore:b,onShopNow:y,onGiftClick:G,onGiftSelectionChange:B,..._},k)=>{const O=(0,D.useBogoDataTransform)(e.bogoItems,e.copy,c),R=l.useCallback((n,o)=>{m?.(n,e.bogoItems[o])},[m,e]),w=l.useCallback((n,o)=>{f?.(n,e.bogoItems[o])},[f,e]),S=l.useCallback((n,o)=>{b?.(n,e.bogoItems[o])},[b,e]),T=l.useCallback((n,o)=>{y?.(n,e.bogoItems[o])},[y,e]),C=e.title,h=e.subtitle;return(0,s.jsxs)("div",{ref:k,className:(0,u.cn)("w-full px-32 py-0",t,r?.root),..._,children:[C&&(0,s.jsx)(g.Heading,{as:"h2",html:C,className:(0,u.cn)("mb-4 text-2xl font-bold",r?.title)}),h&&(0,s.jsx)(g.Text,{size:3,as:"p",html:h,className:(0,u.cn)("mb-6 text-gray-600",r?.description)}),(0,s.jsx)("div",{className:(0,u.cn)("flex flex-wrap",p==="single"?"flex-col gap-6":"flex-row gap-6"),children:O.map((n,o)=>{const N=e.bogoItems[o]?.id||o;return(0,s.jsx)(P.default,{data:n,giftData:i,layout:p,onProductClick:a=>R(a,o),onProductImageClick:a=>w(a,o),onLearnMore:a=>S(a,o),onShopNow:a=>T(a,o),onGiftClick:G,onGiftSelectionChange:B},N)})})]})});x.displayName="BuyOneGetOneShelf";var E=x;
2
+ //# sourceMappingURL=index.js.map