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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (856) hide show
  1. package/dist/cjs/biz-components/AccordionCards/index.d.ts +3 -3
  2. package/dist/cjs/biz-components/ActiveShelf/index.d.ts +222 -0
  3. package/dist/cjs/biz-components/ActiveShelf/index.js +2 -0
  4. package/dist/cjs/biz-components/ActiveShelf/index.js.map +7 -0
  5. package/dist/cjs/biz-components/ActiveShelf/types.d.ts +22 -0
  6. package/dist/cjs/biz-components/ActiveShelf/types.js +2 -0
  7. package/dist/cjs/biz-components/ActiveShelf/types.js.map +7 -0
  8. package/dist/cjs/biz-components/AiuiProvider/index.d.ts +7 -0
  9. package/dist/cjs/biz-components/AiuiProvider/index.js +1 -1
  10. package/dist/cjs/biz-components/AiuiProvider/index.js.map +2 -2
  11. package/dist/cjs/biz-components/AnchorNavigation/index.d.ts +42 -0
  12. package/dist/cjs/biz-components/AnchorNavigation/index.js +2 -0
  13. package/dist/cjs/biz-components/AnchorNavigation/index.js.map +7 -0
  14. package/dist/cjs/biz-components/AnchorNavigation/useAnchorPosition.d.ts +2 -0
  15. package/dist/cjs/biz-components/AnchorNavigation/useAnchorPosition.js +2 -0
  16. package/dist/cjs/biz-components/AnchorNavigation/useAnchorPosition.js.map +7 -0
  17. package/dist/cjs/biz-components/AplusDesc/index.d.ts +3 -3
  18. package/dist/cjs/biz-components/BrandCardLink/BrandCardLink.d.ts +3 -3
  19. package/dist/cjs/biz-components/BrandCardLink/BrandCardLink.js +1 -1
  20. package/dist/cjs/biz-components/BrandCardLink/BrandCardLink.js.map +1 -1
  21. package/dist/cjs/biz-components/BrandEquity/BrandEquity.d.ts +3 -3
  22. package/dist/cjs/biz-components/BrandEquity/BrandEquity.js +1 -1
  23. package/dist/cjs/biz-components/BrandEquity/BrandEquity.js.map +3 -3
  24. package/dist/cjs/biz-components/BrandEquity/types.d.ts +1 -0
  25. package/dist/cjs/biz-components/BrandEquity/types.js +1 -1
  26. package/dist/cjs/biz-components/BrandEquity/types.js.map +1 -1
  27. package/dist/cjs/biz-components/BuyOneGetOneShelf/ProductCard.d.ts +74 -0
  28. package/dist/cjs/biz-components/BuyOneGetOneShelf/ProductCard.js +2 -0
  29. package/dist/cjs/biz-components/BuyOneGetOneShelf/ProductCard.js.map +7 -0
  30. package/dist/cjs/biz-components/BuyOneGetOneShelf/hooks/useBogoDataTransform.d.ts +36 -0
  31. package/dist/cjs/biz-components/BuyOneGetOneShelf/hooks/useBogoDataTransform.js +2 -0
  32. package/dist/cjs/biz-components/BuyOneGetOneShelf/hooks/useBogoDataTransform.js.map +7 -0
  33. package/dist/cjs/biz-components/BuyOneGetOneShelf/index.d.ts +193 -0
  34. package/dist/cjs/biz-components/BuyOneGetOneShelf/index.js +2 -0
  35. package/dist/cjs/biz-components/BuyOneGetOneShelf/index.js.map +7 -0
  36. package/dist/cjs/biz-components/Category/index.d.ts +3 -3
  37. package/dist/cjs/biz-components/CreativeModule/index.d.ts +3 -3
  38. package/dist/cjs/biz-components/DownLoad/index.d.ts +3 -3
  39. package/dist/cjs/biz-components/Evaluate/index.d.ts +3 -3
  40. package/dist/cjs/biz-components/EventSchedule/index.d.ts +63 -0
  41. package/dist/cjs/biz-components/EventSchedule/index.js +2 -0
  42. package/dist/cjs/biz-components/EventSchedule/index.js.map +7 -0
  43. package/dist/cjs/biz-components/Faq/Faq.d.ts +3 -3
  44. package/dist/cjs/biz-components/FeatureCards/FeatureCards.d.ts +3 -3
  45. package/dist/cjs/biz-components/FeatureShowcase/FeatureShowcase.d.ts +3 -3
  46. package/dist/cjs/biz-components/Features/index.d.ts +3 -3
  47. package/dist/cjs/biz-components/FootCharger/index.d.ts +3 -3
  48. package/dist/cjs/biz-components/FooterNavigation/index.d.ts +3 -3
  49. package/dist/cjs/biz-components/GiftBox/index.d.ts +3 -3
  50. package/dist/cjs/biz-components/Graphic/index.d.ts +3 -3
  51. package/dist/cjs/biz-components/GraphicAttractionBlock/index.d.ts +3 -3
  52. package/dist/cjs/biz-components/GraphicMore/index.d.ts +3 -3
  53. package/dist/cjs/biz-components/GraphicOverlay/GraphicOverlay.d.ts +3 -3
  54. package/dist/cjs/biz-components/HeaderNavigation/MobileSidebarMenu.js +1 -1
  55. package/dist/cjs/biz-components/HeaderNavigation/MobileSidebarMenu.js.map +3 -3
  56. package/dist/cjs/biz-components/HeaderNavigation/SidebarDropdown.js +1 -1
  57. package/dist/cjs/biz-components/HeaderNavigation/SidebarDropdown.js.map +2 -2
  58. package/dist/cjs/biz-components/HeaderNavigation/index.d.ts +3 -3
  59. package/dist/cjs/biz-components/HeroBanner/Countdown.js +1 -1
  60. package/dist/cjs/biz-components/HeroBanner/Countdown.js.map +2 -2
  61. package/dist/cjs/biz-components/HeroBanner/HeroBanner.d.ts +6 -3
  62. package/dist/cjs/biz-components/HeroBanner/HeroBanner.js +1 -1
  63. package/dist/cjs/biz-components/HeroBanner/HeroBanner.js.map +3 -3
  64. package/dist/cjs/biz-components/IPRedirect/RegionBanner.d.ts +37 -0
  65. package/dist/cjs/biz-components/IPRedirect/RegionBanner.js +60 -0
  66. package/dist/cjs/biz-components/IPRedirect/RegionBanner.js.map +7 -0
  67. package/dist/cjs/biz-components/IPRedirect/RegionSelectorModal.d.ts +47 -0
  68. package/dist/cjs/biz-components/IPRedirect/RegionSelectorModal.js +69 -0
  69. package/dist/cjs/biz-components/IPRedirect/RegionSelectorModal.js.map +7 -0
  70. package/dist/cjs/biz-components/IPRedirect/index.d.ts +9 -0
  71. package/dist/cjs/biz-components/IPRedirect/index.js +2 -0
  72. package/dist/cjs/biz-components/IPRedirect/index.js.map +7 -0
  73. package/dist/cjs/biz-components/IPRedirect/type.d.ts +36 -0
  74. package/dist/cjs/biz-components/IPRedirect/type.js +2 -0
  75. package/dist/cjs/biz-components/IPRedirect/type.js.map +7 -0
  76. package/dist/cjs/biz-components/IPRedirect/useAutoRedirect.d.ts +66 -0
  77. package/dist/cjs/biz-components/IPRedirect/useAutoRedirect.js +2 -0
  78. package/dist/cjs/biz-components/IPRedirect/useAutoRedirect.js.map +7 -0
  79. package/dist/cjs/biz-components/IPRedirect/useDetectedRegionRedirect.d.ts +51 -0
  80. package/dist/cjs/biz-components/IPRedirect/useDetectedRegionRedirect.js +2 -0
  81. package/dist/cjs/biz-components/IPRedirect/useDetectedRegionRedirect.js.map +7 -0
  82. package/dist/cjs/biz-components/IPRedirect/useIPRedirect.d.ts +42 -0
  83. package/dist/cjs/biz-components/IPRedirect/useIPRedirect.js +2 -0
  84. package/dist/cjs/biz-components/IPRedirect/useIPRedirect.js.map +7 -0
  85. package/dist/cjs/biz-components/IPRedirect/useRedirectBanner.d.ts +108 -0
  86. package/dist/cjs/biz-components/IPRedirect/useRedirectBanner.js +2 -0
  87. package/dist/cjs/biz-components/IPRedirect/useRedirectBanner.js.map +7 -0
  88. package/dist/cjs/biz-components/IPRedirect/useRegionRedirectManager.d.ts +152 -0
  89. package/dist/cjs/biz-components/IPRedirect/useRegionRedirectManager.js +2 -0
  90. package/dist/cjs/biz-components/IPRedirect/useRegionRedirectManager.js.map +7 -0
  91. package/dist/cjs/biz-components/IPRedirect/useSavedRegionRedirect.d.ts +51 -0
  92. package/dist/cjs/biz-components/IPRedirect/useSavedRegionRedirect.js +2 -0
  93. package/dist/cjs/biz-components/IPRedirect/useSavedRegionRedirect.js.map +7 -0
  94. package/dist/cjs/biz-components/IPRedirect/utils.d.ts +222 -0
  95. package/dist/cjs/biz-components/IPRedirect/utils.js +2 -0
  96. package/dist/cjs/biz-components/IPRedirect/utils.js.map +7 -0
  97. package/dist/cjs/biz-components/ImageOverlayShelf/index.d.ts +130 -0
  98. package/dist/cjs/biz-components/ImageOverlayShelf/index.js +2 -0
  99. package/dist/cjs/biz-components/ImageOverlayShelf/index.js.map +7 -0
  100. package/dist/cjs/biz-components/ImageTextFeature/ImageTextFeature.d.ts +3 -3
  101. package/dist/cjs/biz-components/ImageTextFeature/ImageTextFeature.js +1 -1
  102. package/dist/cjs/biz-components/ImageTextFeature/ImageTextFeature.js.map +3 -3
  103. package/dist/cjs/biz-components/ImageWithText/ImageWithText.d.ts +3 -3
  104. package/dist/cjs/biz-components/Ksp/index.d.ts +3 -3
  105. package/dist/cjs/biz-components/Listing/components/PaidShipping/index.d.ts +4 -4
  106. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/BenefitsTab.d.ts +3 -3
  107. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductBundle/index.d.ts +3 -3
  108. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductExchangePurchase/index.d.ts +3 -3
  109. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductFreeGift/index.d.ts +3 -3
  110. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductHighlight/index.d.ts +3 -3
  111. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductOptions/index.d.ts +3 -3
  112. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGallery/index.d.ts +3 -3
  113. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductSummary/index.d.ts +3 -3
  114. package/dist/cjs/biz-components/Listing/components/PurchaseBar/index.d.ts +3 -3
  115. package/dist/cjs/biz-components/Marquee/Marquee.d.ts +3 -3
  116. package/dist/cjs/biz-components/Marquee/Marquee.js +1 -1
  117. package/dist/cjs/biz-components/Marquee/Marquee.js.map +3 -3
  118. package/dist/cjs/biz-components/MarqueeReview/index.d.ts +3 -3
  119. package/dist/cjs/biz-components/Media/index.d.ts +32 -0
  120. package/dist/cjs/biz-components/Media/index.js +2 -0
  121. package/dist/cjs/biz-components/Media/index.js.map +7 -0
  122. package/dist/cjs/biz-components/MediaPlayerBase/index.d.ts +3 -3
  123. package/dist/cjs/biz-components/MediaPlayerMulti/index.d.ts +3 -3
  124. package/dist/cjs/biz-components/MediaPlayerSticky/index.d.ts +4 -4
  125. package/dist/cjs/biz-components/MediaPlayerSticky/types.d.ts +1 -0
  126. package/dist/cjs/biz-components/MediaPlayerSticky/types.js +1 -1
  127. package/dist/cjs/biz-components/MediaPlayerSticky/types.js.map +1 -1
  128. package/dist/cjs/biz-components/MediaSceneSwitcher/MediaSceneSwitcher.d.ts +3 -3
  129. package/dist/cjs/biz-components/MediaShelf/index.d.ts +216 -0
  130. package/dist/cjs/biz-components/MediaShelf/index.js +2 -0
  131. package/dist/cjs/biz-components/MediaShelf/index.js.map +7 -0
  132. package/dist/cjs/biz-components/MediaShelf/types.d.ts +22 -0
  133. package/dist/cjs/biz-components/MediaShelf/types.js +2 -0
  134. package/dist/cjs/biz-components/MediaShelf/types.js.map +7 -0
  135. package/dist/cjs/biz-components/MemberEquity/index.d.ts +3 -3
  136. package/dist/cjs/biz-components/MiniCart/index.d.ts +88 -0
  137. package/dist/cjs/biz-components/MiniCart/index.js +2 -0
  138. package/dist/cjs/biz-components/MiniCart/index.js.map +7 -0
  139. package/dist/cjs/biz-components/MultiLayoutGraphicBlock/MultiLayoutGraphicBlock.d.ts +3 -3
  140. package/dist/cjs/biz-components/ProductCompare/index.d.ts +3 -3
  141. package/dist/cjs/biz-components/ProductHero/ProductHero.d.ts +3 -3
  142. package/dist/cjs/biz-components/ProductNav/ProductNav.d.ts +3 -3
  143. package/dist/cjs/biz-components/PromotionalBar/index.d.ts +49 -0
  144. package/dist/cjs/biz-components/PromotionalBar/index.js +2 -0
  145. package/dist/cjs/biz-components/PromotionalBar/index.js.map +7 -0
  146. package/dist/cjs/biz-components/SecondaryBanner/index.d.ts +69 -0
  147. package/dist/cjs/biz-components/SecondaryBanner/index.js +2 -0
  148. package/dist/cjs/biz-components/SecondaryBanner/index.js.map +7 -0
  149. package/dist/cjs/biz-components/SelectStore/index.d.ts +3 -3
  150. package/dist/cjs/biz-components/ShelfDisplay/index.d.ts +3 -3
  151. package/dist/cjs/biz-components/ShelfDisplay/shelfDisplay.d.ts +0 -11
  152. package/dist/cjs/biz-components/ShelfDisplay/shelfDisplay.js +1 -1
  153. package/dist/cjs/biz-components/ShelfDisplay/shelfDisplay.js.map +3 -3
  154. package/dist/cjs/biz-components/Slogan/index.d.ts +3 -3
  155. package/dist/cjs/biz-components/Spacer/index.d.ts +3 -3
  156. package/dist/cjs/biz-components/Specs/index.d.ts +3 -3
  157. package/dist/cjs/biz-components/Specs/index.js +1 -1
  158. package/dist/cjs/biz-components/Specs/index.js.map +2 -2
  159. package/dist/cjs/biz-components/SpecsComparison/SpecsComparison.d.ts +3 -3
  160. package/dist/cjs/biz-components/TabWithImage/TabWithImage.d.ts +3 -3
  161. package/dist/cjs/biz-components/Tabs/Tabs.d.ts +3 -3
  162. package/dist/cjs/biz-components/TabsGroup/index.d.ts +3 -3
  163. package/dist/cjs/biz-components/TabsWithMedia/TabsWithMedia.d.ts +3 -3
  164. package/dist/cjs/biz-components/ThreeDCarousel/ThreeDCarousel.d.ts +3 -3
  165. package/dist/cjs/biz-components/Title/Countdown.d.ts +14 -0
  166. package/dist/cjs/biz-components/Title/Countdown.js +2 -0
  167. package/dist/cjs/biz-components/Title/Countdown.js.map +7 -0
  168. package/dist/cjs/biz-components/Title/index.d.ts +3 -3
  169. package/dist/cjs/biz-components/Title/index.js +1 -1
  170. package/dist/cjs/biz-components/Title/index.js.map +3 -3
  171. package/dist/cjs/biz-components/Title/types.d.ts +55 -0
  172. package/dist/cjs/biz-components/Title/types.js +1 -1
  173. package/dist/cjs/biz-components/Title/types.js.map +1 -1
  174. package/dist/cjs/biz-components/VideoFeature/VideoFeature.d.ts +3 -3
  175. package/dist/cjs/biz-components/WheelLottery/BaseModal.d.ts +55 -0
  176. package/dist/cjs/biz-components/WheelLottery/BaseModal.js +12 -0
  177. package/dist/cjs/biz-components/WheelLottery/BaseModal.js.map +7 -0
  178. package/dist/cjs/biz-components/WheelLottery/ChanceMethods.d.ts +30 -0
  179. package/dist/cjs/biz-components/WheelLottery/ChanceMethods.js +2 -0
  180. package/dist/cjs/biz-components/WheelLottery/ChanceMethods.js.map +7 -0
  181. package/dist/cjs/biz-components/WheelLottery/ErrorModal.d.ts +42 -0
  182. package/dist/cjs/biz-components/WheelLottery/ErrorModal.js +2 -0
  183. package/dist/cjs/biz-components/WheelLottery/ErrorModal.js.map +7 -0
  184. package/dist/cjs/biz-components/WheelLottery/MyRewardsModal.d.ts +91 -0
  185. package/dist/cjs/biz-components/WheelLottery/MyRewardsModal.js +2 -0
  186. package/dist/cjs/biz-components/WheelLottery/MyRewardsModal.js.map +7 -0
  187. package/dist/cjs/biz-components/WheelLottery/PrizePool.d.ts +26 -0
  188. package/dist/cjs/biz-components/WheelLottery/PrizePool.js +2 -0
  189. package/dist/cjs/biz-components/WheelLottery/PrizePool.js.map +7 -0
  190. package/dist/cjs/biz-components/WheelLottery/RulesModal.d.ts +43 -0
  191. package/dist/cjs/biz-components/WheelLottery/RulesModal.js +2 -0
  192. package/dist/cjs/biz-components/WheelLottery/RulesModal.js.map +7 -0
  193. package/dist/cjs/biz-components/WheelLottery/ShareModal.d.ts +74 -0
  194. package/dist/cjs/biz-components/WheelLottery/ShareModal.js +2 -0
  195. package/dist/cjs/biz-components/WheelLottery/ShareModal.js.map +7 -0
  196. package/dist/cjs/biz-components/WheelLottery/Wheel.d.ts +27 -0
  197. package/dist/cjs/biz-components/WheelLottery/Wheel.js +2 -0
  198. package/dist/cjs/biz-components/WheelLottery/Wheel.js.map +7 -0
  199. package/dist/cjs/biz-components/WheelLottery/WinnerModal.d.ts +25 -0
  200. package/dist/cjs/biz-components/WheelLottery/WinnerModal.js +2 -0
  201. package/dist/cjs/biz-components/WheelLottery/WinnerModal.js.map +7 -0
  202. package/dist/cjs/biz-components/WheelLottery/index.d.ts +52 -0
  203. package/dist/cjs/biz-components/WheelLottery/index.js +2 -0
  204. package/dist/cjs/biz-components/WheelLottery/index.js.map +7 -0
  205. package/dist/cjs/biz-components/WheelLottery/types.d.ts +1193 -0
  206. package/dist/cjs/biz-components/WheelLottery/types.js +2 -0
  207. package/dist/cjs/biz-components/WheelLottery/types.js.map +7 -0
  208. package/dist/cjs/biz-components/WhyChoose/WhyChoose.d.ts +3 -3
  209. package/dist/cjs/biz-components/index.d.ts +30 -2
  210. package/dist/cjs/biz-components/index.js +1 -1
  211. package/dist/cjs/biz-components/index.js.map +3 -3
  212. package/dist/cjs/components/badge.js +1 -1
  213. package/dist/cjs/components/badge.js.map +2 -2
  214. package/dist/cjs/components/index.d.ts +2 -0
  215. package/dist/cjs/components/index.js +1 -1
  216. package/dist/cjs/components/index.js.map +3 -3
  217. package/dist/cjs/components/paginator.d.ts +12 -0
  218. package/dist/cjs/components/paginator.js +7 -0
  219. package/dist/cjs/components/paginator.js.map +7 -0
  220. package/dist/cjs/components/progress.d.ts +46 -0
  221. package/dist/cjs/components/progress.js +2 -0
  222. package/dist/cjs/components/progress.js.map +7 -0
  223. package/dist/cjs/components/tabs.d.ts +2 -1
  224. package/dist/cjs/components/tabs.js +1 -1
  225. package/dist/cjs/components/tabs.js.map +2 -2
  226. package/dist/cjs/helpers/index.d.ts +1 -0
  227. package/dist/cjs/helpers/index.js +1 -1
  228. package/dist/cjs/helpers/index.js.map +3 -3
  229. package/dist/cjs/helpers/priceFormatting.d.ts +11 -0
  230. package/dist/cjs/helpers/priceFormatting.js +2 -0
  231. package/dist/cjs/helpers/priceFormatting.js.map +7 -0
  232. package/dist/cjs/shared/Styles.d.ts +5 -4
  233. package/dist/cjs/shared/Styles.js +1 -1
  234. package/dist/cjs/shared/Styles.js.map +3 -3
  235. package/dist/cjs/types/props.d.ts +0 -3
  236. package/dist/cjs/types/props.js +1 -1
  237. package/dist/cjs/types/props.js.map +1 -1
  238. package/dist/esm/biz-components/AccordionCards/index.d.ts +3 -3
  239. package/dist/esm/biz-components/ActiveShelf/index.d.ts +222 -0
  240. package/dist/esm/biz-components/ActiveShelf/index.js +2 -0
  241. package/dist/esm/biz-components/ActiveShelf/index.js.map +7 -0
  242. package/dist/esm/biz-components/ActiveShelf/types.d.ts +22 -0
  243. package/dist/esm/biz-components/ActiveShelf/types.js +1 -0
  244. package/dist/esm/biz-components/ActiveShelf/types.js.map +7 -0
  245. package/dist/esm/biz-components/AiuiProvider/index.d.ts +7 -0
  246. package/dist/esm/biz-components/AiuiProvider/index.js +1 -1
  247. package/dist/esm/biz-components/AiuiProvider/index.js.map +2 -2
  248. package/dist/esm/biz-components/AnchorNavigation/index.d.ts +42 -0
  249. package/dist/esm/biz-components/AnchorNavigation/index.js +2 -0
  250. package/dist/esm/biz-components/AnchorNavigation/index.js.map +7 -0
  251. package/dist/esm/biz-components/AnchorNavigation/useAnchorPosition.d.ts +2 -0
  252. package/dist/esm/biz-components/AnchorNavigation/useAnchorPosition.js +2 -0
  253. package/dist/esm/biz-components/AnchorNavigation/useAnchorPosition.js.map +7 -0
  254. package/dist/esm/biz-components/AplusDesc/index.d.ts +3 -3
  255. package/dist/esm/biz-components/BrandCardLink/BrandCardLink.d.ts +3 -3
  256. package/dist/esm/biz-components/BrandCardLink/BrandCardLink.js +1 -1
  257. package/dist/esm/biz-components/BrandCardLink/BrandCardLink.js.map +1 -1
  258. package/dist/esm/biz-components/BrandEquity/BrandEquity.d.ts +3 -3
  259. package/dist/esm/biz-components/BrandEquity/BrandEquity.js +1 -1
  260. package/dist/esm/biz-components/BrandEquity/BrandEquity.js.map +3 -3
  261. package/dist/esm/biz-components/BrandEquity/types.d.ts +1 -0
  262. package/dist/esm/biz-components/BuyOneGetOneShelf/ProductCard.d.ts +74 -0
  263. package/dist/esm/biz-components/BuyOneGetOneShelf/ProductCard.js +2 -0
  264. package/dist/esm/biz-components/BuyOneGetOneShelf/ProductCard.js.map +7 -0
  265. package/dist/esm/biz-components/BuyOneGetOneShelf/hooks/useBogoDataTransform.d.ts +36 -0
  266. package/dist/esm/biz-components/BuyOneGetOneShelf/hooks/useBogoDataTransform.js +2 -0
  267. package/dist/esm/biz-components/BuyOneGetOneShelf/hooks/useBogoDataTransform.js.map +7 -0
  268. package/dist/esm/biz-components/BuyOneGetOneShelf/index.d.ts +193 -0
  269. package/dist/esm/biz-components/BuyOneGetOneShelf/index.js +2 -0
  270. package/dist/esm/biz-components/BuyOneGetOneShelf/index.js.map +7 -0
  271. package/dist/esm/biz-components/Category/index.d.ts +3 -3
  272. package/dist/esm/biz-components/CreativeModule/index.d.ts +3 -3
  273. package/dist/esm/biz-components/DownLoad/index.d.ts +3 -3
  274. package/dist/esm/biz-components/Evaluate/index.d.ts +3 -3
  275. package/dist/esm/biz-components/EventSchedule/index.d.ts +63 -0
  276. package/dist/esm/biz-components/EventSchedule/index.js +2 -0
  277. package/dist/esm/biz-components/EventSchedule/index.js.map +7 -0
  278. package/dist/esm/biz-components/Faq/Faq.d.ts +3 -3
  279. package/dist/esm/biz-components/FeatureCards/FeatureCards.d.ts +3 -3
  280. package/dist/esm/biz-components/FeatureShowcase/FeatureShowcase.d.ts +3 -3
  281. package/dist/esm/biz-components/Features/index.d.ts +3 -3
  282. package/dist/esm/biz-components/FootCharger/index.d.ts +3 -3
  283. package/dist/esm/biz-components/FooterNavigation/index.d.ts +3 -3
  284. package/dist/esm/biz-components/GiftBox/index.d.ts +3 -3
  285. package/dist/esm/biz-components/Graphic/index.d.ts +3 -3
  286. package/dist/esm/biz-components/GraphicAttractionBlock/index.d.ts +3 -3
  287. package/dist/esm/biz-components/GraphicMore/index.d.ts +3 -3
  288. package/dist/esm/biz-components/GraphicOverlay/GraphicOverlay.d.ts +3 -3
  289. package/dist/esm/biz-components/HeaderNavigation/MobileSidebarMenu.js +1 -1
  290. package/dist/esm/biz-components/HeaderNavigation/MobileSidebarMenu.js.map +3 -3
  291. package/dist/esm/biz-components/HeaderNavigation/SidebarDropdown.js +1 -1
  292. package/dist/esm/biz-components/HeaderNavigation/SidebarDropdown.js.map +2 -2
  293. package/dist/esm/biz-components/HeaderNavigation/index.d.ts +3 -3
  294. package/dist/esm/biz-components/HeroBanner/Countdown.js +1 -1
  295. package/dist/esm/biz-components/HeroBanner/Countdown.js.map +2 -2
  296. package/dist/esm/biz-components/HeroBanner/HeroBanner.d.ts +6 -3
  297. package/dist/esm/biz-components/HeroBanner/HeroBanner.js +1 -1
  298. package/dist/esm/biz-components/HeroBanner/HeroBanner.js.map +3 -3
  299. package/dist/esm/biz-components/IPRedirect/RegionBanner.d.ts +37 -0
  300. package/dist/esm/biz-components/IPRedirect/RegionBanner.js +60 -0
  301. package/dist/esm/biz-components/IPRedirect/RegionBanner.js.map +7 -0
  302. package/dist/esm/biz-components/IPRedirect/RegionSelectorModal.d.ts +47 -0
  303. package/dist/esm/biz-components/IPRedirect/RegionSelectorModal.js +69 -0
  304. package/dist/esm/biz-components/IPRedirect/RegionSelectorModal.js.map +7 -0
  305. package/dist/esm/biz-components/IPRedirect/index.d.ts +9 -0
  306. package/dist/esm/biz-components/IPRedirect/index.js +2 -0
  307. package/dist/esm/biz-components/IPRedirect/index.js.map +7 -0
  308. package/dist/esm/biz-components/IPRedirect/type.d.ts +36 -0
  309. package/dist/esm/biz-components/IPRedirect/type.js +1 -0
  310. package/dist/esm/biz-components/IPRedirect/type.js.map +7 -0
  311. package/dist/esm/biz-components/IPRedirect/useAutoRedirect.d.ts +66 -0
  312. package/dist/esm/biz-components/IPRedirect/useAutoRedirect.js +2 -0
  313. package/dist/esm/biz-components/IPRedirect/useAutoRedirect.js.map +7 -0
  314. package/dist/esm/biz-components/IPRedirect/useDetectedRegionRedirect.d.ts +51 -0
  315. package/dist/esm/biz-components/IPRedirect/useDetectedRegionRedirect.js +2 -0
  316. package/dist/esm/biz-components/IPRedirect/useDetectedRegionRedirect.js.map +7 -0
  317. package/dist/esm/biz-components/IPRedirect/useIPRedirect.d.ts +42 -0
  318. package/dist/esm/biz-components/IPRedirect/useIPRedirect.js +2 -0
  319. package/dist/esm/biz-components/IPRedirect/useIPRedirect.js.map +7 -0
  320. package/dist/esm/biz-components/IPRedirect/useRedirectBanner.d.ts +108 -0
  321. package/dist/esm/biz-components/IPRedirect/useRedirectBanner.js +2 -0
  322. package/dist/esm/biz-components/IPRedirect/useRedirectBanner.js.map +7 -0
  323. package/dist/esm/biz-components/IPRedirect/useRegionRedirectManager.d.ts +152 -0
  324. package/dist/esm/biz-components/IPRedirect/useRegionRedirectManager.js +2 -0
  325. package/dist/esm/biz-components/IPRedirect/useRegionRedirectManager.js.map +7 -0
  326. package/dist/esm/biz-components/IPRedirect/useSavedRegionRedirect.d.ts +51 -0
  327. package/dist/esm/biz-components/IPRedirect/useSavedRegionRedirect.js +2 -0
  328. package/dist/esm/biz-components/IPRedirect/useSavedRegionRedirect.js.map +7 -0
  329. package/dist/esm/biz-components/IPRedirect/utils.d.ts +222 -0
  330. package/dist/esm/biz-components/IPRedirect/utils.js +2 -0
  331. package/dist/esm/biz-components/IPRedirect/utils.js.map +7 -0
  332. package/dist/esm/biz-components/ImageOverlayShelf/index.d.ts +130 -0
  333. package/dist/esm/biz-components/ImageOverlayShelf/index.js +2 -0
  334. package/dist/esm/biz-components/ImageOverlayShelf/index.js.map +7 -0
  335. package/dist/esm/biz-components/ImageTextFeature/ImageTextFeature.d.ts +3 -3
  336. package/dist/esm/biz-components/ImageTextFeature/ImageTextFeature.js +1 -1
  337. package/dist/esm/biz-components/ImageTextFeature/ImageTextFeature.js.map +3 -3
  338. package/dist/esm/biz-components/ImageWithText/ImageWithText.d.ts +3 -3
  339. package/dist/esm/biz-components/Ksp/index.d.ts +3 -3
  340. package/dist/esm/biz-components/Listing/components/PaidShipping/index.d.ts +4 -4
  341. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/BenefitsTab.d.ts +3 -3
  342. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductBundle/index.d.ts +3 -3
  343. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductExchangePurchase/index.d.ts +3 -3
  344. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductFreeGift/index.d.ts +3 -3
  345. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductHighlight/index.d.ts +3 -3
  346. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductOptions/index.d.ts +3 -3
  347. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/index.d.ts +3 -3
  348. package/dist/esm/biz-components/Listing/components/ProductCard/ProductSummary/index.d.ts +3 -3
  349. package/dist/esm/biz-components/Listing/components/PurchaseBar/index.d.ts +3 -3
  350. package/dist/esm/biz-components/Marquee/Marquee.d.ts +3 -3
  351. package/dist/esm/biz-components/Marquee/Marquee.js +1 -1
  352. package/dist/esm/biz-components/Marquee/Marquee.js.map +3 -3
  353. package/dist/esm/biz-components/MarqueeReview/index.d.ts +3 -3
  354. package/dist/esm/biz-components/Media/index.d.ts +32 -0
  355. package/dist/esm/biz-components/Media/index.js +2 -0
  356. package/dist/esm/biz-components/Media/index.js.map +7 -0
  357. package/dist/esm/biz-components/MediaPlayerBase/index.d.ts +3 -3
  358. package/dist/esm/biz-components/MediaPlayerMulti/index.d.ts +3 -3
  359. package/dist/esm/biz-components/MediaPlayerSticky/index.d.ts +4 -4
  360. package/dist/esm/biz-components/MediaPlayerSticky/types.d.ts +1 -0
  361. package/dist/esm/biz-components/MediaSceneSwitcher/MediaSceneSwitcher.d.ts +3 -3
  362. package/dist/esm/biz-components/MediaShelf/index.d.ts +216 -0
  363. package/dist/esm/biz-components/MediaShelf/index.js +2 -0
  364. package/dist/esm/biz-components/MediaShelf/index.js.map +7 -0
  365. package/dist/esm/biz-components/MediaShelf/types.d.ts +22 -0
  366. package/dist/esm/biz-components/MediaShelf/types.js +1 -0
  367. package/dist/esm/biz-components/MediaShelf/types.js.map +7 -0
  368. package/dist/esm/biz-components/MemberEquity/index.d.ts +3 -3
  369. package/dist/esm/biz-components/MiniCart/index.d.ts +88 -0
  370. package/dist/esm/biz-components/MiniCart/index.js +2 -0
  371. package/dist/esm/biz-components/MiniCart/index.js.map +7 -0
  372. package/dist/esm/biz-components/MultiLayoutGraphicBlock/MultiLayoutGraphicBlock.d.ts +3 -3
  373. package/dist/esm/biz-components/ProductCompare/index.d.ts +3 -3
  374. package/dist/esm/biz-components/ProductHero/ProductHero.d.ts +3 -3
  375. package/dist/esm/biz-components/ProductNav/ProductNav.d.ts +3 -3
  376. package/dist/esm/biz-components/PromotionalBar/index.d.ts +49 -0
  377. package/dist/esm/biz-components/PromotionalBar/index.js +2 -0
  378. package/dist/esm/biz-components/PromotionalBar/index.js.map +7 -0
  379. package/dist/esm/biz-components/SecondaryBanner/index.d.ts +69 -0
  380. package/dist/esm/biz-components/SecondaryBanner/index.js +2 -0
  381. package/dist/esm/biz-components/SecondaryBanner/index.js.map +7 -0
  382. package/dist/esm/biz-components/SelectStore/index.d.ts +3 -3
  383. package/dist/esm/biz-components/ShelfDisplay/index.d.ts +3 -3
  384. package/dist/esm/biz-components/ShelfDisplay/shelfDisplay.d.ts +0 -11
  385. package/dist/esm/biz-components/ShelfDisplay/shelfDisplay.js +1 -1
  386. package/dist/esm/biz-components/ShelfDisplay/shelfDisplay.js.map +3 -3
  387. package/dist/esm/biz-components/Slogan/index.d.ts +3 -3
  388. package/dist/esm/biz-components/Spacer/index.d.ts +3 -3
  389. package/dist/esm/biz-components/Specs/index.d.ts +3 -3
  390. package/dist/esm/biz-components/Specs/index.js +1 -1
  391. package/dist/esm/biz-components/Specs/index.js.map +2 -2
  392. package/dist/esm/biz-components/SpecsComparison/SpecsComparison.d.ts +3 -3
  393. package/dist/esm/biz-components/TabWithImage/TabWithImage.d.ts +3 -3
  394. package/dist/esm/biz-components/Tabs/Tabs.d.ts +3 -3
  395. package/dist/esm/biz-components/TabsGroup/index.d.ts +3 -3
  396. package/dist/esm/biz-components/TabsWithMedia/TabsWithMedia.d.ts +3 -3
  397. package/dist/esm/biz-components/ThreeDCarousel/ThreeDCarousel.d.ts +3 -3
  398. package/dist/esm/biz-components/Title/Countdown.d.ts +14 -0
  399. package/dist/esm/biz-components/Title/Countdown.js +2 -0
  400. package/dist/esm/biz-components/Title/Countdown.js.map +7 -0
  401. package/dist/esm/biz-components/Title/index.d.ts +3 -3
  402. package/dist/esm/biz-components/Title/index.js +1 -1
  403. package/dist/esm/biz-components/Title/index.js.map +3 -3
  404. package/dist/esm/biz-components/Title/types.d.ts +55 -0
  405. package/dist/esm/biz-components/VideoFeature/VideoFeature.d.ts +3 -3
  406. package/dist/esm/biz-components/WheelLottery/BaseModal.d.ts +55 -0
  407. package/dist/esm/biz-components/WheelLottery/BaseModal.js +12 -0
  408. package/dist/esm/biz-components/WheelLottery/BaseModal.js.map +7 -0
  409. package/dist/esm/biz-components/WheelLottery/ChanceMethods.d.ts +30 -0
  410. package/dist/esm/biz-components/WheelLottery/ChanceMethods.js +2 -0
  411. package/dist/esm/biz-components/WheelLottery/ChanceMethods.js.map +7 -0
  412. package/dist/esm/biz-components/WheelLottery/ErrorModal.d.ts +42 -0
  413. package/dist/esm/biz-components/WheelLottery/ErrorModal.js +2 -0
  414. package/dist/esm/biz-components/WheelLottery/ErrorModal.js.map +7 -0
  415. package/dist/esm/biz-components/WheelLottery/MyRewardsModal.d.ts +91 -0
  416. package/dist/esm/biz-components/WheelLottery/MyRewardsModal.js +2 -0
  417. package/dist/esm/biz-components/WheelLottery/MyRewardsModal.js.map +7 -0
  418. package/dist/esm/biz-components/WheelLottery/PrizePool.d.ts +26 -0
  419. package/dist/esm/biz-components/WheelLottery/PrizePool.js +2 -0
  420. package/dist/esm/biz-components/WheelLottery/PrizePool.js.map +7 -0
  421. package/dist/esm/biz-components/WheelLottery/RulesModal.d.ts +43 -0
  422. package/dist/esm/biz-components/WheelLottery/RulesModal.js +2 -0
  423. package/dist/esm/biz-components/WheelLottery/RulesModal.js.map +7 -0
  424. package/dist/esm/biz-components/WheelLottery/ShareModal.d.ts +74 -0
  425. package/dist/esm/biz-components/WheelLottery/ShareModal.js +2 -0
  426. package/dist/esm/biz-components/WheelLottery/ShareModal.js.map +7 -0
  427. package/dist/esm/biz-components/WheelLottery/Wheel.d.ts +27 -0
  428. package/dist/esm/biz-components/WheelLottery/Wheel.js +2 -0
  429. package/dist/esm/biz-components/WheelLottery/Wheel.js.map +7 -0
  430. package/dist/esm/biz-components/WheelLottery/WinnerModal.d.ts +25 -0
  431. package/dist/esm/biz-components/WheelLottery/WinnerModal.js +2 -0
  432. package/dist/esm/biz-components/WheelLottery/WinnerModal.js.map +7 -0
  433. package/dist/esm/biz-components/WheelLottery/index.d.ts +52 -0
  434. package/dist/esm/biz-components/WheelLottery/index.js +2 -0
  435. package/dist/esm/biz-components/WheelLottery/index.js.map +7 -0
  436. package/dist/esm/biz-components/WheelLottery/types.d.ts +1193 -0
  437. package/dist/esm/biz-components/WheelLottery/types.js +2 -0
  438. package/dist/esm/biz-components/WheelLottery/types.js.map +7 -0
  439. package/dist/esm/biz-components/WhyChoose/WhyChoose.d.ts +3 -3
  440. package/dist/esm/biz-components/index.d.ts +30 -2
  441. package/dist/esm/biz-components/index.js +1 -1
  442. package/dist/esm/biz-components/index.js.map +3 -3
  443. package/dist/esm/components/badge.js +1 -1
  444. package/dist/esm/components/badge.js.map +2 -2
  445. package/dist/esm/components/index.d.ts +2 -0
  446. package/dist/esm/components/index.js +1 -1
  447. package/dist/esm/components/index.js.map +2 -2
  448. package/dist/esm/components/paginator.d.ts +12 -0
  449. package/dist/esm/components/paginator.js +7 -0
  450. package/dist/esm/components/paginator.js.map +7 -0
  451. package/dist/esm/components/progress.d.ts +46 -0
  452. package/dist/esm/components/progress.js +2 -0
  453. package/dist/esm/components/progress.js.map +7 -0
  454. package/dist/esm/components/tabs.d.ts +2 -1
  455. package/dist/esm/components/tabs.js +1 -1
  456. package/dist/esm/components/tabs.js.map +2 -2
  457. package/dist/esm/helpers/index.d.ts +1 -0
  458. package/dist/esm/helpers/index.js +1 -1
  459. package/dist/esm/helpers/index.js.map +3 -3
  460. package/dist/esm/helpers/priceFormatting.d.ts +11 -0
  461. package/dist/esm/helpers/priceFormatting.js +2 -0
  462. package/dist/esm/helpers/priceFormatting.js.map +7 -0
  463. package/dist/esm/shared/Styles.d.ts +5 -4
  464. package/dist/esm/shared/Styles.js +1 -1
  465. package/dist/esm/shared/Styles.js.map +3 -3
  466. package/dist/esm/types/props.d.ts +0 -3
  467. package/dist/tokens/base.css +4 -3
  468. package/dist/tokens/eufy.css +1 -0
  469. package/dist/tokens/soundcore.css +4 -3
  470. package/package.json +8 -3
  471. package/style.css +4915 -126
  472. package/tailwind.config.js +19 -2
  473. package/dist/cjs/stories/HeroBanner.stories.d.ts +0 -28
  474. package/dist/cjs/stories/HeroBanner.stories.js +0 -11
  475. package/dist/cjs/stories/HeroBanner.stories.js.map +0 -7
  476. package/dist/cjs/stories/InlineVideo.stories.d.ts +0 -37
  477. package/dist/cjs/stories/InlineVideo.stories.js +0 -164
  478. package/dist/cjs/stories/InlineVideo.stories.js.map +0 -7
  479. package/dist/cjs/stories/MarqueeReview.stories.d.ts +0 -72
  480. package/dist/cjs/stories/MarqueeReview.stories.js +0 -19
  481. package/dist/cjs/stories/MarqueeReview.stories.js.map +0 -7
  482. package/dist/cjs/stories/MediaSceneSwitcher.stories.d.ts +0 -47
  483. package/dist/cjs/stories/MediaSceneSwitcher.stories.js +0 -2
  484. package/dist/cjs/stories/MediaSceneSwitcher.stories.js.map +0 -7
  485. package/dist/cjs/stories/MemberEquity.stories.d.ts +0 -9
  486. package/dist/cjs/stories/MemberEquity.stories.js +0 -31
  487. package/dist/cjs/stories/MemberEquity.stories.js.map +0 -7
  488. package/dist/cjs/stories/MultiLayoutGraphicBlock.stories.d.ts +0 -9
  489. package/dist/cjs/stories/MultiLayoutGraphicBlock.stories.js +0 -2
  490. package/dist/cjs/stories/MultiLayoutGraphicBlock.stories.js.map +0 -7
  491. package/dist/cjs/stories/ProductNav.stories.d.ts +0 -55
  492. package/dist/cjs/stories/ProductNav.stories.js +0 -2
  493. package/dist/cjs/stories/ProductNav.stories.js.map +0 -7
  494. package/dist/cjs/stories/ThreeDCarousel.stories.d.ts +0 -27
  495. package/dist/cjs/stories/ThreeDCarousel.stories.js +0 -118
  496. package/dist/cjs/stories/ThreeDCarousel.stories.js.map +0 -7
  497. package/dist/cjs/stories/accordionCards.stories.d.ts +0 -38
  498. package/dist/cjs/stories/accordionCards.stories.js +0 -2
  499. package/dist/cjs/stories/accordionCards.stories.js.map +0 -7
  500. package/dist/cjs/stories/alert.stories.d.ts +0 -27
  501. package/dist/cjs/stories/alert.stories.js +0 -2
  502. package/dist/cjs/stories/alert.stories.js.map +0 -7
  503. package/dist/cjs/stories/avatar.stories.d.ts +0 -39
  504. package/dist/cjs/stories/avatar.stories.js +0 -2
  505. package/dist/cjs/stories/avatar.stories.js.map +0 -7
  506. package/dist/cjs/stories/badge.stories.d.ts +0 -96
  507. package/dist/cjs/stories/badge.stories.js +0 -2
  508. package/dist/cjs/stories/badge.stories.js.map +0 -7
  509. package/dist/cjs/stories/bizTabs.stories.d.ts +0 -7
  510. package/dist/cjs/stories/bizTabs.stories.js +0 -2
  511. package/dist/cjs/stories/bizTabs.stories.js.map +0 -7
  512. package/dist/cjs/stories/board.stories.d.ts +0 -6
  513. package/dist/cjs/stories/board.stories.js +0 -2
  514. package/dist/cjs/stories/board.stories.js.map +0 -7
  515. package/dist/cjs/stories/brandEquity.stories.d.ts +0 -16
  516. package/dist/cjs/stories/brandEquity.stories.js +0 -2
  517. package/dist/cjs/stories/brandEquity.stories.js.map +0 -7
  518. package/dist/cjs/stories/brandStrip.stories.d.ts +0 -12
  519. package/dist/cjs/stories/brandStrip.stories.js +0 -2
  520. package/dist/cjs/stories/brandStrip.stories.js.map +0 -7
  521. package/dist/cjs/stories/button.stories.d.ts +0 -56
  522. package/dist/cjs/stories/button.stories.js +0 -2
  523. package/dist/cjs/stories/button.stories.js.map +0 -7
  524. package/dist/cjs/stories/card.stories.d.ts +0 -27
  525. package/dist/cjs/stories/card.stories.js +0 -2
  526. package/dist/cjs/stories/card.stories.js.map +0 -7
  527. package/dist/cjs/stories/carousel.stories.d.ts +0 -8
  528. package/dist/cjs/stories/carousel.stories.js +0 -2
  529. package/dist/cjs/stories/carousel.stories.js.map +0 -7
  530. package/dist/cjs/stories/category.stories.d.ts +0 -17
  531. package/dist/cjs/stories/category.stories.js +0 -2
  532. package/dist/cjs/stories/category.stories.js.map +0 -7
  533. package/dist/cjs/stories/checkbox.stories.d.ts +0 -46
  534. package/dist/cjs/stories/checkbox.stories.js +0 -2
  535. package/dist/cjs/stories/checkbox.stories.js.map +0 -7
  536. package/dist/cjs/stories/container.stories.d.ts +0 -28
  537. package/dist/cjs/stories/container.stories.js +0 -15
  538. package/dist/cjs/stories/container.stories.js.map +0 -7
  539. package/dist/cjs/stories/cpnBanner.stories.d.ts +0 -14
  540. package/dist/cjs/stories/cpnBanner.stories.js +0 -2
  541. package/dist/cjs/stories/cpnBanner.stories.js.map +0 -7
  542. package/dist/cjs/stories/cpnCountdown.stories.d.ts +0 -12
  543. package/dist/cjs/stories/cpnCountdown.stories.js +0 -2
  544. package/dist/cjs/stories/cpnCountdown.stories.js.map +0 -7
  545. package/dist/cjs/stories/cpnNavigation.stories.d.ts +0 -14
  546. package/dist/cjs/stories/cpnNavigation.stories.js +0 -2
  547. package/dist/cjs/stories/cpnNavigation.stories.js.map +0 -7
  548. package/dist/cjs/stories/cpnProductcard.stories.d.ts +0 -14
  549. package/dist/cjs/stories/cpnProductcard.stories.js +0 -2
  550. package/dist/cjs/stories/cpnProductcard.stories.js.map +0 -7
  551. package/dist/cjs/stories/cpnTitle.stories.d.ts +0 -14
  552. package/dist/cjs/stories/cpnTitle.stories.js +0 -2
  553. package/dist/cjs/stories/cpnTitle.stories.js.map +0 -7
  554. package/dist/cjs/stories/creativeModule.stories.d.ts +0 -19
  555. package/dist/cjs/stories/creativeModule.stories.js +0 -2
  556. package/dist/cjs/stories/creativeModule.stories.js.map +0 -7
  557. package/dist/cjs/stories/dialog.stories.d.ts +0 -20
  558. package/dist/cjs/stories/dialog.stories.js +0 -2
  559. package/dist/cjs/stories/dialog.stories.js.map +0 -7
  560. package/dist/cjs/stories/drawer.stories.d.ts +0 -20
  561. package/dist/cjs/stories/drawer.stories.js +0 -2
  562. package/dist/cjs/stories/drawer.stories.js.map +0 -7
  563. package/dist/cjs/stories/drop-down.stories.d.ts +0 -16
  564. package/dist/cjs/stories/drop-down.stories.js +0 -2
  565. package/dist/cjs/stories/drop-down.stories.js.map +0 -7
  566. package/dist/cjs/stories/evaluate.stories.d.ts +0 -16
  567. package/dist/cjs/stories/evaluate.stories.js +0 -2
  568. package/dist/cjs/stories/evaluate.stories.js.map +0 -7
  569. package/dist/cjs/stories/faq.stories.d.ts +0 -21
  570. package/dist/cjs/stories/faq.stories.js +0 -2
  571. package/dist/cjs/stories/faq.stories.js.map +0 -7
  572. package/dist/cjs/stories/featureCards.stories.d.ts +0 -30
  573. package/dist/cjs/stories/featureCards.stories.js +0 -61
  574. package/dist/cjs/stories/featureCards.stories.js.map +0 -7
  575. package/dist/cjs/stories/featureShowcase.stories.d.ts +0 -29
  576. package/dist/cjs/stories/featureShowcase.stories.js +0 -44
  577. package/dist/cjs/stories/featureShowcase.stories.js.map +0 -7
  578. package/dist/cjs/stories/graphic.stories.d.ts +0 -64
  579. package/dist/cjs/stories/graphic.stories.js +0 -2
  580. package/dist/cjs/stories/graphic.stories.js.map +0 -7
  581. package/dist/cjs/stories/graphicAttractionBlock.stories.d.ts +0 -6
  582. package/dist/cjs/stories/graphicAttractionBlock.stories.js +0 -2
  583. package/dist/cjs/stories/graphicAttractionBlock.stories.js.map +0 -7
  584. package/dist/cjs/stories/grid.stories.d.ts +0 -22
  585. package/dist/cjs/stories/grid.stories.js +0 -13
  586. package/dist/cjs/stories/grid.stories.js.map +0 -7
  587. package/dist/cjs/stories/heading.stories.d.ts +0 -84
  588. package/dist/cjs/stories/heading.stories.js +0 -15
  589. package/dist/cjs/stories/heading.stories.js.map +0 -7
  590. package/dist/cjs/stories/imageTextFeature.stories.d.ts +0 -28
  591. package/dist/cjs/stories/imageTextFeature.stories.js +0 -50
  592. package/dist/cjs/stories/imageTextFeature.stories.js.map +0 -7
  593. package/dist/cjs/stories/imageWithText.stories.d.ts +0 -51
  594. package/dist/cjs/stories/imageWithText.stories.js +0 -84
  595. package/dist/cjs/stories/imageWithText.stories.js.map +0 -7
  596. package/dist/cjs/stories/input-number.stories.d.ts +0 -39
  597. package/dist/cjs/stories/input-number.stories.js +0 -2
  598. package/dist/cjs/stories/input-number.stories.js.map +0 -7
  599. package/dist/cjs/stories/input.stories.d.ts +0 -35
  600. package/dist/cjs/stories/input.stories.js +0 -2
  601. package/dist/cjs/stories/input.stories.js.map +0 -7
  602. package/dist/cjs/stories/ksp.stories.d.ts +0 -63
  603. package/dist/cjs/stories/ksp.stories.js +0 -128
  604. package/dist/cjs/stories/ksp.stories.js.map +0 -7
  605. package/dist/cjs/stories/link.stories.d.ts +0 -69
  606. package/dist/cjs/stories/link.stories.js +0 -2
  607. package/dist/cjs/stories/link.stories.js.map +0 -7
  608. package/dist/cjs/stories/marquee.stories.d.ts +0 -30
  609. package/dist/cjs/stories/marquee.stories.js +0 -2
  610. package/dist/cjs/stories/marquee.stories.js.map +0 -7
  611. package/dist/cjs/stories/mediaplayerBase.stories.d.ts +0 -6
  612. package/dist/cjs/stories/mediaplayerBase.stories.js +0 -2
  613. package/dist/cjs/stories/mediaplayerBase.stories.js.map +0 -7
  614. package/dist/cjs/stories/mediaplayerMulti.stories.d.ts +0 -16
  615. package/dist/cjs/stories/mediaplayerMulti.stories.js +0 -2
  616. package/dist/cjs/stories/mediaplayerMulti.stories.js.map +0 -7
  617. package/dist/cjs/stories/picture.stories.d.ts +0 -23
  618. package/dist/cjs/stories/picture.stories.js +0 -9
  619. package/dist/cjs/stories/picture.stories.js.map +0 -7
  620. package/dist/cjs/stories/popover.stories.d.ts +0 -17
  621. package/dist/cjs/stories/popover.stories.js +0 -2
  622. package/dist/cjs/stories/popover.stories.js.map +0 -7
  623. package/dist/cjs/stories/productCompare.stories.d.ts +0 -54
  624. package/dist/cjs/stories/productCompare.stories.js +0 -54
  625. package/dist/cjs/stories/productCompare.stories.js.map +0 -7
  626. package/dist/cjs/stories/productHero.stories.d.ts +0 -29
  627. package/dist/cjs/stories/productHero.stories.js +0 -50
  628. package/dist/cjs/stories/productHero.stories.js.map +0 -7
  629. package/dist/cjs/stories/radio.stories.d.ts +0 -39
  630. package/dist/cjs/stories/radio.stories.js +0 -2
  631. package/dist/cjs/stories/radio.stories.js.map +0 -7
  632. package/dist/cjs/stories/shelfDisplay.stories.d.ts +0 -16
  633. package/dist/cjs/stories/shelfDisplay.stories.js +0 -2
  634. package/dist/cjs/stories/shelfDisplay.stories.js.map +0 -7
  635. package/dist/cjs/stories/skeleton.stories.d.ts +0 -20
  636. package/dist/cjs/stories/skeleton.stories.js +0 -2
  637. package/dist/cjs/stories/skeleton.stories.js.map +0 -7
  638. package/dist/cjs/stories/slogan.stories.d.ts +0 -20
  639. package/dist/cjs/stories/slogan.stories.js +0 -6
  640. package/dist/cjs/stories/slogan.stories.js.map +0 -7
  641. package/dist/cjs/stories/specs.stories.d.ts +0 -13
  642. package/dist/cjs/stories/specs.stories.js +0 -57
  643. package/dist/cjs/stories/specs.stories.js.map +0 -7
  644. package/dist/cjs/stories/specsComparison.stories.d.ts +0 -28
  645. package/dist/cjs/stories/specsComparison.stories.js +0 -105
  646. package/dist/cjs/stories/specsComparison.stories.js.map +0 -7
  647. package/dist/cjs/stories/tabWithImage.stories.d.ts +0 -28
  648. package/dist/cjs/stories/tabWithImage.stories.js +0 -53
  649. package/dist/cjs/stories/tabWithImage.stories.js.map +0 -7
  650. package/dist/cjs/stories/tabs.stories.d.ts +0 -373
  651. package/dist/cjs/stories/tabs.stories.js +0 -2
  652. package/dist/cjs/stories/tabs.stories.js.map +0 -7
  653. package/dist/cjs/stories/tabsWithMedia.stories.d.ts +0 -28
  654. package/dist/cjs/stories/tabsWithMedia.stories.js +0 -68
  655. package/dist/cjs/stories/tabsWithMedia.stories.js.map +0 -7
  656. package/dist/cjs/stories/text.stories.d.ts +0 -86
  657. package/dist/cjs/stories/text.stories.js +0 -21
  658. package/dist/cjs/stories/text.stories.js.map +0 -7
  659. package/dist/cjs/stories/videoFeature.stories.d.ts +0 -29
  660. package/dist/cjs/stories/videoFeature.stories.js +0 -56
  661. package/dist/cjs/stories/videoFeature.stories.js.map +0 -7
  662. package/dist/cjs/stories/whychoose.stories.d.ts +0 -21
  663. package/dist/cjs/stories/whychoose.stories.js +0 -2
  664. package/dist/cjs/stories/whychoose.stories.js.map +0 -7
  665. package/dist/esm/stories/HeroBanner.stories.d.ts +0 -28
  666. package/dist/esm/stories/HeroBanner.stories.js +0 -11
  667. package/dist/esm/stories/HeroBanner.stories.js.map +0 -7
  668. package/dist/esm/stories/InlineVideo.stories.d.ts +0 -37
  669. package/dist/esm/stories/InlineVideo.stories.js +0 -164
  670. package/dist/esm/stories/InlineVideo.stories.js.map +0 -7
  671. package/dist/esm/stories/MarqueeReview.stories.d.ts +0 -72
  672. package/dist/esm/stories/MarqueeReview.stories.js +0 -19
  673. package/dist/esm/stories/MarqueeReview.stories.js.map +0 -7
  674. package/dist/esm/stories/MediaSceneSwitcher.stories.d.ts +0 -47
  675. package/dist/esm/stories/MediaSceneSwitcher.stories.js +0 -2
  676. package/dist/esm/stories/MediaSceneSwitcher.stories.js.map +0 -7
  677. package/dist/esm/stories/MemberEquity.stories.d.ts +0 -9
  678. package/dist/esm/stories/MemberEquity.stories.js +0 -31
  679. package/dist/esm/stories/MemberEquity.stories.js.map +0 -7
  680. package/dist/esm/stories/MultiLayoutGraphicBlock.stories.d.ts +0 -9
  681. package/dist/esm/stories/MultiLayoutGraphicBlock.stories.js +0 -2
  682. package/dist/esm/stories/MultiLayoutGraphicBlock.stories.js.map +0 -7
  683. package/dist/esm/stories/ProductNav.stories.d.ts +0 -55
  684. package/dist/esm/stories/ProductNav.stories.js +0 -2
  685. package/dist/esm/stories/ProductNav.stories.js.map +0 -7
  686. package/dist/esm/stories/ThreeDCarousel.stories.d.ts +0 -27
  687. package/dist/esm/stories/ThreeDCarousel.stories.js +0 -118
  688. package/dist/esm/stories/ThreeDCarousel.stories.js.map +0 -7
  689. package/dist/esm/stories/accordionCards.stories.d.ts +0 -38
  690. package/dist/esm/stories/accordionCards.stories.js +0 -2
  691. package/dist/esm/stories/accordionCards.stories.js.map +0 -7
  692. package/dist/esm/stories/alert.stories.d.ts +0 -27
  693. package/dist/esm/stories/alert.stories.js +0 -2
  694. package/dist/esm/stories/alert.stories.js.map +0 -7
  695. package/dist/esm/stories/avatar.stories.d.ts +0 -39
  696. package/dist/esm/stories/avatar.stories.js +0 -2
  697. package/dist/esm/stories/avatar.stories.js.map +0 -7
  698. package/dist/esm/stories/badge.stories.d.ts +0 -96
  699. package/dist/esm/stories/badge.stories.js +0 -2
  700. package/dist/esm/stories/badge.stories.js.map +0 -7
  701. package/dist/esm/stories/bizTabs.stories.d.ts +0 -7
  702. package/dist/esm/stories/bizTabs.stories.js +0 -2
  703. package/dist/esm/stories/bizTabs.stories.js.map +0 -7
  704. package/dist/esm/stories/board.stories.d.ts +0 -6
  705. package/dist/esm/stories/board.stories.js +0 -2
  706. package/dist/esm/stories/board.stories.js.map +0 -7
  707. package/dist/esm/stories/brandEquity.stories.d.ts +0 -16
  708. package/dist/esm/stories/brandEquity.stories.js +0 -2
  709. package/dist/esm/stories/brandEquity.stories.js.map +0 -7
  710. package/dist/esm/stories/brandStrip.stories.d.ts +0 -12
  711. package/dist/esm/stories/brandStrip.stories.js +0 -2
  712. package/dist/esm/stories/brandStrip.stories.js.map +0 -7
  713. package/dist/esm/stories/button.stories.d.ts +0 -56
  714. package/dist/esm/stories/button.stories.js +0 -2
  715. package/dist/esm/stories/button.stories.js.map +0 -7
  716. package/dist/esm/stories/card.stories.d.ts +0 -27
  717. package/dist/esm/stories/card.stories.js +0 -2
  718. package/dist/esm/stories/card.stories.js.map +0 -7
  719. package/dist/esm/stories/carousel.stories.d.ts +0 -8
  720. package/dist/esm/stories/carousel.stories.js +0 -2
  721. package/dist/esm/stories/carousel.stories.js.map +0 -7
  722. package/dist/esm/stories/category.stories.d.ts +0 -17
  723. package/dist/esm/stories/category.stories.js +0 -2
  724. package/dist/esm/stories/category.stories.js.map +0 -7
  725. package/dist/esm/stories/checkbox.stories.d.ts +0 -46
  726. package/dist/esm/stories/checkbox.stories.js +0 -2
  727. package/dist/esm/stories/checkbox.stories.js.map +0 -7
  728. package/dist/esm/stories/container.stories.d.ts +0 -28
  729. package/dist/esm/stories/container.stories.js +0 -15
  730. package/dist/esm/stories/container.stories.js.map +0 -7
  731. package/dist/esm/stories/cpnBanner.stories.d.ts +0 -14
  732. package/dist/esm/stories/cpnBanner.stories.js +0 -2
  733. package/dist/esm/stories/cpnBanner.stories.js.map +0 -7
  734. package/dist/esm/stories/cpnCountdown.stories.d.ts +0 -12
  735. package/dist/esm/stories/cpnCountdown.stories.js +0 -2
  736. package/dist/esm/stories/cpnCountdown.stories.js.map +0 -7
  737. package/dist/esm/stories/cpnNavigation.stories.d.ts +0 -14
  738. package/dist/esm/stories/cpnNavigation.stories.js +0 -2
  739. package/dist/esm/stories/cpnNavigation.stories.js.map +0 -7
  740. package/dist/esm/stories/cpnProductcard.stories.d.ts +0 -14
  741. package/dist/esm/stories/cpnProductcard.stories.js +0 -2
  742. package/dist/esm/stories/cpnProductcard.stories.js.map +0 -7
  743. package/dist/esm/stories/cpnTitle.stories.d.ts +0 -14
  744. package/dist/esm/stories/cpnTitle.stories.js +0 -2
  745. package/dist/esm/stories/cpnTitle.stories.js.map +0 -7
  746. package/dist/esm/stories/creativeModule.stories.d.ts +0 -19
  747. package/dist/esm/stories/creativeModule.stories.js +0 -2
  748. package/dist/esm/stories/creativeModule.stories.js.map +0 -7
  749. package/dist/esm/stories/dialog.stories.d.ts +0 -20
  750. package/dist/esm/stories/dialog.stories.js +0 -2
  751. package/dist/esm/stories/dialog.stories.js.map +0 -7
  752. package/dist/esm/stories/drawer.stories.d.ts +0 -20
  753. package/dist/esm/stories/drawer.stories.js +0 -2
  754. package/dist/esm/stories/drawer.stories.js.map +0 -7
  755. package/dist/esm/stories/drop-down.stories.d.ts +0 -16
  756. package/dist/esm/stories/drop-down.stories.js +0 -2
  757. package/dist/esm/stories/drop-down.stories.js.map +0 -7
  758. package/dist/esm/stories/evaluate.stories.d.ts +0 -16
  759. package/dist/esm/stories/evaluate.stories.js +0 -2
  760. package/dist/esm/stories/evaluate.stories.js.map +0 -7
  761. package/dist/esm/stories/faq.stories.d.ts +0 -21
  762. package/dist/esm/stories/faq.stories.js +0 -2
  763. package/dist/esm/stories/faq.stories.js.map +0 -7
  764. package/dist/esm/stories/featureCards.stories.d.ts +0 -30
  765. package/dist/esm/stories/featureCards.stories.js +0 -61
  766. package/dist/esm/stories/featureCards.stories.js.map +0 -7
  767. package/dist/esm/stories/featureShowcase.stories.d.ts +0 -29
  768. package/dist/esm/stories/featureShowcase.stories.js +0 -44
  769. package/dist/esm/stories/featureShowcase.stories.js.map +0 -7
  770. package/dist/esm/stories/graphic.stories.d.ts +0 -64
  771. package/dist/esm/stories/graphic.stories.js +0 -2
  772. package/dist/esm/stories/graphic.stories.js.map +0 -7
  773. package/dist/esm/stories/graphicAttractionBlock.stories.d.ts +0 -6
  774. package/dist/esm/stories/graphicAttractionBlock.stories.js +0 -2
  775. package/dist/esm/stories/graphicAttractionBlock.stories.js.map +0 -7
  776. package/dist/esm/stories/grid.stories.d.ts +0 -22
  777. package/dist/esm/stories/grid.stories.js +0 -13
  778. package/dist/esm/stories/grid.stories.js.map +0 -7
  779. package/dist/esm/stories/heading.stories.d.ts +0 -84
  780. package/dist/esm/stories/heading.stories.js +0 -15
  781. package/dist/esm/stories/heading.stories.js.map +0 -7
  782. package/dist/esm/stories/imageTextFeature.stories.d.ts +0 -28
  783. package/dist/esm/stories/imageTextFeature.stories.js +0 -50
  784. package/dist/esm/stories/imageTextFeature.stories.js.map +0 -7
  785. package/dist/esm/stories/imageWithText.stories.d.ts +0 -51
  786. package/dist/esm/stories/imageWithText.stories.js +0 -84
  787. package/dist/esm/stories/imageWithText.stories.js.map +0 -7
  788. package/dist/esm/stories/input-number.stories.d.ts +0 -39
  789. package/dist/esm/stories/input-number.stories.js +0 -2
  790. package/dist/esm/stories/input-number.stories.js.map +0 -7
  791. package/dist/esm/stories/input.stories.d.ts +0 -35
  792. package/dist/esm/stories/input.stories.js +0 -2
  793. package/dist/esm/stories/input.stories.js.map +0 -7
  794. package/dist/esm/stories/ksp.stories.d.ts +0 -63
  795. package/dist/esm/stories/ksp.stories.js +0 -128
  796. package/dist/esm/stories/ksp.stories.js.map +0 -7
  797. package/dist/esm/stories/link.stories.d.ts +0 -69
  798. package/dist/esm/stories/link.stories.js +0 -2
  799. package/dist/esm/stories/link.stories.js.map +0 -7
  800. package/dist/esm/stories/marquee.stories.d.ts +0 -30
  801. package/dist/esm/stories/marquee.stories.js +0 -2
  802. package/dist/esm/stories/marquee.stories.js.map +0 -7
  803. package/dist/esm/stories/mediaplayerBase.stories.d.ts +0 -6
  804. package/dist/esm/stories/mediaplayerBase.stories.js +0 -2
  805. package/dist/esm/stories/mediaplayerBase.stories.js.map +0 -7
  806. package/dist/esm/stories/mediaplayerMulti.stories.d.ts +0 -16
  807. package/dist/esm/stories/mediaplayerMulti.stories.js +0 -2
  808. package/dist/esm/stories/mediaplayerMulti.stories.js.map +0 -7
  809. package/dist/esm/stories/picture.stories.d.ts +0 -23
  810. package/dist/esm/stories/picture.stories.js +0 -9
  811. package/dist/esm/stories/picture.stories.js.map +0 -7
  812. package/dist/esm/stories/popover.stories.d.ts +0 -17
  813. package/dist/esm/stories/popover.stories.js +0 -2
  814. package/dist/esm/stories/popover.stories.js.map +0 -7
  815. package/dist/esm/stories/productCompare.stories.d.ts +0 -54
  816. package/dist/esm/stories/productCompare.stories.js +0 -54
  817. package/dist/esm/stories/productCompare.stories.js.map +0 -7
  818. package/dist/esm/stories/productHero.stories.d.ts +0 -29
  819. package/dist/esm/stories/productHero.stories.js +0 -50
  820. package/dist/esm/stories/productHero.stories.js.map +0 -7
  821. package/dist/esm/stories/radio.stories.d.ts +0 -39
  822. package/dist/esm/stories/radio.stories.js +0 -2
  823. package/dist/esm/stories/radio.stories.js.map +0 -7
  824. package/dist/esm/stories/shelfDisplay.stories.d.ts +0 -16
  825. package/dist/esm/stories/shelfDisplay.stories.js +0 -2
  826. package/dist/esm/stories/shelfDisplay.stories.js.map +0 -7
  827. package/dist/esm/stories/skeleton.stories.d.ts +0 -20
  828. package/dist/esm/stories/skeleton.stories.js +0 -2
  829. package/dist/esm/stories/skeleton.stories.js.map +0 -7
  830. package/dist/esm/stories/slogan.stories.d.ts +0 -20
  831. package/dist/esm/stories/slogan.stories.js +0 -6
  832. package/dist/esm/stories/slogan.stories.js.map +0 -7
  833. package/dist/esm/stories/specs.stories.d.ts +0 -13
  834. package/dist/esm/stories/specs.stories.js +0 -57
  835. package/dist/esm/stories/specs.stories.js.map +0 -7
  836. package/dist/esm/stories/specsComparison.stories.d.ts +0 -28
  837. package/dist/esm/stories/specsComparison.stories.js +0 -105
  838. package/dist/esm/stories/specsComparison.stories.js.map +0 -7
  839. package/dist/esm/stories/tabWithImage.stories.d.ts +0 -28
  840. package/dist/esm/stories/tabWithImage.stories.js +0 -53
  841. package/dist/esm/stories/tabWithImage.stories.js.map +0 -7
  842. package/dist/esm/stories/tabs.stories.d.ts +0 -373
  843. package/dist/esm/stories/tabs.stories.js +0 -2
  844. package/dist/esm/stories/tabs.stories.js.map +0 -7
  845. package/dist/esm/stories/tabsWithMedia.stories.d.ts +0 -28
  846. package/dist/esm/stories/tabsWithMedia.stories.js +0 -68
  847. package/dist/esm/stories/tabsWithMedia.stories.js.map +0 -7
  848. package/dist/esm/stories/text.stories.d.ts +0 -86
  849. package/dist/esm/stories/text.stories.js +0 -21
  850. package/dist/esm/stories/text.stories.js.map +0 -7
  851. package/dist/esm/stories/videoFeature.stories.d.ts +0 -29
  852. package/dist/esm/stories/videoFeature.stories.js +0 -56
  853. package/dist/esm/stories/videoFeature.stories.js.map +0 -7
  854. package/dist/esm/stories/whychoose.stories.d.ts +0 -21
  855. package/dist/esm/stories/whychoose.stories.js +0 -2
  856. package/dist/esm/stories/whychoose.stories.js.map +0 -7
