@anker-in/headless-ui 1.3.21 → 1.3.22-alpha.1781754422536

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 (623) hide show
  1. package/dist/cjs/biz-components/AccessoriesShelf/components/AccessoriesProductGrid/index.d.ts +11 -0
  2. package/dist/cjs/biz-components/AccessoriesShelf/components/AccessoriesProductGrid/index.js +2 -0
  3. package/dist/cjs/biz-components/AccessoriesShelf/components/AccessoriesProductGrid/index.js.map +7 -0
  4. package/dist/cjs/biz-components/AccessoriesShelf/components/AccessoryShelf/ProductCard.d.ts +23 -0
  5. package/dist/cjs/biz-components/AccessoriesShelf/components/AccessoryShelf/ProductCard.js +2 -0
  6. package/dist/cjs/biz-components/AccessoriesShelf/components/AccessoryShelf/ProductCard.js.map +7 -0
  7. package/dist/cjs/biz-components/AccessoriesShelf/components/AccessoryShelf/index.d.ts +40 -0
  8. package/dist/cjs/biz-components/AccessoriesShelf/components/AccessoryShelf/index.js +2 -0
  9. package/dist/cjs/biz-components/AccessoriesShelf/components/AccessoryShelf/index.js.map +7 -0
  10. package/dist/cjs/biz-components/AccessoriesShelf/components/AccessoryShelf/types.d.ts +103 -0
  11. package/dist/cjs/biz-components/AccessoriesShelf/components/AccessoryShelf/types.js +2 -0
  12. package/dist/cjs/biz-components/AccessoriesShelf/components/AccessoryShelf/types.js.map +7 -0
  13. package/dist/cjs/biz-components/AccessoriesShelf/components/MainProductArea/index.d.ts +27 -0
  14. package/dist/cjs/biz-components/AccessoriesShelf/components/MainProductArea/index.js +2 -0
  15. package/dist/cjs/biz-components/AccessoriesShelf/components/MainProductArea/index.js.map +7 -0
  16. package/dist/cjs/biz-components/AccessoriesShelf/components/ProductGrid/index.d.ts +11 -0
  17. package/dist/cjs/biz-components/AccessoriesShelf/components/ProductGrid/index.js +2 -0
  18. package/dist/cjs/biz-components/AccessoriesShelf/components/ProductGrid/index.js.map +7 -0
  19. package/dist/cjs/biz-components/AccessoriesShelf/components/PromoBanner/index.d.ts +10 -0
  20. package/dist/cjs/biz-components/AccessoriesShelf/components/PromoBanner/index.js +2 -0
  21. package/dist/cjs/biz-components/AccessoriesShelf/components/PromoBanner/index.js.map +7 -0
  22. package/dist/cjs/biz-components/AccessoriesShelf/components/SectionHeader/index.d.ts +9 -0
  23. package/dist/cjs/biz-components/AccessoriesShelf/components/SectionHeader/index.js +2 -0
  24. package/dist/cjs/biz-components/AccessoriesShelf/components/SectionHeader/index.js.map +7 -0
  25. package/dist/cjs/biz-components/AccessoriesShelf/index.d.ts +8 -0
  26. package/dist/cjs/biz-components/AccessoriesShelf/index.js +2 -0
  27. package/dist/cjs/biz-components/AccessoriesShelf/index.js.map +7 -0
  28. package/dist/cjs/biz-components/AccessoriesShelf/product.d.ts +280 -0
  29. package/dist/cjs/biz-components/AccessoriesShelf/product.js +2 -0
  30. package/dist/cjs/biz-components/AccessoriesShelf/product.js.map +7 -0
  31. package/dist/cjs/biz-components/AccessoriesShelf/types.d.ts +43 -0
  32. package/dist/cjs/biz-components/AccessoriesShelf/types.js +2 -0
  33. package/dist/cjs/biz-components/AccessoriesShelf/types.js.map +7 -0
  34. package/dist/cjs/biz-components/AccordionCards/index.d.ts +1 -1
  35. package/dist/cjs/biz-components/ActiveShelf/index.d.ts +1 -1
  36. package/dist/cjs/biz-components/ActivityMechanism/index.js +1 -1
  37. package/dist/cjs/biz-components/ActivityMechanism/index.js.map +3 -3
  38. package/dist/cjs/biz-components/ActivitySchedule/index.d.ts +1 -1
  39. package/dist/cjs/biz-components/ActivitySchedule/index.js +1 -1
  40. package/dist/cjs/biz-components/ActivitySchedule/index.js.map +3 -3
  41. package/dist/cjs/biz-components/AiuiProvider/index.d.ts +6 -0
  42. package/dist/cjs/biz-components/AiuiProvider/index.js +1 -1
  43. package/dist/cjs/biz-components/AiuiProvider/index.js.map +3 -3
  44. package/dist/cjs/biz-components/AnchorNavigation/index.d.ts +1 -1
  45. package/dist/cjs/biz-components/AnchorNavigation/index.js +1 -1
  46. package/dist/cjs/biz-components/AnchorNavigation/index.js.map +3 -3
  47. package/dist/cjs/biz-components/AplusDesc/index.d.ts +1 -1
  48. package/dist/cjs/biz-components/BrandCardLink/BrandCardLink.d.ts +1 -1
  49. package/dist/cjs/biz-components/BrandCardLink/BrandCardLink.js +1 -1
  50. package/dist/cjs/biz-components/BrandCardLink/BrandCardLink.js.map +3 -3
  51. package/dist/cjs/biz-components/BrandEquity/BrandEquity.d.ts +1 -1
  52. package/dist/cjs/biz-components/BrandEquity/BrandEquity.js +1 -1
  53. package/dist/cjs/biz-components/BrandEquity/BrandEquity.js.map +3 -3
  54. package/dist/cjs/biz-components/BuyOneGetOneShelf/ProductCard.d.ts +1 -1
  55. package/dist/cjs/biz-components/BuyOneGetOneShelf/ProductCard.js +1 -1
  56. package/dist/cjs/biz-components/BuyOneGetOneShelf/ProductCard.js.map +3 -3
  57. package/dist/cjs/biz-components/BuyOneGetOneShelf/context.d.ts +4 -0
  58. package/dist/cjs/biz-components/BuyOneGetOneShelf/context.js +2 -0
  59. package/dist/cjs/biz-components/BuyOneGetOneShelf/context.js.map +7 -0
  60. package/dist/cjs/biz-components/BuyOneGetOneShelf/types.d.ts +1 -1
  61. package/dist/cjs/biz-components/BuyOneGetOneShelf/types.js.map +1 -1
  62. package/dist/cjs/biz-components/Category/SwiperCategory.js +1 -1
  63. package/dist/cjs/biz-components/Category/SwiperCategory.js.map +3 -3
  64. package/dist/cjs/biz-components/Category/index.d.ts +1 -1
  65. package/dist/cjs/biz-components/Category/index.js +1 -1
  66. package/dist/cjs/biz-components/Category/index.js.map +3 -3
  67. package/dist/cjs/biz-components/CreativeModule/index.d.ts +1 -1
  68. package/dist/cjs/biz-components/DownLoad/index.d.ts +1 -1
  69. package/dist/cjs/biz-components/Evaluate/index.d.ts +1 -1
  70. package/dist/cjs/biz-components/Evaluate/index.js +1 -1
  71. package/dist/cjs/biz-components/Evaluate/index.js.map +3 -3
  72. package/dist/cjs/biz-components/EventSchedule/index.d.ts +1 -1
  73. package/dist/cjs/biz-components/EventSchedule/index.js +1 -1
  74. package/dist/cjs/biz-components/EventSchedule/index.js.map +3 -3
  75. package/dist/cjs/biz-components/Faq/Faq.d.ts +1 -1
  76. package/dist/cjs/biz-components/FeatureCards/FeatureCards.d.ts +1 -1
  77. package/dist/cjs/biz-components/FeatureCards/FeatureCards.js +1 -1
  78. package/dist/cjs/biz-components/FeatureCards/FeatureCards.js.map +3 -3
  79. package/dist/cjs/biz-components/FeatureShowcase/FeatureShowcase.d.ts +1 -1
  80. package/dist/cjs/biz-components/FeaturedBlogPosts/index.d.ts +1 -1
  81. package/dist/cjs/biz-components/FeaturedBlogPosts/index.js +1 -1
  82. package/dist/cjs/biz-components/FeaturedBlogPosts/index.js.map +2 -2
  83. package/dist/cjs/biz-components/Features/index.d.ts +1 -1
  84. package/dist/cjs/biz-components/FootCharger/index.d.ts +1 -1
  85. package/dist/cjs/biz-components/FooterNavigation/index.d.ts +1 -1
  86. package/dist/cjs/biz-components/FooterNavigation/index.js +1 -1
  87. package/dist/cjs/biz-components/FooterNavigation/index.js.map +3 -3
  88. package/dist/cjs/biz-components/GiftBox/index.d.ts +1 -1
  89. package/dist/cjs/biz-components/GiftShelf/index.d.ts +1 -1
  90. package/dist/cjs/biz-components/GiftShelf/index.js +1 -1
  91. package/dist/cjs/biz-components/GiftShelf/index.js.map +2 -2
  92. package/dist/cjs/biz-components/GiftTierShelf/index.d.ts +1 -1
  93. package/dist/cjs/biz-components/Graphic/index.d.ts +1 -1
  94. package/dist/cjs/biz-components/Graphic/index.js +1 -1
  95. package/dist/cjs/biz-components/Graphic/index.js.map +3 -3
  96. package/dist/cjs/biz-components/GraphicAttractionBlock/index.d.ts +1 -1
  97. package/dist/cjs/biz-components/GraphicOverlay/GraphicOverlay.d.ts +2 -2
  98. package/dist/cjs/biz-components/GraphicOverlay/GraphicOverlay.js +1 -1
  99. package/dist/cjs/biz-components/GraphicOverlay/GraphicOverlay.js.map +3 -3
  100. package/dist/cjs/biz-components/HeaderNavigation/MobileTextLinksMenu.d.ts +12 -0
  101. package/dist/cjs/biz-components/HeaderNavigation/MobileTextLinksMenu.js +2 -0
  102. package/dist/cjs/biz-components/HeaderNavigation/MobileTextLinksMenu.js.map +7 -0
  103. package/dist/cjs/biz-components/HeaderNavigation/MulticolDropdown.js +1 -1
  104. package/dist/cjs/biz-components/HeaderNavigation/MulticolDropdown.js.map +2 -2
  105. package/dist/cjs/biz-components/HeaderNavigation/TextLinksDropdown.d.ts +10 -0
  106. package/dist/cjs/biz-components/HeaderNavigation/TextLinksDropdown.js +2 -0
  107. package/dist/cjs/biz-components/HeaderNavigation/TextLinksDropdown.js.map +7 -0
  108. package/dist/cjs/biz-components/HeaderNavigation/index.d.ts +1 -1
  109. package/dist/cjs/biz-components/HeaderNavigation/index.js +1 -1
  110. package/dist/cjs/biz-components/HeaderNavigation/index.js.map +3 -3
  111. package/dist/cjs/biz-components/HeaderNavigation/types.d.ts +11 -1
  112. package/dist/cjs/biz-components/HeaderNavigation/types.js +1 -1
  113. package/dist/cjs/biz-components/HeaderNavigation/types.js.map +2 -2
  114. package/dist/cjs/biz-components/HeaderNavigation/withCategory.d.ts +1 -0
  115. package/dist/cjs/biz-components/HeaderNavigation/withCategory.js +1 -1
  116. package/dist/cjs/biz-components/HeaderNavigation/withCategory.js.map +3 -3
  117. package/dist/cjs/biz-components/HeroBanner/HeroBanner.d.ts +1 -1
  118. package/dist/cjs/biz-components/HeroBanner/HeroBanner.js +1 -1
  119. package/dist/cjs/biz-components/HeroBanner/HeroBanner.js.map +3 -3
  120. package/dist/cjs/biz-components/HeroBanner/HeroBannerCarousel.js +1 -1
  121. package/dist/cjs/biz-components/HeroBanner/HeroBannerCarousel.js.map +3 -3
  122. package/dist/cjs/biz-components/ImageOverlayShelf/index.d.ts +1 -1
  123. package/dist/cjs/biz-components/ImageTextFeature/ImageTextFeature.d.ts +1 -1
  124. package/dist/cjs/biz-components/ImageTextOverlay/index.d.ts +1 -1
  125. package/dist/cjs/biz-components/ImageTextOverlay/index.js +2 -2
  126. package/dist/cjs/biz-components/ImageTextOverlay/index.js.map +3 -3
  127. package/dist/cjs/biz-components/ImageWithText/ImageWithText.d.ts +1 -1
  128. package/dist/cjs/biz-components/ImageWithText/ImageWithText.js +1 -1
  129. package/dist/cjs/biz-components/ImageWithText/ImageWithText.js.map +3 -3
  130. package/dist/cjs/biz-components/Ksp/index.d.ts +1 -1
  131. package/dist/cjs/biz-components/Ksp/index.js +1 -1
  132. package/dist/cjs/biz-components/Ksp/index.js.map +3 -3
  133. package/dist/cjs/biz-components/Listing/BizProductProvider.d.ts +3 -1
  134. package/dist/cjs/biz-components/Listing/BizProductProvider.js +1 -1
  135. package/dist/cjs/biz-components/Listing/BizProductProvider.js.map +3 -3
  136. package/dist/cjs/biz-components/Listing/components/CartActionButtons/index.d.ts +9 -1
  137. package/dist/cjs/biz-components/Listing/components/CartActionButtons/index.js +1 -1
  138. package/dist/cjs/biz-components/Listing/components/CartActionButtons/index.js.map +3 -3
  139. package/dist/cjs/biz-components/Listing/components/PaidShipping/index.d.ts +1 -1
  140. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/BenefitsTab.d.ts +1 -1
  141. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductBundle/index.d.ts +1 -1
  142. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductExchangePurchase/index.d.ts +1 -1
  143. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductFreeGift/index.d.ts +1 -1
  144. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductHighlight/index.d.ts +1 -1
  145. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductOptions/index.d.ts +1 -1
  146. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGallery/index.d.ts +1 -1
  147. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductPaidShipping/index.d.ts +1 -1
  148. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductSummary/index.d.ts +1 -1
  149. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductSummary/index.js +1 -1
  150. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductSummary/index.js.map +3 -3
  151. package/dist/cjs/biz-components/Listing/components/PurchaseBar/ProductActions/index.js +1 -1
  152. package/dist/cjs/biz-components/Listing/components/PurchaseBar/ProductActions/index.js.map +3 -3
  153. package/dist/cjs/biz-components/Listing/components/PurchaseBar/index.d.ts +1 -1
  154. package/dist/cjs/biz-components/LotteryShared/ErrorModal.d.ts +4 -0
  155. package/dist/cjs/biz-components/LotteryShared/ErrorModal.js.map +2 -2
  156. package/dist/cjs/biz-components/LotteryShared/MyRewardsModal.d.ts +13 -13
  157. package/dist/cjs/biz-components/LotteryShared/MyRewardsModal.js +1 -1
  158. package/dist/cjs/biz-components/LotteryShared/MyRewardsModal.js.map +3 -3
  159. package/dist/cjs/biz-components/LotteryShared/types.d.ts +9 -0
  160. package/dist/cjs/biz-components/LotteryShared/types.js.map +2 -2
  161. package/dist/cjs/biz-components/Marquee/Marquee.d.ts +1 -1
  162. package/dist/cjs/biz-components/MarqueeReview/index.d.ts +1 -1
  163. package/dist/cjs/biz-components/Media/index.js +1 -1
  164. package/dist/cjs/biz-components/Media/index.js.map +3 -3
  165. package/dist/cjs/biz-components/MediaEndorsement/index.d.ts +1 -1
  166. package/dist/cjs/biz-components/MediaEndorsement/index.js +2 -2
  167. package/dist/cjs/biz-components/MediaEndorsement/index.js.map +3 -3
  168. package/dist/cjs/biz-components/MediaPlayerBase/index.d.ts +1 -1
  169. package/dist/cjs/biz-components/MediaPlayerBase/index.js +1 -1
  170. package/dist/cjs/biz-components/MediaPlayerBase/index.js.map +3 -3
  171. package/dist/cjs/biz-components/MediaPlayerMulti/index.d.ts +1 -1
  172. package/dist/cjs/biz-components/MediaPlayerMulti/index.js +1 -1
  173. package/dist/cjs/biz-components/MediaPlayerMulti/index.js.map +3 -3
  174. package/dist/cjs/biz-components/MediaPlayerSticky/index.d.ts +1 -1
  175. package/dist/cjs/biz-components/MediaPlayerSticky/index.js +1 -1
  176. package/dist/cjs/biz-components/MediaPlayerSticky/index.js.map +3 -3
  177. package/dist/cjs/biz-components/MediaSceneSwitcher/MediaSceneSwitcher.d.ts +1 -1
  178. package/dist/cjs/biz-components/MediaSceneSwitcher/MediaSceneSwitcher.js +2 -2
  179. package/dist/cjs/biz-components/MediaSceneSwitcher/MediaSceneSwitcher.js.map +3 -3
  180. package/dist/cjs/biz-components/MediaSceneSwitcherV2/index.d.ts +1 -1
  181. package/dist/cjs/biz-components/MediaSceneSwitcherV2/index.js +1 -1
  182. package/dist/cjs/biz-components/MediaSceneSwitcherV2/index.js.map +3 -3
  183. package/dist/cjs/biz-components/MediaShelf/index.d.ts +1 -1
  184. package/dist/cjs/biz-components/MediaTextOverlay/MediaTextOverlay.d.ts +1 -1
  185. package/dist/cjs/biz-components/MediaTextOverlay/MediaTextOverlay.js +1 -1
  186. package/dist/cjs/biz-components/MediaTextOverlay/MediaTextOverlay.js.map +3 -3
  187. package/dist/cjs/biz-components/MemberEquity/index.d.ts +1 -1
  188. package/dist/cjs/biz-components/MemberEquity/index.js +2 -2
  189. package/dist/cjs/biz-components/MemberEquity/index.js.map +3 -3
  190. package/dist/cjs/biz-components/MultiLayoutGraphicBlock/MultiLayoutGraphicBlock.d.ts +2 -2
  191. package/dist/cjs/biz-components/MultiLayoutGraphicBlock/MultiLayoutGraphicBlock.js +1 -1
  192. package/dist/cjs/biz-components/MultiLayoutGraphicBlock/MultiLayoutGraphicBlock.js.map +3 -3
  193. package/dist/cjs/biz-components/MultiLayoutGraphicBlock/MultiLayoutGraphicBlockCarousel.js +1 -1
  194. package/dist/cjs/biz-components/MultiLayoutGraphicBlock/MultiLayoutGraphicBlockCarousel.js.map +2 -2
  195. package/dist/cjs/biz-components/NavigationSearch/index.d.ts +1 -1
  196. package/dist/cjs/biz-components/NavigationSearch/index.js +2 -2
  197. package/dist/cjs/biz-components/NavigationSearch/index.js.map +2 -2
  198. package/dist/cjs/biz-components/NotifyMeDialog/NotifyMeDialog.d.ts +7 -0
  199. package/dist/cjs/biz-components/NotifyMeDialog/NotifyMeDialog.js +2 -0
  200. package/dist/cjs/biz-components/NotifyMeDialog/NotifyMeDialog.js.map +7 -0
  201. package/dist/cjs/biz-components/NotifyMeDialog/index.d.ts +2 -0
  202. package/dist/cjs/biz-components/NotifyMeDialog/index.js +2 -0
  203. package/dist/cjs/biz-components/NotifyMeDialog/index.js.map +7 -0
  204. package/dist/cjs/biz-components/NotifyMeDialog/types.d.ts +111 -0
  205. package/dist/cjs/biz-components/NotifyMeDialog/types.js +2 -0
  206. package/dist/cjs/biz-components/NotifyMeDialog/types.js.map +7 -0
  207. package/dist/cjs/biz-components/ProductCompare/index.d.ts +1 -1
  208. package/dist/cjs/biz-components/ProductCompare/index.js +1 -1
  209. package/dist/cjs/biz-components/ProductCompare/index.js.map +2 -2
  210. package/dist/cjs/biz-components/ProductHero/ProductHero.d.ts +1 -1
  211. package/dist/cjs/biz-components/ProductHero/ProductHero.js +1 -1
  212. package/dist/cjs/biz-components/ProductHero/ProductHero.js.map +3 -3
  213. package/dist/cjs/biz-components/ProductLottery/types.d.ts +62 -5
  214. package/dist/cjs/biz-components/ProductLottery/types.js +1 -1
  215. package/dist/cjs/biz-components/ProductLottery/types.js.map +2 -2
  216. package/dist/cjs/biz-components/ProductNav/ProductNav.d.ts +1 -1
  217. package/dist/cjs/biz-components/ProductNav/ProductNav.js +1 -1
  218. package/dist/cjs/biz-components/ProductNav/ProductNav.js.map +3 -3
  219. package/dist/cjs/biz-components/PromotionalBar/index.d.ts +1 -1
  220. package/dist/cjs/biz-components/PromotionalBar/index.js +1 -1
  221. package/dist/cjs/biz-components/PromotionalBar/index.js.map +3 -3
  222. package/dist/cjs/biz-components/SceneShelfV2/index.d.ts +1 -1
  223. package/dist/cjs/biz-components/SceneShelfV3/index.d.ts +1 -1
  224. package/dist/cjs/biz-components/SearchPage/index.js +1 -1
  225. package/dist/cjs/biz-components/SearchPage/index.js.map +3 -3
  226. package/dist/cjs/biz-components/SecondaryBanner/index.d.ts +1 -1
  227. package/dist/cjs/biz-components/SecondaryBanner/index.js +1 -1
  228. package/dist/cjs/biz-components/SecondaryBanner/index.js.map +2 -2
  229. package/dist/cjs/biz-components/SelectStore/index.d.ts +1 -1
  230. package/dist/cjs/biz-components/ShelfDisplay/index.d.ts +1 -1
  231. package/dist/cjs/biz-components/ShelfDisplay/shelfDisplayItem.js +1 -1
  232. package/dist/cjs/biz-components/ShelfDisplay/shelfDisplayItem.js.map +3 -3
  233. package/dist/cjs/biz-components/Slogan/index.d.ts +1 -1
  234. package/dist/cjs/biz-components/Spacer/index.d.ts +1 -1
  235. package/dist/cjs/biz-components/Specs/index.d.ts +1 -1
  236. package/dist/cjs/biz-components/Specs/index.js +1 -1
  237. package/dist/cjs/biz-components/Specs/index.js.map +3 -3
  238. package/dist/cjs/biz-components/SpecsComparison/SpecsComparison.d.ts +1 -1
  239. package/dist/cjs/biz-components/Subscribe/index.js +1 -1
  240. package/dist/cjs/biz-components/Subscribe/index.js.map +2 -2
  241. package/dist/cjs/biz-components/SwiperBox/index.js +1 -1
  242. package/dist/cjs/biz-components/SwiperBox/index.js.map +3 -3
  243. package/dist/cjs/biz-components/TabWithImage/TabWithImage.d.ts +1 -1
  244. package/dist/cjs/biz-components/Tabs/Tabs.d.ts +1 -1
  245. package/dist/cjs/biz-components/TabsGroup/index.d.ts +1 -1
  246. package/dist/cjs/biz-components/TabsWithMedia/TabsWithMedia.d.ts +1 -1
  247. package/dist/cjs/biz-components/TabsWithMedia/TabsWithMedia.js +1 -1
  248. package/dist/cjs/biz-components/TabsWithMedia/TabsWithMedia.js.map +3 -3
  249. package/dist/cjs/biz-components/ThreeDCarousel/ThreeDCarousel.d.ts +1 -1
  250. package/dist/cjs/biz-components/ThreeDCarousel/ThreeDCarousel.js +1 -1
  251. package/dist/cjs/biz-components/ThreeDCarousel/ThreeDCarousel.js.map +3 -3
  252. package/dist/cjs/biz-components/Title/index.d.ts +1 -1
  253. package/dist/cjs/biz-components/Title/index.js +1 -1
  254. package/dist/cjs/biz-components/Title/index.js.map +3 -3
  255. package/dist/cjs/biz-components/VideoFeature/VideoFeature.d.ts +1 -1
  256. package/dist/cjs/biz-components/VideoModal/index.d.ts +1 -0
  257. package/dist/cjs/biz-components/VideoModal/index.js +1 -1
  258. package/dist/cjs/biz-components/VideoModal/index.js.map +3 -3
  259. package/dist/cjs/biz-components/WheelLottery/index.js +1 -1
  260. package/dist/cjs/biz-components/WheelLottery/index.js.map +3 -3
  261. package/dist/cjs/biz-components/WhyChoose/WhyChoose.d.ts +1 -1
  262. package/dist/cjs/biz-components/index.d.ts +8 -0
  263. package/dist/cjs/biz-components/index.js +1 -1
  264. package/dist/cjs/biz-components/index.js.map +3 -3
  265. package/dist/cjs/components/Countdown.js +1 -1
  266. package/dist/cjs/components/Countdown.js.map +3 -3
  267. package/dist/cjs/components/alert.d.ts +1 -0
  268. package/dist/cjs/components/alert.js +1 -1
  269. package/dist/cjs/components/alert.js.map +2 -2
  270. package/dist/cjs/components/breadcrumb.d.ts +12 -0
  271. package/dist/cjs/components/breadcrumb.js +2 -0
  272. package/dist/cjs/components/breadcrumb.js.map +7 -0
  273. package/dist/cjs/components/checkbox.js +1 -1
  274. package/dist/cjs/components/checkbox.js.map +2 -2
  275. package/dist/cjs/components/dialog.js +1 -1
  276. package/dist/cjs/components/dialog.js.map +3 -3
  277. package/dist/cjs/components/index.d.ts +5 -0
  278. package/dist/cjs/components/index.js +1 -1
  279. package/dist/cjs/components/index.js.map +3 -3
  280. package/dist/cjs/components/input-number.d.ts +22 -0
  281. package/dist/cjs/components/input-number.js +1 -1
  282. package/dist/cjs/components/input-number.js.map +3 -3
  283. package/dist/cjs/components/link.js +1 -1
  284. package/dist/cjs/components/link.js.map +2 -2
  285. package/dist/cjs/components/otp-input.d.ts +18 -0
  286. package/dist/cjs/components/otp-input.js +2 -0
  287. package/dist/cjs/components/otp-input.js.map +7 -0
  288. package/dist/cjs/components/toast.d.ts +25 -0
  289. package/dist/cjs/components/toast.js +2 -0
  290. package/dist/cjs/components/toast.js.map +7 -0
  291. package/dist/cjs/helpers/index.d.ts +2 -2
  292. package/dist/cjs/helpers/index.js +1 -1
  293. package/dist/cjs/helpers/index.js.map +2 -2
  294. package/dist/cjs/helpers/isLexicalEmpty.d.ts +5 -0
  295. package/dist/cjs/helpers/isLexicalEmpty.js +1 -1
  296. package/dist/cjs/helpers/isLexicalEmpty.js.map +3 -3
  297. package/dist/cjs/helpers/priceFormatting.d.ts +5 -0
  298. package/dist/cjs/helpers/priceFormatting.js +1 -1
  299. package/dist/cjs/helpers/priceFormatting.js.map +3 -3
  300. package/dist/cjs/helpers/utils.d.ts +7 -1
  301. package/dist/cjs/helpers/utils.js +1 -1
  302. package/dist/cjs/helpers/utils.js.map +3 -3
  303. package/dist/cjs/hooks/useIsomorphicMediaQuery.d.ts +14 -0
  304. package/dist/cjs/hooks/useIsomorphicMediaQuery.js +2 -0
  305. package/dist/cjs/hooks/useIsomorphicMediaQuery.js.map +7 -0
  306. package/dist/cjs/hooks/useProductListTrack.d.ts +43 -0
  307. package/dist/cjs/hooks/useProductListTrack.js +2 -0
  308. package/dist/cjs/hooks/useProductListTrack.js.map +7 -0
  309. package/dist/cjs/index.d.ts +10 -0
  310. package/dist/cjs/index.js +1 -1
  311. package/dist/cjs/index.js.map +3 -3
  312. package/dist/esm/biz-components/AccessoriesShelf/components/AccessoriesProductGrid/index.d.ts +11 -0
  313. package/dist/esm/biz-components/AccessoriesShelf/components/AccessoriesProductGrid/index.js +2 -0
  314. package/dist/esm/biz-components/AccessoriesShelf/components/AccessoriesProductGrid/index.js.map +7 -0
  315. package/dist/esm/biz-components/AccessoriesShelf/components/AccessoryShelf/ProductCard.d.ts +23 -0
  316. package/dist/esm/biz-components/AccessoriesShelf/components/AccessoryShelf/ProductCard.js +2 -0
  317. package/dist/esm/biz-components/AccessoriesShelf/components/AccessoryShelf/ProductCard.js.map +7 -0
  318. package/dist/esm/biz-components/AccessoriesShelf/components/AccessoryShelf/index.d.ts +40 -0
  319. package/dist/esm/biz-components/AccessoriesShelf/components/AccessoryShelf/index.js +2 -0
  320. package/dist/esm/biz-components/AccessoriesShelf/components/AccessoryShelf/index.js.map +7 -0
  321. package/dist/esm/biz-components/AccessoriesShelf/components/AccessoryShelf/types.d.ts +103 -0
  322. package/dist/esm/biz-components/AccessoriesShelf/components/AccessoryShelf/types.js +1 -0
  323. package/dist/esm/biz-components/AccessoriesShelf/components/AccessoryShelf/types.js.map +7 -0
  324. package/dist/esm/biz-components/AccessoriesShelf/components/MainProductArea/index.d.ts +27 -0
  325. package/dist/esm/biz-components/AccessoriesShelf/components/MainProductArea/index.js +2 -0
  326. package/dist/esm/biz-components/AccessoriesShelf/components/MainProductArea/index.js.map +7 -0
  327. package/dist/esm/biz-components/AccessoriesShelf/components/ProductGrid/index.d.ts +11 -0
  328. package/dist/esm/biz-components/AccessoriesShelf/components/ProductGrid/index.js +2 -0
  329. package/dist/esm/biz-components/AccessoriesShelf/components/ProductGrid/index.js.map +7 -0
  330. package/dist/esm/biz-components/AccessoriesShelf/components/PromoBanner/index.d.ts +10 -0
  331. package/dist/esm/biz-components/AccessoriesShelf/components/PromoBanner/index.js +2 -0
  332. package/dist/esm/biz-components/AccessoriesShelf/components/PromoBanner/index.js.map +7 -0
  333. package/dist/esm/biz-components/AccessoriesShelf/components/SectionHeader/index.d.ts +9 -0
  334. package/dist/esm/biz-components/AccessoriesShelf/components/SectionHeader/index.js +2 -0
  335. package/dist/esm/biz-components/AccessoriesShelf/components/SectionHeader/index.js.map +7 -0
  336. package/dist/esm/biz-components/AccessoriesShelf/index.d.ts +8 -0
  337. package/dist/esm/biz-components/AccessoriesShelf/index.js +2 -0
  338. package/dist/esm/biz-components/AccessoriesShelf/index.js.map +7 -0
  339. package/dist/esm/biz-components/AccessoriesShelf/product.d.ts +280 -0
  340. package/dist/esm/biz-components/AccessoriesShelf/product.js +1 -0
  341. package/dist/esm/biz-components/AccessoriesShelf/product.js.map +7 -0
  342. package/dist/esm/biz-components/AccessoriesShelf/types.d.ts +43 -0
  343. package/dist/esm/biz-components/AccessoriesShelf/types.js +1 -0
  344. package/dist/esm/biz-components/AccessoriesShelf/types.js.map +7 -0
  345. package/dist/esm/biz-components/AccordionCards/index.d.ts +1 -1
  346. package/dist/esm/biz-components/ActiveShelf/index.d.ts +1 -1
  347. package/dist/esm/biz-components/ActivityMechanism/index.js +1 -1
  348. package/dist/esm/biz-components/ActivityMechanism/index.js.map +3 -3
  349. package/dist/esm/biz-components/ActivitySchedule/index.d.ts +1 -1
  350. package/dist/esm/biz-components/ActivitySchedule/index.js +1 -1
  351. package/dist/esm/biz-components/ActivitySchedule/index.js.map +3 -3
  352. package/dist/esm/biz-components/AiuiProvider/index.d.ts +6 -0
  353. package/dist/esm/biz-components/AiuiProvider/index.js +1 -1
  354. package/dist/esm/biz-components/AiuiProvider/index.js.map +3 -3
  355. package/dist/esm/biz-components/AnchorNavigation/index.d.ts +1 -1
  356. package/dist/esm/biz-components/AnchorNavigation/index.js +1 -1
  357. package/dist/esm/biz-components/AnchorNavigation/index.js.map +3 -3
  358. package/dist/esm/biz-components/AplusDesc/index.d.ts +1 -1
  359. package/dist/esm/biz-components/BrandCardLink/BrandCardLink.d.ts +1 -1
  360. package/dist/esm/biz-components/BrandCardLink/BrandCardLink.js +1 -1
  361. package/dist/esm/biz-components/BrandCardLink/BrandCardLink.js.map +3 -3
  362. package/dist/esm/biz-components/BrandEquity/BrandEquity.d.ts +1 -1
  363. package/dist/esm/biz-components/BrandEquity/BrandEquity.js +1 -1
  364. package/dist/esm/biz-components/BrandEquity/BrandEquity.js.map +3 -3
  365. package/dist/esm/biz-components/BuyOneGetOneShelf/ProductCard.d.ts +1 -1
  366. package/dist/esm/biz-components/BuyOneGetOneShelf/ProductCard.js +1 -1
  367. package/dist/esm/biz-components/BuyOneGetOneShelf/ProductCard.js.map +3 -3
  368. package/dist/esm/biz-components/BuyOneGetOneShelf/context.d.ts +4 -0
  369. package/dist/esm/biz-components/BuyOneGetOneShelf/context.js +2 -0
  370. package/dist/esm/biz-components/BuyOneGetOneShelf/context.js.map +7 -0
  371. package/dist/esm/biz-components/BuyOneGetOneShelf/types.d.ts +1 -1
  372. package/dist/esm/biz-components/BuyOneGetOneShelf/types.js.map +1 -1
  373. package/dist/esm/biz-components/Category/SwiperCategory.js +1 -1
  374. package/dist/esm/biz-components/Category/SwiperCategory.js.map +3 -3
  375. package/dist/esm/biz-components/Category/index.d.ts +1 -1
  376. package/dist/esm/biz-components/Category/index.js +1 -1
  377. package/dist/esm/biz-components/Category/index.js.map +3 -3
  378. package/dist/esm/biz-components/CreativeModule/index.d.ts +1 -1
  379. package/dist/esm/biz-components/DownLoad/index.d.ts +1 -1
  380. package/dist/esm/biz-components/Evaluate/index.d.ts +1 -1
  381. package/dist/esm/biz-components/Evaluate/index.js +1 -1
  382. package/dist/esm/biz-components/Evaluate/index.js.map +3 -3
  383. package/dist/esm/biz-components/EventSchedule/index.d.ts +1 -1
  384. package/dist/esm/biz-components/EventSchedule/index.js +1 -1
  385. package/dist/esm/biz-components/EventSchedule/index.js.map +3 -3
  386. package/dist/esm/biz-components/Faq/Faq.d.ts +1 -1
  387. package/dist/esm/biz-components/FeatureCards/FeatureCards.d.ts +1 -1
  388. package/dist/esm/biz-components/FeatureCards/FeatureCards.js +1 -1
  389. package/dist/esm/biz-components/FeatureCards/FeatureCards.js.map +3 -3
  390. package/dist/esm/biz-components/FeatureShowcase/FeatureShowcase.d.ts +1 -1
  391. package/dist/esm/biz-components/FeaturedBlogPosts/index.d.ts +1 -1
  392. package/dist/esm/biz-components/FeaturedBlogPosts/index.js +1 -1
  393. package/dist/esm/biz-components/FeaturedBlogPosts/index.js.map +2 -2
  394. package/dist/esm/biz-components/Features/index.d.ts +1 -1
  395. package/dist/esm/biz-components/FootCharger/index.d.ts +1 -1
  396. package/dist/esm/biz-components/FooterNavigation/index.d.ts +1 -1
  397. package/dist/esm/biz-components/FooterNavigation/index.js +1 -1
  398. package/dist/esm/biz-components/FooterNavigation/index.js.map +3 -3
  399. package/dist/esm/biz-components/GiftBox/index.d.ts +1 -1
  400. package/dist/esm/biz-components/GiftShelf/index.d.ts +1 -1
  401. package/dist/esm/biz-components/GiftShelf/index.js +1 -1
  402. package/dist/esm/biz-components/GiftShelf/index.js.map +2 -2
  403. package/dist/esm/biz-components/GiftTierShelf/index.d.ts +1 -1
  404. package/dist/esm/biz-components/Graphic/index.d.ts +1 -1
  405. package/dist/esm/biz-components/Graphic/index.js +1 -1
  406. package/dist/esm/biz-components/Graphic/index.js.map +3 -3
  407. package/dist/esm/biz-components/GraphicAttractionBlock/index.d.ts +1 -1
  408. package/dist/esm/biz-components/GraphicOverlay/GraphicOverlay.d.ts +2 -2
  409. package/dist/esm/biz-components/GraphicOverlay/GraphicOverlay.js +1 -1
  410. package/dist/esm/biz-components/GraphicOverlay/GraphicOverlay.js.map +3 -3
  411. package/dist/esm/biz-components/HeaderNavigation/MobileTextLinksMenu.d.ts +12 -0
  412. package/dist/esm/biz-components/HeaderNavigation/MobileTextLinksMenu.js +2 -0
  413. package/dist/esm/biz-components/HeaderNavigation/MobileTextLinksMenu.js.map +7 -0
  414. package/dist/esm/biz-components/HeaderNavigation/MulticolDropdown.js +1 -1
  415. package/dist/esm/biz-components/HeaderNavigation/MulticolDropdown.js.map +2 -2
  416. package/dist/esm/biz-components/HeaderNavigation/TextLinksDropdown.d.ts +10 -0
  417. package/dist/esm/biz-components/HeaderNavigation/TextLinksDropdown.js +2 -0
  418. package/dist/esm/biz-components/HeaderNavigation/TextLinksDropdown.js.map +7 -0
  419. package/dist/esm/biz-components/HeaderNavigation/index.d.ts +1 -1
  420. package/dist/esm/biz-components/HeaderNavigation/index.js +1 -1
  421. package/dist/esm/biz-components/HeaderNavigation/index.js.map +3 -3
  422. package/dist/esm/biz-components/HeaderNavigation/types.d.ts +11 -1
  423. package/dist/esm/biz-components/HeaderNavigation/types.js +1 -1
  424. package/dist/esm/biz-components/HeaderNavigation/types.js.map +2 -2
  425. package/dist/esm/biz-components/HeaderNavigation/withCategory.d.ts +1 -0
  426. package/dist/esm/biz-components/HeaderNavigation/withCategory.js +1 -1
  427. package/dist/esm/biz-components/HeaderNavigation/withCategory.js.map +3 -3
  428. package/dist/esm/biz-components/HeroBanner/HeroBanner.d.ts +1 -1
  429. package/dist/esm/biz-components/HeroBanner/HeroBanner.js +1 -1
  430. package/dist/esm/biz-components/HeroBanner/HeroBanner.js.map +3 -3
  431. package/dist/esm/biz-components/HeroBanner/HeroBannerCarousel.js +1 -1
  432. package/dist/esm/biz-components/HeroBanner/HeroBannerCarousel.js.map +3 -3
  433. package/dist/esm/biz-components/ImageOverlayShelf/index.d.ts +1 -1
  434. package/dist/esm/biz-components/ImageTextFeature/ImageTextFeature.d.ts +1 -1
  435. package/dist/esm/biz-components/ImageTextOverlay/index.d.ts +1 -1
  436. package/dist/esm/biz-components/ImageTextOverlay/index.js +2 -2
  437. package/dist/esm/biz-components/ImageTextOverlay/index.js.map +3 -3
  438. package/dist/esm/biz-components/ImageWithText/ImageWithText.d.ts +1 -1
  439. package/dist/esm/biz-components/ImageWithText/ImageWithText.js +1 -1
  440. package/dist/esm/biz-components/ImageWithText/ImageWithText.js.map +3 -3
  441. package/dist/esm/biz-components/Ksp/index.d.ts +1 -1
  442. package/dist/esm/biz-components/Ksp/index.js +1 -1
  443. package/dist/esm/biz-components/Ksp/index.js.map +3 -3
  444. package/dist/esm/biz-components/Listing/BizProductProvider.d.ts +3 -1
  445. package/dist/esm/biz-components/Listing/BizProductProvider.js +1 -1
  446. package/dist/esm/biz-components/Listing/BizProductProvider.js.map +3 -3
  447. package/dist/esm/biz-components/Listing/components/CartActionButtons/index.d.ts +9 -1
  448. package/dist/esm/biz-components/Listing/components/CartActionButtons/index.js +1 -1
  449. package/dist/esm/biz-components/Listing/components/CartActionButtons/index.js.map +3 -3
  450. package/dist/esm/biz-components/Listing/components/PaidShipping/index.d.ts +1 -1
  451. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/BenefitsTab.d.ts +1 -1
  452. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductBundle/index.d.ts +1 -1
  453. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductExchangePurchase/index.d.ts +1 -1
  454. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductFreeGift/index.d.ts +1 -1
  455. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductHighlight/index.d.ts +1 -1
  456. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductOptions/index.d.ts +1 -1
  457. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/index.d.ts +1 -1
  458. package/dist/esm/biz-components/Listing/components/ProductCard/ProductPaidShipping/index.d.ts +1 -1
  459. package/dist/esm/biz-components/Listing/components/ProductCard/ProductSummary/index.d.ts +1 -1
  460. package/dist/esm/biz-components/Listing/components/ProductCard/ProductSummary/index.js +1 -1
  461. package/dist/esm/biz-components/Listing/components/ProductCard/ProductSummary/index.js.map +3 -3
  462. package/dist/esm/biz-components/Listing/components/PurchaseBar/ProductActions/index.js +1 -1
  463. package/dist/esm/biz-components/Listing/components/PurchaseBar/ProductActions/index.js.map +3 -3
  464. package/dist/esm/biz-components/Listing/components/PurchaseBar/index.d.ts +1 -1
  465. package/dist/esm/biz-components/LotteryShared/ErrorModal.d.ts +4 -0
  466. package/dist/esm/biz-components/LotteryShared/ErrorModal.js.map +2 -2
  467. package/dist/esm/biz-components/LotteryShared/MyRewardsModal.d.ts +13 -13
  468. package/dist/esm/biz-components/LotteryShared/MyRewardsModal.js +1 -1
  469. package/dist/esm/biz-components/LotteryShared/MyRewardsModal.js.map +3 -3
  470. package/dist/esm/biz-components/LotteryShared/types.d.ts +9 -0
  471. package/dist/esm/biz-components/LotteryShared/types.js.map +2 -2
  472. package/dist/esm/biz-components/Marquee/Marquee.d.ts +1 -1
  473. package/dist/esm/biz-components/MarqueeReview/index.d.ts +1 -1
  474. package/dist/esm/biz-components/Media/index.js +1 -1
  475. package/dist/esm/biz-components/Media/index.js.map +3 -3
  476. package/dist/esm/biz-components/MediaEndorsement/index.d.ts +1 -1
  477. package/dist/esm/biz-components/MediaEndorsement/index.js +2 -2
  478. package/dist/esm/biz-components/MediaEndorsement/index.js.map +3 -3
  479. package/dist/esm/biz-components/MediaPlayerBase/index.d.ts +1 -1
  480. package/dist/esm/biz-components/MediaPlayerBase/index.js +1 -1
  481. package/dist/esm/biz-components/MediaPlayerBase/index.js.map +3 -3
  482. package/dist/esm/biz-components/MediaPlayerMulti/index.d.ts +1 -1
  483. package/dist/esm/biz-components/MediaPlayerMulti/index.js +1 -1
  484. package/dist/esm/biz-components/MediaPlayerMulti/index.js.map +3 -3
  485. package/dist/esm/biz-components/MediaPlayerSticky/index.d.ts +1 -1
  486. package/dist/esm/biz-components/MediaPlayerSticky/index.js +1 -1
  487. package/dist/esm/biz-components/MediaPlayerSticky/index.js.map +3 -3
  488. package/dist/esm/biz-components/MediaSceneSwitcher/MediaSceneSwitcher.d.ts +1 -1
  489. package/dist/esm/biz-components/MediaSceneSwitcher/MediaSceneSwitcher.js +2 -2
  490. package/dist/esm/biz-components/MediaSceneSwitcher/MediaSceneSwitcher.js.map +3 -3
  491. package/dist/esm/biz-components/MediaSceneSwitcherV2/index.d.ts +1 -1
  492. package/dist/esm/biz-components/MediaSceneSwitcherV2/index.js +1 -1
  493. package/dist/esm/biz-components/MediaSceneSwitcherV2/index.js.map +3 -3
  494. package/dist/esm/biz-components/MediaShelf/index.d.ts +1 -1
  495. package/dist/esm/biz-components/MediaTextOverlay/MediaTextOverlay.d.ts +1 -1
  496. package/dist/esm/biz-components/MediaTextOverlay/MediaTextOverlay.js +1 -1
  497. package/dist/esm/biz-components/MediaTextOverlay/MediaTextOverlay.js.map +3 -3
  498. package/dist/esm/biz-components/MemberEquity/index.d.ts +1 -1
  499. package/dist/esm/biz-components/MemberEquity/index.js +2 -2
  500. package/dist/esm/biz-components/MemberEquity/index.js.map +3 -3
  501. package/dist/esm/biz-components/MultiLayoutGraphicBlock/MultiLayoutGraphicBlock.d.ts +2 -2
  502. package/dist/esm/biz-components/MultiLayoutGraphicBlock/MultiLayoutGraphicBlock.js +1 -1
  503. package/dist/esm/biz-components/MultiLayoutGraphicBlock/MultiLayoutGraphicBlock.js.map +3 -3
  504. package/dist/esm/biz-components/MultiLayoutGraphicBlock/MultiLayoutGraphicBlockCarousel.js +1 -1
  505. package/dist/esm/biz-components/MultiLayoutGraphicBlock/MultiLayoutGraphicBlockCarousel.js.map +2 -2
  506. package/dist/esm/biz-components/NavigationSearch/index.d.ts +1 -1
  507. package/dist/esm/biz-components/NavigationSearch/index.js +2 -2
  508. package/dist/esm/biz-components/NavigationSearch/index.js.map +3 -3
  509. package/dist/esm/biz-components/NotifyMeDialog/NotifyMeDialog.d.ts +7 -0
  510. package/dist/esm/biz-components/NotifyMeDialog/NotifyMeDialog.js +2 -0
  511. package/dist/esm/biz-components/NotifyMeDialog/NotifyMeDialog.js.map +7 -0
  512. package/dist/esm/biz-components/NotifyMeDialog/index.d.ts +2 -0
  513. package/dist/esm/biz-components/NotifyMeDialog/index.js +2 -0
  514. package/dist/esm/biz-components/NotifyMeDialog/index.js.map +7 -0
  515. package/dist/esm/biz-components/NotifyMeDialog/types.d.ts +111 -0
  516. package/dist/esm/biz-components/NotifyMeDialog/types.js +1 -0
  517. package/dist/esm/biz-components/NotifyMeDialog/types.js.map +7 -0
  518. package/dist/esm/biz-components/ProductCompare/index.d.ts +1 -1
  519. package/dist/esm/biz-components/ProductCompare/index.js +1 -1
  520. package/dist/esm/biz-components/ProductCompare/index.js.map +2 -2
  521. package/dist/esm/biz-components/ProductHero/ProductHero.d.ts +1 -1
  522. package/dist/esm/biz-components/ProductHero/ProductHero.js +1 -1
  523. package/dist/esm/biz-components/ProductHero/ProductHero.js.map +3 -3
  524. package/dist/esm/biz-components/ProductLottery/types.d.ts +62 -5
  525. package/dist/esm/biz-components/ProductLottery/types.js.map +2 -2
  526. package/dist/esm/biz-components/ProductNav/ProductNav.d.ts +1 -1
  527. package/dist/esm/biz-components/ProductNav/ProductNav.js +1 -1
  528. package/dist/esm/biz-components/ProductNav/ProductNav.js.map +3 -3
  529. package/dist/esm/biz-components/PromotionalBar/index.d.ts +1 -1
  530. package/dist/esm/biz-components/PromotionalBar/index.js +1 -1
  531. package/dist/esm/biz-components/PromotionalBar/index.js.map +3 -3
  532. package/dist/esm/biz-components/SceneShelfV2/index.d.ts +1 -1
  533. package/dist/esm/biz-components/SceneShelfV3/index.d.ts +1 -1
  534. package/dist/esm/biz-components/SearchPage/index.js +1 -1
  535. package/dist/esm/biz-components/SearchPage/index.js.map +3 -3
  536. package/dist/esm/biz-components/SecondaryBanner/index.d.ts +1 -1
  537. package/dist/esm/biz-components/SecondaryBanner/index.js +1 -1
  538. package/dist/esm/biz-components/SecondaryBanner/index.js.map +2 -2
  539. package/dist/esm/biz-components/SelectStore/index.d.ts +1 -1
  540. package/dist/esm/biz-components/ShelfDisplay/index.d.ts +1 -1
  541. package/dist/esm/biz-components/ShelfDisplay/shelfDisplayItem.js +1 -1
  542. package/dist/esm/biz-components/ShelfDisplay/shelfDisplayItem.js.map +3 -3
  543. package/dist/esm/biz-components/Slogan/index.d.ts +1 -1
  544. package/dist/esm/biz-components/Spacer/index.d.ts +1 -1
  545. package/dist/esm/biz-components/Specs/index.d.ts +1 -1
  546. package/dist/esm/biz-components/Specs/index.js +1 -1
  547. package/dist/esm/biz-components/Specs/index.js.map +3 -3
  548. package/dist/esm/biz-components/SpecsComparison/SpecsComparison.d.ts +1 -1
  549. package/dist/esm/biz-components/Subscribe/index.js +1 -1
  550. package/dist/esm/biz-components/Subscribe/index.js.map +2 -2
  551. package/dist/esm/biz-components/SwiperBox/index.js +1 -1
  552. package/dist/esm/biz-components/SwiperBox/index.js.map +3 -3
  553. package/dist/esm/biz-components/TabWithImage/TabWithImage.d.ts +1 -1
  554. package/dist/esm/biz-components/Tabs/Tabs.d.ts +1 -1
  555. package/dist/esm/biz-components/TabsGroup/index.d.ts +1 -1
  556. package/dist/esm/biz-components/TabsWithMedia/TabsWithMedia.d.ts +1 -1
  557. package/dist/esm/biz-components/TabsWithMedia/TabsWithMedia.js +1 -1
  558. package/dist/esm/biz-components/TabsWithMedia/TabsWithMedia.js.map +3 -3
  559. package/dist/esm/biz-components/ThreeDCarousel/ThreeDCarousel.d.ts +1 -1
  560. package/dist/esm/biz-components/ThreeDCarousel/ThreeDCarousel.js +1 -1
  561. package/dist/esm/biz-components/ThreeDCarousel/ThreeDCarousel.js.map +3 -3
  562. package/dist/esm/biz-components/Title/index.d.ts +1 -1
  563. package/dist/esm/biz-components/Title/index.js +1 -1
  564. package/dist/esm/biz-components/Title/index.js.map +3 -3
  565. package/dist/esm/biz-components/VideoFeature/VideoFeature.d.ts +1 -1
  566. package/dist/esm/biz-components/VideoModal/index.d.ts +1 -0
  567. package/dist/esm/biz-components/VideoModal/index.js +1 -1
  568. package/dist/esm/biz-components/VideoModal/index.js.map +3 -3
  569. package/dist/esm/biz-components/WheelLottery/index.js +1 -1
  570. package/dist/esm/biz-components/WheelLottery/index.js.map +2 -2
  571. package/dist/esm/biz-components/WhyChoose/WhyChoose.d.ts +1 -1
  572. package/dist/esm/biz-components/index.d.ts +8 -0
  573. package/dist/esm/biz-components/index.js +1 -1
  574. package/dist/esm/biz-components/index.js.map +3 -3
  575. package/dist/esm/components/Countdown.js +1 -1
  576. package/dist/esm/components/Countdown.js.map +3 -3
  577. package/dist/esm/components/alert.d.ts +1 -0
  578. package/dist/esm/components/alert.js +1 -1
  579. package/dist/esm/components/alert.js.map +2 -2
  580. package/dist/esm/components/breadcrumb.d.ts +12 -0
  581. package/dist/esm/components/breadcrumb.js +2 -0
  582. package/dist/esm/components/breadcrumb.js.map +7 -0
  583. package/dist/esm/components/checkbox.js +1 -1
  584. package/dist/esm/components/checkbox.js.map +2 -2
  585. package/dist/esm/components/dialog.js +1 -1
  586. package/dist/esm/components/dialog.js.map +3 -3
  587. package/dist/esm/components/index.d.ts +5 -0
  588. package/dist/esm/components/index.js +1 -1
  589. package/dist/esm/components/index.js.map +3 -3
  590. package/dist/esm/components/input-number.d.ts +22 -0
  591. package/dist/esm/components/input-number.js +1 -1
  592. package/dist/esm/components/input-number.js.map +3 -3
  593. package/dist/esm/components/link.js +1 -1
  594. package/dist/esm/components/link.js.map +2 -2
  595. package/dist/esm/components/otp-input.d.ts +18 -0
  596. package/dist/esm/components/otp-input.js +2 -0
  597. package/dist/esm/components/otp-input.js.map +7 -0
  598. package/dist/esm/components/toast.d.ts +25 -0
  599. package/dist/esm/components/toast.js +2 -0
  600. package/dist/esm/components/toast.js.map +7 -0
  601. package/dist/esm/helpers/index.d.ts +2 -2
  602. package/dist/esm/helpers/index.js +1 -1
  603. package/dist/esm/helpers/index.js.map +3 -3
  604. package/dist/esm/helpers/isLexicalEmpty.d.ts +5 -0
  605. package/dist/esm/helpers/isLexicalEmpty.js +1 -1
  606. package/dist/esm/helpers/isLexicalEmpty.js.map +3 -3
  607. package/dist/esm/helpers/priceFormatting.d.ts +5 -0
  608. package/dist/esm/helpers/priceFormatting.js +1 -1
  609. package/dist/esm/helpers/priceFormatting.js.map +3 -3
  610. package/dist/esm/helpers/utils.d.ts +7 -1
  611. package/dist/esm/helpers/utils.js +1 -1
  612. package/dist/esm/helpers/utils.js.map +3 -3
  613. package/dist/esm/hooks/useIsomorphicMediaQuery.d.ts +14 -0
  614. package/dist/esm/hooks/useIsomorphicMediaQuery.js +2 -0
  615. package/dist/esm/hooks/useIsomorphicMediaQuery.js.map +7 -0
  616. package/dist/esm/hooks/useProductListTrack.d.ts +43 -0
  617. package/dist/esm/hooks/useProductListTrack.js +2 -0
  618. package/dist/esm/hooks/useProductListTrack.js.map +7 -0
  619. package/dist/esm/index.d.ts +10 -0
  620. package/dist/esm/index.js +1 -1
  621. package/dist/esm/index.js.map +3 -3
  622. package/package.json +1 -1
  623. package/style.css +208 -10
