@anker-in/headless-ui 1.1.15 → 1.1.17-alpha.1765854227659

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 (805) hide show
  1. package/dist/cjs/biz-components/AccordionCards/index.d.ts +2 -2
  2. package/dist/cjs/biz-components/AiuiProvider/index.d.ts +1 -1
  3. package/dist/cjs/biz-components/AiuiProvider/index.js.map +1 -1
  4. package/dist/cjs/biz-components/AplusDesc/index.d.ts +3 -2
  5. package/dist/cjs/biz-components/AplusDesc/index.js +1 -1
  6. package/dist/cjs/biz-components/AplusDesc/index.js.map +3 -3
  7. package/dist/cjs/biz-components/BrandEquity/BrandEquity.d.ts +3 -2
  8. package/dist/cjs/biz-components/BrandEquity/BrandEquity.js +1 -1
  9. package/dist/cjs/biz-components/BrandEquity/BrandEquity.js.map +3 -3
  10. package/dist/cjs/biz-components/BrandEquity/types.d.ts +0 -1
  11. package/dist/cjs/biz-components/BrandEquity/types.js +1 -1
  12. package/dist/cjs/biz-components/BrandEquity/types.js.map +1 -1
  13. package/dist/cjs/biz-components/Category/index.d.ts +2 -2
  14. package/dist/cjs/biz-components/Category/index.js +1 -1
  15. package/dist/cjs/biz-components/Category/index.js.map +3 -3
  16. package/dist/cjs/biz-components/CollectionShelves/CollectionShelvesItem.d.ts +4 -0
  17. package/dist/cjs/biz-components/CollectionShelves/CollectionShelvesItem.js +2 -0
  18. package/dist/cjs/biz-components/CollectionShelves/CollectionShelvesItem.js.map +7 -0
  19. package/dist/cjs/biz-components/CollectionShelves/index.d.ts +7 -0
  20. package/dist/cjs/biz-components/CollectionShelves/index.js +2 -0
  21. package/dist/cjs/biz-components/CollectionShelves/index.js.map +7 -0
  22. package/dist/cjs/biz-components/CollectionsBanner/index.d.ts +7 -0
  23. package/dist/cjs/biz-components/CollectionsBanner/index.js +2 -0
  24. package/dist/cjs/biz-components/CollectionsBanner/index.js.map +7 -0
  25. package/dist/cjs/biz-components/CollectionsBanner/types.d.ts +43 -0
  26. package/dist/cjs/biz-components/CollectionsBanner/types.js +2 -0
  27. package/dist/cjs/biz-components/CollectionsBanner/types.js.map +7 -0
  28. package/dist/cjs/biz-components/CollectionsFilters/FilterCardWrap.d.ts +19 -0
  29. package/dist/cjs/biz-components/CollectionsFilters/FilterCardWrap.js +2 -0
  30. package/dist/cjs/biz-components/CollectionsFilters/FilterCardWrap.js.map +7 -0
  31. package/dist/cjs/biz-components/CollectionsFilters/FilterCardWrapItem.d.ts +10 -0
  32. package/dist/cjs/biz-components/CollectionsFilters/FilterCardWrapItem.js +2 -0
  33. package/dist/cjs/biz-components/CollectionsFilters/FilterCardWrapItem.js.map +7 -0
  34. package/dist/cjs/biz-components/CollectionsFilters/FilterHeader.d.ts +13 -0
  35. package/dist/cjs/biz-components/CollectionsFilters/FilterHeader.js +2 -0
  36. package/dist/cjs/biz-components/CollectionsFilters/FilterHeader.js.map +7 -0
  37. package/dist/cjs/biz-components/CollectionsFilters/FilterList.d.ts +14 -0
  38. package/dist/cjs/biz-components/CollectionsFilters/FilterList.js +2 -0
  39. package/dist/cjs/biz-components/CollectionsFilters/FilterList.js.map +7 -0
  40. package/dist/cjs/biz-components/CollectionsFilters/component/AnimatedUL.d.ts +5 -0
  41. package/dist/cjs/biz-components/CollectionsFilters/component/AnimatedUL.js +2 -0
  42. package/dist/cjs/biz-components/CollectionsFilters/component/AnimatedUL.js.map +7 -0
  43. package/dist/cjs/biz-components/CollectionsFilters/component/TabFilter.d.ts +12 -0
  44. package/dist/cjs/biz-components/CollectionsFilters/component/TabFilter.js +2 -0
  45. package/dist/cjs/biz-components/CollectionsFilters/component/TabFilter.js.map +7 -0
  46. package/dist/cjs/biz-components/CollectionsFilters/component/filtersFun.d.ts +12 -0
  47. package/dist/cjs/biz-components/CollectionsFilters/component/filtersFun.js +2 -0
  48. package/dist/cjs/biz-components/CollectionsFilters/component/filtersFun.js.map +7 -0
  49. package/dist/cjs/biz-components/CollectionsFilters/component/helper.d.ts +81 -0
  50. package/dist/cjs/biz-components/CollectionsFilters/component/helper.js +2 -0
  51. package/dist/cjs/biz-components/CollectionsFilters/component/helper.js.map +7 -0
  52. package/dist/cjs/biz-components/CollectionsFilters/component/price.d.ts +25 -0
  53. package/dist/cjs/biz-components/CollectionsFilters/component/price.js +2 -0
  54. package/dist/cjs/biz-components/CollectionsFilters/component/price.js.map +7 -0
  55. package/dist/cjs/biz-components/CollectionsFilters/component/priceProps.d.ts +215 -0
  56. package/dist/cjs/biz-components/CollectionsFilters/component/priceProps.js +2 -0
  57. package/dist/cjs/biz-components/CollectionsFilters/component/priceProps.js.map +7 -0
  58. package/dist/cjs/biz-components/CollectionsFilters/index.d.ts +24 -0
  59. package/dist/cjs/biz-components/CollectionsFilters/index.js +2 -0
  60. package/dist/cjs/biz-components/CollectionsFilters/index.js.map +7 -0
  61. package/dist/cjs/biz-components/CreativeModule/index.d.ts +3 -2
  62. package/dist/cjs/biz-components/DownLoad/index.d.ts +3 -2
  63. package/dist/cjs/biz-components/Evaluate/index.d.ts +2 -2
  64. package/dist/cjs/biz-components/Faq/Faq.d.ts +2 -2
  65. package/dist/cjs/biz-components/FeatureCards/FeatureCards.d.ts +7 -0
  66. package/dist/cjs/biz-components/FeatureCards/FeatureCards.js +2 -0
  67. package/dist/cjs/biz-components/FeatureCards/FeatureCards.js.map +7 -0
  68. package/dist/cjs/biz-components/FeatureCards/index.d.ts +2 -0
  69. package/dist/cjs/biz-components/FeatureCards/index.js +2 -0
  70. package/dist/cjs/biz-components/FeatureCards/index.js.map +7 -0
  71. package/dist/cjs/biz-components/FeatureCards/types.d.ts +27 -0
  72. package/dist/cjs/biz-components/FeatureCards/types.js +2 -0
  73. package/dist/cjs/biz-components/FeatureCards/types.js.map +7 -0
  74. package/dist/cjs/biz-components/FeatureShowcase/FeatureShowcase.d.ts +7 -0
  75. package/dist/cjs/biz-components/FeatureShowcase/FeatureShowcase.js +2 -0
  76. package/dist/cjs/biz-components/FeatureShowcase/FeatureShowcase.js.map +7 -0
  77. package/dist/cjs/biz-components/FeatureShowcase/index.d.ts +2 -0
  78. package/dist/cjs/biz-components/FeatureShowcase/index.js +2 -0
  79. package/dist/cjs/biz-components/FeatureShowcase/index.js.map +7 -0
  80. package/dist/cjs/biz-components/FeatureShowcase/types.d.ts +23 -0
  81. package/dist/cjs/biz-components/FeatureShowcase/types.js +2 -0
  82. package/dist/cjs/biz-components/FeatureShowcase/types.js.map +7 -0
  83. package/dist/cjs/biz-components/Features/index.d.ts +3 -2
  84. package/dist/cjs/biz-components/Features/index.js +1 -1
  85. package/dist/cjs/biz-components/Features/index.js.map +3 -3
  86. package/dist/cjs/biz-components/FootCharger/index.d.ts +3 -2
  87. package/dist/cjs/biz-components/FooterNavigation/index.d.ts +3 -2
  88. package/dist/cjs/biz-components/GiftBox/index.d.ts +3 -2
  89. package/dist/cjs/biz-components/GiftBox/index.js +1 -1
  90. package/dist/cjs/biz-components/GiftBox/index.js.map +3 -3
  91. package/dist/cjs/biz-components/Graphic/index.d.ts +2 -2
  92. package/dist/cjs/biz-components/GraphicAttractionBlock/index.d.ts +2 -2
  93. package/dist/cjs/biz-components/GraphicMore/index.d.ts +3 -2
  94. package/dist/cjs/biz-components/GraphicOverlay/GraphicOverlay.d.ts +2 -2
  95. package/dist/cjs/biz-components/HeaderNavigation/index.d.ts +2 -5
  96. package/dist/cjs/biz-components/HeaderNavigation/index.js +1 -1
  97. package/dist/cjs/biz-components/HeaderNavigation/index.js.map +3 -3
  98. package/dist/cjs/biz-components/HeroBanner/HeroBanner.d.ts +2 -2
  99. package/dist/cjs/biz-components/HeroBanner/HeroBanner.js +1 -1
  100. package/dist/cjs/biz-components/HeroBanner/HeroBanner.js.map +3 -3
  101. package/dist/cjs/biz-components/HeroBanner/types.d.ts +2 -0
  102. package/dist/cjs/biz-components/HeroBanner/types.js +1 -1
  103. package/dist/cjs/biz-components/HeroBanner/types.js.map +1 -1
  104. package/dist/cjs/biz-components/ImageTextFeature/ImageTextFeature.d.ts +7 -0
  105. package/dist/cjs/biz-components/ImageTextFeature/ImageTextFeature.js +2 -0
  106. package/dist/cjs/biz-components/ImageTextFeature/ImageTextFeature.js.map +7 -0
  107. package/dist/cjs/biz-components/ImageTextFeature/index.d.ts +2 -0
  108. package/dist/cjs/biz-components/ImageTextFeature/index.js +2 -0
  109. package/dist/cjs/biz-components/ImageTextFeature/index.js.map +7 -0
  110. package/dist/cjs/biz-components/ImageTextFeature/types.d.ts +31 -0
  111. package/dist/cjs/biz-components/ImageTextFeature/types.js +2 -0
  112. package/dist/cjs/biz-components/ImageTextFeature/types.js.map +7 -0
  113. package/dist/cjs/biz-components/ImageWithText/ImageWithText.d.ts +7 -0
  114. package/dist/cjs/biz-components/ImageWithText/ImageWithText.js +2 -0
  115. package/dist/cjs/biz-components/ImageWithText/ImageWithText.js.map +7 -0
  116. package/dist/cjs/biz-components/ImageWithText/index.d.ts +3 -0
  117. package/dist/cjs/biz-components/ImageWithText/index.js +2 -0
  118. package/dist/cjs/biz-components/ImageWithText/index.js.map +7 -0
  119. package/dist/cjs/biz-components/ImageWithText/types.d.ts +108 -0
  120. package/dist/cjs/biz-components/ImageWithText/types.js +2 -0
  121. package/dist/cjs/biz-components/ImageWithText/types.js.map +7 -0
  122. package/dist/cjs/biz-components/InlineVideo/index.d.ts +16 -0
  123. package/dist/cjs/biz-components/InlineVideo/index.js +2 -0
  124. package/dist/cjs/biz-components/InlineVideo/index.js.map +7 -0
  125. package/dist/cjs/biz-components/Ksp/index.d.ts +44 -0
  126. package/dist/cjs/biz-components/Ksp/index.js +2 -0
  127. package/dist/cjs/biz-components/Ksp/index.js.map +7 -0
  128. package/dist/cjs/biz-components/Listing/BizProductProvider.d.ts +1 -1
  129. package/dist/cjs/biz-components/Listing/components/PaidShipping/ShippingPolicyModal.js +1 -1
  130. package/dist/cjs/biz-components/Listing/components/PaidShipping/ShippingPolicyModal.js.map +2 -2
  131. package/dist/cjs/biz-components/Listing/components/PaidShipping/index.d.ts +19 -6
  132. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/BenefitsTab.d.ts +2 -2
  133. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/BenefitsTab.js +4 -4
  134. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/BenefitsTab.js.map +2 -2
  135. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductBundle/index.d.ts +3 -2
  136. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductExchangePurchase/index.d.ts +3 -2
  137. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductFreeGift/index.d.ts +3 -2
  138. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductHighlight/index.d.ts +3 -2
  139. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductHighlight/index.js +3 -3
  140. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductHighlight/index.js.map +2 -2
  141. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductOptions/index.d.ts +3 -2
  142. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGallery/index.d.ts +3 -2
  143. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGallery/index.js +1 -1
  144. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGallery/index.js.map +2 -2
  145. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductSummary/index.d.ts +3 -2
  146. package/dist/cjs/biz-components/Listing/components/PurchaseBar/ScrollSpyNav/index.js +1 -1
  147. package/dist/cjs/biz-components/Listing/components/PurchaseBar/ScrollSpyNav/index.js.map +3 -3
  148. package/dist/cjs/biz-components/Listing/components/PurchaseBar/ScrollSpyNav/types.d.ts +1 -0
  149. package/dist/cjs/biz-components/Listing/components/PurchaseBar/ScrollSpyNav/useScrollSpy.js +1 -1
  150. package/dist/cjs/biz-components/Listing/components/PurchaseBar/ScrollSpyNav/useScrollSpy.js.map +2 -2
  151. package/dist/cjs/biz-components/Listing/components/PurchaseBar/index.d.ts +3 -2
  152. package/dist/cjs/biz-components/Marquee/Marquee.d.ts +2 -2
  153. package/dist/cjs/biz-components/MarqueeReview/index.d.ts +42 -0
  154. package/dist/cjs/biz-components/MarqueeReview/index.js +2 -0
  155. package/dist/cjs/biz-components/MarqueeReview/index.js.map +7 -0
  156. package/dist/cjs/biz-components/MediaPlayerBase/index.backup.d.ts +7 -0
  157. package/dist/cjs/biz-components/MediaPlayerBase/index.backup.js +2 -0
  158. package/dist/cjs/biz-components/MediaPlayerBase/index.backup.js.map +7 -0
  159. package/dist/cjs/biz-components/MediaPlayerBase/index.d.ts +3 -2
  160. package/dist/cjs/biz-components/MediaPlayerBase/index.js +1 -1
  161. package/dist/cjs/biz-components/MediaPlayerBase/index.js.map +2 -2
  162. package/dist/cjs/biz-components/MediaPlayerMulti/index.d.ts +3 -2
  163. package/dist/cjs/biz-components/MediaPlayerSticky/index.d.ts +2 -2
  164. package/dist/cjs/biz-components/MediaPlayerSticky/index.js +1 -1
  165. package/dist/cjs/biz-components/MediaPlayerSticky/index.js.map +3 -3
  166. package/dist/cjs/biz-components/MediaSceneSwitcher/MediaSceneSwitcher.d.ts +8 -0
  167. package/dist/cjs/biz-components/MediaSceneSwitcher/MediaSceneSwitcher.js +11 -0
  168. package/dist/cjs/biz-components/MediaSceneSwitcher/MediaSceneSwitcher.js.map +7 -0
  169. package/dist/cjs/biz-components/MediaSceneSwitcher/index.d.ts +2 -0
  170. package/dist/cjs/biz-components/MediaSceneSwitcher/index.js +2 -0
  171. package/dist/cjs/biz-components/MediaSceneSwitcher/index.js.map +7 -0
  172. package/dist/cjs/biz-components/MediaSceneSwitcher/types.d.ts +21 -0
  173. package/dist/cjs/biz-components/MediaSceneSwitcher/types.js +2 -0
  174. package/dist/cjs/biz-components/MediaSceneSwitcher/types.js.map +7 -0
  175. package/dist/cjs/biz-components/MemberEquity/index.d.ts +2 -2
  176. package/dist/cjs/biz-components/MultiLayoutGraphicBlock/MultiLayoutGraphicBlock.d.ts +2 -2
  177. package/dist/cjs/biz-components/NavigationSearch/index.d.ts +1 -0
  178. package/dist/cjs/biz-components/NavigationSearch/index.js +2 -2
  179. package/dist/cjs/biz-components/NavigationSearch/index.js.map +2 -2
  180. package/dist/cjs/biz-components/Paginator/index.d.ts +7 -0
  181. package/dist/cjs/biz-components/Paginator/index.js +7 -0
  182. package/dist/cjs/biz-components/Paginator/index.js.map +7 -0
  183. package/dist/cjs/biz-components/ProductCompare/index.d.ts +54 -0
  184. package/dist/cjs/biz-components/ProductCompare/index.js +2 -0
  185. package/dist/cjs/biz-components/ProductCompare/index.js.map +7 -0
  186. package/dist/cjs/biz-components/ProductHero/ProductHero.d.ts +7 -0
  187. package/dist/cjs/biz-components/ProductHero/ProductHero.js +2 -0
  188. package/dist/cjs/biz-components/ProductHero/ProductHero.js.map +7 -0
  189. package/dist/cjs/biz-components/ProductHero/index.d.ts +2 -0
  190. package/dist/cjs/biz-components/ProductHero/index.js +2 -0
  191. package/dist/cjs/biz-components/ProductHero/index.js.map +7 -0
  192. package/dist/cjs/biz-components/ProductHero/types.d.ts +23 -0
  193. package/dist/cjs/biz-components/ProductHero/types.js +2 -0
  194. package/dist/cjs/biz-components/ProductHero/types.js.map +7 -0
  195. package/dist/cjs/biz-components/ProductNav/ProductNav.d.ts +7 -0
  196. package/dist/cjs/biz-components/ProductNav/ProductNav.js +2 -0
  197. package/dist/cjs/biz-components/ProductNav/ProductNav.js.map +7 -0
  198. package/dist/cjs/biz-components/ProductNav/index.d.ts +2 -0
  199. package/dist/cjs/biz-components/ProductNav/index.js +2 -0
  200. package/dist/cjs/biz-components/ProductNav/index.js.map +7 -0
  201. package/dist/cjs/biz-components/ProductNav/types.d.ts +35 -0
  202. package/dist/cjs/biz-components/ProductNav/types.js +2 -0
  203. package/dist/cjs/biz-components/ProductNav/types.js.map +7 -0
  204. package/dist/cjs/biz-components/SelectStore/index.d.ts +3 -2
  205. package/dist/cjs/biz-components/SelectStore/index.js +1 -1
  206. package/dist/cjs/biz-components/SelectStore/index.js.map +3 -3
  207. package/dist/cjs/biz-components/ShelfDisplay/index.d.ts +2 -2
  208. package/dist/cjs/biz-components/ShelfDisplay/index.js +1 -1
  209. package/dist/cjs/biz-components/ShelfDisplay/index.js.map +3 -3
  210. package/dist/cjs/biz-components/ShelfDisplay/shelfDisplayItem.js +4 -4
  211. package/dist/cjs/biz-components/ShelfDisplay/shelfDisplayItem.js.map +3 -3
  212. package/dist/cjs/biz-components/Slogan/index.d.ts +2 -2
  213. package/dist/cjs/biz-components/Slogan/index.js +1 -1
  214. package/dist/cjs/biz-components/Slogan/index.js.map +1 -1
  215. package/dist/cjs/biz-components/Spacer/index.d.ts +2 -2
  216. package/dist/cjs/biz-components/Spacer/index.js +1 -1
  217. package/dist/cjs/biz-components/Spacer/index.js.map +2 -2
  218. package/dist/cjs/biz-components/Specs/index.d.ts +2 -2
  219. package/dist/cjs/biz-components/SpecsComparison/SpecsComparison.d.ts +7 -0
  220. package/dist/cjs/biz-components/SpecsComparison/SpecsComparison.js +2 -0
  221. package/dist/cjs/biz-components/SpecsComparison/SpecsComparison.js.map +7 -0
  222. package/dist/cjs/biz-components/SpecsComparison/index.d.ts +2 -0
  223. package/dist/cjs/biz-components/SpecsComparison/index.js +2 -0
  224. package/dist/cjs/biz-components/SpecsComparison/index.js.map +7 -0
  225. package/dist/cjs/biz-components/SpecsComparison/types.d.ts +34 -0
  226. package/dist/cjs/biz-components/SpecsComparison/types.js +2 -0
  227. package/dist/cjs/biz-components/SpecsComparison/types.js.map +7 -0
  228. package/dist/cjs/biz-components/TabWithImage/TabWithImage.d.ts +7 -0
  229. package/dist/cjs/biz-components/TabWithImage/TabWithImage.js +2 -0
  230. package/dist/cjs/biz-components/TabWithImage/TabWithImage.js.map +7 -0
  231. package/dist/cjs/biz-components/TabWithImage/index.d.ts +2 -0
  232. package/dist/cjs/biz-components/TabWithImage/index.js +2 -0
  233. package/dist/cjs/biz-components/TabWithImage/index.js.map +7 -0
  234. package/dist/cjs/biz-components/TabWithImage/types.d.ts +29 -0
  235. package/dist/cjs/biz-components/TabWithImage/types.js +2 -0
  236. package/dist/cjs/biz-components/TabWithImage/types.js.map +7 -0
  237. package/dist/cjs/biz-components/Tabs/Tabs.d.ts +2 -2
  238. package/dist/cjs/biz-components/Tabs/Tabs.js +1 -1
  239. package/dist/cjs/biz-components/Tabs/Tabs.js.map +1 -1
  240. package/dist/cjs/biz-components/Tabs/types.d.ts +11 -0
  241. package/dist/cjs/biz-components/Tabs/types.js +1 -1
  242. package/dist/cjs/biz-components/Tabs/types.js.map +1 -1
  243. package/dist/cjs/biz-components/TabsGroup/index.d.ts +2 -2
  244. package/dist/cjs/biz-components/TabsWithMedia/TabsWithMedia.d.ts +7 -0
  245. package/dist/cjs/biz-components/TabsWithMedia/TabsWithMedia.js +2 -0
  246. package/dist/cjs/biz-components/TabsWithMedia/TabsWithMedia.js.map +7 -0
  247. package/dist/cjs/biz-components/TabsWithMedia/index.d.ts +2 -0
  248. package/dist/cjs/biz-components/TabsWithMedia/index.js +2 -0
  249. package/dist/cjs/biz-components/TabsWithMedia/index.js.map +7 -0
  250. package/dist/cjs/biz-components/TabsWithMedia/types.d.ts +43 -0
  251. package/dist/cjs/biz-components/TabsWithMedia/types.js +2 -0
  252. package/dist/cjs/biz-components/TabsWithMedia/types.js.map +7 -0
  253. package/dist/cjs/biz-components/TextMarquee/index.d.ts +10 -0
  254. package/dist/cjs/biz-components/TextMarquee/index.js +2 -0
  255. package/dist/cjs/biz-components/TextMarquee/index.js.map +7 -0
  256. package/dist/cjs/biz-components/TextModal/index.js +1 -1
  257. package/dist/cjs/biz-components/TextModal/index.js.map +3 -3
  258. package/dist/cjs/biz-components/ThreeDCarousel/ThreeDCarousel.d.ts +11 -0
  259. package/dist/cjs/biz-components/ThreeDCarousel/ThreeDCarousel.js +2 -0
  260. package/dist/cjs/biz-components/ThreeDCarousel/ThreeDCarousel.js.map +7 -0
  261. package/dist/cjs/biz-components/ThreeDCarousel/index.d.ts +2 -0
  262. package/dist/cjs/biz-components/ThreeDCarousel/index.js +2 -0
  263. package/dist/cjs/biz-components/ThreeDCarousel/index.js.map +7 -0
  264. package/dist/cjs/biz-components/ThreeDCarousel/types.d.ts +26 -0
  265. package/dist/cjs/biz-components/ThreeDCarousel/types.js +2 -0
  266. package/dist/cjs/biz-components/ThreeDCarousel/types.js.map +7 -0
  267. package/dist/cjs/biz-components/Title/index.d.ts +2 -2
  268. package/dist/cjs/biz-components/Title/index.js +1 -1
  269. package/dist/cjs/biz-components/Title/index.js.map +3 -3
  270. package/dist/cjs/biz-components/Title/types.d.ts +1 -0
  271. package/dist/cjs/biz-components/Title/types.js +1 -1
  272. package/dist/cjs/biz-components/Title/types.js.map +1 -1
  273. package/dist/cjs/biz-components/VideoFeature/VideoFeature.d.ts +7 -0
  274. package/dist/cjs/biz-components/VideoFeature/VideoFeature.js +2 -0
  275. package/dist/cjs/biz-components/VideoFeature/VideoFeature.js.map +7 -0
  276. package/dist/cjs/biz-components/VideoFeature/index.d.ts +2 -0
  277. package/dist/cjs/biz-components/VideoFeature/index.js +2 -0
  278. package/dist/cjs/biz-components/VideoFeature/index.js.map +7 -0
  279. package/dist/cjs/biz-components/VideoFeature/types.d.ts +19 -0
  280. package/dist/cjs/biz-components/VideoFeature/types.js +2 -0
  281. package/dist/cjs/biz-components/VideoFeature/types.js.map +7 -0
  282. package/dist/cjs/biz-components/VideoModal/index.js +1 -1
  283. package/dist/cjs/biz-components/VideoModal/index.js.map +2 -2
  284. package/dist/cjs/biz-components/WhyChoose/WhyChoose.d.ts +2 -2
  285. package/dist/cjs/biz-components/index.d.ts +42 -0
  286. package/dist/cjs/biz-components/index.js +1 -1
  287. package/dist/cjs/biz-components/index.js.map +3 -3
  288. package/dist/cjs/components/alert.d.ts +2 -2
  289. package/dist/cjs/components/avatar.d.ts +8 -8
  290. package/dist/cjs/components/breadcrumb.d.ts +12 -0
  291. package/dist/cjs/components/breadcrumb.js +2 -0
  292. package/dist/cjs/components/breadcrumb.js.map +7 -0
  293. package/dist/cjs/components/container.d.ts +7 -7
  294. package/dist/cjs/components/dialog.d.ts +1 -1
  295. package/dist/cjs/components/drop-down.d.ts +3 -3
  296. package/dist/cjs/components/heading.d.ts +1 -0
  297. package/dist/cjs/components/heading.js +1 -1
  298. package/dist/cjs/components/heading.js.map +3 -3
  299. package/dist/cjs/components/index.d.ts +1 -0
  300. package/dist/cjs/components/index.js +1 -1
  301. package/dist/cjs/components/index.js.map +3 -3
  302. package/dist/cjs/components/input-number.d.ts +15 -15
  303. package/dist/cjs/components/link.d.ts +6 -6
  304. package/dist/cjs/components/picture.js +1 -1
  305. package/dist/cjs/components/picture.js.map +3 -3
  306. package/dist/cjs/components/tabs.d.ts +2 -2
  307. package/dist/cjs/components/tabs.js +1 -1
  308. package/dist/cjs/components/tabs.js.map +2 -2
  309. package/dist/cjs/helpers/utils.d.ts +1 -0
  310. package/dist/cjs/helpers/utils.js +1 -1
  311. package/dist/cjs/helpers/utils.js.map +3 -3
  312. package/dist/cjs/hooks/useRollout.d.ts +2 -2
  313. package/dist/cjs/hooks/useRollout.js +1 -1
  314. package/dist/cjs/hooks/useRollout.js.map +2 -2
  315. package/dist/cjs/shared/ErrorBoundary.d.ts +18 -0
  316. package/dist/cjs/shared/ErrorBoundary.js +2 -0
  317. package/dist/cjs/shared/ErrorBoundary.js.map +7 -0
  318. package/dist/cjs/shared/Styles.d.ts +4 -4
  319. package/dist/cjs/shared/Styles.js +1 -1
  320. package/dist/cjs/shared/Styles.js.map +3 -3
  321. package/dist/cjs/stories/InlineVideo.stories.js +164 -0
  322. package/dist/cjs/stories/InlineVideo.stories.js.map +7 -0
  323. package/dist/cjs/stories/MarqueeReview.stories.js +19 -0
  324. package/dist/cjs/stories/MarqueeReview.stories.js.map +7 -0
  325. package/dist/cjs/stories/MediaSceneSwitcher.stories.js +2 -0
  326. package/dist/cjs/stories/MediaSceneSwitcher.stories.js.map +7 -0
  327. package/dist/cjs/stories/ProductNav.stories.js +2 -0
  328. package/dist/cjs/stories/ProductNav.stories.js.map +7 -0
  329. package/dist/cjs/stories/ThreeDCarousel.stories.js +118 -0
  330. package/dist/cjs/stories/ThreeDCarousel.stories.js.map +7 -0
  331. package/dist/cjs/stories/featureCards.stories.js +61 -0
  332. package/dist/cjs/stories/featureCards.stories.js.map +7 -0
  333. package/dist/cjs/stories/featureShowcase.stories.js +44 -0
  334. package/dist/cjs/stories/featureShowcase.stories.js.map +7 -0
  335. package/dist/cjs/stories/imageTextFeature.stories.js +50 -0
  336. package/dist/cjs/stories/imageTextFeature.stories.js.map +7 -0
  337. package/dist/cjs/stories/imageWithText.stories.js +84 -0
  338. package/dist/cjs/stories/imageWithText.stories.js.map +7 -0
  339. package/dist/cjs/stories/ksp.stories.js +128 -0
  340. package/dist/cjs/stories/ksp.stories.js.map +7 -0
  341. package/dist/cjs/stories/picture.stories.js +2 -2
  342. package/dist/cjs/stories/picture.stories.js.map +3 -3
  343. package/dist/cjs/stories/productCompare.stories.js +54 -0
  344. package/dist/cjs/stories/productCompare.stories.js.map +7 -0
  345. package/dist/cjs/stories/productHero.stories.js +50 -0
  346. package/dist/cjs/stories/productHero.stories.js.map +7 -0
  347. package/dist/cjs/stories/shelfDisplay.stories.js +1 -1
  348. package/dist/cjs/stories/shelfDisplay.stories.js.map +3 -3
  349. package/dist/cjs/stories/specsComparison.stories.js +105 -0
  350. package/dist/cjs/stories/specsComparison.stories.js.map +7 -0
  351. package/dist/cjs/stories/tabWithImage.stories.js +53 -0
  352. package/dist/cjs/stories/tabWithImage.stories.js.map +7 -0
  353. package/dist/cjs/stories/tabsWithMedia.stories.js +68 -0
  354. package/dist/cjs/stories/tabsWithMedia.stories.js.map +7 -0
  355. package/dist/cjs/stories/videoFeature.stories.js +56 -0
  356. package/dist/cjs/stories/videoFeature.stories.js.map +7 -0
  357. package/dist/cjs/types/props.d.ts +9 -2
  358. package/dist/cjs/types/props.js +1 -1
  359. package/dist/cjs/types/props.js.map +1 -1
  360. package/dist/esm/biz-components/AccordionCards/index.d.ts +2 -2
  361. package/dist/esm/biz-components/AiuiProvider/index.d.ts +1 -1
  362. package/dist/esm/biz-components/AiuiProvider/index.js.map +1 -1
  363. package/dist/esm/biz-components/AplusDesc/index.d.ts +3 -2
  364. package/dist/esm/biz-components/AplusDesc/index.js +1 -1
  365. package/dist/esm/biz-components/AplusDesc/index.js.map +3 -3
  366. package/dist/esm/biz-components/BrandEquity/BrandEquity.d.ts +3 -2
  367. package/dist/esm/biz-components/BrandEquity/BrandEquity.js +1 -1
  368. package/dist/esm/biz-components/BrandEquity/BrandEquity.js.map +3 -3
  369. package/dist/esm/biz-components/BrandEquity/types.d.ts +0 -1
  370. package/dist/esm/biz-components/Category/index.d.ts +2 -2
  371. package/dist/esm/biz-components/Category/index.js +1 -1
  372. package/dist/esm/biz-components/Category/index.js.map +3 -3
  373. package/dist/esm/biz-components/CollectionShelves/CollectionShelvesItem.d.ts +4 -0
  374. package/dist/esm/biz-components/CollectionShelves/CollectionShelvesItem.js +2 -0
  375. package/dist/esm/biz-components/CollectionShelves/CollectionShelvesItem.js.map +7 -0
  376. package/dist/esm/biz-components/CollectionShelves/index.d.ts +7 -0
  377. package/dist/esm/biz-components/CollectionShelves/index.js +2 -0
  378. package/dist/esm/biz-components/CollectionShelves/index.js.map +7 -0
  379. package/dist/esm/biz-components/CollectionsBanner/index.d.ts +7 -0
  380. package/dist/esm/biz-components/CollectionsBanner/index.js +2 -0
  381. package/dist/esm/biz-components/CollectionsBanner/index.js.map +7 -0
  382. package/dist/esm/biz-components/CollectionsBanner/types.d.ts +43 -0
  383. package/dist/esm/biz-components/CollectionsBanner/types.js +1 -0
  384. package/dist/esm/biz-components/CollectionsBanner/types.js.map +7 -0
  385. package/dist/esm/biz-components/CollectionsFilters/FilterCardWrap.d.ts +19 -0
  386. package/dist/esm/biz-components/CollectionsFilters/FilterCardWrap.js +2 -0
  387. package/dist/esm/biz-components/CollectionsFilters/FilterCardWrap.js.map +7 -0
  388. package/dist/esm/biz-components/CollectionsFilters/FilterCardWrapItem.d.ts +10 -0
  389. package/dist/esm/biz-components/CollectionsFilters/FilterCardWrapItem.js +2 -0
  390. package/dist/esm/biz-components/CollectionsFilters/FilterCardWrapItem.js.map +7 -0
  391. package/dist/esm/biz-components/CollectionsFilters/FilterHeader.d.ts +13 -0
  392. package/dist/esm/biz-components/CollectionsFilters/FilterHeader.js +2 -0
  393. package/dist/esm/biz-components/CollectionsFilters/FilterHeader.js.map +7 -0
  394. package/dist/esm/biz-components/CollectionsFilters/FilterList.d.ts +14 -0
  395. package/dist/esm/biz-components/CollectionsFilters/FilterList.js +2 -0
  396. package/dist/esm/biz-components/CollectionsFilters/FilterList.js.map +7 -0
  397. package/dist/esm/biz-components/CollectionsFilters/component/AnimatedUL.d.ts +5 -0
  398. package/dist/esm/biz-components/CollectionsFilters/component/AnimatedUL.js +2 -0
  399. package/dist/esm/biz-components/CollectionsFilters/component/AnimatedUL.js.map +7 -0
  400. package/dist/esm/biz-components/CollectionsFilters/component/TabFilter.d.ts +12 -0
  401. package/dist/esm/biz-components/CollectionsFilters/component/TabFilter.js +2 -0
  402. package/dist/esm/biz-components/CollectionsFilters/component/TabFilter.js.map +7 -0
  403. package/dist/esm/biz-components/CollectionsFilters/component/filtersFun.d.ts +12 -0
  404. package/dist/esm/biz-components/CollectionsFilters/component/filtersFun.js +2 -0
  405. package/dist/esm/biz-components/CollectionsFilters/component/filtersFun.js.map +7 -0
  406. package/dist/esm/biz-components/CollectionsFilters/component/helper.d.ts +81 -0
  407. package/dist/esm/biz-components/CollectionsFilters/component/helper.js +2 -0
  408. package/dist/esm/biz-components/CollectionsFilters/component/helper.js.map +7 -0
  409. package/dist/esm/biz-components/CollectionsFilters/component/price.d.ts +25 -0
  410. package/dist/esm/biz-components/CollectionsFilters/component/price.js +2 -0
  411. package/dist/esm/biz-components/CollectionsFilters/component/price.js.map +7 -0
  412. package/dist/esm/biz-components/CollectionsFilters/component/priceProps.d.ts +215 -0
  413. package/dist/esm/biz-components/CollectionsFilters/component/priceProps.js +2 -0
  414. package/dist/esm/biz-components/CollectionsFilters/component/priceProps.js.map +7 -0
  415. package/dist/esm/biz-components/CollectionsFilters/index.d.ts +24 -0
  416. package/dist/esm/biz-components/CollectionsFilters/index.js +2 -0
  417. package/dist/esm/biz-components/CollectionsFilters/index.js.map +7 -0
  418. package/dist/esm/biz-components/CreativeModule/index.d.ts +3 -2
  419. package/dist/esm/biz-components/DownLoad/index.d.ts +3 -2
  420. package/dist/esm/biz-components/Evaluate/index.d.ts +2 -2
  421. package/dist/esm/biz-components/Faq/Faq.d.ts +2 -2
  422. package/dist/esm/biz-components/FeatureCards/FeatureCards.d.ts +7 -0
  423. package/dist/esm/biz-components/FeatureCards/FeatureCards.js +2 -0
  424. package/dist/esm/biz-components/FeatureCards/FeatureCards.js.map +7 -0
  425. package/dist/esm/biz-components/FeatureCards/index.d.ts +2 -0
  426. package/dist/esm/biz-components/FeatureCards/index.js +2 -0
  427. package/dist/esm/biz-components/FeatureCards/index.js.map +7 -0
  428. package/dist/esm/biz-components/FeatureCards/types.d.ts +27 -0
  429. package/dist/esm/biz-components/FeatureCards/types.js +1 -0
  430. package/dist/esm/biz-components/FeatureCards/types.js.map +7 -0
  431. package/dist/esm/biz-components/FeatureShowcase/FeatureShowcase.d.ts +7 -0
  432. package/dist/esm/biz-components/FeatureShowcase/FeatureShowcase.js +2 -0
  433. package/dist/esm/biz-components/FeatureShowcase/FeatureShowcase.js.map +7 -0
  434. package/dist/esm/biz-components/FeatureShowcase/index.d.ts +2 -0
  435. package/dist/esm/biz-components/FeatureShowcase/index.js +2 -0
  436. package/dist/esm/biz-components/FeatureShowcase/index.js.map +7 -0
  437. package/dist/esm/biz-components/FeatureShowcase/types.d.ts +23 -0
  438. package/dist/esm/biz-components/FeatureShowcase/types.js +1 -0
  439. package/dist/esm/biz-components/FeatureShowcase/types.js.map +7 -0
  440. package/dist/esm/biz-components/Features/index.d.ts +3 -2
  441. package/dist/esm/biz-components/Features/index.js +1 -1
  442. package/dist/esm/biz-components/Features/index.js.map +3 -3
  443. package/dist/esm/biz-components/FootCharger/index.d.ts +3 -2
  444. package/dist/esm/biz-components/FooterNavigation/index.d.ts +3 -2
  445. package/dist/esm/biz-components/GiftBox/index.d.ts +3 -2
  446. package/dist/esm/biz-components/GiftBox/index.js +1 -1
  447. package/dist/esm/biz-components/GiftBox/index.js.map +3 -3
  448. package/dist/esm/biz-components/Graphic/index.d.ts +2 -2
  449. package/dist/esm/biz-components/GraphicAttractionBlock/index.d.ts +2 -2
  450. package/dist/esm/biz-components/GraphicMore/index.d.ts +3 -2
  451. package/dist/esm/biz-components/GraphicOverlay/GraphicOverlay.d.ts +2 -2
  452. package/dist/esm/biz-components/HeaderNavigation/index.d.ts +2 -5
  453. package/dist/esm/biz-components/HeaderNavigation/index.js +1 -1
  454. package/dist/esm/biz-components/HeaderNavigation/index.js.map +3 -3
  455. package/dist/esm/biz-components/HeroBanner/HeroBanner.d.ts +2 -2
  456. package/dist/esm/biz-components/HeroBanner/HeroBanner.js +1 -1
  457. package/dist/esm/biz-components/HeroBanner/HeroBanner.js.map +3 -3
  458. package/dist/esm/biz-components/HeroBanner/types.d.ts +2 -0
  459. package/dist/esm/biz-components/ImageTextFeature/ImageTextFeature.d.ts +7 -0
  460. package/dist/esm/biz-components/ImageTextFeature/ImageTextFeature.js +2 -0
  461. package/dist/esm/biz-components/ImageTextFeature/ImageTextFeature.js.map +7 -0
  462. package/dist/esm/biz-components/ImageTextFeature/index.d.ts +2 -0
  463. package/dist/esm/biz-components/ImageTextFeature/index.js +2 -0
  464. package/dist/esm/biz-components/ImageTextFeature/index.js.map +7 -0
  465. package/dist/esm/biz-components/ImageTextFeature/types.d.ts +31 -0
  466. package/dist/esm/biz-components/ImageTextFeature/types.js +1 -0
  467. package/dist/esm/biz-components/ImageTextFeature/types.js.map +7 -0
  468. package/dist/esm/biz-components/ImageWithText/ImageWithText.d.ts +7 -0
  469. package/dist/esm/biz-components/ImageWithText/ImageWithText.js +2 -0
  470. package/dist/esm/biz-components/ImageWithText/ImageWithText.js.map +7 -0
  471. package/dist/esm/biz-components/ImageWithText/index.d.ts +3 -0
  472. package/dist/esm/biz-components/ImageWithText/index.js +2 -0
  473. package/dist/esm/biz-components/ImageWithText/index.js.map +7 -0
  474. package/dist/esm/biz-components/ImageWithText/types.d.ts +108 -0
  475. package/dist/esm/biz-components/ImageWithText/types.js +2 -0
  476. package/dist/esm/biz-components/ImageWithText/types.js.map +7 -0
  477. package/dist/esm/biz-components/InlineVideo/index.d.ts +16 -0
  478. package/dist/esm/biz-components/InlineVideo/index.js +2 -0
  479. package/dist/esm/biz-components/InlineVideo/index.js.map +7 -0
  480. package/dist/esm/biz-components/Ksp/index.d.ts +44 -0
  481. package/dist/esm/biz-components/Ksp/index.js +2 -0
  482. package/dist/esm/biz-components/Ksp/index.js.map +7 -0
  483. package/dist/esm/biz-components/Listing/BizProductProvider.d.ts +1 -1
  484. package/dist/esm/biz-components/Listing/components/PaidShipping/ShippingPolicyModal.js +1 -1
  485. package/dist/esm/biz-components/Listing/components/PaidShipping/ShippingPolicyModal.js.map +3 -3
  486. package/dist/esm/biz-components/Listing/components/PaidShipping/index.d.ts +19 -6
  487. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/BenefitsTab.d.ts +2 -2
  488. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/BenefitsTab.js +4 -4
  489. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/BenefitsTab.js.map +2 -2
  490. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductBundle/index.d.ts +3 -2
  491. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductExchangePurchase/index.d.ts +3 -2
  492. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductFreeGift/index.d.ts +3 -2
  493. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductHighlight/index.d.ts +3 -2
  494. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductHighlight/index.js +2 -2
  495. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductHighlight/index.js.map +2 -2
  496. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductOptions/index.d.ts +3 -2
  497. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/index.d.ts +3 -2
  498. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/index.js +1 -1
  499. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/index.js.map +2 -2
  500. package/dist/esm/biz-components/Listing/components/ProductCard/ProductSummary/index.d.ts +3 -2
  501. package/dist/esm/biz-components/Listing/components/PurchaseBar/ScrollSpyNav/index.js +1 -1
  502. package/dist/esm/biz-components/Listing/components/PurchaseBar/ScrollSpyNav/index.js.map +3 -3
  503. package/dist/esm/biz-components/Listing/components/PurchaseBar/ScrollSpyNav/types.d.ts +1 -0
  504. package/dist/esm/biz-components/Listing/components/PurchaseBar/ScrollSpyNav/useScrollSpy.js +1 -1
  505. package/dist/esm/biz-components/Listing/components/PurchaseBar/ScrollSpyNav/useScrollSpy.js.map +2 -2
  506. package/dist/esm/biz-components/Listing/components/PurchaseBar/index.d.ts +3 -2
  507. package/dist/esm/biz-components/Marquee/Marquee.d.ts +2 -2
  508. package/dist/esm/biz-components/MarqueeReview/index.d.ts +42 -0
  509. package/dist/esm/biz-components/MarqueeReview/index.js +2 -0
  510. package/dist/esm/biz-components/MarqueeReview/index.js.map +7 -0
  511. package/dist/esm/biz-components/MediaPlayerBase/index.backup.d.ts +7 -0
  512. package/dist/esm/biz-components/MediaPlayerBase/index.backup.js +2 -0
  513. package/dist/esm/biz-components/MediaPlayerBase/index.backup.js.map +7 -0
  514. package/dist/esm/biz-components/MediaPlayerBase/index.d.ts +3 -2
  515. package/dist/esm/biz-components/MediaPlayerBase/index.js +1 -1
  516. package/dist/esm/biz-components/MediaPlayerBase/index.js.map +2 -2
  517. package/dist/esm/biz-components/MediaPlayerMulti/index.d.ts +3 -2
  518. package/dist/esm/biz-components/MediaPlayerSticky/index.d.ts +2 -2
  519. package/dist/esm/biz-components/MediaPlayerSticky/index.js +1 -1
  520. package/dist/esm/biz-components/MediaPlayerSticky/index.js.map +3 -3
  521. package/dist/esm/biz-components/MediaSceneSwitcher/MediaSceneSwitcher.d.ts +8 -0
  522. package/dist/esm/biz-components/MediaSceneSwitcher/MediaSceneSwitcher.js +11 -0
  523. package/dist/esm/biz-components/MediaSceneSwitcher/MediaSceneSwitcher.js.map +7 -0
  524. package/dist/esm/biz-components/MediaSceneSwitcher/index.d.ts +2 -0
  525. package/dist/esm/biz-components/MediaSceneSwitcher/index.js +2 -0
  526. package/dist/esm/biz-components/MediaSceneSwitcher/index.js.map +7 -0
  527. package/dist/esm/biz-components/MediaSceneSwitcher/types.d.ts +21 -0
  528. package/dist/esm/biz-components/MediaSceneSwitcher/types.js +1 -0
  529. package/dist/esm/biz-components/MediaSceneSwitcher/types.js.map +7 -0
  530. package/dist/esm/biz-components/MemberEquity/index.d.ts +2 -2
  531. package/dist/esm/biz-components/MultiLayoutGraphicBlock/MultiLayoutGraphicBlock.d.ts +2 -2
  532. package/dist/esm/biz-components/NavigationSearch/index.d.ts +1 -0
  533. package/dist/esm/biz-components/NavigationSearch/index.js +2 -2
  534. package/dist/esm/biz-components/NavigationSearch/index.js.map +2 -2
  535. package/dist/esm/biz-components/Paginator/index.d.ts +7 -0
  536. package/dist/esm/biz-components/Paginator/index.js +7 -0
  537. package/dist/esm/biz-components/Paginator/index.js.map +7 -0
  538. package/dist/esm/biz-components/ProductCompare/index.d.ts +54 -0
  539. package/dist/esm/biz-components/ProductCompare/index.js +2 -0
  540. package/dist/esm/biz-components/ProductCompare/index.js.map +7 -0
  541. package/dist/esm/biz-components/ProductHero/ProductHero.d.ts +7 -0
  542. package/dist/esm/biz-components/ProductHero/ProductHero.js +2 -0
  543. package/dist/esm/biz-components/ProductHero/ProductHero.js.map +7 -0
  544. package/dist/esm/biz-components/ProductHero/index.d.ts +2 -0
  545. package/dist/esm/biz-components/ProductHero/index.js +2 -0
  546. package/dist/esm/biz-components/ProductHero/index.js.map +7 -0
  547. package/dist/esm/biz-components/ProductHero/types.d.ts +23 -0
  548. package/dist/esm/biz-components/ProductHero/types.js +1 -0
  549. package/dist/esm/biz-components/ProductHero/types.js.map +7 -0
  550. package/dist/esm/biz-components/ProductNav/ProductNav.d.ts +7 -0
  551. package/dist/esm/biz-components/ProductNav/ProductNav.js +2 -0
  552. package/dist/esm/biz-components/ProductNav/ProductNav.js.map +7 -0
  553. package/dist/esm/biz-components/ProductNav/index.d.ts +2 -0
  554. package/dist/esm/biz-components/ProductNav/index.js +2 -0
  555. package/dist/esm/biz-components/ProductNav/index.js.map +7 -0
  556. package/dist/esm/biz-components/ProductNav/types.d.ts +35 -0
  557. package/dist/esm/biz-components/ProductNav/types.js +1 -0
  558. package/dist/esm/biz-components/ProductNav/types.js.map +7 -0
  559. package/dist/esm/biz-components/SelectStore/index.d.ts +3 -2
  560. package/dist/esm/biz-components/SelectStore/index.js +1 -1
  561. package/dist/esm/biz-components/SelectStore/index.js.map +3 -3
  562. package/dist/esm/biz-components/ShelfDisplay/index.d.ts +2 -2
  563. package/dist/esm/biz-components/ShelfDisplay/index.js +1 -1
  564. package/dist/esm/biz-components/ShelfDisplay/index.js.map +3 -3
  565. package/dist/esm/biz-components/ShelfDisplay/shelfDisplayItem.js +5 -5
  566. package/dist/esm/biz-components/ShelfDisplay/shelfDisplayItem.js.map +3 -3
  567. package/dist/esm/biz-components/Slogan/index.d.ts +2 -2
  568. package/dist/esm/biz-components/Slogan/index.js +1 -1
  569. package/dist/esm/biz-components/Slogan/index.js.map +1 -1
  570. package/dist/esm/biz-components/Spacer/index.d.ts +2 -2
  571. package/dist/esm/biz-components/Spacer/index.js +1 -1
  572. package/dist/esm/biz-components/Spacer/index.js.map +2 -2
  573. package/dist/esm/biz-components/Specs/index.d.ts +2 -2
  574. package/dist/esm/biz-components/SpecsComparison/SpecsComparison.d.ts +7 -0
  575. package/dist/esm/biz-components/SpecsComparison/SpecsComparison.js +2 -0
  576. package/dist/esm/biz-components/SpecsComparison/SpecsComparison.js.map +7 -0
  577. package/dist/esm/biz-components/SpecsComparison/index.d.ts +2 -0
  578. package/dist/esm/biz-components/SpecsComparison/index.js +2 -0
  579. package/dist/esm/biz-components/SpecsComparison/index.js.map +7 -0
  580. package/dist/esm/biz-components/SpecsComparison/types.d.ts +34 -0
  581. package/dist/esm/biz-components/SpecsComparison/types.js +1 -0
  582. package/dist/esm/biz-components/SpecsComparison/types.js.map +7 -0
  583. package/dist/esm/biz-components/TabWithImage/TabWithImage.d.ts +7 -0
  584. package/dist/esm/biz-components/TabWithImage/TabWithImage.js +2 -0
  585. package/dist/esm/biz-components/TabWithImage/TabWithImage.js.map +7 -0
  586. package/dist/esm/biz-components/TabWithImage/index.d.ts +2 -0
  587. package/dist/esm/biz-components/TabWithImage/index.js +2 -0
  588. package/dist/esm/biz-components/TabWithImage/index.js.map +7 -0
  589. package/dist/esm/biz-components/TabWithImage/types.d.ts +29 -0
  590. package/dist/esm/biz-components/TabWithImage/types.js +1 -0
  591. package/dist/esm/biz-components/TabWithImage/types.js.map +7 -0
  592. package/dist/esm/biz-components/Tabs/Tabs.d.ts +2 -2
  593. package/dist/esm/biz-components/Tabs/Tabs.js +1 -1
  594. package/dist/esm/biz-components/Tabs/Tabs.js.map +1 -1
  595. package/dist/esm/biz-components/Tabs/types.d.ts +11 -0
  596. package/dist/esm/biz-components/TabsGroup/index.d.ts +2 -2
  597. package/dist/esm/biz-components/TabsWithMedia/TabsWithMedia.d.ts +7 -0
  598. package/dist/esm/biz-components/TabsWithMedia/TabsWithMedia.js +2 -0
  599. package/dist/esm/biz-components/TabsWithMedia/TabsWithMedia.js.map +7 -0
  600. package/dist/esm/biz-components/TabsWithMedia/index.d.ts +2 -0
  601. package/dist/esm/biz-components/TabsWithMedia/index.js +2 -0
  602. package/dist/esm/biz-components/TabsWithMedia/index.js.map +7 -0
  603. package/dist/esm/biz-components/TabsWithMedia/types.d.ts +43 -0
  604. package/dist/esm/biz-components/TabsWithMedia/types.js +1 -0
  605. package/dist/esm/biz-components/TabsWithMedia/types.js.map +7 -0
  606. package/dist/esm/biz-components/TextMarquee/index.d.ts +10 -0
  607. package/dist/esm/biz-components/TextMarquee/index.js +2 -0
  608. package/dist/esm/biz-components/TextMarquee/index.js.map +7 -0
  609. package/dist/esm/biz-components/TextModal/index.js +1 -1
  610. package/dist/esm/biz-components/TextModal/index.js.map +2 -2
  611. package/dist/esm/biz-components/ThreeDCarousel/ThreeDCarousel.d.ts +11 -0
  612. package/dist/esm/biz-components/ThreeDCarousel/ThreeDCarousel.js +2 -0
  613. package/dist/esm/biz-components/ThreeDCarousel/ThreeDCarousel.js.map +7 -0
  614. package/dist/esm/biz-components/ThreeDCarousel/index.d.ts +2 -0
  615. package/dist/esm/biz-components/ThreeDCarousel/index.js +2 -0
  616. package/dist/esm/biz-components/ThreeDCarousel/index.js.map +7 -0
  617. package/dist/esm/biz-components/ThreeDCarousel/types.d.ts +26 -0
  618. package/dist/esm/biz-components/ThreeDCarousel/types.js +1 -0
  619. package/dist/esm/biz-components/ThreeDCarousel/types.js.map +7 -0
  620. package/dist/esm/biz-components/Title/index.d.ts +2 -2
  621. package/dist/esm/biz-components/Title/index.js +1 -1
  622. package/dist/esm/biz-components/Title/index.js.map +3 -3
  623. package/dist/esm/biz-components/Title/types.d.ts +1 -0
  624. package/dist/esm/biz-components/VideoFeature/VideoFeature.d.ts +7 -0
  625. package/dist/esm/biz-components/VideoFeature/VideoFeature.js +2 -0
  626. package/dist/esm/biz-components/VideoFeature/VideoFeature.js.map +7 -0
  627. package/dist/esm/biz-components/VideoFeature/index.d.ts +2 -0
  628. package/dist/esm/biz-components/VideoFeature/index.js +2 -0
  629. package/dist/esm/biz-components/VideoFeature/index.js.map +7 -0
  630. package/dist/esm/biz-components/VideoFeature/types.d.ts +19 -0
  631. package/dist/esm/biz-components/VideoFeature/types.js +1 -0
  632. package/dist/esm/biz-components/VideoFeature/types.js.map +7 -0
  633. package/dist/esm/biz-components/VideoModal/index.js +1 -1
  634. package/dist/esm/biz-components/VideoModal/index.js.map +2 -2
  635. package/dist/esm/biz-components/WhyChoose/WhyChoose.d.ts +2 -2
  636. package/dist/esm/biz-components/index.d.ts +42 -0
  637. package/dist/esm/biz-components/index.js +1 -1
  638. package/dist/esm/biz-components/index.js.map +2 -2
  639. package/dist/esm/components/alert.d.ts +2 -2
  640. package/dist/esm/components/avatar.d.ts +8 -8
  641. package/dist/esm/components/breadcrumb.d.ts +12 -0
  642. package/dist/esm/components/breadcrumb.js +2 -0
  643. package/dist/esm/components/breadcrumb.js.map +7 -0
  644. package/dist/esm/components/container.d.ts +7 -7
  645. package/dist/esm/components/dialog.d.ts +1 -1
  646. package/dist/esm/components/drop-down.d.ts +3 -3
  647. package/dist/esm/components/heading.d.ts +1 -0
  648. package/dist/esm/components/heading.js +1 -1
  649. package/dist/esm/components/heading.js.map +3 -3
  650. package/dist/esm/components/index.d.ts +1 -0
  651. package/dist/esm/components/index.js +1 -1
  652. package/dist/esm/components/index.js.map +2 -2
  653. package/dist/esm/components/input-number.d.ts +15 -15
  654. package/dist/esm/components/link.d.ts +6 -6
  655. package/dist/esm/components/picture.js +1 -1
  656. package/dist/esm/components/picture.js.map +3 -3
  657. package/dist/esm/components/tabs.d.ts +2 -2
  658. package/dist/esm/components/tabs.js +1 -1
  659. package/dist/esm/components/tabs.js.map +2 -2
  660. package/dist/esm/helpers/utils.d.ts +1 -0
  661. package/dist/esm/helpers/utils.js +1 -1
  662. package/dist/esm/helpers/utils.js.map +3 -3
  663. package/dist/esm/hooks/useRollout.d.ts +2 -2
  664. package/dist/esm/hooks/useRollout.js +1 -1
  665. package/dist/esm/hooks/useRollout.js.map +3 -3
  666. package/dist/esm/shared/ErrorBoundary.d.ts +18 -0
  667. package/dist/esm/shared/ErrorBoundary.js +2 -0
  668. package/dist/esm/shared/ErrorBoundary.js.map +7 -0
  669. package/dist/esm/shared/Styles.d.ts +4 -4
  670. package/dist/esm/shared/Styles.js +1 -1
  671. package/dist/esm/shared/Styles.js.map +3 -3
  672. package/dist/esm/stories/InlineVideo.stories.js +164 -0
  673. package/dist/esm/stories/InlineVideo.stories.js.map +7 -0
  674. package/dist/esm/stories/MarqueeReview.stories.js +19 -0
  675. package/dist/esm/stories/MarqueeReview.stories.js.map +7 -0
  676. package/dist/esm/stories/MediaSceneSwitcher.stories.js +2 -0
  677. package/dist/esm/stories/MediaSceneSwitcher.stories.js.map +7 -0
  678. package/dist/esm/stories/ProductNav.stories.js +2 -0
  679. package/dist/esm/stories/ProductNav.stories.js.map +7 -0
  680. package/dist/esm/stories/ThreeDCarousel.stories.js +118 -0
  681. package/dist/esm/stories/ThreeDCarousel.stories.js.map +7 -0
  682. package/dist/esm/stories/featureCards.stories.js +61 -0
  683. package/dist/esm/stories/featureCards.stories.js.map +7 -0
  684. package/dist/esm/stories/featureShowcase.stories.js +44 -0
  685. package/dist/esm/stories/featureShowcase.stories.js.map +7 -0
  686. package/dist/esm/stories/imageTextFeature.stories.js +50 -0
  687. package/dist/esm/stories/imageTextFeature.stories.js.map +7 -0
  688. package/dist/esm/stories/imageWithText.stories.js +84 -0
  689. package/dist/esm/stories/imageWithText.stories.js.map +7 -0
  690. package/dist/esm/stories/ksp.stories.js +128 -0
  691. package/dist/esm/stories/ksp.stories.js.map +7 -0
  692. package/dist/esm/stories/picture.stories.js +2 -2
  693. package/dist/esm/stories/picture.stories.js.map +3 -3
  694. package/dist/esm/stories/productCompare.stories.js +54 -0
  695. package/dist/esm/stories/productCompare.stories.js.map +7 -0
  696. package/dist/esm/stories/productHero.stories.js +50 -0
  697. package/dist/esm/stories/productHero.stories.js.map +7 -0
  698. package/dist/esm/stories/shelfDisplay.stories.js +1 -1
  699. package/dist/esm/stories/shelfDisplay.stories.js.map +2 -2
  700. package/dist/esm/stories/specsComparison.stories.js +105 -0
  701. package/dist/esm/stories/specsComparison.stories.js.map +7 -0
  702. package/dist/esm/stories/tabWithImage.stories.js +53 -0
  703. package/dist/esm/stories/tabWithImage.stories.js.map +7 -0
  704. package/dist/esm/stories/tabsWithMedia.stories.js +68 -0
  705. package/dist/esm/stories/tabsWithMedia.stories.js.map +7 -0
  706. package/dist/esm/stories/videoFeature.stories.js +56 -0
  707. package/dist/esm/stories/videoFeature.stories.js.map +7 -0
  708. package/dist/esm/types/props.d.ts +9 -2
  709. package/package.json +20 -17
  710. package/style.css +29 -0
  711. package/tailwind.config.js +24 -0
  712. package/dist/cjs/stories/HeroBanner.stories.d.ts +0 -28
  713. package/dist/cjs/stories/MemberEquity.stories.d.ts +0 -9
  714. package/dist/cjs/stories/MultiLayoutGraphicBlock.stories.d.ts +0 -9
  715. package/dist/cjs/stories/accordionCards.stories.d.ts +0 -17
  716. package/dist/cjs/stories/alert.stories.d.ts +0 -27
  717. package/dist/cjs/stories/avatar.stories.d.ts +0 -39
  718. package/dist/cjs/stories/badge.stories.d.ts +0 -31
  719. package/dist/cjs/stories/bizTabs.stories.d.ts +0 -7
  720. package/dist/cjs/stories/board.stories.d.ts +0 -6
  721. package/dist/cjs/stories/brandEquity.stories.d.ts +0 -16
  722. package/dist/cjs/stories/button.stories.d.ts +0 -56
  723. package/dist/cjs/stories/card.stories.d.ts +0 -27
  724. package/dist/cjs/stories/carousel.stories.d.ts +0 -8
  725. package/dist/cjs/stories/category.stories.d.ts +0 -17
  726. package/dist/cjs/stories/checkbox.stories.d.ts +0 -46
  727. package/dist/cjs/stories/container.stories.d.ts +0 -28
  728. package/dist/cjs/stories/cpnBanner.stories.d.ts +0 -14
  729. package/dist/cjs/stories/cpnCountdown.stories.d.ts +0 -12
  730. package/dist/cjs/stories/cpnNavigation.stories.d.ts +0 -14
  731. package/dist/cjs/stories/cpnProductcard.stories.d.ts +0 -14
  732. package/dist/cjs/stories/cpnTitle.stories.d.ts +0 -14
  733. package/dist/cjs/stories/creativeModule.stories.d.ts +0 -19
  734. package/dist/cjs/stories/dialog.stories.d.ts +0 -20
  735. package/dist/cjs/stories/drawer.stories.d.ts +0 -20
  736. package/dist/cjs/stories/drop-down.stories.d.ts +0 -16
  737. package/dist/cjs/stories/evaluate.stories.d.ts +0 -16
  738. package/dist/cjs/stories/faq.stories.d.ts +0 -21
  739. package/dist/cjs/stories/graphic.stories.d.ts +0 -64
  740. package/dist/cjs/stories/graphicAttractionBlock.stories.d.ts +0 -6
  741. package/dist/cjs/stories/grid.stories.d.ts +0 -22
  742. package/dist/cjs/stories/heading.stories.d.ts +0 -84
  743. package/dist/cjs/stories/input-number.stories.d.ts +0 -39
  744. package/dist/cjs/stories/input.stories.d.ts +0 -35
  745. package/dist/cjs/stories/link.stories.d.ts +0 -69
  746. package/dist/cjs/stories/marquee.stories.d.ts +0 -30
  747. package/dist/cjs/stories/mediaplayerBase.stories.d.ts +0 -6
  748. package/dist/cjs/stories/mediaplayerMulti.stories.d.ts +0 -16
  749. package/dist/cjs/stories/picture.stories.d.ts +0 -23
  750. package/dist/cjs/stories/popover.stories.d.ts +0 -17
  751. package/dist/cjs/stories/radio.stories.d.ts +0 -39
  752. package/dist/cjs/stories/shelfDisplay.stories.d.ts +0 -16
  753. package/dist/cjs/stories/skeleton.stories.d.ts +0 -20
  754. package/dist/cjs/stories/slogan.stories.d.ts +0 -20
  755. package/dist/cjs/stories/specs.stories.d.ts +0 -13
  756. package/dist/cjs/stories/tabs.stories.d.ts +0 -373
  757. package/dist/cjs/stories/text.stories.d.ts +0 -86
  758. package/dist/cjs/stories/whychoose.stories.d.ts +0 -21
  759. package/dist/esm/stories/HeroBanner.stories.d.ts +0 -28
  760. package/dist/esm/stories/MemberEquity.stories.d.ts +0 -9
  761. package/dist/esm/stories/MultiLayoutGraphicBlock.stories.d.ts +0 -9
  762. package/dist/esm/stories/accordionCards.stories.d.ts +0 -17
  763. package/dist/esm/stories/alert.stories.d.ts +0 -27
  764. package/dist/esm/stories/avatar.stories.d.ts +0 -39
  765. package/dist/esm/stories/badge.stories.d.ts +0 -31
  766. package/dist/esm/stories/bizTabs.stories.d.ts +0 -7
  767. package/dist/esm/stories/board.stories.d.ts +0 -6
  768. package/dist/esm/stories/brandEquity.stories.d.ts +0 -16
  769. package/dist/esm/stories/button.stories.d.ts +0 -56
  770. package/dist/esm/stories/card.stories.d.ts +0 -27
  771. package/dist/esm/stories/carousel.stories.d.ts +0 -8
  772. package/dist/esm/stories/category.stories.d.ts +0 -17
  773. package/dist/esm/stories/checkbox.stories.d.ts +0 -46
  774. package/dist/esm/stories/container.stories.d.ts +0 -28
  775. package/dist/esm/stories/cpnBanner.stories.d.ts +0 -14
  776. package/dist/esm/stories/cpnCountdown.stories.d.ts +0 -12
  777. package/dist/esm/stories/cpnNavigation.stories.d.ts +0 -14
  778. package/dist/esm/stories/cpnProductcard.stories.d.ts +0 -14
  779. package/dist/esm/stories/cpnTitle.stories.d.ts +0 -14
  780. package/dist/esm/stories/creativeModule.stories.d.ts +0 -19
  781. package/dist/esm/stories/dialog.stories.d.ts +0 -20
  782. package/dist/esm/stories/drawer.stories.d.ts +0 -20
  783. package/dist/esm/stories/drop-down.stories.d.ts +0 -16
  784. package/dist/esm/stories/evaluate.stories.d.ts +0 -16
  785. package/dist/esm/stories/faq.stories.d.ts +0 -21
  786. package/dist/esm/stories/graphic.stories.d.ts +0 -64
  787. package/dist/esm/stories/graphicAttractionBlock.stories.d.ts +0 -6
  788. package/dist/esm/stories/grid.stories.d.ts +0 -22
  789. package/dist/esm/stories/heading.stories.d.ts +0 -84
  790. package/dist/esm/stories/input-number.stories.d.ts +0 -39
  791. package/dist/esm/stories/input.stories.d.ts +0 -35
  792. package/dist/esm/stories/link.stories.d.ts +0 -69
  793. package/dist/esm/stories/marquee.stories.d.ts +0 -30
  794. package/dist/esm/stories/mediaplayerBase.stories.d.ts +0 -6
  795. package/dist/esm/stories/mediaplayerMulti.stories.d.ts +0 -16
  796. package/dist/esm/stories/picture.stories.d.ts +0 -23
  797. package/dist/esm/stories/popover.stories.d.ts +0 -17
  798. package/dist/esm/stories/radio.stories.d.ts +0 -39
  799. package/dist/esm/stories/shelfDisplay.stories.d.ts +0 -16
  800. package/dist/esm/stories/skeleton.stories.d.ts +0 -20
  801. package/dist/esm/stories/slogan.stories.d.ts +0 -20
  802. package/dist/esm/stories/specs.stories.d.ts +0 -13
  803. package/dist/esm/stories/tabs.stories.d.ts +0 -373
  804. package/dist/esm/stories/text.stories.d.ts +0 -86
  805. package/dist/esm/stories/whychoose.stories.d.ts +0 -21
