@anker-in/headless-ui 1.3.56 → 1.3.58

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 (324) hide show
  1. package/dist/cjs/biz-components/AccessoriesShelf/components/AccessoriesProductGrid/index.d.ts +11 -0
  2. package/dist/cjs/biz-components/AccessoriesShelf/components/AccessoriesProductGrid/index.js +2 -0
  3. package/dist/cjs/biz-components/AccessoriesShelf/components/AccessoriesProductGrid/index.js.map +7 -0
  4. package/dist/cjs/biz-components/AccessoriesShelf/components/AccessoryShelf/ProductCard.d.ts +23 -0
  5. package/dist/cjs/biz-components/AccessoriesShelf/components/AccessoryShelf/ProductCard.js +2 -0
  6. package/dist/cjs/biz-components/AccessoriesShelf/components/AccessoryShelf/ProductCard.js.map +7 -0
  7. package/dist/cjs/biz-components/AccessoriesShelf/components/AccessoryShelf/index.d.ts +40 -0
  8. package/dist/cjs/biz-components/AccessoriesShelf/components/AccessoryShelf/index.js +2 -0
  9. package/dist/cjs/biz-components/AccessoriesShelf/components/AccessoryShelf/index.js.map +7 -0
  10. package/dist/cjs/biz-components/AccessoriesShelf/components/AccessoryShelf/types.d.ts +107 -0
  11. package/dist/cjs/biz-components/AccessoriesShelf/components/AccessoryShelf/types.js +2 -0
  12. package/dist/cjs/biz-components/AccessoriesShelf/components/AccessoryShelf/types.js.map +7 -0
  13. package/dist/cjs/biz-components/AccessoriesShelf/components/AddToCartSuccessPopover/index.d.ts +82 -0
  14. package/dist/cjs/biz-components/AccessoriesShelf/components/AddToCartSuccessPopover/index.js +2 -0
  15. package/dist/cjs/biz-components/AccessoriesShelf/components/AddToCartSuccessPopover/index.js.map +7 -0
  16. package/dist/cjs/biz-components/AccessoriesShelf/components/MainProductArea/index.d.ts +22 -0
  17. package/dist/cjs/biz-components/AccessoriesShelf/components/MainProductArea/index.js +2 -0
  18. package/dist/cjs/biz-components/AccessoriesShelf/components/MainProductArea/index.js.map +7 -0
  19. package/dist/cjs/biz-components/AccessoriesShelf/components/PromoBanner/index.d.ts +10 -0
  20. package/dist/cjs/biz-components/AccessoriesShelf/components/PromoBanner/index.js +2 -0
  21. package/dist/cjs/biz-components/AccessoriesShelf/components/PromoBanner/index.js.map +7 -0
  22. package/dist/cjs/biz-components/AccessoriesShelf/components/SectionHeader/index.d.ts +9 -0
  23. package/dist/cjs/biz-components/AccessoriesShelf/components/SectionHeader/index.js +2 -0
  24. package/dist/cjs/biz-components/AccessoriesShelf/components/SectionHeader/index.js.map +7 -0
  25. package/dist/cjs/biz-components/AccessoriesShelf/index.d.ts +9 -0
  26. package/dist/cjs/biz-components/AccessoriesShelf/index.js +2 -0
  27. package/dist/cjs/biz-components/AccessoriesShelf/index.js.map +7 -0
  28. package/dist/cjs/biz-components/AccessoriesShelf/types.d.ts +16 -0
  29. package/dist/cjs/biz-components/AccessoriesShelf/types.js +2 -0
  30. package/dist/cjs/biz-components/AccessoriesShelf/types.js.map +7 -0
  31. package/dist/cjs/biz-components/ActiveShelf/ProductCard.js +1 -1
  32. package/dist/cjs/biz-components/ActiveShelf/ProductCard.js.map +2 -2
  33. package/dist/cjs/biz-components/BuyOneGetOneShelf/PriceAndActions.js +1 -1
  34. package/dist/cjs/biz-components/BuyOneGetOneShelf/PriceAndActions.js.map +2 -2
  35. package/dist/cjs/biz-components/CartDetail/CartGiftSection/CartGiftSection.d.ts +15 -0
  36. package/dist/cjs/biz-components/CartDetail/CartGiftSection/CartGiftSection.js +2 -0
  37. package/dist/cjs/biz-components/CartDetail/CartGiftSection/CartGiftSection.js.map +7 -0
  38. package/dist/cjs/biz-components/CartDetail/CartGiftSection/components/GiftConfirmDialog/GiftConfirmDialog.d.ts +11 -0
  39. package/dist/cjs/biz-components/CartDetail/CartGiftSection/components/GiftConfirmDialog/GiftConfirmDialog.js +2 -0
  40. package/dist/cjs/biz-components/CartDetail/CartGiftSection/components/GiftConfirmDialog/GiftConfirmDialog.js.map +7 -0
  41. package/dist/cjs/biz-components/CartDetail/CartGiftSection/components/GiftConfirmDialog/index.d.ts +2 -0
  42. package/dist/cjs/biz-components/CartDetail/CartGiftSection/components/GiftConfirmDialog/index.js +2 -0
  43. package/dist/cjs/biz-components/CartDetail/CartGiftSection/components/GiftConfirmDialog/index.js.map +7 -0
  44. package/dist/cjs/biz-components/CartDetail/CartGiftSection/components/GiftOptionRow/GiftOptionRow.d.ts +14 -0
  45. package/dist/cjs/biz-components/CartDetail/CartGiftSection/components/GiftOptionRow/GiftOptionRow.js +2 -0
  46. package/dist/cjs/biz-components/CartDetail/CartGiftSection/components/GiftOptionRow/GiftOptionRow.js.map +7 -0
  47. package/dist/cjs/biz-components/CartDetail/CartGiftSection/components/GiftOptionRow/index.d.ts +2 -0
  48. package/dist/cjs/biz-components/CartDetail/CartGiftSection/components/GiftOptionRow/index.js +2 -0
  49. package/dist/cjs/biz-components/CartDetail/CartGiftSection/components/GiftOptionRow/index.js.map +7 -0
  50. package/dist/cjs/biz-components/CartDetail/CartGiftSection/index.d.ts +2 -0
  51. package/dist/cjs/biz-components/CartDetail/CartGiftSection/index.js +2 -0
  52. package/dist/cjs/biz-components/CartDetail/CartGiftSection/index.js.map +7 -0
  53. package/dist/cjs/biz-components/CartDetail/CartItemRow/CartItemRow.d.ts +56 -0
  54. package/dist/cjs/biz-components/CartDetail/CartItemRow/CartItemRow.js +2 -0
  55. package/dist/cjs/biz-components/CartDetail/CartItemRow/CartItemRow.js.map +7 -0
  56. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemGiftShipping/CartItemGiftShipping.d.ts +4 -0
  57. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemGiftShipping/CartItemGiftShipping.js +2 -0
  58. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemGiftShipping/CartItemGiftShipping.js.map +7 -0
  59. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemGiftShipping/index.d.ts +2 -0
  60. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemGiftShipping/index.js +2 -0
  61. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemGiftShipping/index.js.map +7 -0
  62. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemGiftShipping/types.d.ts +10 -0
  63. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemGiftShipping/types.js +2 -0
  64. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemGiftShipping/types.js.map +7 -0
  65. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemInfo/CartItemInfo.d.ts +11 -0
  66. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemInfo/CartItemInfo.js +2 -0
  67. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemInfo/CartItemInfo.js.map +7 -0
  68. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemInfo/index.d.ts +2 -0
  69. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemInfo/index.js +2 -0
  70. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemInfo/index.js.map +7 -0
  71. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemKsp/CartItemKsp.d.ts +13 -0
  72. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemKsp/CartItemKsp.js +2 -0
  73. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemKsp/CartItemKsp.js.map +7 -0
  74. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemKsp/index.d.ts +2 -0
  75. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemKsp/index.js +2 -0
  76. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemKsp/index.js.map +7 -0
  77. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemRemoveConfirm/CartItemRemoveConfirm.d.ts +4 -0
  78. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemRemoveConfirm/CartItemRemoveConfirm.js +2 -0
  79. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemRemoveConfirm/CartItemRemoveConfirm.js.map +7 -0
  80. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemRemoveConfirm/index.d.ts +2 -0
  81. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemRemoveConfirm/index.js +2 -0
  82. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemRemoveConfirm/index.js.map +7 -0
  83. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemRemoveConfirm/types.d.ts +11 -0
  84. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemRemoveConfirm/types.js +2 -0
  85. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemRemoveConfirm/types.js.map +7 -0
  86. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemShipping/CartItemShipping.d.ts +8 -0
  87. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemShipping/CartItemShipping.js +2 -0
  88. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemShipping/CartItemShipping.js.map +7 -0
  89. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemShipping/index.d.ts +2 -0
  90. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemShipping/index.js +2 -0
  91. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemShipping/index.js.map +7 -0
  92. package/dist/cjs/biz-components/CartDetail/CartItemRow/index.d.ts +2 -0
  93. package/dist/cjs/biz-components/CartDetail/CartItemRow/index.js +2 -0
  94. package/dist/cjs/biz-components/CartDetail/CartItemRow/index.js.map +7 -0
  95. package/dist/cjs/biz-components/CartDetail/CartPerksSection/CartPerksSection.d.ts +34 -0
  96. package/dist/cjs/biz-components/CartDetail/CartPerksSection/CartPerksSection.js +2 -0
  97. package/dist/cjs/biz-components/CartDetail/CartPerksSection/CartPerksSection.js.map +7 -0
  98. package/dist/cjs/biz-components/CartDetail/CartPerksSection/index.d.ts +2 -0
  99. package/dist/cjs/biz-components/CartDetail/CartPerksSection/index.js +2 -0
  100. package/dist/cjs/biz-components/CartDetail/CartPerksSection/index.js.map +7 -0
  101. package/dist/cjs/biz-components/CartDetail/CartPriceSummary/CartPriceSummary.d.ts +49 -0
  102. package/dist/cjs/biz-components/CartDetail/CartPriceSummary/CartPriceSummary.js +2 -0
  103. package/dist/cjs/biz-components/CartDetail/CartPriceSummary/CartPriceSummary.js.map +7 -0
  104. package/dist/cjs/biz-components/CartDetail/CartPriceSummary/index.d.ts +2 -0
  105. package/dist/cjs/biz-components/CartDetail/CartPriceSummary/index.js +2 -0
  106. package/dist/cjs/biz-components/CartDetail/CartPriceSummary/index.js.map +7 -0
  107. package/dist/cjs/biz-components/CartDetail/CartSummaryHeader/CartSummaryHeader.d.ts +26 -0
  108. package/dist/cjs/biz-components/CartDetail/CartSummaryHeader/CartSummaryHeader.js +2 -0
  109. package/dist/cjs/biz-components/CartDetail/CartSummaryHeader/CartSummaryHeader.js.map +7 -0
  110. package/dist/cjs/biz-components/CartDetail/CartSummaryHeader/index.d.ts +2 -0
  111. package/dist/cjs/biz-components/CartDetail/CartSummaryHeader/index.js +2 -0
  112. package/dist/cjs/biz-components/CartDetail/CartSummaryHeader/index.js.map +7 -0
  113. package/dist/cjs/biz-components/CartDetail/CartThirdParty/CartThirdParty.d.ts +10 -0
  114. package/dist/cjs/biz-components/CartDetail/CartThirdParty/CartThirdParty.js +2 -0
  115. package/dist/cjs/biz-components/CartDetail/CartThirdParty/CartThirdParty.js.map +7 -0
  116. package/dist/cjs/biz-components/CartDetail/CartThirdParty/index.d.ts +2 -0
  117. package/dist/cjs/biz-components/CartDetail/CartThirdParty/index.js +2 -0
  118. package/dist/cjs/biz-components/CartDetail/CartThirdParty/index.js.map +7 -0
  119. package/dist/cjs/biz-components/CartDetail/index.d.ts +16 -0
  120. package/dist/cjs/biz-components/CartDetail/index.js +2 -0
  121. package/dist/cjs/biz-components/CartDetail/index.js.map +7 -0
  122. package/dist/cjs/biz-components/CartDetail/types.d.ts +132 -0
  123. package/dist/cjs/biz-components/CartDetail/types.js +2 -0
  124. package/dist/cjs/biz-components/CartDetail/types.js.map +7 -0
  125. package/dist/cjs/biz-components/CreditsShelf/ProductCard.js +1 -1
  126. package/dist/cjs/biz-components/CreditsShelf/ProductCard.js.map +2 -2
  127. package/dist/cjs/biz-components/HeaderNavigation/index.js +1 -1
  128. package/dist/cjs/biz-components/HeaderNavigation/index.js.map +2 -2
  129. package/dist/cjs/biz-components/ImageOverlayShelf/ProductCard.js +1 -1
  130. package/dist/cjs/biz-components/ImageOverlayShelf/ProductCard.js.map +2 -2
  131. package/dist/cjs/biz-components/MediaShelf/ProductCard.js +1 -1
  132. package/dist/cjs/biz-components/MediaShelf/ProductCard.js.map +2 -2
  133. package/dist/cjs/biz-components/SceneShelf/ProductsPanel.js +1 -1
  134. package/dist/cjs/biz-components/SceneShelf/ProductsPanel.js.map +2 -2
  135. package/dist/cjs/biz-components/SceneShelfV2/index.js +1 -1
  136. package/dist/cjs/biz-components/SceneShelfV2/index.js.map +2 -2
  137. package/dist/cjs/biz-components/SceneShelfV3/ProductCard.js +1 -1
  138. package/dist/cjs/biz-components/SceneShelfV3/ProductCard.js.map +2 -2
  139. package/dist/cjs/biz-components/ShelfDisplay/shelfDisplayItem.js +1 -1
  140. package/dist/cjs/biz-components/ShelfDisplay/shelfDisplayItem.js.map +2 -2
  141. package/dist/cjs/biz-components/index.d.ts +6 -0
  142. package/dist/cjs/biz-components/index.js +1 -1
  143. package/dist/cjs/biz-components/index.js.map +3 -3
  144. package/dist/cjs/components/breadcrumb.d.ts +12 -0
  145. package/dist/cjs/components/breadcrumb.js +2 -0
  146. package/dist/cjs/components/breadcrumb.js.map +7 -0
  147. package/dist/cjs/components/index.d.ts +3 -1
  148. package/dist/cjs/components/index.js +1 -1
  149. package/dist/cjs/components/index.js.map +3 -3
  150. package/dist/cjs/components/input-number.d.ts +22 -0
  151. package/dist/cjs/components/input-number.js +1 -1
  152. package/dist/cjs/components/input-number.js.map +3 -3
  153. package/dist/cjs/components/input.d.ts +5 -0
  154. package/dist/cjs/components/input.js +1 -1
  155. package/dist/cjs/components/input.js.map +3 -3
  156. package/dist/cjs/components/popover.d.ts +17 -2
  157. package/dist/cjs/components/popover.js +1 -1
  158. package/dist/cjs/components/popover.js.map +3 -3
  159. package/dist/cjs/components/toast.d.ts +25 -0
  160. package/dist/cjs/components/toast.js +2 -0
  161. package/dist/cjs/components/toast.js.map +7 -0
  162. package/dist/esm/biz-components/AccessoriesShelf/components/AccessoriesProductGrid/index.d.ts +11 -0
  163. package/dist/esm/biz-components/AccessoriesShelf/components/AccessoriesProductGrid/index.js +2 -0
  164. package/dist/esm/biz-components/AccessoriesShelf/components/AccessoriesProductGrid/index.js.map +7 -0
  165. package/dist/esm/biz-components/AccessoriesShelf/components/AccessoryShelf/ProductCard.d.ts +23 -0
  166. package/dist/esm/biz-components/AccessoriesShelf/components/AccessoryShelf/ProductCard.js +2 -0
  167. package/dist/esm/biz-components/AccessoriesShelf/components/AccessoryShelf/ProductCard.js.map +7 -0
  168. package/dist/esm/biz-components/AccessoriesShelf/components/AccessoryShelf/index.d.ts +40 -0
  169. package/dist/esm/biz-components/AccessoriesShelf/components/AccessoryShelf/index.js +2 -0
  170. package/dist/esm/biz-components/AccessoriesShelf/components/AccessoryShelf/index.js.map +7 -0
  171. package/dist/esm/biz-components/AccessoriesShelf/components/AccessoryShelf/types.d.ts +107 -0
  172. package/dist/esm/biz-components/AccessoriesShelf/components/AccessoryShelf/types.js +1 -0
  173. package/dist/esm/biz-components/AccessoriesShelf/components/AccessoryShelf/types.js.map +7 -0
  174. package/dist/esm/biz-components/AccessoriesShelf/components/AddToCartSuccessPopover/index.d.ts +82 -0
  175. package/dist/esm/biz-components/AccessoriesShelf/components/AddToCartSuccessPopover/index.js +2 -0
  176. package/dist/esm/biz-components/AccessoriesShelf/components/AddToCartSuccessPopover/index.js.map +7 -0
  177. package/dist/esm/biz-components/AccessoriesShelf/components/MainProductArea/index.d.ts +22 -0
  178. package/dist/esm/biz-components/AccessoriesShelf/components/MainProductArea/index.js +2 -0
  179. package/dist/esm/biz-components/AccessoriesShelf/components/MainProductArea/index.js.map +7 -0
  180. package/dist/esm/biz-components/AccessoriesShelf/components/PromoBanner/index.d.ts +10 -0
  181. package/dist/esm/biz-components/AccessoriesShelf/components/PromoBanner/index.js +2 -0
  182. package/dist/esm/biz-components/AccessoriesShelf/components/PromoBanner/index.js.map +7 -0
  183. package/dist/esm/biz-components/AccessoriesShelf/components/SectionHeader/index.d.ts +9 -0
  184. package/dist/esm/biz-components/AccessoriesShelf/components/SectionHeader/index.js +2 -0
  185. package/dist/esm/biz-components/AccessoriesShelf/components/SectionHeader/index.js.map +7 -0
  186. package/dist/esm/biz-components/AccessoriesShelf/index.d.ts +9 -0
  187. package/dist/esm/biz-components/AccessoriesShelf/index.js +2 -0
  188. package/dist/esm/biz-components/AccessoriesShelf/index.js.map +7 -0
  189. package/dist/esm/biz-components/AccessoriesShelf/types.d.ts +16 -0
  190. package/dist/esm/biz-components/AccessoriesShelf/types.js +1 -0
  191. package/dist/esm/biz-components/AccessoriesShelf/types.js.map +7 -0
  192. package/dist/esm/biz-components/ActiveShelf/ProductCard.js +1 -1
  193. package/dist/esm/biz-components/ActiveShelf/ProductCard.js.map +2 -2
  194. package/dist/esm/biz-components/BuyOneGetOneShelf/PriceAndActions.js +1 -1
  195. package/dist/esm/biz-components/BuyOneGetOneShelf/PriceAndActions.js.map +2 -2
  196. package/dist/esm/biz-components/CartDetail/CartGiftSection/CartGiftSection.d.ts +15 -0
  197. package/dist/esm/biz-components/CartDetail/CartGiftSection/CartGiftSection.js +2 -0
  198. package/dist/esm/biz-components/CartDetail/CartGiftSection/CartGiftSection.js.map +7 -0
  199. package/dist/esm/biz-components/CartDetail/CartGiftSection/components/GiftConfirmDialog/GiftConfirmDialog.d.ts +11 -0
  200. package/dist/esm/biz-components/CartDetail/CartGiftSection/components/GiftConfirmDialog/GiftConfirmDialog.js +2 -0
  201. package/dist/esm/biz-components/CartDetail/CartGiftSection/components/GiftConfirmDialog/GiftConfirmDialog.js.map +7 -0
  202. package/dist/esm/biz-components/CartDetail/CartGiftSection/components/GiftConfirmDialog/index.d.ts +2 -0
  203. package/dist/esm/biz-components/CartDetail/CartGiftSection/components/GiftConfirmDialog/index.js +2 -0
  204. package/dist/esm/biz-components/CartDetail/CartGiftSection/components/GiftConfirmDialog/index.js.map +7 -0
  205. package/dist/esm/biz-components/CartDetail/CartGiftSection/components/GiftOptionRow/GiftOptionRow.d.ts +14 -0
  206. package/dist/esm/biz-components/CartDetail/CartGiftSection/components/GiftOptionRow/GiftOptionRow.js +2 -0
  207. package/dist/esm/biz-components/CartDetail/CartGiftSection/components/GiftOptionRow/GiftOptionRow.js.map +7 -0
  208. package/dist/esm/biz-components/CartDetail/CartGiftSection/components/GiftOptionRow/index.d.ts +2 -0
  209. package/dist/esm/biz-components/CartDetail/CartGiftSection/components/GiftOptionRow/index.js +2 -0
  210. package/dist/esm/biz-components/CartDetail/CartGiftSection/components/GiftOptionRow/index.js.map +7 -0
  211. package/dist/esm/biz-components/CartDetail/CartGiftSection/index.d.ts +2 -0
  212. package/dist/esm/biz-components/CartDetail/CartGiftSection/index.js +2 -0
  213. package/dist/esm/biz-components/CartDetail/CartGiftSection/index.js.map +7 -0
  214. package/dist/esm/biz-components/CartDetail/CartItemRow/CartItemRow.d.ts +56 -0
  215. package/dist/esm/biz-components/CartDetail/CartItemRow/CartItemRow.js +2 -0
  216. package/dist/esm/biz-components/CartDetail/CartItemRow/CartItemRow.js.map +7 -0
  217. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemGiftShipping/CartItemGiftShipping.d.ts +4 -0
  218. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemGiftShipping/CartItemGiftShipping.js +2 -0
  219. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemGiftShipping/CartItemGiftShipping.js.map +7 -0
  220. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemGiftShipping/index.d.ts +2 -0
  221. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemGiftShipping/index.js +2 -0
  222. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemGiftShipping/index.js.map +7 -0
  223. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemGiftShipping/types.d.ts +10 -0
  224. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemGiftShipping/types.js +1 -0
  225. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemGiftShipping/types.js.map +7 -0
  226. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemInfo/CartItemInfo.d.ts +11 -0
  227. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemInfo/CartItemInfo.js +2 -0
  228. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemInfo/CartItemInfo.js.map +7 -0
  229. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemInfo/index.d.ts +2 -0
  230. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemInfo/index.js +2 -0
  231. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemInfo/index.js.map +7 -0
  232. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemKsp/CartItemKsp.d.ts +13 -0
  233. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemKsp/CartItemKsp.js +2 -0
  234. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemKsp/CartItemKsp.js.map +7 -0
  235. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemKsp/index.d.ts +2 -0
  236. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemKsp/index.js +2 -0
  237. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemKsp/index.js.map +7 -0
  238. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemRemoveConfirm/CartItemRemoveConfirm.d.ts +4 -0
  239. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemRemoveConfirm/CartItemRemoveConfirm.js +2 -0
  240. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemRemoveConfirm/CartItemRemoveConfirm.js.map +7 -0
  241. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemRemoveConfirm/index.d.ts +2 -0
  242. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemRemoveConfirm/index.js +2 -0
  243. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemRemoveConfirm/index.js.map +7 -0
  244. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemRemoveConfirm/types.d.ts +11 -0
  245. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemRemoveConfirm/types.js +1 -0
  246. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemRemoveConfirm/types.js.map +7 -0
  247. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemShipping/CartItemShipping.d.ts +8 -0
  248. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemShipping/CartItemShipping.js +2 -0
  249. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemShipping/CartItemShipping.js.map +7 -0
  250. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemShipping/index.d.ts +2 -0
  251. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemShipping/index.js +2 -0
  252. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemShipping/index.js.map +7 -0
  253. package/dist/esm/biz-components/CartDetail/CartItemRow/index.d.ts +2 -0
  254. package/dist/esm/biz-components/CartDetail/CartItemRow/index.js +2 -0
  255. package/dist/esm/biz-components/CartDetail/CartItemRow/index.js.map +7 -0
  256. package/dist/esm/biz-components/CartDetail/CartPerksSection/CartPerksSection.d.ts +34 -0
  257. package/dist/esm/biz-components/CartDetail/CartPerksSection/CartPerksSection.js +2 -0
  258. package/dist/esm/biz-components/CartDetail/CartPerksSection/CartPerksSection.js.map +7 -0
  259. package/dist/esm/biz-components/CartDetail/CartPerksSection/index.d.ts +2 -0
  260. package/dist/esm/biz-components/CartDetail/CartPerksSection/index.js +2 -0
  261. package/dist/esm/biz-components/CartDetail/CartPerksSection/index.js.map +7 -0
  262. package/dist/esm/biz-components/CartDetail/CartPriceSummary/CartPriceSummary.d.ts +49 -0
  263. package/dist/esm/biz-components/CartDetail/CartPriceSummary/CartPriceSummary.js +2 -0
  264. package/dist/esm/biz-components/CartDetail/CartPriceSummary/CartPriceSummary.js.map +7 -0
  265. package/dist/esm/biz-components/CartDetail/CartPriceSummary/index.d.ts +2 -0
  266. package/dist/esm/biz-components/CartDetail/CartPriceSummary/index.js +2 -0
  267. package/dist/esm/biz-components/CartDetail/CartPriceSummary/index.js.map +7 -0
  268. package/dist/esm/biz-components/CartDetail/CartSummaryHeader/CartSummaryHeader.d.ts +26 -0
  269. package/dist/esm/biz-components/CartDetail/CartSummaryHeader/CartSummaryHeader.js +2 -0
  270. package/dist/esm/biz-components/CartDetail/CartSummaryHeader/CartSummaryHeader.js.map +7 -0
  271. package/dist/esm/biz-components/CartDetail/CartSummaryHeader/index.d.ts +2 -0
  272. package/dist/esm/biz-components/CartDetail/CartSummaryHeader/index.js +2 -0
  273. package/dist/esm/biz-components/CartDetail/CartSummaryHeader/index.js.map +7 -0
  274. package/dist/esm/biz-components/CartDetail/CartThirdParty/CartThirdParty.d.ts +10 -0
  275. package/dist/esm/biz-components/CartDetail/CartThirdParty/CartThirdParty.js +2 -0
  276. package/dist/esm/biz-components/CartDetail/CartThirdParty/CartThirdParty.js.map +7 -0
  277. package/dist/esm/biz-components/CartDetail/CartThirdParty/index.d.ts +2 -0
  278. package/dist/esm/biz-components/CartDetail/CartThirdParty/index.js +2 -0
  279. package/dist/esm/biz-components/CartDetail/CartThirdParty/index.js.map +7 -0
  280. package/dist/esm/biz-components/CartDetail/index.d.ts +16 -0
  281. package/dist/esm/biz-components/CartDetail/index.js +2 -0
  282. package/dist/esm/biz-components/CartDetail/index.js.map +7 -0
  283. package/dist/esm/biz-components/CartDetail/types.d.ts +132 -0
  284. package/dist/esm/biz-components/CartDetail/types.js +1 -0
  285. package/dist/esm/biz-components/CartDetail/types.js.map +7 -0
  286. package/dist/esm/biz-components/CreditsShelf/ProductCard.js +1 -1
  287. package/dist/esm/biz-components/CreditsShelf/ProductCard.js.map +2 -2
  288. package/dist/esm/biz-components/HeaderNavigation/index.js +1 -1
  289. package/dist/esm/biz-components/HeaderNavigation/index.js.map +2 -2
  290. package/dist/esm/biz-components/ImageOverlayShelf/ProductCard.js +1 -1
  291. package/dist/esm/biz-components/ImageOverlayShelf/ProductCard.js.map +2 -2
  292. package/dist/esm/biz-components/MediaShelf/ProductCard.js +1 -1
  293. package/dist/esm/biz-components/MediaShelf/ProductCard.js.map +2 -2
  294. package/dist/esm/biz-components/SceneShelf/ProductsPanel.js +1 -1
  295. package/dist/esm/biz-components/SceneShelf/ProductsPanel.js.map +2 -2
  296. package/dist/esm/biz-components/SceneShelfV2/index.js +1 -1
  297. package/dist/esm/biz-components/SceneShelfV2/index.js.map +2 -2
  298. package/dist/esm/biz-components/SceneShelfV3/ProductCard.js +1 -1
  299. package/dist/esm/biz-components/SceneShelfV3/ProductCard.js.map +2 -2
  300. package/dist/esm/biz-components/ShelfDisplay/shelfDisplayItem.js +1 -1
  301. package/dist/esm/biz-components/ShelfDisplay/shelfDisplayItem.js.map +2 -2
  302. package/dist/esm/biz-components/index.d.ts +6 -0
  303. package/dist/esm/biz-components/index.js +1 -1
  304. package/dist/esm/biz-components/index.js.map +3 -3
  305. package/dist/esm/components/breadcrumb.d.ts +12 -0
  306. package/dist/esm/components/breadcrumb.js +2 -0
  307. package/dist/esm/components/breadcrumb.js.map +7 -0
  308. package/dist/esm/components/index.d.ts +3 -1
  309. package/dist/esm/components/index.js +1 -1
  310. package/dist/esm/components/index.js.map +3 -3
  311. package/dist/esm/components/input-number.d.ts +22 -0
  312. package/dist/esm/components/input-number.js +1 -1
  313. package/dist/esm/components/input-number.js.map +3 -3
  314. package/dist/esm/components/input.d.ts +5 -0
  315. package/dist/esm/components/input.js +1 -1
  316. package/dist/esm/components/input.js.map +3 -3
  317. package/dist/esm/components/popover.d.ts +17 -2
  318. package/dist/esm/components/popover.js +1 -1
  319. package/dist/esm/components/popover.js.map +3 -3
  320. package/dist/esm/components/toast.d.ts +25 -0
  321. package/dist/esm/components/toast.js +2 -0
  322. package/dist/esm/components/toast.js.map +7 -0
  323. package/package.json +1 -1
  324. package/style.css +285 -6
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/biz-components/AccessoriesShelf/components/PromoBanner/index.tsx"],
4
+ "sourcesContent": ["'use client'\n\nimport * as React from 'react'\nimport { cn } from '../../../../helpers/index.js'\nimport type { UserType, BannerConfig, BannerAction } from '../../types.js'\nimport { Text } from '../../../../components/index.js'\n\nexport interface PromoBannerProps {\n userType: UserType\n configs: Partial<Record<UserType, BannerConfig | null>>\n onAction?: (action: BannerAction) => void\n className?: string\n}\n\nconst GuestPromotionalIcon = ({ className }: { className?: string }) => {\n return (\n <svg\n className={className}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"28\"\n height=\"24\"\n viewBox=\"0 0 28 24\"\n fill=\"none\"\n >\n <path\n d=\"M20.3194 0C21.1834 0 21.9923 0.429768 22.479 1.14948L27.5462 8.64391C28.2476 9.68126 28.125 11.0736 27.254 11.9707L16.6544 22.8856C15.2122 24.3702 12.8426 24.3716 11.3981 22.8891L0.748688 11.9602C-0.114133 11.0747 -0.24628 9.7017 0.430898 8.66496L5.31604 1.18456C5.79941 0.444636 6.62004 0 7.49882 0H20.3194Z\"\n fill=\"#005D8E\"\n />\n <path\n d=\"M19.0076 8.33664C19.4627 7.88876 20.2013 7.88756 20.6574 8.3344C21.1132 8.78154 21.1144 9.50728 20.6596 9.95535L14.8762 15.6466C14.3983 16.1168 13.6232 16.118 13.1443 15.6488L7.34264 9.95759C6.88678 9.51045 6.88556 8.78471 7.34036 8.33664C7.79546 7.88876 8.53413 7.88756 8.99017 8.3344L14.008 13.2555L19.0076 8.33664Z\"\n fill=\"white\"\n />\n </svg>\n )\n}\n\nconst MemberPromotionalIcon = ({ className }: { className?: string }) => {\n return (\n <svg\n className={className}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"28\"\n height=\"24\"\n viewBox=\"0 0 28 24\"\n fill=\"none\"\n >\n <path\n d=\"M20.3194 0C21.1834 0 21.9923 0.429768 22.479 1.14948L27.5462 8.64391C28.2476 9.68126 28.125 11.0736 27.254 11.9707L16.6544 22.8856C15.2122 24.3702 12.8426 24.3716 11.3981 22.8891L0.748688 11.9602C-0.114133 11.0747 -0.24628 9.7017 0.430898 8.66496L5.31604 1.18456C5.79941 0.444636 6.62004 0 7.49882 0H20.3194Z\"\n fill=\"url(#paint0_linear_5861_8479)\"\n />\n <path\n d=\"M19.0076 8.33664C19.4627 7.88876 20.2013 7.88756 20.6574 8.3344C21.1132 8.78154 21.1144 9.50728 20.6596 9.95535L14.8762 15.6466C14.3983 16.1168 13.6232 16.118 13.1443 15.6488L7.34264 9.95759C6.88678 9.51045 6.88556 8.78471 7.34036 8.33664C7.79546 7.88876 8.53413 7.88756 8.99017 8.3344L14.008 13.2555L19.0076 8.33664Z\"\n fill=\"url(#paint1_linear_5861_8479)\"\n />\n <defs>\n <linearGradient\n id=\"paint0_linear_5861_8479\"\n x1=\"-0.341464\"\n y1=\"1.07126e-06\"\n x2=\"30.68\"\n y2=\"4.66513\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#6E6754\" />\n <stop offset=\"1\" stopColor=\"#070708\" />\n </linearGradient>\n <linearGradient\n id=\"paint1_linear_5861_8479\"\n x1=\"6.82927\"\n y1=\"8\"\n x2=\"21.9228\"\n y2=\"11.4047\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#FFF5E0\" />\n <stop offset=\"1\" stopColor=\"#E8C08A\" />\n </linearGradient>\n </defs>\n </svg>\n )\n}\n\nconst BANNER_BG: Record<UserType, string> = {\n guest: 'bg-[#E1F8FE]',\n member: 'bg-[#FFF1E1]',\n 'plus-member': 'bg-[#FFF1E1]',\n}\n\nconst PromoBanner = React.forwardRef<HTMLDivElement, PromoBannerProps>(\n ({ userType, configs, onAction, className }, ref) => {\n const config = configs[userType]\n if (!config?.text) return null\n\n const handleClick = () => {\n if (config.action) onAction?.(config.action)\n }\n\n const hasClickBehavior = !!config.action\n const bgColor = config.backgroundColor ? undefined : BANNER_BG[userType]\n\n return (\n <div\n ref={ref}\n role={hasClickBehavior ? 'button' : undefined}\n tabIndex={hasClickBehavior ? 0 : undefined}\n onClick={hasClickBehavior ? handleClick : undefined}\n onKeyDown={\n hasClickBehavior\n ? e => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n handleClick()\n }\n }\n : undefined\n }\n className={cn(\n 'rounded-card flex items-center justify-center px-6 py-4',\n 'lg-desktop:text-[16px] text-[14px] font-bold leading-[1.4] tracking-[-0.28px]',\n bgColor,\n hasClickBehavior && 'cursor-pointer',\n className\n )}\n style={config.backgroundColor ? { backgroundColor: config.backgroundColor } : undefined}\n >\n <div className=\"flex items-end gap-1\">\n {userType === 'guest' ? (\n <GuestPromotionalIcon className=\"shrink-0\" />\n ) : (\n <MemberPromotionalIcon className=\"shrink-0\" />\n )}\n <Text html={config.text} as=\"div\" className=\"[&_a]:text-brand-0 flex items-center gap-1 [&_a]:underline\" />\n </div>\n </div>\n )\n }\n)\n\nPromoBanner.displayName = 'PromoBanner'\n\nexport default PromoBanner\n"],
5
+ "mappings": "ukBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,IAAA,eAAAC,EAAAH,GAgBI,IAAAI,EAAA,6BAdJC,EAAuB,oBACvBC,EAAmB,wCAEnBC,EAAqB,2CASrB,MAAMC,EAAuB,CAAC,CAAE,UAAAC,CAAU,OAEtC,QAAC,OACC,UAAWA,EACX,MAAM,6BACN,MAAM,KACN,OAAO,KACP,QAAQ,YACR,KAAK,OAEL,oBAAC,QACC,EAAE,uTACF,KAAK,UACP,KACA,OAAC,QACC,EAAE,gUACF,KAAK,QACP,GACF,EAIEC,EAAwB,CAAC,CAAE,UAAAD,CAAU,OAEvC,QAAC,OACC,UAAWA,EACX,MAAM,6BACN,MAAM,KACN,OAAO,KACP,QAAQ,YACR,KAAK,OAEL,oBAAC,QACC,EAAE,uTACF,KAAK,gCACP,KACA,OAAC,QACC,EAAE,gUACF,KAAK,gCACP,KACA,QAAC,QACC,qBAAC,kBACC,GAAG,0BACH,GAAG,YACH,GAAG,cACH,GAAG,QACH,GAAG,UACH,cAAc,iBAEd,oBAAC,QAAK,UAAU,UAAU,KAC1B,OAAC,QAAK,OAAO,IAAI,UAAU,UAAU,GACvC,KACA,QAAC,kBACC,GAAG,0BACH,GAAG,UACH,GAAG,IACH,GAAG,UACH,GAAG,UACH,cAAc,iBAEd,oBAAC,QAAK,UAAU,UAAU,KAC1B,OAAC,QAAK,OAAO,IAAI,UAAU,UAAU,GACvC,GACF,GACF,EAIEE,EAAsC,CAC1C,MAAO,eACP,OAAQ,eACR,cAAe,cACjB,EAEMC,EAAcP,EAAM,WACxB,CAAC,CAAE,SAAAQ,EAAU,QAAAC,EAAS,SAAAC,EAAU,UAAAN,CAAU,EAAGO,IAAQ,CACnD,MAAMC,EAASH,EAAQD,CAAQ,EAC/B,GAAI,CAACI,GAAQ,KAAM,OAAO,KAE1B,MAAMC,EAAc,IAAM,CACpBD,EAAO,QAAQF,IAAWE,EAAO,MAAM,CAC7C,EAEME,EAAmB,CAAC,CAACF,EAAO,OAC5BG,EAAUH,EAAO,gBAAkB,OAAYN,EAAUE,CAAQ,EAEvE,SACE,OAAC,OACC,IAAKG,EACL,KAAMG,EAAmB,SAAW,OACpC,SAAUA,EAAmB,EAAI,OACjC,QAASA,EAAmBD,EAAc,OAC1C,UACEC,EACIE,GAAK,EACCA,EAAE,MAAQ,SAAWA,EAAE,MAAQ,OACjCA,EAAE,eAAe,EACjBH,EAAY,EAEhB,EACA,OAEN,aAAW,MACT,0DACA,gFACAE,EACAD,GAAoB,iBACpBV,CACF,EACA,MAAOQ,EAAO,gBAAkB,CAAE,gBAAiBA,EAAO,eAAgB,EAAI,OAE9E,oBAAC,OAAI,UAAU,uBACZ,UAAAJ,IAAa,WACZ,OAACL,EAAA,CAAqB,UAAU,WAAW,KAE3C,OAACE,EAAA,CAAsB,UAAU,WAAW,KAE9C,OAAC,QAAK,KAAMO,EAAO,KAAM,GAAG,MAAM,UAAU,6DAA6D,GAC3G,EACF,CAEJ,CACF,EAEAL,EAAY,YAAc,cAE1B,IAAOV,EAAQU",
6
+ "names": ["PromoBanner_exports", "__export", "PromoBanner_default", "__toCommonJS", "import_jsx_runtime", "React", "import_helpers", "import_components", "GuestPromotionalIcon", "className", "MemberPromotionalIcon", "BANNER_BG", "PromoBanner", "userType", "configs", "onAction", "ref", "config", "handleClick", "hasClickBehavior", "bgColor", "e"]
7
+ }
@@ -0,0 +1,9 @@
1
+ import * as React from 'react';
2
+ export interface SectionHeaderProps {
3
+ title: string;
4
+ subtitle?: string;
5
+ selectionNote?: string;
6
+ className?: string;
7
+ }
8
+ declare const SectionHeader: React.ForwardRefExoticComponent<SectionHeaderProps & React.RefAttributes<HTMLDivElement>>;
9
+ export default SectionHeader;
@@ -0,0 +1,2 @@
1
+ "use strict";"use client";var m=Object.create;var l=Object.defineProperty;var d=Object.getOwnPropertyDescriptor;var f=Object.getOwnPropertyNames;var c=Object.getPrototypeOf,g=Object.prototype.hasOwnProperty;var N=(e,t)=>{for(var a in t)l(e,a,{get:t[a],enumerable:!0})},n=(e,t,a,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of f(t))!g.call(e,i)&&i!==a&&l(e,i,{get:()=>t[i],enumerable:!(s=d(t,i))||s.enumerable});return e};var w=(e,t,a)=>(a=e!=null?m(c(e)):{},n(t||!e||!e.__esModule?l(a,"default",{value:e,enumerable:!0}):a,e)),H=e=>n(l({},"__esModule",{value:!0}),e);var v={};N(v,{default:()=>k});module.exports=H(v);var r=require("react/jsx-runtime"),h=w(require("react")),x=require("../../../../helpers/index.js"),o=require("../../../../components/index.js");const p=h.forwardRef(({title:e,subtitle:t,selectionNote:a,className:s},i)=>(0,r.jsxs)("div",{ref:i,className:(0,x.cn)("laptop:flex-row laptop:items-end flex flex-col justify-between gap-6",s),children:[(0,r.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col gap-2",children:[(0,r.jsx)(o.Heading,{html:e,size:4,className:"text-info-primary"}),t&&(0,r.jsx)(o.Text,{as:"p",html:t,className:"lg-desktop:text-[16px] text-info-primary text-[14px] font-bold leading-[1.4] tracking-[-0.28px]"})]}),a&&(0,r.jsx)(o.Text,{as:"p",html:a,className:"lg-desktop:text-[16px] [&_span]:text-brand-0 text-info-primary shrink-0 whitespace-nowrap text-[14px] font-bold leading-[1.4] tracking-[-0.28px]"})]}));p.displayName="SectionHeader";var k=p;
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/biz-components/AccessoriesShelf/components/SectionHeader/index.tsx"],
4
+ "sourcesContent": ["'use client'\n\nimport * as React from 'react'\nimport { cn } from '../../../../helpers/index.js'\nimport { Text, Heading } from '../../../../components/index.js'\n\nexport interface SectionHeaderProps {\n title: string\n subtitle?: string\n selectionNote?: string\n className?: string\n}\n\nconst SectionHeader = React.forwardRef<HTMLDivElement, SectionHeaderProps>(\n ({ title, subtitle, selectionNote, className }, ref) => {\n return (\n <div ref={ref} className={cn('laptop:flex-row laptop:items-end flex flex-col justify-between gap-6', className)}>\n <div className=\"flex min-w-0 flex-1 flex-col gap-2\">\n <Heading html={title} size={4} className=\"text-info-primary\" />\n {subtitle && (\n <Text\n as=\"p\"\n html={subtitle}\n className=\"lg-desktop:text-[16px] text-info-primary text-[14px] font-bold leading-[1.4] tracking-[-0.28px]\"\n />\n )}\n </div>\n {selectionNote && (\n <Text\n as=\"p\"\n html={selectionNote}\n className=\"lg-desktop:text-[16px] [&_span]:text-brand-0 text-info-primary shrink-0 whitespace-nowrap text-[14px] font-bold leading-[1.4] tracking-[-0.28px]\"\n />\n )}\n </div>\n )\n }\n)\n\nSectionHeader.displayName = 'SectionHeader'\n\nexport default SectionHeader\n"],
5
+ "mappings": "ukBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,IAAA,eAAAC,EAAAH,GAiBQ,IAAAI,EAAA,6BAfRC,EAAuB,oBACvBC,EAAmB,wCACnBC,EAA8B,2CAS9B,MAAMC,EAAgBH,EAAM,WAC1B,CAAC,CAAE,MAAAI,EAAO,SAAAC,EAAU,cAAAC,EAAe,UAAAC,CAAU,EAAGC,OAE5C,QAAC,OAAI,IAAKA,EAAK,aAAW,MAAG,uEAAwED,CAAS,EAC5G,qBAAC,OAAI,UAAU,qCACb,oBAAC,WAAQ,KAAMH,EAAO,KAAM,EAAG,UAAU,oBAAoB,EAC5DC,MACC,OAAC,QACC,GAAG,IACH,KAAMA,EACN,UAAU,kGACZ,GAEJ,EACCC,MACC,OAAC,QACC,GAAG,IACH,KAAMA,EACN,UAAU,mJACZ,GAEJ,CAGN,EAEAH,EAAc,YAAc,gBAE5B,IAAON,EAAQM",
6
+ "names": ["SectionHeader_exports", "__export", "SectionHeader_default", "__toCommonJS", "import_jsx_runtime", "React", "import_helpers", "import_components", "SectionHeader", "title", "subtitle", "selectionNote", "className", "ref"]
7
+ }
@@ -0,0 +1,9 @@
1
+ import MainProductArea from './components/MainProductArea/index.js';
2
+ import PromoBanner from './components/PromoBanner/index.js';
3
+ import SectionHeader from './components/SectionHeader/index.js';
4
+ import AccessoriesProductGrid from './components/AccessoriesProductGrid/index.js';
5
+ import AddToCartSuccessPopover from './components/AddToCartSuccessPopover/index.js';
6
+ import type { UserType, BannerConfig, BannerAction } from './types.js';
7
+ export { AccessoriesProductGrid, SectionHeader, PromoBanner, MainProductArea, AddToCartSuccessPopover };
8
+ export type { UserType, BannerConfig, BannerAction };
9
+ export type { AddToCartSuccessPopoverProps, AddToCartSuccessCopyConfig, AddToCartSuccessSemanticName, } from './components/AddToCartSuccessPopover/index.js';
@@ -0,0 +1,2 @@
1
+ "use strict";var A=Object.create;var p=Object.defineProperty;var C=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var y=Object.getPrototypeOf,P=Object.prototype.hasOwnProperty;var S=(o,r)=>{for(var e in r)p(o,e,{get:r[e],enumerable:!0})},f=(o,r,e,d)=>{if(r&&typeof r=="object"||typeof r=="function")for(let t of u(r))!P.call(o,t)&&t!==e&&p(o,t,{get:()=>r[t],enumerable:!(d=C(r,t))||d.enumerable});return o};var n=(o,r,e)=>(e=o!=null?A(y(o)):{},f(r||!o||!o.__esModule?p(e,"default",{value:o,enumerable:!0}):e,o)),T=o=>f(p({},"__esModule",{value:!0}),o);var B={};S(B,{AccessoriesProductGrid:()=>m.default,AddToCartSuccessPopover:()=>a.default,MainProductArea:()=>s.default,PromoBanner:()=>c.default,SectionHeader:()=>i.default});module.exports=T(B);var s=n(require("./components/MainProductArea/index.js")),c=n(require("./components/PromoBanner/index.js")),i=n(require("./components/SectionHeader/index.js")),m=n(require("./components/AccessoriesProductGrid/index.js")),a=n(require("./components/AddToCartSuccessPopover/index.js"));
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/biz-components/AccessoriesShelf/index.tsx"],
4
+ "sourcesContent": ["// 'use client'\n\nimport MainProductArea from './components/MainProductArea/index.js'\nimport PromoBanner from './components/PromoBanner/index.js'\nimport SectionHeader from './components/SectionHeader/index.js'\nimport AccessoriesProductGrid from './components/AccessoriesProductGrid/index.js'\nimport AddToCartSuccessPopover from './components/AddToCartSuccessPopover/index.js'\nimport type { UserType, BannerConfig, BannerAction } from './types.js'\n\nexport { AccessoriesProductGrid, SectionHeader, PromoBanner, MainProductArea, AddToCartSuccessPopover }\nexport type { UserType, BannerConfig, BannerAction }\nexport type {\n AddToCartSuccessPopoverProps,\n AddToCartSuccessCopyConfig,\n AddToCartSuccessSemanticName,\n} from './components/AddToCartSuccessPopover/index.js'\n"],
5
+ "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,8BAAAE,QAAA,8BAAAC,QAAA,sBAAAC,QAAA,kBAAAC,QAAA,oBAAAC,UAAA,eAAAC,EAAAP,GAEA,IAAAQ,EAA4B,oDAC5BC,EAAwB,gDACxBC,EAA0B,kDAC1BC,EAAmC,2DACnCC,EAAoC",
6
+ "names": ["AccessoriesShelf_exports", "__export", "AccessoriesProductGrid", "AddToCartSuccessPopover", "MainProductArea", "PromoBanner", "SectionHeader", "__toCommonJS", "import_MainProductArea", "import_PromoBanner", "import_SectionHeader", "import_AccessoriesProductGrid", "import_AddToCartSuccessPopover"]
7
+ }
@@ -0,0 +1,16 @@
1
+ export type UserType = 'guest' | 'member' | 'plus-member';
2
+ export type PriceStyleType = 1 | 2 | 3 | 4 | 5 | 6;
3
+ export type BannerAction = {
4
+ type: 'link';
5
+ url: string;
6
+ } | {
7
+ type: 'modal';
8
+ } | {
9
+ type: 'addToCart';
10
+ skuId: string;
11
+ };
12
+ export interface BannerConfig {
13
+ text: string;
14
+ backgroundColor?: string;
15
+ action?: BannerAction;
16
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var o=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var a=Object.getOwnPropertyNames;var y=Object.prototype.hasOwnProperty;var s=(t,e,p,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of a(e))!y.call(t,r)&&r!==p&&o(t,r,{get:()=>e[r],enumerable:!(n=i(e,r))||n.enumerable});return t};var g=t=>s(o({},"__esModule",{value:!0}),t);var c={};module.exports=g(c);
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/biz-components/AccessoriesShelf/types.ts"],
4
+ "sourcesContent": ["export type UserType = 'guest' | 'member' | 'plus-member'\n\nexport type PriceStyleType = 1 | 2 | 3 | 4 | 5 | 6\n\nexport type BannerAction = { type: 'link'; url: string } | { type: 'modal' } | { type: 'addToCart'; skuId: string }\n\nexport interface BannerConfig {\n text: string\n backgroundColor?: string\n action?: BannerAction\n}\n"],
5
+ "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
+ "names": ["types_exports", "__toCommonJS"]
7
+ }
@@ -1,2 +1,2 @@
1
- "use strict";"use client";var q=Object.create;var p=Object.defineProperty;var M=Object.getOwnPropertyDescriptor;var _=Object.getOwnPropertyNames;var R=Object.getPrototypeOf,$=Object.prototype.hasOwnProperty;var E=(e,i)=>{for(var r in i)p(e,r,{get:i[r],enumerable:!0})},P=(e,i,r,d)=>{if(i&&typeof i=="object"||typeof i=="function")for(let s of _(i))!$.call(e,s)&&s!==r&&p(e,s,{get:()=>i[s],enumerable:!(d=M(i,s))||d.enumerable});return e};var I=(e,i,r)=>(r=e!=null?q(R(e)):{},P(i||!e||!e.__esModule?p(r,"default",{value:e,enumerable:!0}):r,e)),j=e=>P(p({},"__esModule",{value:!0}),e);var K={};E(K,{ProductCard:()=>u,default:()=>G});module.exports=j(K);var a=require("react/jsx-runtime"),c=I(require("react")),n=require("../../helpers/index.js"),t=require("../../components/index.js");const H=5;function O(e,i,r,d){if(e===void 0)return!0;switch(e){case"always":return!0;case"never":return!1;case"below-quantity":return i===void 0?!0:r<=i;case"below-percentage":return i===void 0?!0:r/d*100<=i;default:return!0}}const u=c.forwardRef(({product:e,className:i,showTags:r=!0,stockDisplayMode:d,stockThresholdValue:s,onLearnMore:C,onShopNow:S,onAddToCart:w,classNames:o,secondaryButtonText:f,secondaryButtonFun:y,primaryButtonText:g,primaryButtonFun:v,showOriginalPrice:N,copy:b,onProductImageClick:x},B)=>{const[D,L]=c.useState(!1),[T,F]=c.useState(!1),z=c.useMemo(()=>e?.availableForSale&&e?.quantityAvailable<=0?H:e?.availableForSale?(e?.quantityAvailable??0)/(e?.totalInventory??1)*100:0,[e?.availableForSale,e?.quantityAvailable,e?.totalInventory]),k=async(l,m)=>{if(!l)return;const h=m==="primary"?L:F;h(!0);try{switch(l){case"buyNow":await S?.(e);break;case"addCart":await w?.(e);break;case"learnMore":await C?.(e);break;default:break}}finally{h(!1)}},A=e.availableForSale&&e.quantityAvailable<=0;return(0,a.jsx)(t.Card,{ref:B,className:(0,n.cn)("bg-container-primary hover:bg-container-secondary-0 flex h-full flex-col overflow-hidden border-none",i,o?.productCard),children:(0,a.jsxs)(t.CardContent,{className:"desktop:p-6 relative flex flex-1 flex-col justify-between p-4",children:[(0,a.jsx)("div",{className:"lg-desktop:h-[28px] flex h-[24px] gap-1",children:r&&e.tags?.map((l,m)=>l.label?(0,a.jsx)(t.Badge,{size:"sm",variant:l.variant||"outline",className:(0,n.cn)(l.variant==="promotional"?"ml-2":""),promotionalType:l.promotionalType,children:l.label},m):(0,a.jsx)(c.Fragment,{children:l},m))}),(0,a.jsx)("div",{className:"product-image-wrapper lg-desktop:size-[196px] mx-auto size-[138px] cursor-pointer overflow-hidden",children:(0,a.jsx)("a",{onClick:()=>x?.(e),...!x&&{href:e?.listingLink},rel:"noreferrer",children:(0,a.jsx)(t.Picture,{source:e.image,alt:e.name,className:"aspect-square size-full object-contain",imgClassName:"w-full h-full object-contain"})})}),(0,a.jsxs)("div",{className:"flex h-full flex-1 grow flex-col justify-between",children:[(0,a.jsxs)("div",{className:"mb-4",children:[(0,a.jsx)(t.Heading,{as:"h3",size:2,className:(0,n.cn)("text-info-primary mb-2 line-clamp-2 min-h-[2.4em]",o?.productTitle),html:e.custom_name||e.name}),e?.description&&(0,a.jsx)(t.Text,{size:2,className:(0,n.cn)("text-info-secondary desktop:line-clamp-2 desktop:min-h-[2.4em] desktop:text-[16px] lg-desktop:text-[18px] line-clamp-2 min-h-[2.4em] text-[14px]",o?.productDescription),html:e.custom_description||e.description})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{className:(0,n.cn)("mb-2",o?.productPrice),children:(0,a.jsx)("div",{className:"flex items-baseline gap-2",children:e.availableForSale?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(t.Heading,{size:2,className:"text-info-primary",as:"h6",children:e.price}),N&&e.originalPrice&&(0,a.jsx)(t.Heading,{size:2,className:(0,n.cn)("text-info-tertiary line-through",o?.originalPrice),as:"h6",children:e.originalPrice})]}):(0,a.jsx)(t.Heading,{size:2,className:"text-info-tertiary",children:b?.outOfStockLabel??"Sold Out"})})}),e?.priceLabel&&e?.availableForSale&&(0,a.jsx)(t.Text,{size:4,className:(0,n.cn)("text-marketing-1 desktop:text-[16px] lg-desktop:text-[18px] mt-2 text-[14px]",o?.productPriceLabel),children:e.priceLabel}),(0,a.jsxs)("div",{className:(0,n.cn)("lg-desktop:gap-3 tablet:flex-nowrap flex flex-wrap gap-2",o?.buttonGroup),children:[f&&(0,a.jsx)(t.Button,{variant:"secondary",size:"base",className:(0,n.cn)("tablet:w-fit w-full",o?.secondaryButton),onClick:()=>k(y,"secondary"),disabled:!e.availableForSale&&y!=="learnMore",loading:T,"data-headless-type-name":"ActiveShelf#ProductCard","data-headless-title-desc-button":`${e.custom_name||e.name}#${e.description||""}#${f}`,"data-headless-sku":e.sku,children:f}),g&&(0,a.jsx)(t.Button,{variant:"primary",size:"base",className:(0,n.cn)("tablet:w-fit w-full",o?.primaryButton),onClick:()=>k(v,"primary"),disabled:!e.availableForSale&&v!=="learnMore",loading:D,"data-headless-type-name":"ActiveShelf#ProductCard","data-headless-title-desc-button":`${e.custom_name||e.name}#${e.description||""}#${g}`,"data-headless-sku":e.sku,children:g})]}),O(d,s,e?.quantityAvailable??0,e?.totalInventory??0)&&(0,a.jsxs)("div",{className:"mt-4 space-y-2",children:[(0,a.jsx)(t.Progress,{value:z,max:100,min:0,size:"base",variant:"default","aria-label":"stock progress",classNames:{root:(0,n.cn)("bg-[var(--progress-track-bg,rgba(0,0,0,0.2))]",o?.stockTrack),progressBar:(0,n.cn)("bg-brand-0 transition-all duration-300 ease-in-out",o?.stockBar)}}),(0,a.jsx)(t.Text,{size:3,className:"text-info-tertiary text-[14px]",children:A?b?.limitedStock:b?.stockDisplayText?.replace("{count}",`${e.availableForSale?e.quantityAvailable:0}`)})]})]})]})]})})});u.displayName="ActiveShelf.ProductCard";var G=u;
1
+ "use strict";"use client";var q=Object.create;var p=Object.defineProperty;var M=Object.getOwnPropertyDescriptor;var _=Object.getOwnPropertyNames;var R=Object.getPrototypeOf,$=Object.prototype.hasOwnProperty;var E=(e,i)=>{for(var r in i)p(e,r,{get:i[r],enumerable:!0})},w=(e,i,r,c)=>{if(i&&typeof i=="object"||typeof i=="function")for(let s of _(i))!$.call(e,s)&&s!==r&&p(e,s,{get:()=>i[s],enumerable:!(c=M(i,s))||c.enumerable});return e};var I=(e,i,r)=>(r=e!=null?q(R(e)):{},w(i||!e||!e.__esModule?p(r,"default",{value:e,enumerable:!0}):r,e)),j=e=>w(p({},"__esModule",{value:!0}),e);var K={};E(K,{ProductCard:()=>u,default:()=>G});module.exports=j(K);var a=require("react/jsx-runtime"),d=I(require("react")),n=require("../../helpers/index.js"),t=require("../../components/index.js");const H=5;function O(e,i,r,c){if(e===void 0)return!0;switch(e){case"always":return!0;case"never":return!1;case"below-quantity":return i===void 0?!0:r<=i;case"below-percentage":return i===void 0?!0:r/c*100<=i;default:return!0}}const u=d.forwardRef(({product:e,className:i,showTags:r=!0,stockDisplayMode:c,stockThresholdValue:s,onLearnMore:P,onShopNow:C,onAddToCart:S,classNames:o,secondaryButtonText:b,secondaryButtonFun:y,primaryButtonText:f,primaryButtonFun:v,showOriginalPrice:N,copy:g,onProductImageClick:x},B)=>{const[D,L]=d.useState(!1),[T,F]=d.useState(!1),z=d.useMemo(()=>e?.availableForSale&&e?.quantityAvailable<=0?H:e?.availableForSale?(e?.quantityAvailable??0)/(e?.totalInventory??1)*100:0,[e?.availableForSale,e?.quantityAvailable,e?.totalInventory]),k=async(l,m)=>{if(!l)return;const h=m==="primary"?L:F;h(!0);try{switch(l){case"buyNow":await C?.(e);break;case"addCart":await S?.(e);break;case"learnMore":await P?.(e);break;default:break}}finally{h(!1)}},A=e.availableForSale&&e.quantityAvailable<=0;return(0,a.jsx)(t.Card,{ref:B,className:(0,n.cn)("bg-container-primary hover:bg-container-secondary-0 flex h-full flex-col overflow-hidden border-none",i,o?.productCard),children:(0,a.jsxs)(t.CardContent,{className:"desktop:p-6 relative flex flex-1 flex-col justify-between p-4",children:[(0,a.jsx)("div",{className:"lg-desktop:h-[28px] flex h-[24px] gap-1",children:r&&e.tags?.map((l,m)=>l.label?(0,a.jsx)(t.Badge,{size:"sm",variant:l.variant||"outline",className:(0,n.cn)(l.variant==="promotional"?"ml-2":""),promotionalType:l.promotionalType,children:l.label},m):(0,a.jsx)(d.Fragment,{children:l},m))}),(0,a.jsx)("div",{className:"product-image-wrapper lg-desktop:size-[196px] mx-auto size-[138px] cursor-pointer overflow-hidden",children:(0,a.jsx)("a",{onClick:()=>x?.(e),...!x&&{href:e?.listingLink},rel:"noreferrer",children:(0,a.jsx)(t.Picture,{source:e.image,alt:e.name,className:"aspect-square size-full object-contain",imgClassName:"w-full h-full object-contain"})})}),(0,a.jsxs)("div",{className:"flex h-full flex-1 grow flex-col justify-between",children:[(0,a.jsxs)("div",{className:"mb-4",children:[(0,a.jsx)(t.Heading,{as:"h3",size:2,className:(0,n.cn)("text-info-primary mb-2 line-clamp-2 min-h-[2.4em]",o?.productTitle),html:e.custom_name||e.name}),e?.description&&(0,a.jsx)(t.Text,{size:2,className:(0,n.cn)("text-info-secondary desktop:line-clamp-2 desktop:min-h-[2.4em] desktop:text-[16px] lg-desktop:text-[18px] line-clamp-2 min-h-[2.4em] text-[14px]",o?.productDescription),html:e.custom_description||e.description})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{className:(0,n.cn)("mb-2",o?.productPrice),children:(0,a.jsx)("div",{className:"flex items-baseline gap-2",children:e.availableForSale?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(t.Heading,{size:2,className:"text-info-primary",as:"h6",children:e.price}),N&&e.originalPrice&&(0,a.jsx)(t.Heading,{size:2,className:(0,n.cn)("text-info-tertiary line-through",o?.originalPrice),as:"h6",children:e.originalPrice})]}):(0,a.jsx)(t.Heading,{size:2,className:"text-info-tertiary",children:g?.outOfStockLabel??"Sold Out"})})}),e?.priceLabel&&e?.availableForSale&&(0,a.jsx)(t.Text,{size:4,className:(0,n.cn)("text-marketing-1 desktop:text-[16px] lg-desktop:text-[18px] mt-2 text-[14px]",o?.productPriceLabel),children:e.priceLabel}),(0,a.jsxs)("div",{className:(0,n.cn)("lg-desktop:gap-3 tablet:flex-nowrap flex flex-wrap gap-2",o?.buttonGroup),children:[b&&(0,a.jsx)(t.Button,{variant:"secondary",size:"base",className:(0,n.cn)("tablet:w-fit tablet:min-w-0 tablet:whitespace-normal tablet:text-center w-full whitespace-nowrap",o?.secondaryButton),onClick:()=>k(y,"secondary"),disabled:!e.availableForSale&&y!=="learnMore",loading:T,"data-headless-type-name":"ActiveShelf#ProductCard","data-headless-title-desc-button":`${e.custom_name||e.name}#${e.description||""}#${b}`,"data-headless-sku":e.sku,children:b}),f&&(0,a.jsx)(t.Button,{variant:"primary",size:"base",className:(0,n.cn)("tablet:w-fit tablet:min-w-0 tablet:whitespace-normal tablet:text-center w-full whitespace-nowrap",o?.primaryButton),onClick:()=>k(v,"primary"),disabled:!e.availableForSale&&v!=="learnMore",loading:D,"data-headless-type-name":"ActiveShelf#ProductCard","data-headless-title-desc-button":`${e.custom_name||e.name}#${e.description||""}#${f}`,"data-headless-sku":e.sku,children:f})]}),O(c,s,e?.quantityAvailable??0,e?.totalInventory??0)&&(0,a.jsxs)("div",{className:"mt-4 space-y-2",children:[(0,a.jsx)(t.Progress,{value:z,max:100,min:0,size:"base",variant:"default","aria-label":"stock progress",classNames:{root:(0,n.cn)("bg-[var(--progress-track-bg,rgba(0,0,0,0.2))]",o?.stockTrack),progressBar:(0,n.cn)("bg-brand-0 transition-all duration-300 ease-in-out",o?.stockBar)}}),(0,a.jsx)(t.Text,{size:3,className:"text-info-tertiary text-[14px]",children:A?g?.limitedStock:g?.stockDisplayText?.replace("{count}",`${e.availableForSale?e.quantityAvailable:0}`)})]})]})]})]})})});u.displayName="ActiveShelf.ProductCard";var G=u;
2
2
  //# sourceMappingURL=ProductCard.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/biz-components/ActiveShelf/ProductCard.tsx"],