@@ -1,2 +1,2 @@
1
- "use client";import{Fragment as D,jsx as t,jsxs as l}from"react/jsx-runtime";import g,{useImperativeHandle as F,useRef as T}from"react";import{Heading as u,Picture as v,Text as c}from"../../components/index.js";import{cn as f}from"../../helpers/utils.js";import{withLayout as z}from"../../shared/Styles.js";import{useExposure as H}from"../../hooks/useExposure.js";import{trackUrlRef as R}from"../../shared/trackUrlRef.js";import{Swiper as $,SwiperSlide as S}from"swiper/react";const n="image",x="feature_cards",j=(a,r)=>r===2?a===0?"laptop:flex-[2]":"laptop:flex-[3]":r===3?"laptop:flex-[1]":r===4?a===0?"laptop:flex-[2]":a===1||a===2?"laptop:flex-[3]":"laptop:flex-[2]":r===5?a<3?"laptop:flex-[1]":a===3?"laptop:flex-[2]":"laptop:flex-[3]":"laptop:flex-[1]",L=(a,r)=>r===4&&a===1||r===5&&a===2,b=g.forwardRef(({data:a,className:r},k)=>{const{title:o,subtitle:i,items:p=[],theme:N="light"}=a,d=T(null);H(d,{componentType:n,componentName:x,componentTitle:o,componentDescription:i}),F(k,()=>d.current);const m="rounded-box",w=(e,s)=>{const h=l(D,{children:[t(v,{source:e.image?.url,alt:e.image?.alt||e.title,className:"feature-cards__card-image absolute inset-0 !h-full",imgClassName:"!h-full object-cover"}),l("div",{className:"feature-cards__card-content z-10",children:[t(u,{size:3,as:"h2",className:"feature-cards__card-title laptop:text-[20px] desktop:text-[32px] lg-desktop:text-[32px]",children:e.title}),t(c,{size:4,as:"p",className:"feature-cards__card-subtitle laptop:h-[42px] lg-desktop:h-[54px] lg-desktop:text-[18px] mt-[4px] line-clamp-2 h-[42px] text-[14px]",children:e.subtitle})]})]}),y="feature-cards__card relative flex h-[360px] max-h-[560px] flex-col justify-end gap-[16px] overflow-hidden px-[16px] py-[12px] text-info-primary tablet:h-[336px] laptop:h-[336px] laptop:px-[16px] laptop:py-[16px] desktop:h-[448px] desktop:px-[32px] desktop:py-[24px] lg-desktop:h-[560px]",C=s!==void 0?j(s,p.length):"flex-1",_=f(y,m,C,{"aiui-dark":e.theme==="dark","aiui-light":e.theme==="light"});return e.link?t("a",{href:R(e.link,`${n}_${x}`),className:_,"data-headless-type-name":`${n}#${x}`,"data-headless-title-desc-button":`${o}#${e.title}#${e.subtitle}`,children:h}):t("div",{className:_,children:h})};return l("section",{ref:d,"data-ui-component-id":"FeatureCards",className:f("feature-cards text-info-primary flex w-full flex-col justify-center",{"aiui-dark":N==="dark"},r),children:[l("div",{className:"feature-cards__header",children:[t(u,{size:4,as:"h1",className:"feature-cards__title laptop:text-center text-left",children:o}),i&&t(c,{size:2,as:"p",className:"feature-cards__subtitle laptop:text-center desktop:text-[16px] lg-desktop:text-[18px] mt-[4px] text-left text-[14px]",children:i})]}),t("div",{className:"feature-cards__grid laptop:mt-[32px] laptop:flex desktop:mt-[40px] lg-desktop:mt-[24px] mt-[24px] hidden w-full flex-wrap gap-[16px]",children:p.map((e,s)=>l(g.Fragment,{children:[w(e,s),L(s,p.length)&&t("div",{className:"laptop:basis-full laptop:h-0"})]},e.title))}),t("div",{className:"feature-cards__swiper-container laptop:hidden mt-[24px] w-full",children:t($,{spaceBetween:12,slidesPerView:"auto",grabCursor:!0,className:"feature-cards__swiper relative w-full !overflow-visible",children:p.map(e=>t(S,{className:"feature-cards__swiper-slide relative !h-[360px] !w-[296px]",children:l("div",{className:f("feature-cards__card feature-cards__card--mobile text-info-primary absolute inset-0 flex flex-1 flex-col justify-end gap-[16px] overflow-hidden px-[16px] py-[12px]",m,{"aiui-dark":e.theme==="dark","aiui-light":e.theme==="light"}),children:[t(v,{source:e.image?.url,alt:e.image?.alt||e.title,className:"feature-cards__card-image absolute inset-0 !h-full",imgClassName:"!h-full object-cover"}),l("div",{className:"feature-cards__card-content z-10",children:[t(u,{size:3,as:"h2",className:"feature-cards__card-title",children:e.title}),t(c,{size:4,as:"p",className:"feature-cards__card-subtitle laptop:h-[42px] lg-desktop:h-[54px] lg-desktop:text-[18px] mt-[4px] line-clamp-2 h-[42px] overflow-visible text-[14px]",children:e.subtitle})]})]},e.title)},e.title))})})]})});b.displayName="FeatureCards";var q=z(b,{style:"overflow: hidden;"});export{q as default};
1
+ "use client";import{Fragment as I,jsx as t,jsxs as l}from"react/jsx-runtime";import g,{useImperativeHandle as T,useRef as z}from"react";import{Heading as c,Picture as v,Text as u}from"../../components/index.js";import{cn as n}from"../../helpers/utils.js";import{withLayout as $}from"../../shared/Styles.js";import{useExposure as R}from"../../hooks/useExposure.js";import{trackUrlRef as S}from"../../shared/trackUrlRef.js";import{useAiuiContext as j}from"../AiuiProvider/index.js";import{Swiper as D,SwiperSlide as L}from"swiper/react";const f="image",x="feature_cards",E=(a,r)=>r===2?a===0?"laptop:flex-[2]":"laptop:flex-[3]":r===3?"laptop:flex-[1]":r===4?a===0?"laptop:flex-[2]":a===1||a===2?"laptop:flex-[3]":"laptop:flex-[2]":r===5?a<3?"laptop:flex-[1]":a===3?"laptop:flex-[2]":"laptop:flex-[3]":"laptop:flex-[1]",P=(a,r)=>r===4&&a===1||r===5&&a===2,b=g.forwardRef(({data:a,className:r},k)=>{const{title:o,subtitle:i,items:p=[],theme:N="light"}=a,{trackingData:w}=j(),y=w?.contextHandle||"",d=z(null);R(d,{componentType:f,componentName:x,componentTitle:o,componentDescription:i}),T(k,()=>d.current);const m="rounded-box",C=(e,s)=>{const h=l(I,{children:[t(v,{source:e.image?.url,alt:e.image?.alt||e.title,className:"feature-cards__card-image absolute inset-0 !h-full",imgClassName:"!h-full object-cover"}),l("div",{className:"feature-cards__card-content z-10",children:[t(c,{size:3,as:"h2",className:"feature-cards__card-title laptop:text-[20px] desktop:text-[32px] lg-desktop:text-[32px]",children:e.title}),t(u,{size:4,as:"p",className:"feature-cards__card-subtitle laptop:h-[42px] lg-desktop:h-[54px] lg-desktop:text-[18px] mt-[4px] line-clamp-2 h-[42px] text-[14px]",children:e.subtitle})]})]}),H="feature-cards__card relative flex h-[360px] max-h-[560px] flex-col justify-end gap-[16px] overflow-hidden px-[16px] py-[12px] text-info-primary tablet:h-[336px] laptop:h-[336px] laptop:px-[16px] laptop:py-[16px] desktop:h-[448px] desktop:px-[32px] desktop:py-[24px] lg-desktop:h-[560px]",F=s!==void 0?E(s,p.length):"flex-1",_=n(H,m,F,{"aiui-dark":e.theme==="dark","aiui-light":e.theme==="light"});return e.link?t("a",{href:S(e.link,`${y}_${f}_${x}`),className:_,"data-headless-type-name":`${f}#${x}`,"data-headless-title-desc-button":`${o}#${e.title}#${e.subtitle}`,children:h}):t("div",{className:_,children:h})};return l("section",{ref:d,"data-ui-component-id":"FeatureCards",className:n("feature-cards text-info-primary flex w-full flex-col justify-center",{"aiui-dark":N==="dark"},r),children:[l("div",{className:"feature-cards__header",children:[t(c,{size:4,as:"h1",className:"feature-cards__title laptop:text-center text-left",children:o}),i&&t(u,{size:2,as:"p",className:"feature-cards__subtitle laptop:text-center desktop:text-[16px] lg-desktop:text-[18px] mt-[4px] text-left text-[14px]",children:i})]}),t("div",{className:"feature-cards__grid laptop:mt-[32px] laptop:flex desktop:mt-[40px] lg-desktop:mt-[24px] mt-[24px] hidden w-full flex-wrap gap-[16px]",children:p.map((e,s)=>l(g.Fragment,{children:[C(e,s),P(s,p.length)&&t("div",{className:"laptop:basis-full laptop:h-0"})]},e.title))}),t("div",{className:"feature-cards__swiper-container laptop:hidden mt-[24px] w-full",children:t(D,{spaceBetween:12,slidesPerView:"auto",grabCursor:!0,className:"feature-cards__swiper relative w-full !overflow-visible",children:p.map(e=>t(L,{className:"feature-cards__swiper-slide relative !h-[360px] !w-[296px]",children:l("div",{className:n("feature-cards__card feature-cards__card--mobile text-info-primary absolute inset-0 flex flex-1 flex-col justify-end gap-[16px] overflow-hidden px-[16px] py-[12px]",m,{"aiui-dark":e.theme==="dark","aiui-light":e.theme==="light"}),children:[t(v,{source:e.image?.url,alt:e.image?.alt||e.title,className:"feature-cards__card-image absolute inset-0 !h-full",imgClassName:"!h-full object-cover"}),l("div",{className:"feature-cards__card-content z-10",children:[t(c,{size:3,as:"h2",className:"feature-cards__card-title",children:e.title}),t(u,{size:4,as:"p",className:"feature-cards__card-subtitle laptop:h-[42px] lg-desktop:h-[54px] lg-desktop:text-[18px] mt-[4px] line-clamp-2 h-[42px] overflow-visible text-[14px]",children:e.subtitle})]})]},e.title)},e.title))})})]})});b.displayName="FeatureCards";var K=$(b,{style:"overflow: hidden;"});export{K as default};
2
2
  //# sourceMappingURL=FeatureCards.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/biz-components/FeatureCards/FeatureCards.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 { trackUrlRef } from '../../shared/trackUrlRef.js'\nimport type { FeatureCardsProps, FeatureCardItem } from './types.js'\nimport { Swiper, SwiperSlide } from 'swiper/react'\n\nconst componentType = 'image'\nconst componentName = 'feature_cards'\n\n/**\n * \u6839\u636E\u5361\u7247\u6570\u91CF\u83B7\u53D6\u684C\u9762\u7AEF\uFF08laptop+\uFF09\u7684\u7F51\u683C\u5E03\u5C40\u7C7B\u540D\n * - 2\u5F20\u5361\u7247: 2:3\n * - 3\u5F20\u5361\u7247: 1:1:1\n * - 4\u5F20\u5361\u7247: \u7B2C\u4E00\u884C 2:3\uFF0C\u7B2C\u4E8C\u884C 3:2\n * - 5\u5F20\u5361\u7247: \u7B2C\u4E00\u884C 1:1:1\uFF0C\u7B2C\u4E8C\u884C 2:3\n */\nconst getCardLayoutClasses = (index: number, totalCards: number): string => {\n if (totalCards === 2) {\n // 2:3 \u6BD4\u4F8B\n return index === 0 ? 'laptop:flex-[2]' : 'laptop:flex-[3]'\n }\n\n if (totalCards === 3) {\n // 1:1:1 \u6BD4\u4F8B\n return 'laptop:flex-[1]'\n }\n\n if (totalCards === 4) {\n // \u7B2C\u4E00\u884C 2:3\uFF0C\u7B2C\u4E8C\u884C 3:2\n if (index === 0) return 'laptop:flex-[2]'\n if (index === 1) return 'laptop:flex-[3]'\n if (index === 2) return 'laptop:flex-[3]'\n return 'laptop:flex-[2]'\n }\n\n if (totalCards === 5) {\n // \u7B2C\u4E00\u884C 1:1:1\uFF0C\u7B2C\u4E8C\u884C 2:3\n if (index < 3) return 'laptop:flex-[1]'\n if (index === 3) return 'laptop:flex-[2]'\n return 'laptop:flex-[3]'\n }\n\n // \u9ED8\u8BA4\u7B49\u5BBD\n return 'laptop:flex-[1]'\n}\n\n/**\n * \u6839\u636E\u5361\u7247\u6570\u91CF\u786E\u5B9A\u662F\u5426\u9700\u8981\u6362\u884C\n * - 4\u5F20\u5361\u7247: \u7B2C\u4E00\u884C2\u5F20\uFF0C\u7B2C\u4E8C\u884C2\u5F20\n * - 5\u5F20\u5361\u7247: \u7B2C\u4E00\u884C3\u5F20\uFF0C\u7B2C\u4E8C\u884C2\u5F20\n */\nconst shouldBreakRow = (index: number, totalCards: number): boolean => {\n if (totalCards === 4 && index === 1) return true\n if (totalCards === 5 && index === 2) return true\n return false\n}\n\nconst FeatureCards = React.forwardRef<HTMLDivElement, FeatureCardsProps>(({ data, className }, ref) => {\n const { title, subtitle, items = [], 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 // \u7EDF\u4E00\u4F7F\u7528 rounded-box\n const roundedClasses = 'rounded-box'\n\n const renderCard = (item: FeatureCardItem, index?: number) => {\n const cardContent = (\n <>\n <Picture\n source={item.image?.url}\n alt={item.image?.alt || item.title}\n className=\"feature-cards__card-image absolute inset-0 !h-full\"\n imgClassName=\"!h-full object-cover\"\n />\n <div className=\"feature-cards__card-content z-10\">\n <Heading\n size={3}\n as=\"h2\"\n className=\"feature-cards__card-title laptop:text-[20px] desktop:text-[32px] lg-desktop:text-[32px]\"\n >\n {item.title}\n </Heading>\n <Text\n size={4}\n as=\"p\"\n className=\"feature-cards__card-subtitle laptop:h-[42px] lg-desktop:h-[54px] lg-desktop:text-[18px] mt-[4px] line-clamp-2 h-[42px] text-[14px]\"\n >\n {item.subtitle}\n </Text>\n </div>\n </>\n )\n\n // \u57FA\u7840\u6837\u5F0F\uFF08\u79FB\u9664\u539F\u6709\u7684 rounded \u7C7B\uFF09\n const baseClasses =\n 'feature-cards__card relative flex h-[360px] max-h-[560px] flex-col justify-end gap-[16px] overflow-hidden px-[16px] py-[12px] text-info-primary tablet:h-[336px] laptop:h-[336px] laptop:px-[16px] laptop:py-[16px] desktop:h-[448px] desktop:px-[32px] desktop:py-[24px] lg-desktop:h-[560px]'\n\n // \u83B7\u53D6\u54CD\u5E94\u5F0F\u5E03\u5C40\u7C7B\u540D\uFF08\u4EC5\u7528\u4E8E\u684C\u9762\u7AEF\uFF09\n const layoutClasses = index !== undefined ? getCardLayoutClasses(index, items.length) : 'flex-1'\n\n const cardClasses = cn(baseClasses, roundedClasses, layoutClasses, {\n 'aiui-dark': item.theme === 'dark',\n 'aiui-light': item.theme === 'light',\n })\n\n if (item.link) {\n return (\n <a\n href={trackUrlRef(item.link, `${componentType}_${componentName}`)}\n className={cardClasses}\n data-headless-type-name={`${componentType}#${componentName}`}\n data-headless-title-desc-button={`${title}#${item.title}#${item.subtitle}`}\n >\n {cardContent}\n </a>\n )\n }\n\n return <div className={cardClasses}>{cardContent}</div>\n }\n\n return (\n <section\n ref={boxRef}\n data-ui-component-id=\"FeatureCards\"\n className={cn(\n 'feature-cards text-info-primary flex w-full flex-col justify-center',\n {\n 'aiui-dark': theme === 'dark',\n },\n className\n )}\n >\n {/* \u6807\u9898\u533A\u57DF */}\n <div className=\"feature-cards__header\">\n <Heading size={4} as=\"h1\" className=\"feature-cards__title laptop:text-center text-left\">\n {title}\n </Heading>\n {subtitle && (\n <Text\n size={2}\n as=\"p\"\n className=\"feature-cards__subtitle laptop:text-center desktop:text-[16px] lg-desktop:text-[18px] mt-[4px] text-left text-[14px]\"\n >\n {subtitle}\n </Text>\n )}\n </div>\n\n {/* \u684C\u9762\u7AEF\u7F51\u683C\u5E03\u5C40 */}\n <div className=\"feature-cards__grid laptop:mt-[32px] laptop:flex desktop:mt-[40px] lg-desktop:mt-[24px] mt-[24px] hidden w-full flex-wrap gap-[16px]\">\n {items.map((item, index) => (\n <React.Fragment key={item.title}>\n {renderCard(item, index)}\n {/* \u5728\u7279\u5B9A\u4F4D\u7F6E\u63D2\u5165\u6362\u884C */}\n {shouldBreakRow(index, items.length) && <div className=\"laptop:basis-full laptop:h-0\" />}\n </React.Fragment>\n ))}\n </div>\n\n {/* \u79FB\u52A8\u7AEF Swiper \u5E03\u5C40 */}\n <div className=\"feature-cards__swiper-container laptop:hidden mt-[24px] w-full\">\n <Swiper\n spaceBetween={12}\n slidesPerView=\"auto\"\n grabCursor\n className=\"feature-cards__swiper relative w-full !overflow-visible\"\n >\n {items.map(item => (\n <SwiperSlide key={item.title} className=\"feature-cards__swiper-slide relative !h-[360px] !w-[296px]\">\n <div\n key={item.title}\n className={cn(\n 'feature-cards__card feature-cards__card--mobile text-info-primary absolute inset-0 flex flex-1 flex-col justify-end gap-[16px] overflow-hidden px-[16px] py-[12px]',\n roundedClasses,\n {\n 'aiui-dark': item.theme === 'dark',\n 'aiui-light': item.theme === 'light',\n }\n )}\n >\n <Picture\n source={item.image?.url}\n alt={item.image?.alt || item.title}\n className=\"feature-cards__card-image absolute inset-0 !h-full\"\n imgClassName=\"!h-full object-cover\"\n />\n <div className=\"feature-cards__card-content z-10\">\n <Heading size={3} as=\"h2\" className=\"feature-cards__card-title\">\n {item.title}\n </Heading>\n <Text\n size={4}\n as=\"p\"\n className=\"feature-cards__card-subtitle laptop:h-[42px] lg-desktop:h-[54px] lg-desktop:text-[18px] mt-[4px] line-clamp-2 h-[42px] overflow-visible text-[14px]\"\n >\n {item.subtitle}\n </Text>\n </div>\n </div>\n </SwiperSlide>\n ))}\n </Swiper>\n </div>\n </section>\n )\n})\n\nFeatureCards.displayName = 'FeatureCards'\n\nexport default withLayout(FeatureCards, { style: 'overflow: hidden;' })\n"],
