@anker-in/headless-ui 1.1.28-alpha.1768202456200 → 1.1.29

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 (900) hide show
  1. package/dist/cjs/biz-components/AccordionCards/index.d.ts +3 -3
  2. package/dist/cjs/biz-components/AiuiProvider/index.d.ts +0 -7
  3. package/dist/cjs/biz-components/AiuiProvider/index.js +1 -1
  4. package/dist/cjs/biz-components/AiuiProvider/index.js.map +2 -2
  5. package/dist/cjs/biz-components/AplusDesc/index.d.ts +3 -3
  6. package/dist/cjs/biz-components/BrandEquity/BrandEquity.d.ts +3 -3
  7. package/dist/cjs/biz-components/BrandEquity/BrandEquity.js +1 -1
  8. package/dist/cjs/biz-components/BrandEquity/BrandEquity.js.map +2 -2
  9. package/dist/cjs/biz-components/BrandEquity/types.d.ts +0 -1
  10. package/dist/cjs/biz-components/BrandEquity/types.js +1 -1
  11. package/dist/cjs/biz-components/BrandEquity/types.js.map +1 -1
  12. package/dist/cjs/biz-components/Category/index.d.ts +3 -3
  13. package/dist/cjs/biz-components/CreativeModule/index.d.ts +3 -3
  14. package/dist/cjs/biz-components/DownLoad/index.d.ts +3 -3
  15. package/dist/cjs/biz-components/Evaluate/index.d.ts +3 -3
  16. package/dist/cjs/biz-components/Evaluate/index.js +1 -1
  17. package/dist/cjs/biz-components/Evaluate/index.js.map +2 -2
  18. package/dist/cjs/biz-components/Faq/Faq.d.ts +3 -3
  19. package/dist/cjs/biz-components/FeatureCards/FeatureCards.d.ts +3 -3
  20. package/dist/cjs/biz-components/FeatureShowcase/FeatureShowcase.d.ts +3 -3
  21. package/dist/cjs/biz-components/Features/index.d.ts +3 -3
  22. package/dist/cjs/biz-components/FootCharger/index.d.ts +3 -3
  23. package/dist/cjs/biz-components/FooterNavigation/index.d.ts +3 -3
  24. package/dist/cjs/biz-components/GiftBox/index.d.ts +3 -3
  25. package/dist/cjs/biz-components/Graphic/index.d.ts +3 -3
  26. package/dist/cjs/biz-components/GraphicAttractionBlock/index.d.ts +3 -3
  27. package/dist/cjs/biz-components/GraphicMore/index.d.ts +3 -3
  28. package/dist/cjs/biz-components/GraphicOverlay/GraphicOverlay.d.ts +3 -3
  29. package/dist/cjs/biz-components/HeaderNavigation/index.d.ts +3 -3
  30. package/dist/cjs/biz-components/HeroBanner/Countdown.js +1 -1
  31. package/dist/cjs/biz-components/HeroBanner/Countdown.js.map +2 -2
  32. package/dist/cjs/biz-components/HeroBanner/HeroBanner.d.ts +3 -6
  33. package/dist/cjs/biz-components/HeroBanner/HeroBanner.js +1 -1
  34. package/dist/cjs/biz-components/HeroBanner/HeroBanner.js.map +3 -3
  35. package/dist/cjs/biz-components/HeroBanner/types.d.ts +0 -4
  36. package/dist/cjs/biz-components/HeroBanner/types.js +1 -1
  37. package/dist/cjs/biz-components/HeroBanner/types.js.map +1 -1
  38. package/dist/cjs/biz-components/ImageTextFeature/ImageTextFeature.d.ts +3 -3
  39. package/dist/cjs/biz-components/ImageTextFeature/ImageTextFeature.js +1 -1
  40. package/dist/cjs/biz-components/ImageTextFeature/ImageTextFeature.js.map +3 -3
  41. package/dist/cjs/biz-components/ImageTextFeature/types.d.ts +0 -1
  42. package/dist/cjs/biz-components/ImageTextFeature/types.js +1 -1
  43. package/dist/cjs/biz-components/ImageTextFeature/types.js.map +1 -1
  44. package/dist/cjs/biz-components/ImageWithText/ImageWithText.d.ts +3 -3
  45. package/dist/cjs/biz-components/Ksp/index.d.ts +3 -3
  46. package/dist/cjs/biz-components/Listing/components/PaidShipping/index.d.ts +4 -4
  47. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/BenefitsTab.d.ts +3 -3
  48. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductBundle/index.d.ts +3 -3
  49. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductExchangePurchase/index.d.ts +3 -3
  50. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductFreeGift/index.d.ts +3 -3
  51. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductHighlight/index.d.ts +3 -3
  52. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductOptions/index.d.ts +3 -3
  53. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGallery/index.d.ts +3 -3
  54. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductSummary/index.d.ts +3 -3
  55. package/dist/cjs/biz-components/Listing/components/PurchaseBar/index.d.ts +3 -3
  56. package/dist/cjs/biz-components/Marquee/Marquee.d.ts +3 -3
  57. package/dist/cjs/biz-components/Marquee/Marquee.js +1 -1
  58. package/dist/cjs/biz-components/Marquee/Marquee.js.map +3 -3
  59. package/dist/cjs/biz-components/MarqueeReview/index.d.ts +3 -3
  60. package/dist/cjs/biz-components/MediaPlayerBase/index.d.ts +3 -3
  61. package/dist/cjs/biz-components/MediaPlayerMulti/index.d.ts +3 -3
  62. package/dist/cjs/biz-components/MediaPlayerSticky/index.d.ts +4 -4
  63. package/dist/cjs/biz-components/MediaPlayerSticky/types.d.ts +0 -1
  64. package/dist/cjs/biz-components/MediaPlayerSticky/types.js +1 -1
  65. package/dist/cjs/biz-components/MediaPlayerSticky/types.js.map +1 -1
  66. package/dist/cjs/biz-components/MediaSceneSwitcher/MediaSceneSwitcher.d.ts +3 -3
  67. package/dist/cjs/biz-components/MemberEquity/index.d.ts +3 -3
  68. package/dist/cjs/biz-components/MultiLayoutGraphicBlock/MultiLayoutGraphicBlock.d.ts +3 -3
  69. package/dist/cjs/biz-components/ProductCompare/index.d.ts +3 -3
  70. package/dist/cjs/biz-components/ProductHero/ProductHero.d.ts +3 -3
  71. package/dist/cjs/biz-components/ProductNav/ProductNav.d.ts +3 -3
  72. package/dist/cjs/biz-components/SelectStore/index.d.ts +3 -3
  73. package/dist/cjs/biz-components/ShelfDisplay/index.d.ts +3 -3
  74. package/dist/cjs/biz-components/ShelfDisplay/shelfDisplay.d.ts +11 -0
  75. package/dist/cjs/biz-components/ShelfDisplay/shelfDisplay.js +1 -1
  76. package/dist/cjs/biz-components/ShelfDisplay/shelfDisplay.js.map +3 -3
  77. package/dist/cjs/biz-components/ShelfDisplay/shelfDisplayItem.js +4 -4
  78. package/dist/cjs/biz-components/ShelfDisplay/shelfDisplayItem.js.map +3 -3
  79. package/dist/cjs/biz-components/Slogan/index.d.ts +3 -3
  80. package/dist/cjs/biz-components/Spacer/index.d.ts +3 -3
  81. package/dist/cjs/biz-components/Specs/index.d.ts +3 -3
  82. package/dist/cjs/biz-components/SpecsComparison/SpecsComparison.d.ts +3 -3
  83. package/dist/cjs/biz-components/TabWithImage/TabWithImage.d.ts +3 -3
  84. package/dist/cjs/biz-components/Tabs/Tabs.d.ts +3 -3
  85. package/dist/cjs/biz-components/Tabs/Tabs.js +1 -1
  86. package/dist/cjs/biz-components/Tabs/Tabs.js.map +3 -3
  87. package/dist/cjs/biz-components/Tabs/types.d.ts +0 -9
  88. package/dist/cjs/biz-components/Tabs/types.js +1 -1
  89. package/dist/cjs/biz-components/Tabs/types.js.map +1 -1
  90. package/dist/cjs/biz-components/TabsGroup/index.d.ts +3 -3
  91. package/dist/cjs/biz-components/TabsWithMedia/TabsWithMedia.d.ts +3 -3
  92. package/dist/cjs/biz-components/ThreeDCarousel/ThreeDCarousel.d.ts +3 -3
  93. package/dist/cjs/biz-components/Title/index.d.ts +3 -3
  94. package/dist/cjs/biz-components/Title/index.js +1 -1
  95. package/dist/cjs/biz-components/Title/index.js.map +3 -3
  96. package/dist/cjs/biz-components/Title/types.d.ts +0 -55
  97. package/dist/cjs/biz-components/Title/types.js +1 -1
  98. package/dist/cjs/biz-components/Title/types.js.map +1 -1
  99. package/dist/cjs/biz-components/VideoFeature/VideoFeature.d.ts +3 -3
  100. package/dist/cjs/biz-components/WhyChoose/WhyChoose.d.ts +3 -3
  101. package/dist/cjs/biz-components/index.d.ts +0 -32
  102. package/dist/cjs/biz-components/index.js +1 -1
  103. package/dist/cjs/biz-components/index.js.map +3 -3
  104. package/dist/cjs/components/badge.d.ts +2 -5
  105. package/dist/cjs/components/badge.js +1 -1
  106. package/dist/cjs/components/badge.js.map +3 -3
  107. package/dist/cjs/components/index.d.ts +0 -2
  108. package/dist/cjs/components/index.js +1 -1
  109. package/dist/cjs/components/index.js.map +3 -3
  110. package/dist/cjs/components/tabs.d.ts +1 -2
  111. package/dist/cjs/components/tabs.js +1 -1
  112. package/dist/cjs/components/tabs.js.map +2 -2
  113. package/dist/cjs/helpers/index.d.ts +0 -1
  114. package/dist/cjs/helpers/index.js +1 -1
  115. package/dist/cjs/helpers/index.js.map +3 -3
  116. package/dist/cjs/shared/Styles.d.ts +4 -5
  117. package/dist/cjs/shared/Styles.js +1 -1
  118. package/dist/cjs/shared/Styles.js.map +3 -3
  119. package/dist/cjs/stories/HeroBanner.stories.d.ts +28 -0
  120. package/dist/cjs/stories/HeroBanner.stories.js +11 -0
  121. package/dist/cjs/stories/HeroBanner.stories.js.map +7 -0
  122. package/dist/cjs/stories/InlineVideo.stories.d.ts +37 -0
  123. package/dist/cjs/stories/InlineVideo.stories.js +164 -0
  124. package/dist/cjs/stories/InlineVideo.stories.js.map +7 -0
  125. package/dist/cjs/stories/MarqueeReview.stories.d.ts +72 -0
  126. package/dist/cjs/stories/MarqueeReview.stories.js +19 -0
  127. package/dist/cjs/stories/MarqueeReview.stories.js.map +7 -0
  128. package/dist/cjs/stories/MediaSceneSwitcher.stories.d.ts +47 -0
  129. package/dist/cjs/stories/MediaSceneSwitcher.stories.js +2 -0
  130. package/dist/cjs/stories/MediaSceneSwitcher.stories.js.map +7 -0
  131. package/dist/cjs/stories/MemberEquity.stories.d.ts +9 -0
  132. package/dist/cjs/stories/MemberEquity.stories.js +31 -0
  133. package/dist/cjs/stories/MemberEquity.stories.js.map +7 -0
  134. package/dist/cjs/stories/MultiLayoutGraphicBlock.stories.d.ts +9 -0
  135. package/dist/cjs/stories/MultiLayoutGraphicBlock.stories.js +2 -0
  136. package/dist/cjs/stories/MultiLayoutGraphicBlock.stories.js.map +7 -0
  137. package/dist/cjs/stories/ProductNav.stories.d.ts +55 -0
  138. package/dist/cjs/stories/ProductNav.stories.js +2 -0
  139. package/dist/cjs/stories/ProductNav.stories.js.map +7 -0
  140. package/dist/cjs/stories/ThreeDCarousel.stories.d.ts +27 -0
  141. package/dist/cjs/stories/ThreeDCarousel.stories.js +118 -0
  142. package/dist/cjs/stories/ThreeDCarousel.stories.js.map +7 -0
  143. package/dist/cjs/stories/accordionCards.stories.d.ts +38 -0
  144. package/dist/cjs/stories/accordionCards.stories.js +2 -0
  145. package/dist/cjs/stories/accordionCards.stories.js.map +7 -0
  146. package/dist/cjs/stories/alert.stories.d.ts +27 -0
  147. package/dist/cjs/stories/alert.stories.js +2 -0
  148. package/dist/cjs/stories/alert.stories.js.map +7 -0
  149. package/dist/cjs/stories/avatar.stories.d.ts +39 -0
  150. package/dist/cjs/stories/avatar.stories.js +2 -0
  151. package/dist/cjs/stories/avatar.stories.js.map +7 -0
  152. package/dist/cjs/stories/badge.stories.d.ts +31 -0
  153. package/dist/cjs/stories/badge.stories.js +2 -0
  154. package/dist/cjs/stories/badge.stories.js.map +7 -0
  155. package/dist/cjs/stories/bizTabs.stories.d.ts +7 -0
  156. package/dist/cjs/stories/bizTabs.stories.js +2 -0
  157. package/dist/cjs/stories/bizTabs.stories.js.map +7 -0
  158. package/dist/cjs/stories/board.stories.d.ts +6 -0
  159. package/dist/cjs/stories/board.stories.js +2 -0
  160. package/dist/cjs/stories/board.stories.js.map +7 -0
  161. package/dist/cjs/stories/brandEquity.stories.d.ts +16 -0
  162. package/dist/cjs/stories/brandEquity.stories.js +2 -0
  163. package/dist/cjs/stories/brandEquity.stories.js.map +7 -0
  164. package/dist/cjs/stories/brandStrip.stories.d.ts +12 -0
  165. package/dist/cjs/stories/brandStrip.stories.js +2 -0
  166. package/dist/cjs/stories/brandStrip.stories.js.map +7 -0
  167. package/dist/cjs/stories/button.stories.d.ts +56 -0
  168. package/dist/cjs/stories/button.stories.js +2 -0
  169. package/dist/cjs/stories/button.stories.js.map +7 -0
  170. package/dist/cjs/stories/card.stories.d.ts +27 -0
  171. package/dist/cjs/stories/card.stories.js +2 -0
  172. package/dist/cjs/stories/card.stories.js.map +7 -0
  173. package/dist/cjs/stories/carousel.stories.d.ts +8 -0
  174. package/dist/cjs/stories/carousel.stories.js +2 -0
  175. package/dist/cjs/stories/carousel.stories.js.map +7 -0
  176. package/dist/cjs/stories/category.stories.d.ts +17 -0
  177. package/dist/cjs/stories/category.stories.js +2 -0
  178. package/dist/cjs/stories/category.stories.js.map +7 -0
  179. package/dist/cjs/stories/checkbox.stories.d.ts +46 -0
  180. package/dist/cjs/stories/checkbox.stories.js +2 -0
  181. package/dist/cjs/stories/checkbox.stories.js.map +7 -0
  182. package/dist/cjs/stories/container.stories.d.ts +28 -0
  183. package/dist/cjs/stories/container.stories.js +15 -0
  184. package/dist/cjs/stories/container.stories.js.map +7 -0
  185. package/dist/cjs/stories/cpnBanner.stories.d.ts +14 -0
  186. package/dist/cjs/stories/cpnBanner.stories.js +2 -0
  187. package/dist/cjs/stories/cpnBanner.stories.js.map +7 -0
  188. package/dist/cjs/stories/cpnCountdown.stories.d.ts +12 -0
  189. package/dist/cjs/stories/cpnCountdown.stories.js +2 -0
  190. package/dist/cjs/stories/cpnCountdown.stories.js.map +7 -0
  191. package/dist/cjs/stories/cpnNavigation.stories.d.ts +14 -0
  192. package/dist/cjs/stories/cpnNavigation.stories.js +2 -0
  193. package/dist/cjs/stories/cpnNavigation.stories.js.map +7 -0
  194. package/dist/cjs/stories/cpnProductcard.stories.d.ts +14 -0
  195. package/dist/cjs/stories/cpnProductcard.stories.js +2 -0
  196. package/dist/cjs/stories/cpnProductcard.stories.js.map +7 -0
  197. package/dist/cjs/stories/cpnTitle.stories.d.ts +14 -0
  198. package/dist/cjs/stories/cpnTitle.stories.js +2 -0
  199. package/dist/cjs/stories/cpnTitle.stories.js.map +7 -0
  200. package/dist/cjs/stories/creativeModule.stories.d.ts +19 -0
  201. package/dist/cjs/stories/creativeModule.stories.js +2 -0
  202. package/dist/cjs/stories/creativeModule.stories.js.map +7 -0
  203. package/dist/cjs/stories/dialog.stories.d.ts +20 -0
  204. package/dist/cjs/stories/dialog.stories.js +2 -0
  205. package/dist/cjs/stories/dialog.stories.js.map +7 -0
  206. package/dist/cjs/stories/drawer.stories.d.ts +20 -0
  207. package/dist/cjs/stories/drawer.stories.js +2 -0
  208. package/dist/cjs/stories/drawer.stories.js.map +7 -0
  209. package/dist/cjs/stories/drop-down.stories.d.ts +16 -0
  210. package/dist/cjs/stories/drop-down.stories.js +2 -0
  211. package/dist/cjs/stories/drop-down.stories.js.map +7 -0
  212. package/dist/cjs/stories/evaluate.stories.d.ts +16 -0
  213. package/dist/cjs/stories/evaluate.stories.js +2 -0
  214. package/dist/cjs/stories/evaluate.stories.js.map +7 -0
  215. package/dist/cjs/stories/faq.stories.d.ts +21 -0
  216. package/dist/cjs/stories/faq.stories.js +2 -0
  217. package/dist/cjs/stories/faq.stories.js.map +7 -0
  218. package/dist/cjs/stories/featureCards.stories.d.ts +30 -0
  219. package/dist/cjs/stories/featureCards.stories.js +61 -0
  220. package/dist/cjs/stories/featureCards.stories.js.map +7 -0
  221. package/dist/cjs/stories/featureShowcase.stories.d.ts +29 -0
  222. package/dist/cjs/stories/featureShowcase.stories.js +44 -0
  223. package/dist/cjs/stories/featureShowcase.stories.js.map +7 -0
  224. package/dist/cjs/stories/graphic.stories.d.ts +64 -0
  225. package/dist/cjs/stories/graphic.stories.js +2 -0
  226. package/dist/cjs/stories/graphic.stories.js.map +7 -0
  227. package/dist/cjs/stories/graphicAttractionBlock.stories.d.ts +6 -0
  228. package/dist/cjs/stories/graphicAttractionBlock.stories.js +2 -0
  229. package/dist/cjs/stories/graphicAttractionBlock.stories.js.map +7 -0
  230. package/dist/cjs/stories/grid.stories.d.ts +22 -0
  231. package/dist/cjs/stories/grid.stories.js +13 -0
  232. package/dist/cjs/stories/grid.stories.js.map +7 -0
  233. package/dist/cjs/stories/heading.stories.d.ts +84 -0
  234. package/dist/cjs/stories/heading.stories.js +15 -0
  235. package/dist/cjs/stories/heading.stories.js.map +7 -0
  236. package/dist/cjs/stories/imageTextFeature.stories.d.ts +28 -0
  237. package/dist/cjs/stories/imageTextFeature.stories.js +50 -0
  238. package/dist/cjs/stories/imageTextFeature.stories.js.map +7 -0
  239. package/dist/cjs/stories/imageWithText.stories.d.ts +51 -0
  240. package/dist/cjs/stories/imageWithText.stories.js +84 -0
  241. package/dist/cjs/stories/imageWithText.stories.js.map +7 -0
  242. package/dist/cjs/stories/input-number.stories.d.ts +39 -0
  243. package/dist/cjs/stories/input-number.stories.js +2 -0
  244. package/dist/cjs/stories/input-number.stories.js.map +7 -0
  245. package/dist/cjs/stories/input.stories.d.ts +35 -0
  246. package/dist/cjs/stories/input.stories.js +2 -0
  247. package/dist/cjs/stories/input.stories.js.map +7 -0
  248. package/dist/cjs/stories/ksp.stories.d.ts +63 -0
  249. package/dist/cjs/stories/ksp.stories.js +128 -0
  250. package/dist/cjs/stories/ksp.stories.js.map +7 -0
  251. package/dist/cjs/stories/link.stories.d.ts +69 -0
  252. package/dist/cjs/stories/link.stories.js +2 -0
  253. package/dist/cjs/stories/link.stories.js.map +7 -0
  254. package/dist/cjs/stories/marquee.stories.d.ts +30 -0
  255. package/dist/cjs/stories/marquee.stories.js +2 -0
  256. package/dist/cjs/stories/marquee.stories.js.map +7 -0
  257. package/dist/cjs/stories/mediaplayerBase.stories.d.ts +6 -0
  258. package/dist/cjs/stories/mediaplayerBase.stories.js +2 -0
  259. package/dist/cjs/stories/mediaplayerBase.stories.js.map +7 -0
  260. package/dist/cjs/stories/mediaplayerMulti.stories.d.ts +16 -0
  261. package/dist/cjs/stories/mediaplayerMulti.stories.js +2 -0
  262. package/dist/cjs/stories/mediaplayerMulti.stories.js.map +7 -0
  263. package/dist/cjs/stories/picture.stories.d.ts +23 -0
  264. package/dist/cjs/stories/picture.stories.js +9 -0
  265. package/dist/cjs/stories/picture.stories.js.map +7 -0
  266. package/dist/cjs/stories/popover.stories.d.ts +17 -0
  267. package/dist/cjs/stories/popover.stories.js +2 -0
  268. package/dist/cjs/stories/popover.stories.js.map +7 -0
  269. package/dist/cjs/stories/productCompare.stories.d.ts +54 -0
  270. package/dist/cjs/stories/productCompare.stories.js +54 -0
  271. package/dist/cjs/stories/productCompare.stories.js.map +7 -0
  272. package/dist/cjs/stories/productHero.stories.d.ts +29 -0
  273. package/dist/cjs/stories/productHero.stories.js +50 -0
  274. package/dist/cjs/stories/productHero.stories.js.map +7 -0
  275. package/dist/cjs/stories/radio.stories.d.ts +39 -0
  276. package/dist/cjs/stories/radio.stories.js +2 -0
  277. package/dist/cjs/stories/radio.stories.js.map +7 -0
  278. package/dist/cjs/stories/shelfDisplay.stories.d.ts +16 -0
  279. package/dist/cjs/stories/shelfDisplay.stories.js +2 -0
  280. package/dist/cjs/stories/shelfDisplay.stories.js.map +7 -0
  281. package/dist/cjs/stories/skeleton.stories.d.ts +20 -0
  282. package/dist/cjs/stories/skeleton.stories.js +2 -0
  283. package/dist/cjs/stories/skeleton.stories.js.map +7 -0
  284. package/dist/cjs/stories/slogan.stories.d.ts +20 -0
  285. package/dist/cjs/stories/slogan.stories.js +6 -0
  286. package/dist/cjs/stories/slogan.stories.js.map +7 -0
  287. package/dist/cjs/stories/specs.stories.d.ts +13 -0
  288. package/dist/cjs/stories/specs.stories.js +57 -0
  289. package/dist/cjs/stories/specs.stories.js.map +7 -0
  290. package/dist/cjs/stories/specsComparison.stories.d.ts +28 -0
  291. package/dist/cjs/stories/specsComparison.stories.js +105 -0
  292. package/dist/cjs/stories/specsComparison.stories.js.map +7 -0
  293. package/dist/cjs/stories/tabWithImage.stories.d.ts +28 -0
  294. package/dist/cjs/stories/tabWithImage.stories.js +53 -0
  295. package/dist/cjs/stories/tabWithImage.stories.js.map +7 -0
  296. package/dist/cjs/stories/tabs.stories.d.ts +373 -0
  297. package/dist/cjs/stories/tabs.stories.js +2 -0
  298. package/dist/cjs/stories/tabs.stories.js.map +7 -0
  299. package/dist/cjs/stories/tabsWithMedia.stories.d.ts +28 -0
  300. package/dist/cjs/stories/tabsWithMedia.stories.js +68 -0
  301. package/dist/cjs/stories/tabsWithMedia.stories.js.map +7 -0
  302. package/dist/cjs/stories/text.stories.d.ts +86 -0
  303. package/dist/cjs/stories/text.stories.js +21 -0
  304. package/dist/cjs/stories/text.stories.js.map +7 -0
  305. package/dist/cjs/stories/videoFeature.stories.d.ts +29 -0
  306. package/dist/cjs/stories/videoFeature.stories.js +56 -0
  307. package/dist/cjs/stories/videoFeature.stories.js.map +7 -0
  308. package/dist/cjs/stories/whychoose.stories.d.ts +21 -0
  309. package/dist/cjs/stories/whychoose.stories.js +2 -0
  310. package/dist/cjs/stories/whychoose.stories.js.map +7 -0
  311. package/dist/cjs/types/props.d.ts +3 -0
  312. package/dist/cjs/types/props.js +1 -1
  313. package/dist/cjs/types/props.js.map +1 -1
  314. package/dist/esm/biz-components/AccordionCards/index.d.ts +3 -3
  315. package/dist/esm/biz-components/AiuiProvider/index.d.ts +0 -7
  316. package/dist/esm/biz-components/AiuiProvider/index.js +1 -1
  317. package/dist/esm/biz-components/AiuiProvider/index.js.map +2 -2
  318. package/dist/esm/biz-components/AplusDesc/index.d.ts +3 -3
  319. package/dist/esm/biz-components/BrandEquity/BrandEquity.d.ts +3 -3
  320. package/dist/esm/biz-components/BrandEquity/BrandEquity.js +1 -1
  321. package/dist/esm/biz-components/BrandEquity/BrandEquity.js.map +2 -2
  322. package/dist/esm/biz-components/BrandEquity/types.d.ts +0 -1
  323. package/dist/esm/biz-components/Category/index.d.ts +3 -3
  324. package/dist/esm/biz-components/CreativeModule/index.d.ts +3 -3
  325. package/dist/esm/biz-components/DownLoad/index.d.ts +3 -3
  326. package/dist/esm/biz-components/Evaluate/index.d.ts +3 -3
  327. package/dist/esm/biz-components/Evaluate/index.js +1 -1
  328. package/dist/esm/biz-components/Evaluate/index.js.map +2 -2
  329. package/dist/esm/biz-components/Faq/Faq.d.ts +3 -3
  330. package/dist/esm/biz-components/FeatureCards/FeatureCards.d.ts +3 -3
  331. package/dist/esm/biz-components/FeatureShowcase/FeatureShowcase.d.ts +3 -3
  332. package/dist/esm/biz-components/Features/index.d.ts +3 -3
  333. package/dist/esm/biz-components/FootCharger/index.d.ts +3 -3
  334. package/dist/esm/biz-components/FooterNavigation/index.d.ts +3 -3
  335. package/dist/esm/biz-components/GiftBox/index.d.ts +3 -3
  336. package/dist/esm/biz-components/Graphic/index.d.ts +3 -3
  337. package/dist/esm/biz-components/GraphicAttractionBlock/index.d.ts +3 -3
  338. package/dist/esm/biz-components/GraphicMore/index.d.ts +3 -3
  339. package/dist/esm/biz-components/GraphicOverlay/GraphicOverlay.d.ts +3 -3
  340. package/dist/esm/biz-components/HeaderNavigation/index.d.ts +3 -3
  341. package/dist/esm/biz-components/HeroBanner/Countdown.js +1 -1
  342. package/dist/esm/biz-components/HeroBanner/Countdown.js.map +2 -2
  343. package/dist/esm/biz-components/HeroBanner/HeroBanner.d.ts +3 -6
  344. package/dist/esm/biz-components/HeroBanner/HeroBanner.js +1 -1
  345. package/dist/esm/biz-components/HeroBanner/HeroBanner.js.map +3 -3
  346. package/dist/esm/biz-components/HeroBanner/types.d.ts +0 -4
  347. package/dist/esm/biz-components/ImageTextFeature/ImageTextFeature.d.ts +3 -3
  348. package/dist/esm/biz-components/ImageTextFeature/ImageTextFeature.js +1 -1
  349. package/dist/esm/biz-components/ImageTextFeature/ImageTextFeature.js.map +3 -3
  350. package/dist/esm/biz-components/ImageTextFeature/types.d.ts +0 -1
  351. package/dist/esm/biz-components/ImageWithText/ImageWithText.d.ts +3 -3
  352. package/dist/esm/biz-components/Ksp/index.d.ts +3 -3
  353. package/dist/esm/biz-components/Listing/components/PaidShipping/index.d.ts +4 -4
  354. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/BenefitsTab.d.ts +3 -3
  355. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductBundle/index.d.ts +3 -3
  356. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductExchangePurchase/index.d.ts +3 -3
  357. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductFreeGift/index.d.ts +3 -3
  358. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductHighlight/index.d.ts +3 -3
  359. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductOptions/index.d.ts +3 -3
  360. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/index.d.ts +3 -3
  361. package/dist/esm/biz-components/Listing/components/ProductCard/ProductSummary/index.d.ts +3 -3
  362. package/dist/esm/biz-components/Listing/components/PurchaseBar/index.d.ts +3 -3
  363. package/dist/esm/biz-components/Marquee/Marquee.d.ts +3 -3
  364. package/dist/esm/biz-components/Marquee/Marquee.js +1 -1
  365. package/dist/esm/biz-components/Marquee/Marquee.js.map +3 -3
  366. package/dist/esm/biz-components/MarqueeReview/index.d.ts +3 -3
  367. package/dist/esm/biz-components/MediaPlayerBase/index.d.ts +3 -3
  368. package/dist/esm/biz-components/MediaPlayerMulti/index.d.ts +3 -3
  369. package/dist/esm/biz-components/MediaPlayerSticky/index.d.ts +4 -4
  370. package/dist/esm/biz-components/MediaPlayerSticky/types.d.ts +0 -1
  371. package/dist/esm/biz-components/MediaSceneSwitcher/MediaSceneSwitcher.d.ts +3 -3
  372. package/dist/esm/biz-components/MemberEquity/index.d.ts +3 -3
  373. package/dist/esm/biz-components/MultiLayoutGraphicBlock/MultiLayoutGraphicBlock.d.ts +3 -3
  374. package/dist/esm/biz-components/ProductCompare/index.d.ts +3 -3
  375. package/dist/esm/biz-components/ProductHero/ProductHero.d.ts +3 -3
  376. package/dist/esm/biz-components/ProductNav/ProductNav.d.ts +3 -3
  377. package/dist/esm/biz-components/SelectStore/index.d.ts +3 -3
  378. package/dist/esm/biz-components/ShelfDisplay/index.d.ts +3 -3
  379. package/dist/esm/biz-components/ShelfDisplay/shelfDisplay.d.ts +11 -0
  380. package/dist/esm/biz-components/ShelfDisplay/shelfDisplay.js +1 -1
  381. package/dist/esm/biz-components/ShelfDisplay/shelfDisplay.js.map +3 -3
  382. package/dist/esm/biz-components/ShelfDisplay/shelfDisplayItem.js +5 -5
  383. package/dist/esm/biz-components/ShelfDisplay/shelfDisplayItem.js.map +3 -3
  384. package/dist/esm/biz-components/Slogan/index.d.ts +3 -3
  385. package/dist/esm/biz-components/Spacer/index.d.ts +3 -3
  386. package/dist/esm/biz-components/Specs/index.d.ts +3 -3
  387. package/dist/esm/biz-components/SpecsComparison/SpecsComparison.d.ts +3 -3
  388. package/dist/esm/biz-components/TabWithImage/TabWithImage.d.ts +3 -3
  389. package/dist/esm/biz-components/Tabs/Tabs.d.ts +3 -3
  390. package/dist/esm/biz-components/Tabs/Tabs.js +1 -1
  391. package/dist/esm/biz-components/Tabs/Tabs.js.map +3 -3
  392. package/dist/esm/biz-components/Tabs/types.d.ts +0 -9
  393. package/dist/esm/biz-components/TabsGroup/index.d.ts +3 -3
  394. package/dist/esm/biz-components/TabsWithMedia/TabsWithMedia.d.ts +3 -3
  395. package/dist/esm/biz-components/ThreeDCarousel/ThreeDCarousel.d.ts +3 -3
  396. package/dist/esm/biz-components/Title/index.d.ts +3 -3
  397. package/dist/esm/biz-components/Title/index.js +1 -1
  398. package/dist/esm/biz-components/Title/index.js.map +3 -3
  399. package/dist/esm/biz-components/Title/types.d.ts +0 -55
  400. package/dist/esm/biz-components/VideoFeature/VideoFeature.d.ts +3 -3
  401. package/dist/esm/biz-components/WhyChoose/WhyChoose.d.ts +3 -3
  402. package/dist/esm/biz-components/index.d.ts +0 -32
  403. package/dist/esm/biz-components/index.js +1 -1
  404. package/dist/esm/biz-components/index.js.map +3 -3
  405. package/dist/esm/components/badge.d.ts +2 -5
  406. package/dist/esm/components/badge.js +1 -1
  407. package/dist/esm/components/badge.js.map +3 -3
  408. package/dist/esm/components/index.d.ts +0 -2
  409. package/dist/esm/components/index.js +1 -1
  410. package/dist/esm/components/index.js.map +2 -2
  411. package/dist/esm/components/tabs.d.ts +1 -2
  412. package/dist/esm/components/tabs.js +1 -1
  413. package/dist/esm/components/tabs.js.map +2 -2
  414. package/dist/esm/helpers/index.d.ts +0 -1
  415. package/dist/esm/helpers/index.js +1 -1
  416. package/dist/esm/helpers/index.js.map +3 -3
  417. package/dist/esm/shared/Styles.d.ts +4 -5
  418. package/dist/esm/shared/Styles.js +1 -1
  419. package/dist/esm/shared/Styles.js.map +3 -3
  420. package/dist/esm/stories/HeroBanner.stories.d.ts +28 -0
  421. package/dist/esm/stories/HeroBanner.stories.js +11 -0
  422. package/dist/esm/stories/HeroBanner.stories.js.map +7 -0
  423. package/dist/esm/stories/InlineVideo.stories.d.ts +37 -0
  424. package/dist/esm/stories/InlineVideo.stories.js +164 -0
  425. package/dist/esm/stories/InlineVideo.stories.js.map +7 -0
  426. package/dist/esm/stories/MarqueeReview.stories.d.ts +72 -0
  427. package/dist/esm/stories/MarqueeReview.stories.js +19 -0
  428. package/dist/esm/stories/MarqueeReview.stories.js.map +7 -0
  429. package/dist/esm/stories/MediaSceneSwitcher.stories.d.ts +47 -0
  430. package/dist/esm/stories/MediaSceneSwitcher.stories.js +2 -0
  431. package/dist/esm/stories/MediaSceneSwitcher.stories.js.map +7 -0
  432. package/dist/esm/stories/MemberEquity.stories.d.ts +9 -0
  433. package/dist/esm/stories/MemberEquity.stories.js +31 -0
  434. package/dist/esm/stories/MemberEquity.stories.js.map +7 -0
  435. package/dist/esm/stories/MultiLayoutGraphicBlock.stories.d.ts +9 -0
  436. package/dist/esm/stories/MultiLayoutGraphicBlock.stories.js +2 -0
  437. package/dist/esm/stories/MultiLayoutGraphicBlock.stories.js.map +7 -0
  438. package/dist/esm/stories/ProductNav.stories.d.ts +55 -0
  439. package/dist/esm/stories/ProductNav.stories.js +2 -0
  440. package/dist/esm/stories/ProductNav.stories.js.map +7 -0
  441. package/dist/esm/stories/ThreeDCarousel.stories.d.ts +27 -0
  442. package/dist/esm/stories/ThreeDCarousel.stories.js +118 -0
  443. package/dist/esm/stories/ThreeDCarousel.stories.js.map +7 -0
  444. package/dist/esm/stories/accordionCards.stories.d.ts +38 -0
  445. package/dist/esm/stories/accordionCards.stories.js +2 -0
  446. package/dist/esm/stories/accordionCards.stories.js.map +7 -0
  447. package/dist/esm/stories/alert.stories.d.ts +27 -0
  448. package/dist/esm/stories/alert.stories.js +2 -0
  449. package/dist/esm/stories/alert.stories.js.map +7 -0
  450. package/dist/esm/stories/avatar.stories.d.ts +39 -0
  451. package/dist/esm/stories/avatar.stories.js +2 -0
  452. package/dist/esm/stories/avatar.stories.js.map +7 -0
  453. package/dist/esm/stories/badge.stories.d.ts +31 -0
  454. package/dist/esm/stories/badge.stories.js +2 -0
  455. package/dist/esm/stories/badge.stories.js.map +7 -0
  456. package/dist/esm/stories/bizTabs.stories.d.ts +7 -0
  457. package/dist/esm/stories/bizTabs.stories.js +2 -0
  458. package/dist/esm/stories/bizTabs.stories.js.map +7 -0
  459. package/dist/esm/stories/board.stories.d.ts +6 -0
  460. package/dist/esm/stories/board.stories.js +2 -0
  461. package/dist/esm/stories/board.stories.js.map +7 -0
  462. package/dist/esm/stories/brandEquity.stories.d.ts +16 -0
  463. package/dist/esm/stories/brandEquity.stories.js +2 -0
  464. package/dist/esm/stories/brandEquity.stories.js.map +7 -0
  465. package/dist/esm/stories/brandStrip.stories.d.ts +12 -0
  466. package/dist/esm/stories/brandStrip.stories.js +2 -0
  467. package/dist/esm/stories/brandStrip.stories.js.map +7 -0
  468. package/dist/esm/stories/button.stories.d.ts +56 -0
  469. package/dist/esm/stories/button.stories.js +2 -0
  470. package/dist/esm/stories/button.stories.js.map +7 -0
  471. package/dist/esm/stories/card.stories.d.ts +27 -0
  472. package/dist/esm/stories/card.stories.js +2 -0
  473. package/dist/esm/stories/card.stories.js.map +7 -0
  474. package/dist/esm/stories/carousel.stories.d.ts +8 -0
  475. package/dist/esm/stories/carousel.stories.js +2 -0
  476. package/dist/esm/stories/carousel.stories.js.map +7 -0
  477. package/dist/esm/stories/category.stories.d.ts +17 -0
  478. package/dist/esm/stories/category.stories.js +2 -0
  479. package/dist/esm/stories/category.stories.js.map +7 -0
  480. package/dist/esm/stories/checkbox.stories.d.ts +46 -0
  481. package/dist/esm/stories/checkbox.stories.js +2 -0
  482. package/dist/esm/stories/checkbox.stories.js.map +7 -0
  483. package/dist/esm/stories/container.stories.d.ts +28 -0
  484. package/dist/esm/stories/container.stories.js +15 -0
  485. package/dist/esm/stories/container.stories.js.map +7 -0
  486. package/dist/esm/stories/cpnBanner.stories.d.ts +14 -0
  487. package/dist/esm/stories/cpnBanner.stories.js +2 -0
  488. package/dist/esm/stories/cpnBanner.stories.js.map +7 -0
  489. package/dist/esm/stories/cpnCountdown.stories.d.ts +12 -0
  490. package/dist/esm/stories/cpnCountdown.stories.js +2 -0
  491. package/dist/esm/stories/cpnCountdown.stories.js.map +7 -0
  492. package/dist/esm/stories/cpnNavigation.stories.d.ts +14 -0
  493. package/dist/esm/stories/cpnNavigation.stories.js +2 -0
  494. package/dist/esm/stories/cpnNavigation.stories.js.map +7 -0
  495. package/dist/esm/stories/cpnProductcard.stories.d.ts +14 -0
  496. package/dist/esm/stories/cpnProductcard.stories.js +2 -0
  497. package/dist/esm/stories/cpnProductcard.stories.js.map +7 -0
  498. package/dist/esm/stories/cpnTitle.stories.d.ts +14 -0
  499. package/dist/esm/stories/cpnTitle.stories.js +2 -0
  500. package/dist/esm/stories/cpnTitle.stories.js.map +7 -0
  501. package/dist/esm/stories/creativeModule.stories.d.ts +19 -0
  502. package/dist/esm/stories/creativeModule.stories.js +2 -0
  503. package/dist/esm/stories/creativeModule.stories.js.map +7 -0
  504. package/dist/esm/stories/dialog.stories.d.ts +20 -0
  505. package/dist/esm/stories/dialog.stories.js +2 -0
  506. package/dist/esm/stories/dialog.stories.js.map +7 -0
  507. package/dist/esm/stories/drawer.stories.d.ts +20 -0
  508. package/dist/esm/stories/drawer.stories.js +2 -0
  509. package/dist/esm/stories/drawer.stories.js.map +7 -0
  510. package/dist/esm/stories/drop-down.stories.d.ts +16 -0
  511. package/dist/esm/stories/drop-down.stories.js +2 -0
  512. package/dist/esm/stories/drop-down.stories.js.map +7 -0
  513. package/dist/esm/stories/evaluate.stories.d.ts +16 -0
  514. package/dist/esm/stories/evaluate.stories.js +2 -0
  515. package/dist/esm/stories/evaluate.stories.js.map +7 -0
  516. package/dist/esm/stories/faq.stories.d.ts +21 -0
  517. package/dist/esm/stories/faq.stories.js +2 -0
  518. package/dist/esm/stories/faq.stories.js.map +7 -0
  519. package/dist/esm/stories/featureCards.stories.d.ts +30 -0
  520. package/dist/esm/stories/featureCards.stories.js +61 -0
  521. package/dist/esm/stories/featureCards.stories.js.map +7 -0
  522. package/dist/esm/stories/featureShowcase.stories.d.ts +29 -0
  523. package/dist/esm/stories/featureShowcase.stories.js +44 -0
  524. package/dist/esm/stories/featureShowcase.stories.js.map +7 -0
  525. package/dist/esm/stories/graphic.stories.d.ts +64 -0
  526. package/dist/esm/stories/graphic.stories.js +2 -0
  527. package/dist/esm/stories/graphic.stories.js.map +7 -0
  528. package/dist/esm/stories/graphicAttractionBlock.stories.d.ts +6 -0
  529. package/dist/esm/stories/graphicAttractionBlock.stories.js +2 -0
  530. package/dist/esm/stories/graphicAttractionBlock.stories.js.map +7 -0
  531. package/dist/esm/stories/grid.stories.d.ts +22 -0
  532. package/dist/esm/stories/grid.stories.js +13 -0
  533. package/dist/esm/stories/grid.stories.js.map +7 -0
  534. package/dist/esm/stories/heading.stories.d.ts +84 -0
  535. package/dist/esm/stories/heading.stories.js +15 -0
  536. package/dist/esm/stories/heading.stories.js.map +7 -0
  537. package/dist/esm/stories/imageTextFeature.stories.d.ts +28 -0
  538. package/dist/esm/stories/imageTextFeature.stories.js +50 -0
  539. package/dist/esm/stories/imageTextFeature.stories.js.map +7 -0
  540. package/dist/esm/stories/imageWithText.stories.d.ts +51 -0
  541. package/dist/esm/stories/imageWithText.stories.js +84 -0
  542. package/dist/esm/stories/imageWithText.stories.js.map +7 -0
  543. package/dist/esm/stories/input-number.stories.d.ts +39 -0
  544. package/dist/esm/stories/input-number.stories.js +2 -0
  545. package/dist/esm/stories/input-number.stories.js.map +7 -0
  546. package/dist/esm/stories/input.stories.d.ts +35 -0
  547. package/dist/esm/stories/input.stories.js +2 -0
  548. package/dist/esm/stories/input.stories.js.map +7 -0
  549. package/dist/esm/stories/ksp.stories.d.ts +63 -0
  550. package/dist/esm/stories/ksp.stories.js +128 -0
  551. package/dist/esm/stories/ksp.stories.js.map +7 -0
  552. package/dist/esm/stories/link.stories.d.ts +69 -0
  553. package/dist/esm/stories/link.stories.js +2 -0
  554. package/dist/esm/stories/link.stories.js.map +7 -0
  555. package/dist/esm/stories/marquee.stories.d.ts +30 -0
  556. package/dist/esm/stories/marquee.stories.js +2 -0
  557. package/dist/esm/stories/marquee.stories.js.map +7 -0
  558. package/dist/esm/stories/mediaplayerBase.stories.d.ts +6 -0
  559. package/dist/esm/stories/mediaplayerBase.stories.js +2 -0
  560. package/dist/esm/stories/mediaplayerBase.stories.js.map +7 -0
  561. package/dist/esm/stories/mediaplayerMulti.stories.d.ts +16 -0
  562. package/dist/esm/stories/mediaplayerMulti.stories.js +2 -0
  563. package/dist/esm/stories/mediaplayerMulti.stories.js.map +7 -0
  564. package/dist/esm/stories/picture.stories.d.ts +23 -0
  565. package/dist/esm/stories/picture.stories.js +9 -0
  566. package/dist/esm/stories/picture.stories.js.map +7 -0
  567. package/dist/esm/stories/popover.stories.d.ts +17 -0
  568. package/dist/esm/stories/popover.stories.js +2 -0
  569. package/dist/esm/stories/popover.stories.js.map +7 -0
  570. package/dist/esm/stories/productCompare.stories.d.ts +54 -0
  571. package/dist/esm/stories/productCompare.stories.js +54 -0
  572. package/dist/esm/stories/productCompare.stories.js.map +7 -0
  573. package/dist/esm/stories/productHero.stories.d.ts +29 -0
  574. package/dist/esm/stories/productHero.stories.js +50 -0
  575. package/dist/esm/stories/productHero.stories.js.map +7 -0
  576. package/dist/esm/stories/radio.stories.d.ts +39 -0
  577. package/dist/esm/stories/radio.stories.js +2 -0
  578. package/dist/esm/stories/radio.stories.js.map +7 -0
  579. package/dist/esm/stories/shelfDisplay.stories.d.ts +16 -0
  580. package/dist/esm/stories/shelfDisplay.stories.js +2 -0
  581. package/dist/esm/stories/shelfDisplay.stories.js.map +7 -0
  582. package/dist/esm/stories/skeleton.stories.d.ts +20 -0
  583. package/dist/esm/stories/skeleton.stories.js +2 -0
  584. package/dist/esm/stories/skeleton.stories.js.map +7 -0
  585. package/dist/esm/stories/slogan.stories.d.ts +20 -0
  586. package/dist/esm/stories/slogan.stories.js +6 -0
  587. package/dist/esm/stories/slogan.stories.js.map +7 -0
  588. package/dist/esm/stories/specs.stories.d.ts +13 -0
  589. package/dist/esm/stories/specs.stories.js +57 -0
  590. package/dist/esm/stories/specs.stories.js.map +7 -0
  591. package/dist/esm/stories/specsComparison.stories.d.ts +28 -0
  592. package/dist/esm/stories/specsComparison.stories.js +105 -0
  593. package/dist/esm/stories/specsComparison.stories.js.map +7 -0
  594. package/dist/esm/stories/tabWithImage.stories.d.ts +28 -0
  595. package/dist/esm/stories/tabWithImage.stories.js +53 -0
  596. package/dist/esm/stories/tabWithImage.stories.js.map +7 -0
  597. package/dist/esm/stories/tabs.stories.d.ts +373 -0
  598. package/dist/esm/stories/tabs.stories.js +2 -0
  599. package/dist/esm/stories/tabs.stories.js.map +7 -0
  600. package/dist/esm/stories/tabsWithMedia.stories.d.ts +28 -0
  601. package/dist/esm/stories/tabsWithMedia.stories.js +68 -0
  602. package/dist/esm/stories/tabsWithMedia.stories.js.map +7 -0
  603. package/dist/esm/stories/text.stories.d.ts +86 -0
  604. package/dist/esm/stories/text.stories.js +21 -0
  605. package/dist/esm/stories/text.stories.js.map +7 -0
  606. package/dist/esm/stories/videoFeature.stories.d.ts +29 -0
  607. package/dist/esm/stories/videoFeature.stories.js +56 -0
  608. package/dist/esm/stories/videoFeature.stories.js.map +7 -0
  609. package/dist/esm/stories/whychoose.stories.d.ts +21 -0
  610. package/dist/esm/stories/whychoose.stories.js +2 -0
  611. package/dist/esm/stories/whychoose.stories.js.map +7 -0
  612. package/dist/esm/types/props.d.ts +3 -0
  613. package/dist/tokens/base.css +3 -4
  614. package/dist/tokens/eufy.css +0 -1
  615. package/dist/tokens/soundcore.css +3 -4
  616. package/package.json +3 -8
  617. package/style.css +118 -4968
  618. package/tailwind.config.js +2 -19
  619. package/dist/cjs/biz-components/ActiveShelf/index.d.ts +0 -174
  620. package/dist/cjs/biz-components/ActiveShelf/index.js +0 -2
  621. package/dist/cjs/biz-components/ActiveShelf/index.js.map +0 -7
  622. package/dist/cjs/biz-components/ActiveShelf/types.d.ts +0 -89
  623. package/dist/cjs/biz-components/ActiveShelf/types.js +0 -2
  624. package/dist/cjs/biz-components/ActiveShelf/types.js.map +0 -7
  625. package/dist/cjs/biz-components/AnchorNavigation/index.d.ts +0 -42
  626. package/dist/cjs/biz-components/AnchorNavigation/index.js +0 -2
  627. package/dist/cjs/biz-components/AnchorNavigation/index.js.map +0 -7
  628. package/dist/cjs/biz-components/AnchorNavigation/useAnchorPosition.d.ts +0 -2
  629. package/dist/cjs/biz-components/AnchorNavigation/useAnchorPosition.js +0 -2
  630. package/dist/cjs/biz-components/AnchorNavigation/useAnchorPosition.js.map +0 -7
  631. package/dist/cjs/biz-components/BrandCardLink/BrandCardLink.d.ts +0 -6
  632. package/dist/cjs/biz-components/BrandCardLink/BrandCardLink.js +0 -2
  633. package/dist/cjs/biz-components/BrandCardLink/BrandCardLink.js.map +0 -7
  634. package/dist/cjs/biz-components/BrandCardLink/index.d.ts +0 -1
  635. package/dist/cjs/biz-components/BrandCardLink/index.js +0 -2
  636. package/dist/cjs/biz-components/BrandCardLink/index.js.map +0 -7
  637. package/dist/cjs/biz-components/BrandCardLink/types.d.ts +0 -19
  638. package/dist/cjs/biz-components/BrandCardLink/types.js +0 -2
  639. package/dist/cjs/biz-components/BrandCardLink/types.js.map +0 -7
  640. package/dist/cjs/biz-components/BuyOneGetOneShelf/ProductCard.d.ts +0 -74
  641. package/dist/cjs/biz-components/BuyOneGetOneShelf/ProductCard.js +0 -2
  642. package/dist/cjs/biz-components/BuyOneGetOneShelf/ProductCard.js.map +0 -7
  643. package/dist/cjs/biz-components/BuyOneGetOneShelf/hooks/useBogoDataTransform.d.ts +0 -36
  644. package/dist/cjs/biz-components/BuyOneGetOneShelf/hooks/useBogoDataTransform.js +0 -2
  645. package/dist/cjs/biz-components/BuyOneGetOneShelf/hooks/useBogoDataTransform.js.map +0 -7
  646. package/dist/cjs/biz-components/BuyOneGetOneShelf/index.d.ts +0 -193
  647. package/dist/cjs/biz-components/BuyOneGetOneShelf/index.js +0 -2
  648. package/dist/cjs/biz-components/BuyOneGetOneShelf/index.js.map +0 -7
  649. package/dist/cjs/biz-components/EventSchedule/index.d.ts +0 -63
  650. package/dist/cjs/biz-components/EventSchedule/index.js +0 -2
  651. package/dist/cjs/biz-components/EventSchedule/index.js.map +0 -7
  652. package/dist/cjs/biz-components/IPRedirect/RegionBanner.d.ts +0 -37
  653. package/dist/cjs/biz-components/IPRedirect/RegionBanner.js +0 -60
  654. package/dist/cjs/biz-components/IPRedirect/RegionBanner.js.map +0 -7
  655. package/dist/cjs/biz-components/IPRedirect/RegionSelectorModal.d.ts +0 -47
  656. package/dist/cjs/biz-components/IPRedirect/RegionSelectorModal.js +0 -33
  657. package/dist/cjs/biz-components/IPRedirect/RegionSelectorModal.js.map +0 -7
  658. package/dist/cjs/biz-components/IPRedirect/index.d.ts +0 -9
  659. package/dist/cjs/biz-components/IPRedirect/index.js +0 -2
  660. package/dist/cjs/biz-components/IPRedirect/index.js.map +0 -7
  661. package/dist/cjs/biz-components/IPRedirect/type.d.ts +0 -36
  662. package/dist/cjs/biz-components/IPRedirect/type.js +0 -2
  663. package/dist/cjs/biz-components/IPRedirect/type.js.map +0 -7
  664. package/dist/cjs/biz-components/IPRedirect/useAutoRedirect.d.ts +0 -66
  665. package/dist/cjs/biz-components/IPRedirect/useAutoRedirect.js +0 -2
  666. package/dist/cjs/biz-components/IPRedirect/useAutoRedirect.js.map +0 -7
  667. package/dist/cjs/biz-components/IPRedirect/useDetectedRegionRedirect.d.ts +0 -51
  668. package/dist/cjs/biz-components/IPRedirect/useDetectedRegionRedirect.js +0 -2
  669. package/dist/cjs/biz-components/IPRedirect/useDetectedRegionRedirect.js.map +0 -7
  670. package/dist/cjs/biz-components/IPRedirect/useIPRedirect.d.ts +0 -42
  671. package/dist/cjs/biz-components/IPRedirect/useIPRedirect.js +0 -2
  672. package/dist/cjs/biz-components/IPRedirect/useIPRedirect.js.map +0 -7
  673. package/dist/cjs/biz-components/IPRedirect/useRedirectBanner.d.ts +0 -108
  674. package/dist/cjs/biz-components/IPRedirect/useRedirectBanner.js +0 -2
  675. package/dist/cjs/biz-components/IPRedirect/useRedirectBanner.js.map +0 -7
  676. package/dist/cjs/biz-components/IPRedirect/useRegionRedirectManager.d.ts +0 -152
  677. package/dist/cjs/biz-components/IPRedirect/useRegionRedirectManager.js +0 -2
  678. package/dist/cjs/biz-components/IPRedirect/useRegionRedirectManager.js.map +0 -7
  679. package/dist/cjs/biz-components/IPRedirect/useSavedRegionRedirect.d.ts +0 -51
  680. package/dist/cjs/biz-components/IPRedirect/useSavedRegionRedirect.js +0 -2
  681. package/dist/cjs/biz-components/IPRedirect/useSavedRegionRedirect.js.map +0 -7
  682. package/dist/cjs/biz-components/IPRedirect/utils.d.ts +0 -222
  683. package/dist/cjs/biz-components/IPRedirect/utils.js +0 -2
  684. package/dist/cjs/biz-components/IPRedirect/utils.js.map +0 -7
  685. package/dist/cjs/biz-components/ImageOverlayShelf/index.d.ts +0 -114
  686. package/dist/cjs/biz-components/ImageOverlayShelf/index.js +0 -2
  687. package/dist/cjs/biz-components/ImageOverlayShelf/index.js.map +0 -7
  688. package/dist/cjs/biz-components/Media/index.d.ts +0 -32
  689. package/dist/cjs/biz-components/Media/index.js +0 -2
  690. package/dist/cjs/biz-components/Media/index.js.map +0 -7
  691. package/dist/cjs/biz-components/MediaShelf/index.d.ts +0 -231
  692. package/dist/cjs/biz-components/MediaShelf/index.js +0 -2
  693. package/dist/cjs/biz-components/MediaShelf/index.js.map +0 -7
  694. package/dist/cjs/biz-components/MediaShelf/types.d.ts +0 -37
  695. package/dist/cjs/biz-components/MediaShelf/types.js +0 -2
  696. package/dist/cjs/biz-components/MediaShelf/types.js.map +0 -7
  697. package/dist/cjs/biz-components/MiniCart/index.d.ts +0 -88
  698. package/dist/cjs/biz-components/MiniCart/index.js +0 -2
  699. package/dist/cjs/biz-components/MiniCart/index.js.map +0 -7
  700. package/dist/cjs/biz-components/PromotionalBar/index.d.ts +0 -49
  701. package/dist/cjs/biz-components/PromotionalBar/index.js +0 -2
  702. package/dist/cjs/biz-components/PromotionalBar/index.js.map +0 -7
  703. package/dist/cjs/biz-components/SecondaryBanner/index.d.ts +0 -69
  704. package/dist/cjs/biz-components/SecondaryBanner/index.js +0 -2
  705. package/dist/cjs/biz-components/SecondaryBanner/index.js.map +0 -7
  706. package/dist/cjs/biz-components/Title/Countdown.d.ts +0 -14
  707. package/dist/cjs/biz-components/Title/Countdown.js +0 -2
  708. package/dist/cjs/biz-components/Title/Countdown.js.map +0 -7
  709. package/dist/cjs/biz-components/WheelLottery/BaseModal.d.ts +0 -55
  710. package/dist/cjs/biz-components/WheelLottery/BaseModal.js +0 -12
  711. package/dist/cjs/biz-components/WheelLottery/BaseModal.js.map +0 -7
  712. package/dist/cjs/biz-components/WheelLottery/ChanceMethods.d.ts +0 -30
  713. package/dist/cjs/biz-components/WheelLottery/ChanceMethods.js +0 -2
  714. package/dist/cjs/biz-components/WheelLottery/ChanceMethods.js.map +0 -7
  715. package/dist/cjs/biz-components/WheelLottery/ErrorModal.d.ts +0 -42
  716. package/dist/cjs/biz-components/WheelLottery/ErrorModal.js +0 -2
  717. package/dist/cjs/biz-components/WheelLottery/ErrorModal.js.map +0 -7
  718. package/dist/cjs/biz-components/WheelLottery/MyRewardsModal.d.ts +0 -91
  719. package/dist/cjs/biz-components/WheelLottery/MyRewardsModal.js +0 -2
  720. package/dist/cjs/biz-components/WheelLottery/MyRewardsModal.js.map +0 -7
  721. package/dist/cjs/biz-components/WheelLottery/PrizePool.d.ts +0 -26
  722. package/dist/cjs/biz-components/WheelLottery/PrizePool.js +0 -2
  723. package/dist/cjs/biz-components/WheelLottery/PrizePool.js.map +0 -7
  724. package/dist/cjs/biz-components/WheelLottery/RulesModal.d.ts +0 -47
  725. package/dist/cjs/biz-components/WheelLottery/RulesModal.js +0 -2
  726. package/dist/cjs/biz-components/WheelLottery/RulesModal.js.map +0 -7
  727. package/dist/cjs/biz-components/WheelLottery/ShareModal.d.ts +0 -74
  728. package/dist/cjs/biz-components/WheelLottery/ShareModal.js +0 -2
  729. package/dist/cjs/biz-components/WheelLottery/ShareModal.js.map +0 -7
  730. package/dist/cjs/biz-components/WheelLottery/Wheel.d.ts +0 -27
  731. package/dist/cjs/biz-components/WheelLottery/Wheel.js +0 -2
  732. package/dist/cjs/biz-components/WheelLottery/Wheel.js.map +0 -7
  733. package/dist/cjs/biz-components/WheelLottery/WinnerModal.d.ts +0 -25
  734. package/dist/cjs/biz-components/WheelLottery/WinnerModal.js +0 -2
  735. package/dist/cjs/biz-components/WheelLottery/WinnerModal.js.map +0 -7
  736. package/dist/cjs/biz-components/WheelLottery/index.d.ts +0 -52
  737. package/dist/cjs/biz-components/WheelLottery/index.js +0 -2
  738. package/dist/cjs/biz-components/WheelLottery/index.js.map +0 -7
  739. package/dist/cjs/biz-components/WheelLottery/types.d.ts +0 -1219
  740. package/dist/cjs/biz-components/WheelLottery/types.js +0 -2
  741. package/dist/cjs/biz-components/WheelLottery/types.js.map +0 -7
  742. package/dist/cjs/components/paginator.d.ts +0 -12
  743. package/dist/cjs/components/paginator.js +0 -7
  744. package/dist/cjs/components/paginator.js.map +0 -7
  745. package/dist/cjs/components/progress.d.ts +0 -46
  746. package/dist/cjs/components/progress.js +0 -2
  747. package/dist/cjs/components/progress.js.map +0 -7
  748. package/dist/cjs/helpers/priceFormatting.d.ts +0 -11
  749. package/dist/cjs/helpers/priceFormatting.js +0 -2
  750. package/dist/cjs/helpers/priceFormatting.js.map +0 -7
  751. package/dist/cjs/hooks/index.d.ts +0 -2
  752. package/dist/cjs/hooks/index.js +0 -2
  753. package/dist/cjs/hooks/index.js.map +0 -7
  754. package/dist/cjs/hooks/useCoupon.d.ts +0 -111
  755. package/dist/cjs/hooks/useCoupon.js +0 -2
  756. package/dist/cjs/hooks/useCoupon.js.map +0 -7
  757. package/dist/cjs/hooks/useMemberPrice.d.ts +0 -155
  758. package/dist/cjs/hooks/useMemberPrice.js +0 -2
  759. package/dist/cjs/hooks/useMemberPrice.js.map +0 -7
  760. package/dist/esm/biz-components/ActiveShelf/index.d.ts +0 -174
  761. package/dist/esm/biz-components/ActiveShelf/index.js +0 -2
  762. package/dist/esm/biz-components/ActiveShelf/index.js.map +0 -7
  763. package/dist/esm/biz-components/ActiveShelf/types.d.ts +0 -89
  764. package/dist/esm/biz-components/ActiveShelf/types.js +0 -2
  765. package/dist/esm/biz-components/ActiveShelf/types.js.map +0 -7
  766. package/dist/esm/biz-components/AnchorNavigation/index.d.ts +0 -42
  767. package/dist/esm/biz-components/AnchorNavigation/index.js +0 -2
  768. package/dist/esm/biz-components/AnchorNavigation/index.js.map +0 -7
  769. package/dist/esm/biz-components/AnchorNavigation/useAnchorPosition.d.ts +0 -2
  770. package/dist/esm/biz-components/AnchorNavigation/useAnchorPosition.js +0 -2
  771. package/dist/esm/biz-components/AnchorNavigation/useAnchorPosition.js.map +0 -7
  772. package/dist/esm/biz-components/BrandCardLink/BrandCardLink.d.ts +0 -6
  773. package/dist/esm/biz-components/BrandCardLink/BrandCardLink.js +0 -2
  774. package/dist/esm/biz-components/BrandCardLink/BrandCardLink.js.map +0 -7
  775. package/dist/esm/biz-components/BrandCardLink/index.d.ts +0 -1
  776. package/dist/esm/biz-components/BrandCardLink/index.js +0 -2
  777. package/dist/esm/biz-components/BrandCardLink/index.js.map +0 -7
  778. package/dist/esm/biz-components/BrandCardLink/types.d.ts +0 -19
  779. package/dist/esm/biz-components/BrandCardLink/types.js +0 -1
  780. package/dist/esm/biz-components/BrandCardLink/types.js.map +0 -7
  781. package/dist/esm/biz-components/BuyOneGetOneShelf/ProductCard.d.ts +0 -74
  782. package/dist/esm/biz-components/BuyOneGetOneShelf/ProductCard.js +0 -2
  783. package/dist/esm/biz-components/BuyOneGetOneShelf/ProductCard.js.map +0 -7
  784. package/dist/esm/biz-components/BuyOneGetOneShelf/hooks/useBogoDataTransform.d.ts +0 -36
  785. package/dist/esm/biz-components/BuyOneGetOneShelf/hooks/useBogoDataTransform.js +0 -2
  786. package/dist/esm/biz-components/BuyOneGetOneShelf/hooks/useBogoDataTransform.js.map +0 -7
  787. package/dist/esm/biz-components/BuyOneGetOneShelf/index.d.ts +0 -193
  788. package/dist/esm/biz-components/BuyOneGetOneShelf/index.js +0 -2
  789. package/dist/esm/biz-components/BuyOneGetOneShelf/index.js.map +0 -7
  790. package/dist/esm/biz-components/EventSchedule/index.d.ts +0 -63
  791. package/dist/esm/biz-components/EventSchedule/index.js +0 -2
  792. package/dist/esm/biz-components/EventSchedule/index.js.map +0 -7
  793. package/dist/esm/biz-components/IPRedirect/RegionBanner.d.ts +0 -37
  794. package/dist/esm/biz-components/IPRedirect/RegionBanner.js +0 -60
  795. package/dist/esm/biz-components/IPRedirect/RegionBanner.js.map +0 -7
  796. package/dist/esm/biz-components/IPRedirect/RegionSelectorModal.d.ts +0 -47
  797. package/dist/esm/biz-components/IPRedirect/RegionSelectorModal.js +0 -33
  798. package/dist/esm/biz-components/IPRedirect/RegionSelectorModal.js.map +0 -7
  799. package/dist/esm/biz-components/IPRedirect/index.d.ts +0 -9
  800. package/dist/esm/biz-components/IPRedirect/index.js +0 -2
  801. package/dist/esm/biz-components/IPRedirect/index.js.map +0 -7
  802. package/dist/esm/biz-components/IPRedirect/type.d.ts +0 -36
  803. package/dist/esm/biz-components/IPRedirect/type.js +0 -1
  804. package/dist/esm/biz-components/IPRedirect/type.js.map +0 -7
  805. package/dist/esm/biz-components/IPRedirect/useAutoRedirect.d.ts +0 -66
  806. package/dist/esm/biz-components/IPRedirect/useAutoRedirect.js +0 -2
  807. package/dist/esm/biz-components/IPRedirect/useAutoRedirect.js.map +0 -7
  808. package/dist/esm/biz-components/IPRedirect/useDetectedRegionRedirect.d.ts +0 -51
  809. package/dist/esm/biz-components/IPRedirect/useDetectedRegionRedirect.js +0 -2
  810. package/dist/esm/biz-components/IPRedirect/useDetectedRegionRedirect.js.map +0 -7
  811. package/dist/esm/biz-components/IPRedirect/useIPRedirect.d.ts +0 -42
  812. package/dist/esm/biz-components/IPRedirect/useIPRedirect.js +0 -2
  813. package/dist/esm/biz-components/IPRedirect/useIPRedirect.js.map +0 -7
  814. package/dist/esm/biz-components/IPRedirect/useRedirectBanner.d.ts +0 -108
  815. package/dist/esm/biz-components/IPRedirect/useRedirectBanner.js +0 -2
  816. package/dist/esm/biz-components/IPRedirect/useRedirectBanner.js.map +0 -7
  817. package/dist/esm/biz-components/IPRedirect/useRegionRedirectManager.d.ts +0 -152
  818. package/dist/esm/biz-components/IPRedirect/useRegionRedirectManager.js +0 -2
  819. package/dist/esm/biz-components/IPRedirect/useRegionRedirectManager.js.map +0 -7
  820. package/dist/esm/biz-components/IPRedirect/useSavedRegionRedirect.d.ts +0 -51
  821. package/dist/esm/biz-components/IPRedirect/useSavedRegionRedirect.js +0 -2
  822. package/dist/esm/biz-components/IPRedirect/useSavedRegionRedirect.js.map +0 -7
  823. package/dist/esm/biz-components/IPRedirect/utils.d.ts +0 -222
  824. package/dist/esm/biz-components/IPRedirect/utils.js +0 -2
  825. package/dist/esm/biz-components/IPRedirect/utils.js.map +0 -7
  826. package/dist/esm/biz-components/ImageOverlayShelf/index.d.ts +0 -114
  827. package/dist/esm/biz-components/ImageOverlayShelf/index.js +0 -2
  828. package/dist/esm/biz-components/ImageOverlayShelf/index.js.map +0 -7
  829. package/dist/esm/biz-components/Media/index.d.ts +0 -32
  830. package/dist/esm/biz-components/Media/index.js +0 -2
  831. package/dist/esm/biz-components/Media/index.js.map +0 -7
  832. package/dist/esm/biz-components/MediaShelf/index.d.ts +0 -231
  833. package/dist/esm/biz-components/MediaShelf/index.js +0 -2
  834. package/dist/esm/biz-components/MediaShelf/index.js.map +0 -7
  835. package/dist/esm/biz-components/MediaShelf/types.d.ts +0 -37
  836. package/dist/esm/biz-components/MediaShelf/types.js +0 -2
  837. package/dist/esm/biz-components/MediaShelf/types.js.map +0 -7
  838. package/dist/esm/biz-components/MiniCart/index.d.ts +0 -88
  839. package/dist/esm/biz-components/MiniCart/index.js +0 -2
  840. package/dist/esm/biz-components/MiniCart/index.js.map +0 -7
  841. package/dist/esm/biz-components/PromotionalBar/index.d.ts +0 -49
  842. package/dist/esm/biz-components/PromotionalBar/index.js +0 -2
  843. package/dist/esm/biz-components/PromotionalBar/index.js.map +0 -7
  844. package/dist/esm/biz-components/SecondaryBanner/index.d.ts +0 -69
  845. package/dist/esm/biz-components/SecondaryBanner/index.js +0 -2
  846. package/dist/esm/biz-components/SecondaryBanner/index.js.map +0 -7
  847. package/dist/esm/biz-components/Title/Countdown.d.ts +0 -14
  848. package/dist/esm/biz-components/Title/Countdown.js +0 -2
  849. package/dist/esm/biz-components/Title/Countdown.js.map +0 -7
  850. package/dist/esm/biz-components/WheelLottery/BaseModal.d.ts +0 -55
  851. package/dist/esm/biz-components/WheelLottery/BaseModal.js +0 -12
  852. package/dist/esm/biz-components/WheelLottery/BaseModal.js.map +0 -7
  853. package/dist/esm/biz-components/WheelLottery/ChanceMethods.d.ts +0 -30
  854. package/dist/esm/biz-components/WheelLottery/ChanceMethods.js +0 -2
  855. package/dist/esm/biz-components/WheelLottery/ChanceMethods.js.map +0 -7
  856. package/dist/esm/biz-components/WheelLottery/ErrorModal.d.ts +0 -42
  857. package/dist/esm/biz-components/WheelLottery/ErrorModal.js +0 -2
  858. package/dist/esm/biz-components/WheelLottery/ErrorModal.js.map +0 -7
  859. package/dist/esm/biz-components/WheelLottery/MyRewardsModal.d.ts +0 -91
  860. package/dist/esm/biz-components/WheelLottery/MyRewardsModal.js +0 -2
  861. package/dist/esm/biz-components/WheelLottery/MyRewardsModal.js.map +0 -7
  862. package/dist/esm/biz-components/WheelLottery/PrizePool.d.ts +0 -26
  863. package/dist/esm/biz-components/WheelLottery/PrizePool.js +0 -2
  864. package/dist/esm/biz-components/WheelLottery/PrizePool.js.map +0 -7
  865. package/dist/esm/biz-components/WheelLottery/RulesModal.d.ts +0 -47
  866. package/dist/esm/biz-components/WheelLottery/RulesModal.js +0 -2
  867. package/dist/esm/biz-components/WheelLottery/RulesModal.js.map +0 -7
  868. package/dist/esm/biz-components/WheelLottery/ShareModal.d.ts +0 -74
  869. package/dist/esm/biz-components/WheelLottery/ShareModal.js +0 -2
  870. package/dist/esm/biz-components/WheelLottery/ShareModal.js.map +0 -7
  871. package/dist/esm/biz-components/WheelLottery/Wheel.d.ts +0 -27
  872. package/dist/esm/biz-components/WheelLottery/Wheel.js +0 -2
  873. package/dist/esm/biz-components/WheelLottery/Wheel.js.map +0 -7
  874. package/dist/esm/biz-components/WheelLottery/WinnerModal.d.ts +0 -25
  875. package/dist/esm/biz-components/WheelLottery/WinnerModal.js +0 -2
  876. package/dist/esm/biz-components/WheelLottery/WinnerModal.js.map +0 -7
  877. package/dist/esm/biz-components/WheelLottery/index.d.ts +0 -52
  878. package/dist/esm/biz-components/WheelLottery/index.js +0 -2
  879. package/dist/esm/biz-components/WheelLottery/index.js.map +0 -7
  880. package/dist/esm/biz-components/WheelLottery/types.d.ts +0 -1219
  881. package/dist/esm/biz-components/WheelLottery/types.js +0 -2
  882. package/dist/esm/biz-components/WheelLottery/types.js.map +0 -7
  883. package/dist/esm/components/paginator.d.ts +0 -12
  884. package/dist/esm/components/paginator.js +0 -7
  885. package/dist/esm/components/paginator.js.map +0 -7
  886. package/dist/esm/components/progress.d.ts +0 -46
  887. package/dist/esm/components/progress.js +0 -2
  888. package/dist/esm/components/progress.js.map +0 -7
  889. package/dist/esm/helpers/priceFormatting.d.ts +0 -11
  890. package/dist/esm/helpers/priceFormatting.js +0 -2
  891. package/dist/esm/helpers/priceFormatting.js.map +0 -7
  892. package/dist/esm/hooks/index.d.ts +0 -2
  893. package/dist/esm/hooks/index.js +0 -2
  894. package/dist/esm/hooks/index.js.map +0 -7
  895. package/dist/esm/hooks/useCoupon.d.ts +0 -111
  896. package/dist/esm/hooks/useCoupon.js +0 -2
  897. package/dist/esm/hooks/useCoupon.js.map +0 -7
  898. package/dist/esm/hooks/useMemberPrice.d.ts +0 -155
  899. package/dist/esm/hooks/useMemberPrice.js +0 -2
  900. package/dist/esm/hooks/useMemberPrice.js.map +0 -7
