@anker-in/headless-ui 0.0.27-alpha.99 → 0.0.27

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 (343) hide show
  1. package/dist/cjs/biz-components/AccordionCards/index.d.ts +11 -2
  2. package/dist/cjs/biz-components/AccordionCards/index.js +1 -1
  3. package/dist/cjs/biz-components/AccordionCards/index.js.map +3 -3
  4. package/dist/cjs/biz-components/AiuiProvider/index.d.ts +12 -0
  5. package/dist/cjs/biz-components/AiuiProvider/index.js +2 -0
  6. package/dist/cjs/biz-components/AiuiProvider/index.js.map +7 -0
  7. package/dist/cjs/biz-components/BrandEquity/BrandEquity.d.ts +4 -7
  8. package/dist/cjs/biz-components/BrandEquity/BrandEquity.js +1 -1
  9. package/dist/cjs/biz-components/BrandEquity/BrandEquity.js.map +3 -3
  10. package/dist/cjs/biz-components/BrandEquity/types.d.ts +2 -2
  11. package/dist/cjs/biz-components/BrandEquity/types.js +1 -1
  12. package/dist/cjs/biz-components/BrandEquity/types.js.map +1 -1
  13. package/dist/cjs/biz-components/Category/SwiperCategory.d.ts +3 -0
  14. package/dist/cjs/biz-components/Category/SwiperCategory.js +1 -1
  15. package/dist/cjs/biz-components/Category/SwiperCategory.js.map +3 -3
  16. package/dist/cjs/biz-components/Category/index.d.ts +11 -8
  17. package/dist/cjs/biz-components/Category/index.js +1 -1
  18. package/dist/cjs/biz-components/Category/index.js.map +3 -3
  19. package/dist/cjs/biz-components/Evaluate/index.d.ts +14 -9
  20. package/dist/cjs/biz-components/Evaluate/index.js +1 -1
  21. package/dist/cjs/biz-components/Evaluate/index.js.map +3 -3
  22. package/dist/cjs/biz-components/Graphic/index.d.ts +7 -8
  23. package/dist/cjs/biz-components/Graphic/index.js +1 -1
  24. package/dist/cjs/biz-components/Graphic/index.js.map +3 -3
  25. package/dist/cjs/biz-components/GraphicAttractionBlock/index.d.ts +4 -7
  26. package/dist/cjs/biz-components/GraphicAttractionBlock/index.js +1 -1
  27. package/dist/cjs/biz-components/GraphicAttractionBlock/index.js.map +2 -2
  28. package/dist/cjs/biz-components/HeroBanner/HeroBanner.d.ts +4 -7
  29. package/dist/cjs/biz-components/HeroBanner/HeroBanner.js +1 -1
  30. package/dist/cjs/biz-components/HeroBanner/HeroBanner.js.map +3 -3
  31. package/dist/cjs/biz-components/Marquee/Marquee.d.ts +4 -7
  32. package/dist/cjs/biz-components/Marquee/Marquee.js +1 -1
  33. package/dist/cjs/biz-components/Marquee/Marquee.js.map +3 -3
  34. package/dist/cjs/biz-components/MediaPlayerBase/index.d.ts +5 -7
  35. package/dist/cjs/biz-components/MediaPlayerBase/index.js +1 -1
  36. package/dist/cjs/biz-components/MediaPlayerBase/index.js.map +3 -3
  37. package/dist/cjs/biz-components/MediaPlayerBase/types.d.ts +2 -0
  38. package/dist/cjs/biz-components/MediaPlayerBase/types.js +1 -1
  39. package/dist/cjs/biz-components/MediaPlayerBase/types.js.map +1 -1
  40. package/dist/cjs/biz-components/MediaPlayerMulti/index.d.ts +4 -7
  41. package/dist/cjs/biz-components/MediaPlayerMulti/index.js +1 -1
  42. package/dist/cjs/biz-components/MediaPlayerMulti/index.js.map +3 -3
  43. package/dist/cjs/biz-components/MediaPlayerMulti/types.d.ts +3 -1
  44. package/dist/cjs/biz-components/MediaPlayerMulti/types.js +1 -1
  45. package/dist/cjs/biz-components/MediaPlayerMulti/types.js.map +1 -1
  46. package/dist/cjs/biz-components/MediaPlayerSticky/index.d.ts +7 -7
  47. package/dist/cjs/biz-components/MediaPlayerSticky/index.js +1 -1
  48. package/dist/cjs/biz-components/MediaPlayerSticky/index.js.map +3 -3
  49. package/dist/cjs/biz-components/MediaPlayerSticky/types.d.ts +2 -0
  50. package/dist/cjs/biz-components/MediaPlayerSticky/types.js +1 -1
  51. package/dist/cjs/biz-components/MediaPlayerSticky/types.js.map +1 -1
  52. package/dist/cjs/biz-components/MemberEquity/index.d.ts +5 -7
  53. package/dist/cjs/biz-components/MemberEquity/index.js +4 -9
  54. package/dist/cjs/biz-components/MemberEquity/index.js.map +3 -3
  55. package/dist/cjs/biz-components/MemberEquity/types.d.ts +2 -0
  56. package/dist/cjs/biz-components/MemberEquity/types.js +1 -1
  57. package/dist/cjs/biz-components/MemberEquity/types.js.map +1 -1
  58. package/dist/cjs/biz-components/MultiLayoutGraphicBlock/MultiLayoutGraphicBlock.d.ts +4 -7
  59. package/dist/cjs/biz-components/MultiLayoutGraphicBlock/MultiLayoutGraphicBlock.js +1 -1
  60. package/dist/cjs/biz-components/MultiLayoutGraphicBlock/MultiLayoutGraphicBlock.js.map +3 -3
  61. package/dist/cjs/biz-components/MultiLayoutGraphicBlock/types.d.ts +1 -0
  62. package/dist/cjs/biz-components/MultiLayoutGraphicBlock/types.js +1 -1
  63. package/dist/cjs/biz-components/MultiLayoutGraphicBlock/types.js.map +1 -1
  64. package/dist/cjs/biz-components/ShelfDisplay/index.d.ts +8 -11
  65. package/dist/cjs/biz-components/ShelfDisplay/index.js +7 -11
  66. package/dist/cjs/biz-components/ShelfDisplay/index.js.map +3 -3
  67. package/dist/cjs/biz-components/ShelfDisplay/tabSwitch.d.ts +9 -0
  68. package/dist/cjs/biz-components/ShelfDisplay/tabSwitch.js +2 -0
  69. package/dist/cjs/biz-components/ShelfDisplay/tabSwitch.js.map +7 -0
  70. package/dist/cjs/biz-components/Slogan/index.d.ts +6 -7
  71. package/dist/cjs/biz-components/Slogan/index.js +1 -1
  72. package/dist/cjs/biz-components/Slogan/index.js.map +3 -3
  73. package/dist/cjs/biz-components/Spacer/index.d.ts +4 -7
  74. package/dist/cjs/biz-components/Spacer/index.js +1 -1
  75. package/dist/cjs/biz-components/Spacer/index.js.map +2 -2
  76. package/dist/cjs/biz-components/SwiperBox/index.js +1 -1
  77. package/dist/cjs/biz-components/SwiperBox/index.js.map +2 -2
  78. package/dist/cjs/biz-components/SwiperBox/types.d.ts +2 -0
  79. package/dist/cjs/biz-components/SwiperBox/types.js +1 -1
  80. package/dist/cjs/biz-components/SwiperBox/types.js.map +1 -1
  81. package/dist/cjs/biz-components/Tabs/Tabs.d.ts +4 -7
  82. package/dist/cjs/biz-components/Title/index.d.ts +4 -7
  83. package/dist/cjs/biz-components/Title/index.js +1 -1
  84. package/dist/cjs/biz-components/Title/index.js.map +2 -2
  85. package/dist/cjs/biz-components/index.d.ts +1 -1
  86. package/dist/cjs/biz-components/index.js +1 -1
  87. package/dist/cjs/biz-components/index.js.map +3 -3
  88. package/dist/cjs/components/avatar.js +1 -1
  89. package/dist/cjs/components/avatar.js.map +2 -2
  90. package/dist/cjs/components/badge.js +1 -1
  91. package/dist/cjs/components/badge.js.map +2 -2
  92. package/dist/cjs/components/button.js +1 -1
  93. package/dist/cjs/components/button.js.map +2 -2
  94. package/dist/cjs/components/container.d.ts +9 -4
  95. package/dist/cjs/components/container.js +1 -1
  96. package/dist/cjs/components/container.js.map +3 -3
  97. package/dist/cjs/components/heading.js +1 -1
  98. package/dist/cjs/components/heading.js.map +2 -2
  99. package/dist/cjs/components/link.d.ts +4 -6
  100. package/dist/cjs/components/link.js +1 -1
  101. package/dist/cjs/components/link.js.map +3 -3
  102. package/dist/cjs/components/tabs.js +1 -1
  103. package/dist/cjs/components/tabs.js.map +2 -2
  104. package/dist/cjs/components/text.js +1 -1
  105. package/dist/cjs/components/text.js.map +2 -2
  106. package/dist/cjs/cpn-components/CpnCountDown/index.js +1 -1
  107. package/dist/cjs/cpn-components/CpnCountDown/index.js.map +3 -3
  108. package/dist/cjs/cpn-components/CpnCountDown/types.d.ts +1 -0
  109. package/dist/cjs/cpn-components/CpnCountDown/types.js +1 -1
  110. package/dist/cjs/cpn-components/CpnCountDown/types.js.map +1 -1
  111. package/dist/cjs/hooks/useExposure.d.ts +12 -0
  112. package/dist/cjs/hooks/useExposure.js +2 -0
  113. package/dist/cjs/hooks/useExposure.js.map +7 -0
  114. package/dist/cjs/hooks/useIntersectionObserver.d.ts +17 -0
  115. package/dist/cjs/hooks/useIntersectionObserver.js +2 -0
  116. package/dist/cjs/hooks/useIntersectionObserver.js.map +7 -0
  117. package/dist/cjs/shared/Styles.d.ts +4 -7
  118. package/dist/cjs/shared/Styles.js +1 -1
  119. package/dist/cjs/shared/Styles.js.map +3 -3
  120. package/dist/cjs/shared/mimeType.d.ts +1 -0
  121. package/dist/cjs/shared/mimeType.js +2 -0
  122. package/dist/cjs/shared/mimeType.js.map +7 -0
  123. package/dist/cjs/shared/track.d.ts +1 -0
  124. package/dist/cjs/shared/track.js +2 -0
  125. package/dist/cjs/shared/track.js.map +7 -0
  126. package/dist/cjs/shared/trackUrlRef.d.ts +7 -0
  127. package/dist/cjs/shared/trackUrlRef.js +2 -0
  128. package/dist/cjs/shared/trackUrlRef.js.map +7 -0
  129. package/dist/cjs/stories/HeroBanner.stories.d.ts +4 -7
  130. package/dist/cjs/stories/accordionCards.stories.d.ts +9 -2
  131. package/dist/cjs/stories/accordionCards.stories.js +1 -1
  132. package/dist/cjs/stories/accordionCards.stories.js.map +3 -3
  133. package/dist/cjs/stories/brandEquity.stories.d.ts +4 -7
  134. package/dist/cjs/stories/brandEquity.stories.js +1 -1
  135. package/dist/cjs/stories/brandEquity.stories.js.map +1 -1
  136. package/dist/cjs/stories/button.stories.js +1 -1
  137. package/dist/cjs/stories/button.stories.js.map +2 -2
  138. package/dist/cjs/stories/category.stories.d.ts +4 -7
  139. package/dist/cjs/stories/container.stories.d.ts +4 -2
  140. package/dist/cjs/stories/evaluate.stories.d.ts +4 -7
  141. package/dist/cjs/stories/graphic.stories.d.ts +10 -11
  142. package/dist/cjs/stories/heading.stories.js +2 -2
  143. package/dist/cjs/stories/heading.stories.js.map +2 -2
  144. package/dist/cjs/stories/link.stories.d.ts +3 -16
  145. package/dist/cjs/stories/link.stories.js +1 -1
  146. package/dist/cjs/stories/link.stories.js.map +2 -2
  147. package/dist/cjs/stories/marquee.stories.d.ts +4 -7
  148. package/dist/cjs/stories/mediaplayerMulti.stories.d.ts +4 -7
  149. package/dist/cjs/stories/shelfDisplay.stories.d.ts +4 -7
  150. package/dist/cjs/stories/slogan.stories.d.ts +4 -8
  151. package/dist/cjs/stories/slogan.stories.js +2 -22
  152. package/dist/cjs/stories/slogan.stories.js.map +3 -3
  153. package/dist/cjs/types/props.d.ts +10 -0
  154. package/dist/cjs/types/props.js +1 -1
  155. package/dist/cjs/types/props.js.map +1 -1
  156. package/dist/esm/biz-components/AccordionCards/index.d.ts +11 -2
  157. package/dist/esm/biz-components/AccordionCards/index.js +1 -1
  158. package/dist/esm/biz-components/AccordionCards/index.js.map +3 -3
  159. package/dist/esm/biz-components/AiuiProvider/index.d.ts +12 -0
  160. package/dist/esm/biz-components/AiuiProvider/index.js +2 -0
  161. package/dist/esm/biz-components/AiuiProvider/index.js.map +7 -0
  162. package/dist/esm/biz-components/BrandEquity/BrandEquity.d.ts +4 -7
  163. package/dist/esm/biz-components/BrandEquity/BrandEquity.js +1 -1
  164. package/dist/esm/biz-components/BrandEquity/BrandEquity.js.map +3 -3
  165. package/dist/esm/biz-components/BrandEquity/types.d.ts +2 -2
  166. package/dist/esm/biz-components/Category/SwiperCategory.d.ts +3 -0
  167. package/dist/esm/biz-components/Category/SwiperCategory.js +1 -1
  168. package/dist/esm/biz-components/Category/SwiperCategory.js.map +3 -3
  169. package/dist/esm/biz-components/Category/index.d.ts +11 -8
  170. package/dist/esm/biz-components/Category/index.js +1 -1
  171. package/dist/esm/biz-components/Category/index.js.map +3 -3
  172. package/dist/esm/biz-components/Evaluate/index.d.ts +14 -9
  173. package/dist/esm/biz-components/Evaluate/index.js +1 -1
  174. package/dist/esm/biz-components/Evaluate/index.js.map +3 -3
  175. package/dist/esm/biz-components/Graphic/index.d.ts +7 -8
  176. package/dist/esm/biz-components/Graphic/index.js +1 -1
  177. package/dist/esm/biz-components/Graphic/index.js.map +3 -3
  178. package/dist/esm/biz-components/GraphicAttractionBlock/index.d.ts +4 -7
  179. package/dist/esm/biz-components/GraphicAttractionBlock/index.js +1 -1
  180. package/dist/esm/biz-components/GraphicAttractionBlock/index.js.map +2 -2
  181. package/dist/esm/biz-components/HeroBanner/HeroBanner.d.ts +4 -7
  182. package/dist/esm/biz-components/HeroBanner/HeroBanner.js +1 -1
  183. package/dist/esm/biz-components/HeroBanner/HeroBanner.js.map +3 -3
  184. package/dist/esm/biz-components/Marquee/Marquee.d.ts +4 -7
  185. package/dist/esm/biz-components/Marquee/Marquee.js +1 -1
  186. package/dist/esm/biz-components/Marquee/Marquee.js.map +3 -3
  187. package/dist/esm/biz-components/MediaPlayerBase/index.d.ts +5 -7
  188. package/dist/esm/biz-components/MediaPlayerBase/index.js +1 -1
  189. package/dist/esm/biz-components/MediaPlayerBase/index.js.map +3 -3
  190. package/dist/esm/biz-components/MediaPlayerBase/types.d.ts +2 -0
  191. package/dist/esm/biz-components/MediaPlayerMulti/index.d.ts +4 -7
  192. package/dist/esm/biz-components/MediaPlayerMulti/index.js +1 -1
  193. package/dist/esm/biz-components/MediaPlayerMulti/index.js.map +3 -3
  194. package/dist/esm/biz-components/MediaPlayerMulti/types.d.ts +3 -1
  195. package/dist/esm/biz-components/MediaPlayerSticky/index.d.ts +7 -7
  196. package/dist/esm/biz-components/MediaPlayerSticky/index.js +1 -1
  197. package/dist/esm/biz-components/MediaPlayerSticky/index.js.map +3 -3
  198. package/dist/esm/biz-components/MediaPlayerSticky/types.d.ts +2 -0
  199. package/dist/esm/biz-components/MemberEquity/index.d.ts +5 -7
  200. package/dist/esm/biz-components/MemberEquity/index.js +4 -9
  201. package/dist/esm/biz-components/MemberEquity/index.js.map +3 -3
  202. package/dist/esm/biz-components/MemberEquity/types.d.ts +2 -0
  203. package/dist/esm/biz-components/MultiLayoutGraphicBlock/MultiLayoutGraphicBlock.d.ts +4 -7
  204. package/dist/esm/biz-components/MultiLayoutGraphicBlock/MultiLayoutGraphicBlock.js +1 -1
  205. package/dist/esm/biz-components/MultiLayoutGraphicBlock/MultiLayoutGraphicBlock.js.map +3 -3
  206. package/dist/esm/biz-components/MultiLayoutGraphicBlock/types.d.ts +1 -0
  207. package/dist/esm/biz-components/ShelfDisplay/index.d.ts +8 -11
  208. package/dist/esm/biz-components/ShelfDisplay/index.js +7 -11
  209. package/dist/esm/biz-components/ShelfDisplay/index.js.map +3 -3
  210. package/dist/esm/biz-components/ShelfDisplay/tabSwitch.d.ts +9 -0
  211. package/dist/esm/biz-components/ShelfDisplay/tabSwitch.js +2 -0
  212. package/dist/esm/biz-components/ShelfDisplay/tabSwitch.js.map +7 -0
  213. package/dist/esm/biz-components/Slogan/index.d.ts +6 -7
  214. package/dist/esm/biz-components/Slogan/index.js +1 -1
  215. package/dist/esm/biz-components/Slogan/index.js.map +3 -3
  216. package/dist/esm/biz-components/Spacer/index.d.ts +4 -7
  217. package/dist/esm/biz-components/Spacer/index.js +1 -1
  218. package/dist/esm/biz-components/Spacer/index.js.map +2 -2
  219. package/dist/esm/biz-components/SwiperBox/index.js +1 -1
  220. package/dist/esm/biz-components/SwiperBox/index.js.map +2 -2
  221. package/dist/esm/biz-components/SwiperBox/types.d.ts +2 -0
  222. package/dist/esm/biz-components/SwiperBox/types.js.map +1 -1
  223. package/dist/esm/biz-components/Tabs/Tabs.d.ts +4 -7
  224. package/dist/esm/biz-components/Title/index.d.ts +4 -7
  225. package/dist/esm/biz-components/Title/index.js +1 -1
  226. package/dist/esm/biz-components/Title/index.js.map +2 -2
  227. package/dist/esm/biz-components/index.d.ts +1 -1
  228. package/dist/esm/biz-components/index.js +1 -1
  229. package/dist/esm/biz-components/index.js.map +2 -2
  230. package/dist/esm/components/avatar.js +1 -1
  231. package/dist/esm/components/avatar.js.map +2 -2
  232. package/dist/esm/components/badge.js +1 -1
  233. package/dist/esm/components/badge.js.map +2 -2
  234. package/dist/esm/components/button.js +1 -1
  235. package/dist/esm/components/button.js.map +2 -2
  236. package/dist/esm/components/container.d.ts +9 -4
  237. package/dist/esm/components/container.js +1 -1
  238. package/dist/esm/components/container.js.map +3 -3
  239. package/dist/esm/components/heading.js +1 -1
  240. package/dist/esm/components/heading.js.map +2 -2
  241. package/dist/esm/components/link.d.ts +4 -6
  242. package/dist/esm/components/link.js +1 -1
  243. package/dist/esm/components/link.js.map +3 -3
  244. package/dist/esm/components/tabs.js +1 -1
  245. package/dist/esm/components/tabs.js.map +2 -2
  246. package/dist/esm/components/text.js +1 -1
  247. package/dist/esm/components/text.js.map +2 -2
  248. package/dist/esm/cpn-components/CpnCountDown/index.js +1 -1
  249. package/dist/esm/cpn-components/CpnCountDown/index.js.map +3 -3
  250. package/dist/esm/cpn-components/CpnCountDown/types.d.ts +1 -0
  251. package/dist/esm/hooks/useExposure.d.ts +12 -0
  252. package/dist/esm/hooks/useExposure.js +2 -0
  253. package/dist/esm/hooks/useExposure.js.map +7 -0
  254. package/dist/esm/hooks/useIntersectionObserver.d.ts +17 -0
  255. package/dist/esm/hooks/useIntersectionObserver.js +2 -0
  256. package/dist/esm/hooks/useIntersectionObserver.js.map +7 -0
  257. package/dist/esm/shared/Styles.d.ts +4 -7
  258. package/dist/esm/shared/Styles.js +1 -1
  259. package/dist/esm/shared/Styles.js.map +3 -3
  260. package/dist/esm/shared/mimeType.d.ts +1 -0
  261. package/dist/esm/shared/mimeType.js +2 -0
  262. package/dist/esm/shared/mimeType.js.map +7 -0
  263. package/dist/esm/shared/track.d.ts +1 -0
  264. package/dist/esm/shared/track.js +2 -0
  265. package/dist/esm/shared/track.js.map +7 -0
  266. package/dist/esm/shared/trackUrlRef.d.ts +7 -0
  267. package/dist/esm/shared/trackUrlRef.js +2 -0
  268. package/dist/esm/shared/trackUrlRef.js.map +7 -0
  269. package/dist/esm/stories/HeroBanner.stories.d.ts +4 -7
  270. package/dist/esm/stories/accordionCards.stories.d.ts +9 -2
  271. package/dist/esm/stories/accordionCards.stories.js +1 -1
  272. package/dist/esm/stories/accordionCards.stories.js.map +2 -2
  273. package/dist/esm/stories/brandEquity.stories.d.ts +4 -7
  274. package/dist/esm/stories/brandEquity.stories.js +1 -1
  275. package/dist/esm/stories/brandEquity.stories.js.map +1 -1
  276. package/dist/esm/stories/button.stories.js +1 -1
  277. package/dist/esm/stories/button.stories.js.map +2 -2
  278. package/dist/esm/stories/category.stories.d.ts +4 -7
  279. package/dist/esm/stories/container.stories.d.ts +4 -2
  280. package/dist/esm/stories/evaluate.stories.d.ts +4 -7
  281. package/dist/esm/stories/graphic.stories.d.ts +10 -11
  282. package/dist/esm/stories/heading.stories.js +2 -2
  283. package/dist/esm/stories/heading.stories.js.map +2 -2
  284. package/dist/esm/stories/link.stories.d.ts +3 -16
  285. package/dist/esm/stories/link.stories.js +1 -1
  286. package/dist/esm/stories/link.stories.js.map +2 -2
  287. package/dist/esm/stories/marquee.stories.d.ts +4 -7
  288. package/dist/esm/stories/mediaplayerMulti.stories.d.ts +4 -7
  289. package/dist/esm/stories/shelfDisplay.stories.d.ts +4 -7
  290. package/dist/esm/stories/slogan.stories.d.ts +4 -8
  291. package/dist/esm/stories/slogan.stories.js +3 -23
  292. package/dist/esm/stories/slogan.stories.js.map +2 -2
  293. package/dist/esm/types/props.d.ts +10 -0
  294. package/dist/tokens/anker.css +0 -13
  295. package/dist/tokens/base.css +21 -20
  296. package/dist/tokens/eufy.css +0 -3
  297. package/dist/tokens/solix.css +3 -3
  298. package/dist/tokens/soundcore.css +0 -5
  299. package/package.json +3 -2
  300. package/style.css +122 -77
  301. package/tailwind.config.js +2 -67
  302. package/dist/cjs/biz-components/SectionHeading/SectionHeading.d.ts +0 -4
  303. package/dist/cjs/biz-components/SectionHeading/SectionHeading.js +0 -2
  304. package/dist/cjs/biz-components/SectionHeading/SectionHeading.js.map +0 -7
  305. package/dist/cjs/biz-components/SectionHeading/index.d.ts +0 -0
  306. package/dist/cjs/biz-components/SectionHeading/index.js +0 -2
  307. package/dist/cjs/biz-components/SectionHeading/index.js.map +0 -7
  308. package/dist/cjs/biz-components/SectionHeading/types.d.ts +0 -6
  309. package/dist/cjs/biz-components/SectionHeading/types.js +0 -2
  310. package/dist/cjs/biz-components/SectionHeading/types.js.map +0 -7
  311. package/dist/cjs/biz-components/Shelf/Shelf.d.ts +0 -9
  312. package/dist/cjs/biz-components/Shelf/Shelf.js +0 -2
  313. package/dist/cjs/biz-components/Shelf/Shelf.js.map +0 -7
  314. package/dist/cjs/biz-components/Shelf/index.d.ts +0 -1
  315. package/dist/cjs/biz-components/Shelf/index.js +0 -2
  316. package/dist/cjs/biz-components/Shelf/index.js.map +0 -7
  317. package/dist/cjs/biz-components/Shelf/types.d.ts +0 -6
  318. package/dist/cjs/biz-components/Shelf/types.js +0 -2
  319. package/dist/cjs/biz-components/Shelf/types.js.map +0 -7
  320. package/dist/cjs/stories/shelf.stories.d.ts +0 -18
  321. package/dist/cjs/stories/shelf.stories.js +0 -2
  322. package/dist/cjs/stories/shelf.stories.js.map +0 -7
  323. package/dist/esm/biz-components/SectionHeading/SectionHeading.d.ts +0 -4
  324. package/dist/esm/biz-components/SectionHeading/SectionHeading.js +0 -2
  325. package/dist/esm/biz-components/SectionHeading/SectionHeading.js.map +0 -7
  326. package/dist/esm/biz-components/SectionHeading/index.d.ts +0 -0
  327. package/dist/esm/biz-components/SectionHeading/index.js +0 -2
  328. package/dist/esm/biz-components/SectionHeading/index.js.map +0 -7
  329. package/dist/esm/biz-components/SectionHeading/types.d.ts +0 -6
  330. package/dist/esm/biz-components/SectionHeading/types.js +0 -2
  331. package/dist/esm/biz-components/SectionHeading/types.js.map +0 -7
  332. package/dist/esm/biz-components/Shelf/Shelf.d.ts +0 -9
  333. package/dist/esm/biz-components/Shelf/Shelf.js +0 -2
  334. package/dist/esm/biz-components/Shelf/Shelf.js.map +0 -7
  335. package/dist/esm/biz-components/Shelf/index.d.ts +0 -1
  336. package/dist/esm/biz-components/Shelf/index.js +0 -2
  337. package/dist/esm/biz-components/Shelf/index.js.map +0 -7
  338. package/dist/esm/biz-components/Shelf/types.d.ts +0 -6
  339. package/dist/esm/biz-components/Shelf/types.js +0 -1
  340. package/dist/esm/biz-components/Shelf/types.js.map +0 -7
  341. package/dist/esm/stories/shelf.stories.d.ts +0 -18
  342. package/dist/esm/stories/shelf.stories.js +0 -2
  343. package/dist/esm/stories/shelf.stories.js.map +0 -7