5
- "mappings": "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",
6
- "names": ["Fragment", "jsx", "jsxs", "React", "useImperativeHandle", "useRef", "Heading", "Picture", "Text", "cn", "withLayout", "useExposure", "trackUrlRef", "Swiper", "SwiperSlide", "componentType", "componentName", "getCardLayoutClasses", "index", "totalCards", "shouldBreakRow", "FeatureCards", "data", "className", "ref", "title", "subtitle", "items", "theme", "boxRef", "roundedClasses", "renderCard", "item", "cardContent", "baseClasses", "layoutClasses", "cardClasses", "FeatureCards_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 { trackUrlRef } from '../../shared/trackUrlRef.js'\nimport { useAiuiContext } from '../AiuiProvider/index.js'\nimport type { FeatureCardsProps, FeatureCardItem } from './types.js'\nimport { Swiper, SwiperSlide } from 'swiper/react'\n\nconst componentType = 'image'\nconst componentName = 'feature_cards'\n\n/**\n * \u6839\u636E\u5361\u7247\u6570\u91CF\u83B7\u53D6\u684C\u9762\u7AEF\uFF08laptop+\uFF09\u7684\u7F51\u683C\u5E03\u5C40\u7C7B\u540D\n * - 2\u5F20\u5361\u7247: 2:3\n * - 3\u5F20\u5361\u7247: 1:1:1\n * - 4\u5F20\u5361\u7247: \u7B2C\u4E00\u884C 2:3\uFF0C\u7B2C\u4E8C\u884C 3:2\n * - 5\u5F20\u5361\u7247: \u7B2C\u4E00\u884C 1:1:1\uFF0C\u7B2C\u4E8C\u884C 2:3\n */\nconst getCardLayoutClasses = (index: number, totalCards: number): string => {\n if (totalCards === 2) {\n // 2:3 \u6BD4\u4F8B\n return index === 0 ? 'laptop:flex-[2]' : 'laptop:flex-[3]'\n }\n\n if (totalCards === 3) {\n // 1:1:1 \u6BD4\u4F8B\n return 'laptop:flex-[1]'\n }\n\n if (totalCards === 4) {\n // \u7B2C\u4E00\u884C 2:3\uFF0C\u7B2C\u4E8C\u884C 3:2\n if (index === 0) return 'laptop:flex-[2]'\n if (index === 1) return 'laptop:flex-[3]'\n if (index === 2) return 'laptop:flex-[3]'\n return 'laptop:flex-[2]'\n }\n\n if (totalCards === 5) {\n // \u7B2C\u4E00\u884C 1:1:1\uFF0C\u7B2C\u4E8C\u884C 2:3\n if (index < 3) return 'laptop:flex-[1]'\n if (index === 3) return 'laptop:flex-[2]'\n return 'laptop:flex-[3]'\n }\n\n // \u9ED8\u8BA4\u7B49\u5BBD\n return 'laptop:flex-[1]'\n}\n\n/**\n * \u6839\u636E\u5361\u7247\u6570\u91CF\u786E\u5B9A\u662F\u5426\u9700\u8981\u6362\u884C\n * - 4\u5F20\u5361\u7247: \u7B2C\u4E00\u884C2\u5F20\uFF0C\u7B2C\u4E8C\u884C2\u5F20\n * - 5\u5F20\u5361\u7247: \u7B2C\u4E00\u884C3\u5F20\uFF0C\u7B2C\u4E8C\u884C2\u5F20\n */\nconst shouldBreakRow = (index: number, totalCards: number): boolean => {\n if (totalCards === 4 && index === 1) return true\n if (totalCards === 5 && index === 2) return true\n return false\n}\n\nconst FeatureCards = React.forwardRef<HTMLDivElement, FeatureCardsProps>(({ data, className }, ref) => {\n const { title, subtitle, items = [], theme = 'light' } = data\n const { trackingData } = useAiuiContext()\n const contextHandle = trackingData?.contextHandle || ''\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 // \u7EDF\u4E00\u4F7F\u7528 rounded-box\n const roundedClasses = 'rounded-box'\n\n const renderCard = (item: FeatureCardItem, index?: number) => {\n const cardContent = (\n <>\n <Picture\n source={item.image?.url}\n alt={item.image?.alt || item.title}\n className=\"feature-cards__card-image absolute inset-0 !h-full\"\n imgClassName=\"!h-full object-cover\"\n />\n <div className=\"feature-cards__card-content z-10\">\n <Heading\n size={3}\n as=\"h2\"\n className=\"feature-cards__card-title laptop:text-[20px] desktop:text-[32px] lg-desktop:text-[32px]\"\n >\n {item.title}\n </Heading>\n <Text\n size={4}\n as=\"p\"\n className=\"feature-cards__card-subtitle laptop:h-[42px] lg-desktop:h-[54px] lg-desktop:text-[18px] mt-[4px] line-clamp-2 h-[42px] text-[14px]\"\n >\n {item.subtitle}\n </Text>\n </div>\n </>\n )\n\n // \u57FA\u7840\u6837\u5F0F\uFF08\u79FB\u9664\u539F\u6709\u7684 rounded \u7C7B\uFF09\n const baseClasses =\n 'feature-cards__card relative flex h-[360px] max-h-[560px] flex-col justify-end gap-[16px] overflow-hidden px-[16px] py-[12px] text-info-primary tablet:h-[336px] laptop:h-[336px] laptop:px-[16px] laptop:py-[16px] desktop:h-[448px] desktop:px-[32px] desktop:py-[24px] lg-desktop:h-[560px]'\n\n // \u83B7\u53D6\u54CD\u5E94\u5F0F\u5E03\u5C40\u7C7B\u540D\uFF08\u4EC5\u7528\u4E8E\u684C\u9762\u7AEF\uFF09\n const layoutClasses = index !== undefined ? getCardLayoutClasses(index, items.length) : 'flex-1'\n\n const cardClasses = cn(baseClasses, roundedClasses, layoutClasses, {\n 'aiui-dark': item.theme === 'dark',\n 'aiui-light': item.theme === 'light',\n })\n\n if (item.link) {\n return (\n <a\n href={trackUrlRef(item.link, `${contextHandle}_${componentType}_${componentName}`)}\n className={cardClasses}\n data-headless-type-name={`${componentType}#${componentName}`}\n data-headless-title-desc-button={`${title}#${item.title}#${item.subtitle}`}\n >\n {cardContent}\n </a>\n )\n }\n\n return <div className={cardClasses}>{cardContent}</div>\n }\n\n return (\n <section\n ref={boxRef}\n data-ui-component-id=\"FeatureCards\"\n className={cn(\n 'feature-cards text-info-primary flex w-full flex-col justify-center',\n {\n 'aiui-dark': theme === 'dark',\n },\n className\n )}\n >\n {/* \u6807\u9898\u533A\u57DF */}\n <div className=\"feature-cards__header\">\n <Heading size={4} as=\"h1\" className=\"feature-cards__title laptop:text-center text-left\">\n {title}\n </Heading>\n {subtitle && (\n <Text\n size={2}\n as=\"p\"\n className=\"feature-cards__subtitle laptop:text-center desktop:text-[16px] lg-desktop:text-[18px] mt-[4px] text-left text-[14px]\"\n >\n {subtitle}\n </Text>\n )}\n </div>\n\n {/* \u684C\u9762\u7AEF\u7F51\u683C\u5E03\u5C40 */}\n <div className=\"feature-cards__grid laptop:mt-[32px] laptop:flex desktop:mt-[40px] lg-desktop:mt-[24px] mt-[24px] hidden w-full flex-wrap gap-[16px]\">\n {items.map((item, index) => (\n <React.Fragment key={item.title}>\n {renderCard(item, index)}\n {/* \u5728\u7279\u5B9A\u4F4D\u7F6E\u63D2\u5165\u6362\u884C */}\n {shouldBreakRow(index, items.length) && <div className=\"laptop:basis-full laptop:h-0\" />}\n </React.Fragment>\n ))}\n </div>\n\n {/* \u79FB\u52A8\u7AEF Swiper \u5E03\u5C40 */}\n <div className=\"feature-cards__swiper-container laptop:hidden mt-[24px] w-full\">\n <Swiper\n spaceBetween={12}\n slidesPerView=\"auto\"\n grabCursor\n className=\"feature-cards__swiper relative w-full !overflow-visible\"\n >\n {items.map(item => (\n <SwiperSlide key={item.title} className=\"feature-cards__swiper-slide relative !h-[360px] !w-[296px]\">\n <div\n key={item.title}\n className={cn(\n 'feature-cards__card feature-cards__card--mobile text-info-primary absolute inset-0 flex flex-1 flex-col justify-end gap-[16px] overflow-hidden px-[16px] py-[12px]',\n roundedClasses,\n {\n 'aiui-dark': item.theme === 'dark',\n 'aiui-light': item.theme === 'light',\n }\n )}\n >\n <Picture\n source={item.image?.url}\n alt={item.image?.alt || item.title}\n className=\"feature-cards__card-image absolute inset-0 !h-full\"\n imgClassName=\"!h-full object-cover\"\n />\n <div className=\"feature-cards__card-content z-10\">\n <Heading size={3} as=\"h2\" className=\"feature-cards__card-title\">\n {item.title}\n </Heading>\n <Text\n size={4}\n as=\"p\"\n className=\"feature-cards__card-subtitle laptop:h-[42px] lg-desktop:h-[54px] lg-desktop:text-[18px] mt-[4px] line-clamp-2 h-[42px] overflow-visible text-[14px]\"\n >\n {item.subtitle}\n </Text>\n </div>\n </div>\n </SwiperSlide>\n ))}\n </Swiper>\n </div>\n </section>\n )\n})\n\nFeatureCards.displayName = 'FeatureCards'\n\nexport default withLayout(FeatureCards, { style: 'overflow: hidden;' })\n"],
5
+ "mappings": "aAkFM,mBAAAA,EACE,OAAAC,EAMA,QAAAC,MAPF,oBAjFN,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,6BAC5B,OAAS,eAAAC,MAAmB,8BAC5B,OAAS,kBAAAC,MAAsB,2BAE/B,OAAS,UAAAC,EAAQ,eAAAC,MAAmB,eAEpC,MAAMC,EAAgB,QAChBC,EAAgB,gBAShBC,EAAuB,CAACC,EAAeC,IACvCA,IAAe,EAEVD,IAAU,EAAI,kBAAoB,kBAGvCC,IAAe,EAEV,kBAGLA,IAAe,EAEbD,IAAU,EAAU,kBACpBA,IAAU,GACVA,IAAU,EAAU,kBACjB,kBAGLC,IAAe,EAEbD,EAAQ,EAAU,kBAClBA,IAAU,EAAU,kBACjB,kBAIF,kBAQHE,EAAiB,CAACF,EAAeC,IACjCA,IAAe,GAAKD,IAAU,GAC9BC,IAAe,GAAKD,IAAU,EAI9BG,EAAenB,EAAM,WAA8C,CAAC,CAAE,KAAAoB,EAAM,UAAAC,CAAU,EAAGC,IAAQ,CACrG,KAAM,CAAE,MAAAC,EAAO,SAAAC,EAAU,MAAAC,EAAQ,CAAC,EAAG,MAAAC,EAAQ,OAAQ,EAAIN,EACnD,CAAE,aAAAO,CAAa,EAAIjB,EAAe,EAClCkB,EAAgBD,GAAc,eAAiB,GAC/CE,EAAS3B,EAAuB,IAAI,EAE1CM,EAAYqB,EAAQ,CAClB,cAAAhB,EACA,cAAAC,EACA,eAAgBS,EAChB,qBAAsBC,CACxB,CAAC,EAEDvB,EAAoBqB,EAAK,IAAMO,EAAO,OAAyB,EAG/D,MAAMC,EAAiB,cAEjBC,EAAa,CAACC,EAAuBhB,IAAmB,CAC5D,MAAMiB,EACJlC,EAAAF,EAAA,CACE,UAAAC,EAACM,EAAA,CACC,OAAQ4B,EAAK,OAAO,IACpB,IAAKA,EAAK,OAAO,KAAOA,EAAK,MAC7B,UAAU,qDACV,aAAa,uBACf,EACAjC,EAAC,OAAI,UAAU,mCACb,UAAAD,EAACK,EAAA,CACC,KAAM,EACN,GAAG,KACH,UAAU,0FAET,SAAA6B,EAAK,MACR,EACAlC,EAACO,EAAA,CACC,KAAM,EACN,GAAG,IACH,UAAU,qIAET,SAAA2B,EAAK,SACR,GACF,GACF,EAIIE,EACJ,iSAGIC,EAAgBnB,IAAU,OAAYD,EAAqBC,EAAOS,EAAM,MAAM,EAAI,SAElFW,EAAc9B,EAAG4B,EAAaJ,EAAgBK,EAAe,CACjE,YAAaH,EAAK,QAAU,OAC5B,aAAcA,EAAK,QAAU,OAC/B,CAAC,EAED,OAAIA,EAAK,KAELlC,EAAC,KACC,KAAMW,EAAYuB,EAAK,KAAM,GAAGJ,CAAa,IAAIf,CAAa,IAAIC,CAAa,EAAE,EACjF,UAAWsB,EACX,0BAAyB,GAAGvB,CAAa,IAAIC,CAAa,GAC1D,kCAAiC,GAAGS,CAAK,IAAIS,EAAK,KAAK,IAAIA,EAAK,QAAQ,GAEvE,SAAAC,EACH,EAIGnC,EAAC,OAAI,UAAWsC,EAAc,SAAAH,EAAY,CACnD,EAEA,OACElC,EAAC,WACC,IAAK8B,EACL,uBAAqB,eACrB,UAAWvB,EACT,sEACA,CACE,YAAaoB,IAAU,MACzB,EACAL,CACF,EAGA,UAAAtB,EAAC,OAAI,UAAU,wBACb,UAAAD,EAACK,EAAA,CAAQ,KAAM,EAAG,GAAG,KAAK,UAAU,oDACjC,SAAAoB,EACH,EACCC,GACC1B,EAACO,EAAA,CACC,KAAM,EACN,GAAG,IACH,UAAU,uHAET,SAAAmB,EACH,GAEJ,EAGA1B,EAAC,OAAI,UAAU,uIACZ,SAAA2B,EAAM,IAAI,CAACO,EAAMhB,IAChBjB,EAACC,EAAM,SAAN,CACE,UAAA+B,EAAWC,EAAMhB,CAAK,EAEtBE,EAAeF,EAAOS,EAAM,MAAM,GAAK3B,EAAC,OAAI,UAAU,+BAA+B,IAHnEkC,EAAK,KAI1B,CACD,EACH,EAGAlC,EAAC,OAAI,UAAU,iEACb,SAAAA,EAACa,EAAA,CACC,aAAc,GACd,cAAc,OACd,WAAU,GACV,UAAU,0DAET,SAAAc,EAAM,IAAIO,GACTlC,EAACc,EAAA,CAA6B,UAAU,6DACtC,SAAAb,EAAC,OAEC,UAAWO,EACT,qKACAwB,EACA,CACE,YAAaE,EAAK,QAAU,OAC5B,aAAcA,EAAK,QAAU,OAC/B,CACF,EAEA,UAAAlC,EAACM,EAAA,CACC,OAAQ4B,EAAK,OAAO,IACpB,IAAKA,EAAK,OAAO,KAAOA,EAAK,MAC7B,UAAU,qDACV,aAAa,uBACf,EACAjC,EAAC,OAAI,UAAU,mCACb,UAAAD,EAACK,EAAA,CAAQ,KAAM,EAAG,GAAG,KAAK,UAAU,4BACjC,SAAA6B,EAAK,MACR,EACAlC,EAACO,EAAA,CACC,KAAM,EACN,GAAG,IACH,UAAU,sJAET,SAAA2B,EAAK,SACR,GACF,IA3BKA,EAAK,KA4BZ,GA9BgBA,EAAK,KA+BvB,CACD,EACH,EACF,GACF,CAEJ,CAAC,EAEDb,EAAa,YAAc,eAE3B,IAAOkB,EAAQ9B,EAAWY,EAAc,CAAE,MAAO,mBAAoB,CAAC",
6
+ "names": ["Fragment", "jsx", "jsxs", "React", "useImperativeHandle", "useRef", "Heading", "Picture", "Text", "cn", "withLayout", "useExposure", "trackUrlRef", "useAiuiContext", "Swiper", "SwiperSlide", "componentType", "componentName", "getCardLayoutClasses", "index", "totalCards", "shouldBreakRow", "FeatureCards", "data", "className", "ref", "title", "subtitle", "items", "theme", "trackingData", "contextHandle", "boxRef", "roundedClasses", "renderCard", "item", "cardContent", "baseClasses", "layoutClasses", "cardClasses", "FeatureCards_default"]
7
7
  }
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import type { FeatureShowcaseProps } from './types.js';
3
- declare const _default: React.ForwardRefExoticComponent<Omit<FeatureShowcaseProps & React.RefAttributes<HTMLDivElement>, "container" | keyof import("../../shared/Styles.js").StylesProps> & import("../../shared/Styles.js").StylesProps & import("../WheelLottery/index.js").ContainerProps & React.RefAttributes<unknown>> & {
3
+ declare const _default: React.ForwardRefExoticComponent<Omit<FeatureShowcaseProps & React.RefAttributes<HTMLDivElement>, "container" | keyof import("../../shared/Styles.js").StylesProps> & import("../../shared/Styles.js").StylesProps & import("../index.js").ContainerProps & React.RefAttributes<unknown>> & {
4
4
  readonly $$typeof: symbol;
5
5
  };
6
6
  export default _default;
@@ -47,7 +47,7 @@ export interface FeaturedBlogPostsProps extends React.HTMLAttributes<HTMLDivElem
47
47
  /** 卡片点击回调 */
48
48
  onItemClick?: (item: FeaturedBlogPostItem, index: number, event: React.MouseEvent) => void;
49
49
  }
