@anker-in/headless-ui 0.0.27-alpha.98 → 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 (369) 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/HeroBanner/types.d.ts +2 -0
  32. package/dist/cjs/biz-components/HeroBanner/types.js +1 -1
  33. package/dist/cjs/biz-components/HeroBanner/types.js.map +1 -1
  34. package/dist/cjs/biz-components/Marquee/Marquee.d.ts +4 -7
  35. package/dist/cjs/biz-components/Marquee/Marquee.js +1 -1
  36. package/dist/cjs/biz-components/Marquee/Marquee.js.map +3 -3
  37. package/dist/cjs/biz-components/MediaPlayerBase/index.d.ts +5 -7
  38. package/dist/cjs/biz-components/MediaPlayerBase/index.js +1 -1
  39. package/dist/cjs/biz-components/MediaPlayerBase/index.js.map +3 -3
  40. package/dist/cjs/biz-components/MediaPlayerBase/types.d.ts +2 -0
  41. package/dist/cjs/biz-components/MediaPlayerBase/types.js +1 -1
  42. package/dist/cjs/biz-components/MediaPlayerBase/types.js.map +1 -1
  43. package/dist/cjs/biz-components/MediaPlayerMulti/index.d.ts +4 -7
  44. package/dist/cjs/biz-components/MediaPlayerMulti/index.js +1 -1
  45. package/dist/cjs/biz-components/MediaPlayerMulti/index.js.map +3 -3
  46. package/dist/cjs/biz-components/MediaPlayerMulti/types.d.ts +3 -1
  47. package/dist/cjs/biz-components/MediaPlayerMulti/types.js +1 -1
  48. package/dist/cjs/biz-components/MediaPlayerMulti/types.js.map +1 -1
  49. package/dist/cjs/biz-components/MediaPlayerSticky/index.d.ts +7 -7
  50. package/dist/cjs/biz-components/MediaPlayerSticky/index.js +1 -1
  51. package/dist/cjs/biz-components/MediaPlayerSticky/index.js.map +3 -3
  52. package/dist/cjs/biz-components/MediaPlayerSticky/types.d.ts +2 -0
  53. package/dist/cjs/biz-components/MediaPlayerSticky/types.js +1 -1
  54. package/dist/cjs/biz-components/MediaPlayerSticky/types.js.map +1 -1
  55. package/dist/cjs/biz-components/MemberEquity/index.d.ts +5 -7
  56. package/dist/cjs/biz-components/MemberEquity/index.js +4 -9
  57. package/dist/cjs/biz-components/MemberEquity/index.js.map +3 -3
  58. package/dist/cjs/biz-components/MemberEquity/types.d.ts +4 -2
  59. package/dist/cjs/biz-components/MemberEquity/types.js +1 -1
  60. package/dist/cjs/biz-components/MemberEquity/types.js.map +1 -1
  61. package/dist/cjs/biz-components/MultiLayoutGraphicBlock/MultiLayoutGraphicBlock.d.ts +4 -7
  62. package/dist/cjs/biz-components/MultiLayoutGraphicBlock/MultiLayoutGraphicBlock.js +1 -1
  63. package/dist/cjs/biz-components/MultiLayoutGraphicBlock/MultiLayoutGraphicBlock.js.map +3 -3
  64. package/dist/cjs/biz-components/MultiLayoutGraphicBlock/types.d.ts +1 -0
  65. package/dist/cjs/biz-components/MultiLayoutGraphicBlock/types.js +1 -1
  66. package/dist/cjs/biz-components/MultiLayoutGraphicBlock/types.js.map +1 -1
  67. package/dist/cjs/biz-components/ShelfDisplay/index.d.ts +8 -11
  68. package/dist/cjs/biz-components/ShelfDisplay/index.js +7 -11
  69. package/dist/cjs/biz-components/ShelfDisplay/index.js.map +3 -3
  70. package/dist/cjs/biz-components/ShelfDisplay/tabSwitch.d.ts +9 -0
  71. package/dist/cjs/biz-components/ShelfDisplay/tabSwitch.js +2 -0
  72. package/dist/cjs/biz-components/ShelfDisplay/tabSwitch.js.map +7 -0
  73. package/dist/cjs/biz-components/Slogan/index.d.ts +6 -7
  74. package/dist/cjs/biz-components/Slogan/index.js +1 -1
  75. package/dist/cjs/biz-components/Slogan/index.js.map +3 -3
  76. package/dist/cjs/biz-components/Spacer/index.d.ts +4 -7
  77. package/dist/cjs/biz-components/Spacer/index.js +1 -1
  78. package/dist/cjs/biz-components/Spacer/index.js.map +2 -2
  79. package/dist/cjs/biz-components/SwiperBox/index.js +1 -1
  80. package/dist/cjs/biz-components/SwiperBox/index.js.map +2 -2
  81. package/dist/cjs/biz-components/SwiperBox/types.d.ts +2 -0
  82. package/dist/cjs/biz-components/SwiperBox/types.js +1 -1
  83. package/dist/cjs/biz-components/SwiperBox/types.js.map +1 -1
  84. package/dist/cjs/biz-components/Tabs/Tabs.d.ts +4 -7
  85. package/dist/cjs/biz-components/Title/index.d.ts +4 -7
  86. package/dist/cjs/biz-components/Title/index.js +1 -1
  87. package/dist/cjs/biz-components/Title/index.js.map +2 -2
  88. package/dist/cjs/biz-components/index.d.ts +1 -1
  89. package/dist/cjs/biz-components/index.js +1 -1
  90. package/dist/cjs/biz-components/index.js.map +3 -3
  91. package/dist/cjs/components/avatar.js +1 -1
  92. package/dist/cjs/components/avatar.js.map +2 -2
  93. package/dist/cjs/components/badge.js +1 -1
  94. package/dist/cjs/components/badge.js.map +2 -2
  95. package/dist/cjs/components/button.d.ts +1 -1
  96. package/dist/cjs/components/button.js +1 -1
  97. package/dist/cjs/components/button.js.map +2 -2
  98. package/dist/cjs/components/container.d.ts +9 -4
  99. package/dist/cjs/components/container.js +1 -1
  100. package/dist/cjs/components/container.js.map +3 -3
  101. package/dist/cjs/components/heading.js +1 -1
  102. package/dist/cjs/components/heading.js.map +2 -2
  103. package/dist/cjs/components/link.d.ts +4 -6
  104. package/dist/cjs/components/link.js +1 -1
  105. package/dist/cjs/components/link.js.map +3 -3
  106. package/dist/cjs/components/tabs.js +1 -1
  107. package/dist/cjs/components/tabs.js.map +2 -2
  108. package/dist/cjs/components/text.js +1 -1
  109. package/dist/cjs/components/text.js.map +2 -2
  110. package/dist/cjs/cpn-components/CpnCountDown/index.js +1 -1
  111. package/dist/cjs/cpn-components/CpnCountDown/index.js.map +3 -3
  112. package/dist/cjs/cpn-components/CpnCountDown/types.d.ts +1 -0
  113. package/dist/cjs/cpn-components/CpnCountDown/types.js +1 -1
  114. package/dist/cjs/cpn-components/CpnCountDown/types.js.map +1 -1
  115. package/dist/cjs/hooks/useExposure.d.ts +12 -0
  116. package/dist/cjs/hooks/useExposure.js +2 -0
  117. package/dist/cjs/hooks/useExposure.js.map +7 -0
  118. package/dist/cjs/hooks/useIntersectionObserver.d.ts +17 -0
  119. package/dist/cjs/hooks/useIntersectionObserver.js +2 -0
  120. package/dist/cjs/hooks/useIntersectionObserver.js.map +7 -0
  121. package/dist/cjs/shared/Styles.d.ts +4 -7
  122. package/dist/cjs/shared/Styles.js +1 -1
  123. package/dist/cjs/shared/Styles.js.map +3 -3
  124. package/dist/cjs/shared/mimeType.d.ts +1 -0
  125. package/dist/cjs/shared/mimeType.js +2 -0
  126. package/dist/cjs/shared/mimeType.js.map +7 -0
  127. package/dist/cjs/shared/track.d.ts +1 -0
  128. package/dist/cjs/shared/track.js +2 -0
  129. package/dist/cjs/shared/track.js.map +7 -0
  130. package/dist/cjs/shared/trackUrlRef.d.ts +7 -0
  131. package/dist/cjs/shared/trackUrlRef.js +2 -0
  132. package/dist/cjs/shared/trackUrlRef.js.map +7 -0
  133. package/dist/cjs/stories/HeroBanner.stories.d.ts +4 -7
  134. package/dist/cjs/stories/MemberEquity.stories.js +2 -2
  135. package/dist/cjs/stories/MemberEquity.stories.js.map +1 -1
  136. package/dist/cjs/stories/accordionCards.stories.d.ts +9 -2
  137. package/dist/cjs/stories/accordionCards.stories.js +1 -1
  138. package/dist/cjs/stories/accordionCards.stories.js.map +3 -3
  139. package/dist/cjs/stories/brandEquity.stories.d.ts +4 -7
  140. package/dist/cjs/stories/brandEquity.stories.js +1 -1
  141. package/dist/cjs/stories/brandEquity.stories.js.map +1 -1
  142. package/dist/cjs/stories/button.stories.d.ts +0 -1
  143. package/dist/cjs/stories/button.stories.js +1 -1
  144. package/dist/cjs/stories/button.stories.js.map +2 -2
  145. package/dist/cjs/stories/category.stories.d.ts +4 -7
  146. package/dist/cjs/stories/container.stories.d.ts +4 -2
  147. package/dist/cjs/stories/evaluate.stories.d.ts +4 -7
  148. package/dist/cjs/stories/graphic.stories.d.ts +10 -11
  149. package/dist/cjs/stories/heading.stories.js +2 -2
  150. package/dist/cjs/stories/heading.stories.js.map +2 -2
  151. package/dist/cjs/stories/link.stories.d.ts +3 -16
  152. package/dist/cjs/stories/link.stories.js +1 -1
  153. package/dist/cjs/stories/link.stories.js.map +2 -2
  154. package/dist/cjs/stories/marquee.stories.d.ts +4 -7
  155. package/dist/cjs/stories/mediaplayerMulti.stories.d.ts +4 -7
  156. package/dist/cjs/stories/shelfDisplay.stories.d.ts +4 -7
  157. package/dist/cjs/stories/slogan.stories.d.ts +4 -8
  158. package/dist/cjs/stories/slogan.stories.js +2 -22
  159. package/dist/cjs/stories/slogan.stories.js.map +3 -3
  160. package/dist/cjs/types/props.d.ts +10 -0
  161. package/dist/cjs/types/props.js +1 -1
  162. package/dist/cjs/types/props.js.map +1 -1
  163. package/dist/esm/biz-components/AccordionCards/index.d.ts +11 -2
  164. package/dist/esm/biz-components/AccordionCards/index.js +1 -1
  165. package/dist/esm/biz-components/AccordionCards/index.js.map +3 -3
  166. package/dist/esm/biz-components/AiuiProvider/index.d.ts +12 -0
  167. package/dist/esm/biz-components/AiuiProvider/index.js +2 -0
  168. package/dist/esm/biz-components/AiuiProvider/index.js.map +7 -0
  169. package/dist/esm/biz-components/BrandEquity/BrandEquity.d.ts +4 -7
  170. package/dist/esm/biz-components/BrandEquity/BrandEquity.js +1 -1
  171. package/dist/esm/biz-components/BrandEquity/BrandEquity.js.map +3 -3
  172. package/dist/esm/biz-components/BrandEquity/types.d.ts +2 -2
  173. package/dist/esm/biz-components/Category/SwiperCategory.d.ts +3 -0
  174. package/dist/esm/biz-components/Category/SwiperCategory.js +1 -1
  175. package/dist/esm/biz-components/Category/SwiperCategory.js.map +3 -3
  176. package/dist/esm/biz-components/Category/index.d.ts +11 -8
  177. package/dist/esm/biz-components/Category/index.js +1 -1
  178. package/dist/esm/biz-components/Category/index.js.map +3 -3
  179. package/dist/esm/biz-components/Evaluate/index.d.ts +14 -9
  180. package/dist/esm/biz-components/Evaluate/index.js +1 -1
  181. package/dist/esm/biz-components/Evaluate/index.js.map +3 -3
  182. package/dist/esm/biz-components/Graphic/index.d.ts +7 -8
  183. package/dist/esm/biz-components/Graphic/index.js +1 -1
  184. package/dist/esm/biz-components/Graphic/index.js.map +3 -3
  185. package/dist/esm/biz-components/GraphicAttractionBlock/index.d.ts +4 -7
  186. package/dist/esm/biz-components/GraphicAttractionBlock/index.js +1 -1
  187. package/dist/esm/biz-components/GraphicAttractionBlock/index.js.map +2 -2
  188. package/dist/esm/biz-components/HeroBanner/HeroBanner.d.ts +4 -7
  189. package/dist/esm/biz-components/HeroBanner/HeroBanner.js +1 -1
  190. package/dist/esm/biz-components/HeroBanner/HeroBanner.js.map +3 -3
  191. package/dist/esm/biz-components/HeroBanner/types.d.ts +2 -0
  192. package/dist/esm/biz-components/Marquee/Marquee.d.ts +4 -7
  193. package/dist/esm/biz-components/Marquee/Marquee.js +1 -1
  194. package/dist/esm/biz-components/Marquee/Marquee.js.map +3 -3
  195. package/dist/esm/biz-components/MediaPlayerBase/index.d.ts +5 -7
  196. package/dist/esm/biz-components/MediaPlayerBase/index.js +1 -1
  197. package/dist/esm/biz-components/MediaPlayerBase/index.js.map +3 -3
  198. package/dist/esm/biz-components/MediaPlayerBase/types.d.ts +2 -0
  199. package/dist/esm/biz-components/MediaPlayerMulti/index.d.ts +4 -7
  200. package/dist/esm/biz-components/MediaPlayerMulti/index.js +1 -1
  201. package/dist/esm/biz-components/MediaPlayerMulti/index.js.map +3 -3
  202. package/dist/esm/biz-components/MediaPlayerMulti/types.d.ts +3 -1
  203. package/dist/esm/biz-components/MediaPlayerSticky/index.d.ts +7 -7
  204. package/dist/esm/biz-components/MediaPlayerSticky/index.js +1 -1
  205. package/dist/esm/biz-components/MediaPlayerSticky/index.js.map +3 -3
  206. package/dist/esm/biz-components/MediaPlayerSticky/types.d.ts +2 -0
  207. package/dist/esm/biz-components/MemberEquity/index.d.ts +5 -7
  208. package/dist/esm/biz-components/MemberEquity/index.js +4 -9
  209. package/dist/esm/biz-components/MemberEquity/index.js.map +3 -3
  210. package/dist/esm/biz-components/MemberEquity/types.d.ts +4 -2
  211. package/dist/esm/biz-components/MultiLayoutGraphicBlock/MultiLayoutGraphicBlock.d.ts +4 -7
  212. package/dist/esm/biz-components/MultiLayoutGraphicBlock/MultiLayoutGraphicBlock.js +1 -1
  213. package/dist/esm/biz-components/MultiLayoutGraphicBlock/MultiLayoutGraphicBlock.js.map +3 -3
  214. package/dist/esm/biz-components/MultiLayoutGraphicBlock/types.d.ts +1 -0
  215. package/dist/esm/biz-components/ShelfDisplay/index.d.ts +8 -11
  216. package/dist/esm/biz-components/ShelfDisplay/index.js +7 -11
  217. package/dist/esm/biz-components/ShelfDisplay/index.js.map +3 -3
  218. package/dist/esm/biz-components/ShelfDisplay/tabSwitch.d.ts +9 -0
  219. package/dist/esm/biz-components/ShelfDisplay/tabSwitch.js +2 -0
  220. package/dist/esm/biz-components/ShelfDisplay/tabSwitch.js.map +7 -0
  221. package/dist/esm/biz-components/Slogan/index.d.ts +6 -7
  222. package/dist/esm/biz-components/Slogan/index.js +1 -1
  223. package/dist/esm/biz-components/Slogan/index.js.map +3 -3
  224. package/dist/esm/biz-components/Spacer/index.d.ts +4 -7
  225. package/dist/esm/biz-components/Spacer/index.js +1 -1
  226. package/dist/esm/biz-components/Spacer/index.js.map +2 -2
  227. package/dist/esm/biz-components/SwiperBox/index.js +1 -1
  228. package/dist/esm/biz-components/SwiperBox/index.js.map +2 -2
  229. package/dist/esm/biz-components/SwiperBox/types.d.ts +2 -0
  230. package/dist/esm/biz-components/SwiperBox/types.js.map +1 -1
  231. package/dist/esm/biz-components/Tabs/Tabs.d.ts +4 -7
  232. package/dist/esm/biz-components/Title/index.d.ts +4 -7
  233. package/dist/esm/biz-components/Title/index.js +1 -1
  234. package/dist/esm/biz-components/Title/index.js.map +2 -2
  235. package/dist/esm/biz-components/index.d.ts +1 -1
  236. package/dist/esm/biz-components/index.js +1 -1
  237. package/dist/esm/biz-components/index.js.map +2 -2
  238. package/dist/esm/components/avatar.js +1 -1
  239. package/dist/esm/components/avatar.js.map +2 -2
  240. package/dist/esm/components/badge.js +1 -1
  241. package/dist/esm/components/badge.js.map +2 -2
  242. package/dist/esm/components/button.d.ts +1 -1
  243. package/dist/esm/components/button.js +1 -1
  244. package/dist/esm/components/button.js.map +2 -2
  245. package/dist/esm/components/container.d.ts +9 -4
  246. package/dist/esm/components/container.js +1 -1
  247. package/dist/esm/components/container.js.map +3 -3
  248. package/dist/esm/components/heading.js +1 -1
  249. package/dist/esm/components/heading.js.map +2 -2
  250. package/dist/esm/components/link.d.ts +4 -6
  251. package/dist/esm/components/link.js +1 -1
  252. package/dist/esm/components/link.js.map +3 -3
  253. package/dist/esm/components/tabs.js +1 -1
  254. package/dist/esm/components/tabs.js.map +2 -2
  255. package/dist/esm/components/text.js +1 -1
  256. package/dist/esm/components/text.js.map +2 -2
  257. package/dist/esm/cpn-components/CpnCountDown/index.js +1 -1
  258. package/dist/esm/cpn-components/CpnCountDown/index.js.map +3 -3
  259. package/dist/esm/cpn-components/CpnCountDown/types.d.ts +1 -0
  260. package/dist/esm/hooks/useExposure.d.ts +12 -0
  261. package/dist/esm/hooks/useExposure.js +2 -0
  262. package/dist/esm/hooks/useExposure.js.map +7 -0
  263. package/dist/esm/hooks/useIntersectionObserver.d.ts +17 -0
  264. package/dist/esm/hooks/useIntersectionObserver.js +2 -0
  265. package/dist/esm/hooks/useIntersectionObserver.js.map +7 -0
  266. package/dist/esm/shared/Styles.d.ts +4 -7
  267. package/dist/esm/shared/Styles.js +1 -1
  268. package/dist/esm/shared/Styles.js.map +3 -3
  269. package/dist/esm/shared/mimeType.d.ts +1 -0
  270. package/dist/esm/shared/mimeType.js +2 -0
  271. package/dist/esm/shared/mimeType.js.map +7 -0
  272. package/dist/esm/shared/track.d.ts +1 -0
  273. package/dist/esm/shared/track.js +2 -0
  274. package/dist/esm/shared/track.js.map +7 -0
  275. package/dist/esm/shared/trackUrlRef.d.ts +7 -0
  276. package/dist/esm/shared/trackUrlRef.js +2 -0
  277. package/dist/esm/shared/trackUrlRef.js.map +7 -0
  278. package/dist/esm/stories/HeroBanner.stories.d.ts +4 -7
  279. package/dist/esm/stories/MemberEquity.stories.js +1 -1
  280. package/dist/esm/stories/MemberEquity.stories.js.map +1 -1
  281. package/dist/esm/stories/accordionCards.stories.d.ts +9 -2
  282. package/dist/esm/stories/accordionCards.stories.js +1 -1
  283. package/dist/esm/stories/accordionCards.stories.js.map +2 -2
  284. package/dist/esm/stories/brandEquity.stories.d.ts +4 -7
  285. package/dist/esm/stories/brandEquity.stories.js +1 -1
  286. package/dist/esm/stories/brandEquity.stories.js.map +1 -1
  287. package/dist/esm/stories/button.stories.d.ts +0 -1
  288. package/dist/esm/stories/button.stories.js +1 -1
  289. package/dist/esm/stories/button.stories.js.map +2 -2
  290. package/dist/esm/stories/category.stories.d.ts +4 -7
  291. package/dist/esm/stories/container.stories.d.ts +4 -2
  292. package/dist/esm/stories/evaluate.stories.d.ts +4 -7
  293. package/dist/esm/stories/graphic.stories.d.ts +10 -11
  294. package/dist/esm/stories/heading.stories.js +2 -2
  295. package/dist/esm/stories/heading.stories.js.map +2 -2
  296. package/dist/esm/stories/link.stories.d.ts +3 -16
  297. package/dist/esm/stories/link.stories.js +1 -1
  298. package/dist/esm/stories/link.stories.js.map +2 -2
  299. package/dist/esm/stories/marquee.stories.d.ts +4 -7
  300. package/dist/esm/stories/mediaplayerMulti.stories.d.ts +4 -7
  301. package/dist/esm/stories/shelfDisplay.stories.d.ts +4 -7
  302. package/dist/esm/stories/slogan.stories.d.ts +4 -8
  303. package/dist/esm/stories/slogan.stories.js +3 -23
  304. package/dist/esm/stories/slogan.stories.js.map +2 -2
  305. package/dist/esm/types/props.d.ts +10 -0
  306. package/dist/tokens/anker.css +0 -13
  307. package/dist/tokens/base.css +21 -20
  308. package/dist/tokens/eufy.css +0 -3
  309. package/dist/tokens/solix.css +3 -3
  310. package/dist/tokens/soundcore.css +0 -5
  311. package/package.json +3 -2
  312. package/style.css +122 -77
  313. package/tailwind.config.js +2 -67
  314. package/dist/cjs/biz-components/SectionHeading/SectionHeading.d.ts +0 -4
  315. package/dist/cjs/biz-components/SectionHeading/SectionHeading.js +0 -2
  316. package/dist/cjs/biz-components/SectionHeading/SectionHeading.js.map +0 -7
  317. package/dist/cjs/biz-components/SectionHeading/index.d.ts +0 -0
  318. package/dist/cjs/biz-components/SectionHeading/index.js +0 -2
  319. package/dist/cjs/biz-components/SectionHeading/index.js.map +0 -7
  320. package/dist/cjs/biz-components/SectionHeading/types.d.ts +0 -6
  321. package/dist/cjs/biz-components/SectionHeading/types.js +0 -2
  322. package/dist/cjs/biz-components/SectionHeading/types.js.map +0 -7
  323. package/dist/cjs/biz-components/Shelf/Shelf.d.ts +0 -9
  324. package/dist/cjs/biz-components/Shelf/Shelf.js +0 -2
  325. package/dist/cjs/biz-components/Shelf/Shelf.js.map +0 -7
  326. package/dist/cjs/biz-components/Shelf/index.d.ts +0 -1
  327. package/dist/cjs/biz-components/Shelf/index.js +0 -2
  328. package/dist/cjs/biz-components/Shelf/index.js.map +0 -7
  329. package/dist/cjs/biz-components/Shelf/types.d.ts +0 -6
  330. package/dist/cjs/biz-components/Shelf/types.js +0 -2
  331. package/dist/cjs/biz-components/Shelf/types.js.map +0 -7
  332. package/dist/cjs/helpers/GloablContext.d.ts +0 -10
  333. package/dist/cjs/helpers/GloablContext.js +0 -2
  334. package/dist/cjs/helpers/GloablContext.js.map +0 -7
  335. package/dist/cjs/hooks/useMergeRefs.d.ts +0 -4
  336. package/dist/cjs/stories/shelf.stories.d.ts +0 -18
  337. package/dist/cjs/stories/shelf.stories.js +0 -2
  338. package/dist/cjs/stories/shelf.stories.js.map +0 -7
  339. package/dist/cjs/tsconfig.tsbuildinfo +0 -1
  340. package/dist/cjs/types/libs.d.js +0 -2
  341. package/dist/cjs/types/libs.d.js.map +0 -7
  342. package/dist/esm/biz-components/SectionHeading/SectionHeading.d.ts +0 -4
  343. package/dist/esm/biz-components/SectionHeading/SectionHeading.js +0 -2
  344. package/dist/esm/biz-components/SectionHeading/SectionHeading.js.map +0 -7
  345. package/dist/esm/biz-components/SectionHeading/index.d.ts +0 -0
  346. package/dist/esm/biz-components/SectionHeading/index.js +0 -2
  347. package/dist/esm/biz-components/SectionHeading/index.js.map +0 -7
  348. package/dist/esm/biz-components/SectionHeading/types.d.ts +0 -6
  349. package/dist/esm/biz-components/SectionHeading/types.js +0 -2
  350. package/dist/esm/biz-components/SectionHeading/types.js.map +0 -7
  351. package/dist/esm/biz-components/Shelf/Shelf.d.ts +0 -9
  352. package/dist/esm/biz-components/Shelf/Shelf.js +0 -2
  353. package/dist/esm/biz-components/Shelf/Shelf.js.map +0 -7
  354. package/dist/esm/biz-components/Shelf/index.d.ts +0 -1
  355. package/dist/esm/biz-components/Shelf/index.js +0 -2
  356. package/dist/esm/biz-components/Shelf/index.js.map +0 -7
  357. package/dist/esm/biz-components/Shelf/types.d.ts +0 -6
  358. package/dist/esm/biz-components/Shelf/types.js +0 -1
  359. package/dist/esm/biz-components/Shelf/types.js.map +0 -7
  360. package/dist/esm/helpers/GloablContext.d.ts +0 -10
  361. package/dist/esm/helpers/GloablContext.js +0 -2
  362. package/dist/esm/helpers/GloablContext.js.map +0 -7
  363. package/dist/esm/hooks/useMergeRefs.d.ts +0 -4
  364. package/dist/esm/stories/shelf.stories.d.ts +0 -18
  365. package/dist/esm/stories/shelf.stories.js +0 -2
  366. package/dist/esm/stories/shelf.stories.js.map +0 -7
  367. package/dist/esm/tsconfig.tsbuildinfo +0 -1
  368. package/dist/esm/types/libs.d.js +0 -2
  369. package/dist/esm/types/libs.d.js.map +0 -7