@@ -1,2 +1,2 @@
1
- "use client";import{Fragment as d,jsx as e,jsxs as i}from"react/jsx-runtime";import{useRef as g,useEffect as v}from"react";import{cn as p}from"../../helpers/utils.js";import{withStyles as h}from"../../shared/Styles.js";import k from"../Slogan/index.js";import{Grid as w,GridItem as o}from"../../components/gird.js";import{Container as N}from"../../components/container.js";import x from"../BrandEquity/index.js";import S from"../MemberEquity/index.js";import M from"../Spacer/index.js";import C from"gsap";import{convertLexicalToHTML as n}from"@payloadcms/richtext-lexical/html";import{useMediaQuery as P}from"react-responsive";const l=({children:s,spaceY:r})=>{const a=P({query:"(max-width: 768px)"});return e(N,{spaceY:r,children:i(w,{children:[!a&&e(o,{span:1}),e(o,{span:a?12:10,children:s}),!a&&e(o,{span:1})]})})},R=({children:s,id:r,components:a})=>(v(()=>{const t=window.screen.height;C.timeline({scrollTrigger:{trigger:`#${r}`,start:"top top",end:`top+=${t*1.8}px bottom`,scrub:0}}).to(`#${r} .sticky-cover`,{opacity:1,duration:.3}).to(`#${r} .media-content`,{top:"100%",transform:"translate(-50%, -100%)",duration:1},"<")},[]),i("div",{id:r,className:"relative z-10 pb-10",children:[e(d,{children:s}),e(d,{children:a?.map(t=>{switch(t.blockType){case"ipc-brand-equity":return e("div",{className:"relative z-20 bg-transparent",children:e(l,{spaceY:"!my-0",children:e(x,{data:t,style:t?.style})})});case"ipc-member-equity":return e("div",{className:"relative z-20 w-full bg-transparent",children:e(l,{spaceY:"!my-0",children:e(S,{data:t,className:"w-full",style:t?.style})})});case"ipc-spacer":return e(M,{data:t,style:t?.style});default:return null}})})]})),z=({className:s="",id:r,data:{title:a,videoTitle:t,btnText:q,img:B,video:m,theme:c,shape:u,components:y}})=>{const f=g(null),b=typeof a=="string"?a:a&&n({data:a});return typeof t=="string"||t&&n({data:t}),i(R,{id:r,components:y,children:[e("div",{className:p("sticky-box absolute left-0 top-0 h-screen w-full",s,{"aiui-dark":c==="dark","rounded-box":u==="rounded"}),children:e("div",{className:"media-content absolute left-1/2 top-1/2 z-20 w-full -translate-x-1/2 -translate-y-1/2",children:e(l,{spaceY:"tablet:my-[32px] my-[24px] space-y-4",children:e(k,{className:"sticky-title",data:{title:b||"",theme:c}})})})}),e("div",{className:"sticky left-0 top-0 w-full",children:i("div",{className:p("media-cover","relative h-screen w-full","lg-desktop:aspect-w-[1920] lg-desktop:aspect-h-[930] lg:aspect-w-[1440] lg:aspect-h-[700] desktop:aspect-w-[1024] desktop:aspect-h-[520] tablet:aspect-w-[768] tablet:aspect-h-[660] aspect-w-[390] aspect-h-[660]"),children:[e("video",{ref:f,className:"size-full object-cover",src:m?.url,autoPlay:!0,muted:!0,loop:!0}),e("div",{className:"sticky-cover absolute left-0 top-0 z-10 size-full opacity-0",style:{background:"linear-gradient(180deg, rgba(0, 0, 0, 0.00) 0%, #1D1D1F 100%)"}})]})})]})};var J=h(z);export{J as default};
1
+ "use client";import{Fragment as b,jsx as e,jsxs as n}from"react/jsx-runtime";import V,{useState as m,useRef as i,useEffect as u,forwardRef as _}from"react";import{debounce as D}from"es-toolkit";import{useInView as O}from"react-intersection-observer";import{cn as f}from"../../helpers/utils.js";import{withStyles as Q}from"../../shared/Styles.js";import A from"../Slogan/index.js";import{Grid as J,GridItem as y}from"../../components/gird.js";import{Container as K}from"../../components/container.js";import U from"../BrandEquity/index.js";import W from"../MemberEquity/index.js";import X from"../Spacer/index.js";import Z from"gsap";import{convertLexicalToHTML as P}from"@payloadcms/richtext-lexical/html";import{useMediaQuery as S}from"react-responsive";import{useExposure as ee}from"../../hooks/useExposure.js";const te="video",re="brand_story",z=({defaultConverters:a})=>({...a,text:r=>{const{node:t}=r;return t.$&&t.$.color?`<span class="lexical-${t.$.color}">${t.text}</span>`:t.text}}),v=({children:a,spaceY:r})=>{const t=S({query:"(max-width: 768px)"});return e(K,{spaceY:r,className:"!bg-transparent",children:n(J,{children:[!t&&e(y,{span:1}),e(y,{span:t?12:10,children:a}),!t&&e(y,{span:1})]})})},se=V.forwardRef(({children:a,id:r,components:t})=>{const o=i(null);return n("div",{ref:o,className:"relative z-10",children:[e(b,{children:a}),e(b,{children:t?.map(s=>{switch(s.blockType){case"ipc-brand-equity":return e("div",{className:"relative z-20 bg-transparent",children:e(v,{spaceY:"none",children:e(U,{data:s,style:s?.style})})});case"ipc-member-equity":return e("div",{className:"relative z-20 w-full bg-transparent",children:e(v,{spaceY:"none",children:e(W,{data:s,className:"w-full",style:s?.style})})});case"ipc-spacer":return e(X,{data:s,style:s?.style,className:"!bg-transparent"});default:return null}})})]})}),ae=_(({className:a="",id:r,data:{title:t,videoTitle:o,mobVideo:s,mobImg:g,img:l,video:w,theme:h,shape:C,components:L}})=>{const x=i(null),c=i(null),{ref:$,inView:N}=O(),[M,B]=m(!1),[Y,q]=m(!1),R=i(null);ee(R,{componentType:te,componentName:re,componentTitle:t});const I=typeof t=="string"?t:t&&P({data:t,converters:z});typeof o=="string"||o&&P({data:o,converters:z});const[k,j]=m(0),E=S({query:"(max-width: 768px)"}),d=D(()=>{if(c.current){const p=c.current.getBoundingClientRect(),H=window.innerHeight,G=window.scrollY||window.pageYOffset,F=p.bottom+G,T=document.documentElement.scrollHeight-F;j(T>H?H:T)}},600);return u(()=>{N&&!M&&(x.current?.play(),B(!0))},[N,M]),u(()=>(d(),window.addEventListener("resize",d),()=>{window.removeEventListener("resize",d)}),[]),u(()=>{const p=window.screen.height;Z.timeline({scrollTrigger:{trigger:`#${r}`,start:"top top",end:`top+=${p*1.8}px bottom`,scrub:0}}).to(`.${r} .sticky-cover`,{opacity:1,duration:.4}).to(`#${r} .media-content`,{top:"100%",transform:"translate(-50%, -100%)",duration:1},"<")},[k]),n(b,{children:[e("div",{id:r,className:f("relative z-20 h-screen w-full",a,{"aiui-dark":h==="dark","rounded-box":C==="rounded"}),ref:R,children:e("div",{ref:$,className:"media-content absolute left-1/2 top-1/2 z-10 w-full -translate-x-1/2 -translate-y-1/2",children:e(v,{spaceY:"tablet:my-[32px] my-[24px] space-y-4",children:e(A,{className:"sticky-title",data:{title:I||"",theme:h}})})})}),n("div",{ref:c,style:{marginBottom:`-${k}px`},className:f(r,"relative mt-[-200vh]"),children:[e("div",{className:"sticky top-0 ",children:n("div",{className:f("media-cover","relative h-screen w-full","lg-desktop:aspect-w-[1920] lg-desktop:aspect-h-[930] lg:aspect-w-[1440] lg:aspect-h-[700] desktop:aspect-w-[1024] desktop:aspect-h-[520] tablet:aspect-w-[768] tablet:aspect-h-[660] aspect-w-[390] aspect-h-[660]"),children:[w?.url&&e("video",{ref:x,className:"size-full object-cover object-[82%]",src:E&&s?.url?s?.url:w?.url,muted:!0,playsInline:!0,onEnded:()=>{q(!0)}}),l?.url&&Y&&e("img",{src:E&&g?.url?g?.url:l?.url,alt:l?.alt,className:"z-1 absolute left-0 top-0 size-full object-cover object-[82%]"}),e("div",{className:"sticky-cover absolute left-0 top-0 z-10 size-full opacity-0",style:{background:"linear-gradient(180deg, rgba(0, 0, 0, 0.00) 0%, #1D1D1F 100%)"}})]})}),e("div",{className:"relative h-screen w-full"}),e(se,{components:L}),e("div",{className:"relative h-screen w-full"})]})]})});var Ne=Q(ae);export{Ne as default};
2
2
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/biz-components/MediaPlayerSticky/index.tsx"],
4
- "sourcesContent": ["'use client'\nimport React, { useState, useRef, useEffect } from 'react'\nimport { cn } from '../../helpers/utils.js'\nimport { withStyles } from '../../shared/Styles.js'\nimport Slogan from '../Slogan/index.js'\nimport { Grid, GridItem } from '../../components/gird.js'\nimport { Container } from '../../components/container.js'\nimport BrandEquity from '../BrandEquity/index.js'\nimport MemberEquity from '../MemberEquity/index.js'\nimport Spacer from '../Spacer/index.js'\nimport gsap from 'gsap'\n// import ScrollTrigger from 'gsap/ScrollTrigger'\nimport { convertLexicalToHTML } from '@payloadcms/richtext-lexical/html'\nimport { useMediaQuery } from 'react-responsive'\nimport type { MediaPlayerBaseProps, MediaPlayerComponent } from './types.js'\n\nconst SubContainer = ({ children, spaceY }: { children: React.ReactNode; spaceY?: string }) => {\n const isMobile = useMediaQuery({ query: '(max-width: 768px)' })\n return (\n <Container spaceY={spaceY}>\n <Grid>\n {!isMobile && <GridItem span={1} />}\n <GridItem span={isMobile ? 12 : 10}>{children}</GridItem>\n {!isMobile && <GridItem span={1} />}\n </Grid>\n </Container>\n )\n}\n\nconst StickyBox = ({\n children,\n id,\n components,\n}: {\n children: React.ReactNode\n id?: string\n components?: MediaPlayerComponent[]\n}) => {\n useEffect(() => {\n const height = window.screen.height\n\n gsap\n .timeline({\n scrollTrigger: {\n trigger: `#${id}`,\n start: 'top top',\n end: `top+=${height * 1.8}px bottom`,\n scrub: 0,\n },\n })\n .to(`#${id} .sticky-cover`, {\n opacity: 1,\n duration: 0.3,\n })\n .to(\n `#${id} .media-content`,\n {\n top: '100%',\n transform: 'translate(-50%, -100%)',\n duration: 1,\n },\n '<'\n )\n }, [])\n\n return (\n <div id={id} className=\"relative z-10 pb-10\">\n <>{children}</>\n <>\n {components?.map((componentData: any) => {\n switch (componentData.blockType) {\n case 'ipc-brand-equity': {\n return (\n <div className=\"relative z-20 bg-transparent\">\n <SubContainer spaceY=\"!my-0\">\n <BrandEquity data={componentData} style={componentData?.style} />\n </SubContainer>\n </div>\n )\n }\n case 'ipc-member-equity': {\n return (\n <div className=\"relative z-20 w-full bg-transparent\">\n <SubContainer spaceY=\"!my-0\">\n <MemberEquity data={componentData} className=\"w-full\" style={componentData?.style} />\n </SubContainer>\n </div>\n )\n }\n case 'ipc-spacer': {\n return <Spacer data={componentData} style={componentData?.style} />\n }\n default:\n return null\n }\n })}\n </>\n </div>\n )\n}\n\nconst MediaPlayerSticky: React.FC<MediaPlayerBaseProps> = ({\n className = '',\n id,\n data: { title, videoTitle, btnText, img, video, theme, shape, components },\n}) => {\n const videoRef = useRef<HTMLVideoElement>(null)\n\n const title_html = typeof title === 'string' ? title : title && convertLexicalToHTML({ data: title })\n typeof videoTitle === 'string' ? videoTitle : videoTitle && convertLexicalToHTML({ data: videoTitle })\n\n return (\n <StickyBox id={id} components={components}>\n <div\n className={cn('sticky-box absolute left-0 top-0 h-screen w-full', className, {\n 'aiui-dark': theme === 'dark',\n 'rounded-box': shape === 'rounded',\n })}\n >\n <div className=\"media-content absolute left-1/2 top-1/2 z-20 w-full -translate-x-1/2 -translate-y-1/2\">\n <SubContainer spaceY=\"tablet:my-[32px] my-[24px] space-y-4\">\n <Slogan className=\"sticky-title\" data={{ title: title_html || '', theme }} />\n </SubContainer>\n </div>\n </div>\n <div className=\"sticky left-0 top-0 w-full\">\n <div\n className={cn(\n 'media-cover',\n 'relative h-screen w-full',\n 'lg-desktop:aspect-w-[1920] lg-desktop:aspect-h-[930] lg:aspect-w-[1440] lg:aspect-h-[700] desktop:aspect-w-[1024] desktop:aspect-h-[520] tablet:aspect-w-[768] tablet:aspect-h-[660] aspect-w-[390] aspect-h-[660]'\n )}\n >\n <video ref={videoRef} className=\"size-full object-cover\" src={video?.url} autoPlay muted loop />\n <div\n className=\"sticky-cover absolute left-0 top-0 z-10 size-full opacity-0\"\n style={{\n background: 'linear-gradient(180deg, rgba(0, 0, 0, 0.00) 0%, #1D1D1F 100%)',\n }}\n />\n </div>\n </div>\n </StickyBox>\n )\n}\n\nexport default withStyles(MediaPlayerSticky)\n"],
5
- "mappings": "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",
6
- "names": ["Fragment", "jsx", "jsxs", "useRef", "useEffect", "cn", "withStyles", "Slogan", "Grid", "GridItem", "Container", "BrandEquity", "MemberEquity", "Spacer", "gsap", "convertLexicalToHTML", "useMediaQuery", "SubContainer", "children", "spaceY", "isMobile", "StickyBox", "id", "components", "height", "componentData", "MediaPlayerSticky", "className", "title", "videoTitle", "btnText", "img", "video", "theme", "shape", "videoRef", "title_html", "MediaPlayerSticky_default"]
4
+ "sourcesContent": ["'use client'\nimport React, { useState, useRef, useEffect, forwardRef, useImperativeHandle } from 'react'\nimport { debounce } from 'es-toolkit'\nimport { useInView } from 'react-intersection-observer'\nimport { cn } from '../../helpers/utils.js'\nimport { withStyles } from '../../shared/Styles.js'\nimport Slogan from '../Slogan/index.js'\nimport { Grid, GridItem } from '../../components/gird.js'\nimport { Container } from '../../components/container.js'\nimport BrandEquity from '../BrandEquity/index.js'\nimport MemberEquity from '../MemberEquity/index.js'\nimport Spacer from '../Spacer/index.js'\nimport gsap from 'gsap'\n// import ScrollTrigger from 'gsap/ScrollTrigger'\nimport { convertLexicalToHTML } from '@payloadcms/richtext-lexical/html'\n\nimport type { HTMLConvertersFunction } from '@payloadcms/richtext-lexical/html'\n\nimport { useMediaQuery } from 'react-responsive'\nimport type { MediaPlayerBaseProps, MediaPlayerComponent } from './types.js'\nimport { useExposure } from '../../hooks/useExposure.js'\n\nconst componentType = 'video'\nconst componentName = 'brand_story'\n\nconst htmlConverters: HTMLConvertersFunction = ({ defaultConverters }) => ({\n ...defaultConverters,\n text: args => {\n const { node } = args\n\n // \u68C0\u67E5\u662F\u5426\u6709\u81EA\u5B9A\u4E49 color\n if (node.$ && node.$.color) {\n return `<span class=\"lexical-${node.$.color}\">${node.text}</span>`\n }\n return node.text\n },\n})\n\nconst SubContainer = ({ children, spaceY }: { children: React.ReactNode; spaceY?: string }) => {\n const isMobile = useMediaQuery({ query: '(max-width: 768px)' })\n return (\n <Container spaceY={spaceY} className=\"!bg-transparent\">\n <Grid>\n {!isMobile && <GridItem span={1} />}\n <GridItem span={isMobile ? 12 : 10}>{children}</GridItem>\n {!isMobile && <GridItem span={1} />}\n </Grid>\n </Container>\n )\n}\n\nconst SubBox = React.forwardRef<\n {\n mediaPlayerStickyRef: HTMLDivElement\n },\n {\n children?: React.ReactNode\n id?: string\n components?: MediaPlayerComponent[]\n }\n>(({ children, id, components }) => {\n const mediaPlayerStickyRef = useRef<HTMLDivElement>(null)\n\n return (\n <div ref={mediaPlayerStickyRef} className=\"relative z-10\">\n <>{children}</>\n <>\n {components?.map((componentData: any) => {\n switch (componentData.blockType) {\n case 'ipc-brand-equity': {\n return (\n <div className=\"relative z-20 bg-transparent\">\n <SubContainer spaceY=\"none\">\n <BrandEquity data={componentData} style={componentData?.style} />\n </SubContainer>\n </div>\n )\n }\n case 'ipc-member-equity': {\n return (\n <div className=\"relative z-20 w-full bg-transparent\">\n <SubContainer spaceY=\"none\">\n <MemberEquity data={componentData} className=\"w-full\" style={componentData?.style} />\n </SubContainer>\n </div>\n )\n }\n case 'ipc-spacer': {\n return <Spacer data={componentData} style={componentData?.style} className=\"!bg-transparent\" />\n }\n default:\n return null\n }\n })}\n </>\n </div>\n )\n})\n\nconst MediaPlayerSticky = forwardRef<\n {\n mediaPlayerStickyRef: HTMLDivElement\n },\n MediaPlayerBaseProps\n>(({ className = '', id, data: { title, videoTitle, mobVideo, mobImg, img, video, theme, shape, components } }) => {\n const videoRef = useRef<HTMLVideoElement>(null)\n const boxRef = useRef<HTMLDivElement>(null)\n const { ref: inViewRef, inView } = useInView()\n const [isPlaying, setIsPlaying] = useState(false)\n const [isEntered, setIsEntered] = useState(false)\n const wrapperRef = useRef<HTMLDivElement>(null)\n\n useExposure(wrapperRef, {\n componentType,\n componentName,\n componentTitle: title,\n })\n\n const title_html =\n typeof title === 'string' ? title : title && convertLexicalToHTML({ data: title, converters: htmlConverters })\n typeof videoTitle === 'string'\n ? videoTitle\n : videoTitle && convertLexicalToHTML({ data: videoTitle, converters: htmlConverters })\n\n const [btb, setbtb] = useState(0)\n const isMobile = useMediaQuery({ query: '(max-width: 768px)' })\n\n const debouncedHandleResize = debounce(() => {\n if (boxRef.current) {\n const rect = boxRef.current.getBoundingClientRect()\n const screenHeight = window.innerHeight\n const scrollTop = window.scrollY || window.pageYOffset\n const elementBottomToPageTop = rect.bottom + scrollTop\n const pageHeight = document.documentElement.scrollHeight\n const distanceToPageBottom = pageHeight - elementBottomToPageTop\n setbtb(distanceToPageBottom > screenHeight ? screenHeight : distanceToPageBottom)\n }\n }, 600)\n\n useEffect(() => {\n if (inView && !isPlaying) {\n videoRef.current?.play()\n setIsPlaying(true)\n }\n }, [inView, isPlaying])\n\n useEffect(() => {\n debouncedHandleResize()\n window.addEventListener('resize', debouncedHandleResize)\n return () => {\n window.removeEventListener('resize', debouncedHandleResize)\n }\n }, [])\n\n useEffect(() => {\n const height = window.screen.height\n gsap\n .timeline({\n scrollTrigger: {\n trigger: `#${id}`,\n start: 'top top',\n end: `top+=${height * 1.8}px bottom`,\n scrub: 0,\n },\n })\n .to(`.${id} .sticky-cover`, {\n opacity: 1,\n duration: 0.4,\n })\n .to(\n `#${id} .media-content`,\n {\n top: '100%',\n transform: 'translate(-50%, -100%)',\n duration: 1,\n },\n '<'\n )\n }, [btb])\n\n return (\n <>\n <div\n id={id}\n className={cn('relative z-20 h-screen w-full', className, {\n 'aiui-dark': theme === 'dark',\n 'rounded-box': shape === 'rounded',\n })}\n ref={wrapperRef}\n >\n <div\n ref={inViewRef}\n className=\"media-content absolute left-1/2 top-1/2 z-10 w-full -translate-x-1/2 -translate-y-1/2\"\n >\n <SubContainer spaceY=\"tablet:my-[32px] my-[24px] space-y-4\">\n <Slogan className=\"sticky-title\" data={{ title: title_html || '', theme }} />\n </SubContainer>\n </div>\n </div>\n\n <div ref={boxRef} style={{ marginBottom: `-${btb}px` }} className={cn(id, 'relative mt-[-200vh]')}>\n <div className=\"sticky top-0 \">\n <div\n className={cn(\n 'media-cover',\n 'relative h-screen w-full',\n 'lg-desktop:aspect-w-[1920] lg-desktop:aspect-h-[930] lg:aspect-w-[1440] lg:aspect-h-[700] desktop:aspect-w-[1024] desktop:aspect-h-[520] tablet:aspect-w-[768] tablet:aspect-h-[660] aspect-w-[390] aspect-h-[660]'\n )}\n >\n {video?.url && (\n <video\n ref={videoRef}\n className=\"size-full object-cover object-[82%]\"\n src={isMobile && mobVideo?.url ? mobVideo?.url : video?.url}\n muted\n playsInline\n onEnded={() => {\n setIsEntered(true)\n }}\n />\n )}\n {img?.url && isEntered && (\n <img\n src={isMobile && mobImg?.url ? mobImg?.url : img?.url}\n alt={img?.alt}\n className=\"z-1 absolute left-0 top-0 size-full object-cover object-[82%]\"\n />\n )}\n <div\n className=\"sticky-cover absolute left-0 top-0 z-10 size-full opacity-0\"\n style={{\n background: 'linear-gradient(180deg, rgba(0, 0, 0, 0.00) 0%, #1D1D1F 100%)',\n }}\n />\n </div>\n </div>\n\n <div className=\"relative h-screen w-full\" />\n <SubBox components={components}></SubBox>\n <div className=\"relative h-screen w-full\" />\n </div>\n </>\n )\n})\n\nexport default withStyles(MediaPlayerSticky)\n"],
5
+ "mappings": "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",
6
+ "names": ["Fragment", "jsx", "jsxs", "React", "useState", "useRef", "useEffect", "forwardRef", "debounce", "useInView", "cn", "withStyles", "Slogan", "Grid", "GridItem", "Container", "BrandEquity", "MemberEquity", "Spacer", "gsap", "convertLexicalToHTML", "useMediaQuery", "useExposure", "componentType", "componentName", "htmlConverters", "defaultConverters", "args", "node", "SubContainer", "children", "spaceY", "isMobile", "SubBox", "id", "components", "mediaPlayerStickyRef", "componentData", "MediaPlayerSticky", "className", "title", "videoTitle", "mobVideo", "mobImg", "img", "video", "theme", "shape", "videoRef", "boxRef", "inViewRef", "inView", "isPlaying", "setIsPlaying", "isEntered", "setIsEntered", "wrapperRef", "title_html", "btb", "setbtb", "debouncedHandleResize", "rect", "screenHeight", "scrollTop", "elementBottomToPageTop", "distanceToPageBottom", "height", "MediaPlayerSticky_default"]
7
7
  }