50
- declare const FeaturedBlogPosts: React.ForwardRefExoticComponent<Omit<FeaturedBlogPostsProps & React.RefAttributes<HTMLDivElement>, "container" | keyof import("../../shared/Styles.js").StylesProps> & import("../../shared/Styles.js").StylesProps & import("../WheelLottery/index.js").ContainerProps & React.RefAttributes<unknown>> & {
50
+ declare const FeaturedBlogPosts: React.ForwardRefExoticComponent<Omit<FeaturedBlogPostsProps & React.RefAttributes<HTMLDivElement>, "container" | keyof import("../../shared/Styles.js").StylesProps> & import("../../shared/Styles.js").StylesProps & import("../index.js").ContainerProps & React.RefAttributes<unknown>> & {
51
51
  readonly $$typeof: symbol;
52
52
  };
53
53
  export default FeaturedBlogPosts;
@@ -1,2 +1,2 @@
1
- "use client";import{jsx as l,jsxs as p}from"react/jsx-runtime";import*as u from"react";import{cn as r}from"../../helpers/index.js";import y from"../../components/picture.js";import{Heading as h,Text as m}from"../../index.js";import{withLayout as P}from"../../shared/Styles.js";const F=o=>{const t=[{key:"lgDesktop",width:1920},{key:"desktop",width:1440},{key:"laptop",width:1024},{key:"pad",width:768},{key:"mobile",width:390}],s=t.filter(({key:a})=>o[a]?.url).map(({key:a,width:d})=>`${o[a].url} ${d}`);if(s.length>0)return s.join(", ");for(const{key:a}of t)if(o[a]?.url)return o[a].url;return""},B=(o,t)=>{const s=["desktop","laptop","pad","mobile","lgDesktop"];for(const a of s)if(o[a]?.alt)return o[a].alt;return t},I=(o="full")=>({full:"laptop:col-span-3","2/3":"laptop:col-span-2","1/3":"laptop:col-span-1"})[o],w=(o="full")=>o==="1/3"?"":"laptop:flex-row",R=(o="full")=>({full:"laptop:h-full laptop:w-2/3","2/3":"laptop:h-full laptop:w-1/2","1/3":"laptop:flex-1 h-[200px] lg-desktop:h-[240px]"})[o],k=u.forwardRef(({className:o,classNames:t={},data:s,onItemClick:a,...d},x)=>{const{title:n,subtitle:g,items:f}=s,b=u.useCallback((e,i)=>c=>{a?.(e,i,c)},[a]);return p("div",{ref:x,className:r("blog-posts-root","text-info-primary w-full",o,t.root),...d,children:[(n||g)&&p("div",{className:r("blog-posts-header mb-6",t.header),children:[n&&l(h,{as:"h2",size:4,html:n,className:r("blog-posts-title",t.title)}),g&&l(m,{as:"p",size:3,className:r("",t?.subtitle),html:g})]}),l("div",{className:r("blog-posts-grid","laptop:grid-cols-3 grid grid-cols-1 gap-4",t.grid),children:f.map((e,i)=>{const c=e.link?"a":"div",v=e.link?{href:e.link}:{};return p(u.Fragment,{children:[p(c,{...v,className:r("blog-posts-card rounded-box","flex cursor-pointer flex-col gap-4","laptop:h-[336px] desktop:h-[448px] lg-desktop:h-[560px]","laptop:bg-container-secondary-0 laptop:p-4 desktop:p-6 lg-desktop:p-8","laptop:overflow-hidden laptop:transition-opacity ","bg-container-secondary-1",I(e.width||"full"),w(e.width||"full"),t.card),onClick:b(e,i),children:[l("div",{className:r("blog-posts-card-image","relative w-full overflow-hidden","h-[200px] shrink-0",R(e.width||"full"),t.cardImage),children:l(y,{source:F(e.image),alt:B(e.image,e.title),className:"rounded-box h-full object-cover",imgClassName:"h-full"})}),p("div",{className:r("blog-posts-card-content","desktop:gap-6 flex flex-col justify-center gap-4",t.cardContent),children:[p("div",{className:"desktop:gap-2 flex flex-col gap-1",children:[l(h,{size:2,as:"h6",className:r("blog-posts-card-title line-clamp-3",t.cardTitle),html:e.title}),e.description&&l(m,{className:r("blog-posts-card-description desktop:text-[16px] lg-desktop:text-[18px] line-clamp-3 text-[14px]",t.cardDescription),html:e.description})]}),e.date&&l(m,{className:r("blog-posts-card-meta","text-info-tertiary desktop:text-[16px] lg-desktop:text-[18px] text-[14px]",t.cardMeta),html:e.date})]})]}),i<f.length-1&&l("div",{className:r("blog-posts-separator","bg-lines-primary laptop:hidden h-px w-full",t.separator)})]},i)})})]})});k.displayName="FeaturedBlogPosts";const C=P(k);var z=C;export{z as default};
1
+ "use client";import{jsx as l,jsxs as p}from"react/jsx-runtime";import*as u from"react";import{cn as r}from"../../helpers/index.js";import y from"../../components/picture.js";import{Heading as h,Text as m}from"../../index.js";import{withLayout as P}from"../../shared/Styles.js";const F=o=>{const t=[{key:"lgDesktop",width:1920},{key:"desktop",width:1440},{key:"laptop",width:1024},{key:"pad",width:768},{key:"mobile",width:390}],s=t.filter(({key:a})=>o[a]?.url).map(({key:a,width:d})=>`${o[a].url} ${d}`);if(s.length>0)return s.join(", ");for(const{key:a}of t)if(o[a]?.url)return o[a].url;return""},B=(o,t)=>{const s=["desktop","laptop","pad","mobile","lgDesktop"];for(const a of s)if(o[a]?.alt)return o[a].alt;return t},I=(o="full")=>({full:"laptop:col-span-3","2/3":"laptop:col-span-2","1/3":"laptop:col-span-1"})[o],w=(o="full")=>o==="1/3"?"":"laptop:flex-row",R=(o="full")=>({full:"laptop:h-full laptop:w-2/3","2/3":"laptop:h-full laptop:w-1/2","1/3":"h-[200px] lg-desktop:h-[240px]"})[o],k=u.forwardRef(({className:o,classNames:t={},data:s,onItemClick:a,...d},x)=>{const{title:n,subtitle:g,items:f}=s,b=u.useCallback((e,i)=>c=>{a?.(e,i,c)},[a]);return p("div",{ref:x,className:r("blog-posts-root","text-info-primary w-full",o,t.root),...d,children:[(n||g)&&p("div",{className:r("blog-posts-header mb-6",t.header),children:[n&&l(h,{as:"h2",size:4,html:n,className:r("blog-posts-title",t.title)}),g&&l(m,{as:"p",size:3,className:r("",t?.subtitle),html:g})]}),l("div",{className:r("blog-posts-grid","laptop:grid-cols-3 grid grid-cols-1 gap-4",t.grid),children:f.map((e,i)=>{const c=e.link?"a":"div",v=e.link?{href:e.link}:{};return p(u.Fragment,{children:[p(c,{...v,className:r("blog-posts-card rounded-box","flex cursor-pointer flex-col gap-4","laptop:min-h-[336px] desktop:min-h-[448px] lg-desktop:min-h-[560px]","laptop:bg-container-secondary-0 laptop:p-4 desktop:p-6 lg-desktop:p-8","laptop:overflow-hidden laptop:transition-opacity ","bg-container-secondary-1",I(e.width||"full"),w(e.width||"full"),t.card),onClick:b(e,i),children:[l("div",{className:r("blog-posts-card-image","relative w-full overflow-hidden","flex-0 h-[200px] shrink-0",R(e.width||"full"),t.cardImage),children:l(y,{source:F(e.image),alt:B(e.image,e.title),className:"rounded-box h-full object-cover",imgClassName:"h-full object-cover"})}),p("div",{className:r("blog-posts-card-content","desktop:gap-6 flex flex-col justify-center gap-4",t.cardContent),children:[p("div",{className:"desktop:gap-2 flex flex-col gap-1",children:[l(h,{size:2,as:"h6",className:r("blog-posts-card-title line-clamp-3",t.cardTitle),html:e.title}),e.description&&l(m,{className:r("blog-posts-card-description desktop:text-[16px] lg-desktop:text-[18px] line-clamp-3 text-[14px]",t.cardDescription),html:e.description})]}),e.date&&l(m,{className:r("blog-posts-card-meta","text-info-tertiary desktop:text-[16px] lg-desktop:text-[18px] text-[14px]",t.cardMeta),html:e.date})]})]}),i<f.length-1&&l("div",{className:r("blog-posts-separator","bg-lines-primary laptop:hidden h-px w-full",t.separator)})]},i)})})]})});k.displayName="FeaturedBlogPosts";const C=P(k);var z=C;export{z as default};
2
2
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/biz-components/FeaturedBlogPosts/index.tsx"],
4
- "sourcesContent": ["'use client'\n\nimport * as React from 'react'\nimport { cn } from '../../helpers/index.js'\nimport Picture from '../../components/picture.js'\nimport type { Img } from '../../types/props.js'\nimport { Heading, Text } from '../../index.js'\nimport { withLayout } from '../../shared/Styles.js'\n\nexport type FeaturedBlogPostsSemanticName =\n | 'root'\n | 'header'\n | 'title'\n | 'subtitle'\n | 'grid'\n | 'card'\n | 'cardImage'\n | 'cardContent'\n | 'cardTitle'\n | 'cardDescription'\n | 'cardMeta'\n | 'separator'\n\n/**\n * \u5361\u7247\u5BBD\u5EA6\u6BD4\u4F8B\n */\nexport type FeaturedBlogPostSpan = 'full' | '2/3' | '1/3'\n\n/**\n * \u535A\u6587\u5361\u7247\u9879\u6570\u636E\u63A5\u53E3\n */\nexport interface FeaturedBlogPostItem {\n /** \u5C01\u9762\u56FE\u7247 */\n image: {\n mobile?: Img\n pad?: Img\n laptop?: Img\n desktop?: Img\n lgDesktop?: Img\n }\n /** \u6587\u7AE0\u6807\u9898 */\n title: string\n /** \u6587\u7AE0\u63CF\u8FF0 */\n description?: string\n /** \u65E5\u671F\u4FE1\u606F\uFF08\u5206\u7C7B\u00B7\u65E5\u671F\u00B7\u4F5C\u8005\uFF09 */\n date?: string\n /** \u6587\u7AE0\u94FE\u63A5 */\n link?: string\n /** \u5361\u7247\u5BBD\u5EA6\u6BD4\u4F8B\uFF0C\u9ED8\u8BA4 full */\n width?: FeaturedBlogPostSpan\n}\n\n/**\n * FeaturedBlogPosts \u4E1A\u52A1\u7EC4\u4EF6\u6570\u636E\u63A5\u53E3\n */\nexport interface FeaturedBlogPostsData {\n /** \u4E3B\u6807\u9898 */\n title?: string\n /** \u526F\u6807\u9898 */\n subtitle?: string\n /** \u535A\u6587\u5217\u8868 */\n items: FeaturedBlogPostItem[]\n}\n\nexport interface FeaturedBlogPostsProps extends React.HTMLAttributes<HTMLDivElement> {\n /** \u4E1A\u52A1\u6570\u636E */\n data: FeaturedBlogPostsData\n /** \u8BED\u4E49\u5316\u7C7B\u540D\u8986\u76D6 */\n classNames?: Partial<Record<FeaturedBlogPostsSemanticName, string>>\n /** \u5361\u7247\u70B9\u51FB\u56DE\u8C03 */\n onItemClick?: (item: FeaturedBlogPostItem, index: number, event: React.MouseEvent) => void\n}\n\n/**\n * \u54CD\u5E94\u5F0F\u56FE\u7247\u7C7B\u578B\n */\ntype ResponsiveImage = FeaturedBlogPostItem['image']\n\n/**\n * \u5C06\u54CD\u5E94\u5F0F\u56FE\u7247\u5BF9\u8C61\u8F6C\u4E3A Picture source \u683C\u5F0F\u5B57\u7B26\u4E32\n * \u683C\u5F0F: \"url1 1920, url2 1440, url3 1024, url4 768, url5 390\"\n */\nconst getImageSource = (image: ResponsiveImage): string => {\n const breakpoints: { key: keyof ResponsiveImage; width: number }[] = [\n { key: 'lgDesktop', width: 1920 },\n { key: 'desktop', width: 1440 },\n { key: 'laptop', width: 1024 },\n { key: 'pad', width: 768 },\n { key: 'mobile', width: 390 },\n ]\n\n const sources = breakpoints\n .filter(({ key }) => image[key]?.url)\n .map(({ key, width }) => `${image[key]!.url} ${width}`)\n\n // \u5982\u679C\u6709 sources\uFF0C\u8FD4\u56DE\u62FC\u63A5\u7ED3\u679C\uFF1B\u5426\u5219\u8FD4\u56DE\u7B2C\u4E00\u4E2A\u6709\u6548\u7684 url\n if (sources.length > 0) {\n return sources.join(', ')\n }\n\n // fallback: \u8FD4\u56DE\u4EFB\u610F\u4E00\u4E2A\u6709\u6548\u7684 url\n for (const { key } of breakpoints) {\n if (image[key]?.url) return image[key]!.url\n }\n\n return ''\n}\n\n/**\n * \u4ECE\u54CD\u5E94\u5F0F\u56FE\u7247\u5BF9\u8C61\u83B7\u53D6 alt \u6587\u672C\n */\nconst getImageAlt = (image: ResponsiveImage, fallback: string): string => {\n const keys: (keyof ResponsiveImage)[] = ['desktop', 'laptop', 'pad', 'mobile', 'lgDesktop']\n for (const key of keys) {\n if (image[key]?.alt) return image[key]!.alt!\n }\n return fallback\n}\n\n/**\n * \u6839\u636E span \u83B7\u53D6\u5361\u7247 grid \u5217\u6570 (laptop+)\n */\nconst getSpanClass = (span: FeaturedBlogPostSpan = 'full') => {\n const spanMap: Record<FeaturedBlogPostSpan, string> = {\n full: 'laptop:col-span-3',\n '2/3': 'laptop:col-span-2',\n '1/3': 'laptop:col-span-1',\n }\n return spanMap[span]\n}\n\n/**\n * \u6839\u636E span \u83B7\u53D6\u5361\u7247\u5E03\u5C40\u65B9\u5411 (laptop+)\n * 1/3: \u4E0A\u4E0B\u5E03\u5C40\uFF0C\u5176\u4ED6: \u5DE6\u53F3\u5E03\u5C40\n */\nconst getLayoutClass = (span: FeaturedBlogPostSpan = 'full') => {\n return span === '1/3' ? '' : 'laptop:flex-row'\n}\n\n/**\n * \u6839\u636E span \u83B7\u53D6\u56FE\u7247\u5C3A\u5BF8\u6837\u5F0F (laptop+)\n * full: \u5DE6\u53F3\u5E03\u5C40\uFF0C\u56FE\u7247\u5BBD\u5EA6\u5360 2/3\n * 2/3: \u5DE6\u53F3\u5E03\u5C40\uFF0C\u56FE\u7247\u5BBD\u5EA6\u5360 1/2\n * 1/3: \u4E0A\u4E0B\u5E03\u5C40\uFF0C\u56FE\u7247\u9AD8\u5EA6\u586B\u6EE1\u5269\u4F59\u7A7A\u95F4\n */\nconst getImageSizeClass = (span: FeaturedBlogPostSpan = 'full') => {\n const sizeMap: Record<FeaturedBlogPostSpan, string> = {\n full: 'laptop:h-full laptop:w-2/3',\n '2/3': 'laptop:h-full laptop:w-1/2',\n '1/3': 'laptop:flex-1 h-[200px] lg-desktop:h-[240px]',\n }\n return sizeMap[span]\n}\n\n/**\n * FeaturedBlogPosts - \u7CBE\u9009\u535A\u6587\n *\n * @description \u5C55\u793A\u7ECF\u8FC7\u7B5B\u9009\u7684\u4F18\u8D28\u6587\u7AE0\uFF0C\u652F\u6301\u4E0D\u540C\u5BBD\u5EA6\u548C\u5E03\u5C40\u7684\u5361\u7247\u7EC4\u5408\n */\nconst FeaturedBlogPostsBase = React.forwardRef<HTMLDivElement, FeaturedBlogPostsProps>(\n ({ className, classNames = {}, data, onItemClick, ...props }, ref) => {\n const { title, subtitle, items } = data\n\n const handleCardClick = React.useCallback(\n (item: FeaturedBlogPostItem, index: number) => (event: React.MouseEvent) => {\n onItemClick?.(item, index, event)\n },\n [onItemClick]\n )\n\n return (\n <div\n ref={ref}\n className={cn('blog-posts-root', 'text-info-primary w-full', className, classNames.root)}\n {...props}\n >\n {/* \u6807\u9898\u533A\u57DF */}\n {(title || subtitle) && (\n <div className={cn('blog-posts-header mb-6', classNames.header)}>\n {title && <Heading as=\"h2\" size={4} html={title} className={cn('blog-posts-title', classNames.title)} />}\n {subtitle && <Text as=\"p\" size={3} className={cn('', classNames?.subtitle)} html={subtitle} />}\n </div>\n )}\n <div className={cn('blog-posts-grid', 'laptop:grid-cols-3 grid grid-cols-1 gap-4', classNames.grid)}>\n {items.map((item, index) => {\n const CardWrapper = item.link ? 'a' : 'div'\n const cardProps = item.link ? { href: item.link } : {}\n\n return (\n <React.Fragment key={index}>\n <CardWrapper\n {...cardProps}\n className={cn(\n 'blog-posts-card rounded-box',\n 'flex cursor-pointer flex-col gap-4',\n 'laptop:h-[336px] desktop:h-[448px] lg-desktop:h-[560px]',\n 'laptop:bg-container-secondary-0 laptop:p-4 desktop:p-6 lg-desktop:p-8',\n 'laptop:overflow-hidden laptop:transition-opacity ',\n 'bg-container-secondary-1',\n getSpanClass(item.width || 'full'),\n getLayoutClass(item.width || 'full'),\n classNames.card\n )}\n onClick={handleCardClick(item, index)}\n >\n {/* \u56FE\u7247 */}\n <div\n className={cn(\n 'blog-posts-card-image',\n 'relative w-full overflow-hidden',\n 'h-[200px] shrink-0',\n getImageSizeClass(item.width || 'full'),\n classNames.cardImage\n )}\n >\n <Picture\n source={getImageSource(item.image)}\n alt={getImageAlt(item.image, item.title)}\n className=\"rounded-box h-full object-cover\"\n imgClassName=\"h-full\"\n />\n </div>\n\n {/* \u5185\u5BB9 */}\n <div\n className={cn(\n 'blog-posts-card-content',\n 'desktop:gap-6 flex flex-col justify-center gap-4',\n classNames.cardContent\n )}\n >\n <div className=\"desktop:gap-2 flex flex-col gap-1\">\n <Heading\n size={2}\n as=\"h6\"\n className={cn('blog-posts-card-title line-clamp-3', classNames.cardTitle)}\n html={item.title}\n />\n\n {item.description && (\n <Text\n className={cn(\n 'blog-posts-card-description desktop:text-[16px] lg-desktop:text-[18px] line-clamp-3 text-[14px]',\n classNames.cardDescription\n )}\n html={item.description}\n />\n )}\n </div>\n {item.date && (\n <Text\n className={cn(\n 'blog-posts-card-meta',\n 'text-info-tertiary desktop:text-[16px] lg-desktop:text-[18px] text-[14px]',\n classNames.cardMeta\n )}\n html={item.date}\n />\n )}\n </div>\n </CardWrapper>\n\n {/* \u5206\u5272\u7EBF - \u4EC5 mobile/tablet \u663E\u793A */}\n {index < items.length - 1 && (\n <div\n className={cn(\n 'blog-posts-separator',\n 'bg-lines-primary laptop:hidden h-px w-full',\n classNames.separator\n )}\n />\n )}\n </React.Fragment>\n )\n })}\n </div>\n </div>\n )\n }\n)\n\nFeaturedBlogPostsBase.displayName = 'FeaturedBlogPosts'\n\nconst FeaturedBlogPosts = withLayout(FeaturedBlogPostsBase)\n\nexport default FeaturedBlogPosts\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["'use client'\n\nimport * as React from 'react'\nimport { cn } from '../../helpers/index.js'\nimport Picture from '../../components/picture.js'\nimport type { Img } from '../../types/props.js'\nimport { Heading, Text } from '../../index.js'\nimport { withLayout } from '../../shared/Styles.js'\n\nexport type FeaturedBlogPostsSemanticName =\n | 'root'\n | 'header'\n | 'title'\n | 'subtitle'\n | 'grid'\n | 'card'\n | 'cardImage'\n | 'cardContent'\n | 'cardTitle'\n | 'cardDescription'\n | 'cardMeta'\n | 'separator'\n\n/**\n * \u5361\u7247\u5BBD\u5EA6\u6BD4\u4F8B\n */\nexport type FeaturedBlogPostSpan = 'full' | '2/3' | '1/3'\n\n/**\n * \u535A\u6587\u5361\u7247\u9879\u6570\u636E\u63A5\u53E3\n */\nexport interface FeaturedBlogPostItem {\n /** \u5C01\u9762\u56FE\u7247 */\n image: {\n mobile?: Img\n pad?: Img\n laptop?: Img\n desktop?: Img\n lgDesktop?: Img\n }\n /** \u6587\u7AE0\u6807\u9898 */\n title: string\n /** \u6587\u7AE0\u63CF\u8FF0 */\n description?: string\n /** \u65E5\u671F\u4FE1\u606F\uFF08\u5206\u7C7B\u00B7\u65E5\u671F\u00B7\u4F5C\u8005\uFF09 */\n date?: string\n /** \u6587\u7AE0\u94FE\u63A5 */\n link?: string\n /** \u5361\u7247\u5BBD\u5EA6\u6BD4\u4F8B\uFF0C\u9ED8\u8BA4 full */\n width?: FeaturedBlogPostSpan\n}\n\n/**\n * FeaturedBlogPosts \u4E1A\u52A1\u7EC4\u4EF6\u6570\u636E\u63A5\u53E3\n */\nexport interface FeaturedBlogPostsData {\n /** \u4E3B\u6807\u9898 */\n title?: string\n /** \u526F\u6807\u9898 */\n subtitle?: string\n /** \u535A\u6587\u5217\u8868 */\n items: FeaturedBlogPostItem[]\n}\n\nexport interface FeaturedBlogPostsProps extends React.HTMLAttributes<HTMLDivElement> {\n /** \u4E1A\u52A1\u6570\u636E */\n data: FeaturedBlogPostsData\n /** \u8BED\u4E49\u5316\u7C7B\u540D\u8986\u76D6 */\n classNames?: Partial<Record<FeaturedBlogPostsSemanticName, string>>\n /** \u5361\u7247\u70B9\u51FB\u56DE\u8C03 */\n onItemClick?: (item: FeaturedBlogPostItem, index: number, event: React.MouseEvent) => void\n}\n\n/**\n * \u54CD\u5E94\u5F0F\u56FE\u7247\u7C7B\u578B\n */\ntype ResponsiveImage = FeaturedBlogPostItem['image']\n\n/**\n * \u5C06\u54CD\u5E94\u5F0F\u56FE\u7247\u5BF9\u8C61\u8F6C\u4E3A Picture source \u683C\u5F0F\u5B57\u7B26\u4E32\n * \u683C\u5F0F: \"url1 1920, url2 1440, url3 1024, url4 768, url5 390\"\n */\nconst getImageSource = (image: ResponsiveImage): string => {\n const breakpoints: { key: keyof ResponsiveImage; width: number }[] = [\n { key: 'lgDesktop', width: 1920 },\n { key: 'desktop', width: 1440 },\n { key: 'laptop', width: 1024 },\n { key: 'pad', width: 768 },\n { key: 'mobile', width: 390 },\n ]\n\n const sources = breakpoints\n .filter(({ key }) => image[key]?.url)\n .map(({ key, width }) => `${image[key]!.url} ${width}`)\n\n // \u5982\u679C\u6709 sources\uFF0C\u8FD4\u56DE\u62FC\u63A5\u7ED3\u679C\uFF1B\u5426\u5219\u8FD4\u56DE\u7B2C\u4E00\u4E2A\u6709\u6548\u7684 url\n if (sources.length > 0) {\n return sources.join(', ')\n }\n\n // fallback: \u8FD4\u56DE\u4EFB\u610F\u4E00\u4E2A\u6709\u6548\u7684 url\n for (const { key } of breakpoints) {\n if (image[key]?.url) return image[key]!.url\n }\n\n return ''\n}\n\n/**\n * \u4ECE\u54CD\u5E94\u5F0F\u56FE\u7247\u5BF9\u8C61\u83B7\u53D6 alt \u6587\u672C\n */\nconst getImageAlt = (image: ResponsiveImage, fallback: string): string => {\n const keys: (keyof ResponsiveImage)[] = ['desktop', 'laptop', 'pad', 'mobile', 'lgDesktop']\n for (const key of keys) {\n if (image[key]?.alt) return image[key]!.alt!\n }\n return fallback\n}\n\n/**\n * \u6839\u636E span \u83B7\u53D6\u5361\u7247 grid \u5217\u6570 (laptop+)\n */\nconst getSpanClass = (span: FeaturedBlogPostSpan = 'full') => {\n const spanMap: Record<FeaturedBlogPostSpan, string> = {\n full: 'laptop:col-span-3',\n '2/3': 'laptop:col-span-2',\n '1/3': 'laptop:col-span-1',\n }\n return spanMap[span]\n}\n\n/**\n * \u6839\u636E span \u83B7\u53D6\u5361\u7247\u5E03\u5C40\u65B9\u5411 (laptop+)\n * 1/3: \u4E0A\u4E0B\u5E03\u5C40\uFF0C\u5176\u4ED6: \u5DE6\u53F3\u5E03\u5C40\n */\nconst getLayoutClass = (span: FeaturedBlogPostSpan = 'full') => {\n return span === '1/3' ? '' : 'laptop:flex-row'\n}\n\n/**\n * \u6839\u636E span \u83B7\u53D6\u56FE\u7247\u5C3A\u5BF8\u6837\u5F0F (laptop+)\n * full: \u5DE6\u53F3\u5E03\u5C40\uFF0C\u56FE\u7247\u5BBD\u5EA6\u5360 2/3\n * 2/3: \u5DE6\u53F3\u5E03\u5C40\uFF0C\u56FE\u7247\u5BBD\u5EA6\u5360 1/2\n * 1/3: \u4E0A\u4E0B\u5E03\u5C40\uFF0C\u56FE\u7247\u9AD8\u5EA6\u586B\u6EE1\u5269\u4F59\u7A7A\u95F4\n */\nconst getImageSizeClass = (span: FeaturedBlogPostSpan = 'full') => {\n const sizeMap: Record<FeaturedBlogPostSpan, string> = {\n full: 'laptop:h-full laptop:w-2/3',\n '2/3': 'laptop:h-full laptop:w-1/2',\n '1/3': 'h-[200px] lg-desktop:h-[240px]',\n }\n return sizeMap[span]\n}\n\n/**\n * FeaturedBlogPosts - \u7CBE\u9009\u535A\u6587\n *\n * @description \u5C55\u793A\u7ECF\u8FC7\u7B5B\u9009\u7684\u4F18\u8D28\u6587\u7AE0\uFF0C\u652F\u6301\u4E0D\u540C\u5BBD\u5EA6\u548C\u5E03\u5C40\u7684\u5361\u7247\u7EC4\u5408\n */\nconst FeaturedBlogPostsBase = React.forwardRef<HTMLDivElement, FeaturedBlogPostsProps>(\n ({ className, classNames = {}, data, onItemClick, ...props }, ref) => {\n const { title, subtitle, items } = data\n\n const handleCardClick = React.useCallback(\n (item: FeaturedBlogPostItem, index: number) => (event: React.MouseEvent) => {\n onItemClick?.(item, index, event)\n },\n [onItemClick]\n )\n\n return (\n <div\n ref={ref}\n className={cn('blog-posts-root', 'text-info-primary w-full', className, classNames.root)}\n {...props}\n >\n {/* \u6807\u9898\u533A\u57DF */}\n {(title || subtitle) && (\n <div className={cn('blog-posts-header mb-6', classNames.header)}>\n {title && <Heading as=\"h2\" size={4} html={title} className={cn('blog-posts-title', classNames.title)} />}\n {subtitle && <Text as=\"p\" size={3} className={cn('', classNames?.subtitle)} html={subtitle} />}\n </div>\n )}\n <div className={cn('blog-posts-grid', 'laptop:grid-cols-3 grid grid-cols-1 gap-4', classNames.grid)}>\n {items.map((item, index) => {\n const CardWrapper = item.link ? 'a' : 'div'\n const cardProps = item.link ? { href: item.link } : {}\n\n return (\n <React.Fragment key={index}>\n <CardWrapper\n {...cardProps}\n className={cn(\n 'blog-posts-card rounded-box',\n 'flex cursor-pointer flex-col gap-4',\n 'laptop:min-h-[336px] desktop:min-h-[448px] lg-desktop:min-h-[560px]',\n 'laptop:bg-container-secondary-0 laptop:p-4 desktop:p-6 lg-desktop:p-8',\n 'laptop:overflow-hidden laptop:transition-opacity ',\n 'bg-container-secondary-1',\n getSpanClass(item.width || 'full'),\n getLayoutClass(item.width || 'full'),\n classNames.card\n )}\n onClick={handleCardClick(item, index)}\n >\n {/* \u56FE\u7247 */}\n <div\n className={cn(\n 'blog-posts-card-image',\n 'relative w-full overflow-hidden',\n 'flex-0 h-[200px] shrink-0',\n getImageSizeClass(item.width || 'full'),\n classNames.cardImage\n )}\n >\n <Picture\n source={getImageSource(item.image)}\n alt={getImageAlt(item.image, item.title)}\n className=\"rounded-box h-full object-cover\"\n imgClassName=\"h-full object-cover\"\n />\n </div>\n\n {/* \u5185\u5BB9 */}\n <div\n className={cn(\n 'blog-posts-card-content',\n 'desktop:gap-6 flex flex-col justify-center gap-4',\n classNames.cardContent\n )}\n >\n <div className=\"desktop:gap-2 flex flex-col gap-1\">\n <Heading\n size={2}\n as=\"h6\"\n className={cn('blog-posts-card-title line-clamp-3', classNames.cardTitle)}\n html={item.title}\n />\n\n {item.description && (\n <Text\n className={cn(\n 'blog-posts-card-description desktop:text-[16px] lg-desktop:text-[18px] line-clamp-3 text-[14px]',\n classNames.cardDescription\n )}\n html={item.description}\n />\n )}\n </div>\n {item.date && (\n <Text\n className={cn(\n 'blog-posts-card-meta',\n 'text-info-tertiary desktop:text-[16px] lg-desktop:text-[18px] text-[14px]',\n classNames.cardMeta\n )}\n html={item.date}\n />\n )}\n </div>\n </CardWrapper>\n\n {/* \u5206\u5272\u7EBF - \u4EC5 mobile/tablet \u663E\u793A */}\n {index < items.length - 1 && (\n <div\n className={cn(\n 'blog-posts-separator',\n 'bg-lines-primary laptop:hidden h-px w-full',\n classNames.separator\n )}\n />\n )}\n </React.Fragment>\n )\n })}\n </div>\n </div>\n )\n }\n)\n\nFeaturedBlogPostsBase.displayName = 'FeaturedBlogPosts'\n\nconst FeaturedBlogPosts = withLayout(FeaturedBlogPostsBase)\n\nexport default FeaturedBlogPosts\n"],
5
+ "mappings": "aAkLU,OACY,OAAAA,EADZ,QAAAC,MAAA,oBAhLV,UAAYC,MAAW,QACvB,OAAS,MAAAC,MAAU,yBACnB,OAAOC,MAAa,8BAEpB,OAAS,WAAAC,EAAS,QAAAC,MAAY,iBAC9B,OAAS,cAAAC,MAAkB,yBA2E3B,MAAMC,EAAkBC,GAAmC,CACzD,MAAMC,EAA+D,CACnE,CAAE,IAAK,YAAa,MAAO,IAAK,EAChC,CAAE,IAAK,UAAW,MAAO,IAAK,EAC9B,CAAE,IAAK,SAAU,MAAO,IAAK,EAC7B,CAAE,IAAK,MAAO,MAAO,GAAI,EACzB,CAAE,IAAK,SAAU,MAAO,GAAI,CAC9B,EAEMC,EAAUD,EACb,OAAO,CAAC,CAAE,IAAAE,CAAI,IAAMH,EAAMG,CAAG,GAAG,GAAG,EACnC,IAAI,CAAC,CAAE,IAAAA,EAAK,MAAAC,CAAM,IAAM,GAAGJ,EAAMG,CAAG,EAAG,GAAG,IAAIC,CAAK,EAAE,EAGxD,GAAIF,EAAQ,OAAS,EACnB,OAAOA,EAAQ,KAAK,IAAI,EAI1B,SAAW,CAAE,IAAAC,CAAI,IAAKF,EACpB,GAAID,EAAMG,CAAG,GAAG,IAAK,OAAOH,EAAMG,CAAG,EAAG,IAG1C,MAAO,EACT,EAKME,EAAc,CAACL,EAAwBM,IAA6B,CACxE,MAAMC,EAAkC,CAAC,UAAW,SAAU,MAAO,SAAU,WAAW,EAC1F,UAAWJ,KAAOI,EAChB,GAAIP,EAAMG,CAAG,GAAG,IAAK,OAAOH,EAAMG,CAAG,EAAG,IAE1C,OAAOG,CACT,EAKME,EAAe,CAACC,EAA6B,UACK,CACpD,KAAM,oBACN,MAAO,oBACP,MAAO,mBACT,GACeA,CAAI,EAOfC,EAAiB,CAACD,EAA6B,SAC5CA,IAAS,MAAQ,GAAK,kBASzBE,EAAoB,CAACF,EAA6B,UACA,CACpD,KAAM,6BACN,MAAO,6BACP,MAAO,gCACT,GACeA,CAAI,EAQfG,EAAwBnB,EAAM,WAClC,CAAC,CAAE,UAAAoB,EAAW,WAAAC,EAAa,CAAC,EAAG,KAAAC,EAAM,YAAAC,EAAa,GAAGC,CAAM,EAAGC,IAAQ,CACpE,KAAM,CAAE,MAAAC,EAAO,SAAAC,EAAU,MAAAC,CAAM,EAAIN,EAE7BO,EAAkB7B,EAAM,YAC5B,CAAC8B,EAA4BC,IAAmBC,GAA4B,CAC1ET,IAAcO,EAAMC,EAAOC,CAAK,CAClC,EACA,CAACT,CAAW,CACd,EAEA,OACExB,EAAC,OACC,IAAK0B,EACL,UAAWxB,EAAG,kBAAmB,2BAA4BmB,EAAWC,EAAW,IAAI,EACtF,GAAGG,EAGF,WAAAE,GAASC,IACT5B,EAAC,OAAI,UAAWE,EAAG,yBAA0BoB,EAAW,MAAM,EAC3D,UAAAK,GAAS5B,EAACK,EAAA,CAAQ,GAAG,KAAK,KAAM,EAAG,KAAMuB,EAAO,UAAWzB,EAAG,mBAAoBoB,EAAW,KAAK,EAAG,EACrGM,GAAY7B,EAACM,EAAA,CAAK,GAAG,IAAI,KAAM,EAAG,UAAWH,EAAG,GAAIoB,GAAY,QAAQ,EAAG,KAAMM,EAAU,GAC9F,EAEF7B,EAAC,OAAI,UAAWG,EAAG,kBAAmB,4CAA6CoB,EAAW,IAAI,EAC/F,SAAAO,EAAM,IAAI,CAACE,EAAMC,IAAU,CAC1B,MAAME,EAAcH,EAAK,KAAO,IAAM,MAChCI,EAAYJ,EAAK,KAAO,CAAE,KAAMA,EAAK,IAAK,EAAI,CAAC,EAErD,OACE/B,EAACC,EAAM,SAAN,CACC,UAAAD,EAACkC,EAAA,CACE,GAAGC,EACJ,UAAWjC,EACT,8BACA,qCACA,sEACA,wEACA,oDACA,2BACAc,EAAae,EAAK,OAAS,MAAM,EACjCb,EAAea,EAAK,OAAS,MAAM,EACnCT,EAAW,IACb,EACA,QAASQ,EAAgBC,EAAMC,CAAK,EAGpC,UAAAjC,EAAC,OACC,UAAWG,EACT,wBACA,kCACA,4BACAiB,EAAkBY,EAAK,OAAS,MAAM,EACtCT,EAAW,SACb,EAEA,SAAAvB,EAACI,EAAA,CACC,OAAQI,EAAewB,EAAK,KAAK,EACjC,IAAKlB,EAAYkB,EAAK,MAAOA,EAAK,KAAK,EACvC,UAAU,kCACV,aAAa,sBACf,EACF,EAGA/B,EAAC,OACC,UAAWE,EACT,0BACA,mDACAoB,EAAW,WACb,EAEA,UAAAtB,EAAC,OAAI,UAAU,oCACb,UAAAD,EAACK,EAAA,CACC,KAAM,EACN,GAAG,KACH,UAAWF,EAAG,qCAAsCoB,EAAW,SAAS,EACxE,KAAMS,EAAK,MACb,EAECA,EAAK,aACJhC,EAACM,EAAA,CACC,UAAWH,EACT,kGACAoB,EAAW,eACb,EACA,KAAMS,EAAK,YACb,GAEJ,EACCA,EAAK,MACJhC,EAACM,EAAA,CACC,UAAWH,EACT,uBACA,4EACAoB,EAAW,QACb,EACA,KAAMS,EAAK,KACb,GAEJ,GACF,EAGCC,EAAQH,EAAM,OAAS,GACtB9B,EAAC,OACC,UAAWG,EACT,uBACA,6CACAoB,EAAW,SACb,EACF,IAjFiBU,CAmFrB,CAEJ,CAAC,EACH,GACF,CAEJ,CACF,EAEAZ,EAAsB,YAAc,oBAEpC,MAAMgB,EAAoB9B,EAAWc,CAAqB,EAE1D,IAAOiB,EAAQD",
6
6
  "names": ["jsx", "jsxs", "React", "cn", "Picture", "Heading", "Text", "withLayout", "getImageSource", "image", "breakpoints", "sources", "key", "width", "getImageAlt", "fallback", "keys", "getSpanClass", "span", "getLayoutClass", "getImageSizeClass", "FeaturedBlogPostsBase", "className", "classNames", "data", "onItemClick", "props", "ref", "title", "subtitle", "items", "handleCardClick", "item", "index", "event", "CardWrapper", "cardProps", "FeaturedBlogPosts", "FeaturedBlogPosts_default"]
7
7
  }
@@ -17,5 +17,5 @@ declare const _default: import("react").ForwardRefExoticComponent<Omit<import("r
17
17
  mobileImg: Img;
18
18
  list: FeaturesDataType[];
19
19
  };
20
- }, "container" | keyof import("../../shared/Styles.js").StylesProps> & import("../../shared/Styles.js").StylesProps & import("../WheelLottery/index.js").ContainerProps & import("react").RefAttributes<unknown>> & {};
20
+ }, "container" | keyof import("../../shared/Styles.js").StylesProps> & import("../../shared/Styles.js").StylesProps & import("../index.js").ContainerProps & import("react").RefAttributes<unknown>> & {};
21
21
  export default _default;