4
- "sourcesContent": ["'use client'\n\nimport * as React from 'react'\nimport { cn } from '../../helpers/index.js'\nimport { Button, Badge, Card, CardContent, Picture, Text, Heading, Progress } from '../../components/index.js'\n\nimport type { ButtonFunctionType, CopyConfig } from './types.js'\nimport type { BadgeProps } from '../../components/badge.js'\n\n/**\n * \u8D85\u5356\u65F6\u5E93\u5B58\u6761\u663E\u793A\u7684\u6700\u5C0F\u767E\u5206\u6BD4\n * \u9632\u6B62\u8D85\u5356\u65F6\u5E93\u5B58\u6761\u663E\u793A\u4E3A\u6EE1\u683C\uFF08100%\uFF09\u6216\u5B8C\u5168\u7A7A\uFF080%\uFF09\n */\nconst OVERSELLING_STOCK_PERCENTAGE = 5\n\n/**\n * \u8BED\u4E49\u5316\u7C7B\u540D\n */\nexport type ActiveShelfSemanticName =\n | 'root'\n | 'title'\n | 'description'\n | 'productCard'\n | 'productTitle'\n | 'productDescription'\n | 'productPriceLabel'\n | 'productPrice'\n | 'originalPrice'\n | 'buttonGroup'\n | 'secondaryButton'\n | 'primaryButton'\n | 'stockTrack'\n | 'stockBar'\n\n/**\n * \u5E93\u5B58\u5C55\u793A\u6A21\u5F0F\n */\nexport type StockDisplayMode = 'always' | 'never' | 'below-quantity' | 'below-percentage'\n\n/**\n * \u57FA\u7840\u4EA7\u54C1\u6570\u636E\u63A5\u53E3\uFF08\u6765\u81EA\u5916\u90E8\u6570\u636E\u6E90\uFF09\n */\nexport interface BaseProductData {\n sku: string\n name: string\n image: string\n value: string\n handle: string\n shopify_id: string\n custom_name?: string\n custom_description?: string\n}\n\n/**\n * Shopify \u53D8\u4F53\u6570\u636E\u63A5\u53E3\n */\nexport interface VariantData {\n /**\n * \u4EA7\u54C1\u63CF\u8FF0\n */\n description?: string\n /**\n * \u53D8\u4F53id\n */\n variantId: string\n\n /**\n * \u4EA7\u54C1\u94FE\u63A5, \u70B9\u51FB\u56FE\u7247\u7684\u65F6\u5019\u8DF3\u8F6C\u5230\u8BE5\u94FE\u63A5\n */\n listingLink: string\n /**\n * \u539F\u4EF7\n */\n originalPrice: string\n /**\n * \u73B0\u4EF7\n */\n price: string\n /**\n * \u4EF7\u683C\u4E0A\u9762\u5C55\u793A\u7684\u6807\u7B7E\u6587\u672C\n */\n priceLabel?: string\n /**\n * \u603B\u5E93\u5B58\n */\n totalInventory: number\n /**\n * \u53EF\u7528\u5E93\u5B58\u6570\u91CF\n */\n quantityAvailable: number\n /**\n * \u662F\u5426\u53EF\u552E\n */\n availableForSale: boolean\n\n /**\n * tags \u5217\u8868(\u4F1A\u5458\u4EF7\uFF0C\u6298\u6263\uFF0Cnew, hot\u7B49\u6807\u7B7E\u4FE1\u606F)\n */\n tags: Array<\n | {\n label: string\n variant: BadgeProps['variant']\n promotionalType?: BadgeProps['promotionalType']\n }\n | React.ReactNode\n >\n /**\n * \u901A\u7528\u6298\u6263\u6570\u636E\uFF0C\u5305\u62EC\u6298\u6263title, \u7C7B\u578B\u548C\u503C\n */\n coupon: any\n}\n\n/**\n * \u5B8C\u6574\u7684\u4EA7\u54C1\u5361\u7247\u6570\u636E\u63A5\u53E3\n */\nexport interface ProductCardData extends BaseProductData, VariantData {}\n\n/**\n * \u4EA7\u54C1\u5361\u7247\u7EC4\u4EF6 Props\n */\nexport interface ProductCardProps {\n /** \u4EA7\u54C1\u6570\u636E */\n product: ProductCardData\n /** \u6837\u5F0F\u7C7B\u540D */\n className?: string\n /** \u662F\u5426\u5C55\u793A\u6807\u7B7E\u7CFB\u7EDF */\n showTags?: boolean\n /** \u5E93\u5B58\u5C55\u793A\u6A21\u5F0F */\n stockDisplayMode?: StockDisplayMode\n /** \u5E93\u5B58\u9608\u503C\uFF08\u5F53\u6A21\u5F0F\u4E3A below-quantity \u6216 below-percentage \u65F6\u4F7F\u7528\uFF09 */\n stockThresholdValue?: number\n /** \u70B9\u51FB\u4E86\u89E3\u66F4\u591A\u56DE\u8C03 */\n onLearnMore?: (product: ProductCardData) => void\n /** \u70B9\u51FB\u7ACB\u5373\u8D2D\u4E70\u56DE\u8C03 */\n onShopNow?: (product: ProductCardData) => void\n /** \u70B9\u51FB\u52A0\u5165\u8D2D\u7269\u8F66\u56DE\u8C03 */\n onAddToCart?: (product: ProductCardData) => void\n /** \u8BED\u4E49\u5316\u7C7B\u540D */\n classNames?: Partial<Record<ActiveShelfSemanticName, string>>\n /** \u4E86\u89E3\u66F4\u591A\u6309\u94AE\u6587\u672C */\n secondaryButtonText?: string\n /** \u4E86\u89E3\u66F4\u591A\u6309\u94AE\u529F\u80FD */\n secondaryButtonFun?: ButtonFunctionType\n /** \u7ACB\u5373\u8D2D\u4E70\u6309\u94AE\u6587\u672C */\n primaryButtonText?: string\n /** \u7ACB\u5373\u8D2D\u4E70\u6309\u94AE\u529F\u80FD */\n primaryButtonFun?: ButtonFunctionType\n /** \u662F\u5426\u5C55\u793A\u539F\u4EF7\uFF08\u5220\u9664\u7EBF\u4EF7\u683C\uFF09 */\n showOriginalPrice?: boolean\n /** \u6587\u6848\u914D\u7F6E */\n copy?: CopyConfig\n onProductImageClick?: (product: ProductCardData) => void\n}\n\n/**\n * \u5224\u65AD\u662F\u5426\u5E94\u8BE5\u663E\u793A\u5E93\u5B58\u4FE1\u606F\n * @param stockDisplayMode \u5E93\u5B58\u5C55\u793A\u6A21\u5F0F\n * @param stockThresholdValue \u5E93\u5B58\u9608\u503C\uFF08\u5F53\u6A21\u5F0F\u4E3A below-quantity \u6216 below-percentage \u65F6\u4F7F\u7528\uFF09\n * @param quantityAvailable \u53EF\u7528\u5E93\u5B58\u6570\u91CF\n * @param totalInventory \u603B\u5E93\u5B58\n * @returns \u662F\u5426\u663E\u793A\u5E93\u5B58\u4FE1\u606F\n */\nfunction shouldShowStock(\n stockDisplayMode: StockDisplayMode | undefined,\n stockThresholdValue: number | undefined,\n quantityAvailable: number,\n totalInventory: number\n): boolean {\n // \u672A\u914D\u7F6E\u65F6\u9ED8\u8BA4\u663E\u793A\n if (stockDisplayMode === undefined) {\n return true\n }\n\n // \u6839\u636E\u5C55\u793A\u6A21\u5F0F\u5224\u65AD\n switch (stockDisplayMode) {\n case 'always':\n // \u603B\u662F\u663E\u793A\n return true\n\n case 'never':\n // \u6C38\u4E0D\u663E\u793A\n return false\n\n case 'below-quantity':\n // \u5F53\u5E93\u5B58\u6570\u91CF\u4F4E\u4E8E\u9608\u503C\u65F6\u663E\u793A\n if (stockThresholdValue === undefined) {\n return true // \u6CA1\u6709\u8BBE\u7F6E\u9608\u503C\u65F6\u9ED8\u8BA4\u663E\u793A\n }\n\n return quantityAvailable <= stockThresholdValue\n\n case 'below-percentage':\n // \u5F53\u5E93\u5B58\u767E\u5206\u6BD4\u4F4E\u4E8E\u9608\u503C\u65F6\u663E\u793A\n if (stockThresholdValue === undefined) {\n return true // \u6CA1\u6709\u8BBE\u7F6E\u9608\u503C\u65F6\u9ED8\u8BA4\u663E\u793A\n }\n return (quantityAvailable / totalInventory) * 100 <= stockThresholdValue\n\n default:\n // \u672A\u77E5\u6A21\u5F0F\u65F6\u9ED8\u8BA4\u663E\u793A\n return true\n }\n}\n\n/**\n * \u4EA7\u54C1\u5361\u7247\u7EC4\u4EF6\n */\nconst ProductCard = React.forwardRef<HTMLDivElement, ProductCardProps>(\n (\n {\n product,\n className,\n showTags = true,\n stockDisplayMode,\n stockThresholdValue,\n onLearnMore,\n onShopNow,\n onAddToCart,\n classNames,\n secondaryButtonText,\n secondaryButtonFun,\n primaryButtonText,\n primaryButtonFun,\n showOriginalPrice,\n copy,\n onProductImageClick,\n },\n ref\n ) => {\n const [primaryLoading, setPrimaryLoading] = React.useState(false)\n const [secondaryLoading, setSecondaryLoading] = React.useState(false)\n\n const stockPercentage = React.useMemo(() => {\n if (product?.availableForSale && product?.quantityAvailable <= 0) {\n return OVERSELLING_STOCK_PERCENTAGE\n }\n // \u4E0D\u53EF\u552E\u65F6\u663E\u793A0%\n if (!product?.availableForSale) {\n return 0\n }\n return ((product?.quantityAvailable ?? 0) / (product?.totalInventory ?? 1)) * 100\n }, [product?.availableForSale, product?.quantityAvailable, product?.totalInventory])\n\n // \u6839\u636E\u6309\u94AE\u529F\u80FD\u7C7B\u578B\u8C03\u7528\u76F8\u5E94\u7684\u56DE\u8C03\u51FD\u6570\n const handleButtonClick = async (buttonFun?: ButtonFunctionType, buttonType?: 'primary' | 'secondary') => {\n if (!buttonFun) return\n\n const setLoading = buttonType === 'primary' ? setPrimaryLoading : setSecondaryLoading\n setLoading(true)\n\n try {\n switch (buttonFun) {\n case 'buyNow':\n await onShopNow?.(product)\n break\n case 'addCart':\n await onAddToCart?.(product)\n break\n case 'learnMore':\n await onLearnMore?.(product)\n break\n default:\n break\n }\n } finally {\n setLoading(false)\n }\n }\n\n const overselling = product.availableForSale && product.quantityAvailable <= 0\n\n return (\n <Card\n ref={ref}\n className={cn(\n 'bg-container-primary hover:bg-container-secondary-0 flex h-full flex-col overflow-hidden border-none',\n className,\n classNames?.productCard\n )}\n >\n <CardContent className=\"desktop:p-6 relative flex flex-1 flex-col justify-between p-4\">\n {/* \u6807\u7B7E */}\n <div className=\"lg-desktop:h-[28px] flex h-[24px] gap-1\">\n {showTags &&\n product.tags?.map((tag: any, index) =>\n (tag as any).label ? (\n <Badge\n key={index}\n size=\"sm\"\n variant={(tag.variant as any) || 'outline'}\n className={cn(tag.variant === 'promotional' ? 'ml-2' : '')}\n promotionalType={tag.promotionalType}\n >\n {tag.label}\n </Badge>\n ) : (\n <React.Fragment key={index}>{tag}</React.Fragment>\n )\n )}\n </div>\n\n {/* \u4EA7\u54C1\u56FE\u533A\u57DF */}\n <div className=\"product-image-wrapper lg-desktop:size-[196px] mx-auto size-[138px] cursor-pointer overflow-hidden\">\n <a\n onClick={() => onProductImageClick?.(product)}\n {...(!onProductImageClick && {\n href: product?.listingLink,\n })}\n rel=\"noreferrer\"\n >\n <Picture\n source={product.image}\n alt={product.name}\n className=\"aspect-square size-full object-contain\"\n imgClassName=\"w-full h-full object-contain\"\n />\n </a>\n </div>\n\n {/* \u5185\u5BB9\u533A\u57DF */}\n <div className=\"flex h-full flex-1 grow flex-col justify-between\">\n {/* \u4EA7\u54C1\u4FE1\u606F */}\n <div className=\"mb-4\">\n <Heading\n as=\"h3\"\n size={2}\n className={cn('text-info-primary mb-2 line-clamp-2 min-h-[2.4em]', classNames?.productTitle)}\n html={product.custom_name || product.name}\n />\n {product?.description && (\n <Text\n size={2}\n className={cn(\n 'text-info-secondary desktop:line-clamp-2 desktop:min-h-[2.4em] desktop:text-[16px] lg-desktop:text-[18px] line-clamp-2 min-h-[2.4em] text-[14px]',\n classNames?.productDescription\n )}\n html={product.custom_description || product.description}\n />\n )}\n </div>\n\n {/* \u4EF7\u683C\u533A\u57DF */}\n <div>\n <div className={cn('mb-2', classNames?.productPrice)}>\n <div className=\"flex items-baseline gap-2\">\n {product.availableForSale ? (\n <>\n <Heading size={2} className=\"text-info-primary\" as=\"h6\">\n {product.price}\n </Heading>\n {showOriginalPrice && product.originalPrice && (\n <Heading\n size={2}\n className={cn('text-info-tertiary line-through', classNames?.originalPrice)}\n as=\"h6\"\n >\n {product.originalPrice}\n </Heading>\n )}\n </>\n ) : (\n <Heading size={2} className=\"text-info-tertiary\">\n {copy?.outOfStockLabel ?? 'Sold Out'}\n </Heading>\n )}\n </div>\n </div>\n\n {product?.priceLabel && product?.availableForSale && (\n <Text\n size={4}\n className={cn(\n 'text-marketing-1 desktop:text-[16px] lg-desktop:text-[18px] mt-2 text-[14px]',\n classNames?.productPriceLabel\n )}\n >\n {product.priceLabel}\n </Text>\n )}\n\n {/* \u6309\u94AE\u533A\u57DF */}\n <div className={cn('lg-desktop:gap-3 tablet:flex-nowrap flex flex-wrap gap-2', classNames?.buttonGroup)}>\n {secondaryButtonText && (\n <Button\n variant=\"secondary\"\n size=\"base\"\n className={cn('tablet:w-fit w-full', classNames?.secondaryButton)}\n onClick={() => handleButtonClick(secondaryButtonFun, 'secondary')}\n disabled={!product.availableForSale && secondaryButtonFun !== 'learnMore'}\n loading={secondaryLoading}\n data-headless-type-name=\"ActiveShelf#ProductCard\"\n data-headless-title-desc-button={`${product.custom_name || product.name}#${product.description || ''}#${secondaryButtonText}`}\n data-headless-sku={product.sku}\n >\n {secondaryButtonText}\n </Button>\n )}\n {primaryButtonText && (\n <Button\n variant=\"primary\"\n size=\"base\"\n className={cn('tablet:w-fit w-full', classNames?.primaryButton)}\n onClick={() => handleButtonClick(primaryButtonFun, 'primary')}\n disabled={!product.availableForSale && primaryButtonFun !== 'learnMore'}\n loading={primaryLoading}\n data-headless-type-name=\"ActiveShelf#ProductCard\"\n data-headless-title-desc-button={`${product.custom_name || product.name}#${product.description || ''}#${primaryButtonText}`}\n data-headless-sku={product.sku}\n >\n {primaryButtonText}\n </Button>\n )}\n </div>\n\n {/* \u5E93\u5B58\u4FE1\u606F */}\n {shouldShowStock(\n stockDisplayMode,\n stockThresholdValue,\n product?.quantityAvailable ?? 0,\n product?.totalInventory ?? 0\n ) && (\n <div className=\"mt-4 space-y-2\">\n <Progress\n value={stockPercentage}\n max={100}\n min={0}\n size=\"base\"\n variant=\"default\"\n aria-label=\"stock progress\"\n classNames={{\n root: cn('bg-[var(--progress-track-bg,rgba(0,0,0,0.2))]', classNames?.stockTrack),\n progressBar: cn('bg-brand-0 transition-all duration-300 ease-in-out', classNames?.stockBar),\n }}\n />\n <Text size={3} className=\"text-info-tertiary text-[14px]\">\n {overselling\n ? copy?.limitedStock\n : copy?.stockDisplayText?.replace(\n '{count}',\n `${product.availableForSale ? product.quantityAvailable : 0}`\n )}\n </Text>\n </div>\n )}\n </div>\n </div>\n </CardContent>\n </Card>\n )\n }\n)\n\nProductCard.displayName = 'ActiveShelf.ProductCard'\n\nexport { ProductCard }\nexport default ProductCard\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["'use client'\n\nimport * as React from 'react'\nimport { cn } from '../../helpers/index.js'\nimport { Button, Badge, Card, CardContent, Picture, Text, Heading, Progress } from '../../components/index.js'\n\nimport type { ButtonFunctionType, CopyConfig } from './types.js'\nimport type { BadgeProps } from '../../components/badge.js'\n\n/**\n * \u8D85\u5356\u65F6\u5E93\u5B58\u6761\u663E\u793A\u7684\u6700\u5C0F\u767E\u5206\u6BD4\n * \u9632\u6B62\u8D85\u5356\u65F6\u5E93\u5B58\u6761\u663E\u793A\u4E3A\u6EE1\u683C\uFF08100%\uFF09\u6216\u5B8C\u5168\u7A7A\uFF080%\uFF09\n */\nconst OVERSELLING_STOCK_PERCENTAGE = 5\n\n/**\n * \u8BED\u4E49\u5316\u7C7B\u540D\n */\nexport type ActiveShelfSemanticName =\n | 'root'\n | 'title'\n | 'description'\n | 'productCard'\n | 'productTitle'\n | 'productDescription'\n | 'productPriceLabel'\n | 'productPrice'\n | 'originalPrice'\n | 'buttonGroup'\n | 'secondaryButton'\n | 'primaryButton'\n | 'stockTrack'\n | 'stockBar'\n\n/**\n * \u5E93\u5B58\u5C55\u793A\u6A21\u5F0F\n */\nexport type StockDisplayMode = 'always' | 'never' | 'below-quantity' | 'below-percentage'\n\n/**\n * \u57FA\u7840\u4EA7\u54C1\u6570\u636E\u63A5\u53E3\uFF08\u6765\u81EA\u5916\u90E8\u6570\u636E\u6E90\uFF09\n */\nexport interface BaseProductData {\n sku: string\n name: string\n image: string\n value: string\n handle: string\n shopify_id: string\n custom_name?: string\n custom_description?: string\n}\n\n/**\n * Shopify \u53D8\u4F53\u6570\u636E\u63A5\u53E3\n */\nexport interface VariantData {\n /**\n * \u4EA7\u54C1\u63CF\u8FF0\n */\n description?: string\n /**\n * \u53D8\u4F53id\n */\n variantId: string\n\n /**\n * \u4EA7\u54C1\u94FE\u63A5, \u70B9\u51FB\u56FE\u7247\u7684\u65F6\u5019\u8DF3\u8F6C\u5230\u8BE5\u94FE\u63A5\n */\n listingLink: string\n /**\n * \u539F\u4EF7\n */\n originalPrice: string\n /**\n * \u73B0\u4EF7\n */\n price: string\n /**\n * \u4EF7\u683C\u4E0A\u9762\u5C55\u793A\u7684\u6807\u7B7E\u6587\u672C\n */\n priceLabel?: string\n /**\n * \u603B\u5E93\u5B58\n */\n totalInventory: number\n /**\n * \u53EF\u7528\u5E93\u5B58\u6570\u91CF\n */\n quantityAvailable: number\n /**\n * \u662F\u5426\u53EF\u552E\n */\n availableForSale: boolean\n\n /**\n * tags \u5217\u8868(\u4F1A\u5458\u4EF7\uFF0C\u6298\u6263\uFF0Cnew, hot\u7B49\u6807\u7B7E\u4FE1\u606F)\n */\n tags: Array<\n | {\n label: string\n variant: BadgeProps['variant']\n promotionalType?: BadgeProps['promotionalType']\n }\n | React.ReactNode\n >\n /**\n * \u901A\u7528\u6298\u6263\u6570\u636E\uFF0C\u5305\u62EC\u6298\u6263title, \u7C7B\u578B\u548C\u503C\n */\n coupon: any\n}\n\n/**\n * \u5B8C\u6574\u7684\u4EA7\u54C1\u5361\u7247\u6570\u636E\u63A5\u53E3\n */\nexport interface ProductCardData extends BaseProductData, VariantData {}\n\n/**\n * \u4EA7\u54C1\u5361\u7247\u7EC4\u4EF6 Props\n */\nexport interface ProductCardProps {\n /** \u4EA7\u54C1\u6570\u636E */\n product: ProductCardData\n /** \u6837\u5F0F\u7C7B\u540D */\n className?: string\n /** \u662F\u5426\u5C55\u793A\u6807\u7B7E\u7CFB\u7EDF */\n showTags?: boolean\n /** \u5E93\u5B58\u5C55\u793A\u6A21\u5F0F */\n stockDisplayMode?: StockDisplayMode\n /** \u5E93\u5B58\u9608\u503C\uFF08\u5F53\u6A21\u5F0F\u4E3A below-quantity \u6216 below-percentage \u65F6\u4F7F\u7528\uFF09 */\n stockThresholdValue?: number\n /** \u70B9\u51FB\u4E86\u89E3\u66F4\u591A\u56DE\u8C03 */\n onLearnMore?: (product: ProductCardData) => void\n /** \u70B9\u51FB\u7ACB\u5373\u8D2D\u4E70\u56DE\u8C03 */\n onShopNow?: (product: ProductCardData) => void\n /** \u70B9\u51FB\u52A0\u5165\u8D2D\u7269\u8F66\u56DE\u8C03 */\n onAddToCart?: (product: ProductCardData) => void\n /** \u8BED\u4E49\u5316\u7C7B\u540D */\n classNames?: Partial<Record<ActiveShelfSemanticName, string>>\n /** \u4E86\u89E3\u66F4\u591A\u6309\u94AE\u6587\u672C */\n secondaryButtonText?: string\n /** \u4E86\u89E3\u66F4\u591A\u6309\u94AE\u529F\u80FD */\n secondaryButtonFun?: ButtonFunctionType\n /** \u7ACB\u5373\u8D2D\u4E70\u6309\u94AE\u6587\u672C */\n primaryButtonText?: string\n /** \u7ACB\u5373\u8D2D\u4E70\u6309\u94AE\u529F\u80FD */\n primaryButtonFun?: ButtonFunctionType\n /** \u662F\u5426\u5C55\u793A\u539F\u4EF7\uFF08\u5220\u9664\u7EBF\u4EF7\u683C\uFF09 */\n showOriginalPrice?: boolean\n /** \u6587\u6848\u914D\u7F6E */\n copy?: CopyConfig\n onProductImageClick?: (product: ProductCardData) => void\n}\n\n/**\n * \u5224\u65AD\u662F\u5426\u5E94\u8BE5\u663E\u793A\u5E93\u5B58\u4FE1\u606F\n * @param stockDisplayMode \u5E93\u5B58\u5C55\u793A\u6A21\u5F0F\n * @param stockThresholdValue \u5E93\u5B58\u9608\u503C\uFF08\u5F53\u6A21\u5F0F\u4E3A below-quantity \u6216 below-percentage \u65F6\u4F7F\u7528\uFF09\n * @param quantityAvailable \u53EF\u7528\u5E93\u5B58\u6570\u91CF\n * @param totalInventory \u603B\u5E93\u5B58\n * @returns \u662F\u5426\u663E\u793A\u5E93\u5B58\u4FE1\u606F\n */\nfunction shouldShowStock(\n stockDisplayMode: StockDisplayMode | undefined,\n stockThresholdValue: number | undefined,\n quantityAvailable: number,\n totalInventory: number\n): boolean {\n // \u672A\u914D\u7F6E\u65F6\u9ED8\u8BA4\u663E\u793A\n if (stockDisplayMode === undefined) {\n return true\n }\n\n // \u6839\u636E\u5C55\u793A\u6A21\u5F0F\u5224\u65AD\n switch (stockDisplayMode) {\n case 'always':\n // \u603B\u662F\u663E\u793A\n return true\n\n case 'never':\n // \u6C38\u4E0D\u663E\u793A\n return false\n\n case 'below-quantity':\n // \u5F53\u5E93\u5B58\u6570\u91CF\u4F4E\u4E8E\u9608\u503C\u65F6\u663E\u793A\n if (stockThresholdValue === undefined) {\n return true // \u6CA1\u6709\u8BBE\u7F6E\u9608\u503C\u65F6\u9ED8\u8BA4\u663E\u793A\n }\n\n return quantityAvailable <= stockThresholdValue\n\n case 'below-percentage':\n // \u5F53\u5E93\u5B58\u767E\u5206\u6BD4\u4F4E\u4E8E\u9608\u503C\u65F6\u663E\u793A\n if (stockThresholdValue === undefined) {\n return true // \u6CA1\u6709\u8BBE\u7F6E\u9608\u503C\u65F6\u9ED8\u8BA4\u663E\u793A\n }\n return (quantityAvailable / totalInventory) * 100 <= stockThresholdValue\n\n default:\n // \u672A\u77E5\u6A21\u5F0F\u65F6\u9ED8\u8BA4\u663E\u793A\n return true\n }\n}\n\n/**\n * \u4EA7\u54C1\u5361\u7247\u7EC4\u4EF6\n */\nconst ProductCard = React.forwardRef<HTMLDivElement, ProductCardProps>(\n (\n {\n product,\n className,\n showTags = true,\n stockDisplayMode,\n stockThresholdValue,\n onLearnMore,\n onShopNow,\n onAddToCart,\n classNames,\n secondaryButtonText,\n secondaryButtonFun,\n primaryButtonText,\n primaryButtonFun,\n showOriginalPrice,\n copy,\n onProductImageClick,\n },\n ref\n ) => {\n const [primaryLoading, setPrimaryLoading] = React.useState(false)\n const [secondaryLoading, setSecondaryLoading] = React.useState(false)\n\n const stockPercentage = React.useMemo(() => {\n if (product?.availableForSale && product?.quantityAvailable <= 0) {\n return OVERSELLING_STOCK_PERCENTAGE\n }\n // \u4E0D\u53EF\u552E\u65F6\u663E\u793A0%\n if (!product?.availableForSale) {\n return 0\n }\n return ((product?.quantityAvailable ?? 0) / (product?.totalInventory ?? 1)) * 100\n }, [product?.availableForSale, product?.quantityAvailable, product?.totalInventory])\n\n // \u6839\u636E\u6309\u94AE\u529F\u80FD\u7C7B\u578B\u8C03\u7528\u76F8\u5E94\u7684\u56DE\u8C03\u51FD\u6570\n const handleButtonClick = async (buttonFun?: ButtonFunctionType, buttonType?: 'primary' | 'secondary') => {\n if (!buttonFun) return\n\n const setLoading = buttonType === 'primary' ? setPrimaryLoading : setSecondaryLoading\n setLoading(true)\n\n try {\n switch (buttonFun) {\n case 'buyNow':\n await onShopNow?.(product)\n break\n case 'addCart':\n await onAddToCart?.(product)\n break\n case 'learnMore':\n await onLearnMore?.(product)\n break\n default:\n break\n }\n } finally {\n setLoading(false)\n }\n }\n\n const overselling = product.availableForSale && product.quantityAvailable <= 0\n\n return (\n <Card\n ref={ref}\n className={cn(\n 'bg-container-primary hover:bg-container-secondary-0 flex h-full flex-col overflow-hidden border-none',\n className,\n classNames?.productCard\n )}\n >\n <CardContent className=\"desktop:p-6 relative flex flex-1 flex-col justify-between p-4\">\n {/* \u6807\u7B7E */}\n <div className=\"lg-desktop:h-[28px] flex h-[24px] gap-1\">\n {showTags &&\n product.tags?.map((tag: any, index) =>\n (tag as any).label ? (\n <Badge\n key={index}\n size=\"sm\"\n variant={(tag.variant as any) || 'outline'}\n className={cn(tag.variant === 'promotional' ? 'ml-2' : '')}\n promotionalType={tag.promotionalType}\n >\n {tag.label}\n </Badge>\n ) : (\n <React.Fragment key={index}>{tag}</React.Fragment>\n )\n )}\n </div>\n\n {/* \u4EA7\u54C1\u56FE\u533A\u57DF */}\n <div className=\"product-image-wrapper lg-desktop:size-[196px] mx-auto size-[138px] cursor-pointer overflow-hidden\">\n <a\n onClick={() => onProductImageClick?.(product)}\n {...(!onProductImageClick && {\n href: product?.listingLink,\n })}\n rel=\"noreferrer\"\n >\n <Picture\n source={product.image}\n alt={product.name}\n className=\"aspect-square size-full object-contain\"\n imgClassName=\"w-full h-full object-contain\"\n />\n </a>\n </div>\n\n {/* \u5185\u5BB9\u533A\u57DF */}\n <div className=\"flex h-full flex-1 grow flex-col justify-between\">\n {/* \u4EA7\u54C1\u4FE1\u606F */}\n <div className=\"mb-4\">\n <Heading\n as=\"h3\"\n size={2}\n className={cn('text-info-primary mb-2 line-clamp-2 min-h-[2.4em]', classNames?.productTitle)}\n html={product.custom_name || product.name}\n />\n {product?.description && (\n <Text\n size={2}\n className={cn(\n 'text-info-secondary desktop:line-clamp-2 desktop:min-h-[2.4em] desktop:text-[16px] lg-desktop:text-[18px] line-clamp-2 min-h-[2.4em] text-[14px]',\n classNames?.productDescription\n )}\n html={product.custom_description || product.description}\n />\n )}\n </div>\n\n {/* \u4EF7\u683C\u533A\u57DF */}\n <div>\n <div className={cn('mb-2', classNames?.productPrice)}>\n <div className=\"flex items-baseline gap-2\">\n {product.availableForSale ? (\n <>\n <Heading size={2} className=\"text-info-primary\" as=\"h6\">\n {product.price}\n </Heading>\n {showOriginalPrice && product.originalPrice && (\n <Heading\n size={2}\n className={cn('text-info-tertiary line-through', classNames?.originalPrice)}\n as=\"h6\"\n >\n {product.originalPrice}\n </Heading>\n )}\n </>\n ) : (\n <Heading size={2} className=\"text-info-tertiary\">\n {copy?.outOfStockLabel ?? 'Sold Out'}\n </Heading>\n )}\n </div>\n </div>\n\n {product?.priceLabel && product?.availableForSale && (\n <Text\n size={4}\n className={cn(\n 'text-marketing-1 desktop:text-[16px] lg-desktop:text-[18px] mt-2 text-[14px]',\n classNames?.productPriceLabel\n )}\n >\n {product.priceLabel}\n </Text>\n )}\n\n {/* \u6309\u94AE\u533A\u57DF */}\n <div className={cn('lg-desktop:gap-3 tablet:flex-nowrap flex flex-wrap gap-2', classNames?.buttonGroup)}>\n {secondaryButtonText && (\n <Button\n variant=\"secondary\"\n size=\"base\"\n className={cn(\n 'tablet:w-fit tablet:min-w-0 tablet:whitespace-normal tablet:text-center w-full whitespace-nowrap',\n classNames?.secondaryButton\n )}\n onClick={() => handleButtonClick(secondaryButtonFun, 'secondary')}\n disabled={!product.availableForSale && secondaryButtonFun !== 'learnMore'}\n loading={secondaryLoading}\n data-headless-type-name=\"ActiveShelf#ProductCard\"\n data-headless-title-desc-button={`${product.custom_name || product.name}#${product.description || ''}#${secondaryButtonText}`}\n data-headless-sku={product.sku}\n >\n {secondaryButtonText}\n </Button>\n )}\n {primaryButtonText && (\n <Button\n variant=\"primary\"\n size=\"base\"\n className={cn(\n 'tablet:w-fit tablet:min-w-0 tablet:whitespace-normal tablet:text-center w-full whitespace-nowrap',\n classNames?.primaryButton\n )}\n onClick={() => handleButtonClick(primaryButtonFun, 'primary')}\n disabled={!product.availableForSale && primaryButtonFun !== 'learnMore'}\n loading={primaryLoading}\n data-headless-type-name=\"ActiveShelf#ProductCard\"\n data-headless-title-desc-button={`${product.custom_name || product.name}#${product.description || ''}#${primaryButtonText}`}\n data-headless-sku={product.sku}\n >\n {primaryButtonText}\n </Button>\n )}\n </div>\n\n {/* \u5E93\u5B58\u4FE1\u606F */}\n {shouldShowStock(\n stockDisplayMode,\n stockThresholdValue,\n product?.quantityAvailable ?? 0,\n product?.totalInventory ?? 0\n ) && (\n <div className=\"mt-4 space-y-2\">\n <Progress\n value={stockPercentage}\n max={100}\n min={0}\n size=\"base\"\n variant=\"default\"\n aria-label=\"stock progress\"\n classNames={{\n root: cn('bg-[var(--progress-track-bg,rgba(0,0,0,0.2))]', classNames?.stockTrack),\n progressBar: cn('bg-brand-0 transition-all duration-300 ease-in-out', classNames?.stockBar),\n }}\n />\n <Text size={3} className=\"text-info-tertiary text-[14px]\">\n {overselling\n ? copy?.limitedStock\n : copy?.stockDisplayText?.replace(\n '{count}',\n `${product.availableForSale ? product.quantityAvailable : 0}`\n )}\n </Text>\n </div>\n )}\n </div>\n </div>\n </CardContent>\n </Card>\n )\n }\n)\n\nProductCard.displayName = 'ActiveShelf.ProductCard'\n\nexport { ProductCard }\nexport default ProductCard\n"],
5
+ "mappings": "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",
6
6
  "names": ["ProductCard_exports", "__export", "ProductCard", "ProductCard_default", "__toCommonJS", "import_jsx_runtime", "React", "import_helpers", "import_components", "OVERSELLING_STOCK_PERCENTAGE", "shouldShowStock", "stockDisplayMode", "stockThresholdValue", "quantityAvailable", "totalInventory", "product", "className", "showTags", "onLearnMore", "onShopNow", "onAddToCart", "classNames", "secondaryButtonText", "secondaryButtonFun", "primaryButtonText", "primaryButtonFun", "showOriginalPrice", "copy", "onProductImageClick", "ref", "primaryLoading", "setPrimaryLoading", "secondaryLoading", "setSecondaryLoading", "stockPercentage", "handleButtonClick", "buttonFun", "buttonType", "setLoading", "overselling", "tag", "index"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";"use client";var S=Object.create;var s=Object.defineProperty;var C=Object.getOwnPropertyDescriptor;var L=Object.getOwnPropertyNames;var w=Object.getPrototypeOf,B=Object.prototype.hasOwnProperty;var T=(e,t)=>{for(var i in t)s(e,i,{get:t[i],enumerable:!0})},x=(e,t,i,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of L(t))!B.call(e,r)&&r!==i&&s(e,r,{get:()=>t[r],enumerable:!(o=C(t,r))||o.enumerable});return e};var h=(e,t,i)=>(i=e!=null?S(w(e)):{},x(t||!e||!e.__esModule?s(i,"default",{value:e,enumerable:!0}):i,e)),z=e=>x(s({},"__esModule",{value:!0}),e);var $={};T($,{default:()=>M});module.exports=z($);var a=require("react/jsx-runtime"),H=h(require("react")),n=require("../../helpers/index.js"),l=h(require("../../components/button.js")),d=require("../../components/text.js"),c=require("../../components/index.js");const y=H.forwardRef(({currentPrice:e,originalPrice:t,priceLabel:i,learnMoreText:o="Learn More",shopNowText:r="Shop Now",soldOutText:P="Sold out",onLearnMore:N,onShopNow:v,availableForSale:p,learnMoreLoading:b,shopNowLoading:O,className:k,trackingTitle:m,trackingDescription:g,trackingSku:u,classNames:f},A)=>(0,a.jsxs)("div",{ref:A,className:(0,n.cn)("flex w-full flex-col justify-center gap-2",k),children:[(0,a.jsx)("div",{className:"flex w-full items-center gap-2",children:p?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(c.Heading,{size:2,className:(0,n.cn)("text-info-primary"),children:e}),t&&(0,a.jsx)(c.Heading,{size:2,className:(0,n.cn)("text-info-tertiary line-through",f?.productCardOriginalPrice),children:t})]}):(0,a.jsx)(d.Text,{size:4,className:(0,n.cn)("text-info-primary text-2xl leading-[1.2] tracking-[-0.48px]","tablet:text-xl tablet:tracking-[-0.4px]"),children:P})}),i&&(0,a.jsx)(d.Text,{size:4,className:(0,n.cn)("text-marketing-1 desktop:text-[16px] lg-desktop:text-[18px] text-[14px]",f?.productCardPriceLabel),children:i}),(0,a.jsxs)("div",{className:(0,n.cn)("flex w-full items-center gap-3","tablet:gap-2"),children:[(0,a.jsx)(l.default,{variant:"secondary",size:"lg",onClick:N,loading:b,"data-headless-type-name":"BuyOneGetOneShelf#ProductCard","data-headless-title-desc-button":`${m||""}#${g||""}#${o}`,"data-headless-sku":u,children:o}),(0,a.jsx)(l.default,{variant:"primary",size:"lg",onClick:v,disabled:!p,loading:O,"data-headless-type-name":"BuyOneGetOneShelf#ProductCard","data-headless-title-desc-button":`${m||""}#${g||""}#${r}`,"data-headless-sku":u,children:r})]})]}));y.displayName="PriceAndActions";var M=y;
1
+ "use strict";"use client";var k=Object.create;var l=Object.defineProperty;var A=Object.getOwnPropertyDescriptor;var B=Object.getOwnPropertyNames;var S=Object.getPrototypeOf,L=Object.prototype.hasOwnProperty;var T=(e,t)=>{for(var r in t)l(e,r,{get:t[r],enumerable:!0})},f=(e,t,r,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of B(t))!L.call(e,n)&&n!==r&&l(e,n,{get:()=>t[n],enumerable:!(o=A(t,n))||o.enumerable});return e};var h=(e,t,r)=>(r=e!=null?k(S(e)):{},f(t||!e||!e.__esModule?l(r,"default",{value:e,enumerable:!0}):r,e)),z=e=>f(l({},"__esModule",{value:!0}),e);var M={};T(M,{default:()=>H});module.exports=z(M);var a=require("react/jsx-runtime"),G=h(require("react")),i=require("../../helpers/index.js"),d=h(require("../../components/button.js")),c=require("../../components/text.js"),p=require("../../components/index.js");const y=G.forwardRef(({currentPrice:e,originalPrice:t,priceLabel:r,learnMoreText:o="Learn More",shopNowText:n="Shop Now",soldOutText:P="Sold out",onLearnMore:N,onShopNow:v,availableForSale:m,learnMoreLoading:b,shopNowLoading:w,className:C,trackingTitle:u,trackingDescription:g,trackingSku:x,classNames:s},O)=>(0,a.jsxs)("div",{ref:O,className:(0,i.cn)("flex w-full flex-col justify-center gap-2",C),children:[(0,a.jsx)("div",{className:"flex w-full items-center gap-2",children:m?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(p.Heading,{size:2,className:(0,i.cn)("text-info-primary"),children:e}),t&&(0,a.jsx)(p.Heading,{size:2,className:(0,i.cn)("text-info-tertiary line-through",s?.productCardOriginalPrice),children:t})]}):(0,a.jsx)(c.Text,{size:4,className:(0,i.cn)("text-info-primary text-2xl leading-[1.2] tracking-[-0.48px]","tablet:text-xl tablet:tracking-[-0.4px]"),children:P})}),r&&(0,a.jsx)(c.Text,{size:4,className:(0,i.cn)("text-marketing-1 desktop:text-[16px] lg-desktop:text-[18px] text-[14px]",s?.productCardPriceLabel),children:r}),(0,a.jsxs)("div",{className:(0,i.cn)("flex w-full items-stretch gap-3","tablet:gap-2"),children:[(0,a.jsx)(d.default,{variant:"secondary",size:"lg",onClick:N,loading:b,className:(0,i.cn)("min-w-0 flex-1 whitespace-normal text-center",s?.productCardBtnGroup),"data-headless-type-name":"BuyOneGetOneShelf#ProductCard","data-headless-title-desc-button":`${u||""}#${g||""}#${o}`,"data-headless-sku":x,children:o}),(0,a.jsx)(d.default,{variant:"primary",size:"lg",onClick:v,disabled:!m,loading:w,className:(0,i.cn)("min-w-0 flex-1 whitespace-normal text-center",s?.productCardBtnGroup),"data-headless-type-name":"BuyOneGetOneShelf#ProductCard","data-headless-title-desc-button":`${u||""}#${g||""}#${n}`,"data-headless-sku":x,children:n})]})]}));y.displayName="PriceAndActions";var H=y;
2
2
  //# sourceMappingURL=PriceAndActions.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/biz-components/BuyOneGetOneShelf/PriceAndActions.tsx"],
