@anker-in/headless-ui 1.0.19-temp-101705 → 1.0.20-alpha.1761027154344

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 (555) hide show
  1. package/dist/cjs/biz-components/AccordionCards/index.js.map +2 -2
  2. package/dist/cjs/biz-components/AplusDesc/index.js +2 -0
  3. package/dist/cjs/biz-components/AplusDesc/index.js.map +7 -0
  4. package/dist/cjs/biz-components/CollectionsFilters/FilterCardWrap.d.ts +0 -1
  5. package/dist/cjs/biz-components/CollectionsFilters/FilterCardWrap.js +1 -1
  6. package/dist/cjs/biz-components/CollectionsFilters/FilterCardWrap.js.map +3 -3
  7. package/dist/cjs/biz-components/CollectionsFilters/FilterCardWrapItem.js +1 -1
  8. package/dist/cjs/biz-components/CollectionsFilters/FilterCardWrapItem.js.map +3 -3
  9. package/dist/cjs/biz-components/CollectionsFilters/component/TabFilter.js +1 -1
  10. package/dist/cjs/biz-components/CollectionsFilters/component/TabFilter.js.map +2 -2
  11. package/dist/cjs/biz-components/CollectionsFilters/index.d.ts +0 -1
  12. package/dist/cjs/biz-components/CollectionsFilters/index.js +1 -1
  13. package/dist/cjs/biz-components/CollectionsFilters/index.js.map +3 -3
  14. package/dist/cjs/biz-components/DownLoad/index.d.ts +9 -6
  15. package/dist/cjs/biz-components/DownLoad/index.js +2 -0
  16. package/dist/cjs/biz-components/DownLoad/index.js.map +7 -0
  17. package/dist/cjs/biz-components/Faq/Faq.js +1 -1
  18. package/dist/cjs/biz-components/Faq/Faq.js.map +2 -2
  19. package/dist/cjs/biz-components/Features/index.js +2 -0
  20. package/dist/cjs/biz-components/Features/index.js.map +7 -0
  21. package/dist/cjs/biz-components/FootCharger/index.js +2 -0
  22. package/dist/cjs/biz-components/FootCharger/index.js.map +7 -0
  23. package/dist/cjs/biz-components/FooterNavigation/index.js +1 -1
  24. package/dist/cjs/biz-components/FooterNavigation/index.js.map +3 -3
  25. package/dist/cjs/biz-components/FooterNavigation/types.d.ts +2 -1
  26. package/dist/cjs/biz-components/FooterNavigation/types.js +1 -1
  27. package/dist/cjs/biz-components/FooterNavigation/types.js.map +2 -2
  28. package/dist/cjs/biz-components/GiftBox/index.js +2 -0
  29. package/dist/cjs/biz-components/GiftBox/index.js.map +7 -0
  30. package/dist/cjs/biz-components/Graphic/index.js +1 -1
  31. package/dist/cjs/biz-components/Graphic/index.js.map +2 -2
  32. package/dist/cjs/biz-components/GraphicMore/index.js +2 -0
  33. package/dist/cjs/biz-components/GraphicMore/index.js.map +7 -0
  34. package/dist/cjs/biz-components/HeaderNavigation/NavProvider.d.ts +6 -5
  35. package/dist/cjs/biz-components/HeaderNavigation/NavProvider.js +1 -1
  36. package/dist/cjs/biz-components/HeaderNavigation/NavProvider.js.map +3 -3
  37. package/dist/cjs/biz-components/HeaderNavigation/icons/Polygon.js +2 -0
  38. package/dist/cjs/biz-components/HeaderNavigation/icons/Polygon.js.map +7 -0
  39. package/dist/cjs/biz-components/HeaderNavigation/icons/index.d.ts +2 -1
  40. package/dist/cjs/biz-components/HeaderNavigation/icons/index.js +1 -1
  41. package/dist/cjs/biz-components/HeaderNavigation/icons/index.js.map +3 -3
  42. package/dist/cjs/biz-components/HeaderNavigation/index.js +1 -1
  43. package/dist/cjs/biz-components/HeaderNavigation/index.js.map +3 -3
  44. package/dist/cjs/biz-components/HeaderNavigation/types.d.ts +18 -2
  45. package/dist/cjs/biz-components/HeaderNavigation/types.js +1 -1
  46. package/dist/cjs/biz-components/HeaderNavigation/types.js.map +2 -2
  47. package/dist/cjs/biz-components/HeaderNavigation/withCategory.d.ts +1 -1
  48. package/dist/cjs/biz-components/HeaderNavigation/withCategory.js +1 -1
  49. package/dist/cjs/biz-components/HeaderNavigation/withCategory.js.map +3 -3
  50. package/dist/cjs/biz-components/Listing/ProductProvider.d.ts +7 -7
  51. package/dist/cjs/biz-components/Listing/ProductProvider.js +2 -0
  52. package/dist/cjs/biz-components/Listing/ProductProvider.js.map +7 -0
  53. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductBenefitsTabs/index.js +2 -0
  54. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductBenefitsTabs/index.js.map +7 -0
  55. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductBundle/index.js +2 -0
  56. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductBundle/index.js.map +7 -0
  57. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductFreeGift/index.js +2 -0
  58. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductFreeGift/index.js.map +7 -0
  59. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductHighlight/index.js +2 -0
  60. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductHighlight/index.js.map +7 -0
  61. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductOptions/index.js +2 -0
  62. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductOptions/index.js.map +7 -0
  63. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/index.js +2 -0
  64. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/index.js.map +7 -0
  65. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/types.js +2 -0
  66. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/types.js.map +7 -0
  67. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGallery/components/CompareModal.js +2 -0
  68. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGallery/components/CompareModal.js.map +7 -0
  69. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGallery/components/Select.js +2 -0
  70. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGallery/components/Select.js.map +7 -0
  71. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGallery/components/ShopifyColorOption.js +2 -0
  72. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGallery/components/ShopifyColorOption.js.map +7 -0
  73. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGallery/components/SpecsModal.js +2 -0
  74. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGallery/components/SpecsModal.js.map +7 -0
  75. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGallery/index.js +2 -0
  76. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGallery/index.js.map +7 -0
  77. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGallery/types.js +2 -0
  78. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGallery/types.js.map +7 -0
  79. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGridBox.js +2 -0
  80. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGridBox.js.map +7 -0
  81. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductSummary/index.js +2 -0
  82. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductSummary/index.js.map +7 -0
  83. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductSummary/types.js +2 -0
  84. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductSummary/types.js.map +7 -0
  85. package/dist/cjs/biz-components/Listing/components/ProductCard/index.js +2 -0
  86. package/dist/cjs/biz-components/Listing/components/ProductCard/index.js.map +7 -0
  87. package/dist/cjs/biz-components/Listing/components/PurchaseBar/ProductActions/index.js +2 -0
  88. package/dist/cjs/biz-components/Listing/components/PurchaseBar/ProductActions/index.js.map +7 -0
  89. package/dist/cjs/biz-components/Listing/components/PurchaseBar/ScrollSpyNav/index.js +2 -0
  90. package/dist/cjs/biz-components/Listing/components/PurchaseBar/ScrollSpyNav/index.js.map +7 -0
  91. package/dist/cjs/biz-components/Listing/components/PurchaseBar/ScrollSpyNav/types.js +2 -0
  92. package/dist/cjs/biz-components/Listing/components/PurchaseBar/ScrollSpyNav/types.js.map +7 -0
  93. package/dist/cjs/biz-components/Listing/components/PurchaseBar/index.js +2 -0
  94. package/dist/cjs/biz-components/Listing/components/PurchaseBar/index.js.map +7 -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.js +2 -0
  98. package/dist/cjs/biz-components/Listing/components/index.js.map +7 -0
  99. package/dist/cjs/biz-components/Listing/const.js +2 -0
  100. package/dist/cjs/biz-components/Listing/const.js.map +7 -0
  101. package/dist/cjs/biz-components/Listing/hooks/use-options.js +2 -0
  102. package/dist/cjs/biz-components/Listing/hooks/use-options.js.map +7 -0
  103. package/dist/cjs/biz-components/Listing/hooks/use-variant-media.js +2 -0
  104. package/dist/cjs/biz-components/Listing/hooks/use-variant-media.js.map +7 -0
  105. package/dist/cjs/biz-components/Listing/hooks/use-variant.js +2 -0
  106. package/dist/cjs/biz-components/Listing/hooks/use-variant.js.map +7 -0
  107. package/dist/cjs/biz-components/Listing/hooks/useCopy.js +2 -0
  108. package/dist/cjs/biz-components/Listing/hooks/useCopy.js.map +7 -0
  109. package/dist/cjs/biz-components/Listing/index.d.ts +1 -1
  110. package/dist/cjs/biz-components/Listing/index.js +2 -0
  111. package/dist/cjs/biz-components/Listing/index.js.map +7 -0
  112. package/dist/cjs/biz-components/Listing/types/graphql.js +2 -0
  113. package/dist/cjs/biz-components/Listing/types/graphql.js.map +7 -0
  114. package/dist/cjs/biz-components/Listing/types/product.js +2 -0
  115. package/dist/cjs/biz-components/Listing/types/product.js.map +7 -0
  116. package/dist/cjs/biz-components/Listing/types/productMetafields.d.js +2 -0
  117. package/dist/cjs/biz-components/Listing/types/productMetafields.d.js.map +7 -0
  118. package/dist/cjs/biz-components/Listing/types/type-helper.js +2 -0
  119. package/dist/cjs/biz-components/Listing/types/type-helper.js.map +7 -0
  120. package/dist/cjs/biz-components/Listing/types.js +2 -0
  121. package/dist/cjs/biz-components/Listing/types.js.map +7 -0
  122. package/dist/cjs/biz-components/Listing/utils/helper.js +2 -0
  123. package/dist/cjs/biz-components/Listing/utils/helper.js.map +7 -0
  124. package/dist/cjs/biz-components/Listing/utils/index.js +2 -0
  125. package/dist/cjs/biz-components/Listing/utils/index.js.map +7 -0
  126. package/dist/cjs/biz-components/MultiLayoutGraphicBlock/MultiLayoutGraphicBlock.js +1 -1
  127. package/dist/cjs/biz-components/MultiLayoutGraphicBlock/MultiLayoutGraphicBlock.js.map +2 -2
  128. package/dist/cjs/biz-components/NavigationSearch/index.js +2 -0
  129. package/dist/cjs/biz-components/NavigationSearch/index.js.map +7 -0
  130. package/dist/cjs/biz-components/NavigationSearch/types.js +2 -0
  131. package/dist/cjs/biz-components/NavigationSearch/types.js.map +7 -0
  132. package/dist/cjs/biz-components/SearchPage/index.js +2 -0
  133. package/dist/cjs/biz-components/SearchPage/index.js.map +7 -0
  134. package/dist/cjs/biz-components/SearchPage/types.js +2 -0
  135. package/dist/cjs/biz-components/SearchPage/types.js.map +7 -0
  136. package/dist/cjs/biz-components/SelectStore/index.d.ts +4 -10
  137. package/dist/cjs/biz-components/SelectStore/index.js +2 -0
  138. package/dist/cjs/biz-components/SelectStore/index.js.map +7 -0
  139. package/dist/cjs/biz-components/ShelfDisplay/index.js +1 -1
  140. package/dist/cjs/biz-components/ShelfDisplay/index.js.map +3 -3
  141. package/dist/cjs/biz-components/ShelfDisplay/shelfDisplayItem.js +4 -4
  142. package/dist/cjs/biz-components/ShelfDisplay/shelfDisplayItem.js.map +3 -3
  143. package/dist/cjs/biz-components/Specs/dropdown.js +3 -0
  144. package/dist/cjs/biz-components/Specs/dropdown.js.map +7 -0
  145. package/dist/cjs/biz-components/Specs/index.js +2 -0
  146. package/dist/cjs/biz-components/Specs/index.js.map +7 -0
  147. package/dist/cjs/biz-components/Subscribe/index.d.ts +7 -1
  148. package/dist/cjs/biz-components/Subscribe/index.js +10 -1
  149. package/dist/cjs/biz-components/Subscribe/index.js.map +3 -3
  150. package/dist/cjs/biz-components/Tabs/Tabs.js +1 -1
  151. package/dist/cjs/biz-components/Tabs/Tabs.js.map +2 -2
  152. package/dist/cjs/biz-components/TabsGroup/index.d.ts +7 -0
  153. package/dist/cjs/biz-components/TabsGroup/index.js +2 -0
  154. package/dist/cjs/biz-components/TabsGroup/index.js.map +7 -0
  155. package/dist/cjs/biz-components/TabsGroup/types.d.ts +16 -0
  156. package/dist/cjs/biz-components/TabsGroup/types.js +2 -0
  157. package/dist/cjs/biz-components/TabsGroup/types.js.map +7 -0
  158. package/dist/cjs/biz-components/Title/index.js +1 -1
  159. package/dist/cjs/biz-components/Title/index.js.map +2 -2
  160. package/dist/cjs/biz-components/Title/types.d.ts +3 -1
  161. package/dist/cjs/biz-components/Title/types.js +1 -1
  162. package/dist/cjs/biz-components/Title/types.js.map +1 -1
  163. package/dist/cjs/biz-components/index.d.ts +26 -0
  164. package/dist/cjs/biz-components/index.js +1 -1
  165. package/dist/cjs/biz-components/index.js.map +3 -3
  166. package/dist/cjs/components/button.js +1 -1
  167. package/dist/cjs/components/button.js.map +2 -2
  168. package/dist/cjs/components/checkbox.js +1 -1
  169. package/dist/cjs/components/checkbox.js.map +3 -3
  170. package/dist/cjs/components/container.js +1 -1
  171. package/dist/cjs/components/container.js.map +2 -2
  172. package/dist/cjs/components/dialog.d.ts +3 -1
  173. package/dist/cjs/components/dialog.js +1 -1
  174. package/dist/cjs/components/dialog.js.map +3 -3
  175. package/dist/cjs/components/index.d.ts +1 -0
  176. package/dist/cjs/components/index.js +1 -1
  177. package/dist/cjs/components/index.js.map +3 -3
  178. package/dist/cjs/components/loadingDots.js +42 -0
  179. package/dist/cjs/components/loadingDots.js.map +7 -0
  180. package/dist/cjs/helpers/utils.d.ts +1 -0
  181. package/dist/cjs/helpers/utils.js +1 -1
  182. package/dist/cjs/helpers/utils.js.map +3 -3
  183. package/dist/cjs/stories/aplusdesc.stories.js +2 -0
  184. package/dist/cjs/stories/aplusdesc.stories.js.map +7 -0
  185. package/dist/cjs/stories/download.stories.d.ts +1 -6
  186. package/dist/cjs/stories/download.stories.js +2 -0
  187. package/dist/cjs/stories/download.stories.js.map +7 -0
  188. package/dist/cjs/stories/features.stories.js +2 -0
  189. package/dist/cjs/stories/features.stories.js.map +7 -0
  190. package/dist/cjs/stories/footcharger.stories.js +2 -0
  191. package/dist/cjs/stories/footcharger.stories.js.map +7 -0
  192. package/dist/cjs/stories/giftbox.stories.js +2 -0
  193. package/dist/cjs/stories/giftbox.stories.js.map +7 -0
  194. package/dist/cjs/stories/graphicMore.stories.js +2 -0
  195. package/dist/cjs/stories/graphicMore.stories.js.map +7 -0
  196. package/dist/cjs/stories/selectstore.stories.js +2 -0
  197. package/dist/cjs/stories/selectstore.stories.js.map +7 -0
  198. package/dist/cjs/stories/shelfDisplay.stories.js +644 -1
  199. package/dist/cjs/stories/shelfDisplay.stories.js.map +2 -2
  200. package/dist/cjs/stories/tabs.stories.js +1 -1
  201. package/dist/cjs/stories/tabs.stories.js.map +3 -3
  202. package/dist/esm/biz-components/AccordionCards/index.js.map +2 -2
  203. package/dist/esm/biz-components/AplusDesc/index.js +2 -0
  204. package/dist/esm/biz-components/AplusDesc/index.js.map +7 -0
  205. package/dist/esm/biz-components/CollectionsFilters/FilterCardWrap.d.ts +0 -1
  206. package/dist/esm/biz-components/CollectionsFilters/FilterCardWrap.js +1 -1
  207. package/dist/esm/biz-components/CollectionsFilters/FilterCardWrap.js.map +3 -3
  208. package/dist/esm/biz-components/CollectionsFilters/FilterCardWrapItem.js +1 -1
  209. package/dist/esm/biz-components/CollectionsFilters/FilterCardWrapItem.js.map +3 -3
  210. package/dist/esm/biz-components/CollectionsFilters/component/TabFilter.js +1 -1
  211. package/dist/esm/biz-components/CollectionsFilters/component/TabFilter.js.map +2 -2
  212. package/dist/esm/biz-components/CollectionsFilters/index.d.ts +0 -1
  213. package/dist/esm/biz-components/CollectionsFilters/index.js +1 -1
  214. package/dist/esm/biz-components/CollectionsFilters/index.js.map +3 -3
  215. package/dist/esm/biz-components/DownLoad/index.d.ts +9 -6
  216. package/dist/esm/biz-components/DownLoad/index.js +2 -0
  217. package/dist/esm/biz-components/DownLoad/index.js.map +7 -0
  218. package/dist/esm/biz-components/Faq/Faq.js +1 -1
  219. package/dist/esm/biz-components/Faq/Faq.js.map +3 -3
  220. package/dist/esm/biz-components/Features/index.js +2 -0
  221. package/dist/esm/biz-components/Features/index.js.map +7 -0
  222. package/dist/esm/biz-components/FootCharger/index.js +2 -0
  223. package/dist/esm/biz-components/FootCharger/index.js.map +7 -0
  224. package/dist/esm/biz-components/FooterNavigation/index.js +1 -1
  225. package/dist/esm/biz-components/FooterNavigation/index.js.map +3 -3
  226. package/dist/esm/biz-components/FooterNavigation/types.d.ts +2 -1
  227. package/dist/esm/biz-components/FooterNavigation/types.js +1 -1
  228. package/dist/esm/biz-components/FooterNavigation/types.js.map +2 -2
  229. package/dist/esm/biz-components/GiftBox/index.js +2 -0
  230. package/dist/esm/biz-components/GiftBox/index.js.map +7 -0
  231. package/dist/esm/biz-components/Graphic/index.js +1 -1
  232. package/dist/esm/biz-components/Graphic/index.js.map +2 -2
  233. package/dist/esm/biz-components/GraphicMore/index.js +2 -0
  234. package/dist/esm/biz-components/GraphicMore/index.js.map +7 -0
  235. package/dist/esm/biz-components/HeaderNavigation/NavProvider.d.ts +6 -5
  236. package/dist/esm/biz-components/HeaderNavigation/NavProvider.js +1 -1
  237. package/dist/esm/biz-components/HeaderNavigation/NavProvider.js.map +3 -3
  238. package/dist/esm/biz-components/HeaderNavigation/icons/Polygon.js +2 -0
  239. package/dist/esm/biz-components/HeaderNavigation/icons/Polygon.js.map +7 -0
  240. package/dist/esm/biz-components/HeaderNavigation/icons/index.d.ts +2 -1
  241. package/dist/esm/biz-components/HeaderNavigation/icons/index.js +1 -1
  242. package/dist/esm/biz-components/HeaderNavigation/icons/index.js.map +3 -3
  243. package/dist/esm/biz-components/HeaderNavigation/index.js +1 -1
  244. package/dist/esm/biz-components/HeaderNavigation/index.js.map +3 -3
  245. package/dist/esm/biz-components/HeaderNavigation/types.d.ts +18 -2
  246. package/dist/esm/biz-components/HeaderNavigation/types.js +1 -1
  247. package/dist/esm/biz-components/HeaderNavigation/types.js.map +2 -2
  248. package/dist/esm/biz-components/HeaderNavigation/withCategory.d.ts +1 -1
  249. package/dist/esm/biz-components/HeaderNavigation/withCategory.js +1 -1
  250. package/dist/esm/biz-components/HeaderNavigation/withCategory.js.map +3 -3
  251. package/dist/esm/biz-components/Listing/ProductProvider.d.ts +7 -7
  252. package/dist/esm/biz-components/Listing/ProductProvider.js +2 -0
  253. package/dist/esm/biz-components/Listing/ProductProvider.js.map +7 -0
  254. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductBenefitsTabs/index.js +2 -0
  255. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductBenefitsTabs/index.js.map +7 -0
  256. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductBundle/index.js +2 -0
  257. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductBundle/index.js.map +7 -0
  258. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductFreeGift/index.js +2 -0
  259. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductFreeGift/index.js.map +7 -0
  260. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductHighlight/index.js +2 -0
  261. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductHighlight/index.js.map +7 -0
  262. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductOptions/index.js +2 -0
  263. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductOptions/index.js.map +7 -0
  264. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/index.js +2 -0
  265. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/index.js.map +7 -0
  266. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/types.js +2 -0
  267. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/types.js.map +7 -0
  268. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/components/CompareModal.js +2 -0
  269. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/components/CompareModal.js.map +7 -0
  270. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/components/Select.js +2 -0
  271. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/components/Select.js.map +7 -0
  272. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/components/ShopifyColorOption.js +2 -0
  273. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/components/ShopifyColorOption.js.map +7 -0
  274. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/components/SpecsModal.js +2 -0
  275. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/components/SpecsModal.js.map +7 -0
  276. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/index.js +2 -0
  277. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/index.js.map +7 -0
  278. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/types.js +2 -0
  279. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/types.js.map +7 -0
  280. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGridBox.js +2 -0
  281. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGridBox.js.map +7 -0
  282. package/dist/esm/biz-components/Listing/components/ProductCard/ProductSummary/index.js +2 -0
  283. package/dist/esm/biz-components/Listing/components/ProductCard/ProductSummary/index.js.map +7 -0
  284. package/dist/esm/biz-components/Listing/components/ProductCard/ProductSummary/types.js +1 -0
  285. package/dist/esm/biz-components/Listing/components/ProductCard/ProductSummary/types.js.map +7 -0
  286. package/dist/esm/biz-components/Listing/components/ProductCard/index.js +2 -0
  287. package/dist/esm/biz-components/Listing/components/ProductCard/index.js.map +7 -0
  288. package/dist/esm/biz-components/Listing/components/PurchaseBar/ProductActions/index.js +2 -0
  289. package/dist/esm/biz-components/Listing/components/PurchaseBar/ProductActions/index.js.map +7 -0
  290. package/dist/esm/biz-components/Listing/components/PurchaseBar/ScrollSpyNav/index.js +2 -0
  291. package/dist/esm/biz-components/Listing/components/PurchaseBar/ScrollSpyNav/index.js.map +7 -0
  292. package/dist/esm/biz-components/Listing/components/PurchaseBar/ScrollSpyNav/types.js +1 -0
  293. package/dist/esm/biz-components/Listing/components/PurchaseBar/ScrollSpyNav/types.js.map +7 -0
  294. package/dist/esm/biz-components/Listing/components/PurchaseBar/index.js +2 -0
  295. package/dist/esm/biz-components/Listing/components/PurchaseBar/index.js.map +7 -0
  296. package/dist/esm/biz-components/Listing/components/PurchaseBar/types.js +1 -0
  297. package/dist/esm/biz-components/Listing/components/PurchaseBar/types.js.map +7 -0
  298. package/dist/esm/biz-components/Listing/components/index.js +2 -0
  299. package/dist/esm/biz-components/Listing/components/index.js.map +7 -0
  300. package/dist/esm/biz-components/Listing/const.js +2 -0
  301. package/dist/esm/biz-components/Listing/const.js.map +7 -0
  302. package/dist/esm/biz-components/Listing/hooks/use-options.js +2 -0
  303. package/dist/esm/biz-components/Listing/hooks/use-options.js.map +7 -0
  304. package/dist/esm/biz-components/Listing/hooks/use-variant-media.js +2 -0
  305. package/dist/esm/biz-components/Listing/hooks/use-variant-media.js.map +7 -0
  306. package/dist/esm/biz-components/Listing/hooks/use-variant.js +2 -0
  307. package/dist/esm/biz-components/Listing/hooks/use-variant.js.map +7 -0
  308. package/dist/esm/biz-components/Listing/hooks/useCopy.js +2 -0
  309. package/dist/esm/biz-components/Listing/hooks/useCopy.js.map +7 -0
  310. package/dist/esm/biz-components/Listing/index.d.ts +1 -1
  311. package/dist/esm/biz-components/Listing/index.js +2 -0
  312. package/dist/esm/biz-components/Listing/index.js.map +7 -0
  313. package/dist/esm/biz-components/Listing/types/graphql.js +2 -0
  314. package/dist/esm/biz-components/Listing/types/graphql.js.map +7 -0
  315. package/dist/esm/biz-components/Listing/types/product.js +2 -0
  316. package/dist/esm/biz-components/Listing/types/product.js.map +7 -0
  317. package/dist/esm/biz-components/Listing/types/productMetafields.d.js +2 -0
  318. package/dist/esm/biz-components/Listing/types/productMetafields.d.js.map +7 -0
  319. package/dist/esm/biz-components/Listing/types/type-helper.js +1 -0
  320. package/dist/esm/biz-components/Listing/types/type-helper.js.map +7 -0
  321. package/dist/esm/biz-components/Listing/types.js +1 -0
  322. package/dist/esm/biz-components/Listing/types.js.map +7 -0
  323. package/dist/esm/biz-components/Listing/utils/helper.js +2 -0
  324. package/dist/esm/biz-components/Listing/utils/helper.js.map +7 -0
  325. package/dist/esm/biz-components/Listing/utils/index.js +2 -0
  326. package/dist/esm/biz-components/Listing/utils/index.js.map +7 -0
  327. package/dist/esm/biz-components/MultiLayoutGraphicBlock/MultiLayoutGraphicBlock.js +1 -1
  328. package/dist/esm/biz-components/MultiLayoutGraphicBlock/MultiLayoutGraphicBlock.js.map +2 -2
  329. package/dist/esm/biz-components/NavigationSearch/index.js +2 -0
  330. package/dist/esm/biz-components/NavigationSearch/index.js.map +7 -0
  331. package/dist/esm/biz-components/NavigationSearch/types.js +2 -0
  332. package/dist/esm/biz-components/NavigationSearch/types.js.map +7 -0
  333. package/dist/esm/biz-components/SearchPage/index.js +2 -0
  334. package/dist/esm/biz-components/SearchPage/index.js.map +7 -0
  335. package/dist/esm/biz-components/SearchPage/types.js +2 -0
  336. package/dist/esm/biz-components/SearchPage/types.js.map +7 -0
  337. package/dist/esm/biz-components/SelectStore/index.d.ts +4 -10
  338. package/dist/esm/biz-components/SelectStore/index.js +2 -0
  339. package/dist/esm/biz-components/SelectStore/index.js.map +7 -0
  340. package/dist/esm/biz-components/ShelfDisplay/index.js +1 -1
  341. package/dist/esm/biz-components/ShelfDisplay/index.js.map +3 -3
  342. package/dist/esm/biz-components/ShelfDisplay/shelfDisplayItem.js +9 -9
  343. package/dist/esm/biz-components/ShelfDisplay/shelfDisplayItem.js.map +3 -3
  344. package/dist/esm/biz-components/Specs/dropdown.js +3 -0
  345. package/dist/esm/biz-components/Specs/dropdown.js.map +7 -0
  346. package/dist/esm/biz-components/Specs/index.js +2 -0
  347. package/dist/esm/biz-components/Specs/index.js.map +7 -0
  348. package/dist/esm/biz-components/Subscribe/index.d.ts +7 -1
  349. package/dist/esm/biz-components/Subscribe/index.js +10 -1
  350. package/dist/esm/biz-components/Subscribe/index.js.map +3 -3
  351. package/dist/esm/biz-components/Tabs/Tabs.js +1 -1
  352. package/dist/esm/biz-components/Tabs/Tabs.js.map +2 -2
  353. package/dist/esm/biz-components/TabsGroup/index.d.ts +7 -0
  354. package/dist/esm/biz-components/TabsGroup/index.js +2 -0
  355. package/dist/esm/biz-components/TabsGroup/index.js.map +7 -0
  356. package/dist/esm/biz-components/TabsGroup/types.d.ts +16 -0
  357. package/dist/esm/biz-components/TabsGroup/types.js +1 -0
  358. package/dist/esm/biz-components/TabsGroup/types.js.map +7 -0
  359. package/dist/esm/biz-components/Title/index.js +1 -1
  360. package/dist/esm/biz-components/Title/index.js.map +2 -2
  361. package/dist/esm/biz-components/Title/types.d.ts +3 -1
  362. package/dist/esm/biz-components/index.d.ts +26 -0
  363. package/dist/esm/biz-components/index.js +1 -1
  364. package/dist/esm/biz-components/index.js.map +3 -3
  365. package/dist/esm/components/button.js +1 -1
  366. package/dist/esm/components/button.js.map +2 -2
  367. package/dist/esm/components/checkbox.js +1 -1
  368. package/dist/esm/components/checkbox.js.map +3 -3
  369. package/dist/esm/components/container.js +1 -1
  370. package/dist/esm/components/container.js.map +2 -2
  371. package/dist/esm/components/dialog.d.ts +3 -1
  372. package/dist/esm/components/dialog.js +1 -1
  373. package/dist/esm/components/dialog.js.map +3 -3
  374. package/dist/esm/components/index.d.ts +1 -0
  375. package/dist/esm/components/index.js +1 -1
  376. package/dist/esm/components/index.js.map +2 -2
  377. package/dist/esm/components/loadingDots.js +42 -0
  378. package/dist/esm/components/loadingDots.js.map +7 -0
  379. package/dist/esm/helpers/utils.d.ts +1 -0
  380. package/dist/esm/helpers/utils.js +1 -1
  381. package/dist/esm/helpers/utils.js.map +3 -3
  382. package/dist/esm/stories/aplusdesc.stories.js +2 -0
  383. package/dist/esm/stories/aplusdesc.stories.js.map +7 -0
  384. package/dist/esm/stories/download.stories.d.ts +1 -6
  385. package/dist/esm/stories/download.stories.js +2 -0
  386. package/dist/esm/stories/download.stories.js.map +7 -0
  387. package/dist/esm/stories/features.stories.js +2 -0
  388. package/dist/esm/stories/features.stories.js.map +7 -0
  389. package/dist/esm/stories/footcharger.stories.js +2 -0
  390. package/dist/esm/stories/footcharger.stories.js.map +7 -0
  391. package/dist/esm/stories/giftbox.stories.js +2 -0
  392. package/dist/esm/stories/giftbox.stories.js.map +7 -0
  393. package/dist/esm/stories/graphicMore.stories.js +2 -0
  394. package/dist/esm/stories/graphicMore.stories.js.map +7 -0
  395. package/dist/esm/stories/selectstore.stories.js +2 -0
  396. package/dist/esm/stories/selectstore.stories.js.map +7 -0
  397. package/dist/esm/stories/shelfDisplay.stories.js +644 -1
  398. package/dist/esm/stories/shelfDisplay.stories.js.map +2 -2
  399. package/dist/esm/stories/tabs.stories.js +1 -1
  400. package/dist/esm/stories/tabs.stories.js.map +3 -3
  401. package/dist/tokens/base.css +1 -1
  402. package/package.json +1 -1
  403. package/style.css +9 -2
  404. package/dist/cjs/apps/playground/utils/classnames.d.ts +0 -1
  405. package/dist/cjs/apps/storefront/lib/utils/classnames.d.ts +0 -2
  406. package/dist/cjs/biz-components/AccordionCards/useDebounce.d.ts +0 -6
  407. package/dist/cjs/biz-components/CollectionsBanner/HeroBanner.d.ts +0 -7
  408. package/dist/cjs/biz-components/CollectionsFilters/AnimatedUL.d.ts +0 -9
  409. package/dist/cjs/biz-components/CollectionsFilters/FilterTab.d.ts +0 -7
  410. package/dist/cjs/biz-components/CollectionsFilters/FiterTab.d.ts +0 -7
  411. package/dist/cjs/biz-components/CollectionsFilters/FiterTab.js +0 -2
  412. package/dist/cjs/biz-components/CollectionsFilters/FiterTab.js.map +0 -7
  413. package/dist/cjs/biz-components/CollectionsFilters/Helper.d.ts +0 -8
  414. package/dist/cjs/biz-components/CollectionsFilters/MoblieSortFilter.d.ts +0 -8
  415. package/dist/cjs/biz-components/CollectionsFilters/SortFilter.d.ts +0 -8
  416. package/dist/cjs/biz-components/CollectionsFilters/component/LoadingDots.d.ts +0 -6
  417. package/dist/cjs/biz-components/CollectionsFilters/data.d.ts +0 -24804
  418. package/dist/cjs/biz-components/CollectionsFilters/price.d.ts +0 -25
  419. package/dist/cjs/biz-components/CollectionsFilters/priceProps.d.ts +0 -215
  420. package/dist/cjs/biz-components/CollectionsFilters/tabFilter.d.ts +0 -10
  421. package/dist/cjs/biz-components/CollectionsFilters/tabSwitch.d.ts +0 -9
  422. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/BenefitsTabs/index.d.ts +0 -5
  423. package/dist/cjs/biz-components/MediaPlayerMulti/YouTubePlayer.d.ts +0 -3
  424. package/dist/cjs/biz-components/SectionHeading/SectionHeading.d.ts +0 -4
  425. package/dist/cjs/biz-components/SectionHeading/index.d.ts +0 -0
  426. package/dist/cjs/biz-components/SectionHeading/types.d.ts +0 -6
  427. package/dist/cjs/biz-components/Shelf/Shelf.d.ts +0 -8
  428. package/dist/cjs/biz-components/Shelf/index.d.ts +0 -1
  429. package/dist/cjs/biz-components/Shelf/types.d.ts +0 -6
  430. package/dist/cjs/biz-components/ShelfDisplay/tab.d.ts +0 -7
  431. package/dist/cjs/biz-components/TextMa/index.d.ts +0 -9
  432. package/dist/cjs/campaign-ui/tailwind.config.d.ts +0 -62
  433. package/dist/cjs/components/col.d.ts +0 -29
  434. package/dist/cjs/components/dropdown.d.ts +0 -27
  435. package/dist/cjs/components/inputnumber.d.ts +0 -0
  436. package/dist/cjs/components/row.d.ts +0 -18
  437. package/dist/cjs/helpers/get-subtree.d.ts +0 -12
  438. package/dist/cjs/hooks/useMemberPrice.d.ts +0 -20
  439. package/dist/cjs/packages/ui/src/components/avatar.d.ts +0 -26
  440. package/dist/cjs/packages/ui/src/components/index.d.ts +0 -20
  441. package/dist/cjs/packages/ui/src/index.d.ts +0 -1
  442. package/dist/cjs/packages/ui/src/stories/avatar.stories.d.ts +0 -40
  443. package/dist/cjs/packages/ui/src/stories/badge.stories.d.ts +0 -26
  444. package/dist/cjs/packages/ui/src/stories/button.stories.d.ts +0 -48
  445. package/dist/cjs/packages/ui/src/stories/checkbox.stories.d.ts +0 -46
  446. package/dist/cjs/packages/ui/src/stories/container.stories.d.ts +0 -36
  447. package/dist/cjs/packages/ui/src/stories/dialog.stories.d.ts +0 -20
  448. package/dist/cjs/packages/ui/src/stories/grid.stories.d.ts +0 -42
  449. package/dist/cjs/packages/ui/src/stories/heading.stories.d.ts +0 -82
  450. package/dist/cjs/packages/ui/src/stories/input.stories.d.ts +0 -35
  451. package/dist/cjs/packages/ui/src/stories/picture.stories.d.ts +0 -18
  452. package/dist/cjs/packages/ui/src/stories/popover.stories.d.ts +0 -17
  453. package/dist/cjs/packages/ui/src/stories/radio.stories.d.ts +0 -39
  454. package/dist/cjs/packages/ui/src/stories/skeleton.stories.d.ts +0 -20
  455. package/dist/cjs/packages/ui/src/stories/tabs.stories.d.ts +0 -373
  456. package/dist/cjs/packages/ui/src/stories/text.stories.d.ts +0 -94
  457. package/dist/cjs/src/components/index.d.ts +0 -21
  458. package/dist/cjs/src/components/input-number.d.ts +0 -47
  459. package/dist/cjs/src/index.d.ts +0 -1
  460. package/dist/cjs/src/stories/avatar.stories.d.ts +0 -40
  461. package/dist/cjs/src/stories/badge.stories.d.ts +0 -26
  462. package/dist/cjs/src/stories/button.stories.d.ts +0 -48
  463. package/dist/cjs/src/stories/checkbox.stories.d.ts +0 -46
  464. package/dist/cjs/src/stories/container.stories.d.ts +0 -36
  465. package/dist/cjs/src/stories/dialog.stories.d.ts +0 -20
  466. package/dist/cjs/src/stories/grid.stories.d.ts +0 -42
  467. package/dist/cjs/src/stories/heading.stories.d.ts +0 -82
  468. package/dist/cjs/src/stories/input-number.stories.d.ts +0 -51
  469. package/dist/cjs/src/stories/input.stories.d.ts +0 -35
  470. package/dist/cjs/src/stories/picture.stories.d.ts +0 -18
  471. package/dist/cjs/src/stories/popover.stories.d.ts +0 -17
  472. package/dist/cjs/src/stories/radio.stories.d.ts +0 -39
  473. package/dist/cjs/src/stories/skeleton.stories.d.ts +0 -20
  474. package/dist/cjs/src/stories/text.stories.d.ts +0 -94
  475. package/dist/cjs/stories/shelf.stories.d.ts +0 -17
  476. package/dist/cjs/tailwind.config.d.ts +0 -253
  477. package/dist/cjs/tsconfig.tsbuildinfo +0 -1
  478. package/dist/cjs/ui/src/biz-components/CollectionsFilters/FilterCardWrapItem.d.ts +0 -5
  479. package/dist/esm/apps/playground/utils/classnames.d.ts +0 -1
  480. package/dist/esm/apps/storefront/lib/utils/classnames.d.ts +0 -2
  481. package/dist/esm/biz-components/AccordionCards/useDebounce.d.ts +0 -6
  482. package/dist/esm/biz-components/CollectionsBanner/HeroBanner.d.ts +0 -7
  483. package/dist/esm/biz-components/CollectionsFilters/AnimatedUL.d.ts +0 -9
  484. package/dist/esm/biz-components/CollectionsFilters/FilterTab.d.ts +0 -7
  485. package/dist/esm/biz-components/CollectionsFilters/FiterTab.d.ts +0 -7
  486. package/dist/esm/biz-components/CollectionsFilters/FiterTab.js +0 -2
  487. package/dist/esm/biz-components/CollectionsFilters/FiterTab.js.map +0 -7
  488. package/dist/esm/biz-components/CollectionsFilters/Helper.d.ts +0 -8
  489. package/dist/esm/biz-components/CollectionsFilters/MoblieSortFilter.d.ts +0 -8
  490. package/dist/esm/biz-components/CollectionsFilters/SortFilter.d.ts +0 -8
  491. package/dist/esm/biz-components/CollectionsFilters/component/LoadingDots.d.ts +0 -6
  492. package/dist/esm/biz-components/CollectionsFilters/data.d.ts +0 -24804
  493. package/dist/esm/biz-components/CollectionsFilters/price.d.ts +0 -25
  494. package/dist/esm/biz-components/CollectionsFilters/priceProps.d.ts +0 -215
  495. package/dist/esm/biz-components/CollectionsFilters/tabFilter.d.ts +0 -10
  496. package/dist/esm/biz-components/CollectionsFilters/tabSwitch.d.ts +0 -9
  497. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/BenefitsTabs/index.d.ts +0 -5
  498. package/dist/esm/biz-components/MediaPlayerMulti/YouTubePlayer.d.ts +0 -3
  499. package/dist/esm/biz-components/SectionHeading/SectionHeading.d.ts +0 -4
  500. package/dist/esm/biz-components/SectionHeading/index.d.ts +0 -0
  501. package/dist/esm/biz-components/SectionHeading/types.d.ts +0 -6
  502. package/dist/esm/biz-components/Shelf/Shelf.d.ts +0 -8
  503. package/dist/esm/biz-components/Shelf/index.d.ts +0 -1
  504. package/dist/esm/biz-components/Shelf/types.d.ts +0 -6
  505. package/dist/esm/biz-components/ShelfDisplay/tab.d.ts +0 -7
  506. package/dist/esm/biz-components/TextMa/index.d.ts +0 -9
  507. package/dist/esm/campaign-ui/tailwind.config.d.ts +0 -62
  508. package/dist/esm/components/col.d.ts +0 -29
  509. package/dist/esm/components/dropdown.d.ts +0 -27
  510. package/dist/esm/components/inputnumber.d.ts +0 -0
  511. package/dist/esm/components/row.d.ts +0 -18
  512. package/dist/esm/helpers/get-subtree.d.ts +0 -12
  513. package/dist/esm/hooks/useMemberPrice.d.ts +0 -20
  514. package/dist/esm/packages/ui/src/components/avatar.d.ts +0 -26
  515. package/dist/esm/packages/ui/src/components/index.d.ts +0 -20
  516. package/dist/esm/packages/ui/src/index.d.ts +0 -1
  517. package/dist/esm/packages/ui/src/stories/avatar.stories.d.ts +0 -40
  518. package/dist/esm/packages/ui/src/stories/badge.stories.d.ts +0 -26
  519. package/dist/esm/packages/ui/src/stories/button.stories.d.ts +0 -48
  520. package/dist/esm/packages/ui/src/stories/checkbox.stories.d.ts +0 -46
  521. package/dist/esm/packages/ui/src/stories/container.stories.d.ts +0 -36
  522. package/dist/esm/packages/ui/src/stories/dialog.stories.d.ts +0 -20
  523. package/dist/esm/packages/ui/src/stories/grid.stories.d.ts +0 -42
  524. package/dist/esm/packages/ui/src/stories/heading.stories.d.ts +0 -82
  525. package/dist/esm/packages/ui/src/stories/input.stories.d.ts +0 -35
  526. package/dist/esm/packages/ui/src/stories/picture.stories.d.ts +0 -18
  527. package/dist/esm/packages/ui/src/stories/popover.stories.d.ts +0 -17
  528. package/dist/esm/packages/ui/src/stories/radio.stories.d.ts +0 -39
  529. package/dist/esm/packages/ui/src/stories/skeleton.stories.d.ts +0 -20
  530. package/dist/esm/packages/ui/src/stories/tabs.stories.d.ts +0 -373
  531. package/dist/esm/packages/ui/src/stories/text.stories.d.ts +0 -94
  532. package/dist/esm/src/components/index.d.ts +0 -21
  533. package/dist/esm/src/components/input-number.d.ts +0 -47
  534. package/dist/esm/src/index.d.ts +0 -1
  535. package/dist/esm/src/stories/avatar.stories.d.ts +0 -40
  536. package/dist/esm/src/stories/badge.stories.d.ts +0 -26
  537. package/dist/esm/src/stories/button.stories.d.ts +0 -48
  538. package/dist/esm/src/stories/checkbox.stories.d.ts +0 -46
  539. package/dist/esm/src/stories/container.stories.d.ts +0 -36
  540. package/dist/esm/src/stories/dialog.stories.d.ts +0 -20
  541. package/dist/esm/src/stories/grid.stories.d.ts +0 -42
  542. package/dist/esm/src/stories/heading.stories.d.ts +0 -82
  543. package/dist/esm/src/stories/input-number.stories.d.ts +0 -51
  544. package/dist/esm/src/stories/input.stories.d.ts +0 -35
  545. package/dist/esm/src/stories/picture.stories.d.ts +0 -18
  546. package/dist/esm/src/stories/popover.stories.d.ts +0 -17
  547. package/dist/esm/src/stories/radio.stories.d.ts +0 -39
  548. package/dist/esm/src/stories/skeleton.stories.d.ts +0 -20
  549. package/dist/esm/src/stories/text.stories.d.ts +0 -94
  550. package/dist/esm/stories/shelf.stories.d.ts +0 -17
  551. package/dist/esm/tailwind.config.d.ts +0 -253
  552. package/dist/esm/tsconfig.tsbuildinfo +0 -1
  553. package/dist/esm/ui/src/biz-components/CollectionsFilters/FilterCardWrapItem.d.ts +0 -5
  554. /package/dist/cjs/hooks/{useEXposure.d.ts → useExposure.d.ts} +0 -0
  555. /package/dist/esm/hooks/{useEXposure.d.ts → useExposure.d.ts} +0 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/biz-components/Listing/ProductProvider.tsx"],