@@ -4,5 +4,5 @@ interface FootChargerType extends React.HTMLAttributes<HTMLDivElement> {
4
4
  text: string;
5
5
  };
6
6
  }
7
- declare const _default: import("react").ForwardRefExoticComponent<Omit<FootChargerType, "container" | keyof import("../../shared/Styles.js").StylesProps> & import("../../shared/Styles.js").StylesProps & import("../WheelLottery/index.js").ContainerProps & import("react").RefAttributes<unknown>> & {};
7
+ declare const _default: import("react").ForwardRefExoticComponent<Omit<FootChargerType, "container" | keyof import("../../shared/Styles.js").StylesProps> & import("../../shared/Styles.js").StylesProps & import("../index.js").ContainerProps & import("react").RefAttributes<unknown>> & {};
8
8
  export default _default;
@@ -1,3 +1,3 @@
1
1
  import type { FooterNavigationProps } from './types.js';
2
- declare const _default: import("react").ForwardRefExoticComponent<Omit<FooterNavigationProps, "container" | keyof import("../../shared/Styles.js").StylesProps> & import("../../shared/Styles.js").StylesProps & import("../WheelLottery/index.js").ContainerProps & import("react").RefAttributes<unknown>> & {};
2
+ declare const _default: import("react").ForwardRefExoticComponent<Omit<FooterNavigationProps, "container" | keyof import("../../shared/Styles.js").StylesProps> & import("../../shared/Styles.js").StylesProps & import("../index.js").ContainerProps & import("react").RefAttributes<unknown>> & {};
3
3
  export default _default;
