@anker-in/headless-ui 1.0.24 → 1.0.26-alpha.1761893017767

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 (311) hide show
  1. package/dist/cjs/biz-components/FeatureCards/FeatureCards.d.ts +7 -0
  2. package/dist/cjs/biz-components/FeatureCards/FeatureCards.js +2 -0
  3. package/dist/cjs/biz-components/FeatureCards/FeatureCards.js.map +7 -0
  4. package/dist/cjs/biz-components/FeatureCards/index.d.ts +2 -0
  5. package/dist/cjs/biz-components/FeatureCards/index.js +2 -0
  6. package/dist/cjs/biz-components/FeatureCards/index.js.map +7 -0
  7. package/dist/cjs/biz-components/FeatureCards/types.d.ts +25 -0
  8. package/dist/cjs/biz-components/FeatureCards/types.js +2 -0
  9. package/dist/cjs/biz-components/FeatureCards/types.js.map +7 -0
  10. package/dist/cjs/biz-components/FeatureShowcase/FeatureShowcase.d.ts +7 -0
  11. package/dist/cjs/biz-components/FeatureShowcase/FeatureShowcase.js +2 -0
  12. package/dist/cjs/biz-components/FeatureShowcase/FeatureShowcase.js.map +7 -0
  13. package/dist/cjs/biz-components/FeatureShowcase/index.d.ts +2 -0
  14. package/dist/cjs/biz-components/FeatureShowcase/index.js +2 -0
  15. package/dist/cjs/biz-components/FeatureShowcase/index.js.map +7 -0
  16. package/dist/cjs/biz-components/FeatureShowcase/types.d.ts +20 -0
  17. package/dist/cjs/biz-components/FeatureShowcase/types.js +2 -0
  18. package/dist/cjs/biz-components/FeatureShowcase/types.js.map +7 -0
  19. package/dist/cjs/biz-components/FooterNavigation/index.js +1 -1
  20. package/dist/cjs/biz-components/FooterNavigation/index.js.map +2 -2
  21. package/dist/cjs/biz-components/HeaderNavigation/index.js +1 -1
  22. package/dist/cjs/biz-components/HeaderNavigation/index.js.map +2 -2
  23. package/dist/cjs/biz-components/ImageTextFeature/ImageTextFeature.d.ts +7 -0
  24. package/dist/cjs/biz-components/ImageTextFeature/ImageTextFeature.js +2 -0
  25. package/dist/cjs/biz-components/ImageTextFeature/ImageTextFeature.js.map +7 -0
  26. package/dist/cjs/biz-components/ImageTextFeature/index.d.ts +2 -0
  27. package/dist/cjs/biz-components/ImageTextFeature/index.js +2 -0
  28. package/dist/cjs/biz-components/ImageTextFeature/index.js.map +7 -0
  29. package/dist/cjs/biz-components/ImageTextFeature/types.d.ts +31 -0
  30. package/dist/cjs/biz-components/ImageTextFeature/types.js +2 -0
  31. package/dist/cjs/biz-components/ImageTextFeature/types.js.map +7 -0
  32. package/dist/cjs/biz-components/ImageWithText/ImageWithText.d.ts +7 -0
  33. package/dist/cjs/biz-components/ImageWithText/ImageWithText.js +2 -0
  34. package/dist/cjs/biz-components/ImageWithText/ImageWithText.js.map +7 -0
  35. package/dist/cjs/biz-components/ImageWithText/index.d.ts +2 -0
  36. package/dist/cjs/biz-components/ImageWithText/index.js +2 -0
  37. package/dist/cjs/biz-components/ImageWithText/index.js.map +7 -0
  38. package/dist/cjs/biz-components/ImageWithText/types.d.ts +23 -0
  39. package/dist/cjs/biz-components/ImageWithText/types.js +2 -0
  40. package/dist/cjs/biz-components/ImageWithText/types.js.map +7 -0
  41. package/dist/cjs/biz-components/Ksp/index.d.ts +40 -0
  42. package/dist/cjs/biz-components/Ksp/index.js +2 -0
  43. package/dist/cjs/biz-components/Ksp/index.js.map +7 -0
  44. package/dist/cjs/biz-components/MarqueeReview/index.d.ts +41 -0
  45. package/dist/cjs/biz-components/MarqueeReview/index.js +25 -0
  46. package/dist/cjs/biz-components/MarqueeReview/index.js.map +7 -0
  47. package/dist/cjs/biz-components/ProductCompare/index.d.ts +37 -0
  48. package/dist/cjs/biz-components/ProductCompare/index.js +2 -0
  49. package/dist/cjs/biz-components/ProductCompare/index.js.map +7 -0
  50. package/dist/cjs/biz-components/ProductHero/ProductHero.d.ts +7 -0
  51. package/dist/cjs/biz-components/ProductHero/ProductHero.js +2 -0
  52. package/dist/cjs/biz-components/ProductHero/ProductHero.js.map +7 -0
  53. package/dist/cjs/biz-components/ProductHero/index.d.ts +2 -0
  54. package/dist/cjs/biz-components/ProductHero/index.js +2 -0
  55. package/dist/cjs/biz-components/ProductHero/index.js.map +7 -0
  56. package/dist/cjs/biz-components/ProductHero/types.d.ts +20 -0
  57. package/dist/cjs/biz-components/ProductHero/types.js +2 -0
  58. package/dist/cjs/biz-components/ProductHero/types.js.map +7 -0
  59. package/dist/cjs/biz-components/Specs/dropdown.d.ts +11 -0
  60. package/dist/cjs/biz-components/Specs/dropdown.js +3 -0
  61. package/dist/cjs/biz-components/Specs/dropdown.js.map +7 -0
  62. package/dist/cjs/biz-components/Specs/index.d.ts +6 -0
  63. package/dist/cjs/biz-components/Specs/index.js +2 -0
  64. package/dist/cjs/biz-components/Specs/index.js.map +7 -0
  65. package/dist/cjs/biz-components/SpecsComparison/SpecsComparison.d.ts +7 -0
  66. package/dist/cjs/biz-components/SpecsComparison/SpecsComparison.js +2 -0
  67. package/dist/cjs/biz-components/SpecsComparison/SpecsComparison.js.map +7 -0
  68. package/dist/cjs/biz-components/SpecsComparison/index.d.ts +2 -0
  69. package/dist/cjs/biz-components/SpecsComparison/index.js +2 -0
  70. package/dist/cjs/biz-components/SpecsComparison/index.js.map +7 -0
  71. package/dist/cjs/biz-components/SpecsComparison/types.d.ts +34 -0
  72. package/dist/cjs/biz-components/SpecsComparison/types.js +2 -0
  73. package/dist/cjs/biz-components/SpecsComparison/types.js.map +7 -0
  74. package/dist/cjs/biz-components/TabWithImage/TabWithImage.d.ts +7 -0
  75. package/dist/cjs/biz-components/TabWithImage/TabWithImage.js +2 -0
  76. package/dist/cjs/biz-components/TabWithImage/TabWithImage.js.map +7 -0
  77. package/dist/cjs/biz-components/TabWithImage/index.d.ts +2 -0
  78. package/dist/cjs/biz-components/TabWithImage/index.js +2 -0
  79. package/dist/cjs/biz-components/TabWithImage/index.js.map +7 -0
  80. package/dist/cjs/biz-components/TabWithImage/types.d.ts +28 -0
  81. package/dist/cjs/biz-components/TabWithImage/types.js +2 -0
  82. package/dist/cjs/biz-components/TabWithImage/types.js.map +7 -0
  83. package/dist/cjs/biz-components/TabsGroup/index.d.ts +7 -0
  84. package/dist/cjs/biz-components/TabsGroup/index.js +2 -0
  85. package/dist/cjs/biz-components/TabsGroup/index.js.map +7 -0
  86. package/dist/cjs/biz-components/TabsGroup/types.d.ts +16 -0
  87. package/dist/cjs/biz-components/TabsGroup/types.js +2 -0
  88. package/dist/cjs/biz-components/TabsGroup/types.js.map +7 -0
  89. package/dist/cjs/biz-components/TabsWithMedia/TabsWithMedia.d.ts +7 -0
  90. package/dist/cjs/biz-components/TabsWithMedia/TabsWithMedia.js +2 -0
  91. package/dist/cjs/biz-components/TabsWithMedia/TabsWithMedia.js.map +7 -0
  92. package/dist/cjs/biz-components/TabsWithMedia/index.d.ts +2 -0
  93. package/dist/cjs/biz-components/TabsWithMedia/index.js +2 -0
  94. package/dist/cjs/biz-components/TabsWithMedia/index.js.map +7 -0
  95. package/dist/cjs/biz-components/TabsWithMedia/types.d.ts +40 -0
  96. package/dist/cjs/biz-components/TabsWithMedia/types.js +2 -0
  97. package/dist/cjs/biz-components/TabsWithMedia/types.js.map +7 -0
  98. package/dist/cjs/biz-components/VideoFeature/VideoFeature.d.ts +7 -0
  99. package/dist/cjs/biz-components/VideoFeature/VideoFeature.js +2 -0
  100. package/dist/cjs/biz-components/VideoFeature/VideoFeature.js.map +7 -0
  101. package/dist/cjs/biz-components/VideoFeature/index.d.ts +2 -0
  102. package/dist/cjs/biz-components/VideoFeature/index.js +2 -0
  103. package/dist/cjs/biz-components/VideoFeature/index.js.map +7 -0
  104. package/dist/cjs/biz-components/VideoFeature/types.d.ts +18 -0
  105. package/dist/cjs/biz-components/VideoFeature/types.js +2 -0
  106. package/dist/cjs/biz-components/VideoFeature/types.js.map +7 -0
  107. package/dist/cjs/biz-components/index.d.ts +61 -0
  108. package/dist/cjs/biz-components/index.js +1 -1
  109. package/dist/cjs/biz-components/index.js.map +3 -3
  110. package/dist/cjs/cpn-components/CpnNavigation/index.js +1 -1
  111. package/dist/cjs/cpn-components/CpnNavigation/index.js.map +3 -3
  112. package/dist/cjs/shared/Styles.js +1 -1
  113. package/dist/cjs/shared/Styles.js.map +3 -3
  114. package/dist/cjs/stories/MarqueeReview.stories.d.ts +73 -0
  115. package/dist/cjs/stories/MarqueeReview.stories.js +19 -0
  116. package/dist/cjs/stories/MarqueeReview.stories.js.map +7 -0
  117. package/dist/cjs/stories/featureCards.stories.d.ts +28 -0
  118. package/dist/cjs/stories/featureCards.stories.js +2 -0
  119. package/dist/cjs/stories/featureCards.stories.js.map +7 -0
  120. package/dist/cjs/stories/featureShowcase.stories.d.ts +28 -0
  121. package/dist/cjs/stories/featureShowcase.stories.js +2 -0
  122. package/dist/cjs/stories/featureShowcase.stories.js.map +7 -0
  123. package/dist/cjs/stories/imageTextFeature.stories.d.ts +27 -0
  124. package/dist/cjs/stories/imageTextFeature.stories.js +2 -0
  125. package/dist/cjs/stories/imageTextFeature.stories.js.map +7 -0
  126. package/dist/cjs/stories/imageWithText.stories.d.ts +27 -0
  127. package/dist/cjs/stories/imageWithText.stories.js +2 -0
  128. package/dist/cjs/stories/imageWithText.stories.js.map +7 -0
  129. package/dist/cjs/stories/ksp.stories.d.ts +63 -0
  130. package/dist/cjs/stories/ksp.stories.js +129 -0
  131. package/dist/cjs/stories/ksp.stories.js.map +7 -0
  132. package/dist/cjs/stories/productCompare.stories.d.ts +49 -0
  133. package/dist/cjs/stories/productCompare.stories.js +63 -0
  134. package/dist/cjs/stories/productCompare.stories.js.map +7 -0
  135. package/dist/cjs/stories/productHero.stories.d.ts +28 -0
  136. package/dist/cjs/stories/productHero.stories.js +2 -0
  137. package/dist/cjs/stories/productHero.stories.js.map +7 -0
  138. package/dist/cjs/stories/specs.stories.d.ts +13 -0
  139. package/dist/cjs/stories/specs.stories.js +57 -0
  140. package/dist/cjs/stories/specs.stories.js.map +7 -0
  141. package/dist/cjs/stories/specsComparison.stories.d.ts +27 -0
  142. package/dist/cjs/stories/specsComparison.stories.js +30 -0
  143. package/dist/cjs/stories/specsComparison.stories.js.map +7 -0
  144. package/dist/cjs/stories/tabWithImage.stories.d.ts +27 -0
  145. package/dist/cjs/stories/tabWithImage.stories.js +2 -0
  146. package/dist/cjs/stories/tabWithImage.stories.js.map +7 -0
  147. package/dist/cjs/stories/tabsWithMedia.stories.d.ts +27 -0
  148. package/dist/cjs/stories/tabsWithMedia.stories.js +2 -0
  149. package/dist/cjs/stories/tabsWithMedia.stories.js.map +7 -0
  150. package/dist/cjs/stories/videoFeature.stories.d.ts +28 -0
  151. package/dist/cjs/stories/videoFeature.stories.js +2 -0
  152. package/dist/cjs/stories/videoFeature.stories.js.map +7 -0
  153. package/dist/cjs/types/props.d.ts +4 -0
  154. package/dist/cjs/types/props.js +1 -1
  155. package/dist/cjs/types/props.js.map +1 -1
  156. package/dist/esm/biz-components/FeatureCards/FeatureCards.d.ts +7 -0
  157. package/dist/esm/biz-components/FeatureCards/FeatureCards.js +2 -0
  158. package/dist/esm/biz-components/FeatureCards/FeatureCards.js.map +7 -0
  159. package/dist/esm/biz-components/FeatureCards/index.d.ts +2 -0
  160. package/dist/esm/biz-components/FeatureCards/index.js +2 -0
  161. package/dist/esm/biz-components/FeatureCards/index.js.map +7 -0
  162. package/dist/esm/biz-components/FeatureCards/types.d.ts +25 -0
  163. package/dist/esm/biz-components/FeatureCards/types.js +1 -0
  164. package/dist/esm/biz-components/FeatureCards/types.js.map +7 -0
  165. package/dist/esm/biz-components/FeatureShowcase/FeatureShowcase.d.ts +7 -0
  166. package/dist/esm/biz-components/FeatureShowcase/FeatureShowcase.js +2 -0
  167. package/dist/esm/biz-components/FeatureShowcase/FeatureShowcase.js.map +7 -0
  168. package/dist/esm/biz-components/FeatureShowcase/index.d.ts +2 -0
  169. package/dist/esm/biz-components/FeatureShowcase/index.js +2 -0
  170. package/dist/esm/biz-components/FeatureShowcase/index.js.map +7 -0
  171. package/dist/esm/biz-components/FeatureShowcase/types.d.ts +20 -0
  172. package/dist/esm/biz-components/FeatureShowcase/types.js +1 -0
  173. package/dist/esm/biz-components/FeatureShowcase/types.js.map +7 -0
  174. package/dist/esm/biz-components/FooterNavigation/index.js +1 -1
  175. package/dist/esm/biz-components/FooterNavigation/index.js.map +2 -2
  176. package/dist/esm/biz-components/HeaderNavigation/index.js +1 -1
  177. package/dist/esm/biz-components/HeaderNavigation/index.js.map +2 -2
  178. package/dist/esm/biz-components/ImageTextFeature/ImageTextFeature.d.ts +7 -0
  179. package/dist/esm/biz-components/ImageTextFeature/ImageTextFeature.js +2 -0
  180. package/dist/esm/biz-components/ImageTextFeature/ImageTextFeature.js.map +7 -0
  181. package/dist/esm/biz-components/ImageTextFeature/index.d.ts +2 -0
  182. package/dist/esm/biz-components/ImageTextFeature/index.js +2 -0
  183. package/dist/esm/biz-components/ImageTextFeature/index.js.map +7 -0
  184. package/dist/esm/biz-components/ImageTextFeature/types.d.ts +31 -0
  185. package/dist/esm/biz-components/ImageTextFeature/types.js +1 -0
  186. package/dist/esm/biz-components/ImageTextFeature/types.js.map +7 -0
  187. package/dist/esm/biz-components/ImageWithText/ImageWithText.d.ts +7 -0
  188. package/dist/esm/biz-components/ImageWithText/ImageWithText.js +2 -0
  189. package/dist/esm/biz-components/ImageWithText/ImageWithText.js.map +7 -0
  190. package/dist/esm/biz-components/ImageWithText/index.d.ts +2 -0
  191. package/dist/esm/biz-components/ImageWithText/index.js +2 -0
  192. package/dist/esm/biz-components/ImageWithText/index.js.map +7 -0
  193. package/dist/esm/biz-components/ImageWithText/types.d.ts +23 -0
  194. package/dist/esm/biz-components/ImageWithText/types.js +1 -0
  195. package/dist/esm/biz-components/ImageWithText/types.js.map +7 -0
  196. package/dist/esm/biz-components/Ksp/index.d.ts +40 -0
  197. package/dist/esm/biz-components/Ksp/index.js +2 -0
  198. package/dist/esm/biz-components/Ksp/index.js.map +7 -0
  199. package/dist/esm/biz-components/MarqueeReview/index.d.ts +41 -0
  200. package/dist/esm/biz-components/MarqueeReview/index.js +25 -0
  201. package/dist/esm/biz-components/MarqueeReview/index.js.map +7 -0
  202. package/dist/esm/biz-components/ProductCompare/index.d.ts +37 -0
  203. package/dist/esm/biz-components/ProductCompare/index.js +2 -0
  204. package/dist/esm/biz-components/ProductCompare/index.js.map +7 -0
  205. package/dist/esm/biz-components/ProductHero/ProductHero.d.ts +7 -0
  206. package/dist/esm/biz-components/ProductHero/ProductHero.js +2 -0
  207. package/dist/esm/biz-components/ProductHero/ProductHero.js.map +7 -0
  208. package/dist/esm/biz-components/ProductHero/index.d.ts +2 -0
  209. package/dist/esm/biz-components/ProductHero/index.js +2 -0
  210. package/dist/esm/biz-components/ProductHero/index.js.map +7 -0
  211. package/dist/esm/biz-components/ProductHero/types.d.ts +20 -0
  212. package/dist/esm/biz-components/ProductHero/types.js +1 -0
  213. package/dist/esm/biz-components/ProductHero/types.js.map +7 -0
  214. package/dist/esm/biz-components/Specs/dropdown.d.ts +11 -0
  215. package/dist/esm/biz-components/Specs/dropdown.js +3 -0
  216. package/dist/esm/biz-components/Specs/dropdown.js.map +7 -0
  217. package/dist/esm/biz-components/Specs/index.d.ts +6 -0
  218. package/dist/esm/biz-components/Specs/index.js +2 -0
  219. package/dist/esm/biz-components/Specs/index.js.map +7 -0
  220. package/dist/esm/biz-components/SpecsComparison/SpecsComparison.d.ts +7 -0
  221. package/dist/esm/biz-components/SpecsComparison/SpecsComparison.js +2 -0
  222. package/dist/esm/biz-components/SpecsComparison/SpecsComparison.js.map +7 -0
  223. package/dist/esm/biz-components/SpecsComparison/index.d.ts +2 -0
  224. package/dist/esm/biz-components/SpecsComparison/index.js +2 -0
  225. package/dist/esm/biz-components/SpecsComparison/index.js.map +7 -0
  226. package/dist/esm/biz-components/SpecsComparison/types.d.ts +34 -0
  227. package/dist/esm/biz-components/SpecsComparison/types.js +1 -0
  228. package/dist/esm/biz-components/SpecsComparison/types.js.map +7 -0
  229. package/dist/esm/biz-components/TabWithImage/TabWithImage.d.ts +7 -0
  230. package/dist/esm/biz-components/TabWithImage/TabWithImage.js +2 -0
  231. package/dist/esm/biz-components/TabWithImage/TabWithImage.js.map +7 -0
  232. package/dist/esm/biz-components/TabWithImage/index.d.ts +2 -0
  233. package/dist/esm/biz-components/TabWithImage/index.js +2 -0
  234. package/dist/esm/biz-components/TabWithImage/index.js.map +7 -0
  235. package/dist/esm/biz-components/TabWithImage/types.d.ts +28 -0
  236. package/dist/esm/biz-components/TabWithImage/types.js +1 -0
  237. package/dist/esm/biz-components/TabWithImage/types.js.map +7 -0
  238. package/dist/esm/biz-components/TabsGroup/index.d.ts +7 -0
  239. package/dist/esm/biz-components/TabsGroup/index.js +2 -0
  240. package/dist/esm/biz-components/TabsGroup/index.js.map +7 -0
  241. package/dist/esm/biz-components/TabsGroup/types.d.ts +16 -0
  242. package/dist/esm/biz-components/TabsGroup/types.js +1 -0
  243. package/dist/esm/biz-components/TabsGroup/types.js.map +7 -0
  244. package/dist/esm/biz-components/TabsWithMedia/TabsWithMedia.d.ts +7 -0
  245. package/dist/esm/biz-components/TabsWithMedia/TabsWithMedia.js +2 -0
  246. package/dist/esm/biz-components/TabsWithMedia/TabsWithMedia.js.map +7 -0
  247. package/dist/esm/biz-components/TabsWithMedia/index.d.ts +2 -0
  248. package/dist/esm/biz-components/TabsWithMedia/index.js +2 -0
  249. package/dist/esm/biz-components/TabsWithMedia/index.js.map +7 -0
  250. package/dist/esm/biz-components/TabsWithMedia/types.d.ts +40 -0
  251. package/dist/esm/biz-components/TabsWithMedia/types.js +1 -0
  252. package/dist/esm/biz-components/TabsWithMedia/types.js.map +7 -0
  253. package/dist/esm/biz-components/VideoFeature/VideoFeature.d.ts +7 -0
  254. package/dist/esm/biz-components/VideoFeature/VideoFeature.js +2 -0
  255. package/dist/esm/biz-components/VideoFeature/VideoFeature.js.map +7 -0
  256. package/dist/esm/biz-components/VideoFeature/index.d.ts +2 -0
  257. package/dist/esm/biz-components/VideoFeature/index.js +2 -0
  258. package/dist/esm/biz-components/VideoFeature/index.js.map +7 -0
  259. package/dist/esm/biz-components/VideoFeature/types.d.ts +18 -0
  260. package/dist/esm/biz-components/VideoFeature/types.js +1 -0
  261. package/dist/esm/biz-components/VideoFeature/types.js.map +7 -0
  262. package/dist/esm/biz-components/index.d.ts +61 -0
  263. package/dist/esm/biz-components/index.js +1 -1
  264. package/dist/esm/biz-components/index.js.map +3 -3
  265. package/dist/esm/cpn-components/CpnNavigation/index.js +1 -1
  266. package/dist/esm/cpn-components/CpnNavigation/index.js.map +2 -2
  267. package/dist/esm/shared/Styles.js +1 -1
  268. package/dist/esm/shared/Styles.js.map +3 -3
  269. package/dist/esm/stories/MarqueeReview.stories.d.ts +73 -0
  270. package/dist/esm/stories/MarqueeReview.stories.js +19 -0
  271. package/dist/esm/stories/MarqueeReview.stories.js.map +7 -0
  272. package/dist/esm/stories/featureCards.stories.d.ts +28 -0
  273. package/dist/esm/stories/featureCards.stories.js +2 -0
  274. package/dist/esm/stories/featureCards.stories.js.map +7 -0
  275. package/dist/esm/stories/featureShowcase.stories.d.ts +28 -0
  276. package/dist/esm/stories/featureShowcase.stories.js +2 -0
  277. package/dist/esm/stories/featureShowcase.stories.js.map +7 -0
  278. package/dist/esm/stories/imageTextFeature.stories.d.ts +27 -0
  279. package/dist/esm/stories/imageTextFeature.stories.js +2 -0
  280. package/dist/esm/stories/imageTextFeature.stories.js.map +7 -0
  281. package/dist/esm/stories/imageWithText.stories.d.ts +27 -0
  282. package/dist/esm/stories/imageWithText.stories.js +2 -0
  283. package/dist/esm/stories/imageWithText.stories.js.map +7 -0
  284. package/dist/esm/stories/ksp.stories.d.ts +63 -0
  285. package/dist/esm/stories/ksp.stories.js +129 -0
  286. package/dist/esm/stories/ksp.stories.js.map +7 -0
  287. package/dist/esm/stories/productCompare.stories.d.ts +49 -0
  288. package/dist/esm/stories/productCompare.stories.js +63 -0
  289. package/dist/esm/stories/productCompare.stories.js.map +7 -0
  290. package/dist/esm/stories/productHero.stories.d.ts +28 -0
  291. package/dist/esm/stories/productHero.stories.js +2 -0
  292. package/dist/esm/stories/productHero.stories.js.map +7 -0
  293. package/dist/esm/stories/specs.stories.d.ts +13 -0
  294. package/dist/esm/stories/specs.stories.js +57 -0
  295. package/dist/esm/stories/specs.stories.js.map +7 -0
  296. package/dist/esm/stories/specsComparison.stories.d.ts +27 -0
  297. package/dist/esm/stories/specsComparison.stories.js +30 -0
  298. package/dist/esm/stories/specsComparison.stories.js.map +7 -0
  299. package/dist/esm/stories/tabWithImage.stories.d.ts +27 -0
  300. package/dist/esm/stories/tabWithImage.stories.js +2 -0
  301. package/dist/esm/stories/tabWithImage.stories.js.map +7 -0
  302. package/dist/esm/stories/tabsWithMedia.stories.d.ts +27 -0
  303. package/dist/esm/stories/tabsWithMedia.stories.js +2 -0
  304. package/dist/esm/stories/tabsWithMedia.stories.js.map +7 -0
  305. package/dist/esm/stories/videoFeature.stories.d.ts +28 -0
  306. package/dist/esm/stories/videoFeature.stories.js +2 -0
  307. package/dist/esm/stories/videoFeature.stories.js.map +7 -0
  308. package/dist/esm/types/props.d.ts +4 -0
  309. package/dist/tokens/base.css +3 -0
  310. package/package.json +4 -1
  311. package/tailwind.config.js +2 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/biz-components/Specs/index.tsx"],