4
- "sourcesContent": ["'use client'\n\nimport * as React from 'react'\nimport { cn } from '../../helpers/index.js'\nimport Button from '../../components/button.js'\nimport { Text } from '../../components/text.js'\nimport { Heading } from '../../components/index.js'\nimport type { BuyOneGetOneShelfProductCardSemanticName } from './types.js'\n\nexport interface PriceAndActionsProps extends React.HTMLAttributes<HTMLDivElement> {\n currentPrice: string\n originalPrice?: string\n priceLabel?: string\n learnMoreText?: string\n shopNowText?: string\n soldOutText?: string\n onLearnMore?: () => void\n onShopNow?: () => void\n availableForSale: boolean\n learnMoreLoading?: boolean\n shopNowLoading?: boolean\n trackingTitle?: string\n trackingDescription?: string\n trackingSku?: string\n classNames?: Partial<Record<BuyOneGetOneShelfProductCardSemanticName, string>>\n}\n\nconst PriceAndActions = React.forwardRef<HTMLDivElement, PriceAndActionsProps>(\n (\n {\n currentPrice,\n originalPrice,\n priceLabel,\n learnMoreText = 'Learn More',\n shopNowText = 'Shop Now',\n soldOutText = 'Sold out',\n onLearnMore,\n onShopNow,\n availableForSale,\n learnMoreLoading,\n shopNowLoading,\n className,\n trackingTitle,\n trackingDescription,\n trackingSku,\n classNames,\n },\n ref\n ) => {\n return (\n <div ref={ref} className={cn('flex w-full flex-col justify-center gap-2', className)}>\n <div className=\"flex w-full items-center gap-2\">\n {availableForSale ? (\n <>\n <Heading size={2} className={cn('text-info-primary')}>\n {currentPrice}\n </Heading>\n {originalPrice && (\n <Heading\n size={2}\n className={cn('text-info-tertiary line-through', classNames?.productCardOriginalPrice)}\n >\n {originalPrice}\n </Heading>\n )}\n </>\n ) : (\n <Text\n size={4}\n className={cn(\n 'text-info-primary text-2xl leading-[1.2] tracking-[-0.48px]',\n 'tablet:text-xl tablet:tracking-[-0.4px]'\n )}\n >\n {soldOutText}\n </Text>\n )}\n </div>\n\n {priceLabel && (\n <Text\n size={4}\n className={cn(\n 'text-marketing-1 desktop:text-[16px] lg-desktop:text-[18px] text-[14px]',\n classNames?.productCardPriceLabel\n )}\n >\n {priceLabel}\n </Text>\n )}\n\n {/* \u6309\u94AE\u7EC4 */}\n <div className={cn('flex w-full items-center gap-3', 'tablet:gap-2')}>\n <Button\n variant=\"secondary\"\n size=\"lg\"\n onClick={onLearnMore}\n loading={learnMoreLoading}\n data-headless-type-name=\"BuyOneGetOneShelf#ProductCard\"\n data-headless-title-desc-button={`${trackingTitle || ''}#${trackingDescription || ''}#${learnMoreText}`}\n data-headless-sku={trackingSku}\n >\n {learnMoreText}\n </Button>\n <Button\n variant=\"primary\"\n size=\"lg\"\n onClick={onShopNow}\n disabled={!availableForSale}\n loading={shopNowLoading}\n data-headless-type-name=\"BuyOneGetOneShelf#ProductCard\"\n data-headless-title-desc-button={`${trackingTitle || ''}#${trackingDescription || ''}#${shopNowText}`}\n data-headless-sku={trackingSku}\n >\n {shopNowText}\n </Button>\n </div>\n </div>\n )\n }\n)\n\nPriceAndActions.displayName = 'PriceAndActions'\n\nexport default PriceAndActions\n"],
5
- "mappings": "ukBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,IAAA,eAAAC,EAAAH,GAqDY,IAAAI,EAAA,6BAnDZC,EAAuB,oBACvBC,EAAmB,kCACnBC,EAAmB,yCACnBC,EAAqB,oCACrBC,EAAwB,qCAqBxB,MAAMC,EAAkBL,EAAM,WAC5B,CACE,CACE,aAAAM,EACA,cAAAC,EACA,WAAAC,EACA,cAAAC,EAAgB,aAChB,YAAAC,EAAc,WACd,YAAAC,EAAc,WACd,YAAAC,EACA,UAAAC,EACA,iBAAAC,EACA,iBAAAC,EACA,eAAAC,EACA,UAAAC,EACA,cAAAC,EACA,oBAAAC,EACA,YAAAC,EACA,WAAAC,CACF,EACAC,OAGE,QAAC,OAAI,IAAKA,EAAK,aAAW,MAAG,4CAA6CL,CAAS,EACjF,oBAAC,OAAI,UAAU,iCACZ,SAAAH,KACC,oBACE,oBAAC,WAAQ,KAAM,EAAG,aAAW,MAAG,mBAAmB,EAChD,SAAAR,EACH,EACCC,MACC,OAAC,WACC,KAAM,EACN,aAAW,MAAG,kCAAmCc,GAAY,wBAAwB,EAEpF,SAAAd,EACH,GAEJ,KAEA,OAAC,QACC,KAAM,EACN,aAAW,MACT,8DACA,yCACF,EAEC,SAAAI,EACH,EAEJ,EAECH,MACC,OAAC,QACC,KAAM,EACN,aAAW,MACT,0EACAa,GAAY,qBACd,EAEC,SAAAb,EACH,KAIF,QAAC,OAAI,aAAW,MAAG,iCAAkC,cAAc,EACjE,oBAAC,EAAAe,QAAA,CACC,QAAQ,YACR,KAAK,KACL,QAASX,EACT,QAASG,EACT,0BAAwB,gCACxB,kCAAiC,GAAGG,GAAiB,EAAE,IAAIC,GAAuB,EAAE,IAAIV,CAAa,GACrG,oBAAmBW,EAElB,SAAAX,EACH,KACA,OAAC,EAAAc,QAAA,CACC,QAAQ,UACR,KAAK,KACL,QAASV,EACT,SAAU,CAACC,EACX,QAASE,EACT,0BAAwB,gCACxB,kCAAiC,GAAGE,GAAiB,EAAE,IAAIC,GAAuB,EAAE,IAAIT,CAAW,GACnG,oBAAmBU,EAElB,SAAAV,EACH,GACF,GACF,CAGN,EAEAL,EAAgB,YAAc,kBAE9B,IAAOR,EAAQQ",
4
+ "sourcesContent": ["'use client'\n\nimport * as React from 'react'\nimport { cn } from '../../helpers/index.js'\nimport Button from '../../components/button.js'\nimport { Text } from '../../components/text.js'\nimport { Heading } from '../../components/index.js'\nimport type { BuyOneGetOneShelfProductCardSemanticName } from './types.js'\n\nexport interface PriceAndActionsProps extends React.HTMLAttributes<HTMLDivElement> {\n currentPrice: string\n originalPrice?: string\n priceLabel?: string\n learnMoreText?: string\n shopNowText?: string\n soldOutText?: string\n onLearnMore?: () => void\n onShopNow?: () => void\n availableForSale: boolean\n learnMoreLoading?: boolean\n shopNowLoading?: boolean\n trackingTitle?: string\n trackingDescription?: string\n trackingSku?: string\n classNames?: Partial<Record<BuyOneGetOneShelfProductCardSemanticName, string>>\n}\n\nconst PriceAndActions = React.forwardRef<HTMLDivElement, PriceAndActionsProps>(\n (\n {\n currentPrice,\n originalPrice,\n priceLabel,\n learnMoreText = 'Learn More',\n shopNowText = 'Shop Now',\n soldOutText = 'Sold out',\n onLearnMore,\n onShopNow,\n availableForSale,\n learnMoreLoading,\n shopNowLoading,\n className,\n trackingTitle,\n trackingDescription,\n trackingSku,\n classNames,\n },\n ref\n ) => {\n return (\n <div ref={ref} className={cn('flex w-full flex-col justify-center gap-2', className)}>\n <div className=\"flex w-full items-center gap-2\">\n {availableForSale ? (\n <>\n <Heading size={2} className={cn('text-info-primary')}>\n {currentPrice}\n </Heading>\n {originalPrice && (\n <Heading\n size={2}\n className={cn('text-info-tertiary line-through', classNames?.productCardOriginalPrice)}\n >\n {originalPrice}\n </Heading>\n )}\n </>\n ) : (\n <Text\n size={4}\n className={cn(\n 'text-info-primary text-2xl leading-[1.2] tracking-[-0.48px]',\n 'tablet:text-xl tablet:tracking-[-0.4px]'\n )}\n >\n {soldOutText}\n </Text>\n )}\n </div>\n\n {priceLabel && (\n <Text\n size={4}\n className={cn(\n 'text-marketing-1 desktop:text-[16px] lg-desktop:text-[18px] text-[14px]',\n classNames?.productCardPriceLabel\n )}\n >\n {priceLabel}\n </Text>\n )}\n\n {/* \u6309\u94AE\u7EC4 */}\n <div className={cn('flex w-full items-stretch gap-3', 'tablet:gap-2')}>\n <Button\n variant=\"secondary\"\n size=\"lg\"\n onClick={onLearnMore}\n loading={learnMoreLoading}\n className={cn('min-w-0 flex-1 whitespace-normal text-center', classNames?.productCardBtnGroup)}\n data-headless-type-name=\"BuyOneGetOneShelf#ProductCard\"\n data-headless-title-desc-button={`${trackingTitle || ''}#${trackingDescription || ''}#${learnMoreText}`}\n data-headless-sku={trackingSku}\n >\n {learnMoreText}\n </Button>\n <Button\n variant=\"primary\"\n size=\"lg\"\n onClick={onShopNow}\n disabled={!availableForSale}\n loading={shopNowLoading}\n className={cn('min-w-0 flex-1 whitespace-normal text-center', classNames?.productCardBtnGroup)}\n data-headless-type-name=\"BuyOneGetOneShelf#ProductCard\"\n data-headless-title-desc-button={`${trackingTitle || ''}#${trackingDescription || ''}#${shopNowText}`}\n data-headless-sku={trackingSku}\n >\n {shopNowText}\n </Button>\n </div>\n </div>\n )\n }\n)\n\nPriceAndActions.displayName = 'PriceAndActions'\n\nexport default PriceAndActions\n"],
5
+ "mappings": "ukBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,IAAA,eAAAC,EAAAH,GAqDY,IAAAI,EAAA,6BAnDZC,EAAuB,oBACvBC,EAAmB,kCACnBC,EAAmB,yCACnBC,EAAqB,oCACrBC,EAAwB,qCAqBxB,MAAMC,EAAkBL,EAAM,WAC5B,CACE,CACE,aAAAM,EACA,cAAAC,EACA,WAAAC,EACA,cAAAC,EAAgB,aAChB,YAAAC,EAAc,WACd,YAAAC,EAAc,WACd,YAAAC,EACA,UAAAC,EACA,iBAAAC,EACA,iBAAAC,EACA,eAAAC,EACA,UAAAC,EACA,cAAAC,EACA,oBAAAC,EACA,YAAAC,EACA,WAAAC,CACF,EACAC,OAGE,QAAC,OAAI,IAAKA,EAAK,aAAW,MAAG,4CAA6CL,CAAS,EACjF,oBAAC,OAAI,UAAU,iCACZ,SAAAH,KACC,oBACE,oBAAC,WAAQ,KAAM,EAAG,aAAW,MAAG,mBAAmB,EAChD,SAAAR,EACH,EACCC,MACC,OAAC,WACC,KAAM,EACN,aAAW,MAAG,kCAAmCc,GAAY,wBAAwB,EAEpF,SAAAd,EACH,GAEJ,KAEA,OAAC,QACC,KAAM,EACN,aAAW,MACT,8DACA,yCACF,EAEC,SAAAI,EACH,EAEJ,EAECH,MACC,OAAC,QACC,KAAM,EACN,aAAW,MACT,0EACAa,GAAY,qBACd,EAEC,SAAAb,EACH,KAIF,QAAC,OAAI,aAAW,MAAG,kCAAmC,cAAc,EAClE,oBAAC,EAAAe,QAAA,CACC,QAAQ,YACR,KAAK,KACL,QAASX,EACT,QAASG,EACT,aAAW,MAAG,+CAAgDM,GAAY,mBAAmB,EAC7F,0BAAwB,gCACxB,kCAAiC,GAAGH,GAAiB,EAAE,IAAIC,GAAuB,EAAE,IAAIV,CAAa,GACrG,oBAAmBW,EAElB,SAAAX,EACH,KACA,OAAC,EAAAc,QAAA,CACC,QAAQ,UACR,KAAK,KACL,QAASV,EACT,SAAU,CAACC,EACX,QAASE,EACT,aAAW,MAAG,+CAAgDK,GAAY,mBAAmB,EAC7F,0BAAwB,gCACxB,kCAAiC,GAAGH,GAAiB,EAAE,IAAIC,GAAuB,EAAE,IAAIT,CAAW,GACnG,oBAAmBU,EAElB,SAAAV,EACH,GACF,GACF,CAGN,EAEAL,EAAgB,YAAc,kBAE9B,IAAOR,EAAQQ",
6
6
  "names": ["PriceAndActions_exports", "__export", "PriceAndActions_default", "__toCommonJS", "import_jsx_runtime", "React", "import_helpers", "import_button", "import_text", "import_components", "PriceAndActions", "currentPrice", "originalPrice", "priceLabel", "learnMoreText", "shopNowText", "soldOutText", "onLearnMore", "onShopNow", "availableForSale", "learnMoreLoading", "shopNowLoading", "className", "trackingTitle", "trackingDescription", "trackingSku", "classNames", "ref", "Button"]