@@ -1,2 +1,2 @@
1
- "use strict";"use client";var r=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var d=Object.getOwnPropertyNames;var g=Object.prototype.hasOwnProperty;var x=(p,l)=>{for(var o in l)r(p,o,{get:l[o],enumerable:!0})},n=(p,l,o,a)=>{if(l&&typeof l=="object"||typeof l=="function")for(let e of d(l))!g.call(p,e)&&e!==o&&r(p,e,{get:()=>l[e],enumerable:!(a=m(l,e))||a.enumerable});return p};var b=p=>n(r({},"__esModule",{value:!0}),p);var u={};x(u,{default:()=>f});module.exports=b(u);var t=require("react/jsx-runtime"),S=require("../../helpers/utils.js"),N=require("../SwiperBox/index.js"),c=require("../../shared/Styles.js"),s=require("../../components/index.js");const v=p=>{const{data:l,className:o}=p,{list:a}=l;return(0,t.jsx)(t.Fragment,{children:(0,t.jsx)("div",{className:"",children:(0,t.jsx)("div",{className:"laptop:grid-cols-3 tablet:grid-cols-2 grid grid-cols-1 gap-4",children:a.map((e,i)=>(0,t.jsxs)("div",{className:"lg-desktop:aspect-[543/320] laptop:aspect-[440/280] tablet:aspect-[346/240] select-store-wrapper rounded-box relative flex aspect-[358/240] flex-col overflow-hidden bg-[#EAEAEC]",children:[(0,t.jsx)(s.Picture,{className:"object-cover",imgClassName:"w-full object-cover",source:`${e?.img?.url}, ${e?.padImg?.url} 1439, ${e?.miniImg?.url} 1023, ${e?.mobileImg?.url} 767`}),(0,t.jsxs)("div",{className:"laptop:px-6 laptop:pb-4 lg-desktop:px-8 lg-desktop:pb-8 px-4 pb-4",children:[(0,t.jsx)(s.Text,{html:e?.title,className:"lg-desktop:text-[24px] text-[20px] leading-[1.2] text-[#080A0F] [&_*_strong]:!font-bold"}),(0,t.jsx)(s.Text,{html:e?.desc,className:"lg-desktop:text-[16px] line-clamp-1 text-[14px] leading-[1.4] text-[#080A0F]"})]})]},i))})})})};var f=(0,c.withLayout)(v);
1
+ "use strict";"use client";var a=Object.defineProperty;var d=Object.getOwnPropertyDescriptor;var g=Object.getOwnPropertyNames;var x=Object.prototype.hasOwnProperty;var f=(o,e)=>{for(var p in e)a(o,p,{get:e[p],enumerable:!0})},u=(o,e,p,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let l of g(e))!x.call(o,l)&&l!==p&&a(o,l,{get:()=>e[l],enumerable:!(r=d(e,l))||r.enumerable});return o};var b=o=>u(a({},"__esModule",{value:!0}),o);var T={};f(T,{default:()=>N});module.exports=b(T);var t=require("react/jsx-runtime"),w=require("../../helpers/utils.js"),E=require("../SwiperBox/index.js"),c=require("../../shared/Styles.js"),s=require("../../components/index.js"),i=require("../../hooks/useExposure.js"),n=require("react");const v="image",y="select_store",S=({index:o,item:e})=>{const p=(0,n.useRef)(null);return(0,i.useExposure)(p,{componentType:v,componentName:y,position:o+1,componentTitle:e.title,componentDescription:e.desc}),(0,t.jsxs)("div",{ref:p,className:"lg-desktop:aspect-[543/320] laptop:aspect-[440/280] tablet:aspect-[346/240] select-store-wrapper rounded-box relative flex aspect-[358/240] flex-col overflow-hidden bg-[#EAEAEC]",children:[(0,t.jsx)(s.Picture,{className:"object-cover",imgClassName:"w-full object-cover",source:`${e?.img?.url}, ${e?.padImg?.url} 1439, ${e?.miniImg?.url} 1023, ${e?.mobileImg?.url} 767`}),(0,t.jsxs)("div",{className:"laptop:px-6 laptop:pb-6 lg-desktop:px-8 lg-desktop:pb-8 px-4 pb-4",children:[(0,t.jsx)(s.Text,{html:e?.title,className:"lg-desktop:text-[24px] text-[20px] leading-[1.2] text-[#1d1d1f] [&_*_strong]:!font-bold"}),(0,t.jsx)(s.Text,{html:e?.desc,className:"lg-desktop:text-[16px] line-clamp-1 text-[14px] leading-[1.4] text-[#1d1d1f]"})]})]})},I=o=>{const{data:e,className:p}=o,{list:r}=e;return(0,t.jsx)(t.Fragment,{children:(0,t.jsx)("div",{className:"",children:(0,t.jsx)("div",{className:"laptop:grid-cols-3 tablet:grid-cols-2 grid grid-cols-1 gap-4",children:r.map((l,m)=>(0,t.jsx)(S,{index:m,item:l},m))})})})};var N=(0,c.withLayout)(I);
2
2
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/biz-components/SelectStore/index.tsx"],
4
- "sourcesContent": ["'use client'\nimport { cn } from '../../helpers/utils.js'\nimport SwiperBox from '../SwiperBox/index.js'\nimport type { Img } from '../../types/props.js'\nimport { withLayout } from '../../shared/Styles.js'\nimport { Picture, Text } from '../../components/index.js'\n\nexport type SelectStoreDataType = {\n title: string\n desc: string\n img: Img\n mobileImg: Img\n padImg: Img\n miniImg: Img\n // pay: {\n // img: Img\n // }[]\n // delivery: {\n // img: Img\n // }[]\n // service: {\n // title: string\n // img: Img\n // }[]\n}\n\ntype SelectStoreType = {\n data: {\n list: SelectStoreDataType[]\n }\n className?: string\n}\n\nconst SelectStore = (props: SelectStoreType) => {\n const { data, className } = props\n const { list } = data\n // const number = list?.[2]?.service?.length || 0\n return (\n <>\n <div className=\"\">\n <div className=\"laptop:grid-cols-3 tablet:grid-cols-2 grid grid-cols-1 gap-4\">\n {list.map((item, index) => (\n <div\n key={index}\n className=\"lg-desktop:aspect-[543/320] laptop:aspect-[440/280] tablet:aspect-[346/240] select-store-wrapper rounded-box relative flex aspect-[358/240] flex-col overflow-hidden bg-[#EAEAEC]\"\n >\n <Picture\n className=\"object-cover\"\n imgClassName=\"w-full object-cover\"\n source={`${item?.img?.url}, ${item?.padImg?.url} 1439, ${item?.miniImg?.url} 1023, ${item?.mobileImg?.url} 767`}\n />\n <div className=\"laptop:px-6 laptop:pb-4 lg-desktop:px-8 lg-desktop:pb-8 px-4 pb-4\">\n <Text\n html={item?.title}\n className=\"lg-desktop:text-[24px] text-[20px] leading-[1.2] text-[#080A0F] [&_*_strong]:!font-bold\"\n />\n <Text\n html={item?.desc}\n className=\"lg-desktop:text-[16px] line-clamp-1 text-[14px] leading-[1.4] text-[#080A0F]\"\n />\n </div>\n </div>\n ))}\n </div>\n {/* <div className='grid desktop:grid-cols-3 tablet:grid-cols-2 grid-cols-1 gap-4'>\n {list.map((item, index) => (\n <div key={index} className='bg-[#EAEAEC] rounded-2xl min-h-[240px] laptop:min-h-[280px] lg-desktop:min-h-[320px]'>\n <div className='flex flex-col laptop:p-[24px] lg-desktop:p-[32px] p-[16px] justify-start h-full'>\n <div className=\"flex flex-col justify-center flex-1\">\n \n {item?.pay && (\n <div className='flex gap-[16px] flex-wrap items-center justify-center laptop:gap-[24px]'>\n {item?.pay?.map((pay, ind)=>{\n return (\n <div key={ind} className='laptop:w-[60px] w-[48px]'>\n <Picture\n className=\" w-full\"\n imgClassName=\"\"\n source={pay?.img?.url}\n alt={pay?.img?.alt || ''}\n />\n </div>\n )\n })}\n </div>\n )}\n \n {\n item?.delivery && (\n <div className='flex gap-[24px] items-center justify-center'>\n {item?.delivery?.map((delivery, ind)=>{\n return (\n <div key={ind} className=''>\n <Picture\n className={` ${ind === 0 ? 'laptop:w-[174px] w-[116px]' : 'laptop:w-[75px] w-[50px]'}`}\n imgClassName=\"\"\n source={delivery?.img?.url}\n alt={delivery?.img?.alt || ''}\n />\n </div>\n )\n })}\n </div>\n ) \n }\n \n {\n item?.service && (\n <div className=' desktop:gap-[24px] gap-[8px] tablet:gap-[12px] laptop:gap-[28px] grid l-tablet:grid-cols-2 tablet:flex flex-wrap desktop:grid-cols-4 items-center justify-center'>\n {item?.service?.map((service, ind)=>{\n // \u5224\u65AD\uFF1A\u53EA\u5BF9\u7B2C\u4E94\u6761\uFF08index === 4\uFF09\u5E94\u7528\u54CD\u5E94\u5F0F\u663E\u793A/\u9690\u85CF\n const isFifth = ind === 4;\n return (\n <div key={ind} className={`\n flex flex-col items-center desktop:h-full w-[157px] justify-start desktop:w-[81px]\n ${isFifth ? 'laptop:flex desktop:hidden hidden' : ''} \n `}>\n <div className='w-[70px] desktop:w-[54px]'>\n <Picture\n className=\"\"\n imgClassName=\"w-full h-auto\"\n source={service?.img?.url}\n alt={service?.img?.alt || ''}\n />\n </div>\n <div className='text-center'>\n <Text html={service?.title} className=' font-bold text-[12px] mt-[8px] leading-[1.4]' />\n </div>\n </div>\n )\n })}\n </div>\n )\n }\n </div>\n <div className='mt-auto'>\n <Text html={item?.title} className='text-[20px] lg-desktop:text-[24px] [&_*_strong]:!font-bold leading-[1.2] text-[#080A0F]'/>\n <Text html={item?.desc} className='text-[14px] line-clamp-1 lg-desktop:text-[16px] leading-[1.4] text-[#080A0F]'/>\n </div>\n \n </div>\n </div>\n ))}\n </div> */}\n </div>\n </>\n )\n}\n\nexport default withLayout(SelectStore)\n"],
5
- "mappings": "sbAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,IAAA,eAAAC,EAAAH,GAsCI,IAAAI,EAAA,6BArCJC,EAAmB,kCACnBC,EAAsB,iCAEtBC,EAA2B,kCAC3BC,EAA8B,qCA4B9B,MAAMC,EAAeC,GAA2B,CAC9C,KAAM,CAAE,KAAAC,EAAM,UAAAC,CAAU,EAAIF,EACtB,CAAE,KAAAG,CAAK,EAAIF,EAEjB,SACE,mBACE,mBAAC,OAAI,UAAU,GACb,mBAAC,OAAI,UAAU,+DACZ,SAAAE,EAAK,IAAI,CAACC,EAAMC,OACf,QAAC,OAEC,UAAU,oLAEV,oBAAC,WACC,UAAU,eACV,aAAa,sBACb,OAAQ,GAAGD,GAAM,KAAK,GAAG,KAAKA,GAAM,QAAQ,GAAG,UAAUA,GAAM,SAAS,GAAG,UAAUA,GAAM,WAAW,GAAG,OAC3G,KACA,QAAC,OAAI,UAAU,oEACb,oBAAC,QACC,KAAMA,GAAM,MACZ,UAAU,0FACZ,KACA,OAAC,QACC,KAAMA,GAAM,KACZ,UAAU,+EACZ,GACF,IAjBKC,CAkBP,CACD,EACH,EAiFF,EACF,CAEJ,EAEA,IAAOb,KAAQ,cAAWO,CAAW",
6
- "names": ["SelectStore_exports", "__export", "SelectStore_default", "__toCommonJS", "import_jsx_runtime", "import_utils", "import_SwiperBox", "import_Styles", "import_components", "SelectStore", "props", "data", "className", "list", "item", "index"]
4
+ "sourcesContent": ["'use client'\nimport { cn } from '../../helpers/utils.js'\nimport SwiperBox from '../SwiperBox/index.js'\nimport type { Img } from '../../types/props.js'\nimport { withLayout } from '../../shared/Styles.js'\nimport { Picture, Text } from '../../components/index.js'\nimport { useExposure } from '../../hooks/useExposure.js'\nimport { useRef } from 'react'\n\nexport type SelectStoreDataType = {\n title: string\n desc: string\n img: Img\n mobileImg: Img\n padImg: Img\n miniImg: Img\n // pay: {\n // img: Img\n // }[]\n // delivery: {\n // img: Img\n // }[]\n // service: {\n // title: string\n // img: Img\n // }[]\n}\n\ntype SelectStoreType = {\n data: {\n list: SelectStoreDataType[]\n }\n className?: string\n}\n\nconst componentType = 'image'\nconst componentName = 'select_store'\n\nconst Item = ({ index, item }: { index: number; item: SelectStoreDataType }) => {\n const ref = useRef<HTMLDivElement>(null)\n\n useExposure(ref, {\n componentType: componentType,\n componentName: componentName,\n position: index + 1,\n componentTitle: item.title,\n componentDescription: item.desc,\n })\n\n return (\n <div\n ref={ref}\n className=\"lg-desktop:aspect-[543/320] laptop:aspect-[440/280] tablet:aspect-[346/240] select-store-wrapper rounded-box relative flex aspect-[358/240] flex-col overflow-hidden bg-[#EAEAEC]\"\n >\n <Picture\n className=\"object-cover\"\n imgClassName=\"w-full object-cover\"\n source={`${item?.img?.url}, ${item?.padImg?.url} 1439, ${item?.miniImg?.url} 1023, ${item?.mobileImg?.url} 767`}\n />\n <div className=\"laptop:px-6 laptop:pb-6 lg-desktop:px-8 lg-desktop:pb-8 px-4 pb-4\">\n <Text\n html={item?.title}\n className=\"lg-desktop:text-[24px] text-[20px] leading-[1.2] text-[#1d1d1f] [&_*_strong]:!font-bold\"\n />\n <Text\n html={item?.desc}\n className=\"lg-desktop:text-[16px] line-clamp-1 text-[14px] leading-[1.4] text-[#1d1d1f]\"\n />\n </div>\n </div>\n )\n}\n\nconst SelectStore = (props: SelectStoreType) => {\n const { data, className } = props\n const { list } = data\n // const number = list?.[2]?.service?.length || 0\n return (\n <>\n <div className=\"\">\n <div className=\"laptop:grid-cols-3 tablet:grid-cols-2 grid grid-cols-1 gap-4\">\n {list.map((item, index) => (\n <Item key={index} index={index} item={item} />\n ))}\n </div>\n {/* <div className='grid desktop:grid-cols-3 tablet:grid-cols-2 grid-cols-1 gap-4'>\n {list.map((item, index) => (\n <div key={index} className='bg-[#EAEAEC] rounded-2xl min-h-[240px] laptop:min-h-[280px] lg-desktop:min-h-[320px]'>\n <div className='flex flex-col laptop:p-[24px] lg-desktop:p-[32px] p-[16px] justify-start h-full'>\n <div className=\"flex flex-col justify-center flex-1\">\n \n {item?.pay && (\n <div className='flex gap-[16px] flex-wrap items-center justify-center laptop:gap-[24px]'>\n {item?.pay?.map((pay, ind)=>{\n return (\n <div key={ind} className='laptop:w-[60px] w-[48px]'>\n <Picture\n className=\" w-full\"\n imgClassName=\"\"\n source={pay?.img?.url}\n alt={pay?.img?.alt || ''}\n />\n </div>\n )\n })}\n </div>\n )}\n \n {\n item?.delivery && (\n <div className='flex gap-[24px] items-center justify-center'>\n {item?.delivery?.map((delivery, ind)=>{\n return (\n <div key={ind} className=''>\n <Picture\n className={` ${ind === 0 ? 'laptop:w-[174px] w-[116px]' : 'laptop:w-[75px] w-[50px]'}`}\n imgClassName=\"\"\n source={delivery?.img?.url}\n alt={delivery?.img?.alt || ''}\n />\n </div>\n )\n })}\n </div>\n ) \n }\n \n {\n item?.service && (\n <div className=' desktop:gap-[24px] gap-[8px] tablet:gap-[12px] laptop:gap-[28px] grid l-tablet:grid-cols-2 tablet:flex flex-wrap desktop:grid-cols-4 items-center justify-center'>\n {item?.service?.map((service, ind)=>{\n // \u5224\u65AD\uFF1A\u53EA\u5BF9\u7B2C\u4E94\u6761\uFF08index === 4\uFF09\u5E94\u7528\u54CD\u5E94\u5F0F\u663E\u793A/\u9690\u85CF\n const isFifth = ind === 4;\n return (\n <div key={ind} className={`\n flex flex-col items-center desktop:h-full w-[157px] justify-start desktop:w-[81px]\n ${isFifth ? 'laptop:flex desktop:hidden hidden' : ''} \n `}>\n <div className='w-[70px] desktop:w-[54px]'>\n <Picture\n className=\"\"\n imgClassName=\"w-full h-auto\"\n source={service?.img?.url}\n alt={service?.img?.alt || ''}\n />\n </div>\n <div className='text-center'>\n <Text html={service?.title} className=' font-bold text-[12px] mt-[8px] leading-[1.4]' />\n </div>\n </div>\n )\n })}\n </div>\n )\n }\n </div>\n <div className='mt-auto'>\n <Text html={item?.title} className='text-[20px] lg-desktop:text-[24px] [&_*_strong]:!font-bold leading-[1.2] text-[#080A0F]'/>\n <Text html={item?.desc} className='text-[14px] line-clamp-1 lg-desktop:text-[16px] leading-[1.4] text-[#080A0F]'/>\n </div>\n \n </div>\n </div>\n ))}\n </div> */}\n </div>\n </>\n )\n}\n\nexport default withLayout(SelectStore)\n"],
5
+ "mappings": "sbAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,IAAA,eAAAC,EAAAH,GAsDM,IAAAI,EAAA,6BArDNC,EAAmB,kCACnBC,EAAsB,iCAEtBC,EAA2B,kCAC3BC,EAA8B,qCAC9BC,EAA4B,sCAC5BC,EAAuB,iBA4BvB,MAAMC,EAAgB,QAChBC,EAAgB,eAEhBC,EAAO,CAAC,CAAE,MAAAC,EAAO,KAAAC,CAAK,IAAoD,CAC9E,MAAMC,KAAM,UAAuB,IAAI,EAEvC,wBAAYA,EAAK,CACf,cAAeL,EACf,cAAeC,EACf,SAAUE,EAAQ,EAClB,eAAgBC,EAAK,MACrB,qBAAsBA,EAAK,IAC7B,CAAC,KAGC,QAAC,OACC,IAAKC,EACL,UAAU,oLAEV,oBAAC,WACC,UAAU,eACV,aAAa,sBACb,OAAQ,GAAGD,GAAM,KAAK,GAAG,KAAKA,GAAM,QAAQ,GAAG,UAAUA,GAAM,SAAS,GAAG,UAAUA,GAAM,WAAW,GAAG,OAC3G,KACA,QAAC,OAAI,UAAU,oEACb,oBAAC,QACC,KAAMA,GAAM,MACZ,UAAU,0FACZ,KACA,OAAC,QACC,KAAMA,GAAM,KACZ,UAAU,+EACZ,GACF,GACF,CAEJ,EAEME,EAAeC,GAA2B,CAC9C,KAAM,CAAE,KAAAC,EAAM,UAAAC,CAAU,EAAIF,EACtB,CAAE,KAAAG,CAAK,EAAIF,EAEjB,SACE,mBACE,mBAAC,OAAI,UAAU,GACb,mBAAC,OAAI,UAAU,+DACZ,SAAAE,EAAK,IAAI,CAACN,EAAMD,OACf,OAACD,EAAA,CAAiB,MAAOC,EAAO,KAAMC,GAA3BD,CAAiC,CAC7C,EACH,EAiFF,EACF,CAEJ,EAEA,IAAOZ,KAAQ,cAAWe,CAAW",
6
+ "names": ["SelectStore_exports", "__export", "SelectStore_default", "__toCommonJS", "import_jsx_runtime", "import_utils", "import_SwiperBox", "import_Styles", "import_components", "import_useExposure", "import_react", "componentType", "componentName", "Item", "index", "item", "ref", "SelectStore", "props", "data", "className", "list"]
7
7
  }
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import type { ShelfDisplayProps } from './shelfDisplay.js';
3
3
  declare const _default: React.ForwardRefExoticComponent<Omit<Omit<ShelfDisplayProps & React.RefAttributes<HTMLDivElement>, keyof import("../../shared/Styles.js").StylesProps> & Partial<import("../../shared/Styles.js").StylesProps & import("../../shared/Styles.js").ContainerProps> & {
4
- className?: string;
5
- data?: Record<string, any>;
4
+ className?: string | undefined;
5
+ data?: Record<string, any> | undefined;
6
6
  }, "ref"> & React.RefAttributes<any>>;