@@ -10,7 +10,9 @@ export interface MediaPlayerBaseProps extends ComponentCommonProps {
10
10
  videoTitle?: string;
11
11
  btnText?: string;
12
12
  img?: Img;
13
+ mobImg?: Img;
13
14
  video?: Video;
15
+ mobVideo?: Video;
14
16
  components?: MediaPlayerComponent[];
15
17
  };
16
18
  }
@@ -1,9 +1,7 @@
1
+ import React from 'react';
1
2
  import type { MemberEquityProps } from './types.js';
2
- declare const _default: {
3
- (props: Omit<MemberEquityProps, keyof import("../../shared/Styles.js").StylesProps> & Partial<import("../../shared/Styles.js").StylesProps> & {
4
- className?: string;
5
- data?: Record<string, any>;
6
- }): import("react/jsx-runtime").JSX.Element;
7
- displayName: string;
8
- };
3
+ declare const _default: React.ForwardRefExoticComponent<Omit<MemberEquityProps, keyof import("../../shared/Styles.js").StylesProps> & Partial<import("../../shared/Styles.js").StylesProps> & {
4
+ className?: string;
5
+ data?: Record<string, any>;
6
+ } & React.RefAttributes<any>>;
9
7
  export default _default;
@@ -1,10 +1,5 @@
1
- "use client";import{jsx as e,jsxs as o}from"react/jsx-runtime";import"react";import{Button as i,Heading as g,Text as x}from"../../components/index.js";import{withStyles as f}from"../../shared/Styles.js";import{cn as l}from"../../helpers/utils.js";const v=({data:p,className:s=""})=>{const{title:r,description:n,backgroundImage:d,mobileBackgroundImage:m,primaryButton:t,secondaryButton:a,theme:c,shape:u}=p,b=()=>{},y=()=>{};return o("section",{"data-ui-component-id":"MemberEquity",className:l(`tablet:aspect-[740/480] laptop:aspect-[1664/485] text-info-primary relative
2
- aspect-[390/480] overflow-hidden`,s,{"aiui-dark":c==="dark","rounded-box":u==="rounded"}),children:[e("video",{autoPlay:!0,muted:!0,playsInline:!0,loop:!0,className:"tablet:block absolute inset-0 hidden size-full object-cover",children:e("source",{src:d?.url,type:"video/mp4"})}),e("video",{autoPlay:!0,muted:!0,playsInline:!0,loop:!0,className:"tablet:hidden absolute inset-0 size-full object-cover",children:e("source",{src:m?.url,type:"video/mp4"})}),e("div",{className:`
3
- laptop:items-center
4
- absolute
5
- inset-0 flex w-full items-end
6
- `,children:o("div",{className:`
7
- tablet:px-6 laptop:px-[76px] desktop:px-[111px] lg-desktop:px-[139px] tablet:gap-5 laptop:gap-6
8
- desktop:gap-7 lg-desktop:gap-8 flex w-full flex-col gap-4 px-4
9
- `,children:[o("div",{className:"tablet:gap-2 laptop:gap-3 desktop:gap-3 lg-desktop:gap-4 flex flex-col gap-2",children:[e(g,{as:"h2",size:3,className:"member-equity-title ",html:r}),e(x,{size:2,className:"member-equity-description",html:n})]}),o("div",{className:"tablet:gap-3 laptop:gap-4 desktop:gap-4 lg-desktop:gap-4 flex items-center gap-3",children:[a&&a.text&&e("a",{href:a.link,children:e(i,{variant:"secondary",onClick:y,className:l("member-equity-button-secondary"),children:a.text})}),t&&t.text&&e("a",{href:t.link,children:e(i,{variant:"primary",onClick:b,className:l("member-equity-button-primary"),children:t.text})})]})]})})]})};var C=f(v);export{C as default};
1
+ "use client";import{jsx as e,jsxs as l}from"react/jsx-runtime";import E,{useImperativeHandle as T,useRef as z}from"react";import{useMediaQuery as H}from"react-responsive";import{Button as u,Heading as P,Picture as x,Text as _}from"../../components/index.js";import{withStyles as j}from"../../shared/Styles.js";import{cn as s}from"../../helpers/utils.js";import{isVideo as y}from"../../shared/mimeType.js";import{useExposure as R}from"../../hooks/useExposure.js";import{trackUrlRef as b}from"../../shared/trackUrlRef.js";const r="image",m="member_area",C=E.forwardRef(({data:f,className:g=""},k)=>{const{title:n,description:c,backgroundImage:t,mobileBackgroundImage:o,primaryButton:a,secondaryButton:p,theme:v,shape:h,primaryButtonHandler:N,secondaryButtonHandler:B}=f,q=H({query:"(max-width: 768px)"}),i=z(null);T(k,()=>i.current),R(i,{componentType:r,componentName:m,componentTitle:n,componentDescription:c});const M=()=>{N?.()},w=()=>{B?.()},d="lg-desktop:px-7 lg-desktop:pb-[14px] lg-desktop:pt-[15px] lg-desktop:text-[16px]";return l("section",{"data-ui-component-id":"MemberEquity",className:s("lg-desktop:aspect-[1384/560] desktop:aspect-[1090/488] laptop:aspect-[774/336] tablet:aspect-[704/480]","text-info-primary relative overflow-hidden",g,{"aiui-dark":v==="dark","rounded-box":h==="rounded","h-[480px]":q}),ref:i,children:[y(t?.mimeType)?e("video",{autoPlay:!0,muted:!0,playsInline:!0,loop:!0,className:"laptop:block absolute inset-0 hidden size-full object-cover",children:e("source",{src:t?.url,type:"video/mp4"})}):e(x,{source:t?.url,alt:t?.alt,className:"laptop:block absolute inset-0 hidden size-full object-cover [&_img]:h-full [&_img]:object-cover"}),y(o?.mimeType)?e("video",{autoPlay:!0,muted:!0,playsInline:!0,loop:!0,className:"laptop:hidden absolute inset-0 size-full object-cover",children:e("source",{src:o?.url,type:"video/mp4"})}):e(x,{source:o?.url,alt:o?.alt,className:"laptop:hidden absolute inset-0 size-full object-cover [&_img]:h-full [&_img]:object-cover"}),e("div",{className:"laptop:items-center absolute inset-0 flex w-full items-end py-[16px]",children:l("div",{className:`
2
+ tablet:px-6 laptop:px-[76px] desktop:px-[111px] lg-desktop:px-[139px] tablet:gap-5
3
+ laptop:gap-4 desktop:gap-6 lg-desktop:gap-8 flex w-full flex-col gap-6 px-4
4
+ `,children:[l("div",{className:"desktop:gap-2 lg-desktop:gap-4 laptop:max-w-[286px] desktop:max-w-[426px] lg-desktop:max-w-[547px] flex flex-col",children:[e(P,{as:"h2",size:3,className:"member-equity-title ",html:n}),e(_,{size:2,className:"member-equity-description",html:c})]}),l("div",{className:"tablet:gap-3 laptop:gap-4 desktop:gap-4 lg-desktop:gap-4 flex items-center gap-3",children:[p&&p.text&&e("a",{href:b(p.link,`${r}_${m}`),children:e(u,{variant:"secondary",onClick:w,className:s("member-equity-button-secondary ",d),children:p.text})}),a&&a.text&&e("a",{href:b(a.link,`${r}_${m}`),children:e(u,{variant:"primary",onClick:M,className:s("member-equity-button-primary ",d),children:a.text})})]})]})})]})});var V=j(C);export{V as default};
10
5
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/biz-components/MemberEquity/index.tsx"],
4
- "sourcesContent": ["'use client'\nimport React from 'react'\nimport { Button, Heading, Text } from '../../components/index.js'\nimport { withStyles } from '../../shared/Styles.js'\nimport type { MemberEquityProps } from './types.js'\nimport { cn } from '../../helpers/utils.js'\n\nconst MemberEquity: React.FC<MemberEquityProps> = ({ data, className = '' }) => {\n const { title, description, backgroundImage, mobileBackgroundImage, primaryButton, secondaryButton, theme, shape } =\n data\n const handleButtonPrimaryClick = () => {\n // \u6267\u884C\u4E3B\u6309\u94AE\u7684\u70B9\u51FB\u4E8B\u4EF6\n }\n\n const handleButtonSecondaryClick = () => {\n // \u6267\u884C\u526F\u6309\u94AE\u7684\u70B9\u51FB\u4E8B\u4EF6\n }\n\n return (\n <section\n data-ui-component-id=\"MemberEquity\"\n className={cn(\n `tablet:aspect-[740/480] laptop:aspect-[1664/485] text-info-primary relative\n aspect-[390/480] overflow-hidden`,\n className,\n {\n 'aiui-dark': theme === 'dark',\n 'rounded-box': shape === 'rounded',\n }\n )}\n >\n <video autoPlay muted playsInline loop className=\"tablet:block absolute inset-0 hidden size-full object-cover\">\n <source src={backgroundImage?.url} type=\"video/mp4\" />\n </video>\n <video autoPlay muted playsInline loop className=\"tablet:hidden absolute inset-0 size-full object-cover\">\n <source src={mobileBackgroundImage?.url} type=\"video/mp4\" />\n </video>\n <div\n className={`\n laptop:items-center \n absolute\n inset-0 flex w-full items-end\n `}\n >\n <div\n className={`\n tablet:px-6 laptop:px-[76px] desktop:px-[111px] lg-desktop:px-[139px] tablet:gap-5 laptop:gap-6\n desktop:gap-7 lg-desktop:gap-8 flex w-full flex-col gap-4 px-4\n `}\n >\n <div className=\"tablet:gap-2 laptop:gap-3 desktop:gap-3 lg-desktop:gap-4 flex flex-col gap-2\">\n <Heading as=\"h2\" size={3} className={`member-equity-title `} html={title} />\n <Text size={2} className={`member-equity-description`} html={description} />\n </div>\n {/* \u6309\u94AE\u7EC4 */}\n <div className=\"tablet:gap-3 laptop:gap-4 desktop:gap-4 lg-desktop:gap-4 flex items-center gap-3\">\n {secondaryButton && secondaryButton.text && (\n <a href={secondaryButton.link}>\n <Button\n variant=\"secondary\"\n onClick={handleButtonSecondaryClick}\n className={cn('member-equity-button-secondary')}\n >\n {secondaryButton.text}\n </Button>\n </a>\n )}\n {primaryButton && primaryButton.text && (\n <a href={primaryButton.link}>\n <Button\n variant=\"primary\"\n onClick={handleButtonPrimaryClick}\n className={cn('member-equity-button-primary')}\n >\n {primaryButton.text}\n </Button>\n </a>\n )}\n </div>\n </div>\n </div>\n </section>\n )\n}\n\nexport default withStyles(MemberEquity)\n"],
5
- "mappings": "aAgCQ,cAAAA,EAkBE,QAAAC,MAlBF,oBA/BR,MAAkB,QAClB,OAAS,UAAAC,EAAQ,WAAAC,EAAS,QAAAC,MAAY,4BACtC,OAAS,cAAAC,MAAkB,yBAE3B,OAAS,MAAAC,MAAU,yBAEnB,MAAMC,EAA4C,CAAC,CAAE,KAAAC,EAAM,UAAAC,EAAY,EAAG,IAAM,CAC9E,KAAM,CAAE,MAAAC,EAAO,YAAAC,EAAa,gBAAAC,EAAiB,sBAAAC,EAAuB,cAAAC,EAAe,gBAAAC,EAAiB,MAAAC,EAAO,MAAAC,CAAM,EAC/GT,EACIU,EAA2B,IAAM,CAEvC,EAEMC,EAA6B,IAAM,CAEzC,EAEA,OACElB,EAAC,WACC,uBAAqB,eACrB,UAAWK,EACT;AAAA,0CAEAG,EACA,CACE,YAAaO,IAAU,OACvB,cAAeC,IAAU,SAC3B,CACF,EAEA,UAAAjB,EAAC,SAAM,SAAQ,GAAC,MAAK,GAAC,YAAW,GAAC,KAAI,GAAC,UAAU,8DAC/C,SAAAA,EAAC,UAAO,IAAKY,GAAiB,IAAK,KAAK,YAAY,EACtD,EACAZ,EAAC,SAAM,SAAQ,GAAC,MAAK,GAAC,YAAW,GAAC,KAAI,GAAC,UAAU,wDAC/C,SAAAA,EAAC,UAAO,IAAKa,GAAuB,IAAK,KAAK,YAAY,EAC5D,EACAb,EAAC,OACC,UAAW;AAAA;AAAA;AAAA;AAAA,QAMX,SAAAC,EAAC,OACC,UAAW;AAAA;AAAA;AAAA,UAKX,UAAAA,EAAC,OAAI,UAAU,+EACb,UAAAD,EAACG,EAAA,CAAQ,GAAG,KAAK,KAAM,EAAG,UAAW,uBAAwB,KAAMO,EAAO,EAC1EV,EAACI,EAAA,CAAK,KAAM,EAAG,UAAW,4BAA6B,KAAMO,EAAa,GAC5E,EAEAV,EAAC,OAAI,UAAU,mFACZ,UAAAc,GAAmBA,EAAgB,MAClCf,EAAC,KAAE,KAAMe,EAAgB,KACvB,SAAAf,EAACE,EAAA,CACC,QAAQ,YACR,QAASiB,EACT,UAAWb,EAAG,gCAAgC,EAE7C,SAAAS,EAAgB,KACnB,EACF,EAEDD,GAAiBA,EAAc,MAC9Bd,EAAC,KAAE,KAAMc,EAAc,KACrB,SAAAd,EAACE,EAAA,CACC,QAAQ,UACR,QAASgB,EACT,UAAWZ,EAAG,8BAA8B,EAE3C,SAAAQ,EAAc,KACjB,EACF,GAEJ,GACF,EACF,GACF,CAEJ,EAEA,IAAOM,EAAQf,EAAWE,CAAY",
6
- "names": ["jsx", "jsxs", "Button", "Heading", "Text", "withStyles", "cn", "MemberEquity", "data", "className", "title", "description", "backgroundImage", "mobileBackgroundImage", "primaryButton", "secondaryButton", "theme", "shape", "handleButtonPrimaryClick", "handleButtonSecondaryClick", "MemberEquity_default"]
4
+ "sourcesContent": ["'use client'\nimport React, { useImperativeHandle, useRef } from 'react'\nimport { useMediaQuery } from 'react-responsive'\nimport { Button, Heading, Picture, Text } from '../../components/index.js'\nimport { withStyles } from '../../shared/Styles.js'\nimport type { MemberEquityProps } from './types.js'\nimport { cn } from '../../helpers/utils.js'\nimport { isVideo } from '../../shared/mimeType.js'\nimport { useExposure } from '../../hooks/useExposure.js'\nimport { trackUrlRef } from '../../shared/trackUrlRef.js'\n\nconst componentType = 'image'\nconst componentName = 'member_area'\n\nconst MemberEquity: React.FC<MemberEquityProps> = React.forwardRef<HTMLDivElement, MemberEquityProps>(\n ({ data, className = '' }, ref) => {\n const {\n title,\n description,\n backgroundImage,\n mobileBackgroundImage,\n primaryButton,\n secondaryButton,\n theme,\n shape,\n primaryButtonHandler,\n secondaryButtonHandler,\n } = data\n\n const isMobile = useMediaQuery({ query: '(max-width: 768px)' })\n const innerRef = useRef<HTMLDivElement>(null)\n\n useImperativeHandle(ref, () => innerRef.current as HTMLDivElement)\n\n useExposure(innerRef, {\n componentType,\n componentName,\n componentTitle: title,\n componentDescription: description,\n })\n\n const handleButtonPrimaryClick = () => {\n // \u6267\u884C\u4E3B\u6309\u94AE\u7684\u70B9\u51FB\u4E8B\u4EF6\n primaryButtonHandler?.()\n }\n\n const handleButtonSecondaryClick = () => {\n // \u6267\u884C\u526F\u6309\u94AE\u7684\u70B9\u51FB\u4E8B\u4EF6\n secondaryButtonHandler?.()\n }\n\n const lgButtonSize = 'lg-desktop:px-7 lg-desktop:pb-[14px] lg-desktop:pt-[15px] lg-desktop:text-[16px]'\n\n return (\n <section\n data-ui-component-id=\"MemberEquity\"\n className={cn(\n 'lg-desktop:aspect-[1384/560] desktop:aspect-[1090/488] laptop:aspect-[774/336] tablet:aspect-[704/480]',\n 'text-info-primary relative overflow-hidden',\n className,\n {\n 'aiui-dark': theme === 'dark',\n 'rounded-box': shape === 'rounded',\n 'h-[480px]': isMobile,\n }\n )}\n ref={innerRef}\n >\n {isVideo(backgroundImage?.mimeType) ? (\n <video\n autoPlay\n muted\n playsInline\n loop\n className=\"laptop:block absolute inset-0 hidden size-full object-cover\"\n >\n <source src={backgroundImage?.url} type=\"video/mp4\" />\n </video>\n ) : (\n <Picture\n source={backgroundImage?.url}\n alt={backgroundImage?.alt}\n className=\"laptop:block absolute inset-0 hidden size-full object-cover [&_img]:h-full [&_img]:object-cover\"\n />\n )}\n {isVideo(mobileBackgroundImage?.mimeType) ? (\n <video autoPlay muted playsInline loop className=\"laptop:hidden absolute inset-0 size-full object-cover\">\n <source src={mobileBackgroundImage?.url} type=\"video/mp4\" />\n </video>\n ) : (\n <Picture\n source={mobileBackgroundImage?.url}\n alt={mobileBackgroundImage?.alt}\n className=\"laptop:hidden absolute inset-0 size-full object-cover [&_img]:h-full [&_img]:object-cover\"\n />\n )}\n <div className={'laptop:items-center absolute inset-0 flex w-full items-end py-[16px]'}>\n <div\n className={`\n tablet:px-6 laptop:px-[76px] desktop:px-[111px] lg-desktop:px-[139px] tablet:gap-5 \n laptop:gap-4 desktop:gap-6 lg-desktop:gap-8 flex w-full flex-col gap-6 px-4\n `}\n >\n <div className=\"desktop:gap-2 lg-desktop:gap-4 laptop:max-w-[286px] desktop:max-w-[426px] lg-desktop:max-w-[547px] flex flex-col\">\n <Heading as=\"h2\" size={3} className={`member-equity-title `} html={title} />\n <Text size={2} className={`member-equity-description`} html={description} />\n </div>\n {/* \u6309\u94AE\u7EC4 */}\n <div className=\"tablet:gap-3 laptop:gap-4 desktop:gap-4 lg-desktop:gap-4 flex items-center gap-3\">\n {secondaryButton && secondaryButton.text && (\n <a href={trackUrlRef(secondaryButton.link, `${componentType}_${componentName}`)}>\n <Button\n variant=\"secondary\"\n onClick={handleButtonSecondaryClick}\n className={cn('member-equity-button-secondary ', lgButtonSize)}\n >\n {secondaryButton.text}\n </Button>\n </a>\n )}\n {primaryButton && primaryButton.text && (\n <a href={trackUrlRef(primaryButton.link, `${componentType}_${componentName}`)}>\n <Button\n variant=\"primary\"\n onClick={handleButtonPrimaryClick}\n className={cn('member-equity-button-primary ', lgButtonSize)}\n >\n {primaryButton.text}\n </Button>\n </a>\n )}\n </div>\n </div>\n </div>\n </section>\n )\n }\n)\n\nexport default withStyles(MemberEquity)\n"],
5
+ "mappings": "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",
6
+ "names": ["jsx", "jsxs", "React", "useImperativeHandle", "useRef", "useMediaQuery", "Button", "Heading", "Picture", "Text", "withStyles", "cn", "isVideo", "useExposure", "trackUrlRef", "componentType", "componentName", "MemberEquity", "data", "className", "ref", "title", "description", "backgroundImage", "mobileBackgroundImage", "primaryButton", "secondaryButton", "theme", "shape", "primaryButtonHandler", "secondaryButtonHandler", "isMobile", "innerRef", "handleButtonPrimaryClick", "handleButtonSecondaryClick", "lgButtonSize", "MemberEquity_default"]
7
7
  }
