@anker-in/headless-ui 1.1.87 → 1.1.88

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 (412) hide show
  1. package/dist/cjs/biz-components/AccordionCards/index.d.ts +1 -1
  2. package/dist/cjs/biz-components/ActiveShelf/index.d.ts +1 -1
  3. package/dist/cjs/biz-components/ActivitySchedule/index.d.ts +1 -1
  4. package/dist/cjs/biz-components/AiuiProvider/index.d.ts +6 -0
  5. package/dist/cjs/biz-components/AiuiProvider/index.js +1 -1
  6. package/dist/cjs/biz-components/AiuiProvider/index.js.map +3 -3
  7. package/dist/cjs/biz-components/AnchorNavigation/index.d.ts +1 -1
  8. package/dist/cjs/biz-components/AplusDesc/index.d.ts +1 -1
  9. package/dist/cjs/biz-components/BrandCardLink/BrandCardLink.d.ts +1 -1
  10. package/dist/cjs/biz-components/BrandEquity/BrandEquity.d.ts +1 -1
  11. package/dist/cjs/biz-components/BrandEquity/BrandEquity.js +1 -1
  12. package/dist/cjs/biz-components/BrandEquity/BrandEquity.js.map +3 -3
  13. package/dist/cjs/biz-components/BrandEquity/types.d.ts +8 -0
  14. package/dist/cjs/biz-components/BrandEquity/types.js +1 -1
  15. package/dist/cjs/biz-components/BrandEquity/types.js.map +1 -1
  16. package/dist/cjs/biz-components/Category/index.d.ts +1 -1
  17. package/dist/cjs/biz-components/CreativeModule/index.d.ts +1 -1
  18. package/dist/cjs/biz-components/DownLoad/index.d.ts +1 -1
  19. package/dist/cjs/biz-components/Evaluate/index.d.ts +1 -1
  20. package/dist/cjs/biz-components/EventSchedule/index.d.ts +1 -1
  21. package/dist/cjs/biz-components/Faq/Faq.d.ts +1 -1
  22. package/dist/cjs/biz-components/Faq/Faq.js +1 -1
  23. package/dist/cjs/biz-components/Faq/Faq.js.map +2 -2
  24. package/dist/cjs/biz-components/Faq/types.d.ts +1 -0
  25. package/dist/cjs/biz-components/Faq/types.js +1 -1
  26. package/dist/cjs/biz-components/Faq/types.js.map +1 -1
  27. package/dist/cjs/biz-components/FeatureCards/FeatureCards.d.ts +1 -1
  28. package/dist/cjs/biz-components/FeatureShowcase/FeatureShowcase.d.ts +1 -1
  29. package/dist/cjs/biz-components/FeaturedBlogPosts/index.d.ts +1 -1
  30. package/dist/cjs/biz-components/Features/index.d.ts +1 -1
  31. package/dist/cjs/biz-components/FootCharger/index.d.ts +1 -1
  32. package/dist/cjs/biz-components/FooterNavigation/index.d.ts +1 -1
  33. package/dist/cjs/biz-components/GiftBox/index.d.ts +1 -1
  34. package/dist/cjs/biz-components/GiftShelf/index.d.ts +1 -1
  35. package/dist/cjs/biz-components/GiftTierShelf/index.d.ts +1 -1
  36. package/dist/cjs/biz-components/Graphic/index.d.ts +1 -1
  37. package/dist/cjs/biz-components/GraphicAttractionBlock/index.d.ts +1 -1
  38. package/dist/cjs/biz-components/GraphicMore/index.d.ts +1 -1
  39. package/dist/cjs/biz-components/GraphicOverlay/GraphicOverlay.d.ts +1 -1
  40. package/dist/cjs/biz-components/HeaderNavigation/index.d.ts +1 -1
  41. package/dist/cjs/biz-components/HeroBanner/HeroBanner.d.ts +21 -1
  42. package/dist/cjs/biz-components/HeroBanner/HeroBanner.js +1 -1
  43. package/dist/cjs/biz-components/HeroBanner/HeroBanner.js.map +3 -3
  44. package/dist/cjs/biz-components/HeroBanner/HeroBannerCarousel.d.ts +23 -0
  45. package/dist/cjs/biz-components/HeroBanner/HeroBannerCarousel.js +2 -0
  46. package/dist/cjs/biz-components/HeroBanner/HeroBannerCarousel.js.map +7 -0
  47. package/dist/cjs/biz-components/HeroBanner/index.d.ts +1 -0
  48. package/dist/cjs/biz-components/HeroBanner/index.js +1 -1
  49. package/dist/cjs/biz-components/HeroBanner/index.js.map +1 -1
  50. package/dist/cjs/biz-components/HeroBanner/types.d.ts +73 -0
  51. package/dist/cjs/biz-components/HeroBanner/types.js +1 -1
  52. package/dist/cjs/biz-components/HeroBanner/types.js.map +1 -1
  53. package/dist/cjs/biz-components/ImageOverlayShelf/index.d.ts +2 -2
  54. package/dist/cjs/biz-components/ImageOverlayShelf/index.js +1 -1
  55. package/dist/cjs/biz-components/ImageOverlayShelf/index.js.map +3 -3
  56. package/dist/cjs/biz-components/ImageTextFeature/ImageTextFeature.d.ts +1 -1
  57. package/dist/cjs/biz-components/ImageTextOverlay/index.d.ts +9 -0
  58. package/dist/cjs/biz-components/ImageTextOverlay/index.js +18 -0
  59. package/dist/cjs/biz-components/ImageTextOverlay/index.js.map +7 -0
  60. package/dist/cjs/biz-components/ImageTextOverlay/types.d.ts +58 -0
  61. package/dist/cjs/biz-components/ImageTextOverlay/types.js +2 -0
  62. package/dist/cjs/biz-components/ImageTextOverlay/types.js.map +7 -0
  63. package/dist/cjs/biz-components/ImageWithText/ImageWithText.d.ts +1 -1
  64. package/dist/cjs/biz-components/ImageWithText/ImageWithText.js +1 -1
  65. package/dist/cjs/biz-components/ImageWithText/ImageWithText.js.map +2 -2
  66. package/dist/cjs/biz-components/Ksp/index.d.ts +1 -1
  67. package/dist/cjs/biz-components/Listing/components/PaidShipping/index.d.ts +1 -1
  68. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/BenefitsTab.d.ts +1 -1
  69. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductBundle/index.d.ts +1 -1
  70. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductExchangePurchase/index.d.ts +1 -1
  71. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductFreeGift/index.d.ts +1 -1
  72. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductHighlight/index.d.ts +1 -1
  73. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductOptions/index.d.ts +1 -1
  74. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGallery/index.d.ts +1 -1
  75. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductPaidShipping/index.d.ts +1 -1
  76. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductSummary/index.d.ts +1 -1
  77. package/dist/cjs/biz-components/Listing/components/PurchaseBar/index.d.ts +1 -1
  78. package/dist/cjs/biz-components/LotteryShared/BaseModal.js +1 -1
  79. package/dist/cjs/biz-components/LotteryShared/BaseModal.js.map +2 -2
  80. package/dist/cjs/biz-components/LotteryShared/ChanceMethods.js +1 -1
  81. package/dist/cjs/biz-components/LotteryShared/ChanceMethods.js.map +3 -3
  82. package/dist/cjs/biz-components/LotteryShared/ErrorModal.js +1 -1
  83. package/dist/cjs/biz-components/LotteryShared/ErrorModal.js.map +2 -2
  84. package/dist/cjs/biz-components/LotteryShared/MyRewardsModal.d.ts +33 -0
  85. package/dist/cjs/biz-components/LotteryShared/MyRewardsModal.js +1 -1
  86. package/dist/cjs/biz-components/LotteryShared/MyRewardsModal.js.map +3 -3
  87. package/dist/cjs/biz-components/LotteryShared/PrizePool.js +1 -1
  88. package/dist/cjs/biz-components/LotteryShared/PrizePool.js.map +3 -3
  89. package/dist/cjs/biz-components/LotteryShared/WinnerModal.d.ts +1 -1
  90. package/dist/cjs/biz-components/LotteryShared/WinnerModal.js +1 -1
  91. package/dist/cjs/biz-components/LotteryShared/WinnerModal.js.map +3 -3
  92. package/dist/cjs/biz-components/LotteryShared/types.d.ts +101 -0
  93. package/dist/cjs/biz-components/LotteryShared/types.js +1 -1
  94. package/dist/cjs/biz-components/LotteryShared/types.js.map +2 -2
  95. package/dist/cjs/biz-components/Marquee/Marquee.d.ts +2 -1
  96. package/dist/cjs/biz-components/Marquee/Marquee.js +1 -1
  97. package/dist/cjs/biz-components/Marquee/Marquee.js.map +3 -3
  98. package/dist/cjs/biz-components/MarqueeReview/index.d.ts +1 -1
  99. package/dist/cjs/biz-components/Media/index.d.ts +15 -3
  100. package/dist/cjs/biz-components/Media/index.js +1 -1
  101. package/dist/cjs/biz-components/Media/index.js.map +3 -3
  102. package/dist/cjs/biz-components/MediaEndorsement/index.d.ts +1 -1
  103. package/dist/cjs/biz-components/MediaEndorsement/index.js +2 -2
  104. package/dist/cjs/biz-components/MediaEndorsement/index.js.map +3 -3
  105. package/dist/cjs/biz-components/MediaPlayerBase/index.d.ts +1 -1
  106. package/dist/cjs/biz-components/MediaPlayerBase/index.js +1 -1
  107. package/dist/cjs/biz-components/MediaPlayerBase/index.js.map +3 -3
  108. package/dist/cjs/biz-components/MediaPlayerBase/types.d.ts +26 -0
  109. package/dist/cjs/biz-components/MediaPlayerBase/types.js +1 -1
  110. package/dist/cjs/biz-components/MediaPlayerBase/types.js.map +1 -1
  111. package/dist/cjs/biz-components/MediaPlayerMulti/index.d.ts +1 -1
  112. package/dist/cjs/biz-components/MediaPlayerSticky/index.d.ts +1 -1
  113. package/dist/cjs/biz-components/MediaSceneSwitcher/MediaSceneSwitcher.d.ts +1 -1
  114. package/dist/cjs/biz-components/MediaSceneSwitcherV2/index.d.ts +1 -1
  115. package/dist/cjs/biz-components/MediaShelf/index.d.ts +1 -1
  116. package/dist/cjs/biz-components/MemberEquity/index.d.ts +1 -1
  117. package/dist/cjs/biz-components/MiniCart/index.js +1 -1
  118. package/dist/cjs/biz-components/MiniCart/index.js.map +2 -2
  119. package/dist/cjs/biz-components/MultiLayoutGraphicBlock/MultiLayoutGraphicBlock.d.ts +1 -1
  120. package/dist/cjs/biz-components/MultiLayoutGraphicBlock/MultiLayoutGraphicBlock.js +1 -1
  121. package/dist/cjs/biz-components/MultiLayoutGraphicBlock/MultiLayoutGraphicBlock.js.map +2 -2
  122. package/dist/cjs/biz-components/NavigationSearch/index.d.ts +1 -1
  123. package/dist/cjs/biz-components/ProductCompare/index.d.ts +1 -1
  124. package/dist/cjs/biz-components/ProductHero/ProductHero.d.ts +1 -1
  125. package/dist/cjs/biz-components/ProductLottery/MediaDrawArea.js +1 -1
  126. package/dist/cjs/biz-components/ProductLottery/MediaDrawArea.js.map +3 -3
  127. package/dist/cjs/biz-components/ProductLottery/index.d.ts +3 -2
  128. package/dist/cjs/biz-components/ProductLottery/index.js +1 -1
  129. package/dist/cjs/biz-components/ProductLottery/index.js.map +3 -3
  130. package/dist/cjs/biz-components/ProductLottery/types.d.ts +75 -89
  131. package/dist/cjs/biz-components/ProductLottery/types.js +1 -1
  132. package/dist/cjs/biz-components/ProductLottery/types.js.map +2 -2
  133. package/dist/cjs/biz-components/ProductNav/ProductNav.d.ts +1 -1
  134. package/dist/cjs/biz-components/PromotionalBar/index.d.ts +3 -2
  135. package/dist/cjs/biz-components/PromotionalBar/index.js +1 -1
  136. package/dist/cjs/biz-components/PromotionalBar/index.js.map +3 -3
  137. package/dist/cjs/biz-components/SceneShelfV2/index.d.ts +113 -0
  138. package/dist/cjs/biz-components/SceneShelfV2/index.js +2 -0
  139. package/dist/cjs/biz-components/SceneShelfV2/index.js.map +7 -0
  140. package/dist/cjs/biz-components/SceneShelfV3/ProductCard.d.ts +89 -0
  141. package/dist/cjs/biz-components/SceneShelfV3/ProductCard.js +2 -0
  142. package/dist/cjs/biz-components/SceneShelfV3/ProductCard.js.map +7 -0
  143. package/dist/cjs/biz-components/SceneShelfV3/index.d.ts +79 -0
  144. package/dist/cjs/biz-components/SceneShelfV3/index.js +2 -0
  145. package/dist/cjs/biz-components/SceneShelfV3/index.js.map +7 -0
  146. package/dist/cjs/biz-components/SceneShelfV3/types.d.ts +19 -0
  147. package/dist/cjs/biz-components/SceneShelfV3/types.js +2 -0
  148. package/dist/cjs/biz-components/SceneShelfV3/types.js.map +7 -0
  149. package/dist/cjs/biz-components/SecondaryBanner/SecondaryBannerCarousel.d.ts +21 -0
  150. package/dist/cjs/biz-components/SecondaryBanner/SecondaryBannerCarousel.js +2 -0
  151. package/dist/cjs/biz-components/SecondaryBanner/SecondaryBannerCarousel.js.map +7 -0
  152. package/dist/cjs/biz-components/SecondaryBanner/index.d.ts +65 -1
  153. package/dist/cjs/biz-components/SecondaryBanner/index.js +1 -1
  154. package/dist/cjs/biz-components/SecondaryBanner/index.js.map +3 -3
  155. package/dist/cjs/biz-components/SelectStore/index.d.ts +1 -1
  156. package/dist/cjs/biz-components/ShelfDisplay/index.d.ts +1 -1
  157. package/dist/cjs/biz-components/Slogan/index.d.ts +1 -1
  158. package/dist/cjs/biz-components/Spacer/index.d.ts +1 -1
  159. package/dist/cjs/biz-components/Specs/index.d.ts +1 -1
  160. package/dist/cjs/biz-components/SpecsComparison/SpecsComparison.d.ts +1 -1
  161. package/dist/cjs/biz-components/TabWithImage/TabWithImage.d.ts +1 -1
  162. package/dist/cjs/biz-components/Tabs/Tabs.d.ts +1 -1
  163. package/dist/cjs/biz-components/TabsGroup/index.d.ts +1 -1
  164. package/dist/cjs/biz-components/TabsWithMedia/TabsWithMedia.d.ts +1 -1
  165. package/dist/cjs/biz-components/ThreeDCarousel/ThreeDCarousel.d.ts +1 -1
  166. package/dist/cjs/biz-components/Title/index.d.ts +1 -1
  167. package/dist/cjs/biz-components/Title/index.js +1 -1
  168. package/dist/cjs/biz-components/Title/index.js.map +3 -3
  169. package/dist/cjs/biz-components/Title/types.d.ts +53 -1
  170. package/dist/cjs/biz-components/Title/types.js +1 -1
  171. package/dist/cjs/biz-components/Title/types.js.map +1 -1
  172. package/dist/cjs/biz-components/VideoFeature/VideoFeature.d.ts +1 -1
  173. package/dist/cjs/biz-components/WheelLottery/BaseModal.js +1 -1
  174. package/dist/cjs/biz-components/WheelLottery/BaseModal.js.map +2 -2
  175. package/dist/cjs/biz-components/WheelLottery/ErrorModal.js +1 -1
  176. package/dist/cjs/biz-components/WheelLottery/ErrorModal.js.map +2 -2
  177. package/dist/cjs/biz-components/WheelLottery/MyRewardsModal.js +1 -1
  178. package/dist/cjs/biz-components/WheelLottery/MyRewardsModal.js.map +2 -2
  179. package/dist/cjs/biz-components/WheelLottery/WinnerModal.js +1 -1
  180. package/dist/cjs/biz-components/WheelLottery/WinnerModal.js.map +2 -2
  181. package/dist/cjs/biz-components/WheelLottery/index.d.ts +2 -1
  182. package/dist/cjs/biz-components/WheelLottery/index.js +1 -1
  183. package/dist/cjs/biz-components/WheelLottery/index.js.map +3 -3
  184. package/dist/cjs/biz-components/WheelLottery/types.d.ts +6 -0
  185. package/dist/cjs/biz-components/WheelLottery/types.js.map +2 -2
  186. package/dist/cjs/biz-components/WhyChoose/WhyChoose.d.ts +1 -1
  187. package/dist/cjs/biz-components/index.d.ts +7 -0
  188. package/dist/cjs/biz-components/index.js +1 -1
  189. package/dist/cjs/biz-components/index.js.map +3 -3
  190. package/dist/cjs/hooks/useExposure.d.ts +4 -3
  191. package/dist/cjs/hooks/useExposure.js +1 -1
  192. package/dist/cjs/hooks/useExposure.js.map +3 -3
  193. package/dist/cjs/hooks/useGridRowCount.d.ts +16 -0
  194. package/dist/cjs/hooks/useGridRowCount.js +2 -0
  195. package/dist/cjs/hooks/useGridRowCount.js.map +7 -0
  196. package/dist/cjs/hooks/useViewItemList.d.ts +21 -0
  197. package/dist/cjs/hooks/useViewItemList.js +2 -0
  198. package/dist/cjs/hooks/useViewItemList.js.map +7 -0
  199. package/dist/cjs/index.d.ts +1 -0
  200. package/dist/cjs/index.js +1 -1
  201. package/dist/cjs/index.js.map +3 -3
  202. package/dist/cjs/shared/Styles.js +1 -1
  203. package/dist/cjs/shared/Styles.js.map +3 -3
  204. package/dist/cjs/shared/trackUrlRef.d.ts +9 -0
  205. package/dist/cjs/shared/trackUrlRef.js +1 -1
  206. package/dist/cjs/shared/trackUrlRef.js.map +3 -3
  207. package/dist/cjs/types/props.d.ts +18 -1
  208. package/dist/cjs/types/props.js +1 -1
  209. package/dist/cjs/types/props.js.map +1 -1
  210. package/dist/esm/biz-components/AccordionCards/index.d.ts +1 -1
  211. package/dist/esm/biz-components/ActiveShelf/index.d.ts +1 -1
  212. package/dist/esm/biz-components/ActivitySchedule/index.d.ts +1 -1
  213. package/dist/esm/biz-components/AiuiProvider/index.d.ts +6 -0
  214. package/dist/esm/biz-components/AiuiProvider/index.js +1 -1
  215. package/dist/esm/biz-components/AiuiProvider/index.js.map +3 -3
  216. package/dist/esm/biz-components/AnchorNavigation/index.d.ts +1 -1
  217. package/dist/esm/biz-components/AplusDesc/index.d.ts +1 -1
  218. package/dist/esm/biz-components/BrandCardLink/BrandCardLink.d.ts +1 -1
  219. package/dist/esm/biz-components/BrandEquity/BrandEquity.d.ts +1 -1
  220. package/dist/esm/biz-components/BrandEquity/BrandEquity.js +1 -1
  221. package/dist/esm/biz-components/BrandEquity/BrandEquity.js.map +3 -3
  222. package/dist/esm/biz-components/BrandEquity/types.d.ts +8 -0
  223. package/dist/esm/biz-components/Category/index.d.ts +1 -1
  224. package/dist/esm/biz-components/CreativeModule/index.d.ts +1 -1
  225. package/dist/esm/biz-components/DownLoad/index.d.ts +1 -1
  226. package/dist/esm/biz-components/Evaluate/index.d.ts +1 -1
  227. package/dist/esm/biz-components/EventSchedule/index.d.ts +1 -1
  228. package/dist/esm/biz-components/Faq/Faq.d.ts +1 -1
  229. package/dist/esm/biz-components/Faq/Faq.js +1 -1
  230. package/dist/esm/biz-components/Faq/Faq.js.map +2 -2
  231. package/dist/esm/biz-components/Faq/types.d.ts +1 -0
  232. package/dist/esm/biz-components/FeatureCards/FeatureCards.d.ts +1 -1
  233. package/dist/esm/biz-components/FeatureShowcase/FeatureShowcase.d.ts +1 -1
  234. package/dist/esm/biz-components/FeaturedBlogPosts/index.d.ts +1 -1
  235. package/dist/esm/biz-components/Features/index.d.ts +1 -1
  236. package/dist/esm/biz-components/FootCharger/index.d.ts +1 -1
  237. package/dist/esm/biz-components/FooterNavigation/index.d.ts +1 -1
  238. package/dist/esm/biz-components/GiftBox/index.d.ts +1 -1
  239. package/dist/esm/biz-components/GiftShelf/index.d.ts +1 -1
  240. package/dist/esm/biz-components/GiftTierShelf/index.d.ts +1 -1
  241. package/dist/esm/biz-components/Graphic/index.d.ts +1 -1
  242. package/dist/esm/biz-components/GraphicAttractionBlock/index.d.ts +1 -1
  243. package/dist/esm/biz-components/GraphicMore/index.d.ts +1 -1
  244. package/dist/esm/biz-components/GraphicOverlay/GraphicOverlay.d.ts +1 -1
  245. package/dist/esm/biz-components/HeaderNavigation/index.d.ts +1 -1
  246. package/dist/esm/biz-components/HeroBanner/HeroBanner.d.ts +21 -1
  247. package/dist/esm/biz-components/HeroBanner/HeroBanner.js +1 -1
  248. package/dist/esm/biz-components/HeroBanner/HeroBanner.js.map +3 -3
  249. package/dist/esm/biz-components/HeroBanner/HeroBannerCarousel.d.ts +23 -0
  250. package/dist/esm/biz-components/HeroBanner/HeroBannerCarousel.js +2 -0
  251. package/dist/esm/biz-components/HeroBanner/HeroBannerCarousel.js.map +7 -0
  252. package/dist/esm/biz-components/HeroBanner/index.d.ts +1 -0
  253. package/dist/esm/biz-components/HeroBanner/index.js +1 -1
  254. package/dist/esm/biz-components/HeroBanner/index.js.map +1 -1
  255. package/dist/esm/biz-components/HeroBanner/types.d.ts +73 -0
  256. package/dist/esm/biz-components/ImageOverlayShelf/index.d.ts +2 -2
  257. package/dist/esm/biz-components/ImageOverlayShelf/index.js +1 -1
  258. package/dist/esm/biz-components/ImageOverlayShelf/index.js.map +3 -3
  259. package/dist/esm/biz-components/ImageTextFeature/ImageTextFeature.d.ts +1 -1
  260. package/dist/esm/biz-components/ImageTextOverlay/index.d.ts +9 -0
  261. package/dist/esm/biz-components/ImageTextOverlay/index.js +18 -0
  262. package/dist/esm/biz-components/ImageTextOverlay/index.js.map +7 -0
  263. package/dist/esm/biz-components/ImageTextOverlay/types.d.ts +58 -0
  264. package/dist/esm/biz-components/ImageTextOverlay/types.js +1 -0
  265. package/dist/esm/biz-components/ImageTextOverlay/types.js.map +7 -0
  266. package/dist/esm/biz-components/ImageWithText/ImageWithText.d.ts +1 -1
  267. package/dist/esm/biz-components/ImageWithText/ImageWithText.js +1 -1
  268. package/dist/esm/biz-components/ImageWithText/ImageWithText.js.map +2 -2
  269. package/dist/esm/biz-components/Ksp/index.d.ts +1 -1
  270. package/dist/esm/biz-components/Listing/components/PaidShipping/index.d.ts +1 -1
  271. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/BenefitsTab.d.ts +1 -1
  272. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductBundle/index.d.ts +1 -1
  273. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductExchangePurchase/index.d.ts +1 -1
  274. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductFreeGift/index.d.ts +1 -1
  275. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductHighlight/index.d.ts +1 -1
  276. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductOptions/index.d.ts +1 -1
  277. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/index.d.ts +1 -1
  278. package/dist/esm/biz-components/Listing/components/ProductCard/ProductPaidShipping/index.d.ts +1 -1
  279. package/dist/esm/biz-components/Listing/components/ProductCard/ProductSummary/index.d.ts +1 -1
  280. package/dist/esm/biz-components/Listing/components/PurchaseBar/index.d.ts +1 -1
  281. package/dist/esm/biz-components/LotteryShared/BaseModal.js +1 -1
  282. package/dist/esm/biz-components/LotteryShared/BaseModal.js.map +2 -2
  283. package/dist/esm/biz-components/LotteryShared/ChanceMethods.js +1 -1
  284. package/dist/esm/biz-components/LotteryShared/ChanceMethods.js.map +3 -3
  285. package/dist/esm/biz-components/LotteryShared/ErrorModal.js +1 -1
  286. package/dist/esm/biz-components/LotteryShared/ErrorModal.js.map +2 -2
  287. package/dist/esm/biz-components/LotteryShared/MyRewardsModal.d.ts +33 -0
  288. package/dist/esm/biz-components/LotteryShared/MyRewardsModal.js +1 -1
  289. package/dist/esm/biz-components/LotteryShared/MyRewardsModal.js.map +3 -3
  290. package/dist/esm/biz-components/LotteryShared/PrizePool.js +1 -1
  291. package/dist/esm/biz-components/LotteryShared/PrizePool.js.map +3 -3
  292. package/dist/esm/biz-components/LotteryShared/WinnerModal.d.ts +1 -1
  293. package/dist/esm/biz-components/LotteryShared/WinnerModal.js +1 -1
  294. package/dist/esm/biz-components/LotteryShared/WinnerModal.js.map +3 -3
  295. package/dist/esm/biz-components/LotteryShared/types.d.ts +101 -0
  296. package/dist/esm/biz-components/LotteryShared/types.js +1 -1
  297. package/dist/esm/biz-components/LotteryShared/types.js.map +2 -2
  298. package/dist/esm/biz-components/Marquee/Marquee.d.ts +2 -1
  299. package/dist/esm/biz-components/Marquee/Marquee.js +1 -1
  300. package/dist/esm/biz-components/Marquee/Marquee.js.map +2 -2
  301. package/dist/esm/biz-components/MarqueeReview/index.d.ts +1 -1
  302. package/dist/esm/biz-components/Media/index.d.ts +15 -3
  303. package/dist/esm/biz-components/Media/index.js +1 -1
  304. package/dist/esm/biz-components/Media/index.js.map +3 -3
  305. package/dist/esm/biz-components/MediaEndorsement/index.d.ts +1 -1
  306. package/dist/esm/biz-components/MediaEndorsement/index.js +2 -2
  307. package/dist/esm/biz-components/MediaEndorsement/index.js.map +3 -3
  308. package/dist/esm/biz-components/MediaPlayerBase/index.d.ts +1 -1
  309. package/dist/esm/biz-components/MediaPlayerBase/index.js +1 -1
  310. package/dist/esm/biz-components/MediaPlayerBase/index.js.map +3 -3
  311. package/dist/esm/biz-components/MediaPlayerBase/types.d.ts +26 -0
  312. package/dist/esm/biz-components/MediaPlayerMulti/index.d.ts +1 -1
  313. package/dist/esm/biz-components/MediaPlayerSticky/index.d.ts +1 -1
  314. package/dist/esm/biz-components/MediaSceneSwitcher/MediaSceneSwitcher.d.ts +1 -1
  315. package/dist/esm/biz-components/MediaSceneSwitcherV2/index.d.ts +1 -1
  316. package/dist/esm/biz-components/MediaShelf/index.d.ts +1 -1
  317. package/dist/esm/biz-components/MemberEquity/index.d.ts +1 -1
  318. package/dist/esm/biz-components/MiniCart/index.js +1 -1
  319. package/dist/esm/biz-components/MiniCart/index.js.map +2 -2
  320. package/dist/esm/biz-components/MultiLayoutGraphicBlock/MultiLayoutGraphicBlock.d.ts +1 -1
  321. package/dist/esm/biz-components/MultiLayoutGraphicBlock/MultiLayoutGraphicBlock.js +1 -1
  322. package/dist/esm/biz-components/MultiLayoutGraphicBlock/MultiLayoutGraphicBlock.js.map +2 -2
  323. package/dist/esm/biz-components/NavigationSearch/index.d.ts +1 -1
  324. package/dist/esm/biz-components/ProductCompare/index.d.ts +1 -1
  325. package/dist/esm/biz-components/ProductHero/ProductHero.d.ts +1 -1
  326. package/dist/esm/biz-components/ProductLottery/MediaDrawArea.js +1 -1
  327. package/dist/esm/biz-components/ProductLottery/MediaDrawArea.js.map +3 -3
  328. package/dist/esm/biz-components/ProductLottery/index.d.ts +3 -2
  329. package/dist/esm/biz-components/ProductLottery/index.js +1 -1
  330. package/dist/esm/biz-components/ProductLottery/index.js.map +3 -3
  331. package/dist/esm/biz-components/ProductLottery/types.d.ts +75 -89
  332. package/dist/esm/biz-components/ProductLottery/types.js.map +2 -2
  333. package/dist/esm/biz-components/ProductNav/ProductNav.d.ts +1 -1
  334. package/dist/esm/biz-components/PromotionalBar/index.d.ts +3 -2
  335. package/dist/esm/biz-components/PromotionalBar/index.js +1 -1
  336. package/dist/esm/biz-components/PromotionalBar/index.js.map +3 -3
  337. package/dist/esm/biz-components/SceneShelfV2/index.d.ts +113 -0
  338. package/dist/esm/biz-components/SceneShelfV2/index.js +2 -0
  339. package/dist/esm/biz-components/SceneShelfV2/index.js.map +7 -0
  340. package/dist/esm/biz-components/SceneShelfV3/ProductCard.d.ts +89 -0
  341. package/dist/esm/biz-components/SceneShelfV3/ProductCard.js +2 -0
  342. package/dist/esm/biz-components/SceneShelfV3/ProductCard.js.map +7 -0
  343. package/dist/esm/biz-components/SceneShelfV3/index.d.ts +79 -0
  344. package/dist/esm/biz-components/SceneShelfV3/index.js +2 -0
  345. package/dist/esm/biz-components/SceneShelfV3/index.js.map +7 -0
  346. package/dist/esm/biz-components/SceneShelfV3/types.d.ts +19 -0
  347. package/dist/esm/biz-components/SceneShelfV3/types.js +1 -0
  348. package/dist/esm/biz-components/SceneShelfV3/types.js.map +7 -0
  349. package/dist/esm/biz-components/SecondaryBanner/SecondaryBannerCarousel.d.ts +21 -0
  350. package/dist/esm/biz-components/SecondaryBanner/SecondaryBannerCarousel.js +2 -0
  351. package/dist/esm/biz-components/SecondaryBanner/SecondaryBannerCarousel.js.map +7 -0
  352. package/dist/esm/biz-components/SecondaryBanner/index.d.ts +65 -1
  353. package/dist/esm/biz-components/SecondaryBanner/index.js +1 -1
  354. package/dist/esm/biz-components/SecondaryBanner/index.js.map +3 -3
  355. package/dist/esm/biz-components/SelectStore/index.d.ts +1 -1
  356. package/dist/esm/biz-components/ShelfDisplay/index.d.ts +1 -1
  357. package/dist/esm/biz-components/Slogan/index.d.ts +1 -1
  358. package/dist/esm/biz-components/Spacer/index.d.ts +1 -1
  359. package/dist/esm/biz-components/Specs/index.d.ts +1 -1
  360. package/dist/esm/biz-components/SpecsComparison/SpecsComparison.d.ts +1 -1
  361. package/dist/esm/biz-components/TabWithImage/TabWithImage.d.ts +1 -1
  362. package/dist/esm/biz-components/Tabs/Tabs.d.ts +1 -1
  363. package/dist/esm/biz-components/TabsGroup/index.d.ts +1 -1
  364. package/dist/esm/biz-components/TabsWithMedia/TabsWithMedia.d.ts +1 -1
  365. package/dist/esm/biz-components/ThreeDCarousel/ThreeDCarousel.d.ts +1 -1
  366. package/dist/esm/biz-components/Title/index.d.ts +1 -1
  367. package/dist/esm/biz-components/Title/index.js +1 -1
  368. package/dist/esm/biz-components/Title/index.js.map +3 -3
  369. package/dist/esm/biz-components/Title/types.d.ts +53 -1
  370. package/dist/esm/biz-components/VideoFeature/VideoFeature.d.ts +1 -1
  371. package/dist/esm/biz-components/WheelLottery/BaseModal.js +1 -1
  372. package/dist/esm/biz-components/WheelLottery/BaseModal.js.map +2 -2
  373. package/dist/esm/biz-components/WheelLottery/ErrorModal.js +1 -1
  374. package/dist/esm/biz-components/WheelLottery/ErrorModal.js.map +2 -2
  375. package/dist/esm/biz-components/WheelLottery/MyRewardsModal.js +1 -1
  376. package/dist/esm/biz-components/WheelLottery/MyRewardsModal.js.map +2 -2
  377. package/dist/esm/biz-components/WheelLottery/WinnerModal.js +1 -1
  378. package/dist/esm/biz-components/WheelLottery/WinnerModal.js.map +2 -2
  379. package/dist/esm/biz-components/WheelLottery/index.d.ts +2 -1
  380. package/dist/esm/biz-components/WheelLottery/index.js +1 -1
  381. package/dist/esm/biz-components/WheelLottery/index.js.map +3 -3
  382. package/dist/esm/biz-components/WheelLottery/types.d.ts +6 -0
  383. package/dist/esm/biz-components/WheelLottery/types.js.map +2 -2
  384. package/dist/esm/biz-components/WhyChoose/WhyChoose.d.ts +1 -1
  385. package/dist/esm/biz-components/index.d.ts +7 -0
  386. package/dist/esm/biz-components/index.js +1 -1
  387. package/dist/esm/biz-components/index.js.map +3 -3
  388. package/dist/esm/hooks/useExposure.d.ts +4 -3
  389. package/dist/esm/hooks/useExposure.js +1 -1
  390. package/dist/esm/hooks/useExposure.js.map +3 -3
  391. package/dist/esm/hooks/useGridRowCount.d.ts +16 -0
  392. package/dist/esm/hooks/useGridRowCount.js +2 -0
  393. package/dist/esm/hooks/useGridRowCount.js.map +7 -0
  394. package/dist/esm/hooks/useViewItemList.d.ts +21 -0
  395. package/dist/esm/hooks/useViewItemList.js +2 -0
  396. package/dist/esm/hooks/useViewItemList.js.map +7 -0
  397. package/dist/esm/index.d.ts +1 -0
  398. package/dist/esm/index.js +1 -1
  399. package/dist/esm/index.js.map +3 -3
  400. package/dist/esm/shared/Styles.js +1 -1
  401. package/dist/esm/shared/Styles.js.map +3 -3
  402. package/dist/esm/shared/trackUrlRef.d.ts +9 -0
  403. package/dist/esm/shared/trackUrlRef.js +1 -1
  404. package/dist/esm/shared/trackUrlRef.js.map +3 -3
  405. package/dist/esm/types/props.d.ts +18 -1
  406. package/dist/tokens/anker.css +2 -2
  407. package/dist/tokens/eufy.css +2 -2
  408. package/dist/tokens/eufyMake.css +2 -2
  409. package/dist/tokens/soundcore.css +2 -2
  410. package/package.json +1 -1
  411. package/style.css +215 -26
  412. package/tailwind.config.js +14 -2