7
7
  export default _default;
@@ -1,2 +1,2 @@
1
- "use strict";"use client";var re=Object.create;var w=Object.defineProperty;var oe=Object.getOwnPropertyDescriptor;var le=Object.getOwnPropertyNames;var me=Object.getPrototypeOf,ce=Object.prototype.hasOwnProperty;var fe=(e,t)=>{for(var a in t)w(e,a,{get:t[a],enumerable:!0})},L=(e,t,a,p)=>{if(t&&typeof t=="object"||typeof t=="function")for(let l of le(t))!ce.call(e,l)&&l!==a&&w(e,l,{get:()=>t[l],enumerable:!(p=oe(t,l))||p.enumerable});return e};var g=(e,t,a)=>(a=e!=null?re(me(e)):{},L(t||!e||!e.__esModule?w(a,"default",{value:e,enumerable:!0}):a,e)),pe=e=>L(w({},"__esModule",{value:!0}),e);var be={};fe(be,{default:()=>_e});module.exports=pe(be);var o=require("react/jsx-runtime"),n=g(require("react")),N=require("../../helpers/utils.js"),z=g(require("./tabSwitch.js")),A=g(require("../Title/index.js")),$=g(require("../SwiperBox/index.js")),q=require("../../shared/Styles.js"),I=require("../../shared/track.js"),O=require("react-responsive"),K=require("../../hooks/useRollout.js"),_=require("./shelfDisplayItem.js");const de="image",ue="product_shelf",he=e=>e==null?"default":String(e).replace(/[^a-zA-Z0-9_-]/g,"")||"default",we=()=>`shelf-display-${Math.random().toString(36).slice(2,9)}`,ge=n.default.forwardRef(({key:e,data:t,event:a,buildData:p,breakpoints:l,className:Q="",recommendedData:c,target:W="_self",metafields:Z,isDisplayGudgments:R=!1,isDisplayBackImage:j=!1},F)=>{const{productsTab:d=[],productsCard:G=[],title:D,isShowTab:b=!0,tabShape:J="square",isShowTag:U=!1,isShowOriginalPrice:X=!0,isShowRecommendedCard:Y=!1,...ee}=t,[M,P]=(0,n.useState)(""),[m,y]=(0,n.useState)([]),x=(0,n.useRef)(!1),S=(0,n.useRef)(!1),C=(0,n.useRef)(null),te=(0,n.useRef)(we()),se=(0,O.useMediaQuery)({query:"(max-width: 768px)"}),[ne,H]=(0,K.useRollout)({threshold:0}),u=m?.length<=1&&R,f=!se&&m?.length<=2&&R,v=s=>{switch(s){case 1440:return f?m?.length:4;case 1024:return f?m?.length:3;default:return f?m?.length:2.3}},B=()=>{(0,I.gaTrack)({event:"ga4Event",event_name:"view_item_list",event_parameters:{page_group:"Home Page",item_list_name:"Home_Page_Bundle",items:c?.map((s,T)=>{const r=s?.variants?.find(i=>i?.sku===s?.sku)||s?.variants?.[0];return{item_id:s?.sku||r?.sku,item_name:s?.name,item_variant:r?.name,price:r?.price,index:T+1}})}})},k=(s,T)=>{if(T){const h=c?.map?.(r=>({...r,isShowRecommended:!0}));y(h?.length?h||[]:[])}else if(Array.isArray(s)){const r=s?.map?.(i=>{const V=p?.products?.find(ie=>ie?.handle===i?.handle);if(V)return{sku:i.sku,isShowRecommended:!1,custom_name:i.custom_name,custom_description:i.custom_description,custom_image:i.custom_image,custom_theme:i.custom_theme,...V}})?.filter(i=>i);y(r?.length?r||[]:[])}else y([])};(0,n.useImperativeHandle)(F,()=>C.current),(0,n.useEffect)(()=>{H&&c?.length&&!x.current&&(x.current=!0,B())},[H,c]),(0,n.useEffect)(()=>{if(!S.current){if(!S.current&&c?.length&&(S.current=!0),b){P(d?.[0]?.tab||""),k(d?.[0]?.data||[],d?.[0]?.isShowRecommendedTab);return}k(G,Y)}},[c]);const ae=he(M),E=`${te.current}-${ae}`;return(0,o.jsxs)("div",{ref:C,className:(0,N.cn)("shelf-display-wrap w-full",Q,{"aiui-dark":t?.theme==="dark"}),children:[D&&(0,o.jsx)(A.default,{data:{title:D}}),b&&(0,o.jsx)("div",{className:"md-tablet:w-full md-tablet:overflow-hidden",children:(0,o.jsx)(z.default,{value:M,tabs:d,tabShape:J,onTabClick:s=>{if(P(s?.tab),k(s?.data||[],s?.isShowRecommendedTab),!s?.isShowRecommendedTab){(0,I.gaTrack)({event:"ga4Event",event_name:"component_click",event_parameters:{page_group:"Home Page",component_type:de,component_name:ue,component_title:t?.title,component_position:1,navigation:s?.tab}});return}B()}})}),(0,o.jsx)("div",{ref:ne,className:"tablet:min-h-[393px] laptop:min-h-[425px] desktop:min-h-[405px] lg-desktop:min-h-[409px]",children:(0,o.jsx)($.default,{data:{list:m,configuration:{...ee,event:a,isShowTag:U,isShowOriginalPrice:X,target:W,metafields:Z,itemLength:m?.length,isDisplayBackImage:j}},id:E,className:`${b?"mt-6":""} shelf-display-swiper-box !overflow-visible`,itemClassName:f?"flex-1":"",Slide:f?_.ShelfDisplayHorizontalItem:_.ShelfDisplayWrapItem,breakpoints:l||{0:{spaceBetween:12,freeMode:!1,slidesPerView:1},374:{spaceBetween:12,freeMode:!1,slidesPerView:u?1:1.2},768:{spaceBetween:u?0:16,freeMode:!1,slidesPerView:v()},1024:{spaceBetween:u?0:16,freeMode:!1,slidesPerView:v(1024)},1440:{spaceBetween:u?0:16,freeMode:!1,slidesPerView:v(1440)}}},E)})]})});var _e=(0,q.withLayout)(ge);
1
+ "use strict";"use client";var re=Object.create;var S=Object.defineProperty;var oe=Object.getOwnPropertyDescriptor;var le=Object.getOwnPropertyNames;var ce=Object.getPrototypeOf,me=Object.prototype.hasOwnProperty;var fe=(t,n)=>{for(var a in n)S(t,a,{get:n[a],enumerable:!0})},z=(t,n,a,p)=>{if(n&&typeof n=="object"||typeof n=="function")for(let l of le(n))!me.call(t,l)&&l!==a&&S(t,l,{get:()=>n[l],enumerable:!(p=oe(n,l))||p.enumerable});return t};var y=(t,n,a)=>(a=t!=null?re(ce(t)):{},z(n||!t||!t.__esModule?S(a,"default",{value:t,enumerable:!0}):a,t)),pe=t=>z(S({},"__esModule",{value:!0}),t);var _e={};fe(_e,{default:()=>be});module.exports=pe(_e);var o=require("react/jsx-runtime"),s=y(require("react")),A=require("../../helpers/utils.js"),$=y(require("./tabSwitch.js")),q=y(require("../Title/index.js")),O=y(require("../SwiperBox/index.js")),K=require("../../shared/Styles.js"),R=require("../../shared/track.js"),Q=require("react-responsive"),W=require("../../hooks/useRollout.js"),v=require("./shelfDisplayItem.js");const de="image",ue="product_shelf",he=t=>t==null?"default":String(t).replace(/[^a-zA-Z0-9_-]/g,"")||"default",we=()=>`shelf-display-${Math.random().toString(36).slice(2,9)}`,ge=s.default.forwardRef(({key:t,data:n,event:a,buildData:p,breakpoints:l,className:Z="",recommendedData:f,target:j="_self",metafields:F,isDisplayGudgments:M=!1,isDisplayBackImage:G=!1},J)=>{const{productsTab:d=[],productsCard:D=[],title:P,isShowTab:w=!0,tabShape:U="square",isShowTag:X=!1,isShowOriginalPrice:Y=!0,isShowRecommendedCard:x=!1,...ee}=n,[g,C]=(0,s.useState)(""),[c,T]=(0,s.useState)([]),H=(0,s.useRef)(!1),k=(0,s.useRef)(!1),B=(0,s.useRef)(null),te=(0,s.useRef)(we()),ne=(0,Q.useMediaQuery)({query:"(max-width: 768px)"}),[se,E]=(0,W.useRollout)({threshold:0}),b=c?.length<=1&&M,u=!ne&&c?.length<=2&&M,I=e=>{switch(e){case 1440:return u?c?.length:4;case 1024:return u?c?.length:3;default:return u?c?.length:2.3}},V=()=>{(0,R.gaTrack)({event:"ga4Event",event_name:"view_item_list",event_parameters:{page_group:"Home Page",item_list_name:"Home_Page_Bundle",items:f?.map((e,m)=>{const r=e?.variants?.find(i=>i?.sku===e?.sku)||e?.variants?.[0];return{item_id:e?.sku||r?.sku,item_name:e?.name,item_variant:r?.name,price:r?.price,index:m+1}})}})},h=(e,m)=>{if(m){const _=f?.map?.(r=>({...r,isShowRecommended:!0}));T(_?.length?_||[]:[])}else if(Array.isArray(e)){const r=e?.map?.(i=>{const N=p?.products?.find(ie=>ie?.handle===i?.handle);if(N)return{sku:i.sku,isShowRecommended:!1,custom_name:i.custom_name,custom_description:i.custom_description,custom_image:i.custom_image,custom_theme:i.custom_theme,...N}})?.filter(i=>i);T(r?.length?r||[]:[])}else T([])};(0,s.useImperativeHandle)(J,()=>B.current),(0,s.useEffect)(()=>{E&&f?.length&&!H.current&&(H.current=!0,V())},[E,f]),(0,s.useEffect)(()=>{if(!k.current){if(!k.current&&f?.length&&(k.current=!0),w){const e=d?.find(m=>m?.tab===g)||d?.[0];C(e?.tab||""),h(e?.data||[],e?.isShowRecommendedTab);return}h(D,x)}},[f]),(0,s.useEffect)(()=>{if(w){const e=d?.find(m=>m?.tab===g)||d?.[0];h(e?.data||[],e?.isShowRecommendedTab);return}h(D,x)},[p]);const ae=he(g),L=`${te.current}-${ae}`;return(0,o.jsxs)("div",{ref:B,className:(0,A.cn)("shelf-display-wrap w-full",Z,{"aiui-dark":n?.theme==="dark"}),children:[P&&(0,o.jsx)(q.default,{data:{title:P}}),w&&(0,o.jsx)("div",{className:"md-tablet:w-full md-tablet:overflow-hidden",children:(0,o.jsx)($.default,{value:g,tabs:d,tabShape:U,onTabClick:e=>{if(C(e?.tab),h(e?.data||[],e?.isShowRecommendedTab),!e?.isShowRecommendedTab){(0,R.gaTrack)({event:"ga4Event",event_name:"component_click",event_parameters:{page_group:"Home Page",component_type:de,component_name:ue,component_title:n?.title,component_position:1,navigation:e?.tab}});return}V()}})}),(0,o.jsx)("div",{ref:se,className:"tablet:min-h-[393px] laptop:min-h-[425px] desktop:min-h-[405px] lg-desktop:min-h-[409px]",children:(0,o.jsx)(O.default,{data:{list:c,configuration:{...ee,event:a,isShowTag:X,isShowOriginalPrice:Y,target:j,metafields:F,itemLength:c?.length,isDisplayBackImage:G}},id:L,className:`${w?"mt-6":""} shelf-display-swiper-box !overflow-visible`,itemClassName:u?"flex-1":"",Slide:u?v.ShelfDisplayHorizontalItem:v.ShelfDisplayWrapItem,breakpoints:l||{0:{spaceBetween:12,freeMode:!1,slidesPerView:1},374:{spaceBetween:12,freeMode:!1,slidesPerView:b?1:1.2},768:{spaceBetween:b?0:16,freeMode:!1,slidesPerView:I()},1024:{spaceBetween:b?0:16,freeMode:!1,slidesPerView:I(1024)},1440:{spaceBetween:b?0:16,freeMode:!1,slidesPerView:I(1440)}}},L)})]})});var be=(0,K.withLayout)(ge);
2
2
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/biz-components/ShelfDisplay/index.tsx"],
4
- "sourcesContent": ["'use client'\nimport React, { useState, useEffect, useRef, useImperativeHandle } from 'react'\nimport { cn } from '../../helpers/utils.js'\nimport TabSwitch from './tabSwitch.js'\nimport Title from '../Title/index.js'\nimport SwiperBox from '../SwiperBox/index.js'\nimport { withLayout } from '../../shared/Styles.js'\nimport { gaTrack } from '../../shared/track.js'\nimport { useMediaQuery } from 'react-responsive'\nimport { useRollout } from '../../hooks/useRollout.js'\nimport { ShelfDisplayWrapItem, ShelfDisplayHorizontalItem } from './shelfDisplayItem.js'\nimport type { ShelfDisplayProps, ShelfDisplayItem } from './shelfDisplay.js'\n\nconst componentType = 'image'\nconst componentName = 'product_shelf'\n\nconst sanitizeCssSelector = (value?: string | number) => {\n if (value === undefined || value === null) return 'default'\n const sanitized = String(value).replace(/[^a-zA-Z0-9_-]/g, '')\n return sanitized || 'default'\n}\n\nconst createInstanceId = () => `shelf-display-${Math.random().toString(36).slice(2, 9)}`\n\nconst ShelfDisplay = React.forwardRef<HTMLDivElement, ShelfDisplayProps>(\n (\n {\n key,\n data,\n event,\n buildData,\n breakpoints,\n className = '',\n recommendedData,\n target = '_self',\n metafields,\n isDisplayGudgments = false,\n isDisplayBackImage = false,\n },\n ref\n ) => {\n const {\n productsTab = [],\n productsCard = [],\n title,\n isShowTab = true,\n tabShape = 'square',\n isShowTag = false,\n isShowOriginalPrice = true,\n isShowRecommendedCard = false,\n ...other\n } = data\n\n const [tabId, setTabId] = useState<string>('')\n const [currentItems, setCurrentItems] = useState<ShelfDisplayItem[]>([])\n\n const isView = useRef<boolean>(false)\n const isRecommend = useRef<boolean>(false)\n const innerRef = useRef<HTMLDivElement>(null)\n const instanceIdRef = useRef<string>(createInstanceId())\n\n const isMobile = useMediaQuery({ query: '(max-width: 768px)' })\n const [viewRef, inView] = useRollout<HTMLDivElement>({ threshold: 0 })\n\n const isOnce = currentItems?.length <= 1 && isDisplayGudgments\n const isShowGudgments = !isMobile && currentItems?.length <= 2 && isDisplayGudgments\n\n const showItemLength = (size?: number) => {\n switch (size) {\n case 1440:\n return isShowGudgments ? currentItems?.length : 4\n case 1024:\n return isShowGudgments ? currentItems?.length : 3\n default:\n return isShowGudgments ? currentItems?.length : 2.3\n }\n }\n\n const gackViewEvent = () => {\n gaTrack({\n event: 'ga4Event',\n event_name: 'view_item_list',\n event_parameters: {\n page_group: 'Home Page',\n item_list_name: 'Home_Page_Bundle',\n items: recommendedData?.map((item, index) => {\n const findData = item?.variants?.find((v: any) => v?.sku === item?.sku)\n const variant = findData || item?.variants?.[0]\n return {\n item_id: item?.sku || variant?.sku,\n item_name: item?.name,\n item_variant: variant?.name,\n price: variant?.price,\n index: index + 1,\n }\n }),\n },\n })\n }\n\n const handleCurrentTab = (currentData: ShelfDisplayItem[], flag: boolean) => {\n if (flag) {\n const newCurrentData = recommendedData?.map?.(item => {\n return {\n ...item,\n isShowRecommended: true,\n }\n })\n setCurrentItems(newCurrentData?.length ? newCurrentData || [] : [])\n } else {\n const isArray = Array.isArray(currentData)\n if (isArray) {\n const newCurrentData = currentData\n ?.map?.(item => {\n const findData = buildData?.products?.find(params => params?.handle === item?.handle)\n if (findData) {\n return {\n sku: item.sku,\n isShowRecommended: false,\n custom_name: item.custom_name,\n custom_description: item.custom_description,\n custom_image: item.custom_image,\n custom_theme: item.custom_theme,\n ...findData,\n }\n }\n })\n ?.filter(item => item)\n setCurrentItems(newCurrentData?.length ? newCurrentData || [] : [])\n } else {\n setCurrentItems([])\n }\n }\n }\n\n useImperativeHandle(ref, () => innerRef.current as HTMLDivElement)\n\n useEffect(() => {\n if (inView && recommendedData?.length && !isView.current) {\n isView.current = true\n gackViewEvent()\n }\n }, [inView, recommendedData])\n\n // \u7B97\u6CD5\u6570\u636E\u4F1A\u7A0D\u5FAE\u5EF6\u8FDF\uFF0C\u6240\u4EE5\u9700\u76D1\u542CrecommendedData\uFF0C\u4E3A\u4E86\u9632\u6B62\u5728\u6709\u7B97\u6CD5\u6570\u636E\u4E14\u5BF9\u9ED8\u8BA4\u6E32\u67D3\u7B2C\u4E00\u4E2A\u540E\u53CD\u590D\u89E6\u53D1\uFF0C\u7528isRecommend\u5173\u95ED\n useEffect(() => {\n if (isRecommend.current) return\n if (!isRecommend.current && recommendedData?.length) {\n isRecommend.current = true\n }\n if (isShowTab) {\n setTabId(productsTab?.[0]?.tab || '')\n handleCurrentTab(productsTab?.[0]?.data || [], productsTab?.[0]?.isShowRecommendedTab)\n return\n }\n handleCurrentTab(productsCard, isShowRecommendedCard)\n }, [recommendedData])\n\n const safeTabKey = sanitizeCssSelector(tabId)\n const swiperInstanceId = `${instanceIdRef.current}-${safeTabKey}`\n\n return (\n <div\n ref={innerRef}\n className={cn('shelf-display-wrap w-full', className, { 'aiui-dark': data?.theme === 'dark' })}\n >\n {title && <Title data={{ title: title }} />}\n {isShowTab && (\n <div className=\"md-tablet:w-full md-tablet:overflow-hidden\">\n <TabSwitch\n value={tabId}\n tabs={productsTab}\n tabShape={tabShape}\n onTabClick={v => {\n setTabId(v?.tab)\n handleCurrentTab(v?.data || [], v?.isShowRecommendedTab)\n if (!v?.isShowRecommendedTab) {\n gaTrack({\n event: 'ga4Event',\n event_name: 'component_click',\n event_parameters: {\n page_group: 'Home Page',\n component_type: componentType,\n component_name: componentName,\n component_title: data?.title,\n component_position: 1,\n navigation: v?.tab,\n },\n })\n return\n }\n gackViewEvent()\n }}\n />\n </div>\n )}\n <div\n ref={viewRef as any}\n className=\"tablet:min-h-[393px] laptop:min-h-[425px] desktop:min-h-[405px] lg-desktop:min-h-[409px]\"\n >\n <SwiperBox\n key={swiperInstanceId}\n data={{\n list: currentItems,\n configuration: {\n ...other,\n event: event,\n isShowTag,\n isShowOriginalPrice,\n target: target,\n metafields: metafields,\n itemLength: currentItems?.length,\n isDisplayBackImage: isDisplayBackImage,\n },\n }}\n id={swiperInstanceId}\n className={`${isShowTab ? 'mt-6' : ''} shelf-display-swiper-box !overflow-visible`}\n itemClassName={isShowGudgments ? 'flex-1' : ''}\n Slide={isShowGudgments ? ShelfDisplayHorizontalItem : ShelfDisplayWrapItem}\n breakpoints={\n breakpoints || {\n 0: {\n spaceBetween: 12,\n freeMode: false,\n slidesPerView: 1,\n },\n 374: {\n spaceBetween: 12,\n freeMode: false,\n slidesPerView: isOnce ? 1 : 1.2,\n },\n 768: {\n spaceBetween: isOnce ? 0 : 16,\n freeMode: false,\n slidesPerView: showItemLength(),\n },\n 1024: {\n spaceBetween: isOnce ? 0 : 16,\n freeMode: false,\n slidesPerView: showItemLength(1024),\n },\n 1440: {\n spaceBetween: isOnce ? 0 : 16,\n freeMode: false,\n slidesPerView: showItemLength(1440),\n },\n }\n }\n />\n </div>\n </div>\n )\n }\n)\n\nexport default withLayout(ShelfDisplay)\n"],
5
- "mappings": "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",
6
- "names": ["ShelfDisplay_exports", "__export", "ShelfDisplay_default", "__toCommonJS", "import_jsx_runtime", "import_react", "import_utils", "import_tabSwitch", "import_Title", "import_SwiperBox", "import_Styles", "import_track", "import_react_responsive", "import_useRollout", "import_shelfDisplayItem", "componentType", "componentName", "sanitizeCssSelector", "value", "createInstanceId", "ShelfDisplay", "React", "key", "data", "event", "buildData", "breakpoints", "className", "recommendedData", "target", "metafields", "isDisplayGudgments", "isDisplayBackImage", "ref", "productsTab", "productsCard", "title", "isShowTab", "tabShape", "isShowTag", "isShowOriginalPrice", "isShowRecommendedCard", "other", "tabId", "setTabId", "currentItems", "setCurrentItems", "isView", "isRecommend", "innerRef", "instanceIdRef", "isMobile", "viewRef", "inView", "isOnce", "isShowGudgments", "showItemLength", "size", "gackViewEvent", "item", "index", "variant", "v", "handleCurrentTab", "currentData", "flag", "newCurrentData", "findData", "params", "safeTabKey", "swiperInstanceId", "Title", "TabSwitch", "SwiperBox"]
4
+ "sourcesContent": ["'use client'\nimport React, { useState, useEffect, useRef, useImperativeHandle } from 'react'\nimport { cn } from '../../helpers/utils.js'\nimport TabSwitch from './tabSwitch.js'\nimport Title from '../Title/index.js'\nimport SwiperBox from '../SwiperBox/index.js'\nimport { withLayout } from '../../shared/Styles.js'\nimport { gaTrack } from '../../shared/track.js'\nimport { useMediaQuery } from 'react-responsive'\nimport { useRollout } from '../../hooks/useRollout.js'\nimport { ShelfDisplayWrapItem, ShelfDisplayHorizontalItem } from './shelfDisplayItem.js'\nimport type { ShelfDisplayProps, ShelfDisplayItem } from './shelfDisplay.js'\n\nconst componentType = 'image'\nconst componentName = 'product_shelf'\n\nconst sanitizeCssSelector = (value?: string | number) => {\n if (value === undefined || value === null) return 'default'\n const sanitized = String(value).replace(/[^a-zA-Z0-9_-]/g, '')\n return sanitized || 'default'\n}\n\nconst createInstanceId = () => `shelf-display-${Math.random().toString(36).slice(2, 9)}`\n\nconst ShelfDisplay = React.forwardRef<HTMLDivElement, ShelfDisplayProps>(\n (\n {\n key,\n data,\n event,\n buildData,\n breakpoints,\n className = '',\n recommendedData,\n target = '_self',\n metafields,\n isDisplayGudgments = false,\n isDisplayBackImage = false,\n },\n ref\n ) => {\n const {\n productsTab = [],\n productsCard = [],\n title,\n isShowTab = true,\n tabShape = 'square',\n isShowTag = false,\n isShowOriginalPrice = true,\n isShowRecommendedCard = false,\n ...other\n } = data\n\n const [tabId, setTabId] = useState<string>('')\n const [currentItems, setCurrentItems] = useState<ShelfDisplayItem[]>([])\n\n const isView = useRef<boolean>(false)\n const isRecommend = useRef<boolean>(false)\n const innerRef = useRef<HTMLDivElement>(null)\n const instanceIdRef = useRef<string>(createInstanceId())\n\n const isMobile = useMediaQuery({ query: '(max-width: 768px)' })\n const [viewRef, inView] = useRollout<HTMLDivElement>({ threshold: 0 })\n\n const isOnce = currentItems?.length <= 1 && isDisplayGudgments\n const isShowGudgments = !isMobile && currentItems?.length <= 2 && isDisplayGudgments\n\n const showItemLength = (size?: number) => {\n switch (size) {\n case 1440:\n return isShowGudgments ? currentItems?.length : 4\n case 1024:\n return isShowGudgments ? currentItems?.length : 3\n default:\n return isShowGudgments ? currentItems?.length : 2.3\n }\n }\n\n const gackViewEvent = () => {\n gaTrack({\n event: 'ga4Event',\n event_name: 'view_item_list',\n event_parameters: {\n page_group: 'Home Page',\n item_list_name: 'Home_Page_Bundle',\n items: recommendedData?.map((item, index) => {\n const findData = item?.variants?.find((v: any) => v?.sku === item?.sku)\n const variant = findData || item?.variants?.[0]\n return {\n item_id: item?.sku || variant?.sku,\n item_name: item?.name,\n item_variant: variant?.name,\n price: variant?.price,\n index: index + 1,\n }\n }),\n },\n })\n }\n\n const handleCurrentTab = (currentData: ShelfDisplayItem[], flag: boolean) => {\n if (flag) {\n const newCurrentData = recommendedData?.map?.(item => {\n return {\n ...item,\n isShowRecommended: true,\n }\n })\n setCurrentItems(newCurrentData?.length ? newCurrentData || [] : [])\n } else {\n const isArray = Array.isArray(currentData)\n if (isArray) {\n const newCurrentData = currentData\n ?.map?.(item => {\n const findData = buildData?.products?.find(params => params?.handle === item?.handle)\n if (findData) {\n return {\n sku: item.sku,\n isShowRecommended: false,\n custom_name: item.custom_name,\n custom_description: item.custom_description,\n custom_image: item.custom_image,\n custom_theme: item.custom_theme,\n ...findData,\n }\n }\n })\n ?.filter(item => item)\n setCurrentItems(newCurrentData?.length ? newCurrentData || [] : [])\n } else {\n setCurrentItems([])\n }\n }\n }\n\n useImperativeHandle(ref, () => innerRef.current as HTMLDivElement)\n\n useEffect(() => {\n if (inView && recommendedData?.length && !isView.current) {\n isView.current = true\n gackViewEvent()\n }\n }, [inView, recommendedData])\n\n // \u7B97\u6CD5\u6570\u636E\u4F1A\u7A0D\u5FAE\u5EF6\u8FDF\uFF0C\u6240\u4EE5\u9700\u76D1\u542CrecommendedData\uFF0C\u4E3A\u4E86\u9632\u6B62\u5728\u6709\u7B97\u6CD5\u6570\u636E\u4E14\u5BF9\u9ED8\u8BA4\u6E32\u67D3\u7B2C\u4E00\u4E2A\u540E\u53CD\u590D\u89E6\u53D1\uFF0C\u7528isRecommend\u5173\u95ED\n useEffect(() => {\n if (isRecommend.current) return\n if (!isRecommend.current && recommendedData?.length) {\n isRecommend.current = true\n }\n if (isShowTab) {\n const currentTab = productsTab?.find(item => item?.tab === tabId) || productsTab?.[0]\n setTabId(currentTab?.tab || '')\n handleCurrentTab(currentTab?.data || [], currentTab?.isShowRecommendedTab)\n return\n }\n handleCurrentTab(productsCard, isShowRecommendedCard)\n }, [recommendedData])\n\n useEffect(() => {\n if (isShowTab) {\n const currentTab = productsTab?.find(item => item?.tab === tabId) || productsTab?.[0]\n handleCurrentTab(currentTab?.data || [], currentTab?.isShowRecommendedTab)\n return\n }\n handleCurrentTab(productsCard, isShowRecommendedCard)\n // buildData \u66F4\u65B0\u65F6\u9700\u8981\u91CD\u65B0\u8BA1\u7B97\u5F53\u524D\u5217\u8868\n }, [buildData])\n\n const safeTabKey = sanitizeCssSelector(tabId)\n const swiperInstanceId = `${instanceIdRef.current}-${safeTabKey}`\n\n return (\n <div\n ref={innerRef}\n className={cn('shelf-display-wrap w-full', className, { 'aiui-dark': data?.theme === 'dark' })}\n >\n {title && <Title data={{ title: title }} />}\n {isShowTab && (\n <div className=\"md-tablet:w-full md-tablet:overflow-hidden\">\n <TabSwitch\n value={tabId}\n tabs={productsTab}\n tabShape={tabShape}\n onTabClick={v => {\n setTabId(v?.tab)\n handleCurrentTab(v?.data || [], v?.isShowRecommendedTab)\n if (!v?.isShowRecommendedTab) {\n gaTrack({\n event: 'ga4Event',\n event_name: 'component_click',\n event_parameters: {\n page_group: 'Home Page',\n component_type: componentType,\n component_name: componentName,\n component_title: data?.title,\n component_position: 1,\n navigation: v?.tab,\n },\n })\n return\n }\n gackViewEvent()\n }}\n />\n </div>\n )}\n <div\n ref={viewRef as any}\n className=\"tablet:min-h-[393px] laptop:min-h-[425px] desktop:min-h-[405px] lg-desktop:min-h-[409px]\"\n >\n <SwiperBox\n key={swiperInstanceId}\n data={{\n list: currentItems,\n configuration: {\n ...other,\n event: event,\n isShowTag,\n isShowOriginalPrice,\n target: target,\n metafields: metafields,\n itemLength: currentItems?.length,\n isDisplayBackImage: isDisplayBackImage,\n },\n }}\n id={swiperInstanceId}\n className={`${isShowTab ? 'mt-6' : ''} shelf-display-swiper-box !overflow-visible`}\n itemClassName={isShowGudgments ? 'flex-1' : ''}\n Slide={isShowGudgments ? ShelfDisplayHorizontalItem : ShelfDisplayWrapItem}\n breakpoints={\n breakpoints || {\n 0: {\n spaceBetween: 12,\n freeMode: false,\n slidesPerView: 1,\n },\n 374: {\n spaceBetween: 12,\n freeMode: false,\n slidesPerView: isOnce ? 1 : 1.2,\n },\n 768: {\n spaceBetween: isOnce ? 0 : 16,\n freeMode: false,\n slidesPerView: showItemLength(),\n },\n 1024: {\n spaceBetween: isOnce ? 0 : 16,\n freeMode: false,\n slidesPerView: showItemLength(1024),\n },\n 1440: {\n spaceBetween: isOnce ? 0 : 16,\n freeMode: false,\n slidesPerView: showItemLength(1440),\n },\n }\n }\n />\n </div>\n </div>\n )\n }\n)\n\nexport default withLayout(ShelfDisplay)\n"],
5
+ "mappings": "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",
6
+ "names": ["ShelfDisplay_exports", "__export", "ShelfDisplay_default", "__toCommonJS", "import_jsx_runtime", "import_react", "import_utils", "import_tabSwitch", "import_Title", "import_SwiperBox", "import_Styles", "import_track", "import_react_responsive", "import_useRollout", "import_shelfDisplayItem", "componentType", "componentName", "sanitizeCssSelector", "value", "createInstanceId", "ShelfDisplay", "React", "key", "data", "event", "buildData", "breakpoints", "className", "recommendedData", "target", "metafields", "isDisplayGudgments", "isDisplayBackImage", "ref", "productsTab", "productsCard", "title", "isShowTab", "tabShape", "isShowTag", "isShowOriginalPrice", "isShowRecommendedCard", "other", "tabId", "setTabId", "currentItems", "setCurrentItems", "isView", "isRecommend", "innerRef", "instanceIdRef", "isMobile", "viewRef", "inView", "isOnce", "isShowGudgments", "showItemLength", "size", "gackViewEvent", "item", "index", "variant", "v", "handleCurrentTab", "currentData", "flag", "newCurrentData", "findData", "params", "currentTab", "safeTabKey", "swiperInstanceId", "Title", "TabSwitch", "SwiperBox"]
7
7
  }