@@ -13,11 +13,13 @@ export interface MemberEquityProps extends ComponentCommonProps {
13
13
  text: string;
14
14
  link?: string;
15
15
  };
16
+ primaryButtonHandler?: () => void;
16
17
  /** 副按钮配置 */
17
18
  secondaryButton: {
18
19
  text: string;
19
20
  link?: string;
20
21
  };
22
+ secondaryButtonHandler?: () => void;
21
23
  /** 形状 */
22
24
  shape?: Shape;
23
25
  /** 主题 */
@@ -1,11 +1,8 @@
1
1
  import React from 'react';
2
2
  import type { MultiLayoutGraphicBlockProps } from './types';
3
- declare const _default: {
4
- (props: Omit<MultiLayoutGraphicBlockProps & React.RefAttributes<HTMLDivElement>, keyof import("../../shared/Styles.js").StylesProps> & Partial<import("../../shared/Styles.js").StylesProps> & {
5
- className?: string;
6
- data?: Record<string, any>;
7
- }): import("react/jsx-runtime").JSX.Element;
8
- displayName: string;
9
- };
3
+ declare const _default: React.ForwardRefExoticComponent<Omit<Omit<MultiLayoutGraphicBlockProps & React.RefAttributes<HTMLDivElement>, keyof import("../../shared/Styles.js").StylesProps> & Partial<import("../../shared/Styles.js").StylesProps> & {
4
+ className?: string;
5
+ data?: Record<string, any>;
6
+ }, "ref"> & React.RefAttributes<any>>;
10
7
  export default _default;