@@ -1,2 +1,2 @@
1
- "use strict";"use client";var it=Object.create;var g=Object.defineProperty;var ot=Object.getOwnPropertyDescriptor;var at=Object.getOwnPropertyNames;var lt=Object.getPrototypeOf,ct=Object.prototype.hasOwnProperty;var dt=(t,e)=>{for(var n in e)g(t,n,{get:e[n],enumerable:!0})},R=(t,e,n,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of at(e))!ct.call(t,o)&&o!==n&&g(t,o,{get:()=>e[o],enumerable:!(a=ot(e,o))||a.enumerable});return t};var mt=(t,e,n)=>(n=t!=null?it(lt(t)):{},R(e||!t||!t.__esModule?g(n,"default",{value:t,enumerable:!0}):n,t)),ut=t=>R(g({},"__esModule",{value:!0}),t);var gt={};dt(gt,{default:()=>ht});module.exports=ut(gt);var s=require("react/jsx-runtime"),i=mt(require("react")),w=require("gsap"),k=require("gsap/dist/SplitText"),y=require("gsap/dist/ScrollTrigger"),l=require("../../helpers/utils.js"),F=require("class-variance-authority"),d=require("../../components/index.js"),$=require("../../shared/Styles.js"),A=require("../../shared/trackUrlRef.js"),B=require("react-intersection-observer");const V="link",z="title",pt=(0,F.cva)("",{variants:{theme:{light:"text-[#080A0F]",dark:"text-[#F5F6F7]"}},defaultVariants:{theme:"light"}}),ft=(0,F.cva)("desktop:text-base desktop:mt-2 lg-desktop:text-[18px] mt-1 text-[14px] font-bold leading-[1.4] tracking-[-0.36px]",{variants:{theme:{light:"text-[#080A0F]",dark:"text-[#F5F6F7]"}},defaultVariants:{theme:"light"}}),S=({data:t,className:e})=>{const{theme:n="light",extensions:a,title:o,caption:x,align:m}=t;return a?.textLink?(0,s.jsxs)("a",{className:(0,l.cn)({"aiui-dark":n==="dark"},"hover:text-brand-0 [&_svg_path]:hover:fill-brand-0 lg-desktop:text-base flex items-center overflow-hidden text-sm font-[700] leading-[1.4] transition-all duration-[0.4s]",{"text-[#080A0F]":n==="light"},{"text-[#F5F6F7]":n==="dark"},{"justify-center mt-4":m==="center"},{"mt-1 laptop:mt-0":m==="left"},e),href:(0,A.trackUrlRef)(a?.link,`${V}_${z}`),"data-headless-type-name":`${V}#${z}`,"data-headless-title-desc-button":`${o}#${x}`,children:[(0,s.jsx)("div",{className:"truncate whitespace-nowrap",children:a?.textLink}),(0,s.jsx)("div",{className:"lg-desktop:size-5 size-4",children:(0,s.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"100%",height:"100%",viewBox:"0 0 16 16",fill:"none",children:(0,s.jsx)("path",{d:"M5.52827 3.52864C5.78862 3.26829 6.21063 3.26829 6.47098 3.52864L10.471 7.52864C10.7313 7.78899 10.7313 8.21099 10.471 8.47134L6.47098 12.4713C6.21063 12.7317 5.78862 12.7317 5.52827 12.4713C5.26792 12.211 5.26792 11.789 5.52827 11.5286L9.05692 7.99999L5.52827 4.47134C5.26792 4.21099 5.26792 3.78899 5.52827 3.52864Z",fill:n==="dark"?"#F5F6F7":"#080A0F",className:"transition-all duration-[0.4s]"})})})]}):null},P=i.default.forwardRef(({data:t,className:e,as:n="h2",weight:a="bold",...o},x)=>{const{title:m,caption:L,subtitle:H,countdown:r,showCountdown:_=!1,theme:h="light",extensions:I,align:u="left"}=t,N=(0,i.useRef)(null),p=(0,i.useRef)(null),c=(0,i.useRef)(null),f=(0,i.useRef)(null),[j,O]=(0,i.useState)(!0),{ref:U,inView:D}=(0,B.useInView)();(0,i.useImperativeHandle)(x,()=>N.current);const W=()=>{O(!1)},Z=r?.targetDateTime||r?.targetDate||"",q=r?.targetDateTime_tz,G=r?.labels?{day:r.labels.days||"Day",hour:r.labels.hours||"Hours",minute:r.labels.minutes||"Mins",second:r.labels.seconds||"Secs"}:void 0;return(0,i.useEffect)(()=>{w.gsap.registerPlugin(k.SplitText,y.ScrollTrigger);function J(){if(!p.current)return;const K=p.current?.clientHeight||80;c.current&&c.current.revert(),f.current&&f.current.kill(),c.current=new k.SplitText(p.current,{type:"words",wordsClass:"word"});const v=c.current.words;w.gsap.set(v,{opacity:0}),f.current=y.ScrollTrigger.create({trigger:p.current,start:"bottom bottom-=4%",end:`bottom+=${K*1.5+60}px bottom-=4%`,scrub:!0,invalidateOnRefresh:!0,onUpdate:Q=>{const X=Q.progress,M=v.length||1,Y=.5,b=1/M,E=b*(1-Y),C=(M-1)*E+b,tt=Math.min(1,C>0?X/C:0);v.forEach((et,nt)=>{const st=nt*E,rt=b;let T=(tt-st)/rt;T=Math.max(0,Math.min(1,T)),w.gsap.set(et,{opacity:T})})}})}return D&&J(),()=>{c.current&&c.current.revert(),f.current&&f.current.kill()}},[D]),(0,s.jsxs)("div",{...o,id:I?.id,className:(0,l.cn)("titleBottom title-box flex items-end justify-between gap-2 pb-6",e),ref:N,children:[(0,s.jsxs)("div",{ref:U,className:(0,l.cn)("flex-1",e,{"aiui-dark":h==="dark","text-center":u==="center","text-left":u==="left"}),children:[(L||m)&&(0,s.jsx)(d.Heading,{ref:p,as:n,size:4,html:L||m,weight:a,className:pt({theme:h})}),H&&(0,s.jsx)(d.Text,{html:H,as:"p",className:ft({theme:h})}),(0,s.jsx)(S,{data:t,className:(0,l.cn)({"laptop:hidden":u==="left"})}),_&&r&&j&&(0,s.jsx)(d.Countdown,{endDate:Z,endDate_tz:q,timeLabels:G,showDays:r?.showDays,showHours:r?.showHours,showMinutes:r?.showMinutes,showSeconds:r?.showSeconds,theme:h,onExpire:W,hideWhenExpired:!0,align:u==="center"?"center":"left",className:(0,l.cn)("mt-4")})]}),(0,s.jsx)(S,{data:t,className:(0,l.cn)("hidden",{"laptop:flex":u==="left"})})]})});P.displayName="Title";var ht=(0,$.withLayout)(P);
1
+ "use strict";"use client";var dt=Object.create;var x=Object.defineProperty;var ct=Object.getOwnPropertyDescriptor;var ut=Object.getOwnPropertyNames;var pt=Object.getPrototypeOf,mt=Object.prototype.hasOwnProperty;var ft=(t,n)=>{for(var e in n)x(t,e,{get:n[e],enumerable:!0})},V=(t,n,e,l)=>{if(n&&typeof n=="object"||typeof n=="function")for(let s of ut(n))!mt.call(t,s)&&s!==e&&x(t,s,{get:()=>n[s],enumerable:!(l=ct(n,s))||l.enumerable});return t};var ht=(t,n,e)=>(e=t!=null?dt(pt(t)):{},V(n||!t||!t.__esModule?x(e,"default",{value:t,enumerable:!0}):e,t)),gt=t=>V(x({},"__esModule",{value:!0}),t);var vt={};ft(vt,{default:()=>bt});module.exports=gt(vt);var i=require("react/jsx-runtime"),r=ht(require("react")),w=require("gsap"),F=require("gsap/dist/SplitText"),H=require("gsap/dist/ScrollTrigger"),a=require("../../helpers/utils.js"),L=require("class-variance-authority"),d=require("../../components/index.js"),_=require("../../shared/Styles.js"),I=require("../../shared/trackUrlRef.js"),j=require("react-intersection-observer");const N="link",$="title",xt=(0,L.cva)("",{variants:{theme:{light:"text-[#080A0F]",dark:"text-[#F5F6F7]"}},defaultVariants:{theme:"light"}}),wt=(0,L.cva)("desktop:text-base desktop:mt-2 lg-desktop:text-[18px] mt-1 text-[14px] font-bold leading-[1.4] tracking-[-0.36px]",{variants:{theme:{light:"text-[#080A0F]",dark:"text-[#F5F6F7]"}},defaultVariants:{theme:"light"}}),A=({data:t,onClick:n,className:e})=>{const{theme:l="light",extensions:s,title:b,caption:v,align:h}=t;if(!s?.textLink)return null;const u=s?.link?(0,I.trackUrlRef)(s.link,`${N}_${$}`):void 0;return(0,i.jsxs)("a",{className:(0,a.cn)({"aiui-dark":l==="dark"},"hover:text-brand-0 [&_svg_path]:hover:fill-brand-0 lg-desktop:text-base flex cursor-pointer items-center overflow-hidden text-sm font-[700] leading-[1.4] transition-all duration-[0.4s]",{"text-[#080A0F]":l==="light"},{"text-[#F5F6F7]":l==="dark"},{"justify-center mt-4":h==="center"},{"mt-1 laptop:mt-0":h==="left"},e),...u?{href:u}:{},"data-headless-type-name":`${N}#${$}`,"data-headless-title-desc-button":`${b}#${v}`,...n?{onClick:n}:{},children:[(0,i.jsx)("div",{className:"truncate whitespace-nowrap",children:s?.textLink}),(0,i.jsx)("div",{className:"lg-desktop:size-5 size-4",children:(0,i.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"100%",height:"100%",viewBox:"0 0 16 16",fill:"none",children:(0,i.jsx)("path",{d:"M5.52827 3.52864C5.78862 3.26829 6.21063 3.26829 6.47098 3.52864L10.471 7.52864C10.7313 7.78899 10.7313 8.21099 10.471 8.47134L6.47098 12.4713C6.21063 12.7317 5.78862 12.7317 5.52827 12.4713C5.26792 12.211 5.26792 11.789 5.52827 11.5286L9.05692 7.99999L5.52827 4.47134C5.26792 4.21099 5.26792 3.78899 5.52827 3.52864Z",fill:l==="dark"?"#F5F6F7":"#080A0F",className:"transition-all duration-[0.4s]"})})})]})},B=r.default.forwardRef(({data:t,className:n,classNames:e,as:l="h2",weight:s="bold",onButtonClick:b,...v},h)=>{const{title:u,titleSize:O=4,caption:D,subtitle:M,content:C,countdown:o,showCountdown:U=!1,theme:g="light",extensions:W,align:p="left"}=t,E=(0,r.useRef)(null),m=(0,r.useRef)(null),c=(0,r.useRef)(null),f=(0,r.useRef)(null),[Z,q]=(0,r.useState)(!0),{ref:G,inView:z}=(0,j.useInView)();(0,r.useImperativeHandle)(h,()=>E.current);const J=()=>{q(!1)},K=o?.targetDateTime||o?.targetDate||"",Q=o?.targetDateTime_tz,X=o?.labels?{day:o.labels.days||"Day",hour:o.labels.hours||"Hours",minute:o.labels.minutes||"Mins",second:o.labels.seconds||"Secs"}:void 0;return(0,r.useEffect)(()=>{w.gsap.registerPlugin(F.SplitText,H.ScrollTrigger);function Y(){if(!m.current)return;const tt=m.current?.clientHeight||80;c.current&&c.current.revert(),f.current&&f.current.kill(),c.current=new F.SplitText(m.current,{type:"words",wordsClass:"word"});const k=c.current.words;w.gsap.set(k,{opacity:0}),f.current=H.ScrollTrigger.create({trigger:m.current,start:"bottom bottom-=4%",end:`bottom+=${tt*1.5+60}px bottom-=4%`,scrub:!0,invalidateOnRefresh:!0,onUpdate:et=>{const nt=et.progress,R=k.length||1,it=.5,T=1/R,P=T*(1-it),S=(R-1)*P+T,ot=Math.min(1,S>0?nt/S:0);k.forEach((rt,st)=>{const at=st*P,lt=T;let y=(ot-at)/lt;y=Math.max(0,Math.min(1,y)),w.gsap.set(rt,{opacity:y})})}})}return z&&Y(),()=>{c.current&&c.current.revert(),f.current&&f.current.kill()}},[z]),(0,i.jsxs)("div",{...v,id:W?.id,className:(0,a.cn)("titleBottom title-box flex items-end justify-between gap-2 pb-6",n,e?.wrapper),ref:E,children:[(0,i.jsxs)("div",{ref:G,className:(0,a.cn)("flex-1",e?.container||n,{"aiui-dark":g==="dark","text-center":p==="center","text-left":p==="left"}),children:[(D||u)&&(0,i.jsx)(d.Heading,{ref:m,as:l,size:O,html:D||u,weight:s,className:(0,a.cn)(xt({theme:g}),e?.title)}),M&&(0,i.jsx)(d.Text,{html:M,as:"p",className:(0,a.cn)(wt({theme:g}),e?.subtitle)}),C&&(0,i.jsx)(d.Text,{html:C,as:"div",size:4,className:(0,a.cn)("title-content text-info-primary desktop:text-base desktop:mt-4 lg-desktop:text-[18px] mt-2 text-[14px] leading-[1.6]",e?.content)}),(0,i.jsx)(A,{data:t,className:(0,a.cn)({"laptop:hidden":p==="left"},e?.button)}),U&&o&&Z&&(0,i.jsx)(d.Countdown,{endDate:K,endDate_tz:Q,timeLabels:X,showDays:o?.showDays,showHours:o?.showHours,showMinutes:o?.showMinutes,showSeconds:o?.showSeconds,theme:g,onExpire:J,hideWhenExpired:!0,align:p==="center"?"center":"left",className:(0,a.cn)("mt-4",e?.countdown)})]}),(0,i.jsx)(A,{data:t,className:(0,a.cn)("hidden",{"laptop:flex":p==="left"},e?.button),onClick:b})]})});B.displayName="Title";var bt=(0,_.withLayout)(B);
2
2
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/biz-components/Title/index.tsx"],
4
- "sourcesContent": ["'use client'\nimport React, { useEffect, useRef, useImperativeHandle, useState } from 'react'\nimport { gsap } from 'gsap'\nimport { SplitText } from 'gsap/dist/SplitText'\nimport { ScrollTrigger } from 'gsap/dist/ScrollTrigger'\nimport { cn } from '../../helpers/utils.js'\nimport { cva } from 'class-variance-authority'\nimport { Heading, Text, Countdown } from '../../components/index.js'\nimport { withLayout } from '../../shared/Styles.js'\nimport type { TitlePropsBase } from './types.js'\n\nexport interface TitleProps extends TitlePropsBase, Omit<React.HTMLAttributes<HTMLDivElement>, 'className' | 'title'> {}\nimport { trackUrlRef } from '../../shared/trackUrlRef.js'\nimport { useInView } from 'react-intersection-observer'\n\nconst componentType = 'link'\nconst componentName = 'title'\n\n/**\n * \u6807\u9898\u6837\u5F0F\u53D8\u4F53\n */\nconst titleHeadingVariants = cva('', {\n variants: {\n theme: {\n light: 'text-[#080A0F]',\n dark: 'text-[#F5F6F7]',\n },\n },\n defaultVariants: {\n theme: 'light',\n },\n})\n\n/**\n * \u526F\u6807\u9898\u6837\u5F0F\u53D8\u4F53\n */\nconst subtitleVariants = cva(\n 'desktop:text-base desktop:mt-2 lg-desktop:text-[18px] mt-1 text-[14px] font-bold leading-[1.4] tracking-[-0.36px]',\n {\n variants: {\n theme: {\n light: 'text-[#080A0F]',\n dark: 'text-[#F5F6F7]',\n },\n },\n defaultVariants: {\n theme: 'light',\n },\n }\n)\n\nconst TitleButton = ({ data, className }: { data: TitleProps['data']; className?: string }) => {\n const { theme = 'light', extensions, title, caption, align } = data\n if (!extensions?.textLink) return null\n return (\n <a\n className={cn(\n { 'aiui-dark': theme === 'dark' },\n 'hover:text-brand-0 [&_svg_path]:hover:fill-brand-0 lg-desktop:text-base flex items-center overflow-hidden text-sm font-[700] leading-[1.4] transition-all duration-[0.4s]',\n { 'text-[#080A0F]': theme === 'light' },\n { 'text-[#F5F6F7]': theme === 'dark' },\n { 'justify-center mt-4': align === 'center' },\n { 'mt-1 laptop:mt-0': align === 'left' },\n className\n )}\n href={trackUrlRef(extensions?.link, `${componentType}_${componentName}`)}\n data-headless-type-name={`${componentType}#${componentName}`}\n data-headless-title-desc-button={`${title}#${caption}`}\n >\n <div className=\"truncate whitespace-nowrap\">{extensions?.textLink}</div>\n <div className=\"lg-desktop:size-5 size-4\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 16 16\" fill=\"none\">\n <path\n d=\"M5.52827 3.52864C5.78862 3.26829 6.21063 3.26829 6.47098 3.52864L10.471 7.52864C10.7313 7.78899 10.7313 8.21099 10.471 8.47134L6.47098 12.4713C6.21063 12.7317 5.78862 12.7317 5.52827 12.4713C5.26792 12.211 5.26792 11.789 5.52827 11.5286L9.05692 7.99999L5.52827 4.47134C5.26792 4.21099 5.26792 3.78899 5.52827 3.52864Z\"\n fill={theme === 'dark' ? '#F5F6F7' : '#080A0F'}\n className=\"transition-all duration-[0.4s]\"\n />\n </svg>\n </div>\n </a>\n )\n}\n\nconst Title = React.forwardRef<HTMLDivElement, TitleProps>(\n ({ data, className, as = 'h2', weight = 'bold', ...rest }, ref) => {\n const {\n title,\n caption,\n subtitle,\n countdown,\n showCountdown = false,\n theme = 'light',\n extensions,\n align = 'left',\n } = data\n const innerRef = useRef<HTMLDivElement>(null)\n const titleRef = useRef<HTMLHeadingElement>(null)\n const splitTextInstance = useRef<SplitText | null>(null)\n const scrollTriggerRef = useRef<ScrollTrigger | null>(null)\n\n // \u63A7\u5236\u5012\u8BA1\u65F6\u663E\u793A\u72B6\u6001\n const [isCountdownVisible, setIsCountdownVisible] = useState(true)\n\n const { ref: inViewRef, inView } = useInView()\n\n useImperativeHandle(ref, () => innerRef.current as HTMLDivElement)\n\n // \u5012\u8BA1\u65F6\u7ED3\u675F\u56DE\u8C03\n const handleCountdownEnd = () => {\n setIsCountdownVisible(false)\n }\n\n // CMS field mapping: new targetDateTime > legacy targetDate\n const countdownEndDate = countdown?.targetDateTime || countdown?.targetDate || ''\n const countdownTz = countdown?.targetDateTime_tz\n // Label mapping: plural keys (Title CMS format) \u2192 atomic Countdown format\n const countdownLabels = countdown?.labels\n ? {\n day: countdown.labels.days || 'Day',\n hour: countdown.labels.hours || 'Hours',\n minute: countdown.labels.minutes || 'Mins',\n second: countdown.labels.seconds || 'Secs',\n }\n : undefined\n\n useEffect(() => {\n gsap.registerPlugin(SplitText, ScrollTrigger)\n function gsapResize() {\n if (!titleRef.current) return\n const height = titleRef.current?.clientHeight || 80\n if (splitTextInstance.current) {\n splitTextInstance.current.revert()\n }\n if (scrollTriggerRef.current) {\n scrollTriggerRef.current.kill()\n }\n splitTextInstance.current = new SplitText(titleRef.current, {\n type: 'words',\n wordsClass: 'word',\n })\n const words = splitTextInstance.current.words\n gsap.set(words, { opacity: 0 })\n scrollTriggerRef.current = ScrollTrigger.create({\n trigger: titleRef.current,\n start: 'bottom bottom-=4%',\n end: `bottom+=${height * 1.5 + 60}px bottom-=4%`,\n scrub: true,\n invalidateOnRefresh: true,\n onUpdate: (self: any) => {\n const progress = self.progress\n const total = words.length || 1\n const overlap = 0.5\n const interval = 1 / total\n const step = interval * (1 - overlap)\n const lastEnd = (total - 1) * step + interval\n const normalizedProgress = Math.min(1, lastEnd > 0 ? progress / lastEnd : 0)\n words.forEach((word: any, i: number) => {\n const start = i * step\n const width = interval\n let opacity = (normalizedProgress - start) / width\n opacity = Math.max(0, Math.min(1, opacity))\n gsap.set(word, { opacity })\n })\n },\n })\n }\n\n if (inView) {\n gsapResize()\n }\n\n return () => {\n splitTextInstance.current && splitTextInstance.current.revert()\n // ScrollTrigger.getAll().forEach((t: { kill: () => any }) => t.kill())\n scrollTriggerRef.current && scrollTriggerRef.current.kill()\n }\n }, [inView])\n\n return (\n <div\n {...rest}\n id={extensions?.id}\n className={cn('titleBottom title-box flex items-end justify-between gap-2 pb-6', className)}\n ref={innerRef}\n >\n <div\n ref={inViewRef}\n className={cn('flex-1', className, {\n 'aiui-dark': theme === 'dark',\n 'text-center': align === 'center',\n 'text-left': align === 'left',\n })}\n >\n {(caption || title) && (\n <Heading\n ref={titleRef}\n as={as}\n size={4}\n html={caption || title}\n weight={weight}\n className={titleHeadingVariants({ theme })}\n />\n )}\n {subtitle && <Text html={subtitle} as=\"p\" className={subtitleVariants({ theme })} />}\n <TitleButton data={data} className={cn({ 'laptop:hidden': align === 'left' })} />\n {showCountdown && countdown && isCountdownVisible && (\n <Countdown\n endDate={countdownEndDate}\n endDate_tz={countdownTz}\n timeLabels={countdownLabels}\n showDays={countdown?.showDays}\n showHours={countdown?.showHours}\n showMinutes={countdown?.showMinutes}\n showSeconds={countdown?.showSeconds}\n theme={theme}\n onExpire={handleCountdownEnd}\n hideWhenExpired={true}\n align={align === 'center' ? 'center' : 'left'}\n className={cn('mt-4')}\n />\n )}\n </div>\n <TitleButton data={data} className={cn('hidden', { ['laptop:flex']: align === 'left' })} />\n </div>\n )\n }\n)\n\nTitle.displayName = 'Title'\n\nexport default withLayout(Title)\n"],
5
- "mappings": "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",
6
- "names": ["Title_exports", "__export", "Title_default", "__toCommonJS", "import_jsx_runtime", "import_react", "import_gsap", "import_SplitText", "import_ScrollTrigger", "import_utils", "import_class_variance_authority", "import_components", "import_Styles", "import_trackUrlRef", "import_react_intersection_observer", "componentType", "componentName", "titleHeadingVariants", "subtitleVariants", "TitleButton", "data", "className", "theme", "extensions", "title", "caption", "align", "Title", "React", "as", "weight", "rest", "ref", "subtitle", "countdown", "showCountdown", "innerRef", "titleRef", "splitTextInstance", "scrollTriggerRef", "isCountdownVisible", "setIsCountdownVisible", "inViewRef", "inView", "handleCountdownEnd", "countdownEndDate", "countdownTz", "countdownLabels", "gsapResize", "height", "words", "self", "progress", "total", "overlap", "interval", "step", "lastEnd", "normalizedProgress", "word", "i", "start", "width", "opacity"]
4
+ "sourcesContent": ["'use client'\nimport React, { useEffect, useRef, useImperativeHandle, useState } from 'react'\nimport { gsap } from 'gsap'\nimport { SplitText } from 'gsap/dist/SplitText'\nimport { ScrollTrigger } from 'gsap/dist/ScrollTrigger'\nimport { cn } from '../../helpers/utils.js'\nimport { cva } from 'class-variance-authority'\nimport { Heading, Text, Countdown, type HeadingProps } from '../../components/index.js'\nimport { withLayout } from '../../shared/Styles.js'\nimport type { TitlePropsBase } from './types.js'\n\nexport interface TitleProps extends TitlePropsBase, Omit<React.HTMLAttributes<HTMLDivElement>, 'className' | 'title'> {}\nimport { trackUrlRef } from '../../shared/trackUrlRef.js'\nimport { useInView } from 'react-intersection-observer'\n\nconst componentType = 'link'\nconst componentName = 'title'\n\n/**\n * \u6807\u9898\u6837\u5F0F\u53D8\u4F53\n */\nconst titleHeadingVariants = cva('', {\n variants: {\n theme: {\n light: 'text-[#080A0F]',\n dark: 'text-[#F5F6F7]',\n },\n },\n defaultVariants: {\n theme: 'light',\n },\n})\n\n/**\n * \u526F\u6807\u9898\u6837\u5F0F\u53D8\u4F53\n */\nconst subtitleVariants = cva(\n 'desktop:text-base desktop:mt-2 lg-desktop:text-[18px] mt-1 text-[14px] font-bold leading-[1.4] tracking-[-0.36px]',\n {\n variants: {\n theme: {\n light: 'text-[#080A0F]',\n dark: 'text-[#F5F6F7]',\n },\n },\n defaultVariants: {\n theme: 'light',\n },\n }\n)\n\nconst TitleButton = ({\n data,\n onClick,\n className,\n}: {\n data: TitleProps['data']\n onClick?: () => void\n className?: string\n}) => {\n const { theme = 'light', extensions, title, caption, align } = data\n if (!extensions?.textLink) return null\n\n const href = extensions?.link ? trackUrlRef(extensions.link, `${componentType}_${componentName}`) : undefined\n\n return (\n <a\n className={cn(\n { 'aiui-dark': theme === 'dark' },\n 'hover:text-brand-0 [&_svg_path]:hover:fill-brand-0 lg-desktop:text-base flex cursor-pointer items-center overflow-hidden text-sm font-[700] leading-[1.4] transition-all duration-[0.4s]',\n { 'text-[#080A0F]': theme === 'light' },\n { 'text-[#F5F6F7]': theme === 'dark' },\n { 'justify-center mt-4': align === 'center' },\n { 'mt-1 laptop:mt-0': align === 'left' },\n className\n )}\n {...(href ? { href } : {})}\n data-headless-type-name={`${componentType}#${componentName}`}\n data-headless-title-desc-button={`${title}#${caption}`}\n {...(onClick ? { onClick } : {})}\n >\n <div className=\"truncate whitespace-nowrap\">{extensions?.textLink}</div>\n <div className=\"lg-desktop:size-5 size-4\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 16 16\" fill=\"none\">\n <path\n d=\"M5.52827 3.52864C5.78862 3.26829 6.21063 3.26829 6.47098 3.52864L10.471 7.52864C10.7313 7.78899 10.7313 8.21099 10.471 8.47134L6.47098 12.4713C6.21063 12.7317 5.78862 12.7317 5.52827 12.4713C5.26792 12.211 5.26792 11.789 5.52827 11.5286L9.05692 7.99999L5.52827 4.47134C5.26792 4.21099 5.26792 3.78899 5.52827 3.52864Z\"\n fill={theme === 'dark' ? '#F5F6F7' : '#080A0F'}\n className=\"transition-all duration-[0.4s]\"\n />\n </svg>\n </div>\n </a>\n )\n}\n\nconst Title = React.forwardRef<HTMLDivElement, TitleProps>(\n ({ data, className, classNames, as = 'h2', weight = 'bold', onButtonClick, ...rest }, ref) => {\n const {\n title,\n titleSize = 4,\n caption,\n subtitle,\n content,\n countdown,\n showCountdown = false,\n theme = 'light',\n extensions,\n align = 'left',\n } = data\n const innerRef = useRef<HTMLDivElement>(null)\n const titleRef = useRef<HTMLHeadingElement>(null)\n const splitTextInstance = useRef<SplitText | null>(null)\n const scrollTriggerRef = useRef<ScrollTrigger | null>(null)\n\n // \u63A7\u5236\u5012\u8BA1\u65F6\u663E\u793A\u72B6\u6001\n const [isCountdownVisible, setIsCountdownVisible] = useState(true)\n\n const { ref: inViewRef, inView } = useInView()\n\n useImperativeHandle(ref, () => innerRef.current as HTMLDivElement)\n\n // \u5012\u8BA1\u65F6\u7ED3\u675F\u56DE\u8C03\n const handleCountdownEnd = () => {\n setIsCountdownVisible(false)\n }\n\n // CMS field mapping: new targetDateTime > legacy targetDate\n const countdownEndDate = countdown?.targetDateTime || countdown?.targetDate || ''\n const countdownTz = countdown?.targetDateTime_tz\n // Label mapping: plural keys (Title CMS format) \u2192 atomic Countdown format\n const countdownLabels = countdown?.labels\n ? {\n day: countdown.labels.days || 'Day',\n hour: countdown.labels.hours || 'Hours',\n minute: countdown.labels.minutes || 'Mins',\n second: countdown.labels.seconds || 'Secs',\n }\n : undefined\n\n useEffect(() => {\n gsap.registerPlugin(SplitText, ScrollTrigger)\n function gsapResize() {\n if (!titleRef.current) return\n const height = titleRef.current?.clientHeight || 80\n if (splitTextInstance.current) {\n splitTextInstance.current.revert()\n }\n if (scrollTriggerRef.current) {\n scrollTriggerRef.current.kill()\n }\n splitTextInstance.current = new SplitText(titleRef.current, {\n type: 'words',\n wordsClass: 'word',\n })\n const words = splitTextInstance.current.words\n gsap.set(words, { opacity: 0 })\n scrollTriggerRef.current = ScrollTrigger.create({\n trigger: titleRef.current,\n start: 'bottom bottom-=4%',\n end: `bottom+=${height * 1.5 + 60}px bottom-=4%`,\n scrub: true,\n invalidateOnRefresh: true,\n onUpdate: (self: any) => {\n const progress = self.progress\n const total = words.length || 1\n const overlap = 0.5\n const interval = 1 / total\n const step = interval * (1 - overlap)\n const lastEnd = (total - 1) * step + interval\n const normalizedProgress = Math.min(1, lastEnd > 0 ? progress / lastEnd : 0)\n words.forEach((word: any, i: number) => {\n const start = i * step\n const width = interval\n let opacity = (normalizedProgress - start) / width\n opacity = Math.max(0, Math.min(1, opacity))\n gsap.set(word, { opacity })\n })\n },\n })\n }\n\n if (inView) {\n gsapResize()\n }\n\n return () => {\n splitTextInstance.current && splitTextInstance.current.revert()\n // ScrollTrigger.getAll().forEach((t: { kill: () => any }) => t.kill())\n scrollTriggerRef.current && scrollTriggerRef.current.kill()\n }\n }, [inView])\n\n return (\n <div\n {...rest}\n id={extensions?.id}\n className={cn(\n 'titleBottom title-box flex items-end justify-between gap-2 pb-6',\n className,\n classNames?.wrapper\n )}\n ref={innerRef}\n >\n <div\n ref={inViewRef}\n className={cn('flex-1', classNames?.container || className, {\n 'aiui-dark': theme === 'dark',\n 'text-center': align === 'center',\n 'text-left': align === 'left',\n })}\n >\n {(caption || title) && (\n <Heading\n ref={titleRef}\n as={as}\n size={titleSize as HeadingProps['size']}\n html={caption || title}\n weight={weight}\n className={cn(titleHeadingVariants({ theme }), classNames?.title)}\n />\n )}\n {subtitle && (\n <Text html={subtitle} as=\"p\" className={cn(subtitleVariants({ theme }), classNames?.subtitle)} />\n )}\n {content && (\n <Text\n html={content}\n as=\"div\"\n size={4}\n className={cn(\n 'title-content text-info-primary desktop:text-base desktop:mt-4 lg-desktop:text-[18px] mt-2 text-[14px] leading-[1.6]',\n classNames?.content\n )}\n />\n )}\n <TitleButton data={data} className={cn({ 'laptop:hidden': align === 'left' }, classNames?.button)} />\n {showCountdown && countdown && isCountdownVisible && (\n <Countdown\n endDate={countdownEndDate}\n endDate_tz={countdownTz}\n timeLabels={countdownLabels}\n showDays={countdown?.showDays}\n showHours={countdown?.showHours}\n showMinutes={countdown?.showMinutes}\n showSeconds={countdown?.showSeconds}\n theme={theme}\n onExpire={handleCountdownEnd}\n hideWhenExpired={true}\n align={align === 'center' ? 'center' : 'left'}\n className={cn('mt-4', classNames?.countdown)}\n />\n )}\n </div>\n <TitleButton\n data={data}\n className={cn('hidden', { ['laptop:flex']: align === 'left' }, classNames?.button)}\n onClick={onButtonClick}\n />\n </div>\n )\n }\n)\n\nTitle.displayName = 'Title'\n\nexport default withLayout(Title)\n"],
5
+ "mappings": "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",
6
+ "names": ["Title_exports", "__export", "Title_default", "__toCommonJS", "import_jsx_runtime", "import_react", "import_gsap", "import_SplitText", "import_ScrollTrigger", "import_utils", "import_class_variance_authority", "import_components", "import_Styles", "import_trackUrlRef", "import_react_intersection_observer", "componentType", "componentName", "titleHeadingVariants", "subtitleVariants", "TitleButton", "data", "onClick", "className", "theme", "extensions", "title", "caption", "align", "href", "Title", "React", "classNames", "as", "weight", "onButtonClick", "rest", "ref", "titleSize", "subtitle", "content", "countdown", "showCountdown", "innerRef", "titleRef", "splitTextInstance", "scrollTriggerRef", "isCountdownVisible", "setIsCountdownVisible", "inViewRef", "inView", "handleCountdownEnd", "countdownEndDate", "countdownTz", "countdownLabels", "gsapResize", "height", "words", "self", "progress", "total", "overlap", "interval", "step", "lastEnd", "normalizedProgress", "word", "i", "start", "width", "opacity"]
7
7
  }