@@ -48,8 +48,8 @@ export type AccordionCardsType = {
48
48
  primaryButton?: (_v: any, _index: number) => void;
49
49
  };
50
50
  };
51
- declare const _default: React.ForwardRefExoticComponent<Omit<Omit<AccordionCardsType & React.RefAttributes<HTMLDivElement>, keyof import("../../shared/Styles.js").StylesProps> & Partial<import("../../shared/Styles.js").StylesProps & import("../../shared/Styles.js").ContainerProps> & {
52
- className?: string;
53
- data?: Record<string, any>;
51
+ declare const _default: React.ForwardRefExoticComponent<Omit<AccordionCardsType & React.RefAttributes<HTMLDivElement> & {
52
+ style?: string | React.CSSProperties;
53
+ container?: import("../../shared/Styles.js").ContainerProps["container"];
54
54
  }, "ref"> & React.RefAttributes<any>>;
55
55
  export default _default;
@@ -0,0 +1,222 @@
1
+ import * as React from 'react';
2
+ import 'swiper/css';
3
+ import 'swiper/css/navigation';
4
+ import type { ButtonFunctionType, CopyConfig } from './types.js';
5
+ import type { BadgeProps } from '../../components/badge.js';
6
+ /**
7
+ * 语义化类名
8
+ */
9
+ type ActiveShelfSemanticName = 'root' | 'title' | 'description' | 'productCard' | 'productTitle' | 'productDescription' | 'productPriceLabel' | 'productPrice' | 'buttonGroup' | 'secondaryButton' | 'primaryButton' | 'stockBar';
10
+ /**
11
+ * 组件布局模式
12
+ */
13
+ export type ActiveShelfLayoutMode = 'flex' | 'horizontal';
14
+ /**
15
+ * Code Channel 配置 - 折扣前缀
16
+ */
17
+ export type CodeChannelConfig = string;
18
+ /**
19
+ * 库存展示模式
20
+ */
21
+ export type StockDisplayMode = 'always' | 'never' | 'below-quantity' | 'below-percentage';
22
+ /**
23
+ * ActiveShelf Context 配置接口
24
+ */
25
+ export interface ActiveShelfContextConfig {
26
+ /** 布局模式:网格布局或横向滑动 */
27
+ layoutMode?: ActiveShelfLayoutMode;
28
+ /** Code Channel 配置 - 折扣前缀 */
29
+ codeChannel?: CodeChannelConfig;
30
+ /** 是否展示会员价格 */
31
+ showMemberPrice?: boolean;
32
+ /** 是否展示折扣标签 */
33
+ showDiscount?: boolean;
34
+ /** 是否展示标签系统 */
35
+ showTags?: boolean;
36
+ /** 库存展示模式 */
37
+ stockDisplayMode?: StockDisplayMode;
38
+ /** 库存阈值(当模式为 below-quantity 或 below-percentage 时使用) */
39
+ stockThreshold?: number;
40
+ /** 是否展示原价(删除线价格) */
41
+ showOriginalPrice?: boolean;
42
+ }
43
+ /**
44
+ * ActiveShelf Context 值接口
45
+ */
46
+ interface ActiveShelfContextValue extends ActiveShelfContextConfig {
47
+ /** 点击了解更多回调 */
48
+ onLearnMore?: (product: ProductCardData) => void;
49
+ /** 点击立即购买回调 */
50
+ onShopNow?: (product: ProductCardData) => void;
51
+ /** 点击加入购物车回调 */
52
+ onAddToCart?: (product: ProductCardData) => void;
53
+ /** 语义化类名 */
54
+ classNames?: Partial<Record<ActiveShelfSemanticName, string>>;
55
+ /** 了解更多按钮文本 */
56
+ secondaryButtonText?: string;
57
+ secondaryButtonFun?: ButtonFunctionType;
58
+ /** 立即购买按钮文本 */
59
+ primaryButtonText?: string;
60
+ primaryButtonFun?: ButtonFunctionType;
61
+ /** 文案配置 */
62
+ copy: CopyConfig;
63
+ }
64
+ /**
65
+ * 使用 ActiveShelf Context 的 Hook
66
+ */
67
+ export declare const useActiveShelfContext: () => ActiveShelfContextValue;
68
+ /**
69
+ * 基础产品数据接口(来自外部数据源)
70
+ */
71
+ export interface BaseProductData {
72
+ sku: string;
73
+ name: string;
74
+ image: string;
75
+ value: string;
76
+ handle: string;
77
+ shopify_id: string;
78
+ custom_name?: string;
79
+ custom_description?: string;
80
+ }
81
+ /**
82
+ * Shopify 变体数据接口
83
+ */
84
+ export interface VariantData {
85
+ /**
86
+ * 产品描述
87
+ */
88
+ description?: string;
89
+ /**
90
+ * 变体id
91
+ */
92
+ variantId: string;
93
+ /**
94
+ * 产品链接, 点击图片的时候跳转到该链接
95
+ */
96
+ listingLink: string;
97
+ /**
98
+ * 原价
99
+ */
100
+ originalPrice: string;
101
+ /**
102
+ * 现价
103
+ */
104
+ price: string;
105
+ /**
106
+ * 价格上面展示的标签文本
107
+ */
108
+ priceLabel?: string;
109
+ /**
110
+ * 总库存
111
+ */
112
+ totalInventory: number;
113
+ /**
114
+ * 可用库存数量
115
+ */
116
+ quantityAvailable: number;
117
+ /**
118
+ * 是否可售
119
+ */
120
+ availableForSale: boolean;
121
+ /**
122
+ * tags 列表(会员价,折扣,new, hot等标签信息)
123
+ */
124
+ tags: Array<{
125
+ label: string;
126
+ variant: BadgeProps['variant'];
127
+ promotionalType?: BadgeProps['promotionalType'];
128
+ }>;
129
+ /**
130
+ * 通用折扣数据,包括折扣title, 类型和值
131
+ */
132
+ coupon: any;
133
+ }
134
+ /**
135
+ * 完整的产品卡片数据接口
136
+ */
137
+ export interface ProductCardData extends BaseProductData, VariantData {
138
+ }
139
+ /**
140
+ * 产品分组Tab数据接口
141
+ */
142
+ export interface ProductTab {
143
+ /** Tab ID */
144
+ id: string;
145
+ /** Tab 标题 */
146
+ tab: string;
147
+ /** 该分组下的产品数据 */
148
+ data: ProductCardData[];
149
+ }
150
+ /**
151
+ * ActiveShelf 业务组件数据接口
152
+ */
153
+ export interface ActiveShelfData {
154
+ theme?: 'light' | 'dark';
155
+ /** 组件标题 */
156
+ title?: string;
157
+ /** 组件描述 */
158
+ description?: string;
159
+ /** 分组产品Tab列表 */
160
+ productsTab?: ProductTab[];
161
+ /** 是否显示 Tab(默认:true) */
162
+ isShowTab?: boolean;
163
+ /** 了解更多按钮文本 */
164
+ secondaryButtonText?: string;
165
+ secondaryButtonFun: ButtonFunctionType;
166
+ /** 立即购买按钮文本 */
167
+ primaryButtonText?: string;
168
+ primaryButtonFun: ButtonFunctionType;
169
+ /** 布局模式:网格布局或横向滑动 */
170
+ layoutMode?: ActiveShelfLayoutMode;
171
+ /** Code Channel 配置 - 折扣前缀 */
172
+ codeChannel?: CodeChannelConfig;
173
+ /** 是否展示会员价格 */
174
+ showMemberPrice?: boolean;
175
+ /** 是否展示折扣标签 */
176
+ showDiscount?: boolean;
177
+ /** 是否展示标签系统 */
178
+ showTags?: boolean;
179
+ /** 库存展示模式 */
180
+ stockDisplayMode?: StockDisplayMode;
181
+ /** 库存阈值(当模式为 below-quantity 或 below-percentage 时使用) */
182
+ stockThreshold?: number;
183
+ /**
184
+ * 库存文本模板,支持 {count} 占位符
185
+ */
186
+ stockDisplayText?: string;
187
+ /** 是否展示原价(删除线价格) */
188
+ showOriginalPrice?: boolean;
189
+ /** 文案配置 */
190
+ copy?: CopyConfig;
191
+ /**
192
+ * 产品列表(当不使用 Tab 分组时可直接传入产品列表)
193
+ */
194
+ productsCard: ProductCardData[];
195
+ }
196
+ export interface ActiveShelfProps extends React.HTMLAttributes<HTMLDivElement> {
197
+ /** 业务数据 */
198
+ data: ActiveShelfData;
199
+ /** 点击了解更多回调 */
200
+ onLearnMore?: (product: ProductCardData) => void;
201
+ /** 点击立即购买回调 */
202
+ onShopNow?: (product: ProductCardData) => void;
203
+ /** 点击加入购物车回调 */
204
+ onAddToCart?: (product: ProductCardData) => void;
205
+ /** 语义化类名 */
206
+ classNames?: Partial<Record<ActiveShelfSemanticName, string>>;
207
+ }
208
+ /**
209
+ * 产品卡片组件
210
+ */
211
+ declare const ProductCard: React.ForwardRefExoticComponent<{
212
+ product: ProductCardData;
213
+ className?: string;
214
+ } & React.RefAttributes<HTMLDivElement>>;
215
+ /**
216
+ * ActiveShelf - 活动货架
217
+ *
218
+ * @description 能够实时显示商品库存信息和会员价的货架,支持响应式布局和多种配置选项
219
+ */
220
+ declare const ActiveShelf: React.ForwardRefExoticComponent<ActiveShelfProps & React.RefAttributes<HTMLDivElement>>;
221
+ export default ActiveShelf;
222
+ export { ProductCard };
@@ -0,0 +1,2 @@
1
+ "use strict";"use client";var j=Object.create;var k=Object.defineProperty;var q=Object.getOwnPropertyDescriptor;var I=Object.getOwnPropertyNames;var R=Object.getPrototypeOf,G=Object.prototype.hasOwnProperty;var W=(e,a)=>{for(var i in a)k(e,i,{get:a[i],enumerable:!0})},L=(e,a,i,u)=>{if(a&&typeof a=="object"||typeof a=="function")for(let l of I(a))!G.call(e,l)&&l!==i&&k(e,l,{get:()=>a[l],enumerable:!(u=q(a,l))||u.enumerable});return e};var Z=(e,a,i)=>(i=e!=null?j(R(e)):{},L(a||!e||!e.__esModule?k(i,"default",{value:e,enumerable:!0}):i,e)),$=e=>L(k({},"__esModule",{value:!0}),e);var X={};W(X,{ProductCard:()=>f,default:()=>U,useActiveShelfContext:()=>M});module.exports=$(X);var t=require("react/jsx-runtime"),g=Z(require("react")),r=require("../../helpers/index.js"),o=require("../../components/index.js"),S=require("swiper/react"),F=require("swiper/modules"),te=require("swiper/css"),ae=require("swiper/css/navigation");const J=({disabled:e})=>(0,t.jsxs)("svg",{width:"56",height:"56",viewBox:"0 0 56 56",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:" lg-desktop:size-[56px] laptop:block hidden size-[40px]",children:[(0,t.jsx)("path",{d:"M0 28C0 43.464 12.536 56 28 56C43.464 56 56 43.464 56 28C56 12.536 43.464 0 28 0C12.536 0 0 12.536 0 28Z",fill:"black",fillOpacity:e?"0.2":"0.6"}),(0,t.jsx)("path",{d:"M31 22L25 28L31 34",stroke:"white",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})]}),K=({disabled:e})=>(0,t.jsxs)("svg",{width:"56",height:"56",viewBox:"0 0 56 56",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:"lg-desktop:size-[56px] laptop:block hidden size-[40px]",children:[(0,t.jsx)("path",{d:"M0 28C0 12.536 12.536 0 28 0C43.464 0 56 12.536 56 28C56 43.464 43.464 56 28 56C12.536 56 0 43.464 0 28Z",fill:"black",fillOpacity:e?"0.2":"0.6"}),(0,t.jsx)("path",{d:"M25 22L31 28L25 34",stroke:"white",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})]});function Q(e,a,i,u){if(e===void 0)return!0;switch(e){case"always":return!0;case"never":return!1;case"below-quantity":return a===void 0?!0:i<=a;case"below-percentage":return a===void 0?!0:i/u<=a;default:return!0}}const A=g.createContext(null),M=()=>{const e=g.useContext(A);if(!e)throw new Error("useActiveShelfContext must be used within an ActiveShelfProvider");return e},f=g.forwardRef(({product:e,className:a},i)=>{let{showTags:u=!0,stockDisplayMode:l,stockThreshold:d,onLearnMore:b,onShopNow:n,onAddToCart:p,classNames:s,secondaryButtonText:h,primaryButtonText:v,secondaryButtonFun:y,primaryButtonFun:x,showOriginalPrice:T,copy:w}=M();const N=g.useMemo(()=>{const c=(e?.quantityAvailable??0)/(e?.totalInventory??1)*100;return c===0&&e.availableForSale?Math.round(Math.random()*5+1):c},[e?.availableForSale,e?.quantityAvailable,e?.totalInventory]),C=c=>{if(c)switch(c){case"buyNow":n?.(e);break;case"addCart":p?.(e);break;case"learnMore":b?.(e);break;default:break}};return(0,t.jsx)(o.Card,{ref:i,className:(0,r.cn)("bg-container-primary desktop:min-h-[464px] lg-desktop:min-h-[560px] flex min-h-[428px] flex-col overflow-hidden",a,s?.productCard),children:(0,t.jsxs)(o.CardContent,{className:"desktop:p-6 relative flex flex-1 flex-col justify-between p-4",children:[(0,t.jsx)("div",{className:"lg-desktop:h-[28px] h-[24px]",children:e.tags?.map((c,B)=>(0,t.jsx)(o.Badge,{size:"sm",variant:c.variant||"outline",className:(0,r.cn)("mr-1"),promotionalType:c.promotionalType,children:c.label},B))}),(0,t.jsx)("div",{className:"product-image-wrapper lg-desktop:size-[196px] mx-auto size-[138px] overflow-hidden",children:(0,t.jsx)("a",{href:e?.listingLink,target:"_blank",rel:"noreferrer",children:(0,t.jsx)(o.Picture,{source:e.image,alt:e.name,className:"aspect-square w-full object-cover",imgClassName:"w-full h-full"})})}),(0,t.jsxs)("div",{className:"flex h-full flex-1 grow flex-col justify-between",children:[(0,t.jsxs)("div",{className:"mb-4",children:[(0,t.jsx)(o.Heading,{as:"h3",size:2,className:(0,r.cn)("text-info-primary mb-2 line-clamp-2 min-h-[2.4em]",s?.productTitle),html:e.custom_name||e.name}),e?.description&&(0,t.jsx)(o.Text,{size:2,className:(0,r.cn)("text-info-secondary desktop:line-clamp-2 desktop:min-h-[2.4em] line-clamp-2 min-h-[2.4em]",s?.productDescription),html:e.custom_description||e.description})]}),e?.priceLabel&&e?.availableForSale&&(0,t.jsx)(o.Text,{size:4,className:(0,r.cn)("text-marketing-1 mt-2",s?.productPriceLabel),children:e.priceLabel}),(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:(0,r.cn)("mb-2",s?.productPrice),children:(0,t.jsx)("div",{className:"flex items-baseline gap-2",children:e.availableForSale?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(o.Heading,{size:2,className:"text-info-primary",as:"h6",children:e.price}),T&&e.originalPrice&&(0,t.jsx)(o.Heading,{size:2,className:"text-info-tertiary line-through",as:"h6",children:e.originalPrice})]}):(0,t.jsx)(o.Heading,{size:2,className:"text-info-tertiary",children:w?.outOfStockLabel??"Sold Out"})})}),(0,t.jsxs)("div",{className:(0,r.cn)("tablet:gap-3 mb-4 flex gap-2",s?.buttonGroup),children:[h&&(0,t.jsx)(o.Button,{variant:"secondary",size:"base",className:(0,r.cn)("",s?.secondaryButton),onClick:()=>C(y),disabled:!e.availableForSale&&y!=="learnMore",children:h}),v&&(0,t.jsx)(o.Button,{variant:"primary",size:"base",className:(0,r.cn)("",s?.primaryButton),onClick:()=>C(x),disabled:!e.availableForSale&&x!=="learnMore",children:v})]}),Q(l,d,e?.quantityAvailable??0,e?.totalInventory??0)&&(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(o.Progress,{value:N,max:100,min:0,size:"base",variant:"default","aria-label":"stock progress",classNames:{progressBar:(0,r.cn)("bg-brand-0 transition-all duration-300 ease-in-out",s?.stockBar)}}),(0,t.jsx)(o.Text,{size:3,className:"text-info-tertiary text-[14px]",children:w?.stockDisplayText?.replace("{count}",`${e.quantityAvailable}`)})]})]})]})]})})});f.displayName="ProductCard";const P=g.forwardRef(({products:e,layoutMode:a,className:i},u)=>{const{copy:l}=M(),[d,b]=g.useState({isBeginning:!0,isEnd:!1});return e?.length===0?null:(0,t.jsx)("div",{ref:u,className:i,children:a==="flex"?(0,t.jsx)("div",{className:"lg-desktop:gap-6 tablet:grid-cols-2 laptop:grid-cols-3 desktop:grid-cols-4 grid grid-cols-1 justify-start gap-4",children:e.map((n,p)=>(0,t.jsx)(f,{product:n,className:"shrink-0"},n.shopify_id+"-"+n.sku||p))}):(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)(S.Swiper,{modules:[F.Navigation],spaceBetween:16,slidesPerView:"auto",autoHeight:!0,navigation:{nextEl:".swiper-button-next-custom",prevEl:".swiper-button-prev-custom"},onSwiper:n=>{b({isBeginning:n.isBeginning,isEnd:n.isEnd})},onSlideChange:n=>{b({isBeginning:n.isBeginning,isEnd:n.isEnd})},className:"!overflow-visible",children:e.map((n,p)=>(0,t.jsx)(S.SwiperSlide,{className:"tablet:!w-[288px] tablet:h-[428px] desktop:!w-[316px] desktop:!h-[464px] lg-desktop:!w-[404px] lg-desktop:!h-[561px] h-[428px] !w-[296px] overflow-hidden",children:(0,t.jsx)(f,{product:n,className:"w-full max-w-full"})},n.shopify_id+"-"+n.sku||p))}),(0,t.jsx)("button",{className:"swiper-button-prev-custom tablet:block absolute left-4 top-1/2 z-10 hidden -translate-y-1/2","aria-label":l?.previousSlideLabel,disabled:d.isBeginning,children:(0,t.jsx)(J,{disabled:d.isBeginning})}),(0,t.jsx)("button",{className:"swiper-button-next-custom tablet:block absolute right-4 top-1/2 z-10 hidden -translate-y-1/2","aria-label":l?.nextSlideLabel,disabled:d.isEnd,children:(0,t.jsx)(K,{disabled:d.isEnd})})]})})});P.displayName="ProductsList";const z=g.forwardRef(({className:e,data:a,onLearnMore:i,onShopNow:u,onAddToCart:l,classNames:d,...b},n)=>{const{theme:p="light",layoutMode:s="flex",codeChannel:h,showMemberPrice:v=!0,showDiscount:y=!0,showTags:x=!0,stockDisplayMode:T,stockThreshold:w,showOriginalPrice:N=!0,secondaryButtonText:C,primaryButtonText:c,secondaryButtonFun:B,primaryButtonFun:E,isShowTab:H=!0,copy:O}=a,V={layoutMode:s,codeChannel:h,showMemberPrice:v,showDiscount:y,showTags:x,stockDisplayMode:T,stockThreshold:w,showOriginalPrice:N,onLearnMore:i,onShopNow:u,onAddToCart:l,classNames:d,secondaryButtonText:C,secondaryButtonFun:B,primaryButtonText:c,primaryButtonFun:E,copy:O||{}},_=a.productsTab&&a.productsTab.length>0,D=H&&_;return(0,t.jsx)(A.Provider,{value:V,children:(0,t.jsxs)("div",{ref:n,className:(0,r.cn)("w-full",{"aiui-dark":p==="dark"},e,d?.root),...b,children:[a.title&&(0,t.jsx)(o.Heading,{as:"h2",html:a.title,size:4,className:(0,r.cn)("text-info-primary mb-4",d?.title)}),a.description&&(0,t.jsx)(o.Text,{size:3,as:"p",html:a.description,className:(0,r.cn)("text-info-primary mb-6",d?.description)}),(0,t.jsxs)(o.Tabs,{defaultValue:a.productsTab?.[0]?.id,className:"w-full",children:[D&&(0,t.jsx)(o.TabsList,{className:"mb-6",children:a.productsTab?.map(m=>(0,t.jsx)(o.TabsTrigger,{value:m.id,children:m.tab},"tab-"+m.id))}),D?a.productsTab?.map(m=>(0,t.jsx)(o.TabsContent,{value:m.id,children:(0,t.jsx)(P,{products:m.data,layoutMode:s})},"tab-content-"+m.id)):(0,t.jsx)(P,{products:a.productsCard,layoutMode:s})]})]})})});z.displayName="ActiveShelf";var U=z;
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/biz-components/ActiveShelf/index.tsx"],
4
+ "sourcesContent": ["'use client'\n\nimport * as React from 'react'\nimport { cn } from '../../helpers/index.js'\nimport {\n Button,\n Badge,\n Card,\n CardContent,\n Picture,\n Text,\n Heading,\n Tabs,\n TabsList,\n TabsTrigger,\n TabsContent,\n Progress,\n} from '../../components/index.js'\n\nimport { Swiper, SwiperSlide } from 'swiper/react'\nimport { Navigation } from 'swiper/modules'\n\n// Import Swiper styles\nimport 'swiper/css'\nimport 'swiper/css/navigation'\nimport type { ButtonFunctionType, CopyConfig } from './types.js'\n\nimport type { BadgeProps } from '../../components/badge.js'\n\n/**\n * \u8BED\u4E49\u5316\u7C7B\u540D\n */\ntype ActiveShelfSemanticName =\n | 'root'\n | 'title'\n | 'description'\n | 'productCard'\n | 'productTitle'\n | 'productDescription'\n | 'productPriceLabel'\n | 'productPrice'\n | 'buttonGroup'\n | 'secondaryButton'\n | 'primaryButton'\n | 'stockBar'\n\nconst PrevIcon = ({ disabled }: { disabled: boolean }) => (\n <svg\n width=\"56\"\n height=\"56\"\n viewBox=\"0 0 56 56\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\" lg-desktop:size-[56px] laptop:block hidden size-[40px]\"\n >\n <path\n d=\"M0 28C0 43.464 12.536 56 28 56C43.464 56 56 43.464 56 28C56 12.536 43.464 0 28 0C12.536 0 0 12.536 0 28Z\"\n fill=\"black\"\n fillOpacity={disabled ? '0.2' : '0.6'}\n />\n <path d=\"M31 22L25 28L31 34\" stroke=\"white\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n)\n\nconst NextIcon = ({ disabled }: { disabled: boolean }) => (\n <svg\n width=\"56\"\n height=\"56\"\n viewBox=\"0 0 56 56\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"lg-desktop:size-[56px] laptop:block hidden size-[40px]\"\n >\n <path\n d=\"M0 28C0 12.536 12.536 0 28 0C43.464 0 56 12.536 56 28C56 43.464 43.464 56 28 56C12.536 56 0 43.464 0 28Z\"\n fill=\"black\"\n fillOpacity={disabled ? '0.2' : '0.6'}\n />\n <path d=\"M25 22L31 28L25 34\" stroke=\"white\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n)\n\n/**\n * \u7EC4\u4EF6\u5E03\u5C40\u6A21\u5F0F\n */\nexport type ActiveShelfLayoutMode = 'flex' | 'horizontal'\n\n/**\n * Code Channel \u914D\u7F6E - \u6298\u6263\u524D\u7F00\n */\nexport type CodeChannelConfig = string\n\n/**\n * \u5E93\u5B58\u5C55\u793A\u6A21\u5F0F\n */\nexport type StockDisplayMode = 'always' | 'never' | 'below-quantity' | 'below-percentage'\n\n/**\n * \u5224\u65AD\u662F\u5426\u5E94\u8BE5\u663E\u793A\u5E93\u5B58\u4FE1\u606F\n * @param stockDisplayMode \u5E93\u5B58\u5C55\u793A\u6A21\u5F0F\n * @param stockThreshold \u5E93\u5B58\u9608\u503C\uFF08\u5F53\u6A21\u5F0F\u4E3A below-quantity \u6216 below-percentage \u65F6\u4F7F\u7528\uFF09\n * @param variant \u53D8\u4F53\u6570\u636E\n * @returns \u662F\u5426\u663E\u793A\u5E93\u5B58\u4FE1\u606F\n */\nfunction shouldShowStock(\n stockDisplayMode: StockDisplayMode | undefined,\n stockThreshold: number | undefined,\n quantityAvailable: number,\n totalInventory: number\n): boolean {\n // \u672A\u914D\u7F6E\u65F6\u9ED8\u8BA4\u663E\u793A\n if (stockDisplayMode === undefined) {\n return true\n }\n\n // \u6839\u636E\u5C55\u793A\u6A21\u5F0F\u5224\u65AD\n switch (stockDisplayMode) {\n case 'always':\n // \u603B\u662F\u663E\u793A\n return true\n\n case 'never':\n // \u6C38\u4E0D\u663E\u793A\n return false\n\n case 'below-quantity':\n // \u5F53\u5E93\u5B58\u6570\u91CF\u4F4E\u4E8E\u9608\u503C\u65F6\u663E\u793A\n if (stockThreshold === undefined) {\n return true // \u6CA1\u6709\u8BBE\u7F6E\u9608\u503C\u65F6\u9ED8\u8BA4\u663E\u793A\n }\n\n return quantityAvailable <= stockThreshold\n\n case 'below-percentage':\n // \u5F53\u5E93\u5B58\u767E\u5206\u6BD4\u4F4E\u4E8E\u9608\u503C\u65F6\u663E\u793A\n if (stockThreshold === undefined) {\n return true // \u6CA1\u6709\u8BBE\u7F6E\u9608\u503C\u65F6\u9ED8\u8BA4\u663E\u793A\n }\n return quantityAvailable / totalInventory <= stockThreshold\n\n default:\n // \u672A\u77E5\u6A21\u5F0F\u65F6\u9ED8\u8BA4\u663E\u793A\n return true\n }\n}\n\n/**\n * ActiveShelf Context \u914D\u7F6E\u63A5\u53E3\n */\nexport interface ActiveShelfContextConfig {\n /** \u5E03\u5C40\u6A21\u5F0F\uFF1A\u7F51\u683C\u5E03\u5C40\u6216\u6A2A\u5411\u6ED1\u52A8 */\n layoutMode?: ActiveShelfLayoutMode\n /** Code Channel \u914D\u7F6E - \u6298\u6263\u524D\u7F00 */\n codeChannel?: CodeChannelConfig\n /** \u662F\u5426\u5C55\u793A\u4F1A\u5458\u4EF7\u683C */\n showMemberPrice?: boolean\n /** \u662F\u5426\u5C55\u793A\u6298\u6263\u6807\u7B7E */\n showDiscount?: boolean\n /** \u662F\u5426\u5C55\u793A\u6807\u7B7E\u7CFB\u7EDF */\n showTags?: boolean\n /** \u5E93\u5B58\u5C55\u793A\u6A21\u5F0F */\n stockDisplayMode?: StockDisplayMode\n /** \u5E93\u5B58\u9608\u503C\uFF08\u5F53\u6A21\u5F0F\u4E3A below-quantity \u6216 below-percentage \u65F6\u4F7F\u7528\uFF09 */\n stockThreshold?: number\n /** \u662F\u5426\u5C55\u793A\u539F\u4EF7\uFF08\u5220\u9664\u7EBF\u4EF7\u683C\uFF09 */\n showOriginalPrice?: boolean\n /** \u7528\u6237\u72B6\u6001 */\n}\n\n/**\n * ActiveShelf Context \u503C\u63A5\u53E3\n */\ninterface ActiveShelfContextValue extends ActiveShelfContextConfig {\n /** \u70B9\u51FB\u4E86\u89E3\u66F4\u591A\u56DE\u8C03 */\n onLearnMore?: (product: ProductCardData) => void\n /** \u70B9\u51FB\u7ACB\u5373\u8D2D\u4E70\u56DE\u8C03 */\n onShopNow?: (product: ProductCardData) => void\n /** \u70B9\u51FB\u52A0\u5165\u8D2D\u7269\u8F66\u56DE\u8C03 */\n onAddToCart?: (product: ProductCardData) => void\n /** \u8BED\u4E49\u5316\u7C7B\u540D */\n classNames?: Partial<Record<ActiveShelfSemanticName, string>>\n /** \u4E86\u89E3\u66F4\u591A\u6309\u94AE\u6587\u672C */\n secondaryButtonText?: string\n secondaryButtonFun?: ButtonFunctionType\n /** \u7ACB\u5373\u8D2D\u4E70\u6309\u94AE\u6587\u672C */\n primaryButtonText?: string\n primaryButtonFun?: ButtonFunctionType\n /** \u6587\u6848\u914D\u7F6E */\n copy: CopyConfig\n}\n\n/**\n * ActiveShelf Context\n */\nconst ActiveShelfContext = React.createContext<ActiveShelfContextValue | null>(null)\n\n/**\n * \u4F7F\u7528 ActiveShelf Context \u7684 Hook\n */\nexport const useActiveShelfContext = () => {\n const context = React.useContext(ActiveShelfContext)\n if (!context) {\n throw new Error('useActiveShelfContext must be used within an ActiveShelfProvider')\n }\n return context\n}\n\n/**\n * \u57FA\u7840\u4EA7\u54C1\u6570\u636E\u63A5\u53E3\uFF08\u6765\u81EA\u5916\u90E8\u6570\u636E\u6E90\uFF09\n */\nexport interface BaseProductData {\n sku: string\n name: string\n image: string\n value: string\n handle: string\n shopify_id: string\n custom_name?: string\n custom_description?: string\n}\n\n/**\n * Shopify \u53D8\u4F53\u6570\u636E\u63A5\u53E3\n */\nexport interface VariantData {\n /**\n * \u4EA7\u54C1\u63CF\u8FF0\n */\n description?: string\n /**\n * \u53D8\u4F53id\n */\n variantId: string\n\n /**\n * \u4EA7\u54C1\u94FE\u63A5, \u70B9\u51FB\u56FE\u7247\u7684\u65F6\u5019\u8DF3\u8F6C\u5230\u8BE5\u94FE\u63A5\n */\n listingLink: string\n /**\n * \u539F\u4EF7\n */\n originalPrice: string\n /**\n * \u73B0\u4EF7\n */\n price: string\n /**\n * \u4EF7\u683C\u4E0A\u9762\u5C55\u793A\u7684\u6807\u7B7E\u6587\u672C\n */\n priceLabel?: string\n /**\n * \u603B\u5E93\u5B58\n */\n totalInventory: number\n /**\n * \u53EF\u7528\u5E93\u5B58\u6570\u91CF\n */\n quantityAvailable: number\n /**\n * \u662F\u5426\u53EF\u552E\n */\n availableForSale: boolean\n\n /**\n * tags \u5217\u8868(\u4F1A\u5458\u4EF7\uFF0C\u6298\u6263\uFF0Cnew, hot\u7B49\u6807\u7B7E\u4FE1\u606F)\n */\n tags: Array<{\n label: string\n variant: BadgeProps['variant']\n promotionalType?: BadgeProps['promotionalType']\n }>\n /**\n * \u901A\u7528\u6298\u6263\u6570\u636E\uFF0C\u5305\u62EC\u6298\u6263title, \u7C7B\u578B\u548C\u503C\n */\n coupon: any\n}\n\n/**\n * \u5B8C\u6574\u7684\u4EA7\u54C1\u5361\u7247\u6570\u636E\u63A5\u53E3\n */\nexport interface ProductCardData extends BaseProductData, VariantData {}\n\n/**\n * \u4EA7\u54C1\u5206\u7EC4Tab\u6570\u636E\u63A5\u53E3\n */\nexport interface ProductTab {\n /** Tab ID */\n id: string\n /** Tab \u6807\u9898 */\n tab: string\n /** \u8BE5\u5206\u7EC4\u4E0B\u7684\u4EA7\u54C1\u6570\u636E */\n data: ProductCardData[]\n}\n\n/**\n * ActiveShelf \u4E1A\u52A1\u7EC4\u4EF6\u6570\u636E\u63A5\u53E3\n */\nexport interface ActiveShelfData {\n theme?: 'light' | 'dark'\n /** \u7EC4\u4EF6\u6807\u9898 */\n title?: string\n /** \u7EC4\u4EF6\u63CF\u8FF0 */\n description?: string\n /** \u5206\u7EC4\u4EA7\u54C1Tab\u5217\u8868 */\n productsTab?: ProductTab[]\n /** \u662F\u5426\u663E\u793A Tab\uFF08\u9ED8\u8BA4\uFF1Atrue\uFF09 */\n isShowTab?: boolean\n /** \u4E86\u89E3\u66F4\u591A\u6309\u94AE\u6587\u672C */\n secondaryButtonText?: string\n secondaryButtonFun: ButtonFunctionType\n /** \u7ACB\u5373\u8D2D\u4E70\u6309\u94AE\u6587\u672C */\n primaryButtonText?: string\n primaryButtonFun: ButtonFunctionType\n /** \u5E03\u5C40\u6A21\u5F0F\uFF1A\u7F51\u683C\u5E03\u5C40\u6216\u6A2A\u5411\u6ED1\u52A8 */\n layoutMode?: ActiveShelfLayoutMode\n /** Code Channel \u914D\u7F6E - \u6298\u6263\u524D\u7F00 */\n codeChannel?: CodeChannelConfig\n /** \u662F\u5426\u5C55\u793A\u4F1A\u5458\u4EF7\u683C */\n showMemberPrice?: boolean\n /** \u662F\u5426\u5C55\u793A\u6298\u6263\u6807\u7B7E */\n showDiscount?: boolean\n /** \u662F\u5426\u5C55\u793A\u6807\u7B7E\u7CFB\u7EDF */\n showTags?: boolean\n /** \u5E93\u5B58\u5C55\u793A\u6A21\u5F0F */\n stockDisplayMode?: StockDisplayMode\n /** \u5E93\u5B58\u9608\u503C\uFF08\u5F53\u6A21\u5F0F\u4E3A below-quantity \u6216 below-percentage \u65F6\u4F7F\u7528\uFF09 */\n stockThreshold?: number\n /**\n * \u5E93\u5B58\u6587\u672C\u6A21\u677F\uFF0C\u652F\u6301 {count} \u5360\u4F4D\u7B26\n */\n stockDisplayText?: string\n /** \u662F\u5426\u5C55\u793A\u539F\u4EF7\uFF08\u5220\u9664\u7EBF\u4EF7\u683C\uFF09 */\n showOriginalPrice?: boolean\n /** \u6587\u6848\u914D\u7F6E */\n copy?: CopyConfig\n /**\n * \u4EA7\u54C1\u5217\u8868\uFF08\u5F53\u4E0D\u4F7F\u7528 Tab \u5206\u7EC4\u65F6\u53EF\u76F4\u63A5\u4F20\u5165\u4EA7\u54C1\u5217\u8868\uFF09\n */\n productsCard: ProductCardData[]\n}\n\nexport interface ActiveShelfProps extends React.HTMLAttributes<HTMLDivElement> {\n /** \u4E1A\u52A1\u6570\u636E */\n data: ActiveShelfData\n /** \u70B9\u51FB\u4E86\u89E3\u66F4\u591A\u56DE\u8C03 */\n onLearnMore?: (product: ProductCardData) => void\n /** \u70B9\u51FB\u7ACB\u5373\u8D2D\u4E70\u56DE\u8C03 */\n onShopNow?: (product: ProductCardData) => void\n /** \u70B9\u51FB\u52A0\u5165\u8D2D\u7269\u8F66\u56DE\u8C03 */\n onAddToCart?: (product: ProductCardData) => void\n /** \u8BED\u4E49\u5316\u7C7B\u540D */\n classNames?: Partial<Record<ActiveShelfSemanticName, string>>\n}\n\n/**\n * \u4EA7\u54C1\u5361\u7247\u7EC4\u4EF6\n */\nconst ProductCard = React.forwardRef<\n HTMLDivElement,\n {\n product: ProductCardData\n className?: string\n }\n>(({ product, className }, ref) => {\n let {\n showTags = true,\n stockDisplayMode,\n stockThreshold,\n onLearnMore,\n onShopNow,\n onAddToCart,\n classNames,\n secondaryButtonText,\n primaryButtonText,\n secondaryButtonFun,\n primaryButtonFun,\n showOriginalPrice,\n copy,\n } = useActiveShelfContext()\n\n const stockPercentage = React.useMemo(() => {\n const result = ((product?.quantityAvailable ?? 0) / (product?.totalInventory ?? 1)) * 100\n if (result === 0 && product.availableForSale) {\n // \u53EF\u552E\u4F46\u5E93\u5B58\u4E3A0\u65F6\uFF0C\u968F\u673A\u663E\u793A1-5%\u7684\u5E93\u5B58\u8FDB\u5EA6\n return Math.round(Math.random() * 5 + 1)\n }\n return result\n }, [product?.availableForSale, product?.quantityAvailable, product?.totalInventory])\n\n // \u6839\u636E\u6309\u94AE\u529F\u80FD\u7C7B\u578B\u8C03\u7528\u76F8\u5E94\u7684\u56DE\u8C03\u51FD\u6570\n const handleButtonClick = (buttonFun?: ButtonFunctionType) => {\n if (!buttonFun) return\n\n switch (buttonFun) {\n case 'buyNow':\n onShopNow?.(product)\n break\n case 'addCart':\n onAddToCart?.(product)\n break\n case 'learnMore':\n onLearnMore?.(product)\n break\n default:\n break\n }\n }\n\n return (\n <Card\n ref={ref}\n className={cn(\n 'bg-container-primary desktop:min-h-[464px] lg-desktop:min-h-[560px] flex min-h-[428px] flex-col overflow-hidden',\n className,\n classNames?.productCard\n )}\n >\n <CardContent className=\"desktop:p-6 relative flex flex-1 flex-col justify-between p-4\">\n {/* \u6807\u7B7E */}\n <div className=\"lg-desktop:h-[28px] h-[24px]\">\n {product.tags?.map((tag, index) => (\n <Badge\n key={index}\n size=\"sm\"\n variant={(tag.variant as any) || 'outline'}\n className={cn('mr-1')}\n promotionalType={tag.promotionalType}\n >\n {tag.label}\n </Badge>\n ))}\n </div>\n\n {/* \u4EA7\u54C1\u56FE\u533A\u57DF */}\n <div className=\"product-image-wrapper lg-desktop:size-[196px] mx-auto size-[138px] overflow-hidden\">\n <a href={product?.listingLink} target=\"_blank\" rel=\"noreferrer\">\n <Picture\n source={product.image}\n alt={product.name}\n className=\"aspect-square w-full object-cover\"\n imgClassName=\"w-full h-full\"\n />\n </a>\n </div>\n\n {/* \u5185\u5BB9\u533A\u57DF */}\n <div className=\"flex h-full flex-1 grow flex-col justify-between\">\n {/* \u4EA7\u54C1\u4FE1\u606F */}\n <div className=\"mb-4\">\n <Heading\n as=\"h3\"\n size={2}\n className={cn('text-info-primary mb-2 line-clamp-2 min-h-[2.4em]', classNames?.productTitle)}\n html={product.custom_name || product.name}\n />\n {product?.description && (\n <Text\n size={2}\n className={cn(\n 'text-info-secondary desktop:line-clamp-2 desktop:min-h-[2.4em] line-clamp-2 min-h-[2.4em]',\n classNames?.productDescription\n )}\n html={product.custom_description || product.description}\n />\n )}\n </div>\n\n {/** \u4EF7\u683C\u6807\u7B7E */}\n\n {product?.priceLabel && product?.availableForSale && (\n <Text size={4} className={cn('text-marketing-1 mt-2', classNames?.productPriceLabel)}>\n {product.priceLabel}\n </Text>\n )}\n\n {/* \u4EF7\u683C\u533A\u57DF */}\n <div>\n <div className={cn('mb-2', classNames?.productPrice)}>\n <div className=\"flex items-baseline gap-2\">\n {product.availableForSale ? (\n <>\n <Heading size={2} className=\"text-info-primary\" as=\"h6\">\n {product.price}\n </Heading>\n {showOriginalPrice && product.originalPrice && (\n <Heading size={2} className=\"text-info-tertiary line-through\" as=\"h6\">\n {product.originalPrice}\n </Heading>\n )}\n </>\n ) : (\n <Heading size={2} className=\"text-info-tertiary\">\n {copy?.outOfStockLabel ?? 'Sold Out'}\n </Heading>\n )}\n </div>\n </div>\n\n {/* \u6309\u94AE\u533A\u57DF */}\n <div className={cn('tablet:gap-3 mb-4 flex gap-2', classNames?.buttonGroup)}>\n {secondaryButtonText && (\n <Button\n variant=\"secondary\"\n size=\"base\"\n className={cn('', classNames?.secondaryButton)}\n onClick={() => handleButtonClick(secondaryButtonFun)}\n disabled={!product.availableForSale && secondaryButtonFun !== 'learnMore'}\n >\n {secondaryButtonText}\n </Button>\n )}\n {primaryButtonText && (\n <Button\n variant=\"primary\"\n size=\"base\"\n className={cn('', classNames?.primaryButton)}\n onClick={() => handleButtonClick(primaryButtonFun)}\n disabled={!product.availableForSale && primaryButtonFun !== 'learnMore'}\n >\n {primaryButtonText}\n </Button>\n )}\n </div>\n\n {/* \u5E93\u5B58\u4FE1\u606F */}\n {shouldShowStock(\n stockDisplayMode,\n stockThreshold,\n product?.quantityAvailable ?? 0,\n product?.totalInventory ?? 0\n ) && (\n <div className=\"space-y-2\">\n <Progress\n value={stockPercentage}\n max={100}\n min={0}\n size=\"base\"\n variant=\"default\"\n aria-label=\"stock progress\"\n classNames={{\n progressBar: cn('bg-brand-0 transition-all duration-300 ease-in-out', classNames?.stockBar),\n }}\n />\n <Text size={3} className=\"text-info-tertiary text-[14px]\">\n {copy?.stockDisplayText?.replace('{count}', `${product.quantityAvailable}`)}\n </Text>\n </div>\n )}\n </div>\n </div>\n </CardContent>\n </Card>\n )\n})\nProductCard.displayName = 'ProductCard'\n\n/**\n * \u4EA7\u54C1\u5217\u8868\u7EC4\u4EF6 - \u652F\u6301\u7F51\u683C\u548C\u6A2A\u5411\u6ED1\u52A8\u4E24\u79CD\u5E03\u5C40\n */\nconst ProductsList = React.forwardRef<\n HTMLDivElement,\n {\n products: ProductCardData[]\n layoutMode: ActiveShelfLayoutMode\n className?: string\n }\n>(({ products, layoutMode, className }, ref) => {\n const { copy } = useActiveShelfContext()\n // Swiper \u5BFC\u822A\u72B6\u6001\n const [swiperState, setSwiperState] = React.useState({\n isBeginning: true,\n isEnd: false,\n })\n\n if (products?.length === 0) {\n return null\n }\n\n return (\n <div ref={ref} className={className}>\n {layoutMode === 'flex' ? (\n /* \u7F51\u683C\u5E03\u5C40 */\n <div className=\"lg-desktop:gap-6 tablet:grid-cols-2 laptop:grid-cols-3 desktop:grid-cols-4 grid grid-cols-1 justify-start gap-4\">\n {products.map((product, index) => (\n <ProductCard key={product.shopify_id + '-' + product.sku || index} product={product} className=\"shrink-0\" />\n ))}\n </div>\n ) : (\n /* Swiper \u6A2A\u5411\u6ED1\u52A8\u5E03\u5C40 */\n <div className=\"relative\">\n <Swiper\n modules={[Navigation]}\n spaceBetween={16}\n slidesPerView=\"auto\"\n autoHeight={true}\n navigation={{\n nextEl: '.swiper-button-next-custom',\n prevEl: '.swiper-button-prev-custom',\n }}\n onSwiper={swiper => {\n setSwiperState({\n isBeginning: swiper.isBeginning,\n isEnd: swiper.isEnd,\n })\n }}\n onSlideChange={swiper => {\n setSwiperState({\n isBeginning: swiper.isBeginning,\n isEnd: swiper.isEnd,\n })\n }}\n className=\"!overflow-visible\"\n >\n {products.map((product, index) => (\n <SwiperSlide\n key={product.shopify_id + '-' + product.sku || index}\n className=\"tablet:!w-[288px] tablet:h-[428px] desktop:!w-[316px] desktop:!h-[464px] lg-desktop:!w-[404px] lg-desktop:!h-[561px] h-[428px] !w-[296px] overflow-hidden\"\n >\n <ProductCard product={product} className=\"w-full max-w-full\" />\n </SwiperSlide>\n ))}\n </Swiper>\n\n {/* \u81EA\u5B9A\u4E49\u5BFC\u822A\u6309\u94AE */}\n <button\n className=\"swiper-button-prev-custom tablet:block absolute left-4 top-1/2 z-10 hidden -translate-y-1/2\"\n aria-label={copy?.previousSlideLabel}\n disabled={swiperState.isBeginning}\n >\n <PrevIcon disabled={swiperState.isBeginning} />\n </button>\n <button\n className=\"swiper-button-next-custom tablet:block absolute right-4 top-1/2 z-10 hidden -translate-y-1/2\"\n aria-label={copy?.nextSlideLabel}\n disabled={swiperState.isEnd}\n >\n <NextIcon disabled={swiperState.isEnd} />\n </button>\n </div>\n )}\n </div>\n )\n})\n\nProductsList.displayName = 'ProductsList'\n\n/**\n * ActiveShelf - \u6D3B\u52A8\u8D27\u67B6\n *\n * @description \u80FD\u591F\u5B9E\u65F6\u663E\u793A\u5546\u54C1\u5E93\u5B58\u4FE1\u606F\u548C\u4F1A\u5458\u4EF7\u7684\u8D27\u67B6\uFF0C\u652F\u6301\u54CD\u5E94\u5F0F\u5E03\u5C40\u548C\u591A\u79CD\u914D\u7F6E\u9009\u9879\n */\nconst ActiveShelf = React.forwardRef<HTMLDivElement, ActiveShelfProps>(\n ({ className, data, onLearnMore, onShopNow, onAddToCart, classNames, ...props }, ref) => {\n // \u4ECE data \u4E2D\u89E3\u6784\u914D\u7F6E\u9879\uFF0C\u5E76\u8BBE\u7F6E\u9ED8\u8BA4\u503C\n const {\n theme = 'light',\n layoutMode = 'flex',\n codeChannel,\n showMemberPrice = true,\n showDiscount = true,\n showTags = true,\n stockDisplayMode,\n stockThreshold,\n showOriginalPrice = true,\n secondaryButtonText,\n primaryButtonText,\n secondaryButtonFun,\n primaryButtonFun,\n isShowTab = true,\n copy,\n } = data\n\n // \u6784\u5EFA copy \u914D\u7F6E\uFF0C\u4F7F\u7528\u4F20\u5165\u7684 copy \u914D\u7F6E\n const finalCopy: CopyConfig = copy || {}\n\n // \u6784\u5EFA Context \u503C\n const contextValue: ActiveShelfContextValue = {\n layoutMode,\n codeChannel,\n showMemberPrice,\n showDiscount,\n showTags,\n stockDisplayMode,\n stockThreshold,\n showOriginalPrice,\n onLearnMore,\n onShopNow,\n onAddToCart,\n classNames,\n secondaryButtonText,\n secondaryButtonFun,\n primaryButtonText,\n primaryButtonFun,\n copy: finalCopy,\n }\n\n // \u83B7\u53D6\u8981\u663E\u793A\u7684\u4EA7\u54C1\u6570\u636E\n const hasTabData = data.productsTab && data.productsTab.length > 0\n const shouldShowTab = isShowTab && hasTabData\n\n return (\n <ActiveShelfContext.Provider value={contextValue}>\n <div\n ref={ref}\n className={cn(\n 'w-full',\n {\n 'aiui-dark': theme === 'dark',\n },\n className,\n classNames?.root\n )}\n {...props}\n >\n {/* \u6807\u9898\u533A\u57DF */}\n {data.title && (\n <Heading as=\"h2\" html={data.title} size={4} className={cn('text-info-primary mb-4', classNames?.title)} />\n )}\n {data.description && (\n <Text\n size={3}\n as=\"p\"\n html={data.description}\n className={cn('text-info-primary mb-6', classNames?.description)}\n />\n )}\n\n {/* \u4EA7\u54C1\u5C55\u793A\u533A\u57DF */}\n\n <Tabs defaultValue={data.productsTab?.[0]?.id} className=\"w-full\">\n {shouldShowTab && (\n <TabsList className=\"mb-6\">\n {data.productsTab?.map(tab => (\n <TabsTrigger key={'tab-' + tab.id} value={tab.id}>\n {tab.tab}\n </TabsTrigger>\n ))}\n </TabsList>\n )}\n {shouldShowTab ? (\n data.productsTab?.map(tab => (\n <TabsContent key={'tab-content-' + tab.id} value={tab.id}>\n <ProductsList products={tab.data} layoutMode={layoutMode} />\n </TabsContent>\n ))\n ) : (\n <ProductsList products={data.productsCard} layoutMode={layoutMode} />\n )}\n </Tabs>\n </div>\n </ActiveShelfContext.Provider>\n )\n }\n)\n\nActiveShelf.displayName = 'ActiveShelf'\nexport default ActiveShelf\nexport { ProductCard }\n"],
5
+ "mappings": "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",
6
+ "names": ["ActiveShelf_exports", "__export", "ProductCard", "ActiveShelf_default", "useActiveShelfContext", "__toCommonJS", "import_jsx_runtime", "React", "import_helpers", "import_components", "import_react", "import_modules", "import_css", "import_navigation", "PrevIcon", "disabled", "NextIcon", "shouldShowStock", "stockDisplayMode", "stockThreshold", "quantityAvailable", "totalInventory", "ActiveShelfContext", "context", "product", "className", "ref", "showTags", "onLearnMore", "onShopNow", "onAddToCart", "classNames", "secondaryButtonText", "primaryButtonText", "secondaryButtonFun", "primaryButtonFun", "showOriginalPrice", "copy", "stockPercentage", "result", "handleButtonClick", "buttonFun", "tag", "index", "ProductsList", "products", "layoutMode", "swiperState", "setSwiperState", "swiper", "ActiveShelf", "data", "props", "theme", "codeChannel", "showMemberPrice", "showDiscount", "isShowTab", "contextValue", "hasTabData", "shouldShowTab", "tab"]
7
+ }
@@ -0,0 +1,22 @@
1
+ /**
2
+ * 按钮功能类型
3
+ */
4
+ export type ButtonFunctionType = 'buyNow' | 'addCart' | 'learnMore';
5
+ /**
6
+ * ActiveShelf 文案配置接口
7
+ * 注意:secondaryButtonText 和 shopNowText 作为高频属性保持在 data 的直接属性中
8
+ */
9
+ export interface CopyConfig {
10
+ /** Plus会员价格标签文本 */
11
+ plusMemberPriceLabel?: string;
12
+ /** 会员价格标签文本 */
13
+ memberPriceLabel?: string;
14
+ /** 库存显示文案模板,支持 {count} 占位符 */
15
+ stockDisplayText?: string;
16
+ /** 上一页滑动按钮的无障碍标签(ActiveShelf 专用) */
17
+ previousSlideLabel?: string;
18
+ /** 下一页滑动按钮的无障碍标签(ActiveShelf 专用) */
19
+ nextSlideLabel?: string;
20
+ discountLabel?: string;
21
+ outOfStockLabel?: string;
22
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var n=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var a=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var b=(t,e,o,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of a(e))!l.call(t,r)&&r!==o&&n(t,r,{get:()=>e[r],enumerable:!(i=s(e,r))||i.enumerable});return t};var g=t=>b(n({},"__esModule",{value:!0}),t);var p={};module.exports=g(p);
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/biz-components/ActiveShelf/types.ts"],
4
+ "sourcesContent": ["/**\n * \u6309\u94AE\u529F\u80FD\u7C7B\u578B\n */\nexport type ButtonFunctionType = 'buyNow' | 'addCart' | 'learnMore'\n\n/**\n * ActiveShelf \u6587\u6848\u914D\u7F6E\u63A5\u53E3\n * \u6CE8\u610F\uFF1AsecondaryButtonText \u548C shopNowText \u4F5C\u4E3A\u9AD8\u9891\u5C5E\u6027\u4FDD\u6301\u5728 data \u7684\u76F4\u63A5\u5C5E\u6027\u4E2D\n */\nexport interface CopyConfig {\n /** Plus\u4F1A\u5458\u4EF7\u683C\u6807\u7B7E\u6587\u672C */\n plusMemberPriceLabel?: string\n /** \u4F1A\u5458\u4EF7\u683C\u6807\u7B7E\u6587\u672C */\n memberPriceLabel?: string\n\n /** \u5E93\u5B58\u663E\u793A\u6587\u6848\u6A21\u677F\uFF0C\u652F\u6301 {count} \u5360\u4F4D\u7B26 */\n stockDisplayText?: string\n\n /** \u4E0A\u4E00\u9875\u6ED1\u52A8\u6309\u94AE\u7684\u65E0\u969C\u788D\u6807\u7B7E\uFF08ActiveShelf \u4E13\u7528\uFF09 */\n previousSlideLabel?: string\n /** \u4E0B\u4E00\u9875\u6ED1\u52A8\u6309\u94AE\u7684\u65E0\u969C\u788D\u6807\u7B7E\uFF08ActiveShelf \u4E13\u7528\uFF09 */\n nextSlideLabel?: string\n\n discountLabel?: string\n outOfStockLabel?: string\n}\n"],
5
+ "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
+ "names": ["types_exports", "__toCommonJS"]
7
+ }
@@ -5,7 +5,14 @@ interface AiuiContextType {
5
5
  locale?: string;
6
6
  pathname?: string;
7
7
  storeDomain?: string;
8
+ /**
9
+ * 用户是否登录
10
+ */
8
11
  isLogin?: boolean;
12
+ /**
13
+ * 用户是否为Plus会员
14
+ */
15
+ isPlusMember?: boolean;
9
16
  currencyCode?: string;
10
17
  currencyDisplay?: CurrencyDisplayType;
11
18
  copyWriting?: Record<string, string>;
@@ -1,2 +1,2 @@
1
- "use strict";var p=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var v=Object.getOwnPropertyNames;var A=Object.prototype.hasOwnProperty;var k=(n,e)=>{for(var o in e)p(n,o,{get:e[o],enumerable:!0})},x=(n,e,o,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of v(e))!A.call(n,t)&&t!==o&&p(n,t,{get:()=>e[t],enumerable:!(s=f(e,t))||s.enumerable});return n};var C=n=>x(p({},"__esModule",{value:!0}),n);var E={};k(E,{AiuiContext:()=>c,default:()=>T,useAiuiContext:()=>_});module.exports=C(E);var g=require("react/jsx-runtime"),m=require("../../shared/track.js"),r=require("react");const c=(0,r.createContext)({trackingData:{},locale:void 0,copyWriting:{}}),_=()=>{if(!(0,r.useContext)(c))throw new Error("useAiui must be used in <AiuiProvider>");return(0,r.useContext)(c)},D=({children:n,...e})=>((0,r.useEffect)(()=>{const o=(t,a)=>{const i={};if(!a||!a.attributes)return i;for(const b of Array.from(a.attributes)){const d=b?.name;d?.startsWith("data-headless-")&&(i[d]=a.getAttribute(d))}const h=i?.["data-headless-sku"],l=i?.["data-headless-type-name"]?.split?.("#"),u=i?.["data-headless-title-desc-button"]?.split?.("#"),y=i?.["data-headless-nav-postion"]?.split?.("#");(0,m.gaTrack)({event:"ga4Event",event_name:"component_click",event_parameters:{page_group:e?.trackingData?.pageGroup||"Home Page",component_type:l?.[0]||"",component_name:l?.[1]||"",position:y?.[1]||"",navigation:y?.[0]||"",button_name:u?.[2]||"",SKU:h||"",component_title:u?.[0]||"",component_description:u?.[1]||""}})},s=new MutationObserver(()=>{document.querySelectorAll("[data-headless-type-name]").forEach(t=>{t.hasAttribute("data-headless-track-bound")||(t.addEventListener("click",a=>o(a,t)),t.setAttribute("data-headless-track-bound","true"))})});return s.observe(document.body,{childList:!0,subtree:!0}),document.querySelectorAll("[data-headless-type-name]").forEach(t=>{t.hasAttribute("data-headless-track-bound")||(t.addEventListener("click",a=>o(a,t)),t.setAttribute("data-headless-track-bound","true"))}),()=>s.disconnect()},[]),(0,g.jsx)(c.Provider,{value:e,children:n}));var T=D;
1
+ "use strict";var p=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var v=Object.getOwnPropertyNames;var A=Object.prototype.hasOwnProperty;var k=(n,e)=>{for(var o in e)p(n,o,{get:e[o],enumerable:!0})},x=(n,e,o,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of v(e))!A.call(n,t)&&t!==o&&p(n,t,{get:()=>e[t],enumerable:!(s=f(e,t))||s.enumerable});return n};var C=n=>x(p({},"__esModule",{value:!0}),n);var E={};k(E,{AiuiContext:()=>c,default:()=>T,useAiuiContext:()=>_});module.exports=C(E);var b=require("react/jsx-runtime"),m=require("../../shared/track.js"),r=require("react");const c=(0,r.createContext)({trackingData:{},locale:void 0,copyWriting:{}}),_=()=>{if(!(0,r.useContext)(c))throw new Error("useAiui must be used in <AiuiProvider>");return(0,r.useContext)(c)},D=({children:n,...e})=>((0,r.useEffect)(()=>{const o=(t,a)=>{const i={};if(!a||!a.attributes)return i;for(const h of Array.from(a.attributes)){const d=h?.name;d?.startsWith("data-headless-")&&(i[d]=a.getAttribute(d))}const g=i?.["data-headless-sku"],l=i?.["data-headless-type-name"]?.split?.("#"),u=i?.["data-headless-title-desc-button"]?.split?.("#"),y=i?.["data-headless-nav-postion"]?.split?.("#");(0,m.gaTrack)({event:"ga4Event",event_name:"component_click",event_parameters:{page_group:e?.trackingData?.pageGroup||"Home Page",component_type:l?.[0]||"",component_name:l?.[1]||"",position:y?.[1]||"",navigation:y?.[0]||"",button_name:u?.[2]||"",SKU:g||"",component_title:u?.[0]||"",component_description:u?.[1]||""}})},s=new MutationObserver(()=>{document.querySelectorAll("[data-headless-type-name]").forEach(t=>{t.hasAttribute("data-headless-track-bound")||(t.addEventListener("click",a=>o(a,t)),t.setAttribute("data-headless-track-bound","true"))})});return s.observe(document.body,{childList:!0,subtree:!0}),document.querySelectorAll("[data-headless-type-name]").forEach(t=>{t.hasAttribute("data-headless-track-bound")||(t.addEventListener("click",a=>o(a,t)),t.setAttribute("data-headless-track-bound","true"))}),()=>s.disconnect()},[]),(0,b.jsx)(c.Provider,{value:e,children:n}));var T=D;
2
2
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/biz-components/AiuiProvider/index.tsx"],
4
- "sourcesContent": ["import { gaTrack } from '../../shared/track.js'\nimport React, { createContext, useContext, useEffect } from 'react'\nimport type { CurrencyDisplayType } from '../../types/props.js'\ninterface AiuiContextType {\n trackingData: Record<string, any>\n locale?: string\n pathname?: string\n storeDomain?: string\n isLogin?: boolean\n currencyCode?: string\n currencyDisplay?: CurrencyDisplayType\n copyWriting?: Record<string, string>\n}\n\nexport const AiuiContext = createContext<AiuiContextType>({\n trackingData: {},\n locale: undefined,\n copyWriting: {},\n})\n\nexport const useAiuiContext = () => {\n const context = useContext(AiuiContext)\n if (!context) {\n throw new Error('useAiui must be used in <AiuiProvider>')\n }\n return useContext(AiuiContext)\n}\n\nconst AiuiProvider = ({\n children,\n ...rest\n}: {\n children: React.ReactNode\n} & AiuiContextType) => {\n useEffect(() => {\n const handleTrackClick = (e: any, el: any) => {\n // e?.stopPropagation?.()\n const out: any = {}\n if (!el || !el.attributes) return out\n for (const attr of Array.from(el.attributes)) {\n const name = (attr as any)?.name\n if (name?.startsWith('data-headless-')) {\n out[name] = el.getAttribute(name)\n }\n }\n const sku = out?.['data-headless-sku']\n const nameType = out?.['data-headless-type-name']?.split?.('#')\n const titleDesc = out?.['data-headless-title-desc-button']?.split?.('#')\n const navPosition = out?.['data-headless-nav-postion']?.split?.('#')\n gaTrack({\n event: 'ga4Event',\n event_name: 'component_click',\n event_parameters: {\n page_group: rest?.trackingData?.pageGroup || 'Home Page',\n component_type: nameType?.[0] || '',\n component_name: nameType?.[1] || '',\n position: navPosition?.[1] || '',\n navigation: navPosition?.[0] || '',\n button_name: titleDesc?.[2] || '',\n SKU: sku || '',\n component_title: titleDesc?.[0] || '',\n component_description: titleDesc?.[1] || '',\n },\n })\n }\n const observer = new MutationObserver(() => {\n document.querySelectorAll('[data-headless-type-name]').forEach(el => {\n if (!el.hasAttribute('data-headless-track-bound')) {\n el.addEventListener('click', e => handleTrackClick(e, el))\n el.setAttribute('data-headless-track-bound', 'true') // \u907F\u514D\u91CD\u590D\u7ED1\u5B9A\n }\n })\n })\n observer.observe(document.body, { childList: true, subtree: true })\n // \u521D\u59CB\u5316\u4E00\u6B21\u73B0\u6709\u8282\u70B9\n document.querySelectorAll('[data-headless-type-name]').forEach(el => {\n if (!el.hasAttribute('data-headless-track-bound')) {\n el.addEventListener('click', e => handleTrackClick(e, el))\n el.setAttribute('data-headless-track-bound', 'true')\n }\n })\n return () => observer.disconnect()\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n return <AiuiContext.Provider value={rest}>{children}</AiuiContext.Provider>\n}\n\nexport default AiuiProvider\n"],
5
- "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,iBAAAE,EAAA,YAAAC,EAAA,mBAAAC,IAAA,eAAAC,EAAAL,GAqFS,IAAAM,EAAA,6BArFTC,EAAwB,iCACxBC,EAA4D,iBAarD,MAAMN,KAAc,iBAA+B,CACxD,aAAc,CAAC,EACf,OAAQ,OACR,YAAa,CAAC,CAChB,CAAC,EAEYE,EAAiB,IAAM,CAElC,GAAI,IADY,cAAWF,CAAW,EAEpC,MAAM,IAAI,MAAM,wCAAwC,EAE1D,SAAO,cAAWA,CAAW,CAC/B,EAEMO,EAAe,CAAC,CACpB,SAAAC,EACA,GAAGC,CACL,QAGE,aAAU,IAAM,CACd,MAAMC,EAAmB,CAACC,EAAQC,IAAY,CAE5C,MAAMC,EAAW,CAAC,EAClB,GAAI,CAACD,GAAM,CAACA,EAAG,WAAY,OAAOC,EAClC,UAAWC,KAAQ,MAAM,KAAKF,EAAG,UAAU,EAAG,CAC5C,MAAMG,EAAQD,GAAc,KACxBC,GAAM,WAAW,gBAAgB,IACnCF,EAAIE,CAAI,EAAIH,EAAG,aAAaG,CAAI,EAEpC,CACA,MAAMC,EAAMH,IAAM,mBAAmB,EAC/BI,EAAWJ,IAAM,yBAAyB,GAAG,QAAQ,GAAG,EACxDK,EAAYL,IAAM,iCAAiC,GAAG,QAAQ,GAAG,EACjEM,EAAcN,IAAM,2BAA2B,GAAG,QAAQ,GAAG,KACnE,WAAQ,CACN,MAAO,WACP,WAAY,kBACZ,iBAAkB,CAChB,WAAYJ,GAAM,cAAc,WAAa,YAC7C,eAAgBQ,IAAW,CAAC,GAAK,GACjC,eAAgBA,IAAW,CAAC,GAAK,GACjC,SAAUE,IAAc,CAAC,GAAK,GAC9B,WAAYA,IAAc,CAAC,GAAK,GAChC,YAAaD,IAAY,CAAC,GAAK,GAC/B,IAAKF,GAAO,GACZ,gBAAiBE,IAAY,CAAC,GAAK,GACnC,sBAAuBA,IAAY,CAAC,GAAK,EAC3C,CACF,CAAC,CACH,EACME,EAAW,IAAI,iBAAiB,IAAM,CAC1C,SAAS,iBAAiB,2BAA2B,EAAE,QAAQR,GAAM,CAC9DA,EAAG,aAAa,2BAA2B,IAC9CA,EAAG,iBAAiB,QAASD,GAAKD,EAAiBC,EAAGC,CAAE,CAAC,EACzDA,EAAG,aAAa,4BAA6B,MAAM,EAEvD,CAAC,CACH,CAAC,EACD,OAAAQ,EAAS,QAAQ,SAAS,KAAM,CAAE,UAAW,GAAM,QAAS,EAAK,CAAC,EAElE,SAAS,iBAAiB,2BAA2B,EAAE,QAAQR,GAAM,CAC9DA,EAAG,aAAa,2BAA2B,IAC9CA,EAAG,iBAAiB,QAASD,GAAKD,EAAiBC,EAAGC,CAAE,CAAC,EACzDA,EAAG,aAAa,4BAA6B,MAAM,EAEvD,CAAC,EACM,IAAMQ,EAAS,WAAW,CAEnC,EAAG,CAAC,CAAC,KAEE,OAACpB,EAAY,SAAZ,CAAqB,MAAOS,EAAO,SAAAD,EAAS,GAGtD,IAAOP,EAAQM",
4
+ "sourcesContent": ["import { gaTrack } from '../../shared/track.js'\nimport React, { createContext, useContext, useEffect } from 'react'\nimport type { CurrencyDisplayType } from '../../types/props.js'\ninterface AiuiContextType {\n trackingData: Record<string, any>\n locale?: string\n pathname?: string\n storeDomain?: string\n /**\n * \u7528\u6237\u662F\u5426\u767B\u5F55\n */\n isLogin?: boolean\n\n /**\n * \u7528\u6237\u662F\u5426\u4E3APlus\u4F1A\u5458\n */\n isPlusMember?: boolean\n currencyCode?: string\n currencyDisplay?: CurrencyDisplayType\n copyWriting?: Record<string, string>\n}\n\nexport const AiuiContext = createContext<AiuiContextType>({\n trackingData: {},\n locale: undefined,\n copyWriting: {},\n})\n\nexport const useAiuiContext = () => {\n const context = useContext(AiuiContext)\n if (!context) {\n throw new Error('useAiui must be used in <AiuiProvider>')\n }\n return useContext(AiuiContext)\n}\n\nconst AiuiProvider = ({\n children,\n ...rest\n}: {\n children: React.ReactNode\n} & AiuiContextType) => {\n useEffect(() => {\n const handleTrackClick = (e: any, el: any) => {\n // e?.stopPropagation?.()\n const out: any = {}\n if (!el || !el.attributes) return out\n for (const attr of Array.from(el.attributes)) {\n const name = (attr as any)?.name\n if (name?.startsWith('data-headless-')) {\n out[name] = el.getAttribute(name)\n }\n }\n const sku = out?.['data-headless-sku']\n const nameType = out?.['data-headless-type-name']?.split?.('#')\n const titleDesc = out?.['data-headless-title-desc-button']?.split?.('#')\n const navPosition = out?.['data-headless-nav-postion']?.split?.('#')\n gaTrack({\n event: 'ga4Event',\n event_name: 'component_click',\n event_parameters: {\n page_group: rest?.trackingData?.pageGroup || 'Home Page',\n component_type: nameType?.[0] || '',\n component_name: nameType?.[1] || '',\n position: navPosition?.[1] || '',\n navigation: navPosition?.[0] || '',\n button_name: titleDesc?.[2] || '',\n SKU: sku || '',\n component_title: titleDesc?.[0] || '',\n component_description: titleDesc?.[1] || '',\n },\n })\n }\n const observer = new MutationObserver(() => {\n document.querySelectorAll('[data-headless-type-name]').forEach(el => {\n if (!el.hasAttribute('data-headless-track-bound')) {\n el.addEventListener('click', e => handleTrackClick(e, el))\n el.setAttribute('data-headless-track-bound', 'true') // \u907F\u514D\u91CD\u590D\u7ED1\u5B9A\n }\n })\n })\n observer.observe(document.body, { childList: true, subtree: true })\n // \u521D\u59CB\u5316\u4E00\u6B21\u73B0\u6709\u8282\u70B9\n document.querySelectorAll('[data-headless-type-name]').forEach(el => {\n if (!el.hasAttribute('data-headless-track-bound')) {\n el.addEventListener('click', e => handleTrackClick(e, el))\n el.setAttribute('data-headless-track-bound', 'true')\n }\n })\n return () => observer.disconnect()\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n return <AiuiContext.Provider value={rest}>{children}</AiuiContext.Provider>\n}\n\nexport default AiuiProvider\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,iBAAAE,EAAA,YAAAC,EAAA,mBAAAC,IAAA,eAAAC,EAAAL,GA6FS,IAAAM,EAAA,6BA7FTC,EAAwB,iCACxBC,EAA4D,iBAqBrD,MAAMN,KAAc,iBAA+B,CACxD,aAAc,CAAC,EACf,OAAQ,OACR,YAAa,CAAC,CAChB,CAAC,EAEYE,EAAiB,IAAM,CAElC,GAAI,IADY,cAAWF,CAAW,EAEpC,MAAM,IAAI,MAAM,wCAAwC,EAE1D,SAAO,cAAWA,CAAW,CAC/B,EAEMO,EAAe,CAAC,CACpB,SAAAC,EACA,GAAGC,CACL,QAGE,aAAU,IAAM,CACd,MAAMC,EAAmB,CAACC,EAAQC,IAAY,CAE5C,MAAMC,EAAW,CAAC,EAClB,GAAI,CAACD,GAAM,CAACA,EAAG,WAAY,OAAOC,EAClC,UAAWC,KAAQ,MAAM,KAAKF,EAAG,UAAU,EAAG,CAC5C,MAAMG,EAAQD,GAAc,KACxBC,GAAM,WAAW,gBAAgB,IACnCF,EAAIE,CAAI,EAAIH,EAAG,aAAaG,CAAI,EAEpC,CACA,MAAMC,EAAMH,IAAM,mBAAmB,EAC/BI,EAAWJ,IAAM,yBAAyB,GAAG,QAAQ,GAAG,EACxDK,EAAYL,IAAM,iCAAiC,GAAG,QAAQ,GAAG,EACjEM,EAAcN,IAAM,2BAA2B,GAAG,QAAQ,GAAG,KACnE,WAAQ,CACN,MAAO,WACP,WAAY,kBACZ,iBAAkB,CAChB,WAAYJ,GAAM,cAAc,WAAa,YAC7C,eAAgBQ,IAAW,CAAC,GAAK,GACjC,eAAgBA,IAAW,CAAC,GAAK,GACjC,SAAUE,IAAc,CAAC,GAAK,GAC9B,WAAYA,IAAc,CAAC,GAAK,GAChC,YAAaD,IAAY,CAAC,GAAK,GAC/B,IAAKF,GAAO,GACZ,gBAAiBE,IAAY,CAAC,GAAK,GACnC,sBAAuBA,IAAY,CAAC,GAAK,EAC3C,CACF,CAAC,CACH,EACME,EAAW,IAAI,iBAAiB,IAAM,CAC1C,SAAS,iBAAiB,2BAA2B,EAAE,QAAQR,GAAM,CAC9DA,EAAG,aAAa,2BAA2B,IAC9CA,EAAG,iBAAiB,QAASD,GAAKD,EAAiBC,EAAGC,CAAE,CAAC,EACzDA,EAAG,aAAa,4BAA6B,MAAM,EAEvD,CAAC,CACH,CAAC,EACD,OAAAQ,EAAS,QAAQ,SAAS,KAAM,CAAE,UAAW,GAAM,QAAS,EAAK,CAAC,EAElE,SAAS,iBAAiB,2BAA2B,EAAE,QAAQR,GAAM,CAC9DA,EAAG,aAAa,2BAA2B,IAC9CA,EAAG,iBAAiB,QAASD,GAAKD,EAAiBC,EAAGC,CAAE,CAAC,EACzDA,EAAG,aAAa,4BAA6B,MAAM,EAEvD,CAAC,EACM,IAAMQ,EAAS,WAAW,CAEnC,EAAG,CAAC,CAAC,KAEE,OAACpB,EAAY,SAAZ,CAAqB,MAAOS,EAAO,SAAAD,EAAS,GAGtD,IAAOP,EAAQM",
6
6
  "names": ["AiuiProvider_exports", "__export", "AiuiContext", "AiuiProvider_default", "useAiuiContext", "__toCommonJS", "import_jsx_runtime", "import_track", "import_react", "AiuiProvider", "children", "rest", "handleTrackClick", "e", "el", "out", "attr", "name", "sku", "nameType", "titleDesc", "navPosition", "observer"]
7
7
  }