11
8
  export type { MultiLayoutGraphicBlockProps };
@@ -1,2 +1,2 @@
1
- import{Fragment as v,jsx as t,jsxs as o}from"react/jsx-runtime";import T from"react";import{useMediaQuery as w}from"react-responsive";import{withStyles as B}from"../../shared/Styles.js";import I from"../../components/picture.js";import g from"../../components/button.js";import{Heading as G}from"../../components/heading.js";import{Text as $}from"../../components/text.js";import{Carousel as k,CarouselContent as y,CarouselItem as N}from"../../components/carousel.js";import{Grid as C,GridItem as h}from"../../components/gird.js";import M from"../Title/index.js";import{cn as L}from"../../helpers/utils.js";import{Tabs as S,TabsList as P,TabsTrigger as R,TabsContent as z}from"../../components/tabs.js";const u=({item:x,shape:b="square",isTab:s=!1})=>{const d=w({query:"(max-width: 1024px)"}),{theme:n="light",title:c,description:r,imageUrl:p,primaryButton:i,secondaryButton:m}=x,e="lg-desktop:px-7 lg-desktop:pb-[14px] lg-desktop:pt-[15px] lg-desktop:text-[16px]";return o("div",{className:L("item-wrapper group relative box-border w-full overflow-hidden",{"rounded-2xl":b==="rounded","aiui-dark":n==="dark","h-[480px]":d&&!s,"h-[400px]":d&&s},"text-info-primary"),children:[t(I,{source:p?.url,className:"inset-0 h-full overflow-hidden",imgClassName:"h-full transition-all duration-300 group-hover:scale-105 object-cover",style:{aspectRatio:`${p?.width}/${p?.height}`}}),o("div",{className:"laptop:p-6 desktop:p-[32px] absolute inset-x-0 bottom-0 flex flex-col gap-6 p-3",children:[o("div",{children:[t(G,{size:3,className:"item-title",html:c}),t($,{size:3,className:"item-description desktop:mt-1 text-text-2 lg-desktop:text-text-3",html:r})]}),o("div",{className:"flex gap-[16px]",children:[m&&m.text&&t("a",{href:m.link,children:t(g,{className:e,variant:"secondary",children:m.text})}),i&&i.text&&t("a",{href:i.link,children:t(g,{className:e,variant:"primary",children:i.text})})]})]})]})},q=T.forwardRef((x,b)=>{const{shape:s,sectionTitle:d,groupByTab:n=!1,items:c=[],carousel:r}=x.data,p=e=>{switch(e){case"full":return 12;case"half":return 6;case"one-third":return 4}},i=c.map(e=>e.tabName).filter(Boolean).filter((e,a,l)=>l.indexOf(e)===a),m=i.map(e=>({tabName:e,items:c.filter(a=>a.tabName===e)})).reduce((e,a)=>(e[a.tabName]=a.items,e),{});return o("section",{"data-ui-component-id":"MultiLayoutGraphicBlock",ref:b,className:"text-info-primary",children:[d&&t(M,{data:{title:d},className:"section-title"}),n?o(S,{shape:s,align:"left",defaultValue:i[0],children:[t(P,{children:i.map((e,a)=>t(R,{value:e,children:e},a))}),i.map((e,a)=>t(z,{value:e,className:"desktop:mt-[36px] mt-[24px] w-full",children:o(v,{children:[o(C,{className:"w-full",children:[m[e].map((l,f)=>t(h,{span:p(l.width??"full"),className:"laptop:block hidden",children:t(u,{item:l,shape:s,isTab:n})},`${l?.title||""}${f}`)),t(h,{className:"laptop:hidden block",span:12,children:t(k,{className:"",children:t(y,{className:"flex",children:m[e].map((l,f)=>t(N,{className:"tablet:basis-2/5 laptop:basis-[32%] flex basis-4/5",children:t(u,{item:l,shape:s,isTab:n})},`${l?.title||""}${f}`))})})})]}),r&&r?.items.length>0?t(k,{className:"laptop:mt-4 mt-3",children:t(y,{className:"flex",children:r.items.map((l,f)=>t(N,{className:"tablet:basis-2/5 laptop:basis-[32%] flex basis-4/5",children:t(u,{item:l,shape:s,isTab:n})},f))})}):null]})},a))]}):o(v,{children:[o(C,{className:"w-full",children:[c.map((e,a)=>t(h,{span:p(e.width??"full"),className:"laptop:block hidden",children:t(u,{item:e,shape:s})},`${e?.title||""}${a}`)),c.map((e,a)=>t(h,{span:p("full"),className:"laptop:hidden block",children:t(u,{item:e,shape:s})},`${e?.title||""}${a}`))]}),r&&r?.items.length>0?t(k,{className:"laptop:mt-4 mt-3",children:t(y,{className:"flex",children:r.items.map((e,a)=>t(N,{className:"tablet:basis-2/5 laptop:basis-[32%] flex basis-4/5",children:t(u,{item:e,shape:s})},`${e?.title||""}${a}`))})}):null]})]})});var W=B(q);export{W as default};
1
+ import{Fragment as T,jsx as a,jsxs as o}from"react/jsx-runtime";import P,{useState as V,useEffect as G,useRef as I}from"react";import{useMediaQuery as L}from"react-responsive";import{withStyles as _}from"../../shared/Styles.js";import x from"../../components/picture.js";import y from"../../components/button.js";import{Heading as $}from"../../components/heading.js";import{Text as S}from"../../components/text.js";import{Grid as R,GridItem as B}from"../../components/gird.js";import C from"../Title/index.js";import{cn as E}from"../../helpers/utils.js";import g from"../SwiperBox/index.js";import{Tabs as j,TabsList as H,TabsTrigger as z,TabsContent as D}from"../../components/tabs.js";import{useExposure as U}from"../../hooks/useExposure.js";import{trackUrlRef as M}from"../../shared/trackUrlRef.js";import{gaTrack as Q}from"../../shared/track.js";const k="image",b="p1_banner",u=({data:m,configuration:l,jIndex:i})=>{const[r,f]=V(!1),p=L({query:"(max-width: 768px)"}),s=I(null),h=()=>{switch(l?.num){case 1:return"tablet:aspect-w-[704] tablet:aspect-h-[400] laptop:aspect-w-[896] laptop:aspect-h-[384] desktop:aspect-w-[1312] desktop:aspect-h-[512] lg-desktop:aspect-w-[1664] lg-desktop:aspect-h-[640]";case 2:return"tablet:aspect-w-[704] tablet:aspect-h-[480] laptop:aspect-w-[440] laptop:aspect-h-[384] desktop:aspect-w-[648] desktop:aspect-h-[512] lg-desktop:aspect-w-[824] lg-desktop:aspect-h-[640]";default:return"tablet:aspect-w-[296] tablet:aspect-h-[400] laptop:aspect-w-[288] laptop:aspect-h-[384] desktop:aspect-w-[427] desktop:aspect-h-[512] lg-desktop:aspect-w-[544] lg-desktop:aspect-h-[640]"}};U(s,{componentType:k,componentName:b,position:i,componentTitle:m.title,componentDescription:m.description,navigation:l?.activeTab}),G(()=>{f(p)},[p]);const{theme:n="light",title:w,description:c,imageUrl:e,primaryButton:t,secondaryButton:d,imageMobileUrl:N}=m,v="lg-desktop:px-7 lg-desktop:pb-[14px] lg-desktop:pt-[15px] lg-desktop:text-[16px]";return a("div",{className:E("item-wrapper text-info-primary group relative box-border w-full overflow-hidden",l?.isTab?h():"tablet:aspect-w-[704] tablet:aspect-h-[480] laptop:aspect-w-[440] laptop:aspect-h-[384] desktop:aspect-w-[648] desktop:aspect-h-[512] lg-desktop:aspect-w-[824] lg-desktop:aspect-h-[640]",{"rounded-2xl":l?.shape==="rounded","aiui-dark":n==="dark","h-[480px]":r&&!l?.isTab,"h-[400px]":r&&l?.isTab},"text-info-primary"),ref:s,children:o("div",{className:"absolute inset-0",children:[a(x,{source:e?.url,className:"tablet:block hidden h-full overflow-hidden",imgClassName:"h-full transition-all duration-300 group-hover:scale-105 object-cover",style:{aspectRatio:`${e?.width}/${e?.height}`}}),a(x,{source:N?.url||e?.url,className:"tablet:hidden block h-full overflow-hidden",imgClassName:"h-full transition-all duration-300 object-cover"}),o("div",{className:"laptop:p-6 desktop:p-[32px] absolute inset-x-0 bottom-0 flex flex-col gap-6 p-3",children:[o("div",{children:[a($,{size:3,className:"item-title",html:w}),a(S,{size:3,className:"item-description desktop:mt-1 text-text-2 desktop:text-text-4",html:c})]}),o("div",{className:"flex gap-[16px]",children:[d&&d.text&&a("a",{href:M(d.link,`${k}_${b}`),children:a(y,{className:v,variant:"secondary",children:d.text})}),t&&t.text&&a("a",{href:M(t.link,`${k}_${b}`),children:a(y,{className:v,variant:"primary",children:t.text})})]})]})]})})},q=P.forwardRef((m,l)=>{const{shape:i,sectionTitle:r,groupByTab:f=!1,items:p=[],carousel:s}=m.data,h=e=>{switch(e){case"full":return 12;case"half":return 6;case"one-third":return 4}},n=p.map(e=>e.tabName).filter(Boolean).filter((e,t,d)=>d.indexOf(e)===t),w=(e,t)=>{switch(e){case 1:return 1;case 2:return 2;default:return t?2.3:3}},c=n.map(e=>({tabName:e,items:p.filter(t=>t.tabName===e)})).reduce((e,t)=>(e[t.tabName]=t.items,e),{});return o("section",{"data-ui-component-id":"MultiLayoutGraphicBlock",ref:l,className:"text-info-primary",children:[r&&a(C,{data:{title:r},className:"section-title"}),f?o(j,{shape:i,align:"left",defaultValue:n[0],children:[a(H,{children:n.map((e,t)=>a(z,{value:e,onClick:()=>{Q({event:"ga4Event",event_name:"component_click",event_parameters:{page_group:"Home Page",component_type:k,component_name:b,component_title:r,component_position:1,navigation:e}})},children:e},t))}),n.map((e,t)=>a(D,{value:e,className:"desktop:mt-[36px] mt-[24px] w-full",children:o(T,{children:[a(g,{className:"!overflow-visible",id:"MultiLayoutGraphicBlock1",data:{list:c?.[e]||[],configuration:{shape:i,isTab:f,activeTab:e,num:c?.[e]?.length||0}},Slide:u,breakpoints:{0:{spaceBetween:12,freeMode:!1,slidesPerView:1},374:{spaceBetween:12,freeMode:!1,slidesPerView:1.1},768:{spaceBetween:16,freeMode:!1,slidesPerView:w(c?.[e]?.length||0,!0)},1024:{spaceBetween:16,freeMode:!1,slidesPerView:w(c?.[e]?.length||0)}}}),s&&s?.items.length>0?a(g,{className:"!overflow-visible",id:"MultiLayoutGraphicBlock2",data:{list:s?.items||[],configuration:{shape:i,isTab:f}},Slide:u,breakpoints:{0:{spaceBetween:12,freeMode:!1,slidesPerView:1},374:{spaceBetween:12,freeMode:!1,slidesPerView:1.1},768:{spaceBetween:16,freeMode:!1,slidesPerView:2.3},1024:{spaceBetween:16,freeMode:!1,slidesPerView:3.1},1440:{spaceBetween:16,freeMode:!1,slidesPerView:4}}}):null]})},t))]}):o(T,{children:[o(R,{className:"w-full",children:[p.map((e,t)=>a(B,{span:h(e.width??"full"),className:"laptop:block hidden",children:a(u,{data:e,configuration:{shape:i},jIndex:t})},`${e?.title||""}${t}`)),p.map((e,t)=>a(B,{span:h("full"),className:"laptop:hidden block",children:a(u,{data:e,configuration:{shape:i},jIndex:t})},`${e?.title||""}${t}`))]}),s&&s?.items.length>0?a(g,{className:"!overflow-visible",id:"MultiLayoutGraphicBlock3",data:{list:s?.items||[],configuration:{shape:i}},Slide:u,breakpoints:{0:{spaceBetween:12,freeMode:!1,slidesPerView:1},374:{spaceBetween:12,freeMode:!1,slidesPerView:1.1},768:{spaceBetween:16,freeMode:!1,slidesPerView:2.3},1024:{spaceBetween:16,freeMode:!1,slidesPerView:3.1},1440:{spaceBetween:16,freeMode:!1,slidesPerView:4}}}):null]})]})});var ie=_(q);export{ie as default};
2
2
  //# sourceMappingURL=MultiLayoutGraphicBlock.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/biz-components/MultiLayoutGraphicBlock/MultiLayoutGraphicBlock.tsx"],