@@ -1,231 +0,0 @@
1
- import * as React from 'react';
2
- import type { MemberDiscountConfig } from '../ActiveShelf/types.js';
3
- import type { CopyConfig } from './types.js';
4
- import 'swiper/css';
5
- import 'swiper/css/navigation';
6
- /**
7
- * 语义化类名
8
- */
9
- export type MediaShelfSemanticName = 'root' | 'title' | 'description' | 'mediaCard' | 'mediaTitle' | 'mediaDescription' | 'mediaButton' | 'mediaImage';
10
- /**
11
- * 组件布局模式
12
- */
13
- export type MediaShelfLayoutMode = '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
- * MediaShelf Context 配置接口
24
- */
25
- export interface MediaShelfContextConfig {
26
- /** 布局模式:网格布局或横向滑动 */
27
- layoutMode?: MediaShelfLayoutMode;
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
- * MediaShelf Context 值接口
45
- */
46
- interface MediaShelfContextValue extends MediaShelfContextConfig {
47
- /** 点击媒体卡片回调 */
48
- onMediaClick?: (media: ProductCardData) => void;
49
- /** 语义化类名 */
50
- classNames?: Partial<Record<MediaShelfSemanticName, string>>;
51
- /** 点击了解更多回调 */
52
- onLearnMore?: (product: any, variant?: any, coupon?: any) => void;
53
- /** 点击立即购买回调 */
54
- onShopNow?: (product: any, variant?: any, coupon?: any) => void;
55
- functionDiscountConfig?: {
56
- memberPriceConfig?: MemberDiscountConfig;
57
- };
58
- /** 了解更多按钮文本 */
59
- learnMoreText: string;
60
- /** 立即购买按钮文本 */
61
- shopNowText: string;
62
- /** 文案配置 */
63
- copy: CopyConfig;
64
- }
65
- /**
66
- * 使用 MediaShelf Context 的 Hook
67
- */
68
- export declare const useMediaShelfContext: () => MediaShelfContextValue;
69
- /**
70
- * 标签数据接口
71
- */
72
- export interface ProductTag {
73
- /** 标签ID */
74
- id: string;
75
- /** 标签文本 */
76
- text: string;
77
- /** 标签类型 */
78
- type: 'discount' | 'new' | 'member' | 'sale' | 'flash';
79
- /** 标签颜色变体 */
80
- variant?: 'primary' | 'secondary' | 'success' | 'warning' | 'error';
81
- }
82
- /**
83
- * 库存信息接口
84
- */
85
- export interface StockInfo {
86
- /** 当前库存数量 */
87
- currentStock: number;
88
- /** 总库存数量 */
89
- totalStock: number;
90
- /** 库存文本 */
91
- stockText?: string;
92
- /** 是否显示库存进度条 */
93
- showProgress?: boolean;
94
- }
95
- /**
96
- * 价格信息接口
97
- */
98
- export interface PriceInfo {
99
- /** 当前价格 */
100
- currentPrice: string;
101
- /** 原价 */
102
- originalPrice?: string;
103
- /** 会员价格标签 */
104
- memberPriceLabel?: string;
105
- /** 货币符号 */
106
- currency?: string;
107
- }
108
- /**
109
- * 基础媒体数据接口
110
- */
111
- export interface BaseProductData {
112
- sku: string;
113
- name: string;
114
- image: string;
115
- value: string;
116
- handle: string;
117
- shopify_id: string;
118
- /** 产品副标题/描述 */
119
- subtitle?: string;
120
- /** 标签列表 */
121
- tags?: ProductTag[];
122
- /** 库存信息 */
123
- stock?: StockInfo;
124
- /** 价格信息 */
125
- pricing?: PriceInfo;
126
- custom_name?: string;
127
- custom_description?: string;
128
- custom_image?: string;
129
- custom_link?: string;
130
- }
131
- /**
132
- * 完整的媒体卡片数据接口
133
- */
134
- export interface ProductCardData extends BaseProductData {
135
- }
136
- /**
137
- * 媒体分组Tab数据接口
138
- */
139
- export interface ProductTab {
140
- /** Tab ID */
141
- id: string;
142
- /** Tab 标题 */
143
- tab: string;
144
- /** 该分组下的媒体数据 */
145
- data: ProductCardData[];
146
- }
147
- /**
148
- * MediaShelf 业务组件数据接口
149
- */
150
- export interface MediaShelfData {
151
- /** 组件标题 */
152
- title?: string;
153
- /** 组件描述 */
154
- description?: string;
155
- /** 分组媒体Tab列表 */
156
- productsTab?: ProductTab[];
157
- /** 主题模式 */
158
- theme: 'light' | 'dark';
159
- /** 是否显示 Tab(默认:true) */
160
- isShowTab?: boolean;
161
- /** 按钮文本 */
162
- buttonText?: string;
163
- /** 布局模式:网格布局或横向滑动 */
164
- layoutMode?: MediaShelfLayoutMode;
165
- /** Code Channel 配置 - 折扣前缀 */
166
- codeChannel?: CodeChannelConfig;
167
- /** 是否展示会员价格 */
168
- showMemberPrice?: boolean;
169
- /** 是否展示折扣标签 */
170
- showDiscount?: boolean;
171
- /** 是否展示标签系统 */
172
- showTags?: boolean;
173
- /** 库存展示模式 */
174
- stockDisplayMode?: StockDisplayMode;
175
- /** 库存阈值(当模式为 below-quantity 或 below-percentage 时使用) */
176
- stockThreshold?: number;
177
- /**
178
- * 库存文本模板,支持 {count} 占位符
179
- */
180
- stockDisplayText?: string;
181
- /** 是否展示原价(删除线价格) */
182
- showOriginalPrice?: boolean;
183
- /** 了解更多按钮文本 */
184
- learnMoreText?: string;
185
- /** 立即购买按钮文本 */
186
- shopNowText?: string;
187
- /** 文案配置 */
188
- copy?: CopyConfig;
189
- /**
190
- * 产品列表(当不使用 Tab 分组时可直接传入产品列表)
191
- */
192
- productsCard?: ProductCardData[];
193
- }
194
- export interface MediaShelfProps extends React.HTMLAttributes<HTMLDivElement> {
195
- /** 业务数据 */
196
- data: MediaShelfData;
197
- /** 点击了解更多回调 */
198
- onLearnMore?: (product: any, variant?: any, coupon?: any) => void;
199
- /** 点击立即购买回调 */
200
- onShopNow?: (product: any, variant?: any, coupon?: any) => void;
201
- /**
202
- * 外部构建数据(用于合并产品数据)
203
- */
204
- buildData?: any[];
205
- /** 点击媒体卡片回调 */
206
- onMediaClick?: (media: ProductCardData) => void;
207
- /**
208
- * function 折扣配置
209
- */
210
- functionDiscountConfig?: {
211
- memberPriceConfig?: MemberDiscountConfig;
212
- };
213
- /** 语义化类名 */
214
- classNames?: Partial<Record<MediaShelfSemanticName, string>>;
215
- }
216
- /**
217
- * 媒体卡片组件
218
- */
219
- declare const ProductCard: React.ForwardRefExoticComponent<{
220
- product: ProductCardData;
221
- shopifyProductData?: any;
222
- className?: string;
223
- } & React.RefAttributes<HTMLDivElement>>;
224
- /**
225
- * MediaShelf - 媒体货架
226
- *
227
- * @description 专门用于展示媒体内容(图片、视频、文章等)的货架组件,支持网格布局和横向滑动
228
- */
229
- declare const MediaShelf: React.ForwardRefExoticComponent<MediaShelfProps & React.RefAttributes<HTMLDivElement>>;
230
- export default MediaShelf;
231
- export { ProductCard };
@@ -1,2 +0,0 @@
1
- "use strict";"use client";var se=Object.create;var z=Object.defineProperty;var le=Object.getOwnPropertyDescriptor;var ce=Object.getOwnPropertyNames;var de=Object.getPrototypeOf,ue=Object.prototype.hasOwnProperty;var me=(i,t)=>{for(var r in t)z(i,r,{get:t[r],enumerable:!0})},G=(i,t,r,p)=>{if(t&&typeof t=="object"||typeof t=="function")for(let d of ce(t))!ue.call(i,d)&&d!==r&&z(i,d,{get:()=>t[d],enumerable:!(p=le(t,d))||p.enumerable});return i};var J=(i,t,r)=>(r=i!=null?se(de(i)):{},G(t||!i||!i.__esModule?z(r,"default",{value:i,enumerable:!0}):r,i)),pe=i=>G(z({},"__esModule",{value:!0}),i);var xe={};me(xe,{ProductCard:()=>S,default:()=>he,useMediaShelfContext:()=>F});module.exports=pe(xe);var e=require("react/jsx-runtime"),y=J(require("react")),m=require("../../helpers/index.js"),a=require("../../components/index.js"),E=require("swiper/react"),Y=require("swiper/modules"),$=require("../../helpers/utils.js"),ee=J(require("../../hooks/useCoupon.js")),T=require("../../helpers/priceFormatting.js"),te=require("../../hooks/index.js"),ie=require("../AiuiProvider/index.js"),_=require("./types.js"),Ce=require("swiper/css"),ve=require("swiper/css/navigation");const K=999999999e-2,be=({disabled:i})=>(0,e.jsxs)("svg",{width:"56",height:"56",viewBox:"0 0 56 56",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,e.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:i?"0.2":"0.6"}),(0,e.jsx)("path",{d:"M31 22L25 28L31 34",stroke:"white",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})]}),ge=({disabled:i})=>(0,e.jsxs)("svg",{width:"56",height:"56",viewBox:"0 0 56 56",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,e.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:i?"0.2":"0.6"}),(0,e.jsx)("path",{d:"M25 22L31 28L25 34",stroke:"white",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})]});function fe(i,t,r,p){if(i===void 0)return!0;if(!p)return!1;switch(i){case"always":return!0;case"never":return!1;case"below-quantity":return t===void 0?!0:r<=t;case"below-percentage":return t===void 0?!0:r/p<=t;default:return!0}}const Q=y.createContext(null),F=()=>{const i=y.useContext(Q);if(!i)throw new Error("useMediaShelfContext must be used within a MediaShelfProvider");return i},S=y.forwardRef(({product:i,shopifyProductData:t,className:r},p)=>{const{showTags:d=!0,stockDisplayMode:N,stockThreshold:C,onLearnMore:f,onShopNow:w,classNames:o,codeChannel:b,functionDiscountConfig:L,onMediaClick:B,learnMoreText:I,shopNowText:H,copy:u}=F(),{isLogin:P=!1,isPlusMember:k=!1,locale:v}=(0,ie.useAiuiContext)(),s=y.useMemo(()=>{if(!t?.variants)return null;const n=t.variants.find(c=>c.sku===i.sku);return typeof n.price=="object"&&(n.price=n.price.amount),n},[i,t]),h=(0,ee.default)({variant:s,channel:b}),l=(0,te.useMemberPrice)(s,L?.memberPriceConfig),g=y.useMemo(()=>{let n=s?.price||0,c=n,M=Number(h?.fixed_value??0);return P&&k?(c=c-l.withCouponPlusMemberPriceDiscount,c=c-Math.max(l.withoutCouponPlusMemberPriceDiscount,M)):(c=c-l.withCouponMemberPriceDiscount,c=c-Math.max(l.withoutCouponMemberPriceDiscount,M)),{originalPrice:c<n?n:null,currentPrice:c,applyPlusMemberPrice:P&&k&&l.hasPlusMemberPrice,applyMemberPrice:l.hasMemberPrice}},[s?.price,h?.fixed_value,P,k,l.hasPlusMemberPrice,l.hasMemberPrice,l.withCouponMemberPriceDiscount,l.withoutCouponMemberPriceDiscount,l.withCouponPlusMemberPriceDiscount,l.withoutCouponPlusMemberPriceDiscount]),R=y.useMemo(()=>{if(!d)return[];const n=[],M=(s?.price||0)-g.currentPrice,U=l.hasPlusMemberPrice&&P&&k,ne=!U&&l.hasMemberPrice;U&&M>0?n.push({label:(0,T.formatPrice)({amount:Number(M),currencyCode:t?.price?.currencyCode,locale:v})??u.plusMemberPriceLabel,variant:"promotional",promotionalType:"plus-member"}):ne&&M>0?n.push({label:(0,T.formatPrice)({amount:Number(M),currencyCode:t?.price?.currencyCode,locale:v})??u.memberPriceLabel,variant:"promotional",promotionalType:"regular-member"}):h?.fixed_value&&n.push({label:u?.discountLabel?.replace("{value}",(0,T.formatPrice)({amount:Number(h.fixed_value),currencyCode:t?.price?.currencyCode,locale:v})??""),variant:"fill"});const re=t?.tags?.filter(V=>V.startsWith("CLtag:"))?.slice(0,2-n.length)?.map(V=>({label:V.replace("CLtag:",""),variant:"outline"}))||[];return[...n,...re]},[d,l.hasPlusMemberPrice,l.hasMemberPrice,h?.fixed_value,t?.tags,P,k,u.plusMemberPriceLabel,u.memberPriceLabel,u?.discountLabel,t?.price?.currencyCode,s?.price,g.currentPrice,v]),A=(s?.quantityAvailable??0)/(t?.totalInventory??1)*100,O=n=>{n.stopPropagation(),f?.(t,s,h)},j=n=>{n.stopPropagation(),w?.(t,s,h),B?.(i)},q=()=>{i.custom_link?document.location.assign(i.custom_link):B?.(i)},{custom_link:D,custom_name:x,custom_description:ae,custom_image:oe}=i??{},Z=!s?.availableForSale||s?.price===K||s?.price?.amount===K;return(0,e.jsxs)(a.Card,{ref:p,className:(0,m.cn)("desktop:min-h-[512px] lg-desktop:min-h-[534px] flex min-h-[458px] min-w-[296px] flex-col overflow-hidden",i.custom_link?"cursor-pointer":"",r,o?.mediaCard),onClick:D?q:void 0,children:[(0,e.jsxs)("div",{className:"desktop:h-[240px] relative h-[200px] shrink-0 overflow-hidden",children:[(0,e.jsx)("div",{className:"absolute inset-0 ",children:(0,e.jsx)("a",{href:D||i.handle,children:(0,e.jsx)(a.Picture,{source:oe||s?.image?.url,alt:t?.imageAlt||i.custom_name||i.name,className:(0,m.cn)("h-full",o?.mediaImage),imgClassName:"h-full object-cover object-center"})})}),(0,e.jsx)("div",{className:"lg-desktop:h-[28px] absolute left-4 top-4 h-[24px]",children:R?.map((n,c)=>(0,e.jsx)(a.Badge,{size:"sm",variant:n.variant||"outline",className:(0,m.cn)("mr-1"),promotionalType:n.promotionalType||"",children:n.label},c))})]}),(0,e.jsxs)(a.CardContent,{className:"desktop:p-6 flex h-[calc(100%-240px)] grow flex-col justify-between p-4",children:[(0,e.jsxs)("div",{className:"mb-6 flex-1",children:[(0,e.jsx)(a.Heading,{as:"h3",size:2,className:(0,m.cn)("text-info-primary mb-1 line-clamp-2 font-semibold tracking-tight",o?.mediaTitle),children:x||i.name}),(i.custom_description||t?.description)&&(0,e.jsx)(a.Text,{size:2,className:(0,m.cn)("text-info-primary line-clamp-1 font-semibold",o?.mediaDescription),children:ae||t.description})]}),fe(N,C,s?.quantityAvailable??0,t?.totalInventory??0)&&(0,e.jsxs)("div",{"data-total":t?.totalInventory??0,"data-available":s?.quantityAvailable??0,className:"space-y-2",children:[(0,e.jsx)(a.Progress,{value:A,max:100,min:0,size:"base",variant:"default","aria-label":"stock progress",classNames:{progressBar:"transition-all duration-300 ease-in-out"}}),(0,e.jsx)(a.Text,{size:3,className:"text-info-tertiary text-[14px]",children:u.stockDisplayText?.replace("{count}",String(s?.quantityAvailable>0?s?.quantityAvailable:s?.availableForSale?"5":"0"))})]}),(0,e.jsxs)(e.Fragment,{children:[g.applyPlusMemberPrice&&(0,e.jsx)(a.Text,{size:4,className:"text-marketing-1 mb-2",children:u.plusMemberPriceLabel}),!g.applyPlusMemberPrice&&g.applyMemberPrice&&(0,e.jsx)(a.Text,{size:4,className:"text-marketing-1 mb-2",children:u.memberPriceLabel})]}),(0,e.jsx)("div",{className:(0,m.cn)("mb-6",o?.mediaTitle),children:(0,e.jsx)("div",{className:"flex items-baseline gap-2",children:Z?(0,e.jsx)(a.Heading,{size:2,className:"text-info-tertiary",children:u.outOfStockLabel}):(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(a.Heading,{size:2,className:"text-info-primary",as:"h6",children:(0,T.formatPrice)({amount:Number(g.currentPrice),currencyCode:t?.price?.currencyCode,locale:v})}),g.originalPrice&&(0,e.jsx)(a.Heading,{size:2,className:"text-info-tertiary line-through",as:"h6",children:(0,T.formatPrice)({amount:Number(g.originalPrice),currencyCode:t?.price?.currencyCode,locale:v})})]})})}),(0,e.jsxs)("div",{className:(0,m.cn)("tablet:gap-3 mb-4 flex gap-2",o?.mediaButton),children:[(0,e.jsx)(a.Button,{variant:"secondary",size:"base",className:"",onClick:O,children:I}),(0,e.jsx)(a.Button,{variant:"primary",size:"base",className:"",onClick:j,disabled:Z,children:H})]})]})]})});S.displayName="ProductCard";const W=y.forwardRef(({products:i,layoutMode:t="flex",buildData:r,className:p},d)=>{const{copy:N}=F(),[C,f]=y.useState({isBeginning:!0,isEnd:!1}),w=o=>!r||r.length===0?null:r.find(b=>(0,$.atobID)(b.id)===o);return i?.length===0?null:(0,e.jsx)("div",{ref:d,className:p,children:t==="flex"?(0,e.jsxs)("div",{className:"w-full",children:[(0,e.jsx)("div",{className:"tablet:hidden",children:(0,e.jsx)("div",{className:"flex snap-x snap-mandatory gap-4 overflow-x-auto pb-2",children:i?.map((o,b)=>(0,e.jsx)(S,{product:o,shopifyProductData:w(o.shopify_id),className:"shrink-0 snap-start"},o.shopify_id+"-"+o.sku||b))})}),(0,e.jsx)("div",{className:(0,m.cn)("lg-desktop:gap-6 tablet:grid hidden justify-start gap-4",{"grid-cols-3":(i?.length??0)>2,"grid-cols-2":(i?.length??0)<=2}),children:i?.map((o,b)=>(0,e.jsx)(S,{product:o,shopifyProductData:w(o.shopify_id),className:"shrink-0"},o.shopify_id+"-"+o.sku||b))})]}):(0,e.jsxs)("div",{className:"relative",children:[(0,e.jsx)(E.Swiper,{modules:[Y.Navigation],spaceBetween:16,slidesPerView:"auto",autoHeight:!0,navigation:{nextEl:".swiper-button-next-custom",prevEl:".swiper-button-prev-custom"},onSwiper:o=>{f({isBeginning:o.isBeginning,isEnd:o.isEnd})},onSlideChange:o=>{f({isBeginning:o.isBeginning,isEnd:o.isEnd})},className:"!overflow-visible",children:i?.map((o,b)=>(0,e.jsx)(E.SwiperSlide,{className:"tablet:!w-[288px] tablet:min-h-[340px] desktop:!w-[316px] desktop:!min-h-[380px] lg-desktop:!w-[404px] lg-desktop:!min-h-[420px] box-border min-h-[340px] !w-[296px] overflow-hidden border-none",children:(0,e.jsx)(S,{product:o,className:"size-full max-w-full",shopifyProductData:w(o.shopify_id)})},o.shopify_id+"-"+o.sku||b))}),(0,e.jsx)("button",{className:"swiper-button-prev-custom tablet:block absolute left-4 top-1/2 z-10 hidden -translate-y-1/2","aria-label":N.previousSlideLabel,disabled:C.isBeginning,children:(0,e.jsx)(be,{disabled:C.isBeginning})}),(0,e.jsx)("button",{className:"swiper-button-next-custom tablet:block absolute right-4 top-1/2 z-10 hidden -translate-y-1/2","aria-label":N.nextSlideLabel,disabled:C.isEnd,children:(0,e.jsx)(ge,{disabled:C.isEnd})})]})})});W.displayName="ProductList";const X=y.forwardRef(({className:i,data:t,buildData:r,onLearnMore:p,onShopNow:d,onMediaClick:N,functionDiscountConfig:C,classNames:f,...w},o)=>{const{theme:b,layoutMode:L="flex",isShowTab:B=!0,codeChannel:I,showMemberPrice:H=!0,showDiscount:u=!0,showTags:P=!0,stockDisplayMode:k,stockThreshold:v,showOriginalPrice:s=!0,learnMoreText:h,shopNowText:l,copy:g}=t,R={..._.defaultCopy,...g},A=h??_.defaultButtonTexts.learnMoreText,O=l??_.defaultButtonTexts.shopNowText,j={layoutMode:L,codeChannel:I,showMemberPrice:H,showDiscount:u,showTags:P,stockDisplayMode:k,stockThreshold:v,showOriginalPrice:s,onLearnMore:p,onShopNow:d,onMediaClick:N,classNames:f,functionDiscountConfig:C,learnMoreText:A,shopNowText:O,copy:R},q=t.productsTab&&t.productsTab.length>0,D=B&&q;return(0,e.jsx)(Q.Provider,{value:j,children:(0,e.jsxs)("div",{ref:o,className:(0,m.cn)("text-info-primary w-full",{"aiui-dark":b==="dark"},i,f?.root),...w,children:[t.title&&(0,e.jsx)(a.Heading,{as:"h2",size:4,className:(0,m.cn)("mb-4",f?.title),children:t.title}),t.description&&(0,e.jsx)(a.Text,{size:3,as:"p",className:(0,m.cn)("mb-6",f?.description),children:t.description}),(0,e.jsxs)(a.Tabs,{defaultValue:t.productsTab?.[0]?.id,className:"w-full",children:[D&&(0,e.jsx)(a.TabsList,{className:"mb-6",children:t.productsTab?.map(x=>(0,e.jsx)(a.TabsTrigger,{value:x.id,children:x.tab},"tab-"+x.id))}),D?t.productsTab?.map(x=>(0,e.jsx)(a.TabsContent,{value:x.id,children:(0,e.jsx)(W,{products:x.data,layoutMode:L,buildData:r})},"tab-content-"+x.id)):(0,e.jsx)(W,{products:t.productsCard,layoutMode:L,buildData:r})]})]})})});X.displayName="MediaShelf";var he=X;
2
- //# sourceMappingURL=index.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../src/biz-components/MediaShelf/index.tsx"],
4
- "sourcesContent": ["'use client'\n\nimport * as React from 'react'\nimport { cn } from '../../helpers/index.js'\nimport {\n Button,\n Card,\n CardContent,\n Picture,\n Text,\n Heading,\n Tabs,\n TabsList,\n TabsTrigger,\n TabsContent,\n Badge,\n Progress,\n} from '../../components/index.js'\nimport { Swiper, SwiperSlide } from 'swiper/react'\nimport { Navigation } from 'swiper/modules'\nimport { atobID } from '../../helpers/utils.js'\nimport useCoupon from '../../hooks/useCoupon.js'\nimport { formatPrice } from '../../helpers/priceFormatting.js'\nimport type { MemberDiscountConfig } from '../ActiveShelf/types.js'\nimport { useMemberPrice } from '../../hooks/index.js'\nimport { useAiuiContext } from '../AiuiProvider/index.js'\nimport type { CopyConfig } from './types.js'\nimport { defaultCopy, defaultButtonTexts } from './types.js'\n\n// Import Swiper styles\nimport 'swiper/css'\nimport 'swiper/css/navigation'\n\nconst SOLD_OUT_PRICE = 9999999.99\n\n/**\n * \u8BED\u4E49\u5316\u7C7B\u540D\n */\nexport type MediaShelfSemanticName =\n | 'root'\n | 'title'\n | 'description'\n | 'mediaCard'\n | 'mediaTitle'\n | 'mediaDescription'\n | 'mediaButton'\n | 'mediaImage'\n\nconst PrevIcon = ({ disabled }: { disabled: boolean }) => (\n <svg width=\"56\" height=\"56\" viewBox=\"0 0 56 56\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\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 width=\"56\" height=\"56\" viewBox=\"0 0 56 56\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\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 MediaShelfLayoutMode = '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 quantityAvailable \u53EF\u7528\u6570\u91CF\n * @param totalInventory \u603B\u5E93\u5B58\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 if (!totalInventory) return false\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 * MediaShelf Context \u914D\u7F6E\u63A5\u53E3\n */\nexport interface MediaShelfContextConfig {\n /** \u5E03\u5C40\u6A21\u5F0F\uFF1A\u7F51\u683C\u5E03\u5C40\u6216\u6A2A\u5411\u6ED1\u52A8 */\n layoutMode?: MediaShelfLayoutMode\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}\n\n/**\n * MediaShelf Context \u503C\u63A5\u53E3\n */\ninterface MediaShelfContextValue extends MediaShelfContextConfig {\n /** \u70B9\u51FB\u5A92\u4F53\u5361\u7247\u56DE\u8C03 */\n onMediaClick?: (media: ProductCardData) => void\n /** \u8BED\u4E49\u5316\u7C7B\u540D */\n classNames?: Partial<Record<MediaShelfSemanticName, string>>\n /** \u70B9\u51FB\u4E86\u89E3\u66F4\u591A\u56DE\u8C03 */\n onLearnMore?: (product: any, variant?: any, coupon?: any) => void\n /** \u70B9\u51FB\u7ACB\u5373\u8D2D\u4E70\u56DE\u8C03 */\n onShopNow?: (product: any, variant?: any, coupon?: any) => void\n functionDiscountConfig?: {\n memberPriceConfig?: MemberDiscountConfig\n }\n /** \u4E86\u89E3\u66F4\u591A\u6309\u94AE\u6587\u672C */\n learnMoreText: string\n /** \u7ACB\u5373\u8D2D\u4E70\u6309\u94AE\u6587\u672C */\n shopNowText: string\n /** \u6587\u6848\u914D\u7F6E */\n copy: CopyConfig\n}\n\n/**\n * MediaShelf Context\n */\nconst MediaShelfContext = React.createContext<MediaShelfContextValue | null>(null)\n\n/**\n * \u4F7F\u7528 MediaShelf Context \u7684 Hook\n */\nexport const useMediaShelfContext = () => {\n const context = React.useContext(MediaShelfContext)\n if (!context) {\n throw new Error('useMediaShelfContext must be used within a MediaShelfProvider')\n }\n return context\n}\n\n/**\n * \u6807\u7B7E\u6570\u636E\u63A5\u53E3\n */\nexport interface ProductTag {\n /** \u6807\u7B7EID */\n id: string\n /** \u6807\u7B7E\u6587\u672C */\n text: string\n /** \u6807\u7B7E\u7C7B\u578B */\n type: 'discount' | 'new' | 'member' | 'sale' | 'flash'\n /** \u6807\u7B7E\u989C\u8272\u53D8\u4F53 */\n variant?: 'primary' | 'secondary' | 'success' | 'warning' | 'error'\n}\n\n/**\n * \u5E93\u5B58\u4FE1\u606F\u63A5\u53E3\n */\nexport interface StockInfo {\n /** \u5F53\u524D\u5E93\u5B58\u6570\u91CF */\n currentStock: number\n /** \u603B\u5E93\u5B58\u6570\u91CF */\n totalStock: number\n /** \u5E93\u5B58\u6587\u672C */\n stockText?: string\n /** \u662F\u5426\u663E\u793A\u5E93\u5B58\u8FDB\u5EA6\u6761 */\n showProgress?: boolean\n}\n\n/**\n * \u4EF7\u683C\u4FE1\u606F\u63A5\u53E3\n */\nexport interface PriceInfo {\n /** \u5F53\u524D\u4EF7\u683C */\n currentPrice: string\n /** \u539F\u4EF7 */\n originalPrice?: string\n /** \u4F1A\u5458\u4EF7\u683C\u6807\u7B7E */\n memberPriceLabel?: string\n /** \u8D27\u5E01\u7B26\u53F7 */\n currency?: string\n}\n\n/**\n * \u57FA\u7840\u5A92\u4F53\u6570\u636E\u63A5\u53E3\n */\nexport interface BaseProductData {\n sku: string\n name: string\n image: string\n value: string\n handle: string\n shopify_id: string\n /** \u4EA7\u54C1\u526F\u6807\u9898/\u63CF\u8FF0 */\n subtitle?: string\n /** \u6807\u7B7E\u5217\u8868 */\n tags?: ProductTag[]\n /** \u5E93\u5B58\u4FE1\u606F */\n stock?: StockInfo\n /** \u4EF7\u683C\u4FE1\u606F */\n pricing?: PriceInfo\n\n custom_name?: string\n custom_description?: string\n custom_image?: string\n custom_link?: string\n}\n\n/**\n * \u5B8C\u6574\u7684\u5A92\u4F53\u5361\u7247\u6570\u636E\u63A5\u53E3\n */\nexport interface ProductCardData extends BaseProductData {}\n\n/**\n * \u5A92\u4F53\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\u5A92\u4F53\u6570\u636E */\n data: ProductCardData[]\n}\n\n/**\n * MediaShelf \u4E1A\u52A1\u7EC4\u4EF6\u6570\u636E\u63A5\u53E3\n */\nexport interface MediaShelfData {\n /** \u7EC4\u4EF6\u6807\u9898 */\n title?: string\n /** \u7EC4\u4EF6\u63CF\u8FF0 */\n description?: string\n /** \u5206\u7EC4\u5A92\u4F53Tab\u5217\u8868 */\n productsTab?: ProductTab[]\n /** \u4E3B\u9898\u6A21\u5F0F */\n theme: 'light' | 'dark'\n /** \u662F\u5426\u663E\u793A Tab\uFF08\u9ED8\u8BA4\uFF1Atrue\uFF09 */\n isShowTab?: boolean\n /** \u6309\u94AE\u6587\u672C */\n buttonText?: string\n /** \u5E03\u5C40\u6A21\u5F0F\uFF1A\u7F51\u683C\u5E03\u5C40\u6216\u6A2A\u5411\u6ED1\u52A8 */\n layoutMode?: MediaShelfLayoutMode\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 /** \u4E86\u89E3\u66F4\u591A\u6309\u94AE\u6587\u672C */\n learnMoreText?: string\n /** \u7ACB\u5373\u8D2D\u4E70\u6309\u94AE\u6587\u672C */\n shopNowText?: string\n /** \u6587\u6848\u914D\u7F6E */\n copy?: CopyConfig\n\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 MediaShelfProps extends React.HTMLAttributes<HTMLDivElement> {\n /** \u4E1A\u52A1\u6570\u636E */\n data: MediaShelfData\n /** \u70B9\u51FB\u4E86\u89E3\u66F4\u591A\u56DE\u8C03 */\n onLearnMore?: (product: any, variant?: any, coupon?: any) => void\n /** \u70B9\u51FB\u7ACB\u5373\u8D2D\u4E70\u56DE\u8C03 */\n onShopNow?: (product: any, variant?: any, coupon?: any) => void\n /**\n * \u5916\u90E8\u6784\u5EFA\u6570\u636E\uFF08\u7528\u4E8E\u5408\u5E76\u4EA7\u54C1\u6570\u636E\uFF09\n */\n buildData?: any[]\n /** \u70B9\u51FB\u5A92\u4F53\u5361\u7247\u56DE\u8C03 */\n onMediaClick?: (media: ProductCardData) => void\n /**\n * function \u6298\u6263\u914D\u7F6E\n */\n functionDiscountConfig?: {\n memberPriceConfig?: MemberDiscountConfig\n }\n /** \u8BED\u4E49\u5316\u7C7B\u540D */\n classNames?: Partial<Record<MediaShelfSemanticName, string>>\n}\n\n/**\n * \u5A92\u4F53\u5361\u7247\u7EC4\u4EF6\n */\nconst ProductCard = React.forwardRef<\n HTMLDivElement,\n {\n product: ProductCardData\n shopifyProductData?: any\n className?: string\n }\n>(({ product, shopifyProductData, className }, ref) => {\n const {\n showTags = true,\n stockDisplayMode,\n stockThreshold,\n onLearnMore,\n onShopNow,\n classNames,\n codeChannel,\n functionDiscountConfig,\n onMediaClick,\n learnMoreText,\n shopNowText,\n copy,\n } = useMediaShelfContext()\n\n const { isLogin = false, isPlusMember = false, locale } = useAiuiContext()\n\n const matchVariant = React.useMemo(() => {\n if (!shopifyProductData?.variants) return null\n const res = shopifyProductData.variants.find((v: any) => v.sku === product.sku)\n if (typeof res.price === 'object') {\n res.price = res.price.amount\n }\n return res\n }, [product, shopifyProductData])\n\n const discountInfo = useCoupon({\n variant: matchVariant,\n channel: codeChannel,\n })\n\n const memberPrice = useMemberPrice(matchVariant, functionDiscountConfig?.memberPriceConfig)\n\n // \u8BA1\u7B97\u6700\u7EC8\u663E\u793A\u4EF7\u683C\n const priceInfo = React.useMemo(() => {\n let originalPrice = matchVariant?.price || 0\n let currentPrice = originalPrice\n\n let discountAmount = Number(discountInfo?.fixed_value ?? 0)\n\n if (isLogin) {\n // \u5982\u679C\u662Fplus \u7528\u6237 \u8BA1\u7B97\u4EF7\u683C\n if (isPlusMember) {\n currentPrice = currentPrice - memberPrice.withCouponPlusMemberPriceDiscount\n currentPrice = currentPrice - Math.max(memberPrice.withoutCouponPlusMemberPriceDiscount, discountAmount)\n } else {\n // \u767B\u5F55\u5C31\u662F\u666E\u901A\u4F1A\u5458\n currentPrice = currentPrice - memberPrice.withCouponMemberPriceDiscount\n currentPrice = currentPrice - Math.max(memberPrice.withoutCouponMemberPriceDiscount, discountAmount)\n }\n } else {\n // \u672A\u767B\u5F55\u7528\u6237\u53EA\u8BA1\u7B97\u901A\u7528\u6298\u6263 \u548C \u666E\u901A\u4F1A\u5458\u6298\u6263\n currentPrice = currentPrice - memberPrice.withCouponMemberPriceDiscount\n currentPrice = currentPrice - Math.max(memberPrice.withoutCouponMemberPriceDiscount, discountAmount)\n }\n\n return {\n originalPrice: currentPrice < originalPrice ? originalPrice : null,\n currentPrice,\n applyPlusMemberPrice: isLogin && isPlusMember && memberPrice.hasPlusMemberPrice,\n applyMemberPrice: memberPrice.hasMemberPrice,\n }\n }, [\n matchVariant?.price,\n discountInfo?.fixed_value,\n isLogin,\n isPlusMember,\n memberPrice.hasPlusMemberPrice,\n memberPrice.hasMemberPrice,\n memberPrice.withCouponMemberPriceDiscount,\n memberPrice.withoutCouponMemberPriceDiscount,\n memberPrice.withCouponPlusMemberPriceDiscount,\n memberPrice.withoutCouponPlusMemberPriceDiscount,\n ])\n\n // \u7F13\u5B58\u6807\u7B7E\u8BA1\u7B97\u7ED3\u679C\n const displayTags = React.useMemo(() => {\n if (!showTags) return []\n\n const tags = []\n\n // \u6DFB\u52A0\u4F1A\u5458\u4EF7\u683C\u6807\u7B7E\uFF08\u6309\u4F18\u5148\u7EA7\uFF09\n const originalPrice = matchVariant?.price || 0\n const discountAmount = originalPrice - priceInfo.currentPrice\n\n // \u5224\u65AD\u663E\u793A\u54EA\u79CD\u4F1A\u5458\u6807\u7B7E\n const shouldShowPlusMember = memberPrice.hasPlusMemberPrice && isLogin && isPlusMember\n const shouldShowRegularMember = !shouldShowPlusMember && memberPrice.hasMemberPrice\n\n if (shouldShowPlusMember && discountAmount > 0) {\n tags.push({\n label:\n formatPrice({\n amount: Number(discountAmount),\n currencyCode: shopifyProductData?.price?.currencyCode,\n locale: locale as string,\n }) ?? copy.plusMemberPriceLabel,\n variant: 'promotional' as const,\n promotionalType: 'plus-member',\n })\n } else if (shouldShowRegularMember && discountAmount > 0) {\n tags.push({\n label:\n formatPrice({\n amount: Number(discountAmount),\n currencyCode: shopifyProductData?.price?.currencyCode,\n locale: locale as string,\n }) ?? copy.memberPriceLabel,\n variant: 'promotional' as const,\n promotionalType: 'regular-member',\n })\n } else if (discountInfo?.fixed_value) {\n tags.push({\n label: copy?.discountLabel?.replace(\n '{value}',\n formatPrice({\n amount: Number(discountInfo.fixed_value),\n currencyCode: shopifyProductData?.price?.currencyCode,\n locale: locale as string,\n }) ?? ''\n ),\n variant: 'fill' as const,\n })\n }\n\n const clTags =\n shopifyProductData?.tags\n ?.filter((tag: string) => tag.startsWith('CLtag:'))\n ?.slice(0, 2 - tags.length)\n ?.map((tag: string) => ({\n label: tag.replace('CLtag:', ''),\n variant: 'outline' as const,\n })) || []\n\n return [...tags, ...clTags]\n }, [\n showTags,\n memberPrice.hasPlusMemberPrice,\n memberPrice.hasMemberPrice,\n discountInfo?.fixed_value,\n shopifyProductData?.tags,\n isLogin,\n isPlusMember,\n copy.plusMemberPriceLabel,\n copy.memberPriceLabel,\n copy?.discountLabel,\n shopifyProductData?.price?.currencyCode,\n matchVariant?.price,\n priceInfo.currentPrice,\n locale,\n ])\n\n const stockPercentage = ((matchVariant?.quantityAvailable ?? 0) / (shopifyProductData?.totalInventory ?? 1)) * 100\n\n const handleLearnMore = (e: React.MouseEvent) => {\n e.stopPropagation()\n onLearnMore?.(shopifyProductData, matchVariant, discountInfo)\n }\n\n const handleShopNow = (e: React.MouseEvent) => {\n e.stopPropagation()\n onShopNow?.(shopifyProductData, matchVariant, discountInfo)\n onMediaClick?.(product)\n }\n\n const handleCustomLinkClick = () => {\n if (product.custom_link) {\n document.location.assign(product.custom_link)\n } else {\n onMediaClick?.(product)\n }\n }\n\n /**\n * TODO: \u5220\u9664\u9ED8\u8BA4\u7684\u56FE\u7247\n */\n const { custom_link, custom_name, custom_description, custom_image } = product ?? {}\n\n const isSoldOut =\n !matchVariant?.availableForSale ||\n matchVariant?.price === SOLD_OUT_PRICE ||\n matchVariant?.price?.amount === SOLD_OUT_PRICE\n\n return (\n <Card\n ref={ref}\n className={cn(\n 'desktop:min-h-[512px] lg-desktop:min-h-[534px] flex min-h-[458px] min-w-[296px] flex-col overflow-hidden',\n product.custom_link ? 'cursor-pointer' : '',\n className,\n classNames?.mediaCard\n )}\n onClick={custom_link ? handleCustomLinkClick : undefined}\n >\n {/* \u56FE\u7247\u533A\u57DF */}\n <div className=\"desktop:h-[240px] relative h-[200px] shrink-0 overflow-hidden\">\n {/* \u80CC\u666F\u56FE\u7247 */}\n <div className=\"absolute inset-0 \">\n <a href={custom_link || product.handle}>\n <Picture\n source={custom_image || matchVariant?.image?.url}\n alt={shopifyProductData?.imageAlt || product.custom_name || product.name}\n className={cn('h-full', classNames?.mediaImage)}\n imgClassName=\"h-full object-cover object-center\"\n />\n </a>\n </div>\n\n {/* \u6807\u7B7E\u533A\u57DF */}\n <div className=\"lg-desktop:h-[28px] absolute left-4 top-4 h-[24px]\">\n {displayTags?.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 </div>\n\n {/* \u5185\u5BB9\u533A\u57DF */}\n <CardContent className=\"desktop:p-6 flex h-[calc(100%-240px)] grow flex-col justify-between p-4\">\n {/* \u4EA7\u54C1\u6807\u9898\u548C\u526F\u6807\u9898 */}\n <div className=\"mb-6 flex-1\">\n <Heading\n as=\"h3\"\n size={2}\n className={cn('text-info-primary mb-1 line-clamp-2 font-semibold tracking-tight', classNames?.mediaTitle)}\n >\n {custom_name || product.name}\n </Heading>\n {(product.custom_description || shopifyProductData?.description) && (\n <Text size={2} className={cn('text-info-primary line-clamp-1 font-semibold', classNames?.mediaDescription)}>\n {custom_description || shopifyProductData.description}\n </Text>\n )}\n </div>\n\n {/* \u5E93\u5B58\u4FE1\u606F */}\n {shouldShowStock(\n stockDisplayMode,\n stockThreshold,\n matchVariant?.quantityAvailable ?? 0,\n shopifyProductData?.totalInventory ?? 0\n ) && (\n <div\n data-total={shopifyProductData?.totalInventory ?? 0}\n data-available={matchVariant?.quantityAvailable ?? 0}\n className=\"space-y-2\"\n >\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: 'transition-all duration-300 ease-in-out',\n }}\n />\n <Text size={3} className=\"text-info-tertiary text-[14px]\">\n {copy.stockDisplayText?.replace(\n '{count}',\n String(\n matchVariant?.quantityAvailable > 0\n ? matchVariant?.quantityAvailable\n : matchVariant?.availableForSale\n ? '5'\n : '0'\n )\n )}\n </Text>\n </div>\n )}\n\n {/** \u4EF7\u683C\u6807\u7B7E */}\n <>\n {priceInfo.applyPlusMemberPrice && (\n <Text size={4} className=\"text-marketing-1 mb-2\">\n {copy.plusMemberPriceLabel}\n </Text>\n )}\n {!priceInfo.applyPlusMemberPrice && priceInfo.applyMemberPrice && (\n <Text size={4} className=\"text-marketing-1 mb-2\">\n {copy.memberPriceLabel}\n </Text>\n )}\n </>\n {/* \u4EF7\u683C\u533A\u57DF */}\n <div className={cn('mb-6', classNames?.mediaTitle)}>\n <div className=\"flex items-baseline gap-2\">\n {isSoldOut ? (\n <Heading size={2} className=\"text-info-tertiary\">\n {copy.outOfStockLabel}\n </Heading>\n ) : (\n <>\n <Heading size={2} className=\"text-info-primary\" as=\"h6\">\n {formatPrice({\n amount: Number(priceInfo.currentPrice),\n currencyCode: shopifyProductData?.price?.currencyCode,\n locale: locale as string,\n })}\n </Heading>\n {priceInfo.originalPrice && (\n <Heading size={2} className=\"text-info-tertiary line-through\" as=\"h6\">\n {formatPrice({\n amount: Number(priceInfo.originalPrice),\n currencyCode: shopifyProductData?.price?.currencyCode,\n locale: locale as string,\n })}\n </Heading>\n )}\n </>\n )}\n </div>\n </div>\n\n {/* \u6309\u94AE\u533A\u57DF */}\n <div className={cn('tablet:gap-3 mb-4 flex gap-2', classNames?.mediaButton)}>\n <Button variant=\"secondary\" size=\"base\" className=\"\" onClick={handleLearnMore}>\n {learnMoreText}\n </Button>\n <Button variant=\"primary\" size=\"base\" className=\"\" onClick={handleShopNow} disabled={isSoldOut}>\n {shopNowText}\n </Button>\n </div>\n </CardContent>\n </Card>\n )\n})\nProductCard.displayName = 'ProductCard'\n\n/**\n * \u5A92\u4F53\u5217\u8868\u7EC4\u4EF6 - \u652F\u6301\u7F51\u683C\u548C\u6A2A\u5411\u6ED1\u52A8\u4E24\u79CD\u5E03\u5C40\n */\nconst ProductList = React.forwardRef<\n HTMLDivElement,\n {\n products?: ProductCardData[]\n layoutMode: MediaShelfLayoutMode\n buildData?: any[]\n className?: string\n }\n>(({ products, layoutMode = 'flex', buildData, className }, ref) => {\n const { copy } = useMediaShelfContext()\n\n // Swiper \u5BFC\u822A\u72B6\u6001\n const [swiperState, setSwiperState] = React.useState({\n isBeginning: true,\n isEnd: false,\n })\n\n const getShopifyProductData = (shopify_id: string) => {\n if (!buildData || buildData.length === 0) {\n return null\n }\n return buildData.find(item => atobID(item.id) === shopify_id)\n }\n\n if (products?.length === 0) {\n return null\n }\n\n return (\n <div ref={ref} className={className}>\n {layoutMode === 'flex' ? (\n <div className=\"w-full\">\n {/* \u5C0F\u5C4F\u5E55\uFF1A\u6A2A\u5411\u6EDA\u52A8 */}\n <div className=\"tablet:hidden\">\n <div className=\"flex snap-x snap-mandatory gap-4 overflow-x-auto pb-2\">\n {products?.map((product, index) => (\n <ProductCard\n key={product.shopify_id + '-' + product.sku || index}\n product={product}\n shopifyProductData={getShopifyProductData(product.shopify_id)}\n className=\"shrink-0 snap-start\"\n />\n ))}\n </div>\n </div>\n\n {/* \u5927\u5C4F\u5E55\uFF1A\u7F51\u683C\u5E03\u5C40 */}\n <div\n className={cn('lg-desktop:gap-6 tablet:grid hidden justify-start gap-4', {\n 'grid-cols-3': (products?.length ?? 0) > 2,\n 'grid-cols-2': (products?.length ?? 0) <= 2,\n })}\n >\n {products?.map((product, index) => (\n <ProductCard\n key={product.shopify_id + '-' + product.sku || index}\n product={product}\n shopifyProductData={getShopifyProductData(product.shopify_id)}\n className=\"shrink-0\"\n />\n ))}\n </div>\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:min-h-[340px] desktop:!w-[316px] desktop:!min-h-[380px] lg-desktop:!w-[404px] lg-desktop:!min-h-[420px] box-border min-h-[340px] !w-[296px] overflow-hidden border-none\"\n >\n <ProductCard\n product={product}\n className=\"size-full max-w-full\"\n shopifyProductData={getShopifyProductData(product.shopify_id)}\n />\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\nProductList.displayName = 'ProductList'\n\n/**\n * MediaShelf - \u5A92\u4F53\u8D27\u67B6\n *\n * @description \u4E13\u95E8\u7528\u4E8E\u5C55\u793A\u5A92\u4F53\u5185\u5BB9\uFF08\u56FE\u7247\u3001\u89C6\u9891\u3001\u6587\u7AE0\u7B49\uFF09\u7684\u8D27\u67B6\u7EC4\u4EF6\uFF0C\u652F\u6301\u7F51\u683C\u5E03\u5C40\u548C\u6A2A\u5411\u6ED1\u52A8\n */\nconst MediaShelf = React.forwardRef<HTMLDivElement, MediaShelfProps>(\n (\n { className, data, buildData, onLearnMore, onShopNow, onMediaClick, functionDiscountConfig, classNames, ...props },\n ref\n ) => {\n // \u4ECE data \u4E2D\u89E3\u6784\u914D\u7F6E\u9879\uFF0C\u5E76\u8BBE\u7F6E\u9ED8\u8BA4\u503C\n const {\n theme,\n layoutMode = 'flex',\n isShowTab = true,\n codeChannel,\n showMemberPrice = true,\n showDiscount = true,\n showTags = true,\n stockDisplayMode,\n stockThreshold,\n showOriginalPrice = true,\n learnMoreText,\n shopNowText,\n copy,\n } = data\n\n // \u6784\u5EFA copy \u914D\u7F6E\uFF0C\u4F18\u5148\u4F7F\u7528 data.copy\uFF0C\u56DE\u9000\u5230\u9ED8\u8BA4\u503C\n const finalCopy: Required<CopyConfig> = {\n ...defaultCopy,\n ...copy,\n }\n\n // \u5904\u7406\u9AD8\u9891\u6587\u6848\u5B57\u6BB5\uFF0C\u4F18\u5148\u4F7F\u7528 data \u76F4\u63A5\u5B57\u6BB5\uFF0C\u56DE\u9000\u5230\u9ED8\u8BA4\u503C\n const finalLearnMoreText = learnMoreText ?? defaultButtonTexts.learnMoreText\n const finalShopNowText = shopNowText ?? defaultButtonTexts.shopNowText\n\n // \u6784\u5EFA Context \u503C\n const contextValue: MediaShelfContextValue = {\n layoutMode,\n codeChannel,\n showMemberPrice,\n showDiscount,\n showTags,\n stockDisplayMode,\n stockThreshold,\n showOriginalPrice,\n onLearnMore,\n onShopNow,\n onMediaClick,\n classNames,\n functionDiscountConfig,\n learnMoreText: finalLearnMoreText,\n shopNowText: finalShopNowText,\n copy: finalCopy,\n }\n\n // \u83B7\u53D6\u8981\u663E\u793A\u7684\u5A92\u4F53\u6570\u636E\n const hasTabData = data.productsTab && data.productsTab.length > 0\n const shouldShowTab = isShowTab && hasTabData\n\n return (\n <MediaShelfContext.Provider value={contextValue}>\n <div\n ref={ref}\n className={cn(\n 'text-info-primary 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\" size={4} className={cn('mb-4', classNames?.title)}>\n {data.title}\n </Heading>\n )}\n {data.description && (\n <Text size={3} as=\"p\" className={cn('mb-6', classNames?.description)}>\n {data.description}\n </Text>\n )}\n {/* \u5A92\u4F53\u5C55\u793A\u533A\u57DF */}\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 <ProductList products={tab.data} layoutMode={layoutMode} buildData={buildData} />\n </TabsContent>\n ))\n ) : (\n <ProductList products={data.productsCard} layoutMode={layoutMode} buildData={buildData} />\n )}\n </Tabs>\n </div>\n </MediaShelfContext.Provider>\n )\n }\n)\n\nMediaShelf.displayName = 'MediaShelf'\nexport default MediaShelf\nexport { ProductCard }\n"],
5
- "mappings": "mlBAAA,IAAAA,GAAA,GAAAC,GAAAD,GAAA,iBAAAE,EAAA,YAAAC,GAAA,yBAAAC,IAAA,eAAAC,GAAAL,IAiDE,IAAAM,EAAA,6BA/CFC,EAAuB,oBACvBC,EAAmB,kCACnBC,EAaO,qCACPC,EAAoC,wBACpCC,EAA2B,0BAC3BC,EAAuB,kCACvBC,GAAsB,uCACtBC,EAA4B,4CAE5BC,GAA+B,gCAC/BC,GAA+B,oCAE/BC,EAAgD,sBAGhDC,GAAO,sBACPC,GAAO,iCAEP,MAAMC,EAAiB,aAejBC,GAAW,CAAC,CAAE,SAAAC,CAAS,OAC3B,QAAC,OAAI,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,KAAK,OAAO,MAAM,6BAChE,oBAAC,QACC,EAAE,2GACF,KAAK,QACL,YAAaA,EAAW,MAAQ,MAClC,KACA,OAAC,QAAK,EAAE,qBAAqB,OAAO,QAAQ,YAAY,IAAI,cAAc,QAAQ,eAAe,QAAQ,GAC3G,EAGIC,GAAW,CAAC,CAAE,SAAAD,CAAS,OAC3B,QAAC,OAAI,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,KAAK,OAAO,MAAM,6BAChE,oBAAC,QACC,EAAE,2GACF,KAAK,QACL,YAAaA,EAAW,MAAQ,MAClC,KACA,OAAC,QAAK,EAAE,qBAAqB,OAAO,QAAQ,YAAY,IAAI,cAAc,QAAQ,eAAe,QAAQ,GAC3G,EA0BF,SAASE,GACPC,EACAC,EACAC,EACAC,EACS,CAET,GAAIH,IAAqB,OACvB,MAAO,GAET,GAAI,CAACG,EAAgB,MAAO,GAG5B,OAAQH,EAAkB,CACxB,IAAK,SAEH,MAAO,GAET,IAAK,QAEH,MAAO,GAET,IAAK,iBAEH,OAAIC,IAAmB,OACd,GAGFC,GAAqBD,EAE9B,IAAK,mBAEH,OAAIA,IAAmB,OACd,GAEFC,EAAoBC,GAAkBF,EAE/C,QAEE,MAAO,EACX,CACF,CAkDA,MAAMG,EAAoBtB,EAAM,cAA6C,IAAI,EAKpEH,EAAuB,IAAM,CACxC,MAAM0B,EAAUvB,EAAM,WAAWsB,CAAiB,EAClD,GAAI,CAACC,EACH,MAAM,IAAI,MAAM,+DAA+D,EAEjF,OAAOA,CACT,EAiKM5B,EAAcK,EAAM,WAOxB,CAAC,CAAE,QAAAwB,EAAS,mBAAAC,EAAoB,UAAAC,CAAU,EAAGC,IAAQ,CACrD,KAAM,CACJ,SAAAC,EAAW,GACX,iBAAAV,EACA,eAAAC,EACA,YAAAU,EACA,UAAAC,EACA,WAAAC,EACA,YAAAC,EACA,uBAAAC,EACA,aAAAC,EACA,cAAAC,EACA,YAAAC,EACA,KAAAC,CACF,EAAIxC,EAAqB,EAEnB,CAAE,QAAAyC,EAAU,GAAO,aAAAC,EAAe,GAAO,OAAAC,CAAO,KAAI,mBAAe,EAEnEC,EAAezC,EAAM,QAAQ,IAAM,CACvC,GAAI,CAACyB,GAAoB,SAAU,OAAO,KAC1C,MAAMiB,EAAMjB,EAAmB,SAAS,KAAMkB,GAAWA,EAAE,MAAQnB,EAAQ,GAAG,EAC9E,OAAI,OAAOkB,EAAI,OAAU,WACvBA,EAAI,MAAQA,EAAI,MAAM,QAEjBA,CACT,EAAG,CAAClB,EAASC,CAAkB,CAAC,EAE1BmB,KAAe,GAAAC,SAAU,CAC7B,QAASJ,EACT,QAAST,CACX,CAAC,EAEKc,KAAc,mBAAeL,EAAcR,GAAwB,iBAAiB,EAGpFc,EAAY/C,EAAM,QAAQ,IAAM,CACpC,IAAIgD,EAAgBP,GAAc,OAAS,EACvCQ,EAAeD,EAEfE,EAAiB,OAAON,GAAc,aAAe,CAAC,EAE1D,OAAIN,GAEEC,GACFU,EAAeA,EAAeH,EAAY,kCAC1CG,EAAeA,EAAe,KAAK,IAAIH,EAAY,qCAAsCI,CAAc,IAQzGD,EAAeA,EAAeH,EAAY,8BAC1CG,EAAeA,EAAe,KAAK,IAAIH,EAAY,iCAAkCI,CAAc,GAG9F,CACL,cAAeD,EAAeD,EAAgBA,EAAgB,KAC9D,aAAAC,EACA,qBAAsBX,GAAWC,GAAgBO,EAAY,mBAC7D,iBAAkBA,EAAY,cAChC,CACF,EAAG,CACDL,GAAc,MACdG,GAAc,YACdN,EACAC,EACAO,EAAY,mBACZA,EAAY,eACZA,EAAY,8BACZA,EAAY,iCACZA,EAAY,kCACZA,EAAY,oCACd,CAAC,EAGKK,EAAcnD,EAAM,QAAQ,IAAM,CACtC,GAAI,CAAC4B,EAAU,MAAO,CAAC,EAEvB,MAAMwB,EAAO,CAAC,EAIRF,GADgBT,GAAc,OAAS,GACNM,EAAU,aAG3CM,EAAuBP,EAAY,oBAAsBR,GAAWC,EACpEe,GAA0B,CAACD,GAAwBP,EAAY,eAEjEO,GAAwBH,EAAiB,EAC3CE,EAAK,KAAK,CACR,SACE,eAAY,CACV,OAAQ,OAAOF,CAAc,EAC7B,aAAczB,GAAoB,OAAO,aACzC,OAAQe,CACV,CAAC,GAAKH,EAAK,qBACb,QAAS,cACT,gBAAiB,aACnB,CAAC,EACQiB,IAA2BJ,EAAiB,EACrDE,EAAK,KAAK,CACR,SACE,eAAY,CACV,OAAQ,OAAOF,CAAc,EAC7B,aAAczB,GAAoB,OAAO,aACzC,OAAQe,CACV,CAAC,GAAKH,EAAK,iBACb,QAAS,cACT,gBAAiB,gBACnB,CAAC,EACQO,GAAc,aACvBQ,EAAK,KAAK,CACR,MAAOf,GAAM,eAAe,QAC1B,aACA,eAAY,CACV,OAAQ,OAAOO,EAAa,WAAW,EACvC,aAAcnB,GAAoB,OAAO,aACzC,OAAQe,CACV,CAAC,GAAK,EACR,EACA,QAAS,MACX,CAAC,EAGH,MAAMe,GACJ9B,GAAoB,MAChB,OAAQ+B,GAAgBA,EAAI,WAAW,QAAQ,CAAC,GAChD,MAAM,EAAG,EAAIJ,EAAK,MAAM,GACxB,IAAKI,IAAiB,CACtB,MAAOA,EAAI,QAAQ,SAAU,EAAE,EAC/B,QAAS,SACX,EAAE,GAAK,CAAC,EAEZ,MAAO,CAAC,GAAGJ,EAAM,GAAGG,EAAM,CAC5B,EAAG,CACD3B,EACAkB,EAAY,mBACZA,EAAY,eACZF,GAAc,YACdnB,GAAoB,KACpBa,EACAC,EACAF,EAAK,qBACLA,EAAK,iBACLA,GAAM,cACNZ,GAAoB,OAAO,aAC3BgB,GAAc,MACdM,EAAU,aACVP,CACF,CAAC,EAEKiB,GAAoBhB,GAAc,mBAAqB,IAAMhB,GAAoB,gBAAkB,GAAM,IAEzGiC,EAAmBC,GAAwB,CAC/CA,EAAE,gBAAgB,EAClB9B,IAAcJ,EAAoBgB,EAAcG,CAAY,CAC9D,EAEMgB,EAAiBD,GAAwB,CAC7CA,EAAE,gBAAgB,EAClB7B,IAAYL,EAAoBgB,EAAcG,CAAY,EAC1DV,IAAeV,CAAO,CACxB,EAEMqC,EAAwB,IAAM,CAC9BrC,EAAQ,YACV,SAAS,SAAS,OAAOA,EAAQ,WAAW,EAE5CU,IAAeV,CAAO,CAE1B,EAKM,CAAE,YAAAsC,EAAa,YAAAC,EAAa,mBAAAC,GAAoB,aAAAC,EAAa,EAAIzC,GAAW,CAAC,EAE7E0C,EACJ,CAACzB,GAAc,kBACfA,GAAc,QAAU5B,GACxB4B,GAAc,OAAO,SAAW5B,EAElC,SACE,QAAC,QACC,IAAKc,EACL,aAAW,MACT,2GACAH,EAAQ,YAAc,iBAAmB,GACzCE,EACAK,GAAY,SACd,EACA,QAAS+B,EAAcD,EAAwB,OAG/C,qBAAC,OAAI,UAAU,gEAEb,oBAAC,OAAI,UAAU,oBACb,mBAAC,KAAE,KAAMC,GAAetC,EAAQ,OAC9B,mBAAC,WACC,OAAQyC,IAAgBxB,GAAc,OAAO,IAC7C,IAAKhB,GAAoB,UAAYD,EAAQ,aAAeA,EAAQ,KACpE,aAAW,MAAG,SAAUO,GAAY,UAAU,EAC9C,aAAa,oCACf,EACF,EACF,KAGA,OAAC,OAAI,UAAU,qDACZ,SAAAoB,GAAa,IAAI,CAACK,EAAKW,OACtB,OAAC,SAEC,KAAK,KACL,QAAUX,EAAI,SAAmB,UACjC,aAAW,MAAG,MAAM,EACpB,gBAAiBA,EAAI,iBAAmB,GAEvC,SAAAA,EAAI,OANAW,CAOP,CACD,EACH,GACF,KAGA,QAAC,eAAY,UAAU,0EAErB,qBAAC,OAAI,UAAU,cACb,oBAAC,WACC,GAAG,KACH,KAAM,EACN,aAAW,MAAG,mEAAoEpC,GAAY,UAAU,EAEvG,SAAAgC,GAAevC,EAAQ,KAC1B,GACEA,EAAQ,oBAAsBC,GAAoB,iBAClD,OAAC,QAAK,KAAM,EAAG,aAAW,MAAG,+CAAgDM,GAAY,gBAAgB,EACtG,SAAAiC,IAAsBvC,EAAmB,YAC5C,GAEJ,EAGCR,GACCC,EACAC,EACAsB,GAAc,mBAAqB,EACnChB,GAAoB,gBAAkB,CACxC,MACE,QAAC,OACC,aAAYA,GAAoB,gBAAkB,EAClD,iBAAgBgB,GAAc,mBAAqB,EACnD,UAAU,YAEV,oBAAC,YACC,MAAOgB,EACP,IAAK,IACL,IAAK,EACL,KAAK,OACL,QAAQ,UACR,aAAW,iBACX,WAAY,CACV,YAAa,yCACf,EACF,KACA,OAAC,QAAK,KAAM,EAAG,UAAU,iCACtB,SAAApB,EAAK,kBAAkB,QACtB,UACA,OACEI,GAAc,kBAAoB,EAC9BA,GAAc,kBACdA,GAAc,iBACZ,IACA,GACR,CACF,EACF,GACF,KAIF,oBACG,UAAAM,EAAU,yBACT,OAAC,QAAK,KAAM,EAAG,UAAU,wBACtB,SAAAV,EAAK,qBACR,EAED,CAACU,EAAU,sBAAwBA,EAAU,qBAC5C,OAAC,QAAK,KAAM,EAAG,UAAU,wBACtB,SAAAV,EAAK,iBACR,GAEJ,KAEA,OAAC,OAAI,aAAW,MAAG,OAAQN,GAAY,UAAU,EAC/C,mBAAC,OAAI,UAAU,4BACZ,SAAAmC,KACC,OAAC,WAAQ,KAAM,EAAG,UAAU,qBACzB,SAAA7B,EAAK,gBACR,KAEA,oBACE,oBAAC,WAAQ,KAAM,EAAG,UAAU,oBAAoB,GAAG,KAChD,2BAAY,CACX,OAAQ,OAAOU,EAAU,YAAY,EACrC,aAActB,GAAoB,OAAO,aACzC,OAAQe,CACV,CAAC,EACH,EACCO,EAAU,kBACT,OAAC,WAAQ,KAAM,EAAG,UAAU,kCAAkC,GAAG,KAC9D,2BAAY,CACX,OAAQ,OAAOA,EAAU,aAAa,EACtC,aAActB,GAAoB,OAAO,aACzC,OAAQe,CACV,CAAC,EACH,GAEJ,EAEJ,EACF,KAGA,QAAC,OAAI,aAAW,MAAG,+BAAgCT,GAAY,WAAW,EACxE,oBAAC,UAAO,QAAQ,YAAY,KAAK,OAAO,UAAU,GAAG,QAAS2B,EAC3D,SAAAvB,EACH,KACA,OAAC,UAAO,QAAQ,UAAU,KAAK,OAAO,UAAU,GAAG,QAASyB,EAAe,SAAUM,EAClF,SAAA9B,EACH,GACF,GACF,GACF,CAEJ,CAAC,EACDzC,EAAY,YAAc,cAK1B,MAAMyE,EAAcpE,EAAM,WAQxB,CAAC,CAAE,SAAAqE,EAAU,WAAAC,EAAa,OAAQ,UAAAC,EAAW,UAAA7C,CAAU,EAAGC,IAAQ,CAClE,KAAM,CAAE,KAAAU,CAAK,EAAIxC,EAAqB,EAGhC,CAAC2E,EAAaC,CAAc,EAAIzE,EAAM,SAAS,CACnD,YAAa,GACb,MAAO,EACT,CAAC,EAEK0E,EAAyBC,GACzB,CAACJ,GAAaA,EAAU,SAAW,EAC9B,KAEFA,EAAU,KAAKK,MAAQ,UAAOA,EAAK,EAAE,IAAMD,CAAU,EAG9D,OAAIN,GAAU,SAAW,EAChB,QAIP,OAAC,OAAI,IAAK1C,EAAK,UAAWD,EACvB,SAAA4C,IAAe,UACd,QAAC,OAAI,UAAU,SAEb,oBAAC,OAAI,UAAU,gBACb,mBAAC,OAAI,UAAU,wDACZ,SAAAD,GAAU,IAAI,CAAC7C,EAAS2C,OACvB,OAACxE,EAAA,CAEC,QAAS6B,EACT,mBAAoBkD,EAAsBlD,EAAQ,UAAU,EAC5D,UAAU,uBAHLA,EAAQ,WAAa,IAAMA,EAAQ,KAAO2C,CAIjD,CACD,EACH,EACF,KAGA,OAAC,OACC,aAAW,MAAG,0DAA2D,CACvE,eAAgBE,GAAU,QAAU,GAAK,EACzC,eAAgBA,GAAU,QAAU,IAAM,CAC5C,CAAC,EAEA,SAAAA,GAAU,IAAI,CAAC7C,EAAS2C,OACvB,OAACxE,EAAA,CAEC,QAAS6B,EACT,mBAAoBkD,EAAsBlD,EAAQ,UAAU,EAC5D,UAAU,YAHLA,EAAQ,WAAa,IAAMA,EAAQ,KAAO2C,CAIjD,CACD,EACH,GACF,KAGA,QAAC,OAAI,UAAU,WACb,oBAAC,UACC,QAAS,CAAC,YAAU,EACpB,aAAc,GACd,cAAc,OACd,WAAY,GACZ,WAAY,CACV,OAAQ,6BACR,OAAQ,4BACV,EACA,SAAUU,GAAU,CAClBJ,EAAe,CACb,YAAaI,EAAO,YACpB,MAAOA,EAAO,KAChB,CAAC,CACH,EACA,cAAeA,GAAU,CACvBJ,EAAe,CACb,YAAaI,EAAO,YACpB,MAAOA,EAAO,KAChB,CAAC,CACH,EACA,UAAU,oBAET,SAAAR,GAAU,IAAI,CAAC7C,EAAS2C,OACvB,OAAC,eAEC,UAAU,oMAEV,mBAACxE,EAAA,CACC,QAAS6B,EACT,UAAU,uBACV,mBAAoBkD,EAAsBlD,EAAQ,UAAU,EAC9D,GAPKA,EAAQ,WAAa,IAAMA,EAAQ,KAAO2C,CAQjD,CACD,EACH,KAGA,OAAC,UACC,UAAU,8FACV,aAAY9B,EAAK,mBACjB,SAAUmC,EAAY,YAEtB,mBAAC1D,GAAA,CAAS,SAAU0D,EAAY,YAAa,EAC/C,KACA,OAAC,UACC,UAAU,+FACV,aAAYnC,EAAK,eACjB,SAAUmC,EAAY,MAEtB,mBAACxD,GAAA,CAAS,SAAUwD,EAAY,MAAO,EACzC,GACF,EAEJ,CAEJ,CAAC,EAEDJ,EAAY,YAAc,cAO1B,MAAMU,EAAa9E,EAAM,WACvB,CACE,CAAE,UAAA0B,EAAW,KAAAqD,EAAM,UAAAR,EAAW,YAAA1C,EAAa,UAAAC,EAAW,aAAAI,EAAc,uBAAAD,EAAwB,WAAAF,EAAY,GAAGiD,CAAM,EACjHrD,IACG,CAEH,KAAM,CACJ,MAAAsD,EACA,WAAAX,EAAa,OACb,UAAAY,EAAY,GACZ,YAAAlD,EACA,gBAAAmD,EAAkB,GAClB,aAAAC,EAAe,GACf,SAAAxD,EAAW,GACX,iBAAAV,EACA,eAAAC,EACA,kBAAAkE,EAAoB,GACpB,cAAAlD,EACA,YAAAC,EACA,KAAAC,CACF,EAAI0C,EAGEO,EAAkC,CACtC,GAAG,cACH,GAAGjD,CACL,EAGMkD,EAAqBpD,GAAiB,qBAAmB,cACzDqD,EAAmBpD,GAAe,qBAAmB,YAGrDqD,EAAuC,CAC3C,WAAAnB,EACA,YAAAtC,EACA,gBAAAmD,EACA,aAAAC,EACA,SAAAxD,EACA,iBAAAV,EACA,eAAAC,EACA,kBAAAkE,EACA,YAAAxD,EACA,UAAAC,EACA,aAAAI,EACA,WAAAH,EACA,uBAAAE,EACA,cAAesD,EACf,YAAaC,EACb,KAAMF,CACR,EAGMI,EAAaX,EAAK,aAAeA,EAAK,YAAY,OAAS,EAC3DY,EAAgBT,GAAaQ,EAEnC,SACE,OAACpE,EAAkB,SAAlB,CAA2B,MAAOmE,EACjC,oBAAC,OACC,IAAK9D,EACL,aAAW,MACT,2BACA,CACE,YAAasD,IAAU,MACzB,EACAvD,EACAK,GAAY,IACd,EACC,GAAGiD,EAGH,UAAAD,EAAK,UACJ,OAAC,WAAQ,GAAG,KAAK,KAAM,EAAG,aAAW,MAAG,OAAQhD,GAAY,KAAK,EAC9D,SAAAgD,EAAK,MACR,EAEDA,EAAK,gBACJ,OAAC,QAAK,KAAM,EAAG,GAAG,IAAI,aAAW,MAAG,OAAQhD,GAAY,WAAW,EAChE,SAAAgD,EAAK,YACR,KAGF,QAAC,QAAK,aAAcA,EAAK,cAAc,CAAC,GAAG,GAAI,UAAU,SACtD,UAAAY,MACC,OAAC,YAAS,UAAU,OACjB,SAAAZ,EAAK,aAAa,IAAIa,MACrB,OAAC,eAAkC,MAAOA,EAAI,GAC3C,SAAAA,EAAI,KADW,OAASA,EAAI,EAE/B,CACD,EACH,EAEDD,EACCZ,EAAK,aAAa,IAAIa,MACpB,OAAC,eAA0C,MAAOA,EAAI,GACpD,mBAACxB,EAAA,CAAY,SAAUwB,EAAI,KAAM,WAAYtB,EAAY,UAAWC,EAAW,GAD/D,eAAiBqB,EAAI,EAEvC,CACD,KAED,OAACxB,EAAA,CAAY,SAAUW,EAAK,aAAc,WAAYT,EAAY,UAAWC,EAAW,GAE5F,GACF,EACF,CAEJ,CACF,EAEAO,EAAW,YAAc,aACzB,IAAOlF,GAAQkF",
6
- "names": ["MediaShelf_exports", "__export", "ProductCard", "MediaShelf_default", "useMediaShelfContext", "__toCommonJS", "import_jsx_runtime", "React", "import_helpers", "import_components", "import_react", "import_modules", "import_utils", "import_useCoupon", "import_priceFormatting", "import_hooks", "import_AiuiProvider", "import_types", "import_css", "import_navigation", "SOLD_OUT_PRICE", "PrevIcon", "disabled", "NextIcon", "shouldShowStock", "stockDisplayMode", "stockThreshold", "quantityAvailable", "totalInventory", "MediaShelfContext", "context", "product", "shopifyProductData", "className", "ref", "showTags", "onLearnMore", "onShopNow", "classNames", "codeChannel", "functionDiscountConfig", "onMediaClick", "learnMoreText", "shopNowText", "copy", "isLogin", "isPlusMember", "locale", "matchVariant", "res", "v", "discountInfo", "useCoupon", "memberPrice", "priceInfo", "originalPrice", "currentPrice", "discountAmount", "displayTags", "tags", "shouldShowPlusMember", "shouldShowRegularMember", "clTags", "tag", "stockPercentage", "handleLearnMore", "e", "handleShopNow", "handleCustomLinkClick", "custom_link", "custom_name", "custom_description", "custom_image", "isSoldOut", "index", "ProductList", "products", "layoutMode", "buildData", "swiperState", "setSwiperState", "getShopifyProductData", "shopify_id", "item", "swiper", "MediaShelf", "data", "props", "theme", "isShowTab", "showMemberPrice", "showDiscount", "showOriginalPrice", "finalCopy", "finalLearnMoreText", "finalShopNowText", "contextValue", "hasTabData", "shouldShowTab", "tab"]
7
- }
@@ -1,37 +0,0 @@
1
- /**
2
- * MediaShelf 组件文案配置类型定义
3
- */
4
- /**
5
- * MediaShelf 文案配置接口
6
- * 注意:learnMoreText 和 shopNowText 作为高频属性保持在 data 的直接属性中
7
- */
8
- export interface CopyConfig {
9
- /** 查看详情按钮文本(MediaShelf 专用) */
10
- buttonText?: string;
11
- /** Plus会员价格标签文本 */
12
- plusMemberPriceLabel?: string;
13
- /** 会员价格标签文本 */
14
- memberPriceLabel?: string;
15
- /** 库存显示文案模板,支持 {count} 占位符 */
16
- stockDisplayText?: string;
17
- /** 上一页滑动按钮的无障碍标签 */
18
- previousSlideLabel?: string;
19
- /** 下一页滑动按钮的无障碍标签 */
20
- nextSlideLabel?: string;
21
- /** 折扣标签文本模板,支持 {value} 占位符 */
22
- discountLabel?: string;
23
- /** 售罄标签文本 */
24
- outOfStockLabel?: string;
25
- }
26
- /**
27
- * MediaShelf 默认文案配置
28
- */
29
- export declare const defaultCopy: Required<CopyConfig>;
30
- /**
31
- * 高频文案字段的默认值
32
- * 这些字段作为 data 的直接属性,不在 copy 对象中
33
- */
34
- export declare const defaultButtonTexts: {
35
- readonly learnMoreText: "Learn More";
36
- readonly shopNowText: "Shop Now";
37
- };
@@ -1,2 +0,0 @@
1
- "use strict";var r=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var n=Object.getOwnPropertyNames;var a=Object.prototype.hasOwnProperty;var b=(t,e)=>{for(var i in e)r(t,i,{get:e[i],enumerable:!0})},u=(t,e,i,l)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of n(e))!a.call(t,o)&&o!==i&&r(t,o,{get:()=>e[o],enumerable:!(l=s(e,o))||l.enumerable});return t};var c=t=>u(r({},"__esModule",{value:!0}),t);var L={};b(L,{defaultButtonTexts:()=>x,defaultCopy:()=>p});module.exports=c(L);const p={buttonText:"View Details",plusMemberPriceLabel:"Plus Member Price",memberPriceLabel:"Member Price",stockDisplayText:"only {count} left in stock",previousSlideLabel:"Previous slide",nextSlideLabel:"Next slide",discountLabel:"{value} off",outOfStockLabel:"Sold Out"},x={learnMoreText:"Learn More",shopNowText:"Shop Now"};
2
- //# sourceMappingURL=types.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../src/biz-components/MediaShelf/types.ts"],
4
- "sourcesContent": ["/**\n * MediaShelf \u7EC4\u4EF6\u6587\u6848\u914D\u7F6E\u7C7B\u578B\u5B9A\u4E49\n */\n\n/**\n * MediaShelf \u6587\u6848\u914D\u7F6E\u63A5\u53E3\n * \u6CE8\u610F\uFF1AlearnMoreText \u548C shopNowText \u4F5C\u4E3A\u9AD8\u9891\u5C5E\u6027\u4FDD\u6301\u5728 data \u7684\u76F4\u63A5\u5C5E\u6027\u4E2D\n */\nexport interface CopyConfig {\n /** \u67E5\u770B\u8BE6\u60C5\u6309\u94AE\u6587\u672C\uFF08MediaShelf \u4E13\u7528\uFF09 */\n buttonText?: string\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 /** \u5E93\u5B58\u663E\u793A\u6587\u6848\u6A21\u677F\uFF0C\u652F\u6301 {count} \u5360\u4F4D\u7B26 */\n stockDisplayText?: string\n /** \u4E0A\u4E00\u9875\u6ED1\u52A8\u6309\u94AE\u7684\u65E0\u969C\u788D\u6807\u7B7E */\n previousSlideLabel?: string\n /** \u4E0B\u4E00\u9875\u6ED1\u52A8\u6309\u94AE\u7684\u65E0\u969C\u788D\u6807\u7B7E */\n nextSlideLabel?: string\n /** \u6298\u6263\u6807\u7B7E\u6587\u672C\u6A21\u677F\uFF0C\u652F\u6301 {value} \u5360\u4F4D\u7B26 */\n discountLabel?: string\n /** \u552E\u7F44\u6807\u7B7E\u6587\u672C */\n outOfStockLabel?: string\n}\n\n/**\n * MediaShelf \u9ED8\u8BA4\u6587\u6848\u914D\u7F6E\n */\nexport const defaultCopy: Required<CopyConfig> = {\n buttonText: 'View Details',\n plusMemberPriceLabel: 'Plus Member Price',\n memberPriceLabel: 'Member Price',\n stockDisplayText: 'only {count} left in stock',\n previousSlideLabel: 'Previous slide',\n nextSlideLabel: 'Next slide',\n discountLabel: '{value} off',\n outOfStockLabel: 'Sold Out',\n}\n\n/**\n * \u9AD8\u9891\u6587\u6848\u5B57\u6BB5\u7684\u9ED8\u8BA4\u503C\n * \u8FD9\u4E9B\u5B57\u6BB5\u4F5C\u4E3A data \u7684\u76F4\u63A5\u5C5E\u6027\uFF0C\u4E0D\u5728 copy \u5BF9\u8C61\u4E2D\n */\nexport const defaultButtonTexts = {\n learnMoreText: 'Learn More',\n shopNowText: 'Shop Now',\n} as const\n"],
5
- "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,wBAAAE,EAAA,gBAAAC,IAAA,eAAAC,EAAAJ,GA8BO,MAAMG,EAAoC,CAC/C,WAAY,eACZ,qBAAsB,oBACtB,iBAAkB,eAClB,iBAAkB,6BAClB,mBAAoB,iBACpB,eAAgB,aAChB,cAAe,cACf,gBAAiB,UACnB,EAMaD,EAAqB,CAChC,cAAe,aACf,YAAa,UACf",
6
- "names": ["types_exports", "__export", "defaultButtonTexts", "defaultCopy", "__toCommonJS"]
7
- }
@@ -1,88 +0,0 @@
1
- import * as React from 'react';
2
- export type MiniCartSemanticName = 'root' | 'content' | 'productImage' | 'productTag' | 'cartInfo' | 'cartTitle' | 'cartDescription' | 'priceSection' | 'totalPrice' | 'originalPrice' | 'saveAmount' | 'actionButton' | 'itemsGrid' | 'itemGridContainer' | 'gridItem' | 'gridItemOverlay' | 'expandButton' | 'congratsMessage';
3
- /**
4
- * 文案配置
5
- */
6
- export interface MiniCartCopy {
7
- emptyCart: string;
8
- description: string;
9
- total: string;
10
- itemsInCart: string;
11
- totalWithCoupon: string;
12
- clickToView: string;
13
- buyNowText: string;
14
- }
15
- /**
16
- * MiniCart 业务组件数据接口
17
- */
18
- export interface MiniCartData {
19
- /** 文案配置 */
20
- copy?: MiniCartCopy;
21
- theme?: 'light' | 'dark';
22
- /** 地区代码,用于价格格式化 */
23
- locale?: string;
24
- }
25
- type Cart = {
26
- id: string;
27
- checkoutUrl: string;
28
- lineItems: Array<{
29
- id: string;
30
- quantity: number;
31
- merchandise: {
32
- id: string;
33
- sku: string;
34
- image: {
35
- url: string;
36
- altText: string | null;
37
- };
38
- };
39
- }>;
40
- cost: {
41
- totalAmount: {
42
- amount: string;
43
- currencyCode: string;
44
- };
45
- subtotalAmount?: {
46
- amount: string;
47
- currencyCode: string;
48
- };
49
- };
50
- };
51
- export interface MiniCartProps extends React.HTMLAttributes<HTMLDivElement> {
52
- /** 业务数据 */
53
- data: MiniCartData;
54
- /**
55
- * 各部分的自定义样式类名
56
- */
57
- classNames?: Partial<Record<MiniCartSemanticName, string>>;
58
- /**
59
- * 产品信息(用于主要展示的产品)
60
- */
61
- cart: Cart;
62
- /**
63
- * 删除商品项的回调函数
64
- * @param id 商品 ID
65
- * @param cart 购物车数据
66
- * @returns
67
- */
68
- onRemoveItem?: (id: string, cart: Cart) => void;
69
- /**
70
- * 点击结算按钮的回调函数
71
- * @param cart
72
- * @returns
73
- */
74
- onCheckout?: (cart: Cart) => void;
75
- /**
76
- * 点击click to view的回调函数
77
- * @param cart
78
- * @returns
79
- */
80
- onClickToView?: (cart: Cart) => void;
81
- }
82
- /**
83
- * MiniCart - 迷你购物车
84
- *
85
- * @description 迷你购物车(Mini Cart)是一个常见的电商UI组件,通常在用户浏览商品时以底部悬浮的形式出现,允许用户快速查看、编辑购物车内容而不离开当前页面,同时可以承载满赠,满减等活动。
86
- */
87
- declare const MiniCart: React.ForwardRefExoticComponent<MiniCartProps & React.RefAttributes<HTMLDivElement>>;
88
- export default MiniCart;
@@ -1,2 +0,0 @@
1
- "use strict";"use client";var K=Object.create;var f=Object.defineProperty;var Q=Object.getOwnPropertyDescriptor;var X=Object.getOwnPropertyNames;var _=Object.getPrototypeOf,tt=Object.prototype.hasOwnProperty;var et=(i,e)=>{for(var n in e)f(i,n,{get:e[n],enumerable:!0})},P=(i,e,n,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of X(e))!tt.call(i,s)&&s!==n&&f(i,s,{get:()=>e[s],enumerable:!(a=Q(e,s))||a.enumerable});return i};var ot=(i,e,n)=>(n=i!=null?K(_(i)):{},P(e||!i||!i.__esModule?f(n,"default",{value:i,enumerable:!0}):n,i)),it=i=>P(f({},"__esModule",{value:!0}),i);var at={};et(at,{default:()=>rt});module.exports=it(at);var t=require("react/jsx-runtime"),N=ot(require("react")),o=require("../../helpers/index.js"),x=require("../../helpers/priceFormatting.js"),j=require("../../components/index.js"),d=require("../../components/index.js"),h=require("../../components/index.js");const H=N.forwardRef(({className:i,classNames:e={},data:n,cart:a,onRemoveItem:s,onCheckout:S,onClickToView:D,...E},V)=>{const{copy:c,theme:T="dark",locale:b="us"}=n||{},R=c?.emptyCart||"Your Cart is Empty",M=c?.description||'Add one more to get <span style="color: var(--brand-color)">50% <span> off',W=c?.itemsInCart||"You have selected ${count} items",$=c?.total||"Total ${total}",nt=c?.totalWithCoupon||"total: ${total} (${subtotal})",G=c?.clickToView||"Click to view cart",q=c?.buyNowText||"Buy Now",p=a?.lineItems||[],L=p.reduce((l,r)=>l+(r?.quantity||0),0),U=L===0,m=parseFloat(a?.cost?.subtotalAmount?.amount||"0")||0,u=parseFloat(a?.cost?.totalAmount?.amount||"0")||0,v=a?.cost?.totalAmount?.currencyCode||a?.cost?.subtotalAmount?.currencyCode||"USD",I=m>u?m-u:0,C=N.useRef(null),[w,F]=N.useState(!1),z=l=>{if(C.current){const r=C.current,k=100;r.scrollBy({left:l==="right"?k:-k,behavior:"smooth"})}},y=({className:l})=>(0,t.jsx)("svg",{className:l,width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:(0,t.jsx)("path",{d:"M6 4L10 8L6 12",stroke:"currentColor",strokeWidth:"1.33",strokeLinecap:"round",strokeLinejoin:"round"})}),O=({className:l})=>(0,t.jsx)("svg",{className:l,width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:(0,t.jsx)("path",{d:"M2.5 5H17.5M8.33333 9.16667V14.1667M11.6667 9.16667V14.1667M3.33333 5L4.16667 16.6667C4.16667 17.1087 4.34226 17.5326 4.65482 17.8452C4.96738 18.1577 5.39131 18.3333 5.83333 18.3333H14.1667C14.6087 18.3333 15.0326 18.1577 15.3452 17.8452C15.6577 17.5326 15.8333 17.1087 15.8333 16.6667L16.6667 5M7.5 5V2.5C7.5 2.27899 7.5878 2.06702 7.74408 1.91074C7.90036 1.75446 8.11232 1.66667 8.33333 1.66667H11.6667C11.8877 1.66667 12.0996 1.75446 12.2559 1.91074C12.4122 2.06702 12.5 2.27899 12.5 2.5V5",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round"})}),Y=l=>p.length?(0,t.jsxs)("div",{className:(0,o.cn)("bg-muted flex gap-1 rounded-lg p-1",e?.itemsGrid),children:[p.length>0&&(0,t.jsx)("button",{onClick:()=>z("left"),className:(0,o.cn)("border-border laptop:flex hover:bg-muted-foreground/10 laptop:flex hidden size-12 shrink-0 items-center justify-center rounded-lg transition-colors",e?.expandButton),"aria-label":"Scroll left to see more items",children:(0,t.jsx)(y,{className:"size-4 rotate-180"})}),(0,t.jsx)("div",{ref:C,className:(0,o.cn)("scrollbar-hide laptop:gap-1 laptop:max-w-[240px] flex w-full gap-1 overflow-x-auto [-ms-overflow-style:none] [scrollbar-width:none] [&::-webkit-scrollbar]:hidden",e?.itemGridContainer),children:p.filter(r=>r&&r.id).map(r=>{const A=(r.merchandise||{}).image||{},B=A.url,Z=A.altText||"Product image";return(0,t.jsxs)("div",{className:(0,o.cn)("laptop:size-12 group relative size-16 shrink-0 rounded-lg bg-white",e?.gridItem),children:[B&&(0,t.jsx)("img",{src:B,alt:Z,className:"size-full rounded-lg object-cover",onError:J=>{J.currentTarget.style.display="none"}}),(0,t.jsx)("span",{role:"button",onClick:()=>s?.(r.id,a),className:"laptop:hidden absolute right-[2px] top-[2px]","aria-label":"delete",children:(0,t.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,t.jsx)("rect",{x:"1.33301",y:"1.33301",width:"13.3333",height:"13.3333",rx:"6.66667",fill:"white"}),(0,t.jsx)("path",{d:"M5.37705 5.28896C5.57234 5.09402 5.88839 5.09442 6.08347 5.28965L8.08602 7.29358L10.0906 5.28896C10.2858 5.09402 10.6026 5.09395 10.7977 5.28896C10.9928 5.48418 10.9926 5.80078 10.7977 5.99607L8.79312 8.00069L10.7964 10.0053C10.9913 10.2007 10.9909 10.5179 10.7957 10.7131C10.6005 10.908 10.2844 10.9074 10.0893 10.7124L8.08602 8.7078L6.08347 10.7103C5.88821 10.9056 5.57155 10.9057 5.37636 10.7103C5.18148 10.515 5.18132 10.1984 5.37636 10.0032L7.37891 8.00069L5.37636 5.99676C5.18119 5.80143 5.18181 5.48423 5.37705 5.28896Z",fill:"#767880"})]})}),r.quantity>1&&(0,t.jsx)("div",{className:"bg-brand-0 laptop:size-4 absolute bottom-0 right-0 flex size-4 items-center justify-center rounded-full",children:(0,t.jsx)(d.Text,{className:"text-sm",children:r.quantity})}),(0,t.jsx)("div",{className:(0,o.cn)("laptop:flex absolute inset-0 hidden items-center justify-center rounded-lg bg-black/60 opacity-0 transition-opacity group-hover:opacity-100",e?.gridItemOverlay),children:(0,t.jsx)("button",{onClick:()=>s?.(r.id,a),className:"flex items-center justify-center rounded-full bg-white/20 p-1 transition-colors hover:bg-white/30","aria-label":"Remove item",children:(0,t.jsx)(O,{className:"laptop:size-3 size-4 text-white"})})})]},r.id)})}),p.length>0&&(0,t.jsx)("button",{onClick:()=>z("right"),className:(0,o.cn)("border-border laptop:flex hover:bg-muted-foreground/10 laptop:flex hidden size-12 shrink-0 items-center justify-center rounded-lg transition-colors",e?.expandButton),"aria-label":"Scroll right to see more items",children:(0,t.jsx)(y,{className:"size-4"})})]}):null,g=!U&&p.length>0;return(0,t.jsx)("div",{ref:V,className:(0,o.cn)("bg-background text-info-primary tablet:px-6 laptop:px-12 desktop:px-12 lg-desktop:px-[128px] laptop:py-[16px] flex w-full px-4 py-[12px]","flex-col items-stretch gap-3","laptop:flex-row laptop:items-center laptop:justify-around",g?"laptop:items-start laptop:gap-4":"laptop:items-center laptop:gap-4","tablet:gap-6 laptop:gap-8",i,e?.root,{"aiui-dark":T==="dark"}),...E,children:(0,t.jsxs)("div",{className:(0,o.cn)("laptop:flex-row flex w-full flex-col gap-4","laptop:flex-1 laptop:items-start","tablet:gap-6 laptop:gap-8",e?.content),children:[(0,t.jsxs)("div",{className:"laptop:flex-1 flex w-full flex-col",children:[(0,t.jsx)("div",{className:(0,o.cn)("tablet:gap-2 flex flex-col gap-1",e?.cartInfo),children:g?(0,t.jsxs)("div",{className:"flex w-full items-center gap-2",children:[(0,t.jsx)(h.Heading,{size:2,as:"h3",className:(0,o.cn)("",e?.cartTitle),children:W.replace("${count}",(L||0).toString())}),(0,t.jsxs)("button",{onClick:()=>{window.innerWidth<1025?F(!w):D?.(a)},className:(0,o.cn)("flex items-center gap-1 text-base font-semibold",e?.expandButton),children:[(0,t.jsx)(h.Heading,{as:"h6",size:1,className:"laptop:block hidden text-base",children:G}),(0,t.jsx)(y,{className:(0,o.cn)("size-4 transition-transform",w?"laptop:rotate-0 -rotate-90":"laptop:rotate-0 rotate-90")})]})]}):(0,t.jsx)(h.Heading,{as:"h3",className:(0,o.cn)("tablet:text-2xl text-xl font-semibold",e?.cartTitle),children:R})}),(0,t.jsx)("div",{children:M&&(0,t.jsx)(d.Text,{className:(0,o.cn)("mini-cart-description",e?.cartDescription),html:M})})]}),g&&(0,t.jsx)("div",{className:(0,o.cn)("laptop:block",w?"block":"hidden"),children:Y(T)}),g&&(0,t.jsx)("hr",{className:"laptop:hidden border-lines w-full border-t"}),(0,t.jsxs)("div",{className:(0,o.cn)("tablet:gap-6 laptop:justify-end flex flex-row items-center justify-between gap-4",e?.priceSection),children:[(0,t.jsxs)("div",{className:"flex flex-col items-end gap-1",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(d.Text,{className:(0,o.cn)("tablet:text-2xl whitespace-nowrap text-xl font-semibold",e?.totalPrice),children:$.replace("${total}",(0,x.formatPrice)({amount:u,currencyCode:v,locale:b})||"")}),(m||0)>(u||0)&&(0,t.jsx)(d.Text,{className:(0,o.cn)("tablet:text-2xl whitespace-nowrap text-xl font-semibold line-through",e?.originalPrice),children:(0,x.formatPrice)({amount:m,currencyCode:v,locale:b})||""})]}),(I||0)>0&&(0,t.jsxs)(d.Text,{className:(0,o.cn)("w-full text-right text-xl font-semibold",e?.saveAmount),children:["Save ",(0,x.formatPrice)({amount:I,currencyCode:v,locale:b})||""]})]}),(0,t.jsx)(j.Button,{onClick:()=>S?.(a),className:(0,o.cn)("whitespace-nowrap",e?.actionButton),children:q})]})]})})});H.displayName="MiniCart";var rt=H;
2
- //# sourceMappingURL=index.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../src/biz-components/MiniCart/index.tsx"],
4
- "sourcesContent": ["'use client'\n\nimport * as React from 'react'\nimport { cn } from '../../helpers/index.js'\nimport { formatPrice } from '../../helpers/priceFormatting.js'\nimport { Button } from '../../components/index.js'\nimport { Text } from '../../components/index.js'\nimport { Heading } from '../../components/index.js'\nimport type { Theme } from '../../types/props.js'\n\nexport type MiniCartSemanticName =\n | 'root'\n | 'content'\n | 'productImage'\n | 'productTag'\n | 'cartInfo'\n | 'cartTitle'\n | 'cartDescription'\n | 'priceSection'\n | 'totalPrice'\n | 'originalPrice'\n | 'saveAmount'\n | 'actionButton'\n | 'itemsGrid'\n | 'itemGridContainer'\n | 'gridItem'\n | 'gridItemOverlay'\n | 'expandButton'\n | 'congratsMessage'\n\n/**\n * \u6587\u6848\u914D\u7F6E\n */\nexport interface MiniCartCopy {\n emptyCart: string\n description: string\n total: string\n itemsInCart: string\n totalWithCoupon: string\n clickToView: string\n buyNowText: string\n}\n\n/**\n * MiniCart \u4E1A\u52A1\u7EC4\u4EF6\u6570\u636E\u63A5\u53E3\n */\nexport interface MiniCartData {\n /** \u6587\u6848\u914D\u7F6E */\n copy?: MiniCartCopy\n theme?: 'light' | 'dark'\n /** \u5730\u533A\u4EE3\u7801\uFF0C\u7528\u4E8E\u4EF7\u683C\u683C\u5F0F\u5316 */\n locale?: string\n}\n\ntype Cart = {\n id: string\n checkoutUrl: string\n lineItems: Array<{\n id: string\n quantity: number\n merchandise: {\n id: string\n sku: string\n image: {\n url: string\n altText: string | null\n }\n }\n }>\n cost: {\n totalAmount: {\n amount: string\n currencyCode: string\n }\n subtotalAmount?: {\n amount: string\n currencyCode: string\n }\n }\n}\n\nexport interface MiniCartProps extends React.HTMLAttributes<HTMLDivElement> {\n /** \u4E1A\u52A1\u6570\u636E */\n data: MiniCartData\n /**\n * \u5404\u90E8\u5206\u7684\u81EA\u5B9A\u4E49\u6837\u5F0F\u7C7B\u540D\n */\n classNames?: Partial<Record<MiniCartSemanticName, string>>\n /**\n * \u4EA7\u54C1\u4FE1\u606F\uFF08\u7528\u4E8E\u4E3B\u8981\u5C55\u793A\u7684\u4EA7\u54C1\uFF09\n */\n cart: Cart\n /**\n * \u5220\u9664\u5546\u54C1\u9879\u7684\u56DE\u8C03\u51FD\u6570\n * @param id \u5546\u54C1 ID\n * @param cart \u8D2D\u7269\u8F66\u6570\u636E\n * @returns\n */\n onRemoveItem?: (id: string, cart: Cart) => void\n /**\n * \u70B9\u51FB\u7ED3\u7B97\u6309\u94AE\u7684\u56DE\u8C03\u51FD\u6570\n * @param cart\n * @returns\n */\n onCheckout?: (cart: Cart) => void\n /**\n * \u70B9\u51FBclick to view\u7684\u56DE\u8C03\u51FD\u6570\n * @param cart\n * @returns\n */\n onClickToView?: (cart: Cart) => void\n}\n\n/**\n * MiniCart - \u8FF7\u4F60\u8D2D\u7269\u8F66\n *\n * @description \u8FF7\u4F60\u8D2D\u7269\u8F66\uFF08Mini Cart\uFF09\u662F\u4E00\u4E2A\u5E38\u89C1\u7684\u7535\u5546UI\u7EC4\u4EF6\uFF0C\u901A\u5E38\u5728\u7528\u6237\u6D4F\u89C8\u5546\u54C1\u65F6\u4EE5\u5E95\u90E8\u60AC\u6D6E\u7684\u5F62\u5F0F\u51FA\u73B0\uFF0C\u5141\u8BB8\u7528\u6237\u5FEB\u901F\u67E5\u770B\u3001\u7F16\u8F91\u8D2D\u7269\u8F66\u5185\u5BB9\u800C\u4E0D\u79BB\u5F00\u5F53\u524D\u9875\u9762\uFF0C\u540C\u65F6\u53EF\u4EE5\u627F\u8F7D\u6EE1\u8D60\uFF0C\u6EE1\u51CF\u7B49\u6D3B\u52A8\u3002\n */\nconst MiniCart = React.forwardRef<HTMLDivElement, MiniCartProps>(\n ({ className, classNames = {}, data, cart, onRemoveItem, onCheckout, onClickToView, ...props }, ref) => {\n const { copy, theme = 'dark', locale = 'us' } = data || {}\n\n // \u6587\u6848\u914D\u7F6E\uFF0C\u5E26\u9ED8\u8BA4\u503C\n const emptyCart = copy?.emptyCart || 'Your Cart is Empty'\n const description =\n copy?.description || 'Add one more to get <span style=\"color: var(--brand-color)\">50% <span> off'\n const itemsInCart = copy?.itemsInCart || 'You have selected ${count} items'\n const total = copy?.total || 'Total ${total}'\n const totalWithCoupon = copy?.totalWithCoupon || 'total: ${total} (${subtotal})'\n const clickToView = copy?.clickToView || 'Click to view cart'\n const buyNowText = copy?.buyNowText || 'Buy Now'\n\n // \u4ECECart\u5BF9\u8C61\u4E2D\u63D0\u53D6\u6570\u636E\uFF0C\u4F7F\u7528\u53EF\u9009\u94FE\u548C\u9ED8\u8BA4\u503C\n const items = cart?.lineItems || []\n const itemCount = items.reduce((total, item) => total + (item?.quantity || 0), 0)\n const isEmpty = itemCount === 0\n\n // \u8BA1\u7B97\u4EF7\u683C\u4FE1\u606F\uFF0C\u4F7F\u7528\u53EF\u9009\u94FE\n const originalPrice = parseFloat(cart?.cost?.subtotalAmount?.amount || '0') || 0 // \u539F\u4EF7\n const finalPrice = parseFloat(cart?.cost?.totalAmount?.amount || '0') || 0 // \u6700\u7EC8\u4EF7\u683C\n const currency = cart?.cost?.totalAmount?.currencyCode || cart?.cost?.subtotalAmount?.currencyCode || 'USD'\n const saveAmount = originalPrice > finalPrice ? originalPrice - finalPrice : 0\n\n // \u6EDA\u52A8\u5BB9\u5668\u5F15\u7528\n const scrollContainerRef = React.useRef<HTMLDivElement>(null)\n\n // \u79FB\u52A8\u7AEF\u4EA7\u54C1\u5C55\u5F00\u72B6\u6001\n const [isProductsExpanded, setIsProductsExpanded] = React.useState(false)\n\n // \u6C34\u5E73\u6EDA\u52A8\u51FD\u6570\n const scrollHorizontally = (direction: 'left' | 'right') => {\n if (scrollContainerRef.current) {\n const container = scrollContainerRef.current\n const scrollAmount = 100 // \u6BCF\u6B21\u6EDA\u52A8\u7684\u50CF\u7D20\u6570\uFF08\u8C03\u5C0F\u4E00\u4E9B\uFF09\n container.scrollBy({ left: direction === 'right' ? scrollAmount : -scrollAmount, behavior: 'smooth' })\n }\n }\n\n // \u7BAD\u5934\u56FE\u6807\u7EC4\u4EF6\n const ArrowIcon = ({ className }: { className?: string }) => (\n <svg\n className={className}\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M6 4L10 8L6 12\"\n stroke=\"currentColor\"\n strokeWidth=\"1.33\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )\n\n // \u5220\u9664\u56FE\u6807\u7EC4\u4EF6\n const DeleteIcon = ({ className }: { className?: string }) => (\n <svg\n className={className}\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M2.5 5H17.5M8.33333 9.16667V14.1667M11.6667 9.16667V14.1667M3.33333 5L4.16667 16.6667C4.16667 17.1087 4.34226 17.5326 4.65482 17.8452C4.96738 18.1577 5.39131 18.3333 5.83333 18.3333H14.1667C14.6087 18.3333 15.0326 18.1577 15.3452 17.8452C15.6577 17.5326 15.8333 17.1087 15.8333 16.6667L16.6667 5M7.5 5V2.5C7.5 2.27899 7.5878 2.06702 7.74408 1.91074C7.90036 1.75446 8.11232 1.66667 8.33333 1.66667H11.6667C11.8877 1.66667 12.0996 1.75446 12.2559 1.91074C12.4122 2.06702 12.5 2.27899 12.5 2.5V5\"\n stroke=\"currentColor\"\n strokeWidth=\"1.25\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )\n\n // Render items grid\n const renderItemsGrid = (theme: Theme) => {\n if (!items.length) return null\n\n return (\n <div className={cn('bg-muted flex gap-1 rounded-lg p-1', classNames?.itemsGrid)}>\n {/* \u5DE6\u6EDA\u52A8\u6309\u94AE - \u684C\u9762\u7AEF\u663E\u793A */}\n {items.length > 0 && (\n <button\n onClick={() => scrollHorizontally('left')}\n className={cn(\n 'border-border laptop:flex hover:bg-muted-foreground/10 laptop:flex hidden size-12 shrink-0 items-center justify-center rounded-lg transition-colors',\n classNames?.expandButton\n )}\n aria-label=\"Scroll left to see more items\"\n >\n <ArrowIcon className=\"size-4 rotate-180\" />\n </button>\n )}\n\n <div\n ref={scrollContainerRef}\n className={cn(\n 'scrollbar-hide laptop:gap-1 laptop:max-w-[240px] flex w-full gap-1 overflow-x-auto [-ms-overflow-style:none] [scrollbar-width:none] [&::-webkit-scrollbar]:hidden',\n classNames?.itemGridContainer\n )}\n >\n {items\n .filter(line => line && line.id)\n .map(line => {\n const safeproduct = line.merchandise || {}\n const safeImage = safeproduct.image || {}\n const imageUrl = safeImage.url\n const imageAlt = safeImage.altText || 'Product image'\n\n return (\n <div\n key={line.id}\n className={cn(\n 'laptop:size-12 group relative size-16 shrink-0 rounded-lg bg-white',\n classNames?.gridItem\n )}\n >\n {imageUrl && (\n <img\n src={imageUrl}\n alt={imageAlt}\n className=\"size-full rounded-lg object-cover\"\n onError={e => {\n e.currentTarget.style.display = 'none'\n }}\n />\n )}\n <span\n role=\"button\"\n onClick={() => onRemoveItem?.(line.id, cart)}\n className=\"laptop:hidden absolute right-[2px] top-[2px]\"\n aria-label=\"delete\"\n >\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect x=\"1.33301\" y=\"1.33301\" width=\"13.3333\" height=\"13.3333\" rx=\"6.66667\" fill=\"white\" />\n <path\n d=\"M5.37705 5.28896C5.57234 5.09402 5.88839 5.09442 6.08347 5.28965L8.08602 7.29358L10.0906 5.28896C10.2858 5.09402 10.6026 5.09395 10.7977 5.28896C10.9928 5.48418 10.9926 5.80078 10.7977 5.99607L8.79312 8.00069L10.7964 10.0053C10.9913 10.2007 10.9909 10.5179 10.7957 10.7131C10.6005 10.908 10.2844 10.9074 10.0893 10.7124L8.08602 8.7078L6.08347 10.7103C5.88821 10.9056 5.57155 10.9057 5.37636 10.7103C5.18148 10.515 5.18132 10.1984 5.37636 10.0032L7.37891 8.00069L5.37636 5.99676C5.18119 5.80143 5.18181 5.48423 5.37705 5.28896Z\"\n fill=\"#767880\"\n />\n </svg>\n </span>\n {line.quantity > 1 && (\n <div className=\"bg-brand-0 laptop:size-4 absolute bottom-0 right-0 flex size-4 items-center justify-center rounded-full\">\n <Text className=\"text-sm\">{line.quantity}</Text>\n </div>\n )}\n\n <div\n className={cn(\n 'laptop:flex absolute inset-0 hidden items-center justify-center rounded-lg bg-black/60 opacity-0 transition-opacity group-hover:opacity-100',\n classNames?.gridItemOverlay\n )}\n >\n <button\n onClick={() => onRemoveItem?.(line.id, cart)}\n className=\"flex items-center justify-center rounded-full bg-white/20 p-1 transition-colors hover:bg-white/30\"\n aria-label=\"Remove item\"\n >\n <DeleteIcon className=\"laptop:size-3 size-4 text-white\" />\n </button>\n </div>\n </div>\n )\n })}\n </div>\n\n {/* \u53F3\u6EDA\u52A8\u6309\u94AE - \u684C\u9762\u7AEF\u663E\u793A */}\n {items.length > 0 && (\n <button\n onClick={() => scrollHorizontally('right')}\n className={cn(\n 'border-border laptop:flex hover:bg-muted-foreground/10 laptop:flex hidden size-12 shrink-0 items-center justify-center rounded-lg transition-colors',\n classNames?.expandButton\n )}\n aria-label=\"Scroll right to see more items\"\n >\n <ArrowIcon className=\"size-4\" />\n </button>\n )}\n </div>\n )\n }\n\n // Check if cart has items\n const hasItems = !isEmpty && items.length > 0\n\n return (\n <div\n ref={ref}\n className={cn(\n 'bg-background text-info-primary tablet:px-6 laptop:px-12 desktop:px-12 lg-desktop:px-[128px] laptop:py-[16px] flex w-full px-4 py-[12px]',\n // \u79FB\u52A8\u7AEF\u5782\u76F4\u5E03\u5C40\uFF0C\u5927\u5C4F\u5E55\u6C34\u5E73\u5E03\u5C40\n 'flex-col items-stretch gap-3',\n 'laptop:flex-row laptop:items-center laptop:justify-around',\n hasItems ? 'laptop:items-start laptop:gap-4' : 'laptop:items-center laptop:gap-4',\n 'tablet:gap-6 laptop:gap-8',\n className,\n classNames?.root,\n {\n 'aiui-dark': theme === 'dark',\n }\n )}\n {...props}\n >\n {/* \u79FB\u52A8\u7AEF\uFF1A\u5782\u76F4\u6392\u5217 | \u684C\u9762\u7AEF\uFF1A\u6C34\u5E73\u4E09\u5217\u5E03\u5C40 */}\n <div\n className={cn(\n 'laptop:flex-row flex w-full flex-col gap-4',\n 'laptop:flex-1 laptop:items-start',\n 'tablet:gap-6 laptop:gap-8',\n classNames?.content\n )}\n >\n {/* Center: Cart info and dynamic content */}\n <div className=\"laptop:flex-1 flex w-full flex-col\">\n {/* Cart title area */}\n <div className={cn('tablet:gap-2 flex flex-col gap-1', classNames?.cartInfo)}>\n {hasItems ? (\n <div className=\"flex w-full items-center gap-2\">\n <Heading size={2} as=\"h3\" className={cn('', classNames?.cartTitle)}>\n {itemsInCart.replace('${count}', (itemCount || 0).toString())}\n </Heading>\n\n {/* Click to view link / Toggle products */}\n <button\n onClick={() => {\n // \u79FB\u52A8\u7AEF\uFF1A\u5207\u6362\u4EA7\u54C1\u5C55\u5F00\u72B6\u6001\uFF0C\u684C\u9762\u7AEF\uFF1A\u8C03\u7528\u539F\u56DE\u8C03\n const isMobile = window.innerWidth < 1025\n if (isMobile) {\n setIsProductsExpanded(!isProductsExpanded)\n } else {\n onClickToView?.(cart)\n }\n }}\n className={cn('flex items-center gap-1 text-base font-semibold', classNames?.expandButton)}\n >\n {/* \u684C\u9762\u7AEF\u663E\u793A\u6587\u5B57 + \u56FE\u6807\uFF0C\u79FB\u52A8\u7AEF\u53EA\u663E\u793A\u56FE\u6807 */}\n <Heading as=\"h6\" size={1} className=\"laptop:block hidden text-base\">\n {clickToView}\n </Heading>\n <ArrowIcon\n className={cn(\n 'size-4 transition-transform',\n isProductsExpanded ? 'laptop:rotate-0 -rotate-90' : 'laptop:rotate-0 rotate-90'\n )}\n />\n </button>\n </div>\n ) : (\n <Heading as=\"h3\" className={cn('tablet:text-2xl text-xl font-semibold', classNames?.cartTitle)}>\n {emptyCart}\n </Heading>\n )}\n </div>\n <div>\n {description && (\n <Text className={cn('mini-cart-description', classNames?.cartDescription)} html={description} />\n )}\n </div>\n </div>\n\n {/* Items grid (\u79FB\u52A8\u7AEF\uFF1A\u6839\u636E\u5C55\u5F00\u72B6\u6001\u663E\u793A\uFF0C\u684C\u9762\u7AEF\uFF1A\u59CB\u7EC8\u663E\u793A) */}\n {hasItems && (\n <div className={cn('laptop:block', isProductsExpanded ? 'block' : 'hidden')}>{renderItemsGrid(theme)}</div>\n )}\n {/* \u79FB\u52A8\u7AEF\uFF1A\u5206\u5272\u7EBF\uFF08\u53EA\u5728\u6709\u5546\u54C1\u65F6\u663E\u793A\uFF09 */}\n {hasItems && <hr className=\"laptop:hidden border-lines w-full border-t\" />}\n\n {/* Price and button area */}\n <div\n className={cn(\n 'tablet:gap-6 laptop:justify-end flex flex-row items-center justify-between gap-4',\n classNames?.priceSection\n )}\n >\n {/* Price info */}\n <div className=\"flex flex-col items-end gap-1\">\n {/* Main price row */}\n <div className=\"flex items-center gap-2\">\n <Text className={cn('tablet:text-2xl whitespace-nowrap text-xl font-semibold', classNames?.totalPrice)}>\n {total.replace('${total}', formatPrice({ amount: finalPrice, currencyCode: currency, locale }) || '')}\n </Text>\n\n {/* Original price (if discounted) */}\n {(originalPrice || 0) > (finalPrice || 0) && (\n <Text\n className={cn(\n 'tablet:text-2xl whitespace-nowrap text-xl font-semibold line-through',\n classNames?.originalPrice\n )}\n >\n {formatPrice({ amount: originalPrice, currencyCode: currency, locale }) || ''}\n </Text>\n )}\n </div>\n\n {/* Save amount */}\n {(saveAmount || 0) > 0 && (\n <Text className={cn('w-full text-right text-xl font-semibold', classNames?.saveAmount)}>\n Save {formatPrice({ amount: saveAmount, currencyCode: currency, locale }) || ''}\n </Text>\n )}\n </div>\n\n {/* Action button */}\n <Button onClick={() => onCheckout?.(cart)} className={cn('whitespace-nowrap', classNames?.actionButton)}>\n {buyNowText}\n </Button>\n </div>\n </div>\n </div>\n )\n }\n)\n\nMiniCart.displayName = 'MiniCart'\nexport default MiniCart\n"],
5
- "mappings": "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",
6
- "names": ["MiniCart_exports", "__export", "MiniCart_default", "__toCommonJS", "import_jsx_runtime", "React", "import_helpers", "import_priceFormatting", "import_components", "MiniCart", "className", "classNames", "data", "cart", "onRemoveItem", "onCheckout", "onClickToView", "props", "ref", "copy", "theme", "locale", "emptyCart", "description", "itemsInCart", "total", "totalWithCoupon", "clickToView", "buyNowText", "items", "itemCount", "item", "isEmpty", "originalPrice", "finalPrice", "currency", "saveAmount", "scrollContainerRef", "isProductsExpanded", "setIsProductsExpanded", "scrollHorizontally", "direction", "container", "scrollAmount", "ArrowIcon", "DeleteIcon", "renderItemsGrid", "line", "safeImage", "imageUrl", "imageAlt", "e", "hasItems"]
7
- }