@@ -0,0 +1,42 @@
1
+ import * as React from 'react';
2
+ import { type VariantProps } from 'class-variance-authority';
3
+ export interface AnchorNavigationSemanticName {
4
+ root: 'root';
5
+ content: 'content';
6
+ item: 'item';
7
+ }
8
+ /**
9
+ * 导航项对齐方向样式变体
10
+ */
11
+ declare const anchorNavigationVariants: (props?: ({
12
+ alignment?: "end" | "start" | "center" | null | undefined;
13
+ size?: "small" | "large" | null | undefined;
14
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
15
+ /**
16
+ * AnchorNavigation 业务组件数据接口
17
+ */
18
+ export interface AnchorNavigationData {
19
+ /** 锚点列表 */
20
+ sectionIds: {
21
+ targetId: string;
22
+ label: string;
23
+ }[];
24
+ /** 导航项水平对齐方式 */
25
+ alignment?: 'start' | 'center' | 'end';
26
+ /** 主题模式 */
27
+ theme?: 'light' | 'dark';
28
+ /** 导航大小 */
29
+ size?: 'small' | 'large';
30
+ }
31
+ export interface AnchorNavigationProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof anchorNavigationVariants> {
32
+ /** 业务数据 */
33
+ data: AnchorNavigationData;
34
+ classNames?: Partial<Record<keyof AnchorNavigationSemanticName, string>>;
35
+ }
36
+ /**
37
+ * AnchorNavigation - 锚点导航
38
+ *
39
+ * @description 锚点导航
40
+ */
41
+ declare const AnchorNavigation: React.ForwardRefExoticComponent<AnchorNavigationProps & React.RefAttributes<HTMLDivElement>>;
42
+ export default AnchorNavigation;
@@ -0,0 +1,2 @@
1
+ "use strict";"use client";var T=Object.create;var g=Object.defineProperty;var E=Object.getOwnPropertyDescriptor;var H=Object.getOwnPropertyNames;var D=Object.getPrototypeOf,L=Object.prototype.hasOwnProperty;var V=(t,e)=>{for(var n in e)g(t,n,{get:e[n],enumerable:!0})},y=(t,e,n,f)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of H(e))!L.call(t,o)&&o!==n&&g(t,o,{get:()=>e[o],enumerable:!(f=E(e,o))||f.enumerable});return t};var A=(t,e,n)=>(n=t!=null?T(D(t)):{},y(e||!t||!t.__esModule?g(n,"default",{value:t,enumerable:!0}):n,t)),z=t=>y(g({},"__esModule",{value:!0}),t);var S={};V(S,{default:()=>B});module.exports=z(S);var v=require("react/jsx-runtime"),l=A(require("react")),u=require("../../helpers/utils.js"),p=require("class-variance-authority"),k=A(require("./useAnchorPosition.js"));const M=(0,p.cva)("anchor-navigation-content flex items-center overflow-x-auto [&::-webkit-scrollbar]:hidden",{variants:{alignment:{start:"tablet:justify-start",center:"tablet:justify-center",end:"tablet:justify-end"},size:{small:"gap-3",large:"gap-6"}},defaultVariants:{alignment:"start",size:"small"}}),P=(0,p.cva)("anchor-navigation-item after:bg-brand relative shrink-0 text-sm font-bold after:absolute after:bottom-0 after:left-0 after:h-1 after:w-0 after:opacity-0 after:transition-all after:duration-300",{variants:{size:{small:"py-3",large:"py-4"}},defaultVariants:{size:"small"}}),C=(0,p.cva)("tablet:px-8 laptop:px-16 desktop:px-16 lg-desktop:px-[calc(50%-832px)] sticky top-0 z-40 w-full px-4",{variants:{theme:{light:"bg-white",dark:"bg-[#1E2024]"}},defaultVariants:{theme:"light"}}),N=l.forwardRef(({classNames:t={},data:e},n)=>{const{alignment:f="start",theme:o="light",size:x="small"}=e,m=(0,k.default)(e.sectionIds?.map(a=>a.targetId)||[]),d=l.useRef(null),h=l.useRef(null),I=l.useRef([]);l.useImperativeHandle(n,()=>d.current);const b=l.useCallback(a=>{const i=I.current[a];if(i&&h.current){const r=h.current,s=i,c=s.offsetLeft-r.offsetWidth/2+s.offsetWidth/2;typeof r.scrollTo=="function"&&r.scrollTo({left:c,behavior:"smooth"})}},[]);return l.useEffect(()=>{if(!m)return;const a=e.sectionIds?.findIndex(i=>i.targetId===m);a!==void 0&&a!==-1&&b(a)},[m,e.sectionIds,b]),(0,v.jsx)("div",{ref:d,className:(0,u.cn)(C({theme:o}),t?.root),children:(0,v.jsx)("div",{ref:h,className:(0,u.cn)(M({alignment:f,size:x}),"relative",t?.content),children:e.sectionIds?.map((a,i)=>{const r=m===a.targetId,s=o==="dark";return(0,v.jsx)("button",{ref:c=>{c&&(I.current[i]=c)},onClick:()=>{b(i);const c=document.getElementById(a.targetId);if(c&&d.current){const w=d.current.offsetHeight,R=c.getBoundingClientRect().top+window.scrollY-w;window.scrollTo({top:R,behavior:"smooth"})}},className:(0,u.cn)(P({size:x}),{"text-[#4A4C56]":!s&&!r,"text-[#080A0F] after:w-full after:opacity-100":!s&&r,"text-[#8A8D92]":s&&!r,"text-white after:w-full after:opacity-100":s&&r},t?.item),children:a.label},a.targetId)})})})});N.displayName="AnchorNavigation";var B=N;
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/biz-components/AnchorNavigation/index.tsx"],
4
+ "sourcesContent": ["'use client'\n\nimport * as React from 'react'\nimport { cn } from '../../helpers/utils.js'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport useAnchorPosition from './useAnchorPosition.js'\n\nexport interface AnchorNavigationSemanticName {\n root: 'root'\n content: 'content'\n item: 'item'\n}\n\n/**\n * \u5BFC\u822A\u9879\u5BF9\u9F50\u65B9\u5411\u6837\u5F0F\u53D8\u4F53\n */\nconst anchorNavigationVariants = cva(\n 'anchor-navigation-content flex items-center overflow-x-auto [&::-webkit-scrollbar]:hidden',\n {\n variants: {\n alignment: {\n start: 'tablet:justify-start',\n center: 'tablet:justify-center',\n end: 'tablet:justify-end',\n },\n size: {\n small: 'gap-3',\n large: 'gap-6',\n },\n },\n defaultVariants: {\n alignment: 'start',\n size: 'small',\n },\n }\n)\n\n/**\n * \u5BFC\u822A\u9879\u6837\u5F0F\u53D8\u4F53\n */\nconst anchorItemVariants = cva(\n 'anchor-navigation-item after:bg-brand relative shrink-0 text-sm font-bold after:absolute after:bottom-0 after:left-0 after:h-1 after:w-0 after:opacity-0 after:transition-all after:duration-300',\n {\n variants: {\n size: {\n small: 'py-3',\n large: 'py-4',\n },\n },\n defaultVariants: {\n size: 'small',\n },\n }\n)\n\n/**\n * \u5BB9\u5668\u4E3B\u9898\u6837\u5F0F\u53D8\u4F53\n */\nconst containerVariants = cva(\n 'tablet:px-8 laptop:px-16 desktop:px-16 lg-desktop:px-[calc(50%-832px)] sticky top-0 z-40 w-full px-4',\n {\n variants: {\n theme: {\n light: 'bg-white',\n dark: 'bg-[#1E2024]',\n },\n },\n defaultVariants: {\n theme: 'light',\n },\n }\n)\n\n/**\n * AnchorNavigation \u4E1A\u52A1\u7EC4\u4EF6\u6570\u636E\u63A5\u53E3\n */\nexport interface AnchorNavigationData {\n /** \u951A\u70B9\u5217\u8868 */\n sectionIds: {\n targetId: string\n label: string\n }[]\n /** \u5BFC\u822A\u9879\u6C34\u5E73\u5BF9\u9F50\u65B9\u5F0F */\n alignment?: 'start' | 'center' | 'end'\n /** \u4E3B\u9898\u6A21\u5F0F */\n theme?: 'light' | 'dark'\n /** \u5BFC\u822A\u5927\u5C0F */\n size?: 'small' | 'large'\n}\n\nexport interface AnchorNavigationProps\n extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof anchorNavigationVariants> {\n /** \u4E1A\u52A1\u6570\u636E */\n data: AnchorNavigationData\n classNames?: Partial<Record<keyof AnchorNavigationSemanticName, string>>\n}\n\n/**\n * AnchorNavigation - \u951A\u70B9\u5BFC\u822A\n *\n * @description \u951A\u70B9\u5BFC\u822A\n */\nconst AnchorNavigation = React.forwardRef<HTMLDivElement, AnchorNavigationProps>(({ classNames = {}, data }, ref) => {\n const { alignment = 'start', theme = 'light', size = 'small' } = data\n const activeId = useAnchorPosition(data.sectionIds?.map(item => item.targetId) || [])\n const rootRef = React.useRef<HTMLDivElement>(null)\n const containerRef = React.useRef<HTMLDivElement>(null)\n const sectionRefs = React.useRef<HTMLButtonElement[]>([])\n\n // \u66B4\u9732 rootRef \u7ED9\u5916\u90E8 ref\n React.useImperativeHandle(ref, () => rootRef.current as HTMLDivElement)\n\n const autoScrollToActiveItem = React.useCallback((activeIdIndex: number) => {\n const curRef = sectionRefs.current[activeIdIndex]\n\n if (curRef && containerRef.current) {\n const container = containerRef.current\n const button = curRef\n const scrollLeft = button.offsetLeft - container.offsetWidth / 2 + button.offsetWidth / 2\n\n // \u68C0\u67E5 scrollTo \u65B9\u6CD5\u662F\u5426\u5B58\u5728\uFF08\u517C\u5BB9\u6D4B\u8BD5\u73AF\u5883\u548C\u65E7\u6D4F\u89C8\u5668\uFF09\n if (typeof container.scrollTo === 'function') {\n container.scrollTo({\n left: scrollLeft,\n behavior: 'smooth',\n })\n }\n }\n }, [])\n\n // \u5F53\u5C4F\u5E55\u6EDA\u52A8\u5BFC\u81F4 activeId \u53D8\u5316\u65F6\uFF0C\u81EA\u52A8\u6EDA\u52A8\u5BFC\u822A\u680F\u5230\u5BF9\u5E94\u9879\n React.useEffect(() => {\n if (!activeId) return\n\n const activeIndex = data.sectionIds?.findIndex(item => item.targetId === activeId)\n if (activeIndex !== undefined && activeIndex !== -1) {\n autoScrollToActiveItem(activeIndex)\n }\n }, [activeId, data.sectionIds, autoScrollToActiveItem])\n\n return (\n <div ref={rootRef} className={cn(containerVariants({ theme }), classNames?.root)}>\n <div\n ref={containerRef}\n className={cn(anchorNavigationVariants({ alignment, size }), 'relative', classNames?.content)}\n >\n {data.sectionIds?.map((item, index) => {\n const isActive = activeId === item.targetId\n const isDark = theme === 'dark'\n\n return (\n <button\n key={item.targetId}\n ref={el => {\n if (el) {\n sectionRefs.current[index] = el\n }\n }}\n onClick={() => {\n autoScrollToActiveItem(index)\n\n // \u624B\u52A8\u8BA1\u7B97\u6EDA\u52A8\u4F4D\u7F6E\uFF0C\u8003\u8651\u5BFC\u822A\u680F\u9AD8\u5EA6\n const targetElement = document.getElementById(item.targetId)\n if (targetElement && rootRef.current) {\n const navHeight = rootRef.current.offsetHeight\n const targetPosition = targetElement.getBoundingClientRect().top + window.scrollY - navHeight\n\n window.scrollTo({\n top: targetPosition,\n behavior: 'smooth',\n })\n }\n }}\n className={cn(\n anchorItemVariants({ size }),\n {\n // Light theme colors\n 'text-[#4A4C56]': !isDark && !isActive,\n 'text-[#080A0F] after:w-full after:opacity-100': !isDark && isActive,\n // Dark theme colors\n 'text-[#8A8D92]': isDark && !isActive,\n 'text-white after:w-full after:opacity-100': isDark && isActive,\n },\n classNames?.item\n )}\n >\n {item.label}\n </button>\n )\n })}\n </div>\n </div>\n )\n})\n\nAnchorNavigation.displayName = 'AnchorNavigation'\nexport default AnchorNavigation\n"],
5
+ "mappings": "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",
6
+ "names": ["AnchorNavigation_exports", "__export", "AnchorNavigation_default", "__toCommonJS", "import_jsx_runtime", "React", "import_utils", "import_class_variance_authority", "import_useAnchorPosition", "anchorNavigationVariants", "anchorItemVariants", "containerVariants", "AnchorNavigation", "classNames", "data", "ref", "alignment", "theme", "size", "activeId", "useAnchorPosition", "item", "rootRef", "containerRef", "sectionRefs", "autoScrollToActiveItem", "activeIdIndex", "curRef", "container", "button", "scrollLeft", "activeIndex", "index", "isActive", "isDark", "el", "targetElement", "navHeight", "targetPosition"]
7
+ }
@@ -0,0 +1,2 @@
1
+ declare const useAnchorPosition: (sectionIds: string[], offset?: number) => string;
2
+ export default useAnchorPosition;
@@ -0,0 +1,2 @@
1
+ "use strict";var i=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var g=Object.getOwnPropertyNames;var h=Object.prototype.hasOwnProperty;var v=(e,t)=>{for(var n in t)i(e,n,{get:t[n],enumerable:!0})},p=(e,t,n,l)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of g(t))!h.call(e,o)&&o!==n&&i(e,o,{get:()=>t[o],enumerable:!(l=m(t,o))||l.enumerable});return e};var E=e=>p(i({},"__esModule",{value:!0}),e);var S={};v(S,{default:()=>A});module.exports=E(S);var c=require("react"),s=require("es-toolkit");const b=(e,t=100)=>{const[n,l]=(0,c.useState)(e[0]||"");return(0,c.useEffect)(()=>{const o=()=>{const a=Math.ceil(window.scrollY+t+10);let u=!1;for(let r=e.length-1;r>=0;r--){const f=document.getElementById(e[r]);if(f){const w=Math.ceil(f.getBoundingClientRect().top+window.scrollY);if(a>=w){l(e[r]),u=!0;break}}}!u&&e.length>0&&l(e[0])};o();const d=(0,s.debounce)(o,50);return window.addEventListener("scroll",d),()=>{window.removeEventListener("scroll",d)}},[e,t]),n};var A=b;
2
+ //# sourceMappingURL=useAnchorPosition.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/biz-components/AnchorNavigation/useAnchorPosition.tsx"],
4
+ "sourcesContent": ["import { useState, useEffect } from 'react'\nimport { debounce } from 'es-toolkit'\n\nconst useAnchorPosition = (sectionIds: string[], offset = 100) => {\n const [activeId, setActiveId] = useState(sectionIds[0] || '')\n\n useEffect(() => {\n const handleScroll = () => {\n const scrollPosition = Math.ceil(window.scrollY + offset + 10)\n\n let foundActiveId = false\n\n // \u904D\u5386\u6240\u6709section\uFF0C\u627E\u5230\u5F53\u524D\u53EF\u89C6\u533A\u57DF\u5185\u7684section\n for (let i = sectionIds.length - 1; i >= 0; i--) {\n const section = document.getElementById(sectionIds[i])\n if (section) {\n const offsetTop = Math.ceil(section.getBoundingClientRect().top + window.scrollY)\n if (scrollPosition >= offsetTop) {\n setActiveId(sectionIds[i])\n foundActiveId = true\n break\n }\n }\n }\n\n // \u5982\u679C\u6EDA\u52A8\u8DDD\u79BB\u5C0F\u4E8E\u7B2C\u4E00\u4E2Asection\u7684offset\uFF0C\u8BBE\u7F6E\u4E3A\u7B2C\u4E00\u4E2Asection\n if (!foundActiveId && sectionIds.length > 0) {\n setActiveId(sectionIds[0])\n }\n }\n\n // \u521D\u59CB\u5316\u65F6\u6267\u884C\u4E00\u6B21\n handleScroll()\n\n // \u521B\u5EFAdebounce\u51FD\u6570\u5E76\u4FDD\u5B58\u5F15\u7528\uFF0C\u786E\u4FDD\u80FD\u6B63\u786E\u79FB\u9664\u76D1\u542C\u5668\n const debouncedHandleScroll = debounce(handleScroll, 50)\n window.addEventListener('scroll', debouncedHandleScroll)\n\n return () => {\n window.removeEventListener('scroll', debouncedHandleScroll)\n }\n }, [sectionIds, offset])\n\n return activeId\n}\n\nexport default useAnchorPosition\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAoC,iBACpCC,EAAyB,sBAEzB,MAAMC,EAAoB,CAACC,EAAsBC,EAAS,MAAQ,CAChE,KAAM,CAACC,EAAUC,CAAW,KAAI,YAASH,EAAW,CAAC,GAAK,EAAE,EAE5D,sBAAU,IAAM,CACd,MAAMI,EAAe,IAAM,CACzB,MAAMC,EAAiB,KAAK,KAAK,OAAO,QAAUJ,EAAS,EAAE,EAE7D,IAAIK,EAAgB,GAGpB,QAASC,EAAIP,EAAW,OAAS,EAAGO,GAAK,EAAGA,IAAK,CAC/C,MAAMC,EAAU,SAAS,eAAeR,EAAWO,CAAC,CAAC,EACrD,GAAIC,EAAS,CACX,MAAMC,EAAY,KAAK,KAAKD,EAAQ,sBAAsB,EAAE,IAAM,OAAO,OAAO,EAChF,GAAIH,GAAkBI,EAAW,CAC/BN,EAAYH,EAAWO,CAAC,CAAC,EACzBD,EAAgB,GAChB,KACF,CACF,CACF,CAGI,CAACA,GAAiBN,EAAW,OAAS,GACxCG,EAAYH,EAAW,CAAC,CAAC,CAE7B,EAGAI,EAAa,EAGb,MAAMM,KAAwB,YAASN,EAAc,EAAE,EACvD,cAAO,iBAAiB,SAAUM,CAAqB,EAEhD,IAAM,CACX,OAAO,oBAAoB,SAAUA,CAAqB,CAC5D,CACF,EAAG,CAACV,EAAYC,CAAM,CAAC,EAEhBC,CACT,EAEA,IAAOP,EAAQI",
6
+ "names": ["useAnchorPosition_exports", "__export", "useAnchorPosition_default", "__toCommonJS", "import_react", "import_es_toolkit", "useAnchorPosition", "sectionIds", "offset", "activeId", "setActiveId", "handleScroll", "scrollPosition", "foundActiveId", "i", "section", "offsetTop", "debouncedHandleScroll"]
7
+ }
@@ -15,8 +15,8 @@ type AplusDescType = {
15
15
  };
