@anker-in/headless-ui 1.3.57 → 1.3.59

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 (297) 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/CartDetail/CartGiftSection/CartGiftSection.d.ts +15 -0
  32. package/dist/cjs/biz-components/CartDetail/CartGiftSection/CartGiftSection.js +2 -0
  33. package/dist/cjs/biz-components/CartDetail/CartGiftSection/CartGiftSection.js.map +7 -0
  34. package/dist/cjs/biz-components/CartDetail/CartGiftSection/components/GiftConfirmDialog/GiftConfirmDialog.d.ts +11 -0
  35. package/dist/cjs/biz-components/CartDetail/CartGiftSection/components/GiftConfirmDialog/GiftConfirmDialog.js +2 -0
  36. package/dist/cjs/biz-components/CartDetail/CartGiftSection/components/GiftConfirmDialog/GiftConfirmDialog.js.map +7 -0
  37. package/dist/cjs/biz-components/CartDetail/CartGiftSection/components/GiftConfirmDialog/index.d.ts +2 -0
  38. package/dist/cjs/biz-components/CartDetail/CartGiftSection/components/GiftConfirmDialog/index.js +2 -0
  39. package/dist/cjs/biz-components/CartDetail/CartGiftSection/components/GiftConfirmDialog/index.js.map +7 -0
  40. package/dist/cjs/biz-components/CartDetail/CartGiftSection/components/GiftOptionRow/GiftOptionRow.d.ts +14 -0
  41. package/dist/cjs/biz-components/CartDetail/CartGiftSection/components/GiftOptionRow/GiftOptionRow.js +2 -0
  42. package/dist/cjs/biz-components/CartDetail/CartGiftSection/components/GiftOptionRow/GiftOptionRow.js.map +7 -0
  43. package/dist/cjs/biz-components/CartDetail/CartGiftSection/components/GiftOptionRow/index.d.ts +2 -0
  44. package/dist/cjs/biz-components/CartDetail/CartGiftSection/components/GiftOptionRow/index.js +2 -0
  45. package/dist/cjs/biz-components/CartDetail/CartGiftSection/components/GiftOptionRow/index.js.map +7 -0
  46. package/dist/cjs/biz-components/CartDetail/CartGiftSection/index.d.ts +2 -0
  47. package/dist/cjs/biz-components/CartDetail/CartGiftSection/index.js +2 -0
  48. package/dist/cjs/biz-components/CartDetail/CartGiftSection/index.js.map +7 -0
  49. package/dist/cjs/biz-components/CartDetail/CartItemRow/CartItemRow.d.ts +56 -0
  50. package/dist/cjs/biz-components/CartDetail/CartItemRow/CartItemRow.js +2 -0
  51. package/dist/cjs/biz-components/CartDetail/CartItemRow/CartItemRow.js.map +7 -0
  52. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemGiftShipping/CartItemGiftShipping.d.ts +4 -0
  53. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemGiftShipping/CartItemGiftShipping.js +2 -0
  54. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemGiftShipping/CartItemGiftShipping.js.map +7 -0
  55. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemGiftShipping/index.d.ts +2 -0
  56. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemGiftShipping/index.js +2 -0
  57. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemGiftShipping/index.js.map +7 -0
  58. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemGiftShipping/types.d.ts +10 -0
  59. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemGiftShipping/types.js +2 -0
  60. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemGiftShipping/types.js.map +7 -0
  61. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemInfo/CartItemInfo.d.ts +11 -0
  62. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemInfo/CartItemInfo.js +2 -0
  63. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemInfo/CartItemInfo.js.map +7 -0
  64. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemInfo/index.d.ts +2 -0
  65. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemInfo/index.js +2 -0
  66. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemInfo/index.js.map +7 -0
  67. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemKsp/CartItemKsp.d.ts +13 -0
  68. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemKsp/CartItemKsp.js +2 -0
  69. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemKsp/CartItemKsp.js.map +7 -0
  70. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemKsp/index.d.ts +2 -0
  71. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemKsp/index.js +2 -0
  72. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemKsp/index.js.map +7 -0
  73. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemRemoveConfirm/CartItemRemoveConfirm.d.ts +4 -0
  74. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemRemoveConfirm/CartItemRemoveConfirm.js +2 -0
  75. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemRemoveConfirm/CartItemRemoveConfirm.js.map +7 -0
  76. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemRemoveConfirm/index.d.ts +2 -0
  77. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemRemoveConfirm/index.js +2 -0
  78. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemRemoveConfirm/index.js.map +7 -0
  79. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemRemoveConfirm/types.d.ts +11 -0
  80. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemRemoveConfirm/types.js +2 -0
  81. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemRemoveConfirm/types.js.map +7 -0
  82. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemShipping/CartItemShipping.d.ts +8 -0
  83. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemShipping/CartItemShipping.js +2 -0
  84. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemShipping/CartItemShipping.js.map +7 -0
  85. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemShipping/index.d.ts +2 -0
  86. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemShipping/index.js +2 -0
  87. package/dist/cjs/biz-components/CartDetail/CartItemRow/components/CartItemShipping/index.js.map +7 -0
  88. package/dist/cjs/biz-components/CartDetail/CartItemRow/index.d.ts +2 -0
  89. package/dist/cjs/biz-components/CartDetail/CartItemRow/index.js +2 -0
  90. package/dist/cjs/biz-components/CartDetail/CartItemRow/index.js.map +7 -0
  91. package/dist/cjs/biz-components/CartDetail/CartPerksSection/CartPerksSection.d.ts +34 -0
  92. package/dist/cjs/biz-components/CartDetail/CartPerksSection/CartPerksSection.js +2 -0
  93. package/dist/cjs/biz-components/CartDetail/CartPerksSection/CartPerksSection.js.map +7 -0
  94. package/dist/cjs/biz-components/CartDetail/CartPerksSection/index.d.ts +2 -0
  95. package/dist/cjs/biz-components/CartDetail/CartPerksSection/index.js +2 -0
  96. package/dist/cjs/biz-components/CartDetail/CartPerksSection/index.js.map +7 -0
  97. package/dist/cjs/biz-components/CartDetail/CartPriceSummary/CartPriceSummary.d.ts +51 -0
  98. package/dist/cjs/biz-components/CartDetail/CartPriceSummary/CartPriceSummary.js +2 -0
  99. package/dist/cjs/biz-components/CartDetail/CartPriceSummary/CartPriceSummary.js.map +7 -0
  100. package/dist/cjs/biz-components/CartDetail/CartPriceSummary/index.d.ts +2 -0
  101. package/dist/cjs/biz-components/CartDetail/CartPriceSummary/index.js +2 -0
  102. package/dist/cjs/biz-components/CartDetail/CartPriceSummary/index.js.map +7 -0
  103. package/dist/cjs/biz-components/CartDetail/CartSummaryHeader/CartSummaryHeader.d.ts +26 -0
  104. package/dist/cjs/biz-components/CartDetail/CartSummaryHeader/CartSummaryHeader.js +2 -0
  105. package/dist/cjs/biz-components/CartDetail/CartSummaryHeader/CartSummaryHeader.js.map +7 -0
  106. package/dist/cjs/biz-components/CartDetail/CartSummaryHeader/index.d.ts +2 -0
  107. package/dist/cjs/biz-components/CartDetail/CartSummaryHeader/index.js +2 -0
  108. package/dist/cjs/biz-components/CartDetail/CartSummaryHeader/index.js.map +7 -0
  109. package/dist/cjs/biz-components/CartDetail/CartThirdParty/CartThirdParty.d.ts +10 -0
  110. package/dist/cjs/biz-components/CartDetail/CartThirdParty/CartThirdParty.js +2 -0
  111. package/dist/cjs/biz-components/CartDetail/CartThirdParty/CartThirdParty.js.map +7 -0
  112. package/dist/cjs/biz-components/CartDetail/CartThirdParty/index.d.ts +2 -0
  113. package/dist/cjs/biz-components/CartDetail/CartThirdParty/index.js +2 -0
  114. package/dist/cjs/biz-components/CartDetail/CartThirdParty/index.js.map +7 -0
  115. package/dist/cjs/biz-components/CartDetail/index.d.ts +16 -0
  116. package/dist/cjs/biz-components/CartDetail/index.js +2 -0
  117. package/dist/cjs/biz-components/CartDetail/index.js.map +7 -0
  118. package/dist/cjs/biz-components/CartDetail/types.d.ts +132 -0
  119. package/dist/cjs/biz-components/CartDetail/types.js +2 -0
  120. package/dist/cjs/biz-components/CartDetail/types.js.map +7 -0
  121. package/dist/cjs/biz-components/HeaderNavigation/index.js +1 -1
  122. package/dist/cjs/biz-components/HeaderNavigation/index.js.map +2 -2
  123. package/dist/cjs/biz-components/ShelfDisplay/shelfDisplayItem.js +1 -1
  124. package/dist/cjs/biz-components/ShelfDisplay/shelfDisplayItem.js.map +2 -2
  125. package/dist/cjs/biz-components/index.d.ts +6 -0
  126. package/dist/cjs/biz-components/index.js +1 -1
  127. package/dist/cjs/biz-components/index.js.map +3 -3
  128. package/dist/cjs/components/breadcrumb.d.ts +12 -0
  129. package/dist/cjs/components/breadcrumb.js +2 -0
  130. package/dist/cjs/components/breadcrumb.js.map +7 -0
  131. package/dist/cjs/components/button.js +1 -1
  132. package/dist/cjs/components/button.js.map +2 -2
  133. package/dist/cjs/components/index.d.ts +3 -1
  134. package/dist/cjs/components/index.js +1 -1
  135. package/dist/cjs/components/index.js.map +3 -3
  136. package/dist/cjs/components/input-number.d.ts +22 -0
  137. package/dist/cjs/components/input-number.js +1 -1
  138. package/dist/cjs/components/input-number.js.map +3 -3
  139. package/dist/cjs/components/input.d.ts +5 -0
  140. package/dist/cjs/components/input.js +1 -1
  141. package/dist/cjs/components/input.js.map +3 -3
  142. package/dist/cjs/components/popover.d.ts +17 -2
  143. package/dist/cjs/components/popover.js +1 -1
  144. package/dist/cjs/components/popover.js.map +3 -3
  145. package/dist/cjs/components/toast.d.ts +25 -0
  146. package/dist/cjs/components/toast.js +2 -0
  147. package/dist/cjs/components/toast.js.map +7 -0
  148. package/dist/esm/biz-components/AccessoriesShelf/components/AccessoriesProductGrid/index.d.ts +11 -0
  149. package/dist/esm/biz-components/AccessoriesShelf/components/AccessoriesProductGrid/index.js +2 -0
  150. package/dist/esm/biz-components/AccessoriesShelf/components/AccessoriesProductGrid/index.js.map +7 -0
  151. package/dist/esm/biz-components/AccessoriesShelf/components/AccessoryShelf/ProductCard.d.ts +23 -0
  152. package/dist/esm/biz-components/AccessoriesShelf/components/AccessoryShelf/ProductCard.js +2 -0
  153. package/dist/esm/biz-components/AccessoriesShelf/components/AccessoryShelf/ProductCard.js.map +7 -0
  154. package/dist/esm/biz-components/AccessoriesShelf/components/AccessoryShelf/index.d.ts +40 -0
  155. package/dist/esm/biz-components/AccessoriesShelf/components/AccessoryShelf/index.js +2 -0
  156. package/dist/esm/biz-components/AccessoriesShelf/components/AccessoryShelf/index.js.map +7 -0
  157. package/dist/esm/biz-components/AccessoriesShelf/components/AccessoryShelf/types.d.ts +107 -0
  158. package/dist/esm/biz-components/AccessoriesShelf/components/AccessoryShelf/types.js +1 -0
  159. package/dist/esm/biz-components/AccessoriesShelf/components/AccessoryShelf/types.js.map +7 -0
  160. package/dist/esm/biz-components/AccessoriesShelf/components/AddToCartSuccessPopover/index.d.ts +82 -0
  161. package/dist/esm/biz-components/AccessoriesShelf/components/AddToCartSuccessPopover/index.js +2 -0
  162. package/dist/esm/biz-components/AccessoriesShelf/components/AddToCartSuccessPopover/index.js.map +7 -0
  163. package/dist/esm/biz-components/AccessoriesShelf/components/MainProductArea/index.d.ts +22 -0
  164. package/dist/esm/biz-components/AccessoriesShelf/components/MainProductArea/index.js +2 -0
  165. package/dist/esm/biz-components/AccessoriesShelf/components/MainProductArea/index.js.map +7 -0
  166. package/dist/esm/biz-components/AccessoriesShelf/components/PromoBanner/index.d.ts +10 -0
  167. package/dist/esm/biz-components/AccessoriesShelf/components/PromoBanner/index.js +2 -0
  168. package/dist/esm/biz-components/AccessoriesShelf/components/PromoBanner/index.js.map +7 -0
  169. package/dist/esm/biz-components/AccessoriesShelf/components/SectionHeader/index.d.ts +9 -0
  170. package/dist/esm/biz-components/AccessoriesShelf/components/SectionHeader/index.js +2 -0
  171. package/dist/esm/biz-components/AccessoriesShelf/components/SectionHeader/index.js.map +7 -0
  172. package/dist/esm/biz-components/AccessoriesShelf/index.d.ts +9 -0
  173. package/dist/esm/biz-components/AccessoriesShelf/index.js +2 -0
  174. package/dist/esm/biz-components/AccessoriesShelf/index.js.map +7 -0
  175. package/dist/esm/biz-components/AccessoriesShelf/types.d.ts +16 -0
  176. package/dist/esm/biz-components/AccessoriesShelf/types.js +1 -0
  177. package/dist/esm/biz-components/AccessoriesShelf/types.js.map +7 -0
  178. package/dist/esm/biz-components/CartDetail/CartGiftSection/CartGiftSection.d.ts +15 -0
  179. package/dist/esm/biz-components/CartDetail/CartGiftSection/CartGiftSection.js +2 -0
  180. package/dist/esm/biz-components/CartDetail/CartGiftSection/CartGiftSection.js.map +7 -0
  181. package/dist/esm/biz-components/CartDetail/CartGiftSection/components/GiftConfirmDialog/GiftConfirmDialog.d.ts +11 -0
  182. package/dist/esm/biz-components/CartDetail/CartGiftSection/components/GiftConfirmDialog/GiftConfirmDialog.js +2 -0
  183. package/dist/esm/biz-components/CartDetail/CartGiftSection/components/GiftConfirmDialog/GiftConfirmDialog.js.map +7 -0
  184. package/dist/esm/biz-components/CartDetail/CartGiftSection/components/GiftConfirmDialog/index.d.ts +2 -0
  185. package/dist/esm/biz-components/CartDetail/CartGiftSection/components/GiftConfirmDialog/index.js +2 -0
  186. package/dist/esm/biz-components/CartDetail/CartGiftSection/components/GiftConfirmDialog/index.js.map +7 -0
  187. package/dist/esm/biz-components/CartDetail/CartGiftSection/components/GiftOptionRow/GiftOptionRow.d.ts +14 -0
  188. package/dist/esm/biz-components/CartDetail/CartGiftSection/components/GiftOptionRow/GiftOptionRow.js +2 -0
  189. package/dist/esm/biz-components/CartDetail/CartGiftSection/components/GiftOptionRow/GiftOptionRow.js.map +7 -0
  190. package/dist/esm/biz-components/CartDetail/CartGiftSection/components/GiftOptionRow/index.d.ts +2 -0
  191. package/dist/esm/biz-components/CartDetail/CartGiftSection/components/GiftOptionRow/index.js +2 -0
  192. package/dist/esm/biz-components/CartDetail/CartGiftSection/components/GiftOptionRow/index.js.map +7 -0
  193. package/dist/esm/biz-components/CartDetail/CartGiftSection/index.d.ts +2 -0
  194. package/dist/esm/biz-components/CartDetail/CartGiftSection/index.js +2 -0
  195. package/dist/esm/biz-components/CartDetail/CartGiftSection/index.js.map +7 -0
  196. package/dist/esm/biz-components/CartDetail/CartItemRow/CartItemRow.d.ts +56 -0
  197. package/dist/esm/biz-components/CartDetail/CartItemRow/CartItemRow.js +2 -0
  198. package/dist/esm/biz-components/CartDetail/CartItemRow/CartItemRow.js.map +7 -0
  199. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemGiftShipping/CartItemGiftShipping.d.ts +4 -0
  200. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemGiftShipping/CartItemGiftShipping.js +2 -0
  201. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemGiftShipping/CartItemGiftShipping.js.map +7 -0
  202. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemGiftShipping/index.d.ts +2 -0
  203. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemGiftShipping/index.js +2 -0
  204. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemGiftShipping/index.js.map +7 -0
  205. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemGiftShipping/types.d.ts +10 -0
  206. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemGiftShipping/types.js +1 -0
  207. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemGiftShipping/types.js.map +7 -0
  208. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemInfo/CartItemInfo.d.ts +11 -0
  209. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemInfo/CartItemInfo.js +2 -0
  210. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemInfo/CartItemInfo.js.map +7 -0
  211. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemInfo/index.d.ts +2 -0
  212. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemInfo/index.js +2 -0
  213. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemInfo/index.js.map +7 -0
  214. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemKsp/CartItemKsp.d.ts +13 -0
  215. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemKsp/CartItemKsp.js +2 -0
  216. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemKsp/CartItemKsp.js.map +7 -0
  217. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemKsp/index.d.ts +2 -0
  218. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemKsp/index.js +2 -0
  219. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemKsp/index.js.map +7 -0
  220. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemRemoveConfirm/CartItemRemoveConfirm.d.ts +4 -0
  221. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemRemoveConfirm/CartItemRemoveConfirm.js +2 -0
  222. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemRemoveConfirm/CartItemRemoveConfirm.js.map +7 -0
  223. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemRemoveConfirm/index.d.ts +2 -0
  224. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemRemoveConfirm/index.js +2 -0
  225. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemRemoveConfirm/index.js.map +7 -0
  226. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemRemoveConfirm/types.d.ts +11 -0
  227. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemRemoveConfirm/types.js +1 -0
  228. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemRemoveConfirm/types.js.map +7 -0
  229. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemShipping/CartItemShipping.d.ts +8 -0
  230. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemShipping/CartItemShipping.js +2 -0
  231. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemShipping/CartItemShipping.js.map +7 -0
  232. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemShipping/index.d.ts +2 -0
  233. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemShipping/index.js +2 -0
  234. package/dist/esm/biz-components/CartDetail/CartItemRow/components/CartItemShipping/index.js.map +7 -0
  235. package/dist/esm/biz-components/CartDetail/CartItemRow/index.d.ts +2 -0
  236. package/dist/esm/biz-components/CartDetail/CartItemRow/index.js +2 -0
  237. package/dist/esm/biz-components/CartDetail/CartItemRow/index.js.map +7 -0
  238. package/dist/esm/biz-components/CartDetail/CartPerksSection/CartPerksSection.d.ts +34 -0
  239. package/dist/esm/biz-components/CartDetail/CartPerksSection/CartPerksSection.js +2 -0
  240. package/dist/esm/biz-components/CartDetail/CartPerksSection/CartPerksSection.js.map +7 -0
  241. package/dist/esm/biz-components/CartDetail/CartPerksSection/index.d.ts +2 -0
  242. package/dist/esm/biz-components/CartDetail/CartPerksSection/index.js +2 -0
  243. package/dist/esm/biz-components/CartDetail/CartPerksSection/index.js.map +7 -0
  244. package/dist/esm/biz-components/CartDetail/CartPriceSummary/CartPriceSummary.d.ts +51 -0
  245. package/dist/esm/biz-components/CartDetail/CartPriceSummary/CartPriceSummary.js +2 -0
  246. package/dist/esm/biz-components/CartDetail/CartPriceSummary/CartPriceSummary.js.map +7 -0
  247. package/dist/esm/biz-components/CartDetail/CartPriceSummary/index.d.ts +2 -0
  248. package/dist/esm/biz-components/CartDetail/CartPriceSummary/index.js +2 -0
  249. package/dist/esm/biz-components/CartDetail/CartPriceSummary/index.js.map +7 -0
  250. package/dist/esm/biz-components/CartDetail/CartSummaryHeader/CartSummaryHeader.d.ts +26 -0
  251. package/dist/esm/biz-components/CartDetail/CartSummaryHeader/CartSummaryHeader.js +2 -0
  252. package/dist/esm/biz-components/CartDetail/CartSummaryHeader/CartSummaryHeader.js.map +7 -0
  253. package/dist/esm/biz-components/CartDetail/CartSummaryHeader/index.d.ts +2 -0
  254. package/dist/esm/biz-components/CartDetail/CartSummaryHeader/index.js +2 -0
  255. package/dist/esm/biz-components/CartDetail/CartSummaryHeader/index.js.map +7 -0
  256. package/dist/esm/biz-components/CartDetail/CartThirdParty/CartThirdParty.d.ts +10 -0
  257. package/dist/esm/biz-components/CartDetail/CartThirdParty/CartThirdParty.js +2 -0
  258. package/dist/esm/biz-components/CartDetail/CartThirdParty/CartThirdParty.js.map +7 -0
  259. package/dist/esm/biz-components/CartDetail/CartThirdParty/index.d.ts +2 -0
  260. package/dist/esm/biz-components/CartDetail/CartThirdParty/index.js +2 -0
  261. package/dist/esm/biz-components/CartDetail/CartThirdParty/index.js.map +7 -0
  262. package/dist/esm/biz-components/CartDetail/index.d.ts +16 -0
  263. package/dist/esm/biz-components/CartDetail/index.js +2 -0
  264. package/dist/esm/biz-components/CartDetail/index.js.map +7 -0
  265. package/dist/esm/biz-components/CartDetail/types.d.ts +132 -0
  266. package/dist/esm/biz-components/CartDetail/types.js +1 -0
  267. package/dist/esm/biz-components/CartDetail/types.js.map +7 -0
  268. package/dist/esm/biz-components/HeaderNavigation/index.js +1 -1
  269. package/dist/esm/biz-components/HeaderNavigation/index.js.map +2 -2
  270. package/dist/esm/biz-components/ShelfDisplay/shelfDisplayItem.js +1 -1
  271. package/dist/esm/biz-components/ShelfDisplay/shelfDisplayItem.js.map +2 -2
  272. package/dist/esm/biz-components/index.d.ts +6 -0
  273. package/dist/esm/biz-components/index.js +1 -1
  274. package/dist/esm/biz-components/index.js.map +3 -3
  275. package/dist/esm/components/breadcrumb.d.ts +12 -0
  276. package/dist/esm/components/breadcrumb.js +2 -0
  277. package/dist/esm/components/breadcrumb.js.map +7 -0
  278. package/dist/esm/components/button.js +1 -1
  279. package/dist/esm/components/button.js.map +2 -2
  280. package/dist/esm/components/index.d.ts +3 -1
  281. package/dist/esm/components/index.js +1 -1
  282. package/dist/esm/components/index.js.map +3 -3
  283. package/dist/esm/components/input-number.d.ts +22 -0
  284. package/dist/esm/components/input-number.js +1 -1
  285. package/dist/esm/components/input-number.js.map +3 -3
  286. package/dist/esm/components/input.d.ts +5 -0
  287. package/dist/esm/components/input.js +1 -1
  288. package/dist/esm/components/input.js.map +3 -3
  289. package/dist/esm/components/popover.d.ts +17 -2
  290. package/dist/esm/components/popover.js +1 -1
  291. package/dist/esm/components/popover.js.map +3 -3
  292. package/dist/esm/components/toast.d.ts +25 -0
  293. package/dist/esm/components/toast.js +2 -0
  294. package/dist/esm/components/toast.js.map +7 -0
  295. package/dist/tokens/base.css +4 -0
  296. package/package.json +1 -1
  297. package/style.css +270 -3