4
- "sourcesContent": ["import React from 'react'\nimport { useMediaQuery } from 'react-responsive'\nimport type { MultiLayoutGraphicBlockProps, Item } from './types'\nimport { withStyles } from '../../shared/Styles.js'\nimport Picture from '../../components/picture.js'\nimport Button from '../../components/button.js'\nimport { Heading } from '../../components/heading.js'\nimport { Text } from '../../components/text.js'\nimport { Carousel, CarouselContent, CarouselItem } from '../../components/carousel.js'\nimport { Grid, GridItem } from '../../components/gird.js'\nimport Title from '../Title/index.js'\nimport type { Shape } from '../../types/props'\nimport { cn } from '../../helpers/utils.js'\nimport { Tabs, TabsList, TabsTrigger, TabsContent } from '../../components/tabs.js'\nconst ItemBlock = ({\n item,\n shape = 'square',\n isTab = false,\n}: { item: Item } & { shape?: Shape } & { isTab?: boolean }) => {\n const isMobile = useMediaQuery({ query: '(max-width: 1024px)' })\n\n const { theme = 'light', title, description, imageUrl, primaryButton, secondaryButton } = item\n const lgButtonSize = 'lg-desktop:px-7 lg-desktop:pb-[14px] lg-desktop:pt-[15px] lg-desktop:text-[16px]'\n\n return (\n <div\n className={cn(\n 'item-wrapper group relative box-border w-full overflow-hidden',\n {\n 'rounded-2xl': shape === 'rounded',\n 'aiui-dark': theme === 'dark',\n 'h-[480px]': isMobile && !isTab,\n 'h-[400px]': isMobile && isTab,\n },\n `text-info-primary`\n )}\n >\n <Picture\n source={imageUrl?.url}\n className=\"inset-0 h-full overflow-hidden\"\n imgClassName=\"h-full transition-all duration-300 group-hover:scale-105 object-cover\"\n style={{ aspectRatio: `${imageUrl?.width}/${imageUrl?.height}` }}\n />\n <div className=\"laptop:p-6 desktop:p-[32px] absolute inset-x-0 bottom-0 flex flex-col gap-6 p-3\">\n <div>\n <Heading size={3} className=\"item-title\" html={title} />\n <Text\n size={3}\n className=\"item-description desktop:mt-1 text-text-2 lg-desktop:text-text-3\"\n html={description}\n />\n </div>\n <div className=\"flex gap-[16px]\">\n {secondaryButton && secondaryButton.text && (\n <a href={secondaryButton.link}>\n <Button className={lgButtonSize} variant=\"secondary\">\n {secondaryButton.text}\n </Button>\n </a>\n )}\n {primaryButton && primaryButton.text && (\n <a href={primaryButton.link}>\n <Button className={lgButtonSize} variant=\"primary\">\n {primaryButton.text}\n </Button>\n </a>\n )}\n </div>\n </div>\n </div>\n )\n}\n\nconst MultiLayoutGraphicBlock = React.forwardRef<HTMLDivElement, MultiLayoutGraphicBlockProps>((props, ref) => {\n const { shape, sectionTitle, groupByTab = false, items = [], carousel } = props.data\n const getSpan = (width: 'full' | 'half' | 'one-third') => {\n switch (width) {\n case 'full':\n return 12\n case 'half':\n return 6\n case 'one-third':\n return 4\n }\n }\n\n const tabNames = items\n .map(item => item.tabName)\n .filter(Boolean)\n .filter((item, index, arr) => arr.indexOf(item) === index) as string[]\n\n const tabItemsMaps = tabNames\n .map(tabName => ({\n tabName,\n items: items.filter(item => item.tabName === tabName),\n }))\n .reduce(\n (acc, cur) => {\n acc[cur.tabName] = cur.items\n return acc\n },\n {} as Record<string, (Item & { width?: 'full' | 'half' | 'one-third' })[]>\n )\n\n return (\n <section data-ui-component-id=\"MultiLayoutGraphicBlock\" ref={ref} className=\"text-info-primary\">\n {sectionTitle && <Title data={{ title: sectionTitle }} className=\"section-title\" />}\n\n {groupByTab ? (\n <Tabs shape={shape} align=\"left\" defaultValue={tabNames[0]!}>\n <TabsList>\n {tabNames.map((tabName, index) => (\n <TabsTrigger key={index} value={tabName!}>\n {tabName}\n </TabsTrigger>\n ))}\n </TabsList>\n {tabNames.map((tabName, index) => (\n <TabsContent key={index} value={tabName!} className=\"desktop:mt-[36px] mt-[24px] w-full\">\n <>\n <Grid className=\"w-full\">\n {tabItemsMaps[tabName].map((item, index) => (\n <GridItem\n key={`${item?.title || ''}${index}`}\n span={getSpan(item.width ?? 'full')}\n className=\"laptop:block hidden\"\n >\n <ItemBlock item={item} shape={shape} isTab={groupByTab} />\n </GridItem>\n ))}\n {\n <GridItem className=\"laptop:hidden block\" span={12}>\n <Carousel className=\"\">\n <CarouselContent className=\"flex\">\n {tabItemsMaps[tabName].map((item, index) => (\n <CarouselItem\n key={`${item?.title || ''}${index}`}\n className=\"tablet:basis-2/5 laptop:basis-[32%] flex basis-4/5\"\n >\n <ItemBlock item={item} shape={shape} isTab={groupByTab} />\n </CarouselItem>\n ))}\n </CarouselContent>\n </Carousel>\n </GridItem>\n }\n </Grid>\n {carousel && carousel?.items.length > 0 ? (\n <Carousel className=\"laptop:mt-4 mt-3\">\n <CarouselContent className=\"flex\">\n {carousel.items.map((item, index) => (\n <CarouselItem key={index} className=\"tablet:basis-2/5 laptop:basis-[32%] flex basis-4/5\">\n <ItemBlock item={item} shape={shape} isTab={groupByTab} />\n </CarouselItem>\n ))}\n </CarouselContent>\n </Carousel>\n ) : null}\n </>\n </TabsContent>\n ))}\n </Tabs>\n ) : (\n <>\n <Grid className=\"w-full\">\n {items.map((item, index) => (\n <GridItem\n key={`${item?.title || ''}${index}`}\n span={getSpan(item.width ?? 'full')}\n className=\"laptop:block hidden\"\n >\n <ItemBlock item={item} shape={shape} />\n </GridItem>\n ))}\n {items.map((item, index) => (\n <GridItem key={`${item?.title || ''}${index}`} span={getSpan('full')} className=\"laptop:hidden block\">\n <ItemBlock item={item} shape={shape} />\n </GridItem>\n ))}\n </Grid>\n {carousel && carousel?.items.length > 0 ? (\n <Carousel className=\"laptop:mt-4 mt-3\">\n <CarouselContent className=\"flex\">\n {carousel.items.map((item, index) => (\n <CarouselItem\n key={`${item?.title || ''}${index}`}\n className=\"tablet:basis-2/5 laptop:basis-[32%] flex basis-4/5\"\n >\n <ItemBlock item={item} shape={shape} />\n </CarouselItem>\n ))}\n </CarouselContent>\n </Carousel>\n ) : null}\n </>\n )}\n </section>\n )\n})\n\nexport default withStyles(MultiLayoutGraphicBlock)\nexport type { MultiLayoutGraphicBlockProps }\n"],
5
- "mappings": "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",
6
- "names": ["Fragment", "jsx", "jsxs", "React", "useMediaQuery", "withStyles", "Picture", "Button", "Heading", "Text", "Carousel", "CarouselContent", "CarouselItem", "Grid", "GridItem", "Title", "cn", "Tabs", "TabsList", "TabsTrigger", "TabsContent", "ItemBlock", "item", "shape", "isTab", "isMobile", "theme", "title", "description", "imageUrl", "primaryButton", "secondaryButton", "lgButtonSize", "MultiLayoutGraphicBlock", "props", "ref", "sectionTitle", "groupByTab", "items", "carousel", "getSpan", "width", "tabNames", "index", "arr", "tabItemsMaps", "tabName", "acc", "cur", "MultiLayoutGraphicBlock_default"]
4
+ "sourcesContent": ["import React, { useState, useEffect, useRef } from 'react'\nimport { useMediaQuery } from 'react-responsive'\nimport type { MultiLayoutGraphicBlockProps, Item } from './types'\nimport { withStyles } from '../../shared/Styles.js'\nimport Picture from '../../components/picture.js'\nimport Button from '../../components/button.js'\nimport { Heading } from '../../components/heading.js'\nimport { Text } from '../../components/text.js'\nimport { Grid, GridItem } from '../../components/gird.js'\nimport Title from '../Title/index.js'\nimport { cn } from '../../helpers/utils.js'\nimport SwiperBox from '../SwiperBox/index.js'\nimport { Tabs, TabsList, TabsTrigger, TabsContent } from '../../components/tabs.js'\nimport { useExposure } from '../../hooks/useExposure.js'\nimport { trackUrlRef } from '../../shared/trackUrlRef.js'\nimport { gaTrack } from '../../shared/track.js'\n\nconst componentType = 'image'\nconst componentName = 'p1_banner'\n\nconst ItemBlock = ({ data: item, configuration, jIndex }: { data: Item; configuration?: any; jIndex?: number }) => {\n const [isMobile, setIsMobile] = useState(false)\n const mediaQuery = useMediaQuery({ query: '(max-width: 768px)' })\n\n const ref = useRef<HTMLDivElement>(null)\n\n const handleAspect = () => {\n switch (configuration?.num) {\n case 1:\n return 'tablet:aspect-w-[704] tablet:aspect-h-[400] laptop:aspect-w-[896] laptop:aspect-h-[384] desktop:aspect-w-[1312] desktop:aspect-h-[512] lg-desktop:aspect-w-[1664] lg-desktop:aspect-h-[640]'\n case 2:\n return 'tablet:aspect-w-[704] tablet:aspect-h-[480] laptop:aspect-w-[440] laptop:aspect-h-[384] desktop:aspect-w-[648] desktop:aspect-h-[512] lg-desktop:aspect-w-[824] lg-desktop:aspect-h-[640]'\n default:\n return 'tablet:aspect-w-[296] tablet:aspect-h-[400] laptop:aspect-w-[288] laptop:aspect-h-[384] desktop:aspect-w-[427] desktop:aspect-h-[512] lg-desktop:aspect-w-[544] lg-desktop:aspect-h-[640]'\n }\n }\n\n useExposure(ref, {\n componentType: componentType,\n componentName: componentName,\n position: jIndex,\n componentTitle: item.title,\n componentDescription: item.description,\n navigation: configuration?.activeTab,\n })\n\n useEffect(() => {\n setIsMobile(mediaQuery)\n }, [mediaQuery])\n\n const { theme = 'light', title, description, imageUrl, primaryButton, secondaryButton, imageMobileUrl } = item\n const lgButtonSize = 'lg-desktop:px-7 lg-desktop:pb-[14px] lg-desktop:pt-[15px] lg-desktop:text-[16px]'\n\n return (\n <div\n className={cn(\n 'item-wrapper text-info-primary group relative box-border w-full overflow-hidden',\n configuration?.isTab\n ? handleAspect()\n : 'tablet:aspect-w-[704] tablet:aspect-h-[480] laptop:aspect-w-[440] laptop:aspect-h-[384] desktop:aspect-w-[648] desktop:aspect-h-[512] lg-desktop:aspect-w-[824] lg-desktop:aspect-h-[640]',\n {\n 'rounded-2xl': configuration?.shape === 'rounded',\n 'aiui-dark': theme === 'dark',\n 'h-[480px]': isMobile && !configuration?.isTab,\n 'h-[400px]': isMobile && configuration?.isTab,\n },\n `text-info-primary`\n )}\n ref={ref}\n >\n <div className=\"absolute inset-0\">\n <Picture\n source={imageUrl?.url}\n className=\"tablet:block hidden h-full overflow-hidden\"\n imgClassName=\"h-full transition-all duration-300 group-hover:scale-105 object-cover\"\n style={{ aspectRatio: `${imageUrl?.width}/${imageUrl?.height}` }}\n />\n <Picture\n source={imageMobileUrl?.url || imageUrl?.url}\n className=\"tablet:hidden block h-full overflow-hidden\"\n imgClassName=\"h-full transition-all duration-300 object-cover\"\n />\n <div className=\"laptop:p-6 desktop:p-[32px] absolute inset-x-0 bottom-0 flex flex-col gap-6 p-3\">\n <div>\n <Heading size={3} className=\"item-title\" html={title} />\n <Text\n size={3}\n className=\"item-description desktop:mt-1 text-text-2 desktop:text-text-4\"\n html={description}\n />\n </div>\n <div className=\"flex gap-[16px]\">\n {secondaryButton && secondaryButton.text && (\n <a href={trackUrlRef(secondaryButton.link, `${componentType}_${componentName}`)}>\n <Button className={lgButtonSize} variant=\"secondary\">\n {secondaryButton.text}\n </Button>\n </a>\n )}\n {primaryButton && primaryButton.text && (\n <a href={trackUrlRef(primaryButton.link, `${componentType}_${componentName}`)}>\n <Button className={lgButtonSize} variant=\"primary\">\n {primaryButton.text}\n </Button>\n </a>\n )}\n </div>\n </div>\n </div>\n </div>\n )\n}\n\nconst MultiLayoutGraphicBlock = React.forwardRef<HTMLDivElement, MultiLayoutGraphicBlockProps>((props, ref) => {\n const { shape, sectionTitle, groupByTab = false, items = [], carousel } = props.data\n\n const getSpan = (width: 'full' | 'half' | 'one-third') => {\n switch (width) {\n case 'full':\n return 12\n case 'half':\n return 6\n case 'one-third':\n return 4\n }\n }\n\n const tabNames = items\n .map(item => item.tabName)\n .filter(Boolean)\n .filter((item, index, arr) => arr.indexOf(item) === index) as string[]\n\n const handleTabNumber = (num: Number, flag?: boolean) => {\n switch (num) {\n case 1:\n return 1\n case 2:\n return 2\n default:\n return flag ? 2.3 : 3\n }\n }\n\n const tabItemsMaps = tabNames\n .map(tabName => ({\n tabName,\n items: items.filter(item => item.tabName === tabName),\n }))\n .reduce(\n (acc, cur) => {\n acc[cur.tabName] = cur.items\n return acc\n },\n {} as Record<string, (Item & { width?: 'full' | 'half' | 'one-third' })[]>\n )\n\n return (\n <section data-ui-component-id=\"MultiLayoutGraphicBlock\" ref={ref} className=\"text-info-primary\">\n {sectionTitle && <Title data={{ title: sectionTitle }} className=\"section-title\" />}\n\n {groupByTab ? (\n <Tabs shape={shape} align=\"left\" defaultValue={tabNames[0]!}>\n <TabsList>\n {tabNames.map((tabName, index) => (\n <TabsTrigger\n key={index}\n value={tabName!}\n onClick={() => {\n gaTrack({\n event: 'ga4Event',\n event_name: 'component_click',\n event_parameters: {\n page_group: 'Home Page',\n component_type: componentType,\n component_name: componentName,\n component_title: sectionTitle,\n component_position: 1,\n navigation: tabName,\n },\n })\n }}\n >\n {tabName}\n </TabsTrigger>\n ))}\n </TabsList>\n {tabNames.map((tabName, index) => (\n <TabsContent key={index} value={tabName!} className=\"desktop:mt-[36px] mt-[24px] w-full\">\n <>\n <SwiperBox\n className=\"!overflow-visible\"\n id={'MultiLayoutGraphicBlock1'}\n data={{\n list: tabItemsMaps?.[tabName] || [],\n configuration: {\n shape: shape,\n isTab: groupByTab,\n activeTab: tabName,\n num: tabItemsMaps?.[tabName]?.length || 0,\n },\n }}\n Slide={ItemBlock}\n breakpoints={{\n 0: {\n spaceBetween: 12,\n freeMode: false,\n slidesPerView: 1,\n },\n 374: {\n spaceBetween: 12,\n freeMode: false,\n slidesPerView: 1.1,\n },\n 768: {\n spaceBetween: 16,\n freeMode: false,\n slidesPerView: handleTabNumber(tabItemsMaps?.[tabName]?.length || 0, true),\n },\n 1024: {\n spaceBetween: 16,\n freeMode: false,\n slidesPerView: handleTabNumber(tabItemsMaps?.[tabName]?.length || 0),\n },\n }}\n />\n {carousel && carousel?.items.length > 0 ? (\n <SwiperBox\n className=\"!overflow-visible\"\n id={'MultiLayoutGraphicBlock2'}\n data={{ list: carousel?.items || [], configuration: { shape: shape, isTab: groupByTab } }}\n Slide={ItemBlock}\n breakpoints={{\n 0: {\n spaceBetween: 12,\n freeMode: false,\n slidesPerView: 1,\n },\n 374: {\n spaceBetween: 12,\n freeMode: false,\n slidesPerView: 1.1,\n },\n 768: {\n spaceBetween: 16,\n freeMode: false,\n slidesPerView: 2.3,\n },\n 1024: {\n spaceBetween: 16,\n freeMode: false,\n slidesPerView: 3.1,\n },\n 1440: {\n spaceBetween: 16,\n freeMode: false,\n slidesPerView: 4,\n },\n }}\n />\n ) : null}\n </>\n </TabsContent>\n ))}\n </Tabs>\n ) : (\n <>\n <Grid className=\"w-full\">\n {items.map((item, index) => (\n <GridItem\n key={`${item?.title || ''}${index}`}\n span={getSpan(item.width ?? 'full')}\n className=\"laptop:block hidden\"\n >\n <ItemBlock data={item} configuration={{ shape: shape }} jIndex={index} />\n </GridItem>\n ))}\n {items.map((item, index) => (\n <GridItem key={`${item?.title || ''}${index}`} span={getSpan('full')} className=\"laptop:hidden block\">\n <ItemBlock data={item} configuration={{ shape: shape }} jIndex={index} />\n </GridItem>\n ))}\n </Grid>\n {carousel && carousel?.items.length > 0 ? (\n // <Carousel className=\"laptop:mt-4 mt-3\">\n // <CarouselContent className=\"flex\">\n // {carousel.items.map((item, index) => (\n // <CarouselItem\n // key={`${item?.title || ''}${index}`}\n // className=\"tablet:basis-2/5 laptop:basis-[32%] flex basis-4/5\"\n // >\n // <ItemBlock item={item} shape={shape} />\n // </CarouselItem>\n // ))}\n // </CarouselContent>\n // </Carousel>\n <SwiperBox\n className=\"!overflow-visible\"\n id={'MultiLayoutGraphicBlock3'}\n data={{ list: carousel?.items || [], configuration: { shape: shape } }}\n Slide={ItemBlock}\n breakpoints={{\n 0: {\n spaceBetween: 12,\n freeMode: false,\n slidesPerView: 1,\n },\n 374: {\n spaceBetween: 12,\n freeMode: false,\n slidesPerView: 1.1,\n },\n 768: {\n spaceBetween: 16,\n freeMode: false,\n slidesPerView: 2.3,\n },\n 1024: {\n spaceBetween: 16,\n freeMode: false,\n slidesPerView: 3.1,\n },\n 1440: {\n spaceBetween: 16,\n freeMode: false,\n slidesPerView: 4,\n },\n }}\n />\n ) : null}\n </>\n )}\n </section>\n )\n})\n\nexport default withStyles(MultiLayoutGraphicBlock)\nexport type { MultiLayoutGraphicBlockProps }\n"],
5
+ "mappings": "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",
6
+ "names": ["Fragment", "jsx", "jsxs", "React", "useState", "useEffect", "useRef", "useMediaQuery", "withStyles", "Picture", "Button", "Heading", "Text", "Grid", "GridItem", "Title", "cn", "SwiperBox", "Tabs", "TabsList", "TabsTrigger", "TabsContent", "useExposure", "trackUrlRef", "gaTrack", "componentType", "componentName", "ItemBlock", "item", "configuration", "jIndex", "isMobile", "setIsMobile", "mediaQuery", "ref", "handleAspect", "theme", "title", "description", "imageUrl", "primaryButton", "secondaryButton", "imageMobileUrl", "lgButtonSize", "MultiLayoutGraphicBlock", "props", "shape", "sectionTitle", "groupByTab", "items", "carousel", "getSpan", "width", "tabNames", "index", "arr", "handleTabNumber", "num", "flag", "tabItemsMaps", "tabName", "acc", "cur", "MultiLayoutGraphicBlock_default"]
7
7
  }
