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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (858) hide show
  1. package/dist/cjs/biz-components/AccordionCards/index.d.ts +3 -3
  2. package/dist/cjs/biz-components/ActiveShelf/index.d.ts +222 -0
  3. package/dist/cjs/biz-components/ActiveShelf/index.js +2 -0
  4. package/dist/cjs/biz-components/ActiveShelf/index.js.map +7 -0
  5. package/dist/cjs/biz-components/ActiveShelf/types.d.ts +22 -0
  6. package/dist/cjs/biz-components/ActiveShelf/types.js +2 -0
  7. package/dist/cjs/biz-components/ActiveShelf/types.js.map +7 -0
  8. package/dist/cjs/biz-components/AiuiProvider/index.d.ts +7 -0
  9. package/dist/cjs/biz-components/AiuiProvider/index.js +1 -1
  10. package/dist/cjs/biz-components/AiuiProvider/index.js.map +2 -2
  11. package/dist/cjs/biz-components/AnchorNavigation/index.d.ts +42 -0
  12. package/dist/cjs/biz-components/AnchorNavigation/index.js +2 -0
  13. package/dist/cjs/biz-components/AnchorNavigation/index.js.map +7 -0
  14. package/dist/cjs/biz-components/AnchorNavigation/useAnchorPosition.d.ts +2 -0
  15. package/dist/cjs/biz-components/AnchorNavigation/useAnchorPosition.js +2 -0
  16. package/dist/cjs/biz-components/AnchorNavigation/useAnchorPosition.js.map +7 -0
  17. package/dist/cjs/biz-components/AplusDesc/index.d.ts +3 -3
  18. package/dist/cjs/biz-components/BrandCardLink/BrandCardLink.d.ts +3 -3
  19. package/dist/cjs/biz-components/BrandCardLink/BrandCardLink.js +1 -1
  20. package/dist/cjs/biz-components/BrandCardLink/BrandCardLink.js.map +1 -1
  21. package/dist/cjs/biz-components/BrandEquity/BrandEquity.d.ts +3 -3
  22. package/dist/cjs/biz-components/BrandEquity/BrandEquity.js +1 -1
  23. package/dist/cjs/biz-components/BrandEquity/BrandEquity.js.map +3 -3
  24. package/dist/cjs/biz-components/BrandEquity/types.d.ts +1 -0
  25. package/dist/cjs/biz-components/BrandEquity/types.js +1 -1
  26. package/dist/cjs/biz-components/BrandEquity/types.js.map +1 -1
  27. package/dist/cjs/biz-components/BuyOneGetOneShelf/ProductCard.d.ts +74 -0
  28. package/dist/cjs/biz-components/BuyOneGetOneShelf/ProductCard.js +2 -0
  29. package/dist/cjs/biz-components/BuyOneGetOneShelf/ProductCard.js.map +7 -0
  30. package/dist/cjs/biz-components/BuyOneGetOneShelf/hooks/useBogoDataTransform.d.ts +36 -0
  31. package/dist/cjs/biz-components/BuyOneGetOneShelf/hooks/useBogoDataTransform.js +2 -0
  32. package/dist/cjs/biz-components/BuyOneGetOneShelf/hooks/useBogoDataTransform.js.map +7 -0
  33. package/dist/cjs/biz-components/BuyOneGetOneShelf/index.d.ts +193 -0
  34. package/dist/cjs/biz-components/BuyOneGetOneShelf/index.js +2 -0
  35. package/dist/cjs/biz-components/BuyOneGetOneShelf/index.js.map +7 -0
  36. package/dist/cjs/biz-components/Category/index.d.ts +3 -3
  37. package/dist/cjs/biz-components/CreativeModule/index.d.ts +3 -3
  38. package/dist/cjs/biz-components/DownLoad/index.d.ts +3 -3
  39. package/dist/cjs/biz-components/Evaluate/index.d.ts +3 -3
  40. package/dist/cjs/biz-components/EventSchedule/index.d.ts +63 -0
  41. package/dist/cjs/biz-components/EventSchedule/index.js +2 -0
  42. package/dist/cjs/biz-components/EventSchedule/index.js.map +7 -0
  43. package/dist/cjs/biz-components/Faq/Faq.d.ts +3 -3
  44. package/dist/cjs/biz-components/FeatureCards/FeatureCards.d.ts +3 -3
  45. package/dist/cjs/biz-components/FeatureShowcase/FeatureShowcase.d.ts +3 -3
  46. package/dist/cjs/biz-components/Features/index.d.ts +3 -3
  47. package/dist/cjs/biz-components/FootCharger/index.d.ts +3 -3
  48. package/dist/cjs/biz-components/FooterNavigation/index.d.ts +3 -3
  49. package/dist/cjs/biz-components/GiftBox/index.d.ts +3 -3
  50. package/dist/cjs/biz-components/Graphic/index.d.ts +3 -3
  51. package/dist/cjs/biz-components/GraphicAttractionBlock/index.d.ts +3 -3
  52. package/dist/cjs/biz-components/GraphicMore/index.d.ts +3 -3
  53. package/dist/cjs/biz-components/GraphicOverlay/GraphicOverlay.d.ts +3 -3
  54. package/dist/cjs/biz-components/HeaderNavigation/MobileSidebarMenu.js +1 -1
  55. package/dist/cjs/biz-components/HeaderNavigation/MobileSidebarMenu.js.map +3 -3
  56. package/dist/cjs/biz-components/HeaderNavigation/SidebarDropdown.js +1 -1
  57. package/dist/cjs/biz-components/HeaderNavigation/SidebarDropdown.js.map +2 -2
  58. package/dist/cjs/biz-components/HeaderNavigation/index.d.ts +3 -3
  59. package/dist/cjs/biz-components/HeroBanner/Countdown.js +1 -1
  60. package/dist/cjs/biz-components/HeroBanner/Countdown.js.map +2 -2
  61. package/dist/cjs/biz-components/HeroBanner/HeroBanner.d.ts +6 -3
  62. package/dist/cjs/biz-components/HeroBanner/HeroBanner.js +1 -1
  63. package/dist/cjs/biz-components/HeroBanner/HeroBanner.js.map +3 -3
  64. package/dist/cjs/biz-components/IPRedirect/RegionBanner.d.ts +37 -0
  65. package/dist/cjs/biz-components/IPRedirect/RegionBanner.js +60 -0
  66. package/dist/cjs/biz-components/IPRedirect/RegionBanner.js.map +7 -0
  67. package/dist/cjs/biz-components/IPRedirect/RegionSelectorModal.d.ts +47 -0
  68. package/dist/cjs/biz-components/IPRedirect/RegionSelectorModal.js +69 -0
  69. package/dist/cjs/biz-components/IPRedirect/RegionSelectorModal.js.map +7 -0
  70. package/dist/cjs/biz-components/IPRedirect/index.d.ts +9 -0
  71. package/dist/cjs/biz-components/IPRedirect/index.js +2 -0
  72. package/dist/cjs/biz-components/IPRedirect/index.js.map +7 -0
  73. package/dist/cjs/biz-components/IPRedirect/type.d.ts +36 -0
  74. package/dist/cjs/biz-components/IPRedirect/type.js +2 -0
  75. package/dist/cjs/biz-components/IPRedirect/type.js.map +7 -0
  76. package/dist/cjs/biz-components/IPRedirect/useAutoRedirect.d.ts +66 -0
  77. package/dist/cjs/biz-components/IPRedirect/useAutoRedirect.js +2 -0
  78. package/dist/cjs/biz-components/IPRedirect/useAutoRedirect.js.map +7 -0
  79. package/dist/cjs/biz-components/IPRedirect/useDetectedRegionRedirect.d.ts +51 -0
  80. package/dist/cjs/biz-components/IPRedirect/useDetectedRegionRedirect.js +2 -0
  81. package/dist/cjs/biz-components/IPRedirect/useDetectedRegionRedirect.js.map +7 -0
  82. package/dist/cjs/biz-components/IPRedirect/useIPRedirect.d.ts +42 -0
  83. package/dist/cjs/biz-components/IPRedirect/useIPRedirect.js +2 -0
  84. package/dist/cjs/biz-components/IPRedirect/useIPRedirect.js.map +7 -0
  85. package/dist/cjs/biz-components/IPRedirect/useRedirectBanner.d.ts +108 -0
  86. package/dist/cjs/biz-components/IPRedirect/useRedirectBanner.js +2 -0
  87. package/dist/cjs/biz-components/IPRedirect/useRedirectBanner.js.map +7 -0
  88. package/dist/cjs/biz-components/IPRedirect/useRegionRedirectManager.d.ts +152 -0
  89. package/dist/cjs/biz-components/IPRedirect/useRegionRedirectManager.js +2 -0
  90. package/dist/cjs/biz-components/IPRedirect/useRegionRedirectManager.js.map +7 -0
  91. package/dist/cjs/biz-components/IPRedirect/useSavedRegionRedirect.d.ts +51 -0
  92. package/dist/cjs/biz-components/IPRedirect/useSavedRegionRedirect.js +2 -0
  93. package/dist/cjs/biz-components/IPRedirect/useSavedRegionRedirect.js.map +7 -0
  94. package/dist/cjs/biz-components/IPRedirect/utils.d.ts +222 -0
  95. package/dist/cjs/biz-components/IPRedirect/utils.js +2 -0
  96. package/dist/cjs/biz-components/IPRedirect/utils.js.map +7 -0
  97. package/dist/cjs/biz-components/ImageOverlayShelf/index.d.ts +130 -0
  98. package/dist/cjs/biz-components/ImageOverlayShelf/index.js +2 -0
  99. package/dist/cjs/biz-components/ImageOverlayShelf/index.js.map +7 -0
  100. package/dist/cjs/biz-components/ImageTextFeature/ImageTextFeature.d.ts +3 -3
  101. package/dist/cjs/biz-components/ImageTextFeature/ImageTextFeature.js +1 -1
  102. package/dist/cjs/biz-components/ImageTextFeature/ImageTextFeature.js.map +3 -3
  103. package/dist/cjs/biz-components/ImageWithText/ImageWithText.d.ts +3 -3
  104. package/dist/cjs/biz-components/Ksp/index.d.ts +3 -3
  105. package/dist/cjs/biz-components/Listing/components/PaidShipping/index.d.ts +4 -4
  106. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/BenefitsTab.d.ts +3 -3
  107. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductBundle/index.d.ts +3 -3
  108. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductExchangePurchase/index.d.ts +3 -3
  109. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductFreeGift/index.d.ts +3 -3
  110. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductHighlight/index.d.ts +3 -3
  111. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductOptions/index.d.ts +3 -3
  112. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGallery/index.d.ts +3 -3
  113. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductSummary/index.d.ts +3 -3
  114. package/dist/cjs/biz-components/Listing/components/PurchaseBar/index.d.ts +3 -3
  115. package/dist/cjs/biz-components/Marquee/Marquee.d.ts +3 -3
  116. package/dist/cjs/biz-components/Marquee/Marquee.js +1 -1
  117. package/dist/cjs/biz-components/Marquee/Marquee.js.map +3 -3
  118. package/dist/cjs/biz-components/MarqueeReview/index.d.ts +3 -3
  119. package/dist/cjs/biz-components/Media/index.d.ts +32 -0
  120. package/dist/cjs/biz-components/Media/index.js +2 -0
  121. package/dist/cjs/biz-components/Media/index.js.map +7 -0
  122. package/dist/cjs/biz-components/MediaPlayerBase/index.d.ts +3 -3
  123. package/dist/cjs/biz-components/MediaPlayerMulti/index.d.ts +3 -3
  124. package/dist/cjs/biz-components/MediaPlayerSticky/index.d.ts +4 -4
  125. package/dist/cjs/biz-components/MediaPlayerSticky/types.d.ts +1 -0
  126. package/dist/cjs/biz-components/MediaPlayerSticky/types.js +1 -1
  127. package/dist/cjs/biz-components/MediaPlayerSticky/types.js.map +1 -1
  128. package/dist/cjs/biz-components/MediaSceneSwitcher/MediaSceneSwitcher.d.ts +3 -3
  129. package/dist/cjs/biz-components/MediaShelf/index.d.ts +216 -0
  130. package/dist/cjs/biz-components/MediaShelf/index.js +2 -0
  131. package/dist/cjs/biz-components/MediaShelf/index.js.map +7 -0
  132. package/dist/cjs/biz-components/MediaShelf/types.d.ts +22 -0
  133. package/dist/cjs/biz-components/MediaShelf/types.js +2 -0
  134. package/dist/cjs/biz-components/MediaShelf/types.js.map +7 -0
  135. package/dist/cjs/biz-components/MemberEquity/index.d.ts +3 -3
  136. package/dist/cjs/biz-components/MiniCart/index.d.ts +88 -0
  137. package/dist/cjs/biz-components/MiniCart/index.js +2 -0
  138. package/dist/cjs/biz-components/MiniCart/index.js.map +7 -0
  139. package/dist/cjs/biz-components/MultiLayoutGraphicBlock/MultiLayoutGraphicBlock.d.ts +3 -3
  140. package/dist/cjs/biz-components/ProductCompare/index.d.ts +3 -3
  141. package/dist/cjs/biz-components/ProductHero/ProductHero.d.ts +3 -3
  142. package/dist/cjs/biz-components/ProductNav/ProductNav.d.ts +3 -3
  143. package/dist/cjs/biz-components/PromotionalBar/index.d.ts +49 -0
  144. package/dist/cjs/biz-components/PromotionalBar/index.js +2 -0
  145. package/dist/cjs/biz-components/PromotionalBar/index.js.map +7 -0
  146. package/dist/cjs/biz-components/SecondaryBanner/index.d.ts +69 -0
  147. package/dist/cjs/biz-components/SecondaryBanner/index.js +2 -0
  148. package/dist/cjs/biz-components/SecondaryBanner/index.js.map +7 -0
  149. package/dist/cjs/biz-components/SelectStore/index.d.ts +3 -3
  150. package/dist/cjs/biz-components/ShelfDisplay/index.d.ts +3 -3
  151. package/dist/cjs/biz-components/ShelfDisplay/shelfDisplay.d.ts +0 -11
  152. package/dist/cjs/biz-components/ShelfDisplay/shelfDisplay.js +1 -1
  153. package/dist/cjs/biz-components/ShelfDisplay/shelfDisplay.js.map +3 -3
  154. package/dist/cjs/biz-components/Slogan/index.d.ts +3 -3
  155. package/dist/cjs/biz-components/Spacer/index.d.ts +3 -3
  156. package/dist/cjs/biz-components/Specs/index.d.ts +3 -3
  157. package/dist/cjs/biz-components/Specs/index.js +1 -1
  158. package/dist/cjs/biz-components/Specs/index.js.map +2 -2
  159. package/dist/cjs/biz-components/SpecsComparison/SpecsComparison.d.ts +3 -3
  160. package/dist/cjs/biz-components/TabWithImage/TabWithImage.d.ts +3 -3
  161. package/dist/cjs/biz-components/Tabs/Tabs.d.ts +3 -3
  162. package/dist/cjs/biz-components/TabsGroup/index.d.ts +3 -3
  163. package/dist/cjs/biz-components/TabsWithMedia/TabsWithMedia.d.ts +3 -3
  164. package/dist/cjs/biz-components/ThreeDCarousel/ThreeDCarousel.d.ts +3 -3
  165. package/dist/cjs/biz-components/Title/Countdown.d.ts +14 -0
  166. package/dist/cjs/biz-components/Title/Countdown.js +2 -0
  167. package/dist/cjs/biz-components/Title/Countdown.js.map +7 -0
  168. package/dist/cjs/biz-components/Title/index.d.ts +3 -3
  169. package/dist/cjs/biz-components/Title/index.js +1 -1
  170. package/dist/cjs/biz-components/Title/index.js.map +3 -3
  171. package/dist/cjs/biz-components/Title/types.d.ts +55 -0
  172. package/dist/cjs/biz-components/Title/types.js +1 -1
  173. package/dist/cjs/biz-components/Title/types.js.map +1 -1
  174. package/dist/cjs/biz-components/VideoFeature/VideoFeature.d.ts +3 -3
  175. package/dist/cjs/biz-components/WheelLottery/BaseModal.d.ts +55 -0
  176. package/dist/cjs/biz-components/WheelLottery/BaseModal.js +12 -0
  177. package/dist/cjs/biz-components/WheelLottery/BaseModal.js.map +7 -0
  178. package/dist/cjs/biz-components/WheelLottery/ChanceMethods.d.ts +30 -0
  179. package/dist/cjs/biz-components/WheelLottery/ChanceMethods.js +2 -0
  180. package/dist/cjs/biz-components/WheelLottery/ChanceMethods.js.map +7 -0
  181. package/dist/cjs/biz-components/WheelLottery/ErrorModal.d.ts +42 -0
  182. package/dist/cjs/biz-components/WheelLottery/ErrorModal.js +2 -0
  183. package/dist/cjs/biz-components/WheelLottery/ErrorModal.js.map +7 -0
  184. package/dist/cjs/biz-components/WheelLottery/MyRewardsModal.d.ts +91 -0
  185. package/dist/cjs/biz-components/WheelLottery/MyRewardsModal.js +2 -0
  186. package/dist/cjs/biz-components/WheelLottery/MyRewardsModal.js.map +7 -0
  187. package/dist/cjs/biz-components/WheelLottery/PrizePool.d.ts +26 -0
  188. package/dist/cjs/biz-components/WheelLottery/PrizePool.js +2 -0
  189. package/dist/cjs/biz-components/WheelLottery/PrizePool.js.map +7 -0
  190. package/dist/cjs/biz-components/WheelLottery/RulesModal.d.ts +43 -0
  191. package/dist/cjs/biz-components/WheelLottery/RulesModal.js +2 -0
  192. package/dist/cjs/biz-components/WheelLottery/RulesModal.js.map +7 -0
  193. package/dist/cjs/biz-components/WheelLottery/ShareModal.d.ts +74 -0
  194. package/dist/cjs/biz-components/WheelLottery/ShareModal.js +2 -0
  195. package/dist/cjs/biz-components/WheelLottery/ShareModal.js.map +7 -0
  196. package/dist/cjs/biz-components/WheelLottery/Wheel.d.ts +27 -0
  197. package/dist/cjs/biz-components/WheelLottery/Wheel.js +2 -0
  198. package/dist/cjs/biz-components/WheelLottery/Wheel.js.map +7 -0
  199. package/dist/cjs/biz-components/WheelLottery/WinnerModal.d.ts +25 -0
  200. package/dist/cjs/biz-components/WheelLottery/WinnerModal.js +2 -0
  201. package/dist/cjs/biz-components/WheelLottery/WinnerModal.js.map +7 -0
  202. package/dist/cjs/biz-components/WheelLottery/index.d.ts +52 -0
  203. package/dist/cjs/biz-components/WheelLottery/index.js +2 -0
  204. package/dist/cjs/biz-components/WheelLottery/index.js.map +7 -0
  205. package/dist/cjs/biz-components/WheelLottery/types.d.ts +1193 -0
  206. package/dist/cjs/biz-components/WheelLottery/types.js +2 -0
  207. package/dist/cjs/biz-components/WheelLottery/types.js.map +7 -0
  208. package/dist/cjs/biz-components/WhyChoose/WhyChoose.d.ts +3 -3
  209. package/dist/cjs/biz-components/index.d.ts +30 -2
  210. package/dist/cjs/biz-components/index.js +1 -1
  211. package/dist/cjs/biz-components/index.js.map +3 -3
  212. package/dist/cjs/components/badge.js +1 -1
  213. package/dist/cjs/components/badge.js.map +2 -2
  214. package/dist/cjs/components/index.d.ts +2 -0
  215. package/dist/cjs/components/index.js +1 -1
  216. package/dist/cjs/components/index.js.map +3 -3
  217. package/dist/cjs/components/paginator.d.ts +12 -0
  218. package/dist/cjs/components/paginator.js +7 -0
  219. package/dist/cjs/components/paginator.js.map +7 -0
  220. package/dist/cjs/components/progress.d.ts +46 -0
  221. package/dist/cjs/components/progress.js +2 -0
  222. package/dist/cjs/components/progress.js.map +7 -0
  223. package/dist/cjs/components/tabs.d.ts +2 -1
  224. package/dist/cjs/components/tabs.js +1 -1
  225. package/dist/cjs/components/tabs.js.map +2 -2
  226. package/dist/cjs/helpers/index.d.ts +1 -0
  227. package/dist/cjs/helpers/index.js +1 -1
  228. package/dist/cjs/helpers/index.js.map +3 -3
  229. package/dist/cjs/helpers/priceFormatting.d.ts +11 -0
  230. package/dist/cjs/helpers/priceFormatting.js +2 -0
  231. package/dist/cjs/helpers/priceFormatting.js.map +7 -0
  232. package/dist/cjs/shared/Styles.d.ts +5 -4
  233. package/dist/cjs/shared/Styles.js +1 -1
  234. package/dist/cjs/shared/Styles.js.map +3 -3
  235. package/dist/cjs/types/props.d.ts +0 -3
  236. package/dist/cjs/types/props.js +1 -1
  237. package/dist/cjs/types/props.js.map +1 -1
  238. package/dist/esm/biz-components/AccordionCards/index.d.ts +3 -3
  239. package/dist/esm/biz-components/ActiveShelf/index.d.ts +222 -0
  240. package/dist/esm/biz-components/ActiveShelf/index.js +2 -0
  241. package/dist/esm/biz-components/ActiveShelf/index.js.map +7 -0
  242. package/dist/esm/biz-components/ActiveShelf/types.d.ts +22 -0
  243. package/dist/esm/biz-components/ActiveShelf/types.js +1 -0
  244. package/dist/esm/biz-components/ActiveShelf/types.js.map +7 -0
  245. package/dist/esm/biz-components/AiuiProvider/index.d.ts +7 -0
  246. package/dist/esm/biz-components/AiuiProvider/index.js +1 -1
  247. package/dist/esm/biz-components/AiuiProvider/index.js.map +2 -2
  248. package/dist/esm/biz-components/AnchorNavigation/index.d.ts +42 -0
  249. package/dist/esm/biz-components/AnchorNavigation/index.js +2 -0
  250. package/dist/esm/biz-components/AnchorNavigation/index.js.map +7 -0
  251. package/dist/esm/biz-components/AnchorNavigation/useAnchorPosition.d.ts +2 -0
  252. package/dist/esm/biz-components/AnchorNavigation/useAnchorPosition.js +2 -0
  253. package/dist/esm/biz-components/AnchorNavigation/useAnchorPosition.js.map +7 -0
  254. package/dist/esm/biz-components/AplusDesc/index.d.ts +3 -3
  255. package/dist/esm/biz-components/BrandCardLink/BrandCardLink.d.ts +3 -3
  256. package/dist/esm/biz-components/BrandCardLink/BrandCardLink.js +1 -1
  257. package/dist/esm/biz-components/BrandCardLink/BrandCardLink.js.map +1 -1
  258. package/dist/esm/biz-components/BrandEquity/BrandEquity.d.ts +3 -3
  259. package/dist/esm/biz-components/BrandEquity/BrandEquity.js +1 -1
  260. package/dist/esm/biz-components/BrandEquity/BrandEquity.js.map +3 -3
  261. package/dist/esm/biz-components/BrandEquity/types.d.ts +1 -0
  262. package/dist/esm/biz-components/BuyOneGetOneShelf/ProductCard.d.ts +74 -0
  263. package/dist/esm/biz-components/BuyOneGetOneShelf/ProductCard.js +2 -0
  264. package/dist/esm/biz-components/BuyOneGetOneShelf/ProductCard.js.map +7 -0
  265. package/dist/esm/biz-components/BuyOneGetOneShelf/hooks/useBogoDataTransform.d.ts +36 -0
  266. package/dist/esm/biz-components/BuyOneGetOneShelf/hooks/useBogoDataTransform.js +2 -0
  267. package/dist/esm/biz-components/BuyOneGetOneShelf/hooks/useBogoDataTransform.js.map +7 -0
  268. package/dist/esm/biz-components/BuyOneGetOneShelf/index.d.ts +193 -0
  269. package/dist/esm/biz-components/BuyOneGetOneShelf/index.js +2 -0
  270. package/dist/esm/biz-components/BuyOneGetOneShelf/index.js.map +7 -0
  271. package/dist/esm/biz-components/Category/index.d.ts +3 -3
  272. package/dist/esm/biz-components/CreativeModule/index.d.ts +3 -3
  273. package/dist/esm/biz-components/DownLoad/index.d.ts +3 -3
  274. package/dist/esm/biz-components/Evaluate/index.d.ts +3 -3
  275. package/dist/esm/biz-components/EventSchedule/index.d.ts +63 -0
  276. package/dist/esm/biz-components/EventSchedule/index.js +2 -0
  277. package/dist/esm/biz-components/EventSchedule/index.js.map +7 -0
  278. package/dist/esm/biz-components/Faq/Faq.d.ts +3 -3
  279. package/dist/esm/biz-components/FeatureCards/FeatureCards.d.ts +3 -3
  280. package/dist/esm/biz-components/FeatureShowcase/FeatureShowcase.d.ts +3 -3
  281. package/dist/esm/biz-components/Features/index.d.ts +3 -3
  282. package/dist/esm/biz-components/FootCharger/index.d.ts +3 -3
  283. package/dist/esm/biz-components/FooterNavigation/index.d.ts +3 -3
  284. package/dist/esm/biz-components/GiftBox/index.d.ts +3 -3
  285. package/dist/esm/biz-components/Graphic/index.d.ts +3 -3
  286. package/dist/esm/biz-components/GraphicAttractionBlock/index.d.ts +3 -3
  287. package/dist/esm/biz-components/GraphicMore/index.d.ts +3 -3
  288. package/dist/esm/biz-components/GraphicOverlay/GraphicOverlay.d.ts +3 -3
  289. package/dist/esm/biz-components/HeaderNavigation/MobileSidebarMenu.js +1 -1
  290. package/dist/esm/biz-components/HeaderNavigation/MobileSidebarMenu.js.map +3 -3
  291. package/dist/esm/biz-components/HeaderNavigation/SidebarDropdown.js +1 -1
  292. package/dist/esm/biz-components/HeaderNavigation/SidebarDropdown.js.map +2 -2
  293. package/dist/esm/biz-components/HeaderNavigation/index.d.ts +3 -3
  294. package/dist/esm/biz-components/HeroBanner/Countdown.js +1 -1
  295. package/dist/esm/biz-components/HeroBanner/Countdown.js.map +2 -2
  296. package/dist/esm/biz-components/HeroBanner/HeroBanner.d.ts +6 -3
  297. package/dist/esm/biz-components/HeroBanner/HeroBanner.js +1 -1
  298. package/dist/esm/biz-components/HeroBanner/HeroBanner.js.map +3 -3
  299. package/dist/esm/biz-components/IPRedirect/RegionBanner.d.ts +37 -0
  300. package/dist/esm/biz-components/IPRedirect/RegionBanner.js +60 -0
  301. package/dist/esm/biz-components/IPRedirect/RegionBanner.js.map +7 -0
  302. package/dist/esm/biz-components/IPRedirect/RegionSelectorModal.d.ts +47 -0
  303. package/dist/esm/biz-components/IPRedirect/RegionSelectorModal.js +69 -0
  304. package/dist/esm/biz-components/IPRedirect/RegionSelectorModal.js.map +7 -0
  305. package/dist/esm/biz-components/IPRedirect/index.d.ts +9 -0
  306. package/dist/esm/biz-components/IPRedirect/index.js +2 -0
  307. package/dist/esm/biz-components/IPRedirect/index.js.map +7 -0
  308. package/dist/esm/biz-components/IPRedirect/type.d.ts +36 -0
  309. package/dist/esm/biz-components/IPRedirect/type.js +1 -0
  310. package/dist/esm/biz-components/IPRedirect/type.js.map +7 -0
  311. package/dist/esm/biz-components/IPRedirect/useAutoRedirect.d.ts +66 -0
  312. package/dist/esm/biz-components/IPRedirect/useAutoRedirect.js +2 -0
  313. package/dist/esm/biz-components/IPRedirect/useAutoRedirect.js.map +7 -0
  314. package/dist/esm/biz-components/IPRedirect/useDetectedRegionRedirect.d.ts +51 -0
  315. package/dist/esm/biz-components/IPRedirect/useDetectedRegionRedirect.js +2 -0
  316. package/dist/esm/biz-components/IPRedirect/useDetectedRegionRedirect.js.map +7 -0
  317. package/dist/esm/biz-components/IPRedirect/useIPRedirect.d.ts +42 -0
  318. package/dist/esm/biz-components/IPRedirect/useIPRedirect.js +2 -0
  319. package/dist/esm/biz-components/IPRedirect/useIPRedirect.js.map +7 -0
  320. package/dist/esm/biz-components/IPRedirect/useRedirectBanner.d.ts +108 -0
  321. package/dist/esm/biz-components/IPRedirect/useRedirectBanner.js +2 -0
  322. package/dist/esm/biz-components/IPRedirect/useRedirectBanner.js.map +7 -0
  323. package/dist/esm/biz-components/IPRedirect/useRegionRedirectManager.d.ts +152 -0
  324. package/dist/esm/biz-components/IPRedirect/useRegionRedirectManager.js +2 -0
  325. package/dist/esm/biz-components/IPRedirect/useRegionRedirectManager.js.map +7 -0
  326. package/dist/esm/biz-components/IPRedirect/useSavedRegionRedirect.d.ts +51 -0
  327. package/dist/esm/biz-components/IPRedirect/useSavedRegionRedirect.js +2 -0
  328. package/dist/esm/biz-components/IPRedirect/useSavedRegionRedirect.js.map +7 -0
  329. package/dist/esm/biz-components/IPRedirect/utils.d.ts +222 -0
  330. package/dist/esm/biz-components/IPRedirect/utils.js +2 -0
  331. package/dist/esm/biz-components/IPRedirect/utils.js.map +7 -0
  332. package/dist/esm/biz-components/ImageOverlayShelf/index.d.ts +130 -0
  333. package/dist/esm/biz-components/ImageOverlayShelf/index.js +2 -0
  334. package/dist/esm/biz-components/ImageOverlayShelf/index.js.map +7 -0
  335. package/dist/esm/biz-components/ImageTextFeature/ImageTextFeature.d.ts +3 -3
  336. package/dist/esm/biz-components/ImageTextFeature/ImageTextFeature.js +1 -1
  337. package/dist/esm/biz-components/ImageTextFeature/ImageTextFeature.js.map +3 -3
  338. package/dist/esm/biz-components/ImageWithText/ImageWithText.d.ts +3 -3
  339. package/dist/esm/biz-components/Ksp/index.d.ts +3 -3
  340. package/dist/esm/biz-components/Listing/components/PaidShipping/index.d.ts +4 -4
  341. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/BenefitsTab.d.ts +3 -3
  342. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductBundle/index.d.ts +3 -3
  343. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductExchangePurchase/index.d.ts +3 -3
  344. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductFreeGift/index.d.ts +3 -3
  345. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductHighlight/index.d.ts +3 -3
  346. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductOptions/index.d.ts +3 -3
  347. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/index.d.ts +3 -3
  348. package/dist/esm/biz-components/Listing/components/ProductCard/ProductSummary/index.d.ts +3 -3
  349. package/dist/esm/biz-components/Listing/components/PurchaseBar/index.d.ts +3 -3
  350. package/dist/esm/biz-components/Marquee/Marquee.d.ts +3 -3
  351. package/dist/esm/biz-components/Marquee/Marquee.js +1 -1
  352. package/dist/esm/biz-components/Marquee/Marquee.js.map +3 -3
  353. package/dist/esm/biz-components/MarqueeReview/index.d.ts +3 -3
  354. package/dist/esm/biz-components/Media/index.d.ts +32 -0
  355. package/dist/esm/biz-components/Media/index.js +2 -0
  356. package/dist/esm/biz-components/Media/index.js.map +7 -0
  357. package/dist/esm/biz-components/MediaPlayerBase/index.d.ts +3 -3
  358. package/dist/esm/biz-components/MediaPlayerMulti/index.d.ts +3 -3
  359. package/dist/esm/biz-components/MediaPlayerSticky/index.d.ts +4 -4
  360. package/dist/esm/biz-components/MediaPlayerSticky/types.d.ts +1 -0
  361. package/dist/esm/biz-components/MediaSceneSwitcher/MediaSceneSwitcher.d.ts +3 -3
  362. package/dist/esm/biz-components/MediaShelf/index.d.ts +216 -0
  363. package/dist/esm/biz-components/MediaShelf/index.js +2 -0
  364. package/dist/esm/biz-components/MediaShelf/index.js.map +7 -0
  365. package/dist/esm/biz-components/MediaShelf/types.d.ts +22 -0
  366. package/dist/esm/biz-components/MediaShelf/types.js +1 -0
  367. package/dist/esm/biz-components/MediaShelf/types.js.map +7 -0
  368. package/dist/esm/biz-components/MemberEquity/index.d.ts +3 -3
  369. package/dist/esm/biz-components/MiniCart/index.d.ts +88 -0
  370. package/dist/esm/biz-components/MiniCart/index.js +2 -0
  371. package/dist/esm/biz-components/MiniCart/index.js.map +7 -0
  372. package/dist/esm/biz-components/MultiLayoutGraphicBlock/MultiLayoutGraphicBlock.d.ts +3 -3
  373. package/dist/esm/biz-components/ProductCompare/index.d.ts +3 -3
  374. package/dist/esm/biz-components/ProductHero/ProductHero.d.ts +3 -3
  375. package/dist/esm/biz-components/ProductNav/ProductNav.d.ts +3 -3
  376. package/dist/esm/biz-components/PromotionalBar/index.d.ts +49 -0
  377. package/dist/esm/biz-components/PromotionalBar/index.js +2 -0
  378. package/dist/esm/biz-components/PromotionalBar/index.js.map +7 -0
  379. package/dist/esm/biz-components/SecondaryBanner/index.d.ts +69 -0
  380. package/dist/esm/biz-components/SecondaryBanner/index.js +2 -0
  381. package/dist/esm/biz-components/SecondaryBanner/index.js.map +7 -0
  382. package/dist/esm/biz-components/SelectStore/index.d.ts +3 -3
  383. package/dist/esm/biz-components/ShelfDisplay/index.d.ts +3 -3
  384. package/dist/esm/biz-components/ShelfDisplay/shelfDisplay.d.ts +0 -11
  385. package/dist/esm/biz-components/ShelfDisplay/shelfDisplay.js +1 -1
  386. package/dist/esm/biz-components/ShelfDisplay/shelfDisplay.js.map +3 -3
  387. package/dist/esm/biz-components/Slogan/index.d.ts +3 -3
  388. package/dist/esm/biz-components/Spacer/index.d.ts +3 -3
  389. package/dist/esm/biz-components/Specs/index.d.ts +3 -3
  390. package/dist/esm/biz-components/Specs/index.js +1 -1
  391. package/dist/esm/biz-components/Specs/index.js.map +2 -2
  392. package/dist/esm/biz-components/SpecsComparison/SpecsComparison.d.ts +3 -3
  393. package/dist/esm/biz-components/TabWithImage/TabWithImage.d.ts +3 -3
  394. package/dist/esm/biz-components/Tabs/Tabs.d.ts +3 -3
  395. package/dist/esm/biz-components/TabsGroup/index.d.ts +3 -3
  396. package/dist/esm/biz-components/TabsWithMedia/TabsWithMedia.d.ts +3 -3
  397. package/dist/esm/biz-components/ThreeDCarousel/ThreeDCarousel.d.ts +3 -3
  398. package/dist/esm/biz-components/Title/Countdown.d.ts +14 -0
  399. package/dist/esm/biz-components/Title/Countdown.js +2 -0
  400. package/dist/esm/biz-components/Title/Countdown.js.map +7 -0
  401. package/dist/esm/biz-components/Title/index.d.ts +3 -3
  402. package/dist/esm/biz-components/Title/index.js +1 -1
  403. package/dist/esm/biz-components/Title/index.js.map +3 -3
  404. package/dist/esm/biz-components/Title/types.d.ts +55 -0
  405. package/dist/esm/biz-components/VideoFeature/VideoFeature.d.ts +3 -3
  406. package/dist/esm/biz-components/WheelLottery/BaseModal.d.ts +55 -0
  407. package/dist/esm/biz-components/WheelLottery/BaseModal.js +12 -0
  408. package/dist/esm/biz-components/WheelLottery/BaseModal.js.map +7 -0
  409. package/dist/esm/biz-components/WheelLottery/ChanceMethods.d.ts +30 -0
  410. package/dist/esm/biz-components/WheelLottery/ChanceMethods.js +2 -0
  411. package/dist/esm/biz-components/WheelLottery/ChanceMethods.js.map +7 -0
  412. package/dist/esm/biz-components/WheelLottery/ErrorModal.d.ts +42 -0
  413. package/dist/esm/biz-components/WheelLottery/ErrorModal.js +2 -0
  414. package/dist/esm/biz-components/WheelLottery/ErrorModal.js.map +7 -0
  415. package/dist/esm/biz-components/WheelLottery/MyRewardsModal.d.ts +91 -0
  416. package/dist/esm/biz-components/WheelLottery/MyRewardsModal.js +2 -0
  417. package/dist/esm/biz-components/WheelLottery/MyRewardsModal.js.map +7 -0
  418. package/dist/esm/biz-components/WheelLottery/PrizePool.d.ts +26 -0
  419. package/dist/esm/biz-components/WheelLottery/PrizePool.js +2 -0
  420. package/dist/esm/biz-components/WheelLottery/PrizePool.js.map +7 -0
  421. package/dist/esm/biz-components/WheelLottery/RulesModal.d.ts +43 -0
  422. package/dist/esm/biz-components/WheelLottery/RulesModal.js +2 -0
  423. package/dist/esm/biz-components/WheelLottery/RulesModal.js.map +7 -0
  424. package/dist/esm/biz-components/WheelLottery/ShareModal.d.ts +74 -0
  425. package/dist/esm/biz-components/WheelLottery/ShareModal.js +2 -0
  426. package/dist/esm/biz-components/WheelLottery/ShareModal.js.map +7 -0
  427. package/dist/esm/biz-components/WheelLottery/Wheel.d.ts +27 -0
  428. package/dist/esm/biz-components/WheelLottery/Wheel.js +2 -0
  429. package/dist/esm/biz-components/WheelLottery/Wheel.js.map +7 -0
  430. package/dist/esm/biz-components/WheelLottery/WinnerModal.d.ts +25 -0
  431. package/dist/esm/biz-components/WheelLottery/WinnerModal.js +2 -0
  432. package/dist/esm/biz-components/WheelLottery/WinnerModal.js.map +7 -0
  433. package/dist/esm/biz-components/WheelLottery/index.d.ts +52 -0
  434. package/dist/esm/biz-components/WheelLottery/index.js +2 -0
  435. package/dist/esm/biz-components/WheelLottery/index.js.map +7 -0
  436. package/dist/esm/biz-components/WheelLottery/types.d.ts +1193 -0
  437. package/dist/esm/biz-components/WheelLottery/types.js +2 -0
  438. package/dist/esm/biz-components/WheelLottery/types.js.map +7 -0
  439. package/dist/esm/biz-components/WhyChoose/WhyChoose.d.ts +3 -3
  440. package/dist/esm/biz-components/index.d.ts +30 -2
  441. package/dist/esm/biz-components/index.js +1 -1
  442. package/dist/esm/biz-components/index.js.map +3 -3
  443. package/dist/esm/components/badge.js +1 -1
  444. package/dist/esm/components/badge.js.map +2 -2
  445. package/dist/esm/components/index.d.ts +2 -0
  446. package/dist/esm/components/index.js +1 -1
  447. package/dist/esm/components/index.js.map +2 -2
  448. package/dist/esm/components/paginator.d.ts +12 -0
  449. package/dist/esm/components/paginator.js +7 -0
  450. package/dist/esm/components/paginator.js.map +7 -0
  451. package/dist/esm/components/progress.d.ts +46 -0
  452. package/dist/esm/components/progress.js +2 -0
  453. package/dist/esm/components/progress.js.map +7 -0
  454. package/dist/esm/components/tabs.d.ts +2 -1
  455. package/dist/esm/components/tabs.js +1 -1
  456. package/dist/esm/components/tabs.js.map +2 -2
  457. package/dist/esm/helpers/index.d.ts +1 -0
  458. package/dist/esm/helpers/index.js +1 -1
  459. package/dist/esm/helpers/index.js.map +3 -3
  460. package/dist/esm/helpers/priceFormatting.d.ts +11 -0
  461. package/dist/esm/helpers/priceFormatting.js +2 -0
  462. package/dist/esm/helpers/priceFormatting.js.map +7 -0
  463. package/dist/esm/shared/Styles.d.ts +5 -4
  464. package/dist/esm/shared/Styles.js +1 -1
  465. package/dist/esm/shared/Styles.js.map +3 -3
  466. package/dist/esm/types/props.d.ts +0 -3
  467. package/dist/tokens/anker.css +1 -0
  468. package/dist/tokens/base.css +12 -3
  469. package/dist/tokens/eufy.css +1 -0
  470. package/dist/tokens/solix.css +1 -0
  471. package/dist/tokens/soundcore.css +4 -3
  472. package/package.json +8 -3
  473. package/style.css +4929 -121
  474. package/tailwind.config.js +20 -2
  475. package/dist/cjs/stories/HeroBanner.stories.d.ts +0 -28
  476. package/dist/cjs/stories/HeroBanner.stories.js +0 -11
  477. package/dist/cjs/stories/HeroBanner.stories.js.map +0 -7
  478. package/dist/cjs/stories/InlineVideo.stories.d.ts +0 -37
  479. package/dist/cjs/stories/InlineVideo.stories.js +0 -164
  480. package/dist/cjs/stories/InlineVideo.stories.js.map +0 -7
  481. package/dist/cjs/stories/MarqueeReview.stories.d.ts +0 -72
  482. package/dist/cjs/stories/MarqueeReview.stories.js +0 -19
  483. package/dist/cjs/stories/MarqueeReview.stories.js.map +0 -7
  484. package/dist/cjs/stories/MediaSceneSwitcher.stories.d.ts +0 -47
  485. package/dist/cjs/stories/MediaSceneSwitcher.stories.js +0 -2
  486. package/dist/cjs/stories/MediaSceneSwitcher.stories.js.map +0 -7
  487. package/dist/cjs/stories/MemberEquity.stories.d.ts +0 -9
  488. package/dist/cjs/stories/MemberEquity.stories.js +0 -31
  489. package/dist/cjs/stories/MemberEquity.stories.js.map +0 -7
  490. package/dist/cjs/stories/MultiLayoutGraphicBlock.stories.d.ts +0 -9
  491. package/dist/cjs/stories/MultiLayoutGraphicBlock.stories.js +0 -2
  492. package/dist/cjs/stories/MultiLayoutGraphicBlock.stories.js.map +0 -7
  493. package/dist/cjs/stories/ProductNav.stories.d.ts +0 -55
  494. package/dist/cjs/stories/ProductNav.stories.js +0 -2
  495. package/dist/cjs/stories/ProductNav.stories.js.map +0 -7
  496. package/dist/cjs/stories/ThreeDCarousel.stories.d.ts +0 -27
  497. package/dist/cjs/stories/ThreeDCarousel.stories.js +0 -118
  498. package/dist/cjs/stories/ThreeDCarousel.stories.js.map +0 -7
  499. package/dist/cjs/stories/accordionCards.stories.d.ts +0 -38
  500. package/dist/cjs/stories/accordionCards.stories.js +0 -2
  501. package/dist/cjs/stories/accordionCards.stories.js.map +0 -7
  502. package/dist/cjs/stories/alert.stories.d.ts +0 -27
  503. package/dist/cjs/stories/alert.stories.js +0 -2
  504. package/dist/cjs/stories/alert.stories.js.map +0 -7
  505. package/dist/cjs/stories/avatar.stories.d.ts +0 -39
  506. package/dist/cjs/stories/avatar.stories.js +0 -2
  507. package/dist/cjs/stories/avatar.stories.js.map +0 -7
  508. package/dist/cjs/stories/badge.stories.d.ts +0 -96
  509. package/dist/cjs/stories/badge.stories.js +0 -2
  510. package/dist/cjs/stories/badge.stories.js.map +0 -7
  511. package/dist/cjs/stories/bizTabs.stories.d.ts +0 -7
  512. package/dist/cjs/stories/bizTabs.stories.js +0 -2
  513. package/dist/cjs/stories/bizTabs.stories.js.map +0 -7
  514. package/dist/cjs/stories/board.stories.d.ts +0 -6
  515. package/dist/cjs/stories/board.stories.js +0 -2
  516. package/dist/cjs/stories/board.stories.js.map +0 -7
  517. package/dist/cjs/stories/brandEquity.stories.d.ts +0 -16
  518. package/dist/cjs/stories/brandEquity.stories.js +0 -2
  519. package/dist/cjs/stories/brandEquity.stories.js.map +0 -7
  520. package/dist/cjs/stories/brandStrip.stories.d.ts +0 -12
  521. package/dist/cjs/stories/brandStrip.stories.js +0 -2
  522. package/dist/cjs/stories/brandStrip.stories.js.map +0 -7
  523. package/dist/cjs/stories/button.stories.d.ts +0 -56
  524. package/dist/cjs/stories/button.stories.js +0 -2
  525. package/dist/cjs/stories/button.stories.js.map +0 -7
  526. package/dist/cjs/stories/card.stories.d.ts +0 -27
  527. package/dist/cjs/stories/card.stories.js +0 -2
  528. package/dist/cjs/stories/card.stories.js.map +0 -7
  529. package/dist/cjs/stories/carousel.stories.d.ts +0 -8
  530. package/dist/cjs/stories/carousel.stories.js +0 -2
  531. package/dist/cjs/stories/carousel.stories.js.map +0 -7
  532. package/dist/cjs/stories/category.stories.d.ts +0 -17
  533. package/dist/cjs/stories/category.stories.js +0 -2
  534. package/dist/cjs/stories/category.stories.js.map +0 -7
  535. package/dist/cjs/stories/checkbox.stories.d.ts +0 -46
  536. package/dist/cjs/stories/checkbox.stories.js +0 -2
  537. package/dist/cjs/stories/checkbox.stories.js.map +0 -7
  538. package/dist/cjs/stories/container.stories.d.ts +0 -28
  539. package/dist/cjs/stories/container.stories.js +0 -15
  540. package/dist/cjs/stories/container.stories.js.map +0 -7
  541. package/dist/cjs/stories/cpnBanner.stories.d.ts +0 -14
  542. package/dist/cjs/stories/cpnBanner.stories.js +0 -2
  543. package/dist/cjs/stories/cpnBanner.stories.js.map +0 -7
  544. package/dist/cjs/stories/cpnCountdown.stories.d.ts +0 -12
  545. package/dist/cjs/stories/cpnCountdown.stories.js +0 -2
  546. package/dist/cjs/stories/cpnCountdown.stories.js.map +0 -7
  547. package/dist/cjs/stories/cpnNavigation.stories.d.ts +0 -14
  548. package/dist/cjs/stories/cpnNavigation.stories.js +0 -2
  549. package/dist/cjs/stories/cpnNavigation.stories.js.map +0 -7
  550. package/dist/cjs/stories/cpnProductcard.stories.d.ts +0 -14
  551. package/dist/cjs/stories/cpnProductcard.stories.js +0 -2
  552. package/dist/cjs/stories/cpnProductcard.stories.js.map +0 -7
  553. package/dist/cjs/stories/cpnTitle.stories.d.ts +0 -14
  554. package/dist/cjs/stories/cpnTitle.stories.js +0 -2
  555. package/dist/cjs/stories/cpnTitle.stories.js.map +0 -7
  556. package/dist/cjs/stories/creativeModule.stories.d.ts +0 -19
  557. package/dist/cjs/stories/creativeModule.stories.js +0 -2
  558. package/dist/cjs/stories/creativeModule.stories.js.map +0 -7
  559. package/dist/cjs/stories/dialog.stories.d.ts +0 -20
  560. package/dist/cjs/stories/dialog.stories.js +0 -2
  561. package/dist/cjs/stories/dialog.stories.js.map +0 -7
  562. package/dist/cjs/stories/drawer.stories.d.ts +0 -20
  563. package/dist/cjs/stories/drawer.stories.js +0 -2
  564. package/dist/cjs/stories/drawer.stories.js.map +0 -7
  565. package/dist/cjs/stories/drop-down.stories.d.ts +0 -16
  566. package/dist/cjs/stories/drop-down.stories.js +0 -2
  567. package/dist/cjs/stories/drop-down.stories.js.map +0 -7
  568. package/dist/cjs/stories/evaluate.stories.d.ts +0 -16
  569. package/dist/cjs/stories/evaluate.stories.js +0 -2
  570. package/dist/cjs/stories/evaluate.stories.js.map +0 -7
  571. package/dist/cjs/stories/faq.stories.d.ts +0 -21
  572. package/dist/cjs/stories/faq.stories.js +0 -2
  573. package/dist/cjs/stories/faq.stories.js.map +0 -7
  574. package/dist/cjs/stories/featureCards.stories.d.ts +0 -30
  575. package/dist/cjs/stories/featureCards.stories.js +0 -61
  576. package/dist/cjs/stories/featureCards.stories.js.map +0 -7
  577. package/dist/cjs/stories/featureShowcase.stories.d.ts +0 -29
  578. package/dist/cjs/stories/featureShowcase.stories.js +0 -44
  579. package/dist/cjs/stories/featureShowcase.stories.js.map +0 -7
  580. package/dist/cjs/stories/graphic.stories.d.ts +0 -64
  581. package/dist/cjs/stories/graphic.stories.js +0 -2
  582. package/dist/cjs/stories/graphic.stories.js.map +0 -7
  583. package/dist/cjs/stories/graphicAttractionBlock.stories.d.ts +0 -6
  584. package/dist/cjs/stories/graphicAttractionBlock.stories.js +0 -2
  585. package/dist/cjs/stories/graphicAttractionBlock.stories.js.map +0 -7
  586. package/dist/cjs/stories/grid.stories.d.ts +0 -22
  587. package/dist/cjs/stories/grid.stories.js +0 -13
  588. package/dist/cjs/stories/grid.stories.js.map +0 -7
  589. package/dist/cjs/stories/heading.stories.d.ts +0 -84
  590. package/dist/cjs/stories/heading.stories.js +0 -15
  591. package/dist/cjs/stories/heading.stories.js.map +0 -7
  592. package/dist/cjs/stories/imageTextFeature.stories.d.ts +0 -28
  593. package/dist/cjs/stories/imageTextFeature.stories.js +0 -50
  594. package/dist/cjs/stories/imageTextFeature.stories.js.map +0 -7
  595. package/dist/cjs/stories/imageWithText.stories.d.ts +0 -51
  596. package/dist/cjs/stories/imageWithText.stories.js +0 -84
  597. package/dist/cjs/stories/imageWithText.stories.js.map +0 -7
  598. package/dist/cjs/stories/input-number.stories.d.ts +0 -39
  599. package/dist/cjs/stories/input-number.stories.js +0 -2
  600. package/dist/cjs/stories/input-number.stories.js.map +0 -7
  601. package/dist/cjs/stories/input.stories.d.ts +0 -35
  602. package/dist/cjs/stories/input.stories.js +0 -2
  603. package/dist/cjs/stories/input.stories.js.map +0 -7
  604. package/dist/cjs/stories/ksp.stories.d.ts +0 -63
  605. package/dist/cjs/stories/ksp.stories.js +0 -128
  606. package/dist/cjs/stories/ksp.stories.js.map +0 -7
  607. package/dist/cjs/stories/link.stories.d.ts +0 -69
  608. package/dist/cjs/stories/link.stories.js +0 -2
  609. package/dist/cjs/stories/link.stories.js.map +0 -7
  610. package/dist/cjs/stories/marquee.stories.d.ts +0 -30
  611. package/dist/cjs/stories/marquee.stories.js +0 -2
  612. package/dist/cjs/stories/marquee.stories.js.map +0 -7
  613. package/dist/cjs/stories/mediaplayerBase.stories.d.ts +0 -6
  614. package/dist/cjs/stories/mediaplayerBase.stories.js +0 -2
  615. package/dist/cjs/stories/mediaplayerBase.stories.js.map +0 -7
  616. package/dist/cjs/stories/mediaplayerMulti.stories.d.ts +0 -16
  617. package/dist/cjs/stories/mediaplayerMulti.stories.js +0 -2
  618. package/dist/cjs/stories/mediaplayerMulti.stories.js.map +0 -7
  619. package/dist/cjs/stories/picture.stories.d.ts +0 -23
  620. package/dist/cjs/stories/picture.stories.js +0 -9
  621. package/dist/cjs/stories/picture.stories.js.map +0 -7
  622. package/dist/cjs/stories/popover.stories.d.ts +0 -17
  623. package/dist/cjs/stories/popover.stories.js +0 -2
  624. package/dist/cjs/stories/popover.stories.js.map +0 -7
  625. package/dist/cjs/stories/productCompare.stories.d.ts +0 -54
  626. package/dist/cjs/stories/productCompare.stories.js +0 -54
  627. package/dist/cjs/stories/productCompare.stories.js.map +0 -7
  628. package/dist/cjs/stories/productHero.stories.d.ts +0 -29
  629. package/dist/cjs/stories/productHero.stories.js +0 -50
  630. package/dist/cjs/stories/productHero.stories.js.map +0 -7
  631. package/dist/cjs/stories/radio.stories.d.ts +0 -39
  632. package/dist/cjs/stories/radio.stories.js +0 -2
  633. package/dist/cjs/stories/radio.stories.js.map +0 -7
  634. package/dist/cjs/stories/shelfDisplay.stories.d.ts +0 -16
  635. package/dist/cjs/stories/shelfDisplay.stories.js +0 -2
  636. package/dist/cjs/stories/shelfDisplay.stories.js.map +0 -7
  637. package/dist/cjs/stories/skeleton.stories.d.ts +0 -20
  638. package/dist/cjs/stories/skeleton.stories.js +0 -2
  639. package/dist/cjs/stories/skeleton.stories.js.map +0 -7
  640. package/dist/cjs/stories/slogan.stories.d.ts +0 -20
  641. package/dist/cjs/stories/slogan.stories.js +0 -6
  642. package/dist/cjs/stories/slogan.stories.js.map +0 -7
  643. package/dist/cjs/stories/specs.stories.d.ts +0 -13
  644. package/dist/cjs/stories/specs.stories.js +0 -57
  645. package/dist/cjs/stories/specs.stories.js.map +0 -7
  646. package/dist/cjs/stories/specsComparison.stories.d.ts +0 -28
  647. package/dist/cjs/stories/specsComparison.stories.js +0 -105
  648. package/dist/cjs/stories/specsComparison.stories.js.map +0 -7
  649. package/dist/cjs/stories/tabWithImage.stories.d.ts +0 -28
  650. package/dist/cjs/stories/tabWithImage.stories.js +0 -53
  651. package/dist/cjs/stories/tabWithImage.stories.js.map +0 -7
  652. package/dist/cjs/stories/tabs.stories.d.ts +0 -373
  653. package/dist/cjs/stories/tabs.stories.js +0 -2
  654. package/dist/cjs/stories/tabs.stories.js.map +0 -7
  655. package/dist/cjs/stories/tabsWithMedia.stories.d.ts +0 -28
  656. package/dist/cjs/stories/tabsWithMedia.stories.js +0 -68
  657. package/dist/cjs/stories/tabsWithMedia.stories.js.map +0 -7
  658. package/dist/cjs/stories/text.stories.d.ts +0 -86
  659. package/dist/cjs/stories/text.stories.js +0 -21
  660. package/dist/cjs/stories/text.stories.js.map +0 -7
  661. package/dist/cjs/stories/videoFeature.stories.d.ts +0 -29
  662. package/dist/cjs/stories/videoFeature.stories.js +0 -56
  663. package/dist/cjs/stories/videoFeature.stories.js.map +0 -7
  664. package/dist/cjs/stories/whychoose.stories.d.ts +0 -21
  665. package/dist/cjs/stories/whychoose.stories.js +0 -2
  666. package/dist/cjs/stories/whychoose.stories.js.map +0 -7
  667. package/dist/esm/stories/HeroBanner.stories.d.ts +0 -28
  668. package/dist/esm/stories/HeroBanner.stories.js +0 -11
  669. package/dist/esm/stories/HeroBanner.stories.js.map +0 -7
  670. package/dist/esm/stories/InlineVideo.stories.d.ts +0 -37
  671. package/dist/esm/stories/InlineVideo.stories.js +0 -164
  672. package/dist/esm/stories/InlineVideo.stories.js.map +0 -7
  673. package/dist/esm/stories/MarqueeReview.stories.d.ts +0 -72
  674. package/dist/esm/stories/MarqueeReview.stories.js +0 -19
  675. package/dist/esm/stories/MarqueeReview.stories.js.map +0 -7
  676. package/dist/esm/stories/MediaSceneSwitcher.stories.d.ts +0 -47
  677. package/dist/esm/stories/MediaSceneSwitcher.stories.js +0 -2
  678. package/dist/esm/stories/MediaSceneSwitcher.stories.js.map +0 -7
  679. package/dist/esm/stories/MemberEquity.stories.d.ts +0 -9
  680. package/dist/esm/stories/MemberEquity.stories.js +0 -31
  681. package/dist/esm/stories/MemberEquity.stories.js.map +0 -7
  682. package/dist/esm/stories/MultiLayoutGraphicBlock.stories.d.ts +0 -9
  683. package/dist/esm/stories/MultiLayoutGraphicBlock.stories.js +0 -2
  684. package/dist/esm/stories/MultiLayoutGraphicBlock.stories.js.map +0 -7
  685. package/dist/esm/stories/ProductNav.stories.d.ts +0 -55
  686. package/dist/esm/stories/ProductNav.stories.js +0 -2
  687. package/dist/esm/stories/ProductNav.stories.js.map +0 -7
  688. package/dist/esm/stories/ThreeDCarousel.stories.d.ts +0 -27
  689. package/dist/esm/stories/ThreeDCarousel.stories.js +0 -118
  690. package/dist/esm/stories/ThreeDCarousel.stories.js.map +0 -7
  691. package/dist/esm/stories/accordionCards.stories.d.ts +0 -38
  692. package/dist/esm/stories/accordionCards.stories.js +0 -2
  693. package/dist/esm/stories/accordionCards.stories.js.map +0 -7
  694. package/dist/esm/stories/alert.stories.d.ts +0 -27
  695. package/dist/esm/stories/alert.stories.js +0 -2
  696. package/dist/esm/stories/alert.stories.js.map +0 -7
  697. package/dist/esm/stories/avatar.stories.d.ts +0 -39
  698. package/dist/esm/stories/avatar.stories.js +0 -2
  699. package/dist/esm/stories/avatar.stories.js.map +0 -7
  700. package/dist/esm/stories/badge.stories.d.ts +0 -96
  701. package/dist/esm/stories/badge.stories.js +0 -2
  702. package/dist/esm/stories/badge.stories.js.map +0 -7
  703. package/dist/esm/stories/bizTabs.stories.d.ts +0 -7
  704. package/dist/esm/stories/bizTabs.stories.js +0 -2
  705. package/dist/esm/stories/bizTabs.stories.js.map +0 -7
  706. package/dist/esm/stories/board.stories.d.ts +0 -6
  707. package/dist/esm/stories/board.stories.js +0 -2
  708. package/dist/esm/stories/board.stories.js.map +0 -7
  709. package/dist/esm/stories/brandEquity.stories.d.ts +0 -16
  710. package/dist/esm/stories/brandEquity.stories.js +0 -2
  711. package/dist/esm/stories/brandEquity.stories.js.map +0 -7
  712. package/dist/esm/stories/brandStrip.stories.d.ts +0 -12
  713. package/dist/esm/stories/brandStrip.stories.js +0 -2
  714. package/dist/esm/stories/brandStrip.stories.js.map +0 -7
  715. package/dist/esm/stories/button.stories.d.ts +0 -56
  716. package/dist/esm/stories/button.stories.js +0 -2
  717. package/dist/esm/stories/button.stories.js.map +0 -7
  718. package/dist/esm/stories/card.stories.d.ts +0 -27
  719. package/dist/esm/stories/card.stories.js +0 -2
  720. package/dist/esm/stories/card.stories.js.map +0 -7
  721. package/dist/esm/stories/carousel.stories.d.ts +0 -8
  722. package/dist/esm/stories/carousel.stories.js +0 -2
  723. package/dist/esm/stories/carousel.stories.js.map +0 -7
  724. package/dist/esm/stories/category.stories.d.ts +0 -17
  725. package/dist/esm/stories/category.stories.js +0 -2
  726. package/dist/esm/stories/category.stories.js.map +0 -7
  727. package/dist/esm/stories/checkbox.stories.d.ts +0 -46
  728. package/dist/esm/stories/checkbox.stories.js +0 -2
  729. package/dist/esm/stories/checkbox.stories.js.map +0 -7
  730. package/dist/esm/stories/container.stories.d.ts +0 -28
  731. package/dist/esm/stories/container.stories.js +0 -15
  732. package/dist/esm/stories/container.stories.js.map +0 -7
  733. package/dist/esm/stories/cpnBanner.stories.d.ts +0 -14
  734. package/dist/esm/stories/cpnBanner.stories.js +0 -2
  735. package/dist/esm/stories/cpnBanner.stories.js.map +0 -7
  736. package/dist/esm/stories/cpnCountdown.stories.d.ts +0 -12
  737. package/dist/esm/stories/cpnCountdown.stories.js +0 -2
  738. package/dist/esm/stories/cpnCountdown.stories.js.map +0 -7
  739. package/dist/esm/stories/cpnNavigation.stories.d.ts +0 -14
  740. package/dist/esm/stories/cpnNavigation.stories.js +0 -2
  741. package/dist/esm/stories/cpnNavigation.stories.js.map +0 -7
  742. package/dist/esm/stories/cpnProductcard.stories.d.ts +0 -14
  743. package/dist/esm/stories/cpnProductcard.stories.js +0 -2
  744. package/dist/esm/stories/cpnProductcard.stories.js.map +0 -7
  745. package/dist/esm/stories/cpnTitle.stories.d.ts +0 -14
  746. package/dist/esm/stories/cpnTitle.stories.js +0 -2
  747. package/dist/esm/stories/cpnTitle.stories.js.map +0 -7
  748. package/dist/esm/stories/creativeModule.stories.d.ts +0 -19
  749. package/dist/esm/stories/creativeModule.stories.js +0 -2
  750. package/dist/esm/stories/creativeModule.stories.js.map +0 -7
  751. package/dist/esm/stories/dialog.stories.d.ts +0 -20
  752. package/dist/esm/stories/dialog.stories.js +0 -2
  753. package/dist/esm/stories/dialog.stories.js.map +0 -7
  754. package/dist/esm/stories/drawer.stories.d.ts +0 -20
  755. package/dist/esm/stories/drawer.stories.js +0 -2
  756. package/dist/esm/stories/drawer.stories.js.map +0 -7
  757. package/dist/esm/stories/drop-down.stories.d.ts +0 -16
  758. package/dist/esm/stories/drop-down.stories.js +0 -2
  759. package/dist/esm/stories/drop-down.stories.js.map +0 -7
  760. package/dist/esm/stories/evaluate.stories.d.ts +0 -16
  761. package/dist/esm/stories/evaluate.stories.js +0 -2
  762. package/dist/esm/stories/evaluate.stories.js.map +0 -7
  763. package/dist/esm/stories/faq.stories.d.ts +0 -21
  764. package/dist/esm/stories/faq.stories.js +0 -2
  765. package/dist/esm/stories/faq.stories.js.map +0 -7
  766. package/dist/esm/stories/featureCards.stories.d.ts +0 -30
  767. package/dist/esm/stories/featureCards.stories.js +0 -61
  768. package/dist/esm/stories/featureCards.stories.js.map +0 -7
  769. package/dist/esm/stories/featureShowcase.stories.d.ts +0 -29
  770. package/dist/esm/stories/featureShowcase.stories.js +0 -44
  771. package/dist/esm/stories/featureShowcase.stories.js.map +0 -7
  772. package/dist/esm/stories/graphic.stories.d.ts +0 -64
  773. package/dist/esm/stories/graphic.stories.js +0 -2
  774. package/dist/esm/stories/graphic.stories.js.map +0 -7
  775. package/dist/esm/stories/graphicAttractionBlock.stories.d.ts +0 -6
  776. package/dist/esm/stories/graphicAttractionBlock.stories.js +0 -2
  777. package/dist/esm/stories/graphicAttractionBlock.stories.js.map +0 -7
  778. package/dist/esm/stories/grid.stories.d.ts +0 -22
  779. package/dist/esm/stories/grid.stories.js +0 -13
  780. package/dist/esm/stories/grid.stories.js.map +0 -7
  781. package/dist/esm/stories/heading.stories.d.ts +0 -84
  782. package/dist/esm/stories/heading.stories.js +0 -15
  783. package/dist/esm/stories/heading.stories.js.map +0 -7
  784. package/dist/esm/stories/imageTextFeature.stories.d.ts +0 -28
  785. package/dist/esm/stories/imageTextFeature.stories.js +0 -50
  786. package/dist/esm/stories/imageTextFeature.stories.js.map +0 -7
  787. package/dist/esm/stories/imageWithText.stories.d.ts +0 -51
  788. package/dist/esm/stories/imageWithText.stories.js +0 -84
  789. package/dist/esm/stories/imageWithText.stories.js.map +0 -7
  790. package/dist/esm/stories/input-number.stories.d.ts +0 -39
  791. package/dist/esm/stories/input-number.stories.js +0 -2
  792. package/dist/esm/stories/input-number.stories.js.map +0 -7
  793. package/dist/esm/stories/input.stories.d.ts +0 -35
  794. package/dist/esm/stories/input.stories.js +0 -2
  795. package/dist/esm/stories/input.stories.js.map +0 -7
  796. package/dist/esm/stories/ksp.stories.d.ts +0 -63
  797. package/dist/esm/stories/ksp.stories.js +0 -128
  798. package/dist/esm/stories/ksp.stories.js.map +0 -7
  799. package/dist/esm/stories/link.stories.d.ts +0 -69
  800. package/dist/esm/stories/link.stories.js +0 -2
  801. package/dist/esm/stories/link.stories.js.map +0 -7
  802. package/dist/esm/stories/marquee.stories.d.ts +0 -30
  803. package/dist/esm/stories/marquee.stories.js +0 -2
  804. package/dist/esm/stories/marquee.stories.js.map +0 -7
  805. package/dist/esm/stories/mediaplayerBase.stories.d.ts +0 -6
  806. package/dist/esm/stories/mediaplayerBase.stories.js +0 -2
  807. package/dist/esm/stories/mediaplayerBase.stories.js.map +0 -7
  808. package/dist/esm/stories/mediaplayerMulti.stories.d.ts +0 -16
  809. package/dist/esm/stories/mediaplayerMulti.stories.js +0 -2
  810. package/dist/esm/stories/mediaplayerMulti.stories.js.map +0 -7
  811. package/dist/esm/stories/picture.stories.d.ts +0 -23
  812. package/dist/esm/stories/picture.stories.js +0 -9
  813. package/dist/esm/stories/picture.stories.js.map +0 -7
  814. package/dist/esm/stories/popover.stories.d.ts +0 -17
  815. package/dist/esm/stories/popover.stories.js +0 -2
  816. package/dist/esm/stories/popover.stories.js.map +0 -7
  817. package/dist/esm/stories/productCompare.stories.d.ts +0 -54
  818. package/dist/esm/stories/productCompare.stories.js +0 -54
  819. package/dist/esm/stories/productCompare.stories.js.map +0 -7
  820. package/dist/esm/stories/productHero.stories.d.ts +0 -29
  821. package/dist/esm/stories/productHero.stories.js +0 -50
  822. package/dist/esm/stories/productHero.stories.js.map +0 -7
  823. package/dist/esm/stories/radio.stories.d.ts +0 -39
  824. package/dist/esm/stories/radio.stories.js +0 -2
  825. package/dist/esm/stories/radio.stories.js.map +0 -7
  826. package/dist/esm/stories/shelfDisplay.stories.d.ts +0 -16
  827. package/dist/esm/stories/shelfDisplay.stories.js +0 -2
  828. package/dist/esm/stories/shelfDisplay.stories.js.map +0 -7
  829. package/dist/esm/stories/skeleton.stories.d.ts +0 -20
  830. package/dist/esm/stories/skeleton.stories.js +0 -2
  831. package/dist/esm/stories/skeleton.stories.js.map +0 -7
  832. package/dist/esm/stories/slogan.stories.d.ts +0 -20
  833. package/dist/esm/stories/slogan.stories.js +0 -6
  834. package/dist/esm/stories/slogan.stories.js.map +0 -7
  835. package/dist/esm/stories/specs.stories.d.ts +0 -13
  836. package/dist/esm/stories/specs.stories.js +0 -57
  837. package/dist/esm/stories/specs.stories.js.map +0 -7
  838. package/dist/esm/stories/specsComparison.stories.d.ts +0 -28
  839. package/dist/esm/stories/specsComparison.stories.js +0 -105
  840. package/dist/esm/stories/specsComparison.stories.js.map +0 -7
  841. package/dist/esm/stories/tabWithImage.stories.d.ts +0 -28
  842. package/dist/esm/stories/tabWithImage.stories.js +0 -53
  843. package/dist/esm/stories/tabWithImage.stories.js.map +0 -7
  844. package/dist/esm/stories/tabs.stories.d.ts +0 -373
  845. package/dist/esm/stories/tabs.stories.js +0 -2
  846. package/dist/esm/stories/tabs.stories.js.map +0 -7
  847. package/dist/esm/stories/tabsWithMedia.stories.d.ts +0 -28
  848. package/dist/esm/stories/tabsWithMedia.stories.js +0 -68
  849. package/dist/esm/stories/tabsWithMedia.stories.js.map +0 -7
  850. package/dist/esm/stories/text.stories.d.ts +0 -86
  851. package/dist/esm/stories/text.stories.js +0 -21
  852. package/dist/esm/stories/text.stories.js.map +0 -7
  853. package/dist/esm/stories/videoFeature.stories.d.ts +0 -29
  854. package/dist/esm/stories/videoFeature.stories.js +0 -56
  855. package/dist/esm/stories/videoFeature.stories.js.map +0 -7
  856. package/dist/esm/stories/whychoose.stories.d.ts +0 -21
  857. package/dist/esm/stories/whychoose.stories.js +0 -2
  858. package/dist/esm/stories/whychoose.stories.js.map +0 -7