@@ -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
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/biz-components/ShelfDisplay/index.tsx"],
4
- "sourcesContent": ["'use client'\nimport React, { useState, useEffect } from 'react'\nimport { cn } from '../../helpers/utils.js'\nimport Picture from '../../components/picture.js'\nimport { Tabs, TabsList, TabsTrigger } from '../../components/tabs.js'\nimport Button from '../../components/button.js'\nimport Title from '../Title/index.js'\nimport SwiperBox from '../SwiperBox/index.js'\nimport { withStyles } from '../../shared/Styles.js'\nimport { formatVariantPrice } from './shelfDisplay.js'\nimport { useMediaQuery } from 'react-responsive'\nexport interface ShelfDisplayItem {\n id?: string\n /** \u4EA7\u54C1\u56FE\u7247*/\n img?: {\n url: string\n }\n handle?: string\n sku?: string\n /** \u6298\u6263\u540E\u4EF7\u683C*/\n price?: string\n title?: string\n /** \u6298\u6263\u524D\u4EF7\u683C*/\n basePrice?: string\n subTitle?: string\n /** \u6807\u7B7E*/\n tagItems?: string[]\n tab?: string\n data?: ShelfDisplayItem[]\n}\n\ntype EventType = {\n primaryButton?: (v: any) => void\n secondaryButton?: (v: any) => void\n}\n\nexport interface ShelfDisplayProps {\n data: {\n title?: string\n isShowTab?: boolean\n direction?: 'horizontal' | 'vertical'\n align?: 'left' | 'center' | 'right'\n productsTab?: any\n productsCard?: any\n /** \u5361\u7247\u5F62\u72B6 */\n itemShape?: 'round' | 'square'\n /** \u6309\u94AE\u5F62\u72B6 */\n shape?: 'round' | 'square'\n /** \u6807\u7B7E\u9875\u5F62\u72B6*/\n tabShape?: 'rounded' | 'square'\n /** \u4E3B\u6309\u94AE\u914D\u7F6E */\n primaryButton?: string\n /** \u526F\u6309\u94AE\u914D\u7F6E */\n secondaryButton?: string\n }\n buildData?: {\n categories: any[]\n products: any[]\n }\n /** \u6309\u94AE\u4E8B\u4EF6*/\n event?: EventType\n /** \u4E3B\u9898\u8272*/\n theme?: 'light' | 'dark'\n className?: string\n key?: string\n}\n\nconst ShelfDisplayItem = ({ data, configuration }: { data: any; configuration?: any }) => {\n const onPrimaryButton = (params: ShelfDisplayItem) => configuration?.event?.primaryButton?.(params)\n\n const onSecondaryButton = (params: ShelfDisplayItem) => configuration?.event?.secondaryButton?.(params)\n\n const { price, basePrice } = formatVariantPrice({\n locale: 'us',\n amount: data?.price.amount || 0,\n baseAmount: data?.compareAtPrice?.amount || data?.price.amount || 0,\n currencyCode: data?.price.currencyCode || 'USD',\n })\n\n const handleUrl = () => {\n const sku = data?.sku\n const skuArray = data?.variants\n const findSku = skuArray?.find((item: any) => item?.sku === sku)\n return findSku?.image?.url || skuArray?.[0]?.image?.url || ''\n }\n\n return (\n <div\n key={data?.id || data?.handle}\n className={cn(\n '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]',\n configuration?.itemShape === 'round' ? 'rounded-2xl' : 'rounded-none'\n )}\n >\n <div className={cn('lg-desktop:mb-3 lg-desktop:h-[195px] relative mb-2 inline-block h-[140px] overflow-hidden')}>\n <Picture source={handleUrl()} className=\"flex h-full justify-center object-cover [&_img]:w-auto\" />\n </div>\n <div className=\"mb-1 box-border flex h-8 flex-wrap gap-1 overflow-hidden\">\n {data?.tags?.slice(0, 1)?.map?.((item: any, index: number) => {\n return (\n <div\n key={index}\n className=\"tablet:text-base box-border h-full rounded-2xl border-2 border-[#86868C] px-2 pt-1 text-sm font-bold text-[#1D1D1F]\"\n >\n {item}\n </div>\n )\n })}\n </div>\n <p\n title={data?.title || ''}\n className=\"desktop:text-2xl desktop:leading-7 line-clamp-2 max-h-[48px] flex-1 text-xl font-bold text-[#1D1D1F]\"\n >\n {data?.title || ''}\n </p>\n <h3\n title={data?.description || ''}\n className=\"tablet:mt-2 tablet:mb-3 desktop:text-lg mb-2 mt-1 h-6 truncate text-sm font-semibold text-[#1D1D1F]\"\n >\n {data?.description || ''}\n </h3>\n <div className=\"mb-2 flex items-center\">\n <div className=\"tablet:text-2xl text-xl font-bold text-[#1D1D1F]\">{price || ''}</div>\n <div className=\"tablet:text-2xl ml-1 text-xl font-bold text-[#86868C]\">{basePrice || ''}</div>\n </div>\n {/* \u6309\u94AE\u7EC4 */}\n <div className={cn('flex items-center gap-3', configuration.direction === 'vertical' ? 'flex-col' : '')}>\n <Button\n variant=\"primary\"\n onClick={() => onPrimaryButton(data)}\n className={`\n 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\n border-[#1D1D1F] bg-transparent px-4 py-2 text-xs text-[#1D1D1F] hover:bg-transparent hover:text-black\n ${configuration?.shape === 'round' ? 'desktop:rounded-3xl rounded-[20px]' : ''}\n ${configuration.direction === 'vertical' ? 'w-full' : ''}\n `}\n >\n {configuration?.primaryButton || ''}\n </Button>\n <Button\n variant=\"secondary\"\n onClick={() => onSecondaryButton(data)}\n className={`\n laptop:text-sm desktop:text-base laptop:px-6 desktop:px-7 laptop:py-2.5 desktop:py-3 box-border flex-1 border\n border-[#1D1D1F] bg-[#1D1D1F] px-4 py-2 text-xs tracking-[-0.04em] text-white\n ${configuration?.shape === 'round' ? 'desktop:rounded-3xl rounded-[20px]' : ''}\n ${configuration.direction === 'vertical' ? 'w-full' : ''}\n `}\n >\n {configuration?.secondaryButton || ''}\n </Button>\n </div>\n </div>\n )\n}\n\nconst ShelfDisplay: React.FC<ShelfDisplayProps> = ({ data, buildData, className = '', key, event }) => {\n const [tabId, setTabId] = useState<string>('')\n const [currentItems, setCurrentItems] = useState<ShelfDisplayItem[]>([])\n\n const isMobile = useMediaQuery({ query: '(max-width: 768px)' })\n\n const {\n productsTab = [],\n productsCard = [],\n title,\n align = 'left',\n isShowTab = true,\n tabShape = 'square',\n ...other\n } = data\n\n const handleCurrentTab = (currentData: ShelfDisplayItem[]) => {\n const newCurrentData = currentData\n ?.map(item => {\n const findData = buildData?.products?.find(params => params?.handle === item?.handle)\n if (findData) {\n return {\n sku: item.sku,\n ...findData,\n }\n }\n })\n ?.filter(item => item)\n setCurrentItems(newCurrentData)\n }\n\n useEffect(() => {\n if (isShowTab) {\n setTabId(productsTab?.[0]?.tab || '')\n handleCurrentTab(productsTab?.[0]?.data || [])\n return\n }\n handleCurrentTab(productsCard)\n }, [])\n\n return (\n <div className={cn('w-full', className)}>\n {title && <Title data={{ title: title }} />}\n {isShowTab && (\n <div className={`${isMobile ? 'w-full overflow-hidden' : ''}`}>\n <Tabs\n shape={tabShape}\n align={align}\n value={tabId}\n onValueChange={v => {\n setTabId(v)\n const findData = productsTab?.find((item: any) => item?.tab === v)\n handleCurrentTab(findData?.data || [])\n }}\n className=\"mb-8\"\n >\n <TabsList>\n {productsTab?.map((item: any, index: number) => {\n return (\n <TabsTrigger key={index} value={item?.tab || ''}>\n {item?.tab}\n </TabsTrigger>\n )\n })}\n </TabsList>\n </Tabs>\n </div>\n )}\n <SwiperBox\n className=\"!overflow-visible\"\n id={'ShelfDisplay' + key}\n data={{ list: currentItems, configuration: { ...other, event: event } }}\n Slide={ShelfDisplayItem}\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,\n },\n 1024: {\n spaceBetween: 16,\n freeMode: false,\n slidesPerView: 3,\n },\n 1440: {\n spaceBetween: 16,\n freeMode: false,\n slidesPerView: 4,\n },\n }}\n />\n </div>\n )\n}\n\nexport default withStyles(ShelfDisplay)\n"],
5
- "mappings": "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",
6
- "names": ["jsx", "jsxs", "useState", "useEffect", "cn", "Picture", "Tabs", "TabsList", "TabsTrigger", "Button", "Title", "SwiperBox", "withStyles", "formatVariantPrice", "useMediaQuery", "ShelfDisplayItem", "data", "configuration", "onPrimaryButton", "params", "onSecondaryButton", "price", "basePrice", "handleUrl", "sku", "skuArray", "item", "index", "ShelfDisplay", "buildData", "className", "key", "event", "tabId", "setTabId", "currentItems", "setCurrentItems", "isMobile", "productsTab", "productsCard", "title", "align", "isShowTab", "tabShape", "other", "handleCurrentTab", "currentData", "newCurrentData", "findData", "v", "ShelfDisplay_default"]
4
+ "sourcesContent": ["'use client'\nimport React, { useState, useEffect, useRef, useImperativeHandle } from 'react'\nimport { cn } from '../../helpers/utils.js'\nimport Picture from '../../components/picture.js'\nimport TabSwitch from './tabSwitch.js'\nimport Button from '../../components/button.js'\nimport Title from '../Title/index.js'\nimport SwiperBox from '../SwiperBox/index.js'\nimport { withStyles } from '../../shared/Styles.js'\nimport { formatVariantPrice } from './shelfDisplay.js'\nimport { useMediaQuery } from 'react-responsive'\nimport { useExposure } from '../../hooks/useExposure.js'\nimport { gaTrack } from '../../shared/track.js'\nimport { useAiuiContext } from '../AiuiProvider/index.js'\n\nconst componentType = 'image'\nconst componentName = 'product_shelf'\n\nconst SOLD_OUT_PRICE = 9999999.99\n\nexport interface ShelfDisplayItem {\n id?: string\n /** \u4EA7\u54C1\u56FE\u7247*/\n img?: {\n url: string\n }\n handle?: string\n sku?: string\n /** \u6298\u6263\u540E\u4EF7\u683C*/\n price?: string\n title?: string\n /** \u6298\u6263\u524D\u4EF7\u683C*/\n basePrice?: string\n subTitle?: string\n /** \u6807\u7B7E*/\n tagItems?: string[]\n tab?: string\n data?: ShelfDisplayItem[]\n}\n\ntype EventType = {\n primaryButton?: (v: any, index: number) => void\n secondaryButton?: (v: any, index: number) => void\n}\n\nexport interface ShelfDisplayProps {\n data: {\n title?: string\n isShowTab?: boolean\n direction?: 'horizontal' | 'vertical'\n align?: 'left' | 'center' | 'right'\n productsTab?: any\n productsCard?: any\n /** \u5361\u7247\u5F62\u72B6 */\n itemShape?: 'round' | 'square'\n /** \u6309\u94AE\u5F62\u72B6 */\n shape?: 'round' | 'square'\n /** \u6807\u7B7E\u9875\u5F62\u72B6*/\n tabShape?: 'rounded' | 'square'\n /** \u4E3B\u6309\u94AE\u914D\u7F6E */\n primaryButton?: string\n /** \u526F\u6309\u94AE\u914D\u7F6E */\n secondaryButton?: string\n theme?: 'light' | 'dark'\n }\n buildData?: {\n categories: any[]\n products: any[]\n }\n /** \u6309\u94AE\u4E8B\u4EF6*/\n event?: EventType\n className?: string\n key?: string\n}\n\nconst ShelfDisplayItem = ({ data, configuration }: { data: any; configuration?: any }) => {\n const { locale = 'us', copyWriting } = useAiuiContext()\n\n const onPrimaryButton = (params: ShelfDisplayItem, index: number) =>\n configuration?.event?.primaryButton?.(params, index + 1)\n\n const onSecondaryButton = (params: ShelfDisplayItem, index: number) =>\n configuration?.event?.secondaryButton?.(params, index + 1)\n\n const variant = data?.variants?.find((item: any) => item?.sku === data?.sku) || data?.variants?.[0] || {}\n\n const isSoldOut = !variant?.availableForSale && variant?.price?.amount === SOLD_OUT_PRICE\n\n const { price, basePrice } = formatVariantPrice({\n locale: locale,\n amount: variant?.price?.amount || 0,\n baseAmount: data?.compareAtPrice?.amount || data?.price?.amount || 0,\n currencyCode: data?.price?.currencyCode || 'USD',\n })\n\n const handleUrl = () => {\n const sku = data?.sku\n const skuArray = data?.variants\n const findSku = skuArray?.find((item: any) => item?.sku === sku)\n return findSku?.image?.url || skuArray?.[0]?.image?.url || ''\n }\n\n return (\n <div\n key={data?.id || data?.handle}\n className={cn(\n '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',\n configuration?.itemShape === 'round' ? 'rounded-2xl' : 'rounded-none'\n )}\n >\n <div className={cn('lg-desktop:mb-3 lg-desktop:h-[195px] relative mb-2 inline-block h-[140px] overflow-hidden')}>\n <Picture source={handleUrl()} className=\"flex h-full justify-center object-cover [&_img]:w-auto\" />\n </div>\n <div className=\"mb-1 box-border flex h-8 flex-wrap gap-1 overflow-hidden\">\n {data?.tags?.slice(0, 1)?.map?.((item: any, index: number) => {\n return (\n <div\n key={index}\n 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\"\n >\n {item}\n </div>\n )\n })}\n </div>\n <p\n title={data?.title || ''}\n className=\"desktop:text-2xl desktop:leading-7 text-info-primary line-clamp-2 flex-1 text-xl font-bold\"\n >\n {data?.title || ''}\n </p>\n <h3\n title={data?.description || ''}\n className=\"tablet:mt-2 tablet:mb-3 desktop:text-lg text-info-primary mb-2 mt-1 h-6 truncate text-sm font-semibold\"\n >\n {data?.description || ''}\n </h3>\n <div className=\"mb-2 flex items-center\">\n {isSoldOut ? (\n <div className=\"tablet:text-2xl text-info-primary text-xl font-bold\">{copyWriting?.soldOutText}</div>\n ) : (\n <>\n <div className=\"tablet:text-2xl text-info-primary text-xl font-bold\">{price || ''}</div>\n <div className=\"tablet:text-2xl text-info-secondary ml-1 text-xl font-bold\">{basePrice || ''}</div>\n </>\n )}\n </div>\n {/* \u6309\u94AE\u7EC4 */}\n <div className={cn('flex items-center gap-3', configuration.direction === 'vertical' ? 'flex-col' : '')}>\n <Button\n variant=\"primary\"\n onClick={() => onPrimaryButton(data, configuration?.index)}\n className={`\n laptop:text-sm desktop:text-base text-xs\n ${configuration.direction === 'vertical' ? 'w-full' : ''}\n `}\n >\n {configuration?.primaryButton || ''}\n </Button>\n <Button\n variant=\"secondary\"\n onClick={() => onSecondaryButton(data, configuration?.index)}\n className={`\n laptop:text-sm desktop:text-base text-xs\n ${configuration.direction === 'vertical' ? 'w-full' : ''}\n `}\n >\n {configuration?.secondaryButton || ''}\n </Button>\n </div>\n </div>\n )\n}\n\nconst ShelfDisplay = React.forwardRef<HTMLDivElement, ShelfDisplayProps>(\n ({ data, buildData, className = '', key, event }, ref) => {\n const [tabId, setTabId] = useState<string>('')\n const [currentItems, setCurrentItems] = useState<ShelfDisplayItem[]>([])\n\n const isMobile = useMediaQuery({ query: '(max-width: 768px)' })\n\n const innerRef = useRef<HTMLDivElement>(null)\n useImperativeHandle(ref, () => innerRef.current as HTMLDivElement)\n\n useExposure(innerRef, {\n componentType: componentType,\n componentName: componentName,\n componentTitle: data?.title,\n navigation: tabId,\n })\n\n const {\n productsTab = [],\n productsCard = [],\n title,\n align = 'left',\n isShowTab = true,\n tabShape = 'square',\n ...other\n } = data\n\n const handleCurrentTab = (currentData: ShelfDisplayItem[]) => {\n const newCurrentData = currentData\n ?.map(item => {\n const findData = buildData?.products?.find(params => params?.handle === item?.handle)\n if (findData) {\n return {\n sku: item.sku,\n ...findData,\n }\n }\n })\n ?.filter(item => item)\n setCurrentItems(newCurrentData)\n }\n\n useEffect(() => {\n if (isShowTab) {\n setTabId(productsTab?.[0]?.tab || '')\n handleCurrentTab(productsTab?.[0]?.data || [])\n return\n }\n handleCurrentTab(productsCard)\n }, [])\n\n return (\n <div ref={innerRef} className={cn('w-full', className, { 'aiui-dark': data?.theme === 'dark' })}>\n {title && <Title data={{ title: title }} />}\n {isShowTab && (\n <div className={`${isMobile ? 'w-full overflow-hidden' : ''}`}>\n <TabSwitch\n value={tabId}\n tabs={productsTab}\n tabShape={tabShape}\n onTabClick={v => {\n setTabId(v?.tab)\n handleCurrentTab(v?.data || [])\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: data?.title,\n component_position: 1,\n navigation: v?.tab,\n },\n })\n }}\n />\n </div>\n )}\n <div className=\"tablet:min-h-[393px] laptop:min-h-[425px] desktop:min-h-[405px] lg-desktop:min-h-[409px]\">\n <SwiperBox\n className=\"mt-6 !overflow-visible\"\n id={`ShelfDisplay${key}${tabId}`}\n data={{ list: currentItems, configuration: { ...other, event: event } }}\n Slide={ShelfDisplayItem}\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,\n },\n 1440: {\n spaceBetween: 16,\n freeMode: false,\n slidesPerView: 4,\n },\n }}\n />\n </div>\n </div>\n )\n }\n)\n\nexport default withStyles(ShelfDisplay)\n"],
5
+ "mappings": "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",
6
+ "names": ["Fragment", "jsx", "jsxs", "React", "useState", "useEffect", "useRef", "useImperativeHandle", "cn", "Picture", "TabSwitch", "Button", "Title", "SwiperBox", "withStyles", "formatVariantPrice", "useMediaQuery", "useExposure", "gaTrack", "useAiuiContext", "componentType", "componentName", "SOLD_OUT_PRICE", "ShelfDisplayItem", "data", "configuration", "locale", "copyWriting", "onPrimaryButton", "params", "index", "onSecondaryButton", "variant", "item", "isSoldOut", "price", "basePrice", "handleUrl", "sku", "skuArray", "ShelfDisplay", "buildData", "className", "key", "event", "ref", "tabId", "setTabId", "currentItems", "setCurrentItems", "isMobile", "innerRef", "productsTab", "productsCard", "title", "align", "isShowTab", "tabShape", "other", "handleCurrentTab", "currentData", "newCurrentData", "findData", "v", "ShelfDisplay_default"]
7
7
  }
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ interface TabsProps {
3
+ tabs: any[];
4
+ value: string;
5
+ tabShape?: 'rounded' | 'square';
6
+ onTabClick?: (value: any) => void;
7
+ }
8
+ declare const TabSwitch: React.FC<TabsProps>;
9
+ export default TabSwitch;
@@ -0,0 +1,2 @@
1
+ "use client";import{jsx as r}from"react/jsx-runtime";import{useRef as h}from"react";import{cn as s}from"../../helpers/utils.js";const v=({tabs:a,value:d,onTabClick:i,tabShape:n="square"})=>{const l=h(null),b=t=>{i?.(t);const e=document.getElementById(`tab-${t?.tab}`),o=l.current;if(e&&o){const c=e.offsetLeft,f=e.offsetWidth,p=o.offsetWidth,u=c-p/2+f/2;o.scrollTo({left:u,behavior:"smooth"})}};return a?.length>0?r("div",{ref:l,className:s("tab-switch-wrap bg-tabs-list-bg relative flex w-fit max-w-full overflow-x-auto overflow-y-hidden p-1",n==="rounded"?"rounded-[28px]":""),children:a?.map(t=>r("button",{id:`tab-${t?.tab}`,onClick:()=>b(t),className:s("text-info-primary px-5 py-2.5 text-sm font-bold","relative flex-1 shrink-0 whitespace-nowrap transition-all","lg-desktop:text-base lg-desktop:px-7 lg-desktop:py-3.5",t?.tab===d?"bg-btn-primary-disabled-foreground":"",n==="rounded"?"rounded-[28px]":""),children:t?.tab||""},t?.id||t?.tab))}):null};var m=v;export{m as default};
2
+ //# sourceMappingURL=tabSwitch.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/biz-components/ShelfDisplay/tabSwitch.tsx"],
4
+ "sourcesContent": ["'use client'\nimport React, { useRef } from 'react'\nimport { cn } from '../../helpers/utils.js'\n\ninterface TabsProps {\n tabs: any[]\n value: string\n tabShape?: 'rounded' | 'square'\n onTabClick?: (value: any) => void\n}\n\nconst TabSwitch: React.FC<TabsProps> = ({ tabs, value, onTabClick, tabShape = 'square' }) => {\n const tabRef = useRef<HTMLDivElement>(null)\n\n const handleTabClick = (item: any) => {\n onTabClick?.(item)\n // \u83B7\u53D6\u5F53\u524D\u9009\u4E2D\u7684 tab \u5E76\u8BA1\u7B97\u4E0B\u5212\u7EBF\u4F4D\u7F6E\n const tabElement = document.getElementById(`tab-${item?.tab}`)\n // **\u8BA1\u7B97\u6EDA\u52A8\u4F4D\u7F6E**\n const container = tabRef.current\n if (tabElement && container) {\n const tabLeft = tabElement.offsetLeft // \u9009\u4E2D tab \u7684\u5DE6\u4FA7\u504F\u79FB\u91CF\n const tabWidth = tabElement.offsetWidth\n const containerWidth = container.offsetWidth\n // \u8BA1\u7B97\u76EE\u6807\u6EDA\u52A8\u4F4D\u7F6E\uFF0C\u4F7F tab \u5C45\u4E2D\n const scrollTo = tabLeft - containerWidth / 2 + tabWidth / 2\n container.scrollTo({\n left: scrollTo,\n behavior: 'smooth',\n })\n }\n }\n\n return tabs?.length > 0 ? (\n <div\n ref={tabRef}\n className={cn(\n 'tab-switch-wrap bg-tabs-list-bg relative flex w-fit max-w-full overflow-x-auto overflow-y-hidden p-1',\n tabShape === 'rounded' ? 'rounded-[28px]' : ''\n )}\n >\n {tabs?.map(item => (\n <button\n key={item?.id || item?.tab}\n id={`tab-${item?.tab}`}\n onClick={() => handleTabClick(item)}\n className={cn(\n 'text-info-primary px-5 py-2.5 text-sm font-bold',\n 'relative flex-1 shrink-0 whitespace-nowrap transition-all',\n 'lg-desktop:text-base lg-desktop:px-7 lg-desktop:py-3.5',\n item?.tab === value ? 'bg-btn-primary-disabled-foreground' : '',\n tabShape === 'rounded' ? 'rounded-[28px]' : ''\n )}\n >\n {item?.tab || ''}\n </button>\n ))}\n </div>\n ) : null\n}\n\nexport default TabSwitch\n"],
5
+ "mappings": "aA0CQ,cAAAA,MAAA,oBAzCR,OAAgB,UAAAC,MAAc,QAC9B,OAAS,MAAAC,MAAU,yBASnB,MAAMC,EAAiC,CAAC,CAAE,KAAAC,EAAM,MAAAC,EAAO,WAAAC,EAAY,SAAAC,EAAW,QAAS,IAAM,CAC3F,MAAMC,EAASP,EAAuB,IAAI,EAEpCQ,EAAkBC,GAAc,CACpCJ,IAAaI,CAAI,EAEjB,MAAMC,EAAa,SAAS,eAAe,OAAOD,GAAM,GAAG,EAAE,EAEvDE,EAAYJ,EAAO,QACzB,GAAIG,GAAcC,EAAW,CAC3B,MAAMC,EAAUF,EAAW,WACrBG,EAAWH,EAAW,YACtBI,EAAiBH,EAAU,YAE3BI,EAAWH,EAAUE,EAAiB,EAAID,EAAW,EAC3DF,EAAU,SAAS,CACjB,KAAMI,EACN,SAAU,QACZ,CAAC,CACH,CACF,EAEA,OAAOZ,GAAM,OAAS,EACpBJ,EAAC,OACC,IAAKQ,EACL,UAAWN,EACT,uGACAK,IAAa,UAAY,iBAAmB,EAC9C,EAEC,SAAAH,GAAM,IAAIM,GACTV,EAAC,UAEC,GAAI,OAAOU,GAAM,GAAG,GACpB,QAAS,IAAMD,EAAeC,CAAI,EAClC,UAAWR,EACT,kDACA,4DACA,yDACAQ,GAAM,MAAQL,EAAQ,qCAAuC,GAC7DE,IAAa,UAAY,iBAAmB,EAC9C,EAEC,SAAAG,GAAM,KAAO,IAXTA,GAAM,IAAMA,GAAM,GAYzB,CACD,EACH,EACE,IACN,EAEA,IAAOO,EAAQd",
6
+ "names": ["jsx", "useRef", "cn", "TabSwitch", "tabs", "value", "onTabClick", "tabShape", "tabRef", "handleTabClick", "item", "tabElement", "container", "tabLeft", "tabWidth", "containerWidth", "scrollTo", "tabSwitch_default"]
7
+ }
@@ -1,10 +1,9 @@
1
1
  import React from 'react';