@@ -1,4 +1,5 @@
1
1
  import type { Theme } from '../../types/props.js';
2
+ import type { SerializedEditorState, SerializedLexicalNode } from 'lexical';
2
3
  export interface Feature {
3
4
  /**
4
5
  * 特性标题
@@ -52,17 +53,58 @@ export interface CountdownConfig {
52
53
  seconds?: string;
53
54
  };
54
55
  }
56
+ /**
57
+ * 语义化样式类名配置
58
+ */
59
+ export interface TitleClassNames {
60
+ /**
61
+ * 最外层容器类名
62
+ */
63
+ wrapper?: string;
64
+ /**
65
+ * 内容容器类名
66
+ */
67
+ container?: string;
68
+ /**
69
+ * 主标题类名
70
+ */
71
+ title?: string;
72
+ /**
73
+ * 副标题类名
74
+ */
75
+ subtitle?: string;
76
+ /**
77
+ * 正文内容类名
78
+ */
79
+ content?: string;
80
+ /**
81
+ * 按钮类名
82
+ */
83
+ button?: string;
84
+ /**
85
+ * 倒计时类名
86
+ */
87
+ countdown?: string;
88
+ }
55
89
  export interface TitlePropsBase {
56
90
  data: {
57
91
  /**
58
92
  * 主标题
59
93
  */
60
94
  title?: string;
95
+ /**
96
+ * 标题尺寸,1-5
97
+ */
98
+ titleSize?: number;
61
99
  caption?: string;
62
100
  /**
63
101
  * 副标题
64
102
  */
65
103
  subtitle?: string;
104
+ /**
105
+ * 正文内容(富文本,支持 HTML 字符串或 Payload CMS Lexical 格式)
106
+ */
107
+ content?: string | SerializedEditorState<SerializedLexicalNode>;
66
108
  /**
67
109
  * 倒计时配置
68
110
  */
@@ -92,10 +134,20 @@ export interface TitlePropsBase {
92
134
  };
93
135
  weight?: 'medium' | 'semibold' | 'bold' | 'extraBold' | 'black';
94
136
  /**
95
- * 自定义类名
137
+ * 自定义类名(应用于内容容器)
138
+ * @deprecated 请使用 classNames.container 替代
96
139
  */
97
140
  className?: string;
141
+ /**
142
+ * 语义化类名配置,支持精细控制各个部分的样式
143
+ */
144
+ classNames?: TitleClassNames;
98
145
  as?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';
146
+ /**
147
+ * learn more / rule / note 的点击callback
148
+ * @returns
149
+ */
150
+ onButtonClick?: () => void;
99
151
  }
100
152
  /** @deprecated Use TitlePropsBase and extend with React.HTMLAttributes<HTMLDivElement> */
101
153
  export type TitleProps = TitlePropsBase;
@@ -1,2 +1,2 @@
1
- "use strict";var n=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var a=Object.getOwnPropertyNames;var g=Object.prototype.hasOwnProperty;var l=(t,e,r,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of a(e))!g.call(t,o)&&o!==r&&n(t,o,{get:()=>e[o],enumerable:!(s=i(e,o))||s.enumerable});return t};var h=t=>l(n({},"__esModule",{value:!0}),t);var p={};module.exports=h(p);
1
+ "use strict";var s=Object.defineProperty;var r=Object.getOwnPropertyDescriptor;var a=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var g=(e,t,o,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of a(t))!l.call(e,i)&&i!==o&&s(e,i,{get:()=>t[i],enumerable:!(n=r(t,i))||n.enumerable});return e};var d=e=>g(s({},"__esModule",{value:!0}),e);var c={};module.exports=d(c);
2
2
  //# sourceMappingURL=types.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/biz-components/Title/types.ts"],
4
- "sourcesContent": ["import type { Theme } from '../../types/props.js'\n\nexport interface Feature {\n /**\n * \u7279\u6027\u6807\u9898\n */\n title: string\n}\n\n/**\n * \u5012\u8BA1\u65F6\u914D\u7F6E\n */\nexport interface CountdownConfig {\n /**\n * \u65B0 CMS \u5B57\u6BB5\uFF0CISO 8601 \u5E26\u65F6\u533A\uFF08\u5982 '2026-03-28T16:00:00.000Z'\uFF09\u3002\u4F18\u5148\u4E8E targetDate \u4F7F\u7528\u3002\n */\n targetDateTime?: string\n /**\n * \u65F6\u533A\u6807\u8BC6\u7B26\uFF08\u5982 'Asia/Shanghai'\uFF09\uFF0C\u4E0E targetDateTime \u914D\u5408\u4F7F\u7528\n */\n targetDateTime_tz?: string\n /**\n * \u5012\u8BA1\u65F6\u76EE\u6807\u65F6\u95F4\uFF08ISO 8601 \u683C\u5F0F\u6216\u4EFB\u4F55 dayjs \u652F\u6301\u7684\u683C\u5F0F\uFF09\n * @deprecated \u8BF7\u4F7F\u7528 targetDateTime \u66FF\u4EE3\u3002\u4EC5\u7528\u4E8E\u517C\u5BB9\u65E7 CMS \u6570\u636E\u3002\n */\n targetDate?: string\n /**\n * \u662F\u5426\u663E\u793A\u5929\u6570\n * @default true\n */\n showDays?: boolean\n /**\n * \u662F\u5426\u663E\u793A\u5C0F\u65F6\n * @default true\n */\n showHours?: boolean\n /**\n * \u662F\u5426\u663E\u793A\u5206\u949F\n * @default true\n */\n showMinutes?: boolean\n /**\n * \u662F\u5426\u663E\u793A\u79D2\u6570\n * @default true\n */\n showSeconds?: boolean\n /**\n * \u81EA\u5B9A\u4E49\u6807\u7B7E\u6587\u672C\n */\n labels?: {\n days?: string\n hours?: string\n minutes?: string\n seconds?: string\n }\n}\n\nexport interface TitlePropsBase {\n data: {\n /**\n * \u4E3B\u6807\u9898\n */\n title?: string\n caption?: string\n /**\n * \u526F\u6807\u9898\n */\n subtitle?: string\n /**\n * \u5012\u8BA1\u65F6\u914D\u7F6E\n */\n countdown?: CountdownConfig\n /**\n * \u662F\u5426\u663E\u793A\u5012\u8BA1\u65F6\n * @default false\n */\n showCountdown?: boolean\n /**\n * \u7279\u6027\u5217\u8868\uFF0C\u6700\u591A\u652F\u63013\u4E2A\n */\n features?: Feature[]\n /**\n * \u4E3B\u9898\u8272\n */\n theme?: Theme\n /**\n * \u6269\u5C55\u6570\u636E\n */\n extensions?: any\n /**\n * \u5BF9\u9F50\u65B9\u5F0F\n * @default 'left'\n */\n align?: 'left' | 'center' | 'right'\n }\n weight?: 'medium' | 'semibold' | 'bold' | 'extraBold' | 'black'\n /**\n * \u81EA\u5B9A\u4E49\u7C7B\u540D\n */\n className?: string\n as?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6'\n}\n\n/** @deprecated Use TitlePropsBase and extend with React.HTMLAttributes<HTMLDivElement> */\nexport type TitleProps = TitlePropsBase\n"],
4
+ "sourcesContent": ["import type { Theme } from '../../types/props.js'\nimport type { SerializedEditorState, SerializedLexicalNode } from 'lexical'\n\nexport interface Feature {\n /**\n * \u7279\u6027\u6807\u9898\n */\n title: string\n}\n\n/**\n * \u5012\u8BA1\u65F6\u914D\u7F6E\n */\nexport interface CountdownConfig {\n /**\n * \u65B0 CMS \u5B57\u6BB5\uFF0CISO 8601 \u5E26\u65F6\u533A\uFF08\u5982 '2026-03-28T16:00:00.000Z'\uFF09\u3002\u4F18\u5148\u4E8E targetDate \u4F7F\u7528\u3002\n */\n targetDateTime?: string\n /**\n * \u65F6\u533A\u6807\u8BC6\u7B26\uFF08\u5982 'Asia/Shanghai'\uFF09\uFF0C\u4E0E targetDateTime \u914D\u5408\u4F7F\u7528\n */\n targetDateTime_tz?: string\n /**\n * \u5012\u8BA1\u65F6\u76EE\u6807\u65F6\u95F4\uFF08ISO 8601 \u683C\u5F0F\u6216\u4EFB\u4F55 dayjs \u652F\u6301\u7684\u683C\u5F0F\uFF09\n * @deprecated \u8BF7\u4F7F\u7528 targetDateTime \u66FF\u4EE3\u3002\u4EC5\u7528\u4E8E\u517C\u5BB9\u65E7 CMS \u6570\u636E\u3002\n */\n targetDate?: string\n /**\n * \u662F\u5426\u663E\u793A\u5929\u6570\n * @default true\n */\n showDays?: boolean\n /**\n * \u662F\u5426\u663E\u793A\u5C0F\u65F6\n * @default true\n */\n showHours?: boolean\n /**\n * \u662F\u5426\u663E\u793A\u5206\u949F\n * @default true\n */\n showMinutes?: boolean\n /**\n * \u662F\u5426\u663E\u793A\u79D2\u6570\n * @default true\n */\n showSeconds?: boolean\n /**\n * \u81EA\u5B9A\u4E49\u6807\u7B7E\u6587\u672C\n */\n labels?: {\n days?: string\n hours?: string\n minutes?: string\n seconds?: string\n }\n}\n\n/**\n * \u8BED\u4E49\u5316\u6837\u5F0F\u7C7B\u540D\u914D\u7F6E\n */\nexport interface TitleClassNames {\n /**\n * \u6700\u5916\u5C42\u5BB9\u5668\u7C7B\u540D\n */\n wrapper?: string\n /**\n * \u5185\u5BB9\u5BB9\u5668\u7C7B\u540D\n */\n container?: string\n /**\n * \u4E3B\u6807\u9898\u7C7B\u540D\n */\n title?: string\n /**\n * \u526F\u6807\u9898\u7C7B\u540D\n */\n subtitle?: string\n /**\n * \u6B63\u6587\u5185\u5BB9\u7C7B\u540D\n */\n content?: string\n /**\n * \u6309\u94AE\u7C7B\u540D\n */\n button?: string\n /**\n * \u5012\u8BA1\u65F6\u7C7B\u540D\n */\n countdown?: string\n}\n\nexport interface TitlePropsBase {\n data: {\n /**\n * \u4E3B\u6807\u9898\n */\n title?: string\n /**\n * \u6807\u9898\u5C3A\u5BF8\uFF0C1-5\n */\n\n titleSize?: number\n caption?: string\n /**\n * \u526F\u6807\u9898\n */\n subtitle?: string\n /**\n * \u6B63\u6587\u5185\u5BB9\uFF08\u5BCC\u6587\u672C\uFF0C\u652F\u6301 HTML \u5B57\u7B26\u4E32\u6216 Payload CMS Lexical \u683C\u5F0F\uFF09\n */\n content?: string | SerializedEditorState<SerializedLexicalNode>\n /**\n * \u5012\u8BA1\u65F6\u914D\u7F6E\n */\n countdown?: CountdownConfig\n /**\n * \u662F\u5426\u663E\u793A\u5012\u8BA1\u65F6\n * @default false\n */\n showCountdown?: boolean\n /**\n * \u7279\u6027\u5217\u8868\uFF0C\u6700\u591A\u652F\u63013\u4E2A\n */\n features?: Feature[]\n /**\n * \u4E3B\u9898\u8272\n */\n theme?: Theme\n /**\n * \u6269\u5C55\u6570\u636E\n */\n extensions?: any\n /**\n * \u5BF9\u9F50\u65B9\u5F0F\n * @default 'left'\n */\n align?: 'left' | 'center' | 'right'\n }\n weight?: 'medium' | 'semibold' | 'bold' | 'extraBold' | 'black'\n /**\n * \u81EA\u5B9A\u4E49\u7C7B\u540D\uFF08\u5E94\u7528\u4E8E\u5185\u5BB9\u5BB9\u5668\uFF09\n * @deprecated \u8BF7\u4F7F\u7528 classNames.container \u66FF\u4EE3\n */\n className?: string\n /**\n * \u8BED\u4E49\u5316\u7C7B\u540D\u914D\u7F6E\uFF0C\u652F\u6301\u7CBE\u7EC6\u63A7\u5236\u5404\u4E2A\u90E8\u5206\u7684\u6837\u5F0F\n */\n classNames?: TitleClassNames\n as?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6'\n /**\n * learn more / rule / note \u7684\u70B9\u51FBcallback\n * @returns\n */\n onButtonClick?: () => void\n}\n\n/** @deprecated Use TitlePropsBase and extend with React.HTMLAttributes<HTMLDivElement> */\nexport type TitleProps = TitlePropsBase\n"],
5
5
  "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