@@ -0,0 +1,222 @@
1
+ /**
2
+ * 从路径中移除 locale 前缀
3
+ * @param path - 当前路径(如 '/uk/products/a1234' 或 '/eu-de')
4
+ * @param locales - locale 列表(如 ['us', 'uk', 'eu-de', 'ca'])
5
+ * @returns 去除 locale 后的路径(如 '/products/a1234' 或 '/')
6
+ *
7
+ * @example
8
+ * removeLocalePrefix('/uk/products/a1234', ['uk', 'us'])
9
+ * // 返回: '/products/a1234'
10
+ *
11
+ * removeLocalePrefix('/eu-de', ['eu-de', 'us'])
12
+ * // 返回: '/'
13
+ *
14
+ * removeLocalePrefix('/products/a1234', ['uk', 'us'])
15
+ * // 返回: '/products/a1234' (没有匹配的 locale,原样返回)
16
+ */
17
+ export declare function removeLocalePrefix(path: string, locales: string[]): string;
18
+ /**
19
+ * 检查 URL 搜索参数中是否包含标准 UTM 参数
20
+ * (如 utm_source, utm_medium, utm_campaign 等)
21
+ *
22
+ * @param searchParams - URL 搜索参数字符串(如 '?utm_source=google&foo=bar')
23
+ * @returns 是否包含 UTM 参数
24
+ *
25
+ * @example
26
+ * hasUtmParams('?utm_source=google')
27
+ * // 返回: true
28
+ *
29
+ * hasUtmParams('?utm_medium=cpc&utm_campaign=summer')
30
+ * // 返回: true
31
+ *
32
+ * hasUtmParams('?foo=bar')
33
+ * // 返回: false
34
+ *
35
+ * hasUtmParams('')
36
+ * // 返回: false
37
+ */
38
+ export declare function hasUtmParams(searchParams: string): boolean;
39
+ /**
40
+ * 向 URL 添加 ref 参数
41
+ *
42
+ * @param url - 目标 URL(可以是完整 URL 或相对路径)
43
+ * @param refValue - ref 参数的值
44
+ * @returns 添加了 ref 参数的 URL
45
+ *
46
+ * @example
47
+ * appendRefParam('https://example.com/products', 'geo_redirect_auto_de')
48
+ * // 返回: 'https://example.com/products?ref=geo_redirect_auto_de'
49
+ *
50
+ * appendRefParam('https://example.com/products?utm_source=google', 'geo_redirect_auto_de')
51
+ * // 返回: 'https://example.com/products?utm_source=google&ref=geo_redirect_auto_de'
52
+ *
53
+ * appendRefParam('/products', 'affiliate_123')
54
+ * // 返回: '/products?ref=affiliate_123'
55
+ */
56
+ export declare function appendRefParam(url: string, refValue: string): string;
57
+ /**
58
+ * 构建地理重定向的 ref 参数值
59
+ *
60
+ * @param countryCode - 国家代码(如 'DE', 'US', 'HK')
61
+ * @returns 格式化的 ref 参数值(如 'geo_redirect_auto_de')
62
+ *
63
+ * @example
64
+ * buildGeoRedirectRef('DE')
65
+ * // 返回: 'geo_redirect_auto_de'
66
+ *
67
+ * buildGeoRedirectRef('HK')
68
+ * // 返回: 'geo_redirect_auto_hk'
69
+ */
70
+ export declare function buildGeoRedirectRef(countryCode: string): string;
71
+ /**
72
+ * 构建地区重定向的 ref 参数值(手动切换)
73
+ *
74
+ * @param countryCode - 国家代码(如 'DE', 'US', 'HK')
75
+ * @returns 格式化的 ref 参数值(如 'geo_redirect_manual_de')
76
+ *
77
+ * @example
78
+ * buildGeoRedirectRefManual('DE')
79
+ * // 返回: 'geo_redirect_manual_de'
80
+ *
81
+ * buildGeoRedirectRefManual('HK')
82
+ * // 返回: 'geo_redirect_manual_hk'
83
+ */
84
+ export declare function buildGeoRedirectRefManual(countryCode: string): string;
85
+ /**
86
+ * 解析用户地区偏好 cookie 值
87
+ *
88
+ * @param cookieValue - Cookie 值(如 'v1_CA_EN' 或 'v1_CA')
89
+ * @returns 解析后的地区代码和语言代码,如果格式无效返回 null
90
+ *
91
+ * @example
92
+ * parseRegionCookie('v1_CA_EN')
93
+ * // 返回: { regionCode: 'CA', languageCode: 'EN' }
94
+ *
95
+ * parseRegionCookie('v1_CA')
96
+ * // 返回: { regionCode: 'CA', languageCode: undefined }
97
+ *
98
+ * parseRegionCookie('invalid')
99
+ * // 返回: null
100
+ */
101
+ export declare function parseRegionCookie(cookieValue: string): {
102
+ regionCode: string;
103
+ languageCode?: string;
104
+ } | null;
105
+ /**
106
+ * 从 regions 数组自动生成地区代码到路径前缀的映射
107
+ *
108
+ * @param regions - 地区配置数组
109
+ * @param customMap - 可选的自定义映射(优先级高于自动生成)
110
+ * @returns 地区代码到路径前缀的映射对象
111
+ *
112
+ * @example
113
+ * const regions = [
114
+ * { code: 'US', url: 'https://www.anker.com' },
115
+ * { code: 'CA', url: 'https://www.anker.com/ca' },
116
+ * { code: 'DE', url: 'https://www.anker.com/eu-de' }
117
+ * ]
118
+ * generateRegionToPathMap(regions)
119
+ * // 返回: { US: '', CA: 'ca', DE: 'eu-de' }
120
+ *
121
+ * generateRegionToPathMap(regions, { UK: 'uk' })
122
+ * // 返回: { US: '', CA: 'ca', DE: 'eu-de', UK: 'uk' }
123
+ */
124
+ export declare function generateRegionToPathMap(regions: Array<{
125
+ code: string;
126
+ url: string;
127
+ }>, customMap?: Record<string, string>): Record<string, string>;
128
+ /**
129
+ * 检查路径/URL 是否在白名单中
130
+ * 支持:通配符匹配、忽略域名差异、忽略尾部斜杠
131
+ *
132
+ * @param path - 当前路径(如 '/ca' 或 '/products/123')
133
+ * @param whitelist - 白名单数组(支持路径或完整 URL,支持通配符 *)
134
+ * @returns 是否在白名单中
135
+ *
136
+ * @example
137
+ * isPathInWhitelist('/ca', ['/ca', '/uk'])
138
+ * // 返回: true
139
+ *
140
+ * isPathInWhitelist('/ca/', ['/ca'])
141
+ * // 返回: true(忽略尾部斜杠)
142
+ *
143
+ * isPathInWhitelist('/products/123', ['/products/*'])
144
+ * // 返回: true(通配符匹配)
145
+ *
146
+ * isPathInWhitelist('/checkout', ['https://www.anker.com/checkout'])
147
+ * // 返回: true(忽略域名差异)
148
+ *
149
+ * isPathInWhitelist('/about', ['/ca', '/uk'])
150
+ * // 返回: false
151
+ */
152
+ export declare function isPathInWhitelist(path: string, whitelist: string[]): boolean;
153
+ /**
154
+ * 验证地区配置的完整性和正确性
155
+ *
156
+ * @param options - 验证选项
157
+ * @param options.regions - 地区配置数组
158
+ * @param options.countryToRegionMap - 国家到地区的映射
159
+ * @param options.userCountry - 用户的国家代码(可选)
160
+ * @returns 验证结果
161
+ *
162
+ * @example
163
+ * const validation = validateRegionConfig({
164
+ * regions: [{ code: 'US', ... }, { code: 'CA', ... }],
165
+ * countryToRegionMap: { US: 'US', CA: 'CA', HK: 'DE' },
166
+ * userCountry: 'HK'
167
+ * })
168
+ *
169
+ * if (validation.valid) {
170
+ * console.log('映射的地区:', validation.mappedRegion) // 'DE'
171
+ * } else {
172
+ * console.warn('验证失败:', validation.error)
173
+ * }
174
+ */
175
+ export declare function validateRegionConfig(options: {
176
+ regions?: Array<{
177
+ code: string;
178
+ [key: string]: any;
179
+ }>;
180
+ countryToRegionMap?: Record<string, string>;
181
+ userCountry?: string;
182
+ }): {
183
+ valid: boolean;
184
+ error?: string;
185
+ mappedRegion?: string;
186
+ };
187
+ /**
188
+ * 将 locale 字符串转换为地区代码
189
+ *
190
+ * @param locale - 当前 locale(如 'us', 'ca', 'eu-de')
191
+ * @param regionToPathMap - 地区代码到路径前缀的映射
192
+ * @returns 地区代码(如 'US', 'CA', 'DE')
193
+ *
194
+ * @example
195
+ * const regionToPathMap = { US: '', CA: 'ca', DE: 'eu-de' }
196
+ *
197
+ * localeToRegionCode('ca', regionToPathMap)
198
+ * // 返回: 'CA'
199
+ *
200
+ * localeToRegionCode('eu-de', regionToPathMap)
201
+ * // 返回: 'DE'
202
+ *
203
+ * localeToRegionCode('us', regionToPathMap)
204
+ * // 返回: 'US'
205
+ *
206
+ * localeToRegionCode('unknown', regionToPathMap)
207
+ * // 返回: 'UNKNOWN'(找不到时使用大写形式)
208
+ */
209
+ export declare function localeToRegionCode(locale: string | null | undefined, regionToPathMap: Record<string, string>): string;
210
+ /**
211
+ * 从 regionToPathMap 生成所有 locale 列表(用于移除路径前缀)
212
+ *
213
+ * @param regionToPathMap - 地区代码到路径前缀的映射
214
+ * @returns locale 列表(过滤掉空字符串)
215
+ *
216
+ * @example
217
+ * const regionToPathMap = { US: '', CA: 'ca', DE: 'eu-de', UK: 'uk' }
218
+ *
219
+ * generateAllLocales(regionToPathMap)
220
+ * // 返回: ['ca', 'eu-de', 'uk']
221
+ */
222
+ export declare function generateAllLocales(regionToPathMap: Record<string, string>): string[];
@@ -0,0 +1,2 @@
1
+ function u(e,r){for(const n of r)if(e===`/${n}`||e.startsWith(`/${n}/`))return e.substring(`/${n}`.length)||"/";return e}function l(e){return/[?&]utm_/i.test(e)}function d(e,r){const n=e.includes("?")?"&":"?";return`${e}${n}ref=${encodeURIComponent(r)}`}function f(e){return`geo_redirect_auto_${e.toLowerCase()}`}function p(e){return`geo_redirect_manual_${e.toLowerCase()}`}function R(e){if(!e||!e.startsWith("v1_"))return null;const r=e.substring(3).split("_");return r.length===0||!r[0]?null:{regionCode:r[0],languageCode:r[1]}}function C(e,r){const n={};return e&&e.length>0&&e.forEach(o=>{try{const t=new URL(o.url).pathname.replace(/^\//,"").replace(/\/$/,"");n[o.code]=t}catch{n[o.code]=o.code==="US"?"":o.code.toLowerCase()}}),r&&Object.keys(r).length>0&&Object.assign(n,r),n}function x(e,r){if(!r||r.length===0)return!1;const n=t=>t?.endsWith("/")?t.slice(0,-1):t,o=t=>{if(!t)return"";if(t.startsWith("http://")||t.startsWith("https://"))try{return new URL(t).pathname}catch{return t}return t},i=n(e);return r.some(t=>{const g=o(t),s=n(g);if(s.includes("*")){const a=s.replace(/\*/g,".*");return new RegExp(`^${a}$`).test(i)}return i===s})}function h(e){const{regions:r,countryToRegionMap:n,userCountry:o}=e;if(!r||r.length===0)return{valid:!1,error:"\u26A0\uFE0F regions \u672A\u914D\u7F6E\uFF0C\u65E0\u6CD5\u6267\u884C\u5730\u533A\u8DF3\u8F6C"};if(!n||Object.keys(n).length===0)return{valid:!1,error:"\u26A0\uFE0F countryToRegionMap \u672A\u914D\u7F6E\uFF0C\u65E0\u6CD5\u6267\u884C\u5730\u533A\u8DF3\u8F6C"};if(o){const i=o.toUpperCase(),t=n[i];return t?r.some(s=>s.code===t)?{valid:!0,mappedRegion:t}:{valid:!1,error:`\u26A0\uFE0F \u5730\u533A\u4EE3\u7801 ${t} \u5728 regions \u4E2D\u4E0D\u5B58\u5728\uFF0C\u8BF7\u68C0\u67E5\u914D\u7F6E`}:{valid:!1,error:`\u2139\uFE0F \u56FD\u5BB6 ${i} \u672A\u914D\u7F6E\u5730\u533A\u6620\u5C04\uFF0C\u4E0D\u6267\u884C\u8DF3\u8F6C`}}return{valid:!0}}function m(e,r){return e?Object.keys(r).find(o=>r[o]===e.toLowerCase()||o===e.toUpperCase())||e.toUpperCase():"US"}function y(e){return Object.values(e).filter(r=>r!=="")}export{d as appendRefParam,f as buildGeoRedirectRef,p as buildGeoRedirectRefManual,y as generateAllLocales,C as generateRegionToPathMap,l as hasUtmParams,x as isPathInWhitelist,m as localeToRegionCode,R as parseRegionCookie,u as removeLocalePrefix,h as validateRegionConfig};
2
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/biz-components/IPRedirect/utils.ts"],
4
+ "sourcesContent": ["/**\n * \u4ECE\u8DEF\u5F84\u4E2D\u79FB\u9664 locale \u524D\u7F00\n * @param path - \u5F53\u524D\u8DEF\u5F84\uFF08\u5982 '/uk/products/a1234' \u6216 '/eu-de'\uFF09\n * @param locales - locale \u5217\u8868\uFF08\u5982 ['us', 'uk', 'eu-de', 'ca']\uFF09\n * @returns \u53BB\u9664 locale \u540E\u7684\u8DEF\u5F84\uFF08\u5982 '/products/a1234' \u6216 '/'\uFF09\n *\n * @example\n * removeLocalePrefix('/uk/products/a1234', ['uk', 'us'])\n * // \u8FD4\u56DE: '/products/a1234'\n *\n * removeLocalePrefix('/eu-de', ['eu-de', 'us'])\n * // \u8FD4\u56DE: '/'\n *\n * removeLocalePrefix('/products/a1234', ['uk', 'us'])\n * // \u8FD4\u56DE: '/products/a1234' (\u6CA1\u6709\u5339\u914D\u7684 locale\uFF0C\u539F\u6837\u8FD4\u56DE)\n */\nexport function removeLocalePrefix(path: string, locales: string[]): string {\n for (const locale of locales) {\n if (path === `/${locale}` || path.startsWith(`/${locale}/`)) {\n return path.substring(`/${locale}`.length) || '/'\n }\n }\n return path\n}\n\n/**\n * \u68C0\u67E5 URL \u641C\u7D22\u53C2\u6570\u4E2D\u662F\u5426\u5305\u542B\u6807\u51C6 UTM \u53C2\u6570\n * \uFF08\u5982 utm_source, utm_medium, utm_campaign \u7B49\uFF09\n *\n * @param searchParams - URL \u641C\u7D22\u53C2\u6570\u5B57\u7B26\u4E32\uFF08\u5982 '?utm_source=google&foo=bar'\uFF09\n * @returns \u662F\u5426\u5305\u542B UTM \u53C2\u6570\n *\n * @example\n * hasUtmParams('?utm_source=google')\n * // \u8FD4\u56DE: true\n *\n * hasUtmParams('?utm_medium=cpc&utm_campaign=summer')\n * // \u8FD4\u56DE: true\n *\n * hasUtmParams('?foo=bar')\n * // \u8FD4\u56DE: false\n *\n * hasUtmParams('')\n * // \u8FD4\u56DE: false\n */\nexport function hasUtmParams(searchParams: string): boolean {\n return /[?&]utm_/i.test(searchParams)\n}\n\n/**\n * \u5411 URL \u6DFB\u52A0 ref \u53C2\u6570\n *\n * @param url - \u76EE\u6807 URL\uFF08\u53EF\u4EE5\u662F\u5B8C\u6574 URL \u6216\u76F8\u5BF9\u8DEF\u5F84\uFF09\n * @param refValue - ref \u53C2\u6570\u7684\u503C\n * @returns \u6DFB\u52A0\u4E86 ref \u53C2\u6570\u7684 URL\n *\n * @example\n * appendRefParam('https://example.com/products', 'geo_redirect_auto_de')\n * // \u8FD4\u56DE: 'https://example.com/products?ref=geo_redirect_auto_de'\n *\n * appendRefParam('https://example.com/products?utm_source=google', 'geo_redirect_auto_de')\n * // \u8FD4\u56DE: 'https://example.com/products?utm_source=google&ref=geo_redirect_auto_de'\n *\n * appendRefParam('/products', 'affiliate_123')\n * // \u8FD4\u56DE: '/products?ref=affiliate_123'\n */\nexport function appendRefParam(url: string, refValue: string): string {\n const separator = url.includes('?') ? '&' : '?'\n return `${url}${separator}ref=${encodeURIComponent(refValue)}`\n}\n\n/**\n * \u6784\u5EFA\u5730\u7406\u91CD\u5B9A\u5411\u7684 ref \u53C2\u6570\u503C\n *\n * @param countryCode - \u56FD\u5BB6\u4EE3\u7801\uFF08\u5982 'DE', 'US', 'HK'\uFF09\n * @returns \u683C\u5F0F\u5316\u7684 ref \u53C2\u6570\u503C\uFF08\u5982 'geo_redirect_auto_de'\uFF09\n *\n * @example\n * buildGeoRedirectRef('DE')\n * // \u8FD4\u56DE: 'geo_redirect_auto_de'\n *\n * buildGeoRedirectRef('HK')\n * // \u8FD4\u56DE: 'geo_redirect_auto_hk'\n */\nexport function buildGeoRedirectRef(countryCode: string): string {\n return `geo_redirect_auto_${countryCode.toLowerCase()}`\n}\n\n/**\n * \u6784\u5EFA\u5730\u533A\u91CD\u5B9A\u5411\u7684 ref \u53C2\u6570\u503C\uFF08\u624B\u52A8\u5207\u6362\uFF09\n *\n * @param countryCode - \u56FD\u5BB6\u4EE3\u7801\uFF08\u5982 'DE', 'US', 'HK'\uFF09\n * @returns \u683C\u5F0F\u5316\u7684 ref \u53C2\u6570\u503C\uFF08\u5982 'geo_redirect_manual_de'\uFF09\n *\n * @example\n * buildGeoRedirectRefManual('DE')\n * // \u8FD4\u56DE: 'geo_redirect_manual_de'\n *\n * buildGeoRedirectRefManual('HK')\n * // \u8FD4\u56DE: 'geo_redirect_manual_hk'\n */\nexport function buildGeoRedirectRefManual(countryCode: string): string {\n return `geo_redirect_manual_${countryCode.toLowerCase()}`\n}\n\n/**\n * \u89E3\u6790\u7528\u6237\u5730\u533A\u504F\u597D cookie \u503C\n *\n * @param cookieValue - Cookie \u503C\uFF08\u5982 'v1_CA_EN' \u6216 'v1_CA'\uFF09\n * @returns \u89E3\u6790\u540E\u7684\u5730\u533A\u4EE3\u7801\u548C\u8BED\u8A00\u4EE3\u7801\uFF0C\u5982\u679C\u683C\u5F0F\u65E0\u6548\u8FD4\u56DE null\n *\n * @example\n * parseRegionCookie('v1_CA_EN')\n * // \u8FD4\u56DE: { regionCode: 'CA', languageCode: 'EN' }\n *\n * parseRegionCookie('v1_CA')\n * // \u8FD4\u56DE: { regionCode: 'CA', languageCode: undefined }\n *\n * parseRegionCookie('invalid')\n * // \u8FD4\u56DE: null\n */\nexport function parseRegionCookie(cookieValue: string): {\n regionCode: string\n languageCode?: string\n} | null {\n if (!cookieValue || !cookieValue.startsWith('v1_')) {\n return null\n }\n\n // \u53BB\u9664 'v1_' \u524D\u7F00\n const parts = cookieValue.substring(3).split('_')\n\n if (parts.length === 0 || !parts[0]) {\n return null\n }\n\n return {\n regionCode: parts[0],\n languageCode: parts[1],\n }\n}\n\n/**\n * \u4ECE regions \u6570\u7EC4\u81EA\u52A8\u751F\u6210\u5730\u533A\u4EE3\u7801\u5230\u8DEF\u5F84\u524D\u7F00\u7684\u6620\u5C04\n *\n * @param regions - \u5730\u533A\u914D\u7F6E\u6570\u7EC4\n * @param customMap - \u53EF\u9009\u7684\u81EA\u5B9A\u4E49\u6620\u5C04\uFF08\u4F18\u5148\u7EA7\u9AD8\u4E8E\u81EA\u52A8\u751F\u6210\uFF09\n * @returns \u5730\u533A\u4EE3\u7801\u5230\u8DEF\u5F84\u524D\u7F00\u7684\u6620\u5C04\u5BF9\u8C61\n *\n * @example\n * const regions = [\n * { code: 'US', url: 'https://www.anker.com' },\n * { code: 'CA', url: 'https://www.anker.com/ca' },\n * { code: 'DE', url: 'https://www.anker.com/eu-de' }\n * ]\n * generateRegionToPathMap(regions)\n * // \u8FD4\u56DE: { US: '', CA: 'ca', DE: 'eu-de' }\n *\n * generateRegionToPathMap(regions, { UK: 'uk' })\n * // \u8FD4\u56DE: { US: '', CA: 'ca', DE: 'eu-de', UK: 'uk' }\n */\nexport function generateRegionToPathMap(\n regions: Array<{ code: string; url: string }>,\n customMap?: Record<string, string>\n): Record<string, string> {\n const map: Record<string, string> = {}\n\n // \u4ECE regions \u6570\u7EC4\u81EA\u52A8\u751F\u6210\u6620\u5C04\n if (regions && regions.length > 0) {\n regions.forEach(region => {\n try {\n const url = new URL(region.url)\n // \u63D0\u53D6\u8DEF\u5F84\u90E8\u5206\uFF08\u79FB\u9664\u9996\u5C3E\u659C\u6760\uFF09\n const path = url.pathname.replace(/^\\//, '').replace(/\\/$/, '')\n map[region.code] = path\n } catch (e) {\n // URL \u89E3\u6790\u5931\u8D25\uFF0C\u4F7F\u7528 code \u7684\u5C0F\u5199\u5F62\u5F0F\n // \u7279\u6B8A\u5904\u7406 US\uFF1A\u4F7F\u7528\u7A7A\u5B57\u7B26\u4E32\n map[region.code] = region.code === 'US' ? '' : region.code.toLowerCase()\n }\n })\n }\n\n // \u5408\u5E76\u81EA\u5B9A\u4E49\u6620\u5C04\uFF08\u4F18\u5148\u7EA7\u66F4\u9AD8\uFF09\n if (customMap && Object.keys(customMap).length > 0) {\n Object.assign(map, customMap)\n }\n\n return map\n}\n\n/**\n * \u68C0\u67E5\u8DEF\u5F84/URL \u662F\u5426\u5728\u767D\u540D\u5355\u4E2D\n * \u652F\u6301\uFF1A\u901A\u914D\u7B26\u5339\u914D\u3001\u5FFD\u7565\u57DF\u540D\u5DEE\u5F02\u3001\u5FFD\u7565\u5C3E\u90E8\u659C\u6760\n *\n * @param path - \u5F53\u524D\u8DEF\u5F84\uFF08\u5982 '/ca' \u6216 '/products/123'\uFF09\n * @param whitelist - \u767D\u540D\u5355\u6570\u7EC4\uFF08\u652F\u6301\u8DEF\u5F84\u6216\u5B8C\u6574 URL\uFF0C\u652F\u6301\u901A\u914D\u7B26 *\uFF09\n * @returns \u662F\u5426\u5728\u767D\u540D\u5355\u4E2D\n *\n * @example\n * isPathInWhitelist('/ca', ['/ca', '/uk'])\n * // \u8FD4\u56DE: true\n *\n * isPathInWhitelist('/ca/', ['/ca'])\n * // \u8FD4\u56DE: true\uFF08\u5FFD\u7565\u5C3E\u90E8\u659C\u6760\uFF09\n *\n * isPathInWhitelist('/products/123', ['/products/*'])\n * // \u8FD4\u56DE: true\uFF08\u901A\u914D\u7B26\u5339\u914D\uFF09\n *\n * isPathInWhitelist('/checkout', ['https://www.anker.com/checkout'])\n * // \u8FD4\u56DE: true\uFF08\u5FFD\u7565\u57DF\u540D\u5DEE\u5F02\uFF09\n *\n * isPathInWhitelist('/about', ['/ca', '/uk'])\n * // \u8FD4\u56DE: false\n */\nexport function isPathInWhitelist(path: string, whitelist: string[]): boolean {\n if (!whitelist || whitelist.length === 0) {\n return false\n }\n\n // \u8F85\u52A9\u51FD\u6570\uFF1A\u79FB\u9664\u5C3E\u90E8\u659C\u6760\n const removeTrailingSlash = (str: string): string => {\n return str?.endsWith('/') ? str.slice(0, -1) : str\n }\n\n // \u8F85\u52A9\u51FD\u6570\uFF1A\u4ECE URL \u4E2D\u63D0\u53D6\u8DEF\u5F84\u90E8\u5206\uFF08\u5FFD\u7565\u57DF\u540D\uFF09\n const extractPath = (urlOrPath: string): string => {\n if (!urlOrPath) return ''\n\n // \u5982\u679C\u662F\u5B8C\u6574 URL\uFF0C\u63D0\u53D6\u8DEF\u5F84\u90E8\u5206\n if (urlOrPath.startsWith('http://') || urlOrPath.startsWith('https://')) {\n try {\n const url = new URL(urlOrPath)\n return url.pathname\n } catch (e) {\n return urlOrPath\n }\n }\n\n // \u5426\u5219\u5DF2\u7ECF\u662F\u8DEF\u5F84\uFF0C\u76F4\u63A5\u8FD4\u56DE\n return urlOrPath\n }\n\n // \u6807\u51C6\u5316\u5F53\u524D\u8DEF\u5F84\uFF08\u79FB\u9664\u5C3E\u90E8\u659C\u6760\uFF09\n const normalizedPath = removeTrailingSlash(path)\n\n return whitelist.some(pattern => {\n // \u5982\u679C pattern \u662F\u5B8C\u6574 URL\uFF0C\u53EA\u63D0\u53D6\u8DEF\u5F84\u90E8\u5206\u8FDB\u884C\u6BD4\u8F83\n const patternPath = extractPath(pattern)\n const normalizedPatternPath = removeTrailingSlash(patternPath)\n\n // \u652F\u6301\u901A\u914D\u7B26 * \u5339\u914D\n if (normalizedPatternPath.includes('*')) {\n const regexPattern = normalizedPatternPath.replace(/\\*/g, '.*')\n const regex = new RegExp(`^${regexPattern}$`)\n return regex.test(normalizedPath)\n }\n\n // \u7CBE\u786E\u5339\u914D\u8DEF\u5F84\uFF08\u5FFD\u7565\u5C3E\u90E8\u659C\u6760\uFF0C\u5FFD\u7565\u57DF\u540D\u5DEE\u5F02\uFF09\n return normalizedPath === normalizedPatternPath\n })\n}\n\n/**\n * \u9A8C\u8BC1\u5730\u533A\u914D\u7F6E\u7684\u5B8C\u6574\u6027\u548C\u6B63\u786E\u6027\n *\n * @param options - \u9A8C\u8BC1\u9009\u9879\n * @param options.regions - \u5730\u533A\u914D\u7F6E\u6570\u7EC4\n * @param options.countryToRegionMap - \u56FD\u5BB6\u5230\u5730\u533A\u7684\u6620\u5C04\n * @param options.userCountry - \u7528\u6237\u7684\u56FD\u5BB6\u4EE3\u7801\uFF08\u53EF\u9009\uFF09\n * @returns \u9A8C\u8BC1\u7ED3\u679C\n *\n * @example\n * const validation = validateRegionConfig({\n * regions: [{ code: 'US', ... }, { code: 'CA', ... }],\n * countryToRegionMap: { US: 'US', CA: 'CA', HK: 'DE' },\n * userCountry: 'HK'\n * })\n *\n * if (validation.valid) {\n * console.log('\u6620\u5C04\u7684\u5730\u533A:', validation.mappedRegion) // 'DE'\n * } else {\n * console.warn('\u9A8C\u8BC1\u5931\u8D25:', validation.error)\n * }\n */\nexport function validateRegionConfig(options: {\n regions?: Array<{ code: string; [key: string]: any }>\n countryToRegionMap?: Record<string, string>\n userCountry?: string\n}): {\n valid: boolean\n error?: string\n mappedRegion?: string\n} {\n const { regions, countryToRegionMap, userCountry } = options\n\n // \u68C0\u67E5 regions \u662F\u5426\u914D\u7F6E\n if (!regions || regions.length === 0) {\n return {\n valid: false,\n error: '\u26A0\uFE0F regions \u672A\u914D\u7F6E\uFF0C\u65E0\u6CD5\u6267\u884C\u5730\u533A\u8DF3\u8F6C',\n }\n }\n\n // \u68C0\u67E5 countryToRegionMap \u662F\u5426\u914D\u7F6E\n if (!countryToRegionMap || Object.keys(countryToRegionMap).length === 0) {\n return {\n valid: false,\n error: '\u26A0\uFE0F countryToRegionMap \u672A\u914D\u7F6E\uFF0C\u65E0\u6CD5\u6267\u884C\u5730\u533A\u8DF3\u8F6C',\n }\n }\n\n // \u5982\u679C\u63D0\u4F9B\u4E86 userCountry\uFF0C\u9A8C\u8BC1\u6620\u5C04\u5173\u7CFB\n if (userCountry) {\n const upperUserCountry = userCountry.toUpperCase()\n const mappedRegion = countryToRegionMap[upperUserCountry]\n\n // \u68C0\u67E5\u5F53\u524D\u56FD\u5BB6\u662F\u5426\u6709\u6620\u5C04\n if (!mappedRegion) {\n return {\n valid: false,\n error: `\u2139\uFE0F \u56FD\u5BB6 ${upperUserCountry} \u672A\u914D\u7F6E\u5730\u533A\u6620\u5C04\uFF0C\u4E0D\u6267\u884C\u8DF3\u8F6C`,\n }\n }\n\n // \u786E\u4FDD\u6620\u5C04\u7684\u5730\u533A\u5728 regions \u4E2D\u5B58\u5728\n const regionExists = regions.some(r => r.code === mappedRegion)\n if (!regionExists) {\n return {\n valid: false,\n error: `\u26A0\uFE0F \u5730\u533A\u4EE3\u7801 ${mappedRegion} \u5728 regions \u4E2D\u4E0D\u5B58\u5728\uFF0C\u8BF7\u68C0\u67E5\u914D\u7F6E`,\n }\n }\n\n return {\n valid: true,\n mappedRegion,\n }\n }\n\n // \u672A\u63D0\u4F9B userCountry\uFF0C\u53EA\u9A8C\u8BC1\u914D\u7F6E\u5B58\u5728\u6027\n return {\n valid: true,\n }\n}\n\n/**\n * \u5C06 locale \u5B57\u7B26\u4E32\u8F6C\u6362\u4E3A\u5730\u533A\u4EE3\u7801\n *\n * @param locale - \u5F53\u524D locale\uFF08\u5982 'us', 'ca', 'eu-de'\uFF09\n * @param regionToPathMap - \u5730\u533A\u4EE3\u7801\u5230\u8DEF\u5F84\u524D\u7F00\u7684\u6620\u5C04\n * @returns \u5730\u533A\u4EE3\u7801\uFF08\u5982 'US', 'CA', 'DE'\uFF09\n *\n * @example\n * const regionToPathMap = { US: '', CA: 'ca', DE: 'eu-de' }\n *\n * localeToRegionCode('ca', regionToPathMap)\n * // \u8FD4\u56DE: 'CA'\n *\n * localeToRegionCode('eu-de', regionToPathMap)\n * // \u8FD4\u56DE: 'DE'\n *\n * localeToRegionCode('us', regionToPathMap)\n * // \u8FD4\u56DE: 'US'\n *\n * localeToRegionCode('unknown', regionToPathMap)\n * // \u8FD4\u56DE: 'UNKNOWN'\uFF08\u627E\u4E0D\u5230\u65F6\u4F7F\u7528\u5927\u5199\u5F62\u5F0F\uFF09\n */\nexport function localeToRegionCode(locale: string | null | undefined, regionToPathMap: Record<string, string>): string {\n if (!locale) return 'US'\n\n // \u67E5\u627E\u5BF9\u5E94\u7684 region code\n const regionCode = Object.keys(regionToPathMap).find(\n key => regionToPathMap[key] === locale.toLowerCase() || key === locale.toUpperCase()\n )\n\n return regionCode || locale.toUpperCase()\n}\n\n/**\n * \u4ECE regionToPathMap \u751F\u6210\u6240\u6709 locale \u5217\u8868\uFF08\u7528\u4E8E\u79FB\u9664\u8DEF\u5F84\u524D\u7F00\uFF09\n *\n * @param regionToPathMap - \u5730\u533A\u4EE3\u7801\u5230\u8DEF\u5F84\u524D\u7F00\u7684\u6620\u5C04\n * @returns locale \u5217\u8868\uFF08\u8FC7\u6EE4\u6389\u7A7A\u5B57\u7B26\u4E32\uFF09\n *\n * @example\n * const regionToPathMap = { US: '', CA: 'ca', DE: 'eu-de', UK: 'uk' }\n *\n * generateAllLocales(regionToPathMap)\n * // \u8FD4\u56DE: ['ca', 'eu-de', 'uk']\n */\nexport function generateAllLocales(regionToPathMap: Record<string, string>): string[] {\n return Object.values(regionToPathMap).filter(path => path !== '')\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["removeLocalePrefix", "path", "locales", "locale", "hasUtmParams", "searchParams", "appendRefParam", "url", "refValue", "separator", "buildGeoRedirectRef", "countryCode", "buildGeoRedirectRefManual", "parseRegionCookie", "cookieValue", "parts", "generateRegionToPathMap", "regions", "customMap", "map", "region", "isPathInWhitelist", "whitelist", "removeTrailingSlash", "str", "extractPath", "urlOrPath", "normalizedPath", "pattern", "patternPath", "normalizedPatternPath", "regexPattern", "validateRegionConfig", "options", "countryToRegionMap", "userCountry", "upperUserCountry", "mappedRegion", "r", "localeToRegionCode", "regionToPathMap", "key", "generateAllLocales"]
7
+ }
@@ -0,0 +1,130 @@
1
+ import * as React from 'react';
2
+ /**
3
+ * 按钮功能类型
4
+ */
5
+ export type ButtonFunctionType = 'buyNow' | 'addCart' | 'learnMore';
6
+ /**
7
+ * 基础产品数据接口(来自外部数据源)
8
+ */
9
+ export interface BaseImageOverlayProductData {
10
+ sku: string;
11
+ name?: string;
12
+ title?: string;
13
+ image?: string;
14
+ handle: string;
15
+ shopify_id?: string;
16
+ custom_name?: string;
17
+ custom_description?: string;
18
+ custom_image?: string;
19
+ custom_link?: string;
20
+ custom_theme?: 'light' | 'dark';
21
+ }
22
+ /**
23
+ * 完整的产品卡片数据接口
24
+ */
25
+ export interface ImageOverlayProductCardData extends BaseImageOverlayProductData {
26
+ }
27
+ /**
28
+ * ImageOverlayShelf 业务组件数据接口
29
+ */
30
+ export interface ImageOverlayShelfData {
31
+ /** 主题 */
32
+ theme?: 'light' | 'dark';
33
+ /** 组件标题 */
34
+ title?: string;
35
+ /** 组件描述 */
36
+ description?: string;
37
+ /** 产品列表 */
38
+ productsCard: ImageOverlayProductCardData[];
39
+ /** 是否显示标签 */
40
+ isShowTag?: boolean;
41
+ /** 是否显示原价 */
42
+ isShowOriginalPrice?: boolean;
43
+ /** 了解更多按钮文本 */
44
+ secondaryButtonText?: string;
45
+ /** 了解更多按钮功能 */
46
+ secondaryButtonFun?: ButtonFunctionType;
47
+ /** 立即购买按钮文本 */
48
+ primaryButtonText?: string;
49
+ /** 立即购买按钮功能 */
50
+ primaryButtonFun?: ButtonFunctionType;
51
+ /** 按钮方向 */
52
+ direction?: 'horizontal' | 'vertical';
53
+ /** 按钮形状 */
54
+ shape?: 'round' | 'square';
55
+ }
56
+ /**
57
+ * ImageOverlayShelf Props 接口
58
+ */
59
+ export interface ImageOverlayShelfProps extends React.HTMLAttributes<HTMLDivElement> {
60
+ /** 业务数据 */
61
+ data: ImageOverlayShelfData;
62
+ /** 点击了解更多回调 */
63
+ onLearnMore?: (product: any, variant: any, coupon: any) => void;
64
+ /** 点击立即购买回调 */
65
+ onShopNow?: (product: any, variant: any, coupon: any) => void;
66
+ /** 点击加入购物车回调 */
67
+ onAddToCart?: (product: any, variant: any, coupon: any) => void;
68
+ /** 外部构建数据(用于合并产品数据) */
69
+ buildData?: {
70
+ categories?: any[];
71
+ products?: any[];
72
+ };
73
+ /** 目标窗口 */
74
+ target?: '_self' | '_blank';
75
+ /** 元字段 */
76
+ metafields?: Record<string, any>;
77
+ /** 断点配置 */
78
+ breakpoints?: {
79
+ [key: number]: {
80
+ spaceBetween: number;
81
+ freeMode: boolean;
82
+ slidesPerView: number;
83
+ };
84
+ };
85
+ }
86
+ /**
87
+ * ImageOverlayShelf Context 配置接口
88
+ */
89
+ export interface ImageOverlayShelfContextConfig {
90
+ /** 是否显示标签 */
91
+ isShowTag?: boolean;
92
+ /** 目标窗口 */
93
+ target?: string;
94
+ /** 是否显示原价 */
95
+ isShowOriginalPrice?: boolean;
96
+ /** 元字段 */
97
+ metafields?: Record<string, any>;
98
+ /** 项目数量 */
99
+ itemLength?: number;
100
+ /** 事件处理器 */
101
+ event?: {
102
+ primaryButton?: (item: any, index: number, data: any, coupon: any) => void;
103
+ secondaryButton?: (item: any, index: number, data: any, coupon: any) => void;
104
+ };
105
+ /** 按钮配置 */
106
+ secondaryButtonText?: string;
107
+ secondaryButtonFun?: ButtonFunctionType;
108
+ primaryButtonText?: string;
109
+ primaryButtonFun?: ButtonFunctionType;
110
+ direction?: 'horizontal' | 'vertical';
111
+ shape?: 'round' | 'square';
112
+ /** 回调函数 */
113
+ onLearnMore?: (product: any, variant: any, coupon: any) => void;
114
+ onShopNow?: (product: any, variant: any, coupon: any) => void;
115
+ onAddToCart?: (product: any, variant: any, coupon: any) => void;
116
+ }
117
+ /**
118
+ * ImageOverlayShelf Context 值接口
119
+ */
120
+ interface ImageOverlayShelfContextValue extends ImageOverlayShelfContextConfig {
121
+ /** 当前项目索引 */
122
+ index?: number;
123
+ }
124
+ /**
125
+ * 使用 ImageOverlayShelf Context 的 Hook
126
+ * 返回 null 如果没有 context(向后兼容)
127
+ */
128
+ export declare const useImageOverlayShelfContext: () => ImageOverlayShelfContextValue | null;
129
+ declare const ImageOverlayShelf: React.ForwardRefExoticComponent<ImageOverlayShelfProps & React.RefAttributes<HTMLDivElement>>;
130
+ export default ImageOverlayShelf;
@@ -0,0 +1,2 @@
1
+ "use client";import{Fragment as se,jsx as n,jsxs as f}from"react/jsx-runtime";import*as c from"react";import{cn as I}from"../../helpers/utils.js";import Q from"../SwiperBox/index.js";import X from"../../components/badge.js";import{Text as $}from"../../components/text.js";import E from"../../components/button.js";import Y from"../../components/picture.js";import{Heading as U}from"../../components/heading.js";import{useAiuiContext as Z}from"../AiuiProvider/index.js";import{formatVariantPrice as ee}from"../ShelfDisplay/shelfDisplay.js";import{forwardRef as te,useRef as ne,useImperativeHandle as oe}from"react";const j=c.createContext(null),re=()=>c.useContext(j),ae=999999999e-2,ie=({data:e,configuration:u})=>{const{locale:y="us",copyWriting:N,currencyDisplay:P}=Z(),{custom_theme:M="dark"}=e,d=re()||u||{},{isShowTag:F,isShowOriginalPrice:g,event:v,target:x,metafields:h,secondaryButtonText:b,secondaryButtonFun:w,primaryButtonText:B,primaryButtonFun:k,direction:m,shape:S,onLearnMore:D,onShopNow:T,onAddToCart:s,index:C=u?.index}=d,a=(t,o,r)=>{if(t)switch(t){case"buyNow":T?.(o,i,r);break;case"addCart":s?.(o,i,r);break;case"learnMore":D?.(o,i,r);break;default:break}},O=(t,o,r,l)=>{k?a(k,t,l):v?.primaryButton?.(t,o+1,r,l)},L=(t,o,r,l)=>{w?a(w,t,l):v?.secondaryButton?.(t,o+1,r,l)},i=c.useMemo(()=>e?.variants?.find(t=>t?.sku===e?.sku)||e?.variants?.[0]||{},[e?.variants,e?.sku]),H=!i?.availableForSale||i?.price?.amount===ae,[R,W]=c.useState([]),p=i?.coupons?.[0],{price:G,basePrice:J,discount:_}=ee({locale:y,amount:g&&p?p.variant_price4wscode:i.price,baseAmount:g&&p?i.price:0,currencyCode:e?.price?.currencyCode||"USD"}),K=()=>{const t=e?.sku,o=e?.variants;return o?.find(l=>l?.sku===t)?.image?.url||o?.[0]?.image?.url||""},V=e?.custom_name||e?.title||e?.name,A=e?.custom_description||e?.description;return c.useEffect(()=>{let t=[];if(_){const r=`${_}${h?.discounts?.off||""}`;t.push(r)}const o=e?.tags?.filter?.(r=>r?.startsWith?.("CLtag"))?.map?.(r=>r?.replace?.("CLtag:",""))?.slice?.(0,_?1:2);W(t.concat(o))},[_,h?.discounts,e?.tags]),n("div",{className:I("rounded-box box-border w-full cursor-pointer overflow-hidden duration-300","desktop:h-[384px] lg-desktop:h-[480px] h-[360px]",{"aiui-dark":M==="dark"}),children:f("div",{className:"box-border flex h-full flex-col justify-between overflow-hidden",children:[n(Y,{alt:"",source:e?.custom_image??K(),className:I("rounded-box absolute inset-x-0 top-0 h-full overflow-hidden object-cover transition-all duration-300 [&_img]:size-full")}),f("div",{className:"desktop:p-6 collection-shelves-product-content z-10 box-border flex flex-1 flex-col justify-end overflow-hidden p-4",children:[F&&R?.length?n("div",{className:"mb-2 box-border flex flex-wrap gap-1 overflow-hidden",children:R?.map?.((t,o)=>n(X,{children:t},o))}):null,V?n(U,{as:"h3",title:V||"",html:V||"",className:"lg-desktop:text-2xl lg-desktop:leading-7 tablet:text-xl collection-shelves-product-title text-info-primary tablet:leading-6 line-clamp-2 text-base font-bold"}):null,A?n($,{size:2,html:A||"",className:"lg-desktop:text-lg desktop:text-base collection-shelves-product-description text-info-primary line-clamp-1 text-sm font-bold"}):null,n("div",{className:"mb-1 mt-4 flex items-center",children:H?n("div",{className:"tablet:text-2xl text-info-primary text-xl font-bold",children:N?.soldOutText??"Sold Out"}):f(se,{children:[n("div",{className:"final-price tablet:text-2xl text-info-primary text-xl font-bold",children:i?.availableForSale&&G||""}),n("div",{className:"origin-price tablet:text-xl text-info-secondary ml-1 text-lg font-bold line-through",children:i?.availableForSale&&J||""})]})}),f("div",{className:I("shelf-flex-button-group","lg-desktop:gap-3 flex items-center gap-2",m==="vertical"?"flex-col":""),children:[b&&n(E,{variant:"secondary",onClick:()=>L(e,C,d,p),className:`overflow-hidden font-bold ${m==="vertical"?"w-full":""} ${S==="round"?"rounded-2xl":""}`,children:b}),B&&n(E,{variant:"primary",disabled:H,onClick:()=>O(e,C,d,p),className:`overflow-hidden font-bold ${m==="vertical"?"w-full":""} ${S==="round"?"rounded-2xl":""}`,children:B})]})]})]})},e?.id||e?.handle)},q=te(({data:e,onLearnMore:u,onShopNow:y,onAddToCart:N,buildData:P,breakpoints:M,className:z="",target:d="_self",metafields:F,...g},v)=>{const{productsCard:x=[],isShowTag:h=!1,isShowOriginalPrice:b=!0,secondaryButtonText:w,secondaryButtonFun:B,primaryButtonText:k,primaryButtonFun:m,direction:S="horizontal",shape:D="round"}=e,T=ne(null);oe(v,()=>T.current);const s=c.useMemo(()=>x?.length?x.map(a=>{const O=P?.products?.find(L=>L?.handle===a?.handle);return O?{sku:a.sku,custom_name:a.custom_name,custom_image:a.custom_image,custom_link:a.custom_link,custom_description:a.custom_description,custom_theme:a.custom_theme,...O}:null}).filter(a=>a!==null):[],[P?.products,x]),C={isShowTag:h,target:d,isShowOriginalPrice:b,metafields:F||{},itemLength:s?.length,event:{primaryButton:y,secondaryButton:u},secondaryButtonText:w,secondaryButtonFun:B,primaryButtonText:k,primaryButtonFun:m,direction:S,shape:D,onLearnMore:u,onShopNow:y,onAddToCart:N};return n(j.Provider,{value:C,children:f("div",{ref:T,className:I("collection-shelves-wrap w-full",z),...g,children:[e.title&&n(U,{as:"h2",size:4,className:"text-info-primary mb-4",children:e.title}),e.description&&n($,{size:3,as:"p",className:"text-info-primary mb-6",children:e.description}),n(Q,{data:{list:s,configuration:{itemLength:s?.length}},id:`ImageOverlayShelf${Math.random().toString(36).substring(2,9)}`,className:"!overflow-visible",Slide:ie,breakpoints:M||{0:{spaceBetween:12,freeMode:!1,slidesPerView:1},374:{spaceBetween:12,freeMode:!1,slidesPerView:Math.min(2,s.length)},768:{spaceBetween:16,freeMode:!1,slidesPerView:Math.min(3,s.length)},1024:{spaceBetween:16,freeMode:!1,slidesPerView:Math.min(4,s.length)},1440:{spaceBetween:16,freeMode:!1,slidesPerView:Math.min(4,s.length)}}})]})})});q.displayName="ImageOverlayShelf";var xe=q;export{xe as default,re as useImageOverlayShelfContext};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/biz-components/ImageOverlayShelf/index.tsx"],
4
+ "sourcesContent": ["'use client'\nimport * as React from 'react'\nimport { cn } from '../../helpers/utils.js'\nimport SwiperBox from '../SwiperBox/index.js'\n\nimport Badge from '../../components/badge.js'\nimport { Text } from '../../components/text.js'\nimport Button from '../../components/button.js'\nimport Picture from '../../components/picture.js'\nimport { Heading } from '../../components/heading.js'\nimport { useAiuiContext } from '../AiuiProvider/index.js'\nimport { formatVariantPrice } from '../ShelfDisplay/shelfDisplay.js'\nimport { forwardRef, useRef, useImperativeHandle } from 'react'\n\n/**\n * \u6309\u94AE\u529F\u80FD\u7C7B\u578B\n */\nexport type ButtonFunctionType = 'buyNow' | 'addCart' | 'learnMore'\n\n/**\n * \u57FA\u7840\u4EA7\u54C1\u6570\u636E\u63A5\u53E3\uFF08\u6765\u81EA\u5916\u90E8\u6570\u636E\u6E90\uFF09\n */\nexport interface BaseImageOverlayProductData {\n sku: string\n name?: string\n title?: string\n image?: string\n handle: string\n shopify_id?: string\n custom_name?: string\n custom_description?: string\n custom_image?: string\n custom_link?: string\n custom_theme?: 'light' | 'dark'\n}\n\n/**\n * \u5B8C\u6574\u7684\u4EA7\u54C1\u5361\u7247\u6570\u636E\u63A5\u53E3\n */\nexport interface ImageOverlayProductCardData extends BaseImageOverlayProductData {}\n\n/**\n * ImageOverlayShelf \u4E1A\u52A1\u7EC4\u4EF6\u6570\u636E\u63A5\u53E3\n */\nexport interface ImageOverlayShelfData {\n /** \u4E3B\u9898 */\n theme?: 'light' | 'dark'\n /** \u7EC4\u4EF6\u6807\u9898 */\n title?: string\n /** \u7EC4\u4EF6\u63CF\u8FF0 */\n description?: string\n /** \u4EA7\u54C1\u5217\u8868 */\n productsCard: ImageOverlayProductCardData[]\n /** \u662F\u5426\u663E\u793A\u6807\u7B7E */\n isShowTag?: boolean\n /** \u662F\u5426\u663E\u793A\u539F\u4EF7 */\n isShowOriginalPrice?: boolean\n /** \u4E86\u89E3\u66F4\u591A\u6309\u94AE\u6587\u672C */\n secondaryButtonText?: string\n /** \u4E86\u89E3\u66F4\u591A\u6309\u94AE\u529F\u80FD */\n secondaryButtonFun?: ButtonFunctionType\n /** \u7ACB\u5373\u8D2D\u4E70\u6309\u94AE\u6587\u672C */\n primaryButtonText?: string\n /** \u7ACB\u5373\u8D2D\u4E70\u6309\u94AE\u529F\u80FD */\n primaryButtonFun?: ButtonFunctionType\n /** \u6309\u94AE\u65B9\u5411 */\n direction?: 'horizontal' | 'vertical'\n /** \u6309\u94AE\u5F62\u72B6 */\n shape?: 'round' | 'square'\n}\n\n/**\n * ImageOverlayShelf Props \u63A5\u53E3\n */\nexport interface ImageOverlayShelfProps extends React.HTMLAttributes<HTMLDivElement> {\n /** \u4E1A\u52A1\u6570\u636E */\n data: ImageOverlayShelfData\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 /** \u70B9\u51FB\u52A0\u5165\u8D2D\u7269\u8F66\u56DE\u8C03 */\n onAddToCart?: (product: any, variant: any, coupon: any) => void\n /** \u5916\u90E8\u6784\u5EFA\u6570\u636E\uFF08\u7528\u4E8E\u5408\u5E76\u4EA7\u54C1\u6570\u636E\uFF09 */\n buildData?: {\n categories?: any[]\n products?: any[]\n }\n /** \u76EE\u6807\u7A97\u53E3 */\n target?: '_self' | '_blank'\n /** \u5143\u5B57\u6BB5 */\n metafields?: Record<string, any>\n /** \u65AD\u70B9\u914D\u7F6E */\n breakpoints?: {\n [key: number]: {\n spaceBetween: number\n freeMode: boolean\n slidesPerView: number\n }\n }\n}\n\n/**\n * ImageOverlayShelf Context \u914D\u7F6E\u63A5\u53E3\n */\nexport interface ImageOverlayShelfContextConfig {\n /** \u662F\u5426\u663E\u793A\u6807\u7B7E */\n isShowTag?: boolean\n /** \u76EE\u6807\u7A97\u53E3 */\n target?: string\n /** \u662F\u5426\u663E\u793A\u539F\u4EF7 */\n isShowOriginalPrice?: boolean\n /** \u5143\u5B57\u6BB5 */\n metafields?: Record<string, any>\n /** \u9879\u76EE\u6570\u91CF */\n itemLength?: number\n /** \u4E8B\u4EF6\u5904\u7406\u5668 */\n event?: {\n primaryButton?: (item: any, index: number, data: any, coupon: any) => void\n secondaryButton?: (item: any, index: number, data: any, coupon: any) => void\n }\n /** \u6309\u94AE\u914D\u7F6E */\n secondaryButtonText?: string\n secondaryButtonFun?: ButtonFunctionType\n primaryButtonText?: string\n primaryButtonFun?: ButtonFunctionType\n direction?: 'horizontal' | 'vertical'\n shape?: 'round' | 'square'\n /** \u56DE\u8C03\u51FD\u6570 */\n onLearnMore?: (product: any, variant: any, coupon: any) => void\n onShopNow?: (product: any, variant: any, coupon: any) => void\n onAddToCart?: (product: any, variant: any, coupon: any) => void\n}\n\n/**\n * ImageOverlayShelf Context \u503C\u63A5\u53E3\n */\ninterface ImageOverlayShelfContextValue extends ImageOverlayShelfContextConfig {\n /** \u5F53\u524D\u9879\u76EE\u7D22\u5F15 */\n index?: number\n}\n\n/**\n * ImageOverlayShelf Context\n */\nconst ImageOverlayShelfContext = React.createContext<ImageOverlayShelfContextValue | null>(null)\n\n/**\n * \u4F7F\u7528 ImageOverlayShelf Context \u7684 Hook\n * \u8FD4\u56DE null \u5982\u679C\u6CA1\u6709 context\uFF08\u5411\u540E\u517C\u5BB9\uFF09\n */\nexport const useImageOverlayShelfContext = () => {\n const context = React.useContext(ImageOverlayShelfContext)\n return context\n}\n\nconst SOLD_OUT_PRICE = 9999999.99\n\n/**\n * Item \u7EC4\u4EF6 - ImageOverlayShelf \u7684\u5355\u4E2A\u4EA7\u54C1\u9879\n */\nconst Item = ({ data, configuration }: { data: any; configuration?: any }) => {\n const { locale = 'us', copyWriting, currencyDisplay } = useAiuiContext()\n\n const { custom_theme = 'dark' } = data\n\n // \u4F7F\u7528 context \u83B7\u53D6\u914D\u7F6E\uFF0C\u56DE\u9000\u5230 configuration\uFF08\u5411\u540E\u517C\u5BB9\uFF09\n const contextConfig = useImageOverlayShelfContext()\n const config = contextConfig || configuration || {}\n\n const {\n isShowTag,\n isShowOriginalPrice,\n event,\n target,\n metafields,\n secondaryButtonText,\n secondaryButtonFun,\n primaryButtonText,\n primaryButtonFun,\n direction,\n shape,\n onLearnMore,\n onShopNow,\n onAddToCart,\n index = configuration?.index,\n } = config\n\n // \u6839\u636E\u6309\u94AE\u529F\u80FD\u7C7B\u578B\u8C03\u7528\u76F8\u5E94\u7684\u56DE\u8C03\u51FD\u6570\n const handleButtonClick = (buttonFun?: ButtonFunctionType, params?: any, coupon?: any) => {\n if (!buttonFun) return\n\n switch (buttonFun) {\n case 'buyNow':\n onShopNow?.(params, variant, coupon)\n break\n case 'addCart':\n onAddToCart?.(params, variant, coupon)\n break\n case 'learnMore':\n onLearnMore?.(params, variant, coupon)\n break\n default:\n break\n }\n }\n\n const onPrimaryButton = (params: any, idx: number, shelfData: any, coupon?: any) => {\n // \u5982\u679C\u6709\u65B0\u7684\u529F\u80FD\u914D\u7F6E\uFF0C\u4F7F\u7528\u65B0\u7684\u5904\u7406\u65B9\u5F0F\n if (primaryButtonFun) {\n handleButtonClick(primaryButtonFun, params, coupon)\n } else {\n // \u5411\u540E\u517C\u5BB9\uFF1A\u4F7F\u7528\u65E7\u7684 event \u65B9\u5F0F\n event?.primaryButton?.(params, idx + 1, shelfData, coupon)\n }\n }\n\n const onSecondaryButton = (params: any, idx: number, shelfData: any, coupon?: any) => {\n // \u5982\u679C\u6709\u65B0\u7684\u529F\u80FD\u914D\u7F6E\uFF0C\u4F7F\u7528\u65B0\u7684\u5904\u7406\u65B9\u5F0F\n if (secondaryButtonFun) {\n handleButtonClick(secondaryButtonFun, params, coupon)\n } else {\n // \u5411\u540E\u517C\u5BB9\uFF1A\u4F7F\u7528\u65E7\u7684 event \u65B9\u5F0F\n event?.secondaryButton?.(params, idx + 1, shelfData, coupon)\n }\n }\n\n const variant = React.useMemo(\n () => data?.variants?.find((item: any) => item?.sku === data?.sku) || data?.variants?.[0] || {},\n [data?.variants, data?.sku]\n )\n\n const isSoldOut = !variant?.availableForSale || variant?.price?.amount === SOLD_OUT_PRICE\n\n const [showTags, setShowTags] = React.useState<string[]>([])\n\n // active \u7684 \u901A\u7528\u6298\u6263\n const coupon = variant?.coupons?.[0]\n\n const { price, basePrice, discount } = formatVariantPrice({\n locale: locale,\n amount: isShowOriginalPrice && coupon ? coupon.variant_price4wscode : variant.price,\n baseAmount: isShowOriginalPrice && coupon ? variant.price : 0,\n currencyCode: data?.price?.currencyCode || 'USD',\n })\n\n const handleUrl = () => {\n const sku = data?.sku\n const skuArray = data?.variants\n const findSku = skuArray?.find((item: any) => item?.sku === sku)\n return findSku?.image?.url || skuArray?.[0]?.image?.url || ''\n }\n\n const displayTitle = data?.custom_name || data?.title || data?.name\n const displayDescription = data?.custom_description || data?.description\n\n React.useEffect(() => {\n let handleTags: string[] = []\n if (discount) {\n const discountTag = `${discount}${metafields?.discounts?.off || ''}`\n handleTags.push(discountTag)\n }\n const newTags = data?.tags\n ?.filter?.((item: string) => item?.startsWith?.('CLtag'))\n ?.map?.((item: string) => item?.replace?.('CLtag:', ''))\n ?.slice?.(0, discount ? 1 : 2)\n setShowTags(handleTags.concat(newTags))\n }, [discount, metafields?.discounts, data?.tags])\n\n return (\n <div\n key={data?.id || data?.handle}\n className={cn(\n 'rounded-box box-border w-full cursor-pointer overflow-hidden duration-300',\n 'desktop:h-[384px] lg-desktop:h-[480px] h-[360px]',\n {\n 'aiui-dark': custom_theme === 'dark',\n }\n )}\n >\n <div className=\"box-border flex h-full flex-col justify-between overflow-hidden\">\n <Picture\n alt=\"\"\n source={data?.custom_image ?? handleUrl()}\n className={cn(\n 'rounded-box absolute inset-x-0 top-0 h-full overflow-hidden object-cover transition-all duration-300 [&_img]:size-full'\n )}\n />\n <div className=\"desktop:p-6 collection-shelves-product-content z-10 box-border flex flex-1 flex-col justify-end overflow-hidden p-4\">\n {isShowTag && showTags?.length ? (\n <div className=\"mb-2 box-border flex flex-wrap gap-1 overflow-hidden\">\n {showTags?.map?.((item: any, index: number) => (\n <Badge key={index}>{item}</Badge>\n ))}\n </div>\n ) : null}\n {displayTitle ? (\n <Heading\n as=\"h3\"\n title={displayTitle || ''}\n html={displayTitle || ''}\n className=\"lg-desktop:text-2xl lg-desktop:leading-7 tablet:text-xl collection-shelves-product-title text-info-primary tablet:leading-6 line-clamp-2 text-base font-bold\"\n />\n ) : null}\n {displayDescription ? (\n <Text\n size={2}\n html={displayDescription || ''}\n className=\"lg-desktop:text-lg desktop:text-base collection-shelves-product-description text-info-primary line-clamp-1 text-sm font-bold\"\n />\n ) : null}\n <div className=\"mb-1 mt-4 flex items-center\">\n {isSoldOut ? (\n <div className=\"tablet:text-2xl text-info-primary text-xl font-bold\">\n {copyWriting?.soldOutText ?? 'Sold Out'}\n </div>\n ) : (\n <>\n <div className=\"final-price tablet:text-2xl text-info-primary text-xl font-bold\">\n {variant?.availableForSale ? price || '' : ''}\n </div>\n <div className=\"origin-price tablet:text-xl text-info-secondary ml-1 text-lg font-bold line-through\">\n {variant?.availableForSale ? basePrice || '' : ''}\n </div>\n </>\n )}\n </div>\n\n <div\n className={cn(\n 'shelf-flex-button-group',\n 'lg-desktop:gap-3 flex items-center gap-2',\n direction === 'vertical' ? 'flex-col' : ''\n )}\n >\n {secondaryButtonText && (\n <Button\n variant=\"secondary\"\n onClick={() => onSecondaryButton(data, index, config, coupon)}\n className={`overflow-hidden font-bold ${direction === 'vertical' ? 'w-full' : ''} ${shape === 'round' ? 'rounded-2xl' : ''}`}\n >\n {secondaryButtonText}\n </Button>\n )}\n {primaryButtonText && (\n <Button\n variant=\"primary\"\n disabled={isSoldOut}\n onClick={() => onPrimaryButton(data, index, config, coupon)}\n className={`overflow-hidden font-bold ${direction === 'vertical' ? 'w-full' : ''} ${shape === 'round' ? 'rounded-2xl' : ''}`}\n >\n {primaryButtonText}\n </Button>\n )}\n </div>\n </div>\n </div>\n </div>\n )\n}\n\nconst ImageOverlayShelf = forwardRef<HTMLDivElement, ImageOverlayShelfProps>(\n (\n {\n data,\n onLearnMore,\n onShopNow,\n onAddToCart,\n buildData,\n breakpoints,\n className = '',\n target = '_self',\n metafields,\n ...props\n },\n ref\n ) => {\n const {\n productsCard = [],\n isShowTag = false,\n isShowOriginalPrice = true,\n secondaryButtonText,\n secondaryButtonFun,\n primaryButtonText,\n primaryButtonFun,\n direction = 'horizontal',\n shape = 'round',\n } = data\n\n const innerRef = useRef<HTMLDivElement>(null)\n\n useImperativeHandle(ref, () => innerRef.current as HTMLDivElement)\n\n // \u76F4\u63A5\u7528 useMemo \u8BA1\u7B97\u5408\u5E76\u540E\u7684\u6570\u636E\uFF0C\u907F\u514D\u4E0D\u5FC5\u8981\u7684 useEffect \u548C\u72B6\u6001\n const currentItems = React.useMemo(() => {\n if (!productsCard?.length) return []\n\n return productsCard\n .map(item => {\n const findData = buildData?.products?.find(params => params?.handle === item?.handle)\n if (findData) {\n return {\n sku: item.sku,\n custom_name: item.custom_name,\n custom_image: item.custom_image,\n custom_link: item.custom_link,\n custom_description: item.custom_description,\n custom_theme: item.custom_theme,\n ...findData,\n }\n }\n return null\n })\n .filter(item => item !== null)\n }, [buildData?.products, productsCard])\n\n // \u6784\u5EFA Context \u503C\n const contextValue: ImageOverlayShelfContextValue = {\n isShowTag,\n target,\n isShowOriginalPrice,\n metafields: metafields || {},\n itemLength: currentItems?.length,\n event: {\n primaryButton: onShopNow,\n secondaryButton: onLearnMore,\n },\n secondaryButtonText,\n secondaryButtonFun,\n primaryButtonText,\n primaryButtonFun,\n direction,\n shape,\n onLearnMore,\n onShopNow,\n onAddToCart,\n }\n\n return (\n <ImageOverlayShelfContext.Provider value={contextValue}>\n <div ref={innerRef} className={cn('collection-shelves-wrap w-full', className)} {...props}>\n {/* \u6807\u9898\u533A\u57DF */}\n {data.title && (\n <Heading as=\"h2\" size={4} className=\"text-info-primary mb-4\">\n {data.title}\n </Heading>\n )}\n {data.description && (\n <Text size={3} as=\"p\" className=\"text-info-primary mb-6\">\n {data.description}\n </Text>\n )}\n <SwiperBox\n data={{\n list: currentItems,\n configuration: {\n // \u4FDD\u7559\u4E00\u4E9B\u57FA\u7840\u914D\u7F6E\u7ED9 SwiperBox\uFF0C\u4F46\u79FB\u9664\u90A3\u4E9B\u4F1A\u900F\u4F20\u7ED9 Item \u7684\u914D\u7F6E\n itemLength: currentItems?.length,\n },\n }}\n id={`ImageOverlayShelf${Math.random().toString(36).substring(2, 9)}`}\n className={`!overflow-visible`}\n Slide={Item}\n breakpoints={\n breakpoints || {\n 0: {\n spaceBetween: 12,\n freeMode: false,\n slidesPerView: 1,\n },\n 374: {\n spaceBetween: 12,\n freeMode: false,\n slidesPerView: Math.min(2, currentItems.length),\n },\n 768: {\n spaceBetween: 16,\n freeMode: false,\n slidesPerView: Math.min(3, currentItems.length),\n },\n 1024: {\n spaceBetween: 16,\n freeMode: false,\n slidesPerView: Math.min(4, currentItems.length),\n },\n 1440: {\n spaceBetween: 16,\n freeMode: false,\n slidesPerView: Math.min(4, currentItems.length),\n },\n }\n }\n />\n </div>\n </ImageOverlayShelfContext.Provider>\n )\n }\n)\n\nImageOverlayShelf.displayName = 'ImageOverlayShelf'\n\nexport default ImageOverlayShelf\n"],
5
+ "mappings": "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",
6
+ "names": ["Fragment", "jsx", "jsxs", "React", "cn", "SwiperBox", "Badge", "Text", "Button", "Picture", "Heading", "useAiuiContext", "formatVariantPrice", "forwardRef", "useRef", "useImperativeHandle", "ImageOverlayShelfContext", "useImageOverlayShelfContext", "SOLD_OUT_PRICE", "Item", "data", "configuration", "locale", "copyWriting", "currencyDisplay", "custom_theme", "config", "isShowTag", "isShowOriginalPrice", "event", "target", "metafields", "secondaryButtonText", "secondaryButtonFun", "primaryButtonText", "primaryButtonFun", "direction", "shape", "onLearnMore", "onShopNow", "onAddToCart", "index", "handleButtonClick", "buttonFun", "params", "coupon", "variant", "onPrimaryButton", "idx", "shelfData", "onSecondaryButton", "item", "isSoldOut", "showTags", "setShowTags", "price", "basePrice", "discount", "handleUrl", "sku", "skuArray", "displayTitle", "displayDescription", "handleTags", "discountTag", "newTags", "ImageOverlayShelf", "buildData", "breakpoints", "className", "props", "ref", "productsCard", "innerRef", "currentItems", "findData", "contextValue", "ImageOverlayShelf_default"]
7
+ }
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import type { ImageTextFeatureProps } from './types.js';
3
- declare const _default: React.ForwardRefExoticComponent<Omit<Omit<ImageTextFeatureProps & React.RefAttributes<HTMLDivElement>, keyof import("../../shared/Styles.js").StylesProps> & Partial<import("../../shared/Styles.js").StylesProps & import("../../shared/Styles.js").ContainerProps> & {
4
- className?: string;
5
- data?: Record<string, any>;
3
+ declare const _default: React.ForwardRefExoticComponent<Omit<ImageTextFeatureProps & React.RefAttributes<HTMLDivElement> & {
4
+ style?: string | React.CSSProperties;
5
+ container?: import("../../shared/Styles.js").ContainerProps["container"];
6
6
  }, "ref"> & React.RefAttributes<any>>;
7
7
  export default _default;
@@ -1,2 +1,2 @@
1
- "use client";import{jsx as e,jsxs as p}from"react/jsx-runtime";import k,{useImperativeHandle as I,useRef as N}from"react";import{Heading as s,Picture as T,Text as o}from"../../components/index.js";import{cn as x}from"../../helpers/utils.js";import{withLayout as v}from"../../shared/Styles.js";import{useExposure as y}from"../../hooks/useExposure.js";const w="image",F="image_text_feature",f=k.forwardRef(({data:g,className:n},u)=>{const{title:r,subtitle:i,pcImage:t,mobileImage:c,padImage:d,items:_=[],imagePosition:a="left",theme:h="light"}=g,m=N(null);return y(m,{componentType:w,componentName:F,componentTitle:r,componentDescription:i}),I(u,()=>m.current),p("section",{ref:m,"data-ui-component-id":"ImageTextFeature",className:x("image-text-feature",h==="dark"?"aiui-dark":"","text-info-primary laptop:flex-row laptop:gap-[32px] desktop:gap-[48px] lg-desktop:gap-[64px] flex flex-col items-center gap-[24px]",n),children:[e(T,{source:`${t?.url}, ${d?.url||t?.url} 1024, ${c?.url||t?.url} 768`,alt:t?.alt,className:x("image-text-feature__image tablet:aspect-[704/360] laptop:aspect-[824/560] aspect-[716/720] max-h-[560px] max-w-[824px] shrink-0",{"image-text-feature__image--left order-2 laptop:order-1 laptop:basis-[63%] desktop:basis-[57%]":a==="left","image-text-feature__image--right order-2 laptop:basis-[63%] desktop:basis-[57%]":a==="right"})}),p("div",{className:x("image-text-feature__content laptop:w-fit flex w-full flex-col items-start justify-center",{"order-1 laptop:order-2":a==="left","order-1":a==="right"}),children:[e(s,{size:4,html:r,as:"h3",className:"image-text-feature__title w-full text-left"}),i&&e(o,{size:4,html:i,as:"p",className:"image-text-feature__subtitle min-xxl:mt-[8px] laptop:text-[16px] lg-desktop:text-[18px] mt-[4px] text-left text-[14px]"}),e("div",{className:"image-text-feature__items tablet:flex-row tablet:justify-start tablet:gap-[90px] laptop:w-fit laptop:flex-col laptop:justify-around laptop:gap-0 flex w-full flex-col justify-around gap-0",children:_.map((l,b)=>p("div",{className:"image-text-feature__item laptop:mt-[32px] desktop:mt-[48px] mt-[24px]",children:[p("div",{className:"image-text-feature__item-header flex flex-row items-center gap-[8px]",children:[e("img",{src:l.icon,alt:"icon",className:"image-text-feature__item-icon min-md:text-[40px] min-l:text-[40px] min-xl:text-[56px] min-xxl:text-[64px] desktop:h-[44px] lg-desktop:h-[52px] h-[28px] -translate-y-[12%] md:text-[40px]"}),e(s,{size:5,as:"h6",className:"image-text-feature__item-text bg-gradient-to-r from-[#3ad1ff] to-[#008cd6] bg-clip-text text-transparent",children:l.text})]}),e(o,{size:4,as:"p",html:l.desc,className:"image-text-feature__item-desc tablet:text-[14px] laptop:text-[14px] desktop:text-[16px] lg-desktop:text-[18px] -mt-[2px] text-[14px]"})]},b))})]})]})});f.displayName="ImageTextFeature";var L=v(f);export{L as default};
1
+ "use client";import{jsx as e,jsxs as m}from"react/jsx-runtime";import I,{useImperativeHandle as N,useRef as T}from"react";import{Heading as o,Picture as v,Text as f}from"../../components/index.js";import{cn as p}from"../../helpers/utils.js";import{withLayout as w}from"../../shared/Styles.js";import{useExposure as y}from"../../hooks/useExposure.js";const F="image",H="image_text_feature",g=I.forwardRef(({data:u,className:n,isHorizontal:r},c)=>{const{title:s,subtitle:i,pcImage:t,mobileImage:d,padImage:_,items:h=[],imagePosition:a="left",theme:b="light"}=u,l=T(null);return y(l,{componentType:F,componentName:H,componentTitle:s,componentDescription:i}),N(c,()=>l.current),m("section",{ref:l,"data-ui-component-id":"ImageTextFeature",className:p("image-text-feature",b==="dark"?"aiui-dark":"","text-info-primary laptop:flex-row laptop:gap-[32px] desktop:gap-[48px] lg-desktop:gap-[64px] flex flex-col items-center gap-[24px]",n),children:[e(v,{source:`${t?.url}, ${_?.url||t?.url} 1024, ${d?.url||t?.url} 768`,alt:t?.alt,className:p("image-text-feature__image tablet:aspect-[704/360] laptop:aspect-[824/560] aspect-[716/720] max-h-[560px] max-w-[824px] shrink-0",{"image-text-feature__image--left order-2 laptop:order-1 laptop:basis-[63%] desktop:basis-[57%]":a==="left","image-text-feature__image--right order-2 laptop:basis-[63%] desktop:basis-[57%]":a==="right"})}),m("div",{className:p("image-text-feature__content laptop:w-fit flex w-full flex-col items-start justify-center",{"order-1 laptop:order-2":a==="left","order-1":a==="right"}),children:[e(o,{size:4,html:s,as:"h3",className:"image-text-feature__title w-full text-left"}),i&&e(f,{size:4,html:i,as:"p",className:"image-text-feature__subtitle min-xxl:mt-[8px] laptop:text-[16px] lg-desktop:text-[18px] mt-[4px] text-left text-[14px]"}),e("div",{className:p("image-text-feature__items tablet:flex-row tablet:justify-start tablet:gap-[90px] laptop:w-fit laptop:justify-around laptop:gap-0 flex w-full justify-around gap-0",{"flex-wrap":r,"laptop:flex-col flex-col":!r}),children:h.map((x,k)=>m("div",{className:"image-text-feature__item laptop:mt-[32px] desktop:mt-[48px] mt-[24px]",children:[m("div",{className:"image-text-feature__item-header flex flex-row items-center gap-[8px]",children:[e("img",{src:x.icon,alt:"icon",className:"image-text-feature__item-icon min-md:text-[40px] min-l:text-[40px] min-xl:text-[56px] min-xxl:text-[64px] desktop:h-[44px] lg-desktop:h-[52px] h-[28px] -translate-y-[12%] md:text-[40px]"}),e(o,{size:5,as:"h6",className:"image-text-feature__item-text bg-gradient-to-r from-[#3ad1ff] to-[#008cd6] bg-clip-text text-transparent",children:x.text})]}),e(f,{size:4,as:"p",html:x.desc,className:"image-text-feature__item-desc tablet:text-[14px] laptop:text-[14px] desktop:text-[16px] lg-desktop:text-[18px] -mt-[2px] text-[14px]"})]},k))})]})]})});g.displayName="ImageTextFeature";var R=w(g);export{R as default};
2
2
  //# sourceMappingURL=ImageTextFeature.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/biz-components/ImageTextFeature/ImageTextFeature.tsx"],
4
- "sourcesContent": ["'use client'\nimport React, { useImperativeHandle, useRef } from 'react'\nimport { Heading, Picture, Text } from '../../components/index.js'\nimport { cn } from '../../helpers/utils.js'\nimport { withLayout } from '../../shared/Styles.js'\nimport { useExposure } from '../../hooks/useExposure.js'\nimport type { ImageTextFeatureProps, ImageTextFeatureItem } from './types.js'\n\nconst componentType = 'image'\nconst componentName = 'image_text_feature'\n\nconst ImageTextFeature = React.forwardRef<HTMLDivElement, ImageTextFeatureProps>(({ data, className }, ref) => {\n const { title, subtitle, pcImage, mobileImage, padImage, items = [], imagePosition = 'left', theme = 'light' } = data\n\n const boxRef = useRef<HTMLDivElement>(null)\n\n useExposure(boxRef, {\n componentType,\n componentName,\n componentTitle: title,\n componentDescription: subtitle,\n })\n\n useImperativeHandle(ref, () => boxRef.current as HTMLDivElement)\n\n return (\n <section\n ref={boxRef}\n data-ui-component-id=\"ImageTextFeature\"\n className={cn(\n 'image-text-feature',\n theme === 'dark' ? 'aiui-dark' : '',\n 'text-info-primary laptop:flex-row laptop:gap-[32px] desktop:gap-[48px] lg-desktop:gap-[64px] flex flex-col items-center gap-[24px]',\n className\n )}\n >\n {/* \u56FE\u7247\u533A\u57DF */}\n <Picture\n source={`${pcImage?.url}, ${padImage?.url || pcImage?.url} 1024, ${mobileImage?.url || pcImage?.url} 768`}\n alt={pcImage?.alt}\n className={cn(\n 'image-text-feature__image tablet:aspect-[704/360] laptop:aspect-[824/560] aspect-[716/720] max-h-[560px] max-w-[824px] shrink-0',\n {\n 'image-text-feature__image--left order-2 laptop:order-1 laptop:basis-[63%] desktop:basis-[57%]':\n imagePosition === 'left',\n 'image-text-feature__image--right order-2 laptop:basis-[63%] desktop:basis-[57%]':\n imagePosition === 'right',\n }\n )}\n />\n\n {/* \u5185\u5BB9\u533A\u57DF */}\n <div\n className={cn('image-text-feature__content laptop:w-fit flex w-full flex-col items-start justify-center', {\n 'order-1 laptop:order-2': imagePosition === 'left',\n 'order-1': imagePosition === 'right',\n })}\n >\n {/* \u6807\u9898 */}\n <Heading size={4} html={title} as=\"h3\" className=\"image-text-feature__title w-full text-left\" />\n\n {/* \u526F\u6807\u9898 */}\n {subtitle && (\n <Text\n size={4}\n html={subtitle}\n as=\"p\"\n className=\"image-text-feature__subtitle min-xxl:mt-[8px] laptop:text-[16px] lg-desktop:text-[18px] mt-[4px] text-left text-[14px]\"\n />\n )}\n\n {/* \u529F\u80FD\u5217\u8868 */}\n <div className=\"image-text-feature__items tablet:flex-row tablet:justify-start tablet:gap-[90px] laptop:w-fit laptop:flex-col laptop:justify-around laptop:gap-0 flex w-full flex-col justify-around gap-0\">\n {items.map((item: ImageTextFeatureItem, index: number) => (\n <div key={index} className=\"image-text-feature__item laptop:mt-[32px] desktop:mt-[48px] mt-[24px]\">\n <div className=\"image-text-feature__item-header flex flex-row items-center gap-[8px]\">\n <img\n src={item.icon}\n alt=\"icon\"\n className=\"image-text-feature__item-icon min-md:text-[40px] min-l:text-[40px] min-xl:text-[56px] min-xxl:text-[64px] desktop:h-[44px] lg-desktop:h-[52px] h-[28px] -translate-y-[12%] md:text-[40px]\"\n />\n <Heading\n size={5}\n as=\"h6\"\n className=\"image-text-feature__item-text bg-gradient-to-r from-[#3ad1ff] to-[#008cd6] bg-clip-text text-transparent\"\n >\n {item.text}\n </Heading>\n </div>\n <Text\n size={4}\n as=\"p\"\n html={item.desc}\n className=\"image-text-feature__item-desc tablet:text-[14px] laptop:text-[14px] desktop:text-[16px] lg-desktop:text-[18px] -mt-[2px] text-[14px]\"\n />\n </div>\n ))}\n </div>\n </div>\n </section>\n )\n})\n\nImageTextFeature.displayName = 'ImageTextFeature'\n\nexport default withLayout(ImageTextFeature)\n"],
5
- "mappings": "aAqCM,cAAAA,EAsCQ,QAAAC,MAtCR,oBApCN,OAAOC,GAAS,uBAAAC,EAAqB,UAAAC,MAAc,QACnD,OAAS,WAAAC,EAAS,WAAAC,EAAS,QAAAC,MAAY,4BACvC,OAAS,MAAAC,MAAU,yBACnB,OAAS,cAAAC,MAAkB,yBAC3B,OAAS,eAAAC,MAAmB,6BAG5B,MAAMC,EAAgB,QAChBC,EAAgB,qBAEhBC,EAAmBX,EAAM,WAAkD,CAAC,CAAE,KAAAY,EAAM,UAAAC,CAAU,EAAGC,IAAQ,CAC7G,KAAM,CAAE,MAAAC,EAAO,SAAAC,EAAU,QAAAC,EAAS,YAAAC,EAAa,SAAAC,EAAU,MAAAC,EAAQ,CAAC,EAAG,cAAAC,EAAgB,OAAQ,MAAAC,EAAQ,OAAQ,EAAIV,EAE3GW,EAASrB,EAAuB,IAAI,EAE1C,OAAAM,EAAYe,EAAQ,CAClB,cAAAd,EACA,cAAAC,EACA,eAAgBK,EAChB,qBAAsBC,CACxB,CAAC,EAEDf,EAAoBa,EAAK,IAAMS,EAAO,OAAyB,EAG7DxB,EAAC,WACC,IAAKwB,EACL,uBAAqB,mBACrB,UAAWjB,EACT,qBACAgB,IAAU,OAAS,YAAc,GACjC,qIACAT,CACF,EAGA,UAAAf,EAACM,EAAA,CACC,OAAQ,GAAGa,GAAS,GAAG,KAAKE,GAAU,KAAOF,GAAS,GAAG,UAAUC,GAAa,KAAOD,GAAS,GAAG,OACnG,IAAKA,GAAS,IACd,UAAWX,EACT,kIACA,CACE,gGACEe,IAAkB,OACpB,kFACEA,IAAkB,OACtB,CACF,EACF,EAGAtB,EAAC,OACC,UAAWO,EAAG,2FAA4F,CACxG,yBAA0Be,IAAkB,OAC5C,UAAWA,IAAkB,OAC/B,CAAC,EAGD,UAAAvB,EAACK,EAAA,CAAQ,KAAM,EAAG,KAAMY,EAAO,GAAG,KAAK,UAAU,6CAA6C,EAG7FC,GACClB,EAACO,EAAA,CACC,KAAM,EACN,KAAMW,EACN,GAAG,IACH,UAAU,yHACZ,EAIFlB,EAAC,OAAI,UAAU,6LACZ,SAAAsB,EAAM,IAAI,CAACI,EAA4BC,IACtC1B,EAAC,OAAgB,UAAU,wEACzB,UAAAA,EAAC,OAAI,UAAU,uEACb,UAAAD,EAAC,OACC,IAAK0B,EAAK,KACV,IAAI,OACJ,UAAU,4LACZ,EACA1B,EAACK,EAAA,CACC,KAAM,EACN,GAAG,KACH,UAAU,2GAET,SAAAqB,EAAK,KACR,GACF,EACA1B,EAACO,EAAA,CACC,KAAM,EACN,GAAG,IACH,KAAMmB,EAAK,KACX,UAAU,uIACZ,IApBQC,CAqBV,CACD,EACH,GACF,GACF,CAEJ,CAAC,EAEDd,EAAiB,YAAc,mBAE/B,IAAOe,EAAQnB,EAAWI,CAAgB",
6
- "names": ["jsx", "jsxs", "React", "useImperativeHandle", "useRef", "Heading", "Picture", "Text", "cn", "withLayout", "useExposure", "componentType", "componentName", "ImageTextFeature", "data", "className", "ref", "title", "subtitle", "pcImage", "mobileImage", "padImage", "items", "imagePosition", "theme", "boxRef", "item", "index", "ImageTextFeature_default"]
4
+ "sourcesContent": ["'use client'\nimport React, { useImperativeHandle, useRef } from 'react'\nimport { Heading, Picture, Text } from '../../components/index.js'\nimport { cn } from '../../helpers/utils.js'\nimport { withLayout } from '../../shared/Styles.js'\nimport { useExposure } from '../../hooks/useExposure.js'\nimport type { ImageTextFeatureProps, ImageTextFeatureItem } from './types.js'\n\nconst componentType = 'image'\nconst componentName = 'image_text_feature'\n\nconst ImageTextFeature = React.forwardRef<HTMLDivElement, ImageTextFeatureProps>(\n ({ data, className, isHorizontal }, ref) => {\n const {\n title,\n subtitle,\n pcImage,\n mobileImage,\n padImage,\n items = [],\n imagePosition = 'left',\n theme = 'light',\n } = data\n\n const boxRef = useRef<HTMLDivElement>(null)\n\n useExposure(boxRef, {\n componentType,\n componentName,\n componentTitle: title,\n componentDescription: subtitle,\n })\n\n useImperativeHandle(ref, () => boxRef.current as HTMLDivElement)\n\n return (\n <section\n ref={boxRef}\n data-ui-component-id=\"ImageTextFeature\"\n className={cn(\n 'image-text-feature',\n theme === 'dark' ? 'aiui-dark' : '',\n 'text-info-primary laptop:flex-row laptop:gap-[32px] desktop:gap-[48px] lg-desktop:gap-[64px] flex flex-col items-center gap-[24px]',\n className\n )}\n >\n {/* \u56FE\u7247\u533A\u57DF */}\n <Picture\n source={`${pcImage?.url}, ${padImage?.url || pcImage?.url} 1024, ${mobileImage?.url || pcImage?.url} 768`}\n alt={pcImage?.alt}\n className={cn(\n 'image-text-feature__image tablet:aspect-[704/360] laptop:aspect-[824/560] aspect-[716/720] max-h-[560px] max-w-[824px] shrink-0',\n {\n 'image-text-feature__image--left order-2 laptop:order-1 laptop:basis-[63%] desktop:basis-[57%]':\n imagePosition === 'left',\n 'image-text-feature__image--right order-2 laptop:basis-[63%] desktop:basis-[57%]':\n imagePosition === 'right',\n }\n )}\n />\n\n {/* \u5185\u5BB9\u533A\u57DF */}\n <div\n className={cn('image-text-feature__content laptop:w-fit flex w-full flex-col items-start justify-center', {\n 'order-1 laptop:order-2': imagePosition === 'left',\n 'order-1': imagePosition === 'right',\n })}\n >\n {/* \u6807\u9898 */}\n <Heading size={4} html={title} as=\"h3\" className=\"image-text-feature__title w-full text-left\" />\n\n {/* \u526F\u6807\u9898 */}\n {subtitle && (\n <Text\n size={4}\n html={subtitle}\n as=\"p\"\n className=\"image-text-feature__subtitle min-xxl:mt-[8px] laptop:text-[16px] lg-desktop:text-[18px] mt-[4px] text-left text-[14px]\"\n />\n )}\n\n {/* \u529F\u80FD\u5217\u8868 */}\n <div\n className={cn(\n 'image-text-feature__items tablet:flex-row tablet:justify-start tablet:gap-[90px] laptop:w-fit laptop:justify-around laptop:gap-0 flex w-full justify-around gap-0',\n {\n 'flex-wrap': isHorizontal,\n 'laptop:flex-col flex-col': !isHorizontal,\n }\n )}\n >\n {items.map((item: ImageTextFeatureItem, index: number) => (\n <div key={index} className=\"image-text-feature__item laptop:mt-[32px] desktop:mt-[48px] mt-[24px]\">\n <div className=\"image-text-feature__item-header flex flex-row items-center gap-[8px]\">\n <img\n src={item.icon}\n alt=\"icon\"\n className=\"image-text-feature__item-icon min-md:text-[40px] min-l:text-[40px] min-xl:text-[56px] min-xxl:text-[64px] desktop:h-[44px] lg-desktop:h-[52px] h-[28px] -translate-y-[12%] md:text-[40px]\"\n />\n <Heading\n size={5}\n as=\"h6\"\n className=\"image-text-feature__item-text bg-gradient-to-r from-[#3ad1ff] to-[#008cd6] bg-clip-text text-transparent\"\n >\n {item.text}\n </Heading>\n </div>\n <Text\n size={4}\n as=\"p\"\n html={item.desc}\n className=\"image-text-feature__item-desc tablet:text-[14px] laptop:text-[14px] desktop:text-[16px] lg-desktop:text-[18px] -mt-[2px] text-[14px]\"\n />\n </div>\n ))}\n </div>\n </div>\n </section>\n )\n }\n)\n\nImageTextFeature.displayName = 'ImageTextFeature'\n\nexport default withLayout(ImageTextFeature)\n"],
5
+ "mappings": "aA+CQ,cAAAA,EA8CQ,QAAAC,MA9CR,oBA9CR,OAAOC,GAAS,uBAAAC,EAAqB,UAAAC,MAAc,QACnD,OAAS,WAAAC,EAAS,WAAAC,EAAS,QAAAC,MAAY,4BACvC,OAAS,MAAAC,MAAU,yBACnB,OAAS,cAAAC,MAAkB,yBAC3B,OAAS,eAAAC,MAAmB,6BAG5B,MAAMC,EAAgB,QAChBC,EAAgB,qBAEhBC,EAAmBX,EAAM,WAC7B,CAAC,CAAE,KAAAY,EAAM,UAAAC,EAAW,aAAAC,CAAa,EAAGC,IAAQ,CAC1C,KAAM,CACJ,MAAAC,EACA,SAAAC,EACA,QAAAC,EACA,YAAAC,EACA,SAAAC,EACA,MAAAC,EAAQ,CAAC,EACT,cAAAC,EAAgB,OAChB,MAAAC,EAAQ,OACV,EAAIX,EAEEY,EAAStB,EAAuB,IAAI,EAE1C,OAAAM,EAAYgB,EAAQ,CAClB,cAAAf,EACA,cAAAC,EACA,eAAgBM,EAChB,qBAAsBC,CACxB,CAAC,EAEDhB,EAAoBc,EAAK,IAAMS,EAAO,OAAyB,EAG7DzB,EAAC,WACC,IAAKyB,EACL,uBAAqB,mBACrB,UAAWlB,EACT,qBACAiB,IAAU,OAAS,YAAc,GACjC,qIACAV,CACF,EAGA,UAAAf,EAACM,EAAA,CACC,OAAQ,GAAGc,GAAS,GAAG,KAAKE,GAAU,KAAOF,GAAS,GAAG,UAAUC,GAAa,KAAOD,GAAS,GAAG,OACnG,IAAKA,GAAS,IACd,UAAWZ,EACT,kIACA,CACE,gGACEgB,IAAkB,OACpB,kFACEA,IAAkB,OACtB,CACF,EACF,EAGAvB,EAAC,OACC,UAAWO,EAAG,2FAA4F,CACxG,yBAA0BgB,IAAkB,OAC5C,UAAWA,IAAkB,OAC/B,CAAC,EAGD,UAAAxB,EAACK,EAAA,CAAQ,KAAM,EAAG,KAAMa,EAAO,GAAG,KAAK,UAAU,6CAA6C,EAG7FC,GACCnB,EAACO,EAAA,CACC,KAAM,EACN,KAAMY,EACN,GAAG,IACH,UAAU,yHACZ,EAIFnB,EAAC,OACC,UAAWQ,EACT,oKACA,CACE,YAAaQ,EACb,2BAA4B,CAACA,CAC/B,CACF,EAEC,SAAAO,EAAM,IAAI,CAACI,EAA4BC,IACtC3B,EAAC,OAAgB,UAAU,wEACzB,UAAAA,EAAC,OAAI,UAAU,uEACb,UAAAD,EAAC,OACC,IAAK2B,EAAK,KACV,IAAI,OACJ,UAAU,4LACZ,EACA3B,EAACK,EAAA,CACC,KAAM,EACN,GAAG,KACH,UAAU,2GAET,SAAAsB,EAAK,KACR,GACF,EACA3B,EAACO,EAAA,CACC,KAAM,EACN,GAAG,IACH,KAAMoB,EAAK,KACX,UAAU,uIACZ,IApBQC,CAqBV,CACD,EACH,GACF,GACF,CAEJ,CACF,EAEAf,EAAiB,YAAc,mBAE/B,IAAOgB,EAAQpB,EAAWI,CAAgB",
6
+ "names": ["jsx", "jsxs", "React", "useImperativeHandle", "useRef", "Heading", "Picture", "Text", "cn", "withLayout", "useExposure", "componentType", "componentName", "ImageTextFeature", "data", "className", "isHorizontal", "ref", "title", "subtitle", "pcImage", "mobileImage", "padImage", "items", "imagePosition", "theme", "boxRef", "item", "index", "ImageTextFeature_default"]
7
7
  }
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import type { ImageWithTextProps } from './types.js';
3
- declare const _default: React.ForwardRefExoticComponent<Omit<Omit<ImageWithTextProps & React.RefAttributes<HTMLDivElement>, keyof import("../../shared/Styles.js").StylesProps> & Partial<import("../../shared/Styles.js").StylesProps & import("../../shared/Styles.js").ContainerProps> & {
4
- className?: string;
5
- data?: Record<string, any>;
3
+ declare const _default: React.ForwardRefExoticComponent<Omit<ImageWithTextProps & React.RefAttributes<HTMLDivElement> & {
4
+ style?: string | React.CSSProperties;
5
+ container?: import("../../shared/Styles.js").ContainerProps["container"];
6
6
  }, "ref"> & React.RefAttributes<any>>;
7
7
  export default _default;
@@ -36,8 +36,8 @@ export interface KspProps {
36
36
  /** 自定义类名 */
37
37
  className?: string;
38
38
  }
39
- declare const _default: import("react").ForwardRefExoticComponent<Omit<KspProps, keyof import("../../shared/Styles.js").StylesProps> & Partial<import("../../shared/Styles.js").StylesProps & import("../../shared/Styles.js").ContainerProps> & {
40
- className?: string;
41
- data?: Record<string, any>;
39
+ declare const _default: import("react").ForwardRefExoticComponent<KspProps & {
40
+ style?: string | React.CSSProperties;
41
+ container?: import("../../shared/Styles.js").ContainerProps["container"];
42
42
  } & import("react").RefAttributes<any>>;
43
43
  export default _default;
@@ -1,6 +1,6 @@
1
1
  import type { Product, ProductVariant } from '../../types/product';
2
2
  import type { DeliveryCustom } from './type';
3
- declare const _default: import("react").ForwardRefExoticComponent<Omit<{
3
+ declare const _default: import("react").ForwardRefExoticComponent<{
4
4
  metafields: any;
5
5
  productList: Array<Product & {
6
6
  variant: ProductVariant;
@@ -8,8 +8,8 @@ declare const _default: import("react").ForwardRefExoticComponent<Omit<{
8
8
  variant: ProductVariant;
9
9
  onShippingInfoChange: (deliveryCustom: DeliveryCustom) => void;
10
10
  className?: string;
11
- }, keyof import("../../../../shared/Styles.js").StylesProps> & Partial<import("../../../../shared/Styles.js").StylesProps & import("../../../../shared/Styles.js").ContainerProps> & {
12
- className?: string;
13
- data?: Record<string, any>;
11
+ } & {
12
+ style?: string | React.CSSProperties;
13
+ container?: import("../../../../shared/Styles.js").ContainerProps["container"];
14
14
  } & import("react").RefAttributes<any>>;
15
15
  export default _default;