16
16
  className?: string;
17
17
  };
18
- declare const _default: import("react").ForwardRefExoticComponent<Omit<AplusDescType, keyof import("../../shared/Styles.js").StylesProps> & Partial<import("../../shared/Styles.js").StylesProps & import("../../shared/Styles.js").ContainerProps> & {
19
- className?: string;
20
- data?: Record<string, any>;
18
+ declare const _default: import("react").ForwardRefExoticComponent<AplusDescType & {
19
+ style?: string | React.CSSProperties;
20
+ container?: import("../../shared/Styles.js").ContainerProps["container"];
21
21
  } & import("react").RefAttributes<any>>;
22
22
  export default _default;
@@ -1,6 +1,6 @@
1
1
  import type { BrandCardLinkProps } from './types.js';
2
- declare const _default: import("react").ForwardRefExoticComponent<Omit<Omit<BrandCardLinkProps & 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<BrandCardLinkProps & 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 T=Object.create;var m=Object.defineProperty;var A=Object.getOwnPropertyDescriptor;var E=Object.getOwnPropertyNames;var I=Object.getPrototypeOf,P=Object.prototype.hasOwnProperty;var j=(e,i)=>{for(var r in i)m(e,r,{get:i[r],enumerable:!0})},g=(e,i,r,s)=>{if(i&&typeof i=="object"||typeof i=="function")for(let n of E(i))!P.call(e,n)&&n!==r&&m(e,n,{get:()=>i[n],enumerable:!(s=A(i,n))||s.enumerable});return e};var h=(e,i,r)=>(r=e!=null?T(I(e)):{},g(i||!e||!e.__esModule?m(r,"default",{value:e,enumerable:!0}):r,e)),D=e=>g(m({},"__esModule",{value:!0}),e);var F={};j(F,{default:()=>z});module.exports=D(F);var t=require("react/jsx-runtime"),o=require("react"),a=require("../../helpers/utils.js"),b=h(require("../../components/picture.js")),y=require("../../shared/Styles.js"),N=require("react-responsive"),L=require("../../hooks/useExposure.js"),c=require("swiper/react"),l=require("swiper/modules"),W=require("../Title/index.js"),M=h(require("../../components/link.js"));const H="copy",q="store_benefits",R=(e,i)=>{const r=[];for(let s=0;s<e.length;s+=i)r.push(e.slice(s,s+i));return r},v=(0,o.forwardRef)(({data:{items:e=[],itemShape:i},className:r},s)=>{const[n,S]=(0,o.useState)(!1),f=(0,N.useMediaQuery)({query:"(max-width: 768px)"}),x=(0,o.useRef)(null),u=(0,o.useRef)(null);(0,o.useImperativeHandle)(s,()=>u.current),(0,L.useExposure)(u,{componentType:H,componentName:q}),(0,o.useEffect)(()=>{S(f)},[f]);const B=n?R(e,3):e;return(0,t.jsx)("div",{ref:u,className:(0,a.cn)("brand-equity-wrapper w-full",r),children:n?(0,t.jsxs)(c.Swiper,{className:(0,a.cn)(r),modules:[l.FreeMode,l.Mousewheel,l.Pagination],freeMode:!0,mousewheel:{forceToAxis:!0},pagination:{clickable:!0,el:x.current},breakpoints:{0:{spaceBetween:12}},children:[B?.map((p,d)=>(0,t.jsx)(c.SwiperSlide,{className:"!flex flex-col gap-3",children:Array.isArray(p)&&p?.map((C,k)=>(0,t.jsx)(w,{data:C,itemShape:i,index:k},k))},"SwiperSlide"+d)),(0,t.jsx)("div",{ref:x,className:"mt-3 flex justify-center"})]}):(0,t.jsx)("div",{className:(0,a.cn)("laptop:gap-4 tablet:grid-cols-2 laptop:grid-cols-4 grid grid-cols-1 gap-3"),children:e.map((p,d)=>(0,t.jsx)(w,{data:p,itemShape:i,index:d},d))})})}),w=({data:e,itemShape:i,index:r})=>(0,t.jsxs)("div",{className:(0,a.cn)("brand-equity-item","lg-desktop:p-8 desktop:p-6 p-4","laptop:h-[192px] lg-desktop:h-[240px] h-[160px]","box-border flex w-full flex-col justify-between overflow-hidden bg-[#DAE7F2]",i==="round"?"rounded-box":"rounded-none"),children:[(0,t.jsxs)("div",{className:"lg-desktop:h-[50px] flex h-10 items-center justify-between gap-3",children:[(0,t.jsx)("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]",children:e.title}),(0,t.jsx)("div",{className:"link-item-img lg-desktop:size-[36px] size-[30px] shrink-0",children:(0,t.jsx)(b.default,{className:"size-full object-cover",source:e.icon?.url,alt:e.icon?.alt,imgClassName:"w-full h-full object-cover"})})]}),(0,t.jsxs)("div",{className:"box-border overflow-hidden",children:[(0,t.jsx)("p",{title:e.description||"",className:"link-item-description lg-desktop:text-[24px] line-clamp-2 text-[20px] font-semibold leading-[1.2] tracking-[-0.04em] text-[#767880]",children:e.description||""}),(0,t.jsxs)(M.default,{href:e?.link,asChild:!e?.link,className:"desktop:mt-4 mt-2 flex items-center gap-0.5 no-underline hover:underline",children:[(0,t.jsx)("span",{className:"link-item-text laptop:text-base text-sm",children:e?.linkText}),(0,t.jsx)("div",{className:"size-6",children:(0,t.jsx)("svg",{width:"24",height:"24",className:"mb-[3px]",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",children:(0,t.jsx)("path",{className:"transition-all duration-[0.4s]",d:"M10.5 8L14.5 12L10.5 16",stroke:"#777",strokeWidth:"1.5",strokeLinecap:"round"})})})]})]})]});v.displayName="BrandCardLink";var z=(0,y.withLayout)(v);
1
+ "use strict";"use client";var T=Object.create;var m=Object.defineProperty;var A=Object.getOwnPropertyDescriptor;var E=Object.getOwnPropertyNames;var I=Object.getPrototypeOf,P=Object.prototype.hasOwnProperty;var j=(e,i)=>{for(var r in i)m(e,r,{get:i[r],enumerable:!0})},g=(e,i,r,s)=>{if(i&&typeof i=="object"||typeof i=="function")for(let n of E(i))!P.call(e,n)&&n!==r&&m(e,n,{get:()=>i[n],enumerable:!(s=A(i,n))||s.enumerable});return e};var h=(e,i,r)=>(r=e!=null?T(I(e)):{},g(i||!e||!e.__esModule?m(r,"default",{value:e,enumerable:!0}):r,e)),D=e=>g(m({},"__esModule",{value:!0}),e);var F={};j(F,{default:()=>z});module.exports=D(F);var t=require("react/jsx-runtime"),o=require("react"),a=require("../../helpers/utils.js"),b=h(require("../../components/picture.js")),y=require("../../shared/Styles.js"),N=require("react-responsive"),L=require("../../hooks/useExposure.js"),c=require("swiper/react"),l=require("swiper/modules"),W=require("../Title/index.js"),M=h(require("../../components/link.js"));const H="copy",q="store_benefits",R=(e,i)=>{const r=[];for(let s=0;s<e.length;s+=i)r.push(e.slice(s,s+i));return r},v=(0,o.forwardRef)(({data:{items:e=[],itemShape:i},className:r},s)=>{const[n,S]=(0,o.useState)(!1),f=(0,N.useMediaQuery)({query:"(max-width: 768px)"}),x=(0,o.useRef)(null),u=(0,o.useRef)(null);(0,o.useImperativeHandle)(s,()=>u.current),(0,L.useExposure)(u,{componentType:H,componentName:q}),(0,o.useEffect)(()=>{S(f)},[f]);const B=n?R(e,4):e;return(0,t.jsx)("div",{ref:u,className:(0,a.cn)("brand-equity-wrapper w-full",r),children:n?(0,t.jsxs)(c.Swiper,{className:(0,a.cn)(r),modules:[l.FreeMode,l.Mousewheel,l.Pagination],freeMode:!0,mousewheel:{forceToAxis:!0},pagination:{clickable:!0,el:x.current},breakpoints:{0:{spaceBetween:12}},children:[B?.map((p,d)=>(0,t.jsx)(c.SwiperSlide,{className:"!flex flex-col gap-3",children:Array.isArray(p)&&p?.map((C,k)=>(0,t.jsx)(w,{data:C,itemShape:i,index:k},k))},"SwiperSlide"+d)),(0,t.jsx)("div",{ref:x,className:"mt-3 flex justify-center"})]}):(0,t.jsx)("div",{className:(0,a.cn)("laptop:gap-4 tablet:grid-cols-2 laptop:grid-cols-4 grid grid-cols-1 gap-3"),children:e.map((p,d)=>(0,t.jsx)(w,{data:p,itemShape:i,index:d},d))})})}),w=({data:e,itemShape:i,index:r})=>(0,t.jsxs)("div",{className:(0,a.cn)("brand-equity-item","lg-desktop:p-8 desktop:p-6 p-4","laptop:h-[192px] lg-desktop:h-[240px] h-[160px]","box-border flex w-full flex-col justify-between overflow-hidden bg-[#DAE7F2]",i==="round"?"rounded-box":"rounded-none"),children:[(0,t.jsxs)("div",{className:"lg-desktop:h-[50px] flex h-10 items-center justify-between gap-3",children:[(0,t.jsx)("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]",children:e.title}),(0,t.jsx)("div",{className:"link-item-img lg-desktop:size-[36px] size-[30px] shrink-0",children:(0,t.jsx)(b.default,{className:"size-full object-cover",source:e.icon?.url,alt:e.icon?.alt,imgClassName:"w-full h-full object-cover"})})]}),(0,t.jsxs)("div",{className:"box-border overflow-hidden",children:[(0,t.jsx)("p",{title:e.description||"",className:"link-item-description lg-desktop:text-[24px] line-clamp-2 text-[20px] font-semibold leading-[1.2] tracking-[-0.04em] text-[#767880]",children:e.description||""}),(0,t.jsxs)(M.default,{href:e?.link,asChild:!e?.link,className:"desktop:mt-4 mt-2 flex items-center gap-0.5 no-underline hover:underline",children:[(0,t.jsx)("span",{className:"link-item-text laptop:text-base text-sm",children:e?.linkText}),(0,t.jsx)("div",{className:"size-6",children:(0,t.jsx)("svg",{width:"24",height:"24",className:"mb-[3px]",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",children:(0,t.jsx)("path",{className:"transition-all duration-[0.4s]",d:"M10.5 8L14.5 12L10.5 16",stroke:"#777",strokeWidth:"1.5",strokeLinecap:"round"})})})]})]})]});v.displayName="BrandCardLink";var z=(0,y.withLayout)(v);
2
2
  //# sourceMappingURL=BrandCardLink.js.map