@anker-in/headless-ui 1.0.26-alpha.1762236947129 → 1.0.26-alpha.1762243303200

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 (306) hide show
  1. package/dist/cjs/biz-components/AiuiProvider/index.d.ts +4 -0
  2. package/dist/cjs/biz-components/AiuiProvider/index.js +1 -1
  3. package/dist/cjs/biz-components/AiuiProvider/index.js.map +2 -2
  4. package/dist/cjs/biz-components/Listing/BizProductProvider.d.ts +118 -0
  5. package/dist/cjs/biz-components/Listing/BizProductProvider.js +2 -0
  6. package/dist/cjs/biz-components/Listing/BizProductProvider.js.map +7 -0
  7. package/dist/cjs/biz-components/Listing/components/PaidShipping/LearnMore.d.ts +2 -0
  8. package/dist/cjs/biz-components/Listing/components/PaidShipping/LearnMore.js +2 -0
  9. package/dist/cjs/biz-components/Listing/components/PaidShipping/LearnMore.js.map +7 -0
  10. package/dist/cjs/biz-components/Listing/components/PaidShipping/ShippingMethod.d.ts +10 -0
  11. package/dist/cjs/biz-components/Listing/components/PaidShipping/ShippingMethod.js +2 -0
  12. package/dist/cjs/biz-components/Listing/components/PaidShipping/ShippingMethod.js.map +7 -0
  13. package/dist/cjs/biz-components/Listing/components/PaidShipping/ShippingPolicyModal.d.ts +25 -0
  14. package/dist/cjs/biz-components/Listing/components/PaidShipping/ShippingPolicyModal.js +2 -0
  15. package/dist/cjs/biz-components/Listing/components/PaidShipping/ShippingPolicyModal.js.map +7 -0
  16. package/dist/cjs/biz-components/Listing/components/PaidShipping/index.d.ts +12 -0
  17. package/dist/cjs/biz-components/Listing/components/PaidShipping/index.js +2 -0
  18. package/dist/cjs/biz-components/Listing/components/PaidShipping/index.js.map +7 -0
  19. package/dist/cjs/biz-components/Listing/components/PaidShipping/type.d.ts +30 -0
  20. package/dist/cjs/biz-components/Listing/components/PaidShipping/type.js +2 -0
  21. package/dist/cjs/biz-components/Listing/components/PaidShipping/type.js.map +7 -0
  22. package/dist/cjs/biz-components/Listing/components/PaidShipping/utils.d.ts +2 -0
  23. package/dist/cjs/biz-components/Listing/components/PaidShipping/utils.js +2 -0
  24. package/dist/cjs/biz-components/Listing/components/PaidShipping/utils.js.map +7 -0
  25. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/BenefitsTab.d.ts +37 -0
  26. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/BenefitsTab.js +40 -0
  27. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/BenefitsTab.js.map +7 -0
  28. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductBenefitsTabs/index.d.ts +30 -0
  29. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductBenefitsTabs/index.js +2 -0
  30. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductBenefitsTabs/index.js.map +7 -0
  31. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductBundle/index.d.ts +2 -0
  32. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductBundle/index.js +2 -0
  33. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductBundle/index.js.map +7 -0
  34. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductExchangePurchase/index.d.ts +2 -0
  35. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductExchangePurchase/index.js +2 -0
  36. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductExchangePurchase/index.js.map +7 -0
  37. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductFreeGift/index.d.ts +2 -0
  38. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductFreeGift/index.js +2 -0
  39. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductFreeGift/index.js.map +7 -0
  40. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductHighlight/index.d.ts +2 -0
  41. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductHighlight/index.js +2 -0
  42. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductHighlight/index.js.map +7 -0
  43. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductOptions/index.d.ts +2 -0
  44. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductOptions/index.js +2 -0
  45. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductOptions/index.js.map +7 -0
  46. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/index.d.ts +2 -0
  47. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/index.js +2 -0
  48. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/index.js.map +7 -0
  49. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/types.d.ts +43 -0
  50. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/types.js +2 -0
  51. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/types.js.map +7 -0
  52. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGallery/components/CompareModal.d.ts +2 -0
  53. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGallery/components/CompareModal.js +2 -0
  54. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGallery/components/CompareModal.js.map +7 -0
  55. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGallery/components/Select.d.ts +21 -0
  56. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGallery/components/Select.js +2 -0
  57. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGallery/components/Select.js.map +7 -0
  58. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGallery/components/ShopifyColorOption.d.ts +5 -0
  59. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGallery/components/ShopifyColorOption.js +2 -0
  60. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGallery/components/ShopifyColorOption.js.map +7 -0
  61. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGallery/components/SpecsModal.d.ts +1 -0
  62. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGallery/components/SpecsModal.js +2 -0
  63. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGallery/components/SpecsModal.js.map +7 -0
  64. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGallery/index.d.ts +2 -0
  65. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGallery/index.js +2 -0
  66. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGallery/index.js.map +7 -0
  67. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGallery/types.d.ts +37 -0
  68. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGallery/types.js +2 -0
  69. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGallery/types.js.map +7 -0
  70. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGridBox.d.ts +6 -0
  71. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGridBox.js +2 -0
  72. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGridBox.js.map +7 -0
  73. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductSummary/index.d.ts +3 -0
  74. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductSummary/index.js +2 -0
  75. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductSummary/index.js.map +7 -0
  76. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductSummary/types.d.ts +2 -0
  77. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductSummary/types.js +2 -0
  78. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductSummary/types.js.map +7 -0
  79. package/dist/cjs/biz-components/Listing/components/ProductCard/index.d.ts +2 -0
  80. package/dist/cjs/biz-components/Listing/components/ProductCard/index.js +2 -0
  81. package/dist/cjs/biz-components/Listing/components/ProductCard/index.js.map +7 -0
  82. package/dist/cjs/biz-components/Listing/components/PurchaseBar/ProductActions/index.d.ts +2 -0
  83. package/dist/cjs/biz-components/Listing/components/PurchaseBar/ProductActions/index.js +2 -0
  84. package/dist/cjs/biz-components/Listing/components/PurchaseBar/ProductActions/index.js.map +7 -0
  85. package/dist/cjs/biz-components/Listing/components/PurchaseBar/ScrollSpyNav/index.d.ts +4 -0
  86. package/dist/cjs/biz-components/Listing/components/PurchaseBar/ScrollSpyNav/index.js +2 -0
  87. package/dist/cjs/biz-components/Listing/components/PurchaseBar/ScrollSpyNav/index.js.map +7 -0
  88. package/dist/cjs/biz-components/Listing/components/PurchaseBar/ScrollSpyNav/types.d.ts +10 -0
  89. package/dist/cjs/biz-components/Listing/components/PurchaseBar/ScrollSpyNav/types.js +2 -0
  90. package/dist/cjs/biz-components/Listing/components/PurchaseBar/ScrollSpyNav/types.js.map +7 -0
  91. package/dist/cjs/biz-components/Listing/components/PurchaseBar/index.d.ts +3 -0
  92. package/dist/cjs/biz-components/Listing/components/PurchaseBar/index.js +2 -0
  93. package/dist/cjs/biz-components/Listing/components/PurchaseBar/index.js.map +7 -0
  94. package/dist/cjs/biz-components/Listing/components/PurchaseBar/types.d.ts +12 -0
  95. package/dist/cjs/biz-components/Listing/components/PurchaseBar/types.js +2 -0
  96. package/dist/cjs/biz-components/Listing/components/PurchaseBar/types.js.map +7 -0
  97. package/dist/cjs/biz-components/Listing/components/index.d.ts +3 -0
  98. package/dist/cjs/biz-components/Listing/components/index.js +2 -0
  99. package/dist/cjs/biz-components/Listing/components/index.js.map +7 -0
  100. package/dist/cjs/biz-components/Listing/const.d.ts +29 -0
  101. package/dist/cjs/biz-components/Listing/const.js +2 -0
  102. package/dist/cjs/biz-components/Listing/const.js.map +7 -0
  103. package/dist/cjs/biz-components/Listing/hooks/use-options.d.ts +3 -0
  104. package/dist/cjs/biz-components/Listing/hooks/use-options.js +2 -0
  105. package/dist/cjs/biz-components/Listing/hooks/use-options.js.map +7 -0
  106. package/dist/cjs/biz-components/Listing/hooks/use-variant-media.d.ts +14 -0
  107. package/dist/cjs/biz-components/Listing/hooks/use-variant-media.js +2 -0
  108. package/dist/cjs/biz-components/Listing/hooks/use-variant-media.js.map +7 -0
  109. package/dist/cjs/biz-components/Listing/hooks/use-variant.d.ts +5 -0
  110. package/dist/cjs/biz-components/Listing/hooks/use-variant.js +2 -0
  111. package/dist/cjs/biz-components/Listing/hooks/use-variant.js.map +7 -0
  112. package/dist/cjs/biz-components/Listing/hooks/useBenefits.d.ts +50 -0
  113. package/dist/cjs/biz-components/Listing/hooks/useBenefits.js +2 -0
  114. package/dist/cjs/biz-components/Listing/hooks/useBenefits.js.map +7 -0
  115. package/dist/cjs/biz-components/Listing/hooks/useCopy.d.ts +5 -0
  116. package/dist/cjs/biz-components/Listing/hooks/useCopy.js +2 -0
  117. package/dist/cjs/biz-components/Listing/hooks/useCopy.js.map +7 -0
  118. package/dist/cjs/biz-components/Listing/index.d.ts +3 -0
  119. package/dist/cjs/biz-components/Listing/index.js +2 -0
  120. package/dist/cjs/biz-components/Listing/index.js.map +7 -0
  121. package/dist/cjs/biz-components/Listing/types/graphql.d.ts +7473 -0
  122. package/dist/cjs/biz-components/Listing/types/graphql.js +2 -0
  123. package/dist/cjs/biz-components/Listing/types/graphql.js.map +7 -0
  124. package/dist/cjs/biz-components/Listing/types/product.d.ts +141 -0
  125. package/dist/cjs/biz-components/Listing/types/product.js +2 -0
  126. package/dist/cjs/biz-components/Listing/types/product.js.map +7 -0
  127. package/dist/cjs/biz-components/Listing/types/productMetafields.d.js +2 -0
  128. package/dist/cjs/biz-components/Listing/types/productMetafields.d.js.map +7 -0
  129. package/dist/cjs/biz-components/Listing/types/type-helper.d.ts +5 -0
  130. package/dist/cjs/biz-components/Listing/types/type-helper.js +2 -0
  131. package/dist/cjs/biz-components/Listing/types/type-helper.js.map +7 -0
  132. package/dist/cjs/biz-components/Listing/types.d.ts +28 -0
  133. package/dist/cjs/biz-components/Listing/types.js +2 -0
  134. package/dist/cjs/biz-components/Listing/types.js.map +7 -0
  135. package/dist/cjs/biz-components/Listing/utils/helper.d.ts +36 -0
  136. package/dist/cjs/biz-components/Listing/utils/helper.js +2 -0
  137. package/dist/cjs/biz-components/Listing/utils/helper.js.map +7 -0
  138. package/dist/cjs/biz-components/Listing/utils/index.d.ts +37 -0
  139. package/dist/cjs/biz-components/Listing/utils/index.js +2 -0
  140. package/dist/cjs/biz-components/Listing/utils/index.js.map +7 -0
  141. package/dist/cjs/biz-components/Listing/utils/textFormat.d.ts +73 -0
  142. package/dist/cjs/biz-components/Listing/utils/textFormat.js +2 -0
  143. package/dist/cjs/biz-components/Listing/utils/textFormat.js.map +7 -0
  144. package/dist/cjs/biz-components/TabWithImage/TabWithImage.js +1 -1
  145. package/dist/cjs/biz-components/TabWithImage/TabWithImage.js.map +2 -2
  146. package/dist/cjs/biz-components/TabsWithMedia/TabsWithMedia.js.map +2 -2
  147. package/dist/cjs/biz-components/index.d.ts +17 -0
  148. package/dist/cjs/biz-components/index.js +1 -1
  149. package/dist/cjs/biz-components/index.js.map +3 -3
  150. package/dist/cjs/components/checkbox.d.ts +1 -0
  151. package/dist/cjs/components/checkbox.js +1 -1
  152. package/dist/cjs/components/checkbox.js.map +3 -3
  153. package/dist/esm/biz-components/AiuiProvider/index.d.ts +4 -0
  154. package/dist/esm/biz-components/AiuiProvider/index.js +1 -1
  155. package/dist/esm/biz-components/AiuiProvider/index.js.map +2 -2
  156. package/dist/esm/biz-components/Listing/BizProductProvider.d.ts +118 -0
  157. package/dist/esm/biz-components/Listing/BizProductProvider.js +2 -0
  158. package/dist/esm/biz-components/Listing/BizProductProvider.js.map +7 -0
  159. package/dist/esm/biz-components/Listing/components/PaidShipping/LearnMore.d.ts +2 -0
  160. package/dist/esm/biz-components/Listing/components/PaidShipping/LearnMore.js +2 -0
  161. package/dist/esm/biz-components/Listing/components/PaidShipping/LearnMore.js.map +7 -0
  162. package/dist/esm/biz-components/Listing/components/PaidShipping/ShippingMethod.d.ts +10 -0
  163. package/dist/esm/biz-components/Listing/components/PaidShipping/ShippingMethod.js +2 -0
  164. package/dist/esm/biz-components/Listing/components/PaidShipping/ShippingMethod.js.map +7 -0
  165. package/dist/esm/biz-components/Listing/components/PaidShipping/ShippingPolicyModal.d.ts +25 -0
  166. package/dist/esm/biz-components/Listing/components/PaidShipping/ShippingPolicyModal.js +2 -0
  167. package/dist/esm/biz-components/Listing/components/PaidShipping/ShippingPolicyModal.js.map +7 -0
  168. package/dist/esm/biz-components/Listing/components/PaidShipping/index.d.ts +12 -0
  169. package/dist/esm/biz-components/Listing/components/PaidShipping/index.js +2 -0
  170. package/dist/esm/biz-components/Listing/components/PaidShipping/index.js.map +7 -0
  171. package/dist/esm/biz-components/Listing/components/PaidShipping/type.d.ts +30 -0
  172. package/dist/esm/biz-components/Listing/components/PaidShipping/type.js +2 -0
  173. package/dist/esm/biz-components/Listing/components/PaidShipping/type.js.map +7 -0
  174. package/dist/esm/biz-components/Listing/components/PaidShipping/utils.d.ts +2 -0
  175. package/dist/esm/biz-components/Listing/components/PaidShipping/utils.js +2 -0
  176. package/dist/esm/biz-components/Listing/components/PaidShipping/utils.js.map +7 -0
  177. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/BenefitsTab.d.ts +37 -0
  178. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/BenefitsTab.js +40 -0
  179. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/BenefitsTab.js.map +7 -0
  180. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductBenefitsTabs/index.d.ts +30 -0
  181. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductBenefitsTabs/index.js +2 -0
  182. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductBenefitsTabs/index.js.map +7 -0
  183. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductBundle/index.d.ts +2 -0
  184. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductBundle/index.js +2 -0
  185. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductBundle/index.js.map +7 -0
  186. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductExchangePurchase/index.d.ts +2 -0
  187. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductExchangePurchase/index.js +2 -0
  188. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductExchangePurchase/index.js.map +7 -0
  189. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductFreeGift/index.d.ts +2 -0
  190. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductFreeGift/index.js +2 -0
  191. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductFreeGift/index.js.map +7 -0
  192. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductHighlight/index.d.ts +2 -0
  193. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductHighlight/index.js +2 -0
  194. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductHighlight/index.js.map +7 -0
  195. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductOptions/index.d.ts +2 -0
  196. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductOptions/index.js +2 -0
  197. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductOptions/index.js.map +7 -0
  198. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/index.d.ts +2 -0
  199. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/index.js +2 -0
  200. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/index.js.map +7 -0
  201. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/types.d.ts +43 -0
  202. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/types.js +2 -0
  203. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/types.js.map +7 -0
  204. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/components/CompareModal.d.ts +2 -0
  205. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/components/CompareModal.js +2 -0
  206. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/components/CompareModal.js.map +7 -0
  207. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/components/Select.d.ts +21 -0
  208. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/components/Select.js +2 -0
  209. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/components/Select.js.map +7 -0
  210. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/components/ShopifyColorOption.d.ts +5 -0
  211. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/components/ShopifyColorOption.js +2 -0
  212. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/components/ShopifyColorOption.js.map +7 -0
  213. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/components/SpecsModal.d.ts +1 -0
  214. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/components/SpecsModal.js +2 -0
  215. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/components/SpecsModal.js.map +7 -0
  216. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/index.d.ts +2 -0
  217. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/index.js +2 -0
  218. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/index.js.map +7 -0
  219. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/types.d.ts +37 -0
  220. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/types.js +2 -0
  221. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/types.js.map +7 -0
  222. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGridBox.d.ts +6 -0
  223. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGridBox.js +2 -0
  224. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGridBox.js.map +7 -0
  225. package/dist/esm/biz-components/Listing/components/ProductCard/ProductSummary/index.d.ts +3 -0
  226. package/dist/esm/biz-components/Listing/components/ProductCard/ProductSummary/index.js +2 -0
  227. package/dist/esm/biz-components/Listing/components/ProductCard/ProductSummary/index.js.map +7 -0
  228. package/dist/esm/biz-components/Listing/components/ProductCard/ProductSummary/types.d.ts +2 -0
  229. package/dist/esm/biz-components/Listing/components/ProductCard/ProductSummary/types.js +1 -0
  230. package/dist/esm/biz-components/Listing/components/ProductCard/ProductSummary/types.js.map +7 -0
  231. package/dist/esm/biz-components/Listing/components/ProductCard/index.d.ts +2 -0
  232. package/dist/esm/biz-components/Listing/components/ProductCard/index.js +2 -0
  233. package/dist/esm/biz-components/Listing/components/ProductCard/index.js.map +7 -0
  234. package/dist/esm/biz-components/Listing/components/PurchaseBar/ProductActions/index.d.ts +2 -0
  235. package/dist/esm/biz-components/Listing/components/PurchaseBar/ProductActions/index.js +2 -0
  236. package/dist/esm/biz-components/Listing/components/PurchaseBar/ProductActions/index.js.map +7 -0
  237. package/dist/esm/biz-components/Listing/components/PurchaseBar/ScrollSpyNav/index.d.ts +4 -0
  238. package/dist/esm/biz-components/Listing/components/PurchaseBar/ScrollSpyNav/index.js +2 -0
  239. package/dist/esm/biz-components/Listing/components/PurchaseBar/ScrollSpyNav/index.js.map +7 -0
  240. package/dist/esm/biz-components/Listing/components/PurchaseBar/ScrollSpyNav/types.d.ts +10 -0
  241. package/dist/esm/biz-components/Listing/components/PurchaseBar/ScrollSpyNav/types.js +1 -0
  242. package/dist/esm/biz-components/Listing/components/PurchaseBar/ScrollSpyNav/types.js.map +7 -0
  243. package/dist/esm/biz-components/Listing/components/PurchaseBar/index.d.ts +3 -0
  244. package/dist/esm/biz-components/Listing/components/PurchaseBar/index.js +2 -0
  245. package/dist/esm/biz-components/Listing/components/PurchaseBar/index.js.map +7 -0
  246. package/dist/esm/biz-components/Listing/components/PurchaseBar/types.d.ts +12 -0
  247. package/dist/esm/biz-components/Listing/components/PurchaseBar/types.js +1 -0
  248. package/dist/esm/biz-components/Listing/components/PurchaseBar/types.js.map +7 -0
  249. package/dist/esm/biz-components/Listing/components/index.d.ts +3 -0
  250. package/dist/esm/biz-components/Listing/components/index.js +2 -0
  251. package/dist/esm/biz-components/Listing/components/index.js.map +7 -0
  252. package/dist/esm/biz-components/Listing/const.d.ts +29 -0
  253. package/dist/esm/biz-components/Listing/const.js +2 -0
  254. package/dist/esm/biz-components/Listing/const.js.map +7 -0
  255. package/dist/esm/biz-components/Listing/hooks/use-options.d.ts +3 -0
  256. package/dist/esm/biz-components/Listing/hooks/use-options.js +2 -0
  257. package/dist/esm/biz-components/Listing/hooks/use-options.js.map +7 -0
  258. package/dist/esm/biz-components/Listing/hooks/use-variant-media.d.ts +14 -0
  259. package/dist/esm/biz-components/Listing/hooks/use-variant-media.js +2 -0
  260. package/dist/esm/biz-components/Listing/hooks/use-variant-media.js.map +7 -0
  261. package/dist/esm/biz-components/Listing/hooks/use-variant.d.ts +5 -0
  262. package/dist/esm/biz-components/Listing/hooks/use-variant.js +2 -0
  263. package/dist/esm/biz-components/Listing/hooks/use-variant.js.map +7 -0
  264. package/dist/esm/biz-components/Listing/hooks/useBenefits.d.ts +50 -0
  265. package/dist/esm/biz-components/Listing/hooks/useBenefits.js +2 -0
  266. package/dist/esm/biz-components/Listing/hooks/useBenefits.js.map +7 -0
  267. package/dist/esm/biz-components/Listing/hooks/useCopy.d.ts +5 -0
  268. package/dist/esm/biz-components/Listing/hooks/useCopy.js +2 -0
  269. package/dist/esm/biz-components/Listing/hooks/useCopy.js.map +7 -0
  270. package/dist/esm/biz-components/Listing/index.d.ts +3 -0
  271. package/dist/esm/biz-components/Listing/index.js +2 -0
  272. package/dist/esm/biz-components/Listing/index.js.map +7 -0
  273. package/dist/esm/biz-components/Listing/types/graphql.d.ts +7473 -0
  274. package/dist/esm/biz-components/Listing/types/graphql.js +2 -0
  275. package/dist/esm/biz-components/Listing/types/graphql.js.map +7 -0
  276. package/dist/esm/biz-components/Listing/types/product.d.ts +141 -0
  277. package/dist/esm/biz-components/Listing/types/product.js +2 -0
  278. package/dist/esm/biz-components/Listing/types/product.js.map +7 -0
  279. package/dist/esm/biz-components/Listing/types/productMetafields.d.js +2 -0
  280. package/dist/esm/biz-components/Listing/types/productMetafields.d.js.map +7 -0
  281. package/dist/esm/biz-components/Listing/types/type-helper.d.ts +5 -0
  282. package/dist/esm/biz-components/Listing/types/type-helper.js +1 -0
  283. package/dist/esm/biz-components/Listing/types/type-helper.js.map +7 -0
  284. package/dist/esm/biz-components/Listing/types.d.ts +28 -0
  285. package/dist/esm/biz-components/Listing/types.js +1 -0
  286. package/dist/esm/biz-components/Listing/types.js.map +7 -0
  287. package/dist/esm/biz-components/Listing/utils/helper.d.ts +36 -0
  288. package/dist/esm/biz-components/Listing/utils/helper.js +2 -0
  289. package/dist/esm/biz-components/Listing/utils/helper.js.map +7 -0
  290. package/dist/esm/biz-components/Listing/utils/index.d.ts +37 -0
  291. package/dist/esm/biz-components/Listing/utils/index.js +2 -0
  292. package/dist/esm/biz-components/Listing/utils/index.js.map +7 -0
  293. package/dist/esm/biz-components/Listing/utils/textFormat.d.ts +73 -0
  294. package/dist/esm/biz-components/Listing/utils/textFormat.js +2 -0
  295. package/dist/esm/biz-components/Listing/utils/textFormat.js.map +7 -0
  296. package/dist/esm/biz-components/TabWithImage/TabWithImage.js +1 -1
  297. package/dist/esm/biz-components/TabWithImage/TabWithImage.js.map +2 -2
  298. package/dist/esm/biz-components/TabsWithMedia/TabsWithMedia.js.map +2 -2
  299. package/dist/esm/biz-components/index.d.ts +17 -0
  300. package/dist/esm/biz-components/index.js +1 -1
  301. package/dist/esm/biz-components/index.js.map +2 -2
  302. package/dist/esm/components/checkbox.d.ts +1 -0
  303. package/dist/esm/components/checkbox.js +1 -1
  304. package/dist/esm/components/checkbox.js.map +3 -3
  305. package/dist/tokens/base.css +1 -1
  306. package/package.json +1 -1