4
+ "sourcesContent": ["import React, {\n createContext,\n useCallback,\n useContext,\n type Dispatch,\n type SetStateAction,\n type PropsWithChildren,\n useState,\n} from 'react'\nimport type {\n Product,\n ProductPrice,\n ProductVariant,\n VariantCoupon,\n Options,\n FreeGift,\n BundleListItem,\n Bundle,\n} from './types/product'\nimport type { CompareData } from './types.js'\n\nexport type SavingDetail = { coupon: number; bundle: number; member: number; freeGift: number; compare: number }\n\ntype variantWithFinalPrice = ProductVariant & { finalPrice?: ProductPrice }\nexport interface ProductContextType {\n isLogin?: boolean\n isMobile?: boolean\n isDesktop?: boolean\n product: Product\n variant: ProductVariant\n selectedVariants: Array<variantWithFinalPrice>\n renderRating?: React.ReactNode\n coupon?: VariantCoupon\n savingDetail: SavingDetail\n finalPrice: number\n comparePrice: number\n totalSavings: number\n selectedOptions: Options\n setSelectedOptions: Dispatch<SetStateAction<Options>>\n freeGift?: FreeGift\n checkedGift?: ProductVariant\n setCheckedGift?: Dispatch<SetStateAction<ProductVariant | undefined>>\n checkedBundle?: BundleListItem\n setCheckedBundle: Dispatch<SetStateAction<BundleListItem | undefined>>\n // productSummaryStatus: {\n // bundleSummary: boolean\n // giftSummary: boolean\n // }\n joinedRecommendBuyProducts: { bundle?: BundleListItem; gift?: ProductVariant }\n setJoinedRecommendBuyProducts?: Dispatch<SetStateAction<{ bundle?: BundleListItem; gift?: ProductVariant }>>\n // setProductSummaryStatus?: Dispatch<SetStateAction<{ bundleSummary: boolean; giftSummary: boolean }>>\n checkedCareBundle?: ProductVariant\n setCheckedCareBundle?: Dispatch<SetStateAction<ProductVariant | undefined>>\n bundle?: Bundle\n compareData?: CompareData['data']\n onAddToCart?: () => void\n onBuyNow?: () => void\n}\n\n// const initialState: ProductContextType = {\n// isLogin: false,\n// isMobile: false,\n// product: {} as Product,\n// variant: {} as ProductVariant,\n// savingDetail: { coupon: 0, bundle: 0, member: 0, freeGift: 0, compare: 0 },\n// finalPrice: 0,\n// comparePrice: 0,\n// totalSavings: 0,\n// renderRating: null,\n// selectedOptions: {} as Options,\n// setSelectedOptions: () => {},\n// checkedBundle: undefined,\n// checkedGift: undefined,\n// setCheckedBundle: () => {},\n// setCheckedGift: () => {},\n// checkedCareBundle: undefined,\n// setCheckedCareBundle: () => {},\n// }\n\nexport const ProductContext = createContext<ProductContextType>({} as ProductContextType)\n\nexport const useProductContext = () => {\n const context = useContext(ProductContext)\n if (!context) {\n throw new Error('useProductContext must be used in <ProductProvider>')\n }\n return useContext(ProductContext)\n}\n\nconst ProductProvider = ({\n product,\n isLogin,\n isMobile,\n isDesktop,\n children,\n renderRating,\n freeGift,\n bundle,\n checkedBundle,\n checkedGift,\n setCheckedBundle,\n setCheckedGift,\n variant,\n selectedOptions,\n setSelectedOptions,\n compareData,\n coupon,\n finalPrice,\n comparePrice,\n totalSavings,\n savingDetail,\n selectedVariants,\n onAddToCart,\n onBuyNow,\n}: PropsWithChildren<Omit<ProductContextType, 'joinedRecommendBuyProducts' | 'setJoinedRecommendBuyProducts'>>) => {\n const [joinedRecommendBuyProducts, setJoinedRecommendBuyProducts] = useState<{ bundle?: BundleListItem; gift?: ProductVariant }>({\n bundle: undefined,\n gift: undefined,\n })\n return (\n <ProductContext.Provider\n value={{\n product,\n variant,\n isMobile,\n isDesktop,\n isLogin,\n coupon,\n renderRating,\n finalPrice,\n comparePrice,\n savingDetail,\n totalSavings,\n selectedOptions,\n setSelectedOptions,\n freeGift,\n checkedGift,\n setCheckedGift,\n checkedBundle,\n setCheckedBundle,\n bundle,\n compareData,\n selectedVariants,\n onAddToCart,\n onBuyNow,\n joinedRecommendBuyProducts,\n setJoinedRecommendBuyProducts,\n }}\n >\n {children}\n </ProductContext.Provider>\n )\n}\n\nexport default ProductProvider\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,oBAAAE,EAAA,YAAAC,EAAA,sBAAAC,IAAA,eAAAC,EAAAL,GAwHI,IAAAM,EAAA,6BAxHJC,EAQO,iBAuEA,MAAML,KAAiB,iBAAkC,CAAC,CAAuB,EAE3EE,EAAoB,IAAM,CAErC,GAAI,IADY,cAAWF,CAAc,EAEvC,MAAM,IAAI,MAAM,qDAAqD,EAEvE,SAAO,cAAWA,CAAc,CAClC,EAEMM,EAAkB,CAAC,CACvB,QAAAC,EACA,QAAAC,EACA,SAAAC,EACA,UAAAC,EACA,SAAAC,EACA,aAAAC,EACA,SAAAC,EACA,OAAAC,EACA,cAAAC,EACA,YAAAC,EACA,iBAAAC,EACA,eAAAC,EACA,QAAAC,EACA,gBAAAC,EACA,mBAAAC,EACA,YAAAC,EACA,OAAAC,EACA,WAAAC,EACA,aAAAC,EACA,aAAAC,EACA,aAAAC,EACA,iBAAAC,EACA,YAAAC,EACA,SAAAC,CACF,IAAmH,CACjH,KAAM,CAACC,EAA4BC,CAA6B,KAAI,YAA6D,CAC/H,OAAQ,OACR,KAAM,MACR,CAAC,EACD,SACE,OAAChC,EAAe,SAAf,CACC,MAAO,CACL,QAAAO,EACA,QAAAY,EACA,SAAAV,EACA,UAAAC,EACA,QAAAF,EACA,OAAAe,EACA,aAAAX,EACA,WAAAY,EACA,aAAAC,EACA,aAAAE,EACA,aAAAD,EACA,gBAAAN,EACA,mBAAAC,EACA,SAAAR,EACA,YAAAG,EACA,eAAAE,EACA,cAAAH,EACA,iBAAAE,EACA,OAAAH,EACA,YAAAQ,EACA,iBAAAM,EACA,YAAAC,EACA,SAAAC,EACA,2BAAAC,EACA,8BAAAC,CACF,EAEC,SAAArB,EACH,CAEJ,EAEA,IAAOV,EAAQK",
6
+ "names": ["ProductProvider_exports", "__export", "ProductContext", "ProductProvider_default", "useProductContext", "__toCommonJS", "import_jsx_runtime", "import_react", "ProductProvider", "product", "isLogin", "isMobile", "isDesktop", "children", "renderRating", "freeGift", "bundle", "checkedBundle", "checkedGift", "setCheckedBundle", "setCheckedGift", "variant", "selectedOptions", "setSelectedOptions", "compareData", "coupon", "finalPrice", "comparePrice", "totalSavings", "savingDetail", "selectedVariants", "onAddToCart", "onBuyNow", "joinedRecommendBuyProducts", "setJoinedRecommendBuyProducts"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var f=Object.defineProperty;var v=Object.getOwnPropertyDescriptor;var x=Object.getOwnPropertyNames;var L=Object.prototype.hasOwnProperty;var C=(e,t)=>{for(var n in t)f(e,n,{get:t[n],enumerable:!0})},P=(e,t,n,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of x(t))!L.call(e,i)&&i!==n&&f(e,i,{get:()=>t[i],enumerable:!(a=v(t,i))||a.enumerable});return e};var h=e=>P(f({},"__esModule",{value:!0}),e);var E={};C(E,{default:()=>y});module.exports=h(E);var s=require("react/jsx-runtime"),u=require("../../../../../../components/index.js"),c=require("react"),o=require("../../../../../../helpers/index.js"),r=require("@radix-ui/react-tabs");const g=(0,c.createContext)(void 0),N=()=>{const e=(0,c.useContext)(g);if(!e)throw new Error("ProductBenefitsTabs components must be used within ProductBenefitsTabs");return e},l=({defaultValue:e,value:t,onValueChange:n,children:a,className:i,...d})=>{const[B,m]=(0,c.useState)(e),T=t??B,b=p=>{t===void 0&&m(p),n?.(p)};return(0,s.jsx)(g.Provider,{value:{activeValue:T,setActiveValue:b},children:(0,s.jsx)("div",{id:"ipc-product-detail-benefits-tabs",className:(0,o.cn)("bg-[#EAEAEC] rounded-xl py-4",i),...d,children:(0,s.jsx)(r.Root,{value:T,onValueChange:b,children:a})})})},w=({children:e,className:t,...n})=>(0,s.jsx)(r.List,{className:(0,o.cn)("flex space-x-6 overflow-x-auto px-4",t),style:{scrollbarWidth:"none",msOverflowStyle:"none"},...n,children:e}),A=({value:e,children:t,className:n,...a})=>{const{activeValue:i}=N(),d=i===e;return(0,s.jsxs)(r.Trigger,{value:e,className:(0,o.cn)("text-base whitespace-nowrap relative leading-[1.4] font-bold pb-4 text-[#6D6D6F]",n),...a,children:[(0,s.jsx)(u.Text,{className:(0,o.cn)("absolute bottom-0 z-10 left-0 h-[2px] w-0 bg-info-primary transition-all duration-300",d&&"w-full")}),t]})},H=({children:e,className:t,...n})=>(0,s.jsx)(u.Text,{size:1,className:(0,o.cn)("font-bold ml-1 !whitespace-nowrap rounded-full px-2 py-1 text-white bg-[#FF5900]",t),...n,children:e}),M=({value:e,children:t,className:n,...a})=>(0,s.jsx)(r.Content,{value:e,className:(0,o.cn)("mt-4",n),...a,children:t});l.displayName="ProductBenefitsTabs",l.List=w,l.Trigger=A,l.Badge=H,l.Content=M;var y=l;
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../../../src/biz-components/Listing/components/ProductCard/ProductDetail/ProductBenefitsTabs/index.tsx"],
4
+ "sourcesContent": ["import { Text } from '../../../../../../components/index.js'\nimport { createContext, useContext, useState, type ReactNode, type HTMLAttributes } from 'react'\nimport { cn } from '../../../../../../helpers/index.js'\nimport { Content, List, Root, Trigger } from '@radix-ui/react-tabs'\n\n\n// Context for sharing state between components\ninterface BenefitsTabsContextType {\n activeValue: string | undefined\n setActiveValue: (value: string) => void\n}\n\nconst BenefitsTabsContext = createContext<BenefitsTabsContextType | undefined>(undefined)\n\nconst useBenefitsTabsContext = () => {\n const context = useContext(BenefitsTabsContext)\n if (!context) {\n throw new Error('ProductBenefitsTabs components must be used within ProductBenefitsTabs')\n }\n return context\n}\n\n// Main container component\ninterface BenefitsTabsProps extends HTMLAttributes<HTMLDivElement> {\n defaultValue?: string\n value?: string\n onValueChange?: (value: string) => void\n children: ReactNode\n}\n\nconst ProductBenefitsTabs = ({ \n defaultValue, \n value, \n onValueChange, \n children, \n className,\n ...props \n}: BenefitsTabsProps) => {\n const [internalValue, setInternalValue] = useState(defaultValue)\n \n const activeValue = value ?? internalValue\n const setActiveValue = (newValue: string) => {\n if (value === undefined) {\n setInternalValue(newValue)\n }\n onValueChange?.(newValue)\n }\n\n return (\n <BenefitsTabsContext.Provider value={{ activeValue, setActiveValue }}>\n <div \n id=\"ipc-product-detail-benefits-tabs\" \n className={cn(\"bg-[#EAEAEC] rounded-xl py-4\", className)}\n {...props}\n >\n <Root value={activeValue} onValueChange={setActiveValue}>\n {children}\n </Root>\n </div>\n </BenefitsTabsContext.Provider>\n )\n}\n\n// List component for triggers\ninterface BenefitsTabsListProps extends HTMLAttributes<HTMLDivElement> {\n children: ReactNode\n}\n\nconst BenefitsTabsList = ({ children, className, ...props }: BenefitsTabsListProps) => {\n return (\n <List\n className={cn(\"flex space-x-6 overflow-x-auto px-4\", className)}\n style={{\n scrollbarWidth: 'none',\n msOverflowStyle: 'none',\n }}\n {...props}\n >\n {children}\n </List>\n )\n}\n\n// Trigger component\ninterface BenefitsTabsTriggerProps extends HTMLAttributes<HTMLButtonElement> {\n value: string\n children: ReactNode\n}\n\nconst BenefitsTabsTrigger = ({ value, children, className, ...props }: BenefitsTabsTriggerProps) => {\n const { activeValue } = useBenefitsTabsContext()\n const isActive = activeValue === value\n\n return (\n <Trigger\n value={value}\n className={cn(\n 'text-base whitespace-nowrap relative leading-[1.4] font-bold pb-4 text-[#6D6D6F]',\n className\n )}\n {...props}\n >\n <Text\n className={cn(\n 'absolute bottom-0 z-10 left-0 h-[2px] w-0 bg-info-primary transition-all duration-300',\n isActive && 'w-full'\n )}\n />\n {children}\n </Trigger>\n )\n}\n\n// Badge component for trigger\ninterface BenefitsTabsBadgeProps extends HTMLAttributes<HTMLSpanElement> {\n children: ReactNode\n}\n\nconst BenefitsTabsBadge = ({ children, className, ...props }: BenefitsTabsBadgeProps) => {\n return (\n <Text\n size={1}\n className={cn(\n \"font-bold ml-1 !whitespace-nowrap rounded-full px-2 py-1 text-white bg-[#FF5900]\",\n className\n )}\n {...props}\n >\n {children}\n </Text>\n )\n}\n\n// Content component\ninterface BenefitsTabsContentProps extends HTMLAttributes<HTMLDivElement> {\n value: string\n children: ReactNode\n}\n\nconst BenefitsTabsContent = ({ value, children, className, ...props }: BenefitsTabsContentProps) => {\n return (\n <Content \n value={value} \n className={cn(\"mt-4\", className)}\n {...props}\n >\n {children}\n </Content>\n )\n}\n\n\nProductBenefitsTabs.displayName = 'ProductBenefitsTabs'\n\n// Attach sub-components to main component\nProductBenefitsTabs.List = BenefitsTabsList\nProductBenefitsTabs.Trigger = BenefitsTabsTrigger\nProductBenefitsTabs.Badge = BenefitsTabsBadge\nProductBenefitsTabs.Content = BenefitsTabsContent\n\nexport default ProductBenefitsTabs\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,IAAA,eAAAC,EAAAH,GAuDQ,IAAAI,EAAA,6BAvDRC,EAAqB,iDACrBC,EAAyF,iBACzFC,EAAmB,8CACnBC,EAA6C,gCAS7C,MAAMC,KAAsB,iBAAmD,MAAS,EAElFC,EAAyB,IAAM,CACnC,MAAMC,KAAU,cAAWF,CAAmB,EAC9C,GAAI,CAACE,EACH,MAAM,IAAI,MAAM,wEAAwE,EAE1F,OAAOA,CACT,EAUMC,EAAsB,CAAC,CAC3B,aAAAC,EACA,MAAAC,EACA,cAAAC,EACA,SAAAC,EACA,UAAAC,EACA,GAAGC,CACL,IAAyB,CACvB,KAAM,CAACC,EAAeC,CAAgB,KAAI,YAASP,CAAY,EAEzDQ,EAAcP,GAASK,EACvBG,EAAkBC,GAAqB,CACvCT,IAAU,QACZM,EAAiBG,CAAQ,EAE3BR,IAAgBQ,CAAQ,CAC1B,EAEA,SACE,OAACd,EAAoB,SAApB,CAA6B,MAAO,CAAE,YAAAY,EAAa,eAAAC,CAAe,EACjE,mBAAC,OACC,GAAG,mCACH,aAAW,MAAG,+BAAgCL,CAAS,EACtD,GAAGC,EAEJ,mBAAC,QAAK,MAAOG,EAAa,cAAeC,EACtC,SAAAN,EACH,EACF,EACF,CAEJ,EAOMQ,EAAmB,CAAC,CAAE,SAAAR,EAAU,UAAAC,EAAW,GAAGC,CAAM,OAEtD,OAAC,QACC,aAAW,MAAG,sCAAuCD,CAAS,EAC9D,MAAO,CACL,eAAgB,OAChB,gBAAiB,MACnB,EACC,GAAGC,EAEH,SAAAF,EACH,EAUES,EAAsB,CAAC,CAAE,MAAAX,EAAO,SAAAE,EAAU,UAAAC,EAAW,GAAGC,CAAM,IAAgC,CAClG,KAAM,CAAE,YAAAG,CAAY,EAAIX,EAAuB,EACzCgB,EAAWL,IAAgBP,EAEjC,SACE,QAAC,WACC,MAAOA,EACP,aAAW,MACT,mFACAG,CACF,EACC,GAAGC,EAEJ,oBAAC,QACC,aAAW,MACT,wFACAQ,GAAY,QACd,EACF,EACCV,GACH,CAEJ,EAOMW,EAAoB,CAAC,CAAE,SAAAX,EAAU,UAAAC,EAAW,GAAGC,CAAM,OAEvD,OAAC,QACC,KAAM,EACN,aAAW,MACT,mFACAD,CACF,EACC,GAAGC,EAEH,SAAAF,EACH,EAUEY,EAAsB,CAAC,CAAE,MAAAd,EAAO,SAAAE,EAAU,UAAAC,EAAW,GAAGC,CAAM,OAEhE,OAAC,WACC,MAAOJ,EACP,aAAW,MAAG,OAAQG,CAAS,EAC9B,GAAGC,EAEH,SAAAF,EACH,EAKJJ,EAAoB,YAAc,sBAGlCA,EAAoB,KAAOY,EAC3BZ,EAAoB,QAAUa,EAC9Bb,EAAoB,MAAQe,EAC5Bf,EAAoB,QAAUgB,EAE9B,IAAO1B,EAAQU",
6
+ "names": ["ProductBenefitsTabs_exports", "__export", "ProductBenefitsTabs_default", "__toCommonJS", "import_jsx_runtime", "import_components", "import_react", "import_helpers", "import_react_tabs", "BenefitsTabsContext", "useBenefitsTabsContext", "context", "ProductBenefitsTabs", "defaultValue", "value", "onValueChange", "children", "className", "props", "internalValue", "setInternalValue", "activeValue", "setActiveValue", "newValue", "BenefitsTabsList", "BenefitsTabsTrigger", "isActive", "BenefitsTabsBadge", "BenefitsTabsContent"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var n=Object.defineProperty;var B=Object.getOwnPropertyDescriptor;var b=Object.getOwnPropertyNames;var P=Object.prototype.hasOwnProperty;var L=(r,i)=>{for(var l in i)n(r,l,{get:i[l],enumerable:!0})},z=(r,i,l,d)=>{if(i&&typeof i=="object"||typeof i=="function")for(let a of b(i))!P.call(r,a)&&a!==l&&n(r,a,{get:()=>i[a],enumerable:!(d=B(i,a))||d.enumerable});return r};var w=r=>z(n({},"__esModule",{value:!0}),r);var j={};L(j,{default:()=>F});module.exports=w(j);var t=require("react/jsx-runtime"),s=require("../../../../../../components"),x=require("../../../../../../helpers/index.js"),v=require("../../../../../AiuiProvider"),h=require("../../../../ProductProvider"),p=require("../../../../utils");const E=()=>{const{locale:r="us"}=(0,v.useAiuiContext)(),{variant:i,bundle:l,checkedBundle:d,setCheckedBundle:a,setCheckedGift:k,setJoinedRecommendBuyProducts:m,joinedRecommendBuyProducts:u}=(0,h.useProductContext)(),{title:y,bundleList:g,showAtListing:C}=l||{},f=g?.filter(e=>e.variants.slice(1,e.variants.length).every(c=>c.variant.availableForSale));if(!f?.length&&C)return null;const N=e=>{d?.id===e.id?(a?.(void 0),m?.({...u,bundle:void 0})):(k?.(void 0),a?.(e),m?.({...u,bundle:e}))};return(0,t.jsxs)("div",{className:"ipc-product-detail-bundle",children:[(0,t.jsx)(s.Text,{size:3,className:"font-bold",html:y}),f?.map(e=>{const c=e.variants.filter(o=>o.variant.sku!==i.sku);return(0,t.jsx)("div",{className:"flex flex-col gap-4 mt-3 desktop:mt-4",children:(0,t.jsxs)("div",{className:(0,x.cn)("flex items-center gap-2 text-left font-bold px-4 py-6 rounded-2xl border-[#E4E5E6] border",{"border-brand outline outline-1 outline-brand":d?.id===e.id}),children:[(0,t.jsx)(s.Checkbox,{onCheckedChange:()=>N(e),size:"lg",id:e.id,value:e.id,checked:d?.id===e.id}),(0,t.jsx)("label",{htmlFor:e.id,className:"size-full cursor-pointer",children:c?.map(o=>(0,t.jsxs)("div",{className:"flex justify-between items-center gap-6 ",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(s.Picture,{source:o?.variant?.image?.url,className:"size-12 flex-shrink-0"}),(0,t.jsx)(s.Text,{className:"text-sm laptop:text-[16px] laptop:text-[20px] desktop:text-[18px] font-bold",html:o.variant.product.title})]}),(0,t.jsxs)("div",{className:"flex items-center justify-end gap-1 laptop:flex-row flex-col shrink-0",children:[(0,t.jsx)(s.Text,{className:"text-base laptop:text-[20px] desktop:text-2xl font-bold",html:(0,p.formatPrice)({amount:o.price,locale:r,currencyCode:o.variant.price.currencyCode})}),o.price<o.variant.price.amount&&(0,t.jsx)(s.Text,{className:"text-base laptop:text-[20px] desktop:text-2xl font-bold line-through text-[#6D6D6F]",html:(0,p.formatPrice)({amount:o.variant.price.amount,locale:r,currencyCode:o.variant.price.currencyCode})})]})]},o.variant.id))})]})},e.id)})]})};var F=E;
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../../../src/biz-components/Listing/components/ProductCard/ProductDetail/ProductBundle/index.tsx"],
4
+ "sourcesContent": ["import { Text, Picture, Button, Checkbox } from '../../../../../../components'\nimport { cn } from '../../../../../../helpers/index.js'\nimport { useAiuiContext } from '../../../../../AiuiProvider'\nimport { useProductContext } from '../../../../ProductProvider'\nimport { formatPrice } from '../../../../utils'\nimport type { BundleListItem } from '../../../../types/product'\n\nconst ProductBundle = () => {\n const { locale = 'us' } = useAiuiContext()\n const {\n variant,\n bundle,\n checkedBundle,\n setCheckedBundle,\n setCheckedGift,\n setJoinedRecommendBuyProducts,\n joinedRecommendBuyProducts,\n } = useProductContext()\n\n const { title, bundleList, showAtListing } = bundle || {}\n\n const availableBundleList = bundleList?.filter(bundle =>\n bundle.variants.slice(1, bundle.variants.length).every(v => v.variant.availableForSale)\n )\n\n if (!availableBundleList?.length && showAtListing) return null\n\n const handleSelectedChange = (bundleItem: BundleListItem) => {\n if (checkedBundle?.id === bundleItem.id) {\n setCheckedBundle?.(undefined)\n setJoinedRecommendBuyProducts?.({ ...joinedRecommendBuyProducts, bundle: undefined })\n } else {\n setCheckedGift?.(undefined)\n setCheckedBundle?.(bundleItem)\n setJoinedRecommendBuyProducts?.({ ...joinedRecommendBuyProducts, bundle: bundleItem })\n }\n }\n\n return (\n <div className=\"ipc-product-detail-bundle\">\n <Text size={3} className=\"font-bold\" html={title} />\n {availableBundleList?.map(bundle => {\n const bundleVariants = bundle.variants.filter(v => v.variant.sku !== variant.sku)\n return (\n <div key={bundle.id} className=\"flex flex-col gap-4 mt-3 desktop:mt-4\">\n <div\n className={cn(\n 'flex items-center gap-2 text-left font-bold px-4 py-6 rounded-2xl border-[#E4E5E6] border',\n {\n ['border-brand outline outline-1 outline-brand']: checkedBundle?.id === bundle.id,\n }\n )}\n >\n <Checkbox\n onCheckedChange={() => handleSelectedChange(bundle)}\n size=\"lg\"\n id={bundle.id}\n value={bundle.id}\n checked={checkedBundle?.id === bundle.id}\n />\n <label htmlFor={bundle.id} className=\"size-full cursor-pointer\">\n {bundleVariants?.map(bundleVariant => {\n return (\n <div className=\"flex justify-between items-center gap-6 \" key={bundleVariant.variant.id}>\n <div className=\"flex items-center gap-2\">\n <Picture source={bundleVariant?.variant?.image?.url} className=\"size-12 flex-shrink-0\" />\n <Text\n className=\"text-sm laptop:text-[16px] laptop:text-[20px] desktop:text-[18px] font-bold\"\n html={bundleVariant.variant.product.title}\n />\n </div>\n <div className=\"flex items-center justify-end gap-1 laptop:flex-row flex-col shrink-0\">\n <Text\n className=\"text-base laptop:text-[20px] desktop:text-2xl font-bold\"\n html={formatPrice({\n amount: bundleVariant.price,\n locale,\n currencyCode: bundleVariant.variant.price.currencyCode,\n })}\n />\n {bundleVariant.price < bundleVariant.variant.price.amount && (\n <Text\n className=\"text-base laptop:text-[20px] desktop:text-2xl font-bold line-through text-[#6D6D6F]\"\n html={formatPrice({\n amount: bundleVariant.variant.price.amount,\n locale,\n currencyCode: bundleVariant.variant.price.currencyCode,\n })}\n />\n )}\n </div>\n </div>\n )\n })}\n </label>\n </div>\n </div>\n )\n })}\n </div>\n )\n}\n\nexport default ProductBundle\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,IAAA,eAAAC,EAAAH,GAwCM,IAAAI,EAAA,6BAxCNC,EAAgD,wCAChDC,EAAmB,8CACnBC,EAA+B,uCAC/BC,EAAkC,uCAClCC,EAA4B,6BAG5B,MAAMC,EAAgB,IAAM,CAC1B,KAAM,CAAE,OAAAC,EAAS,IAAK,KAAI,kBAAe,EACnC,CACJ,QAAAC,EACA,OAAAC,EACA,cAAAC,EACA,iBAAAC,EACA,eAAAC,EACA,8BAAAC,EACA,2BAAAC,CACF,KAAI,qBAAkB,EAEhB,CAAE,MAAAC,EAAO,WAAAC,EAAY,cAAAC,CAAc,EAAIR,GAAU,CAAC,EAElDS,EAAsBF,GAAY,OAAOP,GAC7CA,EAAO,SAAS,MAAM,EAAGA,EAAO,SAAS,MAAM,EAAE,MAAMU,GAAKA,EAAE,QAAQ,gBAAgB,CACxF,EAEA,GAAI,CAACD,GAAqB,QAAUD,EAAe,OAAO,KAE1D,MAAMG,EAAwBC,GAA+B,CACvDX,GAAe,KAAOW,EAAW,IACnCV,IAAmB,MAAS,EAC5BE,IAAgC,CAAE,GAAGC,EAA4B,OAAQ,MAAU,CAAC,IAEpFF,IAAiB,MAAS,EAC1BD,IAAmBU,CAAU,EAC7BR,IAAgC,CAAE,GAAGC,EAA4B,OAAQO,CAAW,CAAC,EAEzF,EAEA,SACE,QAAC,OAAI,UAAU,4BACb,oBAAC,QAAK,KAAM,EAAG,UAAU,YAAY,KAAMN,EAAO,EACjDG,GAAqB,IAAIT,GAAU,CAClC,MAAMa,EAAiBb,EAAO,SAAS,OAAOU,GAAKA,EAAE,QAAQ,MAAQX,EAAQ,GAAG,EAChF,SACE,OAAC,OAAoB,UAAU,wCAC7B,oBAAC,OACC,aAAW,MACT,4FACA,CACG,+CAAiDE,GAAe,KAAOD,EAAO,EACjF,CACF,EAEA,oBAAC,YACC,gBAAiB,IAAMW,EAAqBX,CAAM,EAClD,KAAK,KACL,GAAIA,EAAO,GACX,MAAOA,EAAO,GACd,QAASC,GAAe,KAAOD,EAAO,GACxC,KACA,OAAC,SAAM,QAASA,EAAO,GAAI,UAAU,2BAClC,SAAAa,GAAgB,IAAIC,MAEjB,QAAC,OAAI,UAAU,2CACb,qBAAC,OAAI,UAAU,0BACb,oBAAC,WAAQ,OAAQA,GAAe,SAAS,OAAO,IAAK,UAAU,wBAAwB,KACvF,OAAC,QACC,UAAU,8EACV,KAAMA,EAAc,QAAQ,QAAQ,MACtC,GACF,KACA,QAAC,OAAI,UAAU,yEACb,oBAAC,QACC,UAAU,0DACV,QAAM,eAAY,CAChB,OAAQA,EAAc,MACtB,OAAAhB,EACA,aAAcgB,EAAc,QAAQ,MAAM,YAC5C,CAAC,EACH,EACCA,EAAc,MAAQA,EAAc,QAAQ,MAAM,WACjD,OAAC,QACC,UAAU,sFACV,QAAM,eAAY,CAChB,OAAQA,EAAc,QAAQ,MAAM,OACpC,OAAAhB,EACA,aAAcgB,EAAc,QAAQ,MAAM,YAC5C,CAAC,EACH,GAEJ,IA3B6DA,EAAc,QAAQ,EA4BrF,CAEH,EACH,GACF,GAnDQd,EAAO,EAoDjB,CAEJ,CAAC,GACH,CAEJ,EAEA,IAAOX,EAAQQ",
6
+ "names": ["ProductBundle_exports", "__export", "ProductBundle_default", "__toCommonJS", "import_jsx_runtime", "import_components", "import_helpers", "import_AiuiProvider", "import_ProductProvider", "import_utils", "ProductBundle", "locale", "variant", "bundle", "checkedBundle", "setCheckedBundle", "setCheckedGift", "setJoinedRecommendBuyProducts", "joinedRecommendBuyProducts", "title", "bundleList", "showAtListing", "availableBundleList", "v", "handleSelectedChange", "bundleItem", "bundleVariants", "bundleVariant"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var s=Object.defineProperty;var N=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var P=Object.prototype.hasOwnProperty;var G=(l,o)=>{for(var i in o)s(l,i,{get:o[i],enumerable:!0})},g=(l,o,i,a)=>{if(o&&typeof o=="object"||typeof o=="function")for(let r of y(o))!P.call(l,r)&&r!==i&&s(l,r,{get:()=>o[r],enumerable:!(a=N(o,r))||a.enumerable});return l};var B=l=>g(s({},"__esModule",{value:!0}),l);var z={};G(z,{default:()=>w});module.exports=B(z);var t=require("react/jsx-runtime"),d=require("../../../../../../components"),u=require("../../../../../../helpers/index.js"),f=require("react"),x=require("../../../../ProductProvider"),b=require("../../../../utils"),h=require("../../../../../AiuiProvider");const R=()=>{const{locale:l="us"}=(0,h.useAiuiContext)(),{freeGift:o,checkedGift:i,setCheckedGift:a,setCheckedBundle:r,setJoinedRecommendBuyProducts:c,joinedRecommendBuyProducts:n}=(0,x.useProductContext)(),{title:k,giftList:m=[],freeLabel:C}=o||{},p=(0,f.useMemo)(()=>m?.filter(e=>e.availableForSale),[m]),v=e=>{i?.id===e.id?(a?.(void 0),c?.({...n,gift:void 0})):(r?.(void 0),a?.(e),c?.({...n,gift:e}))};return p?.length?(0,t.jsxs)("div",{className:"ipc-product-detail-free-gift",children:[(0,t.jsx)(d.Text,{size:3,className:"font-bold",html:k}),(0,t.jsx)("div",{className:"mt-3 flex flex-col gap-4 desktop:mt-4",children:p.map(e=>(0,t.jsxs)("div",{className:(0,u.cn)("flex items-center gap-2 text-left font-bold px-4 py-6 rounded-2xl border-[#E4E5E6] border-2",{"border-brand":i?.id===e.id}),children:[(0,t.jsx)(d.Checkbox,{onCheckedChange:()=>v(e),size:"lg",id:e.id,checked:i?.id===e.id,value:e.id}),(0,t.jsxs)("label",{htmlFor:e.id,className:"flex justify-between items-center gap-4 laptop:gap-0 w-full",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(d.Picture,{source:e.image?.url,className:"size-12 flex-shrink-0"}),(0,t.jsx)(d.Text,{className:"text-sm laptop:text-[16px] desktop:text-[18px] font-bold",html:e.product.title})]}),(0,t.jsxs)("div",{className:"flex items-center gap-1 tablet:flex-row flex-col shrink-0",children:[(0,t.jsx)(d.Text,{className:"text-base laptop:text-[20px] desktop:text-2xl font-bold",html:C}),(0,t.jsx)(d.Text,{className:"text-base laptop:text-[20px] desktop:text-2xl font-bold line-through",html:(0,b.formatPrice)({amount:e.price.amount,locale:l,currencyCode:e.price.currencyCode})})]})]})]},e.id))})]}):null};var w=R;
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../../../src/biz-components/Listing/components/ProductCard/ProductDetail/ProductFreeGift/index.tsx"],
4
+ "sourcesContent": ["import { Text, Picture, Button, RadioGroup, RadioGroupItem, Checkbox } from '../../../../../../components'\nimport { cn } from '../../../../../../helpers/index.js'\nimport { useMemo } from 'react'\nimport { useProductContext } from '../../../../ProductProvider'\nimport { formatPrice } from '../../../../utils'\nimport { useAiuiContext } from '../../../../../AiuiProvider'\nimport type { ProductVariant } from '../../../../types/product'\n\nconst ProductFreeGift = () => {\n const { locale = 'us' } = useAiuiContext()\n const { freeGift, checkedGift, setCheckedGift, setCheckedBundle, setJoinedRecommendBuyProducts, joinedRecommendBuyProducts } = useProductContext()\n const { title, giftList = [], freeLabel } = freeGift || {}\n const availableGifts = useMemo(() => giftList?.filter(item => item.availableForSale), [giftList])\n\n const handleCheckboxClick = (value: ProductVariant) => {\n if (checkedGift?.id === value.id) {\n setCheckedGift?.(undefined)\n setJoinedRecommendBuyProducts?.({ ...joinedRecommendBuyProducts, gift: undefined })\n } else {\n setCheckedBundle?.(undefined)\n setCheckedGift?.(value)\n setJoinedRecommendBuyProducts?.({ ...joinedRecommendBuyProducts, gift: value })\n }\n }\n\n if (!availableGifts?.length) return null\n\n return (\n <div className=\"ipc-product-detail-free-gift\">\n <Text size={3} className=\"font-bold\" html={title} />\n <div className=\"mt-3 flex flex-col gap-4 desktop:mt-4\">\n {availableGifts.map(gift => (\n <div\n key={gift.id}\n className={cn(\n 'flex items-center gap-2 text-left font-bold px-4 py-6 rounded-2xl border-[#E4E5E6] border-2',\n {\n ['border-brand']: checkedGift?.id === gift.id,\n }\n )}\n >\n <Checkbox\n onCheckedChange={() => handleCheckboxClick(gift)}\n size=\"lg\"\n id={gift.id}\n checked={checkedGift?.id === gift.id}\n value={gift.id}\n ></Checkbox>\n <label htmlFor={gift.id} className=\"flex justify-between items-center gap-4 laptop:gap-0 w-full\">\n <div className=\"flex items-center gap-2\">\n <Picture source={gift.image?.url} className=\"size-12 flex-shrink-0\" />\n <Text className=\"text-sm laptop:text-[16px] desktop:text-[18px] font-bold\" html={gift.product.title} />\n </div>\n <div className=\"flex items-center gap-1 tablet:flex-row flex-col shrink-0\">\n <Text className=\"text-base laptop:text-[20px] desktop:text-2xl font-bold\" html={freeLabel} />\n <Text\n className=\"text-base laptop:text-[20px] desktop:text-2xl font-bold line-through\"\n html={formatPrice({\n amount: gift.price.amount,\n locale,\n currencyCode: gift.price.currencyCode,\n })}\n />\n </div>\n </label>\n </div>\n ))}\n </div>\n </div>\n )\n}\n\nexport default ProductFreeGift\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,IAAA,eAAAC,EAAAH,GA6BM,IAAAI,EAAA,6BA7BNC,EAA4E,wCAC5EC,EAAmB,8CACnBC,EAAwB,iBACxBC,EAAkC,uCAClCC,EAA4B,6BAC5BC,EAA+B,uCAG/B,MAAMC,EAAkB,IAAM,CAC5B,KAAM,CAAE,OAAAC,EAAS,IAAK,KAAI,kBAAe,EACnC,CAAE,SAAAC,EAAU,YAAAC,EAAa,eAAAC,EAAgB,iBAAAC,EAAkB,8BAAAC,EAA+B,2BAAAC,CAA2B,KAAI,qBAAkB,EAC3I,CAAE,MAAAC,EAAO,SAAAC,EAAW,CAAC,EAAG,UAAAC,CAAU,EAAIR,GAAY,CAAC,EACnDS,KAAiB,WAAQ,IAAMF,GAAU,OAAOG,GAAQA,EAAK,gBAAgB,EAAG,CAACH,CAAQ,CAAC,EAE1FI,EAAuBC,GAA0B,CACjDX,GAAa,KAAOW,EAAM,IAC5BV,IAAiB,MAAS,EAC1BE,IAAgC,CAAE,GAAGC,EAA4B,KAAM,MAAU,CAAC,IAElFF,IAAmB,MAAS,EAC5BD,IAAiBU,CAAK,EACtBR,IAAgC,CAAE,GAAGC,EAA4B,KAAMO,CAAM,CAAC,EAElF,EAEA,OAAKH,GAAgB,UAGnB,QAAC,OAAI,UAAU,+BACb,oBAAC,QAAK,KAAM,EAAG,UAAU,YAAY,KAAMH,EAAO,KAClD,OAAC,OAAI,UAAU,wCACZ,SAAAG,EAAe,IAAII,MAClB,QAAC,OAEC,aAAW,MACT,8FACA,CACG,eAAiBZ,GAAa,KAAOY,EAAK,EAC7C,CACF,EAEA,oBAAC,YACC,gBAAiB,IAAMF,EAAoBE,CAAI,EAC/C,KAAK,KACL,GAAIA,EAAK,GACT,QAASZ,GAAa,KAAOY,EAAK,GAClC,MAAOA,EAAK,GACb,KACD,QAAC,SAAM,QAASA,EAAK,GAAI,UAAU,8DACjC,qBAAC,OAAI,UAAU,0BACb,oBAAC,WAAQ,OAAQA,EAAK,OAAO,IAAK,UAAU,wBAAwB,KACpE,OAAC,QAAK,UAAU,2DAA2D,KAAMA,EAAK,QAAQ,MAAO,GACvG,KACA,QAAC,OAAI,UAAU,4DACb,oBAAC,QAAK,UAAU,0DAA0D,KAAML,EAAW,KAC3F,OAAC,QACC,UAAU,uEACV,QAAM,eAAY,CAChB,OAAQK,EAAK,MAAM,OACnB,OAAAd,EACA,aAAcc,EAAK,MAAM,YAC3B,CAAC,EACH,GACF,GACF,IA/BKA,EAAK,EAgCZ,CACD,EACH,GACF,EA3CkC,IA6CtC,EAEA,IAAOxB,EAAQS",
6
+ "names": ["ProductFreeGift_exports", "__export", "ProductFreeGift_default", "__toCommonJS", "import_jsx_runtime", "import_components", "import_helpers", "import_react", "import_ProductProvider", "import_utils", "import_AiuiProvider", "ProductFreeGift", "locale", "freeGift", "checkedGift", "setCheckedGift", "setCheckedBundle", "setJoinedRecommendBuyProducts", "joinedRecommendBuyProducts", "title", "giftList", "freeLabel", "availableGifts", "item", "handleCheckboxClick", "value", "gift"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var u=Object.defineProperty;var b=Object.getOwnPropertyDescriptor;var k=Object.getOwnPropertyNames;var w=Object.prototype.hasOwnProperty;var y=(e,o)=>{for(var p in o)u(e,p,{get:o[p],enumerable:!0})},N=(e,o,p,c)=>{if(o&&typeof o=="object"||typeof o=="function")for(let n of k(o))!w.call(e,n)&&n!==p&&u(e,n,{get:()=>o[n],enumerable:!(c=b(o,n))||c.enumerable});return e};var C=e=>N(u({},"__esModule",{value:!0}),e);var L={};y(L,{default:()=>H});module.exports=C(L);var t=require("react/jsx-runtime"),s=require("../../../../../../components"),d=require("@radix-ui/react-tabs"),a=require("react"),g=require("../../../../../../helpers"),v=require("../../../../ProductProvider");const D=()=>{const{product:e,variant:o,isMobile:p}=(0,v.useProductContext)(),[c,n]=(0,a.useState)(!1),m=(0,a.useMemo)(()=>{const r=o.metafields?.component?.ksp||e.metafields?.component?.ksp;return(p?r?.mobileList:r?.list)?.filter(h=>!!h?.text)},[o.metafields?.component?.ksp,p]),[l,f]=(0,a.useState)(m?.[0]),i=(0,a.useMemo)(()=>e?.payload?.components?.find(r=>r.componentKey==="ProductHighlight")?.data||{},[e?.payload]);return m?.length?(0,t.jsxs)("div",{className:"ipc-product-detail-highlight",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[i?.title&&(0,t.jsx)(s.Text,{size:3,className:"font-bold",html:i?.title}),(0,t.jsxs)(s.Dialog,{open:c,onOpenChange:n,children:[(0,t.jsx)(s.DialogTrigger,{asChild:!0,children:(0,t.jsx)(s.Button,{variant:"link",className:"font-bold !p-0 text-base",children:i?.view})}),(0,t.jsx)(T,{ksp:m,clickActiveKspItem:l})]})]}),(0,t.jsx)("div",{className:"flex flex-wrap gap-4 mt-3 desktop:mt-4",children:m.map(r=>(0,t.jsx)("div",{className:"px-4 py-2 lg-desktop:max-w-[256px] desktop:max-w-[246px] laptop:max-w-[310px] max-w-[227px] rounded-full bg-[#F5F5F7]",children:(0,t.jsx)(s.Text,{size:3,onClick:()=>{f(r),n(!0)},className:"font-bold cursor-pointer text-[#1D1D1F] text-[16px] break-all line-clamp-1 desktop:text-base overflow-hidden",html:r?.text},r?.text)}))})]}):null},T=({ksp:e,clickActiveKspItem:o})=>{const p=(0,a.useRef)([]),c=(0,a.useRef)(null),[n,m]=(0,a.useState)(null);return(0,a.useEffect)(()=>{o&&(m(o),setTimeout(()=>{const l=e.findIndex(i=>i.text===o?.text),f=p.current[l];if(f&&c.current){const i=c.current,r=f,x=r.offsetLeft-i.offsetWidth/2+r.offsetWidth/2;i.scrollTo({left:x,behavior:"smooth"})}},100))},[o,e]),(0,t.jsx)(s.DialogContent,{overlayClassName:"z-[70]",className:"tablet:max-w-[896px] max-w-[326px] mx-auto w-full border-none z-[80] overflow-hidden p-0",children:(0,t.jsxs)(d.Root,{defaultValue:n?.text,className:"w-full overflow-hidden",children:[e.map(l=>(0,t.jsx)(d.Content,{value:l.text,children:(0,t.jsx)(s.Picture,{source:l.img,className:"w-full h-[304px] desktop:h-[480px]",alt:l.img.alt,imgClassName:"object-cover h-full"})},l.text)),(0,t.jsx)("div",{className:"py-4 desktop:py-6 w-full overflow-visible",children:(0,t.jsxs)("div",{ref:c,className:"px-4 desktop:px-6 overflow-x-auto",children:[(0,t.jsx)("div",{className:"w-fit rounded-full bg-[#EAEAEC]",style:{scrollbarWidth:"none",msOverflowStyle:"none"},children:(0,t.jsx)(d.List,{className:"flex p-1 w-max",children:e.map((l,f)=>(0,t.jsx)(d.Trigger,{ref:i=>{i&&(p.current[f]=i)},className:(0,g.cn)("lg-desktop:px-7 shrink-0 lg-desktop:pb-[14px] rounded-full lg-desktop:pt-[15px] lg-desktop:text-[16px] px-5 pb-[10px] pt-[11px]",l.text===n?.text&&"bg-white"),onClick:()=>{m(l)},value:l.text,children:(0,t.jsx)(s.Text,{html:l.text,className:"font-bold text-[14px] leading-tight"})},f))})}),(0,t.jsx)("div",{className:"mt-4",children:e.map(l=>(0,t.jsx)(d.Content,{value:l.label,className:"font-bold text-base desktop:text-[18px]",children:l.description}))})]})})]})})};var H=D;
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../../../src/biz-components/Listing/components/ProductCard/ProductDetail/ProductHighlight/index.tsx"],
4
+ "sourcesContent": ["import type { HighlightProps } from '../types'\nimport { Text, Picture, Button, Heading, Dialog, DialogContent, DialogTrigger } from '../../../../../../components'\nimport { Content, List, Root, Trigger } from '@radix-ui/react-tabs'\nimport { useEffect, useMemo, useRef, useState } from 'react'\nimport { cn } from '../../../../../../helpers'\nimport { useProductContext } from '../../../../ProductProvider'\n\nconst ProductHighlight = () => {\n const { product, variant, isMobile } = useProductContext()\n const [open, setOpen] = useState(false)\n\n const ksp = useMemo(() => {\n const ksp_value = variant.metafields?.component?.ksp || product.metafields?.component?.ksp\n const result = isMobile ? ksp_value?.mobileList : ksp_value?.list\n return result?.filter((item: any) => !!item?.text)\n }, [variant.metafields?.component?.ksp, isMobile])\n\n const [activeKspItem, setActiveKspItem] = useState(ksp?.[0])\n\n const ProductHighlightData = useMemo(() => {\n return product?.payload?.components?.find((item: any) => item.componentKey === 'ProductHighlight')?.data || {}\n }, [product?.payload])\n\n if (!ksp?.length) return null\n\n return (\n <div className=\"ipc-product-detail-highlight\">\n <div className=\"flex items-center justify-between\">\n {ProductHighlightData?.title && <Text size={3} className=\"font-bold\" html={ProductHighlightData?.title} />}\n <Dialog open={open} onOpenChange={setOpen}>\n <DialogTrigger asChild>\n <Button variant=\"link\" className=\"font-bold !p-0 text-base\">\n {ProductHighlightData?.view}\n </Button>\n </DialogTrigger>\n <ProductHighlightModal ksp={ksp} clickActiveKspItem={activeKspItem} />\n </Dialog>\n </div>\n <div className=\"flex flex-wrap gap-4 mt-3 desktop:mt-4\">\n {ksp.map((item: any) => (\n <div className=\"px-4 py-2 lg-desktop:max-w-[256px] desktop:max-w-[246px] laptop:max-w-[310px] max-w-[227px] rounded-full bg-[#F5F5F7]\">\n <Text\n size={3}\n key={item?.text}\n onClick={() => {\n setActiveKspItem(item)\n setOpen(true)\n }}\n className=\"font-bold cursor-pointer text-[#1D1D1F] text-[16px] break-all line-clamp-1 desktop:text-base overflow-hidden\"\n html={item?.text}\n />\n </div>\n ))}\n </div>\n </div>\n )\n}\n\nconst ProductHighlightModal = ({ ksp, clickActiveKspItem }: { ksp: any[]; clickActiveKspItem: any }) => {\n const highlightRef = useRef<HTMLButtonElement[]>([])\n const scrollContainerRef = useRef<HTMLDivElement>(null)\n const [activeKspItem, setActiveKspItem] = useState<any>(null)\n\n useEffect(() => {\n if (!clickActiveKspItem) return\n setActiveKspItem(clickActiveKspItem)\n\n // \u5EF6\u8FDF\u6267\u884C\uFF0C\u7B49\u5F85 Dialog \u548C\u5185\u90E8\u5143\u7D20\u5B8C\u5168\u6E32\u67D3\n setTimeout(() => {\n const curIndex = ksp.findIndex(item => item.text === clickActiveKspItem?.text)\n const curRef = highlightRef.current[curIndex]\n\n if (curRef && scrollContainerRef.current) {\n const container = scrollContainerRef.current\n const button = curRef\n const scrollLeft = button.offsetLeft - container.offsetWidth / 2 + button.offsetWidth / 2\n\n container.scrollTo({\n left: scrollLeft,\n behavior: 'smooth',\n })\n }\n }, 100)\n }, [clickActiveKspItem, ksp])\n\n return (\n <DialogContent\n overlayClassName=\"z-[70]\"\n className=\"tablet:max-w-[896px] max-w-[326px] mx-auto w-full border-none z-[80] overflow-hidden p-0\"\n >\n <Root defaultValue={activeKspItem?.text} className=\"w-full overflow-hidden\">\n {ksp.map(item => (\n <Content value={item.text} key={item.text}>\n <Picture\n source={item.img}\n className=\"w-full h-[304px] desktop:h-[480px]\"\n alt={item.img.alt}\n imgClassName=\"object-cover h-full\"\n />\n </Content>\n ))}\n <div className=\"py-4 desktop:py-6 w-full overflow-visible\">\n <div ref={scrollContainerRef} className=\"px-4 desktop:px-6 overflow-x-auto\">\n <div\n className=\"w-fit rounded-full bg-[#EAEAEC]\"\n style={{\n scrollbarWidth: 'none',\n msOverflowStyle: 'none',\n }}\n >\n <List className=\"flex p-1 w-max\">\n {ksp.map((item, index) => (\n <Trigger\n ref={el => {\n if (el) {\n highlightRef.current[index] = el\n }\n }}\n className={cn(\n 'lg-desktop:px-7 shrink-0 lg-desktop:pb-[14px] rounded-full lg-desktop:pt-[15px] lg-desktop:text-[16px] px-5 pb-[10px] pt-[11px]',\n item.text === activeKspItem?.text && 'bg-white'\n )}\n onClick={() => {\n setActiveKspItem(item)\n }}\n key={index}\n value={item.text}\n >\n <Text html={item.text} className=\"font-bold text-[14px] leading-tight\" />\n </Trigger>\n ))}\n </List>\n </div>\n <div className=\"mt-4\">\n {ksp.map(item => (\n <Content value={item.label} className=\"font-bold text-base desktop:text-[18px]\">\n {item.description}\n </Content>\n ))}\n </div>\n </div>\n </div>\n </Root>\n </DialogContent>\n )\n}\n\nexport default ProductHighlight\n"],
5
+ "mappings": "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",
6
+ "names": ["ProductHighlight_exports", "__export", "ProductHighlight_default", "__toCommonJS", "import_jsx_runtime", "import_components", "import_react_tabs", "import_react", "import_helpers", "import_ProductProvider", "ProductHighlight", "product", "variant", "isMobile", "open", "setOpen", "ksp", "ksp_value", "item", "activeKspItem", "setActiveKspItem", "ProductHighlightData", "ProductHighlightModal", "clickActiveKspItem", "highlightRef", "scrollContainerRef", "curIndex", "curRef", "container", "button", "scrollLeft", "index", "el"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var u=Object.defineProperty;var b=Object.getOwnPropertyDescriptor;var _=Object.getOwnPropertyNames;var k=Object.prototype.hasOwnProperty;var E=(s,o)=>{for(var n in o)u(s,n,{get:o[n],enumerable:!0})},P=(s,o,n,a)=>{if(o&&typeof o=="object"||typeof o=="function")for(let i of _(o))!k.call(s,i)&&i!==n&&u(s,i,{get:()=>o[i],enumerable:!(a=b(o,i))||a.enumerable});return s};var C=s=>P(u({},"__esModule",{value:!0}),s);var S={};E(S,{default:()=>O});module.exports=C(S);var e=require("react/jsx-runtime"),d=require("../../../../../../components"),l=require("../../../../../../helpers/index.js"),p=require("react"),f=require("../../../../ProductProvider.js"),v=require("../../../../../AiuiProvider/index.js"),x=require("../../../../utils/helper.js");const L=()=>{const{product:s,selectedOptions:o,setSelectedOptions:n,setJoinedRecommendBuyProducts:a}=(0,f.useProductContext)(),{storeDomain:i}=(0,v.useAiuiContext)(),[g,y]=(0,p.useState)({});return s.options.length?(0,e.jsx)("div",{className:"flex flex-col gap-12",children:s.options.map(r=>{const N=r.name.toLowerCase();return["color","colour","couleur"].some(t=>N.includes(t))?(0,e.jsxs)("div",{className:"ipc-product-detail-options",children:[(0,e.jsx)(d.Text,{as:"p",size:3,className:"font-bold",html:"Select Color: "+o[r.name]}),(0,e.jsx)("div",{className:"flex items-center gap-4 mt-4",children:r.values.map(({label:t},c)=>{const h=`https://${i}/cdn/shop/files/${(0,x.handle)(t)}.png`;return(0,e.jsxs)("div",{className:"relative ipc-product-detail-options-value",children:[(0,e.jsx)("button",{"aria-label":`switch to ${t}`,title:t,onClick:()=>{n(m=>({...m,[r.name]:t})),a?.({gift:void 0,bundle:void 0})},className:(0,l.cn)("flex h-[36px] w-[36px] items-center justify-center rounded-full bg-center bg-no-repeat outline outline-2 outline-offset-4 outline-white",{"outline-brand":o[r.name]===t}),children:!g[t]&&(0,e.jsx)(e.Fragment,{children:(0,e.jsx)(d.Picture,{className:"w-full",source:h,onError:({currentTarget:m})=>{m.onerror=null,y(w=>({...w,[t]:!0}))}})})}),(0,e.jsx)("div",{className:"pointer-events-none 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)]"})]},t+c)})})]},r.id):(0,e.jsxs)("div",{className:"ipc-product-detail-options",children:[(0,e.jsx)(d.Text,{as:"p",size:3,className:"font-bold",html:r.name}),(0,e.jsx)("div",{className:"flex items-center gap-4 mt-4",children:r.values.map(({label:t})=>(0,e.jsx)("button",{onClick:()=>{n(c=>({...c,[r.name]:t}))},className:(0,l.cn)("w-1/2 text-left font-bold px-4 py-6 rounded-2xl border-[#E4E5E6] border-2",{"border-brand":o[r.name]===t}),children:t},t))})]},r.id)})}):null};var O=L;
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../../../src/biz-components/Listing/components/ProductCard/ProductDetail/ProductOptions/index.tsx"],
4
+ "sourcesContent": ["import { Text, Picture, Button } from '../../../../../../components'\nimport type { ProductOptionsProps } from '../types'\nimport { cn } from '../../../../../../helpers/index.js'\nimport { useState } from 'react'\nimport { useProductContext } from '../../../../ProductProvider.js'\nimport { useAiuiContext } from '../../../../../AiuiProvider/index.js'\nimport { handle } from '../../../../utils/helper.js'\n\nconst ProductOptions = () => {\n const { product, selectedOptions, setSelectedOptions, setJoinedRecommendBuyProducts } = useProductContext()\n const { storeDomain } = useAiuiContext()\n const [imgLoadError, setImgLoadError] = useState({})\n if (!product.options.length) return null\n return (\n <div className=\"flex flex-col gap-12\">\n {product.options.map(option => {\n const lowercasedName = option.name.toLowerCase()\n const colorKeywords = ['color', 'colour', 'couleur']\n if (colorKeywords.some(keyword => lowercasedName.includes(keyword))) {\n return (\n <div key={option.id} className=\"ipc-product-detail-options\">\n <Text as=\"p\" size={3} className=\"font-bold\" html={'Select Color: ' + selectedOptions[option.name]} />\n <div className=\"flex items-center gap-4 mt-4\">\n {option.values.map(({ label }, index) => {\n const imagePath = `https://${storeDomain}/cdn/shop/files/${handle(label)}.png`\n return (\n <div key={label + index} className=\"relative ipc-product-detail-options-value\">\n <button\n aria-label={`switch to ${label}`}\n title={label}\n onClick={() => {\n setSelectedOptions(prev => ({ ...prev, [option.name]: label }))\n setJoinedRecommendBuyProducts?.({ gift: undefined, bundle: undefined })\n }}\n className={cn(\n '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 {\n 'outline-brand': selectedOptions[option.name] === label,\n }\n )}\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=\"pointer-events-none 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 </div>\n </div>\n )\n } else {\n return (\n <div key={option.id} className=\"ipc-product-detail-options\">\n <Text as=\"p\" size={3} className=\"font-bold\" html={option.name} />\n <div className=\"flex items-center gap-4 mt-4\">\n {option.values.map(({ label }) => (\n <button\n key={label}\n onClick={() => {\n setSelectedOptions(prev => ({ ...prev, [option.name]: label }))\n // setProductSummaryStatus?.({ giftSummary: false, bundleSummary: false })\n }}\n className={cn('w-1/2 text-left font-bold px-4 py-6 rounded-2xl border-[#E4E5E6] border-2', {\n 'border-brand': selectedOptions[option.name] === label,\n })}\n >\n {label}\n </button>\n ))}\n </div>\n </div>\n )\n }\n })}\n </div>\n )\n}\n\nexport default ProductOptions\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,IAAA,eAAAC,EAAAH,GAqBc,IAAAI,EAAA,6BArBdC,EAAsC,wCAEtCC,EAAmB,8CACnBC,EAAyB,iBACzBC,EAAkC,0CAClCC,EAA+B,gDAC/BC,EAAuB,uCAEvB,MAAMC,EAAiB,IAAM,CAC3B,KAAM,CAAE,QAAAC,EAAS,gBAAAC,EAAiB,mBAAAC,EAAoB,8BAAAC,CAA8B,KAAI,qBAAkB,EACpG,CAAE,YAAAC,CAAY,KAAI,kBAAe,EACjC,CAACC,EAAcC,CAAe,KAAI,YAAS,CAAC,CAAC,EACnD,OAAKN,EAAQ,QAAQ,UAEnB,OAAC,OAAI,UAAU,uBACZ,SAAAA,EAAQ,QAAQ,IAAIO,GAAU,CAC7B,MAAMC,EAAiBD,EAAO,KAAK,YAAY,EAE/C,MADsB,CAAC,QAAS,SAAU,SAAS,EACjC,KAAKE,GAAWD,EAAe,SAASC,CAAO,CAAC,KAE9D,QAAC,OAAoB,UAAU,6BAC7B,oBAAC,QAAK,GAAG,IAAI,KAAM,EAAG,UAAU,YAAY,KAAM,iBAAmBR,EAAgBM,EAAO,IAAI,EAAG,KACnG,OAAC,OAAI,UAAU,+BACZ,SAAAA,EAAO,OAAO,IAAI,CAAC,CAAE,MAAAG,CAAM,EAAGC,IAAU,CACvC,MAAMC,EAAY,WAAWR,CAAW,sBAAmB,UAAOM,CAAK,CAAC,OACxE,SACE,QAAC,OAAwB,UAAU,4CACjC,oBAAC,UACC,aAAY,aAAaA,CAAK,GAC9B,MAAOA,EACP,QAAS,IAAM,CACbR,EAAmBW,IAAS,CAAE,GAAGA,EAAM,CAACN,EAAO,IAAI,EAAGG,CAAM,EAAE,EAC9DP,IAAgC,CAAE,KAAM,OAAW,OAAQ,MAAU,CAAC,CACxE,EACA,aAAW,MACT,0IACA,CACE,gBAAiBF,EAAgBM,EAAO,IAAI,IAAMG,CACpD,CACF,EAEC,UAACL,EAAaK,CAAkC,MAC/C,mBACE,mBAAC,WACC,UAAU,SACV,OAAQE,EACR,QAAS,CAAC,CAAE,cAAAE,CAAc,IAAM,CAC9BA,EAAc,QAAU,KACxBR,EAAgBO,IAAS,CAAE,GAAGA,EAAM,CAACH,CAAK,EAAG,EAAK,EAAE,CACtD,EACF,EACF,EAEJ,KACA,OAAC,OAAI,UAAU,6HAA6H,IA5BpIA,EAAQC,CA6BlB,CAEJ,CAAC,EACH,IAtCQJ,EAAO,EAuCjB,KAIA,QAAC,OAAoB,UAAU,6BAC7B,oBAAC,QAAK,GAAG,IAAI,KAAM,EAAG,UAAU,YAAY,KAAMA,EAAO,KAAM,KAC/D,OAAC,OAAI,UAAU,+BACZ,SAAAA,EAAO,OAAO,IAAI,CAAC,CAAE,MAAAG,CAAM,OAC1B,OAAC,UAEC,QAAS,IAAM,CACbR,EAAmBW,IAAS,CAAE,GAAGA,EAAM,CAACN,EAAO,IAAI,EAAGG,CAAM,EAAE,CAEhE,EACA,aAAW,MAAG,4EAA6E,CACzF,eAAgBT,EAAgBM,EAAO,IAAI,IAAMG,CACnD,CAAC,EAEA,SAAAA,GATIA,CAUP,CACD,EACH,IAjBQH,EAAO,EAkBjB,CAGN,CAAC,EACH,EAzEkC,IA2EtC,EAEA,IAAOjB,EAAQS",
6
+ "names": ["ProductOptions_exports", "__export", "ProductOptions_default", "__toCommonJS", "import_jsx_runtime", "import_components", "import_helpers", "import_react", "import_ProductProvider", "import_AiuiProvider", "import_helper", "ProductOptions", "product", "selectedOptions", "setSelectedOptions", "setJoinedRecommendBuyProducts", "storeDomain", "imgLoadError", "setImgLoadError", "option", "lowercasedName", "keyword", "label", "index", "imagePath", "prev", "currentTarget"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var s=Object.create;var d=Object.defineProperty;var x=Object.getOwnPropertyDescriptor;var P=Object.getOwnPropertyNames;var n=Object.getPrototypeOf,g=Object.prototype.hasOwnProperty;var b=(o,t)=>{for(var r in t)d(o,r,{get:t[r],enumerable:!0})},c=(o,t,r,l)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of P(t))!g.call(o,i)&&i!==r&&d(o,i,{get:()=>t[i],enumerable:!(l=x(t,i))||l.enumerable});return o};var e=(o,t,r)=>(r=o!=null?s(n(o)):{},c(t||!o||!o.__esModule?d(r,"default",{value:o,enumerable:!0}):r,o)),h=o=>c(d({},"__esModule",{value:!0}),o);var k={};b(k,{default:()=>B});module.exports=h(k);var p=require("react/jsx-runtime"),D=require("./ProductBenefitsTabs/index.js"),f=e(require("./ProductHighlight/index.js")),m=e(require("./ProductFreeGift/index.js")),a=e(require("./ProductOptions/index.js")),u=e(require("./ProductBundle/index.js"));const v=o=>(0,p.jsxs)("div",{id:"ipc-product-detail",className:"flex flex-col gap-12 tablet:px-8 laptop:px-16 desktop:px-0 px-4",children:[(0,p.jsx)(f.default,{}),(0,p.jsx)(a.default,{}),(0,p.jsx)(m.default,{}),(0,p.jsx)(u.default,{})]});var B=v;
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../../src/biz-components/Listing/components/ProductCard/ProductDetail/index.tsx"],
4
+ "sourcesContent": ["import ProductBenefitsTabs from './ProductBenefitsTabs/index.js'\nimport ProductHighlight from './ProductHighlight/index.js'\nimport ProductFreeGift from './ProductFreeGift/index.js'\nimport ProductOptions from './ProductOptions/index.js'\nimport ProductBundle from './ProductBundle/index.js'\n\n\nconst ProductDetail = (props: any) => {\n return (\n <div id=\"ipc-product-detail\" className=\"flex flex-col gap-12 tablet:px-8 laptop:px-16 desktop:px-0 px-4\">\n {/* <ProductBenefitsTabs>\n <ProductBenefitsTabs.List>\n <ProductBenefitsTabs.Trigger value=\"Benefits\">Benefits</ProductBenefitsTabs.Trigger>\n <ProductBenefitsTabs.Trigger value=\"Benefits\">Benefits</ProductBenefitsTabs.Trigger>\n </ProductBenefitsTabs.List>\n </ProductBenefitsTabs> */}\n <ProductHighlight />\n <ProductOptions />\n <ProductFreeGift />\n <ProductBundle />\n </div>\n )\n}\n\nexport default ProductDetail\n"],
5
+ "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,IAAA,eAAAC,EAAAH,GASI,IAAAI,EAAA,6BATJC,EAAgC,0CAChCC,EAA6B,0CAC7BC,EAA4B,yCAC5BC,EAA2B,wCAC3BC,EAA0B,uCAG1B,MAAMC,EAAiBC,MAEnB,QAAC,OAAI,GAAG,qBAAqB,UAAU,kEAOrC,oBAAC,EAAAC,QAAA,EAAiB,KAClB,OAAC,EAAAC,QAAA,EAAe,KAChB,OAAC,EAAAC,QAAA,EAAgB,KACjB,OAAC,EAAAC,QAAA,EAAc,GACjB,EAIJ,IAAOb,EAAQQ",
6
+ "names": ["ProductDetail_exports", "__export", "ProductDetail_default", "__toCommonJS", "import_jsx_runtime", "import_ProductBenefitsTabs", "import_ProductHighlight", "import_ProductFreeGift", "import_ProductOptions", "import_ProductBundle", "ProductDetail", "props", "ProductHighlight", "ProductOptions", "ProductFreeGift", "ProductBundle"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var n=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var a=Object.getOwnPropertyNames;var c=Object.prototype.hasOwnProperty;var u=(e,o)=>{for(var r in o)n(e,r,{get:o[r],enumerable:!0})},P=(e,o,r,p)=>{if(o&&typeof o=="object"||typeof o=="function")for(let t of a(o))!c.call(e,t)&&t!==r&&n(e,t,{get:()=>o[t],enumerable:!(p=s(o,t))||p.enumerable});return e};var d=e=>P(n({},"__esModule",{value:!0}),e);var g={};u(g,{BenefitsTabsType:()=>i});module.exports=d(g);var i=(t=>(t.ALL_BENEFITS="allBenefits",t.COUPON="coupon",t.INSTALLMENT="installment",t.MEMBERSHIP="membership",t))(i||{});
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../../src/biz-components/Listing/components/ProductCard/ProductDetail/types.ts"],
4
+ "sourcesContent": ["import type {\n ProductVariant,\n Product,\n ProductOption,\n ProductOptionValues,\n} from '../../../../../cpn-components/CpnProductCard/types.js'\nimport type { Img } from '../../../../../types/props.js'\n\nexport interface ProductDetailProps {}\n\nexport enum BenefitsTabsType {\n ALL_BENEFITS = 'allBenefits',\n COUPON = 'coupon',\n INSTALLMENT = 'installment',\n MEMBERSHIP = 'membership',\n}\n\nexport interface ProductBenefitsTabsProps {\n data: {\n allBenefits: {\n benefits: {\n type?: BenefitsTabsType\n tabName: string\n tabValue: string\n collectBgImage?: Img\n coupons?: BenefitsTabCouponProps[]\n }[]\n }\n }\n}\n\nexport interface BenefitsTabCouponProps {\n code: string\n title: string\n description: string\n discount: number\n bgImage: Img\n}\n\nexport interface ProductBenefitsTabCouponProps {\n coupons?: BenefitsTabCouponProps[]\n}\n\nexport interface HighlightProps {\n data: any\n}\n\nexport interface ProductOptionsProps {\n option: ProductOption\n onOptionChange: (arg0: { id: string; value: string }) => void\n}\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,sBAAAE,IAAA,eAAAC,EAAAH,GAUO,IAAKE,OACVA,EAAA,aAAe,cACfA,EAAA,OAAS,SACTA,EAAA,YAAc,cACdA,EAAA,WAAa,aAJHA,OAAA",
6
+ "names": ["types_exports", "__export", "BenefitsTabsType", "__toCommonJS"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var y=Object.create;var c=Object.defineProperty;var h=Object.getOwnPropertyDescriptor;var D=Object.getOwnPropertyNames;var G=Object.getPrototypeOf,w=Object.prototype.hasOwnProperty;var I=(r,a)=>{for(var i in a)c(r,i,{get:a[i],enumerable:!0})},g=(r,a,i,p)=>{if(a&&typeof a=="object"||typeof a=="function")for(let l of D(a))!w.call(r,l)&&l!==i&&c(r,l,{get:()=>a[l],enumerable:!(p=h(a,l))||p.enumerable});return r};var k=(r,a,i)=>(i=r!=null?y(G(r)):{},g(a||!r||!r.__esModule?c(i,"default",{value:r,enumerable:!0}):i,r)),P=r=>g(c({},"__esModule",{value:!0}),r);var H={};I(H,{default:()=>L});module.exports=P(H);var e=require("react/jsx-runtime"),n=require("react"),t=require("../../../../../../components"),b=require("../../../../ProductProvider"),v=k(require("./Select")),N=require("../../../../../AiuiProvider/index.js"),C=require("../../../../utils"),E=require("./ShopifyColorOption");const T=()=>{const{locale:r="us"}=(0,N.useAiuiContext)(),{compareData:a,product:i}=(0,b.useProductContext)(),[p,l]=(0,n.useState)();(0,n.useEffect)(()=>{l(a?.availableCompareList[0]?.handle)},[a?.availableCompareList]);const x=[a?.currentProductCompareData?.product,a?.availableCompareList.find(o=>o.handle===p)?.product].filter(Boolean);return a?.specificationKeys?(0,e.jsxs)(t.Dialog,{children:[(0,e.jsx)(t.DialogTrigger,{children:(0,e.jsx)("button",{className:"text-base leading-[1.4] font-bold",children:"Compare"})}),(0,e.jsxs)(t.DialogContent,{overlayClassName:"z-[100]",className:"max-h-[calc(100vh-92px)] z-[110] overflow-y-scroll px-[40px] py-[30px] shadow-lg tablet:min-w-[760px] min-w-[90vw]",children:[(0,e.jsx)(t.DialogHeader,{className:"border-b border-[#E8E8E8]",children:(0,e.jsx)(t.DialogTitle,{children:"Compare"})}),(0,e.jsxs)(t.Grid,{className:"gap-[40px] grid-cols-3 items-center gap-[40px] border-b border-[#E8E8E8] py-[24px]",children:[(0,e.jsx)(t.GridItem,{span:1}),x.map((o,d)=>(0,e.jsx)(t.GridItem,{span:1,className:"flex items-center",children:(0,e.jsx)("img",{src:o.images[0].url,alt:o.title,className:"h-[200px] w-[200px]",role:"presentation"})},d))]}),(0,e.jsxs)(t.Grid,{className:"gap-[40px] grid-cols-3 items-center gap-[40px] border-b border-[#E8E8E8] py-[24px]",children:[(0,e.jsx)(t.GridItem,{span:1,children:(0,e.jsx)("div",{className:"text-[16px] font-bold text-[#595959]",children:"Product"})}),(0,e.jsx)(t.GridItem,{span:1,children:(0,e.jsx)(t.Text,{as:"div",className:"flex h-[38px] w-full items-center rounded-[2px] border border-[#E8E8E8] px-[12px] text-[16px] font-bold",html:a.currentProductCompareData?.shortName||i.title})}),p&&(0,e.jsx)(t.GridItem,{span:1,children:(0,e.jsx)(v.default,{value:p,onChange:o=>{l(o)},list:a.options})})]}),(0,e.jsxs)(t.Grid,{className:"gap-[40px] grid-cols-3 items-center gap-[40px] border-b border-[#E8E8E8] py-[24px]",children:[(0,e.jsx)(t.GridItem,{span:1,children:(0,e.jsx)("div",{className:"text-[16px] font-bold text-[#595959]",children:"Basic Information"})}),x.map((o,d)=>{const m=o.variants[0],f=o.options?.find(s=>["color","colour","couleur"].find(u=>s.name.toLowerCase().includes(u)))?.values.map(s=>s.label);return(0,e.jsx)(t.GridItem,{span:1,className:"flex h-full",children:(0,e.jsxs)("div",{className:"flex flex-col gap-[8px]",children:[m.price.amount<9999999&&(0,e.jsxs)("div",{className:"flex items-center gap-[8px]",children:[(0,e.jsx)("div",{className:"text-[16px] font-semibold text-[#595959]",children:"Price:"}),(0,e.jsx)("div",{className:"flex items-center gap-[6px]",children:(0,e.jsx)("span",{className:"text-[16px] font-bold",children:(0,C.formatPrice)({locale:r,amount:m.price.amount,currencyCode:m.price.currencyCode})})})]}),f?.length&&(0,e.jsxs)("div",{className:"flex items-center gap-[8px]",children:[(0,e.jsx)("div",{className:"text-[16px] font-semibold text-[#595959]",children:"Color:"}),(0,e.jsx)("div",{className:"flex items-center gap-[16px]",children:f.map(s=>(0,e.jsx)(E.ShopifyColorOption,{label:s,className:"h-[16px] w-[16px]"},s))})]})]})},d)})]}),(0,e.jsx)(t.Grid,{className:"gap-[40px] grid-cols-12 items-center gap-[40px] border-b border-[#E8E8E8]",children:a.specificationKeys?.map(o=>(0,e.jsxs)(t.GridItem,{span:12,className:"grid grid-cols-3 items-center gap-[40px] border-b border-[#E8E8E8] py-[24px]",children:[(0,e.jsx)("div",{className:"text-[16px] font-bold text-[#595959]",children:o}),x.map((d,m)=>{let s=d.metafields?.global?.specifications?.find(u=>u?.key===o)?.value||"";switch(s.trim().toLowerCase()){case"true":s="\u2714\uFE0F";break;case"false":s="\u274C";break;default:break}return(0,e.jsx)("div",{className:"flex items-center",children:(0,e.jsx)("div",{className:"text-[16px] font-semibold text-[#595959]",children:s})},m)})]},o))})]})]}):null};var L=T;
2
+ //# sourceMappingURL=CompareModal.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../../../src/biz-components/Listing/components/ProductCard/ProductGallery/components/CompareModal.tsx"],
4
+ "sourcesContent": ["import { useEffect, useState } from 'react'\nimport {\n Dialog,\n DialogTrigger,\n DialogContent,\n DialogHeader,\n DialogTitle,\n Grid,\n GridItem,\n Text,\n} from '../../../../../../components'\nimport { useProductContext } from '../../../../ProductProvider'\nimport type { CompareItem } from '../../../../types'\nimport Select from './Select'\nimport { useAiuiContext } from '../../../../../AiuiProvider/index.js'\nimport { formatPrice } from '../../../../utils'\nimport { ShopifyColorOption } from './ShopifyColorOption'\n\nconst CompareModal = () => {\n const { locale = 'us' } = useAiuiContext()\n const { compareData, product } = useProductContext()\n const [selectedProductHandle, setSelectedProductHandle] = useState<string>()\n\n useEffect(() => {\n setSelectedProductHandle(compareData?.availableCompareList[0]?.handle)\n }, [compareData?.availableCompareList])\n\n const products = [\n compareData?.currentProductCompareData!?.product,\n compareData?.availableCompareList.find(product => product.handle === selectedProductHandle)?.product,\n ].filter(Boolean) as CompareItem['product'][]\n\n if (!compareData?.specificationKeys) return null\n\n return (\n <Dialog>\n <DialogTrigger>\n <button className=\"text-base leading-[1.4] font-bold\">Compare</button>\n </DialogTrigger>\n <DialogContent\n overlayClassName=\"z-[100]\"\n className=\"max-h-[calc(100vh-92px)] z-[110] overflow-y-scroll px-[40px] py-[30px] shadow-lg tablet:min-w-[760px] min-w-[90vw]\"\n >\n <DialogHeader className=\"border-b border-[#E8E8E8]\">\n <DialogTitle>Compare</DialogTitle>\n </DialogHeader>\n <Grid className=\"gap-[40px] grid-cols-3 items-center gap-[40px] border-b border-[#E8E8E8] py-[24px]\">\n <GridItem span={1} />\n {products.map((product, productIndex) => {\n return (\n <GridItem key={productIndex} span={1} className=\"flex items-center\">\n <img\n src={product.images[0].url}\n alt={product.title}\n className=\"h-[200px] w-[200px]\"\n role=\"presentation\"\n />\n </GridItem>\n )\n })}\n </Grid>\n <Grid className=\"gap-[40px] grid-cols-3 items-center gap-[40px] border-b border-[#E8E8E8] py-[24px]\">\n <GridItem span={1}>\n <div className=\"text-[16px] font-bold text-[#595959]\">Product</div>\n </GridItem>\n <GridItem span={1}>\n <Text\n as=\"div\"\n className=\"flex h-[38px] w-full items-center rounded-[2px] border border-[#E8E8E8] px-[12px] text-[16px] font-bold\"\n html={compareData.currentProductCompareData?.shortName || product.title}\n ></Text>\n </GridItem>\n {selectedProductHandle && (\n <GridItem span={1}>\n <Select\n value={selectedProductHandle}\n onChange={value => {\n setSelectedProductHandle(value)\n }}\n list={compareData.options!}\n />\n </GridItem>\n )}\n </Grid>\n <Grid className=\"gap-[40px] grid-cols-3 items-center gap-[40px] border-b border-[#E8E8E8] py-[24px]\">\n <GridItem span={1}>\n <div className=\"text-[16px] font-bold text-[#595959]\">Basic Information</div>\n </GridItem>\n {products.map((product, productIndex) => {\n const variant = product.variants[0]\n const colors = product.options\n ?.find(option =>\n ['color', 'colour', 'couleur'].find(predicate => option.name.toLowerCase().includes(predicate))\n )\n ?.values.map(value => value.label)\n return (\n <GridItem span={1} key={productIndex} className=\"flex h-full\">\n {/* Price with original price */}\n <div className=\"flex flex-col gap-[8px]\">\n {variant.price.amount < 9999999 && (\n <div className=\"flex items-center gap-[8px]\">\n <div className=\"text-[16px] font-semibold text-[#595959]\">Price:</div>\n <div className=\"flex items-center gap-[6px]\">\n <span className=\"text-[16px] font-bold\">\n {formatPrice({\n locale,\n amount: variant.price.amount,\n currencyCode: variant.price.currencyCode,\n })}\n </span>\n\n {/* {Number(coupon?.fixed_value) > 0 && (\n <span className='font-semibold text-[#999999] line-through'>\n {formatPrice({\n locale,\n amount: variant.price.amount,\n currencyCode: variant.price.currencyCode,\n })}\n </span>\n )} */}\n </div>\n </div>\n )}\n {colors?.length && (\n <div className=\"flex items-center gap-[8px]\">\n <div className=\"text-[16px] font-semibold text-[#595959]\">Color:</div>\n <div className=\"flex items-center gap-[16px]\">\n {colors.map(label => (\n <ShopifyColorOption key={label} label={label} className=\"h-[16px] w-[16px]\" />\n ))}\n </div>\n </div>\n )}\n </div>\n </GridItem>\n )\n })}\n </Grid>\n <Grid className=\"gap-[40px] grid-cols-12 items-center gap-[40px] border-b border-[#E8E8E8]\">\n {compareData.specificationKeys?.map((key: string) => {\n return (\n <GridItem\n span={12}\n className=\"grid grid-cols-3 items-center gap-[40px] border-b border-[#E8E8E8] py-[24px]\"\n key={key}\n >\n {/* Detail value */}\n <div className=\"text-[16px] font-bold text-[#595959]\">{key}</div>\n {/* Product Values */}\n {products.map((product, productIndex) => {\n const value =\n product.metafields?.global?.specifications?.find(\n (specification: { key: string }) => specification?.key === key\n )?.value || ''\n let text = value\n switch (text.trim().toLowerCase()) {\n case 'true':\n text = '\u2714\uFE0F'\n break\n case 'false':\n text = '\u274C'\n break\n default:\n break\n }\n return (\n <div key={productIndex} className=\"flex items-center\">\n {/* Other details */}\n <div className=\"text-[16px] font-semibold text-[#595959]\">{text}</div>\n </div>\n )\n })}\n </GridItem>\n )\n })}\n </Grid>\n </DialogContent>\n </Dialog>\n )\n}\n\nexport default CompareModal\n"],
5
+ "mappings": "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",
6
+ "names": ["CompareModal_exports", "__export", "CompareModal_default", "__toCommonJS", "import_jsx_runtime", "import_react", "import_components", "import_ProductProvider", "import_Select", "import_AiuiProvider", "import_utils", "import_ShopifyColorOption", "CompareModal", "locale", "compareData", "product", "selectedProductHandle", "setSelectedProductHandle", "products", "productIndex", "Select", "value", "variant", "colors", "option", "predicate", "label", "key", "text", "specification"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var v=Object.defineProperty;var C=Object.getOwnPropertyDescriptor;var D=Object.getOwnPropertyNames;var S=Object.prototype.hasOwnProperty;var L=(a,n)=>{for(var s in n)v(a,s,{get:n[s],enumerable:!0})},R=(a,n,s,l)=>{if(n&&typeof n=="object"||typeof n=="function")for(let r of D(n))!S.call(a,r)&&r!==s&&v(a,r,{get:()=>n[r],enumerable:!(l=C(n,r))||l.enumerable});return a};var _=a=>R(v({},"__esModule",{value:!0}),a);var H={};L(H,{default:()=>M});module.exports=_(H);var t=require("react/jsx-runtime"),g=require("@heroicons/react/24/outline"),o=require("../../../../../../helpers"),i=require("react");const I=({label:a="",required:n=!1,list:s=[],value:l="",disabled:r=!1,error:d="",errorClassName:h="",onChange:m=b=>{},placeholder:p="",className:w="",containerClassName:N="",selectListClassName:E="",truncate:F=!1,...k})=>{const b=(0,i.useRef)(null),[x,u]=(0,i.useState)(!1),f=(0,i.useRef)(null),y=s.find(e=>e?.value===l)?.text;return(0,i.useEffect)(()=>{const e=c=>{f.current&&!f.current?.contains(c.target)&&u(!1)};return document.addEventListener("mousedown",e),()=>{document.removeEventListener("mousedown",e)}},[]),(0,t.jsxs)("div",{className:(0,o.cn)("relative w-full",N),children:[a&&(0,t.jsxs)("div",{className:"mb-[10px] text-[16px] font-bold",children:[a,n&&(0,t.jsx)("span",{className:"text-[#F84D4F]",children:"*"})]}),(0,t.jsxs)("div",{ref:f,className:"relative block",children:[(0,t.jsxs)("div",{className:(0,o.cn)("flex h-[38px] w-full cursor-pointer items-center justify-between rounded-[2px] border px-[12px] text-[16px] font-bold transition-all x:text-[14px]",p&&!l?"placeholder:text-[#999]":"",r?"pointer-events-none bg-[#F7F8F9]":"bg-white",d?"!border-[#F84D4F]":"border-[#E8E8E8]",s.length<=1&&"cursor-default",w),onClick:()=>{s.length>1&&u(!x)},onChange:e=>{m(e.target.value)},role:"button",tabIndex:0,onKeyDown:e=>{(e.key==="Enter"||e.key===" ")&&e.preventDefault()},...k,children:[!l&&p?(0,t.jsx)("div",{className:"text-[#999]",children:p}):(0,t.jsx)("div",{className:(0,o.cn)("line-clamp-1",F?"min-w-0 flex-1 truncate":"flex-1"),children:y}),s.length>1&&(0,t.jsx)(g.ChevronDownIcon,{className:(0,o.cn)("ml-[4px] h-[18px] w-[18px] flex-shrink-0 stroke-[#999999] transition-transform",x&&"rotate-180")})]}),(0,t.jsx)("div",{ref:b,className:(0,o.cn)("absolute left-0 right-0 top-full z-[1] mt-[8px] max-h-[318px] overflow-auto rounded-[4px] bg-white py-[6px] shadow-[0_1px_12px_0px_#0000001F] transition-all duration-300",x?"":"pointer-events-none opacity-0",E),children:s.map(e=>(0,t.jsx)("div",{"data-value":e.value,className:(0,o.cn)("flex h-[47px] w-full flex-shrink-0 cursor-pointer items-center whitespace-nowrap bg-white px-[14px] text-[15px] font-bold text-[#333] transition-colors duration-300 hover:bg-[#F7F8F9]",l===e.value?"!bg-[#E8E8E8]":"",e?.disabled?"pointer-events-none text-[#C8C8C8]":""),onClick:()=>{m(e.value),u(!1)},role:"button",tabIndex:0,onKeyDown:c=>{(c.key==="Enter"||c.key===" ")&&c.preventDefault()},children:e.text},e.value))})]}),d&&(0,t.jsx)("div",{className:(0,o.cn)("mt-[8px] text-[14px] text-[#F84D4F]",h),children:typeof d=="string"?`*${d}`:d})]})};var M=I;
2
+ //# sourceMappingURL=Select.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../../../src/biz-components/Listing/components/ProductCard/ProductGallery/components/Select.tsx"],
4
+ "sourcesContent": ["import { ChevronDownIcon } from '@heroicons/react/24/outline'\nimport { cn as classNames, cn } from '../../../../../../helpers'\nimport React, { useEffect, useRef, useState } from 'react'\n\ninterface SelectProps {\n label?: string\n required?: boolean\n list?: { value: string; text: string; disabled?: boolean }[]\n value?: string\n disabled?: boolean\n error?: string\n errorClassName?: string\n onChange?: (value: string) => void\n placeholder?: string\n className?: string\n containerClassName?: string\n selectListClassName?: string\n truncate?: boolean\n}\n\nconst Select = ({\n label = '',\n required = false,\n list = [],\n value = '',\n disabled = false,\n error = '',\n errorClassName = '',\n onChange = (value: string) => {},\n placeholder = '',\n className = '',\n containerClassName = '',\n selectListClassName = '',\n truncate = false,\n ...props\n}: SelectProps) => {\n const dropdownRef = useRef(null)\n const [selecting, setSelecting] = useState(false)\n const buttonRef = useRef<HTMLDivElement>(null)\n\n const displayValue = list.find(item => item?.value === value)?.text\n useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n if (buttonRef.current && !buttonRef.current?.contains(event.target as Node)) {\n setSelecting(false)\n }\n }\n document.addEventListener('mousedown', handleClickOutside)\n return () => {\n document.removeEventListener('mousedown', handleClickOutside)\n }\n }, [])\n\n // useEffect(() => {\n // // scroll to select item when select is open\n // // start_ai_generated\n // if (selecting && value) {\n // const selectedElement = dropdownRef.current.querySelector(`[data-value=\"${value}\"]`)\n // if (selectedElement) {\n // scrollParentToChild(dropdownRef.current, selectedElement)\n // }\n // }\n // // end_ai_generated\n // }, [selecting, value])\n\n return (\n <div className={classNames('relative w-full', containerClassName)}>\n {label && (\n <div className=\"mb-[10px] text-[16px] font-bold\">\n {label}\n {required && <span className=\"text-[#F84D4F]\">*</span>}\n </div>\n )}\n <div ref={buttonRef} className=\"relative block\">\n <div\n className={classNames(\n 'flex h-[38px] w-full cursor-pointer items-center justify-between rounded-[2px] border px-[12px] text-[16px] font-bold transition-all x:text-[14px]',\n placeholder && !value ? 'placeholder:text-[#999]' : '',\n disabled ? 'pointer-events-none bg-[#F7F8F9]' : 'bg-white',\n error ? '!border-[#F84D4F]' : 'border-[#E8E8E8]',\n list.length <= 1 && 'cursor-default',\n className\n )}\n onClick={() => {\n if (list.length > 1) {\n setSelecting(!selecting)\n }\n }}\n onChange={event => {\n onChange((event.target as HTMLSelectElement).value)\n }}\n role=\"button\"\n tabIndex={0}\n onKeyDown={e => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n }\n }}\n {...props}\n >\n {!value && placeholder ? (\n <div className=\"text-[#999]\">{placeholder}</div>\n ) : (\n <div className={cn('line-clamp-1', truncate ? 'min-w-0 flex-1 truncate' : 'flex-1')}>{displayValue}</div>\n )}\n {list.length > 1 && (\n <ChevronDownIcon\n className={classNames(\n 'ml-[4px] h-[18px] w-[18px] flex-shrink-0 stroke-[#999999] transition-transform',\n selecting && 'rotate-180'\n )}\n />\n )}\n </div>\n <div\n ref={dropdownRef}\n className={classNames(\n 'absolute left-0 right-0 top-full z-[1] mt-[8px] max-h-[318px] overflow-auto rounded-[4px] bg-white py-[6px] shadow-[0_1px_12px_0px_#0000001F] transition-all duration-300',\n selecting ? '' : 'pointer-events-none opacity-0',\n selectListClassName\n )}\n >\n {list.map(item => (\n <div\n key={item.value}\n data-value={item.value}\n className={classNames(\n 'flex h-[47px] w-full flex-shrink-0 cursor-pointer items-center whitespace-nowrap bg-white px-[14px] text-[15px] font-bold text-[#333] transition-colors duration-300 hover:bg-[#F7F8F9]',\n value === item.value ? '!bg-[#E8E8E8]' : '',\n item?.disabled ? 'pointer-events-none text-[#C8C8C8]' : ''\n )}\n onClick={() => {\n onChange(item.value)\n setSelecting(false)\n }}\n role=\"button\"\n tabIndex={0}\n onKeyDown={e => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n }\n }}\n >\n {item.text}\n </div>\n ))}\n </div>\n </div>\n {error && (\n <div className={classNames('mt-[8px] text-[14px] text-[#F84D4F]', errorClassName)}>\n {typeof error === 'string' ? `*${error}` : error}\n </div>\n )}\n </div>\n )\n}\n\nexport default Select"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,IAAA,eAAAC,EAAAH,GAoEQ,IAAAI,EAAA,6BApERC,EAAgC,uCAChCC,EAAqC,qCACrCC,EAAmD,iBAkBnD,MAAMC,EAAS,CAAC,CACd,MAAAC,EAAQ,GACR,SAAAC,EAAW,GACX,KAAAC,EAAO,CAAC,EACR,MAAAC,EAAQ,GACR,SAAAC,EAAW,GACX,MAAAC,EAAQ,GACR,eAAAC,EAAiB,GACjB,SAAAC,EAAYJ,GAAkB,CAAC,EAC/B,YAAAK,EAAc,GACd,UAAAC,EAAY,GACZ,mBAAAC,EAAqB,GACrB,oBAAAC,EAAsB,GACtB,SAAAC,EAAW,GACX,GAAGC,CACL,IAAmB,CACjB,MAAMC,KAAc,UAAO,IAAI,EACzB,CAACC,EAAWC,CAAY,KAAI,YAAS,EAAK,EAC1CC,KAAY,UAAuB,IAAI,EAEvCC,EAAehB,EAAK,KAAKiB,GAAQA,GAAM,QAAUhB,CAAK,GAAG,KAC/D,sBAAU,IAAM,CACd,MAAMiB,EAAsBC,GAAsB,CAC5CJ,EAAU,SAAW,CAACA,EAAU,SAAS,SAASI,EAAM,MAAc,GACxEL,EAAa,EAAK,CAEtB,EACA,gBAAS,iBAAiB,YAAaI,CAAkB,EAClD,IAAM,CACX,SAAS,oBAAoB,YAAaA,CAAkB,CAC9D,CACF,EAAG,CAAC,CAAC,KAeH,QAAC,OAAI,aAAW,EAAAE,IAAW,kBAAmBZ,CAAkB,EAC7D,UAAAV,MACC,QAAC,OAAI,UAAU,kCACZ,UAAAA,EACAC,MAAY,OAAC,QAAK,UAAU,iBAAiB,aAAC,GACjD,KAEF,QAAC,OAAI,IAAKgB,EAAW,UAAU,iBAC7B,qBAAC,OACC,aAAW,EAAAK,IACT,qJACAd,GAAe,CAACL,EAAQ,0BAA4B,GACpDC,EAAW,mCAAqC,WAChDC,EAAQ,oBAAsB,mBAC9BH,EAAK,QAAU,GAAK,iBACpBO,CACF,EACA,QAAS,IAAM,CACTP,EAAK,OAAS,GAChBc,EAAa,CAACD,CAAS,CAE3B,EACA,SAAUM,GAAS,CACjBd,EAAUc,EAAM,OAA6B,KAAK,CACpD,EACA,KAAK,SACL,SAAU,EACV,UAAW,GAAK,EACV,EAAE,MAAQ,SAAW,EAAE,MAAQ,MACjC,EAAE,eAAe,CAErB,EACC,GAAGR,EAEH,WAACV,GAASK,KACT,OAAC,OAAI,UAAU,cAAe,SAAAA,EAAY,KAE1C,OAAC,OAAI,aAAW,MAAG,eAAgBI,EAAW,0BAA4B,QAAQ,EAAI,SAAAM,EAAa,EAEpGhB,EAAK,OAAS,MACb,OAAC,mBACC,aAAW,EAAAoB,IACT,iFACAP,GAAa,YACf,EACF,GAEJ,KACA,OAAC,OACC,IAAKD,EACL,aAAW,EAAAQ,IACT,4KACAP,EAAY,GAAK,gCACjBJ,CACF,EAEC,SAAAT,EAAK,IAAIiB,MACR,OAAC,OAEC,aAAYA,EAAK,MACjB,aAAW,EAAAG,IACT,0LACAnB,IAAUgB,EAAK,MAAQ,gBAAkB,GACzCA,GAAM,SAAW,qCAAuC,EAC1D,EACA,QAAS,IAAM,CACbZ,EAASY,EAAK,KAAK,EACnBH,EAAa,EAAK,CACpB,EACA,KAAK,SACL,SAAU,EACV,UAAWO,GAAK,EACVA,EAAE,MAAQ,SAAWA,EAAE,MAAQ,MACjCA,EAAE,eAAe,CAErB,EAEC,SAAAJ,EAAK,MAnBDA,EAAK,KAoBZ,CACD,EACH,GACF,EACCd,MACC,OAAC,OAAI,aAAW,EAAAiB,IAAW,sCAAuChB,CAAc,EAC7E,gBAAOD,GAAU,SAAW,IAAIA,CAAK,GAAKA,EAC7C,GAEJ,CAEJ,EAEA,IAAOZ,EAAQM",
6
+ "names": ["Select_exports", "__export", "Select_default", "__toCommonJS", "import_jsx_runtime", "import_outline", "import_helpers", "import_react", "Select", "label", "required", "list", "value", "disabled", "error", "errorClassName", "onChange", "placeholder", "className", "containerClassName", "selectListClassName", "truncate", "props", "dropdownRef", "selecting", "setSelecting", "buttonRef", "displayValue", "item", "handleClickOutside", "event", "classNames", "e"]
7
+ }
@@ -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,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("../../../../ProductProvider");const b=()=>{const{product:a}=(0,m.useProductContext)();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 { useProductContext } from '../../../../ProductProvider'\n\nexport const SpecsModal = () => {\n const { product } = useProductContext()\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,EAAkC,uCAE3B,MAAMJ,EAAa,IAAM,CAC9B,KAAM,CAAE,QAAAK,CAAQ,KAAI,qBAAkB,EAEtC,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_ProductProvider", "product", "key", "value"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var D=Object.create;var x=Object.defineProperty;var j=Object.getOwnPropertyDescriptor;var F=Object.getOwnPropertyNames;var _=Object.getPrototypeOf,O=Object.prototype.hasOwnProperty;var W=(t,a)=>{for(var r in a)x(t,r,{get:a[r],enumerable:!0})},V=(t,a,r,g)=>{if(a&&typeof a=="object"||typeof a=="function")for(let l of F(a))!O.call(t,l)&&l!==r&&x(t,l,{get:()=>a[l],enumerable:!(g=j(a,l))||g.enumerable});return t};var Y=(t,a,r)=>(r=t!=null?D(_(t)):{},V(a||!t||!t.__esModule?x(r,"default",{value:t,enumerable:!0}):r,t)),Z=t=>V(x({},"__esModule",{value:!0}),t);var U={};W(U,{default:()=>Q});module.exports=Z(U);var e=require("react/jsx-runtime"),P=require("../../../../AiuiProvider/index.js"),u=require("../../../../../components"),o=require("react"),m=require("swiper/react"),i=require("swiper/modules"),w=require("../../../../../helpers/index.js"),C=require("./types.js"),b=require("@radix-ui/react-tabs"),T=require("../../../ProductProvider.js"),z=require("../../../hooks/use-variant-media.js"),R=require("./components/SpecsModal.js"),A=Y(require("./components/CompareModal.js")),B=require("../../../utils/index.js");const E=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"})]}),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",{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"})]}),H=()=>{const{copyWriting:t}=(0,P.useAiuiContext)(),{product:a,variant:r,isMobile:g}=(0,T.useProductContext)(),l=(0,z.useVariantMedia)({product:a,variant:r}),[k,N]=(0,o.useState)(null),c=r?.metafields?.component?.custom_media_list;let f,y,h,v;c&&c?.available?(f=c?.product||[],y=c?.scenarios||[],h=c?.keyFeatures||[],v=c?.video||[]):(f=l?.productList,y=l?.sceneList,h=l?.keyFeaturesList,v=l?.videoList);const M=(0,o.useMemo)(()=>[...f,...y,...v],[f,y,v]),L={productList:f,sceneList:y,keyFeaturesList:h,videoList:v},d=(0,o.useMemo)(()=>(a?.payload?.components?.find(n=>n.componentKey==="ProductGallery")?.data||[])?.map(n=>({...n,galleries:L[n?.galleries]||[]})).filter(n=>n.galleries.length>0),[a?.payload,L]),s=(0,o.useRef)({}),[S,G]=(0,o.useState)(d?.[0]),$=(p,n)=>{switch(p?.galleryTabType){case C.GalleryTabType.GALLERY_IMAGE:return(0,e.jsx)(q,{...p,onCurrentTabLoopEnd:()=>{G(d?.[n])},onCurrentTabLoopStart:()=>{G(d?.[n])},index:n});case C.GalleryTabType.GALLERY_VIDEO:return(0,e.jsx)(J,{...p});default:return null}};return(0,e.jsx)("div",{id:"ipc-product-gallery",children:(0,e.jsxs)(b.Root,{className:"relative",defaultValue:d?.[0]?.tabValue,children:[(0,e.jsx)("div",{className:"h-[420px] tablet:h-[620px] desktop:rounded-2xl desktop:h-[560px] lg-desktop:h-[700px] bg-[#EAEAEC] desktop:relative ",children:d.map((p,n)=>(0,e.jsx)(b.Content,{className:"h-full",value:p.tabValue,children:$(p,n)},p.tabValue))}),(0,e.jsx)(K,{galleryTabs:d,activeGalleryTab:S,setActiveGalleryTab:G})]})})},K=({galleryTabs:t,activeGalleryTab:a,setActiveGalleryTab:r})=>{const{product:g}=(0,T.useProductContext)();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)(b.List,{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(l=>(0,e.jsx)(b.Trigger,{className:(0,w.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",l.tabValue===a?.tabValue&&"bg-white"),onClick:()=>r(l),value:l.tabValue,children:l.tabLabel},l.tabValue))})}),(0,e.jsx)("div",{className:"laptop:gap-2 hidden laptop:flex",children:g.metafields?.global?.specifications&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(R.SpecsModal,{})," | ",(0,e.jsx)(A.default,{})]})})]})},q=(0,o.forwardRef)((t,a)=>{const{locale:r="us",copyWriting:g}=(0,P.useAiuiContext)(),{variant:l,totalSavings:k}=(0,T.useProductContext)(),N=(0,o.useRef)(null),[c,f]=(0,o.useState)(null),[y,h]=(0,o.useState)(!0),[v,M]=(0,o.useState)(!1),[L,d]=(0,o.useState)(null);return(0,e.jsxs)("div",{className:"h-full",children:[(0,e.jsx)(m.Swiper,{ref:a,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:d,onProgress:s=>{h(s.isBeginning),M(s.isEnd)},pagination:{clickable:!0,el:N.current},onSlideChange:s=>{s&&(s.isEnd?t?.onCurrentTabLoopEnd?.():s.isBeginning&&t?.onCurrentTabLoopStart?.())},thumbs:{swiper:c},modules:[i.Mousewheel,i.Thumbs,i.Navigation,i.Pagination],mousewheel:{forceToAxis:!0},breakpoints:{0:{slidesPerView:1,freeMode:!1}},children:t?.galleries?.map((s,S)=>(0,e.jsx)(m.SwiperSlide,{className:"h-full",children:(0,e.jsx)(u.Picture,{source:s?.image?.url,alt:s?.image?.altText,className:"h-full",imgClassName:"object-contain h-full "})},t?.id+"SwiperSlideItem"+S))}),l.availableForSale&&!!k&&!t.index&&(0,e.jsx)(u.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:k,currencyCode:l?.price?.currencyCode,locale:r})} ${g?.off}`}),(0,e.jsx)("div",{className:(0,w.cn)("hidden tablet:block 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)(E,{className:"tablet:size-10 lg-desktop:size-12"})}),(0,e.jsx)("div",{className:(0,w.cn)("hidden tablet:block 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)(I,{className:"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)(m.Swiper,{className:"flex items-center justify-between",onSwiper:f,spaceBetween:12,slidesPerView:6,freeMode:!0,watchSlidesProgress:!0,modules:[i.Navigation,i.Thumbs],children:t?.galleries?.map((s,S)=>(0,e.jsx)(m.SwiperSlide,{className:"!w-auto [&.swiper-slide-thumb-active]:border [&.swiper-slide-thumb-active]:border-brand",children:(0,e.jsx)(u.Picture,{source:s.image?.url,alt:s.image?.altText,className:"size-10 lg-desktop:size-12 rounded",imgClassName:"object-contain h-full"})},t?.id+"SwiperSlideThumbItem"+S))})}),!t?.index&&(0,e.jsxs)("div",{className:"flex items-center gap-2",children:[(0,e.jsx)(u.Picture,{source:t?.comment?.avatar?.url,className:"size-10 rounded-full shrink-0",imgClassName:"object-cover "}),(0,e.jsx)(u.Text,{html:t?.comment?.content,className:"text-sm lg-desktop:text-base max-w-[528px] font-bold text-[#6D6D6F] line-clamp-2"})]})]}),(0,e.jsx)("div",{ref:N,className:"tablet:hidden text-center absolute !bottom-[70px] left-4 right-4 z-10"})]})}),J=t=>(0,e.jsxs)("div",{className:"h-full",children:[(0,e.jsx)(m.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:[i.Mousewheel,i.Thumbs,i.Navigation,i.Pagination],mousewheel:{forceToAxis:!0},breakpoints:{0:{slidesPerView:1,freeMode:!1}},children:t?.galleries?.map((a,r)=>(0,e.jsx)(m.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:a?.sources?.[0]?.url,type:"video/mp4"}),(0,e.jsx)("source",{src:a?.sources?.[0]?.url,type:"video/webm"}),(0,e.jsx)("source",{src:a?.sources?.[0]?.url,type:"video/ogg"})]})},t?.id+"SwiperSlideItem"+r))}),(0,e.jsx)("div",{className:(0,w.cn)("hidden tablet:block 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)(E,{className:"tablet:size-10 lg-desktop:size-12"})}),(0,e.jsx)("div",{className:(0,w.cn)("hidden tablet:block 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)(I,{className:"tablet:size-10 lg-desktop:size-12"})})]}),le=t=>(0,e.jsx)("div",{children:"3D View"});var Q=H;
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 { useProductContext } from '../../../ProductProvider.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, isMobile } = useProductContext()\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 // \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:\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 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] 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 } = useProductContext()\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 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={() => setActiveGalleryTab(item)}\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 } = useProductContext()\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 return (\n <div className=\"h-full\">\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=\"h-full\"\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:block 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 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 {/* {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]:border-brand\"\n >\n <Picture\n source={item.image?.url}\n alt={item.image?.altText}\n className=\"size-10 lg-desktop:size-12 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-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-[#6D6D6F] 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\">\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 tablet:block 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 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": "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",
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_ProductProvider", "import_use_variant_media", "import_SpecsModal", "import_CompareModal", "import_utils", "SwiperLeftButtonIcon", "props", "SwiperRightButtonIcon", "ProductGallery", "copyWriting", "product", "variant", "isMobile", "defaultMediaData", "swiper", "setSwiper", "customMediaList", "productList", "sceneList", "keyFeaturesList", "videoList", "allMedia", "galleryMap", "galleryTabs", "item", "gallerySwiperRefs", "activeGalleryTab", "setActiveGalleryTab", "renderGalleryForTab", "tab", "index", "ProductGalleryTabImage", "ProductGalleryTabVideo", "ProductGalleryTab", "CompareModal", "ref", "locale", "totalSavings", "paginationRef", "thumbsSwiper", "setThumbsSwiper", "isStart", "setStart", "isEnd", "setEnd", "jIndex", "ProductGalleryTab3DView"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var o=Object.defineProperty;var n=Object.getOwnPropertyDescriptor;var d=Object.getOwnPropertyNames;var g=Object.prototype.hasOwnProperty;var p=(a,e)=>{for(var i in e)o(a,i,{get:e[i],enumerable:!0})},s=(a,e,i,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of d(e))!g.call(a,r)&&r!==i&&o(a,r,{get:()=>e[r],enumerable:!(t=n(e,r))||t.enumerable});return a};var m=a=>s(o({},"__esModule",{value:!0}),a);var b={};p(b,{GalleryTabType:()=>l});module.exports=m(b);var l=(t=>(t.GALLERY_IMAGE="ipc-gallery-tab-image",t.GALLERY_VIDEO="ipc-gallery-tab-video",t.GALLERY_3D_VIEW="ipc-gallery-tab-3d-view",t))(l||{});
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 = 'ipc-gallery-tab-image',\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,cAAgB,wBAChBA,EAAA,cAAgB,wBAChBA,EAAA,gBAAkB,0BAHRA,OAAA",
6
+ "names": ["types_exports", "__export", "GalleryTabType", "__toCommonJS"]
7
+ }
@@ -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 m=(o,t)=>{for(var e in t)s(o,e,{get:t[e],enumerable:!0})},k=(o,t,e,c)=>{if(t&&typeof t=="object"||typeof t=="function")for(let p of r(t))!i.call(o,p)&&p!==e&&s(o,p,{get:()=>t[p],enumerable:!(c=l(t,p))||c.enumerable});return o};var x=o=>k(s({},"__esModule",{value:!0}),o);var R={};m(R,{default:()=>N});module.exports=x(R);var a=require("react/jsx-runtime"),d=require("../../../../components");const G=({BoxLeftGallery:o,BoxRightDetail:t,BoxBottomSummary:e})=>(0,a.jsxs)("div",{id:"ipc-product-card",className:"desktop:mt-6 desktop:px-16 lg-desktop:px-[calc(50%-832px)]",children:[(0,a.jsxs)(d.Grid,{className:"laptop:gap-6",children:[(0,a.jsx)(d.GridItem,{className:"col-span-12 tablet:px-8 laptop:px-0 desktop:col-start-1 desktop:col-span-8 desktop:sticky desktop:top-[124px] h-fit",children:o}),(0,a.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=\"laptop:gap-6\">\n <GridItem className=\"col-span-12 tablet:px-8 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,eACd,oBAAC,YAAS,UAAU,sHACjB,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,2 @@
1
+ "use strict";var I=Object.create;var N=Object.defineProperty;var L=Object.getOwnPropertyDescriptor;var R=Object.getOwnPropertyNames;var A=Object.getPrototypeOf,O=Object.prototype.hasOwnProperty;var V=(i,a)=>{for(var l in a)N(i,l,{get:a[l],enumerable:!0})},G=(i,a,l,o)=>{if(a&&typeof a=="object"||typeof a=="function")for(let n of R(a))!O.call(i,n)&&n!==l&&N(i,n,{get:()=>a[n],enumerable:!(o=L(a,n))||o.enumerable});return i};var S=(i,a,l)=>(l=i!=null?I(A(i)):{},G(a||!i||!i.__esModule?N(l,"default",{value:i,enumerable:!0}):l,i)),$=i=>G(N({},"__esModule",{value:!0}),i);var H={};V(H,{default:()=>E});module.exports=$(H);var e=require("react/jsx-runtime"),t=require("../../../../../components"),b=require("../../../ProductProvider"),f=require("react"),x=require("../../../utils"),y=require("../../../../AiuiProvider"),C=require("../../../../../helpers"),z=S(require("decimal.js"));const T=({})=>{const{locale:i="us",copyWriting:a}=(0,y.useAiuiContext)(),{product:l,variant:o,finalPrice:n,comparePrice:m,coupon:r,selectedOptions:d,onAddToCart:k,onBuyNow:h,savingDetail:g,joinedRecommendBuyProducts:s,setJoinedRecommendBuyProducts:u}=(0,b.useProductContext)();if(!o.availableForSale)return null;const{bundleVariant:B,giftVariant:w}=J()||{},[c,v]=(0,f.useState)();(0,f.useEffect)(()=>{v({bundle:s.bundle?void 0:B,gift:s.gift?void 0:w})},[B,w,s]);const D=(0,f.useMemo)(()=>new z.default(m).minus(g.freeGift).toNumber(),[m,g]);return(0,e.jsx)("div",{className:"ipc-product-summary bg-[#F5F5F7] mt-16",children:(0,e.jsxs)(t.Grid,{className:"px-4 py-6 tablet:p-8",children:[(0,e.jsxs)(t.GridItem,{className:"col-span-12 desktop:col-start-1 desktop:col-span-5",children:[(0,e.jsx)(t.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)(t.Picture,{source:o.image?.url||l?.images?.[0]?.url,className:"h-full w-full",imgClassName:"object-contain h-full"})})]}),(0,e.jsxs)(t.GridItem,{className:"col-span-12 mt-8 desktop:col-start-7 laptop:mt-0 desktop: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)(t.Picture,{source:o.image?.url||l?.images?.[0]?.url,className:"size-16 object-cover"}),(0,e.jsxs)("div",{className:"flex flex-col gap-[6px] max-w-[178px] tablet:max-w-none",children:[(0,e.jsx)(t.Text,{className:"font-bold text-[14px] desktop:text-[16px] lg-desktop:text-[18px]",html:l.title}),(0,e.jsx)(t.Text,{className:"text-[12px] laptop:text-[14px] desktop:text-[18px] font-bold text-[#6D6D6F]",html:`x1 | ${d.color||d.colour||d.couleur}`})]})]}),(0,e.jsxs)("div",{className:"flex items-center gap-1",children:[(0,e.jsx)(t.Text,{className:"text-base desktop:text-2xl font-bold",html:(0,x.formatPrice)({amount:n,currencyCode:o.price.currencyCode,locale:i})}),r&&(0,e.jsx)(t.Text,{className:"text-base desktop:text-2xl font-bold line-through text-[#6D6D6F]",html:(0,x.formatPrice)({amount:D,currencyCode:o.price.currencyCode,locale:i})})]})]}),s?.gift&&(0,e.jsx)(j,{giftOperation:p=>{u?.({...s,gift:void 0}),v?.({...c,gift:p})},giftStatus:!!s?.gift,gift:s?.gift}),s?.bundle&&(0,e.jsx)(F,{bundleOperation:p=>{u?.({...s,bundle:void 0}),v?.({...c,bundle:p})},bundleStatus:!!s?.bundle,bundleListItem:s?.bundle})]}),(c?.bundle||c?.gift)&&(0,e.jsxs)("div",{className:"mt-6",children:[(0,e.jsx)(t.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:[c?.gift&&(0,e.jsx)(j,{giftOperation:p=>{u?.({...s,gift:p}),v?.({...c,gift:void 0})},giftStatus:!c?.gift,gift:c?.gift}),c?.bundle&&(0,e.jsx)(F,{bundleOperation:p=>{u?.({...s,bundle:p}),v?.({...c,bundle:void 0})},bundleStatus:!c?.bundle,bundleListItem:c?.bundle})]})]})]}),(0,e.jsxs)("div",{className:"text-right",children:[(0,e.jsx)(t.Text,{className:"laptop:text-xl desktop:text-2xl font-bold text-right",html:`${a?.totalPrice} ${(0,x.formatPrice)({amount:n,currencyCode:o.price.currencyCode,locale:i})}`}),r&&(0,e.jsx)(t.Text,{className:"text-base desktop:text-2xl ml-1 font-bold line-through text-[#6D6D6F]",html:(0,x.formatPrice)({amount:D,currencyCode:o.price.currencyCode,locale:i})}),(0,e.jsxs)("div",{className:"flex gap-3 mt-2",children:[(0,e.jsx)(t.Button,{size:"lg",variant:"secondary",className:"w-1/2",onClick:()=>k?.(),children:a?.addToCart}),(0,e.jsx)(t.Button,{size:"lg",variant:"primary",className:"w-1/2",onClick:()=>h?.(),children:a?.shopNow})]})]})]})]})})},J=()=>{const{bundle:i,variant:a,checkedBundle:l,freeGift:o,checkedGift:n}=(0,b.useProductContext)();let m,r;const{bundleList:d}=i||{},{giftList:k=[]}=o||{},h=d?.filter(u=>u.variants.slice(1,u.variants.length).every(P=>P.variant.availableForSale))||[],[g]=h;m=l||g;const[s]=k?.filter(u=>u.availableForSale);return r=n||s,{bundleVariant:m,giftVariant:r}},F=({bundleOperation:i,bundleStatus:a,bundleListItem:l})=>{const{locale:o="us"}=(0,y.useAiuiContext)(),{variant:n,setCheckedBundle:m}=(0,b.useProductContext)(),r=l?.variants.filter(d=>d.variant.sku!==n.sku);return(0,e.jsxs)("div",{className:"flex items-center justify-between",children:[r?.map(d=>(0,e.jsxs)("div",{className:"flex items-center gap-4",children:[(0,e.jsx)(t.Picture,{source:d?.variant?.image?.url,className:"size-16 object-cover"}),(0,e.jsx)("div",{className:"flex flex-col gap-[6px] max-w-[178px] tablet:max-w-none",children:(0,e.jsx)(t.Text,{className:"font-bold text-[14px] desktop:text-[16px] lg-desktop:text-[18px]",html:d.variant.product.title})})]},d.variant.id)),(0,e.jsxs)("div",{className:"flex flex-col items-end gap-1 justify-center",children:[a&&(0,e.jsx)(t.Text,{className:"text-base desktop:text-2xl font-bold",html:(0,x.formatPrice)({amount:r[0]?.price,locale:o,currencyCode:r[0]?.variant?.price?.currencyCode})}),(0,e.jsx)(t.Button,{size:a?"icon":"lg",variant:a?"link":"primary",onClick:()=>{m?.(a?void 0:l),i(l)},className:(0,C.cn)("shrink-0 size-auto",{underline:a}),children:a?"Remove":"Add +"})]})]})},j=({giftOperation:i,giftStatus:a,gift:l})=>{const{locale:o="us"}=(0,y.useAiuiContext)(),{freeGift:n,setCheckedGift:m}=(0,b.useProductContext)(),{freeLabel:r}=n||{};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)(t.Picture,{source:l?.image?.url,className:"size-16 object-cover"}),(0,e.jsxs)("div",{className:"flex flex-col gap-[6px] max-w-[178px] tablet:max-w-none",children:[(0,e.jsx)(t.Text,{className:"font-bold text-[14px] desktop:text-[16px] lg-desktop:text-[18px]",html:l?.product?.title}),(0,e.jsx)(t.Text,{className:"text-[12px] laptop:text-[14px] desktop:text-[18px] font-bold text-[#6D6D6F]",html:`x1 | ${r}`})]})]}),(0,e.jsxs)("div",{className:"flex flex-col items-end gap-2 justify-center",children:[a&&(0,e.jsxs)("div",{className:"flex items-center gap-1",children:[(0,e.jsx)(t.Text,{className:"text-base desktop:text-2xl font-bold",html:r}),(0,e.jsx)(t.Text,{className:"text-base desktop:text-2xl font-bold line-through text-[#6D6D6F]",html:(0,x.formatPrice)({amount:l.price.amount,locale:o,currencyCode:l.price.currencyCode})})]}),(0,e.jsx)(t.Button,{size:a?"icon":"lg",variant:a?"link":"primary",onClick:()=>{m?.(a?void 0:l),i(l)},className:(0,C.cn)("shrink-0 size-auto",{underline:a}),children:a?"Remove":"Add +"})]})]})};var E=T;
2
+ //# sourceMappingURL=index.js.map