@@ -1,2 +1,2 @@
1
- import{jsx as e,jsxs as o}from"react/jsx-runtime";import{useEffect as w,useMemo as D,useState as v}from"react";import{Text as d,Container as F,Link as x}from"../../components/index.js";import S from"../Subscribe/index.js";import{FooterNavigationBlockType as y}from"./types.js";import{AddIcon as B,SubtractIcon as C,ArrowRightIcon as z,CountryIcon as E}from"./icons/index.js";import{useMediaQuery as M}from"react-responsive";import{cn as m,getLocalizedPath as u}from"../../helpers/utils.js";import{useAiuiContext as k}from"../AiuiProvider/index.js";import{withLayout as $}from"../../shared/Styles.js";const T=({data:{footer:a}={},currentCountry:p,event:n,subscribeLoading:f,classNames:i,className:l,moduleIds:s,...b})=>{const[c,r]=v(!1),g=M({query:"(max-width: 1439px)"});w(()=>{r(g)},[g]);const h=D(()=>a?.blocks?.find(t=>t?.blockType===y.Brand)?.country||{},[a]);return e("footer",{...b,className:m(i?.root,l),children:o(F,{className:m(i?.child),childClassName:m("laptop:py-16 desktop:gap-16 flex flex-col gap-8 bg-black py-8"),children:[e(d,{html:a?.story,className:"desktop:text-sm text-xs font-bold text-[#6D6D6F]"}),a?.blocks?.map(t=>{if(t?.blockType===y.Signup)return e(P,{subscribeLoading:f,data:t,onSubmit:n?.signup,id:s?.marketingConversion},t.id);if(t?.blockType===y.Brand)return e(j,{data:t,isMobile:c,event:n,currentCountry:p,id:s?.footerBrand},t?.id);if(t?.blockType===y.Main)return e(O,{data:{...t,country:h},event:n,isMobile:c,currentCountry:p,id:s?.mainServices},t.id)})]})})},P=({data:a,onSubmit:p,subscribeLoading:n,id:f="footer-marketing-conversion"})=>{const{locale:i="us"}=k();return o("div",{id:f,className:"desktop:py-16 desktop:gap-16 laptop:px-8 desktop:flex-row rounded-btn flex flex-col gap-8 bg-[#1E2024] px-4 py-8",children:[e(S,{subscribeMetadata:a?.signup,className:"desktop:flex-[744]",onSubmit:p,loading:n}),e("div",{className:"desktop:hidden h-px w-full bg-[#3D3E3F]"}),o("div",{className:"desktop:gap-6 laptop:flex-row desktop:flex-[792] flex flex-col gap-4",children:[o("div",{className:"flex-1",children:[e(d,{html:a?.enjoy?.title,className:" text-xl font-bold leading-[1.2] text-white"}),e("div",{className:"mt-4 flex flex-col gap-2",children:a?.enjoy?.enjoys?.map(l=>o("div",{className:"flex-start flex gap-2",children:[e("img",{src:l?.icon?.url,loading:"lazy",alt:l?.icon?.alt||"",className:"size-5 shrink-0"}),e(d,{html:l?.label,className:"desktop:text-base text-sm font-bold leading-[1.2] text-[#B6B6BA]"})]},l?.id))})]}),e("div",{className:"desktop:block hidden w-px bg-[#3D3E3F]"}),o("div",{className:"flex-1",children:[e(d,{html:a?.benefit?.title,className:"text-xl font-bold leading-[1.2] text-white"}),e("div",{className:"mt-4 flex flex-col gap-2",children:a?.benefit?.benefits?.map(l=>e(x,{href:`${u(l?.link,i)}?ref=footer`,asChild:!l?.link,className:"no-underline",children:e(d,{html:l?.label,className:"desktop:text-base text-sm font-bold leading-[1.2] text-[#B6B6BA] hover:text-white"})},l?.id))})]})]})]})},O=({data:a,event:p,isMobile:n,currentCountry:f,id:i="footer-main-services"})=>{const{locale:l="us"}=k(),[s,b]=v(!1),{services:c,mainNav:r,country:g}=a,h="contact-section";return o("nav",{id:i,className:"flex flex-col gap-8","aria-label":"Main navigation",children:[o("div",{className:m({"desktop:gap-16 flex":c?.download?.title}),children:[o("div",{className:m("w-full",{"desktop:flex-[1260]":c?.download?.title}),children:[e(d,{html:c?.storeBenefits?.title,className:" text-xl font-bold leading-[1.2] text-white"}),e("div",{className:m("laptop:flex-row desktop:gap-4 laptop:flex-wrap mt-4 flex flex-col gap-2",{"desktop:max-w-[648px]":c?.download?.title}),children:c?.storeBenefits?.reasons?.map(t=>o("div",{className:"desktop:min-w-[288px] flex flex-1 shrink-0 items-center gap-2",children:[e("img",{src:t?.icon?.url,loading:"lazy",alt:t?.icon?.alt||"",className:"size-5 shrink-0"}),e(x,{href:`${u(t?.link,l)}?ref=footer`,asChild:!t?.link,className:"no-underline",children:e(d,{html:t?.label,className:"desktop:text-base text-sm font-bold leading-[1.2] text-[#B6B6BA]"})})]},t?.id))})]}),e(L,{className:m({"desktop:flex-[404] hidden desktop:block":c?.download?.title}),title:c?.download?.title,apps:c?.download?.apps})]}),e("div",{className:"desktop:block hidden h-px bg-[#3D3E3F]","aria-hidden":"true"}),o("div",{className:"desktop:grid grid-cols-4 gap-4",children:[e(N,{title:r?.products?.title,lists:r?.products?.products}),e(N,{title:r?.explore?.title,lists:r?.explore?.explores}),e(N,{title:r?.support?.title,lists:r?.support?.supports}),o("div",{className:"desktop:py-0 desktop:border-none border-t border-[#3D3E3F] pt-4",children:[o("div",{className:"desktop:pb-0 flex items-center justify-between pb-4",children:[e(d,{as:"p",html:r?.contact?.title,className:"text-xl font-bold leading-[1.2] text-white",id:h}),n&&e("button",{onClick:()=>b(!s),"aria-expanded":s,"aria-controls":h,"aria-label":s?"Collapse contact section":"Expand contact section",children:s?e(C,{width:20,height:20}):e(B,{width:20,height:20})})]}),(s&&n||!n)&&e("div",{className:"desktop:mt-4 desktop:mb-0 mb-4 flex flex-col gap-2",role:"region","aria-labelledby":h,children:r?.contact?.contacts?.map(t=>o(x,{href:t?.link,className:"group flex items-start gap-2 no-underline",children:[e("img",{src:t?.icon?.url,loading:"lazy",alt:t?.icon?.alt,className:"size-5 shrink-0 opacity-70 transition-opacity duration-200 group-hover:opacity-100"}),e(d,{html:t?.label,className:"desktop:text-base text-sm font-bold leading-[1.2] text-[#B6B6BA] transition-colors duration-200 group-hover:text-white"})]},t?.id))}),e(A,{country:f||g,className:"desktop:hidden border-b border-[#3D3E3F]",isMobile:n,onChangeCountry:p?.country}),e("div",{className:"desktop:hidden mt-8",children:e(L,{title:c?.download?.title,apps:c?.download?.apps})}),!!r?.socials?.length&&e("div",{className:"mt-8 flex items-center gap-2",role:"list","aria-label":"Social media links",children:r?.socials?.map(t=>e(x,{href:`${u(t?.link,l)}?ref=footer`,className:"group",role:"listitem","aria-label":t?.icon?.alt||"Social media",children:e("img",{src:t?.icon?.url,loading:"lazy",alt:t?.icon?.alt,className:"size-8 shrink-0 opacity-70 transition-opacity duration-200 group-hover:opacity-100"})},t?.id))}),e("div",{className:"mt-4 flex flex-wrap gap-2",role:"list","aria-label":"Payment methods",children:r?.payment?.map(t=>e(x,{href:u(t?.link,l),asChild:!t?.link,role:"listitem","aria-label":t?.icon?.alt||"Payment method",children:e("img",{src:t?.icon?.url,loading:"lazy",alt:t?.icon?.alt||"",className:"h-[28px] w-[44px] shrink-0"})},t?.id))})]})]})]})},j=({data:a,isMobile:p,event:n,currentCountry:f,id:i="footer-brand"})=>{const{locale:l="us"}=k();return o("div",{id:i,className:"flex flex-col gap-4",children:[o("div",{className:"desktop:items-center desktop:flex desktop:gap-4",children:[o("div",{className:"laptop:flex-row laptop:items-center desktop:flex-[980] flex flex-col items-start gap-4",children:[e(x,{href:`${u(a?.brand?.link,l)}?ref=footer`,asChild:!a?.brand?.link,children:e(d,{html:a?.brand?.currentBrand,className:"cursor-pointer text-[#B6B6BA] hover:text-white"})}),e("div",{className:"laptop:block laptop:mb-[10px] hidden h-[20px] w-px bg-[#B6B6BA]"}),e("div",{className:"desktop:gap-6 flex flex-wrap items-center gap-4",children:a?.brand?.brands?.map(s=>e(x,{href:`${u(s?.link,l)}?ref=footer`,children:e(d,{html:s?.icon,className:"text-[#B6B6BA] hover:text-white"})},s?.id))})]}),e(A,{country:f||a?.country,className:"desktop:flex-[316] desktop:block hidden",isMobile:p,onChangeCountry:n?.country})]}),e("div",{className:"h-px bg-[#3D3E3F]"}),o("div",{className:"laptop:flex-row desktop:gap-4 desktop:items-center flex flex-col items-start gap-1",children:[e(d,{html:a?.copyright?.label,className:"desktop:text-base text-xs font-bold leading-[1.4] text-[#6D6D6F]"}),o("div",{className:"flex flex-wrap items-center gap-x-2 gap-y-1",children:[a?.policy?.policies?.map(s=>e(x,{href:`${u(s?.link,l)}?ref=footer`,className:"desktop:text-base text-xs font-bold leading-[1.4] text-[#B6B6BA] no-underline hover:text-white",children:s?.label},s?.id)),a?.policy?.cookies&&e("button",{"data-cc":"show-preferencesModal",onClick:n?.cookiesSet,className:"desktop:text-base text-xs font-bold leading-[1.4] text-[#B6B6BA] no-underline hover:text-white focus:outline-none focus:ring-2 focus:ring-white focus:ring-offset-2 focus:ring-offset-black","aria-label":`Cookie preferences: ${a?.policy?.cookies}`,children:a?.policy?.cookies})]})]})]})},N=({title:a,lists:p,className:n})=>{const{locale:f="us"}=k(),[i,l]=v(!1),[s,b]=v(!1),c=M({query:"(max-width: 1439px)"});w(()=>{b(c)},[c]);const r=`nav-section-${a?.replace(/\s+/g,"-").toLowerCase()}`;return o("div",{className:m("desktop:py-0 desktop:border-none border-t border-[#3D3E3F] py-4",n),children:[o("div",{className:"flex items-center justify-between",children:[e(d,{as:"p",html:a,className:"text-xl font-bold leading-[1.2] text-white",id:r}),s&&e("button",{onClick:()=>l(!i),"aria-expanded":i,"aria-controls":r,"aria-label":i?`Collapse ${a}`:`Expand ${a}`,className:"focus:outline-none focus:ring-2 focus:ring-white focus:ring-offset-2 focus:ring-offset-black",children:i?e(C,{width:20,height:20}):e(B,{width:20,height:20})})]}),(i&&s||!s)&&e("nav",{className:"mt-4 flex flex-col gap-2",role:"region","aria-labelledby":r,children:p?.map(g=>e(x,{href:`${u(g?.link,f)}?ref=footer`,className:"no-underline",children:e(d,{html:g?.label,className:"desktop:text-base text-sm font-bold leading-[1.2] text-[#B6B6BA] hover:text-white"})},g?.id))})]})},L=({title:a,apps:p,className:n})=>{const{locale:f="us"}=k();return p?.length?o("div",{className:n,children:[e(d,{html:a,className:" text-xl font-bold leading-[1.2] text-white"}),e("div",{className:"mt-4 flex items-center gap-4",role:"list","aria-label":"Download apps",children:p?.map(i=>o(x,{href:u(i?.link,f),className:"group flex flex-col items-center gap-[6px]",role:"listitem","aria-label":i?.icon?.alt||i?.label||"Download app",children:[e("img",{src:i?.icon?.url,loading:"lazy",alt:i?.icon?.alt,className:"size-10 shrink-0 opacity-70 transition-opacity duration-200 group-hover:opacity-100"}),i?.label&&e(d,{html:i?.label,className:"text-xs font-bold text-[#999999] transition-colors duration-200 group-hover:text-white"})]},i?.id))})]}):null},A=({country:a,isMobile:p,className:n,onChangeCountry:f})=>e("div",{className:m("desktop:py-0 desktop:border-none border-t border-[#3D3E3F] py-4",n),children:o("button",{onClick:()=>f?.(),className:"flex w-full items-center justify-between focus:outline-none focus:ring-2 focus:ring-white focus:ring-offset-2 focus:ring-offset-black","aria-label":`Change country/region, current: ${a?.countryName||a?.country}`,children:[o("div",{className:"group flex items-center gap-2",children:[e(E,{width:20,height:20,className:"shrink-0 opacity-70 transition-opacity duration-200 group-hover:opacity-100","aria-hidden":"true"}),e(d,{as:"span",html:a?.countryName||a?.country,className:"desktop:text-[#B6B6BA] desktop:group-hover:text-white text-base font-bold leading-[1.4] text-white transition-colors duration-200"})]}),p&&e(z,{width:20,height:20,"aria-hidden":"true"})]})});var V=$(T);export{V as default};
1
+ import{jsx as e,jsxs as o}from"react/jsx-runtime";import{useEffect as w,useMemo as D,useState as v}from"react";import{Text as d,Container as F,Link as m}from"../../components/index.js";import S from"../Subscribe/index.js";import{FooterNavigationBlockType as y}from"./types.js";import{AddIcon as B,SubtractIcon as C,ArrowRightIcon as z,CountryIcon as E}from"./icons/index.js";import{useIsomorphicMediaQuery as M}from"../../hooks/useIsomorphicMediaQuery.js";import{cn as x,getLocalizedPath as u}from"../../helpers/utils.js";import{useAiuiContext as k}from"../AiuiProvider/index.js";import{withLayout as T}from"../../shared/Styles.js";const P=({data:{footer:a}={},currentCountry:p,event:n,subscribeLoading:f,classNames:i,className:s,moduleIds:l,...b})=>{const[c,r]=v(!1),g=M({query:"(max-width: 1439px)"});w(()=>{r(g)},[g]);const h=D(()=>a?.blocks?.find(t=>t?.blockType===y.Brand)?.country||{},[a]);return e("footer",{...b,className:x(i?.root,s),children:o(F,{className:x(i?.child),childClassName:x("laptop:py-16 desktop:gap-16 flex flex-col gap-8 bg-black py-8"),children:[e(d,{html:a?.story,className:"desktop:text-sm text-xs font-bold text-[#6D6D6F]"}),a?.blocks?.map(t=>{if(t?.blockType===y.Signup)return e($,{subscribeLoading:f,data:t,onSubmit:n?.signup,id:l?.marketingConversion},t.id);if(t?.blockType===y.Brand)return e(j,{data:t,isMobile:c,event:n,currentCountry:p,id:l?.footerBrand},t?.id);if(t?.blockType===y.Main)return e(O,{data:{...t,country:h},event:n,isMobile:c,currentCountry:p,id:l?.mainServices},t.id)})]})})},$=({data:a,onSubmit:p,subscribeLoading:n,id:f="footer-marketing-conversion"})=>{const{locale:i="us"}=k();return o("div",{id:f,className:"desktop:py-16 desktop:gap-16 laptop:px-8 desktop:flex-row rounded-btn flex flex-col gap-8 bg-[#1E2024] px-4 py-8",children:[e(S,{subscribeMetadata:a?.signup,className:"desktop:flex-[744]",onSubmit:p,loading:n}),e("div",{className:"desktop:hidden h-px w-full bg-[#3D3E3F]"}),o("div",{className:"desktop:gap-6 laptop:flex-row desktop:flex-[792] flex flex-col gap-4",children:[o("div",{className:"flex-1",children:[e(d,{html:a?.enjoy?.title,className:" text-xl font-bold leading-[1.2] text-white"}),e("div",{className:"mt-4 flex flex-col gap-2",children:a?.enjoy?.enjoys?.map(s=>o("div",{className:"flex-start flex gap-2",children:[e("img",{src:s?.icon?.url,loading:"lazy",alt:s?.icon?.alt||"",className:"size-5 shrink-0"}),e(d,{html:s?.label,className:"desktop:text-base text-sm font-bold leading-[1.2] text-[#B6B6BA]"})]},s?.id))})]}),e("div",{className:"desktop:block hidden w-px bg-[#3D3E3F]"}),o("div",{className:"flex-1",children:[e(d,{html:a?.benefit?.title,className:"text-xl font-bold leading-[1.2] text-white"}),e("div",{className:"mt-4 flex flex-col gap-2",children:a?.benefit?.benefits?.map(s=>e(m,{href:u(s?.link,i,"ref=footer"),asChild:!s?.link,className:"no-underline",children:e(d,{html:s?.label,className:"desktop:text-base text-sm font-bold leading-[1.2] text-[#B6B6BA] hover:text-white"})},s?.id))})]})]})]})},O=({data:a,event:p,isMobile:n,currentCountry:f,id:i="footer-main-services"})=>{const{locale:s="us"}=k(),[l,b]=v(!1),{services:c,mainNav:r,country:g}=a,h="contact-section";return o("nav",{id:i,className:"flex flex-col gap-8","aria-label":"Main navigation",children:[o("div",{className:x({"desktop:gap-16 flex":c?.download?.title}),children:[o("div",{className:x("w-full",{"desktop:flex-[1260]":c?.download?.title}),children:[e(d,{html:c?.storeBenefits?.title,className:" text-xl font-bold leading-[1.2] text-white"}),e("div",{className:x("laptop:flex-row desktop:gap-4 laptop:flex-wrap mt-4 flex flex-col gap-2",{"desktop:max-w-[648px]":c?.download?.title}),children:c?.storeBenefits?.reasons?.map(t=>o("div",{className:"desktop:min-w-[288px] flex flex-1 shrink-0 items-center gap-2",children:[e("img",{src:t?.icon?.url,loading:"lazy",alt:t?.icon?.alt||"",className:"size-5 shrink-0"}),e(m,{href:u(t?.link,s,"ref=footer"),asChild:!t?.link,className:"no-underline",children:e(d,{html:t?.label,className:"desktop:text-base text-sm font-bold leading-[1.2] text-[#B6B6BA]"})})]},t?.id))})]}),e(L,{className:x({"desktop:flex-[404] hidden desktop:block":c?.download?.title}),title:c?.download?.title,apps:c?.download?.apps})]}),e("div",{className:"desktop:block hidden h-px bg-[#3D3E3F]","aria-hidden":"true"}),o("div",{className:"desktop:grid grid-cols-4 gap-4",children:[e(N,{title:r?.products?.title,lists:r?.products?.products}),e(N,{title:r?.explore?.title,lists:r?.explore?.explores}),e(N,{title:r?.support?.title,lists:r?.support?.supports}),o("div",{className:"desktop:py-0 desktop:border-none border-t border-[#3D3E3F] pt-4",children:[o("div",{className:"desktop:pb-0 flex items-center justify-between pb-4",children:[e(d,{as:"p",html:r?.contact?.title,className:"text-xl font-bold leading-[1.2] text-white",id:h}),n&&e("button",{onClick:()=>b(!l),"aria-expanded":l,"aria-controls":h,"aria-label":l?"Collapse contact section":"Expand contact section",children:l?e(C,{width:20,height:20}):e(B,{width:20,height:20})})]}),(l&&n||!n)&&e("div",{className:"desktop:mt-4 desktop:mb-0 mb-4 flex flex-col gap-2",role:"region","aria-labelledby":h,children:r?.contact?.contacts?.map(t=>o(m,{href:t?.link,className:"group flex items-start gap-2 no-underline",children:[e("img",{src:t?.icon?.url,loading:"lazy",alt:t?.icon?.alt,className:"size-5 shrink-0 opacity-70 transition-opacity duration-200 group-hover:opacity-100"}),e(d,{html:t?.label,className:"desktop:text-base text-sm font-bold leading-[1.2] text-[#B6B6BA] transition-colors duration-200 group-hover:text-white"})]},t?.id))}),e(A,{country:f||g,className:"desktop:hidden border-b border-[#3D3E3F]",isMobile:n,onChangeCountry:p?.country}),e("div",{className:"desktop:hidden mt-8",children:e(L,{title:c?.download?.title,apps:c?.download?.apps})}),!!r?.socials?.length&&e("div",{className:"mt-8 flex items-center gap-2",role:"list","aria-label":"Social media links",children:r?.socials?.map(t=>e(m,{href:u(t?.link,s,"ref=footer"),className:"group",role:"listitem","aria-label":t?.icon?.alt||"Social media",children:e("img",{src:t?.icon?.url,loading:"lazy",alt:t?.icon?.alt,className:"size-8 shrink-0 opacity-70 transition-opacity duration-200 group-hover:opacity-100"})},t?.id))}),e("div",{className:"mt-4 flex flex-wrap gap-2",role:"list","aria-label":"Payment methods",children:r?.payment?.map(t=>e(m,{href:u(t?.link,s),asChild:!t?.link,role:"listitem","aria-label":t?.icon?.alt||"Payment method",children:e("img",{src:t?.icon?.url,loading:"lazy",alt:t?.icon?.alt||"",className:"h-[28px] w-[44px] shrink-0"})},t?.id))})]})]})]})},j=({data:a,isMobile:p,event:n,currentCountry:f,id:i="footer-brand"})=>{const{locale:s="us"}=k();return o("div",{id:i,className:"flex flex-col gap-4",children:[o("div",{className:"desktop:items-center desktop:flex desktop:gap-4",children:[o("div",{className:"laptop:flex-row laptop:items-center desktop:flex-[980] flex flex-col items-start gap-4",children:[e(m,{href:u(a?.brand?.link,s,"ref=footer"),asChild:!a?.brand?.link,children:e(d,{html:a?.brand?.currentBrand,className:"cursor-pointer text-[#B6B6BA] hover:text-white"})}),e("div",{className:"laptop:block laptop:mb-[10px] hidden h-[20px] w-px bg-[#B6B6BA]"}),e("div",{className:"desktop:gap-6 flex flex-wrap items-center gap-4",children:a?.brand?.brands?.map(l=>e(m,{href:u(l?.link,s,"ref=footer"),children:e(d,{html:l?.icon,className:"text-[#B6B6BA] hover:text-white"})},l?.id))})]}),e(A,{country:f||a?.country,className:"desktop:flex-[316] desktop:block hidden",isMobile:p,onChangeCountry:n?.country})]}),e("div",{className:"h-px bg-[#3D3E3F]"}),o("div",{className:"laptop:flex-row desktop:gap-4 desktop:items-center flex flex-col items-start gap-1",children:[e(d,{html:a?.copyright?.label,className:"desktop:text-base text-xs font-bold leading-[1.4] text-[#6D6D6F]"}),o("div",{className:"flex flex-wrap items-center gap-x-2 gap-y-1",children:[a?.policy?.policies?.map(l=>e(m,{href:u(l?.link,s,"ref=footer"),className:"desktop:text-base text-xs font-bold leading-[1.4] text-[#B6B6BA] no-underline hover:text-white",children:l?.label},l?.id)),a?.policy?.cookies&&e("button",{"data-cc":"show-preferencesModal",onClick:n?.cookiesSet,className:"desktop:text-base text-xs font-bold leading-[1.4] text-[#B6B6BA] no-underline hover:text-white focus:outline-none focus:ring-2 focus:ring-white focus:ring-offset-2 focus:ring-offset-black","aria-label":`Cookie preferences: ${a?.policy?.cookies}`,children:a?.policy?.cookies})]})]})]})},N=({title:a,lists:p,className:n})=>{const{locale:f="us"}=k(),[i,s]=v(!1),[l,b]=v(!1),c=M({query:"(max-width: 1439px)"});w(()=>{b(c)},[c]);const r=`nav-section-${a?.replace(/\s+/g,"-").toLowerCase()}`;return o("div",{className:x("desktop:py-0 desktop:border-none border-t border-[#3D3E3F] py-4",n),children:[o("div",{className:"flex items-center justify-between",children:[e(d,{as:"p",html:a,className:"text-xl font-bold leading-[1.2] text-white",id:r}),l&&e("button",{onClick:()=>s(!i),"aria-expanded":i,"aria-controls":r,"aria-label":i?`Collapse ${a}`:`Expand ${a}`,className:"focus:outline-none focus:ring-2 focus:ring-white focus:ring-offset-2 focus:ring-offset-black",children:i?e(C,{width:20,height:20}):e(B,{width:20,height:20})})]}),(i&&l||!l)&&e("nav",{className:"mt-4 flex flex-col gap-2",role:"region","aria-labelledby":r,children:p?.map(g=>e(m,{href:u(g?.link,f,"ref=footer"),className:"no-underline",children:e(d,{html:g?.label,className:"desktop:text-base text-sm font-bold leading-[1.2] text-[#B6B6BA] hover:text-white"})},g?.id))})]})},L=({title:a,apps:p,className:n})=>{const{locale:f="us"}=k();return p?.length?o("div",{className:n,children:[e(d,{html:a,className:" text-xl font-bold leading-[1.2] text-white"}),e("div",{className:"mt-4 flex items-center gap-4",role:"list","aria-label":"Download apps",children:p?.map(i=>o(m,{href:u(i?.link,f),className:"group flex flex-col items-center gap-[6px]",role:"listitem","aria-label":i?.icon?.alt||i?.label||"Download app",children:[e("img",{src:i?.icon?.url,loading:"lazy",alt:i?.icon?.alt,className:"size-10 shrink-0 opacity-70 transition-opacity duration-200 group-hover:opacity-100"}),i?.label&&e(d,{html:i?.label,className:"text-xs font-bold text-[#999999] transition-colors duration-200 group-hover:text-white"})]},i?.id))})]}):null},A=({country:a,isMobile:p,className:n,onChangeCountry:f})=>e("div",{className:x("desktop:py-0 desktop:border-none border-t border-[#3D3E3F] py-4",n),children:o("button",{onClick:()=>f?.(),className:"flex w-full items-center justify-between focus:outline-none focus:ring-2 focus:ring-white focus:ring-offset-2 focus:ring-offset-black","aria-label":`Change country/region, current: ${a?.countryName||a?.country}`,children:[o("div",{className:"group flex items-center gap-2",children:[e(E,{width:20,height:20,className:"shrink-0 opacity-70 transition-opacity duration-200 group-hover:opacity-100","aria-hidden":"true"}),e(d,{as:"span",html:a?.countryName||a?.country,className:"desktop:text-[#B6B6BA] desktop:group-hover:text-white text-base font-bold leading-[1.4] text-white transition-colors duration-200"})]}),p&&e(z,{width:20,height:20,"aria-hidden":"true"})]})});var V=T(P);export{V as default};
2
2
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/biz-components/FooterNavigation/index.tsx"],
4
- "sourcesContent": ["import { useEffect, useMemo, useState } from 'react'\nimport { Text, Container, Link } from '../../components/index.js'\nimport Subscribe from '../Subscribe/index.js'\nimport type { FooterNavigationProps } from './types.js'\nimport { FooterNavigationBlockType } from './types.js'\nimport { AddIcon, SubtractIcon, ArrowRightIcon, CountryIcon } from './icons/index.js'\nimport { useMediaQuery } from 'react-responsive'\nimport { cn, getLocalizedPath } from '../../helpers/utils.js'\nimport { useAiuiContext } from '../AiuiProvider/index.js'\nimport { withLayout } from '../../shared/Styles.js'\n\nconst FooterNavigation = ({\n data: { footer } = {},\n currentCountry,\n event,\n subscribeLoading,\n classNames,\n className,\n moduleIds,\n ...rest\n}: FooterNavigationProps) => {\n const [isMobile, setIsMobile] = useState(false)\n\n const mediaQuery = useMediaQuery({ query: '(max-width: 1439px)' })\n\n useEffect(() => {\n setIsMobile(mediaQuery)\n }, [mediaQuery])\n\n const country = useMemo(() => {\n return footer?.blocks?.find((block: any) => block?.blockType === FooterNavigationBlockType.Brand)?.country || {}\n }, [footer])\n\n return (\n <footer {...rest} className={cn(classNames?.root, className)}>\n <Container\n className={cn(classNames?.child)}\n childClassName={cn('laptop:py-16 desktop:gap-16 flex flex-col gap-8 bg-black py-8')}\n >\n <Text html={footer?.story} className=\"desktop:text-sm text-xs font-bold text-[#6D6D6F]\" />\n {footer?.blocks?.map((block: any) => {\n if (block?.blockType === FooterNavigationBlockType.Signup) {\n return (\n <MarketingConversion\n key={block.id}\n subscribeLoading={subscribeLoading}\n data={block}\n onSubmit={event?.signup}\n id={moduleIds?.marketingConversion}\n />\n )\n }\n if (block?.blockType === FooterNavigationBlockType.Brand) {\n return (\n <FooterBrand\n key={block?.id}\n data={block}\n isMobile={isMobile}\n event={event}\n currentCountry={currentCountry}\n id={moduleIds?.footerBrand}\n />\n )\n }\n if (block?.blockType === FooterNavigationBlockType.Main) {\n return (\n <MainServices\n key={block.id}\n data={{ ...block, country }}\n event={event}\n isMobile={isMobile}\n currentCountry={currentCountry}\n id={moduleIds?.mainServices}\n />\n )\n }\n })}\n </Container>\n </footer>\n )\n}\n\n/**\n * MarketingConversion \u8425\u9500\u8F6C\u5316\u6A21\u5757\n * @param data\n * @param onSubmit signup\u63D0\u4EA4\u4E8B\u4EF6\n * @returns\n */\nconst MarketingConversion = ({\n data,\n onSubmit,\n subscribeLoading,\n id = 'footer-marketing-conversion',\n}: {\n data: any\n onSubmit?: (_params: any) => void\n subscribeLoading?: boolean\n id?: string\n}) => {\n const { locale = 'us' } = useAiuiContext()\n\n return (\n <div\n id={id}\n className=\"desktop:py-16 desktop:gap-16 laptop:px-8 desktop:flex-row rounded-btn flex flex-col gap-8 bg-[#1E2024] px-4 py-8\"\n >\n <Subscribe\n subscribeMetadata={data?.signup}\n className=\"desktop:flex-[744]\"\n onSubmit={onSubmit}\n loading={subscribeLoading}\n />\n <div className=\"desktop:hidden h-px w-full bg-[#3D3E3F]\" />\n <div className=\"desktop:gap-6 laptop:flex-row desktop:flex-[792] flex flex-col gap-4\">\n <div className=\"flex-1\">\n <Text html={data?.enjoy?.title} className=\" text-xl font-bold leading-[1.2] text-white\" />\n <div className=\"mt-4 flex flex-col gap-2\">\n {data?.enjoy?.enjoys?.map((enjoyItem: any) => (\n <div key={enjoyItem?.id} className=\"flex-start flex gap-2\">\n <img\n src={enjoyItem?.icon?.url}\n loading=\"lazy\"\n alt={enjoyItem?.icon?.alt || ''}\n className=\"size-5 shrink-0\"\n />\n <Text\n html={enjoyItem?.label}\n className=\"desktop:text-base text-sm font-bold leading-[1.2] text-[#B6B6BA]\"\n />\n </div>\n ))}\n </div>\n </div>\n <div className=\"desktop:block hidden w-px bg-[#3D3E3F]\" />\n <div className=\"flex-1\">\n <Text html={data?.benefit?.title} className=\"text-xl font-bold leading-[1.2] text-white\" />\n <div className=\"mt-4 flex flex-col gap-2\">\n {data?.benefit?.benefits?.map((benefitItem: any) => (\n <Link\n href={`${getLocalizedPath(benefitItem?.link, locale)}?ref=footer`}\n asChild={!benefitItem?.link}\n key={benefitItem?.id}\n className=\"no-underline\"\n >\n <Text\n html={benefitItem?.label}\n className=\"desktop:text-base text-sm font-bold leading-[1.2] text-[#B6B6BA] hover:text-white\"\n />\n </Link>\n ))}\n </div>\n </div>\n </div>\n </div>\n )\n}\n\n/**\n * MainServices \u4E3B\u5BFC\u822A\u4E0E\u670D\u52A1\u6A21\u5757\n * @param services \u670D\u52A1\n * @param mainNav \u4E3B\u5BFC\u822A\n * @param event \u4E8B\u4EF6\n * @param isMobile \u662F\u5426\u662F\u79FB\u52A8\u7AEF\n * @param currentCountry \u5F53\u524D\u56FD\u5BB6\n * @returns\n */\nconst MainServices = ({\n data,\n event,\n isMobile,\n currentCountry,\n id = 'footer-main-services',\n}: {\n data: any\n event: any\n isMobile: boolean\n currentCountry: any\n id?: string\n}) => {\n const { locale = 'us' } = useAiuiContext()\n const [mainNavMenuOpen, setMainNavMenuOpen] = useState<boolean>(false)\n const { services, mainNav, country } = data\n const contactSectionId = 'contact-section'\n\n return (\n <nav id={id} className=\"flex flex-col gap-8\" aria-label=\"Main navigation\">\n <div\n className={cn({\n 'desktop:gap-16 flex': services?.download?.title,\n })}\n >\n <div\n className={cn('w-full', {\n 'desktop:flex-[1260]': services?.download?.title,\n })}\n >\n <Text html={services?.storeBenefits?.title} className=\" text-xl font-bold leading-[1.2] text-white\" />\n <div\n className={cn('laptop:flex-row desktop:gap-4 laptop:flex-wrap mt-4 flex flex-col gap-2', {\n 'desktop:max-w-[648px]': services?.download?.title,\n })}\n >\n {services?.storeBenefits?.reasons?.map((reasonItem: any) => (\n <div key={reasonItem?.id} className=\"desktop:min-w-[288px] flex flex-1 shrink-0 items-center gap-2\">\n <img\n src={reasonItem?.icon?.url}\n loading=\"lazy\"\n alt={reasonItem?.icon?.alt || ''}\n className=\"size-5 shrink-0\"\n />\n <Link\n href={`${getLocalizedPath(reasonItem?.link, locale)}?ref=footer`}\n asChild={!reasonItem?.link}\n className=\"no-underline\"\n >\n <Text\n html={reasonItem?.label}\n className=\"desktop:text-base text-sm font-bold leading-[1.2] text-[#B6B6BA]\"\n />\n </Link>\n </div>\n ))}\n </div>\n </div>\n <DownloadApp\n className={cn({\n 'desktop:flex-[404] hidden desktop:block': services?.download?.title,\n })}\n title={services?.download?.title}\n apps={services?.download?.apps}\n />\n </div>\n <div className=\"desktop:block hidden h-px bg-[#3D3E3F]\" aria-hidden=\"true\" />\n <div className=\"desktop:grid grid-cols-4 gap-4\">\n <MainNavMenu title={mainNav?.products?.title} lists={mainNav?.products?.products} />\n <MainNavMenu title={mainNav?.explore?.title} lists={mainNav?.explore?.explores} />\n <MainNavMenu title={mainNav?.support?.title} lists={mainNav?.support?.supports} />\n <div className=\"desktop:py-0 desktop:border-none border-t border-[#3D3E3F] pt-4\">\n <div className=\"desktop:pb-0 flex items-center justify-between pb-4\">\n <Text\n as=\"p\"\n html={mainNav?.contact?.title}\n className=\"text-xl font-bold leading-[1.2] text-white\"\n id={contactSectionId}\n />\n {isMobile && (\n <button\n onClick={() => setMainNavMenuOpen(!mainNavMenuOpen)}\n aria-expanded={mainNavMenuOpen}\n aria-controls={contactSectionId}\n aria-label={mainNavMenuOpen ? 'Collapse contact section' : 'Expand contact section'}\n >\n {mainNavMenuOpen ? <SubtractIcon width={20} height={20} /> : <AddIcon width={20} height={20} />}\n </button>\n )}\n </div>\n {((mainNavMenuOpen && isMobile) || !isMobile) && (\n <div\n className=\"desktop:mt-4 desktop:mb-0 mb-4 flex flex-col gap-2\"\n role=\"region\"\n aria-labelledby={contactSectionId}\n >\n {mainNav?.contact?.contacts?.map((contactItem: any) => (\n <Link\n key={contactItem?.id}\n href={contactItem?.link}\n className=\"group flex items-start gap-2 no-underline\"\n >\n <img\n src={contactItem?.icon?.url}\n loading=\"lazy\"\n alt={contactItem?.icon?.alt}\n className=\"size-5 shrink-0 opacity-70 transition-opacity duration-200 group-hover:opacity-100\"\n />\n <Text\n html={contactItem?.label}\n className=\"desktop:text-base text-sm font-bold leading-[1.2] text-[#B6B6BA] transition-colors duration-200 group-hover:text-white\"\n />\n </Link>\n ))}\n </div>\n )}\n <ChangeCountry\n country={currentCountry || country}\n className=\"desktop:hidden border-b border-[#3D3E3F]\"\n isMobile={isMobile}\n onChangeCountry={event?.country}\n />\n <div className=\"desktop:hidden mt-8\">\n <DownloadApp title={services?.download?.title} apps={services?.download?.apps} />\n </div>\n {!!mainNav?.socials?.length && (\n <div className=\"mt-8 flex items-center gap-2\" role=\"list\" aria-label=\"Social media links\">\n {mainNav?.socials?.map((socialItem: any) => (\n <Link\n href={`${getLocalizedPath(socialItem?.link, locale)}?ref=footer`}\n key={socialItem?.id}\n className=\"group\"\n role=\"listitem\"\n aria-label={socialItem?.icon?.alt || 'Social media'}\n >\n <img\n src={socialItem?.icon?.url}\n loading=\"lazy\"\n alt={socialItem?.icon?.alt}\n className=\"size-8 shrink-0 opacity-70 transition-opacity duration-200 group-hover:opacity-100\"\n />\n </Link>\n ))}\n </div>\n )}\n <div className=\"mt-4 flex flex-wrap gap-2\" role=\"list\" aria-label=\"Payment methods\">\n {mainNav?.payment?.map((paymentItem: any) => (\n <Link\n href={getLocalizedPath(paymentItem?.link, locale)}\n asChild={!paymentItem?.link}\n key={paymentItem?.id}\n role=\"listitem\"\n aria-label={paymentItem?.icon?.alt || 'Payment method'}\n >\n <img\n src={paymentItem?.icon?.url}\n loading=\"lazy\"\n alt={paymentItem?.icon?.alt || ''}\n className=\"h-[28px] w-[44px] shrink-0\"\n />\n </Link>\n ))}\n </div>\n </div>\n </div>\n </nav>\n )\n}\n\nconst FooterBrand = ({\n data,\n isMobile,\n event,\n currentCountry,\n id = 'footer-brand',\n}: {\n data: any\n isMobile: boolean\n event: any\n currentCountry: any\n id?: string\n}) => {\n const { locale = 'us' } = useAiuiContext()\n\n return (\n <div id={id} className=\"flex flex-col gap-4\">\n <div className=\"desktop:items-center desktop:flex desktop:gap-4\">\n <div className=\"laptop:flex-row laptop:items-center desktop:flex-[980] flex flex-col items-start gap-4\">\n <Link href={`${getLocalizedPath(data?.brand?.link, locale)}?ref=footer`} asChild={!data?.brand?.link}>\n <Text html={data?.brand?.currentBrand} className=\"cursor-pointer text-[#B6B6BA] hover:text-white\" />\n </Link>\n <div className=\"laptop:block laptop:mb-[10px] hidden h-[20px] w-px bg-[#B6B6BA]\" />\n <div className=\"desktop:gap-6 flex flex-wrap items-center gap-4\">\n {data?.brand?.brands?.map((brandItem: any) => (\n <Link href={`${getLocalizedPath(brandItem?.link, locale)}?ref=footer`} key={brandItem?.id}>\n <Text html={brandItem?.icon} className=\"text-[#B6B6BA] hover:text-white\" />\n </Link>\n ))}\n </div>\n </div>\n <ChangeCountry\n country={currentCountry || data?.country}\n className=\"desktop:flex-[316] desktop:block hidden\"\n isMobile={isMobile}\n onChangeCountry={event?.country}\n />\n </div>\n <div className=\"h-px bg-[#3D3E3F]\" />\n <div className=\"laptop:flex-row desktop:gap-4 desktop:items-center flex flex-col items-start gap-1\">\n <Text\n html={data?.copyright?.label}\n className=\"desktop:text-base text-xs font-bold leading-[1.4] text-[#6D6D6F]\"\n />\n <div className=\"flex flex-wrap items-center gap-x-2 gap-y-1\">\n {data?.policy?.policies?.map((policyItem: any) => (\n <Link\n href={`${getLocalizedPath(policyItem?.link, locale)}?ref=footer`}\n key={policyItem?.id}\n className=\"desktop:text-base text-xs font-bold leading-[1.4] text-[#B6B6BA] no-underline hover:text-white\"\n >\n {policyItem?.label}\n </Link>\n ))}\n {data?.policy?.cookies && (\n <button\n data-cc=\"show-preferencesModal\"\n onClick={event?.cookiesSet}\n className=\"desktop:text-base text-xs font-bold leading-[1.4] text-[#B6B6BA] no-underline hover:text-white focus:outline-none focus:ring-2 focus:ring-white focus:ring-offset-2 focus:ring-offset-black\"\n aria-label={`Cookie preferences: ${data?.policy?.cookies}`}\n >\n {data?.policy?.cookies}\n </button>\n )}\n </div>\n </div>\n </div>\n )\n}\n\nconst MainNavMenu = ({ title, lists, className }: { title: string; lists: any[]; className?: string }) => {\n const { locale = 'us' } = useAiuiContext()\n const [mainNavMenuOpen, setMainNavMenuOpen] = useState<boolean>(false)\n const [isMobile, setIsMobile] = useState(false)\n\n const mediaQuery = useMediaQuery({ query: '(max-width: 1439px)' })\n\n useEffect(() => {\n setIsMobile(mediaQuery)\n }, [mediaQuery])\n\n const sectionId = `nav-section-${title?.replace(/\\s+/g, '-').toLowerCase()}`\n\n return (\n <div className={cn('desktop:py-0 desktop:border-none border-t border-[#3D3E3F] py-4', className)}>\n <div className=\"flex items-center justify-between\">\n <Text as=\"p\" html={title} className=\"text-xl font-bold leading-[1.2] text-white\" id={sectionId} />\n {isMobile && (\n <button\n onClick={() => setMainNavMenuOpen(!mainNavMenuOpen)}\n aria-expanded={mainNavMenuOpen}\n aria-controls={sectionId}\n aria-label={mainNavMenuOpen ? `Collapse ${title}` : `Expand ${title}`}\n className=\"focus:outline-none focus:ring-2 focus:ring-white focus:ring-offset-2 focus:ring-offset-black\"\n >\n {mainNavMenuOpen ? <SubtractIcon width={20} height={20} /> : <AddIcon width={20} height={20} />}\n </button>\n )}\n </div>\n {((mainNavMenuOpen && isMobile) || !isMobile) && (\n <nav className=\"mt-4 flex flex-col gap-2\" role=\"region\" aria-labelledby={sectionId}>\n {lists?.map((item: any) => (\n <Link href={`${getLocalizedPath(item?.link, locale)}?ref=footer`} key={item?.id} className=\"no-underline\">\n <Text\n html={item?.label}\n className=\"desktop:text-base text-sm font-bold leading-[1.2] text-[#B6B6BA] hover:text-white\"\n />\n </Link>\n ))}\n </nav>\n )}\n </div>\n )\n}\n\n/**\n * DownloadApp \u4E0B\u8F7D\u5E94\u7528\u6A21\u5757\n * @param title\n * @param apps\n * @param className\n * @returns\n */\nconst DownloadApp = ({ title, apps, className }: { title: string; apps: any[]; className?: string }) => {\n const { locale = 'us' } = useAiuiContext()\n\n if (!apps?.length) return null\n return (\n <div className={className}>\n <Text html={title} className=\" text-xl font-bold leading-[1.2] text-white\" />\n <div className=\"mt-4 flex items-center gap-4\" role=\"list\" aria-label=\"Download apps\">\n {apps?.map((appItem: any) => (\n <Link\n key={appItem?.id}\n href={getLocalizedPath(appItem?.link, locale)}\n className=\"group flex flex-col items-center gap-[6px]\"\n role=\"listitem\"\n aria-label={appItem?.icon?.alt || appItem?.label || 'Download app'}\n >\n <img\n src={appItem?.icon?.url}\n loading=\"lazy\"\n alt={appItem?.icon?.alt}\n className=\"size-10 shrink-0 opacity-70 transition-opacity duration-200 group-hover:opacity-100\"\n />\n {appItem?.label && (\n <Text\n html={appItem?.label}\n className=\"text-xs font-bold text-[#999999] transition-colors duration-200 group-hover:text-white\"\n />\n )}\n </Link>\n ))}\n </div>\n </div>\n )\n}\n\n/**\n * ChangeCountry \u5207\u6362\u56FD\u5BB6\u6A21\u5757\n * @param data \u6570\u636E\n * @param isMobile \u662F\u5426\u662F\u79FB\u52A8\u7AEF\n * @returns\n */\nconst ChangeCountry = ({\n country,\n isMobile,\n className,\n onChangeCountry,\n}: {\n country: any\n isMobile: boolean\n className?: string\n onChangeCountry?: () => void\n}) => {\n return (\n <div className={cn('desktop:py-0 desktop:border-none border-t border-[#3D3E3F] py-4', className)}>\n <button\n onClick={() => onChangeCountry?.()}\n className=\"flex w-full items-center justify-between focus:outline-none focus:ring-2 focus:ring-white focus:ring-offset-2 focus:ring-offset-black\"\n aria-label={`Change country/region, current: ${country?.countryName || country?.country}`}\n >\n <div className=\"group flex items-center gap-2\">\n <CountryIcon\n width={20}\n height={20}\n className=\"shrink-0 opacity-70 transition-opacity duration-200 group-hover:opacity-100\"\n aria-hidden=\"true\"\n />\n <Text\n as=\"span\"\n html={country?.countryName || country?.country}\n className=\"desktop:text-[#B6B6BA] desktop:group-hover:text-white text-base font-bold leading-[1.4] text-white transition-colors duration-200\"\n />\n </div>\n {isMobile && <ArrowRightIcon width={20} height={20} aria-hidden=\"true\" />}\n </button>\n </div>\n )\n}\n\nexport default withLayout(FooterNavigation)\n"],
5
- "mappings": "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",
6
- "names": ["jsx", "jsxs", "useEffect", "useMemo", "useState", "Text", "Container", "Link", "Subscribe", "FooterNavigationBlockType", "AddIcon", "SubtractIcon", "ArrowRightIcon", "CountryIcon", "useMediaQuery", "cn", "getLocalizedPath", "useAiuiContext", "withLayout", "FooterNavigation", "footer", "currentCountry", "event", "subscribeLoading", "classNames", "className", "moduleIds", "rest", "isMobile", "setIsMobile", "mediaQuery", "country", "block", "MarketingConversion", "FooterBrand", "MainServices", "data", "onSubmit", "id", "locale", "enjoyItem", "benefitItem", "mainNavMenuOpen", "setMainNavMenuOpen", "services", "mainNav", "contactSectionId", "reasonItem", "DownloadApp", "MainNavMenu", "contactItem", "ChangeCountry", "socialItem", "paymentItem", "brandItem", "policyItem", "title", "lists", "sectionId", "item", "apps", "appItem", "onChangeCountry", "FooterNavigation_default"]
4
+ "sourcesContent": ["import { useEffect, useMemo, useState } from 'react'\nimport { Text, Container, Link } from '../../components/index.js'\nimport Subscribe from '../Subscribe/index.js'\nimport type { FooterNavigationProps } from './types.js'\nimport { FooterNavigationBlockType } from './types.js'\nimport { AddIcon, SubtractIcon, ArrowRightIcon, CountryIcon } from './icons/index.js'\nimport { useIsomorphicMediaQuery } from '../../hooks/useIsomorphicMediaQuery.js'\nimport { cn, getLocalizedPath } from '../../helpers/utils.js'\nimport { useAiuiContext } from '../AiuiProvider/index.js'\nimport { withLayout } from '../../shared/Styles.js'\n\nconst FooterNavigation = ({\n data: { footer } = {},\n currentCountry,\n event,\n subscribeLoading,\n classNames,\n className,\n moduleIds,\n ...rest\n}: FooterNavigationProps) => {\n const [isMobile, setIsMobile] = useState(false)\n\n const mediaQuery = useIsomorphicMediaQuery({ query: '(max-width: 1439px)' })\n\n useEffect(() => {\n setIsMobile(mediaQuery)\n }, [mediaQuery])\n\n const country = useMemo(() => {\n return footer?.blocks?.find((block: any) => block?.blockType === FooterNavigationBlockType.Brand)?.country || {}\n }, [footer])\n\n return (\n <footer {...rest} className={cn(classNames?.root, className)}>\n <Container\n className={cn(classNames?.child)}\n childClassName={cn('laptop:py-16 desktop:gap-16 flex flex-col gap-8 bg-black py-8')}\n >\n <Text html={footer?.story} className=\"desktop:text-sm text-xs font-bold text-[#6D6D6F]\" />\n {footer?.blocks?.map((block: any) => {\n if (block?.blockType === FooterNavigationBlockType.Signup) {\n return (\n <MarketingConversion\n key={block.id}\n subscribeLoading={subscribeLoading}\n data={block}\n onSubmit={event?.signup}\n id={moduleIds?.marketingConversion}\n />\n )\n }\n if (block?.blockType === FooterNavigationBlockType.Brand) {\n return (\n <FooterBrand\n key={block?.id}\n data={block}\n isMobile={isMobile}\n event={event}\n currentCountry={currentCountry}\n id={moduleIds?.footerBrand}\n />\n )\n }\n if (block?.blockType === FooterNavigationBlockType.Main) {\n return (\n <MainServices\n key={block.id}\n data={{ ...block, country }}\n event={event}\n isMobile={isMobile}\n currentCountry={currentCountry}\n id={moduleIds?.mainServices}\n />\n )\n }\n })}\n </Container>\n </footer>\n )\n}\n\n/**\n * MarketingConversion \u8425\u9500\u8F6C\u5316\u6A21\u5757\n * @param data\n * @param onSubmit signup\u63D0\u4EA4\u4E8B\u4EF6\n * @returns\n */\nconst MarketingConversion = ({\n data,\n onSubmit,\n subscribeLoading,\n id = 'footer-marketing-conversion',\n}: {\n data: any\n onSubmit?: (_params: any) => void\n subscribeLoading?: boolean\n id?: string\n}) => {\n const { locale = 'us' } = useAiuiContext()\n\n return (\n <div\n id={id}\n className=\"desktop:py-16 desktop:gap-16 laptop:px-8 desktop:flex-row rounded-btn flex flex-col gap-8 bg-[#1E2024] px-4 py-8\"\n >\n <Subscribe\n subscribeMetadata={data?.signup}\n className=\"desktop:flex-[744]\"\n onSubmit={onSubmit}\n loading={subscribeLoading}\n />\n <div className=\"desktop:hidden h-px w-full bg-[#3D3E3F]\" />\n <div className=\"desktop:gap-6 laptop:flex-row desktop:flex-[792] flex flex-col gap-4\">\n <div className=\"flex-1\">\n <Text html={data?.enjoy?.title} className=\" text-xl font-bold leading-[1.2] text-white\" />\n <div className=\"mt-4 flex flex-col gap-2\">\n {data?.enjoy?.enjoys?.map((enjoyItem: any) => (\n <div key={enjoyItem?.id} className=\"flex-start flex gap-2\">\n <img\n src={enjoyItem?.icon?.url}\n loading=\"lazy\"\n alt={enjoyItem?.icon?.alt || ''}\n className=\"size-5 shrink-0\"\n />\n <Text\n html={enjoyItem?.label}\n className=\"desktop:text-base text-sm font-bold leading-[1.2] text-[#B6B6BA]\"\n />\n </div>\n ))}\n </div>\n </div>\n <div className=\"desktop:block hidden w-px bg-[#3D3E3F]\" />\n <div className=\"flex-1\">\n <Text html={data?.benefit?.title} className=\"text-xl font-bold leading-[1.2] text-white\" />\n <div className=\"mt-4 flex flex-col gap-2\">\n {data?.benefit?.benefits?.map((benefitItem: any) => (\n <Link\n href={getLocalizedPath(benefitItem?.link, locale, 'ref=footer')}\n asChild={!benefitItem?.link}\n key={benefitItem?.id}\n className=\"no-underline\"\n >\n <Text\n html={benefitItem?.label}\n className=\"desktop:text-base text-sm font-bold leading-[1.2] text-[#B6B6BA] hover:text-white\"\n />\n </Link>\n ))}\n </div>\n </div>\n </div>\n </div>\n )\n}\n\n/**\n * MainServices \u4E3B\u5BFC\u822A\u4E0E\u670D\u52A1\u6A21\u5757\n * @param services \u670D\u52A1\n * @param mainNav \u4E3B\u5BFC\u822A\n * @param event \u4E8B\u4EF6\n * @param isMobile \u662F\u5426\u662F\u79FB\u52A8\u7AEF\n * @param currentCountry \u5F53\u524D\u56FD\u5BB6\n * @returns\n */\nconst MainServices = ({\n data,\n event,\n isMobile,\n currentCountry,\n id = 'footer-main-services',\n}: {\n data: any\n event: any\n isMobile: boolean\n currentCountry: any\n id?: string\n}) => {\n const { locale = 'us' } = useAiuiContext()\n const [mainNavMenuOpen, setMainNavMenuOpen] = useState<boolean>(false)\n const { services, mainNav, country } = data\n const contactSectionId = 'contact-section'\n\n return (\n <nav id={id} className=\"flex flex-col gap-8\" aria-label=\"Main navigation\">\n <div\n className={cn({\n 'desktop:gap-16 flex': services?.download?.title,\n })}\n >\n <div\n className={cn('w-full', {\n 'desktop:flex-[1260]': services?.download?.title,\n })}\n >\n <Text html={services?.storeBenefits?.title} className=\" text-xl font-bold leading-[1.2] text-white\" />\n <div\n className={cn('laptop:flex-row desktop:gap-4 laptop:flex-wrap mt-4 flex flex-col gap-2', {\n 'desktop:max-w-[648px]': services?.download?.title,\n })}\n >\n {services?.storeBenefits?.reasons?.map((reasonItem: any) => (\n <div key={reasonItem?.id} className=\"desktop:min-w-[288px] flex flex-1 shrink-0 items-center gap-2\">\n <img\n src={reasonItem?.icon?.url}\n loading=\"lazy\"\n alt={reasonItem?.icon?.alt || ''}\n className=\"size-5 shrink-0\"\n />\n <Link\n href={getLocalizedPath(reasonItem?.link, locale, 'ref=footer')}\n asChild={!reasonItem?.link}\n className=\"no-underline\"\n >\n <Text\n html={reasonItem?.label}\n className=\"desktop:text-base text-sm font-bold leading-[1.2] text-[#B6B6BA]\"\n />\n </Link>\n </div>\n ))}\n </div>\n </div>\n <DownloadApp\n className={cn({\n 'desktop:flex-[404] hidden desktop:block': services?.download?.title,\n })}\n title={services?.download?.title}\n apps={services?.download?.apps}\n />\n </div>\n <div className=\"desktop:block hidden h-px bg-[#3D3E3F]\" aria-hidden=\"true\" />\n <div className=\"desktop:grid grid-cols-4 gap-4\">\n <MainNavMenu title={mainNav?.products?.title} lists={mainNav?.products?.products} />\n <MainNavMenu title={mainNav?.explore?.title} lists={mainNav?.explore?.explores} />\n <MainNavMenu title={mainNav?.support?.title} lists={mainNav?.support?.supports} />\n <div className=\"desktop:py-0 desktop:border-none border-t border-[#3D3E3F] pt-4\">\n <div className=\"desktop:pb-0 flex items-center justify-between pb-4\">\n <Text\n as=\"p\"\n html={mainNav?.contact?.title}\n className=\"text-xl font-bold leading-[1.2] text-white\"\n id={contactSectionId}\n />\n {isMobile && (\n <button\n onClick={() => setMainNavMenuOpen(!mainNavMenuOpen)}\n aria-expanded={mainNavMenuOpen}\n aria-controls={contactSectionId}\n aria-label={mainNavMenuOpen ? 'Collapse contact section' : 'Expand contact section'}\n >\n {mainNavMenuOpen ? <SubtractIcon width={20} height={20} /> : <AddIcon width={20} height={20} />}\n </button>\n )}\n </div>\n {((mainNavMenuOpen && isMobile) || !isMobile) && (\n <div\n className=\"desktop:mt-4 desktop:mb-0 mb-4 flex flex-col gap-2\"\n role=\"region\"\n aria-labelledby={contactSectionId}\n >\n {mainNav?.contact?.contacts?.map((contactItem: any) => (\n <Link\n key={contactItem?.id}\n href={contactItem?.link}\n className=\"group flex items-start gap-2 no-underline\"\n >\n <img\n src={contactItem?.icon?.url}\n loading=\"lazy\"\n alt={contactItem?.icon?.alt}\n className=\"size-5 shrink-0 opacity-70 transition-opacity duration-200 group-hover:opacity-100\"\n />\n <Text\n html={contactItem?.label}\n className=\"desktop:text-base text-sm font-bold leading-[1.2] text-[#B6B6BA] transition-colors duration-200 group-hover:text-white\"\n />\n </Link>\n ))}\n </div>\n )}\n <ChangeCountry\n country={currentCountry || country}\n className=\"desktop:hidden border-b border-[#3D3E3F]\"\n isMobile={isMobile}\n onChangeCountry={event?.country}\n />\n <div className=\"desktop:hidden mt-8\">\n <DownloadApp title={services?.download?.title} apps={services?.download?.apps} />\n </div>\n {!!mainNav?.socials?.length && (\n <div className=\"mt-8 flex items-center gap-2\" role=\"list\" aria-label=\"Social media links\">\n {mainNav?.socials?.map((socialItem: any) => (\n <Link\n href={getLocalizedPath(socialItem?.link, locale, 'ref=footer')}\n key={socialItem?.id}\n className=\"group\"\n role=\"listitem\"\n aria-label={socialItem?.icon?.alt || 'Social media'}\n >\n <img\n src={socialItem?.icon?.url}\n loading=\"lazy\"\n alt={socialItem?.icon?.alt}\n className=\"size-8 shrink-0 opacity-70 transition-opacity duration-200 group-hover:opacity-100\"\n />\n </Link>\n ))}\n </div>\n )}\n <div className=\"mt-4 flex flex-wrap gap-2\" role=\"list\" aria-label=\"Payment methods\">\n {mainNav?.payment?.map((paymentItem: any) => (\n <Link\n href={getLocalizedPath(paymentItem?.link, locale)}\n asChild={!paymentItem?.link}\n key={paymentItem?.id}\n role=\"listitem\"\n aria-label={paymentItem?.icon?.alt || 'Payment method'}\n >\n <img\n src={paymentItem?.icon?.url}\n loading=\"lazy\"\n alt={paymentItem?.icon?.alt || ''}\n className=\"h-[28px] w-[44px] shrink-0\"\n />\n </Link>\n ))}\n </div>\n </div>\n </div>\n </nav>\n )\n}\n\nconst FooterBrand = ({\n data,\n isMobile,\n event,\n currentCountry,\n id = 'footer-brand',\n}: {\n data: any\n isMobile: boolean\n event: any\n currentCountry: any\n id?: string\n}) => {\n const { locale = 'us' } = useAiuiContext()\n\n return (\n <div id={id} className=\"flex flex-col gap-4\">\n <div className=\"desktop:items-center desktop:flex desktop:gap-4\">\n <div className=\"laptop:flex-row laptop:items-center desktop:flex-[980] flex flex-col items-start gap-4\">\n <Link href={getLocalizedPath(data?.brand?.link, locale, 'ref=footer')} asChild={!data?.brand?.link}>\n <Text html={data?.brand?.currentBrand} className=\"cursor-pointer text-[#B6B6BA] hover:text-white\" />\n </Link>\n <div className=\"laptop:block laptop:mb-[10px] hidden h-[20px] w-px bg-[#B6B6BA]\" />\n <div className=\"desktop:gap-6 flex flex-wrap items-center gap-4\">\n {data?.brand?.brands?.map((brandItem: any) => (\n <Link href={getLocalizedPath(brandItem?.link, locale, 'ref=footer')} key={brandItem?.id}>\n <Text html={brandItem?.icon} className=\"text-[#B6B6BA] hover:text-white\" />\n </Link>\n ))}\n </div>\n </div>\n <ChangeCountry\n country={currentCountry || data?.country}\n className=\"desktop:flex-[316] desktop:block hidden\"\n isMobile={isMobile}\n onChangeCountry={event?.country}\n />\n </div>\n <div className=\"h-px bg-[#3D3E3F]\" />\n <div className=\"laptop:flex-row desktop:gap-4 desktop:items-center flex flex-col items-start gap-1\">\n <Text\n html={data?.copyright?.label}\n className=\"desktop:text-base text-xs font-bold leading-[1.4] text-[#6D6D6F]\"\n />\n <div className=\"flex flex-wrap items-center gap-x-2 gap-y-1\">\n {data?.policy?.policies?.map((policyItem: any) => (\n <Link\n href={getLocalizedPath(policyItem?.link, locale, 'ref=footer')}\n key={policyItem?.id}\n className=\"desktop:text-base text-xs font-bold leading-[1.4] text-[#B6B6BA] no-underline hover:text-white\"\n >\n {policyItem?.label}\n </Link>\n ))}\n {data?.policy?.cookies && (\n <button\n data-cc=\"show-preferencesModal\"\n onClick={event?.cookiesSet}\n className=\"desktop:text-base text-xs font-bold leading-[1.4] text-[#B6B6BA] no-underline hover:text-white focus:outline-none focus:ring-2 focus:ring-white focus:ring-offset-2 focus:ring-offset-black\"\n aria-label={`Cookie preferences: ${data?.policy?.cookies}`}\n >\n {data?.policy?.cookies}\n </button>\n )}\n </div>\n </div>\n </div>\n )\n}\n\nconst MainNavMenu = ({ title, lists, className }: { title: string; lists: any[]; className?: string }) => {\n const { locale = 'us' } = useAiuiContext()\n const [mainNavMenuOpen, setMainNavMenuOpen] = useState<boolean>(false)\n const [isMobile, setIsMobile] = useState(false)\n\n const mediaQuery = useIsomorphicMediaQuery({ query: '(max-width: 1439px)' })\n\n useEffect(() => {\n setIsMobile(mediaQuery)\n }, [mediaQuery])\n\n const sectionId = `nav-section-${title?.replace(/\\s+/g, '-').toLowerCase()}`\n\n return (\n <div className={cn('desktop:py-0 desktop:border-none border-t border-[#3D3E3F] py-4', className)}>\n <div className=\"flex items-center justify-between\">\n <Text as=\"p\" html={title} className=\"text-xl font-bold leading-[1.2] text-white\" id={sectionId} />\n {isMobile && (\n <button\n onClick={() => setMainNavMenuOpen(!mainNavMenuOpen)}\n aria-expanded={mainNavMenuOpen}\n aria-controls={sectionId}\n aria-label={mainNavMenuOpen ? `Collapse ${title}` : `Expand ${title}`}\n className=\"focus:outline-none focus:ring-2 focus:ring-white focus:ring-offset-2 focus:ring-offset-black\"\n >\n {mainNavMenuOpen ? <SubtractIcon width={20} height={20} /> : <AddIcon width={20} height={20} />}\n </button>\n )}\n </div>\n {((mainNavMenuOpen && isMobile) || !isMobile) && (\n <nav className=\"mt-4 flex flex-col gap-2\" role=\"region\" aria-labelledby={sectionId}>\n {lists?.map((item: any) => (\n <Link href={getLocalizedPath(item?.link, locale, 'ref=footer')} key={item?.id} className=\"no-underline\">\n <Text\n html={item?.label}\n className=\"desktop:text-base text-sm font-bold leading-[1.2] text-[#B6B6BA] hover:text-white\"\n />\n </Link>\n ))}\n </nav>\n )}\n </div>\n )\n}\n\n/**\n * DownloadApp \u4E0B\u8F7D\u5E94\u7528\u6A21\u5757\n * @param title\n * @param apps\n * @param className\n * @returns\n */\nconst DownloadApp = ({ title, apps, className }: { title: string; apps: any[]; className?: string }) => {\n const { locale = 'us' } = useAiuiContext()\n\n if (!apps?.length) return null\n return (\n <div className={className}>\n <Text html={title} className=\" text-xl font-bold leading-[1.2] text-white\" />\n <div className=\"mt-4 flex items-center gap-4\" role=\"list\" aria-label=\"Download apps\">\n {apps?.map((appItem: any) => (\n <Link\n key={appItem?.id}\n href={getLocalizedPath(appItem?.link, locale)}\n className=\"group flex flex-col items-center gap-[6px]\"\n role=\"listitem\"\n aria-label={appItem?.icon?.alt || appItem?.label || 'Download app'}\n >\n <img\n src={appItem?.icon?.url}\n loading=\"lazy\"\n alt={appItem?.icon?.alt}\n className=\"size-10 shrink-0 opacity-70 transition-opacity duration-200 group-hover:opacity-100\"\n />\n {appItem?.label && (\n <Text\n html={appItem?.label}\n className=\"text-xs font-bold text-[#999999] transition-colors duration-200 group-hover:text-white\"\n />\n )}\n </Link>\n ))}\n </div>\n </div>\n )\n}\n\n/**\n * ChangeCountry \u5207\u6362\u56FD\u5BB6\u6A21\u5757\n * @param data \u6570\u636E\n * @param isMobile \u662F\u5426\u662F\u79FB\u52A8\u7AEF\n * @returns\n */\nconst ChangeCountry = ({\n country,\n isMobile,\n className,\n onChangeCountry,\n}: {\n country: any\n isMobile: boolean\n className?: string\n onChangeCountry?: () => void\n}) => {\n return (\n <div className={cn('desktop:py-0 desktop:border-none border-t border-[#3D3E3F] py-4', className)}>\n <button\n onClick={() => onChangeCountry?.()}\n className=\"flex w-full items-center justify-between focus:outline-none focus:ring-2 focus:ring-white focus:ring-offset-2 focus:ring-offset-black\"\n aria-label={`Change country/region, current: ${country?.countryName || country?.country}`}\n >\n <div className=\"group flex items-center gap-2\">\n <CountryIcon\n width={20}\n height={20}\n className=\"shrink-0 opacity-70 transition-opacity duration-200 group-hover:opacity-100\"\n aria-hidden=\"true\"\n />\n <Text\n as=\"span\"\n html={country?.countryName || country?.country}\n className=\"desktop:text-[#B6B6BA] desktop:group-hover:text-white text-base font-bold leading-[1.4] text-white transition-colors duration-200\"\n />\n </div>\n {isMobile && <ArrowRightIcon width={20} height={20} aria-hidden=\"true\" />}\n </button>\n </div>\n )\n}\n\nexport default withLayout(FooterNavigation)\n"],
5
+ "mappings": "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",
6
+ "names": ["jsx", "jsxs", "useEffect", "useMemo", "useState", "Text", "Container", "Link", "Subscribe", "FooterNavigationBlockType", "AddIcon", "SubtractIcon", "ArrowRightIcon", "CountryIcon", "useIsomorphicMediaQuery", "cn", "getLocalizedPath", "useAiuiContext", "withLayout", "FooterNavigation", "footer", "currentCountry", "event", "subscribeLoading", "classNames", "className", "moduleIds", "rest", "isMobile", "setIsMobile", "mediaQuery", "country", "block", "MarketingConversion", "FooterBrand", "MainServices", "data", "onSubmit", "id", "locale", "enjoyItem", "benefitItem", "mainNavMenuOpen", "setMainNavMenuOpen", "services", "mainNav", "contactSectionId", "reasonItem", "DownloadApp", "MainNavMenu", "contactItem", "ChangeCountry", "socialItem", "paymentItem", "brandItem", "policyItem", "title", "lists", "sectionId", "item", "apps", "appItem", "onChangeCountry", "FooterNavigation_default"]
7
7
  }