6
  "names": ["types_exports", "__toCommonJS"]
7
7
  }
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import type { VideoFeatureProps } from './types.js';
3
- declare const _default: React.ForwardRefExoticComponent<Omit<VideoFeatureProps & React.RefAttributes<HTMLDivElement>, "container" | keyof import("../../shared/Styles.js").StylesProps> & import("../../shared/Styles.js").StylesProps & import("../../shared/Styles.js").ContainerProps & React.RefAttributes<unknown>> & {
3
+ declare const _default: React.ForwardRefExoticComponent<Omit<VideoFeatureProps & React.RefAttributes<HTMLDivElement>, "container" | keyof import("../../shared/Styles.js").StylesProps> & import("../../shared/Styles.js").StylesProps & import("../WheelLottery/index.js").ContainerProps & React.RefAttributes<unknown>> & {
4
4
  readonly $$typeof: symbol;
5
5
  };
6
6
  export default _default;
@@ -1,2 +1,2 @@
1
- "use strict";"use client";var P=Object.create;var d=Object.defineProperty;var z=Object.getOwnPropertyDescriptor;var C=Object.getOwnPropertyNames;var N=Object.getPrototypeOf,w=Object.prototype.hasOwnProperty;var R=(e,a)=>{for(var o in a)d(e,o,{get:a[o],enumerable:!0})},g=(e,a,o,r)=>{if(a&&typeof a=="object"||typeof a=="function")for(let i of C(a))!w.call(e,i)&&i!==o&&d(e,i,{get:()=>a[i],enumerable:!(r=z(a,i))||r.enumerable});return e};var B=(e,a,o)=>(o=e!=null?P(N(e)):{},g(a||!e||!e.__esModule?d(o,"default",{value:e,enumerable:!0}):o,e)),M=e=>g(d({},"__esModule",{value:!0}),e);var T={};R(T,{BaseModal:()=>x,default:()=>O});module.exports=M(T);var t=require("react/jsx-runtime"),H=require("react"),s=B(require("@radix-ui/react-dialog")),u=require("../../components/index.js"),l=require("../../helpers/index.js");const x=({isOpen:e,onClose:a,children:o,maxWidth:r="max-w-[358px] laptop:max-w-[480px]",background:i="bg-white",showCloseButton:f=!0,className:b,title:n,description:v,ariaLabelledBy:c,theme:h="light"})=>{const p=c||void 0,m=`${c||"base-modal"}-description`,k=n||"Dialog",y=v||n||"Dialog content";return(0,t.jsx)(s.Root,{open:e,onOpenChange:D=>!D&&a(),children:(0,t.jsxs)(s.Portal,{children:[(0,t.jsx)(s.Overlay,{className:(0,l.cn)("fixed inset-0 z-[60]","bg-black/40","data-[state=open]:animate-in data-[state=closed]:animate-out","data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",h==="dark"?"aiui-dark":"")}),(0,t.jsxs)(s.Content,{className:(0,l.cn)("fixed left-1/2 top-1/2 z-[70]","-translate-x-1/2 -translate-y-1/2","l-tablet:max-w-[90%] w-full shadow-2xl","rounded-box",r,i,"data-[state=open]:animate-in data-[state=closed]:animate-out","data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0","data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95","duration-300",b),"aria-labelledby":p,"aria-describedby":m,"aria-modal":"true",children:[(0,t.jsx)(s.Title,{id:p,className:"sr-only",children:k}),(0,t.jsx)(s.Description,{id:m,className:"sr-only",children:y}),(0,t.jsxs)("div",{className:(0,l.cn)("modal-close","flex items-center justify-between","laptop:p-4 px-2 pb-1 pt-2"),children:[n&&(0,t.jsx)(u.Heading,{size:2,className:"tracking-[-0.32px]",children:n}),f&&(0,t.jsx)(s.Close,{asChild:!0,children:(0,t.jsx)("button",{className:(0,l.cn)("relative z-10 shrink-0 cursor-pointer","flex items-center justify-center","laptop:size-[24px] size-[20px]","desktop:size-[28px]",!n&&"ml-auto"),"aria-label":"\u5173\u95ED\u5F39\u7A97",children:(0,t.jsxs)("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"size-full",children:[(0,t.jsx)("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),(0,t.jsx)("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})})})]}),o]})]})})};var O=x;
1
+ "use strict";"use client";var P=Object.create;var d=Object.defineProperty;var z=Object.getOwnPropertyDescriptor;var C=Object.getOwnPropertyNames;var N=Object.getPrototypeOf,w=Object.prototype.hasOwnProperty;var R=(e,a)=>{for(var o in a)d(e,o,{get:a[o],enumerable:!0})},g=(e,a,o,r)=>{if(a&&typeof a=="object"||typeof a=="function")for(let i of C(a))!w.call(e,i)&&i!==o&&d(e,i,{get:()=>a[i],enumerable:!(r=z(a,i))||r.enumerable});return e};var B=(e,a,o)=>(o=e!=null?P(N(e)):{},g(a||!e||!e.__esModule?d(o,"default",{value:e,enumerable:!0}):o,e)),M=e=>g(d({},"__esModule",{value:!0}),e);var T={};R(T,{BaseModal:()=>x,default:()=>O});module.exports=M(T);var t=require("react/jsx-runtime"),H=require("react"),s=B(require("@radix-ui/react-dialog")),u=require("../../components/index.js"),l=require("../../helpers/index.js");const x=({isOpen:e,onClose:a,children:o,maxWidth:r="max-w-[358px] laptop:max-w-[480px]",background:i="bg-white",showCloseButton:f=!0,className:b,title:n,description:v,ariaLabelledBy:c,theme:h="light"})=>{const p=c||void 0,m=`${c||"base-modal"}-description`,k=n||"Dialog",y=v||n||"Dialog content";return(0,t.jsx)(s.Root,{open:e,onOpenChange:D=>!D&&a(),children:(0,t.jsxs)(s.Portal,{children:[(0,t.jsx)(s.Overlay,{className:(0,l.cn)("fixed inset-0 z-[100]","bg-black/40","data-[state=open]:animate-in data-[state=closed]:animate-out","data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",h==="dark"?"aiui-dark":"")}),(0,t.jsxs)(s.Content,{className:(0,l.cn)("fixed left-1/2 top-1/2 z-[110]","-translate-x-1/2 -translate-y-1/2","md-tablet:max-w-[90%] w-full shadow-2xl","rounded-box",r,i,"data-[state=open]:animate-in data-[state=closed]:animate-out","data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0","data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95","duration-300",b),"aria-labelledby":p,"aria-describedby":m,"aria-modal":"true",children:[(0,t.jsx)(s.Title,{id:p,className:"sr-only",children:k}),(0,t.jsx)(s.Description,{id:m,className:"sr-only",children:y}),(0,t.jsxs)("div",{className:(0,l.cn)("modal-close","flex items-center justify-between","laptop:p-4 px-2 pb-1 pt-2"),children:[n&&(0,t.jsx)(u.Heading,{size:2,className:"tracking-[-0.32px]",children:n}),f&&(0,t.jsx)(s.Close,{asChild:!0,children:(0,t.jsx)("button",{className:(0,l.cn)("relative z-10 shrink-0 cursor-pointer","flex items-center justify-center","laptop:size-[24px] size-[20px]","desktop:size-[28px]",!n&&"ml-auto"),"aria-label":"\u5173\u95ED\u5F39\u7A97",children:(0,t.jsxs)("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"size-full",children:[(0,t.jsx)("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),(0,t.jsx)("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})})})]}),o]})]})})};var O=x;
2
2
  //# sourceMappingURL=BaseModal.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/biz-components/WheelLottery/BaseModal.tsx"],
4
- "sourcesContent": ["/**\n * BaseModal - \u901A\u7528\u5F39\u7A97\u57FA\u7840\u7EC4\u4EF6\n *\n * \u57FA\u4E8E Radix UI Dialog \u5B9E\u73B0\u7684\u7EDF\u4E00\u5F39\u7A97\u7EC4\u4EF6\uFF0C\u63D0\u4F9B\u906E\u7F69\u5C42\u3001\u5173\u95ED\u6309\u94AE\u7B49\u529F\u80FD\n *\n * @module BaseModal\n * @date 2026-01-29\n */\n\n'use client'\n\nimport React from 'react'\nimport * as DialogPrimitive from '@radix-ui/react-dialog'\nimport { Heading } from '../../components/index.js'\nimport { cn } from '../../helpers/index.js'\n\nexport interface BaseModalProps {\n /**\n * \u662F\u5426\u663E\u793A\u5F39\u7A97\n */\n isOpen: boolean\n\n /**\n * \u5173\u95ED\u5F39\u7A97\u56DE\u8C03\n */\n onClose: () => void\n\n /**\n * \u5F39\u7A97\u5185\u5BB9\n */\n children: React.ReactNode\n\n /**\n * \u5F39\u7A97\u6700\u5927\u5BBD\u5EA6\u7C7B\u540D\n * @default 'max-w-[358px] laptop:max-w-[480px]'\n */\n maxWidth?: string\n\n /**\n * \u5F39\u7A97\u80CC\u666F\u6E10\u53D8\n * @default 'bg-white'\n */\n background?: string\n\n /**\n * \u662F\u5426\u663E\u793A\u5173\u95ED\u6309\u94AE\n * @default true\n */\n showCloseButton?: boolean\n\n /**\n * \u81EA\u5B9A\u4E49\u7C7B\u540D\n */\n className?: string\n\n /**\n * title \u5F39\u7A97\u6807\u9898\n */\n title?: string\n\n description?: string\n\n /**\n * ARIA \u6807\u7B7E\n */\n ariaLabelledBy?: string\n\n /**\n * \u4E3B\u9898\u6A21\u5F0F\n * @default 'light'\n */\n theme?: 'light' | 'dark'\n}\n\n/**\n * BaseModal \u901A\u7528\u5F39\u7A97\u7EC4\u4EF6\uFF08\u57FA\u4E8E Radix UI Dialog\uFF09\n */\nexport const BaseModal: React.FC<BaseModalProps> = ({\n isOpen,\n onClose,\n children,\n maxWidth = 'max-w-[358px] laptop:max-w-[480px]',\n background = 'bg-white',\n showCloseButton = true,\n className,\n title,\n description,\n ariaLabelledBy,\n theme = 'light',\n}) => {\n const titleId = ariaLabelledBy || undefined\n const descriptionId = `${ariaLabelledBy || 'base-modal'}-description`\n const resolvedTitle = title || 'Dialog'\n const resolvedDescription = description || title || 'Dialog content'\n\n return (\n <DialogPrimitive.Root open={isOpen} onOpenChange={open => !open && onClose()}>\n <DialogPrimitive.Portal>\n {/* \u906E\u7F69\u5C42 */}\n <DialogPrimitive.Overlay\n className={cn(\n 'fixed inset-0 z-[60]',\n 'bg-black/40',\n // Radix UI \u52A8\u753B\n 'data-[state=open]:animate-in data-[state=closed]:animate-out',\n 'data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0',\n theme === 'dark' ? 'aiui-dark' : ''\n )}\n />\n\n {/* \u5F39\u7A97\u5185\u5BB9 */}\n <DialogPrimitive.Content\n className={cn(\n 'fixed left-1/2 top-1/2 z-[70]',\n '-translate-x-1/2 -translate-y-1/2',\n 'l-tablet:max-w-[90%] w-full shadow-2xl',\n 'rounded-box',\n maxWidth,\n background,\n // Radix UI \u52A8\u753B\n 'data-[state=open]:animate-in data-[state=closed]:animate-out',\n 'data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0',\n 'data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95',\n 'duration-300',\n className\n )}\n aria-labelledby={titleId}\n aria-describedby={descriptionId}\n aria-modal=\"true\"\n >\n <DialogPrimitive.Title id={titleId} className=\"sr-only\">\n {resolvedTitle}\n </DialogPrimitive.Title>\n\n <DialogPrimitive.Description id={descriptionId} className=\"sr-only\">\n {resolvedDescription}\n </DialogPrimitive.Description>\n\n {/* \u6807\u9898\u548C\u5173\u95ED\u6309\u94AE\u680F */}\n <div className={cn('modal-close', 'flex items-center justify-between', 'laptop:p-4 px-2 pb-1 pt-2')}>\n {title && (\n <Heading size={2} className=\"tracking-[-0.32px]\">\n {title}\n </Heading>\n )}\n {showCloseButton && (\n <DialogPrimitive.Close asChild>\n <button\n className={cn(\n 'relative z-10 shrink-0 cursor-pointer',\n 'flex items-center justify-center',\n 'laptop:size-[24px] size-[20px]',\n 'desktop:size-[28px]',\n // \u79FB\u9664 title \u65F6\u81EA\u52A8\u5C45\u53F3\n !title && 'ml-auto'\n )}\n aria-label=\"\u5173\u95ED\u5F39\u7A97\"\n >\n <svg\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className=\"size-full\"\n >\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\" />\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\" />\n </svg>\n </button>\n </DialogPrimitive.Close>\n )}\n </div>\n\n {/* \u5F39\u7A97\u5185\u5BB9 */}\n {children}\n </DialogPrimitive.Content>\n </DialogPrimitive.Portal>\n </DialogPrimitive.Root>\n )\n}\n\nexport default BaseModal\n"],
5
- "mappings": "ukBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,eAAAE,EAAA,YAAAC,IAAA,eAAAC,EAAAJ,GAmGQ,IAAAK,EAAA,6BAxFRC,EAAkB,iBAClBC,EAAiC,qCACjCC,EAAwB,qCACxBC,EAAmB,kCA+DZ,MAAMP,EAAsC,CAAC,CAClD,OAAAQ,EACA,QAAAC,EACA,SAAAC,EACA,SAAAC,EAAW,qCACX,WAAAC,EAAa,WACb,gBAAAC,EAAkB,GAClB,UAAAC,EACA,MAAAC,EACA,YAAAC,EACA,eAAAC,EACA,MAAAC,EAAQ,OACV,IAAM,CACJ,MAAMC,EAAUF,GAAkB,OAC5BG,EAAgB,GAAGH,GAAkB,YAAY,eACjDI,EAAgBN,GAAS,SACzBO,EAAsBN,GAAeD,GAAS,iBAEpD,SACE,OAACV,EAAgB,KAAhB,CAAqB,KAAMG,EAAQ,aAAce,GAAQ,CAACA,GAAQd,EAAQ,EACzE,oBAACJ,EAAgB,OAAhB,CAEC,oBAACA,EAAgB,QAAhB,CACC,aAAW,MACT,uBACA,cAEA,+DACA,6DACAa,IAAU,OAAS,YAAc,EACnC,EACF,KAGA,QAACb,EAAgB,QAAhB,CACC,aAAW,MACT,gCACA,oCACA,yCACA,cACAM,EACAC,EAEA,+DACA,6DACA,+DACA,eACAE,CACF,EACA,kBAAiBK,EACjB,mBAAkBC,EAClB,aAAW,OAEX,oBAACf,EAAgB,MAAhB,CAAsB,GAAIc,EAAS,UAAU,UAC3C,SAAAE,EACH,KAEA,OAAChB,EAAgB,YAAhB,CAA4B,GAAIe,EAAe,UAAU,UACvD,SAAAE,EACH,KAGA,QAAC,OAAI,aAAW,MAAG,cAAe,oCAAqC,2BAA2B,EAC/F,UAAAP,MACC,OAAC,WAAQ,KAAM,EAAG,UAAU,qBACzB,SAAAA,EACH,EAEDF,MACC,OAACR,EAAgB,MAAhB,CAAsB,QAAO,GAC5B,mBAAC,UACC,aAAW,MACT,wCACA,mCACA,iCACA,sBAEA,CAACU,GAAS,SACZ,EACA,aAAW,2BAEX,oBAAC,OACC,QAAQ,YACR,KAAK,OACL,OAAO,eACP,YAAY,IACZ,cAAc,QACd,eAAe,QACf,UAAU,YAEV,oBAAC,QAAK,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,KACpC,OAAC,QAAK,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,GACtC,EACF,EACF,GAEJ,EAGCL,GACH,GACF,EACF,CAEJ,EAEA,IAAOT,EAAQD",
4
+ "sourcesContent": ["/**\n * BaseModal - \u901A\u7528\u5F39\u7A97\u57FA\u7840\u7EC4\u4EF6\n *\n * \u57FA\u4E8E Radix UI Dialog \u5B9E\u73B0\u7684\u7EDF\u4E00\u5F39\u7A97\u7EC4\u4EF6\uFF0C\u63D0\u4F9B\u906E\u7F69\u5C42\u3001\u5173\u95ED\u6309\u94AE\u7B49\u529F\u80FD\n *\n * @module BaseModal\n * @date 2026-01-29\n */\n\n'use client'\n\nimport React from 'react'\nimport * as DialogPrimitive from '@radix-ui/react-dialog'\nimport { Heading } from '../../components/index.js'\nimport { cn } from '../../helpers/index.js'\n\nexport interface BaseModalProps {\n /**\n * \u662F\u5426\u663E\u793A\u5F39\u7A97\n */\n isOpen: boolean\n\n /**\n * \u5173\u95ED\u5F39\u7A97\u56DE\u8C03\n */\n onClose: () => void\n\n /**\n * \u5F39\u7A97\u5185\u5BB9\n */\n children: React.ReactNode\n\n /**\n * \u5F39\u7A97\u6700\u5927\u5BBD\u5EA6\u7C7B\u540D\n * @default 'max-w-[358px] laptop:max-w-[480px]'\n */\n maxWidth?: string\n\n /**\n * \u5F39\u7A97\u80CC\u666F\u6E10\u53D8\n * @default 'bg-white'\n */\n background?: string\n\n /**\n * \u662F\u5426\u663E\u793A\u5173\u95ED\u6309\u94AE\n * @default true\n */\n showCloseButton?: boolean\n\n /**\n * \u81EA\u5B9A\u4E49\u7C7B\u540D\n */\n className?: string\n\n /**\n * title \u5F39\u7A97\u6807\u9898\n */\n title?: string\n\n description?: string\n\n /**\n * ARIA \u6807\u7B7E\n */\n ariaLabelledBy?: string\n\n /**\n * \u4E3B\u9898\u6A21\u5F0F\n * @default 'light'\n */\n theme?: 'light' | 'dark'\n}\n\n/**\n * BaseModal \u901A\u7528\u5F39\u7A97\u7EC4\u4EF6\uFF08\u57FA\u4E8E Radix UI Dialog\uFF09\n */\nexport const BaseModal: React.FC<BaseModalProps> = ({\n isOpen,\n onClose,\n children,\n maxWidth = 'max-w-[358px] laptop:max-w-[480px]',\n background = 'bg-white',\n showCloseButton = true,\n className,\n title,\n description,\n ariaLabelledBy,\n theme = 'light',\n}) => {\n const titleId = ariaLabelledBy || undefined\n const descriptionId = `${ariaLabelledBy || 'base-modal'}-description`\n const resolvedTitle = title || 'Dialog'\n const resolvedDescription = description || title || 'Dialog content'\n\n return (\n <DialogPrimitive.Root open={isOpen} onOpenChange={open => !open && onClose()}>\n <DialogPrimitive.Portal>\n {/* \u906E\u7F69\u5C42 */}\n <DialogPrimitive.Overlay\n className={cn(\n 'fixed inset-0 z-[100]',\n 'bg-black/40',\n // Radix UI \u52A8\u753B\n 'data-[state=open]:animate-in data-[state=closed]:animate-out',\n 'data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0',\n theme === 'dark' ? 'aiui-dark' : ''\n )}\n />\n\n {/* \u5F39\u7A97\u5185\u5BB9 */}\n <DialogPrimitive.Content\n className={cn(\n 'fixed left-1/2 top-1/2 z-[110]',\n '-translate-x-1/2 -translate-y-1/2',\n 'md-tablet:max-w-[90%] w-full shadow-2xl',\n 'rounded-box',\n maxWidth,\n background,\n // Radix UI \u52A8\u753B\n 'data-[state=open]:animate-in data-[state=closed]:animate-out',\n 'data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0',\n 'data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95',\n 'duration-300',\n className\n )}\n aria-labelledby={titleId}\n aria-describedby={descriptionId}\n aria-modal=\"true\"\n >\n <DialogPrimitive.Title id={titleId} className=\"sr-only\">\n {resolvedTitle}\n </DialogPrimitive.Title>\n\n <DialogPrimitive.Description id={descriptionId} className=\"sr-only\">\n {resolvedDescription}\n </DialogPrimitive.Description>\n\n {/* \u6807\u9898\u548C\u5173\u95ED\u6309\u94AE\u680F */}\n <div className={cn('modal-close', 'flex items-center justify-between', 'laptop:p-4 px-2 pb-1 pt-2')}>\n {title && (\n <Heading size={2} className=\"tracking-[-0.32px]\">\n {title}\n </Heading>\n )}\n {showCloseButton && (\n <DialogPrimitive.Close asChild>\n <button\n className={cn(\n 'relative z-10 shrink-0 cursor-pointer',\n 'flex items-center justify-center',\n 'laptop:size-[24px] size-[20px]',\n 'desktop:size-[28px]',\n // \u79FB\u9664 title \u65F6\u81EA\u52A8\u5C45\u53F3\n !title && 'ml-auto'\n )}\n aria-label=\"\u5173\u95ED\u5F39\u7A97\"\n >\n <svg\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className=\"size-full\"\n >\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\" />\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\" />\n </svg>\n </button>\n </DialogPrimitive.Close>\n )}\n </div>\n\n {/* \u5F39\u7A97\u5185\u5BB9 */}\n {children}\n </DialogPrimitive.Content>\n </DialogPrimitive.Portal>\n </DialogPrimitive.Root>\n )\n}\n\nexport default BaseModal\n"],
5
+ "mappings": "ukBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,eAAAE,EAAA,YAAAC,IAAA,eAAAC,EAAAJ,GAmGQ,IAAAK,EAAA,6BAxFRC,EAAkB,iBAClBC,EAAiC,qCACjCC,EAAwB,qCACxBC,EAAmB,kCA+DZ,MAAMP,EAAsC,CAAC,CAClD,OAAAQ,EACA,QAAAC,EACA,SAAAC,EACA,SAAAC,EAAW,qCACX,WAAAC,EAAa,WACb,gBAAAC,EAAkB,GAClB,UAAAC,EACA,MAAAC,EACA,YAAAC,EACA,eAAAC,EACA,MAAAC,EAAQ,OACV,IAAM,CACJ,MAAMC,EAAUF,GAAkB,OAC5BG,EAAgB,GAAGH,GAAkB,YAAY,eACjDI,EAAgBN,GAAS,SACzBO,EAAsBN,GAAeD,GAAS,iBAEpD,SACE,OAACV,EAAgB,KAAhB,CAAqB,KAAMG,EAAQ,aAAce,GAAQ,CAACA,GAAQd,EAAQ,EACzE,oBAACJ,EAAgB,OAAhB,CAEC,oBAACA,EAAgB,QAAhB,CACC,aAAW,MACT,wBACA,cAEA,+DACA,6DACAa,IAAU,OAAS,YAAc,EACnC,EACF,KAGA,QAACb,EAAgB,QAAhB,CACC,aAAW,MACT,iCACA,oCACA,0CACA,cACAM,EACAC,EAEA,+DACA,6DACA,+DACA,eACAE,CACF,EACA,kBAAiBK,EACjB,mBAAkBC,EAClB,aAAW,OAEX,oBAACf,EAAgB,MAAhB,CAAsB,GAAIc,EAAS,UAAU,UAC3C,SAAAE,EACH,KAEA,OAAChB,EAAgB,YAAhB,CAA4B,GAAIe,EAAe,UAAU,UACvD,SAAAE,EACH,KAGA,QAAC,OAAI,aAAW,MAAG,cAAe,oCAAqC,2BAA2B,EAC/F,UAAAP,MACC,OAAC,WAAQ,KAAM,EAAG,UAAU,qBACzB,SAAAA,EACH,EAEDF,MACC,OAACR,EAAgB,MAAhB,CAAsB,QAAO,GAC5B,mBAAC,UACC,aAAW,MACT,wCACA,mCACA,iCACA,sBAEA,CAACU,GAAS,SACZ,EACA,aAAW,2BAEX,oBAAC,OACC,QAAQ,YACR,KAAK,OACL,OAAO,eACP,YAAY,IACZ,cAAc,QACd,eAAe,QACf,UAAU,YAEV,oBAAC,QAAK,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,KACpC,OAAC,QAAK,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,GACtC,EACF,EACF,GAEJ,EAGCL,GACH,GACF,EACF,CAEJ,EAEA,IAAOT,EAAQD",
6
6
  "names": ["BaseModal_exports", "__export", "BaseModal", "BaseModal_default", "__toCommonJS", "import_jsx_runtime", "import_react", "DialogPrimitive", "import_components", "import_helpers", "isOpen", "onClose", "children", "maxWidth", "background", "showCloseButton", "className", "title", "description", "ariaLabelledBy", "theme", "titleId", "descriptionId", "resolvedTitle", "resolvedDescription", "open"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";"use client";var o=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var x=Object.getOwnPropertyNames;var c=Object.prototype.hasOwnProperty;var f=(e,t)=>{for(var l in t)o(e,l,{get:t[l],enumerable:!0})},h=(e,t,l,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of x(t))!c.call(e,a)&&a!==l&&o(e,a,{get:()=>t[a],enumerable:!(i=m(t,a))||i.enumerable});return e};var g=e=>h(o({},"__esModule",{value:!0}),e);var M={};f(M,{ErrorModal:()=>p,default:()=>L});module.exports=g(M);var C=require("react/jsx-runtime"),u=require("react"),s=require("./BaseModal.js"),r=require("../../components/index.js");const p=({isOpen:e,onClose:t,title:l="Sorry, You Didn't Win This Time",message:i,confirmText:a="OK, I get",className:d,theme:n="light"})=>(0,C.jsx)(s.BaseModal,{isOpen:e,onClose:t,maxWidth:"max-w-[326px] laptop:max-w-[420px]",background:"bg-white",className:`!z-[60] ${d||""}`,ariaLabelledBy:"error-modal-title",theme:n,children:(0,C.jsxs)("div",{className:"laptop:px-8 laptop:pb-8 px-6 pb-6",children:[(0,C.jsx)("div",{className:"mb-6 flex justify-center",children:(0,C.jsx)("div",{className:"flex size-[80px] items-center justify-center rounded-full",children:(0,C.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"80",height:"80",viewBox:"0 0 80 80",fill:"none",children:[(0,C.jsx)("path",{d:"M63.5691 63.5727C68.2304 58.9107 71.4047 52.9713 72.6905 46.5054C73.9764 40.0395 73.316 33.3374 70.793 27.2468C68.27 21.1562 63.9975 15.9505 58.516 12.2879C53.0344 8.6254 46.5899 6.67053 39.9974 6.67053C33.4049 6.67053 26.9604 8.6254 21.4788 12.2879C15.9973 15.9505 11.7249 21.1562 9.20182 27.2468C6.67878 33.3374 6.01843 40.0395 7.30427 46.5054C8.59011 52.9713 11.7644 58.9107 16.4257 63.5727C19.5211 66.6684 23.1959 69.1241 27.2404 70.7995C31.2848 72.4749 35.6197 73.3372 39.9974 73.3372C44.3751 73.3372 48.71 72.4749 52.7545 70.7995C56.7989 69.1241 60.4737 66.6684 63.5691 63.5727Z",fill:"#FFCC66"}),(0,C.jsx)("path",{d:"M57.3792 11.5137C61.4604 17.8614 63.2668 25.4062 62.503 32.914C61.7393 40.4218 58.4505 47.4482 53.1746 52.8441C47.8988 58.24 40.9481 61.6859 33.4594 62.6183C25.9706 63.5507 18.3872 61.9144 11.9492 57.977C14.6587 62.1912 18.2833 65.7405 22.5534 68.3609C26.8236 70.9813 31.6296 72.6054 36.6139 73.1125C41.5983 73.6195 46.6329 72.9965 51.3433 71.2897C56.0537 69.5829 60.3187 66.8363 63.8213 63.254C67.3239 59.6717 69.974 55.346 71.5744 50.5984C73.1749 45.8508 73.6845 40.8035 73.0655 35.8318C72.4465 30.8601 70.7147 26.0919 67.9989 21.8817C65.2832 17.6715 61.6533 14.1277 57.3792 11.5137Z",fill:"#FFC450"}),(0,C.jsx)("path",{opacity:"0.4",d:"M11.204 43.58C11.1862 37.1148 13.1937 30.8063 16.9446 25.5404C20.6955 20.2745 26.0015 16.3156 32.1175 14.2196C38.2336 12.1235 44.8525 11.9956 51.045 13.8538C57.2374 15.712 62.6924 19.4629 66.644 24.58C64.5168 20.9213 61.6618 17.7377 58.2555 15.226C54.8493 12.7143 50.964 10.9279 46.84 9.97716C42.716 9.02646 38.4408 8.93165 34.2787 9.69861C30.1166 10.4656 26.156 12.078 22.6418 14.4362C19.1275 16.7944 16.1342 19.8484 13.8469 23.4092C11.5596 26.9701 10.027 30.9622 9.34361 35.1388C8.66026 39.3155 8.84077 43.5879 9.87398 47.692C10.9072 51.7962 12.7711 55.6448 15.3506 59C12.6353 54.3146 11.2049 48.9954 11.204 43.58Z",fill:"white"}),(0,C.jsx)("path",{d:"M40 58.1469C43.3333 58.1469 46 53.5802 46 47.9436C46 42.3069 43.3067 37.7402 40 37.7402C36.6933 37.7402 34 42.3102 34 47.9436C34 53.5769 36.6667 58.1469 40 58.1469Z",fill:"#333333"}),(0,C.jsx)("path",{d:"M45.0763 53.4168C40.6863 51.0035 37.113 52.3735 35.043 53.7502C36.1296 56.4168 37.943 58.1635 39.9963 58.1635C42.1363 58.1535 43.9996 56.2635 45.0763 53.4168Z",fill:"#F84D4F"}),(0,C.jsx)("path",{d:"M29.6913 33.373L20.918 38.9564L21.1413 67.4864C23.7747 69.2998 26.6568 70.7224 29.698 71.7097L29.6913 33.373ZM50.3313 33.373L59.0913 38.9564L58.8746 67.4864C56.2413 69.2998 53.3591 70.7224 50.318 71.7097L50.3313 33.373Z",fill:"#21D2C5"}),(0,C.jsx)("path",{d:"M22.0217 39.9506C21.7281 39.9495 21.4421 39.8572 21.2032 39.6864C20.9643 39.5156 20.7844 39.2748 20.6884 38.9973C20.5918 38.7187 20.5848 38.4168 20.6684 38.134C20.7531 37.8525 20.9218 37.6037 21.1517 37.4206L25.9617 33.6673L21.0017 30.754C20.7618 30.6135 20.5684 30.4055 20.4459 30.1559C20.3233 29.9063 20.2769 29.6261 20.3124 29.3503C20.3479 29.0745 20.4639 28.8153 20.6457 28.6049C20.8276 28.3946 21.0673 28.2424 21.3351 28.1673C21.6986 28.0738 22.0844 28.1277 22.4084 28.3173L29.1817 32.294C29.3803 32.4109 29.5474 32.5745 29.6684 32.7706C29.7911 32.9687 29.8632 33.1939 29.8784 33.4265C29.8935 33.659 29.8511 33.8917 29.7551 34.104C29.6613 34.3147 29.517 34.499 29.3351 34.6406L22.8851 39.6673C22.6373 39.856 22.3332 39.9558 22.0217 39.9506ZM57.9817 39.9506C57.6662 39.9515 57.3596 39.8458 57.1117 39.6506L50.6684 34.6306C50.4845 34.4879 50.3381 34.3025 50.2417 34.0906C50.0963 33.7713 50.0751 33.4092 50.1824 33.0751C50.2896 32.7411 50.5176 32.459 50.8217 32.284L57.5817 28.304C57.7426 28.1992 57.9228 28.1278 58.1118 28.094C58.3007 28.0602 58.4946 28.0648 58.6817 28.1073C58.869 28.1498 59.0451 28.2316 59.1984 28.3473C59.3536 28.4595 59.4841 28.6025 59.5817 28.7673C59.6787 28.9331 59.741 29.1168 59.7651 29.3073C59.7895 29.4977 59.7749 29.691 59.7222 29.8755C59.6695 30.0601 59.5797 30.2319 59.4584 30.3806C59.3341 30.5324 59.1783 30.6552 59.0017 30.7406L54.0417 33.6673L58.8484 37.414C59.0217 37.5492 59.161 37.7229 59.2554 37.9214C59.3497 38.1199 59.3965 38.3376 59.3919 38.5573C59.3874 38.777 59.3317 38.9927 59.2293 39.1871C59.1268 39.3815 58.9804 39.5494 58.8017 39.6773C58.5626 39.8488 58.2761 39.942 57.9817 39.944V39.9506Z",fill:"#333333"})]})})}),(0,C.jsx)(r.Heading,{size:2,id:"error-modal-title",className:"text-center tracking-[-0.32px] text-[#1D1D1F]",children:l}),(0,C.jsx)("p",{className:"laptop:text-[16px] mb-6 text-wrap break-words text-center text-[14px] font-[700] text-[#1D1D1F]",children:i}),(0,C.jsx)(r.Button,{onClick:t,className:"w-full",children:a})]})});var L=p;
1
+ "use strict";"use client";var o=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var x=Object.getOwnPropertyNames;var c=Object.prototype.hasOwnProperty;var f=(e,t)=>{for(var l in t)o(e,l,{get:t[l],enumerable:!0})},h=(e,t,l,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of x(t))!c.call(e,a)&&a!==l&&o(e,a,{get:()=>t[a],enumerable:!(i=m(t,a))||i.enumerable});return e};var g=e=>h(o({},"__esModule",{value:!0}),e);var M={};f(M,{ErrorModal:()=>p,default:()=>L});module.exports=g(M);var C=require("react/jsx-runtime"),u=require("react"),s=require("./BaseModal.js"),r=require("../../components/index.js");const p=({isOpen:e,onClose:t,title:l="Sorry, You Didn't Win This Time",message:i,confirmText:a="OK, I get",className:d,theme:n="light"})=>(0,C.jsx)(s.BaseModal,{isOpen:e,onClose:t,maxWidth:"max-w-[326px] laptop:max-w-[420px]",background:"bg-white",className:d||"",ariaLabelledBy:"error-modal-title",theme:n,children:(0,C.jsxs)("div",{className:"laptop:px-8 laptop:pb-8 px-6 pb-6",children:[(0,C.jsx)("div",{className:"mb-6 flex justify-center",children:(0,C.jsx)("div",{className:"flex size-[80px] items-center justify-center rounded-full",children:(0,C.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"80",height:"80",viewBox:"0 0 80 80",fill:"none",children:[(0,C.jsx)("path",{d:"M63.5691 63.5727C68.2304 58.9107 71.4047 52.9713 72.6905 46.5054C73.9764 40.0395 73.316 33.3374 70.793 27.2468C68.27 21.1562 63.9975 15.9505 58.516 12.2879C53.0344 8.6254 46.5899 6.67053 39.9974 6.67053C33.4049 6.67053 26.9604 8.6254 21.4788 12.2879C15.9973 15.9505 11.7249 21.1562 9.20182 27.2468C6.67878 33.3374 6.01843 40.0395 7.30427 46.5054C8.59011 52.9713 11.7644 58.9107 16.4257 63.5727C19.5211 66.6684 23.1959 69.1241 27.2404 70.7995C31.2848 72.4749 35.6197 73.3372 39.9974 73.3372C44.3751 73.3372 48.71 72.4749 52.7545 70.7995C56.7989 69.1241 60.4737 66.6684 63.5691 63.5727Z",fill:"#FFCC66"}),(0,C.jsx)("path",{d:"M57.3792 11.5137C61.4604 17.8614 63.2668 25.4062 62.503 32.914C61.7393 40.4218 58.4505 47.4482 53.1746 52.8441C47.8988 58.24 40.9481 61.6859 33.4594 62.6183C25.9706 63.5507 18.3872 61.9144 11.9492 57.977C14.6587 62.1912 18.2833 65.7405 22.5534 68.3609C26.8236 70.9813 31.6296 72.6054 36.6139 73.1125C41.5983 73.6195 46.6329 72.9965 51.3433 71.2897C56.0537 69.5829 60.3187 66.8363 63.8213 63.254C67.3239 59.6717 69.974 55.346 71.5744 50.5984C73.1749 45.8508 73.6845 40.8035 73.0655 35.8318C72.4465 30.8601 70.7147 26.0919 67.9989 21.8817C65.2832 17.6715 61.6533 14.1277 57.3792 11.5137Z",fill:"#FFC450"}),(0,C.jsx)("path",{opacity:"0.4",d:"M11.204 43.58C11.1862 37.1148 13.1937 30.8063 16.9446 25.5404C20.6955 20.2745 26.0015 16.3156 32.1175 14.2196C38.2336 12.1235 44.8525 11.9956 51.045 13.8538C57.2374 15.712 62.6924 19.4629 66.644 24.58C64.5168 20.9213 61.6618 17.7377 58.2555 15.226C54.8493 12.7143 50.964 10.9279 46.84 9.97716C42.716 9.02646 38.4408 8.93165 34.2787 9.69861C30.1166 10.4656 26.156 12.078 22.6418 14.4362C19.1275 16.7944 16.1342 19.8484 13.8469 23.4092C11.5596 26.9701 10.027 30.9622 9.34361 35.1388C8.66026 39.3155 8.84077 43.5879 9.87398 47.692C10.9072 51.7962 12.7711 55.6448 15.3506 59C12.6353 54.3146 11.2049 48.9954 11.204 43.58Z",fill:"white"}),(0,C.jsx)("path",{d:"M40 58.1469C43.3333 58.1469 46 53.5802 46 47.9436C46 42.3069 43.3067 37.7402 40 37.7402C36.6933 37.7402 34 42.3102 34 47.9436C34 53.5769 36.6667 58.1469 40 58.1469Z",fill:"#333333"}),(0,C.jsx)("path",{d:"M45.0763 53.4168C40.6863 51.0035 37.113 52.3735 35.043 53.7502C36.1296 56.4168 37.943 58.1635 39.9963 58.1635C42.1363 58.1535 43.9996 56.2635 45.0763 53.4168Z",fill:"#F84D4F"}),(0,C.jsx)("path",{d:"M29.6913 33.373L20.918 38.9564L21.1413 67.4864C23.7747 69.2998 26.6568 70.7224 29.698 71.7097L29.6913 33.373ZM50.3313 33.373L59.0913 38.9564L58.8746 67.4864C56.2413 69.2998 53.3591 70.7224 50.318 71.7097L50.3313 33.373Z",fill:"#21D2C5"}),(0,C.jsx)("path",{d:"M22.0217 39.9506C21.7281 39.9495 21.4421 39.8572 21.2032 39.6864C20.9643 39.5156 20.7844 39.2748 20.6884 38.9973C20.5918 38.7187 20.5848 38.4168 20.6684 38.134C20.7531 37.8525 20.9218 37.6037 21.1517 37.4206L25.9617 33.6673L21.0017 30.754C20.7618 30.6135 20.5684 30.4055 20.4459 30.1559C20.3233 29.9063 20.2769 29.6261 20.3124 29.3503C20.3479 29.0745 20.4639 28.8153 20.6457 28.6049C20.8276 28.3946 21.0673 28.2424 21.3351 28.1673C21.6986 28.0738 22.0844 28.1277 22.4084 28.3173L29.1817 32.294C29.3803 32.4109 29.5474 32.5745 29.6684 32.7706C29.7911 32.9687 29.8632 33.1939 29.8784 33.4265C29.8935 33.659 29.8511 33.8917 29.7551 34.104C29.6613 34.3147 29.517 34.499 29.3351 34.6406L22.8851 39.6673C22.6373 39.856 22.3332 39.9558 22.0217 39.9506ZM57.9817 39.9506C57.6662 39.9515 57.3596 39.8458 57.1117 39.6506L50.6684 34.6306C50.4845 34.4879 50.3381 34.3025 50.2417 34.0906C50.0963 33.7713 50.0751 33.4092 50.1824 33.0751C50.2896 32.7411 50.5176 32.459 50.8217 32.284L57.5817 28.304C57.7426 28.1992 57.9228 28.1278 58.1118 28.094C58.3007 28.0602 58.4946 28.0648 58.6817 28.1073C58.869 28.1498 59.0451 28.2316 59.1984 28.3473C59.3536 28.4595 59.4841 28.6025 59.5817 28.7673C59.6787 28.9331 59.741 29.1168 59.7651 29.3073C59.7895 29.4977 59.7749 29.691 59.7222 29.8755C59.6695 30.0601 59.5797 30.2319 59.4584 30.3806C59.3341 30.5324 59.1783 30.6552 59.0017 30.7406L54.0417 33.6673L58.8484 37.414C59.0217 37.5492 59.161 37.7229 59.2554 37.9214C59.3497 38.1199 59.3965 38.3376 59.3919 38.5573C59.3874 38.777 59.3317 38.9927 59.2293 39.1871C59.1268 39.3815 58.9804 39.5494 58.8017 39.6773C58.5626 39.8488 58.2761 39.942 57.9817 39.944V39.9506Z",fill:"#333333"})]})})}),(0,C.jsx)(r.Heading,{size:2,id:"error-modal-title",className:"text-center tracking-[-0.32px] text-[#1D1D1F]",children:l}),(0,C.jsx)("p",{className:"laptop:text-[16px] mb-6 text-wrap break-words text-center text-[14px] font-[700] text-[#1D1D1F]",children:i}),(0,C.jsx)(r.Button,{onClick:t,className:"w-full",children:a})]})});var L=p;
2
2
  //# sourceMappingURL=ErrorModal.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/biz-components/WheelLottery/ErrorModal.tsx"],
4
- "sourcesContent": ["/**\n * ErrorModal - \u9519\u8BEF\u63D0\u793A\u5F39\u7A97\u7EC4\u4EF6\n *\n * \u7528\u4E8E\u5C55\u793A\u62BD\u5956\u8FC7\u7A0B\u4E2D\u7684\u9519\u8BEF\u4FE1\u606F\n *\n * @module ErrorModal\n * @date 2026-01-04\n */\n\n'use client'\n\nimport React from 'react'\nimport { BaseModal } from './BaseModal.js'\nimport { Heading, Button } from '../../components/index.js'\n\nexport interface ErrorModalProps {\n /**\n * \u662F\u5426\u663E\u793A\u5F39\u7A97\n */\n isOpen: boolean\n\n /**\n * \u5173\u95ED\u5F39\u7A97\u56DE\u8C03\n */\n onClose: () => void\n\n /**\n * \u9519\u8BEF\u6807\u9898\n * @default \"Oops!\"\n */\n title?: string\n\n /**\n * \u9519\u8BEF\u6D88\u606F\n */\n message?: string\n\n /**\n * \u786E\u8BA4\u6309\u94AE\u6587\u672C\n * @default \"OK, I get\"\n */\n confirmText?: string\n\n /**\n * \u81EA\u5B9A\u4E49\u7C7B\u540D\n */\n className?: string\n\n /**\n * \u4E3B\u9898\u6A21\u5F0F\n * @default 'light'\n */\n theme?: 'light' | 'dark'\n}\n\n/**\n * ErrorModal \u9519\u8BEF\u63D0\u793A\u5F39\u7A97\u7EC4\u4EF6\n */\nexport const ErrorModal: React.FC<ErrorModalProps> = ({\n isOpen,\n onClose,\n title = \"Sorry, You Didn't Win This Time\",\n message,\n confirmText = 'OK, I get',\n className,\n theme = 'light',\n}) => {\n return (\n <BaseModal\n isOpen={isOpen}\n onClose={onClose}\n maxWidth=\"max-w-[326px] laptop:max-w-[420px]\"\n background=\"bg-white\"\n // \u9519\u8BEF\u5F39\u7A97\u4F7F\u7528\u66F4\u9AD8\u5C42\u7EA7\uFF0C\u786E\u4FDD\u663E\u793A\u5728\u6240\u6709\u5176\u4ED6\u5F39\u7A97\u4E4B\u4E0A\n className={`!z-[60] ${className || ''}`}\n ariaLabelledBy=\"error-modal-title\"\n theme={theme}\n >\n <div className=\"laptop:px-8 laptop:pb-8 px-6 pb-6\">\n {/* \u9519\u8BEF\u56FE\u6807 */}\n <div className=\"mb-6 flex justify-center\">\n <div className=\"flex size-[80px] items-center justify-center rounded-full\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"80\" height=\"80\" viewBox=\"0 0 80 80\" fill=\"none\">\n <path\n d=\"M63.5691 63.5727C68.2304 58.9107 71.4047 52.9713 72.6905 46.5054C73.9764 40.0395 73.316 33.3374 70.793 27.2468C68.27 21.1562 63.9975 15.9505 58.516 12.2879C53.0344 8.6254 46.5899 6.67053 39.9974 6.67053C33.4049 6.67053 26.9604 8.6254 21.4788 12.2879C15.9973 15.9505 11.7249 21.1562 9.20182 27.2468C6.67878 33.3374 6.01843 40.0395 7.30427 46.5054C8.59011 52.9713 11.7644 58.9107 16.4257 63.5727C19.5211 66.6684 23.1959 69.1241 27.2404 70.7995C31.2848 72.4749 35.6197 73.3372 39.9974 73.3372C44.3751 73.3372 48.71 72.4749 52.7545 70.7995C56.7989 69.1241 60.4737 66.6684 63.5691 63.5727Z\"\n fill=\"#FFCC66\"\n />\n <path\n d=\"M57.3792 11.5137C61.4604 17.8614 63.2668 25.4062 62.503 32.914C61.7393 40.4218 58.4505 47.4482 53.1746 52.8441C47.8988 58.24 40.9481 61.6859 33.4594 62.6183C25.9706 63.5507 18.3872 61.9144 11.9492 57.977C14.6587 62.1912 18.2833 65.7405 22.5534 68.3609C26.8236 70.9813 31.6296 72.6054 36.6139 73.1125C41.5983 73.6195 46.6329 72.9965 51.3433 71.2897C56.0537 69.5829 60.3187 66.8363 63.8213 63.254C67.3239 59.6717 69.974 55.346 71.5744 50.5984C73.1749 45.8508 73.6845 40.8035 73.0655 35.8318C72.4465 30.8601 70.7147 26.0919 67.9989 21.8817C65.2832 17.6715 61.6533 14.1277 57.3792 11.5137Z\"\n fill=\"#FFC450\"\n />\n <path\n opacity=\"0.4\"\n d=\"M11.204 43.58C11.1862 37.1148 13.1937 30.8063 16.9446 25.5404C20.6955 20.2745 26.0015 16.3156 32.1175 14.2196C38.2336 12.1235 44.8525 11.9956 51.045 13.8538C57.2374 15.712 62.6924 19.4629 66.644 24.58C64.5168 20.9213 61.6618 17.7377 58.2555 15.226C54.8493 12.7143 50.964 10.9279 46.84 9.97716C42.716 9.02646 38.4408 8.93165 34.2787 9.69861C30.1166 10.4656 26.156 12.078 22.6418 14.4362C19.1275 16.7944 16.1342 19.8484 13.8469 23.4092C11.5596 26.9701 10.027 30.9622 9.34361 35.1388C8.66026 39.3155 8.84077 43.5879 9.87398 47.692C10.9072 51.7962 12.7711 55.6448 15.3506 59C12.6353 54.3146 11.2049 48.9954 11.204 43.58Z\"\n fill=\"white\"\n />\n <path\n d=\"M40 58.1469C43.3333 58.1469 46 53.5802 46 47.9436C46 42.3069 43.3067 37.7402 40 37.7402C36.6933 37.7402 34 42.3102 34 47.9436C34 53.5769 36.6667 58.1469 40 58.1469Z\"\n fill=\"#333333\"\n />\n <path\n d=\"M45.0763 53.4168C40.6863 51.0035 37.113 52.3735 35.043 53.7502C36.1296 56.4168 37.943 58.1635 39.9963 58.1635C42.1363 58.1535 43.9996 56.2635 45.0763 53.4168Z\"\n fill=\"#F84D4F\"\n />\n <path\n d=\"M29.6913 33.373L20.918 38.9564L21.1413 67.4864C23.7747 69.2998 26.6568 70.7224 29.698 71.7097L29.6913 33.373ZM50.3313 33.373L59.0913 38.9564L58.8746 67.4864C56.2413 69.2998 53.3591 70.7224 50.318 71.7097L50.3313 33.373Z\"\n fill=\"#21D2C5\"\n />\n <path\n d=\"M22.0217 39.9506C21.7281 39.9495 21.4421 39.8572 21.2032 39.6864C20.9643 39.5156 20.7844 39.2748 20.6884 38.9973C20.5918 38.7187 20.5848 38.4168 20.6684 38.134C20.7531 37.8525 20.9218 37.6037 21.1517 37.4206L25.9617 33.6673L21.0017 30.754C20.7618 30.6135 20.5684 30.4055 20.4459 30.1559C20.3233 29.9063 20.2769 29.6261 20.3124 29.3503C20.3479 29.0745 20.4639 28.8153 20.6457 28.6049C20.8276 28.3946 21.0673 28.2424 21.3351 28.1673C21.6986 28.0738 22.0844 28.1277 22.4084 28.3173L29.1817 32.294C29.3803 32.4109 29.5474 32.5745 29.6684 32.7706C29.7911 32.9687 29.8632 33.1939 29.8784 33.4265C29.8935 33.659 29.8511 33.8917 29.7551 34.104C29.6613 34.3147 29.517 34.499 29.3351 34.6406L22.8851 39.6673C22.6373 39.856 22.3332 39.9558 22.0217 39.9506ZM57.9817 39.9506C57.6662 39.9515 57.3596 39.8458 57.1117 39.6506L50.6684 34.6306C50.4845 34.4879 50.3381 34.3025 50.2417 34.0906C50.0963 33.7713 50.0751 33.4092 50.1824 33.0751C50.2896 32.7411 50.5176 32.459 50.8217 32.284L57.5817 28.304C57.7426 28.1992 57.9228 28.1278 58.1118 28.094C58.3007 28.0602 58.4946 28.0648 58.6817 28.1073C58.869 28.1498 59.0451 28.2316 59.1984 28.3473C59.3536 28.4595 59.4841 28.6025 59.5817 28.7673C59.6787 28.9331 59.741 29.1168 59.7651 29.3073C59.7895 29.4977 59.7749 29.691 59.7222 29.8755C59.6695 30.0601 59.5797 30.2319 59.4584 30.3806C59.3341 30.5324 59.1783 30.6552 59.0017 30.7406L54.0417 33.6673L58.8484 37.414C59.0217 37.5492 59.161 37.7229 59.2554 37.9214C59.3497 38.1199 59.3965 38.3376 59.3919 38.5573C59.3874 38.777 59.3317 38.9927 59.2293 39.1871C59.1268 39.3815 58.9804 39.5494 58.8017 39.6773C58.5626 39.8488 58.2761 39.942 57.9817 39.944V39.9506Z\"\n fill=\"#333333\"\n />\n </svg>\n </div>\n </div>\n\n {/* \u6807\u9898 */}\n <Heading size={2} id=\"error-modal-title\" className=\"text-center tracking-[-0.32px] text-[#1D1D1F]\">\n {title}\n </Heading>\n\n {/* \u9519\u8BEF\u6D88\u606F */}\n <p className=\"laptop:text-[16px] mb-6 text-wrap break-words text-center text-[14px] font-[700] text-[#1D1D1F]\">\n {message}\n </p>\n\n {/* \u786E\u8BA4\u6309\u94AE */}\n <Button onClick={onClose} className=\"w-full\">\n {confirmText}\n </Button>\n </div>\n </BaseModal>\n )\n}\n\nexport default ErrorModal\n"],
5
- "mappings": "sbAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,gBAAAE,EAAA,YAAAC,IAAA,eAAAC,EAAAJ,GAkFY,IAAAK,EAAA,6BAvEZC,EAAkB,iBAClBC,EAA0B,0BAC1BC,EAAgC,qCA6CzB,MAAMN,EAAwC,CAAC,CACpD,OAAAO,EACA,QAAAC,EACA,MAAAC,EAAQ,kCACR,QAAAC,EACA,YAAAC,EAAc,YACd,UAAAC,EACA,MAAAC,EAAQ,OACV,OAEI,OAAC,aACC,OAAQN,EACR,QAASC,EACT,SAAS,qCACT,WAAW,WAEX,UAAW,WAAWI,GAAa,EAAE,GACrC,eAAe,oBACf,MAAOC,EAEP,oBAAC,OAAI,UAAU,oCAEb,oBAAC,OAAI,UAAU,2BACb,mBAAC,OAAI,UAAU,4DACb,oBAAC,OAAI,MAAM,6BAA6B,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,KAAK,OACtF,oBAAC,QACC,EAAE,2kBACF,KAAK,UACP,KACA,OAAC,QACC,EAAE,4kBACF,KAAK,UACP,KACA,OAAC,QACC,QAAQ,MACR,EAAE,2mBACF,KAAK,QACP,KACA,OAAC,QACC,EAAE,uKACF,KAAK,UACP,KACA,OAAC,QACC,EAAE,iKACF,KAAK,UACP,KACA,OAAC,QACC,EAAE,8NACF,KAAK,UACP,KACA,OAAC,QACC,EAAE,ymDACF,KAAK,UACP,GACF,EACF,EACF,KAGA,OAAC,WAAQ,KAAM,EAAG,GAAG,oBAAoB,UAAU,gDAChD,SAAAJ,EACH,KAGA,OAAC,KAAE,UAAU,kGACV,SAAAC,EACH,KAGA,OAAC,UAAO,QAASF,EAAS,UAAU,SACjC,SAAAG,EACH,GACF,EACF,EAIJ,IAAOV,EAAQD",
4
+ "sourcesContent": ["/**\n * ErrorModal - \u9519\u8BEF\u63D0\u793A\u5F39\u7A97\u7EC4\u4EF6\n *\n * \u7528\u4E8E\u5C55\u793A\u62BD\u5956\u8FC7\u7A0B\u4E2D\u7684\u9519\u8BEF\u4FE1\u606F\n *\n * @module ErrorModal\n * @date 2026-01-04\n */\n\n'use client'\n\nimport React from 'react'\nimport { BaseModal } from './BaseModal.js'\nimport { Heading, Button } from '../../components/index.js'\n\nexport interface ErrorModalProps {\n /**\n * \u662F\u5426\u663E\u793A\u5F39\u7A97\n */\n isOpen: boolean\n\n /**\n * \u5173\u95ED\u5F39\u7A97\u56DE\u8C03\n */\n onClose: () => void\n\n /**\n * \u9519\u8BEF\u6807\u9898\n * @default \"Oops!\"\n */\n title?: string\n\n /**\n * \u9519\u8BEF\u6D88\u606F\n */\n message?: string\n\n /**\n * \u786E\u8BA4\u6309\u94AE\u6587\u672C\n * @default \"OK, I get\"\n */\n confirmText?: string\n\n /**\n * \u81EA\u5B9A\u4E49\u7C7B\u540D\n */\n className?: string\n\n /**\n * \u4E3B\u9898\u6A21\u5F0F\n * @default 'light'\n */\n theme?: 'light' | 'dark'\n}\n\n/**\n * ErrorModal \u9519\u8BEF\u63D0\u793A\u5F39\u7A97\u7EC4\u4EF6\n */\nexport const ErrorModal: React.FC<ErrorModalProps> = ({\n isOpen,\n onClose,\n title = \"Sorry, You Didn't Win This Time\",\n message,\n confirmText = 'OK, I get',\n className,\n theme = 'light',\n}) => {\n return (\n <BaseModal\n isOpen={isOpen}\n onClose={onClose}\n maxWidth=\"max-w-[326px] laptop:max-w-[420px]\"\n background=\"bg-white\"\n className={className || ''}\n ariaLabelledBy=\"error-modal-title\"\n theme={theme}\n >\n <div className=\"laptop:px-8 laptop:pb-8 px-6 pb-6\">\n {/* \u9519\u8BEF\u56FE\u6807 */}\n <div className=\"mb-6 flex justify-center\">\n <div className=\"flex size-[80px] items-center justify-center rounded-full\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"80\" height=\"80\" viewBox=\"0 0 80 80\" fill=\"none\">\n <path\n d=\"M63.5691 63.5727C68.2304 58.9107 71.4047 52.9713 72.6905 46.5054C73.9764 40.0395 73.316 33.3374 70.793 27.2468C68.27 21.1562 63.9975 15.9505 58.516 12.2879C53.0344 8.6254 46.5899 6.67053 39.9974 6.67053C33.4049 6.67053 26.9604 8.6254 21.4788 12.2879C15.9973 15.9505 11.7249 21.1562 9.20182 27.2468C6.67878 33.3374 6.01843 40.0395 7.30427 46.5054C8.59011 52.9713 11.7644 58.9107 16.4257 63.5727C19.5211 66.6684 23.1959 69.1241 27.2404 70.7995C31.2848 72.4749 35.6197 73.3372 39.9974 73.3372C44.3751 73.3372 48.71 72.4749 52.7545 70.7995C56.7989 69.1241 60.4737 66.6684 63.5691 63.5727Z\"\n fill=\"#FFCC66\"\n />\n <path\n d=\"M57.3792 11.5137C61.4604 17.8614 63.2668 25.4062 62.503 32.914C61.7393 40.4218 58.4505 47.4482 53.1746 52.8441C47.8988 58.24 40.9481 61.6859 33.4594 62.6183C25.9706 63.5507 18.3872 61.9144 11.9492 57.977C14.6587 62.1912 18.2833 65.7405 22.5534 68.3609C26.8236 70.9813 31.6296 72.6054 36.6139 73.1125C41.5983 73.6195 46.6329 72.9965 51.3433 71.2897C56.0537 69.5829 60.3187 66.8363 63.8213 63.254C67.3239 59.6717 69.974 55.346 71.5744 50.5984C73.1749 45.8508 73.6845 40.8035 73.0655 35.8318C72.4465 30.8601 70.7147 26.0919 67.9989 21.8817C65.2832 17.6715 61.6533 14.1277 57.3792 11.5137Z\"\n fill=\"#FFC450\"\n />\n <path\n opacity=\"0.4\"\n d=\"M11.204 43.58C11.1862 37.1148 13.1937 30.8063 16.9446 25.5404C20.6955 20.2745 26.0015 16.3156 32.1175 14.2196C38.2336 12.1235 44.8525 11.9956 51.045 13.8538C57.2374 15.712 62.6924 19.4629 66.644 24.58C64.5168 20.9213 61.6618 17.7377 58.2555 15.226C54.8493 12.7143 50.964 10.9279 46.84 9.97716C42.716 9.02646 38.4408 8.93165 34.2787 9.69861C30.1166 10.4656 26.156 12.078 22.6418 14.4362C19.1275 16.7944 16.1342 19.8484 13.8469 23.4092C11.5596 26.9701 10.027 30.9622 9.34361 35.1388C8.66026 39.3155 8.84077 43.5879 9.87398 47.692C10.9072 51.7962 12.7711 55.6448 15.3506 59C12.6353 54.3146 11.2049 48.9954 11.204 43.58Z\"\n fill=\"white\"\n />\n <path\n d=\"M40 58.1469C43.3333 58.1469 46 53.5802 46 47.9436C46 42.3069 43.3067 37.7402 40 37.7402C36.6933 37.7402 34 42.3102 34 47.9436C34 53.5769 36.6667 58.1469 40 58.1469Z\"\n fill=\"#333333\"\n />\n <path\n d=\"M45.0763 53.4168C40.6863 51.0035 37.113 52.3735 35.043 53.7502C36.1296 56.4168 37.943 58.1635 39.9963 58.1635C42.1363 58.1535 43.9996 56.2635 45.0763 53.4168Z\"\n fill=\"#F84D4F\"\n />\n <path\n d=\"M29.6913 33.373L20.918 38.9564L21.1413 67.4864C23.7747 69.2998 26.6568 70.7224 29.698 71.7097L29.6913 33.373ZM50.3313 33.373L59.0913 38.9564L58.8746 67.4864C56.2413 69.2998 53.3591 70.7224 50.318 71.7097L50.3313 33.373Z\"\n fill=\"#21D2C5\"\n />\n <path\n d=\"M22.0217 39.9506C21.7281 39.9495 21.4421 39.8572 21.2032 39.6864C20.9643 39.5156 20.7844 39.2748 20.6884 38.9973C20.5918 38.7187 20.5848 38.4168 20.6684 38.134C20.7531 37.8525 20.9218 37.6037 21.1517 37.4206L25.9617 33.6673L21.0017 30.754C20.7618 30.6135 20.5684 30.4055 20.4459 30.1559C20.3233 29.9063 20.2769 29.6261 20.3124 29.3503C20.3479 29.0745 20.4639 28.8153 20.6457 28.6049C20.8276 28.3946 21.0673 28.2424 21.3351 28.1673C21.6986 28.0738 22.0844 28.1277 22.4084 28.3173L29.1817 32.294C29.3803 32.4109 29.5474 32.5745 29.6684 32.7706C29.7911 32.9687 29.8632 33.1939 29.8784 33.4265C29.8935 33.659 29.8511 33.8917 29.7551 34.104C29.6613 34.3147 29.517 34.499 29.3351 34.6406L22.8851 39.6673C22.6373 39.856 22.3332 39.9558 22.0217 39.9506ZM57.9817 39.9506C57.6662 39.9515 57.3596 39.8458 57.1117 39.6506L50.6684 34.6306C50.4845 34.4879 50.3381 34.3025 50.2417 34.0906C50.0963 33.7713 50.0751 33.4092 50.1824 33.0751C50.2896 32.7411 50.5176 32.459 50.8217 32.284L57.5817 28.304C57.7426 28.1992 57.9228 28.1278 58.1118 28.094C58.3007 28.0602 58.4946 28.0648 58.6817 28.1073C58.869 28.1498 59.0451 28.2316 59.1984 28.3473C59.3536 28.4595 59.4841 28.6025 59.5817 28.7673C59.6787 28.9331 59.741 29.1168 59.7651 29.3073C59.7895 29.4977 59.7749 29.691 59.7222 29.8755C59.6695 30.0601 59.5797 30.2319 59.4584 30.3806C59.3341 30.5324 59.1783 30.6552 59.0017 30.7406L54.0417 33.6673L58.8484 37.414C59.0217 37.5492 59.161 37.7229 59.2554 37.9214C59.3497 38.1199 59.3965 38.3376 59.3919 38.5573C59.3874 38.777 59.3317 38.9927 59.2293 39.1871C59.1268 39.3815 58.9804 39.5494 58.8017 39.6773C58.5626 39.8488 58.2761 39.942 57.9817 39.944V39.9506Z\"\n fill=\"#333333\"\n />\n </svg>\n </div>\n </div>\n\n {/* \u6807\u9898 */}\n <Heading size={2} id=\"error-modal-title\" className=\"text-center tracking-[-0.32px] text-[#1D1D1F]\">\n {title}\n </Heading>\n\n {/* \u9519\u8BEF\u6D88\u606F */}\n <p className=\"laptop:text-[16px] mb-6 text-wrap break-words text-center text-[14px] font-[700] text-[#1D1D1F]\">\n {message}\n </p>\n\n {/* \u786E\u8BA4\u6309\u94AE */}\n <Button onClick={onClose} className=\"w-full\">\n {confirmText}\n </Button>\n </div>\n </BaseModal>\n )\n}\n\nexport default ErrorModal\n"],
5
+ "mappings": "sbAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,gBAAAE,EAAA,YAAAC,IAAA,eAAAC,EAAAJ,GAiFY,IAAAK,EAAA,6BAtEZC,EAAkB,iBAClBC,EAA0B,0BAC1BC,EAAgC,qCA6CzB,MAAMN,EAAwC,CAAC,CACpD,OAAAO,EACA,QAAAC,EACA,MAAAC,EAAQ,kCACR,QAAAC,EACA,YAAAC,EAAc,YACd,UAAAC,EACA,MAAAC,EAAQ,OACV,OAEI,OAAC,aACC,OAAQN,EACR,QAASC,EACT,SAAS,qCACT,WAAW,WACX,UAAWI,GAAa,GACxB,eAAe,oBACf,MAAOC,EAEP,oBAAC,OAAI,UAAU,oCAEb,oBAAC,OAAI,UAAU,2BACb,mBAAC,OAAI,UAAU,4DACb,oBAAC,OAAI,MAAM,6BAA6B,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,KAAK,OACtF,oBAAC,QACC,EAAE,2kBACF,KAAK,UACP,KACA,OAAC,QACC,EAAE,4kBACF,KAAK,UACP,KACA,OAAC,QACC,QAAQ,MACR,EAAE,2mBACF,KAAK,QACP,KACA,OAAC,QACC,EAAE,uKACF,KAAK,UACP,KACA,OAAC,QACC,EAAE,iKACF,KAAK,UACP,KACA,OAAC,QACC,EAAE,8NACF,KAAK,UACP,KACA,OAAC,QACC,EAAE,ymDACF,KAAK,UACP,GACF,EACF,EACF,KAGA,OAAC,WAAQ,KAAM,EAAG,GAAG,oBAAoB,UAAU,gDAChD,SAAAJ,EACH,KAGA,OAAC,KAAE,UAAU,kGACV,SAAAC,EACH,KAGA,OAAC,UAAO,QAASF,EAAS,UAAU,SACjC,SAAAG,EACH,GACF,EACF,EAIJ,IAAOV,EAAQD",
6
6
  "names": ["ErrorModal_exports", "__export", "ErrorModal", "ErrorModal_default", "__toCommonJS", "import_jsx_runtime", "import_react", "import_BaseModal", "import_components", "isOpen", "onClose", "title", "message", "confirmText", "className", "theme"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";"use client";var r=Object.defineProperty;var D=Object.getOwnPropertyDescriptor;var M=Object.getOwnPropertyNames;var F=Object.prototype.hasOwnProperty;var O=(i,a)=>{for(var s in a)r(i,s,{get:a[s],enumerable:!0})},S=(i,a,s,n)=>{if(a&&typeof a=="object"||typeof a=="function")for(let o of M(a))!F.call(i,o)&&o!==s&&r(i,o,{get:()=>a[o],enumerable:!(n=D(a,o))||n.enumerable});return i};var k=i=>S(r({},"__esModule",{value:!0}),i);var E={};O(E,{MyRewardsModal:()=>u,default:()=>z});module.exports=k(E);var t=require("react/jsx-runtime"),p=require("react"),l=require("../../helpers/index.js"),g=require("./BaseModal.js");const u=({isOpen:i,onClose:a,title:s="My Rewards",rewards:n,onCopyCode:o,className:b,codeText:f="CODE:",copyText:v="COPY",copiedText:y="COPIED",prizeText:h="Prize time:",emptyText:N="No rewards yet",theme:C="light"})=>{const[R,m]=(0,p.useState)({}),x=(0,p.useRef)({});(0,p.useEffect)(()=>()=>{Object.values(x.current).forEach(e=>clearTimeout(e))},[]);const T=(e,d)=>{x.current[e]&&clearTimeout(x.current[e]),navigator.clipboard.writeText(d),o&&o?.(d),m(c=>({...c,[e]:!0})),x.current[e]=setTimeout(()=>{m(c=>({...c,[e]:!1})),delete x.current[e]},3e3)};return(0,t.jsx)(g.BaseModal,{isOpen:i,onClose:a,maxWidth:"max-w-[480px] laptop:max-w-[520px]",background:"bg-white",className:b,title:s,ariaLabelledBy:"rewards-modal-title",theme:C,children:(0,t.jsx)("div",{className:"laptop:px-8 laptop:pb-8 p-4",children:(0,t.jsx)("div",{className:"flex max-h-[584px] flex-col gap-2 overflow-y-auto",children:n.length===0?(0,t.jsx)("p",{className:"py-8 text-center text-[14px] text-gray-500",children:N}):n.map(e=>(0,t.jsx)("div",{className:(0,l.cn)("rounded-box","relative flex-none overflow-hidden bg-[#F5F5F7]","px-4 py-6"),children:(0,t.jsxs)("div",{className:"tablet:text-[16px] tablet:flex items-center justify-between gap-2 text-[14px] font-[700]",children:[(0,t.jsxs)("div",{className:"flex-1",children:[(0,t.jsx)("p",{className:(0,l.cn)("mb-1 font-[700] text-[#1D1D1F]",e?.available?"text-[#1D1D1F]":"text-[#767880]"),children:e.name}),e.code&&(0,t.jsxs)("div",{className:(0,l.cn)("flex items-center gap-2",e?.available?"text-[#34C759]":"text-[#D1D1D1]"),children:[(0,t.jsxs)("p",{className:"max-w-[200px] truncate",children:[f," ",e.code]}),e.showCopyCode&&e?.available&&(0,t.jsx)("button",{onClick:()=>T(e.id,e.code),className:"underline",children:R[e.id]?y:v})]})]}),e.prizeTime&&(0,t.jsxs)("div",{className:(0,l.cn)("tablet:block flex gap-1 text-[14px] font-[700] text-[#767880]"),children:[(0,t.jsx)("p",{children:h}),(0,t.jsx)("p",{children:e.prizeTime})]}),(0,t.jsx)("span",{className:(0,l.cn)("rounded-[0_8px] px-[6px] text-[14px] font-[700]","absolute right-0 top-0",e?.available?"bg-[#34C759] text-white":"bg-[#767880] text-white"),children:e.status})]})},e.id))})})})};var z=u;
1
+ "use strict";"use client";var x=Object.defineProperty;var M=Object.getOwnPropertyDescriptor;var O=Object.getOwnPropertyNames;var S=Object.prototype.hasOwnProperty;var k=(i,a)=>{for(var s in a)x(i,s,{get:a[s],enumerable:!0})},z=(i,a,s,p)=>{if(a&&typeof a=="object"||typeof a=="function")for(let o of O(a))!S.call(i,o)&&o!==s&&x(i,o,{get:()=>a[o],enumerable:!(p=M(a,o))||p.enumerable});return i};var E=i=>z(x({},"__esModule",{value:!0}),i);var q={};k(q,{MyRewardsModal:()=>f,default:()=>P});module.exports=E(q);var t=require("react/jsx-runtime"),l=require("react"),n=require("../../helpers/index.js"),u=require("./BaseModal.js");const f=({isOpen:i,onClose:a,title:s="My Rewards",rewards:p,onCopyCode:o,className:g,codeText:b="CODE:",copyText:v="COPY",copiedText:y="COPIED",prizeText:h="Prize time:",emptyText:N="No rewards yet",theme:R="light"})=>{const[C,m]=(0,l.useState)({}),r=(0,l.useRef)({});(0,l.useEffect)(()=>()=>{Object.values(r.current).forEach(e=>clearTimeout(e))},[]);const T=(e,d)=>{r.current[e]&&clearTimeout(r.current[e]),navigator.clipboard.writeText(d),o&&o?.(d),m(c=>({...c,[e]:!0})),r.current[e]=setTimeout(()=>{m(c=>({...c,[e]:!1})),delete r.current[e]},3e3)};return(0,t.jsx)(u.BaseModal,{isOpen:i,onClose:a,maxWidth:"max-w-[480px] laptop:max-w-[520px]",background:"bg-white",className:g,title:s,ariaLabelledBy:"rewards-modal-title",theme:R,children:(0,t.jsx)("div",{className:"laptop:px-8 laptop:pb-8 p-4",children:(0,t.jsx)("div",{className:"flex max-h-[584px] flex-col gap-2 overflow-y-auto",children:p.length===0?(0,t.jsx)("p",{className:"py-8 text-center text-[14px] text-gray-500",children:N}):p.map(e=>(0,t.jsx)("div",{className:(0,n.cn)("rounded-box","bg-container-secondary-0 relative flex-none overflow-hidden","px-4 py-6"),children:(0,t.jsxs)("div",{className:"tablet:text-[16px] tablet:flex items-center justify-between gap-2 text-[14px] font-[700]",children:[(0,t.jsxs)("div",{className:"flex-1",children:[(0,t.jsx)("p",{className:(0,n.cn)("mb-1 font-[700]",e?.available?"text-info-primary":"text-info-quaternary"),children:e.name}),e.code&&(0,t.jsxs)("div",{className:(0,n.cn)("flex items-center gap-2",e?.available?"text-success-0":"text-info-quaternary"),children:[(0,t.jsxs)("p",{className:"max-w-[200px] truncate",children:[b," ",e.code]}),e.showCopyCode&&e?.available&&(0,t.jsx)("button",{onClick:()=>T(e.id,e.code),className:"underline",children:C[e.id]?y:v})]})]}),e.prizeTime&&(0,t.jsxs)("div",{className:(0,n.cn)("tablet:block text-info-quaternary flex gap-1 text-[14px] font-[700]"),children:[(0,t.jsx)("p",{children:h}),(0,t.jsx)("p",{children:e.prizeTime})]}),(0,t.jsx)("span",{className:(0,n.cn)("rounded-[0_8px] px-[6px] text-[14px] font-[700]","absolute right-0 top-0",e?.available?"bg-success-0 text-info-white":"bg-info-quaternary text-info-white"),children:e.status})]})},e.id))})})})};var P=f;
2
2
  //# sourceMappingURL=MyRewardsModal.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/biz-components/WheelLottery/MyRewardsModal.tsx"],
4
- "sourcesContent": ["/**\n * MyRewardsModal - \u6211\u7684\u5956\u52B1\u5F39\u7A97\u7EC4\u4EF6\n *\n * \u5C55\u793A\u7528\u6237\u5DF2\u83B7\u5F97\u7684\u5956\u52B1\u5217\u8868\n *\n * @module MyRewardsModal\n * @date 2026-01-04\n */\n\n'use client'\n\nimport React, { useState, useRef, useEffect } from 'react'\nimport { cn } from '../../helpers/index.js'\nimport { BaseModal } from './BaseModal.js'\n\nexport type RewardStatus = 'Available' | 'Expired' | 'Used'\n\nexport interface Reward {\n /**\n * \u5956\u52B1 ID\n */\n id: string\n\n /**\n * \u5956\u52B1\u540D\u79F0\n */\n name: string\n\n /**\n * \u4F18\u60E0\u7801\uFF08\u53EF\u9009\uFF09\n */\n code?: string\n\n /**\n * \u72B6\u6001\n */\n status: RewardStatus\n\n /**\n * \u5956\u52B1\u65F6\u95F4\n */\n prizeTime?: string\n\n /**\n * \u662F\u5426\u53EF\u590D\u5236\u7801\n */\n showCopyCode?: boolean\n\n /** * \u662F\u5426\u53EF\u7528\n */\n available?: boolean\n}\n\nexport interface MyRewardsModalProps {\n /**\n * \u662F\u5426\u663E\u793A\u5F39\u7A97\n */\n isOpen: boolean\n\n /**\n * \u5173\u95ED\u5F39\u7A97\u56DE\u8C03\n */\n onClose: () => void\n\n /**\n * \u5F39\u7A97\u6807\u9898\n * @default \"My Rewards\"\n */\n title?: string\n\n /**\n * \u5956\u52B1\u5217\u8868\n */\n rewards: Reward[]\n\n /**\n * \u590D\u5236\u7801\u70B9\u51FB\u56DE\u8C03\n */\n onCopyCode?: (code: string) => void\n\n /**\n * \u81EA\u5B9A\u4E49\u7C7B\u540D\n */\n className?: string\n\n /**\n * \u4EE3\u7801\u6587\u672C\u524D\u7F00\n * @default \"CODE:\"\n */\n codeText?: string\n\n /**\n * \u590D\u5236\u6309\u94AE\u6587\u672C\n * @default \"COPY\"\n */\n copyText?: string\n\n /**\n * \u590D\u5236\u6210\u529F\u540E\u7684\u6309\u94AE\u6587\u672C\n * @default \"COPIED\"\n */\n copiedText?: string\n\n /**\n * \u5956\u52B1\u65F6\u95F4\u6587\u672C\u524D\u7F00\n * @default \"Prize time:\"\n */\n prizeText?: string\n\n /**\n * \u7A7A\u72B6\u6001\u6587\u6848\n * @default \"No rewards yet\"\n */\n emptyText?: string\n\n /**\n * \u4E3B\u9898\u6A21\u5F0F\n * @default 'light'\n */\n theme?: 'light' | 'dark'\n}\n\n/**\n * MyRewardsModal \u6211\u7684\u5956\u52B1\u5F39\u7A97\u7EC4\u4EF6\n */\nexport const MyRewardsModal: React.FC<MyRewardsModalProps> = ({\n isOpen,\n onClose,\n title = 'My Rewards',\n rewards,\n onCopyCode,\n className,\n codeText = 'CODE:',\n copyText = 'COPY',\n copiedText = 'COPIED',\n prizeText = 'Prize time:',\n emptyText = 'No rewards yet',\n theme = 'light',\n}) => {\n // \u8FFD\u8E2A\u6BCF\u4E2A\u5956\u52B1\u7684\u590D\u5236\u72B6\u6001\n const [copiedStates, setCopiedStates] = useState<Record<string, boolean>>({})\n const timersRef = useRef<Record<string, NodeJS.Timeout>>({})\n\n // \u6E05\u7406\u6240\u6709\u5B9A\u65F6\u5668\n useEffect(() => {\n return () => {\n Object.values(timersRef.current).forEach(timer => clearTimeout(timer))\n }\n }, [])\n\n // \u5904\u7406\u590D\u5236\u64CD\u4F5C\n const handleCopy = (rewardId: string, code: string) => {\n // \u6E05\u9664\u8BE5\u5956\u52B1\u7684\u73B0\u6709\u5B9A\u65F6\u5668\n if (timersRef.current[rewardId]) {\n clearTimeout(timersRef.current[rewardId])\n }\n\n navigator.clipboard.writeText(code)\n // \u8C03\u7528\u590D\u5236\u56DE\u8C03\n if (onCopyCode) onCopyCode?.(code)\n\n // \u8BBE\u7F6E\u4E3A\u5DF2\u590D\u5236\u72B6\u6001\n setCopiedStates(prev => ({ ...prev, [rewardId]: true }))\n\n // 3\u79D2\u540E\u6062\u590D\n timersRef.current[rewardId] = setTimeout(() => {\n setCopiedStates(prev => ({ ...prev, [rewardId]: false }))\n delete timersRef.current[rewardId]\n }, 3000)\n }\n\n return (\n <BaseModal\n isOpen={isOpen}\n onClose={onClose}\n maxWidth=\"max-w-[480px] laptop:max-w-[520px]\"\n background=\"bg-white\"\n className={className}\n title={title}\n ariaLabelledBy=\"rewards-modal-title\"\n theme={theme}\n >\n <div className=\"laptop:px-8 laptop:pb-8 p-4\">\n {/* \u5956\u52B1\u5217\u8868 */}\n <div className=\"flex max-h-[584px] flex-col gap-2 overflow-y-auto\">\n {rewards.length === 0 ? (\n <p className=\"py-8 text-center text-[14px] text-gray-500\">{emptyText}</p>\n ) : (\n rewards.map(reward => (\n <div\n key={reward.id}\n className={cn('rounded-box', 'relative flex-none overflow-hidden bg-[#F5F5F7]', 'px-4 py-6')}\n >\n <div className=\"tablet:text-[16px] tablet:flex items-center justify-between gap-2 text-[14px] font-[700]\">\n <div className=\"flex-1\">\n <p\n className={cn(\n 'mb-1 font-[700] text-[#1D1D1F]',\n reward?.available ? 'text-[#1D1D1F]' : 'text-[#767880]'\n )}\n >\n {reward.name}\n </p>\n {reward.code && (\n <div\n className={cn(\n 'flex items-center gap-2',\n reward?.available ? 'text-[#34C759]' : 'text-[#D1D1D1]'\n )}\n >\n <p className=\"max-w-[200px] truncate\">\n {codeText} {reward.code}\n </p>\n {reward.showCopyCode && reward?.available && (\n <button onClick={() => handleCopy(reward.id, reward.code!)} className=\"underline\">\n {copiedStates[reward.id] ? copiedText : copyText}\n </button>\n )}\n </div>\n )}\n </div>\n\n {reward.prizeTime && (\n <div className={cn('tablet:block flex gap-1 text-[14px] font-[700] text-[#767880]')}>\n <p>{prizeText}</p>\n <p>{reward.prizeTime}</p>\n </div>\n )}\n\n {/* \u72B6\u6001\u6807\u7B7E */}\n <span\n className={cn(\n 'rounded-[0_8px] px-[6px] text-[14px] font-[700]',\n 'absolute right-0 top-0',\n reward?.available ? 'bg-[#34C759] text-white' : 'bg-[#767880] text-white'\n )}\n >\n {reward.status}\n </span>\n </div>\n </div>\n ))\n )}\n </div>\n </div>\n </BaseModal>\n )\n}\n\nexport default MyRewardsModal\n"],
5
- "mappings": "sbAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,oBAAAE,EAAA,YAAAC,IAAA,eAAAC,EAAAJ,GA0LY,IAAAK,EAAA,6BA/KZC,EAAmD,iBACnDC,EAAmB,kCACnBC,EAA0B,0BAgHnB,MAAMN,EAAgD,CAAC,CAC5D,OAAAO,EACA,QAAAC,EACA,MAAAC,EAAQ,aACR,QAAAC,EACA,WAAAC,EACA,UAAAC,EACA,SAAAC,EAAW,QACX,SAAAC,EAAW,OACX,WAAAC,EAAa,SACb,UAAAC,EAAY,cACZ,UAAAC,EAAY,iBACZ,MAAAC,EAAQ,OACV,IAAM,CAEJ,KAAM,CAACC,EAAcC,CAAe,KAAI,YAAkC,CAAC,CAAC,EACtEC,KAAY,UAAuC,CAAC,CAAC,KAG3D,aAAU,IACD,IAAM,CACX,OAAO,OAAOA,EAAU,OAAO,EAAE,QAAQC,GAAS,aAAaA,CAAK,CAAC,CACvE,EACC,CAAC,CAAC,EAGL,MAAMC,EAAa,CAACC,EAAkBC,IAAiB,CAEjDJ,EAAU,QAAQG,CAAQ,GAC5B,aAAaH,EAAU,QAAQG,CAAQ,CAAC,EAG1C,UAAU,UAAU,UAAUC,CAAI,EAE9Bd,GAAYA,IAAac,CAAI,EAGjCL,EAAgBM,IAAS,CAAE,GAAGA,EAAM,CAACF,CAAQ,EAAG,EAAK,EAAE,EAGvDH,EAAU,QAAQG,CAAQ,EAAI,WAAW,IAAM,CAC7CJ,EAAgBM,IAAS,CAAE,GAAGA,EAAM,CAACF,CAAQ,EAAG,EAAM,EAAE,EACxD,OAAOH,EAAU,QAAQG,CAAQ,CACnC,EAAG,GAAI,CACT,EAEA,SACE,OAAC,aACC,OAAQjB,EACR,QAASC,EACT,SAAS,qCACT,WAAW,WACX,UAAWI,EACX,MAAOH,EACP,eAAe,sBACf,MAAOS,EAEP,mBAAC,OAAI,UAAU,8BAEb,mBAAC,OAAI,UAAU,oDACZ,SAAAR,EAAQ,SAAW,KAClB,OAAC,KAAE,UAAU,6CAA8C,SAAAO,EAAU,EAErEP,EAAQ,IAAIiB,MACV,OAAC,OAEC,aAAW,MAAG,cAAe,kDAAmD,WAAW,EAE3F,oBAAC,OAAI,UAAU,2FACb,qBAAC,OAAI,UAAU,SACb,oBAAC,KACC,aAAW,MACT,iCACAA,GAAQ,UAAY,iBAAmB,gBACzC,EAEC,SAAAA,EAAO,KACV,EACCA,EAAO,SACN,QAAC,OACC,aAAW,MACT,0BACAA,GAAQ,UAAY,iBAAmB,gBACzC,EAEA,qBAAC,KAAE,UAAU,yBACV,UAAAd,EAAS,IAAEc,EAAO,MACrB,EACCA,EAAO,cAAgBA,GAAQ,cAC9B,OAAC,UAAO,QAAS,IAAMJ,EAAWI,EAAO,GAAIA,EAAO,IAAK,EAAG,UAAU,YACnE,SAAAR,EAAaQ,EAAO,EAAE,EAAIZ,EAAaD,EAC1C,GAEJ,GAEJ,EAECa,EAAO,cACN,QAAC,OAAI,aAAW,MAAG,+DAA+D,EAChF,oBAAC,KAAG,SAAAX,EAAU,KACd,OAAC,KAAG,SAAAW,EAAO,UAAU,GACvB,KAIF,OAAC,QACC,aAAW,MACT,kDACA,yBACAA,GAAQ,UAAY,0BAA4B,yBAClD,EAEC,SAAAA,EAAO,OACV,GACF,GAjDKA,EAAO,EAkDd,CACD,EAEL,EACF,EACF,CAEJ,EAEA,IAAO1B,EAAQD",
4
+ "sourcesContent": ["/**\n * MyRewardsModal - \u6211\u7684\u5956\u52B1\u5F39\u7A97\u7EC4\u4EF6\n *\n * \u5C55\u793A\u7528\u6237\u5DF2\u83B7\u5F97\u7684\u5956\u52B1\u5217\u8868\n *\n * @module MyRewardsModal\n * @date 2026-01-04\n */\n\n'use client'\n\nimport React, { useState, useRef, useEffect } from 'react'\nimport { cn } from '../../helpers/index.js'\nimport { BaseModal } from './BaseModal.js'\n\nexport type RewardStatus = 'Available' | 'Expired' | 'Used'\n\nexport interface Reward {\n /**\n * \u5956\u52B1 ID\n */\n id: string\n\n /**\n * \u5956\u52B1\u540D\u79F0\n */\n name: string\n\n /**\n * \u4F18\u60E0\u7801\uFF08\u53EF\u9009\uFF09\n */\n code?: string\n\n /**\n * \u72B6\u6001\n */\n status: RewardStatus\n\n /**\n * \u5956\u52B1\u65F6\u95F4\n */\n prizeTime?: string\n\n /**\n * \u662F\u5426\u53EF\u590D\u5236\u7801\n */\n showCopyCode?: boolean\n\n /** * \u662F\u5426\u53EF\u7528\n */\n available?: boolean\n}\n\nexport interface MyRewardsModalProps {\n /**\n * \u662F\u5426\u663E\u793A\u5F39\u7A97\n */\n isOpen: boolean\n\n /**\n * \u5173\u95ED\u5F39\u7A97\u56DE\u8C03\n */\n onClose: () => void\n\n /**\n * \u5F39\u7A97\u6807\u9898\n * @default \"My Rewards\"\n */\n title?: string\n\n /**\n * \u5956\u52B1\u5217\u8868\n */\n rewards: Reward[]\n\n /**\n * \u590D\u5236\u7801\u70B9\u51FB\u56DE\u8C03\n */\n onCopyCode?: (code: string) => void\n\n /**\n * \u81EA\u5B9A\u4E49\u7C7B\u540D\n */\n className?: string\n\n /**\n * \u4EE3\u7801\u6587\u672C\u524D\u7F00\n * @default \"CODE:\"\n */\n codeText?: string\n\n /**\n * \u590D\u5236\u6309\u94AE\u6587\u672C\n * @default \"COPY\"\n */\n copyText?: string\n\n /**\n * \u590D\u5236\u6210\u529F\u540E\u7684\u6309\u94AE\u6587\u672C\n * @default \"COPIED\"\n */\n copiedText?: string\n\n /**\n * \u5956\u52B1\u65F6\u95F4\u6587\u672C\u524D\u7F00\n * @default \"Prize time:\"\n */\n prizeText?: string\n\n /**\n * \u7A7A\u72B6\u6001\u6587\u6848\n * @default \"No rewards yet\"\n */\n emptyText?: string\n\n /**\n * \u4E3B\u9898\u6A21\u5F0F\n * @default 'light'\n */\n theme?: 'light' | 'dark'\n}\n\n/**\n * MyRewardsModal \u6211\u7684\u5956\u52B1\u5F39\u7A97\u7EC4\u4EF6\n */\nexport const MyRewardsModal: React.FC<MyRewardsModalProps> = ({\n isOpen,\n onClose,\n title = 'My Rewards',\n rewards,\n onCopyCode,\n className,\n codeText = 'CODE:',\n copyText = 'COPY',\n copiedText = 'COPIED',\n prizeText = 'Prize time:',\n emptyText = 'No rewards yet',\n theme = 'light',\n}) => {\n // \u8FFD\u8E2A\u6BCF\u4E2A\u5956\u52B1\u7684\u590D\u5236\u72B6\u6001\n const [copiedStates, setCopiedStates] = useState<Record<string, boolean>>({})\n const timersRef = useRef<Record<string, NodeJS.Timeout>>({})\n\n // \u6E05\u7406\u6240\u6709\u5B9A\u65F6\u5668\n useEffect(() => {\n return () => {\n Object.values(timersRef.current).forEach(timer => clearTimeout(timer))\n }\n }, [])\n\n // \u5904\u7406\u590D\u5236\u64CD\u4F5C\n const handleCopy = (rewardId: string, code: string) => {\n // \u6E05\u9664\u8BE5\u5956\u52B1\u7684\u73B0\u6709\u5B9A\u65F6\u5668\n if (timersRef.current[rewardId]) {\n clearTimeout(timersRef.current[rewardId])\n }\n\n navigator.clipboard.writeText(code)\n // \u8C03\u7528\u590D\u5236\u56DE\u8C03\n if (onCopyCode) onCopyCode?.(code)\n\n // \u8BBE\u7F6E\u4E3A\u5DF2\u590D\u5236\u72B6\u6001\n setCopiedStates(prev => ({ ...prev, [rewardId]: true }))\n\n // 3\u79D2\u540E\u6062\u590D\n timersRef.current[rewardId] = setTimeout(() => {\n setCopiedStates(prev => ({ ...prev, [rewardId]: false }))\n delete timersRef.current[rewardId]\n }, 3000)\n }\n\n return (\n <BaseModal\n isOpen={isOpen}\n onClose={onClose}\n maxWidth=\"max-w-[480px] laptop:max-w-[520px]\"\n background=\"bg-white\"\n className={className}\n title={title}\n ariaLabelledBy=\"rewards-modal-title\"\n theme={theme}\n >\n <div className=\"laptop:px-8 laptop:pb-8 p-4\">\n {/* \u5956\u52B1\u5217\u8868 */}\n <div className=\"flex max-h-[584px] flex-col gap-2 overflow-y-auto\">\n {rewards.length === 0 ? (\n <p className=\"py-8 text-center text-[14px] text-gray-500\">{emptyText}</p>\n ) : (\n rewards.map(reward => (\n <div\n key={reward.id}\n className={cn(\n 'rounded-box',\n 'bg-container-secondary-0 relative flex-none overflow-hidden',\n 'px-4 py-6'\n )}\n >\n <div className=\"tablet:text-[16px] tablet:flex items-center justify-between gap-2 text-[14px] font-[700]\">\n <div className=\"flex-1\">\n <p\n className={cn(\n 'mb-1 font-[700]',\n reward?.available ? 'text-info-primary' : 'text-info-quaternary'\n )}\n >\n {reward.name}\n </p>\n {reward.code && (\n <div\n className={cn(\n 'flex items-center gap-2',\n reward?.available ? 'text-success-0' : 'text-info-quaternary'\n )}\n >\n <p className=\"max-w-[200px] truncate\">\n {codeText} {reward.code}\n </p>\n {reward.showCopyCode && reward?.available && (\n <button onClick={() => handleCopy(reward.id, reward.code!)} className=\"underline\">\n {copiedStates[reward.id] ? copiedText : copyText}\n </button>\n )}\n </div>\n )}\n </div>\n\n {reward.prizeTime && (\n <div className={cn('tablet:block text-info-quaternary flex gap-1 text-[14px] font-[700]')}>\n <p>{prizeText}</p>\n <p>{reward.prizeTime}</p>\n </div>\n )}\n\n {/* \u72B6\u6001\u6807\u7B7E */}\n <span\n className={cn(\n 'rounded-[0_8px] px-[6px] text-[14px] font-[700]',\n 'absolute right-0 top-0',\n reward?.available ? 'bg-success-0 text-info-white' : 'bg-info-quaternary text-info-white'\n )}\n >\n {reward.status}\n </span>\n </div>\n </div>\n ))\n )}\n </div>\n </div>\n </BaseModal>\n )\n}\n\nexport default MyRewardsModal\n"],
5
+ "mappings": "sbAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,oBAAAE,EAAA,YAAAC,IAAA,eAAAC,EAAAJ,GA0LY,IAAAK,EAAA,6BA/KZC,EAAmD,iBACnDC,EAAmB,kCACnBC,EAA0B,0BAgHnB,MAAMN,EAAgD,CAAC,CAC5D,OAAAO,EACA,QAAAC,EACA,MAAAC,EAAQ,aACR,QAAAC,EACA,WAAAC,EACA,UAAAC,EACA,SAAAC,EAAW,QACX,SAAAC,EAAW,OACX,WAAAC,EAAa,SACb,UAAAC,EAAY,cACZ,UAAAC,EAAY,iBACZ,MAAAC,EAAQ,OACV,IAAM,CAEJ,KAAM,CAACC,EAAcC,CAAe,KAAI,YAAkC,CAAC,CAAC,EACtEC,KAAY,UAAuC,CAAC,CAAC,KAG3D,aAAU,IACD,IAAM,CACX,OAAO,OAAOA,EAAU,OAAO,EAAE,QAAQC,GAAS,aAAaA,CAAK,CAAC,CACvE,EACC,CAAC,CAAC,EAGL,MAAMC,EAAa,CAACC,EAAkBC,IAAiB,CAEjDJ,EAAU,QAAQG,CAAQ,GAC5B,aAAaH,EAAU,QAAQG,CAAQ,CAAC,EAG1C,UAAU,UAAU,UAAUC,CAAI,EAE9Bd,GAAYA,IAAac,CAAI,EAGjCL,EAAgBM,IAAS,CAAE,GAAGA,EAAM,CAACF,CAAQ,EAAG,EAAK,EAAE,EAGvDH,EAAU,QAAQG,CAAQ,EAAI,WAAW,IAAM,CAC7CJ,EAAgBM,IAAS,CAAE,GAAGA,EAAM,CAACF,CAAQ,EAAG,EAAM,EAAE,EACxD,OAAOH,EAAU,QAAQG,CAAQ,CACnC,EAAG,GAAI,CACT,EAEA,SACE,OAAC,aACC,OAAQjB,EACR,QAASC,EACT,SAAS,qCACT,WAAW,WACX,UAAWI,EACX,MAAOH,EACP,eAAe,sBACf,MAAOS,EAEP,mBAAC,OAAI,UAAU,8BAEb,mBAAC,OAAI,UAAU,oDACZ,SAAAR,EAAQ,SAAW,KAClB,OAAC,KAAE,UAAU,6CAA8C,SAAAO,EAAU,EAErEP,EAAQ,IAAIiB,MACV,OAAC,OAEC,aAAW,MACT,cACA,8DACA,WACF,EAEA,oBAAC,OAAI,UAAU,2FACb,qBAAC,OAAI,UAAU,SACb,oBAAC,KACC,aAAW,MACT,kBACAA,GAAQ,UAAY,oBAAsB,sBAC5C,EAEC,SAAAA,EAAO,KACV,EACCA,EAAO,SACN,QAAC,OACC,aAAW,MACT,0BACAA,GAAQ,UAAY,iBAAmB,sBACzC,EAEA,qBAAC,KAAE,UAAU,yBACV,UAAAd,EAAS,IAAEc,EAAO,MACrB,EACCA,EAAO,cAAgBA,GAAQ,cAC9B,OAAC,UAAO,QAAS,IAAMJ,EAAWI,EAAO,GAAIA,EAAO,IAAK,EAAG,UAAU,YACnE,SAAAR,EAAaQ,EAAO,EAAE,EAAIZ,EAAaD,EAC1C,GAEJ,GAEJ,EAECa,EAAO,cACN,QAAC,OAAI,aAAW,MAAG,qEAAqE,EACtF,oBAAC,KAAG,SAAAX,EAAU,KACd,OAAC,KAAG,SAAAW,EAAO,UAAU,GACvB,KAIF,OAAC,QACC,aAAW,MACT,kDACA,yBACAA,GAAQ,UAAY,+BAAiC,oCACvD,EAEC,SAAAA,EAAO,OACV,GACF,GArDKA,EAAO,EAsDd,CACD,EAEL,EACF,EACF,CAEJ,EAEA,IAAO1B,EAAQD",
6
6
  "names": ["MyRewardsModal_exports", "__export", "MyRewardsModal", "MyRewardsModal_default", "__toCommonJS", "import_jsx_runtime", "import_react", "import_helpers", "import_BaseModal", "isOpen", "onClose", "title", "rewards", "onCopyCode", "className", "codeText", "copyText", "copiedText", "prizeText", "emptyText", "theme", "copiedStates", "setCopiedStates", "timersRef", "timer", "handleCopy", "rewardId", "code", "prev", "reward"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";"use client";var S=Object.create;var x=Object.defineProperty;var Y=Object.getOwnPropertyDescriptor;var j=Object.getOwnPropertyNames;var D=Object.getPrototypeOf,F=Object.prototype.hasOwnProperty;var G=(a,e)=>{for(var l in e)x(a,l,{get:e[l],enumerable:!0})},h=(a,e,l,m)=>{if(e&&typeof e=="object"||typeof e=="function")for(let p of j(e))!F.call(a,p)&&p!==l&&x(a,p,{get:()=>e[p],enumerable:!(m=Y(e,p))||m.enumerable});return a};var I=(a,e,l)=>(l=a!=null?S(D(a)):{},h(e||!a||!a.__esModule?x(l,"default",{value:a,enumerable:!0}):l,a)),J=a=>h(x({},"__esModule",{value:!0}),a);var q={};G(q,{WinnerModal:()=>y,default:()=>_});module.exports=J(q);var t=require("react/jsx-runtime"),i=I(require("react")),s=require("../../helpers/index.js"),n=require("../../components/index.js"),w=require("./BaseModal.js");const y=({isOpen:a,prize:e,title:l="You Have Won",prizeTitle:m,prizeImage:p,prizeDescription:f,learnMoreUrl:d,learnMoreText:k="Learn More",onClose:u,confirmText:W="Okay, Got It",onConfirm:B,className:M,couponCode:r,couponDiscount:c,couponUnit:O="Off",expiresAt:b,codeText:P="CODE:",copyText:T="COPY",copiedText:C="COPIED",onCopyCode:N,theme:E="light"})=>{const[H,v]=i.default.useState(!1),o=i.default.useRef(null);i.default.useEffect(()=>()=>{o.current&&clearTimeout(o.current)},[]);const R=g=>{o.current&&clearTimeout(o.current),navigator.clipboard.writeText(g),N&&N?.(g),v(!0),o.current=setTimeout(()=>{v(!1)},3e3)};if(!a||!e)return null;const L=()=>{B?.(),u()};return(0,t.jsxs)(w.BaseModal,{isOpen:a,onClose:u,className:M,maxWidth:"max-w-[358px] laptop:max-w-[480px]",ariaLabelledBy:"winner-modal-title",theme:E,children:[(0,t.jsxs)("div",{className:"laptop:px-8 laptop:pt-4 flex flex-col items-center px-6 pt-2",children:[(0,t.jsxs)("div",{className:"w-full",children:[(0,t.jsx)(n.Heading,{size:2,className:(0,s.cn)("laptop:mb-2 mb-1 text-center tracking-[-0.32px]"),children:l}),(0,t.jsx)("p",{className:"laptop:text-[18px] desktop:text-[16px] text-center text-[14px] font-[700] text-[#1D1D1F]",children:m||e.name}),d&&(0,t.jsx)("div",{className:"laptop:mt-4 mt-3 text-center",children:(0,t.jsx)("a",{href:d,target:"_blank",rel:"noopener noreferrer",className:(0,s.cn)("laptop:text-[14px] text-center text-[12px]","text-blue-600 hover:text-blue-700","font-medium underline","transition-colors"),children:k})})]}),(0,t.jsx)("div",{className:(0,s.cn)("mx-auto flex items-center justify-center","laptop:my-6 laptop:size-[200px] my-4 size-[160px]"),children:(p||e.image)&&(0,t.jsx)(n.Picture,{source:p||e?.image?.url,alt:e?.image?.alt||m||e?.name,className:(0,s.cn)("h-auto w-full")})}),(c||r)&&(0,t.jsxs)("div",{className:"laptop:mb-4 mb-2 flex w-full flex-col items-center",children:[c&&(0,t.jsxs)("span",{className:"text-brand-0 laptop:mb-2 laptop:text-[18px] mb-1 text-[16px] font-bold",children:[c," ",O]}),r&&(0,t.jsxs)("div",{className:"text-brand-0 laptop:text-[16px] flex items-center gap-2 text-center text-[14px] font-bold",children:[(0,t.jsxs)("span",{className:"max-w-[300px] truncate",children:[P,r]}),(0,t.jsx)("button",{onClick:()=>R(r),className:"underline",style:{minWidth:60},children:H?C:T})]}),b&&(0,t.jsxs)("span",{className:"laptop:mt-2 mt-1 text-[12px] text-[#767880]",children:["\u6709\u6548\u671F\u81F3\uFF1A",b]})]}),f&&(0,t.jsx)("p",{className:(0,s.cn)("laptop:text-[16px] laptop:mb-2 mb-1 px-4 text-center text-[14px] font-[700] text-[#767880]"),children:f})]}),(0,t.jsx)("div",{className:"laptop:px-8 laptop:pb-8 px-6 pb-6",children:(0,t.jsx)(n.Button,{onClick:L,className:(0,s.cn)("w-full"),children:W})})]})};var _=y;
1
+ "use strict";"use client";var Y=Object.create;var x=Object.defineProperty;var j=Object.getOwnPropertyDescriptor;var D=Object.getOwnPropertyNames;var F=Object.getPrototypeOf,G=Object.prototype.hasOwnProperty;var I=(a,e)=>{for(var l in e)x(a,l,{get:e[l],enumerable:!0})},w=(a,e,l,m)=>{if(e&&typeof e=="object"||typeof e=="function")for(let p of D(e))!G.call(a,p)&&p!==l&&x(a,p,{get:()=>e[p],enumerable:!(m=j(e,p))||m.enumerable});return a};var J=(a,e,l)=>(l=a!=null?Y(F(a)):{},w(e||!a||!a.__esModule?x(l,"default",{value:a,enumerable:!0}):l,a)),L=a=>w(x({},"__esModule",{value:!0}),a);var q={};I(q,{WinnerModal:()=>k,default:()=>_});module.exports=L(q);var t=require("react/jsx-runtime"),i=J(require("react")),s=require("../../helpers/index.js"),n=require("../../components/index.js"),y=require("./BaseModal.js");const k=({isOpen:a,prize:e,title:l="You Have Won",prizeTitle:m,prizeImage:p,prizeDescription:d,learnMoreUrl:f,learnMoreText:u,onClose:b,confirmText:W="Okay, Got It",onConfirm:B,className:O,couponCode:r,couponDiscount:c,couponUnit:P="Off",expiresAt:N,codeText:C="CODE:",copyText:E="COPY",copiedText:H="COPIED",onCopyCode:v,theme:M="light"})=>{const[R,h]=i.default.useState(!1),o=i.default.useRef(null);i.default.useEffect(()=>()=>{o.current&&clearTimeout(o.current)},[]);const T=g=>{o.current&&clearTimeout(o.current),navigator.clipboard.writeText(g),v&&v?.(g),h(!0),o.current=setTimeout(()=>{h(!1)},3e3)};if(!a||!e)return null;const S=()=>{B?.(),b()};return(0,t.jsxs)(y.BaseModal,{isOpen:a,onClose:b,className:O,maxWidth:"max-w-[358px] laptop:max-w-[480px]",ariaLabelledBy:"winner-modal-title",theme:M,children:[(0,t.jsxs)("div",{className:"laptop:px-8 laptop:pt-4 flex flex-col items-center px-6 pt-2",children:[(0,t.jsxs)("div",{className:"w-full",children:[(0,t.jsx)(n.Heading,{size:2,className:(0,s.cn)("laptop:mb-2 mb-1 text-center tracking-[-0.32px]"),children:l}),(0,t.jsx)("p",{className:"laptop:text-[18px] desktop:text-[16px] text-center text-[14px] font-[700] text-[#1D1D1F]",children:m||e.name}),f&&u&&(0,t.jsx)("div",{className:"laptop:mt-4 mt-3 hidden text-center",children:(0,t.jsx)("a",{href:f,target:"_blank",rel:"noopener noreferrer",className:(0,s.cn)("laptop:text-[14px] text-center text-[12px]","text-blue-600 hover:text-blue-700","font-medium underline","transition-colors"),children:u})})]}),(0,t.jsx)("div",{className:(0,s.cn)("mx-auto flex items-center justify-center","laptop:my-6 laptop:size-[200px] my-4 size-[160px]"),children:(p||e.image)&&(0,t.jsx)(n.Picture,{source:p||e?.image?.url,alt:e?.image?.alt||m||e?.name,className:(0,s.cn)("h-auto w-full")})}),(c||r)&&(0,t.jsxs)("div",{className:"laptop:mb-4 mb-2 flex w-full flex-col items-center",children:[c&&(0,t.jsxs)("span",{className:"text-brand-0 laptop:mb-2 laptop:text-[18px] mb-1 text-[16px] font-bold",children:[c," ",P]}),r&&(0,t.jsxs)("div",{className:"text-brand-0 laptop:text-[16px] flex items-center gap-2 text-center text-[14px] font-bold",children:[(0,t.jsxs)("span",{className:"max-w-[300px] truncate",children:[C,r]}),(0,t.jsx)("button",{onClick:()=>T(r),className:"underline",style:{minWidth:60},children:R?H:E})]}),N&&(0,t.jsxs)("span",{className:"laptop:mt-2 mt-1 text-[12px] text-[#767880]",children:["\u6709\u6548\u671F\u81F3\uFF1A",N]})]}),d&&(0,t.jsx)("p",{className:(0,s.cn)("laptop:text-[16px] laptop:mb-2 mb-1 px-4 text-center text-[14px] font-[700] text-[#767880]"),children:d})]}),(0,t.jsx)("div",{className:"laptop:px-8 laptop:pb-8 px-6 pb-6",children:(0,t.jsx)(n.Button,{onClick:S,className:(0,s.cn)("w-full"),children:W})})]})};var _=k;
2
2
  //# sourceMappingURL=WinnerModal.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/biz-components/WheelLottery/WinnerModal.tsx"],
4
- "sourcesContent": ["/**\n * WinnerModal - \u4E2D\u5956\u5F39\u7A97\u7EC4\u4EF6\n *\n * \u57FA\u4E8E\u622A\u56FE\u8BBE\u8BA1\u5B9E\u73B0\u7684\u4E2D\u5956\u7ED3\u679C\u5C55\u793A\u5F39\u7A97\u3002\n * \u5305\u542B\u6807\u9898\u3001\u5956\u54C1\u4FE1\u606F\u3001\u4F18\u60E0\u7801\u548C\u786E\u8BA4\u6309\u94AE\u3002\n *\n * @module WinnerModal\n * @date 2025-12-24\n */\n\n'use client'\n\nimport React from 'react'\nimport { cn } from '../../helpers/index.js'\nimport type { WinnerModalProps } from './types.js'\nimport { Picture, Heading, Button } from '../../components/index.js'\nimport { BaseModal } from './BaseModal.js'\n\n// ============================================================================\n// WinnerModal \u7EC4\u4EF6\n// ============================================================================\n\n/**\n * WinnerModal \u4E2D\u5956\u5F39\u7A97\u7EC4\u4EF6\n *\n * \u6839\u636E\u8BBE\u8BA1\u7A3F\u5B9E\u73B0\u7684\u4E2D\u5956\u7ED3\u679C\u5C55\u793A\u5F39\u7A97,\u5305\u542B:\n * - \u534A\u900F\u660E\u906E\u7F69\u5C42\n * - \u767D\u8272\u5706\u89D2\u5361\u7247\u5BB9\u5668\n * - \u6807\u9898 \"You Have Won\"\n * - \u5956\u54C1\u540D\u79F0\n * - \u4F18\u60E0\u5238\u56FE\u7247\uFF0820% Off\uFF09\n * - \u4F18\u60E0\u7801\u548C\u8FC7\u671F\u65F6\u95F4\n * - \u786E\u8BA4\u6309\u94AE\n * - \u53F3\u4E0A\u89D2\u5173\u95ED\u6309\u94AE\n */\nexport const WinnerModal = ({\n isOpen,\n prize,\n title = 'You Have Won',\n prizeTitle,\n prizeImage,\n prizeDescription,\n learnMoreUrl,\n learnMoreText = 'Learn More',\n onClose,\n confirmText = 'Okay, Got It',\n onConfirm,\n className,\n couponCode,\n couponDiscount,\n couponUnit = 'Off',\n expiresAt,\n codeText = 'CODE:',\n copyText = 'COPY',\n copiedText = 'COPIED',\n onCopyCode,\n theme = 'light',\n}: WinnerModalProps & { theme?: 'light' | 'dark' }) => {\n // \u590D\u5236\u72B6\u6001\n const [copied, setCopied] = React.useState(false)\n const timerRef = React.useRef<NodeJS.Timeout | null>(null)\n\n React.useEffect(() => {\n return () => {\n if (timerRef.current) clearTimeout(timerRef.current)\n }\n }, [])\n\n // \u590D\u5236\u64CD\u4F5C\n const handleCopy = (code: string) => {\n if (timerRef.current) clearTimeout(timerRef.current)\n\n navigator.clipboard.writeText(code)\n if (onCopyCode) onCopyCode?.(code)\n setCopied(true)\n timerRef.current = setTimeout(() => {\n setCopied(false)\n }, 3000)\n }\n\n // \u4E0D\u663E\u793A\u5F39\u7A97\u6216\u65E0\u5956\u54C1\u6570\u636E\u65F6\u8FD4\u56DE null\n if (!isOpen || !prize) {\n return null\n }\n\n // \u786E\u8BA4\u6309\u94AE\u70B9\u51FB\u5904\u7406\n const handleConfirm = () => {\n onConfirm?.()\n onClose()\n }\n\n return (\n <BaseModal\n isOpen={isOpen}\n onClose={onClose}\n className={className}\n maxWidth=\"max-w-[358px] laptop:max-w-[480px]\"\n ariaLabelledBy=\"winner-modal-title\"\n theme={theme}\n >\n <div className=\"laptop:px-8 laptop:pt-4 flex flex-col items-center px-6 pt-2\">\n {/* =================================================================\n \u5F39\u7A97\u6807\u9898\n ================================================================= */}\n <div className=\"w-full\">\n <Heading size={2} className={cn('laptop:mb-2 mb-1 text-center tracking-[-0.32px]')}>\n {title}\n </Heading>\n\n <p className=\"laptop:text-[18px] desktop:text-[16px] text-center text-[14px] font-[700] text-[#1D1D1F]\">\n {prizeTitle || prize.name}\n </p>\n\n {/* =================================================================\n Learn More \u6309\u94AE\n ================================================================= */}\n {learnMoreUrl && (\n <div className=\"laptop:mt-4 mt-3 text-center\">\n <a\n href={learnMoreUrl}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className={cn(\n 'laptop:text-[14px] text-center text-[12px]',\n 'text-blue-600 hover:text-blue-700',\n 'font-medium underline',\n 'transition-colors'\n )}\n >\n {learnMoreText}\n </a>\n </div>\n )}\n </div>\n\n {/* =================================================================\n \u5956\u54C1\u56FE\u7247\n ================================================================= */}\n\n <div\n className={cn(\n 'mx-auto flex items-center justify-center',\n 'laptop:my-6 laptop:size-[200px] my-4 size-[160px]'\n )}\n >\n {(prizeImage || prize.image) && (\n <Picture\n source={prizeImage || prize?.image?.url}\n alt={prize?.image?.alt || prizeTitle || prize?.name}\n className={cn('h-auto w-full')}\n />\n )}\n </div>\n\n {/* =================================================================\n \u6298\u6263\u548C\u4F18\u60E0\u7801\u590D\u5236\n ================================================================= */}\n {(couponDiscount || couponCode) && (\n <div className=\"laptop:mb-4 mb-2 flex w-full flex-col items-center\">\n {couponDiscount && (\n <span className=\"text-brand-0 laptop:mb-2 laptop:text-[18px] mb-1 text-[16px] font-bold\">\n {couponDiscount} {couponUnit}\n </span>\n )}\n {couponCode && (\n <div className=\"text-brand-0 laptop:text-[16px] flex items-center gap-2 text-center text-[14px] font-bold\">\n <span className=\"max-w-[300px] truncate\">\n {codeText}\n {couponCode}\n </span>\n <button onClick={() => handleCopy(couponCode!)} className=\"underline\" style={{ minWidth: 60 }}>\n {copied ? copiedText : copyText}\n </button>\n </div>\n )}\n {expiresAt && <span className=\"laptop:mt-2 mt-1 text-[12px] text-[#767880]\">\u6709\u6548\u671F\u81F3\uFF1A{expiresAt}</span>}\n </div>\n )}\n\n {/* =================================================================\n \u5956\u54C1\u8BE6\u60C5\u63CF\u8FF0\n ================================================================= */}\n {prizeDescription && (\n <p\n className={cn('laptop:text-[16px] laptop:mb-2 mb-1 px-4 text-center text-[14px] font-[700] text-[#767880]')}\n >\n {prizeDescription}\n </p>\n )}\n </div>\n\n {/* =================================================================\n \u786E\u8BA4\u6309\u94AE\n ================================================================= */}\n <div className=\"laptop:px-8 laptop:pb-8 px-6 pb-6\">\n <Button onClick={handleConfirm} className={cn('w-full')}>\n {confirmText}\n </Button>\n </div>\n </BaseModal>\n )\n}\n\n// ============================================================================\n// \u9ED8\u8BA4\u5BFC\u51FA\n// ============================================================================\n\nexport default WinnerModal\n"],
5
- "mappings": "ukBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,iBAAAE,EAAA,YAAAC,IAAA,eAAAC,EAAAJ,GAwGQ,IAAAK,EAAA,6BA5FRC,EAAkB,oBAClBC,EAAmB,kCAEnBC,EAAyC,qCACzCC,EAA0B,0BAmBnB,MAAMP,EAAc,CAAC,CAC1B,OAAAQ,EACA,MAAAC,EACA,MAAAC,EAAQ,eACR,WAAAC,EACA,WAAAC,EACA,iBAAAC,EACA,aAAAC,EACA,cAAAC,EAAgB,aAChB,QAAAC,EACA,YAAAC,EAAc,eACd,UAAAC,EACA,UAAAC,EACA,WAAAC,EACA,eAAAC,EACA,WAAAC,EAAa,MACb,UAAAC,EACA,SAAAC,EAAW,QACX,SAAAC,EAAW,OACX,WAAAC,EAAa,SACb,WAAAC,EACA,MAAAC,EAAQ,OACV,IAAuD,CAErD,KAAM,CAACC,EAAQC,CAAS,EAAI,EAAAC,QAAM,SAAS,EAAK,EAC1CC,EAAW,EAAAD,QAAM,OAA8B,IAAI,EAEzD,EAAAA,QAAM,UAAU,IACP,IAAM,CACPC,EAAS,SAAS,aAAaA,EAAS,OAAO,CACrD,EACC,CAAC,CAAC,EAGL,MAAMC,EAAcC,GAAiB,CAC/BF,EAAS,SAAS,aAAaA,EAAS,OAAO,EAEnD,UAAU,UAAU,UAAUE,CAAI,EAC9BP,GAAYA,IAAaO,CAAI,EACjCJ,EAAU,EAAI,EACdE,EAAS,QAAU,WAAW,IAAM,CAClCF,EAAU,EAAK,CACjB,EAAG,GAAI,CACT,EAGA,GAAI,CAACtB,GAAU,CAACC,EACd,OAAO,KAIT,MAAM0B,EAAgB,IAAM,CAC1BjB,IAAY,EACZF,EAAQ,CACV,EAEA,SACE,QAAC,aACC,OAAQR,EACR,QAASQ,EACT,UAAWG,EACX,SAAS,qCACT,eAAe,qBACf,MAAOS,EAEP,qBAAC,OAAI,UAAU,+DAIb,qBAAC,OAAI,UAAU,SACb,oBAAC,WAAQ,KAAM,EAAG,aAAW,MAAG,iDAAiD,EAC9E,SAAAlB,EACH,KAEA,OAAC,KAAE,UAAU,2FACV,SAAAC,GAAcF,EAAM,KACvB,EAKCK,MACC,OAAC,OAAI,UAAU,+BACb,mBAAC,KACC,KAAMA,EACN,OAAO,SACP,IAAI,sBACJ,aAAW,MACT,6CACA,oCACA,wBACA,mBACF,EAEC,SAAAC,EACH,EACF,GAEJ,KAMA,OAAC,OACC,aAAW,MACT,2CACA,mDACF,EAEE,UAAAH,GAAcH,EAAM,WACpB,OAAC,WACC,OAAQG,GAAcH,GAAO,OAAO,IACpC,IAAKA,GAAO,OAAO,KAAOE,GAAcF,GAAO,KAC/C,aAAW,MAAG,eAAe,EAC/B,EAEJ,GAKEY,GAAkBD,OAClB,QAAC,OAAI,UAAU,qDACZ,UAAAC,MACC,QAAC,QAAK,UAAU,yEACb,UAAAA,EAAe,IAAEC,GACpB,EAEDF,MACC,QAAC,OAAI,UAAU,4FACb,qBAAC,QAAK,UAAU,yBACb,UAAAI,EACAJ,GACH,KACA,OAAC,UAAO,QAAS,IAAMa,EAAWb,CAAW,EAAG,UAAU,YAAY,MAAO,CAAE,SAAU,EAAG,EACzF,SAAAS,EAASH,EAAaD,EACzB,GACF,EAEDF,MAAa,QAAC,QAAK,UAAU,8CAA8C,2CAAMA,GAAU,GAC9F,EAMDV,MACC,OAAC,KACC,aAAW,MAAG,4FAA4F,EAEzG,SAAAA,EACH,GAEJ,KAKA,OAAC,OAAI,UAAU,oCACb,mBAAC,UAAO,QAASsB,EAAe,aAAW,MAAG,QAAQ,EACnD,SAAAlB,EACH,EACF,GACF,CAEJ,EAMA,IAAOhB,EAAQD",
4
+ "sourcesContent": ["/**\n * WinnerModal - \u4E2D\u5956\u5F39\u7A97\u7EC4\u4EF6\n *\n * \u57FA\u4E8E\u622A\u56FE\u8BBE\u8BA1\u5B9E\u73B0\u7684\u4E2D\u5956\u7ED3\u679C\u5C55\u793A\u5F39\u7A97\u3002\n * \u5305\u542B\u6807\u9898\u3001\u5956\u54C1\u4FE1\u606F\u3001\u4F18\u60E0\u7801\u548C\u786E\u8BA4\u6309\u94AE\u3002\n *\n * @module WinnerModal\n * @date 2025-12-24\n */\n\n'use client'\n\nimport React from 'react'\nimport { cn } from '../../helpers/index.js'\nimport type { WinnerModalProps } from './types.js'\nimport { Picture, Heading, Button } from '../../components/index.js'\nimport { BaseModal } from './BaseModal.js'\n\n// ============================================================================\n// WinnerModal \u7EC4\u4EF6\n// ============================================================================\n\n/**\n * WinnerModal \u4E2D\u5956\u5F39\u7A97\u7EC4\u4EF6\n *\n * \u6839\u636E\u8BBE\u8BA1\u7A3F\u5B9E\u73B0\u7684\u4E2D\u5956\u7ED3\u679C\u5C55\u793A\u5F39\u7A97,\u5305\u542B:\n * - \u534A\u900F\u660E\u906E\u7F69\u5C42\n * - \u767D\u8272\u5706\u89D2\u5361\u7247\u5BB9\u5668\n * - \u6807\u9898 \"You Have Won\"\n * - \u5956\u54C1\u540D\u79F0\n * - \u4F18\u60E0\u5238\u56FE\u7247\uFF0820% Off\uFF09\n * - \u4F18\u60E0\u7801\u548C\u8FC7\u671F\u65F6\u95F4\n * - \u786E\u8BA4\u6309\u94AE\n * - \u53F3\u4E0A\u89D2\u5173\u95ED\u6309\u94AE\n */\nexport const WinnerModal = ({\n isOpen,\n prize,\n title = 'You Have Won',\n prizeTitle,\n prizeImage,\n prizeDescription,\n learnMoreUrl,\n learnMoreText,\n onClose,\n confirmText = 'Okay, Got It',\n onConfirm,\n className,\n couponCode,\n couponDiscount,\n couponUnit = 'Off',\n expiresAt,\n codeText = 'CODE:',\n copyText = 'COPY',\n copiedText = 'COPIED',\n onCopyCode,\n theme = 'light',\n}: WinnerModalProps & { theme?: 'light' | 'dark' }) => {\n // \u590D\u5236\u72B6\u6001\n const [copied, setCopied] = React.useState(false)\n const timerRef = React.useRef<NodeJS.Timeout | null>(null)\n\n React.useEffect(() => {\n return () => {\n if (timerRef.current) clearTimeout(timerRef.current)\n }\n }, [])\n\n // \u590D\u5236\u64CD\u4F5C\n const handleCopy = (code: string) => {\n if (timerRef.current) clearTimeout(timerRef.current)\n\n navigator.clipboard.writeText(code)\n if (onCopyCode) onCopyCode?.(code)\n setCopied(true)\n timerRef.current = setTimeout(() => {\n setCopied(false)\n }, 3000)\n }\n\n // \u4E0D\u663E\u793A\u5F39\u7A97\u6216\u65E0\u5956\u54C1\u6570\u636E\u65F6\u8FD4\u56DE null\n if (!isOpen || !prize) {\n return null\n }\n\n // \u786E\u8BA4\u6309\u94AE\u70B9\u51FB\u5904\u7406\n const handleConfirm = () => {\n onConfirm?.()\n onClose()\n }\n\n return (\n <BaseModal\n isOpen={isOpen}\n onClose={onClose}\n className={className}\n maxWidth=\"max-w-[358px] laptop:max-w-[480px]\"\n ariaLabelledBy=\"winner-modal-title\"\n theme={theme}\n >\n <div className=\"laptop:px-8 laptop:pt-4 flex flex-col items-center px-6 pt-2\">\n {/* =================================================================\n \u5F39\u7A97\u6807\u9898\n ================================================================= */}\n <div className=\"w-full\">\n <Heading size={2} className={cn('laptop:mb-2 mb-1 text-center tracking-[-0.32px]')}>\n {title}\n </Heading>\n\n <p className=\"laptop:text-[18px] desktop:text-[16px] text-center text-[14px] font-[700] text-[#1D1D1F]\">\n {prizeTitle || prize.name}\n </p>\n\n {/* =================================================================\n Learn More \u6309\u94AE\n ================================================================= */}\n {learnMoreUrl && learnMoreText && (\n <div className=\"laptop:mt-4 mt-3 hidden text-center\">\n <a\n href={learnMoreUrl}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className={cn(\n 'laptop:text-[14px] text-center text-[12px]',\n 'text-blue-600 hover:text-blue-700',\n 'font-medium underline',\n 'transition-colors'\n )}\n >\n {learnMoreText}\n </a>\n </div>\n )}\n </div>\n\n {/* =================================================================\n \u5956\u54C1\u56FE\u7247\n ================================================================= */}\n\n <div\n className={cn(\n 'mx-auto flex items-center justify-center',\n 'laptop:my-6 laptop:size-[200px] my-4 size-[160px]'\n )}\n >\n {(prizeImage || prize.image) && (\n <Picture\n source={prizeImage || prize?.image?.url}\n alt={prize?.image?.alt || prizeTitle || prize?.name}\n className={cn('h-auto w-full')}\n />\n )}\n </div>\n\n {/* =================================================================\n \u6298\u6263\u548C\u4F18\u60E0\u7801\u590D\u5236\n ================================================================= */}\n {(couponDiscount || couponCode) && (\n <div className=\"laptop:mb-4 mb-2 flex w-full flex-col items-center\">\n {couponDiscount && (\n <span className=\"text-brand-0 laptop:mb-2 laptop:text-[18px] mb-1 text-[16px] font-bold\">\n {couponDiscount} {couponUnit}\n </span>\n )}\n {couponCode && (\n <div className=\"text-brand-0 laptop:text-[16px] flex items-center gap-2 text-center text-[14px] font-bold\">\n <span className=\"max-w-[300px] truncate\">\n {codeText}\n {couponCode}\n </span>\n <button onClick={() => handleCopy(couponCode!)} className=\"underline\" style={{ minWidth: 60 }}>\n {copied ? copiedText : copyText}\n </button>\n </div>\n )}\n {expiresAt && <span className=\"laptop:mt-2 mt-1 text-[12px] text-[#767880]\">\u6709\u6548\u671F\u81F3\uFF1A{expiresAt}</span>}\n </div>\n )}\n\n {/* =================================================================\n \u5956\u54C1\u8BE6\u60C5\u63CF\u8FF0\n ================================================================= */}\n {prizeDescription && (\n <p\n className={cn('laptop:text-[16px] laptop:mb-2 mb-1 px-4 text-center text-[14px] font-[700] text-[#767880]')}\n >\n {prizeDescription}\n </p>\n )}\n </div>\n\n {/* =================================================================\n \u786E\u8BA4\u6309\u94AE\n ================================================================= */}\n <div className=\"laptop:px-8 laptop:pb-8 px-6 pb-6\">\n <Button onClick={handleConfirm} className={cn('w-full')}>\n {confirmText}\n </Button>\n </div>\n </BaseModal>\n )\n}\n\n// ============================================================================\n// \u9ED8\u8BA4\u5BFC\u51FA\n// ============================================================================\n\nexport default WinnerModal\n"],
5
+ "mappings": "ukBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,iBAAAE,EAAA,YAAAC,IAAA,eAAAC,EAAAJ,GAwGQ,IAAAK,EAAA,6BA5FRC,EAAkB,oBAClBC,EAAmB,kCAEnBC,EAAyC,qCACzCC,EAA0B,0BAmBnB,MAAMP,EAAc,CAAC,CAC1B,OAAAQ,EACA,MAAAC,EACA,MAAAC,EAAQ,eACR,WAAAC,EACA,WAAAC,EACA,iBAAAC,EACA,aAAAC,EACA,cAAAC,EACA,QAAAC,EACA,YAAAC,EAAc,eACd,UAAAC,EACA,UAAAC,EACA,WAAAC,EACA,eAAAC,EACA,WAAAC,EAAa,MACb,UAAAC,EACA,SAAAC,EAAW,QACX,SAAAC,EAAW,OACX,WAAAC,EAAa,SACb,WAAAC,EACA,MAAAC,EAAQ,OACV,IAAuD,CAErD,KAAM,CAACC,EAAQC,CAAS,EAAI,EAAAC,QAAM,SAAS,EAAK,EAC1CC,EAAW,EAAAD,QAAM,OAA8B,IAAI,EAEzD,EAAAA,QAAM,UAAU,IACP,IAAM,CACPC,EAAS,SAAS,aAAaA,EAAS,OAAO,CACrD,EACC,CAAC,CAAC,EAGL,MAAMC,EAAcC,GAAiB,CAC/BF,EAAS,SAAS,aAAaA,EAAS,OAAO,EAEnD,UAAU,UAAU,UAAUE,CAAI,EAC9BP,GAAYA,IAAaO,CAAI,EACjCJ,EAAU,EAAI,EACdE,EAAS,QAAU,WAAW,IAAM,CAClCF,EAAU,EAAK,CACjB,EAAG,GAAI,CACT,EAGA,GAAI,CAACtB,GAAU,CAACC,EACd,OAAO,KAIT,MAAM0B,EAAgB,IAAM,CAC1BjB,IAAY,EACZF,EAAQ,CACV,EAEA,SACE,QAAC,aACC,OAAQR,EACR,QAASQ,EACT,UAAWG,EACX,SAAS,qCACT,eAAe,qBACf,MAAOS,EAEP,qBAAC,OAAI,UAAU,+DAIb,qBAAC,OAAI,UAAU,SACb,oBAAC,WAAQ,KAAM,EAAG,aAAW,MAAG,iDAAiD,EAC9E,SAAAlB,EACH,KAEA,OAAC,KAAE,UAAU,2FACV,SAAAC,GAAcF,EAAM,KACvB,EAKCK,GAAgBC,MACf,OAAC,OAAI,UAAU,sCACb,mBAAC,KACC,KAAMD,EACN,OAAO,SACP,IAAI,sBACJ,aAAW,MACT,6CACA,oCACA,wBACA,mBACF,EAEC,SAAAC,EACH,EACF,GAEJ,KAMA,OAAC,OACC,aAAW,MACT,2CACA,mDACF,EAEE,UAAAH,GAAcH,EAAM,WACpB,OAAC,WACC,OAAQG,GAAcH,GAAO,OAAO,IACpC,IAAKA,GAAO,OAAO,KAAOE,GAAcF,GAAO,KAC/C,aAAW,MAAG,eAAe,EAC/B,EAEJ,GAKEY,GAAkBD,OAClB,QAAC,OAAI,UAAU,qDACZ,UAAAC,MACC,QAAC,QAAK,UAAU,yEACb,UAAAA,EAAe,IAAEC,GACpB,EAEDF,MACC,QAAC,OAAI,UAAU,4FACb,qBAAC,QAAK,UAAU,yBACb,UAAAI,EACAJ,GACH,KACA,OAAC,UAAO,QAAS,IAAMa,EAAWb,CAAW,EAAG,UAAU,YAAY,MAAO,CAAE,SAAU,EAAG,EACzF,SAAAS,EAASH,EAAaD,EACzB,GACF,EAEDF,MAAa,QAAC,QAAK,UAAU,8CAA8C,2CAAMA,GAAU,GAC9F,EAMDV,MACC,OAAC,KACC,aAAW,MAAG,4FAA4F,EAEzG,SAAAA,EACH,GAEJ,KAKA,OAAC,OAAI,UAAU,oCACb,mBAAC,UAAO,QAASsB,EAAe,aAAW,MAAG,QAAQ,EACnD,SAAAlB,EACH,EACF,GACF,CAEJ,EAMA,IAAOhB,EAAQD",
6
6
  "names": ["WinnerModal_exports", "__export", "WinnerModal", "WinnerModal_default", "__toCommonJS", "import_jsx_runtime", "import_react", "import_helpers", "import_components", "import_BaseModal", "isOpen", "prize", "title", "prizeTitle", "prizeImage", "prizeDescription", "learnMoreUrl", "learnMoreText", "onClose", "confirmText", "onConfirm", "className", "couponCode", "couponDiscount", "couponUnit", "expiresAt", "codeText", "copyText", "copiedText", "onCopyCode", "theme", "copied", "setCopied", "React", "timerRef", "handleCopy", "code", "handleConfirm"]
7
7
  }