@@ -4,6 +4,7 @@ export type Item = {
4
4
  title: string;
5
5
  description: string;
6
6
  imageUrl: Media;
7
+ imageMobileUrl?: Media;
7
8
  tabName?: string;
8
9
  primaryButton: {
9
10
  text: string;
@@ -1,3 +1,4 @@
1
+ import React from 'react';
1
2
  export interface ShelfDisplayItem {
2
3
  id?: string;
3
4
  /** 产品图片*/
@@ -18,8 +19,8 @@ export interface ShelfDisplayItem {
18
19
  data?: ShelfDisplayItem[];
19
20
  }
20
21
  type EventType = {
21
- primaryButton?: (v: any) => void;
22
- secondaryButton?: (v: any) => void;
22
+ primaryButton?: (v: any, index: number) => void;
23
+ secondaryButton?: (v: any, index: number) => void;
23
24
  };
24
25
  export interface ShelfDisplayProps {
25
26
  data: {
@@ -39,6 +40,7 @@ export interface ShelfDisplayProps {
39
40
  primaryButton?: string;
40
41
  /** 副按钮配置 */
41
42
  secondaryButton?: string;
43
+ theme?: 'light' | 'dark';
42
44
  };
43
45
  buildData?: {
44
46
  categories: any[];
@@ -46,16 +48,11 @@ export interface ShelfDisplayProps {
46
48
  };
47
49
  /** 按钮事件*/
48
50
  event?: EventType;
49
- /** 主题色*/
50
- theme?: 'light' | 'dark';
51
51
  className?: string;
52
52
  key?: string;
53
53
  }
54
- declare const _default: {
55
- (props: Omit<ShelfDisplayProps, keyof import("../../shared/Styles.js").StylesProps> & Partial<import("../../shared/Styles.js").StylesProps> & {
56
- className?: string;
57
- data?: Record<string, any>;
58
- }): import("react/jsx-runtime").JSX.Element;
59
- displayName: string;
60
- };
54
+ declare const _default: React.ForwardRefExoticComponent<Omit<Omit<ShelfDisplayProps & React.RefAttributes<HTMLDivElement>, keyof import("../../shared/Styles.js").StylesProps> & Partial<import("../../shared/Styles.js").StylesProps> & {
55
+ className?: string;
56
+ data?: Record<string, any>;
57
+ }, "ref"> & React.RefAttributes<any>>;
61
58
  export default _default;
@@ -1,12 +1,8 @@
1
- "use client";import{jsx as t,jsxs as c}from"react/jsx-runtime";import{useState as k,useEffect as F}from"react";import{cn as p}from"../../helpers/utils.js";import C from"../../components/picture.js";import{Tabs as P,TabsList as I,TabsTrigger as M}from"../../components/tabs.js";import D from"../../components/button.js";import V from"../Title/index.js";import E from"../SwiperBox/index.js";import{withStyles as q}from"../../shared/Styles.js";import{formatVariantPrice as A}from"./shelfDisplay.js";import{useMediaQuery as $}from"react-responsive";const j=({data:e,configuration:r})=>{const m=s=>r?.event?.primaryButton?.(s),u=s=>r?.event?.secondaryButton?.(s),{price:b,basePrice:f}=A({locale:"us",amount:e?.price.amount||0,baseAmount:e?.compareAtPrice?.amount||e?.price.amount||0,currencyCode:e?.price.currencyCode||"USD"}),d=()=>{const s=e?.sku,o=e?.variants;return o?.find(l=>l?.sku===s)?.image?.url||o?.[0]?.image?.url||""};return c("div",{className:p("laptop:pt-4 laptop:px-6 laptop:pb-6 flex size-full cursor-pointer flex-col overflow-hidden bg-[#EAEAEC] p-4 duration-300 hover:bg-[#FFFFFF]",r?.itemShape==="round"?"rounded-2xl":"rounded-none"),children:[t("div",{className:p("lg-desktop:mb-3 lg-desktop:h-[195px] relative mb-2 inline-block h-[140px] overflow-hidden"),children:t(C,{source:d(),className:"flex h-full justify-center object-cover [&_img]:w-auto"})}),t("div",{className:"mb-1 box-border flex h-8 flex-wrap gap-1 overflow-hidden",children:e?.tags?.slice(0,1)?.map?.((s,o)=>t("div",{className:"tablet:text-base box-border h-full rounded-2xl border-2 border-[#86868C] px-2 pt-1 text-sm font-bold text-[#1D1D1F]",children:s},o))}),t("p",{title:e?.title||"",className:"desktop:text-2xl desktop:leading-7 line-clamp-2 max-h-[48px] flex-1 text-xl font-bold text-[#1D1D1F]",children:e?.title||""}),t("h3",{title:e?.description||"",className:"tablet:mt-2 tablet:mb-3 desktop:text-lg mb-2 mt-1 h-6 truncate text-sm font-semibold text-[#1D1D1F]",children:e?.description||""}),c("div",{className:"mb-2 flex items-center",children:[t("div",{className:"tablet:text-2xl text-xl font-bold text-[#1D1D1F]",children:b||""}),t("div",{className:"tablet:text-2xl ml-1 text-xl font-bold text-[#86868C]",children:f||""})]}),c("div",{className:p("flex items-center gap-3",r.direction==="vertical"?"flex-col":""),children:[t(D,{variant:"primary",onClick:()=>m(e),className:`
2
- laptop:text-sm jus desktop:text-base laptop:px-6 desktop:px-7 laptop:py-2.5 desktop:py-3 box-border flex-1 border
3
- border-[#1D1D1F] bg-transparent px-4 py-2 text-xs text-[#1D1D1F] hover:bg-transparent hover:text-black
4
- ${r?.shape==="round"?"desktop:rounded-3xl rounded-[20px]":""}
5
- ${r.direction==="vertical"?"w-full":""}
6
- `,children:r?.primaryButton||""}),t(D,{variant:"secondary",onClick:()=>u(e),className:`
7
- laptop:text-sm desktop:text-base laptop:px-6 desktop:px-7 laptop:py-2.5 desktop:py-3 box-border flex-1 border
8
- border-[#1D1D1F] bg-[#1D1D1F] px-4 py-2 text-xs tracking-[-0.04em] text-white
9
- ${r?.shape==="round"?"desktop:rounded-3xl rounded-[20px]":""}
10
- ${r.direction==="vertical"?"w-full":""}
11
- `,children:r?.secondaryButton||""})]})]},e?.id||e?.handle)},z=({data:e,buildData:r,className:m="",key:u,event:b})=>{const[f,d]=k(""),[s,o]=k([]),y=$({query:"(max-width: 768px)"}),{productsTab:l=[],productsCard:w=[],title:h,align:S="left",isShowTab:v=!0,tabShape:B="square",...N}=e,x=a=>{const n=a?.map(i=>{const g=r?.products?.find(T=>T?.handle===i?.handle);if(g)return{sku:i.sku,...g}})?.filter(i=>i);o(n)};return F(()=>{if(v){d(l?.[0]?.tab||""),x(l?.[0]?.data||[]);return}x(w)},[]),c("div",{className:p("w-full",m),children:[h&&t(V,{data:{title:h}}),v&&t("div",{className:`${y?"w-full overflow-hidden":""}`,children:t(P,{shape:B,align:S,value:f,onValueChange:a=>{d(a);const n=l?.find(i=>i?.tab===a);x(n?.data||[])},className:"mb-8",children:t(I,{children:l?.map((a,n)=>t(M,{value:a?.tab||"",children:a?.tab},n))})})}),t(E,{className:"!overflow-visible",id:"ShelfDisplay"+u,data:{list:s,configuration:{...N,event:b}},Slide:j,breakpoints:{0:{spaceBetween:12,freeMode:!1,slidesPerView:1},374:{spaceBetween:12,freeMode:!1,slidesPerView:1.1},768:{spaceBetween:16,freeMode:!1,slidesPerView:2},1024:{spaceBetween:16,freeMode:!1,slidesPerView:3},1440:{spaceBetween:16,freeMode:!1,slidesPerView:4}}})]})};var X=q(z);export{X as default};
1
+ "use client";import{Fragment as G,jsx as t,jsxs as c}from"react/jsx-runtime";import _,{useState as S,useEffect as M,useRef as E,useImperativeHandle as V}from"react";import{cn as m}from"../../helpers/utils.js";import q from"../../components/picture.js";import H from"./tabSwitch.js";import N from"../../components/button.js";import R from"../Title/index.js";import $ from"../SwiperBox/index.js";import{withStyles as A}from"../../shared/Styles.js";import{formatVariantPrice as L}from"./shelfDisplay.js";import{useMediaQuery as O}from"react-responsive";import{useExposure as U}from"../../hooks/useExposure.js";import{gaTrack as z}from"../../shared/track.js";import{useAiuiContext as j}from"../AiuiProvider/index.js";const T="image",B="product_shelf",F=999999999e-2,Q=({data:e,configuration:i})=>{const{locale:d="us",copyWriting:u}=j(),f=(r,n)=>i?.event?.primaryButton?.(r,n+1),x=(r,n)=>i?.event?.secondaryButton?.(r,n+1),o=e?.variants?.find(r=>r?.sku===e?.sku)||e?.variants?.[0]||{},s=!o?.availableForSale&&o?.price?.amount===F,{price:b,basePrice:v}=L({locale:d,amount:o?.price?.amount||0,baseAmount:e?.compareAtPrice?.amount||e?.price?.amount||0,currencyCode:e?.price?.currencyCode||"USD"}),y=()=>{const r=e?.sku,n=e?.variants;return n?.find(l=>l?.sku===r)?.image?.url||n?.[0]?.image?.url||""};return c("div",{className:m("laptop:pt-4 laptop:px-6 laptop:pb-6 bg-container-secondary-1 hover:bg-info-white flex size-full cursor-pointer flex-col overflow-hidden p-4 duration-300",i?.itemShape==="round"?"rounded-2xl":"rounded-none"),children:[t("div",{className:m("lg-desktop:mb-3 lg-desktop:h-[195px] relative mb-2 inline-block h-[140px] overflow-hidden"),children:t(q,{source:y(),className:"flex h-full justify-center object-cover [&_img]:w-auto"})}),t("div",{className:"mb-1 box-border flex h-8 flex-wrap gap-1 overflow-hidden",children:e?.tags?.slice(0,1)?.map?.((r,n)=>t("div",{className:"tablet:text-base border-info-secondary text-info-primary box-border h-full rounded-2xl border-2 px-2 pt-1 text-sm font-bold",children:r},n))}),t("p",{title:e?.title||"",className:"desktop:text-2xl desktop:leading-7 text-info-primary line-clamp-2 flex-1 text-xl font-bold",children:e?.title||""}),t("h3",{title:e?.description||"",className:"tablet:mt-2 tablet:mb-3 desktop:text-lg text-info-primary mb-2 mt-1 h-6 truncate text-sm font-semibold",children:e?.description||""}),t("div",{className:"mb-2 flex items-center",children:s?t("div",{className:"tablet:text-2xl text-info-primary text-xl font-bold",children:u?.soldOutText}):c(G,{children:[t("div",{className:"tablet:text-2xl text-info-primary text-xl font-bold",children:b||""}),t("div",{className:"tablet:text-2xl text-info-secondary ml-1 text-xl font-bold",children:v||""})]})}),c("div",{className:m("flex items-center gap-3",i.direction==="vertical"?"flex-col":""),children:[t(N,{variant:"primary",onClick:()=>f(e,i?.index),className:`
2
+ laptop:text-sm desktop:text-base text-xs
3
+ ${i.direction==="vertical"?"w-full":""}
4
+ `,children:i?.primaryButton||""}),t(N,{variant:"secondary",onClick:()=>x(e,i?.index),className:`
5
+ laptop:text-sm desktop:text-base text-xs
6
+ ${i.direction==="vertical"?"w-full":""}
7
+ `,children:i?.secondaryButton||""})]})]},e?.id||e?.handle)},W=_.forwardRef(({data:e,buildData:i,className:d="",key:u,event:f},x)=>{const[o,s]=S(""),[b,v]=S([]),y=O({query:"(max-width: 768px)"}),r=E(null);V(x,()=>r.current),U(r,{componentType:T,componentName:B,componentTitle:e?.title,navigation:o});const{productsTab:n=[],productsCard:g=[],title:l,align:J="left",isShowTab:k=!0,tabShape:D="square",...P}=e,h=a=>{const I=a?.map(p=>{const w=i?.products?.find(C=>C?.handle===p?.handle);if(w)return{sku:p.sku,...w}})?.filter(p=>p);v(I)};return M(()=>{if(k){s(n?.[0]?.tab||""),h(n?.[0]?.data||[]);return}h(g)},[]),c("div",{ref:r,className:m("w-full",d,{"aiui-dark":e?.theme==="dark"}),children:[l&&t(R,{data:{title:l}}),k&&t("div",{className:`${y?"w-full overflow-hidden":""}`,children:t(H,{value:o,tabs:n,tabShape:D,onTabClick:a=>{s(a?.tab),h(a?.data||[]),z({event:"ga4Event",event_name:"component_click",event_parameters:{page_group:"Home Page",component_type:T,component_name:B,component_title:e?.title,component_position:1,navigation:a?.tab}})}})}),t("div",{className:"tablet:min-h-[393px] laptop:min-h-[425px] desktop:min-h-[405px] lg-desktop:min-h-[409px]",children:t($,{className:"mt-6 !overflow-visible",id:`ShelfDisplay${u}${o}`,data:{list:b,configuration:{...P,event:f}},Slide:Q,breakpoints:{0:{spaceBetween:12,freeMode:!1,slidesPerView:1},374:{spaceBetween:12,freeMode:!1,slidesPerView:1.1},768:{spaceBetween:16,freeMode:!1,slidesPerView:2.3},1024:{spaceBetween:16,freeMode:!1,slidesPerView:3},1440:{spaceBetween:16,freeMode:!1,slidesPerView:4}}})})]})});var pe=A(W);export{pe as default};
12
8
  //# sourceMappingURL=index.js.map