@@ -3,5 +3,5 @@ import 'swiper/css';
3
3
  import 'swiper/css/navigation';
4
4
  import 'swiper/css/pagination';
5
5
  import type { GiftBoxType } from './types.js';
6
- declare const _default: React.ForwardRefExoticComponent<Omit<GiftBoxType, "container" | keyof import("../../shared/Styles.js").StylesProps> & import("../../shared/Styles.js").StylesProps & import("../WheelLottery/index.js").ContainerProps & React.RefAttributes<unknown>> & {};
6
+ declare const _default: React.ForwardRefExoticComponent<Omit<GiftBoxType, "container" | keyof import("../../shared/Styles.js").StylesProps> & import("../../shared/Styles.js").StylesProps & import("../index.js").ContainerProps & React.RefAttributes<unknown>> & {};
7
7
  export default _default;
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import type { GiftShelfProps } from './types.js';
3
- declare const _default: React.ForwardRefExoticComponent<Omit<GiftShelfProps & React.RefAttributes<HTMLDivElement>, "container" | keyof import("../../shared/Styles.js").StylesProps> & import("../../shared/Styles.js").StylesProps & import("../WheelLottery/index.js").ContainerProps & React.RefAttributes<unknown>> & {
3
+ declare const _default: React.ForwardRefExoticComponent<Omit<GiftShelfProps & React.RefAttributes<HTMLDivElement>, "container" | keyof import("../../shared/Styles.js").StylesProps> & import("../../shared/Styles.js").StylesProps & import("../index.js").ContainerProps & React.RefAttributes<unknown>> & {
4
4
  readonly $$typeof: symbol;
5
5
  };
6
6
  export default _default;
@@ -1,2 +1,2 @@
1
- "use client";import{jsx as o,jsxs as y}from"react/jsx-runtime";import*as n from"react";import{cn as m}from"../../helpers/index.js";import{Text as C,Picture as E,Button as ot,Container as nt,Heading as at}from"../../components/index.js";import{cva as T}from"class-variance-authority";import{Swiper as st,SwiperSlide as rt}from"swiper/react";import{withLayout as it}from"../../shared/Styles.js";import{formatVariantPrice as lt}from"../Listing/utils/index.js";import{useAiuiContext as ut}from"../AiuiProvider/index.js";import{replaceTemplate as L}from"../Listing/utils/textFormat.js";const ct=T("desktop:px-6 rounded-card relative min-w-0 overflow-hidden p-4",{variants:{state:{light:"bg-[#EAEAEC]",dark:"bg-[#1E2024]"}},defaultVariants:{state:"light"}}),dt=T("",{variants:{layout:{vertical:"",horizontal:"desktop:flex desktop:flex-row desktop:items-stretch desktop:gap-10"}},defaultVariants:{layout:"vertical"}}),ft=T("desktop:max-w-[268px] lg-desktop:max-w-[356px] lg-desktop:h-[171px] relative mx-auto h-[118px] max-w-[256px] ",{variants:{layout:{vertical:"",horizontal:"desktop:flex-1 desktop:h-[122px] lg-desktop:h-[161px]"}},defaultVariants:{layout:"vertical"}}),pt=T("mt-3",{variants:{layout:{vertical:"",horizontal:"desktop:mt-0 desktop:flex-1 desktop:flex desktop:flex-col desktop:justify-center"}},defaultVariants:{layout:"vertical"}}),mt=T("mt-4 self-start",{variants:{state:{light:"bg-[#080A0F] text-white",dark:"bg-white text-[#080A0F]"}},defaultVariants:{state:"light"}}),M=T("",{variants:{state:{light:"text-[#080A0F]",dark:"text-white"}},defaultVariants:{state:"light"}}),U=t=>{if(!t)return;const e=[];return t.lgDesktop?.url&&e.push(`${t.lgDesktop.url} 1920`),t.desktop?.url&&e.push(`${t.desktop.url} 1439`),t.laptop?.url&&e.push(`${t.laptop.url} 1024`),t.tablet?.url&&e.push(`${t.tablet.url} 767`),t.default?.url&&e.push(t.default.url),e.length>0?e.join(", "):void 0},q=t=>t&&(t.default?.alt||t.tablet?.alt||t.laptop?.alt||t.desktop?.alt||t.lgDesktop?.alt)||"",ht=t=>{const e=Math.floor(t/3600),a=Math.floor(t%3600/60),i=t%60;return`${e.toString().padStart(2,"0")}:${a.toString().padStart(2,"0")}:${i.toString().padStart(2,"0")}`},j=t=>{if(typeof t=="number")return t;const e=new Date(t).getTime();return isNaN(e)?0:e},O=t=>{if(!t)return!1;const e=j(t.startTime),a=(t.durationDays??1)*24*3600*1e3,i=t.rounds??1,d=Date.now();if(d<e)return!1;const h=d-e,u=Math.floor(h/a)+1;if(u>i)return!1;const f=e+u*a-d,s=5*60*1e3;return f<=s&&f>0},H=(t,e)=>{if(!t||!e)return t||"";const a=j(e.startTime),i=(e.durationDays??1)*24*3600*1e3,d=e.rounds??1,h=Date.now();if(h<a){const g=new Date(a),l=`${(g.getUTCMonth()+1).toString().padStart(2,"0")}${g.getUTCDate().toString().padStart(2,"0")}`;return`${t}${l}`}const u=h-a,w=Math.min(Math.floor(u/i)+1,d),f=a+(w-1)*i,s=new Date(f),p=`${(s.getUTCMonth()+1).toString().padStart(2,"0")}${s.getUTCDate().toString().padStart(2,"0")}`;return`${t}${p}`},W=n.memo(({config:t,theme:e="light",className:a,countdownText:i="Next round start time",lastRoundText:d="Last round",beforeStartText:h="Start time",countdownIcon:u,onStateChange:w})=>{const[f,s]=n.useState(0),[p,g]=n.useState("beforeStart"),l=n.useMemo(()=>j(t.startTime),[t.startTime]),S=t.rounds??1,N=(t.durationDays??1)*24*3600*1e3;n.useEffect(()=>{const P=()=>{const x=Date.now();if(x<l){const G=Math.max(0,Math.floor((l-x)/1e3));s(G),g("beforeStart");return}const R=x-l,b=Math.floor(R/N)+1;if(b>S){g("finished");return}const D=l+b*N,r=Math.max(0,Math.floor((D-x)/1e3));s(r),g(b===S?"lastRound":"running")};P();const A=setInterval(P,1e3);return()=>clearInterval(A)},[l,N,S]),n.useEffect(()=>{w?.(p)},[p,w]);const V=n.useMemo(()=>{switch(p){case"beforeStart":return h;case"lastRound":return d;default:return i}},[p,h,d,i]);return p==="finished"?null:y("div",{className:m("desktop:gap-2 laptop:text-base flex items-center gap-1 text-sm",e==="dark"?"text-white":"text-[#080A0F]",a),children:[u&&o(E,{source:u.url,alt:u.alt,className:"laptop:size-5 size-4 shrink-0",imgClassName:"size-full object-contain"}),o(C,{html:V,className:"whitespace-nowrap font-bold"}),o("span",{className:"font-bold",children:"|"}),o(C,{className:"font-bold",html:ht(f)})]})});W.displayName="Countdown";const J=n.memo(({progress:t,theme:e="light",className:a})=>{const i=Math.min(100,Math.max(0,t));return o("div",{className:m("flex h-2 w-full items-stretch overflow-hidden rounded-full",e==="dark"?"bg-white/20":"bg-black/20",a),role:"progressbar","aria-valuenow":i,"aria-valuemin":0,"aria-valuemax":100,children:o("div",{className:m("h-full rounded-full transition-all duration-300",e==="dark"?"bg-white":"bg-[#080A0F]"),style:{width:`${i}%`}})})});J.displayName="ProgressBar";const K=n.memo(({item:t,theme:e="light",layout:a="vertical",className:i,buttonClassName:d,countdownClassName:h,onButtonClick:u,onProductImageClick:w,buildData:f,buttonText:s,remainText:p,lowStockText:g,soldOutButtonText:l,discountText:S="Only {price}",countdownText:N,countdownIcon:V,lastRoundText:P,beforeStartText:A,comingSoonButtonText:x,loading:R})=>{const{locale:b="us",currencyCode:D}=ut(),r=t.products?.[0],[G,X]=n.useState(()=>O(t.countdown)),[I,Y]=n.useState(()=>H(t.codePrefix,t.countdown)),[$,Z]=n.useState("beforeStart");n.useEffect(()=>{const v=()=>{X(O(t.countdown));const F=H(t.codePrefix,t.countdown);Y(_=>_!==F?F:_)};v();const z=setInterval(v,1e3);return()=>clearInterval(z)},[t.codePrefix,t.countdown]);const tt=n.useCallback(v=>{Z(v)},[]),B=n.useMemo(()=>!r?.handle||!f?.products?.length?null:f.products.find(v=>v.handle===r.handle)||null,[r?.handle,f?.products]),c=n.useMemo(()=>B?.variants?.find(v=>v?.sku===r?.sku)||{},[r?.sku,B?.variants]),k=n.useMemo(()=>{const{price:v,basePrice:z}=lt({locale:D==="CAD"?"us":b||"us",baseAmount:c?.price?.amount,amount:r?.custom_price??c?.price?.amount,currencyCode:B?.price?.currencyCode||"USD"});return{value:z,description:r?.custom_description,salePrice:L(S||"",{price:v})}},[B,c,b,S,r?.custom_price,r?.custom_description]),et=n.useCallback(()=>{u?.({product:r,code:I})},[u,I,r]);return y("div",{className:m(ct({state:e}),i),"data-ui-component-id":"GiftShelfCard",children:[t.countdown&&o("div",{className:"laptop:h-[24px] mb-4 h-[20px]",children:o(W,{config:t.countdown,theme:e,className:h,countdownText:N,lastRoundText:P,beforeStartText:A,countdownIcon:V,onStateChange:tt})}),y("div",{className:dt({layout:a}),children:[y("div",{className:ft({layout:a}),children:[t.backgroundImage&&(w?o("a",{onClick:()=>r&&w(r),className:"cursor-pointer",children:o(E,{source:U(t.backgroundImage),alt:q(t.backgroundImage),className:"rounded-card size-full overflow-hidden object-cover",imgClassName:"h-full w-full object-cover"})}):o(E,{source:U(t.backgroundImage),alt:q(t.backgroundImage),className:"rounded-card size-full overflow-hidden object-cover",imgClassName:"h-full w-full object-cover"})),o("div",{className:"absolute top-1/2 z-10 w-full -translate-y-1/2 px-6",children:y("div",{className:"flex flex-col gap-1",children:[k.value&&o(at,{html:k.value,size:4,className:m("font-bold leading-none",M({state:e}))}),k.description&&o(C,{html:k.description,className:m("text-base font-bold opacity-60",M({state:e}))})]})})]}),y("div",{className:pt({layout:a}),children:[k.salePrice&&o(C,{as:"p",html:k.salePrice,className:m("lg-desktop:text-2xl text-xl font-bold",M({state:e}))}),o(J,{progress:r?.custom_inventory?(c?.quantityAvailable||0)/r.custom_inventory*100:0,theme:e,className:m("mb-1 mt-2",c?.availableForSale&&(c?.quantityAvailable??0)<=0&&"invisible")}),p&&(c?.quantityAvailable??0)>=0&&o(C,{html:L(p,{inventory:r?.custom_inventory?.toString()||"",quantity:c?.quantityAvailable?.toString()||"0"}),as:"p",className:m("laptop:text-base text-sm font-bold",M({state:e}))}),g&&c?.availableForSale&&(c?.quantityAvailable??0)<0&&o(C,{html:g,as:"p",className:m("laptop:text-base text-sm font-bold text-red-500",M({state:e}))}),o(ot,{size:"lg",className:m(mt({state:e}),d),onClick:et,disabled:!c?.availableForSale||R||G||$==="beforeStart"||$==="finished",loading:R&&c?.availableForSale,children:$==="beforeStart"?x||s:c?.availableForSale?s:l||s})]})]})]})});K.displayName="GiftShelfCard";const Q=n.forwardRef(({classNames:t={},data:e,onButtonClick:a,onProductImageClick:i,buildData:d,loading:h,...u},w)=>{const f=e.theme||"light",s=n.useMemo(()=>e?.items?.length||4,[e?.items]),p=s===2?"horizontal":"vertical",g=n.useMemo(()=>{const l=S=>{switch(S){case"mobile":return{slidesPerView:1.2,spaceBetween:12};case"tablet":return s<=2?{slidesPerView:2,spaceBetween:12}:{slidesPerView:2.5,spaceBetween:12};case"laptop":return s<=3?{slidesPerView:s,spaceBetween:16}:{slidesPerView:3.01,spaceBetween:16};case"desktop":return{slidesPerView:Math.min(s,4),spaceBetween:20}}};return{0:l("mobile"),768:l("tablet"),1025:l("laptop"),1440:l("desktop")}},[s]);return o(nt,{ref:w,className:m(t?.root),childClassName:"overflow-hidden","data-ui-component-id":"GiftShelf",...u,children:o(st,{breakpoints:g,className:"w-full !overflow-visible",children:e.items.map((l,S)=>o(rt,{children:o(K,{item:l,theme:f,layout:p,className:t?.card,buttonClassName:t?.button,countdownClassName:t?.countdown,onButtonClick:a,onProductImageClick:i,buildData:d,buttonText:e.buttonText,discountText:e.discountText,remainText:e.remainText,lowStockText:e.lowStockText,soldOutButtonText:e.soldOutButtonText,countdownText:e.countdownText,lastRoundText:e.lastRoundText,countdownIcon:e?.countdownIcon,beforeStartText:e.beforeStartText,comingSoonButtonText:e.comingSoonButtonText,loading:h})},"giftShelfCardItem"+S))})})});Q.displayName="GiftShelf";var Tt=it(Q);export{Tt as default};
1
+ "use client";import{jsx as o,jsxs as y}from"react/jsx-runtime";import*as n from"react";import{cn as m}from"../../helpers/index.js";import{Text as C,Picture as E,Button as tt,Container as et,Heading as ot}from"../../components/index.js";import{cva as T}from"class-variance-authority";import{Swiper as nt,SwiperSlide as at}from"swiper/react";import{withLayout as st}from"../../shared/Styles.js";import{formatVariantPrice as rt}from"../Listing/utils/index.js";import{useAiuiContext as it}from"../AiuiProvider/index.js";import{replaceTemplate as L}from"../Listing/utils/textFormat.js";const lt=T("desktop:px-6 rounded-card relative min-w-0 overflow-hidden p-4",{variants:{state:{light:"bg-[#EAEAEC]",dark:"bg-[#1E2024]"}},defaultVariants:{state:"light"}}),ut=T("",{variants:{layout:{vertical:"",horizontal:"desktop:flex desktop:flex-row desktop:items-stretch desktop:gap-10"}},defaultVariants:{layout:"vertical"}}),ct=T("desktop:max-w-[268px] lg-desktop:max-w-[356px] lg-desktop:h-[171px] relative mx-auto h-[118px] max-w-[256px] ",{variants:{layout:{vertical:"",horizontal:"desktop:flex-1 desktop:h-[122px] lg-desktop:h-[161px]"}},defaultVariants:{layout:"vertical"}}),dt=T("mt-3",{variants:{layout:{vertical:"",horizontal:"desktop:mt-0 desktop:flex-1 desktop:flex desktop:flex-col desktop:justify-center"}},defaultVariants:{layout:"vertical"}}),ft=T("mt-4 self-start",{variants:{state:{light:"bg-[#080A0F] text-white",dark:"bg-white text-[#080A0F]"}},defaultVariants:{state:"light"}}),M=T("",{variants:{state:{light:"text-[#080A0F]",dark:"text-white"}},defaultVariants:{state:"light"}}),U=t=>{if(!t)return;const e=[];return t.lgDesktop?.url&&e.push(`${t.lgDesktop.url} 1920`),t.desktop?.url&&e.push(`${t.desktop.url} 1439`),t.laptop?.url&&e.push(`${t.laptop.url} 1024`),t.tablet?.url&&e.push(`${t.tablet.url} 767`),t.default?.url&&e.push(t.default.url),e.length>0?e.join(", "):void 0},q=t=>t&&(t.default?.alt||t.tablet?.alt||t.laptop?.alt||t.desktop?.alt||t.lgDesktop?.alt)||"",pt=t=>{const e=Math.floor(t/3600),a=Math.floor(t%3600/60),i=t%60;return`${e.toString().padStart(2,"0")}:${a.toString().padStart(2,"0")}:${i.toString().padStart(2,"0")}`},j=t=>{if(typeof t=="number")return t;const e=new Date(t).getTime();return isNaN(e)?0:e},mt=t=>{if(!t)return!1;const e=j(t.startTime),a=(t.durationDays??1)*24*3600*1e3,i=t.rounds??1,d=Date.now();if(d<e)return!1;const h=d-e,u=Math.floor(h/a)+1;if(u>i)return!1;const f=e+u*a-d,s=5*60*1e3;return f<=s&&f>0},ht=(t,e)=>{if(!t||!e)return t||"";const a=j(e.startTime),i=(e.durationDays??1)*24*3600*1e3,d=e.rounds??1,h=Date.now();if(h<a){const g=new Date(a),l=`${(g.getUTCMonth()+1).toString().padStart(2,"0")}${g.getUTCDate().toString().padStart(2,"0")}`;return`${t}${l}`}const u=h-a,w=Math.min(Math.floor(u/i)+1,d),f=a+(w-1)*i,s=new Date(f),p=`${(s.getUTCMonth()+1).toString().padStart(2,"0")}${s.getUTCDate().toString().padStart(2,"0")}`;return`${t}${p}`},O=n.memo(({config:t,theme:e="light",className:a,countdownText:i="Next round start time",lastRoundText:d="Last round",beforeStartText:h="Start time",countdownIcon:u,onStateChange:w})=>{const[f,s]=n.useState(0),[p,g]=n.useState("beforeStart"),l=n.useMemo(()=>j(t.startTime),[t.startTime]),S=t.rounds??1,N=(t.durationDays??1)*24*3600*1e3;n.useEffect(()=>{const P=()=>{const x=Date.now();if(x<l){const G=Math.max(0,Math.floor((l-x)/1e3));s(G),g("beforeStart");return}const R=x-l,b=Math.floor(R/N)+1;if(b>S){g("finished");return}const D=l+b*N,r=Math.max(0,Math.floor((D-x)/1e3));s(r),g(b===S?"lastRound":"running")};P();const A=setInterval(P,1e3);return()=>clearInterval(A)},[l,N,S]),n.useEffect(()=>{w?.(p)},[p,w]);const V=n.useMemo(()=>{switch(p){case"beforeStart":return h;case"lastRound":return d;default:return i}},[p,h,d,i]);return p==="finished"?null:y("div",{className:m("desktop:gap-2 laptop:text-base flex items-center gap-1 text-sm",e==="dark"?"text-white":"text-[#080A0F]",a),children:[u&&o(E,{source:u.url,alt:u.alt,className:"laptop:size-5 size-4 shrink-0",imgClassName:"size-full object-contain"}),o(C,{html:V,className:"whitespace-nowrap font-bold"}),o("span",{className:"font-bold",children:"|"}),o(C,{className:"font-bold",html:pt(f)})]})});O.displayName="Countdown";const H=n.memo(({progress:t,theme:e="light",className:a})=>{const i=Math.min(100,Math.max(0,t));return o("div",{className:m("flex h-2 w-full items-stretch overflow-hidden rounded-full",e==="dark"?"bg-white/20":"bg-black/20",a),role:"progressbar","aria-valuenow":i,"aria-valuemin":0,"aria-valuemax":100,children:o("div",{className:m("h-full rounded-full transition-all duration-300",e==="dark"?"bg-white":"bg-[#080A0F]"),style:{width:`${i}%`}})})});H.displayName="ProgressBar";const W=n.memo(({item:t,theme:e="light",layout:a="vertical",className:i,buttonClassName:d,countdownClassName:h,onButtonClick:u,onProductImageClick:w,buildData:f,buttonText:s,remainText:p,lowStockText:g,soldOutButtonText:l,discountText:S="Only {price}",countdownText:N,countdownIcon:V,lastRoundText:P,beforeStartText:A,comingSoonButtonText:x,loading:R})=>{const{locale:b="us",currencyCode:D}=it(),r=t.products?.[0],[G,K]=n.useState(!1),[I,Q]=n.useState(""),[$,X]=n.useState("beforeStart");n.useEffect(()=>{const v=()=>{K(mt(t.countdown));const F=ht(t.codePrefix,t.countdown);Q(_=>_!==F?F:_)};v();const z=setInterval(v,1e3);return()=>clearInterval(z)},[t.codePrefix,t.countdown]);const Y=n.useCallback(v=>{X(v)},[]),B=n.useMemo(()=>!r?.handle||!f?.products?.length?null:f.products.find(v=>v.handle===r.handle)||null,[r?.handle,f?.products]),c=n.useMemo(()=>B?.variants?.find(v=>v?.sku===r?.sku)||{},[r?.sku,B?.variants]),k=n.useMemo(()=>{const{price:v,basePrice:z}=rt({locale:D==="CAD"?"us":b||"us",baseAmount:c?.price?.amount,amount:r?.custom_price??c?.price?.amount,currencyCode:B?.price?.currencyCode||"USD"});return{value:z,description:r?.custom_description,salePrice:L(S||"",{price:v})}},[B,c,b,S,r?.custom_price,r?.custom_description]),Z=n.useCallback(()=>{u?.({product:r,code:I})},[u,I,r]);return y("div",{className:m(lt({state:e}),i),"data-ui-component-id":"GiftShelfCard",children:[t.countdown&&o("div",{className:"laptop:h-[24px] mb-4 h-[20px]",children:o(O,{config:t.countdown,theme:e,className:h,countdownText:N,lastRoundText:P,beforeStartText:A,countdownIcon:V,onStateChange:Y})}),y("div",{className:ut({layout:a}),children:[y("div",{className:ct({layout:a}),children:[t.backgroundImage&&(w?o("a",{onClick:()=>r&&w(r),className:"cursor-pointer",children:o(E,{source:U(t.backgroundImage),alt:q(t.backgroundImage),className:"rounded-card size-full overflow-hidden object-cover",imgClassName:"h-full w-full object-cover"})}):o(E,{source:U(t.backgroundImage),alt:q(t.backgroundImage),className:"rounded-card size-full overflow-hidden object-cover",imgClassName:"h-full w-full object-cover"})),o("div",{className:"absolute top-1/2 z-10 w-full -translate-y-1/2 px-6",children:y("div",{className:"flex flex-col gap-1",children:[k.value&&o(ot,{html:k.value,size:4,className:m("font-bold leading-none",M({state:e}))}),k.description&&o(C,{html:k.description,className:m("text-base font-bold opacity-60",M({state:e}))})]})})]}),y("div",{className:dt({layout:a}),children:[k.salePrice&&o(C,{as:"p",html:k.salePrice,className:m("lg-desktop:text-2xl text-xl font-bold",M({state:e}))}),o(H,{progress:r?.custom_inventory?(c?.quantityAvailable||0)/r.custom_inventory*100:0,theme:e,className:m("mb-1 mt-2",c?.availableForSale&&(c?.quantityAvailable??0)<=0&&"invisible")}),p&&(c?.quantityAvailable??0)>=0&&o(C,{html:L(p,{inventory:r?.custom_inventory?.toString()||"",quantity:c?.quantityAvailable?.toString()||"0"}),as:"p",className:m("laptop:text-base text-sm font-bold",M({state:e}))}),g&&c?.availableForSale&&(c?.quantityAvailable??0)<0&&o(C,{html:g,as:"p",className:m("laptop:text-base text-sm font-bold text-red-500",M({state:e}))}),o(tt,{size:"lg",className:m(ft({state:e}),d),onClick:Z,disabled:!c?.availableForSale||R||G||$==="beforeStart"||$==="finished",loading:R&&c?.availableForSale,children:$==="beforeStart"?x||s:c?.availableForSale?s:l||s})]})]})]})});W.displayName="GiftShelfCard";const J=n.forwardRef(({classNames:t={},data:e,onButtonClick:a,onProductImageClick:i,buildData:d,loading:h,...u},w)=>{const f=e.theme||"light",s=n.useMemo(()=>e?.items?.length||4,[e?.items]),p=s===2?"horizontal":"vertical",g=n.useMemo(()=>{const l=S=>{switch(S){case"mobile":return{slidesPerView:1.2,spaceBetween:12};case"tablet":return s<=2?{slidesPerView:2,spaceBetween:12}:{slidesPerView:2.5,spaceBetween:12};case"laptop":return s<=3?{slidesPerView:s,spaceBetween:16}:{slidesPerView:3.01,spaceBetween:16};case"desktop":return{slidesPerView:Math.min(s,4),spaceBetween:20}}};return{0:l("mobile"),768:l("tablet"),1025:l("laptop"),1440:l("desktop")}},[s]);return o(et,{ref:w,className:m(t?.root),childClassName:"overflow-hidden","data-ui-component-id":"GiftShelf",...u,children:o(nt,{breakpoints:g,className:"w-full !overflow-visible",children:e.items.map((l,S)=>o(at,{children:o(W,{item:l,theme:f,layout:p,className:t?.card,buttonClassName:t?.button,countdownClassName:t?.countdown,onButtonClick:a,onProductImageClick:i,buildData:d,buttonText:e.buttonText,discountText:e.discountText,remainText:e.remainText,lowStockText:e.lowStockText,soldOutButtonText:e.soldOutButtonText,countdownText:e.countdownText,lastRoundText:e.lastRoundText,countdownIcon:e?.countdownIcon,beforeStartText:e.beforeStartText,comingSoonButtonText:e.comingSoonButtonText,loading:h})},"giftShelfCardItem"+S))})})});J.displayName="GiftShelf";var Tt=st(J);export{Tt as default};
2
2
  //# sourceMappingURL=index.js.map