@@ -0,0 +1,2 @@
1
+ "use strict";var a=Object.defineProperty;var h=Object.getOwnPropertyDescriptor;var _=Object.getOwnPropertyNames;var v=Object.prototype.hasOwnProperty;var x=(t,o)=>{for(var s in o)a(t,s,{get:o[s],enumerable:!0})},y=(t,o,s,i)=>{if(o&&typeof o=="object"||typeof o=="function")for(let r of _(o))!v.call(t,r)&&r!==s&&a(t,r,{get:()=>o[r],enumerable:!(i=h(o,r))||i.enumerable});return t};var b=t=>y(a({},"__esModule",{value:!0}),t);var w={};x(w,{ShopifyColorOption:()=>N});module.exports=b(w);var e=require("react/jsx-runtime"),n=require("../../../../../../components"),l=require("../../../../utils/helper.js"),u=require("react"),c=require("../../../../../../helpers"),m=require("../../../../../AiuiProvider/index.js");const N=({onClick:t,label:o,className:s})=>{const[i,r]=(0,u.useState)({}),{locale:E,storeDomain:f}=(0,m.useAiuiContext)(),d=`https://${f}/cdn/shop/files/${(0,l.handle)(o)}.png`;return(0,e.jsxs)("div",{className:"relative",children:[(0,e.jsx)("button",{className:(0,c.cn)("relative flex h-[36px] w-[36px] items-center justify-center rounded-full bg-center bg-no-repeat outline outline-2 outline-offset-4 outline-white",!t&&"cursor-default",s),"aria-label":`switch to ${o}`,onClick:t||(()=>{}),title:o,style:i[o]?{background:o}:{},children:!i[o]&&(0,e.jsx)(e.Fragment,{children:(0,e.jsx)(n.Picture,{className:"w-full",source:d,onError:({currentTarget:p})=>{p.onerror=null,r(g=>({...g,[o]:!0}))}})})}),(0,e.jsx)("div",{className:"absolute inset-0 rounded-full shadow-[inset_0_0_4px_rgba(0,0,0,0.08),inset_0_2px_2px_rgba(0,0,0,0.12)]"})]})};
2
+ //# sourceMappingURL=ShopifyColorOption.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../../../src/biz-components/Listing/components/ProductCard/ProductGallery/components/ShopifyColorOption.tsx"],
4
+ "sourcesContent": ["import { Picture } from '../../../../../../components'\nimport { handle } from '../../../../utils/helper.js'\nimport { useState } from 'react'\nimport { cn as classNames } from '../../../../../../helpers'\nimport { useAiuiContext } from '../../../../../AiuiProvider/index.js'\n\nexport const ShopifyColorOption = ({\n onClick,\n label,\n className,\n}: {\n onClick?: () => void\n label: string\n className?: string\n}) => {\n const [imgLoadError, setImgLoadError] = useState({})\n\n const { locale, storeDomain } = useAiuiContext()\n const imagePath = `https://${storeDomain}/cdn/shop/files/${handle(label)}.png`\n return (\n <div className='relative'>\n <button\n className={classNames(\n `relative flex h-[36px] w-[36px] items-center justify-center rounded-full bg-center bg-no-repeat outline outline-2 outline-offset-4 outline-white`,\n !onClick && 'cursor-default',\n className,\n )}\n aria-label={`switch to ${label}`}\n onClick={onClick ? onClick : () => {}}\n title={label}\n // If the image fails to load, set the background color to the color of the label\n style={imgLoadError[label as keyof typeof imgLoadError] ? { background: label } : {}}\n >\n {!imgLoadError[label as keyof typeof imgLoadError] && (\n <>\n <Picture\n className='w-full'\n source={imagePath}\n onError={({ currentTarget }) => {\n currentTarget.onerror = null // prevents looping\n setImgLoadError((prev) => ({ ...prev, [label]: true }))\n }}\n />\n </>\n )}\n </button>\n <div className='absolute inset-0 rounded-full shadow-[inset_0_0_4px_rgba(0,0,0,0.08),inset_0_2px_2px_rgba(0,0,0,0.12)]'></div>\n </div>\n )\n}\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,wBAAAE,IAAA,eAAAC,EAAAH,GAoBI,IAAAI,EAAA,6BApBJC,EAAwB,wCACxBC,EAAuB,uCACvBC,EAAyB,iBACzBC,EAAiC,qCACjCC,EAA+B,gDAExB,MAAMP,EAAqB,CAAC,CACjC,QAAAQ,EACA,MAAAC,EACA,UAAAC,CACF,IAIM,CACJ,KAAM,CAACC,EAAcC,CAAe,KAAI,YAAS,CAAC,CAAC,EAE7C,CAAE,OAAAC,EAAQ,YAAAC,CAAY,KAAI,kBAAe,EACzCC,EAAY,WAAWD,CAAW,sBAAmB,UAAOL,CAAK,CAAC,OACxE,SACE,QAAC,OAAI,UAAU,WACb,oBAAC,UACC,aAAW,EAAAO,IACT,mJACA,CAACR,GAAW,iBACZE,CACF,EACA,aAAY,aAAaD,CAAK,GAC9B,QAASD,IAAoB,IAAM,CAAC,GACpC,MAAOC,EAEP,MAAOE,EAAaF,CAAkC,EAAI,CAAE,WAAYA,CAAM,EAAI,CAAC,EAElF,UAACE,EAAaF,CAAkC,MAC/C,mBACE,mBAAC,WACC,UAAU,SACV,OAAQM,EACR,QAAS,CAAC,CAAE,cAAAE,CAAc,IAAM,CAC9BA,EAAc,QAAU,KACxBL,EAAiBM,IAAU,CAAE,GAAGA,EAAM,CAACT,CAAK,EAAG,EAAK,EAAE,CACxD,EACF,EACF,EAEJ,KACA,OAAC,OAAI,UAAU,yGAAyG,GAC1H,CAEJ",
6
+ "names": ["ShopifyColorOption_exports", "__export", "ShopifyColorOption", "__toCommonJS", "import_jsx_runtime", "import_components", "import_helper", "import_react", "import_helpers", "import_AiuiProvider", "onClick", "label", "className", "imgLoadError", "setImgLoadError", "locale", "storeDomain", "imagePath", "classNames", "currentTarget", "prev"]
7
+ }
@@ -0,0 +1 @@
1
+ export declare const SpecsModal: () => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ "use strict";var s=Object.defineProperty;var d=Object.getOwnPropertyDescriptor;var n=Object.getOwnPropertyNames;var g=Object.prototype.hasOwnProperty;var c=(a,o)=>{for(var l in o)s(a,l,{get:o[l],enumerable:!0})},x=(a,o,l,i)=>{if(o&&typeof o=="object"||typeof o=="function")for(let r of n(o))!g.call(a,r)&&r!==l&&s(a,r,{get:()=>o[r],enumerable:!(i=d(o,r))||i.enumerable});return a};var p=a=>x(s({},"__esModule",{value:!0}),a);var f={};c(f,{SpecsModal:()=>b});module.exports=p(f);var t=require("react/jsx-runtime"),e=require("../../../../../../components"),m=require("../../../../BizProductProvider");const b=()=>{const{product:a}=(0,m.useBizProductContext)();return(0,t.jsxs)(e.Dialog,{children:[(0,t.jsx)(e.DialogTrigger,{children:(0,t.jsx)("button",{className:"text-base leading-[1.4] font-bold",children:"Specs"})}),(0,t.jsxs)(e.DialogContent,{overlayClassName:"z-[100]",className:"max-h-[80vh] z-[110] overflow-y-scroll tablet:min-w-[600px] min-w-[90vw]",children:[(0,t.jsx)(e.DialogHeader,{className:"border-b border-[#E8E8E8]",children:(0,t.jsx)(e.DialogTitle,{children:"Specs"})}),(0,t.jsx)(e.Grid,{className:"gap-[40px]",children:a.metafields?.global?.specifications?.map(({key:o,value:l})=>(0,t.jsxs)(e.GridItem,{span:12,className:"flex w-full py-[24px] border-b border-[#E8E8E8]",children:[(0,t.jsx)(e.Text,{className:"flex-1 text-[16px] font-bold text-[#595959]",children:o}),(0,t.jsx)("div",{className:"flex-1 flex items-center",children:(0,t.jsx)(e.Text,{className:"text-[16px] font-semibold text-[#595959]",html:l?.trim().toLowerCase()==="true"?"\u2714\uFE0F":l?.trim().toLowerCase()==="false"?"\u274C":l})})]}))})]})]})};
2
+ //# sourceMappingURL=SpecsModal.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../../../src/biz-components/Listing/components/ProductCard/ProductGallery/components/SpecsModal.tsx"],
4
+ "sourcesContent": ["import {\n Dialog,\n DialogTrigger,\n DialogContent,\n DialogHeader,\n DialogTitle,\n Grid,\n GridItem,\n Text,\n} from '../../../../../../components'\nimport { useBizProductContext } from '../../../../BizProductProvider'\n\nexport const SpecsModal = () => {\n const { product } = useBizProductContext()\n\n return (\n <Dialog>\n <DialogTrigger>\n <button className=\"text-base leading-[1.4] font-bold\">Specs</button>\n </DialogTrigger>\n <DialogContent\n overlayClassName=\"z-[100]\"\n className=\"max-h-[80vh] z-[110] overflow-y-scroll tablet:min-w-[600px] min-w-[90vw]\"\n >\n <DialogHeader className=\"border-b border-[#E8E8E8]\">\n <DialogTitle>Specs</DialogTitle>\n </DialogHeader>\n <Grid className=\"gap-[40px]\">\n {product.metafields?.global?.specifications?.map(({ key, value }: { key: string; value: string }) => (\n <GridItem span={12} className=\"flex w-full py-[24px] border-b border-[#E8E8E8]\">\n <Text className=\"flex-1 text-[16px] font-bold text-[#595959]\">{key}</Text>\n <div className=\"flex-1 flex items-center\">\n <Text\n className=\"text-[16px] font-semibold text-[#595959]\"\n html={\n value?.trim().toLowerCase() === 'true'\n ? '\u2714\uFE0F'\n : value?.trim().toLowerCase() === 'false'\n ? '\u274C'\n : value\n }\n />\n </div>\n </GridItem>\n ))}\n </Grid>\n </DialogContent>\n </Dialog>\n )\n}\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,gBAAAE,IAAA,eAAAC,EAAAH,GAkBQ,IAAAI,EAAA,6BAlBRC,EASO,wCACPC,EAAqC,0CAE9B,MAAMJ,EAAa,IAAM,CAC9B,KAAM,CAAE,QAAAK,CAAQ,KAAI,wBAAqB,EAEzC,SACE,QAAC,UACC,oBAAC,iBACC,mBAAC,UAAO,UAAU,oCAAoC,iBAAK,EAC7D,KACA,QAAC,iBACC,iBAAiB,UACjB,UAAU,2EAEV,oBAAC,gBAAa,UAAU,4BACtB,mBAAC,eAAY,iBAAK,EACpB,KACA,OAAC,QAAK,UAAU,aACb,SAAAA,EAAQ,YAAY,QAAQ,gBAAgB,IAAI,CAAC,CAAE,IAAAC,EAAK,MAAAC,CAAM,OAC7D,QAAC,YAAS,KAAM,GAAI,UAAU,kDAC5B,oBAAC,QAAK,UAAU,8CAA+C,SAAAD,EAAI,KACnE,OAAC,OAAI,UAAU,2BACb,mBAAC,QACC,UAAU,2CACV,KACEC,GAAO,KAAK,EAAE,YAAY,IAAM,OAC5B,eACAA,GAAO,KAAK,EAAE,YAAY,IAAM,QAC9B,SACAA,EAEV,EACF,GACF,CACD,EACH,GACF,GACF,CAEJ",
6
+ "names": ["SpecsModal_exports", "__export", "SpecsModal", "__toCommonJS", "import_jsx_runtime", "import_components", "import_BizProductProvider", "product", "key", "value"]
7
+ }
@@ -0,0 +1,2 @@
1
+ declare const ProductGallery: () => import("react/jsx-runtime").JSX.Element;
2
+ export default ProductGallery;
@@ -0,0 +1,2 @@
1
+ "use strict";var $=Object.create;var L=Object.defineProperty;var F=Object.getOwnPropertyDescriptor;var j=Object.getOwnPropertyNames;var Y=Object.getPrototypeOf,W=Object.prototype.hasOwnProperty;var O=(t,l)=>{for(var a in l)L(t,a,{get:l[a],enumerable:!0})},A=(t,l,a,v)=>{if(l&&typeof l=="object"||typeof l=="function")for(let r of j(l))!W.call(t,r)&&r!==a&&L(t,r,{get:()=>l[r],enumerable:!(v=F(l,r))||v.enumerable});return t};var H=(t,l,a)=>(a=t!=null?$(Y(t)):{},A(l||!t||!t.__esModule?L(a,"default",{value:t,enumerable:!0}):a,t)),U=t=>A(L({},"__esModule",{value:!0}),t);var Q={};O(Q,{default:()=>J});module.exports=U(Q);var e=require("react/jsx-runtime"),C=require("../../../../AiuiProvider/index.js"),g=require("../../../../../components"),o=require("react"),y=require("swiper/react"),s=require("swiper/modules"),m=require("../../../../../helpers/index.js"),f=require("./types.js"),w=require("@radix-ui/react-tabs"),G=require("../../../BizProductProvider.js"),V=require("../../../hooks/use-variant-media.js"),R=require("./components/SpecsModal.js"),_=H(require("./components/CompareModal.js")),B=require("../../../utils/index.js");const I=t=>(0,e.jsxs)("svg",{width:"48",height:"48",viewBox:"0 0 48 48",fill:"none",xmlns:"http://www.w3.org/2000/svg",...t,children:[(0,e.jsx)("rect",{x:"48",y:"48",width:"48",height:"48",rx:"24",transform:"rotate(-180 48 48)",fill:"white"}),(0,e.jsx)("path",{d:"M25.1035 16.8545C25.5372 16.3818 26.246 16.3818 26.6797 16.8545C27.1067 17.3201 27.1067 18.0706 26.6797 18.5361L21.668 24L26.6797 29.4639C27.1067 29.9294 27.1067 30.6799 26.6797 31.1455C26.246 31.6182 25.5372 31.6182 25.1035 31.1455L19.3203 24.8408C18.8933 24.3752 18.8933 23.6248 19.3203 23.1592L25.1035 16.8545Z",fill:"currentColor"})]}),z=t=>(0,e.jsxs)("svg",{width:"48",height:"48",viewBox:"0 0 48 48",fill:"none",xmlns:"http://www.w3.org/2000/svg",...t,children:[(0,e.jsx)("rect",{width:"48",height:"48",rx:"24",transform:"matrix(1 -8.74228e-08 -8.74228e-08 -1 0 48)",fill:"white"}),(0,e.jsx)("path",{d:"M22.8965 16.8545C22.4628 16.3818 21.754 16.3818 21.3203 16.8545C20.8933 17.3201 20.8933 18.0706 21.3203 18.5361L26.332 24L21.3203 29.4639C20.8933 29.9294 20.8933 30.6799 21.3203 31.1455C21.754 31.6182 22.4628 31.6182 22.8965 31.1455L28.6797 24.8408C29.1067 24.3752 29.1067 23.6248 28.6797 23.1592L22.8965 16.8545Z",fill:"currentColor"})]}),Z=()=>{const{copyWriting:t}=(0,C.useAiuiContext)(),{product:l,variant:a,selectedOptions:v}=(0,G.useBizProductContext)(),r=(0,V.useVariantMedia)({product:l,variant:a}),[u,S]=(0,o.useState)(null),c=a?.metafields?.component?.custom_media_list;let d,b,T,h;c&&c?.available?(d=c?.product||[],b=c?.scenarios||[],T=c?.keyFeatures||[],h=c?.video||[]):(d=r?.productList,b=r?.sceneList,T=r?.keyFeaturesList,h=r?.videoList);const M=(0,o.useMemo)(()=>[...d,...b,...h],[d,b,h]),N={productList:d,sceneList:b,keyFeaturesList:T,videoList:h},x=(0,o.useMemo)(()=>(l?.payload?.components?.find(n=>n.componentKey==="ProductGallery")?.data||[])?.map(n=>({...n,galleries:N[n?.galleries]||[]})).filter(n=>n.galleries.length>0),[l?.payload,N]),P=(0,o.useRef)({}),[i,k]=(0,o.useState)(x?.[0]),D=(p,n)=>{switch(p?.galleryTabType){case f.GalleryTabType.GALLERY_IMAGE_MAIN:return(0,e.jsx)(E,{...p,index:n});case f.GalleryTabType.GALLERY_IMAGE_FEATURES:return(0,e.jsx)(E,{...p,index:n});case f.GalleryTabType.GALLERY_IMAGE_SCENE:return(0,e.jsx)(E,{...p,index:n});case f.GalleryTabType.GALLERY_VIDEO:return(0,e.jsx)(q,{...p});default:return null}};return(0,e.jsx)("div",{id:"ipc-product-gallery",children:(0,e.jsxs)(w.Root,{className:"relative",defaultValue:x?.[0]?.tabValue,children:[(0,e.jsx)("div",{className:"h-[420px] overflow-hidden tablet:h-[620px] desktop:rounded-2xl desktop:h-[560px] lg-desktop:h-[700px] bg-[#EAEAEC] desktop:relative ",children:x.map((p,n)=>(0,e.jsx)(w.Content,{className:"h-full",value:p.tabValue,children:D(p,n)},p.tabValue))}),(0,e.jsx)(K,{galleryTabs:x,activeGalleryTab:i,setActiveGalleryTab:k})]})})},K=({galleryTabs:t,activeGalleryTab:l,setActiveGalleryTab:a})=>{const{product:v}=(0,G.useBizProductContext)(),r=(0,o.useRef)(null);return(0,e.jsxs)("div",{className:"absolute z-[2] bottom-4 left-4 right-4 laptop:left-16 laptop:right-16 flex justify-between items-center tablet:mt-3 desktop:static",children:[(0,e.jsx)(w.List,{ref:r,className:"rounded-full bg-[#EAEAEC] p-1 laptop:p-0 desktop:p-1 overflow-x-auto",style:{scrollbarWidth:"none",msOverflowStyle:"none"},children:(0,e.jsx)("div",{className:"whitespace-nowrap",children:t?.map(u=>(0,e.jsx)(w.Trigger,{className:(0,m.cn)("lg-desktop:px-7 lg-desktop:pb-[14px] rounded-full font-bold lg-desktop:pt-[15px] lg-desktop:text-[16px] px-5 pb-[10px] pt-[11px] text-[14px] leading-tight",u.tabValue===l?.tabValue&&"bg-white"),onClick:S=>{if(a(u),r.current){const c=r.current,d=S.currentTarget,b=d.offsetLeft-c.offsetWidth/2+d.offsetWidth/2;c.scrollTo({left:b,behavior:"smooth"})}},value:u.tabValue,children:u.tabLabel},u.tabValue))})}),(0,e.jsx)("div",{className:"laptop:gap-2 hidden laptop:flex",children:v.metafields?.global?.specifications&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(R.SpecsModal,{})," | ",(0,e.jsx)(_.default,{})]})})]})},E=(0,o.forwardRef)((t,l)=>{const{locale:a="us",copyWriting:v}=(0,C.useAiuiContext)(),{variant:r,totalSavings:u}=(0,G.useBizProductContext)(),S=(0,o.useRef)(null),[c,d]=(0,o.useState)(null),[b,T]=(0,o.useState)(!0),[h,M]=(0,o.useState)(!1),[N,x]=(0,o.useState)(null),P=(0,o.useMemo)(()=>{if(t?.galleryTabType===f.GalleryTabType.GALLERY_IMAGE_MAIN)return"size-[240px] mx-auto mt-[42px] tablet:mt-16 tablet:size-[420px] lg-desktop:size-[560px]";t?.galleryTabType===f.GalleryTabType.GALLERY_IMAGE_FEATURES||(t?.galleryTabType,f.GalleryTabType.GALLERY_IMAGE_SCENE)},[t?.galleryTabType]);return(0,e.jsxs)("div",{className:"h-full [&_.swiper-button]:hover:opacity-100",children:[(0,e.jsx)(y.Swiper,{ref:l,className:"h-full",navigation:{nextEl:`.ipc-product-gallery-${t?.id}-custom-swiper-button-next`,prevEl:`.ipc-product-gallery-${t?.id}-custom-swiper-button-prev`},onSwiper:x,onProgress:i=>{T(i.isBeginning),M(i.isEnd)},pagination:{clickable:!0,el:S.current},onSlideChange:i=>{i&&(i.isEnd?t?.onCurrentTabLoopEnd?.():i.isBeginning&&t?.onCurrentTabLoopStart?.())},thumbs:{swiper:c},modules:[s.Mousewheel,s.Thumbs,s.Navigation,s.Pagination],mousewheel:{forceToAxis:!0},breakpoints:{0:{slidesPerView:1,freeMode:!1}},children:t?.galleries?.map((i,k)=>(0,e.jsx)(y.SwiperSlide,{className:"h-full",children:(0,e.jsx)(g.Picture,{source:i?.image?.url,alt:i?.image?.altText,className:(0,m.cn)("h-full",P),imgClassName:"object-contain h-full"})},t?.id+"SwiperSlideItem"+k))}),r.availableForSale&&!!u&&!t.index&&(0,e.jsx)(g.Badge,{size:"lg",className:"absolute bg-brand text-white top-3 laptop:left-16 laptop:top-5 left-4 z-[2] desktop:left-6 desktop:top-6",children:`${(0,B.formatPrice)({amount:u,currencyCode:r?.price?.currencyCode,locale:a})} ${v?.off}`}),(0,e.jsx)("div",{className:(0,m.cn)("hidden tablet:opacity-0 tablet:block tablet:absolute tablet:top-1/2 laptop:left-16 tablet:left-6 desktop:left-6 z-10 -translate-y-1/2 cursor-pointer",`ipc-product-gallery-${t?.id}-custom-swiper-button-prev`,"swiper-button"),children:(0,e.jsx)(I,{className:(0,m.cn)("tablet:size-10 lg-desktop:size-12")})}),(0,e.jsx)("div",{className:(0,m.cn)("hidden tablet:block tablet:opacity-0 tablet:absolute tablet:top-1/2 laptop:right-16 tablet:right-6 z-10 desktop:right-6 -translate-y-1/2 cursor-pointer",`ipc-product-gallery-${t?.id}-custom-swiper-button-next`,"swiper-button"),children:(0,e.jsx)(z,{className:(0,m.cn)("tablet:size-10 lg-desktop:size-12")})}),(0,e.jsxs)("div",{className:"absolute bottom-[94px] tablet:bottom-[70px] left-4 right-4 z-10 items-center tablet:flex justify-between laptop:left-16 laptop:right-16 desktop:bottom-[20px] desktop:right-6 desktop:left-6",children:[(0,e.jsx)("div",{className:"hidden tablet:block",children:(0,e.jsx)(y.Swiper,{className:"flex items-center justify-between",onSwiper:d,spaceBetween:12,slidesPerView:6,freeMode:!0,watchSlidesProgress:!0,modules:[s.Navigation,s.Thumbs],children:t?.galleries?.map((i,k)=>(0,e.jsx)(y.SwiperSlide,{className:"!w-auto [&.swiper-slide-thumb-active]:border [&.swiper-slide-thumb-active]:rounded [&.swiper-slide-thumb-active]:border-brand",children:(0,e.jsx)(g.Picture,{source:i.image?.url,alt:i.image?.altText,className:"size-10 lg-desktop:size-12 overflow-hidden bg-white rounded",imgClassName:"object-contain h-full"})},t?.id+"SwiperSlideThumbItem"+k))})}),!t?.index&&(0,e.jsxs)("div",{className:"flex items-center gap-2",children:[(0,e.jsx)(g.Picture,{source:t?.comment?.avatar?.url,className:"size-8 laptop:size-10 rounded-full shrink-0",imgClassName:"object-cover "}),(0,e.jsx)(g.Text,{html:t?.comment?.content,className:"text-sm lg-desktop:text-base max-w-[528px] font-bold text-[#1D1D1F] line-clamp-2"})]})]}),(0,e.jsx)("div",{ref:S,className:"tablet:hidden text-center absolute !bottom-[70px] left-4 right-4 z-10"})]})}),q=t=>(0,e.jsxs)("div",{className:"h-full [&_.swiper-button]:hover:opacity-100",children:[(0,e.jsx)(y.Swiper,{className:"h-full",navigation:{nextEl:`.ipc-product-gallery-${t?.id}-custom-swiper-button-next`,prevEl:`.ipc-product-gallery-${t?.id}-custom-swiper-button-prev`},modules:[s.Mousewheel,s.Thumbs,s.Navigation,s.Pagination],mousewheel:{forceToAxis:!0},breakpoints:{0:{slidesPerView:1,freeMode:!1}},children:t?.galleries?.map((l,a)=>(0,e.jsx)(y.SwiperSlide,{className:"h-full",children:(0,e.jsxs)("video",{controls:!0,className:"size-full",children:[(0,e.jsx)("track",{kind:"captions"}),(0,e.jsx)("source",{src:l?.sources?.[0]?.url,type:"video/mp4"}),(0,e.jsx)("source",{src:l?.sources?.[0]?.url,type:"video/webm"}),(0,e.jsx)("source",{src:l?.sources?.[0]?.url,type:"video/ogg"})]})},t?.id+"SwiperSlideItem"+a))}),(0,e.jsx)("div",{className:(0,m.cn)("hidden swiper-button tablet:block tablet:opacity-0 tablet:absolute tablet:top-1/2 tablet:left-6 z-10 -translate-y-1/2 cursor-pointer",`ipc-product-gallery-${t?.id}-custom-swiper-button-prev`),children:(0,e.jsx)(I,{className:"tablet:size-10 lg-desktop:size-12"})}),(0,e.jsx)("div",{className:(0,m.cn)("hidden tablet:block swiper-button tablet:opacity-0 tablet:absolute tablet:top-1/2 tablet:right-6 z-10 -translate-y-1/2 cursor-pointer",`ipc-product-gallery-${t?.id}-custom-swiper-button-next`),children:(0,e.jsx)(z,{className:"tablet:size-10 lg-desktop:size-12"})})]}),ae=t=>(0,e.jsx)("div",{children:"3D View"});var J=Z;
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../../src/biz-components/Listing/components/ProductCard/ProductGallery/index.tsx"],
4
+ "sourcesContent": ["import { useAiuiContext } from '../../../../AiuiProvider/index.js'\nimport { Text, Picture, Button, Badge } from '../../../../../components'\nimport {\n useCallback,\n useMemo,\n useState,\n forwardRef,\n useRef,\n type RefObject,\n useEffect,\n type Dispatch,\n type SetStateAction,\n} from 'react'\nimport { Swiper, SwiperSlide, type SwiperRef } from 'swiper/react'\nimport { Navigation, Mousewheel, Thumbs, Pagination } from 'swiper/modules'\nimport { cn } from '../../../../../helpers/index.js'\nimport { GalleryTabType } from './types.js'\nimport { Content, List, Root, Trigger } from '@radix-ui/react-tabs'\nimport { useBizProductContext } from '../../../BizProductProvider.js'\nimport { useVariantMedia } from '../../../hooks/use-variant-media.js'\nimport { SpecsModal } from './components/SpecsModal.js'\nimport CompareModal from './components/CompareModal.js'\nimport { formatPrice } from '../../../utils/index.js'\n\nimport type { Swiper as SwiperType } from 'swiper'\nimport type { ImageMedia, VideoMedia } from '../../../hooks/use-variant-media.js'\nimport type { ProductGalleryProps, ProductGalleryTabItemProps, GalleryTabItemProps } from './types.js'\n\nconst SwiperLeftButtonIcon = (props: React.SVGProps<SVGSVGElement>) => {\n return (\n <svg width=\"48\" height=\"48\" viewBox=\"0 0 48 48\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <rect x=\"48\" y=\"48\" width=\"48\" height=\"48\" rx=\"24\" transform=\"rotate(-180 48 48)\" fill=\"white\" />\n <path\n d=\"M25.1035 16.8545C25.5372 16.3818 26.246 16.3818 26.6797 16.8545C27.1067 17.3201 27.1067 18.0706 26.6797 18.5361L21.668 24L26.6797 29.4639C27.1067 29.9294 27.1067 30.6799 26.6797 31.1455C26.246 31.6182 25.5372 31.6182 25.1035 31.1455L19.3203 24.8408C18.8933 24.3752 18.8933 23.6248 19.3203 23.1592L25.1035 16.8545Z\"\n fill=\"currentColor\"\n />\n </svg>\n )\n}\n\nconst SwiperRightButtonIcon = (props: React.SVGProps<SVGSVGElement>) => {\n return (\n <svg width=\"48\" height=\"48\" viewBox=\"0 0 48 48\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <rect width=\"48\" height=\"48\" rx=\"24\" transform=\"matrix(1 -8.74228e-08 -8.74228e-08 -1 0 48)\" fill=\"white\" />\n <path\n d=\"M22.8965 16.8545C22.4628 16.3818 21.754 16.3818 21.3203 16.8545C20.8933 17.3201 20.8933 18.0706 21.3203 18.5361L26.332 24L21.3203 29.4639C20.8933 29.9294 20.8933 30.6799 21.3203 31.1455C21.754 31.6182 22.4628 31.6182 22.8965 31.1455L28.6797 24.8408C29.1067 24.3752 29.1067 23.6248 28.6797 23.1592L22.8965 16.8545Z\"\n fill=\"currentColor\"\n />\n </svg>\n )\n}\n\nconst ProductGallery = () => {\n const { copyWriting } = useAiuiContext()\n const { product, variant, selectedOptions } = useBizProductContext()\n const defaultMediaData = useVariantMedia({ product, variant })\n const [swiper, setSwiper] = useState<SwiperType | null>(null)\n\n const customMediaList = variant?.metafields?.component?.custom_media_list\n let productList: ImageMedia[], sceneList: ImageMedia[], keyFeaturesList: ImageMedia[], videoList: VideoMedia[]\n\n if (customMediaList && customMediaList?.available) {\n productList = customMediaList?.product || []\n sceneList = customMediaList?.scenarios || []\n keyFeaturesList = customMediaList?.keyFeatures || []\n videoList = customMediaList?.video || []\n } else {\n productList = defaultMediaData?.productList\n sceneList = defaultMediaData?.sceneList\n keyFeaturesList = defaultMediaData?.keyFeaturesList\n videoList = defaultMediaData?.videoList\n }\n\n const allMedia = useMemo(() => [...productList, ...sceneList, ...videoList], [productList, sceneList, videoList])\n\n const galleryMap: Record<string, ImageMedia[] | VideoMedia[]> = {\n productList: productList,\n sceneList: sceneList,\n keyFeaturesList: keyFeaturesList,\n videoList: videoList,\n }\n\n const galleryTabs = useMemo(() => {\n const productTab =\n product?.payload?.components?.find((item: any) => item.componentKey === 'ProductGallery')?.data || []\n\n return productTab\n ?.map((item: any) => ({\n ...item,\n galleries: galleryMap[item?.galleries] || [],\n }))\n .filter((item: any) => item.galleries.length > 0)\n }, [product?.payload, galleryMap])\n\n // \u4E3A\u6BCF\u4E2A galleryTab \u521B\u5EFA\u5BF9\u5E94\u7684 ref\n const gallerySwiperRefs = useRef<{ [key: string]: SwiperRef | null }>({})\n\n const [activeGalleryTab, setActiveGalleryTab] = useState<GalleryTabItemProps>(galleryTabs?.[0])\n\n\n // useEffect(() => {\n // if (selectedOptions?.color) {\n // setActiveGalleryTab(galleryTabs?.find((item: any) => item.galleryTabType === GalleryTabType.GALLERY_IMAGE_MAIN))\n // }\n // }, [selectedOptions, galleryTabs])\n\n // \u4E3A\u6BCF\u4E2A tab \u6E32\u67D3\u5BF9\u5E94\u7684\u7EC4\u4EF6\n const renderGalleryForTab = (tab: any, index: number) => {\n switch (tab?.galleryTabType) {\n // case GalleryTabType.GALLERY_IMAGE_MAIN ||\n // GalleryTabType.GALLERY_IMAGE_FEATURES ||\n // GalleryTabType.GALLERY_IMAGE_SCENE:\n // return (\n // <ProductGalleryTabImage\n // {...tab}\n // // onCurrentTabLoopEnd={() => {\n // // setActiveGalleryTab(galleryTabs?.[index])\n // // }}\n // // onCurrentTabLoopStart={() => {\n // // setActiveGalleryTab(galleryTabs?.[index])\n // // }}\n // index={index}\n // />\n // )\n\n case GalleryTabType.GALLERY_IMAGE_MAIN:\n return <ProductGalleryTabImage {...tab} index={index} />\n case GalleryTabType.GALLERY_IMAGE_FEATURES:\n return <ProductGalleryTabImage {...tab} index={index} />\n case GalleryTabType.GALLERY_IMAGE_SCENE:\n return <ProductGalleryTabImage {...tab} index={index} />\n case GalleryTabType.GALLERY_VIDEO:\n return <ProductGalleryTabVideo {...tab} />\n // case GalleryTabType.GALLERY_3D_VIEW:\n // return <ProductGalleryTab3DView {...item} />\n default:\n return null\n }\n }\n\n return (\n <div id=\"ipc-product-gallery\">\n <Root className=\"relative\" defaultValue={galleryTabs?.[0]?.tabValue}>\n {/* <Swiper\n className=\"h-[420px] laptop:h-[700px] bg-[#EAEAEC] rounded-2xl\"\n onSwiper={setSwiper}\n loop={true}\n // onProgress={swiper => {\n // setStart(swiper.isBeginning)\n // setEnd(swiper.isEnd)\n // }}\n modules={[Mousewheel]}\n mousewheel={{\n forceToAxis: true,\n }}\n >\n {galleryTabs.map((item, index) => {\n return (\n <Content forceMount key={item.tabValue} value={item.tabValue}>\n <SwiperSlide key={index}>{renderGalleryForTab(activeGalleryTab)}</SwiperSlide>\n </Content>\n )\n })}\n </Swiper>\n <div\n className={cn(\n 'absolute top-1/2 left-6 z-10 -translate-y-1/2 cursor-pointer',\n `ipc-product-gallery-custom-swiper-button-prev`\n )}\n >\n <SwiperLeftButtonIcon\n className=\"size-12\"\n onClick={() => {\n if (activeGalleryTab?.tabValue) {\n const currentRef = gallerySwiperRefs.current[activeGalleryTab.tabValue]\n currentRef?.swiper?.slidePrev()\n }\n }}\n />\n </div>\n <div\n className={cn(\n 'absolute top-1/2 right-6 z-10 -translate-y-1/2 cursor-pointer',\n `ipc-product-gallery-custom-swiper-button-next`\n )}\n >\n <SwiperRightButtonIcon\n className=\"size-12\"\n onClick={() => {\n if (activeGalleryTab?.tabValue) {\n const currentRef = gallerySwiperRefs.current[activeGalleryTab.tabValue]\n currentRef?.swiper?.slideNext()\n }\n }}\n />\n </div> */}\n <div className=\"h-[420px] overflow-hidden tablet:h-[620px] desktop:rounded-2xl desktop:h-[560px] lg-desktop:h-[700px] bg-[#EAEAEC] desktop:relative \">\n {galleryTabs.map((item: any, index: number) => {\n return (\n <Content key={item.tabValue} className=\"h-full\" value={item.tabValue}>\n {renderGalleryForTab(item, index)}\n </Content>\n )\n })}\n </div>\n <ProductGalleryTab\n galleryTabs={galleryTabs}\n activeGalleryTab={activeGalleryTab}\n setActiveGalleryTab={setActiveGalleryTab}\n />\n </Root>\n </div>\n )\n}\n\nconst ProductGalleryTab = ({\n galleryTabs,\n activeGalleryTab,\n setActiveGalleryTab,\n}: {\n galleryTabs: GalleryTabItemProps[]\n activeGalleryTab: GalleryTabItemProps\n setActiveGalleryTab: Dispatch<SetStateAction<GalleryTabItemProps>>\n}) => {\n const { product } = useBizProductContext()\n const scrollContainerRef = useRef<HTMLDivElement>(null)\n return (\n <div className=\"absolute z-[2] bottom-4 left-4 right-4 laptop:left-16 laptop:right-16 flex justify-between items-center tablet:mt-3 desktop:static\">\n <List\n ref={scrollContainerRef}\n className=\"rounded-full bg-[#EAEAEC] p-1 laptop:p-0 desktop:p-1 overflow-x-auto\"\n style={{\n scrollbarWidth: 'none',\n msOverflowStyle: 'none',\n }}\n >\n <div className=\"whitespace-nowrap\">\n {galleryTabs?.map(item => {\n return (\n <Trigger\n className={cn(\n 'lg-desktop:px-7 lg-desktop:pb-[14px] rounded-full font-bold lg-desktop:pt-[15px] lg-desktop:text-[16px] px-5 pb-[10px] pt-[11px] text-[14px] leading-tight',\n item.tabValue === activeGalleryTab?.tabValue && 'bg-white'\n )}\n onClick={el => {\n setActiveGalleryTab(item)\n if (scrollContainerRef.current) {\n const container = scrollContainerRef.current\n const button = el.currentTarget\n const scrollLeft = button.offsetLeft - container.offsetWidth / 2 + button.offsetWidth / 2\n container.scrollTo({\n left: scrollLeft,\n behavior: 'smooth',\n })\n }\n }}\n key={item.tabValue}\n value={item.tabValue}\n >\n {item.tabLabel}\n </Trigger>\n )\n })}\n </div>\n </List>\n <div className=\"laptop:gap-2 hidden laptop:flex\">\n {product.metafields?.global?.specifications && (\n <>\n <SpecsModal /> | <CompareModal />\n </>\n )}\n </div>\n </div>\n )\n}\n\nconst ProductGalleryTabImage = forwardRef<SwiperRef, ProductGalleryTabItemProps>((props, ref) => {\n const { locale = 'us', copyWriting } = useAiuiContext()\n const { variant, totalSavings } = useBizProductContext()\n const paginationRef = useRef<HTMLDivElement>(null)\n const [thumbsSwiper, setThumbsSwiper] = useState<SwiperType | null>(null)\n const [isStart, setStart] = useState(true)\n const [isEnd, setEnd] = useState(false)\n const [swiper, setSwiper] = useState<SwiperType | null>(null)\n\n const imageClassName = useMemo(() => {\n if (props?.galleryTabType === GalleryTabType.GALLERY_IMAGE_MAIN) {\n return 'size-[240px] mx-auto mt-[42px] tablet:mt-16 tablet:size-[420px] lg-desktop:size-[560px]'\n } else if (props?.galleryTabType === GalleryTabType.GALLERY_IMAGE_FEATURES) {\n // return '420px'\n } else if (props?.galleryTabType === GalleryTabType.GALLERY_IMAGE_SCENE) {\n // return '560px'\n }\n }, [props?.galleryTabType])\n\n return (\n <div className=\"h-full [&_.swiper-button]:hover:opacity-100\">\n <Swiper\n ref={ref}\n className=\"h-full\"\n navigation={{\n nextEl: `.ipc-product-gallery-${props?.id}-custom-swiper-button-next`,\n prevEl: `.ipc-product-gallery-${props?.id}-custom-swiper-button-prev`,\n }}\n onSwiper={setSwiper}\n onProgress={swiper => {\n setStart(swiper.isBeginning)\n setEnd(swiper.isEnd)\n }}\n pagination={{\n clickable: true,\n el: paginationRef.current,\n }}\n onSlideChange={swiper => {\n if (swiper) {\n if (swiper.isEnd) {\n props?.onCurrentTabLoopEnd?.()\n } else if (swiper.isBeginning) {\n props?.onCurrentTabLoopStart?.()\n }\n }\n }}\n thumbs={{ swiper: thumbsSwiper }}\n modules={[Mousewheel, Thumbs, Navigation, Pagination]}\n mousewheel={{\n forceToAxis: true,\n }}\n breakpoints={{\n 0: {\n slidesPerView: 1,\n freeMode: false,\n },\n }}\n >\n {props?.galleries?.map((item, jIndex) => {\n return (\n <SwiperSlide className=\"h-full\" key={props?.id + 'SwiperSlideItem' + jIndex}>\n <Picture\n source={item?.image?.url}\n alt={item?.image?.altText}\n className={cn(\"h-full\", imageClassName)}\n imgClassName=\"object-contain h-full\"\n />\n </SwiperSlide>\n )\n })}\n </Swiper>\n {variant.availableForSale && !!totalSavings && !props.index && (\n <Badge\n size=\"lg\"\n className=\"absolute bg-brand text-white top-3 laptop:left-16 laptop:top-5 left-4 z-[2] desktop:left-6 desktop:top-6\"\n >\n {`${formatPrice({\n amount: totalSavings,\n currencyCode: variant?.price?.currencyCode,\n locale: locale,\n })} ${copyWriting?.off}`}\n </Badge>\n )}\n <div\n className={cn(\n 'hidden tablet:opacity-0 tablet:block tablet:absolute tablet:top-1/2 laptop:left-16 tablet:left-6 desktop:left-6 z-10 -translate-y-1/2 cursor-pointer',\n `ipc-product-gallery-${props?.id}-custom-swiper-button-prev`,\n `swiper-button`\n )}\n >\n <SwiperLeftButtonIcon className={cn('tablet:size-10 lg-desktop:size-12')} />\n </div>\n <div\n className={cn(\n 'hidden tablet:block tablet:opacity-0 tablet:absolute tablet:top-1/2 laptop:right-16 tablet:right-6 z-10 desktop:right-6 -translate-y-1/2 cursor-pointer',\n `ipc-product-gallery-${props?.id}-custom-swiper-button-next`,\n `swiper-button`\n )}\n >\n <SwiperRightButtonIcon className={cn('tablet:size-10 lg-desktop:size-12')} />\n </div>\n {/* {props?.galleries?.map((item, jIndex) => {\n return (\n <Picture\n key={props?.id + 'SwiperSlideItem' + jIndex}\n source={item?.image?.url}\n alt={item?.image?.altText}\n className=\"h-full\"\n imgClassName=\"object-cover h-full\"\n />\n )\n })} */}\n <div className=\"absolute bottom-[94px] tablet:bottom-[70px] left-4 right-4 z-10 items-center tablet:flex justify-between laptop:left-16 laptop:right-16 desktop:bottom-[20px] desktop:right-6 desktop:left-6\">\n <div className=\"hidden tablet:block\">\n <Swiper\n className=\"flex items-center justify-between\"\n onSwiper={setThumbsSwiper}\n spaceBetween={12}\n slidesPerView={6}\n freeMode={true}\n watchSlidesProgress={true}\n modules={[Navigation, Thumbs]}\n >\n {props?.galleries?.map((item, jIndex) => (\n <SwiperSlide\n key={props?.id + 'SwiperSlideThumbItem' + jIndex}\n className=\"!w-auto [&.swiper-slide-thumb-active]:border [&.swiper-slide-thumb-active]:rounded [&.swiper-slide-thumb-active]:border-brand\"\n >\n <Picture\n source={item.image?.url}\n alt={item.image?.altText}\n className=\"size-10 lg-desktop:size-12 overflow-hidden bg-white rounded\"\n imgClassName=\"object-contain h-full\"\n />\n </SwiperSlide>\n ))}\n </Swiper>\n </div>\n {!props?.index && (\n <div className=\"flex items-center gap-2\">\n <Picture\n source={props?.comment?.avatar?.url}\n className=\"size-8 laptop:size-10 rounded-full shrink-0\"\n imgClassName=\"object-cover \"\n />\n <Text\n html={props?.comment?.content}\n className=\"text-sm lg-desktop:text-base max-w-[528px] font-bold text-[#1D1D1F] line-clamp-2\"\n />\n </div>\n )}\n </div>\n <div ref={paginationRef} className=\"tablet:hidden text-center absolute !bottom-[70px] left-4 right-4 z-10\" />\n </div>\n )\n})\n\nconst ProductGalleryTabVideo = (props: ProductGalleryTabItemProps) => {\n return (\n <div className=\"h-full [&_.swiper-button]:hover:opacity-100\">\n <Swiper\n className=\"h-full\"\n navigation={{\n nextEl: `.ipc-product-gallery-${props?.id}-custom-swiper-button-next`,\n prevEl: `.ipc-product-gallery-${props?.id}-custom-swiper-button-prev`,\n }}\n modules={[Mousewheel, Thumbs, Navigation, Pagination]}\n mousewheel={{\n forceToAxis: true,\n }}\n breakpoints={{\n 0: {\n slidesPerView: 1,\n freeMode: false,\n },\n }}\n >\n {props?.galleries?.map((item, jIndex) => {\n return (\n <SwiperSlide className=\"h-full\" key={props?.id + 'SwiperSlideItem' + jIndex}>\n <video controls className=\"size-full\">\n <track kind=\"captions\" />\n <source src={item?.sources?.[0]?.url} type=\"video/mp4\" />\n <source src={item?.sources?.[0]?.url} type=\"video/webm\" />\n <source src={item?.sources?.[0]?.url} type=\"video/ogg\" />\n </video>\n </SwiperSlide>\n )\n })}\n </Swiper>\n <div\n className={cn(\n 'hidden swiper-button tablet:block tablet:opacity-0 tablet:absolute tablet:top-1/2 tablet:left-6 z-10 -translate-y-1/2 cursor-pointer',\n `ipc-product-gallery-${props?.id}-custom-swiper-button-prev`\n )}\n >\n <SwiperLeftButtonIcon className=\"tablet:size-10 lg-desktop:size-12\" />\n </div>\n <div\n className={cn(\n 'hidden tablet:block swiper-button tablet:opacity-0 tablet:absolute tablet:top-1/2 tablet:right-6 z-10 -translate-y-1/2 cursor-pointer',\n `ipc-product-gallery-${props?.id}-custom-swiper-button-next`\n )}\n >\n <SwiperRightButtonIcon className=\"tablet:size-10 lg-desktop:size-12\" />\n </div>\n </div>\n )\n}\n\nconst ProductGalleryTab3DView = (props: ProductGalleryTabItemProps) => {\n return <div>3D View</div>\n}\n\nexport default ProductGallery\n"],
5
+ "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,IAAA,eAAAC,EAAAH,GA8BI,IAAAI,EAAA,6BA9BJC,EAA+B,6CAC/BC,EAA6C,qCAC7CC,EAUO,iBACPA,EAAoD,wBACpDC,EAA2D,0BAC3DC,EAAmB,2CACnBC,EAA+B,sBAC/BC,EAA6C,gCAC7CC,EAAqC,0CACrCC,EAAgC,+CAChCC,EAA2B,sCAC3BC,EAAyB,2CACzBC,EAA4B,mCAM5B,MAAMC,EAAwBC,MAE1B,QAAC,OAAI,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,KAAK,OAAO,MAAM,6BAA8B,GAAGA,EACjG,oBAAC,QAAK,EAAE,KAAK,EAAE,KAAK,MAAM,KAAK,OAAO,KAAK,GAAG,KAAK,UAAU,qBAAqB,KAAK,QAAQ,KAC/F,OAAC,QACC,EAAE,4TACF,KAAK,eACP,GACF,EAIEC,EAAyBD,MAE3B,QAAC,OAAI,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,KAAK,OAAO,MAAM,6BAA8B,GAAGA,EACjG,oBAAC,QAAK,MAAM,KAAK,OAAO,KAAK,GAAG,KAAK,UAAU,8CAA8C,KAAK,QAAQ,KAC1G,OAAC,QACC,EAAE,4TACF,KAAK,eACP,GACF,EAIEE,EAAiB,IAAM,CAC3B,KAAM,CAAE,YAAAC,CAAY,KAAI,kBAAe,EACjC,CAAE,QAAAC,EAAS,QAAAC,EAAS,gBAAAC,CAAgB,KAAI,wBAAqB,EAC7DC,KAAmB,mBAAgB,CAAE,QAAAH,EAAS,QAAAC,CAAQ,CAAC,EACvD,CAACG,EAAQC,CAAS,KAAI,YAA4B,IAAI,EAEtDC,EAAkBL,GAAS,YAAY,WAAW,kBACxD,IAAIM,EAA2BC,EAAyBC,EAA+BC,EAEnFJ,GAAmBA,GAAiB,WACtCC,EAAcD,GAAiB,SAAW,CAAC,EAC3CE,EAAYF,GAAiB,WAAa,CAAC,EAC3CG,EAAkBH,GAAiB,aAAe,CAAC,EACnDI,EAAYJ,GAAiB,OAAS,CAAC,IAEvCC,EAAcJ,GAAkB,YAChCK,EAAYL,GAAkB,UAC9BM,EAAkBN,GAAkB,gBACpCO,EAAYP,GAAkB,WAGhC,MAAMQ,KAAW,WAAQ,IAAM,CAAC,GAAGJ,EAAa,GAAGC,EAAW,GAAGE,CAAS,EAAG,CAACH,EAAaC,EAAWE,CAAS,CAAC,EAE1GE,EAA0D,CAC9D,YAAaL,EACb,UAAWC,EACX,gBAAiBC,EACjB,UAAWC,CACb,EAEMG,KAAc,WAAQ,KAExBb,GAAS,SAAS,YAAY,KAAMc,GAAcA,EAAK,eAAiB,gBAAgB,GAAG,MAAQ,CAAC,IAGlG,IAAKA,IAAe,CACpB,GAAGA,EACH,UAAWF,EAAWE,GAAM,SAAS,GAAK,CAAC,CAC7C,EAAE,EACD,OAAQA,GAAcA,EAAK,UAAU,OAAS,CAAC,EACjD,CAACd,GAAS,QAASY,CAAU,CAAC,EAG3BG,KAAoB,UAA4C,CAAC,CAAC,EAElE,CAACC,EAAkBC,CAAmB,KAAI,YAA8BJ,IAAc,CAAC,CAAC,EAUxFK,EAAsB,CAACC,EAAUC,IAAkB,CACvD,OAAQD,GAAK,eAAgB,CAiB3B,KAAK,iBAAe,mBAClB,SAAO,OAACE,EAAA,CAAwB,GAAGF,EAAK,MAAOC,EAAO,EACxD,KAAK,iBAAe,uBAClB,SAAO,OAACC,EAAA,CAAwB,GAAGF,EAAK,MAAOC,EAAO,EACxD,KAAK,iBAAe,oBAClB,SAAO,OAACC,EAAA,CAAwB,GAAGF,EAAK,MAAOC,EAAO,EACxD,KAAK,iBAAe,cAClB,SAAO,OAACE,EAAA,CAAwB,GAAGH,EAAK,EAG1C,QACE,OAAO,IACX,CACF,EAEA,SACE,OAAC,OAAI,GAAG,sBACN,oBAAC,QAAK,UAAU,WAAW,aAAcN,IAAc,CAAC,GAAG,SAsDzD,oBAAC,OAAI,UAAU,uIACZ,SAAAA,EAAY,IAAI,CAACC,EAAWM,OAEzB,OAAC,WAA4B,UAAU,SAAS,MAAON,EAAK,SACzD,SAAAI,EAAoBJ,EAAMM,CAAK,GADpBN,EAAK,QAEnB,CAEH,EACH,KACA,OAACS,EAAA,CACC,YAAaV,EACb,iBAAkBG,EAClB,oBAAqBC,EACvB,GACF,EACF,CAEJ,EAEMM,EAAoB,CAAC,CACzB,YAAAV,EACA,iBAAAG,EACA,oBAAAC,CACF,IAIM,CACJ,KAAM,CAAE,QAAAjB,CAAQ,KAAI,wBAAqB,EACnCwB,KAAqB,UAAuB,IAAI,EACtD,SACE,QAAC,OAAI,UAAU,qIACb,oBAAC,QACC,IAAKA,EACL,UAAU,uEACV,MAAO,CACL,eAAgB,OAChB,gBAAiB,MACnB,EAEA,mBAAC,OAAI,UAAU,oBACZ,SAAAX,GAAa,IAAIC,MAEd,OAAC,WACC,aAAW,MACT,6JACAA,EAAK,WAAaE,GAAkB,UAAY,UAClD,EACA,QAASS,GAAM,CAEb,GADAR,EAAoBH,CAAI,EACpBU,EAAmB,QAAS,CAC9B,MAAME,EAAYF,EAAmB,QAC/BG,EAASF,EAAG,cACZG,EAAaD,EAAO,WAAaD,EAAU,YAAc,EAAIC,EAAO,YAAc,EACxFD,EAAU,SAAS,CACjB,KAAME,EACN,SAAU,QACZ,CAAC,CACH,CACF,EAEA,MAAOd,EAAK,SAEX,SAAAA,EAAK,UAHDA,EAAK,QAIZ,CAEH,EACH,EACF,KACA,OAAC,OAAI,UAAU,kCACZ,SAAAd,EAAQ,YAAY,QAAQ,mBAC3B,oBACE,oBAAC,eAAW,EAAE,SAAG,OAAC,EAAA6B,QAAA,EAAa,GACjC,EAEJ,GACF,CAEJ,EAEMR,KAAyB,cAAkD,CAACzB,EAAOkC,IAAQ,CAC/F,KAAM,CAAE,OAAAC,EAAS,KAAM,YAAAhC,CAAY,KAAI,kBAAe,EAChD,CAAE,QAAAE,EAAS,aAAA+B,CAAa,KAAI,wBAAqB,EACjDC,KAAgB,UAAuB,IAAI,EAC3C,CAACC,EAAcC,CAAe,KAAI,YAA4B,IAAI,EAClE,CAACC,EAASC,CAAQ,KAAI,YAAS,EAAI,EACnC,CAACC,EAAOC,CAAM,KAAI,YAAS,EAAK,EAChC,CAACnC,EAAQC,CAAS,KAAI,YAA4B,IAAI,EAEtDmC,KAAiB,WAAQ,IAAM,CACnC,GAAI5C,GAAO,iBAAmB,iBAAe,mBAC3C,MAAO,0FACEA,GAAO,iBAAmB,iBAAe,yBAEzCA,GAAO,eAAmB,iBAAe,oBAGtD,EAAG,CAACA,GAAO,cAAc,CAAC,EAE1B,SACE,QAAC,OAAI,UAAU,8CACb,oBAAC,UACC,IAAKkC,EACL,UAAU,SACV,WAAY,CACV,OAAQ,wBAAwBlC,GAAO,EAAE,6BACzC,OAAQ,wBAAwBA,GAAO,EAAE,4BAC3C,EACA,SAAUS,EACV,WAAYD,GAAU,CACpBiC,EAASjC,EAAO,WAAW,EAC3BmC,EAAOnC,EAAO,KAAK,CACrB,EACA,WAAY,CACV,UAAW,GACX,GAAI6B,EAAc,OACpB,EACA,cAAe7B,GAAU,CACnBA,IACEA,EAAO,MACTR,GAAO,sBAAsB,EACpBQ,EAAO,aAChBR,GAAO,wBAAwB,EAGrC,EACA,OAAQ,CAAE,OAAQsC,CAAa,EAC/B,QAAS,CAAC,aAAY,SAAQ,aAAY,YAAU,EACpD,WAAY,CACV,YAAa,EACf,EACA,YAAa,CACX,EAAG,CACD,cAAe,EACf,SAAU,EACZ,CACF,EAEC,SAAAtC,GAAO,WAAW,IAAI,CAACkB,EAAM2B,OAE1B,OAAC,eAAY,UAAU,SACrB,mBAAC,WACC,OAAQ3B,GAAM,OAAO,IACrB,IAAKA,GAAM,OAAO,QAClB,aAAW,MAAG,SAAU0B,CAAc,EACtC,aAAa,wBACf,GANmC5C,GAAO,GAAK,kBAAoB6C,CAOrE,CAEH,EACH,EACCxC,EAAQ,kBAAoB,CAAC,CAAC+B,GAAgB,CAACpC,EAAM,UACpD,OAAC,SACC,KAAK,KACL,UAAU,2GAET,eAAG,eAAY,CACd,OAAQoC,EACR,aAAc/B,GAAS,OAAO,aAC9B,OAAQ8B,CACV,CAAC,CAAC,IAAIhC,GAAa,GAAG,GACxB,KAEF,OAAC,OACC,aAAW,MACT,uJACA,uBAAuBH,GAAO,EAAE,6BAChC,eACF,EAEA,mBAACD,EAAA,CAAqB,aAAW,MAAG,mCAAmC,EAAG,EAC5E,KACA,OAAC,OACC,aAAW,MACT,0JACA,uBAAuBC,GAAO,EAAE,6BAChC,eACF,EAEA,mBAACC,EAAA,CAAsB,aAAW,MAAG,mCAAmC,EAAG,EAC7E,KAYA,QAAC,OAAI,UAAU,+LACb,oBAAC,OAAI,UAAU,sBACb,mBAAC,UACC,UAAU,oCACV,SAAUsC,EACV,aAAc,GACd,cAAe,EACf,SAAU,GACV,oBAAqB,GACrB,QAAS,CAAC,aAAY,QAAM,EAE3B,SAAAvC,GAAO,WAAW,IAAI,CAACkB,EAAM2B,OAC5B,OAAC,eAEC,UAAU,gIAEV,mBAAC,WACC,OAAQ3B,EAAK,OAAO,IACpB,IAAKA,EAAK,OAAO,QACjB,UAAU,8DACV,aAAa,wBACf,GARKlB,GAAO,GAAK,uBAAyB6C,CAS5C,CACD,EACH,EACF,EACC,CAAC7C,GAAO,UACP,QAAC,OAAI,UAAU,0BACb,oBAAC,WACC,OAAQA,GAAO,SAAS,QAAQ,IAChC,UAAU,8CACV,aAAa,gBACf,KACA,OAAC,QACC,KAAMA,GAAO,SAAS,QACtB,UAAU,mFACZ,GACF,GAEJ,KACA,OAAC,OAAI,IAAKqC,EAAe,UAAU,wEAAwE,GAC7G,CAEJ,CAAC,EAEKX,EAA0B1B,MAE5B,QAAC,OAAI,UAAU,8CACb,oBAAC,UACC,UAAU,SACV,WAAY,CACV,OAAQ,wBAAwBA,GAAO,EAAE,6BACzC,OAAQ,wBAAwBA,GAAO,EAAE,4BAC3C,EACA,QAAS,CAAC,aAAY,SAAQ,aAAY,YAAU,EACpD,WAAY,CACV,YAAa,EACf,EACA,YAAa,CACX,EAAG,CACD,cAAe,EACf,SAAU,EACZ,CACF,EAEC,SAAAA,GAAO,WAAW,IAAI,CAACkB,EAAM2B,OAE1B,OAAC,eAAY,UAAU,SACrB,oBAAC,SAAM,SAAQ,GAAC,UAAU,YACxB,oBAAC,SAAM,KAAK,WAAW,KACvB,OAAC,UAAO,IAAK3B,GAAM,UAAU,CAAC,GAAG,IAAK,KAAK,YAAY,KACvD,OAAC,UAAO,IAAKA,GAAM,UAAU,CAAC,GAAG,IAAK,KAAK,aAAa,KACxD,OAAC,UAAO,IAAKA,GAAM,UAAU,CAAC,GAAG,IAAK,KAAK,YAAY,GACzD,GANmClB,GAAO,GAAK,kBAAoB6C,CAOrE,CAEH,EACH,KACA,OAAC,OACC,aAAW,MACT,uIACA,uBAAuB7C,GAAO,EAAE,4BAClC,EAEA,mBAACD,EAAA,CAAqB,UAAU,oCAAoC,EACtE,KACA,OAAC,OACC,aAAW,MACT,wIACA,uBAAuBC,GAAO,EAAE,4BAClC,EAEA,mBAACC,EAAA,CAAsB,UAAU,oCAAoC,EACvE,GACF,EAIE6C,GAA2B9C,MACxB,OAAC,OAAI,mBAAO,EAGrB,IAAOhB,EAAQkB",
6
+ "names": ["ProductGallery_exports", "__export", "ProductGallery_default", "__toCommonJS", "import_jsx_runtime", "import_AiuiProvider", "import_components", "import_react", "import_modules", "import_helpers", "import_types", "import_react_tabs", "import_BizProductProvider", "import_use_variant_media", "import_SpecsModal", "import_CompareModal", "import_utils", "SwiperLeftButtonIcon", "props", "SwiperRightButtonIcon", "ProductGallery", "copyWriting", "product", "variant", "selectedOptions", "defaultMediaData", "swiper", "setSwiper", "customMediaList", "productList", "sceneList", "keyFeaturesList", "videoList", "allMedia", "galleryMap", "galleryTabs", "item", "gallerySwiperRefs", "activeGalleryTab", "setActiveGalleryTab", "renderGalleryForTab", "tab", "index", "ProductGalleryTabImage", "ProductGalleryTabVideo", "ProductGalleryTab", "scrollContainerRef", "el", "container", "button", "scrollLeft", "CompareModal", "ref", "locale", "totalSavings", "paginationRef", "thumbsSwiper", "setThumbsSwiper", "isStart", "setStart", "isEnd", "setEnd", "imageClassName", "jIndex", "ProductGalleryTab3DView"]
7
+ }
@@ -0,0 +1,37 @@
1
+ import type { Img } from '../../../../../types/props.js';
2
+ import type { ImageMedia, VideoMedia } from '../../../hooks/use-variant-media.js';
3
+ export interface ProductGalleryProps {
4
+ data: {
5
+ gallerySections: {
6
+ title: string;
7
+ }[];
8
+ };
9
+ }
10
+ export interface ProductGalleryTabItemProps {
11
+ index: number;
12
+ galleryTabType: GalleryTabType;
13
+ galleries: ImageMedia[] | VideoMedia[];
14
+ onCurrentTabLoopStart?: () => void;
15
+ onCurrentTabLoopEnd?: () => void;
16
+ id: string;
17
+ comment?: {
18
+ content: string;
19
+ avatar: Img;
20
+ };
21
+ tabLabel: string;
22
+ tabValue: string;
23
+ }
24
+ export interface GalleryTabItemProps {
25
+ tabLabel: string;
26
+ tabValue: string;
27
+ id: string;
28
+ galleryTabType: GalleryTabType;
29
+ galleries: ImageMedia[] | VideoMedia[];
30
+ }
31
+ export declare enum GalleryTabType {
32
+ GALLERY_IMAGE_MAIN = "ipc-gallery-tab-image-main",
33
+ GALLERY_IMAGE_FEATURES = "ipc-gallery-tab-image-features",
34
+ GALLERY_IMAGE_SCENE = "ipc-gallery-tab-image-scene",
35
+ GALLERY_VIDEO = "ipc-gallery-tab-video",
36
+ GALLERY_3D_VIEW = "ipc-gallery-tab-3d-view"
37
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var o=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var d=Object.getOwnPropertyNames;var s=Object.prototype.hasOwnProperty;var m=(a,e)=>{for(var r in e)o(a,r,{get:e[r],enumerable:!0})},p=(a,e,r,g)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of d(e))!s.call(a,t)&&t!==r&&o(a,t,{get:()=>e[t],enumerable:!(g=l(e,t))||g.enumerable});return a};var b=a=>p(o({},"__esModule",{value:!0}),a);var E={};m(E,{GalleryTabType:()=>n});module.exports=b(E);var n=(i=>(i.GALLERY_IMAGE_MAIN="ipc-gallery-tab-image-main",i.GALLERY_IMAGE_FEATURES="ipc-gallery-tab-image-features",i.GALLERY_IMAGE_SCENE="ipc-gallery-tab-image-scene",i.GALLERY_VIDEO="ipc-gallery-tab-video",i.GALLERY_3D_VIEW="ipc-gallery-tab-3d-view",i))(n||{});
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../../src/biz-components/Listing/components/ProductCard/ProductGallery/types.ts"],
4
+ "sourcesContent": ["import type { Img, Video } from '../../../../../types/props.js'\nimport type { ImageMedia, VideoMedia } from '../../../hooks/use-variant-media.js'\n\nexport interface ProductGalleryProps {\n data: {\n gallerySections: {\n title: string\n }[]\n }\n}\n\nexport interface ProductGalleryTabItemProps {\n index: number\n galleryTabType: GalleryTabType\n galleries: ImageMedia[] | VideoMedia[]\n onCurrentTabLoopStart?: () => void\n onCurrentTabLoopEnd?: () => void\n id: string\n comment?: {\n content: string\n avatar: Img\n }\n tabLabel: string\n tabValue: string\n // galleryImgs?: Img[]\n // galleryVideo?: Video\n // gallery3DView?: Video\n}\n\nexport interface GalleryTabItemProps {\n tabLabel: string\n tabValue: string\n id: string\n galleryTabType: GalleryTabType\n galleries: ImageMedia[] | VideoMedia[]\n}[]\n\nexport enum GalleryTabType {\n GALLERY_IMAGE_MAIN = 'ipc-gallery-tab-image-main',\n GALLERY_IMAGE_FEATURES = 'ipc-gallery-tab-image-features',\n GALLERY_IMAGE_SCENE = 'ipc-gallery-tab-image-scene',\n GALLERY_VIDEO = 'ipc-gallery-tab-video',\n GALLERY_3D_VIEW = 'ipc-gallery-tab-3d-view',\n}\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,oBAAAE,IAAA,eAAAC,EAAAH,GAqCO,IAAKE,OACVA,EAAA,mBAAqB,6BACrBA,EAAA,uBAAyB,iCACzBA,EAAA,oBAAsB,8BACtBA,EAAA,cAAgB,wBAChBA,EAAA,gBAAkB,0BALRA,OAAA",
6
+ "names": ["types_exports", "__export", "GalleryTabType", "__toCommonJS"]
7
+ }
@@ -0,0 +1,6 @@
1
+ declare const ProductGridBox: ({ BoxLeftGallery, BoxRightDetail, BoxBottomSummary, }: {
2
+ BoxLeftGallery: React.ReactNode;
3
+ BoxRightDetail: React.ReactNode;
4
+ BoxBottomSummary: React.ReactNode;
5
+ }) => import("react/jsx-runtime").JSX.Element;
6
+ export default ProductGridBox;
@@ -0,0 +1,2 @@
1
+ "use strict";var s=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var r=Object.getOwnPropertyNames;var i=Object.prototype.hasOwnProperty;var k=(o,t)=>{for(var e in t)s(o,e,{get:t[e],enumerable:!0})},m=(o,t,e,c)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of r(t))!i.call(o,a)&&a!==e&&s(o,a,{get:()=>t[a],enumerable:!(c=l(t,a))||c.enumerable});return o};var x=o=>m(s({},"__esModule",{value:!0}),o);var R={};k(R,{default:()=>N});module.exports=x(R);var p=require("react/jsx-runtime"),d=require("../../../../components");const G=({BoxLeftGallery:o,BoxRightDetail:t,BoxBottomSummary:e})=>(0,p.jsxs)("div",{id:"ipc-product-card",className:"desktop:mt-6 desktop:px-16 lg-desktop:px-[calc(50%-832px)]",children:[(0,p.jsxs)(d.Grid,{className:"desktop:gap-4 lg-desktop:gap-8 gap-8",children:[(0,p.jsx)(d.GridItem,{className:"col-span-12 laptop:px-0 desktop:col-start-1 desktop:col-span-8 desktop:sticky desktop:top-[124px] h-fit",children:o}),(0,p.jsx)(d.GridItem,{className:"col-span-12 desktop:col-start-9 desktop:col-span-4",children:t})]}),e]});var N=G;
2
+ //# sourceMappingURL=ProductGridBox.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/biz-components/Listing/components/ProductCard/ProductGridBox.tsx"],
4
+ "sourcesContent": ["import { Grid, GridItem } from '../../../../components'\n\nconst ProductGridBox = ({\n BoxLeftGallery,\n BoxRightDetail,\n BoxBottomSummary,\n}: {\n BoxLeftGallery: React.ReactNode\n BoxRightDetail: React.ReactNode\n BoxBottomSummary: React.ReactNode\n}) => {\n return (\n <div id=\"ipc-product-card\" className=\"desktop:mt-6 desktop:px-16 lg-desktop:px-[calc(50%-832px)]\">\n <Grid className=\"desktop:gap-4 lg-desktop:gap-8 gap-8\">\n <GridItem className=\"col-span-12 laptop:px-0 desktop:col-start-1 desktop:col-span-8 desktop:sticky desktop:top-[124px] h-fit\">\n {BoxLeftGallery}\n </GridItem>\n <GridItem className=\"col-span-12 desktop:col-start-9 desktop:col-span-4\">{BoxRightDetail}</GridItem>\n </Grid>\n {BoxBottomSummary}\n </div>\n )\n}\n\nexport default ProductGridBox\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,IAAA,eAAAC,EAAAH,GAaM,IAAAI,EAAA,6BAbNC,EAA+B,kCAE/B,MAAMC,EAAiB,CAAC,CACtB,eAAAC,EACA,eAAAC,EACA,iBAAAC,CACF,OAMI,QAAC,OAAI,GAAG,mBAAmB,UAAU,6DACnC,qBAAC,QAAK,UAAU,uCACd,oBAAC,YAAS,UAAU,0GACjB,SAAAF,EACH,KACA,OAAC,YAAS,UAAU,qDAAsD,SAAAC,EAAe,GAC3F,EACCC,GACH,EAIJ,IAAOP,EAAQI",
6
+ "names": ["ProductGridBox_exports", "__export", "ProductGridBox_default", "__toCommonJS", "import_jsx_runtime", "import_components", "ProductGridBox", "BoxLeftGallery", "BoxRightDetail", "BoxBottomSummary"]
7
+ }
@@ -0,0 +1,3 @@
1
+ import type { ProductSummaryProps } from './types';
2
+ declare const ProductSummary: ({}: ProductSummaryProps) => import("react/jsx-runtime").JSX.Element | null;
3
+ export default ProductSummary;
@@ -0,0 +1,2 @@
1
+ "use strict";var I=Object.create;var w=Object.defineProperty;var $=Object.getOwnPropertyDescriptor;var T=Object.getOwnPropertyNames;var H=Object.getPrototypeOf,M=Object.prototype.hasOwnProperty;var W=(o,t)=>{for(var l in t)w(o,l,{get:t[l],enumerable:!0})},V=(o,t,l,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let c of T(t))!M.call(o,c)&&c!==l&&w(o,c,{get:()=>t[c],enumerable:!(n=$(t,c))||n.enumerable});return o};var q=(o,t,l)=>(l=o!=null?I(H(o)):{},V(t||!o||!o.__esModule?w(l,"default",{value:o,enumerable:!0}):l,o)),K=o=>V(w({},"__esModule",{value:!0}),o);var Y={};W(Y,{default:()=>X});module.exports=K(Y);var e=require("react/jsx-runtime"),a=require("../../../../../components"),k=require("../../../BizProductProvider"),g=require("react"),f=require("../../../utils"),B=require("../../../../AiuiProvider"),te=require("../../../../../helpers"),z=q(require("decimal.js"));const Q=({})=>{const{locale:o="us",copyWriting:t}=(0,B.useAiuiContext)(),{product:l,variant:n,finalPrice:c,comparePrice:p,coupon:h,selectedOptions:r,selectedVariants:u,totalSavings:y,onAddToCart:R,onBuyNow:D,savingDetail:P,checkedBundle:C,joinedRecommendBuyProducts:s,setJoinedRecommendBuyProducts:b}=(0,k.useBizProductContext)(),[m,x]=(0,g.useState)({bundle:!1,gift:!1,exchange:!1}),[N]=u,S=(0,g.useMemo)(()=>{const[d]=C?.variants||[],O=new z.default(N?.price?.amount||0).minus(d?.price||N?.price?.amount).toNumber();return new z.default(N?.price?.amount||0).minus(P?.coupon).minus(O).toNumber()},[N,y,C]);if(!n.availableForSale)return null;const{bundleVariant:E,giftVariant:F,exchangeVariant:A}=U()||{},[i,v]=(0,g.useState)();(0,g.useEffect)(()=>{v({bundle:s.bundle?void 0:E,gift:s.gift?void 0:F,exchange:s.exchange?void 0:A})},[E,F,s]);const L=(0,g.useMemo)(()=>new z.default(p).minus(P.freeGift).toNumber(),[p,P]);return(0,e.jsx)("div",{className:"ipc-product-summary laptop:px-16 desktop:px-0 mt-8 desktop:mt-16",children:(0,e.jsx)("div",{className:"bg-[#F5F5F7] laptop:rounded-2xl",children:(0,e.jsxs)(a.Grid,{className:"px-4 py-6 tablet:p-8",children:[(0,e.jsxs)(a.GridItem,{className:"col-span-12 laptop:col-start-1 laptop:col-span-5",children:[(0,e.jsx)(a.Heading,{className:"font-bold text-[24px] lg-desktop:text-[48px] laptop:text-[32px] desktop:text-[40px] leading-[1] mb-4 [&>span]:text-[#D1D1D1]",html:`${l.title} is ready <br/><span>Just the way you want it.</span>`}),(0,e.jsx)("div",{className:"aspect-[644/320]",children:(0,e.jsx)(a.Picture,{source:n.image?.url||l?.images?.[0]?.url,className:"h-full w-full",imgClassName:"object-contain h-full"})})]}),(0,e.jsxs)(a.GridItem,{className:"col-span-12 mt-8 laptop:col-start-7 laptop:mt-0 laptop:col-span-6 flex flex-col gap-6 justify-between",children:[(0,e.jsxs)("div",{children:[(0,e.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,e.jsxs)("div",{className:"flex items-center justify-between",children:[(0,e.jsxs)("div",{className:"shrink-0 flex items-center gap-4",children:[(0,e.jsx)(a.Picture,{source:n.image?.url||l?.images?.[0]?.url,className:"size-10 laptop:size-12 lg-desktop:size-16 object-cover border-1 border-[#E4E5E6] rounded-[5px] rounded-lg"}),(0,e.jsxs)("div",{className:"flex flex-col gap-[6px] max-w-[178px] tablet:max-w-none",children:[(0,e.jsx)(a.Text,{className:"font-bold text-[14px] line-clamp-2 desktop:text-[16px] lg-desktop:text-[18px]",html:l.title}),(0,e.jsx)(a.Text,{className:"text-[12px] laptop:text-[14px] desktop:text-[18px] font-bold text-[#6D6D6F]",html:`x1 | ${r.color||r.colour||r.couleur}`})]})]}),(0,e.jsxs)("div",{className:"flex items-center gap-1",children:[(0,e.jsx)(a.Text,{className:"text-base desktop:text-2xl font-bold",html:(0,f.formatPrice)({amount:S,currencyCode:n.price.currencyCode,locale:o})}),y>0&&(0,e.jsx)(a.Text,{className:"text-base desktop:text-2xl laptop:text-xl font-bold line-through text-[#6D6D6F]",html:(0,f.formatPrice)({amount:n?.price?.amount,currencyCode:n.price.currencyCode,locale:o})})]})]}),s?.gift&&(0,e.jsx)(G,{giftOperation:d=>{b?.({...s,gift:void 0}),v?.({...i,gift:d})},status:!!s?.gift,gift:s?.gift,currentJoinedRecommendBuyProducts:m?.gift}),s?.bundle&&(0,e.jsx)(j,{bundleOperation:d=>{b?.({...s,bundle:void 0}),v?.({...i,bundle:d})},status:!!s?.bundle,bundleListItem:s?.bundle,currentJoinedRecommendBuyProducts:m?.bundle}),s?.exchange&&(0,e.jsx)(J,{exchangeOperation:d=>{b?.({...s,exchange:void 0}),v?.({...i,exchange:d})},status:!!s?.exchange,currentJoinedRecommendBuyProducts:m?.exchange,exchange:s?.exchange})]}),(i?.bundle||i?.gift||i?.exchange)&&(0,e.jsxs)("div",{className:"mt-6",children:[(0,e.jsx)(a.Text,{className:"text-sm desktop:text-[18px] font-bold",html:"Recommend Buy"}),(0,e.jsxs)("div",{className:"flex flex-col gap-6 mt-6",children:[i?.exchange&&(0,e.jsx)(J,{exchangeOperation:d=>{b?.({exchange:d}),x({...m,exchange:!1}),v?.({...i,exchange:void 0})},currentJoinedRecommendBuyProducts:m?.exchange,status:!i?.exchange,exchange:i?.exchange}),i?.bundle&&(0,e.jsx)(j,{bundleOperation:d=>{b?.({bundle:d}),x({...m,bundle:!1}),v?.({...i,bundle:void 0})},currentJoinedRecommendBuyProducts:m?.bundle,status:!i?.bundle,bundleListItem:i?.bundle}),i?.gift&&(0,e.jsx)(G,{giftOperation:d=>{b?.({gift:d}),x({...m,gift:!1}),v?.({...i,gift:void 0})},currentJoinedRecommendBuyProducts:m?.gift,status:!i?.gift,gift:i?.gift})]})]})]}),(0,e.jsxs)("div",{className:"text-right",children:[(0,e.jsx)(a.Text,{className:"laptop:text-xl desktop:text-2xl font-bold text-right",html:`${t?.totalPrice} ${(0,f.formatPrice)({amount:c,currencyCode:n.price.currencyCode,locale:o})}`}),y>0&&(0,e.jsx)(a.Text,{className:"text-base laptop:text-xl desktop:text-2xl ml-1 font-bold line-through text-[#6D6D6F]",html:(0,f.formatPrice)({amount:L,currencyCode:n.price.currencyCode,locale:o})}),(0,e.jsxs)("div",{className:"flex gap-3 mt-2 justify-end",children:[(0,e.jsx)(a.Button,{size:"lg",variant:"secondary",className:"w-1/2 tablet:w-auto laptop:w-1/2 desktop:w-auto",onClick:()=>R?.(),children:t?.addToCart}),(0,e.jsx)(a.Button,{size:"lg",variant:"primary",className:"w-1/2 tablet:w-auto laptop:w-1/2 desktop:w-auto",onClick:()=>D?.(),children:t?.shopNow})]})]})]})]})})})},U=()=>{const{bundle:o,variant:t,checkedBundle:l,freeGift:n,checkedGift:c,exchangePurchase:p,checkedExchangePurchase:h}=(0,k.useBizProductContext)();let r,u,y;const{bundleList:R}=o||{},{giftList:D=[]}=n||{},{giftList:P=[]}=p||{},C=R?.filter(x=>x.variants.slice(1,x.variants.length).every(N=>N.variant.availableForSale))||[],[s]=C;r=l||s;const[b]=D?.filter(x=>x.availableForSale);u=c||b;const[m]=P?.filter(x=>x.availableForSale);return y=h||m,{bundleVariant:r,giftVariant:u,exchangeVariant:y}},j=({bundleOperation:o,bundleListItem:t,currentJoinedRecommendBuyProducts:l,status:n})=>{const{locale:c="us"}=(0,B.useAiuiContext)(),{variant:p,setCheckedBundle:h}=(0,k.useBizProductContext)(),r=t?.variants.filter(u=>u.variant.sku!==p.sku);return(0,e.jsxs)("div",{className:"flex items-center justify-between",children:[r?.map(u=>(0,e.jsxs)("div",{className:"flex items-center gap-4",children:[(0,e.jsx)(a.Picture,{source:u?.variant?.image?.url,className:"size-10 laptop:size-12 lg-desktop:size-16 object-cover border-1 border-[#E4E5E6] rounded-[5px] rounded-lg"}),(0,e.jsx)("div",{className:"flex flex-col gap-[6px] line-clamp-2 max-w-[178px] tablet:max-w-none",children:(0,e.jsx)(a.Text,{className:"font-bold text-[14px] desktop:text-[16px] lg-desktop:text-[18px]",html:u.variant.product.title})})]},u.variant.id)),(0,e.jsxs)("div",{className:"flex flex-col items-end gap-1 justify-center",children:[!!t&&(0,e.jsx)(a.Text,{className:"text-base desktop:text-2xl font-bold",html:(0,f.formatPrice)({amount:r[0]?.price,locale:c,currencyCode:r[0]?.variant?.price?.currencyCode})}),!l&&(0,e.jsx)(a.Button,{size:"icon",variant:"link",onClick:()=>{h?.(n?void 0:t),o(t)},className:"shrink-0 size-auto underline",children:n?"Remove":"Add"})]})]})},G=({giftOperation:o,gift:t,currentJoinedRecommendBuyProducts:l,status:n})=>{const{locale:c="us"}=(0,B.useAiuiContext)(),{freeGift:p,setCheckedGift:h}=(0,k.useBizProductContext)(),{freeLabel:r,count:u}=p||{};return(0,e.jsxs)("div",{className:"flex items-center justify-between",children:[(0,e.jsxs)("div",{className:"flex items-center gap-4",children:[(0,e.jsx)(a.Picture,{source:t?.image?.url,className:"size-10 laptop:size-12 lg-desktop:size-16 object-cover border-1 border-[#E4E5E6] rounded-[5px] rounded-lg"}),(0,e.jsxs)("div",{className:"flex flex-col gap-[6px] max-w-[178px] tablet:max-w-none",children:[(0,e.jsx)(a.Text,{className:"font-bold text-[14px] line-clamp-2 desktop:text-[16px] lg-desktop:text-[18px]",html:t?.product?.title}),(0,e.jsx)(a.Text,{className:"text-[12px] laptop:text-[14px] desktop:text-[18px] font-bold text-[#6D6D6F]",html:`x${u} | ${r}`})]})]}),(0,e.jsxs)("div",{className:"flex flex-col items-end gap-2 justify-center",children:[!!t&&(0,e.jsxs)("div",{className:"flex items-center gap-1",children:[(0,e.jsx)(a.Text,{className:"text-base desktop:text-2xl font-bold",html:r}),(0,e.jsx)(a.Text,{className:"text-base desktop:text-2xl font-bold line-through text-[#6D6D6F]",html:(0,f.formatPrice)({amount:t.price.amount,locale:c,currencyCode:t.price.currencyCode})})]}),l&&(0,e.jsx)(a.Button,{size:"icon",variant:"link",onClick:()=>{h?.(n?void 0:t),o(t)},className:"shrink-0 size-auto underline",children:n?"Remove":"Add"})]})]})},J=({exchangeOperation:o,exchange:t,currentJoinedRecommendBuyProducts:l,status:n})=>{const{locale:c="us"}=(0,B.useAiuiContext)(),{setCheckedExchangePurchase:p}=(0,k.useBizProductContext)();return(0,e.jsxs)("div",{className:"flex items-center justify-between",children:[(0,e.jsxs)("div",{className:"flex items-center gap-4",children:[(0,e.jsx)(a.Picture,{source:t?.image?.url,className:"size-10 laptop:size-12 lg-desktop:size-16 object-cover border-1 border-[#E4E5E6] rounded-[5px] rounded-lg"}),(0,e.jsxs)("div",{className:"flex flex-col gap-[6px] max-w-[178px] tablet:max-w-none",children:[(0,e.jsx)(a.Text,{className:"font-bold text-[14px] line-clamp-2 desktop:text-[16px] lg-desktop:text-[18px]",html:t?.product?.title}),(0,e.jsx)(a.Text,{className:"text-[12px] laptop:text-[14px] desktop:text-[18px] font-bold text-[#6D6D6F]"})]})]}),(0,e.jsxs)("div",{className:"flex flex-col items-end gap-2 justify-center",children:[!!t&&(0,e.jsxs)("div",{className:"flex items-center gap-1",children:[(0,e.jsx)(a.Text,{className:"text-base desktop:text-2xl font-bold",html:(0,f.formatPrice)({amount:t.finalPrice?.amount||0,locale:c,currencyCode:t.price.currencyCode})}),(0,e.jsx)(a.Text,{className:"text-base desktop:text-2xl font-bold line-through text-[#6D6D6F]",html:(0,f.formatPrice)({amount:t.price?.amount||0,locale:c,currencyCode:t.price.currencyCode})})]}),l&&(0,e.jsx)(a.Button,{size:"icon",variant:"link",onClick:()=>{p?.(n?void 0:t),o(t)},className:"shrink-0 size-auto underline",children:n?"Remove":"Add"})]})]})};var X=Q;
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../../src/biz-components/Listing/components/ProductCard/ProductSummary/index.tsx"],
4
+ "sourcesContent": ["import { Text, Button, Container, Grid, GridItem, Picture, Heading } from '../../../../../components'\nimport type { ProductSummaryProps } from './types'\nimport { useBizProductContext } from '../../../BizProductProvider'\nimport { useEffect, useMemo, useState } from 'react'\nimport { formatPrice } from '../../../utils'\nimport { useAiuiContext } from '../../../../AiuiProvider'\nimport type { BundleListItem, ProductVariant, ProductPrice } from '../../../types/product'\nimport { cn } from '../../../../../helpers'\nimport Decimal from 'decimal.js'\n\nconst ProductSummary = ({}: ProductSummaryProps) => {\n const { locale = 'us', copyWriting } = useAiuiContext()\n const {\n product,\n variant,\n finalPrice,\n comparePrice,\n coupon,\n selectedOptions,\n selectedVariants,\n totalSavings,\n onAddToCart,\n onBuyNow,\n savingDetail,\n checkedBundle,\n joinedRecommendBuyProducts,\n setJoinedRecommendBuyProducts,\n } = useBizProductContext()\n\n const [currentJoinedRecommendBuyProducts, setCurrentJoinedRecommendBuyProducts] = useState<{\n bundle?: boolean\n gift?: boolean\n exchange?: boolean\n }>({\n bundle: false,\n gift: false,\n exchange: false,\n })\n\n const [currentProductVariant] = selectedVariants\n\n const summaryFinalPrice = useMemo(() => {\n const [currentBundleVariant] = checkedBundle?.variants || []\n const currentBundlePrice = new Decimal(currentProductVariant?.price?.amount || 0)\n .minus(currentBundleVariant?.price || currentProductVariant?.price?.amount)\n .toNumber()\n return new Decimal(currentProductVariant?.price?.amount || 0)\n .minus(savingDetail?.coupon)\n .minus(currentBundlePrice)\n .toNumber()\n }, [currentProductVariant, totalSavings, checkedBundle])\n\n const isAvailable = variant.availableForSale\n if (!isAvailable) return null\n\n const { bundleVariant, giftVariant, exchangeVariant } = useRecommendBuyProducts() || {}\n const [initialRecommendBuyProducts, setInitialRecommendBuyProducts] = useState<{\n bundle?: BundleListItem\n gift?: ProductVariant\n exchange?: ProductVariant\n }>()\n\n useEffect(() => {\n setInitialRecommendBuyProducts({\n bundle: joinedRecommendBuyProducts.bundle ? undefined : bundleVariant,\n gift: joinedRecommendBuyProducts.gift ? undefined : giftVariant,\n exchange: joinedRecommendBuyProducts.exchange ? undefined : exchangeVariant,\n })\n }, [bundleVariant, giftVariant, joinedRecommendBuyProducts])\n\n const comparePriceRemovedFreeGift = useMemo(\n () => new Decimal(comparePrice).minus(savingDetail.freeGift).toNumber(),\n [comparePrice, savingDetail]\n )\n\n return (\n <div className=\"ipc-product-summary laptop:px-16 desktop:px-0 mt-8 desktop:mt-16\">\n <div className=\"bg-[#F5F5F7] laptop:rounded-2xl\">\n <Grid className=\"px-4 py-6 tablet:p-8\">\n <GridItem className=\"col-span-12 laptop:col-start-1 laptop:col-span-5\">\n <Heading\n className=\"font-bold text-[24px] lg-desktop:text-[48px] laptop:text-[32px] desktop:text-[40px] leading-[1] mb-4 [&>span]:text-[#D1D1D1]\"\n html={`${product.title} is ready <br/><span>Just the way you want it.</span>`}\n />\n <div className=\"aspect-[644/320]\">\n <Picture\n source={variant.image?.url || product?.images?.[0]?.url}\n className=\"h-full w-full\"\n imgClassName=\"object-contain h-full\"\n />\n </div>\n </GridItem>\n <GridItem className=\"col-span-12 mt-8 laptop:col-start-7 laptop:mt-0 laptop:col-span-6 flex flex-col gap-6 justify-between\">\n <div>\n <div className=\"flex flex-col gap-4\">\n <div className=\"flex items-center justify-between\">\n <div className=\"shrink-0 flex items-center gap-4\">\n <Picture\n source={variant.image?.url || product?.images?.[0]?.url}\n className=\"size-10 laptop:size-12 lg-desktop:size-16 object-cover border-1 border-[#E4E5E6] rounded-[5px] rounded-lg\"\n />\n <div className=\"flex flex-col gap-[6px] max-w-[178px] tablet:max-w-none\">\n <Text\n className=\"font-bold text-[14px] line-clamp-2 desktop:text-[16px] lg-desktop:text-[18px]\"\n html={product.title}\n />\n <Text\n className=\"text-[12px] laptop:text-[14px] desktop:text-[18px] font-bold text-[#6D6D6F]\"\n html={`x1 | ${selectedOptions.color || selectedOptions.colour || selectedOptions.couleur}`}\n />\n </div>\n </div>\n <div className=\"flex items-center gap-1\">\n <Text\n className=\"text-base desktop:text-2xl font-bold\"\n html={formatPrice({\n amount: summaryFinalPrice,\n currencyCode: variant.price.currencyCode,\n locale,\n })}\n />\n {totalSavings > 0 && (\n <Text\n className=\"text-base desktop:text-2xl laptop:text-xl font-bold line-through text-[#6D6D6F]\"\n html={formatPrice({\n amount: variant?.price?.amount,\n currencyCode: variant.price.currencyCode,\n locale,\n })}\n />\n )}\n </div>\n </div>\n {joinedRecommendBuyProducts?.gift && (\n <ProductGiftSummary\n giftOperation={gift => {\n setJoinedRecommendBuyProducts?.({ ...joinedRecommendBuyProducts, gift: undefined })\n setInitialRecommendBuyProducts?.({ ...initialRecommendBuyProducts, gift })\n }}\n status={!!joinedRecommendBuyProducts?.gift}\n gift={joinedRecommendBuyProducts?.gift}\n currentJoinedRecommendBuyProducts={currentJoinedRecommendBuyProducts?.gift}\n />\n )}\n {joinedRecommendBuyProducts?.bundle && (\n <ProductBundleSummary\n bundleOperation={bundle => {\n setJoinedRecommendBuyProducts?.({ ...joinedRecommendBuyProducts, bundle: undefined })\n setInitialRecommendBuyProducts?.({ ...initialRecommendBuyProducts, bundle })\n }}\n status={!!joinedRecommendBuyProducts?.bundle}\n bundleListItem={joinedRecommendBuyProducts?.bundle}\n currentJoinedRecommendBuyProducts={currentJoinedRecommendBuyProducts?.bundle}\n />\n )}\n {joinedRecommendBuyProducts?.exchange && (\n <ProductExchangeSummary\n exchangeOperation={exchange => {\n setJoinedRecommendBuyProducts?.({ ...joinedRecommendBuyProducts, exchange: undefined })\n setInitialRecommendBuyProducts?.({ ...initialRecommendBuyProducts, exchange })\n }}\n status={!!joinedRecommendBuyProducts?.exchange}\n currentJoinedRecommendBuyProducts={currentJoinedRecommendBuyProducts?.exchange}\n exchange={joinedRecommendBuyProducts?.exchange}\n />\n )}\n </div>\n {(initialRecommendBuyProducts?.bundle ||\n initialRecommendBuyProducts?.gift ||\n initialRecommendBuyProducts?.exchange) && (\n <div className=\"mt-6\">\n <Text className=\"text-sm desktop:text-[18px] font-bold\" html={'Recommend Buy'} />\n <div className=\"flex flex-col gap-6 mt-6\">\n {initialRecommendBuyProducts?.exchange && (\n <ProductExchangeSummary\n exchangeOperation={exchange => {\n setJoinedRecommendBuyProducts?.({ exchange })\n setCurrentJoinedRecommendBuyProducts({ ...currentJoinedRecommendBuyProducts, exchange: false })\n setInitialRecommendBuyProducts?.({ ...initialRecommendBuyProducts, exchange: undefined })\n }}\n currentJoinedRecommendBuyProducts={currentJoinedRecommendBuyProducts?.exchange}\n status={!initialRecommendBuyProducts?.exchange}\n exchange={initialRecommendBuyProducts?.exchange}\n />\n )}\n {initialRecommendBuyProducts?.bundle && (\n <ProductBundleSummary\n bundleOperation={bundle => {\n setJoinedRecommendBuyProducts?.({ bundle })\n setCurrentJoinedRecommendBuyProducts({ ...currentJoinedRecommendBuyProducts, bundle: false })\n setInitialRecommendBuyProducts?.({ ...initialRecommendBuyProducts, bundle: undefined })\n }}\n currentJoinedRecommendBuyProducts={currentJoinedRecommendBuyProducts?.bundle}\n status={!initialRecommendBuyProducts?.bundle}\n bundleListItem={initialRecommendBuyProducts?.bundle}\n />\n )}\n {initialRecommendBuyProducts?.gift && (\n <ProductGiftSummary\n giftOperation={gift => {\n setJoinedRecommendBuyProducts?.({ gift })\n setCurrentJoinedRecommendBuyProducts({ ...currentJoinedRecommendBuyProducts, gift: false })\n setInitialRecommendBuyProducts?.({ ...initialRecommendBuyProducts, gift: undefined })\n }}\n currentJoinedRecommendBuyProducts={currentJoinedRecommendBuyProducts?.gift}\n status={!initialRecommendBuyProducts?.gift}\n gift={initialRecommendBuyProducts?.gift}\n />\n )}\n </div>\n </div>\n )}\n </div>\n <div className=\"text-right\">\n <Text\n className=\"laptop:text-xl desktop:text-2xl font-bold text-right\"\n html={`${copyWriting?.totalPrice} ${formatPrice({ amount: finalPrice, currencyCode: variant.price.currencyCode, locale })}`}\n />\n\n {totalSavings > 0 && (\n <Text\n className=\"text-base laptop:text-xl desktop:text-2xl ml-1 font-bold line-through text-[#6D6D6F]\"\n html={formatPrice({\n amount: comparePriceRemovedFreeGift,\n currencyCode: variant.price.currencyCode,\n locale,\n })}\n />\n )}\n <div className=\"flex gap-3 mt-2 justify-end\">\n <Button\n size=\"lg\"\n variant=\"secondary\"\n className=\"w-1/2 tablet:w-auto laptop:w-1/2 desktop:w-auto\"\n onClick={() => onAddToCart?.()}\n >\n {copyWriting?.addToCart}\n </Button>\n <Button\n size=\"lg\"\n variant=\"primary\"\n className=\"w-1/2 tablet:w-auto laptop:w-1/2 desktop:w-auto\"\n onClick={() => onBuyNow?.()}\n >\n {copyWriting?.shopNow}\n </Button>\n </div>\n </div>\n </GridItem>\n </Grid>\n </div>\n </div>\n )\n}\n\nconst useRecommendBuyProducts = () => {\n const { bundle, variant, checkedBundle, freeGift, checkedGift, exchangePurchase, checkedExchangePurchase } =\n useBizProductContext()\n let bundleVariant = undefined\n let giftVariant = undefined\n let exchangeVariant = undefined\n const { bundleList } = bundle || {}\n\n const { giftList = [] } = freeGift || {}\n const { giftList: exchangeList = [] } = exchangePurchase || {}\n\n const availableBundleList =\n bundleList?.filter(bundle =>\n bundle.variants.slice(1, bundle.variants.length).every(v => v.variant.availableForSale)\n ) || []\n\n const [firstAvailableBundle] = availableBundleList\n bundleVariant = checkedBundle || firstAvailableBundle\n\n const [firstAvailableGift] = giftList?.filter(gift => gift.availableForSale)\n giftVariant = checkedGift || firstAvailableGift\n\n const [firstAvailableExchange] = exchangeList?.filter(exchange => exchange.availableForSale)\n exchangeVariant = checkedExchangePurchase || firstAvailableExchange\n\n return { bundleVariant, giftVariant, exchangeVariant }\n}\n\nconst ProductBundleSummary = ({\n bundleOperation,\n bundleListItem,\n currentJoinedRecommendBuyProducts,\n status,\n}: {\n bundleOperation: (bundle: BundleListItem) => void\n bundleListItem: BundleListItem\n currentJoinedRecommendBuyProducts?: boolean\n status?: boolean\n}) => {\n const { locale = 'us' } = useAiuiContext()\n const { variant, setCheckedBundle } = useBizProductContext()\n const bundleVariants = bundleListItem?.variants.filter(v => v.variant.sku !== variant.sku)\n\n return (\n <div className=\"flex items-center justify-between\">\n {bundleVariants?.map(bundleVariant => {\n return (\n <div className=\"flex items-center gap-4\" key={bundleVariant.variant.id}>\n <Picture\n source={bundleVariant?.variant?.image?.url}\n className=\"size-10 laptop:size-12 lg-desktop:size-16 object-cover border-1 border-[#E4E5E6] rounded-[5px] rounded-lg\"\n />\n <div className=\"flex flex-col gap-[6px] line-clamp-2 max-w-[178px] tablet:max-w-none\">\n <Text\n className=\"font-bold text-[14px] desktop:text-[16px] lg-desktop:text-[18px]\"\n html={bundleVariant.variant.product.title}\n />\n </div>\n </div>\n )\n })}\n <div className=\"flex flex-col items-end gap-1 justify-center\">\n {!!bundleListItem && (\n <Text\n className=\"text-base desktop:text-2xl font-bold\"\n html={formatPrice({\n amount: bundleVariants[0]?.price,\n locale,\n currencyCode: bundleVariants[0]?.variant?.price?.currencyCode,\n })}\n />\n )}\n {!currentJoinedRecommendBuyProducts && (\n <Button\n size=\"icon\"\n variant=\"link\"\n onClick={() => {\n setCheckedBundle?.(status ? undefined : bundleListItem)\n bundleOperation(bundleListItem)\n }}\n className=\"shrink-0 size-auto underline\"\n >\n {!!status ? 'Remove' : 'Add'}\n </Button>\n )}\n </div>\n </div>\n )\n}\n\nconst ProductGiftSummary = ({\n giftOperation,\n gift,\n currentJoinedRecommendBuyProducts,\n status,\n}: {\n giftOperation: (gift: ProductVariant) => void\n gift: ProductVariant\n currentJoinedRecommendBuyProducts?: boolean\n status?: boolean\n}) => {\n const { locale = 'us' } = useAiuiContext()\n const { freeGift, setCheckedGift } = useBizProductContext()\n const { freeLabel, count } = freeGift || {}\n\n return (\n <div className=\"flex items-center justify-between\">\n <div className=\"flex items-center gap-4\">\n <Picture\n source={gift?.image?.url}\n className=\"size-10 laptop:size-12 lg-desktop:size-16 object-cover border-1 border-[#E4E5E6] rounded-[5px] rounded-lg\"\n />\n <div className=\"flex flex-col gap-[6px] max-w-[178px] tablet:max-w-none\">\n <Text\n className=\"font-bold text-[14px] line-clamp-2 desktop:text-[16px] lg-desktop:text-[18px]\"\n html={gift?.product?.title}\n />\n <Text\n className=\"text-[12px] laptop:text-[14px] desktop:text-[18px] font-bold text-[#6D6D6F]\"\n html={`x${count} | ${freeLabel}`}\n />\n </div>\n </div>\n <div className=\"flex flex-col items-end gap-2 justify-center\">\n {!!gift && (\n <div className=\"flex items-center gap-1\">\n <Text className=\"text-base desktop:text-2xl font-bold\" html={freeLabel} />\n <Text\n className=\"text-base desktop:text-2xl font-bold line-through text-[#6D6D6F]\"\n html={formatPrice({\n amount: gift.price.amount,\n locale,\n currencyCode: gift.price.currencyCode,\n })}\n />\n </div>\n )}\n {currentJoinedRecommendBuyProducts && (\n <Button\n size=\"icon\"\n variant=\"link\"\n onClick={() => {\n setCheckedGift?.(status ? undefined : gift)\n giftOperation(gift)\n }}\n className=\"shrink-0 size-auto underline\"\n >\n {status ? 'Remove' : 'Add'}\n </Button>\n )}\n </div>\n </div>\n )\n}\n\nconst ProductExchangeSummary = ({\n exchangeOperation,\n exchange,\n currentJoinedRecommendBuyProducts,\n status,\n}: {\n exchangeOperation: (exchange: ProductVariant) => void\n exchange: ProductVariant & { finalPrice?: ProductPrice }\n currentJoinedRecommendBuyProducts?: boolean\n status?: boolean\n}) => {\n const { locale = 'us' } = useAiuiContext()\n const { setCheckedExchangePurchase } = useBizProductContext()\n\n return (\n <div className=\"flex items-center justify-between\">\n <div className=\"flex items-center gap-4\">\n <Picture\n source={exchange?.image?.url}\n className=\"size-10 laptop:size-12 lg-desktop:size-16 object-cover border-1 border-[#E4E5E6] rounded-[5px] rounded-lg\"\n />\n <div className=\"flex flex-col gap-[6px] max-w-[178px] tablet:max-w-none\">\n <Text\n className=\"font-bold text-[14px] line-clamp-2 desktop:text-[16px] lg-desktop:text-[18px]\"\n html={exchange?.product?.title}\n />\n <Text className=\"text-[12px] laptop:text-[14px] desktop:text-[18px] font-bold text-[#6D6D6F]\" />\n </div>\n </div>\n <div className=\"flex flex-col items-end gap-2 justify-center\">\n {!!exchange && (\n <div className=\"flex items-center gap-1\">\n <Text\n className=\"text-base desktop:text-2xl font-bold\"\n html={formatPrice({\n amount: exchange.finalPrice?.amount || 0,\n locale,\n currencyCode: exchange.price.currencyCode,\n })}\n />\n <Text\n className=\"text-base desktop:text-2xl font-bold line-through text-[#6D6D6F]\"\n html={formatPrice({\n amount: exchange.price?.amount || 0,\n locale,\n currencyCode: exchange.price.currencyCode,\n })}\n />\n </div>\n )}\n {currentJoinedRecommendBuyProducts && (\n <Button\n size=\"icon\"\n variant=\"link\"\n onClick={() => {\n setCheckedExchangePurchase?.(status ? undefined : exchange)\n exchangeOperation(exchange)\n }}\n className=\"shrink-0 size-auto underline\"\n >\n {status ? 'Remove' : 'Add'}\n </Button>\n )}\n </div>\n </div>\n )\n}\n\nexport default ProductSummary\n"],
5
+ "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,IAAA,eAAAC,EAAAH,GA+EU,IAAAI,EAAA,6BA/EVC,EAA0E,qCAE1EC,EAAqC,uCACrCC,EAA6C,iBAC7CC,EAA4B,0BAC5BC,EAA+B,oCAE/BC,GAAmB,kCACnBC,EAAoB,yBAEpB,MAAMC,EAAiB,CAAC,CAAC,IAA2B,CAClD,KAAM,CAAE,OAAAC,EAAS,KAAM,YAAAC,CAAY,KAAI,kBAAe,EAChD,CACJ,QAAAC,EACA,QAAAC,EACA,WAAAC,EACA,aAAAC,EACA,OAAAC,EACA,gBAAAC,EACA,iBAAAC,EACA,aAAAC,EACA,YAAAC,EACA,SAAAC,EACA,aAAAC,EACA,cAAAC,EACA,2BAAAC,EACA,8BAAAC,CACF,KAAI,wBAAqB,EAEnB,CAACC,EAAmCC,CAAoC,KAAI,YAI/E,CACD,OAAQ,GACR,KAAM,GACN,SAAU,EACZ,CAAC,EAEK,CAACC,CAAqB,EAAIV,EAE1BW,KAAoB,WAAQ,IAAM,CACtC,KAAM,CAACC,CAAoB,EAAIP,GAAe,UAAY,CAAC,EACrDQ,EAAqB,IAAI,EAAAC,QAAQJ,GAAuB,OAAO,QAAU,CAAC,EAC7E,MAAME,GAAsB,OAASF,GAAuB,OAAO,MAAM,EACzE,SAAS,EACZ,OAAO,IAAI,EAAAI,QAAQJ,GAAuB,OAAO,QAAU,CAAC,EACzD,MAAMN,GAAc,MAAM,EAC1B,MAAMS,CAAkB,EACxB,SAAS,CACd,EAAG,CAACH,EAAuBT,EAAcI,CAAa,CAAC,EAGvD,GAAI,CADgBV,EAAQ,iBACV,OAAO,KAEzB,KAAM,CAAE,cAAAoB,EAAe,YAAAC,EAAa,gBAAAC,CAAgB,EAAIC,EAAwB,GAAK,CAAC,EAChF,CAACC,EAA6BC,CAA8B,KAAI,YAInE,KAEH,aAAU,IAAM,CACdA,EAA+B,CAC7B,OAAQd,EAA2B,OAAS,OAAYS,EACxD,KAAMT,EAA2B,KAAO,OAAYU,EACpD,SAAUV,EAA2B,SAAW,OAAYW,CAC9D,CAAC,CACH,EAAG,CAACF,EAAeC,EAAaV,CAA0B,CAAC,EAE3D,MAAMe,KAA8B,WAClC,IAAM,IAAI,EAAAP,QAAQjB,CAAY,EAAE,MAAMO,EAAa,QAAQ,EAAE,SAAS,EACtE,CAACP,EAAcO,CAAY,CAC7B,EAEA,SACE,OAAC,OAAI,UAAU,mEACb,mBAAC,OAAI,UAAU,kCACb,oBAAC,QAAK,UAAU,uBACd,qBAAC,YAAS,UAAU,mDAClB,oBAAC,WACC,UAAU,+HACV,KAAM,GAAGV,EAAQ,KAAK,wDACxB,KACA,OAAC,OAAI,UAAU,mBACb,mBAAC,WACC,OAAQC,EAAQ,OAAO,KAAOD,GAAS,SAAS,CAAC,GAAG,IACpD,UAAU,gBACV,aAAa,wBACf,EACF,GACF,KACA,QAAC,YAAS,UAAU,wGAClB,qBAAC,OACC,qBAAC,OAAI,UAAU,sBACb,qBAAC,OAAI,UAAU,oCACb,qBAAC,OAAI,UAAU,mCACb,oBAAC,WACC,OAAQC,EAAQ,OAAO,KAAOD,GAAS,SAAS,CAAC,GAAG,IACpD,UAAU,4GACZ,KACA,QAAC,OAAI,UAAU,0DACb,oBAAC,QACC,UAAU,gFACV,KAAMA,EAAQ,MAChB,KACA,OAAC,QACC,UAAU,8EACV,KAAM,QAAQK,EAAgB,OAASA,EAAgB,QAAUA,EAAgB,OAAO,GAC1F,GACF,GACF,KACA,QAAC,OAAI,UAAU,0BACb,oBAAC,QACC,UAAU,uCACV,QAAM,eAAY,CAChB,OAAQY,EACR,aAAchB,EAAQ,MAAM,aAC5B,OAAAH,CACF,CAAC,EACH,EACCS,EAAe,MACd,OAAC,QACC,UAAU,kFACV,QAAM,eAAY,CAChB,OAAQN,GAAS,OAAO,OACxB,aAAcA,EAAQ,MAAM,aAC5B,OAAAH,CACF,CAAC,EACH,GAEJ,GACF,EACCc,GAA4B,SAC3B,OAACgB,EAAA,CACC,cAAeC,GAAQ,CACrBhB,IAAgC,CAAE,GAAGD,EAA4B,KAAM,MAAU,CAAC,EAClFc,IAAiC,CAAE,GAAGD,EAA6B,KAAAI,CAAK,CAAC,CAC3E,EACA,OAAQ,CAAC,CAACjB,GAA4B,KACtC,KAAMA,GAA4B,KAClC,kCAAmCE,GAAmC,KACxE,EAEDF,GAA4B,WAC3B,OAACkB,EAAA,CACC,gBAAiBC,GAAU,CACzBlB,IAAgC,CAAE,GAAGD,EAA4B,OAAQ,MAAU,CAAC,EACpFc,IAAiC,CAAE,GAAGD,EAA6B,OAAAM,CAAO,CAAC,CAC7E,EACA,OAAQ,CAAC,CAACnB,GAA4B,OACtC,eAAgBA,GAA4B,OAC5C,kCAAmCE,GAAmC,OACxE,EAEDF,GAA4B,aAC3B,OAACoB,EAAA,CACC,kBAAmBC,GAAY,CAC7BpB,IAAgC,CAAE,GAAGD,EAA4B,SAAU,MAAU,CAAC,EACtFc,IAAiC,CAAE,GAAGD,EAA6B,SAAAQ,CAAS,CAAC,CAC/E,EACA,OAAQ,CAAC,CAACrB,GAA4B,SACtC,kCAAmCE,GAAmC,SACtE,SAAUF,GAA4B,SACxC,GAEJ,GACEa,GAA6B,QAC7BA,GAA6B,MAC7BA,GAA6B,cAC7B,QAAC,OAAI,UAAU,OACb,oBAAC,QAAK,UAAU,wCAAwC,KAAM,gBAAiB,KAC/E,QAAC,OAAI,UAAU,2BACZ,UAAAA,GAA6B,aAC5B,OAACO,EAAA,CACC,kBAAmBC,GAAY,CAC7BpB,IAAgC,CAAE,SAAAoB,CAAS,CAAC,EAC5ClB,EAAqC,CAAE,GAAGD,EAAmC,SAAU,EAAM,CAAC,EAC9FY,IAAiC,CAAE,GAAGD,EAA6B,SAAU,MAAU,CAAC,CAC1F,EACA,kCAAmCX,GAAmC,SACtE,OAAQ,CAACW,GAA6B,SACtC,SAAUA,GAA6B,SACzC,EAEDA,GAA6B,WAC5B,OAACK,EAAA,CACC,gBAAiBC,GAAU,CACzBlB,IAAgC,CAAE,OAAAkB,CAAO,CAAC,EAC1ChB,EAAqC,CAAE,GAAGD,EAAmC,OAAQ,EAAM,CAAC,EAC5FY,IAAiC,CAAE,GAAGD,EAA6B,OAAQ,MAAU,CAAC,CACxF,EACA,kCAAmCX,GAAmC,OACtE,OAAQ,CAACW,GAA6B,OACtC,eAAgBA,GAA6B,OAC/C,EAEDA,GAA6B,SAC5B,OAACG,EAAA,CACC,cAAeC,GAAQ,CACrBhB,IAAgC,CAAE,KAAAgB,CAAK,CAAC,EACxCd,EAAqC,CAAE,GAAGD,EAAmC,KAAM,EAAM,CAAC,EAC1FY,IAAiC,CAAE,GAAGD,EAA6B,KAAM,MAAU,CAAC,CACtF,EACA,kCAAmCX,GAAmC,KACtE,OAAQ,CAACW,GAA6B,KACtC,KAAMA,GAA6B,KACrC,GAEJ,GACF,GAEJ,KACA,QAAC,OAAI,UAAU,aACb,oBAAC,QACC,UAAU,uDACV,KAAM,GAAG1B,GAAa,UAAU,OAAI,eAAY,CAAE,OAAQG,EAAY,aAAcD,EAAQ,MAAM,aAAc,OAAAH,CAAO,CAAC,CAAC,GAC3H,EAECS,EAAe,MACd,OAAC,QACC,UAAU,uFACV,QAAM,eAAY,CAChB,OAAQoB,EACR,aAAc1B,EAAQ,MAAM,aAC5B,OAAAH,CACF,CAAC,EACH,KAEF,QAAC,OAAI,UAAU,8BACb,oBAAC,UACC,KAAK,KACL,QAAQ,YACR,UAAU,kDACV,QAAS,IAAMU,IAAc,EAE5B,SAAAT,GAAa,UAChB,KACA,OAAC,UACC,KAAK,KACL,QAAQ,UACR,UAAU,kDACV,QAAS,IAAMU,IAAW,EAEzB,SAAAV,GAAa,QAChB,GACF,GACF,GACF,GACF,EACF,EACF,CAEJ,EAEMyB,EAA0B,IAAM,CACpC,KAAM,CAAE,OAAAO,EAAQ,QAAA9B,EAAS,cAAAU,EAAe,SAAAuB,EAAU,YAAAC,EAAa,iBAAAC,EAAkB,wBAAAC,CAAwB,KACvG,wBAAqB,EACvB,IAAIhB,EACAC,EACAC,EACJ,KAAM,CAAE,WAAAe,CAAW,EAAIP,GAAU,CAAC,EAE5B,CAAE,SAAAQ,EAAW,CAAC,CAAE,EAAIL,GAAY,CAAC,EACjC,CAAE,SAAUM,EAAe,CAAC,CAAE,EAAIJ,GAAoB,CAAC,EAEvDK,EACJH,GAAY,OAAOP,GACjBA,EAAO,SAAS,MAAM,EAAGA,EAAO,SAAS,MAAM,EAAE,MAAMW,GAAKA,EAAE,QAAQ,gBAAgB,CACxF,GAAK,CAAC,EAEF,CAACC,CAAoB,EAAIF,EAC/BpB,EAAgBV,GAAiBgC,EAEjC,KAAM,CAACC,CAAkB,EAAIL,GAAU,OAAOV,GAAQA,EAAK,gBAAgB,EAC3EP,EAAca,GAAeS,EAE7B,KAAM,CAACC,CAAsB,EAAIL,GAAc,OAAOP,GAAYA,EAAS,gBAAgB,EAC3F,OAAAV,EAAkBc,GAA2BQ,EAEtC,CAAE,cAAAxB,EAAe,YAAAC,EAAa,gBAAAC,CAAgB,CACvD,EAEMO,EAAuB,CAAC,CAC5B,gBAAAgB,EACA,eAAAC,EACA,kCAAAjC,EACA,OAAAkC,CACF,IAKM,CACJ,KAAM,CAAE,OAAAlD,EAAS,IAAK,KAAI,kBAAe,EACnC,CAAE,QAAAG,EAAS,iBAAAgD,CAAiB,KAAI,wBAAqB,EACrDC,EAAiBH,GAAgB,SAAS,OAAOL,GAAKA,EAAE,QAAQ,MAAQzC,EAAQ,GAAG,EAEzF,SACE,QAAC,OAAI,UAAU,oCACZ,UAAAiD,GAAgB,IAAI7B,MAEjB,QAAC,OAAI,UAAU,0BACb,oBAAC,WACC,OAAQA,GAAe,SAAS,OAAO,IACvC,UAAU,4GACZ,KACA,OAAC,OAAI,UAAU,uEACb,mBAAC,QACC,UAAU,mEACV,KAAMA,EAAc,QAAQ,QAAQ,MACtC,EACF,IAV4CA,EAAc,QAAQ,EAWpE,CAEH,KACD,QAAC,OAAI,UAAU,+CACZ,WAAC,CAAC0B,MACD,OAAC,QACC,UAAU,uCACV,QAAM,eAAY,CAChB,OAAQG,EAAe,CAAC,GAAG,MAC3B,OAAApD,EACA,aAAcoD,EAAe,CAAC,GAAG,SAAS,OAAO,YACnD,CAAC,EACH,EAED,CAACpC,MACA,OAAC,UACC,KAAK,OACL,QAAQ,OACR,QAAS,IAAM,CACbmC,IAAmBD,EAAS,OAAYD,CAAc,EACtDD,EAAgBC,CAAc,CAChC,EACA,UAAU,+BAET,SAAEC,EAAS,SAAW,MACzB,GAEJ,GACF,CAEJ,EAEMpB,EAAqB,CAAC,CAC1B,cAAAuB,EACA,KAAAtB,EACA,kCAAAf,EACA,OAAAkC,CACF,IAKM,CACJ,KAAM,CAAE,OAAAlD,EAAS,IAAK,KAAI,kBAAe,EACnC,CAAE,SAAAoC,EAAU,eAAAkB,CAAe,KAAI,wBAAqB,EACpD,CAAE,UAAAC,EAAW,MAAAC,CAAM,EAAIpB,GAAY,CAAC,EAE1C,SACE,QAAC,OAAI,UAAU,oCACb,qBAAC,OAAI,UAAU,0BACb,oBAAC,WACC,OAAQL,GAAM,OAAO,IACrB,UAAU,4GACZ,KACA,QAAC,OAAI,UAAU,0DACb,oBAAC,QACC,UAAU,gFACV,KAAMA,GAAM,SAAS,MACvB,KACA,OAAC,QACC,UAAU,8EACV,KAAM,IAAIyB,CAAK,MAAMD,CAAS,GAChC,GACF,GACF,KACA,QAAC,OAAI,UAAU,+CACZ,WAAC,CAACxB,MACD,QAAC,OAAI,UAAU,0BACb,oBAAC,QAAK,UAAU,uCAAuC,KAAMwB,EAAW,KACxE,OAAC,QACC,UAAU,mEACV,QAAM,eAAY,CAChB,OAAQxB,EAAK,MAAM,OACnB,OAAA/B,EACA,aAAc+B,EAAK,MAAM,YAC3B,CAAC,EACH,GACF,EAEDf,MACC,OAAC,UACC,KAAK,OACL,QAAQ,OACR,QAAS,IAAM,CACbsC,IAAiBJ,EAAS,OAAYnB,CAAI,EAC1CsB,EAActB,CAAI,CACpB,EACA,UAAU,+BAET,SAAAmB,EAAS,SAAW,MACvB,GAEJ,GACF,CAEJ,EAEMhB,EAAyB,CAAC,CAC9B,kBAAAuB,EACA,SAAAtB,EACA,kCAAAnB,EACA,OAAAkC,CACF,IAKM,CACJ,KAAM,CAAE,OAAAlD,EAAS,IAAK,KAAI,kBAAe,EACnC,CAAE,2BAAA0D,CAA2B,KAAI,wBAAqB,EAE5D,SACE,QAAC,OAAI,UAAU,oCACb,qBAAC,OAAI,UAAU,0BACb,oBAAC,WACC,OAAQvB,GAAU,OAAO,IACzB,UAAU,4GACZ,KACA,QAAC,OAAI,UAAU,0DACb,oBAAC,QACC,UAAU,gFACV,KAAMA,GAAU,SAAS,MAC3B,KACA,OAAC,QAAK,UAAU,8EAA8E,GAChG,GACF,KACA,QAAC,OAAI,UAAU,+CACZ,WAAC,CAACA,MACD,QAAC,OAAI,UAAU,0BACb,oBAAC,QACC,UAAU,uCACV,QAAM,eAAY,CAChB,OAAQA,EAAS,YAAY,QAAU,EACvC,OAAAnC,EACA,aAAcmC,EAAS,MAAM,YAC/B,CAAC,EACH,KACA,OAAC,QACC,UAAU,mEACV,QAAM,eAAY,CAChB,OAAQA,EAAS,OAAO,QAAU,EAClC,OAAAnC,EACA,aAAcmC,EAAS,MAAM,YAC/B,CAAC,EACH,GACF,EAEDnB,MACC,OAAC,UACC,KAAK,OACL,QAAQ,OACR,QAAS,IAAM,CACb0C,IAA6BR,EAAS,OAAYf,CAAQ,EAC1DsB,EAAkBtB,CAAQ,CAC5B,EACA,UAAU,+BAET,SAAAe,EAAS,SAAW,MACvB,GAEJ,GACF,CAEJ,EAEA,IAAO7D,EAAQU",
6
+ "names": ["ProductSummary_exports", "__export", "ProductSummary_default", "__toCommonJS", "import_jsx_runtime", "import_components", "import_BizProductProvider", "import_react", "import_utils", "import_AiuiProvider", "import_helpers", "import_decimal", "ProductSummary", "locale", "copyWriting", "product", "variant", "finalPrice", "comparePrice", "coupon", "selectedOptions", "selectedVariants", "totalSavings", "onAddToCart", "onBuyNow", "savingDetail", "checkedBundle", "joinedRecommendBuyProducts", "setJoinedRecommendBuyProducts", "currentJoinedRecommendBuyProducts", "setCurrentJoinedRecommendBuyProducts", "currentProductVariant", "summaryFinalPrice", "currentBundleVariant", "currentBundlePrice", "Decimal", "bundleVariant", "giftVariant", "exchangeVariant", "useRecommendBuyProducts", "initialRecommendBuyProducts", "setInitialRecommendBuyProducts", "comparePriceRemovedFreeGift", "ProductGiftSummary", "gift", "ProductBundleSummary", "bundle", "ProductExchangeSummary", "exchange", "freeGift", "checkedGift", "exchangePurchase", "checkedExchangePurchase", "bundleList", "giftList", "exchangeList", "availableBundleList", "v", "firstAvailableBundle", "firstAvailableGift", "firstAvailableExchange", "bundleOperation", "bundleListItem", "status", "setCheckedBundle", "bundleVariants", "giftOperation", "setCheckedGift", "freeLabel", "count", "exchangeOperation", "setCheckedExchangePurchase"]
7
+ }
@@ -0,0 +1,2 @@
1
+ export interface ProductSummaryProps {
2
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var a=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var u=Object.prototype.hasOwnProperty;var P=(e,r,c,t)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of p(r))!u.call(e,o)&&o!==c&&a(e,o,{get:()=>r[o],enumerable:!(t=m(r,o))||t.enumerable});return e};var d=e=>P(a({},"__esModule",{value:!0}),e);var f={};module.exports=d(f);
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../../src/biz-components/Listing/components/ProductCard/ProductSummary/types.ts"],
4
+ "sourcesContent": ["export interface ProductSummaryProps {\n}\n"],
5
+ "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
+ "names": ["types_exports", "__toCommonJS"]
7
+ }
@@ -0,0 +1,2 @@
1
+ declare const ProductCard: () => import("react/jsx-runtime").JSX.Element;
2
+ export default ProductCard;
@@ -0,0 +1,2 @@
1
+ "use strict";var u=Object.create;var a=Object.defineProperty;var x=Object.getOwnPropertyDescriptor;var f=Object.getOwnPropertyNames;var G=Object.getPrototypeOf,n=Object.prototype.hasOwnProperty;var N=(t,o)=>{for(var d in o)a(t,d,{get:o[d],enumerable:!0})},l=(t,o,d,c)=>{if(o&&typeof o=="object"||typeof o=="function")for(let r of f(o))!n.call(t,r)&&r!==d&&a(t,r,{get:()=>o[r],enumerable:!(c=x(o,r))||c.enumerable});return t};var e=(t,o,d)=>(d=t!=null?u(G(t)):{},l(o||!t||!t.__esModule?a(d,"default",{value:t,enumerable:!0}):d,t)),P=t=>l(a({},"__esModule",{value:!0}),t);var g={};N(g,{default:()=>I});module.exports=P(g);var p=require("react/jsx-runtime"),s=require("../../../../components"),m=e(require("./ProductGallery/index.js")),i=e(require("./ProductDetail/index.js")),k=e(require("./ProductSummary/index.js"));const y=()=>(0,p.jsxs)("div",{id:"ipc-product-card",className:"desktop:mt-6 desktop:px-16 lg-desktop:px-[calc(50%-832px)]",children:[(0,p.jsxs)(s.Grid,{className:"laptop:gap-6",children:[(0,p.jsx)(s.GridItem,{className:"col-span-12 tablet:px-8 laptop:px-16 desktop:px-0 desktop:col-start-1 desktop:col-span-8 desktop:sticky desktop:top-[124px] h-fit",children:(0,p.jsx)(m.default,{})}),(0,p.jsx)(s.GridItem,{className:"col-span-12 desktop:col-start-9 desktop:col-span-4",children:(0,p.jsx)(i.default,{})})]}),(0,p.jsx)(k.default,{})]});var I=y;
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/biz-components/Listing/components/ProductCard/index.tsx"],
4
+ "sourcesContent": ["import { Grid, GridItem } from '../../../../components'\nimport ProductGallery from './ProductGallery/index.js'\nimport ProductDetail from './ProductDetail/index.js'\nimport ProductSummary from './ProductSummary/index.js'\n\n\n\nconst ProductCard = () => {\n return (\n <div id=\"ipc-product-card\" className=\"desktop:mt-6 desktop:px-16 lg-desktop:px-[calc(50%-832px)]\">\n <Grid className=\"laptop:gap-6\">\n <GridItem className=\"col-span-12 tablet:px-8 laptop:px-16 desktop:px-0 desktop:col-start-1 desktop:col-span-8 desktop:sticky desktop:top-[124px] h-fit\">\n <ProductGallery />\n </GridItem>\n <GridItem className=\"col-span-12 desktop:col-start-9 desktop:col-span-4\">\n <ProductDetail />\n </GridItem>\n </Grid>\n <ProductSummary />\n </div>\n )\n}\n\nexport default ProductCard\n"],
5
+ "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,IAAA,eAAAC,EAAAH,GAUM,IAAAI,EAAA,6BAVNC,EAA+B,kCAC/BC,EAA2B,wCAC3BC,EAA0B,uCAC1BC,EAA2B,wCAI3B,MAAMC,EAAc,OAEhB,QAAC,OAAI,GAAG,mBAAmB,UAAU,6DACnC,qBAAC,QAAK,UAAU,eACd,oBAAC,YAAS,UAAU,oIAClB,mBAAC,EAAAC,QAAA,EAAe,EAClB,KACA,OAAC,YAAS,UAAU,qDAClB,mBAAC,EAAAC,QAAA,EAAe,EAClB,GACF,KACA,OAAC,EAAAC,QAAA,EAAe,GAClB,EAIJ,IAAOV,EAAQO",
6
+ "names": ["ProductCard_exports", "__export", "ProductCard_default", "__toCommonJS", "import_jsx_runtime", "import_components", "import_ProductGallery", "import_ProductDetail", "import_ProductSummary", "ProductCard", "ProductGallery", "ProductDetail", "ProductSummary"]
7
+ }
@@ -0,0 +1,2 @@
1
+ declare const ProductActions: () => import("react/jsx-runtime").JSX.Element;
2
+ export default ProductActions;
@@ -0,0 +1,2 @@
1
+ "use strict";var w=Object.create;var n=Object.defineProperty;var h=Object.getOwnPropertyDescriptor;var S=Object.getOwnPropertyNames;var k=Object.getPrototypeOf,P=Object.prototype.hasOwnProperty;var B=(e,t)=>{for(var o in t)n(e,o,{get:t[o],enumerable:!0})},b=(e,t,o,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let l of S(t))!P.call(e,l)&&l!==o&&n(e,l,{get:()=>t[l],enumerable:!(r=h(t,l))||r.enumerable});return e};var F=(e,t,o)=>(o=e!=null?w(k(e)):{},b(t||!e||!e.__esModule?n(o,"default",{value:e,enumerable:!0}):o,e)),M=e=>b(n({},"__esModule",{value:!0}),e);var z={};B(z,{default:()=>A});module.exports=M(z);var a=require("react/jsx-runtime"),i=require("../../../../../components"),f=require("../../../../AiuiProvider/index.js"),v=require("../../../BizProductProvider.js"),g=require("react"),s=require("../../../utils"),d=F(require("decimal.js"));const T=()=>{const{copyWriting:e,locale:t="us"}=(0,f.useAiuiContext)(),{variant:o,finalPrice:r,totalSavings:l,memberFunctionResult:u,isLogin:x,comparePrice:p,onAddToCart:C,onBuyNow:N,savingDetail:m,coupon:G}=(0,v.useBizProductContext)(),y=(0,g.useMemo)(()=>new d.default(p).minus(m.freeGift).toNumber(),[p,m]),c=Math.max(u?.withCouponMemberTotalSave??0,u?.withoutCouponMaxMemberTotalSave??0);return(0,a.jsxs)("div",{className:"bg-white py-3 px-4 tablet:p-0 tablet:flex tablet:items-center tablet:gap-4",children:[o.availableForSale?(0,a.jsxs)("div",{className:"flex items-center justify-between tablet:flex-col desktop:items-end",children:[(0,a.jsxs)("div",{className:"flex items-center gap-1",children:[(0,a.jsx)(i.Text,{className:"text-xl font-bold !leading-[1.2] desktop:text-xl lg-desktop:text-2xl",html:(0,s.formatPrice)({amount:r,currencyCode:o.price.currencyCode,locale:t})}),l>0&&(0,a.jsx)(i.Text,{className:"text-xl font-bold line-through text-[#999] !leading-[1.2] desktop:text-xl lg-desktop:text-2xl",html:(0,s.formatPrice)({amount:y,currencyCode:o.price.currencyCode,locale:t})})]}),l>0&&(0,a.jsx)(i.Text,{className:"text-brand-0 text-base !leading-[1.2] font-bold desktop:text-xl lg-desktop:text-2xl",html:`${c>0&&x?e?.memberSaving:e?.totalSavings} ${(0,s.formatPrice)({amount:c>0&&x?c:new d.default(l).minus(m?.freeGift).toNumber(),currencyCode:o.price.currencyCode,locale:t})}`})]}):(0,a.jsx)(i.Text,{className:"text-[20px] font-bold text-[#999999]",html:e?.soldOut??"Sold Out"}),(0,a.jsxs)("div",{className:"flex items-center gap-2 mt-2 tablet:mt-0",children:[(0,a.jsx)(i.Button,{variant:"secondary",disabled:!o.availableForSale,size:"lg",className:"w-1/2 tablet:w-auto",onClick:()=>C?.(),children:e?.addToCart??"Add to Cart"}),(0,a.jsx)(i.Button,{variant:"primary",disabled:!o.availableForSale,size:"lg",className:"w-1/2 tablet:w-auto",onClick:()=>N?.(),children:e?.buyNow??"Buy Now"})]})]})};var A=T;
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../../src/biz-components/Listing/components/PurchaseBar/ProductActions/index.tsx"],
4
+ "sourcesContent": ["import { Text, Button } from '../../../../../components'\nimport { useAiuiContext } from '../../../../AiuiProvider/index.js'\nimport { useBizProductContext } from '../../../BizProductProvider.js'\nimport { useMemo } from 'react'\nimport { formatPrice } from '../../../utils'\nimport Decimal from 'decimal.js'\n\nconst ProductActions = () => {\n const { copyWriting, locale = 'us' } = useAiuiContext()\n const {\n variant,\n finalPrice,\n totalSavings,\n memberFunctionResult,\n isLogin,\n comparePrice,\n onAddToCart,\n onBuyNow,\n savingDetail,\n coupon,\n } = useBizProductContext()\n\n const comparePriceRemovedFreeGift = useMemo(\n () => new Decimal(comparePrice).minus(savingDetail.freeGift).toNumber(),\n [comparePrice, savingDetail]\n )\n\n const memberPriceSave = Math.max(\n memberFunctionResult?.withCouponMemberTotalSave ?? 0,\n memberFunctionResult?.withoutCouponMaxMemberTotalSave ?? 0\n )\n\n return (\n <div className=\"bg-white py-3 px-4 tablet:p-0 tablet:flex tablet:items-center tablet:gap-4\">\n {variant.availableForSale ? (\n <div className=\"flex items-center justify-between tablet:flex-col desktop:items-end\">\n <div className=\"flex items-center gap-1\">\n <Text\n className=\"text-xl font-bold !leading-[1.2] desktop:text-xl lg-desktop:text-2xl\"\n html={formatPrice({ amount: finalPrice, currencyCode: variant.price.currencyCode, locale })}\n />\n {totalSavings > 0 && (\n <Text\n className=\"text-xl font-bold line-through text-[#999] !leading-[1.2] desktop:text-xl lg-desktop:text-2xl\"\n html={formatPrice({\n amount: comparePriceRemovedFreeGift,\n currencyCode: variant.price.currencyCode,\n locale,\n })}\n />\n )}\n </div>\n {totalSavings > 0 && (\n <Text\n className=\"text-brand-0 text-base !leading-[1.2] font-bold desktop:text-xl lg-desktop:text-2xl\"\n html={`${memberPriceSave > 0 && isLogin ? copyWriting?.memberSaving : copyWriting?.totalSavings} ${formatPrice({ amount: memberPriceSave > 0 && isLogin ? memberPriceSave : new Decimal(totalSavings).minus(savingDetail?.freeGift).toNumber(), currencyCode: variant.price.currencyCode, locale })}`}\n />\n )}\n </div>\n ) : (\n <Text className=\"text-[20px] font-bold text-[#999999]\" html={copyWriting?.soldOut ?? 'Sold Out'} />\n )}\n <div className=\"flex items-center gap-2 mt-2 tablet:mt-0\">\n <Button\n variant=\"secondary\"\n disabled={!variant.availableForSale}\n size=\"lg\"\n className=\"w-1/2 tablet:w-auto\"\n onClick={() => onAddToCart?.()}\n >\n {copyWriting?.addToCart ?? 'Add to Cart'}\n </Button>\n <Button\n variant=\"primary\"\n disabled={!variant.availableForSale}\n size=\"lg\"\n className=\"w-1/2 tablet:w-auto\"\n onClick={() => onBuyNow?.()}\n >\n {copyWriting?.buyNow ?? 'Buy Now'}\n </Button>\n </div>\n </div>\n )\n}\n\nexport default ProductActions\n"],
5
+ "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,IAAA,eAAAC,EAAAH,GAoCU,IAAAI,EAAA,6BApCVC,EAA6B,qCAC7BC,EAA+B,6CAC/BC,EAAqC,0CACrCC,EAAwB,iBACxBC,EAA4B,0BAC5BC,EAAoB,yBAEpB,MAAMC,EAAiB,IAAM,CAC3B,KAAM,CAAE,YAAAC,EAAa,OAAAC,EAAS,IAAK,KAAI,kBAAe,EAChD,CACJ,QAAAC,EACA,WAAAC,EACA,aAAAC,EACA,qBAAAC,EACA,QAAAC,EACA,aAAAC,EACA,YAAAC,EACA,SAAAC,EACA,aAAAC,EACA,OAAAC,CACF,KAAI,wBAAqB,EAEnBC,KAA8B,WAClC,IAAM,IAAI,EAAAC,QAAQN,CAAY,EAAE,MAAMG,EAAa,QAAQ,EAAE,SAAS,EACtE,CAACH,EAAcG,CAAY,CAC7B,EAEMI,EAAkB,KAAK,IAC3BT,GAAsB,2BAA6B,EACnDA,GAAsB,iCAAmC,CAC3D,EAEA,SACE,QAAC,OAAI,UAAU,6EACZ,UAAAH,EAAQ,oBACP,QAAC,OAAI,UAAU,sEACb,qBAAC,OAAI,UAAU,0BACb,oBAAC,QACC,UAAU,uEACV,QAAM,eAAY,CAAE,OAAQC,EAAY,aAAcD,EAAQ,MAAM,aAAc,OAAAD,CAAO,CAAC,EAC5F,EACCG,EAAe,MACd,OAAC,QACC,UAAU,gGACV,QAAM,eAAY,CAChB,OAAQQ,EACR,aAAcV,EAAQ,MAAM,aAC5B,OAAAD,CACF,CAAC,EACH,GAEJ,EACCG,EAAe,MACd,OAAC,QACC,UAAU,sFACV,KAAM,GAAGU,EAAkB,GAAKR,EAAUN,GAAa,aAAeA,GAAa,YAAY,OAAI,eAAY,CAAE,OAAQc,EAAkB,GAAKR,EAAUQ,EAAkB,IAAI,EAAAD,QAAQT,CAAY,EAAE,MAAMM,GAAc,QAAQ,EAAE,SAAS,EAAG,aAAcR,EAAQ,MAAM,aAAc,OAAAD,CAAO,CAAC,CAAC,GACrS,GAEJ,KAEA,OAAC,QAAK,UAAU,uCAAuC,KAAMD,GAAa,SAAW,WAAY,KAEnG,QAAC,OAAI,UAAU,2CACb,oBAAC,UACC,QAAQ,YACR,SAAU,CAACE,EAAQ,iBACnB,KAAK,KACL,UAAU,sBACV,QAAS,IAAMM,IAAc,EAE5B,SAAAR,GAAa,WAAa,cAC7B,KACA,OAAC,UACC,QAAQ,UACR,SAAU,CAACE,EAAQ,iBACnB,KAAK,KACL,UAAU,sBACV,QAAS,IAAMO,IAAW,EAEzB,SAAAT,GAAa,QAAU,UAC1B,GACF,GACF,CAEJ,EAEA,IAAOV,EAAQS",
6
+ "names": ["ProductActions_exports", "__export", "ProductActions_default", "__toCommonJS", "import_jsx_runtime", "import_components", "import_AiuiProvider", "import_BizProductProvider", "import_react", "import_utils", "import_decimal", "ProductActions", "copyWriting", "locale", "variant", "finalPrice", "totalSavings", "memberFunctionResult", "isLogin", "comparePrice", "onAddToCart", "onBuyNow", "savingDetail", "coupon", "comparePriceRemovedFreeGift", "Decimal", "memberPriceSave"]
7
+ }
@@ -0,0 +1,4 @@
1
+ import type { ScrollSpyNavProps } from './types.js';
2
+ declare const MobileScrollSpyNav: ({ tabs, purchaseBarHeight, onSpyNavItemClick }: ScrollSpyNavProps) => import("react/jsx-runtime").JSX.Element;
3
+ declare const DesktopScrollSpyNav: ({ tabs, onSpyNavItemClick }: ScrollSpyNavProps) => import("react/jsx-runtime").JSX.Element;
4
+ export { MobileScrollSpyNav, DesktopScrollSpyNav };
@@ -0,0 +1,2 @@
1
+ "use strict";var c=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var w=Object.getOwnPropertyNames;var N=Object.prototype.hasOwnProperty;var k=(e,t)=>{for(var s in t)c(e,s,{get:t[s],enumerable:!0})},y=(e,t,s,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let l of w(t))!N.call(e,l)&&l!==s&&c(e,l,{get:()=>t[l],enumerable:!(a=g(t,l))||a.enumerable});return e};var C=e=>y(c({},"__esModule",{value:!0}),e);var A={};k(A,{DesktopScrollSpyNav:()=>v,MobileScrollSpyNav:()=>u});module.exports=C(A);var o=require("react/jsx-runtime"),D=require("../../../../AiuiProvider/index.js"),p=require("../../../../../helpers/index.js"),n=require("react"),m=require("gsap"),f=require("../../../BizProductProvider.js");const E=e=>(0,o.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:(0,o.jsx)("path",{d:"M3 4.5L6 7.5L9 4.5",stroke:"#1D1D1F",strokeLinecap:"round",strokeLinejoin:"round"})}),u=({tabs:e,purchaseBarHeight:t,onSpyNavItemClick:s})=>{const[a,l]=(0,n.useState)(!1),[r,b]=(0,n.useState)(e?.[0]),d=(0,n.useRef)(null),{renderRating:x}=(0,f.useBizProductContext)(),S=(0,n.useCallback)(i=>{b(i),s?.(i),l(!1)},[]),h=(0,n.useCallback)(()=>{l(!a),m.gsap.fromTo(d?.current,{height:0},{height:"auto",duration:.5,ease:"power2.inOut"})},[a]);return(0,o.jsxs)("div",{children:[(0,o.jsxs)("button",{className:"text-sm h-[28px] font-bold flex gap-1 items-center leading-[28px] px-[10px] border rounded-full border-black",onClick:h,children:[r?.label,(0,o.jsx)(E,{className:"size-3"})]}),(0,o.jsxs)("div",{className:(0,p.cn)("absolute top-full w-full flex flex-col z-[60] bg-black/60 left-0",{hidden:!a}),style:{height:`calc(100dvh - ${t}px)`},children:[(0,o.jsxs)("div",{ref:d,className:"border-t overflow-hidden border-[#E4E5E6] flex flex-col bg-white",children:[e?.map(i=>(0,o.jsx)("button",{className:"text-sm hover:bg-[#EAEAEC] p-4 text-left font-bold",onClick:()=>S(i),children:i.label},i.id)),(0,o.jsx)("button",{className:"text-sm hover:bg-[#EAEAEC] p-4 text-left font-bold",children:x})]}),(0,o.jsx)("div",{className:"flex-1",onClick:()=>l(!1)})]})]})},v=({tabs:e,onSpyNavItemClick:t})=>{const[s,a]=(0,n.useState)(e?.[0]),l=(0,n.useCallback)(r=>{a(r),t?.(r)},[]);return(0,o.jsx)("div",{className:"flex gap-8",children:e?.map(r=>(0,o.jsxs)("button",{className:"text-sm relative py-[10px] font-bold",onClick:()=>l(r),children:[r.label,(0,o.jsx)("div",{className:(0,p.cn)("absolute bottom-0 left-0 w-0 transition-all duration-300 ease-in-out h-[2px] bg-brand-0",{"w-full":s?.id===r.id})})]},r.id))})};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../../src/biz-components/Listing/components/PurchaseBar/ScrollSpyNav/index.tsx"],
4
+ "sourcesContent": ["import { useAiuiContext } from '../../../../AiuiProvider/index.js'\nimport { cn } from '../../../../../helpers/index.js'\nimport { useState, useCallback, useRef } from 'react'\nimport { gsap } from 'gsap'\nimport type { ScrollSpyNavItem, ScrollSpyNavProps } from './types.js'\nimport { useBizProductContext } from '../../../BizProductProvider.js'\n\nconst ArrowDownIcon = (props: React.SVGProps<SVGSVGElement>) => {\n return (\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path d=\"M3 4.5L6 7.5L9 4.5\" stroke=\"#1D1D1F\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n )\n}\n\nconst MobileScrollSpyNav = ({ tabs, purchaseBarHeight, onSpyNavItemClick }: ScrollSpyNavProps) => {\n const [dropdownOpen, setDropdownOpen] = useState(false)\n const [activeTab, setActiveTab] = useState(tabs?.[0])\n const dropdownRef = useRef<HTMLDivElement>(null)\n const { renderRating } = useBizProductContext()\n \n const onTabClick = useCallback((tab: ScrollSpyNavItem) => {\n setActiveTab(tab)\n onSpyNavItemClick?.(tab)\n setDropdownOpen(false)\n }, [])\n\n const onDropdownOpen = useCallback(() => {\n setDropdownOpen(!dropdownOpen)\n gsap.fromTo(dropdownRef?.current, { height: 0 }, { height: 'auto', duration: 0.5, ease: 'power2.inOut' })\n }, [dropdownOpen])\n\n return (\n <div>\n <button\n className=\"text-sm h-[28px] font-bold flex gap-1 items-center leading-[28px] px-[10px] border rounded-full border-black\"\n onClick={onDropdownOpen}\n >\n {activeTab?.label}<ArrowDownIcon className='size-3'/>\n </button>\n <div\n className={cn('absolute top-full w-full flex flex-col z-[60] bg-black/60 left-0', {\n ['hidden']: !dropdownOpen,\n })}\n style={{\n height: `calc(100dvh - ${purchaseBarHeight}px)`,\n }}\n >\n <div ref={dropdownRef} className=\"border-t overflow-hidden border-[#E4E5E6] flex flex-col bg-white\">\n {tabs?.map(tab => (\n <button\n className=\"text-sm hover:bg-[#EAEAEC] p-4 text-left font-bold\"\n key={tab.id}\n onClick={() => onTabClick(tab)}\n >\n {tab.label}\n </button>\n ))}\n <button className=\"text-sm hover:bg-[#EAEAEC] p-4 text-left font-bold\">{renderRating}</button>\n </div>\n <div className=\"flex-1\" onClick={() => setDropdownOpen(false)} />\n </div>\n </div>\n )\n}\n\nconst DesktopScrollSpyNav = ({ tabs, onSpyNavItemClick }: ScrollSpyNavProps) => {\n const [activeTab, setActiveTab] = useState(tabs?.[0])\n\n const onTabClick = useCallback((tab: ScrollSpyNavItem) => {\n setActiveTab(tab)\n onSpyNavItemClick?.(tab)\n }, [])\n\n return (\n <div className=\"flex gap-8\">\n {tabs?.map(tab => (\n <button className=\"text-sm relative py-[10px] font-bold\" key={tab.id} onClick={() => onTabClick(tab)}>\n {tab.label}\n <div\n className={cn('absolute bottom-0 left-0 w-0 transition-all duration-300 ease-in-out h-[2px] bg-brand-0', {\n 'w-full': activeTab?.id === tab.id,\n })}\n />\n </button>\n ))}\n </div>\n )\n}\n\nexport { MobileScrollSpyNav, DesktopScrollSpyNav }\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,yBAAAE,EAAA,uBAAAC,IAAA,eAAAC,EAAAJ,GAUM,IAAAK,EAAA,6BAVNC,EAA+B,6CAC/BC,EAAmB,2CACnBC,EAA8C,iBAC9CC,EAAqB,gBAErBC,EAAqC,0CAErC,MAAMC,EAAiBC,MAEnB,OAAC,OAAI,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,KAAK,OAAO,MAAM,6BAA8B,GAAGA,EACjG,mBAAC,QAAK,EAAE,qBAAqB,OAAO,UAAU,cAAc,QAAQ,eAAe,QAAQ,EAC7F,EAIET,EAAqB,CAAC,CAAE,KAAAU,EAAM,kBAAAC,EAAmB,kBAAAC,CAAkB,IAAyB,CAChG,KAAM,CAACC,EAAcC,CAAe,KAAI,YAAS,EAAK,EAChD,CAACC,EAAWC,CAAY,KAAI,YAASN,IAAO,CAAC,CAAC,EAC9CO,KAAc,UAAuB,IAAI,EACzC,CAAE,aAAAC,CAAa,KAAI,wBAAqB,EAExCC,KAAa,eAAaC,GAA0B,CACxDJ,EAAaI,CAAG,EAChBR,IAAoBQ,CAAG,EACvBN,EAAgB,EAAK,CACvB,EAAG,CAAC,CAAC,EAECO,KAAiB,eAAY,IAAM,CACvCP,EAAgB,CAACD,CAAY,EAC7B,OAAK,OAAOI,GAAa,QAAS,CAAE,OAAQ,CAAE,EAAG,CAAE,OAAQ,OAAQ,SAAU,GAAK,KAAM,cAAe,CAAC,CAC1G,EAAG,CAACJ,CAAY,CAAC,EAEjB,SACE,QAAC,OACC,qBAAC,UACC,UAAU,+GACV,QAASQ,EAER,UAAAN,GAAW,SAAM,OAACP,EAAA,CAAc,UAAU,SAAQ,GACrD,KACA,QAAC,OACC,aAAW,MAAG,mEAAoE,CAC/E,OAAW,CAACK,CACf,CAAC,EACD,MAAO,CACL,OAAQ,iBAAiBF,CAAiB,KAC5C,EAEA,qBAAC,OAAI,IAAKM,EAAa,UAAU,mEAC9B,UAAAP,GAAM,IAAIU,MACT,OAAC,UACC,UAAU,qDAEV,QAAS,IAAMD,EAAWC,CAAG,EAE5B,SAAAA,EAAI,OAHAA,EAAI,EAIX,CACD,KACD,OAAC,UAAO,UAAU,qDAAsD,SAAAF,EAAa,GACvF,KACA,OAAC,OAAI,UAAU,SAAS,QAAS,IAAMJ,EAAgB,EAAK,EAAG,GACjE,GACF,CAEJ,EAEMf,EAAsB,CAAC,CAAE,KAAAW,EAAM,kBAAAE,CAAkB,IAAyB,CAC9E,KAAM,CAACG,EAAWC,CAAY,KAAI,YAASN,IAAO,CAAC,CAAC,EAE9CS,KAAa,eAAaC,GAA0B,CACxDJ,EAAaI,CAAG,EAChBR,IAAoBQ,CAAG,CACzB,EAAG,CAAC,CAAC,EAEL,SACE,OAAC,OAAI,UAAU,aACZ,SAAAV,GAAM,IAAIU,MACT,QAAC,UAAO,UAAU,uCAAoD,QAAS,IAAMD,EAAWC,CAAG,EAChG,UAAAA,EAAI,SACL,OAAC,OACC,aAAW,MAAG,0FAA2F,CACvG,SAAUL,GAAW,KAAOK,EAAI,EAClC,CAAC,EACH,IAN4DA,EAAI,EAOlE,CACD,EACH,CAEJ",
6
+ "names": ["ScrollSpyNav_exports", "__export", "DesktopScrollSpyNav", "MobileScrollSpyNav", "__toCommonJS", "import_jsx_runtime", "import_AiuiProvider", "import_helpers", "import_react", "import_gsap", "import_BizProductProvider", "ArrowDownIcon", "props", "tabs", "purchaseBarHeight", "onSpyNavItemClick", "dropdownOpen", "setDropdownOpen", "activeTab", "setActiveTab", "dropdownRef", "renderRating", "onTabClick", "tab", "onDropdownOpen"]
7
+ }
@@ -0,0 +1,10 @@
1
+ export interface ScrollSpyNavItem {
2
+ label: string;
3
+ href: string;
4
+ id: string;
5
+ }
6
+ export interface ScrollSpyNavProps {
7
+ tabs: ScrollSpyNavItem[];
8
+ purchaseBarHeight?: number;
9
+ onSpyNavItemClick?: (tab: ScrollSpyNavItem) => void;
10
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var l=Object.defineProperty;var o=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var S=Object.prototype.hasOwnProperty;var c=(e,r,i,a)=>{if(r&&typeof r=="object"||typeof r=="function")for(let t of p(r))!S.call(e,t)&&t!==i&&l(e,t,{get:()=>r[t],enumerable:!(a=o(r,t))||a.enumerable});return e};var n=e=>c(l({},"__esModule",{value:!0}),e);var s={};module.exports=n(s);
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../../src/biz-components/Listing/components/PurchaseBar/ScrollSpyNav/types.ts"],
4
+ "sourcesContent": ["export interface ScrollSpyNavItem {\n label: string\n href: string\n id: string\n}\n\nexport interface ScrollSpyNavProps {\n tabs: ScrollSpyNavItem[]\n purchaseBarHeight?: number\n onSpyNavItemClick?: (tab: ScrollSpyNavItem) => void\n}\n"],
5
+ "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
+ "names": ["types_exports", "__toCommonJS"]
7
+ }
@@ -0,0 +1,3 @@
1
+ import type { PurchaseBarProps } from './types.js';
2
+ declare const PurchaseBar: ({ onSpyNavItemClick }: PurchaseBarProps) => import("react/jsx-runtime").JSX.Element;
3
+ export default PurchaseBar;
@@ -0,0 +1,2 @@
1
+ "use strict";var c=Object.defineProperty;var h=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var x=Object.prototype.hasOwnProperty;var v=(a,e)=>{for(var o in e)c(a,o,{get:e[o],enumerable:!0})},g=(a,e,o,l)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of y(e))!x.call(a,r)&&r!==o&&c(a,r,{get:()=>e[r],enumerable:!(l=h(e,r))||l.enumerable});return a};var P=a=>g(c({},"__esModule",{value:!0}),a);var N={};v(N,{default:()=>B});module.exports=P(N);var t=require("react/jsx-runtime"),s=require("react"),p=require("../../../../components"),z=require("gsap"),M=require("../../../AiuiProvider/index.js"),A=require("../../../../helpers/index.js"),u=require("../index.js"),d=require("../../BizProductProvider.js"),i=require("./ScrollSpyNav/index.js");const S=({onSpyNavItemClick:a})=>{const[e,o]=(0,s.useState)(0),{isMobile:l,product:r,renderRating:f,isDesktop:m}=(0,d.useBizProductContext)(),n=(0,s.useMemo)(()=>r?.payload?.components?.find(b=>b.componentKey==="PurchaseBar")?.data||[],[r?.payload]);return(0,s.useEffect)(()=>{o(document.querySelector("#purchase-bar")?.clientHeight||0)},[]),(0,t.jsx)("div",{id:"purchase-bar",className:"bg-white sticky top-0 left-0 w-full z-[52] border-b border-[#E4E5E6]",children:(0,t.jsx)(p.Container,{children:(0,t.jsxs)("div",{className:"flex gap-[10px] items-center tablet:justify-between tablet:gap-0 tablet:w-full",children:[(0,t.jsxs)("div",{className:"flex-1 py-3 desktop:pt-6 desktop:pb-0 tablet:flex-none",children:[(0,t.jsx)(p.Heading,{size:2,className:"line-clamp-2 tablet:max-w-[406px] desktop:max-w-[570px] lg-desktop:max-w-[683px]",html:r?.title}),m&&(0,t.jsxs)("div",{className:"flex justify-between gap-8 items-center mt-3",children:[(0,t.jsx)(i.DesktopScrollSpyNav,{tabs:n,onSpyNavItemClick:a}),f]})]}),m?(0,t.jsx)(u.ProductActions,{}):(0,t.jsx)(i.MobileScrollSpyNav,{tabs:n,purchaseBarHeight:e,onSpyNavItemClick:a})]})})})};var B=S;
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/biz-components/Listing/components/PurchaseBar/index.tsx"],
4
+ "sourcesContent": ["import { useCallback, useEffect, useRef, useState, useMemo } from 'react'\nimport { Text, Heading, Button, Container } from '../../../../components'\nimport type { PurchaseBarProps, ScrollSpyNavProps, ScrollSpyNavItem } from './types.js'\nimport { gsap } from 'gsap'\nimport { useAiuiContext } from '../../../AiuiProvider/index.js'\nimport { cn } from '../../../../helpers/index.js'\nimport { ProductActions } from '../index.js'\nimport { useBizProductContext } from '../../BizProductProvider.js'\nimport { MobileScrollSpyNav, DesktopScrollSpyNav } from './ScrollSpyNav/index.js'\n\nconst PurchaseBar = ({ onSpyNavItemClick }: PurchaseBarProps) => {\n const [purchaseBarHeight, setPurchaseBarHeight] = useState(0)\n const { isMobile, product, renderRating, isDesktop } = useBizProductContext()\n\n const PurchaseBarData = useMemo(() => {\n return product?.payload?.components?.find((item: any) => item.componentKey === 'PurchaseBar')?.data || []\n }, [product?.payload])\n\n useEffect(() => {\n setPurchaseBarHeight(document.querySelector('#purchase-bar')?.clientHeight || 0)\n }, [])\n\n return (\n <div id=\"purchase-bar\" className=\"bg-white sticky top-0 left-0 w-full z-[52] border-b border-[#E4E5E6]\">\n <Container>\n {/* // py-3 desktop:pt-6 desktop:pb-0 */}\n <div className=\"flex gap-[10px] items-center tablet:justify-between tablet:gap-0 tablet:w-full\">\n <div className=\"flex-1 py-3 desktop:pt-6 desktop:pb-0 tablet:flex-none\">\n <Heading\n size={2}\n className=\"line-clamp-2 tablet:max-w-[406px] desktop:max-w-[570px] lg-desktop:max-w-[683px]\"\n html={product?.title}\n />\n {isDesktop && (\n <div className=\"flex justify-between gap-8 items-center mt-3\">\n <DesktopScrollSpyNav tabs={PurchaseBarData} onSpyNavItemClick={onSpyNavItemClick} />\n {renderRating}\n </div>\n )}\n </div>\n {!isDesktop ? (\n <MobileScrollSpyNav\n tabs={PurchaseBarData}\n purchaseBarHeight={purchaseBarHeight}\n onSpyNavItemClick={onSpyNavItemClick}\n />\n ) : (\n <ProductActions />\n )}\n </div>\n </Container>\n </div>\n )\n}\n\nexport default PurchaseBar\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,IAAA,eAAAC,EAAAH,GA4BY,IAAAI,EAAA,6BA5BZC,EAAkE,iBAClEC,EAAiD,kCAEjDC,EAAqB,gBACrBC,EAA+B,0CAC/BC,EAAmB,wCACnBC,EAA+B,uBAC/BC,EAAqC,uCACrCC,EAAwD,mCAExD,MAAMC,EAAc,CAAC,CAAE,kBAAAC,CAAkB,IAAwB,CAC/D,KAAM,CAACC,EAAmBC,CAAoB,KAAI,YAAS,CAAC,EACtD,CAAE,SAAAC,EAAU,QAAAC,EAAS,aAAAC,EAAc,UAAAC,CAAU,KAAI,wBAAqB,EAEtEC,KAAkB,WAAQ,IACvBH,GAAS,SAAS,YAAY,KAAMI,GAAcA,EAAK,eAAiB,aAAa,GAAG,MAAQ,CAAC,EACvG,CAACJ,GAAS,OAAO,CAAC,EAErB,sBAAU,IAAM,CACdF,EAAqB,SAAS,cAAc,eAAe,GAAG,cAAgB,CAAC,CACjF,EAAG,CAAC,CAAC,KAGH,OAAC,OAAI,GAAG,eAAe,UAAU,uEAC/B,mBAAC,aAEC,oBAAC,OAAI,UAAU,iFACb,qBAAC,OAAI,UAAU,yDACb,oBAAC,WACC,KAAM,EACN,UAAU,mFACV,KAAME,GAAS,MACjB,EACCE,MACC,QAAC,OAAI,UAAU,+CACb,oBAAC,uBAAoB,KAAMC,EAAiB,kBAAmBP,EAAmB,EACjFK,GACH,GAEJ,EACEC,KAOA,OAAC,mBAAe,KANhB,OAAC,sBACC,KAAMC,EACN,kBAAmBN,EACnB,kBAAmBD,EACrB,GAIJ,EACF,EACF,CAEJ,EAEA,IAAOZ,EAAQW",
6
+ "names": ["PurchaseBar_exports", "__export", "PurchaseBar_default", "__toCommonJS", "import_jsx_runtime", "import_react", "import_components", "import_gsap", "import_AiuiProvider", "import_helpers", "import__", "import_BizProductProvider", "import_ScrollSpyNav", "PurchaseBar", "onSpyNavItemClick", "purchaseBarHeight", "setPurchaseBarHeight", "isMobile", "product", "renderRating", "isDesktop", "PurchaseBarData", "item"]
7
+ }
@@ -0,0 +1,12 @@
1
+ export interface PurchaseBarProps {
2
+ onSpyNavItemClick?: (tab: ScrollSpyNavItem) => void;
3
+ }
4
+ export interface ScrollSpyNavItem {
5
+ label: string;
6
+ href: string;
7
+ id: string;
8
+ }
9
+ export interface ScrollSpyNavProps extends Pick<PurchaseBarProps, 'onSpyNavItemClick'> {
10
+ tabs: ScrollSpyNavItem[];
11
+ purchaseBarHeight: number;
12
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var c=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var s=(e,r,o,t)=>{if(r&&typeof r=="object"||typeof r=="function")for(let a of i(r))!l.call(e,a)&&a!==o&&c(e,a,{get:()=>r[a],enumerable:!(t=p(r,a))||t.enumerable});return e};var n=e=>s(c({},"__esModule",{value:!0}),e);var S={};module.exports=n(S);
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/biz-components/Listing/components/PurchaseBar/types.ts"],
4
+ "sourcesContent": ["export interface PurchaseBarProps {\n onSpyNavItemClick?: (tab: ScrollSpyNavItem) => void\n}\n\nexport interface ScrollSpyNavItem {\n label: string\n href: string\n id: string\n}\n\nexport interface ScrollSpyNavProps extends Pick<PurchaseBarProps, 'onSpyNavItemClick'> {\n tabs: ScrollSpyNavItem[]\n purchaseBarHeight: number\n}\n"],
5
+ "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
+ "names": ["types_exports", "__toCommonJS"]
7
+ }
@@ -0,0 +1,3 @@
1
+ export { default as PurchaseBar } from './PurchaseBar/index.js';
2
+ export { default as ProductActions } from './PurchaseBar/ProductActions/index.js';
3
+ export { default as ProductCard } from './ProductCard/index.js';
@@ -0,0 +1,2 @@
1
+ "use strict";var m=Object.create;var e=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var x=Object.getOwnPropertyNames;var P=Object.getPrototypeOf,h=Object.prototype.hasOwnProperty;var i=(r,a)=>{for(var o in a)e(r,o,{get:a[o],enumerable:!0})},u=(r,a,o,f)=>{if(a&&typeof a=="object"||typeof a=="function")for(let t of x(a))!h.call(r,t)&&t!==o&&e(r,t,{get:()=>a[t],enumerable:!(f=p(a,t))||f.enumerable});return r};var d=(r,a,o)=>(o=r!=null?m(P(r)):{},u(a||!r||!r.__esModule?e(o,"default",{value:r,enumerable:!0}):o,r)),n=r=>u(e({},"__esModule",{value:!0}),r);var A={};i(A,{ProductActions:()=>c.default,ProductCard:()=>l.default,PurchaseBar:()=>s.default});module.exports=n(A);var s=d(require("./PurchaseBar/index.js")),c=d(require("./PurchaseBar/ProductActions/index.js")),l=d(require("./ProductCard/index.js"));
2
+ //# sourceMappingURL=index.js.map