@@ -0,0 +1,132 @@
1
+ export interface CartKspCopy {
2
+ /** 展开更多文案,默认 'Show product details' */
3
+ showMore?: string;
4
+ /** 收起文案,默认 'Hide product details' */
5
+ showLess?: string;
6
+ }
7
+ export interface CartItemRowCopy {
8
+ /** 售罄遮罩文案,默认 'Sold Out' */
9
+ soldOutText?: string;
10
+ /** 预售遮罩文案,默认 'Pre-sale' */
11
+ presaleBadgeText?: string;
12
+ /** 赠品 badge 文案,默认 'Gift' */
13
+ giftBadgeText?: string;
14
+ /** 会员 badge 文案,默认 'Member' */
15
+ memberBadgeText?: string;
16
+ /** Plus 会员 badge 文案,默认 'Plus Member' */
17
+ plusMemberBadgeText?: string;
18
+ /** 配送信息文案 */
19
+ shippingText?: string;
20
+ /** KSP 展开更多文案,默认 'Show product details' */
21
+ showProductDetails?: string;
22
+ /** KSP 收起文案,默认 'Hide product details' */
23
+ hideProductDetails?: string;
24
+ /** 桌面端移除按钮文案,默认 'Remove' */
25
+ remove?: string;
26
+ }
27
+ export interface GiftOptionRowCopy {
28
+ /** 赠品标签文案,默认 'Gift' */
29
+ badge?: string;
30
+ /** 免费价格文案,默认 'Free' */
31
+ free?: string;
32
+ }
33
+ export interface GiftConfirmDialogCopy {
34
+ /** 确认按钮文案,默认 'Confirm' */
35
+ confirm?: string;
36
+ /** 取消按钮文案,默认 'Cancel' */
37
+ cancel?: string;
38
+ /** 弹窗 aria-label,默认 'Confirm' */
39
+ ariaLabel?: string;
40
+ /** 取消赠品确认文案 */
41
+ cancelGiftConfirm?: string;
42
+ /** 移除赠品确认文案 */
43
+ removeGiftConfirm?: string;
44
+ }
45
+ export interface CartPerksSectionCopy {
46
+ /** 加入购物车按钮文案,默认 'Add to Cart' */
47
+ addButton?: string;
48
+ /** 了解更多按钮文案,默认 'Learn More' */
49
+ learnMoreButton?: string;
50
+ }
51
+ export interface CartSummaryHeaderCopy {
52
+ /** 操作按钮文案,默认 'View my shopping cart' */
53
+ actionText?: string;
54
+ }
55
+ export interface CartPriceSummaryCopy {
56
+ /** 操作按钮文案,默认 'View my shopping cart' (deprecated, use checkOut) */
57
+ actionText?: string;
58
+ /** 售罄状态标题文案 */
59
+ soldOutTitleText?: string;
60
+ /** 折扣码输入框占位文案,默认 'Enter Code' */
61
+ couponPlaceholder?: string;
62
+ /** 折扣码应用按钮文案,默认 'Apply' */
63
+ couponApply?: string;
64
+ /** 折扣码标题文案,默认 'Have a discount code?' */
65
+ couponTitle?: string;
66
+ /** 折扣码链接文案,默认 'Apply/Check' */
67
+ couponLink?: string;
68
+ /** 小计行标签,默认 'Subtotal:' */
69
+ subtotalLabel?: string;
70
+ /** 运费行标签,默认 'Shipping:' */
71
+ shippingLabel?: string;
72
+ /** 税费行标签,默认 'Taxes:' */
73
+ taxesLabel?: string;
74
+ /** 产品折扣标签,默认 'Product discounts:' */
75
+ productDiscountsLabel?: string;
76
+ /** 订单折扣标签,默认 'Order discount:' */
77
+ orderDiscountLabel?: string;
78
+ /** 折扣总计标签,默认 'Discount total:' */
79
+ discountTotalLabel?: string;
80
+ /** 总计标签,默认 'Total:' */
81
+ totalLabel?: string;
82
+ /** 结账按钮文案,默认 'Check Out' */
83
+ checkOut?: string;
84
+ /** 现金减免提示文案 */
85
+ cashReductionText?: string;
86
+ /** 分期付款信息文案 */
87
+ installmentText?: string;
88
+ }
89
+ export interface CartItemRemoveConfirmCopy {
90
+ /** 确认按钮文案,默认 'Confirm' */
91
+ removeConfirmConfirm?: string;
92
+ /** 取消按钮文案,默认 'Cancel' */
93
+ removeConfirmCancel?: string;
94
+ /** 确认提示文案,默认 'Are you sure you want to delete the product?' */
95
+ removeConfirmText?: string;
96
+ }
97
+ /** 单个赠品选项 */
98
+ export interface GiftOption {
99
+ /** 赠品唯一标识(SKU) */
100
+ sku: string;
101
+ /** 赠品名称 */
102
+ name: string;
103
+ /** 赠品图片 */
104
+ image: {
105
+ src: string;
106
+ alt?: string;
107
+ };
108
+ /** 赠品详情页跳转链接 */
109
+ listingHref?: string;
110
+ /** 展示数量(业务侧计算后传入)
111
+ * effectMode=multiple:displayQuantity = mainQty × perQty
112
+ * effectMode=once:displayQuantity = perQty
113
+ */
114
+ displayQuantity: number;
115
+ /** 原价展示文案,如 "$299.00" */
116
+ originalPriceText: string;
117
+ /** 变体信息文案,如 "Color: White" */
118
+ variantText?: string;
119
+ /** 是否可选,false 时整行置灰 */
120
+ disabled?: boolean;
121
+ /** 价格区域的附加内容,如 Badge */
122
+ extra?: React.ReactNode;
123
+ }
124
+ /** 一个赠品 slot 配置 */
125
+ export interface GiftSlotConfig {
126
+ /** 赠品选项列表 */
127
+ options: GiftOption[];
128
+ /** 选择模式:radio(单选) 或 checkbox(多选) */
129
+ mode?: 'radio' | 'checkbox';
130
+ /** 最多可选数量(checkbox 模式下生效) */
131
+ maxSelectable?: number;
132
+ }
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -1,2 +1,2 @@
1
- "use client";import{Fragment as Pe,jsx as e,jsxs as o}from"react/jsx-runtime";import{forwardRef as ae,useCallback as ne,useEffect as G,useImperativeHandle as Ee,useMemo as D,useRef as J,useState as E}from"react";import{Picture as me,Text as w,Button as oe,Container as pe,BrandStrip as Te}from"../../components/index.js";import{withLayout as He}from"../../shared/Styles.js";import{cn as T,getLocalizedPath as ie}from"../../helpers/utils.js";import Le,{useNavContext as te}from"./NavProvider.js";import{HeaderNavigationMenu as W,HeaderNavigationBlockType as H,HeaderNavigationActionBlockType as x}from"./types.js";import ze from"jump.js";import{useGSAP as le}from"@gsap/react";import{gsap as re}from"gsap";import{WithSidebar as fe,WithSupports as be,WithMulticol as ve,WithGroupCategory as ge,WithResource as he}from"./withCategory.js";import{Menu as Re,Close as ye,User as Be,LeftArrow as Ie,DownArrow as Ne,Polygon as Ae}from"./icons/index.js";import Oe from"../NavigationSearch/index.js";import{ResourceSidebarDropdown as je}from"./ResourceSidebarDropdown.js";import{MobileResourceSidebarMenu as _e}from"./MobileResourceSidebarMenu.js";import{SidebarDropdown as We}from"./SidebarDropdown.js";import{useScrollLock as se}from"./useScrollLock.js";import{MulticolDropdown as $e}from"./MulticolDropdown.js";import{SupportsDropdown as Ke}from"./SupportsDropdown.js";import{MobileSidebarMenu as Fe}from"./MobileSidebarMenu.js";import{MobileSupportMenu as Ue}from"./MobileSupportMenu.js";import{MobileMulticolMenu as Ge}from"./MobileMulticolMenu.js";import{MenuItem as ce}from"./MobileMenuComponents.js";import{useAiuiContext as ue}from"../AiuiProvider/index.js";import ke from"../../shared/throttle.js";const we=ae((a,l)=>{const{data:{header:r}={},buildProps:s,event:f,profile:C,theme:n="light",isTop:c=!1,searchResult:N,onSearch:p,isSearching:u,keywords:$,onPrimaryNavClick:y,onSeriesProductClick:v,onSidebarNavClick:M,onMobileMenuToggle:Y,headerId:S,cartCount:z,menuData:R,render:B,componentOverrides:q,...Q}=a,[I,d]=E(!1),[K,A]=E(!1),[O,L]=E(!1),[V,b]=E(!1),j=J(null),k=J(null),X=()=>{const g=document?.querySelector("body")?.offsetWidth||0;b(g<=1440)};G(()=>(X(),window.addEventListener("resize",X),()=>{window.removeEventListener("resize",X)}),[]),Ee(l,()=>k.current),G(()=>{k.current&&c&&ze(k.current,{duration:0,offset:k.current?.getBoundingClientRect()?.bottom||0})},[c]),G(()=>{if(c){A(!1),L(!1);return}let g=0,t=0,i=0;const m=()=>document?.documentElement?.scrollTop||document?.body?.scrollTop||0,h=m();g=h,A(h>300),L(h>30);const F=ke(()=>{const P=m(),U=P-g;L(P>30),U>0?(t=0,i+=U,i>=300&&P>300&&A(!0)):U<0&&(i=0,t+=Math.abs(U),t>=300&&(A(!1),t=0)),g=P},100);return window.addEventListener("scroll",F,{passive:!0}),()=>window.removeEventListener("scroll",F)},[c]),G(()=>{f&&(f.search=()=>d(!0))},[f]),le(()=>{j?.current&&I&&re.fromTo(j.current,{height:0},{height:"auto",duration:.3})},[I]),se(I);const Z=D(()=>r?.bar?.actions?.find(g=>g?.blockType===x.Search)?.searchBar?.[0]||{},[r]),_=B?.mobileHeaderNavigation;return e(Le,{buildProps:s,profile:C,isMobile:V,event:f,payloadData:r,onSidebarNavClick:M,onSeriesProductClick:v,cartCount:z,componentOverrides:q,children:e("header",{...Q,id:S||"header","data-ui-component-id":"HeaderNavigation",className:c?"relative z-[100] bg-white":T("sticky top-0 z-[100] transition-transform duration-500 ease-in-out",{"translate-y-[-100%]":K}),ref:k,children:o("div",{className:T("hover:bg-white hover:text-black",n==="light"?"text-black":"text-white",{"!bg-white transition-all duration-500 ease-in-out":!c&&O},{"hover:!text-black":n==="dark","!text-black":!c&&O}),onClick:()=>!c&&L(!0),children:[e(xe,{data:r,className:"desktop:block hidden !bg-white",theme:n,onNavItemClick:()=>!c&&L(!0),onPrimaryNavClick:y}),_?e(_,{className:"desktop:hidden block !bg-white",menuData:R,data:r,onPrimaryNavClick:y}):e(Ce,{menuData:R,data:r,className:"desktop:hidden block !bg-white",onPrimaryNavClick:y,onMobileMenuToggle:Y}),I&&o("div",{className:"absolute left-0 top-0 z-[60] flex w-full flex-col bg-black/70",style:{height:`calc(100dvh - ${k?.current?.getBoundingClientRect()?.top}px)`},role:"dialog","aria-modal":"true","aria-label":"Search",children:[e("div",{ref:j,className:T("overflow-y-auto",{}),children:e(Oe,{data:Z,keywords:$,isSearching:u,searchResult:N,onSearch:g=>{p?.(g)},onClose:()=>{p?.(),d(!1)}})}),e("div",{className:"flex-1 bg-transparent",onClick:()=>d(!1),role:"button",tabIndex:0,"aria-label":"Close search",onKeyDown:g=>{(g.key==="Enter"||g.key===" "||g.key==="Escape")&&(g.preventDefault(),d(!1))}})]})]})})})}),xe=ae((a,l)=>{const{data:r,onNavItemClick:s,className:f,theme:C,onPrimaryNavClick:n}=a,{event:c,profile:N}=te(),[p,u]=E(!1),{locale:$="us"}=ue(),y=D(()=>ge(r?.categories?.filter(t=>t?.pcShow)),[r]),[v,M]=E(null),[Y,S]=E([]),z=J(null),[R,B]=E(!1),q=J(null),Q=J(null),I=J(y.map(t=>Array(t?.length||0).fill(null)));G(()=>{y?.length&&S(y?.map((t,i)=>t?.map((m,h)=>({groupIndex:i,index:h,open:!1}))))},[y]);const d=D(()=>{let t=null;for(const i of Y){for(const m of i)if(m.open){t=m;break}if(t)break}return t},[Y]);se(!!d?.open||R);const K=(t,i,m)=>{B(!1);const h=y[i][m];if(h?.components?.[0]?.blockType===H.Links)h?.components?.[0]?.url&&window.open(h?.components?.[0]?.url,h?.components?.[0]?.target??"_blank");else{const F=y?.flat()||[],P=F?.findIndex(U=>U?.id===y[i][m]?.id);t.stopPropagation(),s?.(),n?.(F[P],P),M(h),S(U=>U.map(De=>De.map(ee=>ee.groupIndex===i&&ee.index===m?{...ee,open:!ee.open}:{...ee,open:!1})))}},A=(t,i,m)=>{t.key==="Enter"||t.key===" "?(t.preventDefault(),K(t,i,m)):t.key==="Escape"&&d?.groupIndex===i&&d?.index===m&&(t.preventDefault(),O())},O=()=>{S(t=>t.map(i=>i.map(m=>({...m,open:!1}))))},L=D(()=>{if(v)return v?.components?.[0]?.blockType},[v]),V=fe(We,v),b=he(je,v),j=ve($e,v),k=be(Ke,{categoriesItem:v,currentNavItemRef:I.current?.[d?.groupIndex||0]?.[d?.index||0]}),X=D(()=>{switch(L){case H.Sidebar:return e(V,{});case H.Resource:return e(b,{});case H.Supports:return e(k,{});case H.Multicol:return e(j,{});default:return null}},[L,v]),Z=D(()=>r?.bar?.actions?.filter(t=>t?.pcShow),[r]),_=D(()=>Z?.find(t=>t?.blockType===x.Profile),[Z]),g=ne(()=>{B(t=>!t)},[]);return G(()=>{if(z?.current){const t=z.current;return t.addEventListener("click",g),()=>{t.removeEventListener("click",g)}}},[g]),le(()=>{d?.open&&re.fromTo(Q?.current,{height:0},{height:"auto"})},[d?.open]),o(pe,{className:T("relative h-[96px]",f),children:[o("div",{ref:q,onClick:O,className:"flex h-full flex-col justify-end gap-4",children:[o("div",{className:"flex items-center justify-between",children:[e(Me,{}),e(de,{ref:z,actions:Z,activeStatus:R})]}),e("nav",{className:"flex justify-between",role:"navigation","aria-label":"Primary navigation",children:y?.map((t,i)=>e("div",{className:"flex gap-3",children:t?.map((m,h)=>{const F=d?.groupIndex===i&&d?.index===h;return e("div",{ref:P=>{I.current[i][h]=P},className:"group",children:o("div",{className:"relative",children:[o("button",{className:"flex cursor-pointer items-center gap-1 border-0 bg-transparent pb-4",onClick:P=>K(P,i,h),onKeyDown:P=>A(P,i,h),"aria-expanded":F,"aria-haspopup":"true","aria-label":m.text,children:[e(w,{html:m.text,className:"text-sm font-bold leading-[1.4]"}),e(Ne,{className:T("size-4 opacity-0 transition-opacity duration-500 group-hover:opacity-100",{"rotate-180":d?.groupIndex===i&&d?.index===h,"opacity-100":p&&d?.groupIndex===i&&d?.index===h,invisible:!m?.components?.length||m?.components?.[0]?.blockType===H.Links})})]}),e("div",{className:T("absolute bottom-0 left-0 h-[2px] w-0 transition-all duration-500",{"w-[calc(100%-20px)]":F},C==="dark"?"bg-white":"bg-[#080A0F]"),"aria-hidden":"true"})]})},m.id)})},`groupCategory-${i}`))})]}),o("div",{role:"menu","aria-hidden":!(d?.open&&v),className:T("absolute left-0 top-full z-[999] flex w-full flex-col overflow-hidden border-t border-b-[#E4E5E6] bg-black/70 text-black",{hidden:!(d?.open&&v)}),onMouseEnter:()=>u(!0),onMouseLeave:()=>u(!1),style:{height:`calc(100dvh - ${q?.current?.getBoundingClientRect()?.bottom}px)`},children:[e("div",{ref:Q,className:T("relative z-50",{"overflow-hidden":L!==H.Supports}),children:X}),e("div",{className:"flex-1 bg-transparent",onClick:O,role:"button",tabIndex:0,"aria-label":"Close menu",onKeyDown:t=>{(t.key==="Enter"||t.key===" "||t.key==="Escape")&&(t.preventDefault(),O())}})]}),R&&o("div",{className:"absolute left-0 top-full z-[999] flex h-dvh w-full bg-black/70",role:"dialog","aria-modal":"true","aria-label":"User profile menu",children:[e("div",{className:"rounded-box absolute w-[272px] overflow-hidden bg-white p-4",style:{right:`calc(100% - ${z?.current?.getBoundingClientRect()?.right}px)`,top:"-36px"},children:N?.email?o(Pe,{children:[e(w,{html:N?.nick_name||_?.welcome,className:"text-sm font-bold"}),e("div",{className:"mt-2 h-px bg-[#D9D9D9]","aria-hidden":"true"}),e("nav",{className:"mt-2",role:"navigation","aria-label":"Profile navigation",children:_?.profiles?.map(t=>e(ce,{className:"py-2",label:t?.title,href:ie(t?.url,$)},t.id))})]}):o(Pe,{children:[e(Ae,{className:"absolute -top-2 right-[46px] z-30 text-white","aria-hidden":"true"}),e(w,{html:_?.benefits_title,className:"text-sm font-bold leading-[1.4]"}),e("div",{className:"mt-2 flex flex-col gap-1",children:_?.benefits?.map(t=>o("div",{className:"flex items-center gap-[6px]",children:[e(me,{source:t.benefitIcon?.url,className:"size-4 shrink-0",alt:t.benefit,width:16,height:16}),e(w,{html:t.benefit,className:"text-sm font-bold leading-[1.4]"})]},t.id))}),o("div",{className:"mt-4 flex flex-wrap gap-2",children:[e(oe,{className:"grow",variant:"secondary",size:"lg",onClick:()=>c?.join?.(),children:e(w,{html:_?.primaryButton||"Join Now",className:"font-bold"})}),e(oe,{className:"grow",variant:"primary",size:"lg",onClick:()=>c?.login?.(),children:e(w,{html:_?.secondaryButton||"Log In",className:"font-bold"})})]})]})}),e("div",{className:"flex-1 bg-transparent",onClick:()=>B(!1),role:"button",tabIndex:0,"aria-label":"Close profile menu",onKeyDown:t=>{(t.key==="Enter"||t.key===" "||t.key==="Escape")&&(t.preventDefault(),B(!1))}})]})]})}),Ce=ae(({data:a,menuData:l,className:r,onPrimaryNavClick:s,onMobileMenuToggle:f},C)=>{const n=D(()=>ge(a?.categories?.filter(b=>b?.mobileShow)),[a]),{currentMenu:c,setCurrentMenu:N,subSubCategory:p}=te(),[u,$]=E(!1),[y,v]=E(0),[M,Y]=E(null),S=J(null),z=J(!1);G(()=>{if(S?.current&&u){const b=S?.current?.getBoundingClientRect();v(window?.innerHeight-(b?.top||0))}f?.({open:u})},[u,f]),G(()=>{if(!u)return;const b=ke(()=>{if(S?.current){const j=S.current.getBoundingClientRect();z.current=!0,v(window?.innerHeight-(j?.top||0))}},100);return window.addEventListener("resize",b),()=>window.removeEventListener("resize",b)},[u]),le(()=>{if(z.current){re.set(S.current,{height:y}),z.current=!1;return}re.fromTo(S.current,{height:0},{height:y,duration:.3})},[y]),se(u);const R=D(()=>M?.components?.[0]?.blockType,[M]),B=be(Ue,{categoriesItem:M}),q=fe(Fe,M),Q=he(_e,M),I=ve(Ge,M),d=D(()=>{switch(R){case H.Sidebar:return e(q,{});case H.Resource:return e(Q,{});case H.Supports:return e(B,{});case H.Multicol:return e(I,{});default:return null}},[R,M,B]),K=ne(()=>{$(!1),v(0),N&&N(W.Primary)},[$,v,N]),A=D(()=>a?.bar?.actions?.filter(b=>b?.mobileShow&&b?.blockType!==x.Profile),[a]),O=D(()=>a?.bar?.actions?.find(b=>b?.mobileShow&&b?.blockType===x.Profile)||{},[a]),L=D(()=>{switch(c){case W.Primary:return e(qe,{actions:A,menuOpen:u,onMenuOpenClose:()=>{$(!1),v(0)},onMenuOpenClick:()=>$(!0)});case W.Secondary:return e(Se,{title:M?.text,onMenuOpenClose:K,onMenuBackClick:()=>N?.(W.Primary)});case W.Third:return e(Se,{title:p?.label,onMenuOpenClose:K,onMenuBackClick:()=>N?.(W.Secondary)});default:return null}},[u,c,N,M,A,p,K]),V=ne((b,j)=>{const k=Array.isArray(n)?Array.isArray(n[b])?n[b][j]:{}:{};Y(k),k?.components?.[0]?.blockType===H.Links?k?.components?.[0]?.url&&window.open(k?.components?.[0]?.url,k?.components?.[0]?.target??"_blank"):N?.(W.Secondary)},[n,N]);return o(pe,{className:T("relative h-[52px]",r),children:[L,u&&o("nav",{ref:S,className:"absolute left-0 top-full z-[999] w-full overflow-y-auto border-t border-[#E4E5E6] bg-white text-black",style:{height:y},role:"navigation","aria-label":"Mobile navigation menu",children:[c===W.Primary&&l?e("div",{className:"pt-4",children:e(Te,{data:l})}):null,c===W.Primary?e(Je,{categories:n,onPrimaryMenuClick:V,onPrimaryNavClick:s,profileAction:O}):d]})]})}),Je=({categories:a,onPrimaryMenuClick:l,profileAction:r,onPrimaryNavClick:s})=>o("div",{className:"flex h-full flex-col justify-between",children:[e("div",{className:"tablet:px-8 laptop:px-16 p-4",children:a?.map((f,C)=>o("div",{className:"",children:[e("div",{className:T("my-2 h-px w-full bg-[#E5E5E7]")}),f?.map((n,c)=>e(ce,{label:n.text,onClick:()=>{const p=(a?.flat()||[])?.findIndex(u=>u?.id===a[C][c]?.id);l(C,c),s?.(n,p)},icon:n.components?.[0]?.icon},n.id))]},`groupCategory-${C}`))}),e(Ye,{profileAction:r})]}),Ye=({profileAction:a})=>{const[l,r]=E(!1),{profile:s,event:f}=te(),{locale:C="us"}=ue();return o("div",{className:T("tablet:px-8 laptop:px-16 bg-[#F5F5F7] px-4 py-6",{"p-4":l}),children:[o("button",{className:"flex w-full cursor-pointer items-center justify-between border-0 bg-transparent",onClick:()=>r(!l),"aria-expanded":l,"aria-label":s?.nick_name||a?.welcome,children:[o("div",{className:"flex items-center gap-[14px]",children:[e("div",{className:"flex size-[40px] shrink-0 items-center justify-center rounded-full bg-white",children:e(Be,{"aria-hidden":"true"})}),e(w,{html:s?.nick_name||a?.welcome,className:"text-base font-bold leading-[1.4]"})]}),!s?.email&&e(Ne,{"aria-hidden":"true",className:T("laptop:size-4 size-5",{"rotate-180":l})})]}),s?.email&&e("nav",{className:"mt-4",role:"navigation","aria-label":"Profile menu",children:a?.profiles?.map(n=>e(ce,{label:n?.title,href:ie(n?.url,C)},n.id))}),l&&!s?.email&&o("div",{className:"mt-4",children:[e(w,{html:a?.benefits_title,className:"text-sm font-bold leading-[1.4]"}),e("div",{className:"mt-2 flex flex-col gap-1",children:a?.benefits?.map(n=>o("div",{className:"flex items-center gap-[6px]",children:[e(me,{source:n.benefitIcon?.url,className:"size-4",alt:n.benefit,width:16,height:16}),e(w,{html:n.benefit,className:"text-sm font-bold leading-[1.4]"})]},n.id))})]}),!s?.email&&o("div",{className:"mt-4 flex items-center gap-3",children:[e(oe,{className:"tablet:flex-none flex-1",variant:"secondary",size:"base",onClick:()=>f?.join?.(),children:e(w,{html:a?.primaryButton||"Join Now",className:"text-sm font-bold leading-[1.4]"})}),e(oe,{className:"tablet:flex-none flex-1",variant:"primary",size:"base",onClick:()=>f?.login?.(),children:e(w,{html:a?.secondaryButton||"Log In",className:"text-sm font-bold leading-[1.4]"})})]})]})},qe=({menuOpen:a,onMenuOpenClose:l,onMenuOpenClick:r,actions:s})=>o("div",{className:"flex h-full items-center justify-between gap-4",children:[e(Me,{}),o("div",{className:"desktop:gap-6 flex items-center gap-4",children:[e(de,{actions:s}),a?e("button",{className:"cursor-pointer border-0 bg-transparent p-0",onClick:()=>l(),"aria-label":"Close menu","aria-expanded":"true",children:e(ye,{className:"size-5","aria-hidden":"true"})}):e("button",{className:"cursor-pointer border-0 bg-transparent p-0",onClick:()=>r(),"aria-label":"Open menu","aria-expanded":"false","aria-haspopup":"true",children:e(Re,{className:"size-5","aria-hidden":"true"})})]})]}),Me=()=>{const{payloadData:a,isMobile:l}=te(),{locale:r="us"}=ue();return e("a",{href:ie("/",r),className:"hover:text-brand-0 [&>svg]:w-full","aria-label":"Home",dangerouslySetInnerHTML:{__html:l?a?.bar?.mobileLogo:a?.bar?.desktopLogo}})},de=ae(({actions:a,activeStatus:l=!1},r)=>{const{event:s,cartCount:f}=te(),[C,n]=E(null),c=p=>{switch(p){case x.Search:return"Search";case x.Cart:return`Shopping cart${f>0?` (${f} items)`:""}`;case x.Profile:return"User profile";case x.Livestream:return"Livestream";default:return"Action"}},N=ne((p,u)=>{switch(n(u),p?.blockType){case x.Search:s?.search?.();break;case x.Cart:s?.cart?.();break;case x.Profile:s?.profile?.();break;case x.Livestream:s?.livestream?.();break;default:return()=>{}}},[s]);return e("div",{className:"desktop:gap-6 flex items-center gap-4",children:Array.isArray(a)&&a?.map((p,u)=>o("button",{className:"relative cursor-pointer border-0 bg-transparent p-0",ref:p.blockType===x.Profile?r:null,onClick:()=>N(p,u),"aria-label":c(p.blockType),"aria-pressed":l&&C===u,children:[e(w,{html:p.icon,className:T("size-5",{"text-brand-0":l&&C===u}),"aria-hidden":"true"}),p.blockType===x.Cart&&f>0&&e("div",{className:"bg-brand-0 absolute right-[-12px] top-[calc(100%-16px)] z-[1] flex min-h-5 min-w-5 items-center justify-center rounded-full px-[2px]","aria-hidden":"true",children:e(w,{html:f?.toString(),className:"text-sm font-bold leading-[1.2] text-white"})})]},p.id))})}),Se=({title:a,onMenuOpenClose:l,onMenuBackClick:r})=>o("div",{className:"flex h-full items-center gap-3",children:[e("button",{className:"cursor-pointer border-0 bg-transparent p-0",onClick:()=>r(),"aria-label":"Back to previous menu",children:e(Ie,{className:"size-5","aria-hidden":"true"})}),e(w,{html:a,className:"flex-1 text-center text-base font-bold leading-[1.4]"}),e("button",{className:"cursor-pointer border-0 bg-transparent p-0",onClick:()=>l(),"aria-label":"Close menu",children:e(ye,{className:"size-5","aria-hidden":"true"})})]});Ce.displayName="MobileNavigation",de.displayName="Actions",we.displayName="HeaderNavigation",xe.displayName="DesktopNavigation";var kt=He(we);export{kt as default};
1
+ "use client";import{Fragment as Pe,jsx as e,jsxs as o}from"react/jsx-runtime";import{forwardRef as ae,useCallback as ne,useEffect as G,useImperativeHandle as Ee,useMemo as D,useRef as J,useState as E}from"react";import{Picture as me,Text as w,Button as oe,Container as pe,BrandStrip as Te}from"../../components/index.js";import{withLayout as He}from"../../shared/Styles.js";import{cn as T,getLocalizedPath as ie}from"../../helpers/utils.js";import Le,{useNavContext as te}from"./NavProvider.js";import{HeaderNavigationMenu as W,HeaderNavigationBlockType as H,HeaderNavigationActionBlockType as x}from"./types.js";import ze from"jump.js";import{useGSAP as le}from"@gsap/react";import{gsap as re}from"gsap";import{WithSidebar as fe,WithSupports as be,WithMulticol as ve,WithGroupCategory as ge,WithResource as he}from"./withCategory.js";import{Menu as Re,Close as ye,User as Be,LeftArrow as Ie,DownArrow as Ne,Polygon as Ae}from"./icons/index.js";import Oe from"../NavigationSearch/index.js";import{ResourceSidebarDropdown as je}from"./ResourceSidebarDropdown.js";import{MobileResourceSidebarMenu as _e}from"./MobileResourceSidebarMenu.js";import{SidebarDropdown as We}from"./SidebarDropdown.js";import{useScrollLock as se}from"./useScrollLock.js";import{MulticolDropdown as $e}from"./MulticolDropdown.js";import{SupportsDropdown as Ke}from"./SupportsDropdown.js";import{MobileSidebarMenu as Fe}from"./MobileSidebarMenu.js";import{MobileSupportMenu as Ue}from"./MobileSupportMenu.js";import{MobileMulticolMenu as Ge}from"./MobileMulticolMenu.js";import{MenuItem as ce}from"./MobileMenuComponents.js";import{useAiuiContext as ue}from"../AiuiProvider/index.js";import ke from"../../shared/throttle.js";const we=ae((a,l)=>{const{data:{header:r}={},buildProps:s,event:f,profile:C,theme:n="light",isTop:c=!1,searchResult:N,onSearch:m,isSearching:u,keywords:$,onPrimaryNavClick:y,onSeriesProductClick:v,onSidebarNavClick:M,onMobileMenuToggle:Y,headerId:S,cartCount:z,menuData:R,render:B,componentOverrides:q,...Q}=a,[I,d]=E(!1),[K,A]=E(!1),[O,L]=E(!1),[V,b]=E(!1),j=J(null),k=J(null),X=()=>{const g=document?.querySelector("body")?.offsetWidth||0;b(g<=1440)};G(()=>(X(),window.addEventListener("resize",X),()=>{window.removeEventListener("resize",X)}),[]),Ee(l,()=>k.current),G(()=>{k.current&&c&&ze(k.current,{duration:0,offset:k.current?.getBoundingClientRect()?.bottom||0})},[c]),G(()=>{if(c){A(!1),L(!1);return}let g=0,t=0,i=0;const p=()=>document?.documentElement?.scrollTop||document?.body?.scrollTop||0,h=p();g=h,A(h>300),L(h>30);const F=ke(()=>{const P=p(),U=P-g;L(P>30),U>0?(t=0,i+=U,i>=300&&P>300&&A(!0)):U<0&&(i=0,t+=Math.abs(U),t>=300&&(A(!1),t=0)),g=P},100);return window.addEventListener("scroll",F,{passive:!0}),()=>window.removeEventListener("scroll",F)},[c]),G(()=>{f&&(f.search=()=>d(!0))},[f]),le(()=>{j?.current&&I&&re.fromTo(j.current,{height:0},{height:"auto",duration:.3})},[I]),se(I);const Z=D(()=>r?.bar?.actions?.find(g=>g?.blockType===x.Search)?.searchBar?.[0]||{},[r]),_=B?.mobileHeaderNavigation;return e(Le,{buildProps:s,profile:C,isMobile:V,event:f,payloadData:r,onSidebarNavClick:M,onSeriesProductClick:v,cartCount:z,componentOverrides:q,children:e("header",{...Q,id:S||"header","data-ui-component-id":"HeaderNavigation",className:c?"relative z-[100] bg-white":T("sticky top-0 z-[100] transition-transform duration-500 ease-in-out",{"translate-y-[-100%]":K}),ref:k,children:o("div",{className:T("hover:bg-white hover:text-black",n==="light"?"text-black":"text-white",{"!bg-white transition-all duration-500 ease-in-out":!c&&O},{"hover:!text-black":n==="dark","!text-black":!c&&O}),onClick:()=>!c&&L(!0),children:[e(xe,{data:r,className:"desktop:block hidden !bg-white",theme:n,onNavItemClick:()=>!c&&L(!0),onPrimaryNavClick:y}),_?e(_,{className:"desktop:hidden block !bg-white",menuData:R,data:r,onPrimaryNavClick:y}):e(Ce,{menuData:R,data:r,className:"desktop:hidden block !bg-white",onPrimaryNavClick:y,onMobileMenuToggle:Y}),I&&o("div",{className:"absolute left-0 top-0 z-[60] flex w-full flex-col bg-black/70",style:{height:`calc(100dvh - ${k?.current?.getBoundingClientRect()?.top}px)`},role:"dialog","aria-modal":"true","aria-label":"Search",children:[e("div",{ref:j,className:T("overflow-y-auto",{}),children:e(Oe,{data:Z,keywords:$,isSearching:u,searchResult:N,onSearch:g=>{m?.(g)},onClose:()=>{m?.(),d(!1)}})}),e("div",{className:"flex-1 bg-transparent",onClick:()=>d(!1),role:"button",tabIndex:0,"aria-label":"Close search",onKeyDown:g=>{(g.key==="Enter"||g.key===" "||g.key==="Escape")&&(g.preventDefault(),d(!1))}})]})]})})})}),xe=ae((a,l)=>{const{data:r,onNavItemClick:s,className:f,theme:C,onPrimaryNavClick:n}=a,{event:c,profile:N}=te(),[m,u]=E(!1),{locale:$="us"}=ue(),y=D(()=>ge(r?.categories?.filter(t=>t?.pcShow)),[r]),[v,M]=E(null),[Y,S]=E([]),z=J(null),[R,B]=E(!1),q=J(null),Q=J(null),I=J(y.map(t=>Array(t?.length||0).fill(null)));G(()=>{y?.length&&S(y?.map((t,i)=>t?.map((p,h)=>({groupIndex:i,index:h,open:!1}))))},[y]);const d=D(()=>{let t=null;for(const i of Y){for(const p of i)if(p.open){t=p;break}if(t)break}return t},[Y]);se(!!d?.open||R);const K=(t,i,p)=>{B(!1);const h=y[i][p];if(h?.components?.[0]?.blockType===H.Links)h?.components?.[0]?.url&&window.open(h?.components?.[0]?.url,h?.components?.[0]?.target??"_blank");else{const F=y?.flat()||[],P=F?.findIndex(U=>U?.id===y[i][p]?.id);t.stopPropagation(),s?.(),n?.(F[P],P),M(h),S(U=>U.map(De=>De.map(ee=>ee.groupIndex===i&&ee.index===p?{...ee,open:!ee.open}:{...ee,open:!1})))}},A=(t,i,p)=>{t.key==="Enter"||t.key===" "?(t.preventDefault(),K(t,i,p)):t.key==="Escape"&&d?.groupIndex===i&&d?.index===p&&(t.preventDefault(),O())},O=()=>{S(t=>t.map(i=>i.map(p=>({...p,open:!1}))))},L=D(()=>{if(v)return v?.components?.[0]?.blockType},[v]),V=fe(We,v),b=he(je,v),j=ve($e,v),k=be(Ke,{categoriesItem:v,currentNavItemRef:I.current?.[d?.groupIndex||0]?.[d?.index||0]}),X=D(()=>{switch(L){case H.Sidebar:return e(V,{});case H.Resource:return e(b,{});case H.Supports:return e(k,{});case H.Multicol:return e(j,{});default:return null}},[L,v]),Z=D(()=>r?.bar?.actions?.filter(t=>t?.pcShow),[r]),_=D(()=>Z?.find(t=>t?.blockType===x.Profile),[Z]),g=ne(()=>{B(t=>!t)},[]);return G(()=>{if(z?.current){const t=z.current;return t.addEventListener("click",g),()=>{t.removeEventListener("click",g)}}},[g]),le(()=>{d?.open&&re.fromTo(Q?.current,{height:0},{height:"auto"})},[d?.open]),o(pe,{className:T("relative h-[96px]",f),children:[o("div",{ref:q,onClick:O,className:"flex h-full flex-col justify-end gap-4",children:[o("div",{className:"flex items-center justify-between",children:[e(Me,{}),e(de,{ref:z,actions:Z,activeStatus:R})]}),e("nav",{className:"flex justify-between",role:"navigation","aria-label":"Primary navigation",children:y?.map((t,i)=>e("div",{className:"flex gap-3",children:t?.map((p,h)=>{const F=d?.groupIndex===i&&d?.index===h;return e("div",{ref:P=>{I.current[i][h]=P},className:"group",children:o("div",{className:"relative",children:[o("button",{className:"flex cursor-pointer items-center gap-1 border-0 bg-transparent pb-4",onClick:P=>K(P,i,h),onKeyDown:P=>A(P,i,h),"aria-expanded":F,"aria-haspopup":"true","aria-label":p.text,children:[e(w,{html:p.text,className:"text-sm font-bold leading-[1.4]"}),e(Ne,{className:T("size-4 opacity-0 transition-opacity duration-500 group-hover:opacity-100",{"rotate-180":d?.groupIndex===i&&d?.index===h,"opacity-100":m&&d?.groupIndex===i&&d?.index===h,invisible:!p?.components?.length||p?.components?.[0]?.blockType===H.Links})})]}),e("div",{className:T("absolute bottom-0 left-0 h-[2px] w-0 transition-all duration-500",{"w-[calc(100%-20px)]":F},C==="dark"?"bg-white":"bg-[#080A0F]"),"aria-hidden":"true"})]})},p.id)})},`groupCategory-${i}`))})]}),o("div",{role:"menu","aria-hidden":!(d?.open&&v),className:T("absolute left-0 top-full z-[999] flex w-full flex-col overflow-hidden border-t border-b-[#E4E5E6] bg-black/70 text-black",{hidden:!(d?.open&&v)}),onMouseEnter:()=>u(!0),onMouseLeave:()=>u(!1),style:{height:`calc(100dvh - ${q?.current?.getBoundingClientRect()?.bottom}px)`},children:[e("div",{ref:Q,className:T("relative z-50",{"overflow-hidden":L!==H.Supports}),children:X}),e("div",{className:"flex-1 bg-transparent",onClick:O,role:"button",tabIndex:0,"aria-label":"Close menu",onKeyDown:t=>{(t.key==="Enter"||t.key===" "||t.key==="Escape")&&(t.preventDefault(),O())}})]}),R&&o("div",{className:"absolute left-0 top-full z-[999] flex h-dvh w-full bg-black/70",role:"dialog","aria-modal":"true","aria-label":"User profile menu",children:[e("div",{className:"rounded-box absolute w-[272px] overflow-hidden bg-white p-4",style:{right:`calc(100% - ${z?.current?.getBoundingClientRect()?.right}px)`,top:"-36px"},children:N?.email?o(Pe,{children:[e(w,{html:N?.nick_name||_?.welcome,className:"text-sm font-bold"}),e("div",{className:"mt-2 h-px bg-[#D9D9D9]","aria-hidden":"true"}),e("nav",{className:"mt-2",role:"navigation","aria-label":"Profile navigation",children:_?.profiles?.map(t=>e(ce,{className:"py-2",label:t?.title,href:ie(t?.url,$)},t.id))})]}):o(Pe,{children:[e(Ae,{className:"absolute -top-2 right-[46px] z-30 text-white","aria-hidden":"true"}),e(w,{html:_?.benefits_title,className:"text-sm font-bold leading-[1.4]"}),e("div",{className:"mt-2 flex flex-col gap-1",children:_?.benefits?.map(t=>o("div",{className:"flex items-center gap-[6px]",children:[e(me,{source:t.benefitIcon?.url,className:"size-4 shrink-0",alt:t.benefit,width:16,height:16}),e(w,{html:t.benefit,className:"text-sm font-bold leading-[1.4]"})]},t.id))}),o("div",{className:"mt-4 flex flex-wrap gap-2",children:[e(oe,{className:"grow",variant:"secondary",size:"lg",onClick:()=>c?.join?.(),children:e(w,{html:_?.primaryButton||"Join Now",className:"font-bold"})}),e(oe,{className:"grow",variant:"primary",size:"lg",onClick:()=>c?.login?.(),children:e(w,{html:_?.secondaryButton||"Log In",className:"font-bold"})})]})]})}),e("div",{className:"flex-1 bg-transparent",onClick:()=>B(!1),role:"button",tabIndex:0,"aria-label":"Close profile menu",onKeyDown:t=>{(t.key==="Enter"||t.key===" "||t.key==="Escape")&&(t.preventDefault(),B(!1))}})]})]})}),Ce=ae(({data:a,menuData:l,className:r,onPrimaryNavClick:s,onMobileMenuToggle:f},C)=>{const n=D(()=>ge(a?.categories?.filter(b=>b?.mobileShow)),[a]),{currentMenu:c,setCurrentMenu:N,subSubCategory:m}=te(),[u,$]=E(!1),[y,v]=E(0),[M,Y]=E(null),S=J(null),z=J(!1);G(()=>{if(S?.current&&u){const b=S?.current?.getBoundingClientRect();v(window?.innerHeight-(b?.top||0))}f?.({open:u})},[u,f]),G(()=>{if(!u)return;const b=ke(()=>{if(S?.current){const j=S.current.getBoundingClientRect();z.current=!0,v(window?.innerHeight-(j?.top||0))}},100);return window.addEventListener("resize",b),()=>window.removeEventListener("resize",b)},[u]),le(()=>{if(z.current){re.set(S.current,{height:y}),z.current=!1;return}re.fromTo(S.current,{height:0},{height:y,duration:.3})},[y]),se(u);const R=D(()=>M?.components?.[0]?.blockType,[M]),B=be(Ue,{categoriesItem:M}),q=fe(Fe,M),Q=he(_e,M),I=ve(Ge,M),d=D(()=>{switch(R){case H.Sidebar:return e(q,{});case H.Resource:return e(Q,{});case H.Supports:return e(B,{});case H.Multicol:return e(I,{});default:return null}},[R,M,B]),K=ne(()=>{$(!1),v(0),N&&N(W.Primary)},[$,v,N]),A=D(()=>a?.bar?.actions?.filter(b=>b?.mobileShow&&b?.blockType!==x.Profile),[a]),O=D(()=>a?.bar?.actions?.find(b=>b?.mobileShow&&b?.blockType===x.Profile)||{},[a]),L=D(()=>{switch(c){case W.Primary:return e(qe,{actions:A,menuOpen:u,onMenuOpenClose:()=>{$(!1),v(0)},onMenuOpenClick:()=>$(!0)});case W.Secondary:return e(Se,{title:M?.text,onMenuOpenClose:K,onMenuBackClick:()=>N?.(W.Primary)});case W.Third:return e(Se,{title:m?.label,onMenuOpenClose:K,onMenuBackClick:()=>N?.(W.Secondary)});default:return null}},[u,c,N,M,A,m,K]),V=ne((b,j)=>{const k=Array.isArray(n)?Array.isArray(n[b])?n[b][j]:{}:{};Y(k),k?.components?.[0]?.blockType===H.Links?k?.components?.[0]?.url&&window.open(k?.components?.[0]?.url,k?.components?.[0]?.target??"_blank"):N?.(W.Secondary)},[n,N]);return o(pe,{className:T("relative h-[52px]",r),children:[L,u&&o("nav",{ref:S,className:"absolute left-0 top-full z-[999] w-full overflow-y-auto border-t border-[#E4E5E6] bg-white text-black",style:{height:y},role:"navigation","aria-label":"Mobile navigation menu",children:[c===W.Primary&&l?e("div",{className:"pt-4",children:e(Te,{data:l})}):null,c===W.Primary?e(Je,{categories:n,onPrimaryMenuClick:V,onPrimaryNavClick:s,profileAction:O}):d]})]})}),Je=({categories:a,onPrimaryMenuClick:l,profileAction:r,onPrimaryNavClick:s})=>o("div",{className:"flex h-full flex-col justify-between",children:[e("div",{className:"tablet:px-8 laptop:px-16 p-4",children:a?.map((f,C)=>o("div",{className:"",children:[e("div",{className:T("my-2 h-px w-full bg-[#E5E5E7]")}),f?.map((n,c)=>e(ce,{label:n.text,onClick:()=>{const m=(a?.flat()||[])?.findIndex(u=>u?.id===a[C][c]?.id);l(C,c),s?.(n,m)},icon:n.components?.[0]?.icon},n.id))]},`groupCategory-${C}`))}),e(Ye,{profileAction:r})]}),Ye=({profileAction:a})=>{const[l,r]=E(!1),{profile:s,event:f}=te(),{locale:C="us"}=ue();return o("div",{className:T("tablet:px-8 laptop:px-16 bg-[#F5F5F7] px-4 py-6",{"p-4":l}),children:[o("button",{className:"flex w-full cursor-pointer items-center justify-between border-0 bg-transparent",onClick:()=>r(!l),"aria-expanded":l,"aria-label":s?.nick_name||a?.welcome,children:[o("div",{className:"flex items-center gap-[14px]",children:[e("div",{className:"flex size-[40px] shrink-0 items-center justify-center rounded-full bg-white",children:e(Be,{"aria-hidden":"true"})}),e(w,{html:s?.nick_name||a?.welcome,className:"text-base font-bold leading-[1.4]"})]}),!s?.email&&e(Ne,{"aria-hidden":"true",className:T("laptop:size-4 size-5",{"rotate-180":l})})]}),s?.email&&e("nav",{className:"mt-4",role:"navigation","aria-label":"Profile menu",children:a?.profiles?.map(n=>e(ce,{label:n?.title,href:ie(n?.url,C)},n.id))}),l&&!s?.email&&o("div",{className:"mt-4",children:[e(w,{html:a?.benefits_title,className:"text-sm font-bold leading-[1.4]"}),e("div",{className:"mt-2 flex flex-col gap-1",children:a?.benefits?.map(n=>o("div",{className:"flex items-center gap-[6px]",children:[e(me,{source:n.benefitIcon?.url,className:"size-4",alt:n.benefit,width:16,height:16}),e(w,{html:n.benefit,className:"text-sm font-bold leading-[1.4]"})]},n.id))})]}),!s?.email&&o("div",{className:"mt-4 flex items-center gap-3",children:[e(oe,{className:"tablet:flex-none flex-1",variant:"secondary",size:"base",onClick:()=>f?.join?.(),children:e(w,{html:a?.primaryButton||"Join Now",className:"text-sm font-bold leading-[1.4]"})}),e(oe,{className:"tablet:flex-none flex-1",variant:"primary",size:"base",onClick:()=>f?.login?.(),children:e(w,{html:a?.secondaryButton||"Log In",className:"text-sm font-bold leading-[1.4]"})})]})]})},qe=({menuOpen:a,onMenuOpenClose:l,onMenuOpenClick:r,actions:s})=>o("div",{className:"flex h-full items-center justify-between gap-4",children:[e(Me,{}),o("div",{className:"desktop:gap-6 flex items-center gap-4",children:[e(de,{actions:s}),a?e("button",{className:"cursor-pointer border-0 bg-transparent p-0",onClick:()=>l(),"aria-label":"Close menu","aria-expanded":"true",children:e(ye,{className:"size-5","aria-hidden":"true"})}):e("button",{className:"cursor-pointer border-0 bg-transparent p-0",onClick:()=>r(),"aria-label":"Open menu","aria-expanded":"false","aria-haspopup":"true",children:e(Re,{className:"size-5","aria-hidden":"true"})})]})]}),Me=()=>{const{payloadData:a,isMobile:l}=te(),{locale:r="us"}=ue();return e("a",{href:ie("/",r),className:"hover:text-brand-0 [&>svg]:w-full","aria-label":"Home",dangerouslySetInnerHTML:{__html:l?a?.bar?.mobileLogo:a?.bar?.desktopLogo}})},de=ae(({actions:a,activeStatus:l=!1},r)=>{const{event:s,cartCount:f}=te(),[C,n]=E(null),c=m=>{switch(m){case x.Search:return"Search";case x.Cart:return`Shopping cart${f>0?` (${f} items)`:""}`;case x.Profile:return"User profile";case x.Livestream:return"Livestream";default:return"Action"}},N=ne((m,u)=>{switch(n(u),m?.blockType){case x.Search:s?.search?.();break;case x.Cart:s?.cart?.();break;case x.Profile:s?.profile?.();break;case x.Livestream:s?.livestream?.();break;default:return()=>{}}},[s]);return e("div",{className:"desktop:gap-6 flex items-center gap-4",children:Array.isArray(a)&&a?.map((m,u)=>o("button",{className:"relative cursor-pointer border-0 bg-transparent p-0","data-tag":m?.tag||"",ref:m.blockType===x.Profile?r:null,onClick:()=>N(m,u),"aria-label":c(m.blockType),"aria-pressed":l&&C===u,children:[e(w,{html:m.icon,className:T("size-5",{"text-brand-0":l&&C===u}),"aria-hidden":"true"}),m.blockType===x.Cart&&f>0&&e("div",{className:"bg-brand-0 absolute right-[-12px] top-[calc(100%-16px)] z-[1] flex min-h-5 min-w-5 items-center justify-center rounded-full px-[2px]","aria-hidden":"true",children:e(w,{html:f?.toString(),className:"text-sm font-bold leading-[1.2] text-white"})})]},m.id))})}),Se=({title:a,onMenuOpenClose:l,onMenuBackClick:r})=>o("div",{className:"flex h-full items-center gap-3",children:[e("button",{className:"cursor-pointer border-0 bg-transparent p-0",onClick:()=>r(),"aria-label":"Back to previous menu",children:e(Ie,{className:"size-5","aria-hidden":"true"})}),e(w,{html:a,className:"flex-1 text-center text-base font-bold leading-[1.4]"}),e("button",{className:"cursor-pointer border-0 bg-transparent p-0",onClick:()=>l(),"aria-label":"Close menu",children:e(ye,{className:"size-5","aria-hidden":"true"})})]});Ce.displayName="MobileNavigation",de.displayName="Actions",we.displayName="HeaderNavigation",xe.displayName="DesktopNavigation";var kt=He(we);export{kt as default};
2
2
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/biz-components/HeaderNavigation/index.tsx"],
4
- "sourcesContent": ["'use client'\nimport React, { forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react'\n\nimport { Picture, Text, Button, Container, BrandStrip } from '../../components/index.js'\n\nimport { withLayout } from '../../shared/Styles.js'\n\nimport { cn, getLocalizedPath } from '../../helpers/utils.js'\n\nimport type {\n MobilePrimaryNavigationData,\n MobileSecondaryNavigationData,\n MobileNavigationProps,\n DesktopNavigationProps,\n HeaderNavigationProps,\n} from './types.js'\nimport NavProvider, { useNavContext } from './NavProvider.js'\n\nimport { HeaderNavigationMenu, HeaderNavigationBlockType, HeaderNavigationActionBlockType } from './types.js'\n\nimport jump from 'jump.js'\n\nimport { useGSAP } from '@gsap/react'\nimport { gsap } from 'gsap'\n\nimport { WithSidebar, WithSupports, WithMulticol, WithGroupCategory, WithResource } from './withCategory.js'\n\nimport { Menu, Close, User, LeftArrow, DownArrow, Polygon } from './icons/index.js'\n\nimport NavigationSearch from '../NavigationSearch/index.js'\nimport { ResourceSidebarDropdown } from './ResourceSidebarDropdown.js'\nimport { MobileResourceSidebarMenu } from './MobileResourceSidebarMenu.js'\nimport { SidebarDropdown } from './SidebarDropdown.js'\nimport { useScrollLock } from './useScrollLock.js'\nimport { MulticolDropdown } from './MulticolDropdown.js'\nimport { SupportsDropdown } from './SupportsDropdown.js'\nimport { MobileSidebarMenu } from './MobileSidebarMenu.js'\nimport { MobileSupportMenu } from './MobileSupportMenu.js'\nimport { MobileMulticolMenu } from './MobileMulticolMenu.js'\nimport { MenuItem } from './MobileMenuComponents.js'\nimport { useAiuiContext } from '../AiuiProvider/index.js'\nimport throttle from '../../shared/throttle.js'\n\nconst HeaderNavigation = forwardRef<HTMLDivElement, HeaderNavigationProps>((props, ref) => {\n const {\n data: { header } = {},\n buildProps,\n event,\n profile,\n theme = 'light',\n isTop = false,\n searchResult,\n onSearch,\n isSearching,\n keywords,\n onPrimaryNavClick,\n onSeriesProductClick,\n onSidebarNavClick,\n onMobileMenuToggle,\n headerId,\n cartCount,\n menuData,\n render,\n componentOverrides,\n ...rest\n } = props\n\n const [searchOpen, setSearchOpen] = useState(false)\n const [headerHidden, setHeaderHidden] = useState(false)\n const [changeHeaderBackground, setChangeHeaderBackground] = useState(false)\n const [isMobile, setIsMobile] = useState(false)\n const searchRef = useRef<HTMLDivElement>(null)\n\n const headerRef = useRef<HTMLDivElement>(null)\n\n const resizeWindow = () => {\n const offsetWidth = document?.querySelector('body')?.offsetWidth || 0\n setIsMobile(offsetWidth <= 1440)\n }\n\n useEffect(() => {\n resizeWindow()\n window.addEventListener('resize', resizeWindow)\n return () => {\n window.removeEventListener('resize', resizeWindow)\n }\n }, [])\n\n useImperativeHandle(ref, () => headerRef.current as HTMLDivElement)\n\n useEffect(() => {\n if (headerRef.current && isTop) {\n jump(headerRef.current, { duration: 0, offset: headerRef.current?.getBoundingClientRect()?.bottom || 0 })\n }\n }, [isTop])\n\n useEffect(() => {\n // \u5982\u679C isTop \u4E3A true\uFF0C\u4E0D\u9700\u8981\u6EDA\u52A8\u76D1\u542C\u548C\u52A8\u6548\n if (isTop) {\n setHeaderHidden(false)\n setChangeHeaderBackground(false)\n return\n }\n\n let lastScrollY = 0\n let upwardDistance = 0\n let downwardDistance = 0\n\n const getScrollTop = () => {\n return document?.documentElement?.scrollTop || document?.body?.scrollTop || 0\n }\n\n // \u521D\u59CB\u5316\u72B6\u6001\n const initialScrollTop = getScrollTop()\n lastScrollY = initialScrollTop\n setHeaderHidden(initialScrollTop > 300)\n setChangeHeaderBackground(initialScrollTop > 30)\n\n const handleScroll = throttle(() => {\n const currentScrollY = getScrollTop()\n const delta = currentScrollY - lastScrollY\n\n // \u66F4\u65B0\u80CC\u666F\u72B6\u6001\n setChangeHeaderBackground(currentScrollY > 30)\n\n if (delta > 0) {\n // \u5411\u4E0B\u6EDA\u52A8\n upwardDistance = 0 // \u91CD\u7F6E\u5411\u4E0A\u7D2F\u8BA1\n downwardDistance += delta\n\n if (downwardDistance >= 300 && currentScrollY > 300) {\n setHeaderHidden(true)\n }\n } else if (delta < 0) {\n // \u5411\u4E0A\u6EDA\u52A8\n downwardDistance = 0 // \u91CD\u7F6E\u5411\u4E0B\u7D2F\u8BA1\n upwardDistance += Math.abs(delta)\n\n if (upwardDistance >= 300) {\n setHeaderHidden(false)\n upwardDistance = 0\n }\n }\n\n lastScrollY = currentScrollY\n }, 100)\n\n window.addEventListener('scroll', handleScroll, { passive: true })\n return () => window.removeEventListener('scroll', handleScroll)\n }, [isTop])\n\n useEffect(() => {\n if (event) {\n event.search = () => setSearchOpen(true)\n }\n }, [event])\n\n useGSAP(() => {\n if (searchRef?.current && searchOpen) {\n gsap.fromTo(\n searchRef.current,\n {\n height: 0,\n },\n {\n height: 'auto',\n duration: 0.3,\n }\n )\n }\n }, [searchOpen])\n\n useScrollLock(searchOpen)\n\n const searchPage = useMemo(() => {\n return (\n header?.bar?.actions?.find((item: any) => item?.blockType === HeaderNavigationActionBlockType.Search)\n ?.searchBar?.[0] || {}\n )\n }, [header])\n\n const CustomMobileHeaderNavigation = render?.mobileHeaderNavigation\n\n return (\n <NavProvider\n buildProps={buildProps}\n profile={profile}\n isMobile={isMobile}\n event={event}\n payloadData={header}\n onSidebarNavClick={onSidebarNavClick}\n onSeriesProductClick={onSeriesProductClick}\n cartCount={cartCount}\n componentOverrides={componentOverrides}\n >\n <header\n {...rest}\n id={headerId || 'header'}\n data-ui-component-id=\"HeaderNavigation\"\n className={\n isTop\n ? 'relative z-[100] bg-white'\n : cn('sticky top-0 z-[100] transition-transform duration-500 ease-in-out', {\n ['translate-y-[-100%]']: headerHidden,\n })\n }\n // className=\"relative z-[100] bg-white\"\n ref={headerRef}\n >\n <div\n className={cn(\n 'hover:bg-white hover:text-black',\n theme === 'light' ? 'text-black' : 'text-white',\n {\n ['!bg-white transition-all duration-500 ease-in-out']: !isTop && changeHeaderBackground,\n },\n {\n ['hover:!text-black']: theme === 'dark',\n ['!text-black']: !isTop && changeHeaderBackground,\n }\n )}\n onClick={() => !isTop && setChangeHeaderBackground(true)}\n >\n <DesktopNavigation\n data={header}\n className=\"desktop:block hidden !bg-white\"\n theme={theme}\n onNavItemClick={() => !isTop && setChangeHeaderBackground(true)}\n onPrimaryNavClick={onPrimaryNavClick}\n />\n {CustomMobileHeaderNavigation ? (\n <CustomMobileHeaderNavigation\n className=\"desktop:hidden block !bg-white\"\n menuData={menuData}\n data={header}\n onPrimaryNavClick={onPrimaryNavClick}\n />\n ) : (\n <MobileNavigation\n menuData={menuData}\n data={header}\n className=\"desktop:hidden block !bg-white\"\n onPrimaryNavClick={onPrimaryNavClick}\n onMobileMenuToggle={onMobileMenuToggle}\n />\n )}\n {searchOpen && (\n <div\n className=\"absolute left-0 top-0 z-[60] flex w-full flex-col bg-black/70\"\n style={{ height: `calc(100dvh - ${headerRef?.current?.getBoundingClientRect()?.top}px)` }}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label=\"Search\"\n >\n <div ref={searchRef} className={cn('overflow-y-auto', {})}>\n <NavigationSearch\n data={searchPage}\n keywords={keywords}\n isSearching={isSearching}\n searchResult={searchResult}\n onSearch={(value: string) => {\n onSearch?.(value)\n }}\n onClose={() => {\n onSearch?.()\n setSearchOpen(false)\n }}\n />\n </div>\n <div\n className=\"flex-1 bg-transparent\"\n onClick={() => setSearchOpen(false)}\n role=\"button\"\n tabIndex={0}\n aria-label=\"Close search\"\n onKeyDown={e => {\n if (e.key === 'Enter' || e.key === ' ' || e.key === 'Escape') {\n e.preventDefault()\n setSearchOpen(false)\n }\n }}\n />\n </div>\n )}\n </div>\n </header>\n </NavProvider>\n )\n})\n\nconst DesktopNavigation = forwardRef<HTMLDivElement, DesktopNavigationProps>((props, ref) => {\n const { data, onNavItemClick, className, theme, onPrimaryNavClick } = props\n const { event, profile } = useNavContext()\n const [downdownHover, setDowndownHover] = useState(false)\n const { locale = 'us' } = useAiuiContext()\n\n const groupCategories = useMemo(() => {\n return WithGroupCategory(data?.categories?.filter((item: any) => item?.pcShow)) as any[][]\n }, [data])\n\n const [categoriesItem, setCategoriesItem] = useState<any>(null)\n const [navStatusArray, setNavStatusArray] = useState<{ index: number; groupIndex: number; open: boolean }[][]>([])\n const profileRef = useRef<HTMLButtonElement>(null)\n const [userProfileOpen, setUserProfileOpen] = useState(false)\n const headerRef = useRef<HTMLDivElement>(null)\n const dropdownRef = useRef<HTMLDivElement>(null)\n const navItemRefs = useRef<HTMLDivElement[][]>(\n groupCategories.map((categories: any) => Array(categories?.length || 0).fill(null))\n )\n\n useEffect(() => {\n if (groupCategories?.length) {\n setNavStatusArray(\n groupCategories?.map((groupItem: any, groupIndex: number) => {\n return groupItem?.map((_: any, index: number) => ({ groupIndex, index, open: false }))\n })\n )\n }\n }, [groupCategories])\n\n const currentNavItem = useMemo(() => {\n let currentNavItem: { index: number; groupIndex: number; open: boolean } | null = null\n for (const groupItem of navStatusArray) {\n for (const item of groupItem) {\n if (item.open) {\n currentNavItem = item\n break\n }\n }\n if (currentNavItem) break\n }\n return currentNavItem\n }, [navStatusArray])\n\n useScrollLock(!!currentNavItem?.open || userProfileOpen)\n\n const handleNavItemClick = (e: any, groupIndex: number, index: number) => {\n setUserProfileOpen(false)\n // if (categoriesItem?.components?.[0]?.blockType === HeaderNavigationBlockType.Links) {\n const currentCategoriesItem = groupCategories[groupIndex][index]\n if (currentCategoriesItem?.components?.[0]?.blockType === HeaderNavigationBlockType.Links) {\n // link\u6A21\u5757\u7279\u6B8A\u5904\u7406\n // categoriesItem?.components?.[0]?.url && window.open(categoriesItem?.components?.[0]?.url)\n currentCategoriesItem?.components?.[0]?.url &&\n window.open(\n currentCategoriesItem?.components?.[0]?.url,\n currentCategoriesItem?.components?.[0]?.target ?? '_blank'\n )\n } else {\n const categories = groupCategories?.flat() || []\n const position = categories?.findIndex(item => item?.id === groupCategories[groupIndex][index]?.id)\n e.stopPropagation()\n onNavItemClick?.()\n onPrimaryNavClick?.(categories[position], position)\n // setCategoriesItem(groupCategories[groupIndex][index])\n setCategoriesItem(currentCategoriesItem)\n setNavStatusArray(prev =>\n prev.map(groupItem =>\n groupItem.map(item =>\n item.groupIndex === groupIndex && item.index === index\n ? { ...item, open: !item.open }\n : { ...item, open: false }\n )\n )\n )\n }\n }\n\n const handleNavItemKeyDown = (e: React.KeyboardEvent, groupIndex: number, index: number) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n handleNavItemClick(e, groupIndex, index)\n } else if (e.key === 'Escape' && currentNavItem?.groupIndex === groupIndex && currentNavItem?.index === index) {\n e.preventDefault()\n handleNavMenuClose()\n }\n }\n\n const handleNavMenuClose = () => {\n setNavStatusArray(prev => prev.map(groupItem => groupItem.map(item => ({ ...item, open: false }))))\n }\n\n const currentBlockTypeCategories = useMemo(() => {\n if (categoriesItem) return categoriesItem?.components?.[0]?.blockType\n }, [categoriesItem])\n\n const SidebarDropdownComp = WithSidebar(SidebarDropdown, categoriesItem)\n const ResourceSidebarDropdownComp = WithResource(ResourceSidebarDropdown, categoriesItem)\n const MulticolDropdownComp = WithMulticol(MulticolDropdown, categoriesItem)\n const SupportsDropdownComp = WithSupports(SupportsDropdown, {\n categoriesItem,\n currentNavItemRef: navItemRefs.current?.[currentNavItem?.groupIndex || 0]?.[currentNavItem?.index || 0],\n })\n\n const DropdownComp = useMemo(() => {\n switch (currentBlockTypeCategories) {\n case HeaderNavigationBlockType.Sidebar:\n return <SidebarDropdownComp />\n case HeaderNavigationBlockType.Resource:\n return <ResourceSidebarDropdownComp />\n case HeaderNavigationBlockType.Supports:\n return <SupportsDropdownComp />\n case HeaderNavigationBlockType.Multicol:\n return <MulticolDropdownComp />\n default:\n return null\n }\n }, [currentBlockTypeCategories, categoriesItem])\n\n const actions = useMemo(() => {\n return data?.bar?.actions?.filter((item: any) => item?.pcShow)\n }, [data])\n\n const profileAction = useMemo(() => {\n return actions?.find((item: any) => item?.blockType === HeaderNavigationActionBlockType.Profile)\n }, [actions])\n\n const handleProfileClick = useCallback(() => {\n setUserProfileOpen(prev => !prev)\n }, [])\n\n useEffect(() => {\n if (profileRef?.current) {\n const profileRefElement = profileRef.current as HTMLButtonElement\n profileRefElement.addEventListener('click', handleProfileClick)\n\n return () => {\n profileRefElement.removeEventListener('click', handleProfileClick)\n }\n }\n }, [handleProfileClick])\n\n useGSAP(() => {\n if (currentNavItem?.open) {\n gsap.fromTo(\n dropdownRef?.current,\n {\n height: 0,\n },\n {\n height: 'auto',\n }\n )\n }\n }, [currentNavItem?.open])\n\n return (\n <Container className={cn('relative h-[96px]', className)}>\n <div ref={headerRef} onClick={handleNavMenuClose} className=\"flex h-full flex-col justify-end gap-4\">\n <div className=\"flex items-center justify-between\">\n <Logo />\n <Actions ref={profileRef} actions={actions} activeStatus={userProfileOpen} />\n </div>\n <nav className=\"flex justify-between\" role=\"navigation\" aria-label=\"Primary navigation\">\n {groupCategories?.map((groupItem: any, groupIndex: number) => {\n return (\n <div key={`groupCategory-${groupIndex}`} className=\"flex gap-3\">\n {groupItem?.map((item: any, index: number) => {\n const isExpanded = currentNavItem?.groupIndex === groupIndex && currentNavItem?.index === index\n return (\n <div\n key={item.id}\n ref={(el: HTMLDivElement) => {\n navItemRefs.current[groupIndex][index] = el\n }}\n className=\"group\"\n >\n <div className=\"relative\">\n <button\n className=\"flex cursor-pointer items-center gap-1 border-0 bg-transparent pb-4\"\n onClick={e => handleNavItemClick(e, groupIndex, index)}\n onKeyDown={e => handleNavItemKeyDown(e, groupIndex, index)}\n aria-expanded={isExpanded}\n aria-haspopup=\"true\"\n aria-label={item.text}\n >\n <Text html={item.text} className=\"text-sm font-bold leading-[1.4]\" />\n {/* <DownArrow\n aria-hidden=\"true\"\n className={cn('size-4 opacity-0 transition-opacity duration-500 group-hover:opacity-100', {\n ['rotate-180']: isExpanded,\n ['opacity-100']: downdownHover && isExpanded,\n })}\n /> */}\n <DownArrow\n className={cn('size-4 opacity-0 transition-opacity duration-500 group-hover:opacity-100', {\n ['rotate-180']:\n currentNavItem?.groupIndex === groupIndex && currentNavItem?.index === index,\n ['opacity-100']:\n downdownHover &&\n currentNavItem?.groupIndex === groupIndex &&\n currentNavItem?.index === index,\n ['invisible']:\n !item?.components?.length ||\n item?.components?.[0]?.blockType === HeaderNavigationBlockType.Links,\n })}\n />\n </button>\n <div\n className={cn(\n 'absolute bottom-0 left-0 h-[2px] w-0 transition-all duration-500',\n {\n 'w-[calc(100%-20px)]': isExpanded,\n },\n theme === 'dark' ? 'bg-white' : 'bg-[#080A0F]'\n )}\n aria-hidden=\"true\"\n />\n </div>\n </div>\n )\n })}\n </div>\n )\n })}\n </nav>\n </div>\n <div\n role=\"menu\"\n aria-hidden={!(currentNavItem?.open && categoriesItem)}\n className={cn(\n 'absolute left-0 top-full z-[999] flex w-full flex-col overflow-hidden border-t border-b-[#E4E5E6] bg-black/70 text-black',\n {\n hidden: !(currentNavItem?.open && categoriesItem),\n }\n )}\n onMouseEnter={() => setDowndownHover(true)}\n onMouseLeave={() => setDowndownHover(false)}\n style={{ height: `calc(100dvh - ${headerRef?.current?.getBoundingClientRect()?.bottom}px)` }}\n >\n <div\n ref={dropdownRef}\n className={cn('relative z-50', {\n 'overflow-hidden': currentBlockTypeCategories !== HeaderNavigationBlockType.Supports,\n })}\n >\n {DropdownComp}\n </div>\n <div\n className=\"flex-1 bg-transparent\"\n onClick={handleNavMenuClose}\n role=\"button\"\n tabIndex={0}\n aria-label=\"Close menu\"\n onKeyDown={e => {\n if (e.key === 'Enter' || e.key === ' ' || e.key === 'Escape') {\n e.preventDefault()\n handleNavMenuClose()\n }\n }}\n />\n </div>\n {userProfileOpen && (\n <div\n className=\"absolute left-0 top-full z-[999] flex h-dvh w-full bg-black/70\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label=\"User profile menu\"\n // style={{\n // height: `calc(100dvh - ${profileRef?.current?.getBoundingClientRect()?.bottom}px)`,\n // top: `calc(96px)`,\n // }}\n >\n <div\n className=\"rounded-box absolute w-[272px] overflow-hidden bg-white p-4\"\n style={{\n right: `calc(100% - ${profileRef?.current?.getBoundingClientRect()?.right}px)`,\n top: '-36px',\n }}\n >\n {profile?.email ? (\n <>\n <Text html={profile?.nick_name || profileAction?.welcome} className=\"text-sm font-bold\" />\n <div className=\"mt-2 h-px bg-[#D9D9D9]\" aria-hidden=\"true\" />\n <nav className=\"mt-2\" role=\"navigation\" aria-label=\"Profile navigation\">\n {profileAction?.profiles?.map((item: any) => (\n <MenuItem\n className=\"py-2\"\n key={item.id}\n label={item?.title}\n href={getLocalizedPath(item?.url, locale)}\n />\n ))}\n </nav>\n </>\n ) : (\n <>\n <Polygon className=\"absolute -top-2 right-[46px] z-30 text-white\" aria-hidden=\"true\" />\n <Text html={profileAction?.benefits_title} className=\"text-sm font-bold leading-[1.4]\" />\n <div className=\"mt-2 flex flex-col gap-1\">\n {profileAction?.benefits?.map((item: any) => (\n <div key={item.id} className=\"flex items-center gap-[6px]\">\n <Picture\n source={item.benefitIcon?.url}\n className=\"size-4 shrink-0\"\n alt={item.benefit}\n width={16}\n height={16}\n />\n <Text html={item.benefit} className=\"text-sm font-bold leading-[1.4]\" />\n </div>\n ))}\n </div>\n <div className=\"mt-4 flex flex-wrap gap-2\">\n <Button className=\"grow\" variant=\"secondary\" size=\"lg\" onClick={() => event?.join?.()}>\n <Text html={profileAction?.primaryButton || 'Join Now'} className=\"font-bold\" />\n </Button>\n <Button className=\"grow\" variant=\"primary\" size=\"lg\" onClick={() => event?.login?.()}>\n <Text html={profileAction?.secondaryButton || 'Log In'} className=\"font-bold\" />\n </Button>\n </div>\n </>\n )}\n </div>\n <div\n className=\"flex-1 bg-transparent\"\n onClick={() => setUserProfileOpen(false)}\n role=\"button\"\n tabIndex={0}\n aria-label=\"Close profile menu\"\n onKeyDown={e => {\n if (e.key === 'Enter' || e.key === ' ' || e.key === 'Escape') {\n e.preventDefault()\n setUserProfileOpen(false)\n }\n }}\n />\n </div>\n )}\n </Container>\n )\n})\n\nconst MobileNavigation = forwardRef<HTMLDivElement, MobileNavigationProps>(\n ({ data, menuData, className, onPrimaryNavClick, onMobileMenuToggle }, ref) => {\n const groupCategories = useMemo(() => {\n return WithGroupCategory(data?.categories?.filter((item: any) => item?.mobileShow))\n }, [data])\n\n const { currentMenu, setCurrentMenu, subSubCategory } = useNavContext()\n const [mobileMenuOpen, setMobileMenuOpen] = useState(false)\n const [menuInnerHeight, setMenuInnerHeight] = useState(0)\n const [categoriesItem, setCategoriesItem] = useState<any>(null)\n\n const mobileMenuRef = useRef<HTMLDivElement>(null)\n // resize \u89E6\u53D1\u7684\u9AD8\u5EA6\u66F4\u65B0\u53EA\u9700\u76F4\u63A5\u540C\u6B65\uFF0C\u4E0D\u9700\u8981\u91CD\u653E\u5C55\u5F00\u52A8\u753B\n const skipOpenAnimationRef = useRef(false)\n\n useEffect(() => {\n if (mobileMenuRef?.current && mobileMenuOpen) {\n const rect = mobileMenuRef?.current?.getBoundingClientRect()\n setMenuInnerHeight(window?.innerHeight - (rect?.top || 0))\n }\n\n onMobileMenuToggle?.({ open: mobileMenuOpen })\n }, [mobileMenuOpen, onMobileMenuToggle])\n\n // \u79FB\u52A8\u7AEF\u83DC\u5355\u5C55\u5F00\u65F6\uFF0C\u76D1\u542C\u7A97\u53E3\u5C3A\u5BF8\u53D8\u5316\uFF0C\u9632\u6B62\u7528\u6237\u8C03\u6574\u6D4F\u89C8\u5668\u7A97\u53E3\u5927\u5C0F\u540E\u83DC\u5355\u9AD8\u5EA6\u4E0D\u540C\u6B65\n useEffect(() => {\n if (!mobileMenuOpen) return\n\n const handleResize = throttle(() => {\n if (mobileMenuRef?.current) {\n const rect = mobileMenuRef.current.getBoundingClientRect()\n skipOpenAnimationRef.current = true\n setMenuInnerHeight(window?.innerHeight - (rect?.top || 0))\n }\n }, 100)\n\n window.addEventListener('resize', handleResize)\n return () => window.removeEventListener('resize', handleResize)\n }, [mobileMenuOpen])\n\n useGSAP(() => {\n if (skipOpenAnimationRef.current) {\n // resize \u5F15\u8D77\u7684\u9AD8\u5EA6\u53D8\u5316\uFF1A\u76F4\u63A5\u540C\u6B65\u9AD8\u5EA6\uFF0C\u4E0D\u64AD\u653E\u5C55\u5F00\u52A8\u753B\n gsap.set(mobileMenuRef.current, { height: menuInnerHeight })\n skipOpenAnimationRef.current = false\n return\n }\n\n gsap.fromTo(\n mobileMenuRef.current,\n {\n height: 0,\n },\n {\n height: menuInnerHeight,\n duration: 0.3,\n }\n )\n }, [menuInnerHeight])\n\n useScrollLock(mobileMenuOpen)\n\n const currentBlockTypeCategories = useMemo(() => {\n return categoriesItem?.components?.[0]?.blockType\n }, [categoriesItem])\n\n const MobileSupportMenuComp = WithSupports(MobileSupportMenu, {\n categoriesItem,\n })\n\n const MobileSidebarMenuComp = WithSidebar(MobileSidebarMenu, categoriesItem)\n const MobileResourceSidebarMenuComp = WithResource(MobileResourceSidebarMenu, categoriesItem)\n const MobileMulticolMenuComp = WithMulticol(MobileMulticolMenu, categoriesItem)\n\n const MobileCategoriesMenuComp = useMemo(() => {\n switch (currentBlockTypeCategories) {\n case HeaderNavigationBlockType.Sidebar:\n return <MobileSidebarMenuComp />\n case HeaderNavigationBlockType.Resource:\n return <MobileResourceSidebarMenuComp />\n case HeaderNavigationBlockType.Supports:\n return <MobileSupportMenuComp />\n case HeaderNavigationBlockType.Multicol:\n return <MobileMulticolMenuComp />\n default:\n return null\n }\n }, [currentBlockTypeCategories, categoriesItem, MobileSupportMenuComp])\n\n const handleSecondaryMenuClose = useCallback(() => {\n setMobileMenuOpen(false)\n setMenuInnerHeight(0)\n setCurrentMenu && setCurrentMenu(HeaderNavigationMenu.Primary)\n }, [setMobileMenuOpen, setMenuInnerHeight, setCurrentMenu])\n\n const menuActions = useMemo(() => {\n return data?.bar?.actions?.filter(\n (item: any) => item?.mobileShow && item?.blockType !== HeaderNavigationActionBlockType.Profile // \u79FB\u52A8\u7AEF\u4E0D\u663E\u793Aprofile\u6309\u94AE\n )\n }, [data])\n\n const profileAction = useMemo(() => {\n return (\n data?.bar?.actions?.find(\n (item: any) => item?.mobileShow && item?.blockType === HeaderNavigationActionBlockType.Profile\n ) || {}\n )\n }, [data])\n\n const MobileCategoriesHeaderComp = useMemo(() => {\n switch (currentMenu) {\n case HeaderNavigationMenu.Primary:\n return (\n <PrimaryHeader\n actions={menuActions}\n menuOpen={mobileMenuOpen}\n onMenuOpenClose={() => {\n setMobileMenuOpen(false)\n setMenuInnerHeight(0)\n }}\n onMenuOpenClick={() => setMobileMenuOpen(true)}\n />\n )\n case HeaderNavigationMenu.Secondary:\n return (\n <SecondaryHeader\n title={categoriesItem?.text}\n onMenuOpenClose={handleSecondaryMenuClose}\n onMenuBackClick={() => setCurrentMenu?.(HeaderNavigationMenu.Primary)}\n />\n )\n case HeaderNavigationMenu.Third:\n return (\n <SecondaryHeader\n title={subSubCategory?.label}\n onMenuOpenClose={handleSecondaryMenuClose}\n onMenuBackClick={() => setCurrentMenu?.(HeaderNavigationMenu.Secondary)}\n />\n )\n default:\n return null\n }\n }, [\n mobileMenuOpen,\n currentMenu,\n setCurrentMenu,\n categoriesItem,\n menuActions,\n subSubCategory,\n handleSecondaryMenuClose,\n ])\n\n const handlePrimaryMenuClick = useCallback(\n (groupIndex: number, index: number) => {\n const categoriesItem = Array.isArray(groupCategories)\n ? Array.isArray(groupCategories[groupIndex])\n ? // @ts-ignore\n groupCategories[groupIndex][index]\n : {}\n : {}\n setCategoriesItem(categoriesItem)\n if (categoriesItem?.components?.[0]?.blockType === HeaderNavigationBlockType.Links) {\n // link\u6A21\u5757\u7279\u6B8A\u5904\u7406\n categoriesItem?.components?.[0]?.url &&\n window.open(categoriesItem?.components?.[0]?.url, categoriesItem?.components?.[0]?.target ?? '_blank')\n } else {\n setCurrentMenu?.(HeaderNavigationMenu.Secondary)\n }\n },\n [groupCategories, setCurrentMenu]\n )\n\n return (\n <Container className={cn('relative h-[52px]', className)}>\n {/* \u79FB\u52A8\u7AEF\u5206\u7C7B\u83DC\u5355 */}\n {MobileCategoriesHeaderComp}\n {mobileMenuOpen && (\n <nav\n ref={mobileMenuRef}\n className=\"absolute left-0 top-full z-[999] w-full overflow-y-auto border-t border-[#E4E5E6] bg-white text-black\"\n style={{ height: menuInnerHeight }}\n role=\"navigation\"\n aria-label=\"Mobile navigation menu\"\n >\n {currentMenu === HeaderNavigationMenu.Primary && menuData ? (\n <div className=\"pt-4\">\n <BrandStrip data={menuData} />\n </div>\n ) : null}\n {currentMenu === HeaderNavigationMenu.Primary ? (\n <MobilePrimaryMenu\n categories={groupCategories}\n onPrimaryMenuClick={handlePrimaryMenuClick}\n onPrimaryNavClick={onPrimaryNavClick}\n profileAction={profileAction}\n />\n ) : (\n MobileCategoriesMenuComp\n )}\n </nav>\n )}\n </Container>\n )\n }\n)\n\n/**\n * \u79FB\u52A8\u7AEF\u4E00\u7EA7\u83DC\u5355\n * @param categories \u5206\u7C7B\n * @param onPrimaryMenuClick \u4E00\u7EA7\u83DC\u5355\u70B9\u51FB\n */\nconst MobilePrimaryMenu = ({\n categories,\n onPrimaryMenuClick,\n profileAction,\n onPrimaryNavClick,\n}: {\n categories: any\n onPrimaryMenuClick: (groupIndex: number, index: number) => void\n profileAction: any\n onPrimaryNavClick?: (category: any, position: number) => void\n}) => {\n return (\n <div className=\"flex h-full flex-col justify-between\">\n <div className=\"tablet:px-8 laptop:px-16 p-4\">\n {categories?.map((groupItem: any, groupIndex: number) => (\n <div key={`groupCategory-${groupIndex}`} className=\"\">\n <div className={cn('my-2 h-px w-full bg-[#E5E5E7]')} />\n {groupItem?.map((item: any, index: number) => (\n <MenuItem\n key={item.id}\n label={item.text}\n onClick={() => {\n const flatCategories = categories?.flat() || []\n const position = flatCategories?.findIndex(\n (item: any) => item?.id === categories[groupIndex][index]?.id\n )\n onPrimaryMenuClick(groupIndex, index)\n onPrimaryNavClick?.(item, position)\n }}\n icon={item.components?.[0]?.icon}\n />\n ))}\n </div>\n ))}\n </div>\n <ProfileComp profileAction={profileAction} />\n </div>\n )\n}\n\n/**\n * \u79FB\u52A8\u7AEF\u4FA7\u8FB9\u680F\u4E0B\u62C9\n * @param sidebarCategoriesMetadata \u4FA7\u8FB9\u680F\u5206\u7C7B\u5143\u6570\u636E\n * @param seriesMetadata \u4FA7\u8FB9\u680F\u7CFB\u5217\u5143\u6570\u636E\n */\nconst ProfileComp = ({ profileAction }: { profileAction: any }) => {\n const [profileOpen, setProfileOpen] = useState(false)\n const { profile, event } = useNavContext()\n const { locale = 'us' } = useAiuiContext()\n return (\n <div\n className={cn('tablet:px-8 laptop:px-16 bg-[#F5F5F7] px-4 py-6', {\n 'p-4': profileOpen,\n })}\n >\n <button\n className=\"flex w-full cursor-pointer items-center justify-between border-0 bg-transparent\"\n onClick={() => setProfileOpen(!profileOpen)}\n aria-expanded={profileOpen}\n aria-label={profile?.nick_name || profileAction?.welcome}\n >\n <div className=\"flex items-center gap-[14px]\">\n <div className=\"flex size-[40px] shrink-0 items-center justify-center rounded-full bg-white\">\n <User aria-hidden=\"true\" />\n </div>\n <Text html={profile?.nick_name || profileAction?.welcome} className=\"text-base font-bold leading-[1.4]\" />\n </div>\n {!profile?.email && (\n <DownArrow aria-hidden=\"true\" className={cn('laptop:size-4 size-5', { 'rotate-180': profileOpen })} />\n )}\n </button>\n {profile?.email && (\n <nav className=\"mt-4\" role=\"navigation\" aria-label=\"Profile menu\">\n {profileAction?.profiles?.map((item: any) => (\n <MenuItem key={item.id} label={item?.title} href={getLocalizedPath(item?.url, locale)} />\n ))}\n </nav>\n )}\n {profileOpen && !profile?.email && (\n <div className=\"mt-4\">\n <Text html={profileAction?.benefits_title} className=\"text-sm font-bold leading-[1.4]\" />\n <div className=\"mt-2 flex flex-col gap-1\">\n {profileAction?.benefits?.map((item: any) => (\n <div key={item.id} className=\"flex items-center gap-[6px]\">\n <Picture source={item.benefitIcon?.url} className=\"size-4\" alt={item.benefit} width={16} height={16} />\n <Text html={item.benefit} className=\"text-sm font-bold leading-[1.4]\" />\n </div>\n ))}\n </div>\n </div>\n )}\n {!profile?.email && (\n <div className=\"mt-4 flex items-center gap-3\">\n <Button className=\"tablet:flex-none flex-1\" variant=\"secondary\" size=\"base\" onClick={() => event?.join?.()}>\n <Text html={profileAction?.primaryButton || 'Join Now'} className=\"text-sm font-bold leading-[1.4]\" />\n </Button>\n <Button className=\"tablet:flex-none flex-1\" variant=\"primary\" size=\"base\" onClick={() => event?.login?.()}>\n <Text html={profileAction?.secondaryButton || 'Log In'} className=\"text-sm font-bold leading-[1.4]\" />\n </Button>\n </div>\n )}\n </div>\n )\n}\n\nconst PrimaryHeader = ({ menuOpen, onMenuOpenClose, onMenuOpenClick, actions }: MobilePrimaryNavigationData) => {\n return (\n <div className=\"flex h-full items-center justify-between gap-4\">\n <Logo />\n <div className=\"desktop:gap-6 flex items-center gap-4\">\n <Actions actions={actions} />\n {menuOpen ? (\n <button\n className=\"cursor-pointer border-0 bg-transparent p-0\"\n onClick={() => onMenuOpenClose()}\n aria-label=\"Close menu\"\n aria-expanded=\"true\"\n >\n <Close className=\"size-5\" aria-hidden=\"true\" />\n </button>\n ) : (\n <button\n className=\"cursor-pointer border-0 bg-transparent p-0\"\n onClick={() => onMenuOpenClick()}\n aria-label=\"Open menu\"\n aria-expanded=\"false\"\n aria-haspopup=\"true\"\n >\n <Menu className=\"size-5\" aria-hidden=\"true\" />\n </button>\n )}\n </div>\n </div>\n )\n}\n\nconst Logo = () => {\n const { payloadData, isMobile } = useNavContext()\n const { locale = 'us' } = useAiuiContext()\n return (\n <a\n href={getLocalizedPath('/', locale)}\n className=\"hover:text-brand-0 [&>svg]:w-full\"\n aria-label=\"Home\"\n dangerouslySetInnerHTML={{\n __html: isMobile ? payloadData?.bar?.mobileLogo : payloadData?.bar?.desktopLogo,\n }}\n />\n )\n}\n\nconst Actions = forwardRef<HTMLButtonElement, { actions: any; activeStatus?: boolean }>(\n ({ actions, activeStatus = false }, ref) => {\n const { event, cartCount } = useNavContext()\n const [activeAction, setActiveAction] = useState<any>(null)\n\n const getActionLabel = (blockType: string) => {\n switch (blockType) {\n case HeaderNavigationActionBlockType.Search:\n return 'Search'\n case HeaderNavigationActionBlockType.Cart:\n return `Shopping cart${cartCount > 0 ? ` (${cartCount} items)` : ''}`\n case HeaderNavigationActionBlockType.Profile:\n return 'User profile'\n case HeaderNavigationActionBlockType.Livestream:\n return 'Livestream'\n default:\n return 'Action'\n }\n }\n\n const handleActionClick = useCallback(\n (action: any, index: number) => {\n setActiveAction(index)\n switch (action?.blockType) {\n case HeaderNavigationActionBlockType.Search:\n event?.search?.()\n break\n case HeaderNavigationActionBlockType.Cart:\n event?.cart?.()\n break\n case HeaderNavigationActionBlockType.Profile:\n event?.profile?.()\n break\n case HeaderNavigationActionBlockType.Livestream:\n event?.livestream?.()\n break\n default:\n return () => {}\n }\n },\n [event]\n )\n\n return (\n <div className=\"desktop:gap-6 flex items-center gap-4\">\n {Array.isArray(actions) &&\n actions?.map((action: any, index: number) => (\n <button\n className=\"relative cursor-pointer border-0 bg-transparent p-0\"\n key={action.id}\n ref={action.blockType === HeaderNavigationActionBlockType.Profile ? ref : null}\n onClick={() => handleActionClick(action, index)}\n aria-label={getActionLabel(action.blockType)}\n aria-pressed={activeStatus && activeAction === index}\n >\n <Text\n html={action.icon}\n className={cn('size-5', { 'text-brand-0': activeStatus && activeAction === index })}\n aria-hidden=\"true\"\n />\n {action.blockType === HeaderNavigationActionBlockType.Cart && cartCount > 0 && (\n <div\n className=\"bg-brand-0 absolute right-[-12px] top-[calc(100%-16px)] z-[1] flex min-h-5 min-w-5 items-center justify-center rounded-full px-[2px]\"\n aria-hidden=\"true\"\n >\n <Text html={cartCount?.toString()} className=\"text-sm font-bold leading-[1.2] text-white\" />\n </div>\n )}\n </button>\n ))}\n </div>\n )\n }\n)\n\nconst SecondaryHeader = ({ title, onMenuOpenClose, onMenuBackClick }: MobileSecondaryNavigationData) => {\n return (\n <div className=\"flex h-full items-center gap-3\">\n <button\n className=\"cursor-pointer border-0 bg-transparent p-0\"\n onClick={() => onMenuBackClick()}\n aria-label=\"Back to previous menu\"\n >\n <LeftArrow className=\"size-5\" aria-hidden=\"true\" />\n </button>\n <Text html={title} className=\"flex-1 text-center text-base font-bold leading-[1.4]\" />\n <button\n className=\"cursor-pointer border-0 bg-transparent p-0\"\n onClick={() => onMenuOpenClose()}\n aria-label=\"Close menu\"\n >\n <Close className=\"size-5\" aria-hidden=\"true\" />\n </button>\n </div>\n )\n}\n\nMobileNavigation.displayName = 'MobileNavigation'\nActions.displayName = 'Actions'\nHeaderNavigation.displayName = 'HeaderNavigation'\nDesktopNavigation.displayName = 'DesktopNavigation'\n\nexport default withLayout(HeaderNavigation)\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["'use client'\nimport React, { forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react'\n\nimport { Picture, Text, Button, Container, BrandStrip } from '../../components/index.js'\n\nimport { withLayout } from '../../shared/Styles.js'\n\nimport { cn, getLocalizedPath } from '../../helpers/utils.js'\n\nimport type {\n MobilePrimaryNavigationData,\n MobileSecondaryNavigationData,\n MobileNavigationProps,\n DesktopNavigationProps,\n HeaderNavigationProps,\n} from './types.js'\nimport NavProvider, { useNavContext } from './NavProvider.js'\n\nimport { HeaderNavigationMenu, HeaderNavigationBlockType, HeaderNavigationActionBlockType } from './types.js'\n\nimport jump from 'jump.js'\n\nimport { useGSAP } from '@gsap/react'\nimport { gsap } from 'gsap'\n\nimport { WithSidebar, WithSupports, WithMulticol, WithGroupCategory, WithResource } from './withCategory.js'\n\nimport { Menu, Close, User, LeftArrow, DownArrow, Polygon } from './icons/index.js'\n\nimport NavigationSearch from '../NavigationSearch/index.js'\nimport { ResourceSidebarDropdown } from './ResourceSidebarDropdown.js'\nimport { MobileResourceSidebarMenu } from './MobileResourceSidebarMenu.js'\nimport { SidebarDropdown } from './SidebarDropdown.js'\nimport { useScrollLock } from './useScrollLock.js'\nimport { MulticolDropdown } from './MulticolDropdown.js'\nimport { SupportsDropdown } from './SupportsDropdown.js'\nimport { MobileSidebarMenu } from './MobileSidebarMenu.js'\nimport { MobileSupportMenu } from './MobileSupportMenu.js'\nimport { MobileMulticolMenu } from './MobileMulticolMenu.js'\nimport { MenuItem } from './MobileMenuComponents.js'\nimport { useAiuiContext } from '../AiuiProvider/index.js'\nimport throttle from '../../shared/throttle.js'\n\nconst HeaderNavigation = forwardRef<HTMLDivElement, HeaderNavigationProps>((props, ref) => {\n const {\n data: { header } = {},\n buildProps,\n event,\n profile,\n theme = 'light',\n isTop = false,\n searchResult,\n onSearch,\n isSearching,\n keywords,\n onPrimaryNavClick,\n onSeriesProductClick,\n onSidebarNavClick,\n onMobileMenuToggle,\n headerId,\n cartCount,\n menuData,\n render,\n componentOverrides,\n ...rest\n } = props\n\n const [searchOpen, setSearchOpen] = useState(false)\n const [headerHidden, setHeaderHidden] = useState(false)\n const [changeHeaderBackground, setChangeHeaderBackground] = useState(false)\n const [isMobile, setIsMobile] = useState(false)\n const searchRef = useRef<HTMLDivElement>(null)\n\n const headerRef = useRef<HTMLDivElement>(null)\n\n const resizeWindow = () => {\n const offsetWidth = document?.querySelector('body')?.offsetWidth || 0\n setIsMobile(offsetWidth <= 1440)\n }\n\n useEffect(() => {\n resizeWindow()\n window.addEventListener('resize', resizeWindow)\n return () => {\n window.removeEventListener('resize', resizeWindow)\n }\n }, [])\n\n useImperativeHandle(ref, () => headerRef.current as HTMLDivElement)\n\n useEffect(() => {\n if (headerRef.current && isTop) {\n jump(headerRef.current, { duration: 0, offset: headerRef.current?.getBoundingClientRect()?.bottom || 0 })\n }\n }, [isTop])\n\n useEffect(() => {\n // \u5982\u679C isTop \u4E3A true\uFF0C\u4E0D\u9700\u8981\u6EDA\u52A8\u76D1\u542C\u548C\u52A8\u6548\n if (isTop) {\n setHeaderHidden(false)\n setChangeHeaderBackground(false)\n return\n }\n\n let lastScrollY = 0\n let upwardDistance = 0\n let downwardDistance = 0\n\n const getScrollTop = () => {\n return document?.documentElement?.scrollTop || document?.body?.scrollTop || 0\n }\n\n // \u521D\u59CB\u5316\u72B6\u6001\n const initialScrollTop = getScrollTop()\n lastScrollY = initialScrollTop\n setHeaderHidden(initialScrollTop > 300)\n setChangeHeaderBackground(initialScrollTop > 30)\n\n const handleScroll = throttle(() => {\n const currentScrollY = getScrollTop()\n const delta = currentScrollY - lastScrollY\n\n // \u66F4\u65B0\u80CC\u666F\u72B6\u6001\n setChangeHeaderBackground(currentScrollY > 30)\n\n if (delta > 0) {\n // \u5411\u4E0B\u6EDA\u52A8\n upwardDistance = 0 // \u91CD\u7F6E\u5411\u4E0A\u7D2F\u8BA1\n downwardDistance += delta\n\n if (downwardDistance >= 300 && currentScrollY > 300) {\n setHeaderHidden(true)\n }\n } else if (delta < 0) {\n // \u5411\u4E0A\u6EDA\u52A8\n downwardDistance = 0 // \u91CD\u7F6E\u5411\u4E0B\u7D2F\u8BA1\n upwardDistance += Math.abs(delta)\n\n if (upwardDistance >= 300) {\n setHeaderHidden(false)\n upwardDistance = 0\n }\n }\n\n lastScrollY = currentScrollY\n }, 100)\n\n window.addEventListener('scroll', handleScroll, { passive: true })\n return () => window.removeEventListener('scroll', handleScroll)\n }, [isTop])\n\n useEffect(() => {\n if (event) {\n event.search = () => setSearchOpen(true)\n }\n }, [event])\n\n useGSAP(() => {\n if (searchRef?.current && searchOpen) {\n gsap.fromTo(\n searchRef.current,\n {\n height: 0,\n },\n {\n height: 'auto',\n duration: 0.3,\n }\n )\n }\n }, [searchOpen])\n\n useScrollLock(searchOpen)\n\n const searchPage = useMemo(() => {\n return (\n header?.bar?.actions?.find((item: any) => item?.blockType === HeaderNavigationActionBlockType.Search)\n ?.searchBar?.[0] || {}\n )\n }, [header])\n\n const CustomMobileHeaderNavigation = render?.mobileHeaderNavigation\n\n return (\n <NavProvider\n buildProps={buildProps}\n profile={profile}\n isMobile={isMobile}\n event={event}\n payloadData={header}\n onSidebarNavClick={onSidebarNavClick}\n onSeriesProductClick={onSeriesProductClick}\n cartCount={cartCount}\n componentOverrides={componentOverrides}\n >\n <header\n {...rest}\n id={headerId || 'header'}\n data-ui-component-id=\"HeaderNavigation\"\n className={\n isTop\n ? 'relative z-[100] bg-white'\n : cn('sticky top-0 z-[100] transition-transform duration-500 ease-in-out', {\n ['translate-y-[-100%]']: headerHidden,\n })\n }\n // className=\"relative z-[100] bg-white\"\n ref={headerRef}\n >\n <div\n className={cn(\n 'hover:bg-white hover:text-black',\n theme === 'light' ? 'text-black' : 'text-white',\n {\n ['!bg-white transition-all duration-500 ease-in-out']: !isTop && changeHeaderBackground,\n },\n {\n ['hover:!text-black']: theme === 'dark',\n ['!text-black']: !isTop && changeHeaderBackground,\n }\n )}\n onClick={() => !isTop && setChangeHeaderBackground(true)}\n >\n <DesktopNavigation\n data={header}\n className=\"desktop:block hidden !bg-white\"\n theme={theme}\n onNavItemClick={() => !isTop && setChangeHeaderBackground(true)}\n onPrimaryNavClick={onPrimaryNavClick}\n />\n {CustomMobileHeaderNavigation ? (\n <CustomMobileHeaderNavigation\n className=\"desktop:hidden block !bg-white\"\n menuData={menuData}\n data={header}\n onPrimaryNavClick={onPrimaryNavClick}\n />\n ) : (\n <MobileNavigation\n menuData={menuData}\n data={header}\n className=\"desktop:hidden block !bg-white\"\n onPrimaryNavClick={onPrimaryNavClick}\n onMobileMenuToggle={onMobileMenuToggle}\n />\n )}\n {searchOpen && (\n <div\n className=\"absolute left-0 top-0 z-[60] flex w-full flex-col bg-black/70\"\n style={{ height: `calc(100dvh - ${headerRef?.current?.getBoundingClientRect()?.top}px)` }}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label=\"Search\"\n >\n <div ref={searchRef} className={cn('overflow-y-auto', {})}>\n <NavigationSearch\n data={searchPage}\n keywords={keywords}\n isSearching={isSearching}\n searchResult={searchResult}\n onSearch={(value: string) => {\n onSearch?.(value)\n }}\n onClose={() => {\n onSearch?.()\n setSearchOpen(false)\n }}\n />\n </div>\n <div\n className=\"flex-1 bg-transparent\"\n onClick={() => setSearchOpen(false)}\n role=\"button\"\n tabIndex={0}\n aria-label=\"Close search\"\n onKeyDown={e => {\n if (e.key === 'Enter' || e.key === ' ' || e.key === 'Escape') {\n e.preventDefault()\n setSearchOpen(false)\n }\n }}\n />\n </div>\n )}\n </div>\n </header>\n </NavProvider>\n )\n})\n\nconst DesktopNavigation = forwardRef<HTMLDivElement, DesktopNavigationProps>((props, ref) => {\n const { data, onNavItemClick, className, theme, onPrimaryNavClick } = props\n const { event, profile } = useNavContext()\n const [downdownHover, setDowndownHover] = useState(false)\n const { locale = 'us' } = useAiuiContext()\n\n const groupCategories = useMemo(() => {\n return WithGroupCategory(data?.categories?.filter((item: any) => item?.pcShow)) as any[][]\n }, [data])\n\n const [categoriesItem, setCategoriesItem] = useState<any>(null)\n const [navStatusArray, setNavStatusArray] = useState<{ index: number; groupIndex: number; open: boolean }[][]>([])\n const profileRef = useRef<HTMLButtonElement>(null)\n const [userProfileOpen, setUserProfileOpen] = useState(false)\n const headerRef = useRef<HTMLDivElement>(null)\n const dropdownRef = useRef<HTMLDivElement>(null)\n const navItemRefs = useRef<HTMLDivElement[][]>(\n groupCategories.map((categories: any) => Array(categories?.length || 0).fill(null))\n )\n\n useEffect(() => {\n if (groupCategories?.length) {\n setNavStatusArray(\n groupCategories?.map((groupItem: any, groupIndex: number) => {\n return groupItem?.map((_: any, index: number) => ({ groupIndex, index, open: false }))\n })\n )\n }\n }, [groupCategories])\n\n const currentNavItem = useMemo(() => {\n let currentNavItem: { index: number; groupIndex: number; open: boolean } | null = null\n for (const groupItem of navStatusArray) {\n for (const item of groupItem) {\n if (item.open) {\n currentNavItem = item\n break\n }\n }\n if (currentNavItem) break\n }\n return currentNavItem\n }, [navStatusArray])\n\n useScrollLock(!!currentNavItem?.open || userProfileOpen)\n\n const handleNavItemClick = (e: any, groupIndex: number, index: number) => {\n setUserProfileOpen(false)\n // if (categoriesItem?.components?.[0]?.blockType === HeaderNavigationBlockType.Links) {\n const currentCategoriesItem = groupCategories[groupIndex][index]\n if (currentCategoriesItem?.components?.[0]?.blockType === HeaderNavigationBlockType.Links) {\n // link\u6A21\u5757\u7279\u6B8A\u5904\u7406\n // categoriesItem?.components?.[0]?.url && window.open(categoriesItem?.components?.[0]?.url)\n currentCategoriesItem?.components?.[0]?.url &&\n window.open(\n currentCategoriesItem?.components?.[0]?.url,\n currentCategoriesItem?.components?.[0]?.target ?? '_blank'\n )\n } else {\n const categories = groupCategories?.flat() || []\n const position = categories?.findIndex(item => item?.id === groupCategories[groupIndex][index]?.id)\n e.stopPropagation()\n onNavItemClick?.()\n onPrimaryNavClick?.(categories[position], position)\n // setCategoriesItem(groupCategories[groupIndex][index])\n setCategoriesItem(currentCategoriesItem)\n setNavStatusArray(prev =>\n prev.map(groupItem =>\n groupItem.map(item =>\n item.groupIndex === groupIndex && item.index === index\n ? { ...item, open: !item.open }\n : { ...item, open: false }\n )\n )\n )\n }\n }\n\n const handleNavItemKeyDown = (e: React.KeyboardEvent, groupIndex: number, index: number) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n handleNavItemClick(e, groupIndex, index)\n } else if (e.key === 'Escape' && currentNavItem?.groupIndex === groupIndex && currentNavItem?.index === index) {\n e.preventDefault()\n handleNavMenuClose()\n }\n }\n\n const handleNavMenuClose = () => {\n setNavStatusArray(prev => prev.map(groupItem => groupItem.map(item => ({ ...item, open: false }))))\n }\n\n const currentBlockTypeCategories = useMemo(() => {\n if (categoriesItem) return categoriesItem?.components?.[0]?.blockType\n }, [categoriesItem])\n\n const SidebarDropdownComp = WithSidebar(SidebarDropdown, categoriesItem)\n const ResourceSidebarDropdownComp = WithResource(ResourceSidebarDropdown, categoriesItem)\n const MulticolDropdownComp = WithMulticol(MulticolDropdown, categoriesItem)\n const SupportsDropdownComp = WithSupports(SupportsDropdown, {\n categoriesItem,\n currentNavItemRef: navItemRefs.current?.[currentNavItem?.groupIndex || 0]?.[currentNavItem?.index || 0],\n })\n\n const DropdownComp = useMemo(() => {\n switch (currentBlockTypeCategories) {\n case HeaderNavigationBlockType.Sidebar:\n return <SidebarDropdownComp />\n case HeaderNavigationBlockType.Resource:\n return <ResourceSidebarDropdownComp />\n case HeaderNavigationBlockType.Supports:\n return <SupportsDropdownComp />\n case HeaderNavigationBlockType.Multicol:\n return <MulticolDropdownComp />\n default:\n return null\n }\n }, [currentBlockTypeCategories, categoriesItem])\n\n const actions = useMemo(() => {\n return data?.bar?.actions?.filter((item: any) => item?.pcShow)\n }, [data])\n\n const profileAction = useMemo(() => {\n return actions?.find((item: any) => item?.blockType === HeaderNavigationActionBlockType.Profile)\n }, [actions])\n\n const handleProfileClick = useCallback(() => {\n setUserProfileOpen(prev => !prev)\n }, [])\n\n useEffect(() => {\n if (profileRef?.current) {\n const profileRefElement = profileRef.current as HTMLButtonElement\n profileRefElement.addEventListener('click', handleProfileClick)\n\n return () => {\n profileRefElement.removeEventListener('click', handleProfileClick)\n }\n }\n }, [handleProfileClick])\n\n useGSAP(() => {\n if (currentNavItem?.open) {\n gsap.fromTo(\n dropdownRef?.current,\n {\n height: 0,\n },\n {\n height: 'auto',\n }\n )\n }\n }, [currentNavItem?.open])\n\n return (\n <Container className={cn('relative h-[96px]', className)}>\n <div ref={headerRef} onClick={handleNavMenuClose} className=\"flex h-full flex-col justify-end gap-4\">\n <div className=\"flex items-center justify-between\">\n <Logo />\n <Actions ref={profileRef} actions={actions} activeStatus={userProfileOpen} />\n </div>\n <nav className=\"flex justify-between\" role=\"navigation\" aria-label=\"Primary navigation\">\n {groupCategories?.map((groupItem: any, groupIndex: number) => {\n return (\n <div key={`groupCategory-${groupIndex}`} className=\"flex gap-3\">\n {groupItem?.map((item: any, index: number) => {\n const isExpanded = currentNavItem?.groupIndex === groupIndex && currentNavItem?.index === index\n return (\n <div\n key={item.id}\n ref={(el: HTMLDivElement) => {\n navItemRefs.current[groupIndex][index] = el\n }}\n className=\"group\"\n >\n <div className=\"relative\">\n <button\n className=\"flex cursor-pointer items-center gap-1 border-0 bg-transparent pb-4\"\n onClick={e => handleNavItemClick(e, groupIndex, index)}\n onKeyDown={e => handleNavItemKeyDown(e, groupIndex, index)}\n aria-expanded={isExpanded}\n aria-haspopup=\"true\"\n aria-label={item.text}\n >\n <Text html={item.text} className=\"text-sm font-bold leading-[1.4]\" />\n {/* <DownArrow\n aria-hidden=\"true\"\n className={cn('size-4 opacity-0 transition-opacity duration-500 group-hover:opacity-100', {\n ['rotate-180']: isExpanded,\n ['opacity-100']: downdownHover && isExpanded,\n })}\n /> */}\n <DownArrow\n className={cn('size-4 opacity-0 transition-opacity duration-500 group-hover:opacity-100', {\n ['rotate-180']:\n currentNavItem?.groupIndex === groupIndex && currentNavItem?.index === index,\n ['opacity-100']:\n downdownHover &&\n currentNavItem?.groupIndex === groupIndex &&\n currentNavItem?.index === index,\n ['invisible']:\n !item?.components?.length ||\n item?.components?.[0]?.blockType === HeaderNavigationBlockType.Links,\n })}\n />\n </button>\n <div\n className={cn(\n 'absolute bottom-0 left-0 h-[2px] w-0 transition-all duration-500',\n {\n 'w-[calc(100%-20px)]': isExpanded,\n },\n theme === 'dark' ? 'bg-white' : 'bg-[#080A0F]'\n )}\n aria-hidden=\"true\"\n />\n </div>\n </div>\n )\n })}\n </div>\n )\n })}\n </nav>\n </div>\n <div\n role=\"menu\"\n aria-hidden={!(currentNavItem?.open && categoriesItem)}\n className={cn(\n 'absolute left-0 top-full z-[999] flex w-full flex-col overflow-hidden border-t border-b-[#E4E5E6] bg-black/70 text-black',\n {\n hidden: !(currentNavItem?.open && categoriesItem),\n }\n )}\n onMouseEnter={() => setDowndownHover(true)}\n onMouseLeave={() => setDowndownHover(false)}\n style={{ height: `calc(100dvh - ${headerRef?.current?.getBoundingClientRect()?.bottom}px)` }}\n >\n <div\n ref={dropdownRef}\n className={cn('relative z-50', {\n 'overflow-hidden': currentBlockTypeCategories !== HeaderNavigationBlockType.Supports,\n })}\n >\n {DropdownComp}\n </div>\n <div\n className=\"flex-1 bg-transparent\"\n onClick={handleNavMenuClose}\n role=\"button\"\n tabIndex={0}\n aria-label=\"Close menu\"\n onKeyDown={e => {\n if (e.key === 'Enter' || e.key === ' ' || e.key === 'Escape') {\n e.preventDefault()\n handleNavMenuClose()\n }\n }}\n />\n </div>\n {userProfileOpen && (\n <div\n className=\"absolute left-0 top-full z-[999] flex h-dvh w-full bg-black/70\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label=\"User profile menu\"\n // style={{\n // height: `calc(100dvh - ${profileRef?.current?.getBoundingClientRect()?.bottom}px)`,\n // top: `calc(96px)`,\n // }}\n >\n <div\n className=\"rounded-box absolute w-[272px] overflow-hidden bg-white p-4\"\n style={{\n right: `calc(100% - ${profileRef?.current?.getBoundingClientRect()?.right}px)`,\n top: '-36px',\n }}\n >\n {profile?.email ? (\n <>\n <Text html={profile?.nick_name || profileAction?.welcome} className=\"text-sm font-bold\" />\n <div className=\"mt-2 h-px bg-[#D9D9D9]\" aria-hidden=\"true\" />\n <nav className=\"mt-2\" role=\"navigation\" aria-label=\"Profile navigation\">\n {profileAction?.profiles?.map((item: any) => (\n <MenuItem\n className=\"py-2\"\n key={item.id}\n label={item?.title}\n href={getLocalizedPath(item?.url, locale)}\n />\n ))}\n </nav>\n </>\n ) : (\n <>\n <Polygon className=\"absolute -top-2 right-[46px] z-30 text-white\" aria-hidden=\"true\" />\n <Text html={profileAction?.benefits_title} className=\"text-sm font-bold leading-[1.4]\" />\n <div className=\"mt-2 flex flex-col gap-1\">\n {profileAction?.benefits?.map((item: any) => (\n <div key={item.id} className=\"flex items-center gap-[6px]\">\n <Picture\n source={item.benefitIcon?.url}\n className=\"size-4 shrink-0\"\n alt={item.benefit}\n width={16}\n height={16}\n />\n <Text html={item.benefit} className=\"text-sm font-bold leading-[1.4]\" />\n </div>\n ))}\n </div>\n <div className=\"mt-4 flex flex-wrap gap-2\">\n <Button className=\"grow\" variant=\"secondary\" size=\"lg\" onClick={() => event?.join?.()}>\n <Text html={profileAction?.primaryButton || 'Join Now'} className=\"font-bold\" />\n </Button>\n <Button className=\"grow\" variant=\"primary\" size=\"lg\" onClick={() => event?.login?.()}>\n <Text html={profileAction?.secondaryButton || 'Log In'} className=\"font-bold\" />\n </Button>\n </div>\n </>\n )}\n </div>\n <div\n className=\"flex-1 bg-transparent\"\n onClick={() => setUserProfileOpen(false)}\n role=\"button\"\n tabIndex={0}\n aria-label=\"Close profile menu\"\n onKeyDown={e => {\n if (e.key === 'Enter' || e.key === ' ' || e.key === 'Escape') {\n e.preventDefault()\n setUserProfileOpen(false)\n }\n }}\n />\n </div>\n )}\n </Container>\n )\n})\n\nconst MobileNavigation = forwardRef<HTMLDivElement, MobileNavigationProps>(\n ({ data, menuData, className, onPrimaryNavClick, onMobileMenuToggle }, ref) => {\n const groupCategories = useMemo(() => {\n return WithGroupCategory(data?.categories?.filter((item: any) => item?.mobileShow))\n }, [data])\n\n const { currentMenu, setCurrentMenu, subSubCategory } = useNavContext()\n const [mobileMenuOpen, setMobileMenuOpen] = useState(false)\n const [menuInnerHeight, setMenuInnerHeight] = useState(0)\n const [categoriesItem, setCategoriesItem] = useState<any>(null)\n\n const mobileMenuRef = useRef<HTMLDivElement>(null)\n // resize \u89E6\u53D1\u7684\u9AD8\u5EA6\u66F4\u65B0\u53EA\u9700\u76F4\u63A5\u540C\u6B65\uFF0C\u4E0D\u9700\u8981\u91CD\u653E\u5C55\u5F00\u52A8\u753B\n const skipOpenAnimationRef = useRef(false)\n\n useEffect(() => {\n if (mobileMenuRef?.current && mobileMenuOpen) {\n const rect = mobileMenuRef?.current?.getBoundingClientRect()\n setMenuInnerHeight(window?.innerHeight - (rect?.top || 0))\n }\n\n onMobileMenuToggle?.({ open: mobileMenuOpen })\n }, [mobileMenuOpen, onMobileMenuToggle])\n\n // \u79FB\u52A8\u7AEF\u83DC\u5355\u5C55\u5F00\u65F6\uFF0C\u76D1\u542C\u7A97\u53E3\u5C3A\u5BF8\u53D8\u5316\uFF0C\u9632\u6B62\u7528\u6237\u8C03\u6574\u6D4F\u89C8\u5668\u7A97\u53E3\u5927\u5C0F\u540E\u83DC\u5355\u9AD8\u5EA6\u4E0D\u540C\u6B65\n useEffect(() => {\n if (!mobileMenuOpen) return\n\n const handleResize = throttle(() => {\n if (mobileMenuRef?.current) {\n const rect = mobileMenuRef.current.getBoundingClientRect()\n skipOpenAnimationRef.current = true\n setMenuInnerHeight(window?.innerHeight - (rect?.top || 0))\n }\n }, 100)\n\n window.addEventListener('resize', handleResize)\n return () => window.removeEventListener('resize', handleResize)\n }, [mobileMenuOpen])\n\n useGSAP(() => {\n if (skipOpenAnimationRef.current) {\n // resize \u5F15\u8D77\u7684\u9AD8\u5EA6\u53D8\u5316\uFF1A\u76F4\u63A5\u540C\u6B65\u9AD8\u5EA6\uFF0C\u4E0D\u64AD\u653E\u5C55\u5F00\u52A8\u753B\n gsap.set(mobileMenuRef.current, { height: menuInnerHeight })\n skipOpenAnimationRef.current = false\n return\n }\n\n gsap.fromTo(\n mobileMenuRef.current,\n {\n height: 0,\n },\n {\n height: menuInnerHeight,\n duration: 0.3,\n }\n )\n }, [menuInnerHeight])\n\n useScrollLock(mobileMenuOpen)\n\n const currentBlockTypeCategories = useMemo(() => {\n return categoriesItem?.components?.[0]?.blockType\n }, [categoriesItem])\n\n const MobileSupportMenuComp = WithSupports(MobileSupportMenu, {\n categoriesItem,\n })\n\n const MobileSidebarMenuComp = WithSidebar(MobileSidebarMenu, categoriesItem)\n const MobileResourceSidebarMenuComp = WithResource(MobileResourceSidebarMenu, categoriesItem)\n const MobileMulticolMenuComp = WithMulticol(MobileMulticolMenu, categoriesItem)\n\n const MobileCategoriesMenuComp = useMemo(() => {\n switch (currentBlockTypeCategories) {\n case HeaderNavigationBlockType.Sidebar:\n return <MobileSidebarMenuComp />\n case HeaderNavigationBlockType.Resource:\n return <MobileResourceSidebarMenuComp />\n case HeaderNavigationBlockType.Supports:\n return <MobileSupportMenuComp />\n case HeaderNavigationBlockType.Multicol:\n return <MobileMulticolMenuComp />\n default:\n return null\n }\n }, [currentBlockTypeCategories, categoriesItem, MobileSupportMenuComp])\n\n const handleSecondaryMenuClose = useCallback(() => {\n setMobileMenuOpen(false)\n setMenuInnerHeight(0)\n setCurrentMenu && setCurrentMenu(HeaderNavigationMenu.Primary)\n }, [setMobileMenuOpen, setMenuInnerHeight, setCurrentMenu])\n\n const menuActions = useMemo(() => {\n return data?.bar?.actions?.filter(\n (item: any) => item?.mobileShow && item?.blockType !== HeaderNavigationActionBlockType.Profile // \u79FB\u52A8\u7AEF\u4E0D\u663E\u793Aprofile\u6309\u94AE\n )\n }, [data])\n\n const profileAction = useMemo(() => {\n return (\n data?.bar?.actions?.find(\n (item: any) => item?.mobileShow && item?.blockType === HeaderNavigationActionBlockType.Profile\n ) || {}\n )\n }, [data])\n\n const MobileCategoriesHeaderComp = useMemo(() => {\n switch (currentMenu) {\n case HeaderNavigationMenu.Primary:\n return (\n <PrimaryHeader\n actions={menuActions}\n menuOpen={mobileMenuOpen}\n onMenuOpenClose={() => {\n setMobileMenuOpen(false)\n setMenuInnerHeight(0)\n }}\n onMenuOpenClick={() => setMobileMenuOpen(true)}\n />\n )\n case HeaderNavigationMenu.Secondary:\n return (\n <SecondaryHeader\n title={categoriesItem?.text}\n onMenuOpenClose={handleSecondaryMenuClose}\n onMenuBackClick={() => setCurrentMenu?.(HeaderNavigationMenu.Primary)}\n />\n )\n case HeaderNavigationMenu.Third:\n return (\n <SecondaryHeader\n title={subSubCategory?.label}\n onMenuOpenClose={handleSecondaryMenuClose}\n onMenuBackClick={() => setCurrentMenu?.(HeaderNavigationMenu.Secondary)}\n />\n )\n default:\n return null\n }\n }, [\n mobileMenuOpen,\n currentMenu,\n setCurrentMenu,\n categoriesItem,\n menuActions,\n subSubCategory,\n handleSecondaryMenuClose,\n ])\n\n const handlePrimaryMenuClick = useCallback(\n (groupIndex: number, index: number) => {\n const categoriesItem = Array.isArray(groupCategories)\n ? Array.isArray(groupCategories[groupIndex])\n ? // @ts-ignore\n groupCategories[groupIndex][index]\n : {}\n : {}\n setCategoriesItem(categoriesItem)\n if (categoriesItem?.components?.[0]?.blockType === HeaderNavigationBlockType.Links) {\n // link\u6A21\u5757\u7279\u6B8A\u5904\u7406\n categoriesItem?.components?.[0]?.url &&\n window.open(categoriesItem?.components?.[0]?.url, categoriesItem?.components?.[0]?.target ?? '_blank')\n } else {\n setCurrentMenu?.(HeaderNavigationMenu.Secondary)\n }\n },\n [groupCategories, setCurrentMenu]\n )\n\n return (\n <Container className={cn('relative h-[52px]', className)}>\n {/* \u79FB\u52A8\u7AEF\u5206\u7C7B\u83DC\u5355 */}\n {MobileCategoriesHeaderComp}\n {mobileMenuOpen && (\n <nav\n ref={mobileMenuRef}\n className=\"absolute left-0 top-full z-[999] w-full overflow-y-auto border-t border-[#E4E5E6] bg-white text-black\"\n style={{ height: menuInnerHeight }}\n role=\"navigation\"\n aria-label=\"Mobile navigation menu\"\n >\n {currentMenu === HeaderNavigationMenu.Primary && menuData ? (\n <div className=\"pt-4\">\n <BrandStrip data={menuData} />\n </div>\n ) : null}\n {currentMenu === HeaderNavigationMenu.Primary ? (\n <MobilePrimaryMenu\n categories={groupCategories}\n onPrimaryMenuClick={handlePrimaryMenuClick}\n onPrimaryNavClick={onPrimaryNavClick}\n profileAction={profileAction}\n />\n ) : (\n MobileCategoriesMenuComp\n )}\n </nav>\n )}\n </Container>\n )\n }\n)\n\n/**\n * \u79FB\u52A8\u7AEF\u4E00\u7EA7\u83DC\u5355\n * @param categories \u5206\u7C7B\n * @param onPrimaryMenuClick \u4E00\u7EA7\u83DC\u5355\u70B9\u51FB\n */\nconst MobilePrimaryMenu = ({\n categories,\n onPrimaryMenuClick,\n profileAction,\n onPrimaryNavClick,\n}: {\n categories: any\n onPrimaryMenuClick: (groupIndex: number, index: number) => void\n profileAction: any\n onPrimaryNavClick?: (category: any, position: number) => void\n}) => {\n return (\n <div className=\"flex h-full flex-col justify-between\">\n <div className=\"tablet:px-8 laptop:px-16 p-4\">\n {categories?.map((groupItem: any, groupIndex: number) => (\n <div key={`groupCategory-${groupIndex}`} className=\"\">\n <div className={cn('my-2 h-px w-full bg-[#E5E5E7]')} />\n {groupItem?.map((item: any, index: number) => (\n <MenuItem\n key={item.id}\n label={item.text}\n onClick={() => {\n const flatCategories = categories?.flat() || []\n const position = flatCategories?.findIndex(\n (item: any) => item?.id === categories[groupIndex][index]?.id\n )\n onPrimaryMenuClick(groupIndex, index)\n onPrimaryNavClick?.(item, position)\n }}\n icon={item.components?.[0]?.icon}\n />\n ))}\n </div>\n ))}\n </div>\n <ProfileComp profileAction={profileAction} />\n </div>\n )\n}\n\n/**\n * \u79FB\u52A8\u7AEF\u4FA7\u8FB9\u680F\u4E0B\u62C9\n * @param sidebarCategoriesMetadata \u4FA7\u8FB9\u680F\u5206\u7C7B\u5143\u6570\u636E\n * @param seriesMetadata \u4FA7\u8FB9\u680F\u7CFB\u5217\u5143\u6570\u636E\n */\nconst ProfileComp = ({ profileAction }: { profileAction: any }) => {\n const [profileOpen, setProfileOpen] = useState(false)\n const { profile, event } = useNavContext()\n const { locale = 'us' } = useAiuiContext()\n return (\n <div\n className={cn('tablet:px-8 laptop:px-16 bg-[#F5F5F7] px-4 py-6', {\n 'p-4': profileOpen,\n })}\n >\n <button\n className=\"flex w-full cursor-pointer items-center justify-between border-0 bg-transparent\"\n onClick={() => setProfileOpen(!profileOpen)}\n aria-expanded={profileOpen}\n aria-label={profile?.nick_name || profileAction?.welcome}\n >\n <div className=\"flex items-center gap-[14px]\">\n <div className=\"flex size-[40px] shrink-0 items-center justify-center rounded-full bg-white\">\n <User aria-hidden=\"true\" />\n </div>\n <Text html={profile?.nick_name || profileAction?.welcome} className=\"text-base font-bold leading-[1.4]\" />\n </div>\n {!profile?.email && (\n <DownArrow aria-hidden=\"true\" className={cn('laptop:size-4 size-5', { 'rotate-180': profileOpen })} />\n )}\n </button>\n {profile?.email && (\n <nav className=\"mt-4\" role=\"navigation\" aria-label=\"Profile menu\">\n {profileAction?.profiles?.map((item: any) => (\n <MenuItem key={item.id} label={item?.title} href={getLocalizedPath(item?.url, locale)} />\n ))}\n </nav>\n )}\n {profileOpen && !profile?.email && (\n <div className=\"mt-4\">\n <Text html={profileAction?.benefits_title} className=\"text-sm font-bold leading-[1.4]\" />\n <div className=\"mt-2 flex flex-col gap-1\">\n {profileAction?.benefits?.map((item: any) => (\n <div key={item.id} className=\"flex items-center gap-[6px]\">\n <Picture source={item.benefitIcon?.url} className=\"size-4\" alt={item.benefit} width={16} height={16} />\n <Text html={item.benefit} className=\"text-sm font-bold leading-[1.4]\" />\n </div>\n ))}\n </div>\n </div>\n )}\n {!profile?.email && (\n <div className=\"mt-4 flex items-center gap-3\">\n <Button className=\"tablet:flex-none flex-1\" variant=\"secondary\" size=\"base\" onClick={() => event?.join?.()}>\n <Text html={profileAction?.primaryButton || 'Join Now'} className=\"text-sm font-bold leading-[1.4]\" />\n </Button>\n <Button className=\"tablet:flex-none flex-1\" variant=\"primary\" size=\"base\" onClick={() => event?.login?.()}>\n <Text html={profileAction?.secondaryButton || 'Log In'} className=\"text-sm font-bold leading-[1.4]\" />\n </Button>\n </div>\n )}\n </div>\n )\n}\n\nconst PrimaryHeader = ({ menuOpen, onMenuOpenClose, onMenuOpenClick, actions }: MobilePrimaryNavigationData) => {\n return (\n <div className=\"flex h-full items-center justify-between gap-4\">\n <Logo />\n <div className=\"desktop:gap-6 flex items-center gap-4\">\n <Actions actions={actions} />\n {menuOpen ? (\n <button\n className=\"cursor-pointer border-0 bg-transparent p-0\"\n onClick={() => onMenuOpenClose()}\n aria-label=\"Close menu\"\n aria-expanded=\"true\"\n >\n <Close className=\"size-5\" aria-hidden=\"true\" />\n </button>\n ) : (\n <button\n className=\"cursor-pointer border-0 bg-transparent p-0\"\n onClick={() => onMenuOpenClick()}\n aria-label=\"Open menu\"\n aria-expanded=\"false\"\n aria-haspopup=\"true\"\n >\n <Menu className=\"size-5\" aria-hidden=\"true\" />\n </button>\n )}\n </div>\n </div>\n )\n}\n\nconst Logo = () => {\n const { payloadData, isMobile } = useNavContext()\n const { locale = 'us' } = useAiuiContext()\n return (\n <a\n href={getLocalizedPath('/', locale)}\n className=\"hover:text-brand-0 [&>svg]:w-full\"\n aria-label=\"Home\"\n dangerouslySetInnerHTML={{\n __html: isMobile ? payloadData?.bar?.mobileLogo : payloadData?.bar?.desktopLogo,\n }}\n />\n )\n}\n\nconst Actions = forwardRef<HTMLButtonElement, { actions: any; activeStatus?: boolean }>(\n ({ actions, activeStatus = false }, ref) => {\n const { event, cartCount } = useNavContext()\n const [activeAction, setActiveAction] = useState<any>(null)\n\n const getActionLabel = (blockType: string) => {\n switch (blockType) {\n case HeaderNavigationActionBlockType.Search:\n return 'Search'\n case HeaderNavigationActionBlockType.Cart:\n return `Shopping cart${cartCount > 0 ? ` (${cartCount} items)` : ''}`\n case HeaderNavigationActionBlockType.Profile:\n return 'User profile'\n case HeaderNavigationActionBlockType.Livestream:\n return 'Livestream'\n default:\n return 'Action'\n }\n }\n\n const handleActionClick = useCallback(\n (action: any, index: number) => {\n setActiveAction(index)\n switch (action?.blockType) {\n case HeaderNavigationActionBlockType.Search:\n event?.search?.()\n break\n case HeaderNavigationActionBlockType.Cart:\n event?.cart?.()\n break\n case HeaderNavigationActionBlockType.Profile:\n event?.profile?.()\n break\n case HeaderNavigationActionBlockType.Livestream:\n event?.livestream?.()\n break\n default:\n return () => {}\n }\n },\n [event]\n )\n\n return (\n <div className=\"desktop:gap-6 flex items-center gap-4\">\n {Array.isArray(actions) &&\n actions?.map((action: any, index: number) => (\n <button\n className=\"relative cursor-pointer border-0 bg-transparent p-0\"\n key={action.id}\n data-tag={action?.tag || ''}\n ref={action.blockType === HeaderNavigationActionBlockType.Profile ? ref : null}\n onClick={() => handleActionClick(action, index)}\n aria-label={getActionLabel(action.blockType)}\n aria-pressed={activeStatus && activeAction === index}\n >\n <Text\n html={action.icon}\n className={cn('size-5', { 'text-brand-0': activeStatus && activeAction === index })}\n aria-hidden=\"true\"\n />\n {action.blockType === HeaderNavigationActionBlockType.Cart && cartCount > 0 && (\n <div\n className=\"bg-brand-0 absolute right-[-12px] top-[calc(100%-16px)] z-[1] flex min-h-5 min-w-5 items-center justify-center rounded-full px-[2px]\"\n aria-hidden=\"true\"\n >\n <Text html={cartCount?.toString()} className=\"text-sm font-bold leading-[1.2] text-white\" />\n </div>\n )}\n </button>\n ))}\n </div>\n )\n }\n)\n\nconst SecondaryHeader = ({ title, onMenuOpenClose, onMenuBackClick }: MobileSecondaryNavigationData) => {\n return (\n <div className=\"flex h-full items-center gap-3\">\n <button\n className=\"cursor-pointer border-0 bg-transparent p-0\"\n onClick={() => onMenuBackClick()}\n aria-label=\"Back to previous menu\"\n >\n <LeftArrow className=\"size-5\" aria-hidden=\"true\" />\n </button>\n <Text html={title} className=\"flex-1 text-center text-base font-bold leading-[1.4]\" />\n <button\n className=\"cursor-pointer border-0 bg-transparent p-0\"\n onClick={() => onMenuOpenClose()}\n aria-label=\"Close menu\"\n >\n <Close className=\"size-5\" aria-hidden=\"true\" />\n </button>\n </div>\n )\n}\n\nMobileNavigation.displayName = 'MobileNavigation'\nActions.displayName = 'Actions'\nHeaderNavigation.displayName = 'HeaderNavigation'\nDesktopNavigation.displayName = 'DesktopNavigation'\n\nexport default withLayout(HeaderNavigation)\n"],
5
+ "mappings": "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",
6
6
  "names": ["Fragment", "jsx", "jsxs", "forwardRef", "useCallback", "useEffect", "useImperativeHandle", "useMemo", "useRef", "useState", "Picture", "Text", "Button", "Container", "BrandStrip", "withLayout", "cn", "getLocalizedPath", "NavProvider", "useNavContext", "HeaderNavigationMenu", "HeaderNavigationBlockType", "HeaderNavigationActionBlockType", "jump", "useGSAP", "gsap", "WithSidebar", "WithSupports", "WithMulticol", "WithGroupCategory", "WithResource", "Menu", "Close", "User", "LeftArrow", "DownArrow", "Polygon", "NavigationSearch", "ResourceSidebarDropdown", "MobileResourceSidebarMenu", "SidebarDropdown", "useScrollLock", "MulticolDropdown", "SupportsDropdown", "MobileSidebarMenu", "MobileSupportMenu", "MobileMulticolMenu", "MenuItem", "useAiuiContext", "throttle", "HeaderNavigation", "props", "ref", "header", "buildProps", "event", "profile", "theme", "isTop", "searchResult", "onSearch", "isSearching", "keywords", "onPrimaryNavClick", "onSeriesProductClick", "onSidebarNavClick", "onMobileMenuToggle", "headerId", "cartCount", "menuData", "render", "componentOverrides", "rest", "searchOpen", "setSearchOpen", "headerHidden", "setHeaderHidden", "changeHeaderBackground", "setChangeHeaderBackground", "isMobile", "setIsMobile", "searchRef", "headerRef", "resizeWindow", "offsetWidth", "lastScrollY", "upwardDistance", "downwardDistance", "getScrollTop", "initialScrollTop", "handleScroll", "currentScrollY", "delta", "searchPage", "item", "CustomMobileHeaderNavigation", "DesktopNavigation", "MobileNavigation", "value", "e", "data", "onNavItemClick", "className", "downdownHover", "setDowndownHover", "locale", "groupCategories", "categoriesItem", "setCategoriesItem", "navStatusArray", "setNavStatusArray", "profileRef", "userProfileOpen", "setUserProfileOpen", "dropdownRef", "navItemRefs", "categories", "groupItem", "groupIndex", "_", "index", "currentNavItem", "handleNavItemClick", "currentCategoriesItem", "position", "prev", "handleNavItemKeyDown", "handleNavMenuClose", "currentBlockTypeCategories", "SidebarDropdownComp", "ResourceSidebarDropdownComp", "MulticolDropdownComp", "SupportsDropdownComp", "DropdownComp", "actions", "profileAction", "handleProfileClick", "profileRefElement", "Logo", "Actions", "isExpanded", "el", "currentMenu", "setCurrentMenu", "subSubCategory", "mobileMenuOpen", "setMobileMenuOpen", "menuInnerHeight", "setMenuInnerHeight", "mobileMenuRef", "skipOpenAnimationRef", "rect", "handleResize", "MobileSupportMenuComp", "MobileSidebarMenuComp", "MobileResourceSidebarMenuComp", "MobileMulticolMenuComp", "MobileCategoriesMenuComp", "handleSecondaryMenuClose", "menuActions", "MobileCategoriesHeaderComp", "PrimaryHeader", "SecondaryHeader", "handlePrimaryMenuClick", "MobilePrimaryMenu", "onPrimaryMenuClick", "ProfileComp", "profileOpen", "setProfileOpen", "menuOpen", "onMenuOpenClose", "onMenuOpenClick", "payloadData", "activeStatus", "activeAction", "setActiveAction", "getActionLabel", "blockType", "handleActionClick", "action", "title", "onMenuBackClick", "HeaderNavigation_default"]
7
7
  }