7
7
  }
@@ -0,0 +1,15 @@
1
+ import * as React from 'react';
2
+ import type { GiftSlotConfig, GiftConfirmDialogCopy, GiftOptionRowCopy } from '../types.js';
3
+ export interface CartGiftSectionProps {
4
+ slots: GiftSlotConfig[];
5
+ selectedGiftSkus: string[];
6
+ disabled?: boolean;
7
+ onChange?: (newSkus: string[]) => void;
8
+ onGiftRemoveSku?: (sku: string) => void;
9
+ onNavigate?: (type: 'image' | 'title', source: 'main' | 'gift') => void;
10
+ copy?: GiftConfirmDialogCopy & GiftOptionRowCopy;
11
+ className?: string;
12
+ classNames?: Partial<Record<'root' | 'slotWrap' | 'slotTitle' | 'slotSubtitle' | 'reminder' | 'optionList', string>>;
13
+ }
14
+ declare const CartGiftSection: React.ForwardRefExoticComponent<CartGiftSectionProps & React.RefAttributes<HTMLDivElement>>;
15
+ export default CartGiftSection;
@@ -0,0 +1,2 @@
1
+ "use strict";"use client";var U=Object.create;var w=Object.defineProperty;var Y=Object.getOwnPropertyDescriptor;var $=Object.getOwnPropertyNames;var j=Object.getPrototypeOf,q=Object.prototype.hasOwnProperty;var z=(e,t)=>{for(var n in t)w(e,n,{get:t[n],enumerable:!0})},O=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let u of $(t))!q.call(e,u)&&u!==n&&w(e,u,{get:()=>t[u],enumerable:!(r=Y(t,u))||r.enumerable});return e};var b=(e,t,n)=>(n=e!=null?U(j(e)):{},O(t||!e||!e.__esModule?w(n,"default",{value:e,enumerable:!0}):n,e)),B=e=>O(w({},"__esModule",{value:!0}),e);var J={};z(J,{default:()=>I});module.exports=B(J);var p=require("react/jsx-runtime"),a=b(require("react")),G=require("../../../helpers/index.js"),T=require("../index.js"),L=b(require("./components/GiftOptionRow/index.js")),D=b(require("../CartItemRow/components/CartItemRemoveConfirm/index.js"));const P=a.forwardRef(({slots:e,selectedGiftSkus:t,disabled:n=!1,onChange:r,onGiftRemoveSku:u,onNavigate:E,copy:x,className:A,classNames:y={}},W)=>{const[C,k]=a.useState(null),[m,R]=a.useState(null),[s,g]=a.useState(t);a.useEffect(()=>{g(t)},[t]);const _=a.useCallback((o,c,d)=>{if(n)return;const f=d.mode??"radio",i=d.options.map(l=>l.sku);if(f==="radio"){if(!c){k(o);return}const l=s.find(S=>i.includes(S));if(l){R({oldSku:l,newSku:o});return}const v=[...s.filter(S=>!i.includes(S)),o];g(v),r?.(v);return}if(c){const l=d.maxSelectable,v=s.filter(M=>i.includes(M));if(l!=null&&v.length>=l)return;const S=[...s,o];g(S),r?.(S)}else k(o)},[n,s,r]),F=a.useCallback(()=>{if(!C)return;const o=s.filter(c=>c!==C);g(o),r?.(o),u?.(C),k(null)},[C,s,r,u]),h=a.useCallback(()=>{k(null)},[]),H=a.useCallback(()=>{if(!m)return;const{newSku:o}=m,c=e.find(i=>i.options.some(l=>l.sku===o));if(!c)return;const d=c.options.map(i=>i.sku),f=[...s.filter(i=>!d.includes(i)),o];g(f),r?.(f),R(null)},[m,s,e,r]),N=a.useCallback(()=>{R(null)},[]);return e.length===0?null:(0,p.jsxs)("div",{ref:W,className:(0,G.cn)("cart-gift-section-root flex flex-col gap-4",n&&"pointer-events-none opacity-50",A,y.root),children:[e.map((o,c)=>{const d=o.mode??"radio";return(0,p.jsx)("div",{className:(0,G.cn)("cart-gift-section-slot flex flex-col gap-3 rounded-md",y.slotWrap),children:(0,p.jsx)("div",{className:(0,G.cn)("cart-gift-section-option-list flex flex-col gap-2",y.optionList),role:"group","aria-label":`Gift slot ${c+1}`,children:o.options.map(f=>{const i=s.includes(f.sku);return(0,p.jsx)(L.default,{option:f,selected:i,mode:d,copy:x,onNavigate:E,onCheckedChange:l=>_(f.sku,l,o)},f.sku)})})},c)}),(0,p.jsx)(D.default,{open:C!==null||m!==null,copy:{removeConfirmText:x?.removeGiftConfirm??T.DEFAULT_CART_COPY.removeConfirmText},onConfirm:m?H:F,onCancel:m?N:h,onClose:m?N:h})]})});P.displayName="CartGiftSection";var I=P;
2
+ //# sourceMappingURL=CartGiftSection.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/biz-components/CartDetail/CartGiftSection/CartGiftSection.tsx"],
4
+ "sourcesContent": ["'use client'\n\nimport * as React from 'react'\nimport { cn } from '../../../helpers/index.js'\nimport type { GiftSlotConfig, GiftOption, GiftConfirmDialogCopy, GiftOptionRowCopy } from '../types.js'\nimport { DEFAULT_CART_COPY } from '../index.js'\nimport GiftOptionRow from './components/GiftOptionRow/index.js'\n// import GiftConfirmDialog from './components/GiftConfirmDialog/index.js'\nimport CartItemRemoveConfirm from '../CartItemRow/components/CartItemRemoveConfirm/index.js'\n\nexport interface CartGiftSectionProps {\n slots: GiftSlotConfig[]\n selectedGiftSkus: string[]\n disabled?: boolean\n onChange?: (newSkus: string[]) => void\n onGiftRemoveSku?: (sku: string) => void\n onNavigate?: (type: 'image' | 'title', source: 'main' | 'gift') => void\n copy?: GiftConfirmDialogCopy & GiftOptionRowCopy\n className?: string\n classNames?: Partial<Record<'root' | 'slotWrap' | 'slotTitle' | 'slotSubtitle' | 'reminder' | 'optionList', string>>\n}\n\n// interface PendingAction {\n// newIds: string[]\n// message: string\n// }\n\nconst CartGiftSection = React.forwardRef<HTMLDivElement, CartGiftSectionProps>(\n (\n {\n slots,\n selectedGiftSkus,\n disabled = false,\n onChange,\n onGiftRemoveSku,\n onNavigate,\n copy,\n className,\n classNames = {},\n },\n ref\n ) => {\n // const [pendingAction, setPendingAction] = React.useState<PendingAction | null>(null)\n const [pendingRemoveSku, setPendingRemoveSku] = React.useState<string | null>(null)\n const [pendingSwitch, setPendingSwitch] = React.useState<{ oldSku: string; newSku: string } | null>(null)\n\n const [localSkus, setLocalSkus] = React.useState<string[]>(selectedGiftSkus)\n\n React.useEffect(() => {\n setLocalSkus(selectedGiftSkus)\n }, [selectedGiftSkus])\n\n const handleCheckedChange = React.useCallback(\n (optionSku: string, checked: boolean, slot: GiftSlotConfig) => {\n if (disabled) return\n\n const mode = slot.mode ?? 'radio'\n const slotSkus = slot.options.map(o => o.sku)\n\n if (mode === 'radio') {\n if (!checked) {\n setPendingRemoveSku(optionSku)\n return\n }\n const currentSlotSelected = localSkus.find(s => slotSkus.includes(s))\n if (currentSlotSelected) {\n setPendingSwitch({ oldSku: currentSlotSelected, newSku: optionSku })\n return\n }\n const newSkus = [...localSkus.filter(s => !slotSkus.includes(s)), optionSku]\n setLocalSkus(newSkus)\n onChange?.(newSkus)\n return\n }\n\n if (checked) {\n const maxSelectable = slot.maxSelectable\n const currentSlotSelected = localSkus.filter(s => slotSkus.includes(s))\n if (maxSelectable != null && currentSlotSelected.length >= maxSelectable) {\n return\n }\n const newSkus = [...localSkus, optionSku]\n setLocalSkus(newSkus)\n onChange?.(newSkus)\n } else {\n setPendingRemoveSku(optionSku)\n }\n },\n [disabled, localSkus, onChange]\n )\n\n const handleRemoveConfirm = React.useCallback(() => {\n if (!pendingRemoveSku) return\n const newSkus = localSkus.filter(s => s !== pendingRemoveSku)\n setLocalSkus(newSkus)\n onChange?.(newSkus)\n onGiftRemoveSku?.(pendingRemoveSku)\n setPendingRemoveSku(null)\n }, [pendingRemoveSku, localSkus, onChange, onGiftRemoveSku])\n\n const handleRemoveCancel = React.useCallback(() => {\n setPendingRemoveSku(null)\n }, [])\n\n const handleSwitchConfirm = React.useCallback(() => {\n if (!pendingSwitch) return\n const { newSku } = pendingSwitch\n const slot = slots.find(s => s.options.some(o => o.sku === newSku))\n if (!slot) return\n const slotSkus = slot.options.map(o => o.sku)\n const newSkus = [...localSkus.filter(s => !slotSkus.includes(s)), newSku]\n setLocalSkus(newSkus)\n onChange?.(newSkus)\n setPendingSwitch(null)\n }, [pendingSwitch, localSkus, slots, onChange])\n\n const handleSwitchCancel = React.useCallback(() => {\n setPendingSwitch(null)\n }, [])\n\n // const handleDialogConfirm = React.useCallback(() => {\n // if (!pendingAction) return\n // onChange?.(pendingAction.newIds)\n // setPendingAction(null)\n // }, [pendingAction, onChange])\n\n // const handleDialogCancel = React.useCallback(() => {\n // setPendingAction(null)\n // }, [])\n\n if (slots.length === 0) {\n return null\n }\n\n return (\n <div\n ref={ref}\n className={cn(\n 'cart-gift-section-root flex flex-col gap-4',\n disabled && 'pointer-events-none opacity-50',\n className,\n classNames.root\n )}\n >\n {slots.map((slot, slotIndex) => {\n const mode = slot.mode ?? 'radio'\n\n return (\n <div\n key={slotIndex}\n className={cn('cart-gift-section-slot flex flex-col gap-3 rounded-md', classNames.slotWrap)}\n >\n <div\n className={cn('cart-gift-section-option-list flex flex-col gap-2', classNames.optionList)}\n role=\"group\"\n aria-label={`Gift slot ${slotIndex + 1}`}\n >\n {slot.options.map((option: GiftOption) => {\n const optionSelected = localSkus.includes(option.sku)\n\n return (\n <GiftOptionRow\n key={option.sku}\n option={option}\n selected={optionSelected}\n mode={mode}\n copy={copy}\n onNavigate={onNavigate}\n onCheckedChange={checked => handleCheckedChange(option.sku, checked, slot)}\n />\n )\n })}\n </div>\n </div>\n )\n })}\n\n {/* <GiftConfirmDialog\n open={pendingAction !== null}\n message={pendingAction?.message ?? ''}\n copy={copy}\n onConfirm={handleDialogConfirm}\n onCancel={handleDialogCancel}\n /> */}\n\n <CartItemRemoveConfirm\n open={pendingRemoveSku !== null || pendingSwitch !== null}\n copy={{\n removeConfirmText: copy?.removeGiftConfirm ?? DEFAULT_CART_COPY.removeConfirmText,\n }}\n onConfirm={pendingSwitch ? handleSwitchConfirm : handleRemoveConfirm}\n onCancel={pendingSwitch ? handleSwitchCancel : handleRemoveCancel}\n onClose={pendingSwitch ? handleSwitchCancel : handleRemoveCancel}\n />\n </div>\n )\n }\n)\n\nCartGiftSection.displayName = 'CartGiftSection'\n\nexport default CartGiftSection\n"],
5
+ "mappings": "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",
6
+ "names": ["CartGiftSection_exports", "__export", "CartGiftSection_default", "__toCommonJS", "import_jsx_runtime", "React", "import_helpers", "import__", "import_GiftOptionRow", "import_CartItemRemoveConfirm", "CartGiftSection", "slots", "selectedGiftSkus", "disabled", "onChange", "onGiftRemoveSku", "onNavigate", "copy", "className", "classNames", "ref", "pendingRemoveSku", "setPendingRemoveSku", "pendingSwitch", "setPendingSwitch", "localSkus", "setLocalSkus", "handleCheckedChange", "optionSku", "checked", "slot", "mode", "slotSkus", "o", "currentSlotSelected", "s", "newSkus", "maxSelectable", "handleRemoveConfirm", "handleRemoveCancel", "handleSwitchConfirm", "newSku", "handleSwitchCancel", "slotIndex", "option", "optionSelected", "GiftOptionRow", "CartItemRemoveConfirm"]
7
+ }
@@ -0,0 +1,11 @@
1
+ import * as React from 'react';
2
+ import type { GiftConfirmDialogCopy } from '../../../types.js';
3
+ export interface GiftConfirmDialogProps {
4
+ open: boolean;
5
+ message: string;
6
+ copy?: GiftConfirmDialogCopy;
7
+ onConfirm?: () => void;
8
+ onCancel?: () => void;
9
+ }
10
+ declare const GiftConfirmDialog: React.ForwardRefExoticComponent<GiftConfirmDialogProps & React.RefAttributes<HTMLDivElement>>;
11
+ export default GiftConfirmDialog;
@@ -0,0 +1,2 @@
1
+ "use strict";"use client";var u=Object.create;var l=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var v=Object.getOwnPropertyNames;var x=Object.getPrototypeOf,C=Object.prototype.hasOwnProperty;var D=(e,t)=>{for(var o in t)l(e,o,{get:t[o],enumerable:!0})},c=(e,t,o,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of v(t))!C.call(e,a)&&a!==o&&l(e,a,{get:()=>t[a],enumerable:!(n=g(t,a))||n.enumerable});return e};var h=(e,t,o)=>(o=e!=null?u(x(e)):{},c(t||!e||!e.__esModule?l(o,"default",{value:e,enumerable:!0}):o,e)),k=e=>c(l({},"__esModule",{value:!0}),e);var G={};D(G,{default:()=>N});module.exports=k(G);var r=require("react/jsx-runtime"),w=h(require("react")),m=require("../../../../../helpers/index.js"),s=require("../../../index.js");const d=w.forwardRef(({open:e,message:t,copy:o,onConfirm:n,onCancel:a},f)=>{const p=o?.confirm??s.DEFAULT_CART_COPY.confirm,b=o?.cancel??s.DEFAULT_CART_COPY.cancel,y=o?.ariaLabel??s.DEFAULT_CART_COPY.ariaLabel;return e?(0,r.jsx)("div",{ref:f,className:"fixed inset-0 z-[100] flex items-center justify-center bg-black/40",onClick:i=>{i.target===i.currentTarget&&a?.()},onKeyDown:i=>{i.key==="Escape"&&a?.()},role:"dialog","aria-modal":"true","aria-label":y,children:(0,r.jsxs)("div",{className:"rounded-card bg-container-primary mx-auto w-full max-w-sm p-6 shadow-lg",children:[(0,r.jsx)("p",{className:"text-info-primary laptop:text-base text-sm leading-relaxed",children:t}),(0,r.jsxs)("div",{className:"mt-5 flex items-center justify-end gap-3",children:[(0,r.jsx)("button",{type:"button",onClick:a,className:(0,m.cn)("rounded-btn border-lines-primary text-info-secondary laptop:text-base border bg-transparent px-4 py-2 text-sm font-medium transition-colors","hover:bg-container-secondary"),children:b}),(0,r.jsx)("button",{type:"button",onClick:n,className:(0,m.cn)("rounded-btn bg-btn-primary text-btn-primary-foreground laptop:text-base px-4 py-2 text-sm font-medium transition-colors","hover:opacity-80"),children:p})]})]})}):null});d.displayName="GiftConfirmDialog";var N=d;
2
+ //# sourceMappingURL=GiftConfirmDialog.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../../src/biz-components/CartDetail/CartGiftSection/components/GiftConfirmDialog/GiftConfirmDialog.tsx"],
4
+ "sourcesContent": ["'use client'\n\nimport * as React from 'react'\nimport { cn } from '../../../../../helpers/index.js'\nimport type { GiftConfirmDialogCopy } from '../../../types.js'\nimport { DEFAULT_CART_COPY } from '../../../index.js'\n\nexport interface GiftConfirmDialogProps {\n open: boolean\n message: string\n copy?: GiftConfirmDialogCopy\n onConfirm?: () => void\n onCancel?: () => void\n}\n\nconst GiftConfirmDialog = React.forwardRef<HTMLDivElement, GiftConfirmDialogProps>(\n ({ open, message, copy, onConfirm, onCancel }, ref) => {\n const resolvedConfirm = copy?.confirm ?? DEFAULT_CART_COPY.confirm\n const resolvedCancel = copy?.cancel ?? DEFAULT_CART_COPY.cancel\n const resolvedAriaLabel = copy?.ariaLabel ?? DEFAULT_CART_COPY.ariaLabel\n if (!open) {\n return null\n }\n\n const handleOverlayClick = (e: React.MouseEvent) => {\n if (e.target === e.currentTarget) {\n onCancel?.()\n }\n }\n\n const handleOverlayKeyDown = (e: React.KeyboardEvent) => {\n if (e.key === 'Escape') {\n onCancel?.()\n }\n }\n\n return (\n <div\n ref={ref}\n className=\"fixed inset-0 z-[100] flex items-center justify-center bg-black/40\"\n onClick={handleOverlayClick}\n onKeyDown={handleOverlayKeyDown}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label={resolvedAriaLabel}\n >\n <div className=\"rounded-card bg-container-primary mx-auto w-full max-w-sm p-6 shadow-lg\">\n <p className=\"text-info-primary laptop:text-base text-sm leading-relaxed\">{message}</p>\n <div className=\"mt-5 flex items-center justify-end gap-3\">\n <button\n type=\"button\"\n onClick={onCancel}\n className={cn(\n 'rounded-btn border-lines-primary text-info-secondary laptop:text-base border bg-transparent px-4 py-2 text-sm font-medium transition-colors',\n 'hover:bg-container-secondary'\n )}\n >\n {resolvedCancel}\n </button>\n <button\n type=\"button\"\n onClick={onConfirm}\n className={cn(\n 'rounded-btn bg-btn-primary text-btn-primary-foreground laptop:text-base px-4 py-2 text-sm font-medium transition-colors',\n 'hover:opacity-80'\n )}\n >\n {resolvedConfirm}\n </button>\n </div>\n </div>\n </div>\n )\n }\n)\n\nGiftConfirmDialog.displayName = 'GiftConfirmDialog'\n\nexport default GiftConfirmDialog\n"],
5
+ "mappings": "ukBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,IAAA,eAAAC,EAAAH,GA+CU,IAAAI,EAAA,6BA7CVC,EAAuB,oBACvBC,EAAmB,2CAEnBC,EAAkC,6BAUlC,MAAMC,EAAoBH,EAAM,WAC9B,CAAC,CAAE,KAAAI,EAAM,QAAAC,EAAS,KAAAC,EAAM,UAAAC,EAAW,SAAAC,CAAS,EAAGC,IAAQ,CACrD,MAAMC,EAAkBJ,GAAM,SAAW,oBAAkB,QACrDK,EAAiBL,GAAM,QAAU,oBAAkB,OACnDM,EAAoBN,GAAM,WAAa,oBAAkB,UAC/D,OAAKF,KAiBH,OAAC,OACC,IAAKK,EACL,UAAU,qEACV,QAhBwBI,GAAwB,CAC9CA,EAAE,SAAWA,EAAE,eACjBL,IAAW,CAEf,EAaI,UAX0BK,GAA2B,CACnDA,EAAE,MAAQ,UACZL,IAAW,CAEf,EAQI,KAAK,SACL,aAAW,OACX,aAAYI,EAEZ,oBAAC,OAAI,UAAU,0EACb,oBAAC,KAAE,UAAU,6DAA8D,SAAAP,EAAQ,KACnF,QAAC,OAAI,UAAU,2CACb,oBAAC,UACC,KAAK,SACL,QAASG,EACT,aAAW,MACT,8IACA,8BACF,EAEC,SAAAG,EACH,KACA,OAAC,UACC,KAAK,SACL,QAASJ,EACT,aAAW,MACT,0HACA,kBACF,EAEC,SAAAG,EACH,GACF,GACF,EACF,EAlDO,IAoDX,CACF,EAEAP,EAAkB,YAAc,oBAEhC,IAAON,EAAQM",
6
+ "names": ["GiftConfirmDialog_exports", "__export", "GiftConfirmDialog_default", "__toCommonJS", "import_jsx_runtime", "React", "import_helpers", "import__", "GiftConfirmDialog", "open", "message", "copy", "onConfirm", "onCancel", "ref", "resolvedConfirm", "resolvedCancel", "resolvedAriaLabel", "e"]
7
+ }
@@ -0,0 +1,2 @@
1
+ export { default } from './GiftConfirmDialog.js';
2
+ export type { GiftConfirmDialogProps } from './GiftConfirmDialog.js';
@@ -0,0 +1,2 @@
1
+ "use strict";var a=Object.create;var t=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var g=Object.getOwnPropertyNames;var n=Object.getPrototypeOf,s=Object.prototype.hasOwnProperty;var x=(o,f)=>{for(var r in f)t(o,r,{get:f[r],enumerable:!0})},m=(o,f,r,e)=>{if(f&&typeof f=="object"||typeof f=="function")for(let i of g(f))!s.call(o,i)&&i!==r&&t(o,i,{get:()=>f[i],enumerable:!(e=l(f,i))||e.enumerable});return o};var C=(o,f,r)=>(r=o!=null?a(n(o)):{},m(f||!o||!o.__esModule?t(r,"default",{value:o,enumerable:!0}):r,o)),D=o=>m(t({},"__esModule",{value:!0}),o);var G={};x(G,{default:()=>p.default});module.exports=D(G);var p=C(require("./GiftConfirmDialog.js"));
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../../src/biz-components/CartDetail/CartGiftSection/components/GiftConfirmDialog/index.ts"],
4
+ "sourcesContent": ["export { default } from './GiftConfirmDialog.js'\nexport type { GiftConfirmDialogProps } from './GiftConfirmDialog.js'\n"],
5
+ "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,wCAAAE,EAAAF,GAAA,IAAAG,EAAwB",
6
+ "names": ["GiftConfirmDialog_exports", "__export", "__toCommonJS", "import_GiftConfirmDialog"]
7
+ }
@@ -0,0 +1,14 @@
1
+ import * as React from 'react';
2
+ import type { GiftOption, GiftOptionRowCopy } from '../../../types.js';
3
+ export interface GiftOptionRowProps {
4
+ option: GiftOption;
5
+ selected: boolean;
6
+ mode: 'radio' | 'checkbox';
7
+ onCheckedChange?: (checked: boolean) => void;
8
+ onNavigate?: (type: 'image' | 'title', source: 'main' | 'gift') => void;
9
+ copy?: GiftOptionRowCopy;
10
+ className?: string;
11
+ classNames?: Partial<Record<'root' | 'control' | 'image' | 'name' | 'variant' | 'quantity' | 'priceWrap' | 'freeText' | 'originalPrice' | 'giftBadge', string>>;
12
+ }
13
+ declare const GiftOptionRow: React.ForwardRefExoticComponent<GiftOptionRowProps & React.RefAttributes<HTMLLabelElement>>;
14
+ export default GiftOptionRow;
@@ -0,0 +1,2 @@
1
+ "use strict";"use client";var v=Object.create;var l=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var h=Object.getOwnPropertyNames;var k=Object.getPrototypeOf,P=Object.prototype.hasOwnProperty;var T=(e,i)=>{for(var r in i)l(e,r,{get:i[r],enumerable:!0})},g=(e,i,r,n)=>{if(i&&typeof i=="object"||typeof i=="function")for(let p of h(i))!P.call(e,p)&&p!==r&&l(e,p,{get:()=>i[p],enumerable:!(n=u(i,p))||n.enumerable});return e};var C=(e,i,r)=>(r=e!=null?v(k(e)):{},g(i||!e||!e.__esModule?l(r,"default",{value:e,enumerable:!0}):r,e)),N=e=>g(l({},"__esModule",{value:!0}),e);var G={};T(G,{default:()=>O});module.exports=N(G);var t=require("react/jsx-runtime"),R=C(require("react")),a=require("../../../../../helpers/index.js"),s=require("../../../index.js"),f=require("../../../../../components/index.js"),x=require("../../../../../shared/LocalizedLink.js");const m=R.forwardRef(({option:e,selected:i,mode:r,onCheckedChange:n,onNavigate:p,copy:d,className:b,classNames:o={},...w},y)=>{const c=e.disabled===!0;return(0,t.jsxs)("label",{ref:y,className:(0,a.cn)("gift-option-row-root bg-container-secondary laptop:flex-row laptop:items-center laptop:gap-4 laptop:pb-4 laptop:pt-5 rounded-box-small relative flex items-center gap-2 p-4 transition-opacity",c&&"pointer-events-none opacity-50",!c&&"cursor-pointer",b,o.root),...w,children:[(0,t.jsx)("span",{className:(0,a.cn)("gift-option-row-badge rounded-br-box-small rounded-tl-box-small laptop:px-2 laptop:pb-1 laptop:pt-[5px] laptop:text-base bg-brand-0 absolute left-0 top-0 px-[6px] pb-1 pt-[3px] text-sm font-bold leading-[1.2] text-white",o.giftBadge),children:d?.badge??s.DEFAULT_CART_COPY.badge}),(0,t.jsx)(f.Checkbox,{checked:i,onCheckedChange:n,disabled:c,size:"lg",className:(0,a.cn)("gift-option-row-control laptop:size-5 data-[state=checked]:border-info-primary data-[state=checked]:bg-info-primary laptop:mt-0 mt-1 size-4 shrink-0",o.control,r==="radio"&&"rounded-full",!i&&"border-lines-primary bg-transparent")}),(0,t.jsx)("div",{className:(0,a.cn)("gift-option-row-image shrink-0",o.image),children:(0,t.jsx)(x.LocalizedLink,{href:e.listingHref,className:"block",onClick:()=>p?.("image","gift"),children:(0,t.jsx)(f.Picture,{source:e.image.src,alt:e.image.alt??e.name,className:"size-16 object-cover",loading:"lazy"})})}),(0,t.jsxs)("div",{className:"laptop:flex-row laptop:items-center laptop:gap-4 flex min-w-0 flex-1 flex-col gap-2",children:[(0,t.jsxs)("div",{className:"laptop:flex-[2] flex min-w-0 flex-col gap-1",children:[(0,t.jsx)("span",{className:(0,a.cn)("gift-option-row-name text-info-primary laptop:text-base line-clamp-2 text-sm font-bold leading-[1.4]",e.listingHref&&"cursor-pointer hover:underline",o.name),onClick:()=>p?.("title","gift"),children:e.name}),e.variantText&&(0,t.jsx)("span",{className:(0,a.cn)("gift-option-row-variant text-info-tertiary laptop:text-base text-sm font-bold leading-[1.4]",o.variant),children:e.variantText})]}),(0,t.jsxs)("div",{className:"laptop:shrink-0 laptop:justify-start flex items-center justify-between",children:[(0,t.jsxs)("span",{className:(0,a.cn)("gift-option-row-quantity text-info-primary laptop:text-base text-sm font-bold leading-[1.4]",o.quantity),children:["x",e.displayQuantity]}),(0,t.jsxs)("div",{className:(0,a.cn)("gift-option-row-price-wrap laptop:hidden flex items-end gap-1",o.priceWrap),children:[(0,t.jsx)("span",{className:(0,a.cn)("gift-option-row-free text-info-primary text-sm font-bold leading-[1.4]",o.freeText),children:d?.free??s.DEFAULT_CART_COPY.free}),e.originalPriceText&&(0,t.jsx)("span",{className:(0,a.cn)("gift-option-row-original-price text-info-tertiary text-sm font-bold leading-[1.4] line-through",o.originalPrice),children:e.originalPriceText})]})]}),(0,t.jsx)("div",{className:(0,a.cn)("gift-option-row-price-wrap laptop:flex-1 laptop:flex laptop:shrink-0 laptop:flex-col laptop:items-end laptop:gap-1 hidden",o.priceWrap),children:(0,t.jsxs)("div",{className:"flex items-center justify-end gap-1",children:[(0,t.jsx)("span",{className:(0,a.cn)("gift-option-row-free text-info-primary laptop:text-base text-sm font-bold leading-[1.4]",o.freeText),children:d?.free??s.DEFAULT_CART_COPY.free}),e.originalPriceText&&(0,t.jsx)("span",{className:(0,a.cn)("gift-option-row-original-price text-info-tertiary laptop:text-base text-sm font-bold leading-[1.4] line-through",o.originalPrice),children:e.originalPriceText})]})})]})]})});m.displayName="GiftOptionRow";var O=m;
2
+ //# sourceMappingURL=GiftOptionRow.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../../src/biz-components/CartDetail/CartGiftSection/components/GiftOptionRow/GiftOptionRow.tsx"],
4
+ "sourcesContent": ["'use client'\n\nimport * as React from 'react'\nimport { cn } from '../../../../../helpers/index.js'\nimport type { GiftOption, GiftOptionRowCopy } from '../../../types.js'\nimport { DEFAULT_CART_COPY } from '../../../index.js'\nimport { Picture, Checkbox } from '../../../../../components/index.js'\nimport { LocalizedLink } from '../../../../../shared/LocalizedLink.js'\n\nexport interface GiftOptionRowProps {\n option: GiftOption\n selected: boolean\n mode: 'radio' | 'checkbox'\n onCheckedChange?: (checked: boolean) => void\n onNavigate?: (type: 'image' | 'title', source: 'main' | 'gift') => void\n copy?: GiftOptionRowCopy\n className?: string\n classNames?: Partial<\n Record<\n | 'root'\n | 'control'\n | 'image'\n | 'name'\n | 'variant'\n | 'quantity'\n | 'priceWrap'\n | 'freeText'\n | 'originalPrice'\n | 'giftBadge',\n string\n >\n >\n}\n\nconst GiftOptionRow = React.forwardRef<HTMLLabelElement, GiftOptionRowProps>(\n ({ option, selected, mode, onCheckedChange, onNavigate, copy, className, classNames = {}, ...props }, ref) => {\n const isDisabled = option.disabled === true\n\n return (\n <label\n ref={ref}\n className={cn(\n 'gift-option-row-root bg-container-secondary laptop:flex-row laptop:items-center laptop:gap-4 laptop:pb-4 laptop:pt-5 rounded-box-small relative flex items-center gap-2 p-4 transition-opacity',\n isDisabled && 'pointer-events-none opacity-50',\n !isDisabled && 'cursor-pointer',\n className,\n classNames.root\n )}\n {...props}\n >\n <span\n className={cn(\n 'gift-option-row-badge rounded-br-box-small rounded-tl-box-small laptop:px-2 laptop:pb-1 laptop:pt-[5px] laptop:text-base bg-brand-0 absolute left-0 top-0 px-[6px] pb-1 pt-[3px] text-sm font-bold leading-[1.2] text-white',\n classNames.giftBadge\n )}\n >\n {copy?.badge ?? DEFAULT_CART_COPY.badge}\n </span>\n\n <Checkbox\n checked={selected}\n onCheckedChange={onCheckedChange}\n disabled={isDisabled}\n size=\"lg\"\n className={cn(\n 'gift-option-row-control laptop:size-5 data-[state=checked]:border-info-primary data-[state=checked]:bg-info-primary laptop:mt-0 mt-1 size-4 shrink-0',\n classNames.control,\n mode === 'radio' && 'rounded-full',\n !selected && 'border-lines-primary bg-transparent'\n )}\n />\n\n <div className={cn('gift-option-row-image shrink-0', classNames.image)}>\n <LocalizedLink href={option.listingHref} className=\"block\" onClick={() => onNavigate?.('image', 'gift')}>\n <Picture\n source={option.image.src}\n alt={option.image.alt ?? option.name}\n className=\"size-16 object-cover\"\n loading=\"lazy\"\n />\n </LocalizedLink>\n </div>\n\n <div className=\"laptop:flex-row laptop:items-center laptop:gap-4 flex min-w-0 flex-1 flex-col gap-2\">\n <div className=\"laptop:flex-[2] flex min-w-0 flex-col gap-1\">\n <span\n className={cn(\n 'gift-option-row-name text-info-primary laptop:text-base line-clamp-2 text-sm font-bold leading-[1.4]',\n option.listingHref && 'cursor-pointer hover:underline',\n classNames.name\n )}\n onClick={() => onNavigate?.('title', 'gift')}\n >\n {option.name}\n </span>\n {option.variantText && (\n <span\n className={cn(\n 'gift-option-row-variant text-info-tertiary laptop:text-base text-sm font-bold leading-[1.4]',\n classNames.variant\n )}\n >\n {option.variantText}\n </span>\n )}\n </div>\n\n <div className=\"laptop:shrink-0 laptop:justify-start flex items-center justify-between\">\n <span\n className={cn(\n 'gift-option-row-quantity text-info-primary laptop:text-base text-sm font-bold leading-[1.4]',\n classNames.quantity\n )}\n >\n x{option.displayQuantity}\n </span>\n\n <div className={cn('gift-option-row-price-wrap laptop:hidden flex items-end gap-1', classNames.priceWrap)}>\n <span\n className={cn(\n 'gift-option-row-free text-info-primary text-sm font-bold leading-[1.4]',\n classNames.freeText\n )}\n >\n {copy?.free ?? DEFAULT_CART_COPY.free}\n </span>\n {option.originalPriceText && (\n <span\n className={cn(\n 'gift-option-row-original-price text-info-tertiary text-sm font-bold leading-[1.4] line-through',\n classNames.originalPrice\n )}\n >\n {option.originalPriceText}\n </span>\n )}\n </div>\n </div>\n\n <div\n className={cn(\n 'gift-option-row-price-wrap laptop:flex-1 laptop:flex laptop:shrink-0 laptop:flex-col laptop:items-end laptop:gap-1 hidden',\n classNames.priceWrap\n )}\n >\n <div className=\"flex items-center justify-end gap-1\">\n <span\n className={cn(\n 'gift-option-row-free text-info-primary laptop:text-base text-sm font-bold leading-[1.4]',\n classNames.freeText\n )}\n >\n {copy?.free ?? DEFAULT_CART_COPY.free}\n </span>\n {option.originalPriceText && (\n <span\n className={cn(\n 'gift-option-row-original-price text-info-tertiary laptop:text-base text-sm font-bold leading-[1.4] line-through',\n classNames.originalPrice\n )}\n >\n {option.originalPriceText}\n </span>\n )}\n </div>\n </div>\n </div>\n </label>\n )\n }\n)\n\nGiftOptionRow.displayName = 'GiftOptionRow'\n\nexport default GiftOptionRow\n"],
5
+ "mappings": "ukBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,IAAA,eAAAC,EAAAH,GAkDQ,IAAAI,EAAA,6BAhDRC,EAAuB,oBACvBC,EAAmB,2CAEnBC,EAAkC,6BAClCC,EAAkC,8CAClCC,EAA8B,kDA2B9B,MAAMC,EAAgBL,EAAM,WAC1B,CAAC,CAAE,OAAAM,EAAQ,SAAAC,EAAU,KAAAC,EAAM,gBAAAC,EAAiB,WAAAC,EAAY,KAAAC,EAAM,UAAAC,EAAW,WAAAC,EAAa,CAAC,EAAG,GAAGC,CAAM,EAAGC,IAAQ,CAC5G,MAAMC,EAAaV,EAAO,WAAa,GAEvC,SACE,QAAC,SACC,IAAKS,EACL,aAAW,MACT,iMACAC,GAAc,iCACd,CAACA,GAAc,iBACfJ,EACAC,EAAW,IACb,EACC,GAAGC,EAEJ,oBAAC,QACC,aAAW,MACT,8NACAD,EAAW,SACb,EAEC,SAAAF,GAAM,OAAS,oBAAkB,MACpC,KAEA,OAAC,YACC,QAASJ,EACT,gBAAiBE,EACjB,SAAUO,EACV,KAAK,KACL,aAAW,MACT,uJACAH,EAAW,QACXL,IAAS,SAAW,eACpB,CAACD,GAAY,qCACf,EACF,KAEA,OAAC,OAAI,aAAW,MAAG,iCAAkCM,EAAW,KAAK,EACnE,mBAAC,iBAAc,KAAMP,EAAO,YAAa,UAAU,QAAQ,QAAS,IAAMI,IAAa,QAAS,MAAM,EACpG,mBAAC,WACC,OAAQJ,EAAO,MAAM,IACrB,IAAKA,EAAO,MAAM,KAAOA,EAAO,KAChC,UAAU,uBACV,QAAQ,OACV,EACF,EACF,KAEA,QAAC,OAAI,UAAU,sFACb,qBAAC,OAAI,UAAU,8CACb,oBAAC,QACC,aAAW,MACT,uGACAA,EAAO,aAAe,iCACtBO,EAAW,IACb,EACA,QAAS,IAAMH,IAAa,QAAS,MAAM,EAE1C,SAAAJ,EAAO,KACV,EACCA,EAAO,gBACN,OAAC,QACC,aAAW,MACT,8FACAO,EAAW,OACb,EAEC,SAAAP,EAAO,YACV,GAEJ,KAEA,QAAC,OAAI,UAAU,yEACb,qBAAC,QACC,aAAW,MACT,8FACAO,EAAW,QACb,EACD,cACGP,EAAO,iBACX,KAEA,QAAC,OAAI,aAAW,MAAG,gEAAiEO,EAAW,SAAS,EACtG,oBAAC,QACC,aAAW,MACT,yEACAA,EAAW,QACb,EAEC,SAAAF,GAAM,MAAQ,oBAAkB,KACnC,EACCL,EAAO,sBACN,OAAC,QACC,aAAW,MACT,iGACAO,EAAW,aACb,EAEC,SAAAP,EAAO,kBACV,GAEJ,GACF,KAEA,OAAC,OACC,aAAW,MACT,4HACAO,EAAW,SACb,EAEA,oBAAC,OAAI,UAAU,sCACb,oBAAC,QACC,aAAW,MACT,0FACAA,EAAW,QACb,EAEC,SAAAF,GAAM,MAAQ,oBAAkB,KACnC,EACCL,EAAO,sBACN,OAAC,QACC,aAAW,MACT,kHACAO,EAAW,aACb,EAEC,SAAAP,EAAO,kBACV,GAEJ,EACF,GACF,GACF,CAEJ,CACF,EAEAD,EAAc,YAAc,gBAE5B,IAAOR,EAAQQ",
6
+ "names": ["GiftOptionRow_exports", "__export", "GiftOptionRow_default", "__toCommonJS", "import_jsx_runtime", "React", "import_helpers", "import__", "import_components", "import_LocalizedLink", "GiftOptionRow", "option", "selected", "mode", "onCheckedChange", "onNavigate", "copy", "className", "classNames", "props", "ref", "isDisabled"]
7
+ }
@@ -0,0 +1,2 @@
1
+ export { default } from './GiftOptionRow.js';
2
+ export type { GiftOptionRowProps } from './GiftOptionRow.js';
@@ -0,0 +1,2 @@
1
+ "use strict";var n=Object.create;var r=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var w=Object.getOwnPropertyNames;var x=Object.getPrototypeOf,G=Object.prototype.hasOwnProperty;var O=(o,t)=>{for(var p in t)r(o,p,{get:t[p],enumerable:!0})},i=(o,t,p,e)=>{if(t&&typeof t=="object"||typeof t=="function")for(let f of w(t))!G.call(o,f)&&f!==p&&r(o,f,{get:()=>t[f],enumerable:!(e=s(t,f))||e.enumerable});return o};var R=(o,t,p)=>(p=o!=null?n(x(o)):{},i(t||!o||!o.__esModule?r(p,"default",{value:o,enumerable:!0}):p,o)),a=o=>i(r({},"__esModule",{value:!0}),o);var d={};O(d,{default:()=>m.default});module.exports=a(d);var m=R(require("./GiftOptionRow.js"));
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../../src/biz-components/CartDetail/CartGiftSection/components/GiftOptionRow/index.ts"],
4
+ "sourcesContent": ["export { default } from './GiftOptionRow.js'\nexport type { GiftOptionRowProps } from './GiftOptionRow.js'\n"],
5
+ "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,wCAAAE,EAAAF,GAAA,IAAAG,EAAwB",
6
+ "names": ["GiftOptionRow_exports", "__export", "__toCommonJS", "import_GiftOptionRow"]
7
+ }
@@ -0,0 +1,2 @@
1
+ export { default } from './CartGiftSection.js';
2
+ export type { CartGiftSectionProps } from './CartGiftSection.js';
@@ -0,0 +1,2 @@
1
+ "use strict";var c=Object.create;var f=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var n=Object.getOwnPropertyNames;var s=Object.getPrototypeOf,x=Object.prototype.hasOwnProperty;var C=(t,o)=>{for(var r in o)f(t,r,{get:o[r],enumerable:!0})},p=(t,o,r,i)=>{if(o&&typeof o=="object"||typeof o=="function")for(let e of n(o))!x.call(t,e)&&e!==r&&f(t,e,{get:()=>o[e],enumerable:!(i=m(o,e))||i.enumerable});return t};var G=(t,o,r)=>(r=t!=null?c(s(t)):{},p(o||!t||!t.__esModule?f(r,"default",{value:t,enumerable:!0}):r,t)),S=t=>p(f({},"__esModule",{value:!0}),t);var d={};C(d,{default:()=>a.default});module.exports=S(d);var a=G(require("./CartGiftSection.js"));
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/biz-components/CartDetail/CartGiftSection/index.ts"],
4
+ "sourcesContent": ["export { default } from './CartGiftSection.js'\nexport type { CartGiftSectionProps } from './CartGiftSection.js'\n"],
5
+ "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,wCAAAE,EAAAF,GAAA,IAAAG,EAAwB",
6
+ "names": ["CartGiftSection_exports", "__export", "__toCommonJS", "import_CartGiftSection"]
7
+ }