4
+ "sourcesContent": ["'use client'\n\nimport DropDown from './dropdown'\nimport { useAiuiContext } from '../AiuiProvider/index.js'\nimport { useMediaQuery } from 'react-responsive'\nimport { useMemo, useState, useEffect } from 'react'\nimport { withLayout } from '../../shared/Styles.js'\nimport { formatVariantPrice } from '../ShelfDisplay/shelfDisplay.js'\nimport { Picture, Text, Button, Container, Heading } from '../../components/index.js'\nimport React, { useImperativeHandle, useRef } from 'react'\n\nconst Specs = React.forwardRef<HTMLDivElement, any>((page: any, ref) => {\n const { data, buildData, onChange } = page || {}\n\n const isMobile = useMediaQuery({ query: '(max-width: 768px)' })\n\n const [active, setActive] = useState<any>({})\n const [visibleActive, setVisibleActive] = useState<{ [key: number]: boolean }>({})\n\n const innerRef = useRef<HTMLDivElement>(null)\n\n const { locale = 'us' } = useAiuiContext()\n\n const { LeftMenu, RightMenu, DefaultSelectMenu } = useMemo(() => data?.data || {}, [data?.data])\n\n const isImageUrl = (urlPath: string) => {\n try {\n const url = new URL(urlPath)\n const path = url.pathname.toLowerCase()\n return /\\.(jpeg|jpg|gif|png|webp|bmp|svg|tiff)$/.test(path)\n } catch (e) {\n // \u5982\u679C\u4F20\u5165\u7684\u4E0D\u662F\u6709\u6548URL\uFF08\u5982\u76F8\u5BF9\u8DEF\u5F84\uFF09\uFF0C\u76F4\u63A5\u68C0\u67E5\u8DEF\u5F84\n return /\\.(jpeg|jpg|gif|png|webp|bmp|svg|tiff)$/i.test(urlPath)\n }\n }\n\n const skuNode = (product: any, index: number) => {\n const findCurrentData = RightMenu?.menus?.find?.((item: any) => item?.handle === product?.handle)\n const findSku = product?.variants?.find?.((item: any) => item?.sku === product?.sku || findCurrentData?.sku)\n const coupon = findSku?.coupons?.[0]\n const { price, basePrice } = formatVariantPrice({\n locale: locale || 'us',\n amount: coupon ? coupon?.variant_price4wscode : findSku?.price,\n baseAmount: coupon ? findSku?.price : 0,\n currencyCode: product?.price?.currencyCode || 'USD',\n })\n return (\n <div className=\"box-border overflow-hidden specs-sku-node-wrap\">\n <Text\n className={`relative mb-6 box-border block rounded-[50px] border border-[#E4E5E6] bg-[#F5F5F7] px-6 py-4 text-base font-bold md-tablet:p-2 l-tablet:mb-4 l-tablet:text-sm desktop:px-6 lg-desktop:mb-8 lg-desktop:text-lg openDropDown specs-sku-node-text`}\n onClick={() => setVisibleActive({ ...visibleActive, [index]: !visibleActive?.[index] })}\n >\n <div className=\"flex items-center justify-between overflow-hidden\">\n <div\n className=\"openDropDown flex-1 truncate text-base md-tablet:text-sm lg-desktop:text-lg specs-sku-node-title\"\n title={active?.[index]?.name}\n >\n {active?.[index]?.name || ''}\n </div>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"25\"\n viewBox=\"0 0 24 25\"\n fill=\"none\"\n className=\"openDropDown\"\n >\n <path\n d=\"M6 9.5L12 15.5L18 9.5\"\n stroke=\"#1D1D1F\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </div>\n <DropDown\n index={index}\n list={buildData?.products}\n active={active}\n filterActive={active}\n setActive={setActive}\n visible={visibleActive}\n setVisible={setVisibleActive}\n />\n </Text>\n <div className=\"max-h-[138px] max-w-[138px] lg-desktop:max-h-[196px] lg-desktop:max-w-[196px]\">\n <Picture\n source={findSku?.image?.url || ''}\n className=\"aspect-h-[280] aspect-w-[280]\"\n imgClassName=\"w-full h-full object-cover\"\n />\n </div>\n {findSku?.availableForSale ? (\n <div className=\"mb-2 mt-6 flex items-center text-xl font-bold lg-desktop:text-2xl\">\n <div className=\"text-[#1D1D1F] specs-sku-node-price\">{price || ''}</div>\n {basePrice && (\n <div className=\"ml-1 text-xl text-[#86868C] line-through lg-desktop:text-2xl specs-sku-node-base-price\">\n {basePrice}\n </div>\n )}\n </div>\n ) : (\n false\n )}\n {DefaultSelectMenu?.buttonText ? (\n <Button onClick={() => onChange?.(product)} className=\"specs-sku-node-button\">\n {DefaultSelectMenu?.buttonText}\n </Button>\n ) : null}\n </div>\n )\n }\n\n const normalNode = (v: any) => {\n if (!v) return\n if (v && typeof v !== 'string') {\n return (\n <div className=\"size-full\">\n <p\n className=\"text-base font-bold text-[#1D1D1F] md:text-sm min-xxl:text-lg specs-normal-node-text\"\n dangerouslySetInnerHTML={{\n __html: v?.text || '',\n }}\n />\n <Picture\n source={v?.imgUrl}\n className=\"m-auto max-h-[360px] max-w-[360px] l:max-h-[174px] l:max-w-[174px]\"\n imgClassName=\"w-full h-full object-cover\"\n />\n </div>\n )\n }\n return (\n <div className=\"break-all\">\n {isImageUrl(v) ? (\n <Picture\n source={v}\n className=\"m-auto max-h-[360px] max-w-[360px] l:max-h-[174px] l:max-w-[174px]\"\n imgClassName=\"w-full h-full object-cover\"\n />\n ) : (\n <p\n className=\"text-base font-bold text-[#1D1D1F] md:text-sm min-xxl:text-lg specs-normal-node-text\"\n dangerouslySetInnerHTML={{\n __html: v || '',\n }}\n />\n )}\n </div>\n )\n }\n\n const productNode = (data: any) => {\n return data.map((st: any, idx: number) => {\n const isFirstParameter = idx === 0\n return (\n <div\n key={st}\n className={`box-border grid w-full cursor-pointer grid-cols-3 overflow-hidden border-t border-t-[#E4E5E6] l-tablet:flex l-tablet:flex-col ${isFirstParameter ? '' : ''} specs-product-node-wrap`}\n >\n <Heading\n as=\"h3\"\n html={st || ''}\n className=\"mr-4 flex-1 pt-4 tablet:py-6 text-base font-bold md:text-sm l-tablet:text-[#86868C] desktop:p-6 lg-desktop:text-lg specs-product-node-title\"\n />\n <div\n className={`col-span-2 grid flex-1 py-6 l-tablet:w-full l-tablet:gap-4 laptop:gap-8 desktop:gap-12 desktop:p-6 lg-desktop:gap-16 grid-cols-2 specs-product-node-body`}\n >\n {Object.keys(active)?.map?.((item: string) => {\n const currentData = active?.[item]\n const currentMenus = RightMenu?.menus?.find?.(\n (item: any) => item?.handle === currentData?.handle\n )?.subTitle\n return normalNode(currentMenus?.[st])\n })}\n </div>\n </div>\n )\n })\n }\n\n // \u5DE6\u4FA7\u6807\u9898\u83DC\u5355\n const childrenNode = (node: any) => {\n if (!active) return\n const { subTitle, isProduct } = node\n // \u5982\u679C\u662F\u4EA7\u54C1\n if (isProduct) {\n return (\n <>\n <div\n className={`box-border grid w-full cursor-pointer grid-cols-3 overflow-hidden border-t-[#E4E5E6] l-tablet:flex l-tablet:flex-col border-t-0 specs-content-item-product`}\n >\n {node?.title && <Heading as=\"h3\" html={node?.title || ''} className=\"l:hidden specs-item-product-title\" />}\n <div\n className={`col-span-2 grid flex-1 pb-4 l-tablet:w-full l-tablet:gap-4 laptop:gap-8 desktop:gap-12 desktop:p-6 lg-desktop:gap-16 grid-cols-2 pr-0 specs-item-product-body`}\n >\n {Object.keys(active)?.map((item: string, index: number) => {\n const currentData = active?.[item]\n const currentProduct = buildData?.products?.find?.((item: any) => item?.handle === currentData?.handle)\n return <div key={item}>{skuNode({ ...currentProduct, sku: currentData?.sku, item: item }, index)}</div>\n })}\n </div>\n </div>\n {subTitle?.length ? productNode(subTitle) : null}\n </>\n )\n }\n return productNode(subTitle)\n }\n\n useImperativeHandle(ref, () => innerRef.current as HTMLDivElement)\n\n useEffect(() => {\n if (!buildData?.products?.length) return\n const skus = DefaultSelectMenu?.sku?.split?.(',') || []\n let currentActive = {}\n skus?.forEach?.((sku: string, index: number) => {\n const findData = buildData?.products?.find?.((item: any) => {\n const findSku = item?.variants?.find?.((v: any) => v?.sku === sku)\n if (findSku) return true\n })\n if (findData) {\n currentActive = {\n ...currentActive,\n [index]: {\n sku: sku,\n name: findData?.name,\n handle: findData?.handle,\n },\n }\n }\n })\n setActive(currentActive)\n }, [buildData])\n\n useEffect(() => {\n if (isMobile) {\n const currentActive = Object.keys(active || {})\n if (currentActive?.length > 2) {\n const newActive = currentActive?.slice?.(0, 2)\n let newShowActive = {}\n newActive?.forEach?.((item: string) => {\n newShowActive = { ...newShowActive, [item]: active?.[item] }\n })\n setActive(newShowActive)\n }\n }\n }, [isMobile])\n\n return (\n <div className=\"w-full overflow-hidden bg-[#F5F5F7] specs-wrapper\" ref={innerRef}>\n {LeftMenu?.data ? (\n <div className=\"box-border w-full overflow-hidden specs-wrapper-content\">\n {LeftMenu?.data?.map?.((item: any, index: number) => {\n return (\n <div key={index} className=\"w-full overflow-hidden pt-10 [&:first-child]:pt-0 specs-wrapper-content-item\">\n {childrenNode(item)}\n </div>\n )\n })}\n </div>\n ) : null}\n </div>\n )\n})\n\nSpecs.displayName = 'Specs'\n\nexport default withLayout(Specs)\n"],
5
+ "mappings": "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",
6
+ "names": ["Specs_exports", "__export", "Specs_default", "__toCommonJS", "import_jsx_runtime", "import_dropdown", "import_AiuiProvider", "import_react_responsive", "import_react", "import_Styles", "import_shelfDisplay", "import_components", "Specs", "React", "page", "ref", "data", "buildData", "onChange", "isMobile", "active", "setActive", "visibleActive", "setVisibleActive", "innerRef", "locale", "LeftMenu", "RightMenu", "DefaultSelectMenu", "isImageUrl", "urlPath", "path", "skuNode", "product", "index", "findCurrentData", "item", "findSku", "coupon", "price", "basePrice", "DropDown", "normalNode", "v", "productNode", "st", "idx", "isFirstParameter", "currentData", "currentMenus", "childrenNode", "node", "subTitle", "isProduct", "currentProduct", "skus", "currentActive", "sku", "findData", "newActive", "newShowActive"]
7
+ }
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import type { SpecsComparisonProps } from './types.js';
3
+ declare const _default: React.ForwardRefExoticComponent<Omit<Omit<SpecsComparisonProps & React.RefAttributes<HTMLDivElement>, keyof import("../../shared/Styles.js").StylesProps> & Partial<import("../../shared/Styles.js").StylesProps & import("../../shared/Styles.js").ContainerProps> & {
4
+ className?: string;
5
+ data?: Record<string, any>;
6
+ }, "ref"> & React.RefAttributes<any>>;
7
+ export default _default;
@@ -0,0 +1,2 @@
1
+ "use strict";"use client";var L=Object.create;var x=Object.defineProperty;var M=Object.getOwnPropertyDescriptor;var R=Object.getOwnPropertyNames;var k=Object.getPrototypeOf,I=Object.prototype.hasOwnProperty;var P=(l,n)=>{for(var i in n)x(l,i,{get:n[i],enumerable:!0})},w=(l,n,i,a)=>{if(n&&typeof n=="object"||typeof n=="function")for(let s of R(n))!I.call(l,s)&&s!==i&&x(l,s,{get:()=>n[s],enumerable:!(a=M(n,s))||a.enumerable});return l};var _=(l,n,i)=>(i=l!=null?L(k(l)):{},w(n||!l||!l.__esModule?x(i,"default",{value:l,enumerable:!0}):i,l)),V=l=>w(x({},"__esModule",{value:!0}),l);var z={};P(z,{default:()=>q});module.exports=V(z);var t=require("react/jsx-runtime"),r=_(require("react")),u=require("../../components/index.js"),d=require("../../helpers/utils.js"),N=require("../../shared/Styles.js"),y=require("../../hooks/useExposure.js");const $="specs",j="specs_comparison",h=r.default.forwardRef(({data:l,className:n},i)=>{const{LeftMenu:a,RightMenu:s}=l||{},[F,T]=(0,r.useState)(""),f=(0,r.useRef)({}),c=(0,r.useRef)(null);(0,y.useExposure)(c,{componentType:$,componentName:j,componentTitle:"Specs Comparison"}),(0,r.useImperativeHandle)(i,()=>c.current);const v=e=>e?(0,t.jsx)("div",{className:"break-all",children:(0,t.jsx)("p",{className:"text-sm font-bold text-[#1D1D1F] min-xl:text-base min-xxl:text-lg",dangerouslySetInnerHTML:{__html:e||""}})}):null,D=e=>e.map((o,p)=>{const E=p===0,b=s?.menus?.[0]?.subTitle,m=s?.menus?.[1]?.subTitle,C=m&&m[o],H=/^[✅❌]$/,g=C&&(m[o]!==b?.[o]||H.test(m[o]));return(0,t.jsxs)("div",{className:(0,d.cn)("box-border flex w-full overflow-hidden border-t border-t-[#E4E5E6] l:flex-col",E&&"border-t-0"),children:[(0,t.jsx)(u.Heading,{as:"h3",html:o||"",className:"mr-4 flex-1 pt-4 text-base font-bold text-[#000000] l:text-lg min-l:min-w-[216px] min-l:max-w-[216px] min-xl:min-w-[268px] min-xl:max-w-[268px] min-xl:p-6 min-xxl:min-w-[356px] min-xxl:max-w-[356px] min-xxl:text-lg"}),(0,t.jsxs)("div",{className:(0,d.cn)("grid flex-1 place-self-center pb-4 pt-2 l:w-full l:gap-4 min-l:gap-8 min-xl:gap-12 min-xl:p-6 min-xxl:gap-16",g?"grid-cols-2":"grid-cols-1"),children:[v(b?.[o]),g&&v(m?.[o])]})]},o)}),S=e=>{const{subTitle:o}=e;return D(o)};return(0,t.jsx)("div",{ref:c,"data-ui-component-id":"SpecsComparison",className:(0,d.cn)("w-full overflow-hidden bg-[#F5F5F7]",n),children:(0,t.jsx)("div",{className:"container mx-auto",children:a?.data?(0,t.jsxs)("div",{className:"my-16 box-border flex w-full overflow-hidden min-l:mb-24 min-xl:mb-32",children:[a.data.length>1?(0,t.jsx)("div",{className:"flex l:hidden min-l:mr-6 min-xl:mr-12",children:(0,t.jsx)("div",{className:"box-border overflow-hidden min-l:w-[196px] min-xl:w-[284px] min-xxl:w-[356px]",children:a.data.map(e=>(0,t.jsx)("div",{onClick:()=>{T(e.title),f.current[e.title]?.scrollIntoView({behavior:"smooth"})},title:e.title||"",className:(0,d.cn)("box-border cursor-pointer overflow-hidden truncate rounded-lg px-6 py-2 text-base font-bold leading-9 text-[#1D1D1F] min-xxl:py-4 min-xxl:text-lg",F===e.title&&"bg-[#FFFFFF]"),children:e.title||""},e.title))})}):null,(0,t.jsx)("div",{className:"box-border flex-1 overflow-hidden",children:(0,t.jsx)("div",{className:"w-full",children:a.data.map((e,o)=>(0,t.jsxs)("div",{className:"w-full overflow-hidden pt-10 first:pt-0",ref:p=>{f.current[e.title]=p},children:[e.title&&(0,t.jsx)(u.Heading,{as:"h2",className:"mb-6 text-2xl font-bold min-l:text-[32px]",html:e.title||""}),S(e)]},o))})})]}):null})})});h.displayName="SpecsComparison";var q=(0,N.withLayout)(h);
2
+ //# sourceMappingURL=SpecsComparison.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/biz-components/SpecsComparison/SpecsComparison.tsx"],
4
+ "sourcesContent": ["'use client'\nimport React, { useRef, useImperativeHandle, useState } from 'react'\nimport { Heading, Text } from '../../components/index.js'\nimport { cn } from '../../helpers/utils.js'\nimport { withLayout } from '../../shared/Styles.js'\nimport { useExposure } from '../../hooks/useExposure.js'\nimport type { SpecsComparisonProps } from './types.js'\n\nconst componentType = 'specs'\nconst componentName = 'specs_comparison'\n\nconst SpecsComparison = React.forwardRef<HTMLDivElement, SpecsComparisonProps>(\n ({ data, className }, ref) => {\n const { LeftMenu, RightMenu } = data || {}\n const [selectItem, setSelectItem] = useState('')\n const refs = useRef<Record<string, HTMLDivElement | null>>({})\n\n const boxRef = useRef<HTMLDivElement>(null)\n\n useExposure(boxRef, {\n componentType,\n componentName,\n componentTitle: 'Specs Comparison',\n })\n\n useImperativeHandle(ref, () => boxRef.current as HTMLDivElement)\n\n const normalNode = (v: string) => {\n if (!v) return null\n return (\n <div className=\"break-all\">\n <p\n className=\"text-sm font-bold text-[#1D1D1F] min-xl:text-base min-xxl:text-lg\"\n dangerouslySetInnerHTML={{\n __html: v || '',\n }}\n />\n </div>\n )\n }\n\n const productNode = (subTitle: string[]) => {\n return subTitle.map((st, idx) => {\n const isFirstParameter = idx === 0\n const leftData = RightMenu?.menus?.[0]?.subTitle\n const rightData = RightMenu?.menus?.[1]?.subTitle\n const hasRightData = rightData && rightData[st]\n const reg = /^[\u2705\u274C]$/\n const isSame =\n hasRightData &&\n (rightData[st] !== leftData?.[st] || reg.test(rightData[st]))\n\n return (\n <div\n key={st}\n className={cn(\n 'box-border flex w-full overflow-hidden border-t border-t-[#E4E5E6] l:flex-col',\n isFirstParameter && 'border-t-0'\n )}\n >\n <Heading\n as=\"h3\"\n html={st || ''}\n className=\"mr-4 flex-1 pt-4 text-base font-bold text-[#000000] l:text-lg min-l:min-w-[216px] min-l:max-w-[216px] min-xl:min-w-[268px] min-xl:max-w-[268px] min-xl:p-6 min-xxl:min-w-[356px] min-xxl:max-w-[356px] min-xxl:text-lg\"\n />\n <div\n className={cn(\n 'grid flex-1 place-self-center pb-4 pt-2 l:w-full l:gap-4 min-l:gap-8 min-xl:gap-12 min-xl:p-6 min-xxl:gap-16',\n isSame ? 'grid-cols-2' : 'grid-cols-1'\n )}\n >\n {normalNode(leftData?.[st])}\n {isSame && normalNode(rightData?.[st])}\n </div>\n </div>\n )\n })\n }\n\n const childrenNode = (node: { subTitle: string[]; isProduct?: boolean }) => {\n const { subTitle } = node\n return productNode(subTitle)\n }\n\n return (\n <div\n ref={boxRef}\n data-ui-component-id=\"SpecsComparison\"\n className={cn('w-full overflow-hidden bg-[#F5F5F7]', className)}\n >\n <div className=\"container mx-auto\">\n {LeftMenu?.data ? (\n <div className=\"my-16 box-border flex w-full overflow-hidden min-l:mb-24 min-xl:mb-32\">\n {LeftMenu.data.length > 1 ? (\n <div className=\"flex l:hidden min-l:mr-6 min-xl:mr-12\">\n <div className=\"box-border overflow-hidden min-l:w-[196px] min-xl:w-[284px] min-xxl:w-[356px]\">\n {LeftMenu.data.map((item) => {\n return (\n <div\n key={item.title}\n onClick={() => {\n setSelectItem(item.title)\n const el = refs.current[item.title]\n el?.scrollIntoView({ behavior: 'smooth' })\n }}\n title={item.title || ''}\n className={cn(\n 'box-border cursor-pointer overflow-hidden truncate rounded-lg px-6 py-2 text-base font-bold leading-9 text-[#1D1D1F] min-xxl:py-4 min-xxl:text-lg',\n selectItem === item.title && 'bg-[#FFFFFF]'\n )}\n >\n {item.title || ''}\n </div>\n )\n })}\n </div>\n </div>\n ) : null}\n <div className=\"box-border flex-1 overflow-hidden\">\n <div className=\"w-full\">\n {LeftMenu.data.map((item, index) => {\n return (\n <div\n key={index}\n className=\"w-full overflow-hidden pt-10 first:pt-0\"\n ref={(r) => {\n refs.current[item.title] = r\n }}\n >\n {item.title && (\n <Heading\n as=\"h2\"\n className=\"mb-6 text-2xl font-bold min-l:text-[32px]\"\n html={item.title || ''}\n />\n )}\n {childrenNode(item)}\n </div>\n )\n })}\n </div>\n </div>\n </div>\n ) : null}\n </div>\n </div>\n )\n }\n)\n\nSpecsComparison.displayName = 'SpecsComparison'\n\nexport default withLayout(SpecsComparison)\n"],
5
+ "mappings": "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",
6
+ "names": ["SpecsComparison_exports", "__export", "SpecsComparison_default", "__toCommonJS", "import_jsx_runtime", "import_react", "import_components", "import_utils", "import_Styles", "import_useExposure", "componentType", "componentName", "SpecsComparison", "React", "data", "className", "ref", "LeftMenu", "RightMenu", "selectItem", "setSelectItem", "refs", "boxRef", "normalNode", "v", "productNode", "subTitle", "st", "idx", "isFirstParameter", "leftData", "rightData", "hasRightData", "reg", "isSame", "childrenNode", "node", "item", "index", "r"]
7
+ }
@@ -0,0 +1,2 @@
1
+ export { default } from './SpecsComparison.js';
2
+ export type { SpecsComparisonProps, SpecsComparisonMenuItem, SpecsComparisonLeftMenuItem, } from './types.js';
@@ -0,0 +1,2 @@
1
+ "use strict";var a=Object.create;var r=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var c=Object.getOwnPropertyNames;var i=Object.getPrototypeOf,u=Object.prototype.hasOwnProperty;var C=(e,o)=>{for(var p in o)r(e,p,{get:o[p],enumerable:!0})},m=(e,o,p,t)=>{if(o&&typeof o=="object"||typeof o=="function")for(let s of c(o))!u.call(e,s)&&s!==p&&r(e,s,{get:()=>o[s],enumerable:!(t=f(o,s))||t.enumerable});return e};var S=(e,o,p)=>(p=e!=null?a(i(e)):{},m(o||!e||!e.__esModule?r(p,"default",{value:e,enumerable:!0}):p,e)),x=e=>m(r({},"__esModule",{value:!0}),e);var y={};C(y,{default:()=>n.default});module.exports=x(y);var n=S(require("./SpecsComparison.js"));
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/biz-components/SpecsComparison/index.ts"],
4
+ "sourcesContent": ["export { default } from './SpecsComparison.js'\nexport type {\n SpecsComparisonProps,\n SpecsComparisonMenuItem,\n SpecsComparisonLeftMenuItem,\n} from './types.js'\n"],
5
+ "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,wCAAAE,EAAAF,GAAA,IAAAG,EAAwB",
6
+ "names": ["SpecsComparison_exports", "__export", "__toCommonJS", "import_SpecsComparison"]
7
+ }
@@ -0,0 +1,34 @@
1
+ export interface SpecsComparisonMenuItem {
2
+ /** 产品 SKU */
3
+ sku: string;
4
+ /** 产品 handle */
5
+ handle: string;
6
+ /** 规格数据,key 为规格项名称,value 为规格值 */
7
+ subTitle: Record<string, string>;
8
+ }
9
+ export interface SpecsComparisonLeftMenuItem {
10
+ /** 分类标题 */
11
+ title: string;
12
+ /** 规格项列表 */
13
+ subTitle: string[];
14
+ /** 是否为产品规格 */
15
+ isProduct?: boolean;
16
+ }
17
+ export interface SpecsComparisonProps {
18
+ data: {
19
+ /** 左侧菜单配置 */
20
+ LeftMenu: {
21
+ data: SpecsComparisonLeftMenuItem[];
22
+ };
23
+ /** 右侧产品列表配置 */
24
+ RightMenu: {
25
+ menus: SpecsComparisonMenuItem[];
26
+ };
27
+ /** 默认选中菜单配置 */
28
+ DefaultSelectMenu: {
29
+ buttonText: string;
30
+ };
31
+ };
32
+ /** 自定义类名 */
33
+ className?: string;
34
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var r=Object.defineProperty;var o=Object.getOwnPropertyDescriptor;var a=Object.getOwnPropertyNames;var p=Object.prototype.hasOwnProperty;var u=(t,e,i,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of a(e))!p.call(t,n)&&n!==i&&r(t,n,{get:()=>e[n],enumerable:!(s=o(e,n))||s.enumerable});return t};var c=t=>u(r({},"__esModule",{value:!0}),t);var m={};module.exports=c(m);
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/biz-components/SpecsComparison/types.ts"],
4
+ "sourcesContent": ["export interface SpecsComparisonMenuItem {\n /** \u4EA7\u54C1 SKU */\n sku: string\n /** \u4EA7\u54C1 handle */\n handle: string\n /** \u89C4\u683C\u6570\u636E\uFF0Ckey \u4E3A\u89C4\u683C\u9879\u540D\u79F0\uFF0Cvalue \u4E3A\u89C4\u683C\u503C */\n subTitle: Record<string, string>\n}\n\nexport interface SpecsComparisonLeftMenuItem {\n /** \u5206\u7C7B\u6807\u9898 */\n title: string\n /** \u89C4\u683C\u9879\u5217\u8868 */\n subTitle: string[]\n /** \u662F\u5426\u4E3A\u4EA7\u54C1\u89C4\u683C */\n isProduct?: boolean\n}\n\nexport interface SpecsComparisonProps {\n data: {\n /** \u5DE6\u4FA7\u83DC\u5355\u914D\u7F6E */\n LeftMenu: {\n data: SpecsComparisonLeftMenuItem[]\n }\n /** \u53F3\u4FA7\u4EA7\u54C1\u5217\u8868\u914D\u7F6E */\n RightMenu: {\n menus: SpecsComparisonMenuItem[]\n }\n /** \u9ED8\u8BA4\u9009\u4E2D\u83DC\u5355\u914D\u7F6E */\n DefaultSelectMenu: {\n buttonText: string\n }\n }\n /** \u81EA\u5B9A\u4E49\u7C7B\u540D */\n className?: string\n}\n"],
5
+ "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
+ "names": ["types_exports", "__toCommonJS"]
7
+ }
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import type { TabWithImageProps } from './types.js';
3
+ declare const _default: React.ForwardRefExoticComponent<Omit<Omit<TabWithImageProps & React.RefAttributes<HTMLDivElement>, keyof import("../../shared/Styles.js").StylesProps> & Partial<import("../../shared/Styles.js").StylesProps & import("../../shared/Styles.js").ContainerProps> & {
4
+ className?: string;
5
+ data?: Record<string, any>;
6
+ }, "ref"> & React.RefAttributes<any>>;
7
+ export default _default;
@@ -0,0 +1,2 @@
1
+ "use strict";"use client";var E=Object.create;var d=Object.defineProperty;var H=Object.getOwnPropertyDescriptor;var L=Object.getOwnPropertyNames;var M=Object.getPrototypeOf,W=Object.prototype.hasOwnProperty;var P=(e,a)=>{for(var o in a)d(e,o,{get:a[o],enumerable:!0})},w=(e,a,o,c)=>{if(a&&typeof a=="object"||typeof a=="function")for(let n of L(a))!W.call(e,n)&&n!==o&&d(e,n,{get:()=>a[n],enumerable:!(c=H(a,n))||c.enumerable});return e};var R=(e,a,o)=>(o=e!=null?E(M(e)):{},w(a||!e||!e.__esModule?d(o,"default",{value:e,enumerable:!0}):o,e)),z=e=>w(d({},"__esModule",{value:!0}),e);var j={};P(j,{default:()=>$});module.exports=z(j);var t=require("react/jsx-runtime"),i=R(require("react")),m=require("../../components/index.js"),b=require("../../helpers/utils.js"),T=require("../../shared/Styles.js"),I=require("../../hooks/useExposure.js"),f=require("framer-motion");const A="image",S="tab_with_image",y=i.default.forwardRef(({data:e,className:a},o)=>{const{title:c,subtitle:n,desc:v,imageUrl:C,mobImageUrl:U,datalist:p=[]}=e,u=(0,i.useRef)(null);(0,I.useExposure)(u,{componentType:A,componentName:S,componentTitle:c,componentDescription:v}),(0,i.useImperativeHandle)(o,()=>u.current);const N=(r,l)=>{k(r),l.target.scrollIntoView({behavior:"smooth",inline:"center",block:"nearest"})},[s,k]=(0,i.useState)(0),h=(0,i.useRef)([]),[g,D]=(0,i.useState)({left:0,width:0});return(0,i.useEffect)(()=>{const r=h.current[s];if(r){const{offsetLeft:l,offsetWidth:x}=r;D({left:l,width:x})}},[s,p.length]),(0,t.jsxs)("section",{ref:u,"data-ui-component-id":"TabWithImage",className:(0,b.cn)("flex text-[#fff] l:gap-[24px] xl:flex-col min-md:justify-between min-l:gap-[20px]",a),children:[(0,t.jsxs)("div",{className:"inline-flex flex-col justify-center min-md:gap-[24px] laptop:basis-[36%]",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(m.Heading,{as:"h3",size:4,html:c}),(0,t.jsx)(m.Text,{as:"p",size:1,html:v,className:"mt-[4px] text-[14px] tablet:text-[14px] laptop:text-[14px] desktop:text-[16px] lg-desktop:text-[18px]"})]}),(0,t.jsx)("div",{className:"relative md:overflow-hidden md:overflow-x-scroll md:scrollbar-hidden",children:(0,t.jsxs)("div",{className:"relative inline-flex rounded-[24px] bg-[#1D1D1F] px-[4px] md:my-[24px]",children:[(0,t.jsx)("div",{className:"absolute bottom-0 top-0 rounded-[24px] bg-white transition-all duration-300 ease-in-out",style:{left:g.left,width:g.width}}),p.map((r,l)=>(0,t.jsx)("div",{ref:x=>{h.current[l]=x},onClick:x=>N(l,x),className:(0,b.cn)("relative z-10 cursor-pointer rounded-[24px] px-[20px] py-[10px] text-center text-[12px] font-medium transition-colors duration-300 md:px-[20px] md:py-[10px] min-xxl:px-[28px] min-xxl:py-[15px]",s===l?"text-black":"text-white"),children:(0,t.jsx)(m.Heading,{as:"h1",size:1,html:r?.title,className:"text-balance-normal !whitespace-nowrap md:text-[14px]"})},l))]})})]}),(0,t.jsx)("div",{className:" relative w-full flex-shrink md:aspect-[358/360] min-xxl:aspect-[824/560] min-xxl:max-w-[824px] tablet:aspect-[704/360] laptop:aspect-[744/336] laptop:basis-[64%] desktop:aspect-[648/448]",children:(0,t.jsx)(f.AnimatePresence,{mode:"wait",children:(0,t.jsx)(f.motion.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.3},className:"absolute left-0 top-0 w-full",children:(0,t.jsx)(m.Picture,{source:`${p[s].image} ,${p[s].imgPad} 1440, ${p[s].imageMob} 767`,className:"rounded-[16px] md:aspect-[358/360] min-xxl:aspect-[824/560] min-xxl:max-w-[824px] tablet:aspect-[704/360] laptop:aspect-[744/336] desktop:aspect-[648/448] "})},p[s].image)})})]})});y.displayName="TabWithImage";var $=(0,T.withLayout)(y);
2
+ //# sourceMappingURL=TabWithImage.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/biz-components/TabWithImage/TabWithImage.tsx"],
4
+ "sourcesContent": ["'use client'\nimport React, { useState, useEffect, useRef, useImperativeHandle } from 'react'\nimport { Heading, Picture, Text } from '../../components/index.js'\nimport { cn } from '../../helpers/utils.js'\nimport { withLayout } from '../../shared/Styles.js'\nimport { useExposure } from '../../hooks/useExposure.js'\nimport type { TabWithImageProps, TabWithImageDataItem } from './types.js'\nimport { motion, AnimatePresence } from 'framer-motion'\n\nconst componentType = 'image'\nconst componentName = 'tab_with_image'\n\nconst TabWithImage = React.forwardRef<HTMLDivElement, TabWithImageProps>(({ data, className }, ref) => {\n const { title, subtitle, desc, imageUrl, mobImageUrl, datalist = [] } = data\n\n const boxRef = useRef<HTMLDivElement>(null)\n\n useExposure(boxRef, {\n componentType,\n componentName,\n componentTitle: title,\n componentDescription: desc,\n })\n\n useImperativeHandle(ref, () => boxRef.current as HTMLDivElement)\n\n const handleClick = (index: number, e: React.MouseEvent<HTMLDivElement>) => {\n setActiveIndex(index)\n ;(e.target as HTMLElement).scrollIntoView({\n behavior: 'smooth', // \u5E73\u6ED1\u6EDA\u52A8\n inline: 'center', // \u6A2A\u5411\u5C45\u4E2D\u5BF9\u9F50\n block: 'nearest', // \u5782\u76F4\u65B9\u5411\u4E0D\u52A8\n })\n }\n\n const [activeIndex, setActiveIndex] = useState(0)\n const tabRefs = useRef<Array<HTMLDivElement | null>>([]) // \u8BB0\u5F55\u6BCF\u4E2Atab\u7684\u4F4D\u7F6E\n const [sliderStyle, setSliderStyle] = useState({ left: 0, width: 0 })\n\n useEffect(() => {\n const current = tabRefs.current[activeIndex]\n if (current) {\n const { offsetLeft, offsetWidth } = current\n setSliderStyle({ left: offsetLeft, width: offsetWidth })\n }\n }, [activeIndex, datalist.length])\n\n return (\n <section\n ref={boxRef}\n data-ui-component-id=\"TabWithImage\"\n className={cn(\n 'flex text-[#fff] l:gap-[24px] xl:flex-col min-md:justify-between min-l:gap-[20px]',\n className\n )}\n >\n <div className=\"inline-flex flex-col justify-center min-md:gap-[24px] laptop:basis-[36%]\">\n <div>\n <Heading as={'h3'} size={4} html={title} />\n <Text\n as={'p'}\n size={1}\n html={desc}\n className=\"mt-[4px] text-[14px] tablet:text-[14px] laptop:text-[14px] desktop:text-[16px] lg-desktop:text-[18px]\"\n />\n </div>\n\n <div className=\"relative md:overflow-hidden md:overflow-x-scroll md:scrollbar-hidden\">\n <div className=\"relative inline-flex rounded-[24px] bg-[#1D1D1F] px-[4px] md:my-[24px]\">\n {/* \u6ED1\u52A8\u80CC\u666F */}\n <div\n className=\"absolute bottom-0 top-0 rounded-[24px] bg-white transition-all duration-300 ease-in-out\"\n style={{\n left: sliderStyle.left,\n width: sliderStyle.width,\n }}\n />\n\n {/* Tab Items */}\n {datalist.map((item: TabWithImageDataItem, index: number) => (\n <div\n key={index}\n ref={(el) => {\n tabRefs.current[index] = el\n }}\n onClick={(e) => handleClick(index, e)}\n className={cn(\n 'relative z-10 cursor-pointer rounded-[24px] px-[20px] py-[10px] text-center text-[12px] font-medium transition-colors duration-300 md:px-[20px] md:py-[10px] min-xxl:px-[28px] min-xxl:py-[15px]',\n activeIndex === index ? 'text-black' : 'text-white'\n )}\n >\n <Heading\n as=\"h1\"\n size={1}\n html={item?.title}\n className=\"text-balance-normal !whitespace-nowrap md:text-[14px]\"\n />\n </div>\n ))}\n </div>\n </div>\n </div>\n <div className=\" relative w-full flex-shrink md:aspect-[358/360] min-xxl:aspect-[824/560] min-xxl:max-w-[824px] tablet:aspect-[704/360] laptop:aspect-[744/336] laptop:basis-[64%] desktop:aspect-[648/448]\">\n <AnimatePresence mode=\"wait\">\n <motion.div\n key={datalist[activeIndex].image}\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n transition={{ duration: 0.3 }}\n className=\"absolute left-0 top-0 w-full\"\n >\n <Picture\n source={`${datalist[activeIndex].image} ,${datalist[activeIndex].imgPad} 1440, ${datalist[activeIndex].imageMob} 767`}\n className=\"rounded-[16px] md:aspect-[358/360] min-xxl:aspect-[824/560] min-xxl:max-w-[824px] tablet:aspect-[704/360] laptop:aspect-[744/336] desktop:aspect-[648/448] \"\n />\n </motion.div>\n </AnimatePresence>\n </div>\n </section>\n )\n})\n\nTabWithImage.displayName = 'TabWithImage'\n\nexport default withLayout(TabWithImage)\n"],
5
+ "mappings": "ukBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,IAAA,eAAAC,EAAAH,GAyDQ,IAAAI,EAAA,6BAxDRC,EAAwE,oBACxEC,EAAuC,qCACvCC,EAAmB,kCACnBC,EAA2B,kCAC3BC,EAA4B,sCAE5BC,EAAwC,yBAExC,MAAMC,EAAgB,QAChBC,EAAgB,iBAEhBC,EAAe,EAAAC,QAAM,WAA8C,CAAC,CAAE,KAAAC,EAAM,UAAAC,CAAU,EAAGC,IAAQ,CACrG,KAAM,CAAE,MAAAC,EAAO,SAAAC,EAAU,KAAAC,EAAM,SAAAC,EAAU,YAAAC,EAAa,SAAAC,EAAW,CAAC,CAAE,EAAIR,EAElES,KAAS,UAAuB,IAAI,KAE1C,eAAYA,EAAQ,CAClB,cAAAb,EACA,cAAAC,EACA,eAAgBM,EAChB,qBAAsBE,CACxB,CAAC,KAED,uBAAoBH,EAAK,IAAMO,EAAO,OAAyB,EAE/D,MAAMC,EAAc,CAACC,EAAeC,IAAwC,CAC1EC,EAAeF,CAAK,EAClBC,EAAE,OAAuB,eAAe,CACxC,SAAU,SACV,OAAQ,SACR,MAAO,SACT,CAAC,CACH,EAEM,CAACE,EAAaD,CAAc,KAAI,YAAS,CAAC,EAC1CE,KAAU,UAAqC,CAAC,CAAC,EACjD,CAACC,EAAaC,CAAc,KAAI,YAAS,CAAE,KAAM,EAAG,MAAO,CAAE,CAAC,EAEpE,sBAAU,IAAM,CACd,MAAMC,EAAUH,EAAQ,QAAQD,CAAW,EAC3C,GAAII,EAAS,CACX,KAAM,CAAE,WAAAC,EAAY,YAAAC,CAAY,EAAIF,EACpCD,EAAe,CAAE,KAAME,EAAY,MAAOC,CAAY,CAAC,CACzD,CACF,EAAG,CAACN,EAAaN,EAAS,MAAM,CAAC,KAG/B,QAAC,WACC,IAAKC,EACL,uBAAqB,eACrB,aAAW,MACT,oFACAR,CACF,EAEA,qBAAC,OAAI,UAAU,2EACb,qBAAC,OACC,oBAAC,WAAQ,GAAI,KAAM,KAAM,EAAG,KAAME,EAAO,KACzC,OAAC,QACC,GAAI,IACJ,KAAM,EACN,KAAME,EACN,UAAU,wGACZ,GACF,KAEA,OAAC,OAAI,UAAU,uEACb,oBAAC,OAAI,UAAU,yEAEb,oBAAC,OACC,UAAU,0FACV,MAAO,CACL,KAAMW,EAAY,KAClB,MAAOA,EAAY,KACrB,EACF,EAGCR,EAAS,IAAI,CAACa,EAA4BV,OACzC,OAAC,OAEC,IAAMW,GAAO,CACXP,EAAQ,QAAQJ,CAAK,EAAIW,CAC3B,EACA,QAAUV,GAAMF,EAAYC,EAAOC,CAAC,EACpC,aAAW,MACT,mMACAE,IAAgBH,EAAQ,aAAe,YACzC,EAEA,mBAAC,WACC,GAAG,KACH,KAAM,EACN,KAAMU,GAAM,MACZ,UAAU,wDACZ,GAfKV,CAgBP,CACD,GACH,EACF,GACF,KACA,OAAC,OAAI,UAAU,8LACb,mBAAC,mBAAgB,KAAK,OACpB,mBAAC,SAAO,IAAP,CAEC,QAAS,CAAE,QAAS,CAAE,EACtB,QAAS,CAAE,QAAS,CAAE,EACtB,KAAM,CAAE,QAAS,CAAE,EACnB,WAAY,CAAE,SAAU,EAAI,EAC5B,UAAU,+BAEV,mBAAC,WACC,OAAQ,GAAGH,EAASM,CAAW,EAAE,KAAK,KAAKN,EAASM,CAAW,EAAE,MAAM,UAAUN,EAASM,CAAW,EAAE,QAAQ,OAC/G,UAAU,8JACZ,GAVKN,EAASM,CAAW,EAAE,KAW7B,EACF,EACF,GACF,CAEJ,CAAC,EAEDhB,EAAa,YAAc,eAE3B,IAAOX,KAAQ,cAAWW,CAAY",
6
+ "names": ["TabWithImage_exports", "__export", "TabWithImage_default", "__toCommonJS", "import_jsx_runtime", "import_react", "import_components", "import_utils", "import_Styles", "import_useExposure", "import_framer_motion", "componentType", "componentName", "TabWithImage", "React", "data", "className", "ref", "title", "subtitle", "desc", "imageUrl", "mobImageUrl", "datalist", "boxRef", "handleClick", "index", "e", "setActiveIndex", "activeIndex", "tabRefs", "sliderStyle", "setSliderStyle", "current", "offsetLeft", "offsetWidth", "item", "el"]
7
+ }
@@ -0,0 +1,2 @@
1
+ export { default } from './TabWithImage.js';
2
+ export type { TabWithImageProps, TabWithImageDataItem } from './types.js';
@@ -0,0 +1,2 @@
1
+ "use strict";var s=Object.create;var o=Object.defineProperty;var I=Object.getOwnPropertyDescriptor;var b=Object.getOwnPropertyNames;var g=Object.getPrototypeOf,h=Object.prototype.hasOwnProperty;var i=(t,e)=>{for(var a in e)o(t,a,{get:e[a],enumerable:!0})},r=(t,e,a,p)=>{if(e&&typeof e=="object"||typeof e=="function")for(let m of b(e))!h.call(t,m)&&m!==a&&o(t,m,{get:()=>e[m],enumerable:!(p=I(e,m))||p.enumerable});return t};var x=(t,e,a)=>(a=t!=null?s(g(t)):{},r(e||!t||!t.__esModule?o(a,"default",{value:t,enumerable:!0}):a,t)),y=t=>r(o({},"__esModule",{value:!0}),t);var T={};i(T,{default:()=>f.default});module.exports=y(T);var f=x(require("./TabWithImage.js"));
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/biz-components/TabWithImage/index.ts"],
4
+ "sourcesContent": ["export { default } from './TabWithImage.js'\nexport type { TabWithImageProps, TabWithImageDataItem } from './types.js'\n"],
5
+ "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,wCAAAE,EAAAF,GAAA,IAAAG,EAAwB",
6
+ "names": ["TabWithImage_exports", "__export", "__toCommonJS", "import_TabWithImage"]
7
+ }
@@ -0,0 +1,28 @@
1
+ export interface TabWithImageDataItem {
2
+ /** 桌面端图片 URL */
3
+ image: string;
4
+ /** 平板端图片 URL */
5
+ imgPad?: string;
6
+ /** 移动端图片 URL */
7
+ imageMob?: string;
8
+ /** Tab 标题 */
9
+ title: string;
10
+ }
11
+ export interface TabWithImageProps {
12
+ data: {
13
+ /** 主标题 */
14
+ title: string;
15
+ /** 副标题(可选) */
16
+ subtitle?: string;
17
+ /** 描述文本 */
18
+ desc: string;
19
+ /** 默认图片 URL(可选) */
20
+ imageUrl?: string;
21
+ /** 默认移动端图片 URL(可选) */
22
+ mobImageUrl?: string;
23
+ /** 数据列表 */
24
+ datalist: TabWithImageDataItem[];
25
+ };
26
+ /** 自定义类名 */
27
+ className?: string;
28
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var g=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var m=Object.getOwnPropertyNames;var n=Object.prototype.hasOwnProperty;var l=(a,t,r,e)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of m(t))!n.call(a,i)&&i!==r&&g(a,i,{get:()=>t[i],enumerable:!(e=s(t,i))||e.enumerable});return a};var b=a=>l(g({},"__esModule",{value:!0}),a);var I={};module.exports=b(I);
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/biz-components/TabWithImage/types.ts"],
4
+ "sourcesContent": ["export interface TabWithImageDataItem {\n /** \u684C\u9762\u7AEF\u56FE\u7247 URL */\n image: string\n /** \u5E73\u677F\u7AEF\u56FE\u7247 URL */\n imgPad?: string\n /** \u79FB\u52A8\u7AEF\u56FE\u7247 URL */\n imageMob?: string\n /** Tab \u6807\u9898 */\n title: string\n}\n\nexport interface TabWithImageProps {\n data: {\n /** \u4E3B\u6807\u9898 */\n title: string\n /** \u526F\u6807\u9898\uFF08\u53EF\u9009\uFF09 */\n subtitle?: string\n /** \u63CF\u8FF0\u6587\u672C */\n desc: string\n /** \u9ED8\u8BA4\u56FE\u7247 URL\uFF08\u53EF\u9009\uFF09 */\n imageUrl?: string\n /** \u9ED8\u8BA4\u79FB\u52A8\u7AEF\u56FE\u7247 URL\uFF08\u53EF\u9009\uFF09 */\n mobImageUrl?: string\n /** \u6570\u636E\u5217\u8868 */\n datalist: TabWithImageDataItem[]\n }\n /** \u81EA\u5B9A\u4E49\u7C7B\u540D */\n className?: string\n}\n"],
5
+ "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
+ "names": ["types_exports", "__toCommonJS"]
7
+ }
@@ -0,0 +1,7 @@
1
+ import type { TabsGroupProps } from './types.js';
2
+ import React from 'react';
3
+ declare const _default: React.ForwardRefExoticComponent<Omit<Omit<TabsGroupProps & React.RefAttributes<HTMLDivElement>, keyof import("../../shared/Styles.js").StylesProps> & Partial<import("../../shared/Styles.js").StylesProps & import("../../shared/Styles.js").ContainerProps> & {
4
+ className?: string;
5
+ data?: Record<string, any>;
6
+ }, "ref"> & React.RefAttributes<any>>;
7
+ export default _default;
@@ -0,0 +1,2 @@
1
+ "use strict";"use client";var N=Object.create;var o=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var v=Object.getOwnPropertyNames;var P=Object.getPrototypeOf,d=Object.prototype.hasOwnProperty;var h=(a,e)=>{for(var s in e)o(a,s,{get:e[s],enumerable:!0})},n=(a,e,s,m)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of v(e))!d.call(a,i)&&i!==s&&o(a,i,{get:()=>e[i],enumerable:!(m=g(e,i))||m.enumerable});return a};var p=(a,e,s)=>(s=a!=null?N(P(a)):{},n(e||!a||!a.__esModule?o(s,"default",{value:a,enumerable:!0}):s,a)),y=a=>n(o({},"__esModule",{value:!0}),a);var C={};h(C,{default:()=>L});module.exports=y(C);var r=require("react/jsx-runtime"),l=require("../../shared/Styles.js"),b=p(require("../../components/tabs.js")),c=require("../../helpers/index.js"),u=p(require("react"));const k=u.default.forwardRef(({data:a,className:e},s)=>{const{theme:m,shape:i,align:f,tabs:T}=a;return(0,r.jsx)("section",{ref:s,className:(0,c.cn)(m==="dark"?"aiui-dark":"",e),children:(0,r.jsxs)(b.Tabs,{shape:i,align:f,defaultValue:T[0].tabName,children:[(0,r.jsx)(b.TabsList,{className:"tabs-list",children:T.map(t=>(0,r.jsx)(b.TabsTrigger,{value:t.tabName,className:"tabs-trigger",children:t.tabName},t.tabName))}),T.map(t=>(0,r.jsx)(b.TabsContent,{value:t.tabName,className:"tabs-content",children:t.children(t.tabContent?.[0])},t.tabName))]})})});var L=(0,l.withLayout)(k);
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/biz-components/TabsGroup/index.tsx"],
4
+ "sourcesContent": ["'use client'\nimport { withLayout } from '../../shared/Styles.js'\nimport * as TabsPrimitive from '../../components/tabs.js'\nimport { cn } from '../../helpers/index.js'\nimport type { TabsGroupProps } from './types.js'\nimport React from 'react'\n\nconst TabsGroup = React.forwardRef<HTMLDivElement, TabsGroupProps>(({ data, className }, forwardedRef) => {\n const { theme, shape, align, tabs } = data\n\n return (\n <section ref={forwardedRef} className={cn(theme === 'dark' ? 'aiui-dark' : '', className)}>\n <TabsPrimitive.Tabs shape={shape} align={align} defaultValue={tabs[0].tabName}>\n <TabsPrimitive.TabsList className=\"tabs-list\">\n {tabs.map(tab => (\n <TabsPrimitive.TabsTrigger key={tab.tabName} value={tab.tabName} className=\"tabs-trigger\">\n {tab.tabName}\n </TabsPrimitive.TabsTrigger>\n ))}\n </TabsPrimitive.TabsList>\n {tabs.map(tab => (\n <TabsPrimitive.TabsContent key={tab.tabName} value={tab.tabName} className=\"tabs-content\">\n {tab.children(tab.tabContent?.[0])}\n </TabsPrimitive.TabsContent>\n ))}\n </TabsPrimitive.Tabs>\n </section>\n )\n})\n\nexport default withLayout(TabsGroup)\n"],
5
+ "mappings": "ukBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,IAAA,eAAAC,EAAAH,GAYM,IAAAI,EAAA,6BAXNC,EAA2B,kCAC3BC,EAA+B,uCAC/BC,EAAmB,kCAEnBC,EAAkB,oBAElB,MAAMC,EAAY,EAAAC,QAAM,WAA2C,CAAC,CAAE,KAAAC,EAAM,UAAAC,CAAU,EAAGC,IAAiB,CACxG,KAAM,CAAE,MAAAC,EAAO,MAAAC,EAAO,MAAAC,EAAO,KAAAC,CAAK,EAAIN,EAEtC,SACE,OAAC,WAAQ,IAAKE,EAAc,aAAW,MAAGC,IAAU,OAAS,YAAc,GAAIF,CAAS,EACtF,oBAACN,EAAc,KAAd,CAAmB,MAAOS,EAAO,MAAOC,EAAO,aAAcC,EAAK,CAAC,EAAE,QACpE,oBAACX,EAAc,SAAd,CAAuB,UAAU,YAC/B,SAAAW,EAAK,IAAIC,MACR,OAACZ,EAAc,YAAd,CAA4C,MAAOY,EAAI,QAAS,UAAU,eACxE,SAAAA,EAAI,SADyBA,EAAI,OAEpC,CACD,EACH,EACCD,EAAK,IAAIC,MACR,OAACZ,EAAc,YAAd,CAA4C,MAAOY,EAAI,QAAS,UAAU,eACxE,SAAAA,EAAI,SAASA,EAAI,aAAa,CAAC,CAAC,GADHA,EAAI,OAEpC,CACD,GACH,EACF,CAEJ,CAAC,EAED,IAAOhB,KAAQ,cAAWO,CAAS",
6
+ "names": ["TabsGroup_exports", "__export", "TabsGroup_default", "__toCommonJS", "import_jsx_runtime", "import_Styles", "TabsPrimitive", "import_helpers", "import_react", "TabsGroup", "React", "data", "className", "forwardedRef", "theme", "shape", "align", "tabs", "tab"]
7
+ }
@@ -0,0 +1,16 @@
1
+ import type React from 'react';
2
+ import type { Align, Shape, Theme } from '../../types/props.js';
3
+ export type TabsGroupProps = {
4
+ data: {
5
+ sectionTitle?: string;
6
+ theme: Theme;
7
+ shape: Shape;
8
+ align: Align;
9
+ tabs: {
10
+ tabName: string;
11
+ tabContent: any[];
12
+ children: (data: any) => React.ReactNode;
13
+ }[];
14
+ };
15
+ className?: string;
16
+ };
@@ -0,0 +1,2 @@
1
+ "use strict";var r=Object.defineProperty;var n=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var o=Object.prototype.hasOwnProperty;var m=(t,e,s,p)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of i(e))!o.call(t,a)&&a!==s&&r(t,a,{get:()=>e[a],enumerable:!(p=n(e,a))||p.enumerable});return t};var c=t=>m(r({},"__esModule",{value:!0}),t);var h={};module.exports=c(h);
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/biz-components/TabsGroup/types.ts"],
4
+ "sourcesContent": ["import type React from 'react'\nimport type { Align, Shape, Theme } from '../../types/props.js'\n\nexport type TabsGroupProps = {\n data: {\n sectionTitle?: string\n theme: Theme\n shape: Shape\n align: Align\n tabs: {\n tabName: string\n tabContent: any[]\n children: (data: any) => React.ReactNode\n }[]\n }\n className?: string\n}\n"],
5
+ "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
+ "names": ["types_exports", "__toCommonJS"]
7
+ }
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import type { TabsWithMediaProps } from './types.js';
3
+ declare const _default: React.ForwardRefExoticComponent<Omit<Omit<TabsWithMediaProps & React.RefAttributes<HTMLDivElement>, keyof import("../../shared/Styles.js").StylesProps> & Partial<import("../../shared/Styles.js").StylesProps & import("../../shared/Styles.js").ContainerProps> & {
4
+ className?: string;
5
+ data?: Record<string, any>;
6
+ }, "ref"> & React.RefAttributes<any>>;
7
+ export default _default;
@@ -0,0 +1,2 @@
1
+ "use strict";"use client";var O=Object.create;var T=Object.defineProperty;var Q=Object.getOwnPropertyDescriptor;var G=Object.getOwnPropertyNames;var J=Object.getPrototypeOf,K=Object.prototype.hasOwnProperty;var X=(s,r)=>{for(var c in r)T(s,c,{get:r[c],enumerable:!0})},W=(s,r,c,v)=>{if(r&&typeof r=="object"||typeof r=="function")for(let d of G(r))!K.call(s,d)&&d!==c&&T(s,d,{get:()=>r[d],enumerable:!(v=Q(r,d))||v.enumerable});return s};var Y=(s,r,c)=>(c=s!=null?O(J(s)):{},W(r||!s||!s.__esModule?T(c,"default",{value:s,enumerable:!0}):c,s)),Z=s=>W(T({},"__esModule",{value:!0}),s);var oe={};X(oe,{default:()=>ie});module.exports=Z(oe);var i=require("react/jsx-runtime"),n=Y(require("react")),u=require("../../components/index.js"),f=require("../../helpers/utils.js"),j=require("../../shared/Styles.js"),F=require("../../hooks/useExposure.js"),k=require("swiper/react"),I=require("swiper/modules"),N=require("framer-motion"),A=require("react-responsive");const $="video",ee="tabs_with_media",te=[{time:2.4,point:2.4,highlightIdx:0},{time:2.5,point:4.9,highlightIdx:1},{time:2.5,point:7.4,highlightIdx:2},{time:2.8,point:10.2,highlightIdx:3},{time:2.6,point:12.8,highlightIdx:4},{time:3.2,point:16,highlightIdx:5}],z=n.default.forwardRef(({data:s,className:r},c)=>{const{title:v,poster:d,videoUrl:U,mobvideoUrl:B,items:y=[],timeIdx:p=te}=s,[E,V]=(0,n.useState)(null),S=(0,n.useRef)([]),R=(0,n.useRef)(null),b=(0,n.useRef)(null),L=(0,n.useRef)(null);(0,F.useExposure)(L,{componentType:$,componentName:ee,componentTitle:v}),(0,n.useImperativeHandle)(c,()=>L.current);const ne=e=>{const o=R.current,l=S.current[e];if(o&&l){const t=o.getBoundingClientRect(),w=l.getBoundingClientRect().left-t.left-o.clientWidth/2+l.clientWidth/2;o.scrollTo({left:o.scrollLeft+w,behavior:"smooth"})}},C=(0,A.useMediaQuery)({query:"(max-width: 768px)"}),[se,M,_,x,q]=(0,n.useMemo)(()=>{const l=y.length,t=y?.map((a,m)=>({...a,key:m,index:m}))||[];return[t,t.concat(t),5,2,l]},[y,C]),[g,D]=(0,n.useState)(x),[h,H]=(0,n.useState)(M.slice(0,_)),P=(e,o,l)=>{if(e!==g&&o!==x){if(o>x){const t=o-x,a=[...h];a.splice(0,t);const m=h[h.length-1]?.key+1,w=[...M].splice(m,t);a.push(...w),H([...a])}if(o<x){const t=x-o,a=[...h];a.splice(-t);const m=h[0]?.key,w=[...M].splice(q+m-t,t);a.unshift(...w),H([...a])}if(D(e),E?.slideTo(e),!l){let t=0;p.forEach(a=>{a.highlightIdx<e&&(t+=a.time)}),b.current&&(b.current.currentTime=t)}}};return(0,n.useEffect)(()=>{const e=b.current;if(!e)return;const o=()=>{const l=e.currentTime;for(let t=0;t<p.length;t++){const a=t===0?0:p[t-1].point;if(l>=a&&l<p[t].point){P(p[t].highlightIdx,p[t].highlightIdx,!0);break}}l>=p[p.length-1].point&&(e.currentTime=0,e.play())};return e.addEventListener("timeupdate",o),()=>{e.removeEventListener("timeupdate",o)}},[E,p]),(0,i.jsxs)("section",{ref:L,"data-ui-component-id":"TabsWithMedia",className:(0,f.cn)("flex flex-col overflow-hidden text-[#fff] sm:overflow-visible",r),children:[(0,i.jsx)(u.Heading,{as:"h3",size:4,html:v,className:"text-center"}),(0,i.jsx)("div",{className:" relative w-full overflow-x-auto scrollbar-hidden sm:overflow-visible",children:(0,i.jsx)("div",{className:(0,f.cn)("mx-auto mt-[16px] w-full max-w-[824px] tablet:w-fit"),children:(0,i.jsx)("div",{className:(0,f.cn)("flex translate-x-0 items-center justify-center gap-[16px] transition-all md:gap-[8px]"),ref:R,children:(0,i.jsx)(N.AnimatePresence,{mode:"popLayout",children:h?.map((e,o)=>(0,i.jsx)(N.motion.div,{layout:!0,ref:l=>{S.current[e?.index]=l},onClick:()=>{P(e?.key,o)},className:"min-w-[28px] flex-none cursor-pointer overflow-hidden sm:overflow-visible",initial:{opacity:1},animate:{opacity:1},exit:{opacity:0},transition:{duration:.3,ease:"easeOut"},children:(0,i.jsx)("div",{className:"flex items-center justify-between",children:(0,i.jsxs)("div",{className:(0,f.cn)("flex",{"flex items-center justify-center gap-[8px] rounded-[48px] bg-[#fff] p-2 md:gap-[4px] md:p-1":g===e?.key}),children:[(0,i.jsx)("div",{className:(0,f.cn)("flex h-[28] w-[28] items-center justify-center rounded-full md:flex-shrink-0 lg-desktop:h-[48px] lg-desktop:w-[48px]",{"h-[28px] w-[28px] bg-[#ccc] bg-opacity-50 lg-desktop:h-[48px] lg-desktop:w-[48px]":g!==e?.index}),style:g===e?.key?{background:"var(--1, linear-gradient(90deg, #3AD1FF 0%, #008CD6 100%))"}:void 0,children:(0,i.jsx)(u.Picture,{source:e?.icon,className:"h-[22px] w-[22px] md:h-[14px] md:w-[14px]"})}),(0,i.jsx)("div",{className:"",children:(0,i.jsx)(u.Heading,{as:"h4",size:2,html:e?.tab,className:(0,f.cn)("dynamic-width-heading line-clamp-1 h-0 w-0 overflow-hidden whitespace-nowrap text-nowrap text-[#000] opacity-0 transition-all duration-300 ease-linear xs:text-[16px] sm:text-[18px]",{"h-auto w-[calc-size(auto,size)] px-[6px] opacity-100":g===e?.key})})})]})})},e?.key))})})})}),(0,i.jsx)("div",{className:"mt-[16px] lg-desktop:mt-[24px]",children:(0,i.jsx)(k.Swiper,{slidesPerView:1,effect:"fade",fadeEffect:{crossFade:!0},modules:[I.Pagination,I.EffectFade],onSlideChange:e=>{const o=e.realIndex;D(o)},onSwiper:e=>V(e),children:y.map((e,o)=>(0,i.jsx)(k.SwiperSlide,{style:{transition:"opacity 1s ease-in-out"},className:"rounded-[26px]",children:(0,i.jsx)("div",{children:(0,i.jsx)(u.Text,{as:"p",size:2,html:e.desc,className:"text-center desktop:text-[20px] lg-desktop:text-[18px]"})})},o))})}),(0,i.jsx)("div",{className:"mt-[24px] overflow-hidden rounded-[22px] laptop:mt-[32px] desktop:mt-[40px] lg-desktop:mt-[64px]",children:(0,i.jsx)("video",{className:"mx-auto h-[360px] w-fit desktop:h-[448px] lg-desktop:h-[560px]",src:C?B:U,poster:d,playsInline:!0,autoPlay:!0,muted:!0,loop:!0,ref:b})})]})});z.displayName="TabsWithMedia";var ie=(0,j.withLayout)(z);
2
+ //# sourceMappingURL=TabsWithMedia.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/biz-components/TabsWithMedia/TabsWithMedia.tsx"],
4
+ "sourcesContent": ["'use client'\nimport React, { useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react'\nimport { Heading, Picture, Text } from '../../components/index.js'\nimport { cn } from '../../helpers/utils.js'\nimport { withLayout } from '../../shared/Styles.js'\nimport { useExposure } from '../../hooks/useExposure.js'\nimport type { TabsWithMediaProps, TabItem, TimeIndex } from './types.js'\nimport { Swiper, SwiperSlide } from 'swiper/react'\nimport { Pagination, EffectFade } from 'swiper/modules'\nimport type { Swiper as SwiperType } from 'swiper'\nimport { motion, AnimatePresence } from 'framer-motion'\nimport { useMediaQuery } from 'react-responsive'\n\nconst componentType = 'video'\nconst componentName = 'tabs_with_media'\n\n// \u9ED8\u8BA4\u65F6\u95F4\u70B9\u914D\u7F6E\nconst defaultTimeIdx: TimeIndex[] = [\n { time: 2.4, point: 2.4, highlightIdx: 0 },\n { time: 2.5, point: 4.9, highlightIdx: 1 },\n { time: 2.5, point: 7.4, highlightIdx: 2 },\n { time: 2.8, point: 10.2, highlightIdx: 3 },\n { time: 2.6, point: 12.8, highlightIdx: 4 },\n { time: 3.2, point: 16, highlightIdx: 5 },\n]\n\nconst TabsWithMedia = React.forwardRef<HTMLDivElement, TabsWithMediaProps>(({ data, className }, ref) => {\n const { title, poster, videoUrl, mobvideoUrl, items = [], timeIdx = defaultTimeIdx } = data\n\n const [swiper, setSwiper] = useState<SwiperType | null>(null)\n const tabRefs = useRef<(HTMLDivElement | null)[]>([])\n const scrollContainerRef = useRef<HTMLDivElement>(null)\n const videoRef = useRef<HTMLVideoElement>(null)\n const boxRef = useRef<HTMLDivElement>(null)\n\n useExposure(boxRef, {\n componentType,\n componentName,\n componentTitle: title,\n })\n\n useImperativeHandle(ref, () => boxRef.current as HTMLDivElement)\n\n const scrollToTabCenter = (index: number) => {\n const container = scrollContainerRef.current\n const tab = tabRefs.current[index]\n\n if (container && tab) {\n const containerRect = container.getBoundingClientRect()\n const tabRect = tab.getBoundingClientRect()\n const offset = tabRect.left - containerRect.left\n const scroll = offset - container.clientWidth / 2 + tab.clientWidth / 2\n\n container.scrollTo({\n left: container.scrollLeft + scroll,\n behavior: 'smooth',\n })\n }\n }\n\n const isMob = useMediaQuery({ query: '(max-width: 768px)' })\n\n const [list, listDouble, row, center, listLength] = useMemo(() => {\n const row = 5\n const center = 2\n const listLength = items.length\n\n const list =\n items?.map((item: TabItem, index: number) => {\n return {\n ...item,\n key: index,\n index: index,\n }\n }) || []\n\n return [list, list.concat(list), row, center, listLength]\n }, [items, isMob])\n\n const [idx, setIdx] = useState(center)\n\n const [cureentList, setCureentList] = useState(listDouble.slice(0, row))\n\n // \u70B9\u51FB tab \u8DF3\u8F6C\u5BF9\u5E94\u89C6\u9891\u4F4D\u7F6E\n const handleNavClick = (key: number, index: number, isAuto?: boolean) => {\n if (key === idx) return\n if (index === center) return\n if (index > center) {\n const gap = index - center\n const copy = [...cureentList]\n copy.splice(0, gap)\n const lastkey = (cureentList[cureentList.length - 1] as any)?.key + 1\n const add = [...listDouble].splice(lastkey, gap)\n copy.push(...add)\n setCureentList([...copy])\n }\n if (index < center) {\n const gap = center - index\n const copy = [...cureentList]\n copy.splice(-gap)\n const firstkey = (cureentList[0] as any)?.key\n const add = [...listDouble].splice(listLength + firstkey - gap, gap)\n copy.unshift(...add)\n setCureentList([...copy])\n }\n\n setIdx(key)\n swiper?.slideTo(key)\n\n if (!isAuto) {\n let time = 0\n timeIdx.forEach((item) => {\n if (item.highlightIdx < key) {\n time += item.time\n }\n })\n if (videoRef.current) {\n videoRef.current.currentTime = time\n }\n }\n }\n\n // \u64AD\u653E\u65F6\u6839\u636E\u65F6\u95F4\u5207\u6362 Swiper + tab\n useEffect(() => {\n const video = videoRef.current\n if (!video) return\n\n const handleTimeUpdate = () => {\n const currentTime = video.currentTime\n\n // \u81EA\u52A8\u5207\u6362\u5185\u5BB9\n for (let i = 0; i < timeIdx.length; i++) {\n const prev = i === 0 ? 0 : timeIdx[i - 1].point\n if (currentTime >= prev && currentTime < timeIdx[i].point) {\n handleNavClick(timeIdx[i].highlightIdx, timeIdx[i].highlightIdx, true)\n break\n }\n }\n\n // \u4FEE\u590D\uFF1A\u64AD\u653E\u5230\u6700\u540E\u540E\u81EA\u52A8\u5F52\u96F6\u5E76\u91CD\u65B0\u64AD\u653E\n if (currentTime >= timeIdx[timeIdx.length - 1].point) {\n video.currentTime = 0\n video.play()\n }\n }\n\n video.addEventListener('timeupdate', handleTimeUpdate)\n return () => {\n video.removeEventListener('timeupdate', handleTimeUpdate)\n }\n }, [swiper, timeIdx])\n\n return (\n <section\n ref={boxRef}\n data-ui-component-id=\"TabsWithMedia\"\n className={cn('flex flex-col overflow-hidden text-[#fff] sm:overflow-visible', className)}\n >\n <Heading as=\"h3\" size={4} html={title} className=\"text-center\" />\n <div className=\" relative w-full overflow-x-auto scrollbar-hidden sm:overflow-visible\">\n <div className={cn('mx-auto mt-[16px] w-full max-w-[824px] tablet:w-fit')}>\n <div\n className={cn(\n 'flex translate-x-0 items-center justify-center gap-[16px] transition-all md:gap-[8px]'\n )}\n ref={scrollContainerRef}\n >\n <AnimatePresence mode=\"popLayout\">\n {cureentList?.map((item: any, index: number) => (\n <motion.div\n layout\n key={item?.key}\n ref={(el) => {\n tabRefs.current[item?.index] = el\n }}\n onClick={() => {\n handleNavClick(item?.key, index)\n }}\n className=\"min-w-[28px] flex-none cursor-pointer overflow-hidden sm:overflow-visible\"\n initial={{ opacity: 1 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n transition={{\n duration: 0.3,\n ease: 'easeOut',\n }}\n >\n <div className=\"flex items-center justify-between\">\n <div\n className={cn('flex', {\n 'flex items-center justify-center gap-[8px] rounded-[48px] bg-[#fff] p-2 md:gap-[4px] md:p-1':\n idx === item?.key,\n })}\n >\n <div\n className={cn(\n 'flex h-[28] w-[28] items-center justify-center rounded-full md:flex-shrink-0 lg-desktop:h-[48px] lg-desktop:w-[48px]',\n {\n 'h-[28px] w-[28px] bg-[#ccc] bg-opacity-50 lg-desktop:h-[48px] lg-desktop:w-[48px]':\n idx !== item?.index,\n }\n )}\n style={\n idx === item?.key\n ? {\n background:\n 'var(--1, linear-gradient(90deg, #3AD1FF 0%, #008CD6 100%))',\n }\n : undefined\n }\n >\n <Picture\n source={item?.icon}\n className=\"h-[22px] w-[22px] md:h-[14px] md:w-[14px]\"\n />\n </div>\n\n <div className=\"\">\n <Heading\n as=\"h4\"\n size={2}\n html={item?.tab}\n className={cn(\n 'dynamic-width-heading line-clamp-1 h-0 w-0 overflow-hidden whitespace-nowrap text-nowrap text-[#000] opacity-0 transition-all duration-300 ease-linear xs:text-[16px] sm:text-[18px]',\n {\n 'h-auto w-[calc-size(auto,size)] px-[6px] opacity-100':\n idx === item?.key,\n }\n )}\n />\n </div>\n </div>\n </div>\n </motion.div>\n ))}\n </AnimatePresence>\n </div>\n </div>\n </div>\n <div className=\"mt-[16px] lg-desktop:mt-[24px]\">\n <Swiper\n slidesPerView={1}\n effect=\"fade\"\n fadeEffect={{ crossFade: true }}\n modules={[Pagination, EffectFade]}\n onSlideChange={(swiper) => {\n const newIndex = swiper.realIndex\n setIdx(newIndex)\n }}\n onSwiper={(swiper) => setSwiper(swiper)}\n >\n {items.map((it: TabItem, ind: number) => (\n <SwiperSlide\n key={ind}\n style={{ transition: 'opacity 1s ease-in-out' }}\n className=\"rounded-[26px]\"\n >\n <div>\n <Text\n as=\"p\"\n size={2}\n html={it.desc}\n className=\"text-center desktop:text-[20px] lg-desktop:text-[18px]\"\n />\n </div>\n </SwiperSlide>\n ))}\n </Swiper>\n </div>\n <div className=\"mt-[24px] overflow-hidden rounded-[22px] laptop:mt-[32px] desktop:mt-[40px] lg-desktop:mt-[64px]\">\n <video\n className=\"mx-auto h-[360px] w-fit desktop:h-[448px] lg-desktop:h-[560px]\"\n src={isMob ? mobvideoUrl : videoUrl}\n poster={poster}\n playsInline\n autoPlay\n muted\n loop\n ref={videoRef}\n />\n </div>\n </section>\n )\n})\n\nTabsWithMedia.displayName = 'TabsWithMedia'\n\nexport default withLayout(TabsWithMedia)\n"],
5
+ "mappings": "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",
6
+ "names": ["TabsWithMedia_exports", "__export", "TabsWithMedia_default", "__toCommonJS", "import_jsx_runtime", "import_react", "import_components", "import_utils", "import_Styles", "import_useExposure", "import_modules", "import_framer_motion", "import_react_responsive", "componentType", "componentName", "defaultTimeIdx", "TabsWithMedia", "React", "data", "className", "ref", "title", "poster", "videoUrl", "mobvideoUrl", "items", "timeIdx", "swiper", "setSwiper", "tabRefs", "scrollContainerRef", "videoRef", "boxRef", "scrollToTabCenter", "index", "container", "tab", "containerRect", "scroll", "isMob", "list", "listDouble", "row", "center", "listLength", "item", "idx", "setIdx", "cureentList", "setCureentList", "handleNavClick", "key", "isAuto", "gap", "copy", "lastkey", "add", "firstkey", "time", "video", "handleTimeUpdate", "currentTime", "i", "prev", "el", "newIndex", "it", "ind"]
7
+ }
@@ -0,0 +1,2 @@
1
+ export { default } from './TabsWithMedia.js';
2
+ export type { TabsWithMediaProps, TabItem, TimeIndex } from './types.js';
@@ -0,0 +1,2 @@
1
+ "use strict";var d=Object.create;var r=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var x=Object.getPrototypeOf,T=Object.prototype.hasOwnProperty;var b=(e,t)=>{for(var o in t)r(e,o,{get:t[o],enumerable:!0})},m=(e,t,o,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let p of i(t))!T.call(e,p)&&p!==o&&r(e,p,{get:()=>t[p],enumerable:!(a=f(t,p))||a.enumerable});return e};var y=(e,t,o)=>(o=e!=null?d(x(e)):{},m(t||!e||!e.__esModule?r(o,"default",{value:e,enumerable:!0}):o,e)),I=e=>m(r({},"__esModule",{value:!0}),e);var h={};b(h,{default:()=>s.default});module.exports=I(h);var s=y(require("./TabsWithMedia.js"));
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/biz-components/TabsWithMedia/index.ts"],
4
+ "sourcesContent": ["export { default } from './TabsWithMedia.js'\nexport type { TabsWithMediaProps, TabItem, TimeIndex } from './types.js'\n"],
5
+ "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,wCAAAE,EAAAF,GAAA,IAAAG,EAAwB",
6
+ "names": ["TabsWithMedia_exports", "__export", "__toCommonJS", "import_TabsWithMedia"]
7
+ }
@@ -0,0 +1,40 @@
1
+ export interface TabItem {
2
+ /** Tab 标签文本 */
3
+ tab: string;
4
+ /** 描述文本 */
5
+ desc: string;
6
+ /** Tab 图标 URL */
7
+ icon: string;
8
+ /** 视频封面图 */
9
+ poster?: string;
10
+ /** Tab 图标(可选) */
11
+ tabIcon?: string;
12
+ /** 视频 URL(可选) */
13
+ videoUrl?: string;
14
+ }
15
+ export interface TimeIndex {
16
+ /** 片段时长 */
17
+ time: number;
18
+ /** 时间节点 */
19
+ point: number;
20
+ /** 高亮索引 */
21
+ highlightIdx: number;
22
+ }
23
+ export interface TabsWithMediaProps {
24
+ data: {
25
+ /** 主标题 */
26
+ title: string;
27
+ /** 默认视频封面图 */
28
+ poster?: string;
29
+ /** 桌面端视频 URL */
30
+ videoUrl: string;
31
+ /** 移动端视频 URL */
32
+ mobvideoUrl?: string;
33
+ /** Tab 项列表 */
34
+ items: TabItem[];
35
+ /** 时间点配置(可选,用于视频时间自动切换) */
36
+ timeIdx?: TimeIndex[];
37
+ };
38
+ /** 自定义类名 */
39
+ className?: string;
40
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var n=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var g=Object.getOwnPropertyNames;var o=Object.prototype.hasOwnProperty;var m=(e,t,s,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of g(t))!o.call(e,i)&&i!==s&&n(e,i,{get:()=>t[i],enumerable:!(r=a(t,i))||r.enumerable});return e};var d=e=>m(n({},"__esModule",{value:!0}),e);var b={};module.exports=d(b);
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/biz-components/TabsWithMedia/types.ts"],
4
+ "sourcesContent": ["export interface TabItem {\n /** Tab \u6807\u7B7E\u6587\u672C */\n tab: string\n /** \u63CF\u8FF0\u6587\u672C */\n desc: string\n /** Tab \u56FE\u6807 URL */\n icon: string\n /** \u89C6\u9891\u5C01\u9762\u56FE */\n poster?: string\n /** Tab \u56FE\u6807\uFF08\u53EF\u9009\uFF09 */\n tabIcon?: string\n /** \u89C6\u9891 URL\uFF08\u53EF\u9009\uFF09 */\n videoUrl?: string\n}\n\nexport interface TimeIndex {\n /** \u7247\u6BB5\u65F6\u957F */\n time: number\n /** \u65F6\u95F4\u8282\u70B9 */\n point: number\n /** \u9AD8\u4EAE\u7D22\u5F15 */\n highlightIdx: number\n}\n\nexport interface TabsWithMediaProps {\n data: {\n /** \u4E3B\u6807\u9898 */\n title: string\n /** \u9ED8\u8BA4\u89C6\u9891\u5C01\u9762\u56FE */\n poster?: string\n /** \u684C\u9762\u7AEF\u89C6\u9891 URL */\n videoUrl: string\n /** \u79FB\u52A8\u7AEF\u89C6\u9891 URL */\n mobvideoUrl?: string\n /** Tab \u9879\u5217\u8868 */\n items: TabItem[]\n /** \u65F6\u95F4\u70B9\u914D\u7F6E\uFF08\u53EF\u9009\uFF0C\u7528\u4E8E\u89C6\u9891\u65F6\u95F4\u81EA\u52A8\u5207\u6362\uFF09 */\n timeIdx?: TimeIndex[]\n }\n /** \u81EA\u5B9A\u4E49\u7C7B\u540D */\n className?: string\n}\n"],
5
+ "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
+ "names": ["types_exports", "__toCommonJS"]
7
+ }
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import type { VideoFeatureProps } from './types.js';
3
+ declare const _default: React.ForwardRefExoticComponent<Omit<Omit<VideoFeatureProps & React.RefAttributes<HTMLDivElement>, keyof import("../../shared/Styles.js").StylesProps> & Partial<import("../../shared/Styles.js").StylesProps & import("../../shared/Styles.js").ContainerProps> & {
4
+ className?: string;
5
+ data?: Record<string, any>;
6
+ }, "ref"> & React.RefAttributes<any>>;
7
+ export default _default;
@@ -0,0 +1,2 @@
1
+ "use strict";"use client";var w=Object.create;var d=Object.defineProperty;var H=Object.getOwnPropertyDescriptor;var M=Object.getOwnPropertyNames;var E=Object.getPrototypeOf,R=Object.prototype.hasOwnProperty;var F=(e,t)=>{for(var l in t)d(e,l,{get:t[l],enumerable:!0})},x=(e,t,l,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of M(t))!R.call(e,s)&&s!==l&&d(e,s,{get:()=>t[s],enumerable:!(r=H(t,s))||r.enumerable});return e};var P=(e,t,l)=>(l=e!=null?w(E(e)):{},x(t||!e||!e.__esModule?d(l,"default",{value:e,enumerable:!0}):l,e)),S=e=>x(d({},"__esModule",{value:!0}),e);var U={};F(U,{default:()=>z});module.exports=S(U);var i=require("react/jsx-runtime"),o=P(require("react")),a=require("../../components/index.js"),v=require("../../helpers/utils.js"),b=require("../../shared/Styles.js"),h=require("../../hooks/useExposure.js"),n=require("../../hooks/useIntersectionObserver.js");const I="video",g="video_feature",f=o.default.forwardRef(({data:e,className:t},l)=>{const{title:r,subtitle:s,poster:V,videoUrl:y,mobPoster:k,mobvideoUrl:c}=e,p=(0,o.useRef)(null),m=(0,o.useRef)(null),u=(0,o.useRef)(null),[D,L]=(0,o.useState)(""),[N,T]=(0,o.useState)("");return(0,h.useExposure)(p,{componentType:I,componentName:g,componentTitle:r,componentDescription:s}),(0,o.useImperativeHandle)(l,()=>p.current),(0,n.useIntersectionObserverDelay)(m,{once:!0,threshold:.1,callback:()=>{L(y)}}),(0,n.useIntersectionObserverDelay)(u,{once:!0,threshold:.1,callback:()=>{c&&T(c)}}),(0,i.jsxs)("section",{ref:p,"data-ui-component-id":"VideoFeature",className:(0,v.cn)("flex flex-col items-center rounded-[16px] text-white",t),children:[(0,i.jsx)(a.Heading,{as:"h2",size:4,html:r,className:"w-full text-left laptop:text-center"}),(0,i.jsx)(a.Text,{as:"p",size:4,html:s,className:"mt-[4px] w-full text-left text-[14px] tablet:text-[14px] laptop:mt-[8px] laptop:text-center laptop:text-[14px] desktop:text-[16px] lg-desktop:text-[18px]"}),(0,i.jsxs)("div",{className:"mt-[24px] overflow-hidden rounded-[16px] xl:h-[360px]",children:[(0,i.jsx)("div",{ref:m,children:(0,i.jsx)("video",{playsInline:!0,autoPlay:!0,muted:!0,poster:V,src:D,loop:!0,className:"hidden h-full w-full object-cover xl:h-[360px] tablet:block"})}),(0,i.jsx)("div",{ref:u,children:(0,i.jsx)("video",{playsInline:!0,autoPlay:!0,muted:!0,poster:k,src:N,loop:!0,className:"block tablet:hidden"})})]})]})});f.displayName="VideoFeature";var z=(0,b.withLayout)(f);
2
+ //# sourceMappingURL=VideoFeature.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/biz-components/VideoFeature/VideoFeature.tsx"],
4
+ "sourcesContent": ["'use client'\nimport React, { useImperativeHandle, useRef, useState } from 'react'\nimport { Heading, Text } from '../../components/index.js'\nimport { cn } from '../../helpers/utils.js'\nimport { withLayout } from '../../shared/Styles.js'\nimport { useExposure } from '../../hooks/useExposure.js'\nimport { useIntersectionObserverDelay } from '../../hooks/useIntersectionObserver.js'\nimport type { VideoFeatureProps } from './types.js'\n\nconst componentType = 'video'\nconst componentName = 'video_feature'\n\nconst VideoFeature = React.forwardRef<HTMLDivElement, VideoFeatureProps>(({ data, className }, ref) => {\n const { title, subtitle, poster, videoUrl, mobPoster, mobvideoUrl } = data\n\n const boxRef = useRef<HTMLDivElement>(null)\n const desktopVideoRef = useRef<HTMLDivElement>(null)\n const mobileVideoRef = useRef<HTMLDivElement>(null)\n\n // \u63A7\u5236\u89C6\u9891\u662F\u5426\u52A0\u8F7D\n const [loadedDesktopVideoSrc, setLoadedDesktopVideoSrc] = useState('')\n const [loadedMobileVideoSrc, setLoadedMobileVideoSrc] = useState('')\n\n useExposure(boxRef, {\n componentType,\n componentName,\n componentTitle: title,\n componentDescription: subtitle,\n })\n\n useImperativeHandle(ref, () => boxRef.current as HTMLDivElement)\n\n // \u684C\u9762\u7AEF\u89C6\u9891\u61D2\u52A0\u8F7D\n useIntersectionObserverDelay(desktopVideoRef, {\n once: true,\n threshold: 0.1,\n callback: () => {\n setLoadedDesktopVideoSrc(videoUrl)\n },\n })\n\n // \u79FB\u52A8\u7AEF\u89C6\u9891\u61D2\u52A0\u8F7D\n useIntersectionObserverDelay(mobileVideoRef, {\n once: true,\n threshold: 0.1,\n callback: () => {\n if (mobvideoUrl) {\n setLoadedMobileVideoSrc(mobvideoUrl)\n }\n },\n })\n\n return (\n <section\n ref={boxRef}\n data-ui-component-id=\"VideoFeature\"\n className={cn('flex flex-col items-center rounded-[16px] text-white', className)}\n >\n <Heading as={'h2'} size={4} html={title} className=\"w-full text-left laptop:text-center\" />\n <Text\n as={'p'}\n size={4}\n html={subtitle}\n className=\"mt-[4px] w-full text-left text-[14px] tablet:text-[14px] laptop:mt-[8px] laptop:text-center laptop:text-[14px] desktop:text-[16px] lg-desktop:text-[18px]\"\n />\n <div className=\"mt-[24px] overflow-hidden rounded-[16px] xl:h-[360px]\">\n <div ref={desktopVideoRef}>\n <video\n playsInline\n autoPlay\n muted\n poster={poster}\n src={loadedDesktopVideoSrc}\n loop\n className=\"hidden h-full w-full object-cover xl:h-[360px] tablet:block\"\n ></video>\n </div>\n <div ref={mobileVideoRef}>\n <video\n playsInline\n autoPlay\n muted\n poster={mobPoster}\n src={loadedMobileVideoSrc}\n loop\n className=\"block tablet:hidden\"\n ></video>\n </div>\n </div>\n </section>\n )\n})\n\nVideoFeature.displayName = 'VideoFeature'\n\nexport default withLayout(VideoFeature)\n"],
5
+ "mappings": "ukBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,IAAA,eAAAC,EAAAH,GA0DM,IAAAI,EAAA,6BAzDNC,EAA6D,oBAC7DC,EAA8B,qCAC9BC,EAAmB,kCACnBC,EAA2B,kCAC3BC,EAA4B,sCAC5BC,EAA6C,kDAG7C,MAAMC,EAAgB,QAChBC,EAAgB,gBAEhBC,EAAe,EAAAC,QAAM,WAA8C,CAAC,CAAE,KAAAC,EAAM,UAAAC,CAAU,EAAGC,IAAQ,CACrG,KAAM,CAAE,MAAAC,EAAO,SAAAC,EAAU,OAAAC,EAAQ,SAAAC,EAAU,UAAAC,EAAW,YAAAC,CAAY,EAAIR,EAEhES,KAAS,UAAuB,IAAI,EACpCC,KAAkB,UAAuB,IAAI,EAC7CC,KAAiB,UAAuB,IAAI,EAG5C,CAACC,EAAuBC,CAAwB,KAAI,YAAS,EAAE,EAC/D,CAACC,EAAsBC,CAAuB,KAAI,YAAS,EAAE,EAEnE,wBAAYN,EAAQ,CAClB,cAAAb,EACA,cAAAC,EACA,eAAgBM,EAChB,qBAAsBC,CACxB,CAAC,KAED,uBAAoBF,EAAK,IAAMO,EAAO,OAAyB,KAG/D,gCAA6BC,EAAiB,CAC5C,KAAM,GACN,UAAW,GACX,SAAU,IAAM,CACdG,EAAyBP,CAAQ,CACnC,CACF,CAAC,KAGD,gCAA6BK,EAAgB,CAC3C,KAAM,GACN,UAAW,GACX,SAAU,IAAM,CACVH,GACFO,EAAwBP,CAAW,CAEvC,CACF,CAAC,KAGC,QAAC,WACC,IAAKC,EACL,uBAAqB,eACrB,aAAW,MAAG,uDAAwDR,CAAS,EAE/E,oBAAC,WAAQ,GAAI,KAAM,KAAM,EAAG,KAAME,EAAO,UAAU,sCAAsC,KACzF,OAAC,QACC,GAAI,IACJ,KAAM,EACN,KAAMC,EACN,UAAU,4JACZ,KACA,QAAC,OAAI,UAAU,wDACb,oBAAC,OAAI,IAAKM,EACR,mBAAC,SACC,YAAW,GACX,SAAQ,GACR,MAAK,GACL,OAAQL,EACR,IAAKO,EACL,KAAI,GACJ,UAAU,8DACX,EACH,KACA,OAAC,OAAI,IAAKD,EACR,mBAAC,SACC,YAAW,GACX,SAAQ,GACR,MAAK,GACL,OAAQJ,EACR,IAAKO,EACL,KAAI,GACJ,UAAU,sBACX,EACH,GACF,GACF,CAEJ,CAAC,EAEDhB,EAAa,YAAc,eAE3B,IAAOX,KAAQ,cAAWW,CAAY",
6
+ "names": ["VideoFeature_exports", "__export", "VideoFeature_default", "__toCommonJS", "import_jsx_runtime", "import_react", "import_components", "import_utils", "import_Styles", "import_useExposure", "import_useIntersectionObserver", "componentType", "componentName", "VideoFeature", "React", "data", "className", "ref", "title", "subtitle", "poster", "videoUrl", "mobPoster", "mobvideoUrl", "boxRef", "desktopVideoRef", "mobileVideoRef", "loadedDesktopVideoSrc", "setLoadedDesktopVideoSrc", "loadedMobileVideoSrc", "setLoadedMobileVideoSrc"]
7
+ }
@@ -0,0 +1,2 @@
1
+ export { default } from './VideoFeature.js';
2
+ export type { VideoFeatureProps } from './types.js';
@@ -0,0 +1,2 @@
1
+ "use strict";var d=Object.create;var p=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var x=Object.getPrototypeOf,y=Object.prototype.hasOwnProperty;var i=(e,o)=>{for(var r in o)p(e,r,{get:o[r],enumerable:!0})},s=(e,o,r,f)=>{if(o&&typeof o=="object"||typeof o=="function")for(let t of u(o))!y.call(e,t)&&t!==r&&p(e,t,{get:()=>o[t],enumerable:!(f=m(o,t))||f.enumerable});return e};var j=(e,o,r)=>(r=e!=null?d(x(e)):{},s(o||!e||!e.__esModule?p(r,"default",{value:e,enumerable:!0}):r,e)),l=e=>s(p({},"__esModule",{value:!0}),e);var F={};i(F,{default:()=>a.default});module.exports=l(F);var a=j(require("./VideoFeature.js"));
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/biz-components/VideoFeature/index.ts"],
4
+ "sourcesContent": ["export { default } from './VideoFeature.js'\nexport type { VideoFeatureProps } from './types.js'\n"],
5
+ "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,wCAAAE,EAAAF,GAAA,IAAAG,EAAwB",
6
+ "names": ["VideoFeature_exports", "__export", "__toCommonJS", "import_VideoFeature"]
7
+ }
@@ -0,0 +1,18 @@
1
+ export interface VideoFeatureProps {
2
+ data: {
3
+ /** 主标题 */
4
+ title: string;
5
+ /** 副标题/描述 */
6
+ subtitle?: string;
7
+ /** 桌面端视频 URL */
8
+ videoUrl: string;
9
+ /** 桌面端视频封面图 */
10
+ poster?: string;
11
+ /** 移动端视频 URL */
12
+ mobvideoUrl?: string;
13
+ /** 移动端视频封面图 */
14
+ mobPoster?: string;
15
+ };
16
+ /** 自定义类名 */
17
+ className?: string;
18
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var s=Object.defineProperty;var n=Object.getOwnPropertyDescriptor;var g=Object.getOwnPropertyNames;var a=Object.prototype.hasOwnProperty;var l=(r,t,o,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let e of g(t))!a.call(r,e)&&e!==o&&s(r,e,{get:()=>t[e],enumerable:!(i=n(t,e))||i.enumerable});return r};var d=r=>l(s({},"__esModule",{value:!0}),r);var b={};module.exports=d(b);
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/biz-components/VideoFeature/types.ts"],
4
+ "sourcesContent": ["export interface VideoFeatureProps {\n data: {\n /** \u4E3B\u6807\u9898 */\n title: string\n /** \u526F\u6807\u9898/\u63CF\u8FF0 */\n subtitle?: string\n /** \u684C\u9762\u7AEF\u89C6\u9891 URL */\n videoUrl: string\n /** \u684C\u9762\u7AEF\u89C6\u9891\u5C01\u9762\u56FE */\n poster?: string\n /** \u79FB\u52A8\u7AEF\u89C6\u9891 URL */\n mobvideoUrl?: string\n /** \u79FB\u52A8\u7AEF\u89C6\u9891\u5C01\u9762\u56FE */\n mobPoster?: string\n }\n /** \u81EA\u5B9A\u4E49\u7C7B\u540D */\n className?: string\n}\n"],
5
+ "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
+ "names": ["types_exports", "__toCommonJS"]
7
+ }