2
2
  import type { SloganProps } from './types.js';
3
- declare const _default: {
4
- (props: Omit<SloganProps & 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
+ export declare const componentType = "copy";
4
+ export declare const componentName = "brand_slogan";
5
+ declare const _default: React.ForwardRefExoticComponent<Omit<Omit<SloganProps & React.RefAttributes<HTMLDivElement>, keyof import("../../shared/Styles.js").StylesProps> & Partial<import("../../shared/Styles.js").StylesProps> & {
6
+ className?: string;
7
+ data?: Record<string, any>;
8
+ }, "ref"> & React.RefAttributes<any>>;
10
9
  export default _default;
@@ -1,2 +1,2 @@
1
- "use client";import{jsx as l,jsxs as $}from"react/jsx-runtime";import s,{useRef as y}from"react";import{useGSAP as j}from"@gsap/react";import{gsap as S}from"gsap";import{SplitText as z}from"gsap/dist/SplitText";import{ScrollTrigger as T}from"gsap/dist/ScrollTrigger";import{cn as p}from"../../helpers/utils.js";import{Heading as U,Text as Y}from"../../components/index.js";import{withStyles as q}from"../../shared/Styles.js";function B(c=[],u=3){const f=[];for(let o=0;o<c.length;o+=u)f.push(c.slice(o,o+u));return f}const R=s.forwardRef(({data:c,className:u=""},f)=>{const{title:o,features:n=[],featureChunkSize:k=3,theme:D}=c,[x,H]=s.useState(0),[G,h]=s.useState(!0),m=B(n,k),v=m.length,a=n.length>k,M=a?[...m,m[0]]:m,w=40;s.useEffect(()=>{if(!a)return;const t=setInterval(()=>{H(e=>e+1),h(!0)},3e3);return()=>clearInterval(t)},[v,a]),s.useEffect(()=>{if(a)if(x===v){const t=setTimeout(()=>{h(!1),H(0)},500);return()=>clearTimeout(t)}else h(!0)},[x,v,a]);const i=y(null),N=y(null),g=y(null);return j(()=>{if(!i.current)return;g.current=new z(i.current,{type:"words",wordsClass:"word"});const t=i.current?.clientHeight||100,e=g.current.words;return S.set(e,{opacity:0}),T.create({trigger:i.current,start:"bottom bottom-=6%",end:`bottom+=${t*2+80}px bottom-=6%`,scrub:!0,onUpdate:r=>{const d=r.progress,E=e.length,F=1/E,I=.5;e.forEach((A,C)=>{const L=C/E*(1-I),P=F*(1+I);let b=(d-L)/P;b=Math.max(0,Math.min(b,1)),S.set(A,{opacity:b})})}}),n&&n.length>0&&T.create({trigger:N.current,start:`bottom+=${t*2}px bottom-=6%`,end:`bottom+=${t*2+100}px bottom-=6%`,onUpdate:r=>{S.set(N.current,{opacity:r.progress})}}),()=>{g.current&&g.current.revert(),T.getAll().forEach(r=>r.kill())}},[]),$("div",{ref:f,className:p("laptop:flex-row laptop:items-end laptop:justify-between text-info-primary laptop:min-h-[64px] lg-desktop:min-h-[128px] flex h-auto w-full flex-col items-start justify-center gap-[24px] text-center",u),children:[l(U,{ref:i,as:"h2",size:2,weight:"bold",align:"left",className:p("slogan-title laptop:text-[40px] desktop:text-[48px] lg-desktop:text-[64px] text-[40px] !leading-none",{"text-[#1D1D1F]":D!=="dark","text-[#fff]":D==="dark"}),children:o}),n&&n.length>0&&l("div",{className:p("relative h-12 w-full max-w-[500px] overflow-hidden",`tablet:h-[${w}px]`),children:l("div",{className:p(["flex flex-col",G?"transition-transform duration-500 ease-[cubic-bezier(.4,0,.2,1)]":"!transition-none"]),style:{transform:`translateY(-${x*w}px)`},children:M.map((t,e)=>l("div",{className:p("flex h-12 w-full flex-row items-stretch gap-3 overflow-hidden",`tablet:h-[${w}px]`),children:t.map((r,d)=>$(s.Fragment,{children:[d>0&&l("div",{className:"slogan-feature-divider w-px self-stretch bg-[#D9D9D9]"}),l(Y,{align:"left",as:"p",className:"slogan-feature-text tablet:text-[13px] laptop:text-[14px] line-clamp-2 text-[12px] leading-[1.4] text-[#1D1D1F]",html:r.title})]},d))},e))})})]})});R.displayName="Slogan";var _=q(R);export{_ as default};
1
+ "use client";import{jsx as l,jsxs as G}from"react/jsx-runtime";import s,{useImperativeHandle as F,useRef as x}from"react";import{useGSAP as U}from"@gsap/react";import{gsap as h}from"gsap";import{SplitText as R}from"gsap/dist/SplitText";import{ScrollTrigger as v}from"gsap/dist/ScrollTrigger";import{cn as p}from"../../helpers/utils.js";import{Heading as Y,Text as _}from"../../components/index.js";import{withStyles as q}from"../../shared/Styles.js";import{useExposure as B}from"../../hooks/useExposure.js";const J="copy",K="brand_slogan";function O(c=[],u=3){const m=[];for(let e=0;e<c.length;e+=u)m.push(c.slice(e,e+u));return m}const $=s.forwardRef(({data:c,className:u=""},m)=>{const{title:e,features:o=[],featureChunkSize:H=3}=c,[y,N]=s.useState(0),[L,b]=s.useState(!0),w=x(null),f=O(o,H),T=f.length,a=o.length>H,D=a?[...f,f[0]]:f,E=40;F(m,()=>w.current),B(w,{componentType:J,componentName:K,componentTitle:e}),s.useEffect(()=>{if(!a)return;const t=setInterval(()=>{N(r=>r+1),b(!0)},3e3);return()=>clearInterval(t)},[T,a]),s.useEffect(()=>{if(a)if(y===T){const t=setTimeout(()=>{b(!1),N(0)},500);return()=>clearTimeout(t)}else b(!0)},[y,T,a]);const i=x(null),k=x(null),g=x(null);return U(()=>{if(h.registerPlugin(v,R),!i.current)return;g.current=new R(i.current,{type:"words",wordsClass:"word"});const t=i.current?.clientHeight||100,r=g.current.words;return h.set(r,{opacity:0}),v.create({trigger:i.current,start:"bottom bottom-=4%",end:`bottom+=${t*1.5}px bottom-=4%`,scrub:!0,onUpdate:n=>{const d=n.progress,I=r.length,P=1/I,M=.5;r.forEach((z,A)=>{const C=A/I*(1-M),j=P*(1+M);let S=(d-C)/j;S=Math.max(0,Math.min(S,1)),h.set(z,{opacity:S})})}}),o&&o.length>0&&v.create({trigger:k.current,start:`bottom+=${t*2}px bottom-=6%`,end:`bottom+=${t*2+100}px bottom-=6%`,onUpdate:n=>{h.set(k.current,{opacity:n.progress})}}),()=>{g.current&&g.current.revert(),v.getAll().forEach(n=>n.kill())}},[]),G("div",{ref:w,className:p("slogan-container laptop:flex-row laptop:items-end laptop:justify-between text-info-primary flex h-auto w-full flex-col items-start justify-center gap-[24px] text-center",u),children:[l(Y,{ref:i,as:"h2",size:2,weight:"bold",align:"left",className:p("slogan-title laptop:text-[40px] desktop:text-[48px] lg-desktop:text-[64px] text-[40px] !leading-none"),html:e}),o&&o.length>0&&l("div",{className:p("relative w-full max-w-[500px] overflow-hidden",`tablet:h-[${E}px]`),children:l("div",{className:p(["flex flex-col",L?"transition-transform duration-500 ease-[cubic-bezier(.4,0,.2,1)]":"!transition-none"]),style:{transform:`translateY(-${y*E}px)`},children:D.map((t,r)=>l("div",{className:p("flex w-full flex-row items-stretch gap-3 overflow-hidden",`tablet:h-[${E}px]`),children:t.map((n,d)=>G(s.Fragment,{children:[d>0&&l("div",{className:"slogan-feature-divider w-px self-stretch bg-[#E4E5E6]"}),l(_,{size:3,align:"left",as:"p",className:"slogan-feature-text tablet:text-[13px] laptop:text-[14px] line-clamp-3 text-[12px] leading-[1.4]",html:n.title})]},d))},r))})})]})});$.displayName="Slogan";var ot=q($);export{K as componentName,J as componentType,ot as default};
2
2
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/biz-components/Slogan/index.tsx"],
4
- "sourcesContent": ["'use client'\nimport React, { useRef } from 'react'\nimport { useGSAP } from '@gsap/react'\nimport { gsap } from 'gsap'\nimport { SplitText } from 'gsap/dist/SplitText'\nimport { ScrollTrigger } from 'gsap/dist/ScrollTrigger'\nimport { cn } from '../../helpers/utils.js'\nimport { Heading, Text } from '../../components/index.js'\nimport { withStyles } from '../../shared/Styles.js'\nimport type { SloganProps } from './types.js'\n\nfunction chunkArray(array: { title: string }[] = [], size: number = 3) {\n const result = []\n for (let i = 0; i < array.length; i += size) {\n result.push(array.slice(i, i + size))\n }\n return result\n}\n\nconst Slogan = React.forwardRef<HTMLDivElement, SloganProps>(({ data, className = '' }, ref) => {\n const { title, features = [], featureChunkSize = 3, theme } = data\n const [groupIndex, setGroupIndex] = React.useState(0)\n const [isTransitioning, setIsTransitioning] = React.useState(true)\n const featuresGroups = chunkArray(features, featureChunkSize)\n const totalGroups = featuresGroups.length\n const needCarousel = features.length > featureChunkSize\n const displayGroups = needCarousel ? [...featuresGroups, featuresGroups[0]] : featuresGroups\n const groupHeight = 40\n\n // \u53EA\u5728\u9700\u8981\u8F6E\u64AD\u65F6\u542F\u7528\u5B9A\u65F6\u5668\n React.useEffect(() => {\n if (!needCarousel) return\n const timer = setInterval(() => {\n setGroupIndex(i => i + 1)\n setIsTransitioning(true)\n }, 3000)\n return () => clearInterval(timer)\n }, [totalGroups, needCarousel])\n\n // \u53EA\u5728\u9700\u8981\u8F6E\u64AD\u65F6\u5904\u7406\u65E0\u7F1D\u8DF3\u8F6C\n React.useEffect(() => {\n if (!needCarousel) return\n if (groupIndex === totalGroups) {\n const handle = setTimeout(() => {\n setIsTransitioning(false)\n setGroupIndex(0)\n }, 500) // 500ms\u7B49\u4E8E\u52A8\u753B\u65F6\u957F\n return () => clearTimeout(handle)\n } else {\n setIsTransitioning(true)\n }\n }, [groupIndex, totalGroups, needCarousel])\n\n // \u6807\u9898\u52A8\u753B\u903B\u8F91\u4FDD\u6301\u4E0D\u53D8\n const titleRef = useRef<HTMLHeadingElement>(null)\n const featuresRef = useRef<HTMLDivElement>(null)\n const splitTextInstance = useRef<SplitText | null>(null)\n useGSAP(() => {\n if (!titleRef.current) return\n splitTextInstance.current = new SplitText(titleRef.current, {\n type: 'words',\n wordsClass: 'word',\n })\n const height = titleRef.current?.clientHeight || 100\n\n const words = splitTextInstance.current.words\n gsap.set(words, { opacity: 0 })\n ScrollTrigger.create({\n trigger: titleRef.current,\n start: 'bottom bottom-=6%',\n end: `bottom+=${height * 2 + 80}px bottom-=6%`,\n scrub: true,\n onUpdate: (self: any) => {\n const progress = self.progress\n const total = words.length\n const interval = 1 / total\n const overlap = 0.5\n words.forEach((word: any, i: number) => {\n const start = (i / total) * (1 - overlap)\n const width = interval * (1 + overlap)\n let opacity = (progress - start) / width\n opacity = Math.max(0, Math.min(opacity, 1))\n gsap.set(word, { opacity })\n })\n },\n })\n\n if (features && features.length > 0) {\n ScrollTrigger.create({\n trigger: featuresRef.current,\n start: `bottom+=${height * 2}px bottom-=6%`,\n end: `bottom+=${height * 2 + 100}px bottom-=6%`,\n onUpdate: (self: any) => {\n gsap.set(featuresRef.current, { opacity: self.progress })\n },\n })\n }\n\n return () => {\n splitTextInstance.current && splitTextInstance.current.revert()\n ScrollTrigger.getAll().forEach((t: any) => t.kill())\n }\n }, [])\n\n return (\n <div\n ref={ref}\n className={cn(\n 'laptop:flex-row laptop:items-end laptop:justify-between text-info-primary laptop:min-h-[64px] lg-desktop:min-h-[128px] flex h-auto w-full flex-col items-start justify-center gap-[24px] text-center',\n className\n )}\n >\n <Heading\n ref={titleRef}\n as=\"h2\"\n size={2}\n weight={'bold'}\n align={'left'}\n className={cn(\n 'slogan-title laptop:text-[40px] desktop:text-[48px] lg-desktop:text-[64px] text-[40px] !leading-none',\n {\n 'text-[#1D1D1F]': theme !== 'dark',\n 'text-[#fff]': theme === 'dark',\n }\n )}\n >\n {title}\n </Heading>\n {features && features.length > 0 && (\n <div className={cn('relative h-12 w-full max-w-[500px] overflow-hidden', `tablet:h-[${groupHeight}px]`)}>\n <div\n className={cn([\n 'flex flex-col',\n isTransitioning ? 'transition-transform duration-500 ease-[cubic-bezier(.4,0,.2,1)]' : '!transition-none',\n ])}\n style={{\n transform: `translateY(-${groupIndex * groupHeight}px)`,\n }}\n >\n {displayGroups.map((group, idx) => (\n <div\n className={cn(\n 'flex h-12 w-full flex-row items-stretch gap-3 overflow-hidden',\n `tablet:h-[${groupHeight}px]`\n )}\n key={idx}\n >\n {group.map((feature, index) => (\n <React.Fragment key={index}>\n {index > 0 && <div className=\"slogan-feature-divider w-px self-stretch bg-[#D9D9D9]\" />}\n <Text\n align=\"left\"\n as=\"p\"\n className=\"slogan-feature-text tablet:text-[13px] laptop:text-[14px] line-clamp-2 text-[12px] leading-[1.4] text-[#1D1D1F]\"\n html={feature.title}\n />\n </React.Fragment>\n ))}\n </div>\n ))}\n </div>\n </div>\n )}\n </div>\n )\n})\n\nSlogan.displayName = 'Slogan'\n\nexport default withStyles(Slogan)\n"],
5
- "mappings": "aAgHM,cAAAA,EAoCY,QAAAC,MApCZ,oBA/GN,OAAOC,GAAS,UAAAC,MAAc,QAC9B,OAAS,WAAAC,MAAe,cACxB,OAAS,QAAAC,MAAY,OACrB,OAAS,aAAAC,MAAiB,sBAC1B,OAAS,iBAAAC,MAAqB,0BAC9B,OAAS,MAAAC,MAAU,yBACnB,OAAS,WAAAC,EAAS,QAAAC,MAAY,4BAC9B,OAAS,cAAAC,MAAkB,yBAG3B,SAASC,EAAWC,EAA6B,CAAC,EAAGC,EAAe,EAAG,CACrE,MAAMC,EAAS,CAAC,EAChB,QAASC,EAAI,EAAGA,EAAIH,EAAM,OAAQG,GAAKF,EACrCC,EAAO,KAAKF,EAAM,MAAMG,EAAGA,EAAIF,CAAI,CAAC,EAEtC,OAAOC,CACT,CAEA,MAAME,EAASf,EAAM,WAAwC,CAAC,CAAE,KAAAgB,EAAM,UAAAC,EAAY,EAAG,EAAGC,IAAQ,CAC9F,KAAM,CAAE,MAAAC,EAAO,SAAAC,EAAW,CAAC,EAAG,iBAAAC,EAAmB,EAAG,MAAAC,CAAM,EAAIN,EACxD,CAACO,EAAYC,CAAa,EAAIxB,EAAM,SAAS,CAAC,EAC9C,CAACyB,EAAiBC,CAAkB,EAAI1B,EAAM,SAAS,EAAI,EAC3D2B,EAAiBjB,EAAWU,EAAUC,CAAgB,EACtDO,EAAcD,EAAe,OAC7BE,EAAeT,EAAS,OAASC,EACjCS,EAAgBD,EAAe,CAAC,GAAGF,EAAgBA,EAAe,CAAC,CAAC,EAAIA,EACxEI,EAAc,GAGpB/B,EAAM,UAAU,IAAM,CACpB,GAAI,CAAC6B,EAAc,OACnB,MAAMG,EAAQ,YAAY,IAAM,CAC9BR,EAAcV,GAAKA,EAAI,CAAC,EACxBY,EAAmB,EAAI,CACzB,EAAG,GAAI,EACP,MAAO,IAAM,cAAcM,CAAK,CAClC,EAAG,CAACJ,EAAaC,CAAY,CAAC,EAG9B7B,EAAM,UAAU,IAAM,CACpB,GAAK6B,EACL,GAAIN,IAAeK,EAAa,CAC9B,MAAMK,EAAS,WAAW,IAAM,CAC9BP,EAAmB,EAAK,EACxBF,EAAc,CAAC,CACjB,EAAG,GAAG,EACN,MAAO,IAAM,aAAaS,CAAM,CAClC,MACEP,EAAmB,EAAI,CAE3B,EAAG,CAACH,EAAYK,EAAaC,CAAY,CAAC,EAG1C,MAAMK,EAAWjC,EAA2B,IAAI,EAC1CkC,EAAclC,EAAuB,IAAI,EACzCmC,EAAoBnC,EAAyB,IAAI,EACvD,OAAAC,EAAQ,IAAM,CACZ,GAAI,CAACgC,EAAS,QAAS,OACvBE,EAAkB,QAAU,IAAIhC,EAAU8B,EAAS,QAAS,CAC1D,KAAM,QACN,WAAY,MACd,CAAC,EACD,MAAMG,EAASH,EAAS,SAAS,cAAgB,IAE3CI,EAAQF,EAAkB,QAAQ,MACxC,OAAAjC,EAAK,IAAImC,EAAO,CAAE,QAAS,CAAE,CAAC,EAC9BjC,EAAc,OAAO,CACnB,QAAS6B,EAAS,QAClB,MAAO,oBACP,IAAK,WAAWG,EAAS,EAAI,EAAE,gBAC/B,MAAO,GACP,SAAWE,GAAc,CACvB,MAAMC,EAAWD,EAAK,SAChBE,EAAQH,EAAM,OACdI,EAAW,EAAID,EACfE,EAAU,GAChBL,EAAM,QAAQ,CAACM,EAAW9B,IAAc,CACtC,MAAM+B,EAAS/B,EAAI2B,GAAU,EAAIE,GAC3BG,EAAQJ,GAAY,EAAIC,GAC9B,IAAII,GAAWP,EAAWK,GAASC,EACnCC,EAAU,KAAK,IAAI,EAAG,KAAK,IAAIA,EAAS,CAAC,CAAC,EAC1C5C,EAAK,IAAIyC,EAAM,CAAE,QAAAG,CAAQ,CAAC,CAC5B,CAAC,CACH,CACF,CAAC,EAEG3B,GAAYA,EAAS,OAAS,GAChCf,EAAc,OAAO,CACnB,QAAS8B,EAAY,QACrB,MAAO,WAAWE,EAAS,CAAC,gBAC5B,IAAK,WAAWA,EAAS,EAAI,GAAG,gBAChC,SAAWE,GAAc,CACvBpC,EAAK,IAAIgC,EAAY,QAAS,CAAE,QAASI,EAAK,QAAS,CAAC,CAC1D,CACF,CAAC,EAGI,IAAM,CACXH,EAAkB,SAAWA,EAAkB,QAAQ,OAAO,EAC9D/B,EAAc,OAAO,EAAE,QAAS2C,GAAWA,EAAE,KAAK,CAAC,CACrD,CACF,EAAG,CAAC,CAAC,EAGHjD,EAAC,OACC,IAAKmB,EACL,UAAWZ,EACT,uMACAW,CACF,EAEA,UAAAnB,EAACS,EAAA,CACC,IAAK2B,EACL,GAAG,KACH,KAAM,EACN,OAAQ,OACR,MAAO,OACP,UAAW5B,EACT,uGACA,CACE,iBAAkBgB,IAAU,OAC5B,cAAeA,IAAU,MAC3B,CACF,EAEC,SAAAH,EACH,EACCC,GAAYA,EAAS,OAAS,GAC7BtB,EAAC,OAAI,UAAWQ,EAAG,qDAAsD,aAAayB,CAAW,KAAK,EACpG,SAAAjC,EAAC,OACC,UAAWQ,EAAG,CACZ,gBACAmB,EAAkB,mEAAqE,kBACzF,CAAC,EACD,MAAO,CACL,UAAW,eAAeF,EAAaQ,CAAW,KACpD,EAEC,SAAAD,EAAc,IAAI,CAACmB,EAAOC,IACzBpD,EAAC,OACC,UAAWQ,EACT,gEACA,aAAayB,CAAW,KAC1B,EAGC,SAAAkB,EAAM,IAAI,CAACE,EAASC,IACnBrD,EAACC,EAAM,SAAN,CACE,UAAAoD,EAAQ,GAAKtD,EAAC,OAAI,UAAU,wDAAwD,EACrFA,EAACU,EAAA,CACC,MAAM,OACN,GAAG,IACH,UAAU,kHACV,KAAM2C,EAAQ,MAChB,IAPmBC,CAQrB,CACD,GAZIF,CAaP,CACD,EACH,EACF,GAEJ,CAEJ,CAAC,EAEDnC,EAAO,YAAc,SAErB,IAAOsC,EAAQ5C,EAAWM,CAAM",
6
- "names": ["jsx", "jsxs", "React", "useRef", "useGSAP", "gsap", "SplitText", "ScrollTrigger", "cn", "Heading", "Text", "withStyles", "chunkArray", "array", "size", "result", "i", "Slogan", "data", "className", "ref", "title", "features", "featureChunkSize", "theme", "groupIndex", "setGroupIndex", "isTransitioning", "setIsTransitioning", "featuresGroups", "totalGroups", "needCarousel", "displayGroups", "groupHeight", "timer", "handle", "titleRef", "featuresRef", "splitTextInstance", "height", "words", "self", "progress", "total", "interval", "overlap", "word", "start", "width", "opacity", "t", "group", "idx", "feature", "index", "Slogan_default"]
4
+ "sourcesContent": ["'use client'\nimport React, { useImperativeHandle, useRef } from 'react'\nimport { useGSAP } from '@gsap/react'\nimport { gsap } from 'gsap'\nimport { SplitText } from 'gsap/dist/SplitText'\nimport { ScrollTrigger } from 'gsap/dist/ScrollTrigger'\nimport { cn } from '../../helpers/utils.js'\nimport { Heading, Text } from '../../components/index.js'\nimport { withStyles } from '../../shared/Styles.js'\nimport type { SloganProps } from './types.js'\nimport { useExposure } from '../../hooks/useExposure.js'\n\nexport const componentType = 'copy'\nexport const componentName = 'brand_slogan'\n\nfunction chunkArray(array: { title: string }[] = [], size: number = 3) {\n const result = []\n for (let i = 0; i < array.length; i += size) {\n result.push(array.slice(i, i + size))\n }\n return result\n}\n\nconst Slogan = React.forwardRef<HTMLDivElement, SloganProps>(({ data, className = '' }, ref) => {\n const { title, features = [], featureChunkSize = 3 } = data\n const [groupIndex, setGroupIndex] = React.useState(0)\n const [isTransitioning, setIsTransitioning] = React.useState(true)\n const innerRef = useRef<HTMLDivElement>(null)\n const featuresGroups = chunkArray(features, featureChunkSize)\n const totalGroups = featuresGroups.length\n const needCarousel = features.length > featureChunkSize\n const displayGroups = needCarousel ? [...featuresGroups, featuresGroups[0]] : featuresGroups\n const groupHeight = 40\n\n useImperativeHandle(ref, () => innerRef.current as HTMLDivElement)\n\n useExposure(innerRef, {\n componentType,\n componentName,\n componentTitle: title,\n })\n\n // \u53EA\u5728\u9700\u8981\u8F6E\u64AD\u65F6\u542F\u7528\u5B9A\u65F6\u5668\n React.useEffect(() => {\n if (!needCarousel) return\n const timer = setInterval(() => {\n setGroupIndex(i => i + 1)\n setIsTransitioning(true)\n }, 3000)\n return () => clearInterval(timer)\n }, [totalGroups, needCarousel])\n\n // \u53EA\u5728\u9700\u8981\u8F6E\u64AD\u65F6\u5904\u7406\u65E0\u7F1D\u8DF3\u8F6C\n React.useEffect(() => {\n if (!needCarousel) return\n if (groupIndex === totalGroups) {\n const handle = setTimeout(() => {\n setIsTransitioning(false)\n setGroupIndex(0)\n }, 500) // 500ms\u7B49\u4E8E\u52A8\u753B\u65F6\u957F\n return () => clearTimeout(handle)\n } else {\n setIsTransitioning(true)\n }\n }, [groupIndex, totalGroups, needCarousel])\n\n // \u6807\u9898\u52A8\u753B\u903B\u8F91\u4FDD\u6301\u4E0D\u53D8\n const titleRef = useRef<HTMLHeadingElement>(null)\n const featuresRef = useRef<HTMLDivElement>(null)\n const splitTextInstance = useRef<SplitText | null>(null)\n useGSAP(() => {\n gsap.registerPlugin(ScrollTrigger, SplitText)\n if (!titleRef.current) return\n splitTextInstance.current = new SplitText(titleRef.current, {\n type: 'words',\n wordsClass: 'word',\n })\n const height = titleRef.current?.clientHeight || 100\n\n const words = splitTextInstance.current.words\n gsap.set(words, { opacity: 0 })\n ScrollTrigger.create({\n trigger: titleRef.current,\n start: 'bottom bottom-=4%',\n end: `bottom+=${height * 1.5}px bottom-=4%`,\n scrub: true,\n onUpdate: (self: any) => {\n const progress = self.progress\n const total = words.length\n const interval = 1 / total\n const overlap = 0.5\n words.forEach((word: any, i: number) => {\n const start = (i / total) * (1 - overlap)\n const width = interval * (1 + overlap)\n let opacity = (progress - start) / width\n opacity = Math.max(0, Math.min(opacity, 1))\n gsap.set(word, { opacity })\n })\n },\n })\n\n if (features && features.length > 0) {\n ScrollTrigger.create({\n trigger: featuresRef.current,\n start: `bottom+=${height * 2}px bottom-=6%`,\n end: `bottom+=${height * 2 + 100}px bottom-=6%`,\n onUpdate: (self: any) => {\n gsap.set(featuresRef.current, { opacity: self.progress })\n },\n })\n }\n\n return () => {\n splitTextInstance.current && splitTextInstance.current.revert()\n ScrollTrigger.getAll().forEach((t: any) => t.kill())\n }\n }, [])\n\n return (\n <div\n ref={innerRef}\n className={cn(\n 'slogan-container laptop:flex-row laptop:items-end laptop:justify-between text-info-primary flex h-auto w-full flex-col items-start justify-center gap-[24px] text-center',\n className\n )}\n >\n <Heading\n ref={titleRef}\n as=\"h2\"\n size={2}\n weight={'bold'}\n align={'left'}\n className={cn(\n 'slogan-title laptop:text-[40px] desktop:text-[48px] lg-desktop:text-[64px] text-[40px] !leading-none'\n )}\n html={title}\n />\n {features && features.length > 0 && (\n <div className={cn('relative w-full max-w-[500px] overflow-hidden', `tablet:h-[${groupHeight}px]`)}>\n <div\n className={cn([\n 'flex flex-col',\n isTransitioning ? 'transition-transform duration-500 ease-[cubic-bezier(.4,0,.2,1)]' : '!transition-none',\n ])}\n style={{\n transform: `translateY(-${groupIndex * groupHeight}px)`,\n }}\n >\n {displayGroups.map((group, idx) => (\n <div\n className={cn(\n 'flex w-full flex-row items-stretch gap-3 overflow-hidden',\n `tablet:h-[${groupHeight}px]`\n )}\n key={idx}\n >\n {group.map((feature, index) => (\n <React.Fragment key={index}>\n {index > 0 && <div className=\"slogan-feature-divider w-px self-stretch bg-[#E4E5E6]\" />}\n <Text\n size={3}\n align=\"left\"\n as=\"p\"\n className=\"slogan-feature-text tablet:text-[13px] laptop:text-[14px] line-clamp-3 text-[12px] leading-[1.4]\"\n html={feature.title}\n />\n </React.Fragment>\n ))}\n </div>\n ))}\n </div>\n </div>\n )}\n </div>\n )\n})\n\nSlogan.displayName = 'Slogan'\n\nexport default withStyles(Slogan)\n"],
5
+ "mappings": "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",
6
+ "names": ["jsx", "jsxs", "React", "useImperativeHandle", "useRef", "useGSAP", "gsap", "SplitText", "ScrollTrigger", "cn", "Heading", "Text", "withStyles", "useExposure", "componentType", "componentName", "chunkArray", "array", "size", "result", "i", "Slogan", "data", "className", "ref", "title", "features", "featureChunkSize", "groupIndex", "setGroupIndex", "isTransitioning", "setIsTransitioning", "innerRef", "featuresGroups", "totalGroups", "needCarousel", "displayGroups", "groupHeight", "timer", "handle", "titleRef", "featuresRef", "splitTextInstance", "height", "words", "self", "progress", "total", "interval", "overlap", "word", "start", "width", "opacity", "t", "group", "idx", "feature", "index", "Slogan_default"]
7
7
  }
@@ -1,10 +1,7 @@
1
1
  import React from 'react';
2
2
  import type { SpacerProps } from './types.js';
3
- declare const _default: {
4
- (props: Omit<SpacerProps & 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<SpacerProps & 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;
@@ -1,2 +1,2 @@
1
- "use client";import{jsx as c}from"react/jsx-runtime";import o from"react";import{cn as a}from"../../helpers/utils.js";import{withStyles as s}from"../../shared/Styles.js";const p=o.forwardRef(({className:t,data:r})=>{const{space:e="default"}=r;return c("div",{className:a(e==="default"&&"desktop:h-[96px] lg-desktop:h-[128px] h-[64px] ",e==="fixed"&&"h-[64px] ",t)})});p.displayName="Spacer";var m=s(p);export{m as default};
1
+ "use client";import{jsx as c}from"react/jsx-runtime";import a from"react";import{cn as o}from"../../helpers/utils.js";import{withStyles as s}from"../../shared/Styles.js";const p=a.forwardRef(({className:t,data:r})=>{const{space:e="default"}=r;return c("div",{className:o("ipc_spacer",e==="default"&&"laptop:h-16 lg-desktop:h-[128px] tablet:h-8 h-16",e==="fixed"&&"h-16",t)})});p.displayName="Spacer";var m=s(p);export{m as default};
2
2
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/biz-components/Spacer/index.tsx"],
4
- "sourcesContent": ["'use client'\nimport React from 'react'\nimport { cn } from '../../helpers/utils.js'\nimport { withStyles } from '../../shared/Styles.js'\nimport type { SpacerProps } from './types.js'\n\nconst Spacer = React.forwardRef<HTMLDivElement, SpacerProps>(({ className, data }) => {\n const { space = 'default' } = data\n return (\n <div\n className={cn(\n space === 'default' && 'desktop:h-[96px] lg-desktop:h-[128px] h-[64px] ',\n space === 'fixed' && 'h-[64px] ',\n className\n )}\n ></div>\n )\n})\n\nSpacer.displayName = 'Spacer'\n\nexport default withStyles(Spacer)\n"],
5
- "mappings": "aASI,cAAAA,MAAA,oBARJ,OAAOC,MAAW,QAClB,OAAS,MAAAC,MAAU,yBACnB,OAAS,cAAAC,MAAkB,yBAG3B,MAAMC,EAASH,EAAM,WAAwC,CAAC,CAAE,UAAAI,EAAW,KAAAC,CAAK,IAAM,CACpF,KAAM,CAAE,MAAAC,EAAQ,SAAU,EAAID,EAC9B,OACEN,EAAC,OACC,UAAWE,EACTK,IAAU,WAAa,kDACvBA,IAAU,SAAW,YACrBF,CACF,EACD,CAEL,CAAC,EAEDD,EAAO,YAAc,SAErB,IAAOI,EAAQL,EAAWC,CAAM",
4
+ "sourcesContent": ["'use client'\nimport React from 'react'\nimport { cn } from '../../helpers/utils.js'\nimport { withStyles } from '../../shared/Styles.js'\nimport type { SpacerProps } from './types.js'\n\nconst Spacer = React.forwardRef<HTMLDivElement, SpacerProps>(({ className, data }) => {\n const { space = 'default' } = data\n return (\n <div\n className={cn(\n 'ipc_spacer',\n space === 'default' && 'laptop:h-16 lg-desktop:h-[128px] tablet:h-8 h-16',\n space === 'fixed' && 'h-16',\n className\n )}\n ></div>\n )\n})\n\nSpacer.displayName = 'Spacer'\n\nexport default withStyles(Spacer)\n"],
5
+ "mappings": "aASI,cAAAA,MAAA,oBARJ,OAAOC,MAAW,QAClB,OAAS,MAAAC,MAAU,yBACnB,OAAS,cAAAC,MAAkB,yBAG3B,MAAMC,EAASH,EAAM,WAAwC,CAAC,CAAE,UAAAI,EAAW,KAAAC,CAAK,IAAM,CACpF,KAAM,CAAE,MAAAC,EAAQ,SAAU,EAAID,EAC9B,OACEN,EAAC,OACC,UAAWE,EACT,aACAK,IAAU,WAAa,mDACvBA,IAAU,SAAW,OACrBF,CACF,EACD,CAEL,CAAC,EAEDD,EAAO,YAAc,SAErB,IAAOI,EAAQL,EAAWC,CAAM",
6
6
  "names": ["jsx", "React", "cn", "withStyles", "Spacer", "className", "data", "space", "Spacer_default"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use client";import{jsx as o}from"react/jsx-runtime";import m,{useState as t}from"react";import{cn as d}from"../../helpers/utils.js";import{Swiper as u,SwiperSlide as c}from"swiper/react";import{Navigation as S,FreeMode as x,Mousewheel as B}from"swiper/modules";const i=m.forwardRef(({data:s,breakpoints:n,Slide:p,className:a,id:r})=>{const[g,l]=t(!0),[M,f]=t(!1);return o(u,{className:d(a),navigation:{nextEl:`.${r}-custom-swiper-button-next`,prevEl:`.${r}-custom-swiper-button-prev`},onProgress:e=>{l(e.isBeginning),f(e.isEnd)},modules:[S,x,B],freeMode:!0,mousewheel:{forceToAxis:!0},breakpoints:n||{0:{spaceBetween:12,slidesPerView:1,freeMode:!1},374:{spaceBetween:12,slidesPerView:1.1,freeMode:!1},768:{spaceBetween:16,slidesPerView:2,freeMode:!1}},children:s?.list?.map((e,w)=>o(c,{className:"!flex !h-[unset]",children:o(p,{data:e,configuration:s?.configuration})},r+"SwiperSlide"+w))})});i.displayName="SwiperBox";var N=i;export{N as default};
1
+ "use client";import{jsx as s}from"react/jsx-runtime";import m,{useState as t}from"react";import{cn as u}from"../../helpers/utils.js";import{Swiper as c,SwiperSlide as d}from"swiper/react";import{Navigation as S,FreeMode as g,Mousewheel as x}from"swiper/modules";const n=m.forwardRef(({data:o,breakpoints:p,Slide:a,className:l,id:i})=>{const[B,f]=t(!0),[M,w]=t(!1);return s(c,{className:u(l),navigation:{nextEl:`.${i}-custom-swiper-button-next`,prevEl:`.${i}-custom-swiper-button-prev`},onProgress:e=>{f(e.isBeginning),w(e.isEnd)},modules:[S,g,x],freeMode:!0,mousewheel:{forceToAxis:!0},breakpoints:p||{0:{spaceBetween:12,slidesPerView:1,freeMode:!1},374:{spaceBetween:12,slidesPerView:1.1,freeMode:!1},768:{spaceBetween:16,slidesPerView:2,freeMode:!1}},children:o?.list?.map((e,r)=>s(d,{className:"!flex !h-[unset]",children:s(a,{data:e,configuration:o?.configuration?{...o?.configuration,index:r}:{index:r},jIndex:r})},i+"SwiperSlide"+r))})});n.displayName="SwiperBox";var N=n;export{N as default};
2
2
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/biz-components/SwiperBox/index.tsx"],
4
- "sourcesContent": ["'use client'\nimport React, { useState } from 'react'\nimport { cn } from '../../helpers/utils.js'\n// import 'swiper/css'\n// import 'swiper/css/free-mode'\nimport { Swiper, SwiperSlide } from 'swiper/react'\nimport { Navigation, FreeMode, Mousewheel } from 'swiper/modules'\nimport type { SwiperBoxProps } from './types.js'\n\nconst SwiperBox = React.forwardRef<HTMLDivElement, SwiperBoxProps>(({ data, breakpoints, Slide, className, id }) => {\n const [isStart, setStart] = useState(true)\n const [isEnd, setEnd] = useState(false)\n\n return (\n <Swiper\n className={cn(className)}\n navigation={{\n nextEl: `.${id}-custom-swiper-button-next`,\n prevEl: `.${id}-custom-swiper-button-prev`,\n }}\n onProgress={swiper => {\n setStart(swiper.isBeginning)\n setEnd(swiper.isEnd)\n }}\n modules={[Navigation, FreeMode, Mousewheel]}\n freeMode={true}\n mousewheel={{\n forceToAxis: true,\n }}\n breakpoints={\n breakpoints || {\n 0: {\n spaceBetween: 12,\n slidesPerView: 1,\n freeMode: false,\n },\n 374: {\n spaceBetween: 12,\n slidesPerView: 1.1,\n freeMode: false,\n },\n 768: {\n spaceBetween: 16,\n slidesPerView: 2,\n freeMode: false,\n },\n }\n }\n >\n {data?.list?.map((item, jIndex) => (\n <SwiperSlide key={id + 'SwiperSlide' + jIndex} className=\"!flex !h-[unset]\">\n <Slide data={item} configuration={data?.configuration} />\n </SwiperSlide>\n ))}\n </Swiper>\n )\n})\n\nSwiperBox.displayName = 'SwiperBox'\n\nexport default SwiperBox\n"],
5
- "mappings": "aAmDU,cAAAA,MAAA,oBAlDV,OAAOC,GAAS,YAAAC,MAAgB,QAChC,OAAS,MAAAC,MAAU,yBAGnB,OAAS,UAAAC,EAAQ,eAAAC,MAAmB,eACpC,OAAS,cAAAC,EAAY,YAAAC,EAAU,cAAAC,MAAkB,iBAGjD,MAAMC,EAAYR,EAAM,WAA2C,CAAC,CAAE,KAAAS,EAAM,YAAAC,EAAa,MAAAC,EAAO,UAAAC,EAAW,GAAAC,CAAG,IAAM,CAClH,KAAM,CAACC,EAASC,CAAQ,EAAId,EAAS,EAAI,EACnC,CAACe,EAAOC,CAAM,EAAIhB,EAAS,EAAK,EAEtC,OACEF,EAACI,EAAA,CACC,UAAWD,EAAGU,CAAS,EACvB,WAAY,CACV,OAAQ,IAAIC,CAAE,6BACd,OAAQ,IAAIA,CAAE,4BAChB,EACA,WAAYK,GAAU,CACpBH,EAASG,EAAO,WAAW,EAC3BD,EAAOC,EAAO,KAAK,CACrB,EACA,QAAS,CAACb,EAAYC,EAAUC,CAAU,EAC1C,SAAU,GACV,WAAY,CACV,YAAa,EACf,EACA,YACEG,GAAe,CACb,EAAG,CACD,aAAc,GACd,cAAe,EACf,SAAU,EACZ,EACA,IAAK,CACH,aAAc,GACd,cAAe,IACf,SAAU,EACZ,EACA,IAAK,CACH,aAAc,GACd,cAAe,EACf,SAAU,EACZ,CACF,EAGD,SAAAD,GAAM,MAAM,IAAI,CAACU,EAAMC,IACtBrB,EAACK,EAAA,CAA8C,UAAU,mBACvD,SAAAL,EAACY,EAAA,CAAM,KAAMQ,EAAM,cAAeV,GAAM,cAAe,GADvCI,EAAK,cAAgBO,CAEvC,CACD,EACH,CAEJ,CAAC,EAEDZ,EAAU,YAAc,YAExB,IAAOa,EAAQb",
4
+ "sourcesContent": ["'use client'\nimport React, { useState } from 'react'\nimport { cn } from '../../helpers/utils.js'\n// import 'swiper/css'\n// import 'swiper/css/free-mode'\nimport { Swiper, SwiperSlide } from 'swiper/react'\nimport { Navigation, FreeMode, Mousewheel } from 'swiper/modules'\nimport type { SwiperBoxProps } from './types.js'\n\nconst SwiperBox = React.forwardRef<HTMLDivElement, SwiperBoxProps>(({ data, breakpoints, Slide, className, id }) => {\n const [isStart, setStart] = useState(true)\n const [isEnd, setEnd] = useState(false)\n\n return (\n <Swiper\n className={cn(className)}\n navigation={{\n nextEl: `.${id}-custom-swiper-button-next`,\n prevEl: `.${id}-custom-swiper-button-prev`,\n }}\n onProgress={swiper => {\n setStart(swiper.isBeginning)\n setEnd(swiper.isEnd)\n }}\n modules={[Navigation, FreeMode, Mousewheel]}\n freeMode={true}\n mousewheel={{\n forceToAxis: true,\n }}\n breakpoints={\n breakpoints || {\n 0: {\n spaceBetween: 12,\n slidesPerView: 1,\n freeMode: false,\n },\n 374: {\n spaceBetween: 12,\n slidesPerView: 1.1,\n freeMode: false,\n },\n 768: {\n spaceBetween: 16,\n slidesPerView: 2,\n freeMode: false,\n },\n }\n }\n >\n {data?.list?.map((item, jIndex) => (\n <SwiperSlide key={id + 'SwiperSlide' + jIndex} className=\"!flex !h-[unset]\">\n <Slide\n data={item}\n configuration={data?.configuration ? { ...data?.configuration, index: jIndex } : { index: jIndex }}\n jIndex={jIndex}\n />\n </SwiperSlide>\n ))}\n </Swiper>\n )\n})\n\nSwiperBox.displayName = 'SwiperBox'\n\nexport default SwiperBox\n"],
5
+ "mappings": "aAmDU,cAAAA,MAAA,oBAlDV,OAAOC,GAAS,YAAAC,MAAgB,QAChC,OAAS,MAAAC,MAAU,yBAGnB,OAAS,UAAAC,EAAQ,eAAAC,MAAmB,eACpC,OAAS,cAAAC,EAAY,YAAAC,EAAU,cAAAC,MAAkB,iBAGjD,MAAMC,EAAYR,EAAM,WAA2C,CAAC,CAAE,KAAAS,EAAM,YAAAC,EAAa,MAAAC,EAAO,UAAAC,EAAW,GAAAC,CAAG,IAAM,CAClH,KAAM,CAACC,EAASC,CAAQ,EAAId,EAAS,EAAI,EACnC,CAACe,EAAOC,CAAM,EAAIhB,EAAS,EAAK,EAEtC,OACEF,EAACI,EAAA,CACC,UAAWD,EAAGU,CAAS,EACvB,WAAY,CACV,OAAQ,IAAIC,CAAE,6BACd,OAAQ,IAAIA,CAAE,4BAChB,EACA,WAAYK,GAAU,CACpBH,EAASG,EAAO,WAAW,EAC3BD,EAAOC,EAAO,KAAK,CACrB,EACA,QAAS,CAACb,EAAYC,EAAUC,CAAU,EAC1C,SAAU,GACV,WAAY,CACV,YAAa,EACf,EACA,YACEG,GAAe,CACb,EAAG,CACD,aAAc,GACd,cAAe,EACf,SAAU,EACZ,EACA,IAAK,CACH,aAAc,GACd,cAAe,IACf,SAAU,EACZ,EACA,IAAK,CACH,aAAc,GACd,cAAe,EACf,SAAU,EACZ,CACF,EAGD,SAAAD,GAAM,MAAM,IAAI,CAACU,EAAMC,IACtBrB,EAACK,EAAA,CAA8C,UAAU,mBACvD,SAAAL,EAACY,EAAA,CACC,KAAMQ,EACN,cAAeV,GAAM,cAAgB,CAAE,GAAGA,GAAM,cAAe,MAAOW,CAAO,EAAI,CAAE,MAAOA,CAAO,EACjG,OAAQA,EACV,GALgBP,EAAK,cAAgBO,CAMvC,CACD,EACH,CAEJ,CAAC,EAEDZ,EAAU,YAAc,YAExB,IAAOa,EAAQb",
6
6
  "names": ["jsx", "React", "useState", "cn", "Swiper", "SwiperSlide", "Navigation", "FreeMode", "Mousewheel", "SwiperBox", "data", "breakpoints", "Slide", "className", "id", "isStart", "setStart", "isEnd", "setEnd", "swiper", "item", "jIndex", "SwiperBox_default"]
7
7
  }
@@ -3,6 +3,7 @@ export interface SwiperBoxProps {
3
3
  data: {
4
4
  list: any[];
5
5
  configuration?: any;
6
+ onVideoPlayBtnClick?: (jIndex: number) => void;
6
7
  };
7
8
  id: string;
8
9
  className?: string;
@@ -10,5 +11,6 @@ export interface SwiperBoxProps {
10
11
  Slide: React.ComponentType<{
11
12
  data: any;
12
13
  configuration?: any;
14
+ jIndex?: number;
13
15
  }>;
14
16
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/biz-components/SwiperBox/types.ts"],
4
- "sourcesContent": ["import React from 'react'\n\nexport interface SwiperBoxProps {\n data: {\n list: any[]\n configuration?: any\n }\n id: string\n className?: string\n breakpoints?: Record<number, Object>\n Slide: React.ComponentType<{ data: any, configuration?: any }>\n}\n"],
4
+ "sourcesContent": ["import React from 'react'\n\nexport interface SwiperBoxProps {\n data: {\n list: any[]\n configuration?: any\n onVideoPlayBtnClick?: (jIndex: number) => void\n }\n id: string\n className?: string\n breakpoints?: Record<number, Object>\n Slide: React.ComponentType<{ data: any; configuration?: any; jIndex?: number }>\n}\n"],
5
5
  "mappings": "AAAA,MAAkB",
6
6
  "names": []
7
7
  }
@@ -1,10 +1,7 @@
1
1
  import type { TabsProps } from './types.js';
2
2
  import React from 'react';
3
- declare const _default: {
4
- (props: Omit<TabsProps & 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<TabsProps & 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;
@@ -1,10 +1,7 @@
1
1
  import React from 'react';
2
2
  import type { TitleProps } from './types.js';
3
- declare const _default: {
4
- (props: Omit<TitleProps & 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<TitleProps & 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;
@@ -1,2 +1,2 @@
1
- "use client";import{jsx as u}from"react/jsx-runtime";import H,{useRef as a}from"react";import{useGSAP as S}from"@gsap/react";import{gsap as c}from"gsap";import{SplitText as k}from"gsap/dist/SplitText";import{ScrollTrigger as m}from"gsap/dist/ScrollTrigger";import{cn as E}from"../../helpers/utils.js";import{Heading as M}from"../../components/index.js";import{withStyles as R}from"../../shared/Styles.js";const p=H.forwardRef(({data:f,className:d})=>{const{title:s,theme:g}=f,t=a(null),r=a(null);return S(()=>{if(!t.current)return;const h=t.current?.clientHeight||80;r.current=new k(t.current,{type:"words",wordsClass:"word"});const e=r.current.words;return c.set(e,{opacity:0}),m.create({trigger:t.current,start:"bottom bottom-=6%",end:`bottom+=${h*2+40}px bottom-=6%`,scrub:!0,onUpdate:o=>{const y=o.progress,i=e.length,T=1/i,l=.5;e.forEach((b,w)=>{const x=w/i*(1-l),v=T*(1+l);let n=(y-x)/v;n=Math.max(0,Math.min(n,1)),c.set(b,{opacity:n})})}}),()=>{r.current&&r.current.revert(),m.getAll().forEach(o=>o.kill())}},[]),s&&u("div",{className:E("tablet:mb-[32px] mb-[24px] space-y-4",d,{"aiui-dark":g==="dark"}),children:u(M,{ref:t,as:"h2",size:5,html:s})})});p.displayName="Title";var I=R(p);export{I as default};
1
+ "use client";import{jsx as f}from"react/jsx-runtime";import S,{useRef as m}from"react";import{useGSAP as k}from"@gsap/react";import{gsap as s}from"gsap";import{SplitText as p}from"gsap/dist/SplitText";import{ScrollTrigger as i}from"gsap/dist/ScrollTrigger";import{cn as E}from"../../helpers/utils.js";import{Heading as M}from"../../components/index.js";import{withStyles as P}from"../../shared/Styles.js";const u=S.forwardRef(({data:d,className:g})=>{const{title:l,theme:h}=d,t=m(null),r=m(null);return k(()=>{if(s.registerPlugin(p,i),!t.current)return;const y=t.current?.clientHeight||80;r.current=new p(t.current,{type:"words",wordsClass:"word"});const e=r.current.words;return s.set(e,{opacity:0}),i.create({trigger:t.current,start:"bottom bottom-=4%",end:`bottom+=${y*1.5+60}px bottom-=4%`,scrub:!0,onUpdate:o=>{const T=o.progress,a=e.length,b=1/a,c=.5;e.forEach((w,x)=>{const v=x/a*(1-c),H=b*(1+c);let n=(T-v)/H;n=Math.max(0,Math.min(n,1)),s.set(w,{opacity:n})})}}),()=>{r.current&&r.current.revert(),i.getAll().forEach(o=>o.kill())}},[]),l&&f("div",{className:E("tablet:mb-[32px] mb-[24px] space-y-4",g,{"aiui-dark":h==="dark"}),children:f(M,{ref:t,as:"h1",size:4,html:l})})});u.displayName="Title";var I=P(u);export{I as default};
2
2
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/biz-components/Title/index.tsx"],
4
- "sourcesContent": ["'use client'\nimport React, { useRef } from 'react'\nimport { useGSAP } from '@gsap/react'\nimport { gsap } from 'gsap'\nimport { SplitText } from 'gsap/dist/SplitText'\nimport { ScrollTrigger } from 'gsap/dist/ScrollTrigger'\nimport { cn } from '../../helpers/utils.js'\nimport { Heading } from '../../components/index.js'\nimport { withStyles } from '../../shared/Styles.js'\nimport type { TitleProps } from './types.js'\n\nconst Title = React.forwardRef<HTMLDivElement, TitleProps>(({ data, className }) => {\n const { title, theme } = data\n const titleRef = useRef<HTMLHeadingElement>(null)\n const splitTextInstance = useRef<SplitText | null>(null)\n useGSAP(() => {\n if (!titleRef.current) return\n const height = titleRef.current?.clientHeight || 80\n splitTextInstance.current = new SplitText(titleRef.current, {\n type: 'words',\n wordsClass: 'word',\n })\n const words = splitTextInstance.current.words\n gsap.set(words, { opacity: 0 })\n ScrollTrigger.create({\n trigger: titleRef.current,\n start: 'bottom bottom-=6%',\n end: `bottom+=${height * 2 + 40}px bottom-=6%`,\n scrub: true,\n onUpdate: (self: any) => {\n const progress = self.progress\n const total = words.length\n const interval = 1 / total\n const overlap = 0.5\n words.forEach((word: any, i: number) => {\n const start = (i / total) * (1 - overlap)\n const width = interval * (1 + overlap)\n let opacity = (progress - start) / width\n opacity = Math.max(0, Math.min(opacity, 1))\n gsap.set(word, { opacity })\n })\n },\n })\n return () => {\n splitTextInstance.current && splitTextInstance.current.revert()\n ScrollTrigger.getAll().forEach((t: { kill: () => any }) => t.kill())\n }\n }, [])\n\n return (\n title && (\n <div className={cn('tablet:mb-[32px] mb-[24px] space-y-4', className, { 'aiui-dark': theme === 'dark' })}>\n <Heading ref={titleRef} as=\"h2\" size={5} html={title} />\n </div>\n )\n )\n})\n\nTitle.displayName = 'Title'\n\nexport default withStyles(Title)\n"],
5
- "mappings": "aAoDQ,cAAAA,MAAA,oBAnDR,OAAOC,GAAS,UAAAC,MAAc,QAC9B,OAAS,WAAAC,MAAe,cACxB,OAAS,QAAAC,MAAY,OACrB,OAAS,aAAAC,MAAiB,sBAC1B,OAAS,iBAAAC,MAAqB,0BAC9B,OAAS,MAAAC,MAAU,yBACnB,OAAS,WAAAC,MAAe,4BACxB,OAAS,cAAAC,MAAkB,yBAG3B,MAAMC,EAAQT,EAAM,WAAuC,CAAC,CAAE,KAAAU,EAAM,UAAAC,CAAU,IAAM,CAClF,KAAM,CAAE,MAAAC,EAAO,MAAAC,CAAM,EAAIH,EACnBI,EAAWb,EAA2B,IAAI,EAC1Cc,EAAoBd,EAAyB,IAAI,EACvD,OAAAC,EAAQ,IAAM,CACZ,GAAI,CAACY,EAAS,QAAS,OACvB,MAAME,EAASF,EAAS,SAAS,cAAgB,GACjDC,EAAkB,QAAU,IAAIX,EAAUU,EAAS,QAAS,CAC1D,KAAM,QACN,WAAY,MACd,CAAC,EACD,MAAMG,EAAQF,EAAkB,QAAQ,MACxC,OAAAZ,EAAK,IAAIc,EAAO,CAAE,QAAS,CAAE,CAAC,EAC9BZ,EAAc,OAAO,CACnB,QAASS,EAAS,QAClB,MAAO,oBACP,IAAK,WAAWE,EAAS,EAAI,EAAE,gBAC/B,MAAO,GACP,SAAWE,GAAc,CACvB,MAAMC,EAAWD,EAAK,SAChBE,EAAQH,EAAM,OACdI,EAAW,EAAID,EACfE,EAAU,GAChBL,EAAM,QAAQ,CAACM,EAAWC,IAAc,CACtC,MAAMC,EAASD,EAAIJ,GAAU,EAAIE,GAC3BI,EAAQL,GAAY,EAAIC,GAC9B,IAAIK,GAAWR,EAAWM,GAASC,EACnCC,EAAU,KAAK,IAAI,EAAG,KAAK,IAAIA,EAAS,CAAC,CAAC,EAC1CxB,EAAK,IAAIoB,EAAM,CAAE,QAAAI,CAAQ,CAAC,CAC5B,CAAC,CACH,CACF,CAAC,EACM,IAAM,CACXZ,EAAkB,SAAWA,EAAkB,QAAQ,OAAO,EAC9DV,EAAc,OAAO,EAAE,QAASuB,GAA2BA,EAAE,KAAK,CAAC,CACrE,CACF,EAAG,CAAC,CAAC,EAGHhB,GACEb,EAAC,OAAI,UAAWO,EAAG,uCAAwCK,EAAW,CAAE,YAAaE,IAAU,MAAO,CAAC,EACrG,SAAAd,EAACQ,EAAA,CAAQ,IAAKO,EAAU,GAAG,KAAK,KAAM,EAAG,KAAMF,EAAO,EACxD,CAGN,CAAC,EAEDH,EAAM,YAAc,QAEpB,IAAOoB,EAAQrB,EAAWC,CAAK",
4
+ "sourcesContent": ["'use client'\nimport React, { useRef } from 'react'\nimport { useGSAP } from '@gsap/react'\nimport { gsap } from 'gsap'\nimport { SplitText } from 'gsap/dist/SplitText'\nimport { ScrollTrigger } from 'gsap/dist/ScrollTrigger'\nimport { cn } from '../../helpers/utils.js'\nimport { Heading } from '../../components/index.js'\nimport { withStyles } from '../../shared/Styles.js'\nimport type { TitleProps } from './types.js'\n\nconst Title = React.forwardRef<HTMLDivElement, TitleProps>(({ data, className }) => {\n const { title, theme } = data\n const titleRef = useRef<HTMLHeadingElement>(null)\n const splitTextInstance = useRef<SplitText | null>(null)\n useGSAP(() => {\n gsap.registerPlugin(SplitText, ScrollTrigger)\n if (!titleRef.current) return\n const height = titleRef.current?.clientHeight || 80\n splitTextInstance.current = new SplitText(titleRef.current, {\n type: 'words',\n wordsClass: 'word',\n })\n const words = splitTextInstance.current.words\n gsap.set(words, { opacity: 0 })\n ScrollTrigger.create({\n trigger: titleRef.current,\n start: 'bottom bottom-=4%',\n end: `bottom+=${height * 1.5 + 60}px bottom-=4%`,\n scrub: true,\n onUpdate: (self: any) => {\n const progress = self.progress\n const total = words.length\n const interval = 1 / total\n const overlap = 0.5\n words.forEach((word: any, i: number) => {\n const start = (i / total) * (1 - overlap)\n const width = interval * (1 + overlap)\n let opacity = (progress - start) / width\n opacity = Math.max(0, Math.min(opacity, 1))\n gsap.set(word, { opacity })\n })\n },\n })\n return () => {\n splitTextInstance.current && splitTextInstance.current.revert()\n ScrollTrigger.getAll().forEach((t: { kill: () => any }) => t.kill())\n }\n }, [])\n\n return (\n title && (\n <div className={cn('tablet:mb-[32px] mb-[24px] space-y-4', className, { 'aiui-dark': theme === 'dark' })}>\n <Heading ref={titleRef} as=\"h1\" size={4} html={title} />\n </div>\n )\n )\n})\n\nTitle.displayName = 'Title'\n\nexport default withStyles(Title)\n"],
5
+ "mappings": "aAqDQ,cAAAA,MAAA,oBApDR,OAAOC,GAAS,UAAAC,MAAc,QAC9B,OAAS,WAAAC,MAAe,cACxB,OAAS,QAAAC,MAAY,OACrB,OAAS,aAAAC,MAAiB,sBAC1B,OAAS,iBAAAC,MAAqB,0BAC9B,OAAS,MAAAC,MAAU,yBACnB,OAAS,WAAAC,MAAe,4BACxB,OAAS,cAAAC,MAAkB,yBAG3B,MAAMC,EAAQT,EAAM,WAAuC,CAAC,CAAE,KAAAU,EAAM,UAAAC,CAAU,IAAM,CAClF,KAAM,CAAE,MAAAC,EAAO,MAAAC,CAAM,EAAIH,EACnBI,EAAWb,EAA2B,IAAI,EAC1Cc,EAAoBd,EAAyB,IAAI,EACvD,OAAAC,EAAQ,IAAM,CAEZ,GADAC,EAAK,eAAeC,EAAWC,CAAa,EACxC,CAACS,EAAS,QAAS,OACvB,MAAME,EAASF,EAAS,SAAS,cAAgB,GACjDC,EAAkB,QAAU,IAAIX,EAAUU,EAAS,QAAS,CAC1D,KAAM,QACN,WAAY,MACd,CAAC,EACD,MAAMG,EAAQF,EAAkB,QAAQ,MACxC,OAAAZ,EAAK,IAAIc,EAAO,CAAE,QAAS,CAAE,CAAC,EAC9BZ,EAAc,OAAO,CACnB,QAASS,EAAS,QAClB,MAAO,oBACP,IAAK,WAAWE,EAAS,IAAM,EAAE,gBACjC,MAAO,GACP,SAAWE,GAAc,CACvB,MAAMC,EAAWD,EAAK,SAChBE,EAAQH,EAAM,OACdI,EAAW,EAAID,EACfE,EAAU,GAChBL,EAAM,QAAQ,CAACM,EAAWC,IAAc,CACtC,MAAMC,EAASD,EAAIJ,GAAU,EAAIE,GAC3BI,EAAQL,GAAY,EAAIC,GAC9B,IAAIK,GAAWR,EAAWM,GAASC,EACnCC,EAAU,KAAK,IAAI,EAAG,KAAK,IAAIA,EAAS,CAAC,CAAC,EAC1CxB,EAAK,IAAIoB,EAAM,CAAE,QAAAI,CAAQ,CAAC,CAC5B,CAAC,CACH,CACF,CAAC,EACM,IAAM,CACXZ,EAAkB,SAAWA,EAAkB,QAAQ,OAAO,EAC9DV,EAAc,OAAO,EAAE,QAASuB,GAA2BA,EAAE,KAAK,CAAC,CACrE,CACF,EAAG,CAAC,CAAC,EAGHhB,GACEb,EAAC,OAAI,UAAWO,EAAG,uCAAwCK,EAAW,CAAE,YAAaE,IAAU,MAAO,CAAC,EACrG,SAAAd,EAACQ,EAAA,CAAQ,IAAKO,EAAU,GAAG,KAAK,KAAM,EAAG,KAAMF,EAAO,EACxD,CAGN,CAAC,EAEDH,EAAM,YAAc,QAEpB,IAAOoB,EAAQrB,EAAWC,CAAK",
6
6
  "names": ["jsx", "React", "useRef", "useGSAP", "gsap", "SplitText", "ScrollTrigger", "cn", "Heading", "withStyles", "Title", "data", "className", "title", "theme", "titleRef", "splitTextInstance", "height", "words", "self", "progress", "total", "interval", "overlap", "word", "i", "start", "width", "opacity", "t", "Title_default"]
7
7
  }
@@ -1,4 +1,3 @@
1
- export { default as Shelf } from './Shelf/index.js';
2
1
  export { default as BrandEquity } from './BrandEquity/index.js';
3
2
  export { default as MemberEquity } from './MemberEquity/index.js';
4
3
  export { default as Slogan } from './Slogan/index.js';
@@ -19,3 +18,4 @@ export { default as MultiLayoutGraphicBlock } from './MultiLayoutGraphicBlock/in
19
18
  export type { MultiLayoutGraphicBlockProps } from './MultiLayoutGraphicBlock/index.js';
20
19
  export { default as GraphicAttractionBlock } from './GraphicAttractionBlock/index.js';
21
20
  export type { GraphicAttractionBlockProps } from './GraphicAttractionBlock/index.js';
21
+ export { default as AiuiProvider } from './AiuiProvider/index.js';
@@ -1,2 +1,2 @@
1
- import{default as r}from"./Shelf/index.js";import{default as o}from"./BrandEquity/index.js";import{default as l}from"./MemberEquity/index.js";import{default as u}from"./Slogan/index.js";import{default as i}from"./Title/index.js";import{default as m}from"./Spacer/index.js";import{default as c}from"./ShelfDisplay/index.js";import{default as y}from"./Evaluate/index.js";import{default as h}from"./Category/index.js";import{default as k}from"./HeroBanner/index.js";import{default as q}from"./AccordionCards/index.js";import{default as S}from"./Graphic/index.js";import{default as C}from"./MediaPlayerBase/index.js";import{default as E}from"./MediaPlayerSticky/index.js";import{default as j}from"./MediaPlayerMulti/index.js";import{default as T}from"./Marquee/index.js";import{MarqueeItem as v,MarqueeImageContent as D,MarqueeTextContent as H}from"./Marquee/index.js";import{default as z}from"./MultiLayoutGraphicBlock/index.js";import{default as J}from"./GraphicAttractionBlock/index.js";export{q as AccordionCards,o as BrandEquity,h as Category,y as Evaluate,S as Graphic,J as GraphicAttractionBlock,k as HeroBanner,T as Marquee,D as MarqueeImageContent,v as MarqueeItem,H as MarqueeTextContent,C as MediaPlayerBase,j as MediaPlayerMulti,E as MediaPlayerSticky,l as MemberEquity,z as MultiLayoutGraphicBlock,r as Shelf,c as ShelfDisplay,u as Slogan,m as Spacer,i as Title};
1
+ import{default as a}from"./BrandEquity/index.js";import{default as o}from"./MemberEquity/index.js";import{default as l}from"./Slogan/index.js";import{default as u}from"./Title/index.js";import{default as d}from"./Spacer/index.js";import{default as m}from"./ShelfDisplay/index.js";import{default as c}from"./Evaluate/index.js";import{default as y}from"./Category/index.js";import{default as B}from"./HeroBanner/index.js";import{default as k}from"./AccordionCards/index.js";import{default as q}from"./Graphic/index.js";import{default as A}from"./MediaPlayerBase/index.js";import{default as S}from"./MediaPlayerSticky/index.js";import{default as E}from"./MediaPlayerMulti/index.js";import{default as j}from"./Marquee/index.js";import{MarqueeItem as I,MarqueeImageContent as T,MarqueeTextContent as b}from"./Marquee/index.js";import{default as H}from"./MultiLayoutGraphicBlock/index.js";import{default as z}from"./GraphicAttractionBlock/index.js";import{default as J}from"./AiuiProvider/index.js";export{k as AccordionCards,J as AiuiProvider,a as BrandEquity,y as Category,c as Evaluate,q as Graphic,z as GraphicAttractionBlock,B as HeroBanner,j as Marquee,T as MarqueeImageContent,I as MarqueeItem,b as MarqueeTextContent,A as MediaPlayerBase,E as MediaPlayerMulti,S as MediaPlayerSticky,o as MemberEquity,H as MultiLayoutGraphicBlock,m as ShelfDisplay,l as Slogan,d as Spacer,u as Title};
2
2
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/biz-components/index.ts"],
4
- "sourcesContent": ["export { default as Shelf } from './Shelf/index.js'\nexport { default as BrandEquity } from './BrandEquity/index.js'\nexport { default as MemberEquity } from './MemberEquity/index.js'\nexport { default as Slogan } from './Slogan/index.js'\nexport { default as Title } from './Title/index.js'\nexport { default as Spacer } from './Spacer/index.js'\nexport { default as ShelfDisplay } from './ShelfDisplay/index.js'\nexport { default as Evaluate } from './Evaluate/index.js'\nexport { default as Category } from './Category/index.js'\nexport { default as HeroBanner } from './HeroBanner/index.js'\nexport { default as AccordionCards } from './AccordionCards/index.js'\nexport { default as Graphic } from './Graphic/index.js'\nexport { default as MediaPlayerBase } from './MediaPlayerBase/index.js'\nexport { default as MediaPlayerSticky } from './MediaPlayerSticky/index.js'\nexport { default as MediaPlayerMulti } from './MediaPlayerMulti/index.js'\nexport { default as Marquee } from './Marquee/index.js'\nexport { MarqueeItem, MarqueeImageContent, MarqueeTextContent } from './Marquee/index.js'\nexport { default as MultiLayoutGraphicBlock } from './MultiLayoutGraphicBlock/index.js'\nexport type { MultiLayoutGraphicBlockProps } from './MultiLayoutGraphicBlock/index.js'\nexport { default as GraphicAttractionBlock } from './GraphicAttractionBlock/index.js'\nexport type { GraphicAttractionBlockProps } from './GraphicAttractionBlock/index.js'\n"],
5
- "mappings": "AAAA,OAAoB,WAAXA,MAAwB,mBACjC,OAAoB,WAAXA,MAA8B,yBACvC,OAAoB,WAAXA,MAA+B,0BACxC,OAAoB,WAAXA,MAAyB,oBAClC,OAAoB,WAAXA,MAAwB,mBACjC,OAAoB,WAAXA,MAAyB,oBAClC,OAAoB,WAAXA,MAA+B,0BACxC,OAAoB,WAAXA,MAA2B,sBACpC,OAAoB,WAAXA,MAA2B,sBACpC,OAAoB,WAAXA,MAA6B,wBACtC,OAAoB,WAAXA,MAAiC,4BAC1C,OAAoB,WAAXA,MAA0B,qBACnC,OAAoB,WAAXA,MAAkC,6BAC3C,OAAoB,WAAXA,MAAoC,+BAC7C,OAAoB,WAAXA,MAAmC,8BAC5C,OAAoB,WAAXA,MAA0B,qBACnC,OAAS,eAAAC,EAAa,uBAAAC,EAAqB,sBAAAC,MAA0B,qBACrE,OAAoB,WAAXH,MAA0C,qCAEnD,OAAoB,WAAXA,MAAyC",
4
+ "sourcesContent": ["export { default as BrandEquity } from './BrandEquity/index.js'\nexport { default as MemberEquity } from './MemberEquity/index.js'\nexport { default as Slogan } from './Slogan/index.js'\nexport { default as Title } from './Title/index.js'\nexport { default as Spacer } from './Spacer/index.js'\nexport { default as ShelfDisplay } from './ShelfDisplay/index.js'\nexport { default as Evaluate } from './Evaluate/index.js'\nexport { default as Category } from './Category/index.js'\nexport { default as HeroBanner } from './HeroBanner/index.js'\nexport { default as AccordionCards } from './AccordionCards/index.js'\nexport { default as Graphic } from './Graphic/index.js'\nexport { default as MediaPlayerBase } from './MediaPlayerBase/index.js'\nexport { default as MediaPlayerSticky } from './MediaPlayerSticky/index.js'\nexport { default as MediaPlayerMulti } from './MediaPlayerMulti/index.js'\nexport { default as Marquee } from './Marquee/index.js'\nexport { MarqueeItem, MarqueeImageContent, MarqueeTextContent } from './Marquee/index.js'\nexport { default as MultiLayoutGraphicBlock } from './MultiLayoutGraphicBlock/index.js'\nexport type { MultiLayoutGraphicBlockProps } from './MultiLayoutGraphicBlock/index.js'\nexport { default as GraphicAttractionBlock } from './GraphicAttractionBlock/index.js'\nexport type { GraphicAttractionBlockProps } from './GraphicAttractionBlock/index.js'\n\nexport { default as AiuiProvider } from './AiuiProvider/index.js'\n"],
5
+ "mappings": "AAAA,OAAoB,WAAXA,MAA8B,yBACvC,OAAoB,WAAXA,MAA+B,0BACxC,OAAoB,WAAXA,MAAyB,oBAClC,OAAoB,WAAXA,MAAwB,mBACjC,OAAoB,WAAXA,MAAyB,oBAClC,OAAoB,WAAXA,MAA+B,0BACxC,OAAoB,WAAXA,MAA2B,sBACpC,OAAoB,WAAXA,MAA2B,sBACpC,OAAoB,WAAXA,MAA6B,wBACtC,OAAoB,WAAXA,MAAiC,4BAC1C,OAAoB,WAAXA,MAA0B,qBACnC,OAAoB,WAAXA,MAAkC,6BAC3C,OAAoB,WAAXA,MAAoC,+BAC7C,OAAoB,WAAXA,MAAmC,8BAC5C,OAAoB,WAAXA,MAA0B,qBACnC,OAAS,eAAAC,EAAa,uBAAAC,EAAqB,sBAAAC,MAA0B,qBACrE,OAAoB,WAAXH,MAA0C,qCAEnD,OAAoB,WAAXA,MAAyC,oCAGlD,OAAoB,WAAXA,MAA+B",
6
6
  "names": ["default", "MarqueeItem", "MarqueeImageContent", "MarqueeTextContent"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use client";import{jsx as i}from"react/jsx-runtime";import{useEffect as g,useRef as N,forwardRef as l}from"react";import k from"fitty";import*as r from"@radix-ui/react-avatar";import{cva as z}from"class-variance-authority";import{cn as n}from"../helpers/index.js";const C=z("tracking transition-colors",{variants:{size:{small:"size-8",medium:"size-10",large:"size-12"}}}),f=l(({className:t,textClassName:a,isAdaptation:e=!1,minSize:v=4,maxSize:y=16,children:m,style:c,size:R="small",onClick:d,...P},b)=>{const o=N(null),A=s=>{d?.(s)};return g(()=>{let s;return e&&o.current&&(s=k?.(o.current,{minSize:v,maxSize:y})),()=>s?.unsubscribe?.()},[]),i(r.Root,{ref:b,onClick:A,className:n(C({size:R}),"bg-container-secondary-0 text-info-primary relative flex shrink-0 items-center justify-center overflow-hidden rounded-full",t),...c?{style:c}:null,...P,children:e?i("span",{className:"bg-muted flex size-full items-center justify-center rounded-full",children:i("span",{ref:o,className:n("px-2",a),children:m})}):m})});f.displayName="Avatar";const p=l(({className:t,...a},e)=>i(r.Image,{ref:e,className:n("aspect-square size-full",t),...a}));p.displayName=r.Image.displayName;const u=l(({className:t,...a},e)=>i(r.Fallback,{ref:e,className:n("bg-muted flex size-full items-center justify-center rounded-full",t),...a}));u.displayName=r.Fallback.displayName;export{f as Avatar,u as AvatarFallback,p as AvatarImage};
1
+ "use client";import{jsx as i}from"react/jsx-runtime";import{useEffect as x,useRef as g,forwardRef as l}from"react";import N from"fitty";import*as r from"@radix-ui/react-avatar";import{cva as k}from"class-variance-authority";import{cn as n}from"../helpers/index.js";const z=k("tracking transition-colors",{variants:{size:{small:"size-8 text-sm",medium:"size-10 text-xl",large:"size-12 text-2xl"}}}),f=l(({className:t,textClassName:a,isAdaptation:e=!1,minSize:v=4,maxSize:y=16,children:m,style:c,size:R="small",onClick:d,...P},b)=>{const o=g(null),A=s=>{d?.(s)};return x(()=>{let s;return e&&o.current&&(s=N?.(o.current,{minSize:v,maxSize:y})),()=>s?.unsubscribe?.()},[]),i(r.Root,{ref:b,onClick:A,className:n(z({size:R}),"bg-container-secondary-0 text-info-primary relative flex shrink-0 items-center justify-center overflow-hidden rounded-full",t),...c?{style:c}:null,...P,children:e?i("span",{className:"bg-muted flex size-full items-center justify-center rounded-full",children:i("span",{ref:o,className:n("px-2",a),children:m})}):m})});f.displayName="Avatar";const p=l(({className:t,...a},e)=>i(r.Image,{ref:e,className:n("aspect-square size-full",t),...a}));p.displayName=r.Image.displayName;const u=l(({className:t,...a},e)=>i(r.Fallback,{ref:e,className:n("bg-muted flex size-full items-center justify-center rounded-full",t),...a}));u.displayName=r.Fallback.displayName;export{f as Avatar,u as AvatarFallback,p as AvatarImage};
2
2
  //# sourceMappingURL=avatar.js.map