@@ -1,10 +1,10 @@
1
- "use strict";var ae=Object.create;var H=Object.defineProperty;var ie=Object.getOwnPropertyDescriptor;var ne=Object.getOwnPropertyNames;var re=Object.getPrototypeOf,pe=Object.prototype.hasOwnProperty;var ce=(e,t)=>{for(var a in t)H(e,a,{get:t[a],enumerable:!0})},oe=(e,t,a,d)=>{if(t&&typeof t=="object"||typeof t=="function")for(let m of ne(t))!pe.call(e,m)&&m!==a&&H(e,m,{get:()=>t[m],enumerable:!(d=ie(t,m))||d.enumerable});return e};var K=(e,t,a)=>(a=e!=null?ae(re(e)):{},oe(t||!e||!e.__esModule?H(a,"default",{value:e,enumerable:!0}):a,e)),me=e=>oe(H({},"__esModule",{value:!0}),e);var xe={};ce(xe,{ShelfDisplayHorizontalItem:()=>ue,ShelfDisplayWrapItem:()=>de,getProductImage:()=>le});module.exports=me(xe);var s=require("react/jsx-runtime"),Q=require("../AiuiProvider/index.js"),X=require("./shelfDisplay.js"),F=K(require("../../components/picture.js")),W=K(require("../../components/badge.js")),f=require("../../helpers/utils.js"),Y=require("../../components/text.js"),I=K(require("../../components/button.js")),Z=require("../../shared/track.js"),ee=require("../../shared/trackUrlRef.js"),te=require("../../components/heading.js"),se=require("../../hooks/useExposure.js"),r=require("react");const L="image",E="product_shelf",A=999999999e-2,le=e=>{const t=e?.sku,a=e?.variants,d=a?.find(k=>k?.sku===t),m=d?.image?.url||a?.[0]?.image?.url||"",w=d?.image?.altText||a?.[0]?.image?.altText||e?.custom_name||e?.title||"";return{imageUrl:m,altText:w}},de=({data:e,configuration:t})=>{const{isDisplayBackImage:a=!1,itemShape:d,metafields:m,isTopTag:w=!1,isShowTag:k,isShowOriginalPrice:v}=t||{},{locale:g="us",copyWriting:$}=(0,Q.useAiuiContext)(),{discounts:P,discountsCopy:N}=m||{},j=(0,r.useRef)(null),[O,i]=(0,r.useState)([]),[B,M]=(0,r.useState)(""),R=(l,p,x,J)=>t?.event?.primaryButton?.(l,p+1,x,J),V=(l,p,x,J)=>t?.event?.secondaryButton?.(l,p+1,x,J),n=(0,r.useMemo)(()=>{const l=e?.variants||[];if(l.length)return e?.sku?l?.find?.(p=>p?.sku===e?.sku)||l[0]:l?.[0]},[e?.sku,e?.variants]),h=n?.id?.split?.("/")||[],C=h?.[h?.length-1],U=!n?.availableForSale&&(n?.price?.amount===A||n?.price===A),y=n?.coupons?.[0],D=!!(v&&y),z=e?.price?.currencyCode||"USD",T=(0,r.useMemo)(()=>(0,X.formatVariantPrice)({locale:g,amount:D?y?.variant_price4wscode:n?.price,baseAmount:D?n?.price:0,currencyCode:z}),[z,g,D,y?.variant_price4wscode,n]),{price:q,basePrice:G,discount:u}=T,{imageUrl:_,altText:S}=le(e),b=e?.custom_name||e?.title,o=e?.custom_description||e?.description;(0,r.useEffect)(()=>{let l=[];if(u){const x=`${u}${P?.off||N?.off||""}`;M(x),l.push(x)}const p=e?.tags?.filter?.(x=>x?.startsWith?.("CLtag"))?.map?.(x=>x?.replace?.("CLtag:",""))?.slice?.(0,u?1:2);i(l.concat(p))},[e?.tags,u,P?.off,N?.off]),(0,se.useExposure)(j,{componentType:L,componentName:E,componentTitle:b,componentDescription:o,position:t?.index+1});const c=()=>(0,s.jsxs)(s.Fragment,{children:[k&&O?.length>0?(0,s.jsx)("div",{className:"mb-1 box-border flex h-8 flex-wrap gap-1 overflow-hidden",children:O?.map?.((l,p)=>(0,s.jsx)(W.default,{className:"shelf-items-tag",children:l},p))}):null,b?(0,s.jsx)(te.Heading,{as:"h3",title:b||"",size:2,className:"shelf-display-product-title line-clamp-2",html:b||""}):null,o?(0,s.jsx)(Y.Text,{size:2,className:"lg-desktop:text-lg desktop:text-base shelf-display-product-description line-clamp-1 text-sm",html:o||""}):null,(0,s.jsx)("div",{className:"mb-2 mt-4 flex items-center",children:U?(0,s.jsx)("div",{className:"tablet:text-2xl text-info-primary text-xl font-bold",children:$?.soldOutText}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("div",{className:"final-price tablet:text-2xl text-info-primary text-xl font-bold",children:n?.availableForSale&&q||""}),(0,s.jsx)("div",{className:"origin-price tablet:text-xl text-info-secondary ml-1 text-lg font-bold line-through",children:n?.availableForSale&&G||""})]})}),(0,s.jsxs)("div",{className:(0,f.cn)("shelf-flex-button-group","lg-desktop:gap-3 flex items-center gap-2",t.direction==="vertical"?"flex-col":""),children:[t?.secondaryButton?(0,s.jsx)(I.default,{variant:"secondary",onClick:()=>V(e,t?.index,t,y),className:`
1
+ "use strict";var ce=Object.create;var E=Object.defineProperty;var pe=Object.getOwnPropertyDescriptor;var me=Object.getOwnPropertyNames;var de=Object.getPrototypeOf,ue=Object.prototype.hasOwnProperty;var fe=(e,t)=>{for(var a in t)E(e,a,{get:t[a],enumerable:!0})},ne=(e,t,a,f)=>{if(t&&typeof t=="object"||typeof t=="function")for(let u of me(t))!ue.call(e,u)&&u!==a&&E(e,u,{get:()=>t[u],enumerable:!(f=pe(t,u))||f.enumerable});return e};var Y=(e,t,a)=>(a=e!=null?ce(de(e)):{},ne(t||!e||!e.__esModule?E(a,"default",{value:e,enumerable:!0}):a,e)),xe=e=>ne(E({},"__esModule",{value:!0}),e);var ge={};fe(ge,{ShelfDisplayHorizontalItem:()=>ve,ShelfDisplayWrapItem:()=>he,getProductImage:()=>ae});module.exports=xe(ge);var s=require("react/jsx-runtime"),Z=require("../AiuiProvider/index.js"),ee=require("./shelfDisplay.js"),V=Y(require("../../components/picture.js")),q=Y(require("../../components/badge.js")),v=require("../../helpers/utils.js"),te=require("../../components/text.js"),W=Y(require("../../components/button.js")),se=require("../../shared/track.js"),le=require("../../shared/trackUrlRef.js"),oe=require("../../components/heading.js"),ie=require("../../hooks/useExposure.js"),p=require("react");const F="image",M="product_shelf",R=999999999e-2,ae=e=>{const t=e?.sku,a=e?.variants,f=a?.find(_=>_?.sku===t),u=f?.image?.url||a?.[0]?.image?.url||"",k=f?.image?.altText||a?.[0]?.image?.altText||e?.custom_name||e?.title||"";return{imageUrl:u,altText:k}},he=({data:e,configuration:t})=>{const{isDisplayBackImage:a=!1,itemShape:f,metafields:u,isTopTag:k=!1,isShowTag:_,isShowOriginalPrice:y}=t||{},{locale:b="us",copyWriting:O}=(0,Z.useAiuiContext)(),{discounts:U,discountsCopy:B}=u||{},z=(0,p.useRef)(null),[A,n]=(0,p.useState)([]),[C,G]=(0,p.useState)(""),J=(l,o,m,d)=>t?.event?.primaryButton?.(l,o+1,m,d),K=(l,o,m,d)=>t?.event?.secondaryButton?.(l,o+1,m,d),r=(0,p.useMemo)(()=>{const l=e?.variants||[];if(l.length)return e?.sku?l?.find?.(o=>o?.sku===e?.sku)||l[0]:l?.[0]},[e?.sku,e?.variants]),x=r?.id?.split?.("/")||[],D=x?.[x?.length-1],H=!r?.availableForSale&&(r?.price?.amount===R||r?.price===R),g=r?.coupons?.[0],I=!!(y&&g),L=e?.price?.currencyCode||"USD",S=(0,p.useMemo)(()=>(0,ee.formatVariantPrice)({locale:b,amount:I?g?.variant_price4wscode:r?.price,baseAmount:I?r?.price:0,currencyCode:L}),[L,b,I,g?.variant_price4wscode,r]),{price:P,basePrice:Q,discount:N,discountAmount:h}=S,{imageUrl:T,altText:$}=ae(e),w=e?.custom_name||e?.title,j=e?.custom_description||e?.description,i=()=>{if(g?.value_type==="fixed_amount"){const l=h||"",o=l.match(/^(.*?)(\d[\d.,]*)(.*)$/);if(o){const[,m,d,re]=o;let X=d;return d.endsWith(".00")?X=d.replace(/\.00$/,""):d.endsWith(",00")&&(X=d.replace(/,00$/,"")),`${m}${X}${re}`}return l}return N||""};(0,p.useEffect)(()=>{let l=[];if(N||h){const m=`${i()}${U?.off||B?.off||""}`;G(m),l.push(m)}const o=e?.tags?.filter?.(m=>m?.startsWith?.("CLtag"))?.map?.(m=>m?.replace?.("CLtag:",""))?.slice?.(0,N?1:2);n(l.concat(o))},[e?.tags,N,h,U?.off,B?.off]),(0,ie.useExposure)(z,{componentType:F,componentName:M,componentTitle:w,componentDescription:j,position:t?.index+1});const c=()=>(0,s.jsxs)(s.Fragment,{children:[_&&A?.length>0?(0,s.jsx)("div",{className:"mb-1 box-border flex h-8 flex-wrap gap-1 overflow-hidden",children:A?.map?.((l,o)=>(0,s.jsx)(q.default,{className:"shelf-items-tag",children:l},o))}):null,w?(0,s.jsx)(oe.Heading,{as:"h3",title:w||"",size:2,className:"shelf-display-product-title line-clamp-2",html:w||""}):null,j?(0,s.jsx)(te.Text,{size:2,className:"lg-desktop:text-lg desktop:text-base shelf-display-product-description line-clamp-1 text-sm",html:j||""}):null,(0,s.jsx)("div",{className:"mb-2 mt-4 flex items-center",children:H?(0,s.jsx)("div",{className:"tablet:text-2xl text-info-primary text-xl font-bold",children:O?.soldOutText}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("div",{className:"final-price tablet:text-2xl text-info-primary text-xl font-bold",children:r?.availableForSale&&P||""}),(0,s.jsx)("div",{className:"origin-price tablet:text-xl text-info-secondary ml-1 text-lg font-bold line-through",children:r?.availableForSale&&Q||""})]})}),(0,s.jsxs)("div",{className:(0,v.cn)("shelf-flex-button-group","lg-desktop:gap-3 flex items-center gap-2",t.direction==="vertical"?"flex-col":""),children:[t?.secondaryButton?(0,s.jsx)(W.default,{variant:"secondary",onClick:()=>K(e,t?.index,t,g),className:`
2
2
  ${t.direction==="vertical"?"w-full":""}
3
- `,children:t?.secondaryButton||""}):null,t?.primaryButton?(0,s.jsx)(I.default,{variant:"primary",onClick:()=>R(e,t?.index,t,y),className:`
3
+ `,children:t?.secondaryButton||""}):null,t?.primaryButton?(0,s.jsx)(W.default,{variant:"primary",onClick:()=>J(e,t?.index,t,g),className:`
4
4
  ${t.direction==="vertical"?"w-full":""}
5
- `,children:t?.primaryButton||""}):null]})]});return(0,s.jsx)("div",{ref:j,className:(0,f.cn)("bg-container-secondary-1 tablet:hover:bg-info-white box-border w-full cursor-pointer overflow-hidden duration-300",d==="round"?"rounded-2xl":"rounded-none","lg-desktop:aspect-w-[404] lg-desktop:aspect-h-[480] desktop:aspect-w-[316] desktop:aspect-h-[384]","laptop:aspect-w-[288] laptop:aspect-h-[360] aspect-w-[296] aspect-h-[360] relative","md-tablet:h-[360px] shelf-display-item"),children:a?(0,s.jsx)("div",{className:"absolute inset-0 box-border overflow-hidden",children:(0,s.jsxs)("div",{className:"relative inset-0 size-full",children:[(0,s.jsx)(F.default,{source:_,alt:S,className:"flex h-full justify-center object-cover [&_img]:w-auto"}),(0,s.jsx)("div",{className:"desktop:p-6 absolute inset-x-0 bottom-0 box-border overflow-hidden p-4",children:c()})]})}):(0,s.jsxs)("div",{className:"desktop:p-6 absolute inset-0 box-border flex flex-col justify-between overflow-hidden p-4",children:[B&&w&&(0,s.jsx)(W.default,{className:"shelf-prices-tag absolute left-4 top-4 z-10",children:B||""}),(0,s.jsx)("div",{className:(0,f.cn)("lg-desktop:h-[195px] shelf-display-item-image relative mb-2 inline-block h-[140px] w-full flex-1 overflow-hidden"),children:(0,s.jsx)("a",{"aria-label":b,target:t?.target,href:(0,ee.trackUrlRef)(`${g==="us"||!g?"":`/${g}`}/products/${e?.handle}?variant=${C}`,`${L}_${E}`),onClick:()=>{(0,Z.gaTrack)({event:"ga4Event",event_name:"select_item",event_parameters:{page_group:"Home Page",item_list_name:"Home_Page_Bundle",items:[{item_id:e?.sku||n?.sku,item_name:e?.name,item_variant:n?.name,price:n?.price,index:t?.index+1}]}})},children:(0,s.jsx)(F.default,{source:_,alt:S,className:"flex h-full justify-center object-cover [&_img]:w-auto"})})}),c()]})},e?.id||e?.handle)},ue=({data:e,configuration:t})=>{const{itemShape:a,itemLength:d,metafields:m}=t||{},{discounts:w,discountsCopy:k}=m||{},{locale:v="us",copyWriting:g}=(0,Q.useAiuiContext)(),[$,P]=(0,r.useState)([]),N=(0,r.useRef)(null),j=(o,c,l,p)=>t?.event?.primaryButton?.(o,c+1,l,p),O=(o,c,l,p)=>t?.event?.secondaryButton?.(o,c+1,l,p),i=(0,r.useMemo)(()=>{const o=e?.variants||[];if(o.length)return e?.sku&&o.find(c=>c?.sku===e?.sku)||o[0]},[e?.sku,e?.variants]),B=i?.id?.split?.("/")||[],M=B?.[B?.length-1],R=!i?.availableForSale&&(i?.price?.amount===A||i?.price===A),V=t?.isShowTag,n=t?.isShowOriginalPrice,h=i?.coupons?.[0],C=!!(n&&h),U=e?.price?.currencyCode||"USD",y=(0,r.useMemo)(()=>(0,X.formatVariantPrice)({locale:v,amount:C?h?.variant_price4wscode:i?.price,baseAmount:C?i?.price:0,currencyCode:U}),[U,v,C,h?.variant_price4wscode,i]),{price:D,basePrice:z,discount:T}=y,{imageUrl:q,altText:G}=le(e),u=e?.custom_name||e?.title,_=e?.custom_description||e?.description;(0,se.useExposure)(N,{componentType:L,componentName:E,componentTitle:u,componentDescription:_,position:t?.index+1});const S=()=>d>=2?{boxItem:"lg-desktop:max-w-[401px] desktop:max-w-[292px] max-w-full",imgItem:"m-tablet:m-auto lg-desktop:max-w-[330px] lg-desktop:max-h-[330px] desktop:max-w-[260px] desktop:max-h-[260px] max-w-[138px] max-h-[138px]",wrap:"lg-desktop:aspect-w-[824] lg-desktop:aspect-h-[480] desktop:aspect-w-[648] desktop:aspect-h-[380] laptop:aspect-w-[440] laptop:aspect-h-[356] tablet:aspect-w-[346] tablet:aspect-h-[360] md-tablet:w-full"}:{boxItem:"lg-desktop:max-w-[401px] desktop:max-w-[292px] laptop:max-w-[289px] max-w-[262px]",imgItem:"md-tablet:m-auto lg-desktop:max-w-[450px] lg-desktop:max-h-[450px] desktop:max-w-[332px] desktop:max-h-[332px] max-w-[312px] max-h-[312px]",wrap:"lg-desktop:aspect-w-[1664] lg-desktop:aspect-h-[480] desktop:aspect-w-[1312] desktop:aspect-h-[380] laptop:aspect-w-[896] laptop:aspect-h-[356] tablet:aspect-w-[704] tablet:aspect-h-[360] md-tablet:w-full"},b=()=>d>=2?"flex flex-col justify-between desktop:gap-12 desktop:flex-row desktop:justify-center desktop:items-center":"flex justify-center items-center gap-6 md-tablet:flex-col";return(0,r.useEffect)(()=>{let o=[];if(T){const l=`${T}${w?.off||k?.off||""}`;o.push(l)}const c=e?.tags?.filter?.(l=>l?.startsWith?.("CLtag"))?.map?.(l=>l?.replace?.("CLtag:",""))?.slice?.(0,T?1:2);P(o.concat(c))},[e?.tags,T,w?.off,k?.off]),(0,s.jsx)("div",{ref:N,className:(0,f.cn)(S().wrap,a==="round"?"rounded-2xl":"rounded-none","shelf-display-item","bg-container-secondary-1 tablet:hover:bg-info-white gap-6 duration-300","md-tablet:h-[360px] relative box-border w-full cursor-pointer overflow-hidden"),children:(0,s.jsxs)("div",{className:(0,f.cn)(b(),"desktop:p-6 absolute inset-0 box-border overflow-hidden p-4"),children:[(0,s.jsx)("div",{className:(0,f.cn)(S().imgItem,"desktop:mb-0 relative mb-1 overflow-hidden"),children:(0,s.jsx)("a",{"aria-label":u,target:t?.target,href:(0,ee.trackUrlRef)(`${v==="us"||!v?"":`/${v}`}/products/${e?.handle}?variant=${M}`,`${L}_${E}`),onClick:()=>{(0,Z.gaTrack)({event:"ga4Event",event_name:"select_item",event_parameters:{page_group:"Home Page",item_list_name:"Home_Page_Bundle",items:[{item_id:e?.sku||i?.sku,item_name:e?.name,item_variant:i?.name,price:i?.price,index:t?.index+1}]}})},children:(0,s.jsx)(F.default,{source:q,alt:G,className:"flex h-full justify-center object-cover [&_img]:w-auto"})})}),(0,s.jsxs)("div",{className:(0,f.cn)("flex flex-col items-start justify-center",S().boxItem),children:[V&&$?.length>0?(0,s.jsx)("div",{className:"mb-1 box-border flex h-8 flex-wrap gap-1 overflow-hidden",children:$?.map?.((o,c)=>(0,s.jsx)(W.default,{className:"shelf-items-tag",children:o},c))}):null,u?(0,s.jsx)(te.Heading,{as:"h3",title:u||"",size:2,className:"shelf-display-product-title mb-1 line-clamp-2",html:u||""}):null,_?(0,s.jsx)(Y.Text,{size:2,className:"lg-desktop:text-lg lg-desktop:h-[26px] desktop:text-base desktop:h-6 shelf-display-product-description line-clamp-1 h-5 text-sm",html:_||""}):null,(0,s.jsx)("div",{className:"mb-2 mt-5 flex items-center",children:R?(0,s.jsx)("div",{className:"tablet:text-2xl text-info-primary text-xl font-bold",children:g?.soldOutText}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("div",{className:"final-price tablet:text-2xl text-info-primary text-xl font-bold",children:i?.availableForSale&&D||""}),(0,s.jsx)("div",{className:"origin-price tablet:text-xl text-info-secondary ml-1 text-lg font-bold line-through",children:i?.availableForSale&&z||""})]})}),(0,s.jsxs)("div",{className:(0,f.cn)("shelf-flex-button-group","lg-desktop:gap-3 flex items-center gap-2",t.direction==="vertical"?"flex-col":""),children:[t?.secondaryButton?(0,s.jsx)(I.default,{variant:"secondary",onClick:()=>O(e,t?.index,t,h),className:`
5
+ `,children:t?.primaryButton||""}):null]})]});return(0,s.jsx)("div",{ref:z,className:(0,v.cn)("bg-container-secondary-1 tablet:hover:bg-info-white box-border w-full cursor-pointer overflow-hidden duration-300",f==="round"?"rounded-2xl":"rounded-none","lg-desktop:aspect-w-[404] lg-desktop:aspect-h-[480] desktop:aspect-w-[316] desktop:aspect-h-[384]","laptop:aspect-w-[288] laptop:aspect-h-[360] aspect-w-[296] aspect-h-[360] relative","md-tablet:h-[360px] shelf-display-item"),children:a?(0,s.jsx)("div",{className:"absolute inset-0 box-border overflow-hidden",children:(0,s.jsxs)("div",{className:"relative inset-0 size-full",children:[(0,s.jsx)(V.default,{source:T,alt:$,className:"flex h-full justify-center object-cover [&_img]:w-auto"}),(0,s.jsx)("div",{className:"desktop:p-6 absolute inset-x-0 bottom-0 box-border overflow-hidden p-4",children:c()})]})}):(0,s.jsxs)("div",{className:"desktop:p-6 absolute inset-0 box-border flex flex-col justify-between overflow-hidden p-4",children:[C&&k&&(0,s.jsx)(q.default,{className:"shelf-prices-tag absolute left-4 top-4 z-10",children:C||""}),(0,s.jsx)("div",{className:(0,v.cn)("lg-desktop:h-[195px] shelf-display-item-image relative mb-2 inline-block h-[140px] w-full flex-1 overflow-hidden"),children:(0,s.jsx)("a",{"aria-label":w,target:t?.target,href:(0,le.trackUrlRef)(`${b==="us"||!b?"":`/${b}`}/products/${e?.handle}?variant=${D}`,`${F}_${M}`),onClick:()=>{(0,se.gaTrack)({event:"ga4Event",event_name:"select_item",event_parameters:{page_group:"Home Page",item_list_name:"Home_Page_Bundle",items:[{item_id:e?.sku||r?.sku,item_name:e?.name,item_variant:r?.name,price:r?.price,index:t?.index+1}]}})},children:(0,s.jsx)(V.default,{source:T,alt:$,className:"flex h-full justify-center object-cover [&_img]:w-auto"})})}),c()]})},e?.id||e?.handle)},ve=({data:e,configuration:t})=>{const{itemShape:a,itemLength:f,metafields:u}=t||{},{discounts:k,discountsCopy:_}=u||{},{locale:y="us",copyWriting:b}=(0,Z.useAiuiContext)(),[O,U]=(0,p.useState)([]),B=(0,p.useRef)(null),z=(i,c,l,o)=>t?.event?.primaryButton?.(i,c+1,l,o),A=(i,c,l,o)=>t?.event?.secondaryButton?.(i,c+1,l,o),n=(0,p.useMemo)(()=>{const i=e?.variants||[];if(i.length)return e?.sku&&i.find(c=>c?.sku===e?.sku)||i[0]},[e?.sku,e?.variants]),C=n?.id?.split?.("/")||[],G=C?.[C?.length-1],J=!n?.availableForSale&&(n?.price?.amount===R||n?.price===R),K=t?.isShowTag,r=t?.isShowOriginalPrice,x=n?.coupons?.[0],D=!!(r&&x),H=e?.price?.currencyCode||"USD",g=(0,p.useMemo)(()=>(0,ee.formatVariantPrice)({locale:y,amount:D?x?.variant_price4wscode:n?.price,baseAmount:D?n?.price:0,currencyCode:H}),[H,y,D,x?.variant_price4wscode,n]),{price:I,basePrice:L,discount:S,discountAmount:P}=g,{imageUrl:Q,altText:N}=ae(e),h=e?.custom_name||e?.title,T=e?.custom_description||e?.description;(0,ie.useExposure)(B,{componentType:F,componentName:M,componentTitle:h,componentDescription:T,position:t?.index+1});const $=()=>f>=2?{boxItem:"lg-desktop:max-w-[401px] desktop:max-w-[292px] max-w-full",imgItem:"m-tablet:m-auto lg-desktop:max-w-[330px] lg-desktop:max-h-[330px] desktop:max-w-[260px] desktop:max-h-[260px] max-w-[138px] max-h-[138px]",wrap:"lg-desktop:aspect-w-[824] lg-desktop:aspect-h-[480] desktop:aspect-w-[648] desktop:aspect-h-[380] laptop:aspect-w-[440] laptop:aspect-h-[356] tablet:aspect-w-[346] tablet:aspect-h-[360] md-tablet:w-full"}:{boxItem:"lg-desktop:max-w-[401px] desktop:max-w-[292px] laptop:max-w-[289px] max-w-[262px]",imgItem:"md-tablet:m-auto lg-desktop:max-w-[450px] lg-desktop:max-h-[450px] desktop:max-w-[332px] desktop:max-h-[332px] max-w-[312px] max-h-[312px]",wrap:"lg-desktop:aspect-w-[1664] lg-desktop:aspect-h-[480] desktop:aspect-w-[1312] desktop:aspect-h-[380] laptop:aspect-w-[896] laptop:aspect-h-[356] tablet:aspect-w-[704] tablet:aspect-h-[360] md-tablet:w-full"},w=()=>f>=2?"flex flex-col justify-between desktop:gap-12 desktop:flex-row desktop:justify-center desktop:items-center":"flex justify-center items-center gap-6 md-tablet:flex-col",j=()=>{if(x?.value_type==="fixed_amount"){const i=P||"",c=i.match(/^(.*?)(\d[\d.,]*)(.*)$/);if(c){const[,l,o,m]=c;let d=o;return o.endsWith(".00")?d=o.replace(/\.00$/,""):o.endsWith(",00")&&(d=o.replace(/,00$/,"")),`${l}${d}${m}`}return i}return S||""};return(0,p.useEffect)(()=>{let i=[];if(S||P){const l=`${j()}${k?.off||_?.off||""}`;i.push(l)}const c=e?.tags?.filter?.(l=>l?.startsWith?.("CLtag"))?.map?.(l=>l?.replace?.("CLtag:",""))?.slice?.(0,S?1:2);U(i.concat(c))},[e?.tags,S,P,k?.off,_?.off]),(0,s.jsx)("div",{ref:B,className:(0,v.cn)($().wrap,a==="round"?"rounded-2xl":"rounded-none","shelf-display-item","bg-container-secondary-1 tablet:hover:bg-info-white gap-6 duration-300","md-tablet:h-[360px] relative box-border w-full cursor-pointer overflow-hidden"),children:(0,s.jsxs)("div",{className:(0,v.cn)(w(),"desktop:p-6 absolute inset-0 box-border overflow-hidden p-4"),children:[(0,s.jsx)("div",{className:(0,v.cn)($().imgItem,"desktop:mb-0 relative mb-1 overflow-hidden"),children:(0,s.jsx)("a",{"aria-label":h,target:t?.target,href:(0,le.trackUrlRef)(`${y==="us"||!y?"":`/${y}`}/products/${e?.handle}?variant=${G}`,`${F}_${M}`),onClick:()=>{(0,se.gaTrack)({event:"ga4Event",event_name:"select_item",event_parameters:{page_group:"Home Page",item_list_name:"Home_Page_Bundle",items:[{item_id:e?.sku||n?.sku,item_name:e?.name,item_variant:n?.name,price:n?.price,index:t?.index+1}]}})},children:(0,s.jsx)(V.default,{source:Q,alt:N,className:"flex h-full justify-center object-cover [&_img]:w-auto"})})}),(0,s.jsxs)("div",{className:(0,v.cn)("flex flex-col items-start justify-center",$().boxItem),children:[K&&O?.length>0?(0,s.jsx)("div",{className:"mb-1 box-border flex h-8 flex-wrap gap-1 overflow-hidden",children:O?.map?.((i,c)=>(0,s.jsx)(q.default,{className:"shelf-items-tag",children:i},c))}):null,h?(0,s.jsx)(oe.Heading,{as:"h3",title:h||"",size:2,className:"shelf-display-product-title mb-1 line-clamp-2",html:h||""}):null,T?(0,s.jsx)(te.Text,{size:2,className:"lg-desktop:text-lg lg-desktop:h-[26px] desktop:text-base desktop:h-6 shelf-display-product-description line-clamp-1 h-5 text-sm",html:T||""}):null,(0,s.jsx)("div",{className:"mb-2 mt-5 flex items-center",children:J?(0,s.jsx)("div",{className:"tablet:text-2xl text-info-primary text-xl font-bold",children:b?.soldOutText}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("div",{className:"final-price tablet:text-2xl text-info-primary text-xl font-bold",children:n?.availableForSale&&I||""}),(0,s.jsx)("div",{className:"origin-price tablet:text-xl text-info-secondary ml-1 text-lg font-bold line-through",children:n?.availableForSale&&L||""})]})}),(0,s.jsxs)("div",{className:(0,v.cn)("shelf-flex-button-group","lg-desktop:gap-3 flex items-center gap-2",t.direction==="vertical"?"flex-col":""),children:[t?.secondaryButton?(0,s.jsx)(W.default,{variant:"secondary",onClick:()=>A(e,t?.index,t,x),className:`
6
6
  ${t.direction==="vertical"?"w-full":""}
7
- `,children:t?.secondaryButton||""}):null,t?.primaryButton?(0,s.jsx)(I.default,{variant:"primary",onClick:()=>j(e,t?.index,t,h),className:`
7
+ `,children:t?.secondaryButton||""}):null,t?.primaryButton?(0,s.jsx)(W.default,{variant:"primary",onClick:()=>z(e,t?.index,t,x),className:`
8
8
  ${t.direction==="vertical"?"w-full":""}
9
9
  `,children:t?.primaryButton||""}):null]})]})]})},e?.id||e?.handle)};
10
10
  //# sourceMappingURL=shelfDisplayItem.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/biz-components/ShelfDisplay/shelfDisplayItem.tsx"],
4
- "sourcesContent": ["import { useAiuiContext } from '../AiuiProvider/index.js'\nimport { formatVariantPrice } from './shelfDisplay.js'\nimport Picture from '../../components/picture.js'\nimport Badge from '../../components/badge.js'\nimport { cn } from '../../helpers/utils.js'\nimport { Text } from '../../components/text.js'\nimport Button from '../../components/button.js'\nimport { gaTrack } from '../../shared/track.js'\nimport { trackUrlRef } from '../../shared/trackUrlRef.js'\nimport { Heading } from '../../components/heading.js'\nimport type { ShelfDisplayItem, ShelfDisplayType } from './shelfDisplay.js'\nimport { useExposure } from '../../hooks/useExposure.js'\nimport { useRef, useEffect, useMemo, useState } from 'react'\n\nconst componentType = 'image'\nconst componentName = 'product_shelf'\n\nconst SOLD_OUT_PRICE = 9999999.99\n\n// \u516C\u5171\u51FD\u6570\uFF1A\u83B7\u53D6\u4EA7\u54C1\u56FE\u7247URL\u548CaltText\nexport const getProductImage = (data: any) => {\n const sku = data?.sku\n const skuArray = data?.variants\n const findSku = skuArray?.find((item: any) => item?.sku === sku)\n const imageUrl = findSku?.image?.url || skuArray?.[0]?.image?.url || ''\n const altText = findSku?.image?.altText || skuArray?.[0]?.image?.altText || data?.custom_name || data?.title || ''\n\n return {\n imageUrl,\n altText,\n }\n}\n\nexport const ShelfDisplayWrapItem = ({ data, configuration }: { data: any; configuration?: any }) => {\n const {\n isDisplayBackImage = false,\n itemShape,\n metafields,\n isTopTag = false,\n isShowTag,\n isShowOriginalPrice,\n } = configuration || {}\n const { locale = 'us', copyWriting } = useAiuiContext()\n const { discounts, discountsCopy } = metafields || {}\n const ref = useRef<HTMLDivElement>(null)\n const [showTags, setShowTags] = useState<string[]>([])\n const [currentPriceTag, setCurrentPriceTag] = useState<string>('')\n\n const onPrimaryButton = (params: ShelfDisplayItem, index: number, data: ShelfDisplayType, coupon: any) =>\n configuration?.event?.primaryButton?.(params, index + 1, data, coupon)\n\n const onSecondaryButton = (params: ShelfDisplayItem, index: number, data: ShelfDisplayType, coupon: any) =>\n configuration?.event?.secondaryButton?.(params, index + 1, data, coupon)\n\n const variant = useMemo(() => {\n const variants = data?.variants || []\n if (!variants.length) {\n return undefined\n }\n if (!data?.sku) {\n return variants?.[0]\n }\n return variants?.find?.((item: any) => item?.sku === data?.sku) || variants[0]\n }, [data?.sku, data?.variants])\n\n const variantArr = variant?.id?.split?.('/') || []\n const variantId = variantArr?.[variantArr?.length - 1]\n\n const isSoldOut =\n !variant?.availableForSale && (variant?.price?.amount === SOLD_OUT_PRICE || variant?.price === SOLD_OUT_PRICE)\n\n // active \u7684 \u901A\u7528\u6298\u6263\n const coupon = variant?.coupons?.[0]\n\n const shouldUseCouponPrice = Boolean(isShowOriginalPrice && coupon)\n const currencyCode = data?.price?.currencyCode || 'USD'\n\n const priceInfo = useMemo(\n () =>\n formatVariantPrice({\n locale,\n amount: shouldUseCouponPrice ? coupon?.variant_price4wscode : variant?.price,\n baseAmount: shouldUseCouponPrice ? variant?.price : 0,\n currencyCode,\n }),\n [currencyCode, locale, shouldUseCouponPrice, coupon?.variant_price4wscode, variant]\n )\n\n const { price, basePrice, discount } = priceInfo\n\n const { imageUrl, altText } = getProductImage(data)\n\n const displayTitle = data?.custom_name || data?.title\n const displayDescription = data?.custom_description || data?.description\n\n // \u5904\u7406\u6807\u7B7E\n useEffect(() => {\n let handleTags: string[] = []\n if (discount) {\n const discountTag = `${discount}${discounts?.off || discountsCopy?.off || ''}`\n setCurrentPriceTag(discountTag)\n handleTags.push(discountTag)\n }\n const newTags = data?.tags\n ?.filter?.((item: string) => item?.startsWith?.('CLtag'))\n ?.map?.((item: string) => item?.replace?.('CLtag:', ''))\n ?.slice?.(0, discount ? 1 : 2)\n setShowTags(handleTags.concat(newTags))\n }, [data?.tags, discount, discounts?.off, discountsCopy?.off])\n\n useExposure(ref, {\n componentType,\n componentName,\n componentTitle: displayTitle,\n componentDescription: displayDescription,\n position: configuration?.index + 1,\n })\n\n const bottomContent = () => {\n return (\n <>\n {isShowTag && showTags?.length > 0 ? (\n <div className=\"mb-1 box-border flex h-8 flex-wrap gap-1 overflow-hidden\">\n {showTags?.map?.((item: any, index: number) => (\n <Badge key={index} className=\"shelf-items-tag\">\n {item}\n </Badge>\n ))}\n </div>\n ) : null}\n {displayTitle ? (\n <Heading\n as=\"h3\"\n title={displayTitle || ''}\n size={2}\n className=\"shelf-display-product-title line-clamp-2\"\n html={displayTitle || ''}\n />\n ) : null}\n {displayDescription ? (\n <Text\n size={2}\n className=\"lg-desktop:text-lg desktop:text-base shelf-display-product-description line-clamp-1 text-sm\"\n html={displayDescription || ''}\n />\n ) : null}\n <div className=\"mb-2 mt-4 flex items-center\">\n {isSoldOut ? (\n <div className=\"tablet:text-2xl text-info-primary text-xl font-bold\">{copyWriting?.soldOutText}</div>\n ) : (\n <>\n <div className=\"final-price tablet:text-2xl text-info-primary text-xl font-bold\">\n {variant?.availableForSale ? price || '' : ''}\n </div>\n <div className=\"origin-price tablet:text-xl text-info-secondary ml-1 text-lg font-bold line-through\">\n {variant?.availableForSale ? basePrice || '' : ''}\n </div>\n </>\n )}\n </div>\n {/* \u6309\u94AE\u7EC4 */}\n <div\n className={cn(\n 'shelf-flex-button-group',\n 'lg-desktop:gap-3 flex items-center gap-2',\n configuration.direction === 'vertical' ? 'flex-col' : ''\n )}\n >\n {configuration?.secondaryButton ? (\n <Button\n variant=\"secondary\"\n onClick={() => onSecondaryButton(data, configuration?.index, configuration, coupon)}\n className={`\n ${configuration.direction === 'vertical' ? 'w-full' : ''}\n `}\n >\n {configuration?.secondaryButton || ''}\n </Button>\n ) : null}\n {configuration?.primaryButton ? (\n <Button\n variant=\"primary\"\n onClick={() => onPrimaryButton(data, configuration?.index, configuration, coupon)}\n className={`\n ${configuration.direction === 'vertical' ? 'w-full' : ''}\n `}\n >\n {configuration?.primaryButton || ''}\n </Button>\n ) : null}\n </div>\n </>\n )\n }\n\n return (\n <div\n ref={ref}\n key={data?.id || data?.handle}\n className={cn(\n 'bg-container-secondary-1 tablet:hover:bg-info-white box-border w-full cursor-pointer overflow-hidden duration-300',\n itemShape === 'round' ? 'rounded-2xl' : 'rounded-none',\n 'lg-desktop:aspect-w-[404] lg-desktop:aspect-h-[480] desktop:aspect-w-[316] desktop:aspect-h-[384]',\n 'laptop:aspect-w-[288] laptop:aspect-h-[360] aspect-w-[296] aspect-h-[360] relative',\n 'md-tablet:h-[360px] shelf-display-item'\n )}\n >\n {isDisplayBackImage ? (\n <div className=\"absolute inset-0 box-border overflow-hidden\">\n <div className=\"relative inset-0 size-full\">\n <Picture\n source={imageUrl}\n alt={altText}\n className=\"flex h-full justify-center object-cover [&_img]:w-auto\"\n />\n <div className=\"desktop:p-6 absolute inset-x-0 bottom-0 box-border overflow-hidden p-4\">\n {bottomContent()}\n </div>\n </div>\n </div>\n ) : (\n <div className=\"desktop:p-6 absolute inset-0 box-border flex flex-col justify-between overflow-hidden p-4\">\n {currentPriceTag && isTopTag && (\n <Badge className=\"shelf-prices-tag absolute left-4 top-4 z-10\">{currentPriceTag || ''}</Badge>\n )}\n <div\n className={cn(\n 'lg-desktop:h-[195px] shelf-display-item-image relative mb-2 inline-block h-[140px] w-full flex-1 overflow-hidden'\n )}\n >\n <a\n aria-label={displayTitle}\n target={configuration?.target}\n href={trackUrlRef(\n `${locale === 'us' || !locale ? '' : `/${locale}`}/products/${data?.handle}?variant=${variantId}`,\n `${componentType}_${componentName}`\n )}\n onClick={() => {\n gaTrack({\n event: 'ga4Event',\n event_name: 'select_item',\n event_parameters: {\n page_group: 'Home Page',\n item_list_name: 'Home_Page_Bundle',\n items: [\n {\n item_id: data?.sku || variant?.sku,\n item_name: data?.name,\n item_variant: variant?.name,\n price: variant?.price,\n index: configuration?.index + 1,\n },\n ],\n },\n })\n }}\n >\n <Picture\n source={imageUrl}\n alt={altText}\n className=\"flex h-full justify-center object-cover [&_img]:w-auto\"\n />\n </a>\n </div>\n {bottomContent()}\n </div>\n )}\n </div>\n )\n}\n\nexport const ShelfDisplayHorizontalItem = ({ data, configuration }: { data: any; configuration?: any }) => {\n const { itemShape, itemLength, metafields } = configuration || {}\n const { discounts, discountsCopy } = metafields || {}\n const { locale = 'us', copyWriting } = useAiuiContext()\n const [showTags, setShowTags] = useState<string[]>([])\n const ref = useRef<HTMLDivElement>(null)\n\n const onPrimaryButton = (params: ShelfDisplayItem, index: number, data: ShelfDisplayType, coupon: any) =>\n configuration?.event?.primaryButton?.(params, index + 1, data, coupon)\n\n const onSecondaryButton = (params: ShelfDisplayItem, index: number, data: ShelfDisplayType, coupon: any) =>\n configuration?.event?.secondaryButton?.(params, index + 1, data, coupon)\n\n const variant = useMemo(() => {\n const variants = data?.variants || []\n if (!variants.length) {\n return undefined\n }\n if (!data?.sku) {\n return variants[0]\n }\n return variants.find((item: any) => item?.sku === data?.sku) || variants[0]\n }, [data?.sku, data?.variants])\n\n const variantArr = variant?.id?.split?.('/') || []\n const variantId = variantArr?.[variantArr?.length - 1]\n\n const isSoldOut =\n !variant?.availableForSale && (variant?.price?.amount === SOLD_OUT_PRICE || variant?.price === SOLD_OUT_PRICE)\n const isShowTag = configuration?.isShowTag\n const isShowOriginalPrice = configuration?.isShowOriginalPrice\n\n // active \u7684 \u901A\u7528\u6298\u6263\n const coupon = variant?.coupons?.[0]\n\n const shouldUseCouponPrice = Boolean(isShowOriginalPrice && coupon)\n const currencyCode = data?.price?.currencyCode || 'USD'\n\n const priceInfo = useMemo(\n () =>\n formatVariantPrice({\n locale,\n amount: shouldUseCouponPrice ? coupon?.variant_price4wscode : variant?.price,\n baseAmount: shouldUseCouponPrice ? variant?.price : 0,\n currencyCode,\n }),\n [currencyCode, locale, shouldUseCouponPrice, coupon?.variant_price4wscode, variant]\n )\n\n const { price, basePrice, discount } = priceInfo\n\n const { imageUrl, altText } = getProductImage(data)\n\n const displayTitle = data?.custom_name || data?.title\n const displayDescription = data?.custom_description || data?.description\n\n useExposure(ref, {\n componentType,\n componentName,\n componentTitle: displayTitle,\n componentDescription: displayDescription,\n position: configuration?.index + 1,\n })\n\n const showSizeClass = (): {\n boxItem: string\n imgItem: string\n wrap: string\n } => {\n if (itemLength >= 2) {\n return {\n boxItem: 'lg-desktop:max-w-[401px] desktop:max-w-[292px] max-w-full',\n imgItem:\n 'm-tablet:m-auto lg-desktop:max-w-[330px] lg-desktop:max-h-[330px] desktop:max-w-[260px] desktop:max-h-[260px] max-w-[138px] max-h-[138px]',\n wrap: 'lg-desktop:aspect-w-[824] lg-desktop:aspect-h-[480] desktop:aspect-w-[648] desktop:aspect-h-[380] laptop:aspect-w-[440] laptop:aspect-h-[356] tablet:aspect-w-[346] tablet:aspect-h-[360] md-tablet:w-full',\n }\n }\n return {\n boxItem: 'lg-desktop:max-w-[401px] desktop:max-w-[292px] laptop:max-w-[289px] max-w-[262px]',\n imgItem:\n 'md-tablet:m-auto lg-desktop:max-w-[450px] lg-desktop:max-h-[450px] desktop:max-w-[332px] desktop:max-h-[332px] max-w-[312px] max-h-[312px]',\n wrap: 'lg-desktop:aspect-w-[1664] lg-desktop:aspect-h-[480] desktop:aspect-w-[1312] desktop:aspect-h-[380] laptop:aspect-w-[896] laptop:aspect-h-[356] tablet:aspect-w-[704] tablet:aspect-h-[360] md-tablet:w-full',\n }\n }\n\n const handleWrapClass = () => {\n if (itemLength >= 2) {\n return 'flex flex-col justify-between desktop:gap-12 desktop:flex-row desktop:justify-center desktop:items-center'\n }\n return 'flex justify-center items-center gap-6 md-tablet:flex-col'\n }\n\n // \u5904\u7406\u6807\u7B7E\n useEffect(() => {\n let handleTags: string[] = []\n if (discount) {\n const discountTag = `${discount}${discounts?.off || discountsCopy?.off || ''}`\n handleTags.push(discountTag)\n }\n const newTags = data?.tags\n ?.filter?.((item: string) => item?.startsWith?.('CLtag'))\n ?.map?.((item: string) => item?.replace?.('CLtag:', ''))\n ?.slice?.(0, discount ? 1 : 2)\n setShowTags(handleTags.concat(newTags))\n }, [data?.tags, discount, discounts?.off, discountsCopy?.off])\n\n return (\n <div\n ref={ref}\n key={data?.id || data?.handle}\n className={cn(\n showSizeClass().wrap,\n itemShape === 'round' ? 'rounded-2xl' : 'rounded-none',\n 'shelf-display-item',\n 'bg-container-secondary-1 tablet:hover:bg-info-white gap-6 duration-300',\n 'md-tablet:h-[360px] relative box-border w-full cursor-pointer overflow-hidden'\n )}\n >\n <div className={cn(handleWrapClass(), 'desktop:p-6 absolute inset-0 box-border overflow-hidden p-4')}>\n <div className={cn(showSizeClass().imgItem, 'desktop:mb-0 relative mb-1 overflow-hidden')}>\n <a\n aria-label={displayTitle}\n target={configuration?.target}\n href={trackUrlRef(\n `${locale === 'us' || !locale ? '' : `/${locale}`}/products/${data?.handle}?variant=${variantId}`,\n `${componentType}_${componentName}`\n )}\n onClick={() => {\n gaTrack({\n event: 'ga4Event',\n event_name: 'select_item',\n event_parameters: {\n page_group: 'Home Page',\n item_list_name: 'Home_Page_Bundle',\n items: [\n {\n item_id: data?.sku || variant?.sku,\n item_name: data?.name,\n item_variant: variant?.name,\n price: variant?.price,\n index: configuration?.index + 1,\n },\n ],\n },\n })\n }}\n >\n <Picture\n source={imageUrl}\n alt={altText}\n className=\"flex h-full justify-center object-cover [&_img]:w-auto\"\n />\n </a>\n </div>\n <div className={cn('flex flex-col items-start justify-center', showSizeClass().boxItem)}>\n {isShowTag && showTags?.length > 0 ? (\n <div className=\"mb-1 box-border flex h-8 flex-wrap gap-1 overflow-hidden\">\n {showTags?.map?.((item: any, index: number) => (\n <Badge key={index} className=\"shelf-items-tag\">\n {item}\n </Badge>\n ))}\n </div>\n ) : null}\n {displayTitle ? (\n <Heading\n as=\"h3\"\n title={displayTitle || ''}\n size={2}\n className=\"shelf-display-product-title mb-1 line-clamp-2\"\n html={displayTitle || ''}\n />\n ) : null}\n {displayDescription ? (\n <Text\n size={2}\n className=\"lg-desktop:text-lg lg-desktop:h-[26px] desktop:text-base desktop:h-6 shelf-display-product-description line-clamp-1 h-5 text-sm\"\n html={displayDescription || ''}\n />\n ) : null}\n <div className=\"mb-2 mt-5 flex items-center\">\n {isSoldOut ? (\n <div className=\"tablet:text-2xl text-info-primary text-xl font-bold\">{copyWriting?.soldOutText}</div>\n ) : (\n <>\n <div className=\"final-price tablet:text-2xl text-info-primary text-xl font-bold\">\n {variant?.availableForSale ? price || '' : ''}\n </div>\n <div className=\"origin-price tablet:text-xl text-info-secondary ml-1 text-lg font-bold line-through\">\n {variant?.availableForSale ? basePrice || '' : ''}\n </div>\n </>\n )}\n </div>\n {/* \u6309\u94AE\u7EC4 */}\n <div\n className={cn(\n 'shelf-flex-button-group',\n 'lg-desktop:gap-3 flex items-center gap-2',\n configuration.direction === 'vertical' ? 'flex-col' : ''\n )}\n >\n {configuration?.secondaryButton ? (\n <Button\n variant=\"secondary\"\n onClick={() => onSecondaryButton(data, configuration?.index, configuration, coupon)}\n className={`\n ${configuration.direction === 'vertical' ? 'w-full' : ''}\n `}\n >\n {configuration?.secondaryButton || ''}\n </Button>\n ) : null}\n {configuration?.primaryButton ? (\n <Button\n variant=\"primary\"\n onClick={() => onPrimaryButton(data, configuration?.index, configuration, coupon)}\n className={`\n ${configuration.direction === 'vertical' ? 'w-full' : ''}\n `}\n >\n {configuration?.primaryButton || ''}\n </Button>\n ) : null}\n </div>\n </div>\n </div>\n </div>\n )\n}\n"],
5
- "mappings": "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",
6
- "names": ["shelfDisplayItem_exports", "__export", "ShelfDisplayHorizontalItem", "ShelfDisplayWrapItem", "getProductImage", "__toCommonJS", "import_jsx_runtime", "import_AiuiProvider", "import_shelfDisplay", "import_picture", "import_badge", "import_utils", "import_text", "import_button", "import_track", "import_trackUrlRef", "import_heading", "import_useExposure", "import_react", "componentType", "componentName", "SOLD_OUT_PRICE", "data", "sku", "skuArray", "findSku", "item", "imageUrl", "altText", "configuration", "isDisplayBackImage", "itemShape", "metafields", "isTopTag", "isShowTag", "isShowOriginalPrice", "locale", "copyWriting", "discounts", "discountsCopy", "ref", "showTags", "setShowTags", "currentPriceTag", "setCurrentPriceTag", "onPrimaryButton", "params", "index", "coupon", "onSecondaryButton", "variant", "variants", "variantArr", "variantId", "isSoldOut", "shouldUseCouponPrice", "currencyCode", "priceInfo", "price", "basePrice", "discount", "displayTitle", "displayDescription", "handleTags", "discountTag", "newTags", "bottomContent", "Badge", "Button", "Picture", "itemLength", "showSizeClass", "handleWrapClass"]
4
+ "sourcesContent": ["import { useAiuiContext } from '../AiuiProvider/index.js'\nimport { formatVariantPrice } from './shelfDisplay.js'\nimport Picture from '../../components/picture.js'\nimport Badge from '../../components/badge.js'\nimport { cn } from '../../helpers/utils.js'\nimport { Text } from '../../components/text.js'\nimport Button from '../../components/button.js'\nimport { gaTrack } from '../../shared/track.js'\nimport { trackUrlRef } from '../../shared/trackUrlRef.js'\nimport { Heading } from '../../components/heading.js'\nimport type { ShelfDisplayItem, ShelfDisplayType } from './shelfDisplay.js'\nimport { useExposure } from '../../hooks/useExposure.js'\nimport { useRef, useEffect, useMemo, useState } from 'react'\n\nconst componentType = 'image'\nconst componentName = 'product_shelf'\n\nconst SOLD_OUT_PRICE = 9999999.99\n\n// \u516C\u5171\u51FD\u6570\uFF1A\u83B7\u53D6\u4EA7\u54C1\u56FE\u7247URL\u548CaltText\nexport const getProductImage = (data: any) => {\n const sku = data?.sku\n const skuArray = data?.variants\n const findSku = skuArray?.find((item: any) => item?.sku === sku)\n const imageUrl = findSku?.image?.url || skuArray?.[0]?.image?.url || ''\n const altText = findSku?.image?.altText || skuArray?.[0]?.image?.altText || data?.custom_name || data?.title || ''\n\n return {\n imageUrl,\n altText,\n }\n}\n\nexport const ShelfDisplayWrapItem = ({ data, configuration }: { data: any; configuration?: any }) => {\n const {\n isDisplayBackImage = false,\n itemShape,\n metafields,\n isTopTag = false,\n isShowTag,\n isShowOriginalPrice,\n } = configuration || {}\n const { locale = 'us', copyWriting } = useAiuiContext()\n const { discounts, discountsCopy } = metafields || {}\n const ref = useRef<HTMLDivElement>(null)\n const [showTags, setShowTags] = useState<string[]>([])\n const [currentPriceTag, setCurrentPriceTag] = useState<string>('')\n\n const onPrimaryButton = (params: ShelfDisplayItem, index: number, data: ShelfDisplayType, coupon: any) =>\n configuration?.event?.primaryButton?.(params, index + 1, data, coupon)\n\n const onSecondaryButton = (params: ShelfDisplayItem, index: number, data: ShelfDisplayType, coupon: any) =>\n configuration?.event?.secondaryButton?.(params, index + 1, data, coupon)\n\n const variant = useMemo(() => {\n const variants = data?.variants || []\n if (!variants.length) {\n return undefined\n }\n if (!data?.sku) {\n return variants?.[0]\n }\n return variants?.find?.((item: any) => item?.sku === data?.sku) || variants[0]\n }, [data?.sku, data?.variants])\n\n const variantArr = variant?.id?.split?.('/') || []\n const variantId = variantArr?.[variantArr?.length - 1]\n\n const isSoldOut =\n !variant?.availableForSale && (variant?.price?.amount === SOLD_OUT_PRICE || variant?.price === SOLD_OUT_PRICE)\n\n // active \u7684 \u901A\u7528\u6298\u6263\n const coupon = variant?.coupons?.[0]\n\n const shouldUseCouponPrice = Boolean(isShowOriginalPrice && coupon)\n const currencyCode = data?.price?.currencyCode || 'USD'\n\n const priceInfo = useMemo(\n () =>\n formatVariantPrice({\n locale,\n amount: shouldUseCouponPrice ? coupon?.variant_price4wscode : variant?.price,\n baseAmount: shouldUseCouponPrice ? variant?.price : 0,\n currencyCode,\n }),\n [currencyCode, locale, shouldUseCouponPrice, coupon?.variant_price4wscode, variant]\n )\n\n const { price, basePrice, discount, discountAmount } = priceInfo\n\n const { imageUrl, altText } = getProductImage(data)\n\n const displayTitle = data?.custom_name || data?.title\n const displayDescription = data?.custom_description || data?.description\n\n const showPrice = () => {\n if (coupon?.value_type === 'fixed_amount') {\n const amountStr = discountAmount || ''\n const match = amountStr.match(/^(.*?)(\\d[\\d.,]*)(.*)$/)\n if (match) {\n const [, prefix, numeric, suffix] = match\n let updatedNumeric = numeric\n if (numeric.endsWith('.00')) {\n updatedNumeric = numeric.replace(/\\.00$/, '')\n } else if (numeric.endsWith(',00')) {\n updatedNumeric = numeric.replace(/,00$/, '')\n }\n return `${prefix}${updatedNumeric}${suffix}`\n }\n return amountStr\n }\n return discount || ''\n }\n\n // \u5904\u7406\u6807\u7B7E\n useEffect(() => {\n let handleTags: string[] = []\n if (discount || discountAmount) {\n const discountTag = `${showPrice()}${discounts?.off || discountsCopy?.off || ''}`\n setCurrentPriceTag(discountTag)\n handleTags.push(discountTag)\n }\n const newTags = data?.tags\n ?.filter?.((item: string) => item?.startsWith?.('CLtag'))\n ?.map?.((item: string) => item?.replace?.('CLtag:', ''))\n ?.slice?.(0, discount ? 1 : 2)\n setShowTags(handleTags.concat(newTags))\n }, [data?.tags, discount, discountAmount, discounts?.off, discountsCopy?.off])\n\n useExposure(ref, {\n componentType,\n componentName,\n componentTitle: displayTitle,\n componentDescription: displayDescription,\n position: configuration?.index + 1,\n })\n\n const bottomContent = () => {\n return (\n <>\n {isShowTag && showTags?.length > 0 ? (\n <div className=\"mb-1 box-border flex h-8 flex-wrap gap-1 overflow-hidden\">\n {showTags?.map?.((item: any, index: number) => (\n <Badge key={index} className=\"shelf-items-tag\">\n {item}\n </Badge>\n ))}\n </div>\n ) : null}\n {displayTitle ? (\n <Heading\n as=\"h3\"\n title={displayTitle || ''}\n size={2}\n className=\"shelf-display-product-title line-clamp-2\"\n html={displayTitle || ''}\n />\n ) : null}\n {displayDescription ? (\n <Text\n size={2}\n className=\"lg-desktop:text-lg desktop:text-base shelf-display-product-description line-clamp-1 text-sm\"\n html={displayDescription || ''}\n />\n ) : null}\n <div className=\"mb-2 mt-4 flex items-center\">\n {isSoldOut ? (\n <div className=\"tablet:text-2xl text-info-primary text-xl font-bold\">{copyWriting?.soldOutText}</div>\n ) : (\n <>\n <div className=\"final-price tablet:text-2xl text-info-primary text-xl font-bold\">\n {variant?.availableForSale ? price || '' : ''}\n </div>\n <div className=\"origin-price tablet:text-xl text-info-secondary ml-1 text-lg font-bold line-through\">\n {variant?.availableForSale ? basePrice || '' : ''}\n </div>\n </>\n )}\n </div>\n {/* \u6309\u94AE\u7EC4 */}\n <div\n className={cn(\n 'shelf-flex-button-group',\n 'lg-desktop:gap-3 flex items-center gap-2',\n configuration.direction === 'vertical' ? 'flex-col' : ''\n )}\n >\n {configuration?.secondaryButton ? (\n <Button\n variant=\"secondary\"\n onClick={() => onSecondaryButton(data, configuration?.index, configuration, coupon)}\n className={`\n ${configuration.direction === 'vertical' ? 'w-full' : ''}\n `}\n >\n {configuration?.secondaryButton || ''}\n </Button>\n ) : null}\n {configuration?.primaryButton ? (\n <Button\n variant=\"primary\"\n onClick={() => onPrimaryButton(data, configuration?.index, configuration, coupon)}\n className={`\n ${configuration.direction === 'vertical' ? 'w-full' : ''}\n `}\n >\n {configuration?.primaryButton || ''}\n </Button>\n ) : null}\n </div>\n </>\n )\n }\n\n return (\n <div\n ref={ref}\n key={data?.id || data?.handle}\n className={cn(\n 'bg-container-secondary-1 tablet:hover:bg-info-white box-border w-full cursor-pointer overflow-hidden duration-300',\n itemShape === 'round' ? 'rounded-2xl' : 'rounded-none',\n 'lg-desktop:aspect-w-[404] lg-desktop:aspect-h-[480] desktop:aspect-w-[316] desktop:aspect-h-[384]',\n 'laptop:aspect-w-[288] laptop:aspect-h-[360] aspect-w-[296] aspect-h-[360] relative',\n 'md-tablet:h-[360px] shelf-display-item'\n )}\n >\n {isDisplayBackImage ? (\n <div className=\"absolute inset-0 box-border overflow-hidden\">\n <div className=\"relative inset-0 size-full\">\n <Picture\n source={imageUrl}\n alt={altText}\n className=\"flex h-full justify-center object-cover [&_img]:w-auto\"\n />\n <div className=\"desktop:p-6 absolute inset-x-0 bottom-0 box-border overflow-hidden p-4\">\n {bottomContent()}\n </div>\n </div>\n </div>\n ) : (\n <div className=\"desktop:p-6 absolute inset-0 box-border flex flex-col justify-between overflow-hidden p-4\">\n {currentPriceTag && isTopTag && (\n <Badge className=\"shelf-prices-tag absolute left-4 top-4 z-10\">{currentPriceTag || ''}</Badge>\n )}\n <div\n className={cn(\n 'lg-desktop:h-[195px] shelf-display-item-image relative mb-2 inline-block h-[140px] w-full flex-1 overflow-hidden'\n )}\n >\n <a\n aria-label={displayTitle}\n target={configuration?.target}\n href={trackUrlRef(\n `${locale === 'us' || !locale ? '' : `/${locale}`}/products/${data?.handle}?variant=${variantId}`,\n `${componentType}_${componentName}`\n )}\n onClick={() => {\n gaTrack({\n event: 'ga4Event',\n event_name: 'select_item',\n event_parameters: {\n page_group: 'Home Page',\n item_list_name: 'Home_Page_Bundle',\n items: [\n {\n item_id: data?.sku || variant?.sku,\n item_name: data?.name,\n item_variant: variant?.name,\n price: variant?.price,\n index: configuration?.index + 1,\n },\n ],\n },\n })\n }}\n >\n <Picture\n source={imageUrl}\n alt={altText}\n className=\"flex h-full justify-center object-cover [&_img]:w-auto\"\n />\n </a>\n </div>\n {bottomContent()}\n </div>\n )}\n </div>\n )\n}\n\nexport const ShelfDisplayHorizontalItem = ({ data, configuration }: { data: any; configuration?: any }) => {\n const { itemShape, itemLength, metafields } = configuration || {}\n const { discounts, discountsCopy } = metafields || {}\n const { locale = 'us', copyWriting } = useAiuiContext()\n const [showTags, setShowTags] = useState<string[]>([])\n const ref = useRef<HTMLDivElement>(null)\n\n const onPrimaryButton = (params: ShelfDisplayItem, index: number, data: ShelfDisplayType, coupon: any) =>\n configuration?.event?.primaryButton?.(params, index + 1, data, coupon)\n\n const onSecondaryButton = (params: ShelfDisplayItem, index: number, data: ShelfDisplayType, coupon: any) =>\n configuration?.event?.secondaryButton?.(params, index + 1, data, coupon)\n\n const variant = useMemo(() => {\n const variants = data?.variants || []\n if (!variants.length) {\n return undefined\n }\n if (!data?.sku) {\n return variants[0]\n }\n return variants.find((item: any) => item?.sku === data?.sku) || variants[0]\n }, [data?.sku, data?.variants])\n\n const variantArr = variant?.id?.split?.('/') || []\n const variantId = variantArr?.[variantArr?.length - 1]\n\n const isSoldOut =\n !variant?.availableForSale && (variant?.price?.amount === SOLD_OUT_PRICE || variant?.price === SOLD_OUT_PRICE)\n const isShowTag = configuration?.isShowTag\n const isShowOriginalPrice = configuration?.isShowOriginalPrice\n\n // active \u7684 \u901A\u7528\u6298\u6263\n const coupon = variant?.coupons?.[0]\n\n const shouldUseCouponPrice = Boolean(isShowOriginalPrice && coupon)\n const currencyCode = data?.price?.currencyCode || 'USD'\n\n const priceInfo = useMemo(\n () =>\n formatVariantPrice({\n locale,\n amount: shouldUseCouponPrice ? coupon?.variant_price4wscode : variant?.price,\n baseAmount: shouldUseCouponPrice ? variant?.price : 0,\n currencyCode,\n }),\n [currencyCode, locale, shouldUseCouponPrice, coupon?.variant_price4wscode, variant]\n )\n\n const { price, basePrice, discount, discountAmount } = priceInfo\n\n const { imageUrl, altText } = getProductImage(data)\n\n const displayTitle = data?.custom_name || data?.title\n const displayDescription = data?.custom_description || data?.description\n\n useExposure(ref, {\n componentType,\n componentName,\n componentTitle: displayTitle,\n componentDescription: displayDescription,\n position: configuration?.index + 1,\n })\n\n const showSizeClass = (): {\n boxItem: string\n imgItem: string\n wrap: string\n } => {\n if (itemLength >= 2) {\n return {\n boxItem: 'lg-desktop:max-w-[401px] desktop:max-w-[292px] max-w-full',\n imgItem:\n 'm-tablet:m-auto lg-desktop:max-w-[330px] lg-desktop:max-h-[330px] desktop:max-w-[260px] desktop:max-h-[260px] max-w-[138px] max-h-[138px]',\n wrap: 'lg-desktop:aspect-w-[824] lg-desktop:aspect-h-[480] desktop:aspect-w-[648] desktop:aspect-h-[380] laptop:aspect-w-[440] laptop:aspect-h-[356] tablet:aspect-w-[346] tablet:aspect-h-[360] md-tablet:w-full',\n }\n }\n return {\n boxItem: 'lg-desktop:max-w-[401px] desktop:max-w-[292px] laptop:max-w-[289px] max-w-[262px]',\n imgItem:\n 'md-tablet:m-auto lg-desktop:max-w-[450px] lg-desktop:max-h-[450px] desktop:max-w-[332px] desktop:max-h-[332px] max-w-[312px] max-h-[312px]',\n wrap: 'lg-desktop:aspect-w-[1664] lg-desktop:aspect-h-[480] desktop:aspect-w-[1312] desktop:aspect-h-[380] laptop:aspect-w-[896] laptop:aspect-h-[356] tablet:aspect-w-[704] tablet:aspect-h-[360] md-tablet:w-full',\n }\n }\n\n const handleWrapClass = () => {\n if (itemLength >= 2) {\n return 'flex flex-col justify-between desktop:gap-12 desktop:flex-row desktop:justify-center desktop:items-center'\n }\n return 'flex justify-center items-center gap-6 md-tablet:flex-col'\n }\n\n const showPrice = () => {\n if (coupon?.value_type === 'fixed_amount') {\n const amountStr = discountAmount || ''\n const match = amountStr.match(/^(.*?)(\\d[\\d.,]*)(.*)$/)\n if (match) {\n const [, prefix, numeric, suffix] = match\n let updatedNumeric = numeric\n if (numeric.endsWith('.00')) {\n updatedNumeric = numeric.replace(/\\.00$/, '')\n } else if (numeric.endsWith(',00')) {\n updatedNumeric = numeric.replace(/,00$/, '')\n }\n return `${prefix}${updatedNumeric}${suffix}`\n }\n return amountStr\n }\n return discount || ''\n }\n\n // \u5904\u7406\u6807\u7B7E\n useEffect(() => {\n let handleTags: string[] = []\n if (discount || discountAmount) {\n const discountTag = `${showPrice()}${discounts?.off || discountsCopy?.off || ''}`\n handleTags.push(discountTag)\n }\n const newTags = data?.tags\n ?.filter?.((item: string) => item?.startsWith?.('CLtag'))\n ?.map?.((item: string) => item?.replace?.('CLtag:', ''))\n ?.slice?.(0, discount ? 1 : 2)\n setShowTags(handleTags.concat(newTags))\n }, [data?.tags, discount, discountAmount, discounts?.off, discountsCopy?.off])\n\n return (\n <div\n ref={ref}\n key={data?.id || data?.handle}\n className={cn(\n showSizeClass().wrap,\n itemShape === 'round' ? 'rounded-2xl' : 'rounded-none',\n 'shelf-display-item',\n 'bg-container-secondary-1 tablet:hover:bg-info-white gap-6 duration-300',\n 'md-tablet:h-[360px] relative box-border w-full cursor-pointer overflow-hidden'\n )}\n >\n <div className={cn(handleWrapClass(), 'desktop:p-6 absolute inset-0 box-border overflow-hidden p-4')}>\n <div className={cn(showSizeClass().imgItem, 'desktop:mb-0 relative mb-1 overflow-hidden')}>\n <a\n aria-label={displayTitle}\n target={configuration?.target}\n href={trackUrlRef(\n `${locale === 'us' || !locale ? '' : `/${locale}`}/products/${data?.handle}?variant=${variantId}`,\n `${componentType}_${componentName}`\n )}\n onClick={() => {\n gaTrack({\n event: 'ga4Event',\n event_name: 'select_item',\n event_parameters: {\n page_group: 'Home Page',\n item_list_name: 'Home_Page_Bundle',\n items: [\n {\n item_id: data?.sku || variant?.sku,\n item_name: data?.name,\n item_variant: variant?.name,\n price: variant?.price,\n index: configuration?.index + 1,\n },\n ],\n },\n })\n }}\n >\n <Picture\n source={imageUrl}\n alt={altText}\n className=\"flex h-full justify-center object-cover [&_img]:w-auto\"\n />\n </a>\n </div>\n <div className={cn('flex flex-col items-start justify-center', showSizeClass().boxItem)}>\n {isShowTag && showTags?.length > 0 ? (\n <div className=\"mb-1 box-border flex h-8 flex-wrap gap-1 overflow-hidden\">\n {showTags?.map?.((item: any, index: number) => (\n <Badge key={index} className=\"shelf-items-tag\">\n {item}\n </Badge>\n ))}\n </div>\n ) : null}\n {displayTitle ? (\n <Heading\n as=\"h3\"\n title={displayTitle || ''}\n size={2}\n className=\"shelf-display-product-title mb-1 line-clamp-2\"\n html={displayTitle || ''}\n />\n ) : null}\n {displayDescription ? (\n <Text\n size={2}\n className=\"lg-desktop:text-lg lg-desktop:h-[26px] desktop:text-base desktop:h-6 shelf-display-product-description line-clamp-1 h-5 text-sm\"\n html={displayDescription || ''}\n />\n ) : null}\n <div className=\"mb-2 mt-5 flex items-center\">\n {isSoldOut ? (\n <div className=\"tablet:text-2xl text-info-primary text-xl font-bold\">{copyWriting?.soldOutText}</div>\n ) : (\n <>\n <div className=\"final-price tablet:text-2xl text-info-primary text-xl font-bold\">\n {variant?.availableForSale ? price || '' : ''}\n </div>\n <div className=\"origin-price tablet:text-xl text-info-secondary ml-1 text-lg font-bold line-through\">\n {variant?.availableForSale ? basePrice || '' : ''}\n </div>\n </>\n )}\n </div>\n {/* \u6309\u94AE\u7EC4 */}\n <div\n className={cn(\n 'shelf-flex-button-group',\n 'lg-desktop:gap-3 flex items-center gap-2',\n configuration.direction === 'vertical' ? 'flex-col' : ''\n )}\n >\n {configuration?.secondaryButton ? (\n <Button\n variant=\"secondary\"\n onClick={() => onSecondaryButton(data, configuration?.index, configuration, coupon)}\n className={`\n ${configuration.direction === 'vertical' ? 'w-full' : ''}\n `}\n >\n {configuration?.secondaryButton || ''}\n </Button>\n ) : null}\n {configuration?.primaryButton ? (\n <Button\n variant=\"primary\"\n onClick={() => onPrimaryButton(data, configuration?.index, configuration, coupon)}\n className={`\n ${configuration.direction === 'vertical' ? 'w-full' : ''}\n `}\n >\n {configuration?.primaryButton || ''}\n </Button>\n ) : null}\n </div>\n </div>\n </div>\n </div>\n )\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["shelfDisplayItem_exports", "__export", "ShelfDisplayHorizontalItem", "ShelfDisplayWrapItem", "getProductImage", "__toCommonJS", "import_jsx_runtime", "import_AiuiProvider", "import_shelfDisplay", "import_picture", "import_badge", "import_utils", "import_text", "import_button", "import_track", "import_trackUrlRef", "import_heading", "import_useExposure", "import_react", "componentType", "componentName", "SOLD_OUT_PRICE", "data", "sku", "skuArray", "findSku", "item", "imageUrl", "altText", "configuration", "isDisplayBackImage", "itemShape", "metafields", "isTopTag", "isShowTag", "isShowOriginalPrice", "locale", "copyWriting", "discounts", "discountsCopy", "ref", "showTags", "setShowTags", "currentPriceTag", "setCurrentPriceTag", "onPrimaryButton", "params", "index", "coupon", "onSecondaryButton", "variant", "variants", "variantArr", "variantId", "isSoldOut", "shouldUseCouponPrice", "currencyCode", "priceInfo", "price", "basePrice", "discount", "discountAmount", "displayTitle", "displayDescription", "showPrice", "amountStr", "match", "prefix", "numeric", "suffix", "updatedNumeric", "handleTags", "discountTag", "newTags", "bottomContent", "Badge", "Button", "Picture", "itemLength", "showSizeClass", "handleWrapClass"]
7
7
  }
@@ -3,7 +3,7 @@ import type { SloganProps } from './types.js';
3
3
  export declare const componentType = "copy";
4
4
  export declare const componentName = "brand_slogan";
5
5
  declare const _default: React.ForwardRefExoticComponent<Omit<Omit<SloganProps & React.RefAttributes<HTMLDivElement>, keyof import("../../shared/Styles.js").StylesProps> & Partial<import("../../shared/Styles.js").StylesProps & import("../../shared/Styles.js").ContainerProps> & {
6
- className?: string;
7
- data?: Record<string, any>;
6
+ className?: string | undefined;
7
+ data?: Record<string, any> | undefined;
8
8
  }, "ref"> & React.RefAttributes<any>>;
9
9
  export default _default;
@@ -1,2 +1,2 @@
1
- "use strict";"use client";var K=Object.create;var h=Object.defineProperty;var O=Object.getOwnPropertyDescriptor;var Q=Object.getOwnPropertyNames;var W=Object.getPrototypeOf,X=Object.prototype.hasOwnProperty;var Z=(t,r)=>{for(var n in r)h(t,n,{get:r[n],enumerable:!0})},G=(t,r,n,l)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of Q(r))!X.call(t,o)&&o!==n&&h(t,o,{get:()=>r[o],enumerable:!(l=O(r,o))||l.enumerable});return t};var tt=(t,r,n)=>(n=t!=null?K(W(t)):{},G(r||!t||!t.__esModule?h(n,"default",{value:t,enumerable:!0}):n,t)),et=t=>G(h({},"__esModule",{value:!0}),t);var lt={};Z(lt,{componentName:()=>nt,componentType:()=>rt,default:()=>st});module.exports=et(lt);var s=require("react/jsx-runtime"),e=tt(require("react")),g=require("gsap"),N=require("gsap/dist/SplitText"),v=require("gsap/dist/ScrollTrigger"),u=require("../../helpers/utils.js"),w=require("../../components/index.js"),C=require("../../shared/Styles.js"),P=require("react-intersection-observer");const rt="copy",nt="brand_slogan";function ot(t=[],r=3){const n=[];for(let l=0;l<t.length;l+=r)n.push(t.slice(l,l+r));return n}const j=e.default.forwardRef(({data:t,className:r=""},n)=>{const{title:l,features:o=[],featureChunkSize:k=3}=t,[y,I]=e.default.useState(0),[V,b]=e.default.useState(!0),M=(0,e.useRef)(null),T=(0,e.useRef)(null),E=(0,e.useRef)(null),d=ot(o,k),S=d.length,p=o.length>k,F=p?[...d,d[0]]:d,R=40;(0,e.useImperativeHandle)(n,()=>M.current);const{ref:U,inView:L}=(0,P.useInView)();e.default.useEffect(()=>{if(!p)return;const i=setInterval(()=>{I(a=>a+1),b(!0)},3e3);return()=>clearInterval(i)},[S,p]),e.default.useEffect(()=>{if(p)if(y===S){const i=setTimeout(()=>{b(!1),I(0)},500);return()=>clearTimeout(i)}else b(!0)},[y,S,p]);const f=(0,e.useRef)(null),$=(0,e.useRef)(null),x=(0,e.useRef)(null);return(0,e.useEffect)(()=>{g.gsap.registerPlugin(v.ScrollTrigger,N.SplitText);function i(){if(!f.current)return;x.current=new N.SplitText(f.current,{type:"words",wordsClass:"word"});const a=f.current?.clientHeight||100,m=x.current.words;g.gsap.set(m,{opacity:0}),T.current=v.ScrollTrigger.create({trigger:f.current,start:"bottom bottom-=4%",end:`bottom+=${a*1.5}px bottom-=4%`,scrub:!0,onUpdate:c=>{const A=c.progress,z=m.length,Y=1/z,D=.5;m.forEach((_,q)=>{const B=q/z*(1-D),J=Y*(1+D);let H=(A-B)/J;H=Math.max(0,Math.min(H,1)),g.gsap.set(_,{opacity:H})})}}),o&&o.length>0&&(E.current=v.ScrollTrigger.create({trigger:$.current,start:`bottom+=${a*2}px bottom-=6%`,end:`bottom+=${a*2+100}px bottom-=6%`,onUpdate:c=>{g.gsap.set($.current,{opacity:c.progress})}}))}return L&&i(),()=>{x.current&&x.current.revert(),T.current&&T.current.kill(),E.current&&E.current.kill()}},[L]),(0,s.jsx)("div",{ref:U,children:(0,s.jsxs)("div",{ref:M,className:(0,u.cn)("slogan-container laptop:flex-row laptop:items-end laptop:justify-between text-info-primary flex h-auto w-full flex-col items-start justify-center gap-[24px] text-center",r),children:[(0,s.jsx)(w.Heading,{ref:f,as:"h1",size:2,weight:"bold",align:"left",className:(0,u.cn)("slogan-title laptop:text-[40px] desktop:text-[48px] lg-desktop:text-[64px] text-[40px] !leading-none"),html:l}),o&&o.length>0&&(0,s.jsx)("div",{className:(0,u.cn)("relative w-full max-w-[500px] overflow-hidden",`tablet:h-[${R}px]`),children:(0,s.jsx)("div",{className:(0,u.cn)(["flex flex-col",V?"transition-transform duration-500 ease-[cubic-bezier(.4,0,.2,1)]":"!transition-none"]),style:{transform:`translateY(-${y*R}px)`},children:F.map((i,a)=>(0,s.jsx)("div",{className:(0,u.cn)("laptop:justify-end flex w-full flex-row items-stretch gap-3 overflow-hidden",`tablet:h-[${R}px]`),children:i.map((m,c)=>(0,s.jsxs)(e.default.Fragment,{children:[c>0&&(0,s.jsx)("div",{className:"slogan-feature-divider w-px self-stretch bg-[#E4E5E6]"}),(0,s.jsx)(w.Text,{size:3,align:"left",as:"p",className:"slogan-feature-text laptop:text-[14px] line-clamp-3 text-[12px] leading-[1.4]",html:m.title})]},c))},a))})})]})})});j.displayName="Slogan";var st=(0,C.withLayout)(j);
1
+ "use strict";"use client";var K=Object.create;var h=Object.defineProperty;var O=Object.getOwnPropertyDescriptor;var Q=Object.getOwnPropertyNames;var W=Object.getPrototypeOf,X=Object.prototype.hasOwnProperty;var Z=(t,r)=>{for(var n in r)h(t,n,{get:r[n],enumerable:!0})},G=(t,r,n,l)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of Q(r))!X.call(t,o)&&o!==n&&h(t,o,{get:()=>r[o],enumerable:!(l=O(r,o))||l.enumerable});return t};var tt=(t,r,n)=>(n=t!=null?K(W(t)):{},G(r||!t||!t.__esModule?h(n,"default",{value:t,enumerable:!0}):n,t)),et=t=>G(h({},"__esModule",{value:!0}),t);var lt={};Z(lt,{componentName:()=>nt,componentType:()=>rt,default:()=>st});module.exports=et(lt);var s=require("react/jsx-runtime"),e=tt(require("react")),g=require("gsap"),N=require("gsap/dist/SplitText"),v=require("gsap/dist/ScrollTrigger"),u=require("../../helpers/utils.js"),w=require("../../components/index.js"),C=require("../../shared/Styles.js"),P=require("react-intersection-observer");const rt="copy",nt="brand_slogan";function ot(t=[],r=3){const n=[];for(let l=0;l<t.length;l+=r)n.push(t.slice(l,l+r));return n}const j=e.default.forwardRef(({data:t,className:r=""},n)=>{const{title:l,features:o=[],featureChunkSize:k=3}=t,[y,I]=e.default.useState(0),[V,b]=e.default.useState(!0),M=(0,e.useRef)(null),T=(0,e.useRef)(null),E=(0,e.useRef)(null),d=ot(o,k),S=d.length,p=o.length>k,F=p?[...d,d[0]]:d,R=40;(0,e.useImperativeHandle)(n,()=>M.current);const{ref:U,inView:L}=(0,P.useInView)();e.default.useEffect(()=>{if(!p)return;const i=setInterval(()=>{I(a=>a+1),b(!0)},3e3);return()=>clearInterval(i)},[S,p]),e.default.useEffect(()=>{if(p)if(y===S){const i=setTimeout(()=>{b(!1),I(0)},500);return()=>clearTimeout(i)}else b(!0)},[y,S,p]);const f=(0,e.useRef)(null),$=(0,e.useRef)(null),x=(0,e.useRef)(null);return(0,e.useEffect)(()=>{g.gsap.registerPlugin(v.ScrollTrigger,N.SplitText);function i(){if(!f.current)return;x.current=new N.SplitText(f.current,{type:"words",wordsClass:"word"});const a=f.current?.clientHeight||100,m=x.current.words;g.gsap.set(m,{opacity:0}),T.current=v.ScrollTrigger.create({trigger:f.current,start:"bottom bottom-=4%",end:`bottom+=${a*1.5}px bottom-=4%`,scrub:!0,onUpdate:c=>{const A=c.progress,z=m.length,Y=1/z,D=.5;m.forEach((_,q)=>{const B=q/z*(1-D),J=Y*(1+D);let H=(A-B)/J;H=Math.max(0,Math.min(H,1)),g.gsap.set(_,{opacity:H})})}}),o&&o.length>0&&(E.current=v.ScrollTrigger.create({trigger:$.current,start:`bottom+=${a*2}px bottom-=6%`,end:`bottom+=${a*2+100}px bottom-=6%`,onUpdate:c=>{g.gsap.set($.current,{opacity:c.progress})}}))}return L&&i(),()=>{x.current&&x.current.revert(),T.current&&T.current.kill(),E.current&&E.current.kill()}},[L]),(0,s.jsx)("div",{ref:U,children:(0,s.jsxs)("div",{ref:M,className:(0,u.cn)("slogan-container laptop:flex-row laptop:items-end laptop:justify-between text-info-primary flex h-auto w-full flex-col items-start justify-center gap-[24px] text-center",r),children:[(0,s.jsx)(w.Heading,{ref:f,as:"h2",size:2,weight:"bold",align:"left",className:(0,u.cn)("slogan-title laptop:text-[40px] desktop:text-[48px] lg-desktop:text-[64px] text-[40px] !leading-none"),html:l}),o&&o.length>0&&(0,s.jsx)("div",{className:(0,u.cn)("relative w-full max-w-[500px] overflow-hidden",`tablet:h-[${R}px]`),children:(0,s.jsx)("div",{className:(0,u.cn)(["flex flex-col",V?"transition-transform duration-500 ease-[cubic-bezier(.4,0,.2,1)]":"!transition-none"]),style:{transform:`translateY(-${y*R}px)`},children:F.map((i,a)=>(0,s.jsx)("div",{className:(0,u.cn)("laptop:justify-end flex w-full flex-row items-stretch gap-3 overflow-hidden",`tablet:h-[${R}px]`),children:i.map((m,c)=>(0,s.jsxs)(e.default.Fragment,{children:[c>0&&(0,s.jsx)("div",{className:"slogan-feature-divider w-px self-stretch bg-[#E4E5E6]"}),(0,s.jsx)(w.Text,{size:3,align:"left",as:"p",className:"slogan-feature-text laptop:text-[14px] line-clamp-3 text-[12px] leading-[1.4]",html:m.title})]},c))},a))})})]})})});j.displayName="Slogan";var st=(0,C.withLayout)(j);
2
2
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/biz-components/Slogan/index.tsx"],
4
- "sourcesContent": ["'use client'\nimport React, { useImperativeHandle, useRef, useEffect } from 'react'\nimport { gsap } from 'gsap'\nimport { SplitText } from 'gsap/dist/SplitText'\nimport { ScrollTrigger } from 'gsap/dist/ScrollTrigger'\nimport { cn } from '../../helpers/utils.js'\nimport { Heading, Text } from '../../components/index.js'\nimport { withLayout } from '../../shared/Styles.js'\nimport type { SloganProps } from './types.js'\nimport { useInView } from 'react-intersection-observer'\n\nexport const componentType = 'copy'\nexport const componentName = 'brand_slogan'\n\nfunction chunkArray(array: { title: string }[] = [], size: number = 3) {\n const result = []\n for (let i = 0; i < array.length; i += size) {\n result.push(array.slice(i, i + size))\n }\n return result\n}\n\nconst Slogan = React.forwardRef<HTMLDivElement, SloganProps>(({ data, className = '' }, ref) => {\n const { title, features = [], featureChunkSize = 3 } = data\n const [groupIndex, setGroupIndex] = React.useState(0)\n const [isTransitioning, setIsTransitioning] = React.useState(true)\n const innerRef = useRef<HTMLDivElement>(null)\n const scrollTriggerRef = useRef<ScrollTrigger | null>(null)\n const featuresTriggerRef = useRef<ScrollTrigger | null>(null)\n const featuresGroups = chunkArray(features, featureChunkSize)\n const totalGroups = featuresGroups.length\n const needCarousel = features.length > featureChunkSize\n const displayGroups = needCarousel ? [...featuresGroups, featuresGroups[0]] : featuresGroups\n const groupHeight = 40\n\n useImperativeHandle(ref, () => innerRef.current as HTMLDivElement)\n\n const { ref: inViewRef, inView } = useInView()\n\n // \u53EA\u5728\u9700\u8981\u8F6E\u64AD\u65F6\u542F\u7528\u5B9A\u65F6\u5668\n React.useEffect(() => {\n if (!needCarousel) return\n const timer = setInterval(() => {\n setGroupIndex(i => i + 1)\n setIsTransitioning(true)\n }, 3000)\n return () => clearInterval(timer)\n }, [totalGroups, needCarousel])\n\n // \u53EA\u5728\u9700\u8981\u8F6E\u64AD\u65F6\u5904\u7406\u65E0\u7F1D\u8DF3\u8F6C\n React.useEffect(() => {\n if (!needCarousel) return\n if (groupIndex === totalGroups) {\n const handle = setTimeout(() => {\n setIsTransitioning(false)\n setGroupIndex(0)\n }, 500) // 500ms\u7B49\u4E8E\u52A8\u753B\u65F6\u957F\n return () => clearTimeout(handle)\n } else {\n setIsTransitioning(true)\n }\n }, [groupIndex, totalGroups, needCarousel])\n\n // \u6807\u9898\u52A8\u753B\u903B\u8F91\u4FDD\u6301\u4E0D\u53D8\n const titleRef = useRef<HTMLHeadingElement>(null)\n const featuresRef = useRef<HTMLDivElement>(null)\n const splitTextInstance = useRef<SplitText | null>(null)\n\n useEffect(() => {\n gsap.registerPlugin(ScrollTrigger, SplitText)\n\n function gsapResize() {\n if (!titleRef.current) return\n splitTextInstance.current = new SplitText(titleRef.current, {\n type: 'words',\n wordsClass: 'word',\n })\n const height = titleRef.current?.clientHeight || 100\n\n const words = splitTextInstance.current.words\n gsap.set(words, { opacity: 0 })\n scrollTriggerRef.current = ScrollTrigger.create({\n trigger: titleRef.current,\n start: 'bottom bottom-=4%',\n end: `bottom+=${height * 1.5}px bottom-=4%`,\n scrub: true,\n onUpdate: (self: any) => {\n const progress = self.progress\n const total = words.length\n const interval = 1 / total\n const overlap = 0.5\n words.forEach((word: any, i: number) => {\n const start = (i / total) * (1 - overlap)\n const width = interval * (1 + overlap)\n let opacity = (progress - start) / width\n opacity = Math.max(0, Math.min(opacity, 1))\n gsap.set(word, { opacity })\n })\n },\n })\n\n if (features && features.length > 0) {\n featuresTriggerRef.current = ScrollTrigger.create({\n trigger: featuresRef.current,\n start: `bottom+=${height * 2}px bottom-=6%`,\n end: `bottom+=${height * 2 + 100}px bottom-=6%`,\n onUpdate: (self: any) => {\n gsap.set(featuresRef.current, { opacity: self.progress })\n },\n })\n }\n }\n\n if (inView) {\n gsapResize()\n }\n\n return () => {\n splitTextInstance.current && splitTextInstance.current.revert()\n // ScrollTrigger.getAll().forEach((t: any) => t.kill())\n scrollTriggerRef.current && scrollTriggerRef.current.kill()\n featuresTriggerRef.current && featuresTriggerRef.current.kill()\n }\n }, [inView])\n\n return (\n <div ref={inViewRef}>\n <div\n ref={innerRef}\n className={cn(\n 'slogan-container laptop:flex-row laptop:items-end laptop:justify-between text-info-primary flex h-auto w-full flex-col items-start justify-center gap-[24px] text-center',\n className\n )}\n >\n <Heading\n ref={titleRef}\n as=\"h1\"\n size={2}\n weight={'bold'}\n align={'left'}\n className={cn(\n 'slogan-title laptop:text-[40px] desktop:text-[48px] lg-desktop:text-[64px] text-[40px] !leading-none'\n )}\n html={title}\n />\n {features && features.length > 0 && (\n <div className={cn('relative w-full max-w-[500px] overflow-hidden', `tablet:h-[${groupHeight}px]`)}>\n <div\n className={cn([\n 'flex flex-col',\n isTransitioning\n ? 'transition-transform duration-500 ease-[cubic-bezier(.4,0,.2,1)]'\n : '!transition-none',\n ])}\n style={{\n transform: `translateY(-${groupIndex * groupHeight}px)`,\n }}\n >\n {displayGroups.map((group, idx) => (\n <div\n className={cn(\n 'laptop:justify-end flex w-full flex-row items-stretch gap-3 overflow-hidden',\n `tablet:h-[${groupHeight}px]`\n )}\n key={idx}\n >\n {group.map((feature, index) => (\n <React.Fragment key={index}>\n {index > 0 && <div className=\"slogan-feature-divider w-px self-stretch bg-[#E4E5E6]\" />}\n <Text\n size={3}\n align=\"left\"\n as=\"p\"\n className=\"slogan-feature-text laptop:text-[14px] line-clamp-3 text-[12px] leading-[1.4]\"\n html={feature.title}\n />\n </React.Fragment>\n ))}\n </div>\n ))}\n </div>\n </div>\n )}\n </div>\n </div>\n )\n})\n\nSlogan.displayName = 'Slogan'\n\nexport default withLayout(Slogan)\n"],
4
+ "sourcesContent": ["'use client'\nimport React, { useImperativeHandle, useRef, useEffect } from 'react'\nimport { gsap } from 'gsap'\nimport { SplitText } from 'gsap/dist/SplitText'\nimport { ScrollTrigger } from 'gsap/dist/ScrollTrigger'\nimport { cn } from '../../helpers/utils.js'\nimport { Heading, Text } from '../../components/index.js'\nimport { withLayout } from '../../shared/Styles.js'\nimport type { SloganProps } from './types.js'\nimport { useInView } from 'react-intersection-observer'\n\nexport const componentType = 'copy'\nexport const componentName = 'brand_slogan'\n\nfunction chunkArray(array: { title: string }[] = [], size: number = 3) {\n const result = []\n for (let i = 0; i < array.length; i += size) {\n result.push(array.slice(i, i + size))\n }\n return result\n}\n\nconst Slogan = React.forwardRef<HTMLDivElement, SloganProps>(({ data, className = '' }, ref) => {\n const { title, features = [], featureChunkSize = 3 } = data\n const [groupIndex, setGroupIndex] = React.useState(0)\n const [isTransitioning, setIsTransitioning] = React.useState(true)\n const innerRef = useRef<HTMLDivElement>(null)\n const scrollTriggerRef = useRef<ScrollTrigger | null>(null)\n const featuresTriggerRef = useRef<ScrollTrigger | null>(null)\n const featuresGroups = chunkArray(features, featureChunkSize)\n const totalGroups = featuresGroups.length\n const needCarousel = features.length > featureChunkSize\n const displayGroups = needCarousel ? [...featuresGroups, featuresGroups[0]] : featuresGroups\n const groupHeight = 40\n\n useImperativeHandle(ref, () => innerRef.current as HTMLDivElement)\n\n const { ref: inViewRef, inView } = useInView()\n\n // \u53EA\u5728\u9700\u8981\u8F6E\u64AD\u65F6\u542F\u7528\u5B9A\u65F6\u5668\n React.useEffect(() => {\n if (!needCarousel) return\n const timer = setInterval(() => {\n setGroupIndex(i => i + 1)\n setIsTransitioning(true)\n }, 3000)\n return () => clearInterval(timer)\n }, [totalGroups, needCarousel])\n\n // \u53EA\u5728\u9700\u8981\u8F6E\u64AD\u65F6\u5904\u7406\u65E0\u7F1D\u8DF3\u8F6C\n React.useEffect(() => {\n if (!needCarousel) return\n if (groupIndex === totalGroups) {\n const handle = setTimeout(() => {\n setIsTransitioning(false)\n setGroupIndex(0)\n }, 500) // 500ms\u7B49\u4E8E\u52A8\u753B\u65F6\u957F\n return () => clearTimeout(handle)\n } else {\n setIsTransitioning(true)\n }\n }, [groupIndex, totalGroups, needCarousel])\n\n // \u6807\u9898\u52A8\u753B\u903B\u8F91\u4FDD\u6301\u4E0D\u53D8\n const titleRef = useRef<HTMLHeadingElement>(null)\n const featuresRef = useRef<HTMLDivElement>(null)\n const splitTextInstance = useRef<SplitText | null>(null)\n\n useEffect(() => {\n gsap.registerPlugin(ScrollTrigger, SplitText)\n\n function gsapResize() {\n if (!titleRef.current) return\n splitTextInstance.current = new SplitText(titleRef.current, {\n type: 'words',\n wordsClass: 'word',\n })\n const height = titleRef.current?.clientHeight || 100\n\n const words = splitTextInstance.current.words\n gsap.set(words, { opacity: 0 })\n scrollTriggerRef.current = ScrollTrigger.create({\n trigger: titleRef.current,\n start: 'bottom bottom-=4%',\n end: `bottom+=${height * 1.5}px bottom-=4%`,\n scrub: true,\n onUpdate: (self: any) => {\n const progress = self.progress\n const total = words.length\n const interval = 1 / total\n const overlap = 0.5\n words.forEach((word: any, i: number) => {\n const start = (i / total) * (1 - overlap)\n const width = interval * (1 + overlap)\n let opacity = (progress - start) / width\n opacity = Math.max(0, Math.min(opacity, 1))\n gsap.set(word, { opacity })\n })\n },\n })\n\n if (features && features.length > 0) {\n featuresTriggerRef.current = ScrollTrigger.create({\n trigger: featuresRef.current,\n start: `bottom+=${height * 2}px bottom-=6%`,\n end: `bottom+=${height * 2 + 100}px bottom-=6%`,\n onUpdate: (self: any) => {\n gsap.set(featuresRef.current, { opacity: self.progress })\n },\n })\n }\n }\n\n if (inView) {\n gsapResize()\n }\n\n return () => {\n splitTextInstance.current && splitTextInstance.current.revert()\n // ScrollTrigger.getAll().forEach((t: any) => t.kill())\n scrollTriggerRef.current && scrollTriggerRef.current.kill()\n featuresTriggerRef.current && featuresTriggerRef.current.kill()\n }\n }, [inView])\n\n return (\n <div ref={inViewRef}>\n <div\n ref={innerRef}\n className={cn(\n 'slogan-container laptop:flex-row laptop:items-end laptop:justify-between text-info-primary flex h-auto w-full flex-col items-start justify-center gap-[24px] text-center',\n className\n )}\n >\n <Heading\n ref={titleRef}\n as=\"h2\"\n size={2}\n weight={'bold'}\n align={'left'}\n className={cn(\n 'slogan-title laptop:text-[40px] desktop:text-[48px] lg-desktop:text-[64px] text-[40px] !leading-none'\n )}\n html={title}\n />\n {features && features.length > 0 && (\n <div className={cn('relative w-full max-w-[500px] overflow-hidden', `tablet:h-[${groupHeight}px]`)}>\n <div\n className={cn([\n 'flex flex-col',\n isTransitioning\n ? 'transition-transform duration-500 ease-[cubic-bezier(.4,0,.2,1)]'\n : '!transition-none',\n ])}\n style={{\n transform: `translateY(-${groupIndex * groupHeight}px)`,\n }}\n >\n {displayGroups.map((group, idx) => (\n <div\n className={cn(\n 'laptop:justify-end flex w-full flex-row items-stretch gap-3 overflow-hidden',\n `tablet:h-[${groupHeight}px]`\n )}\n key={idx}\n >\n {group.map((feature, index) => (\n <React.Fragment key={index}>\n {index > 0 && <div className=\"slogan-feature-divider w-px self-stretch bg-[#E4E5E6]\" />}\n <Text\n size={3}\n align=\"left\"\n as=\"p\"\n className=\"slogan-feature-text laptop:text-[14px] line-clamp-3 text-[12px] leading-[1.4]\"\n html={feature.title}\n />\n </React.Fragment>\n ))}\n </div>\n ))}\n </div>\n </div>\n )}\n </div>\n </div>\n )\n})\n\nSlogan.displayName = 'Slogan'\n\nexport default withLayout(Slogan)\n"],
5
5
  "mappings": "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",
6
6
  "names": ["Slogan_exports", "__export", "componentName", "componentType", "Slogan_default", "__toCommonJS", "import_jsx_runtime", "import_react", "import_gsap", "import_SplitText", "import_ScrollTrigger", "import_utils", "import_components", "import_Styles", "import_react_intersection_observer", "chunkArray", "array", "size", "result", "i", "Slogan", "React", "data", "className", "ref", "title", "features", "featureChunkSize", "groupIndex", "setGroupIndex", "isTransitioning", "setIsTransitioning", "innerRef", "scrollTriggerRef", "featuresTriggerRef", "featuresGroups", "totalGroups", "needCarousel", "displayGroups", "groupHeight", "inViewRef", "inView", "timer", "handle", "titleRef", "featuresRef", "splitTextInstance", "gsapResize", "height", "words", "self", "progress", "total", "interval", "overlap", "word", "start", "width", "opacity", "group", "idx", "feature", "index"]
7
7
  }
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import type { SpacerProps } from './types.js';
3
3
  declare const _default: React.ForwardRefExoticComponent<Omit<Omit<SpacerProps & React.RefAttributes<HTMLDivElement>, keyof import("../../shared/Styles.js").StylesProps> & Partial<import("../../shared/Styles.js").StylesProps & import("../../shared/Styles.js").ContainerProps> & {
4
- className?: string;
5
- data?: Record<string, any>;
4
+ className?: string | undefined;
5
+ data?: Record<string, any> | undefined;
6
6
  }, "ref"> & React.RefAttributes<any>>;
7
7
  export default _default;
@@ -1,2 +1,2 @@
1
- "use strict";"use client";var m=Object.create;var a=Object.defineProperty;var h=Object.getOwnPropertyDescriptor;var n=Object.getOwnPropertyNames;var u=Object.getPrototypeOf,y=Object.prototype.hasOwnProperty;var S=(e,p)=>{for(var t in p)a(e,t,{get:p[t],enumerable:!0})},s=(e,p,t,r)=>{if(p&&typeof p=="object"||typeof p=="function")for(let o of n(p))!y.call(e,o)&&o!==t&&a(e,o,{get:()=>p[o],enumerable:!(r=h(p,o))||r.enumerable});return e};var v=(e,p,t)=>(t=e!=null?m(u(e)):{},s(p||!e||!e.__esModule?a(t,"default",{value:e,enumerable:!0}):t,e)),x=e=>s(a({},"__esModule",{value:!0}),e);var w={};S(w,{default:()=>k});module.exports=x(w);var l=require("react/jsx-runtime"),f=v(require("react")),i=require("../../helpers/utils.js"),d=require("../../shared/Styles.js");const c=f.default.forwardRef(({className:e,data:p},t)=>{const{space:r="default"}=p;return(0,l.jsx)("div",{className:(0,i.cn)("ipc_spacer",r==="default"&&"laptop:h-16 desktop:h-[96px] lg-desktop:h-[128px] tablet:h-16 h-16",r==="fixed"&&"h-16",e)})});c.displayName="Spacer";var k=(0,d.withLayout)(c);
1
+ "use strict";"use client";var m=Object.create;var o=Object.defineProperty;var h=Object.getOwnPropertyDescriptor;var n=Object.getOwnPropertyNames;var u=Object.getPrototypeOf,v=Object.prototype.hasOwnProperty;var y=(e,p)=>{for(var t in p)o(e,t,{get:p[t],enumerable:!0})},s=(e,p,t,r)=>{if(p&&typeof p=="object"||typeof p=="function")for(let a of n(p))!v.call(e,a)&&a!==t&&o(e,a,{get:()=>p[a],enumerable:!(r=h(p,a))||r.enumerable});return e};var S=(e,p,t)=>(t=e!=null?m(u(e)):{},s(p||!e||!e.__esModule?o(t,"default",{value:e,enumerable:!0}):t,e)),x=e=>s(o({},"__esModule",{value:!0}),e);var w={};y(w,{default:()=>k});module.exports=x(w);var d=require("react/jsx-runtime"),i=S(require("react")),f=require("../../helpers/utils.js"),l=require("../../shared/Styles.js");const c=i.default.forwardRef(({className:e,data:p},t)=>{const{space:r="default"}=p;return(0,d.jsx)("div",{className:(0,f.cn)("ipc_spacer","relative z-[5]",r==="default"&&"laptop:h-16 desktop:h-[96px] lg-desktop:h-[128px] tablet:h-16 h-16",r==="fixed"&&"h-16",e)})});c.displayName="Spacer";var k=(0,l.withLayout)(c);
2
2
  //# sourceMappingURL=index.js.map