@anker-in/headless-ui 1.1.28-alpha.1768202456200 → 1.1.29

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 (900) hide show
  1. package/dist/cjs/biz-components/AccordionCards/index.d.ts +3 -3
  2. package/dist/cjs/biz-components/AiuiProvider/index.d.ts +0 -7
  3. package/dist/cjs/biz-components/AiuiProvider/index.js +1 -1
  4. package/dist/cjs/biz-components/AiuiProvider/index.js.map +2 -2
  5. package/dist/cjs/biz-components/AplusDesc/index.d.ts +3 -3
  6. package/dist/cjs/biz-components/BrandEquity/BrandEquity.d.ts +3 -3
  7. package/dist/cjs/biz-components/BrandEquity/BrandEquity.js +1 -1
  8. package/dist/cjs/biz-components/BrandEquity/BrandEquity.js.map +2 -2
  9. package/dist/cjs/biz-components/BrandEquity/types.d.ts +0 -1
  10. package/dist/cjs/biz-components/BrandEquity/types.js +1 -1
  11. package/dist/cjs/biz-components/BrandEquity/types.js.map +1 -1
  12. package/dist/cjs/biz-components/Category/index.d.ts +3 -3
  13. package/dist/cjs/biz-components/CreativeModule/index.d.ts +3 -3
  14. package/dist/cjs/biz-components/DownLoad/index.d.ts +3 -3
  15. package/dist/cjs/biz-components/Evaluate/index.d.ts +3 -3
  16. package/dist/cjs/biz-components/Evaluate/index.js +1 -1
  17. package/dist/cjs/biz-components/Evaluate/index.js.map +2 -2
  18. package/dist/cjs/biz-components/Faq/Faq.d.ts +3 -3
  19. package/dist/cjs/biz-components/FeatureCards/FeatureCards.d.ts +3 -3
  20. package/dist/cjs/biz-components/FeatureShowcase/FeatureShowcase.d.ts +3 -3
  21. package/dist/cjs/biz-components/Features/index.d.ts +3 -3
  22. package/dist/cjs/biz-components/FootCharger/index.d.ts +3 -3
  23. package/dist/cjs/biz-components/FooterNavigation/index.d.ts +3 -3
  24. package/dist/cjs/biz-components/GiftBox/index.d.ts +3 -3
  25. package/dist/cjs/biz-components/Graphic/index.d.ts +3 -3
  26. package/dist/cjs/biz-components/GraphicAttractionBlock/index.d.ts +3 -3
  27. package/dist/cjs/biz-components/GraphicMore/index.d.ts +3 -3
  28. package/dist/cjs/biz-components/GraphicOverlay/GraphicOverlay.d.ts +3 -3
  29. package/dist/cjs/biz-components/HeaderNavigation/index.d.ts +3 -3
  30. package/dist/cjs/biz-components/HeroBanner/Countdown.js +1 -1
  31. package/dist/cjs/biz-components/HeroBanner/Countdown.js.map +2 -2
  32. package/dist/cjs/biz-components/HeroBanner/HeroBanner.d.ts +3 -6
  33. package/dist/cjs/biz-components/HeroBanner/HeroBanner.js +1 -1
  34. package/dist/cjs/biz-components/HeroBanner/HeroBanner.js.map +3 -3
  35. package/dist/cjs/biz-components/HeroBanner/types.d.ts +0 -4
  36. package/dist/cjs/biz-components/HeroBanner/types.js +1 -1
  37. package/dist/cjs/biz-components/HeroBanner/types.js.map +1 -1
  38. package/dist/cjs/biz-components/ImageTextFeature/ImageTextFeature.d.ts +3 -3
  39. package/dist/cjs/biz-components/ImageTextFeature/ImageTextFeature.js +1 -1
  40. package/dist/cjs/biz-components/ImageTextFeature/ImageTextFeature.js.map +3 -3
  41. package/dist/cjs/biz-components/ImageTextFeature/types.d.ts +0 -1
  42. package/dist/cjs/biz-components/ImageTextFeature/types.js +1 -1
  43. package/dist/cjs/biz-components/ImageTextFeature/types.js.map +1 -1
  44. package/dist/cjs/biz-components/ImageWithText/ImageWithText.d.ts +3 -3
  45. package/dist/cjs/biz-components/Ksp/index.d.ts +3 -3
  46. package/dist/cjs/biz-components/Listing/components/PaidShipping/index.d.ts +4 -4
  47. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/BenefitsTab.d.ts +3 -3
  48. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductBundle/index.d.ts +3 -3
  49. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductExchangePurchase/index.d.ts +3 -3
  50. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductFreeGift/index.d.ts +3 -3
  51. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductHighlight/index.d.ts +3 -3
  52. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductOptions/index.d.ts +3 -3
  53. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGallery/index.d.ts +3 -3
  54. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductSummary/index.d.ts +3 -3
  55. package/dist/cjs/biz-components/Listing/components/PurchaseBar/index.d.ts +3 -3
  56. package/dist/cjs/biz-components/Marquee/Marquee.d.ts +3 -3
  57. package/dist/cjs/biz-components/Marquee/Marquee.js +1 -1
  58. package/dist/cjs/biz-components/Marquee/Marquee.js.map +3 -3
  59. package/dist/cjs/biz-components/MarqueeReview/index.d.ts +3 -3
  60. package/dist/cjs/biz-components/MediaPlayerBase/index.d.ts +3 -3
  61. package/dist/cjs/biz-components/MediaPlayerMulti/index.d.ts +3 -3
  62. package/dist/cjs/biz-components/MediaPlayerSticky/index.d.ts +4 -4
  63. package/dist/cjs/biz-components/MediaPlayerSticky/types.d.ts +0 -1
  64. package/dist/cjs/biz-components/MediaPlayerSticky/types.js +1 -1
  65. package/dist/cjs/biz-components/MediaPlayerSticky/types.js.map +1 -1
  66. package/dist/cjs/biz-components/MediaSceneSwitcher/MediaSceneSwitcher.d.ts +3 -3
  67. package/dist/cjs/biz-components/MemberEquity/index.d.ts +3 -3
  68. package/dist/cjs/biz-components/MultiLayoutGraphicBlock/MultiLayoutGraphicBlock.d.ts +3 -3
  69. package/dist/cjs/biz-components/ProductCompare/index.d.ts +3 -3
  70. package/dist/cjs/biz-components/ProductHero/ProductHero.d.ts +3 -3
  71. package/dist/cjs/biz-components/ProductNav/ProductNav.d.ts +3 -3
  72. package/dist/cjs/biz-components/SelectStore/index.d.ts +3 -3
  73. package/dist/cjs/biz-components/ShelfDisplay/index.d.ts +3 -3
  74. package/dist/cjs/biz-components/ShelfDisplay/shelfDisplay.d.ts +11 -0
  75. package/dist/cjs/biz-components/ShelfDisplay/shelfDisplay.js +1 -1
  76. package/dist/cjs/biz-components/ShelfDisplay/shelfDisplay.js.map +3 -3
  77. package/dist/cjs/biz-components/ShelfDisplay/shelfDisplayItem.js +4 -4
  78. package/dist/cjs/biz-components/ShelfDisplay/shelfDisplayItem.js.map +3 -3
  79. package/dist/cjs/biz-components/Slogan/index.d.ts +3 -3
  80. package/dist/cjs/biz-components/Spacer/index.d.ts +3 -3
  81. package/dist/cjs/biz-components/Specs/index.d.ts +3 -3
  82. package/dist/cjs/biz-components/SpecsComparison/SpecsComparison.d.ts +3 -3
  83. package/dist/cjs/biz-components/TabWithImage/TabWithImage.d.ts +3 -3
  84. package/dist/cjs/biz-components/Tabs/Tabs.d.ts +3 -3
  85. package/dist/cjs/biz-components/Tabs/Tabs.js +1 -1
  86. package/dist/cjs/biz-components/Tabs/Tabs.js.map +3 -3
  87. package/dist/cjs/biz-components/Tabs/types.d.ts +0 -9
  88. package/dist/cjs/biz-components/Tabs/types.js +1 -1
  89. package/dist/cjs/biz-components/Tabs/types.js.map +1 -1
  90. package/dist/cjs/biz-components/TabsGroup/index.d.ts +3 -3
  91. package/dist/cjs/biz-components/TabsWithMedia/TabsWithMedia.d.ts +3 -3
  92. package/dist/cjs/biz-components/ThreeDCarousel/ThreeDCarousel.d.ts +3 -3
  93. package/dist/cjs/biz-components/Title/index.d.ts +3 -3
  94. package/dist/cjs/biz-components/Title/index.js +1 -1
  95. package/dist/cjs/biz-components/Title/index.js.map +3 -3
  96. package/dist/cjs/biz-components/Title/types.d.ts +0 -55
  97. package/dist/cjs/biz-components/Title/types.js +1 -1
  98. package/dist/cjs/biz-components/Title/types.js.map +1 -1
  99. package/dist/cjs/biz-components/VideoFeature/VideoFeature.d.ts +3 -3
  100. package/dist/cjs/biz-components/WhyChoose/WhyChoose.d.ts +3 -3
  101. package/dist/cjs/biz-components/index.d.ts +0 -32
  102. package/dist/cjs/biz-components/index.js +1 -1
  103. package/dist/cjs/biz-components/index.js.map +3 -3
  104. package/dist/cjs/components/badge.d.ts +2 -5
  105. package/dist/cjs/components/badge.js +1 -1
  106. package/dist/cjs/components/badge.js.map +3 -3
  107. package/dist/cjs/components/index.d.ts +0 -2
  108. package/dist/cjs/components/index.js +1 -1
  109. package/dist/cjs/components/index.js.map +3 -3
  110. package/dist/cjs/components/tabs.d.ts +1 -2
  111. package/dist/cjs/components/tabs.js +1 -1
  112. package/dist/cjs/components/tabs.js.map +2 -2
  113. package/dist/cjs/helpers/index.d.ts +0 -1
  114. package/dist/cjs/helpers/index.js +1 -1
  115. package/dist/cjs/helpers/index.js.map +3 -3
  116. package/dist/cjs/shared/Styles.d.ts +4 -5
  117. package/dist/cjs/shared/Styles.js +1 -1
  118. package/dist/cjs/shared/Styles.js.map +3 -3
  119. package/dist/cjs/stories/HeroBanner.stories.d.ts +28 -0
  120. package/dist/cjs/stories/HeroBanner.stories.js +11 -0
  121. package/dist/cjs/stories/HeroBanner.stories.js.map +7 -0
  122. package/dist/cjs/stories/InlineVideo.stories.d.ts +37 -0
  123. package/dist/cjs/stories/InlineVideo.stories.js +164 -0
  124. package/dist/cjs/stories/InlineVideo.stories.js.map +7 -0
  125. package/dist/cjs/stories/MarqueeReview.stories.d.ts +72 -0
  126. package/dist/cjs/stories/MarqueeReview.stories.js +19 -0
  127. package/dist/cjs/stories/MarqueeReview.stories.js.map +7 -0
  128. package/dist/cjs/stories/MediaSceneSwitcher.stories.d.ts +47 -0
  129. package/dist/cjs/stories/MediaSceneSwitcher.stories.js +2 -0
  130. package/dist/cjs/stories/MediaSceneSwitcher.stories.js.map +7 -0
  131. package/dist/cjs/stories/MemberEquity.stories.d.ts +9 -0
  132. package/dist/cjs/stories/MemberEquity.stories.js +31 -0
  133. package/dist/cjs/stories/MemberEquity.stories.js.map +7 -0
  134. package/dist/cjs/stories/MultiLayoutGraphicBlock.stories.d.ts +9 -0
  135. package/dist/cjs/stories/MultiLayoutGraphicBlock.stories.js +2 -0
  136. package/dist/cjs/stories/MultiLayoutGraphicBlock.stories.js.map +7 -0
  137. package/dist/cjs/stories/ProductNav.stories.d.ts +55 -0
  138. package/dist/cjs/stories/ProductNav.stories.js +2 -0
  139. package/dist/cjs/stories/ProductNav.stories.js.map +7 -0
  140. package/dist/cjs/stories/ThreeDCarousel.stories.d.ts +27 -0
  141. package/dist/cjs/stories/ThreeDCarousel.stories.js +118 -0
  142. package/dist/cjs/stories/ThreeDCarousel.stories.js.map +7 -0
  143. package/dist/cjs/stories/accordionCards.stories.d.ts +38 -0
  144. package/dist/cjs/stories/accordionCards.stories.js +2 -0
  145. package/dist/cjs/stories/accordionCards.stories.js.map +7 -0
  146. package/dist/cjs/stories/alert.stories.d.ts +27 -0
  147. package/dist/cjs/stories/alert.stories.js +2 -0
  148. package/dist/cjs/stories/alert.stories.js.map +7 -0
  149. package/dist/cjs/stories/avatar.stories.d.ts +39 -0
  150. package/dist/cjs/stories/avatar.stories.js +2 -0
  151. package/dist/cjs/stories/avatar.stories.js.map +7 -0
  152. package/dist/cjs/stories/badge.stories.d.ts +31 -0
  153. package/dist/cjs/stories/badge.stories.js +2 -0
  154. package/dist/cjs/stories/badge.stories.js.map +7 -0
  155. package/dist/cjs/stories/bizTabs.stories.d.ts +7 -0
  156. package/dist/cjs/stories/bizTabs.stories.js +2 -0
  157. package/dist/cjs/stories/bizTabs.stories.js.map +7 -0
  158. package/dist/cjs/stories/board.stories.d.ts +6 -0
  159. package/dist/cjs/stories/board.stories.js +2 -0
  160. package/dist/cjs/stories/board.stories.js.map +7 -0
  161. package/dist/cjs/stories/brandEquity.stories.d.ts +16 -0
  162. package/dist/cjs/stories/brandEquity.stories.js +2 -0
  163. package/dist/cjs/stories/brandEquity.stories.js.map +7 -0
  164. package/dist/cjs/stories/brandStrip.stories.d.ts +12 -0
  165. package/dist/cjs/stories/brandStrip.stories.js +2 -0
  166. package/dist/cjs/stories/brandStrip.stories.js.map +7 -0
  167. package/dist/cjs/stories/button.stories.d.ts +56 -0
  168. package/dist/cjs/stories/button.stories.js +2 -0
  169. package/dist/cjs/stories/button.stories.js.map +7 -0
  170. package/dist/cjs/stories/card.stories.d.ts +27 -0
  171. package/dist/cjs/stories/card.stories.js +2 -0
  172. package/dist/cjs/stories/card.stories.js.map +7 -0
  173. package/dist/cjs/stories/carousel.stories.d.ts +8 -0
  174. package/dist/cjs/stories/carousel.stories.js +2 -0
  175. package/dist/cjs/stories/carousel.stories.js.map +7 -0
  176. package/dist/cjs/stories/category.stories.d.ts +17 -0
  177. package/dist/cjs/stories/category.stories.js +2 -0
  178. package/dist/cjs/stories/category.stories.js.map +7 -0
  179. package/dist/cjs/stories/checkbox.stories.d.ts +46 -0
  180. package/dist/cjs/stories/checkbox.stories.js +2 -0
  181. package/dist/cjs/stories/checkbox.stories.js.map +7 -0
  182. package/dist/cjs/stories/container.stories.d.ts +28 -0
  183. package/dist/cjs/stories/container.stories.js +15 -0
  184. package/dist/cjs/stories/container.stories.js.map +7 -0
  185. package/dist/cjs/stories/cpnBanner.stories.d.ts +14 -0
  186. package/dist/cjs/stories/cpnBanner.stories.js +2 -0
  187. package/dist/cjs/stories/cpnBanner.stories.js.map +7 -0
  188. package/dist/cjs/stories/cpnCountdown.stories.d.ts +12 -0
  189. package/dist/cjs/stories/cpnCountdown.stories.js +2 -0
  190. package/dist/cjs/stories/cpnCountdown.stories.js.map +7 -0
  191. package/dist/cjs/stories/cpnNavigation.stories.d.ts +14 -0
  192. package/dist/cjs/stories/cpnNavigation.stories.js +2 -0
  193. package/dist/cjs/stories/cpnNavigation.stories.js.map +7 -0
  194. package/dist/cjs/stories/cpnProductcard.stories.d.ts +14 -0
  195. package/dist/cjs/stories/cpnProductcard.stories.js +2 -0
  196. package/dist/cjs/stories/cpnProductcard.stories.js.map +7 -0
  197. package/dist/cjs/stories/cpnTitle.stories.d.ts +14 -0
  198. package/dist/cjs/stories/cpnTitle.stories.js +2 -0
  199. package/dist/cjs/stories/cpnTitle.stories.js.map +7 -0
  200. package/dist/cjs/stories/creativeModule.stories.d.ts +19 -0
  201. package/dist/cjs/stories/creativeModule.stories.js +2 -0
  202. package/dist/cjs/stories/creativeModule.stories.js.map +7 -0
  203. package/dist/cjs/stories/dialog.stories.d.ts +20 -0
  204. package/dist/cjs/stories/dialog.stories.js +2 -0
  205. package/dist/cjs/stories/dialog.stories.js.map +7 -0
  206. package/dist/cjs/stories/drawer.stories.d.ts +20 -0
  207. package/dist/cjs/stories/drawer.stories.js +2 -0
  208. package/dist/cjs/stories/drawer.stories.js.map +7 -0
  209. package/dist/cjs/stories/drop-down.stories.d.ts +16 -0
  210. package/dist/cjs/stories/drop-down.stories.js +2 -0
  211. package/dist/cjs/stories/drop-down.stories.js.map +7 -0
  212. package/dist/cjs/stories/evaluate.stories.d.ts +16 -0
  213. package/dist/cjs/stories/evaluate.stories.js +2 -0
  214. package/dist/cjs/stories/evaluate.stories.js.map +7 -0
  215. package/dist/cjs/stories/faq.stories.d.ts +21 -0
  216. package/dist/cjs/stories/faq.stories.js +2 -0
  217. package/dist/cjs/stories/faq.stories.js.map +7 -0
  218. package/dist/cjs/stories/featureCards.stories.d.ts +30 -0
  219. package/dist/cjs/stories/featureCards.stories.js +61 -0
  220. package/dist/cjs/stories/featureCards.stories.js.map +7 -0
  221. package/dist/cjs/stories/featureShowcase.stories.d.ts +29 -0
  222. package/dist/cjs/stories/featureShowcase.stories.js +44 -0
  223. package/dist/cjs/stories/featureShowcase.stories.js.map +7 -0
  224. package/dist/cjs/stories/graphic.stories.d.ts +64 -0
  225. package/dist/cjs/stories/graphic.stories.js +2 -0
  226. package/dist/cjs/stories/graphic.stories.js.map +7 -0
  227. package/dist/cjs/stories/graphicAttractionBlock.stories.d.ts +6 -0
  228. package/dist/cjs/stories/graphicAttractionBlock.stories.js +2 -0
  229. package/dist/cjs/stories/graphicAttractionBlock.stories.js.map +7 -0
  230. package/dist/cjs/stories/grid.stories.d.ts +22 -0
  231. package/dist/cjs/stories/grid.stories.js +13 -0
  232. package/dist/cjs/stories/grid.stories.js.map +7 -0
  233. package/dist/cjs/stories/heading.stories.d.ts +84 -0
  234. package/dist/cjs/stories/heading.stories.js +15 -0
  235. package/dist/cjs/stories/heading.stories.js.map +7 -0
  236. package/dist/cjs/stories/imageTextFeature.stories.d.ts +28 -0
  237. package/dist/cjs/stories/imageTextFeature.stories.js +50 -0
  238. package/dist/cjs/stories/imageTextFeature.stories.js.map +7 -0
  239. package/dist/cjs/stories/imageWithText.stories.d.ts +51 -0
  240. package/dist/cjs/stories/imageWithText.stories.js +84 -0
  241. package/dist/cjs/stories/imageWithText.stories.js.map +7 -0
  242. package/dist/cjs/stories/input-number.stories.d.ts +39 -0
  243. package/dist/cjs/stories/input-number.stories.js +2 -0
  244. package/dist/cjs/stories/input-number.stories.js.map +7 -0
  245. package/dist/cjs/stories/input.stories.d.ts +35 -0
  246. package/dist/cjs/stories/input.stories.js +2 -0
  247. package/dist/cjs/stories/input.stories.js.map +7 -0
  248. package/dist/cjs/stories/ksp.stories.d.ts +63 -0
  249. package/dist/cjs/stories/ksp.stories.js +128 -0
  250. package/dist/cjs/stories/ksp.stories.js.map +7 -0
  251. package/dist/cjs/stories/link.stories.d.ts +69 -0
  252. package/dist/cjs/stories/link.stories.js +2 -0
  253. package/dist/cjs/stories/link.stories.js.map +7 -0
  254. package/dist/cjs/stories/marquee.stories.d.ts +30 -0
  255. package/dist/cjs/stories/marquee.stories.js +2 -0
  256. package/dist/cjs/stories/marquee.stories.js.map +7 -0
  257. package/dist/cjs/stories/mediaplayerBase.stories.d.ts +6 -0
  258. package/dist/cjs/stories/mediaplayerBase.stories.js +2 -0
  259. package/dist/cjs/stories/mediaplayerBase.stories.js.map +7 -0
  260. package/dist/cjs/stories/mediaplayerMulti.stories.d.ts +16 -0
  261. package/dist/cjs/stories/mediaplayerMulti.stories.js +2 -0
  262. package/dist/cjs/stories/mediaplayerMulti.stories.js.map +7 -0
  263. package/dist/cjs/stories/picture.stories.d.ts +23 -0
  264. package/dist/cjs/stories/picture.stories.js +9 -0
  265. package/dist/cjs/stories/picture.stories.js.map +7 -0
  266. package/dist/cjs/stories/popover.stories.d.ts +17 -0
  267. package/dist/cjs/stories/popover.stories.js +2 -0
  268. package/dist/cjs/stories/popover.stories.js.map +7 -0
  269. package/dist/cjs/stories/productCompare.stories.d.ts +54 -0
  270. package/dist/cjs/stories/productCompare.stories.js +54 -0
  271. package/dist/cjs/stories/productCompare.stories.js.map +7 -0
  272. package/dist/cjs/stories/productHero.stories.d.ts +29 -0
  273. package/dist/cjs/stories/productHero.stories.js +50 -0
  274. package/dist/cjs/stories/productHero.stories.js.map +7 -0
  275. package/dist/cjs/stories/radio.stories.d.ts +39 -0
  276. package/dist/cjs/stories/radio.stories.js +2 -0
  277. package/dist/cjs/stories/radio.stories.js.map +7 -0
  278. package/dist/cjs/stories/shelfDisplay.stories.d.ts +16 -0
  279. package/dist/cjs/stories/shelfDisplay.stories.js +2 -0
  280. package/dist/cjs/stories/shelfDisplay.stories.js.map +7 -0
  281. package/dist/cjs/stories/skeleton.stories.d.ts +20 -0
  282. package/dist/cjs/stories/skeleton.stories.js +2 -0
  283. package/dist/cjs/stories/skeleton.stories.js.map +7 -0
  284. package/dist/cjs/stories/slogan.stories.d.ts +20 -0
  285. package/dist/cjs/stories/slogan.stories.js +6 -0
  286. package/dist/cjs/stories/slogan.stories.js.map +7 -0
  287. package/dist/cjs/stories/specs.stories.d.ts +13 -0
  288. package/dist/cjs/stories/specs.stories.js +57 -0
  289. package/dist/cjs/stories/specs.stories.js.map +7 -0
  290. package/dist/cjs/stories/specsComparison.stories.d.ts +28 -0
  291. package/dist/cjs/stories/specsComparison.stories.js +105 -0
  292. package/dist/cjs/stories/specsComparison.stories.js.map +7 -0
  293. package/dist/cjs/stories/tabWithImage.stories.d.ts +28 -0
  294. package/dist/cjs/stories/tabWithImage.stories.js +53 -0
  295. package/dist/cjs/stories/tabWithImage.stories.js.map +7 -0
  296. package/dist/cjs/stories/tabs.stories.d.ts +373 -0
  297. package/dist/cjs/stories/tabs.stories.js +2 -0
  298. package/dist/cjs/stories/tabs.stories.js.map +7 -0
  299. package/dist/cjs/stories/tabsWithMedia.stories.d.ts +28 -0
  300. package/dist/cjs/stories/tabsWithMedia.stories.js +68 -0
  301. package/dist/cjs/stories/tabsWithMedia.stories.js.map +7 -0
  302. package/dist/cjs/stories/text.stories.d.ts +86 -0
  303. package/dist/cjs/stories/text.stories.js +21 -0
  304. package/dist/cjs/stories/text.stories.js.map +7 -0
  305. package/dist/cjs/stories/videoFeature.stories.d.ts +29 -0
  306. package/dist/cjs/stories/videoFeature.stories.js +56 -0
  307. package/dist/cjs/stories/videoFeature.stories.js.map +7 -0
  308. package/dist/cjs/stories/whychoose.stories.d.ts +21 -0
  309. package/dist/cjs/stories/whychoose.stories.js +2 -0
  310. package/dist/cjs/stories/whychoose.stories.js.map +7 -0
  311. package/dist/cjs/types/props.d.ts +3 -0
  312. package/dist/cjs/types/props.js +1 -1
  313. package/dist/cjs/types/props.js.map +1 -1
  314. package/dist/esm/biz-components/AccordionCards/index.d.ts +3 -3
  315. package/dist/esm/biz-components/AiuiProvider/index.d.ts +0 -7
  316. package/dist/esm/biz-components/AiuiProvider/index.js +1 -1
  317. package/dist/esm/biz-components/AiuiProvider/index.js.map +2 -2
  318. package/dist/esm/biz-components/AplusDesc/index.d.ts +3 -3
  319. package/dist/esm/biz-components/BrandEquity/BrandEquity.d.ts +3 -3
  320. package/dist/esm/biz-components/BrandEquity/BrandEquity.js +1 -1
  321. package/dist/esm/biz-components/BrandEquity/BrandEquity.js.map +2 -2
  322. package/dist/esm/biz-components/BrandEquity/types.d.ts +0 -1
  323. package/dist/esm/biz-components/Category/index.d.ts +3 -3
  324. package/dist/esm/biz-components/CreativeModule/index.d.ts +3 -3
  325. package/dist/esm/biz-components/DownLoad/index.d.ts +3 -3
  326. package/dist/esm/biz-components/Evaluate/index.d.ts +3 -3
  327. package/dist/esm/biz-components/Evaluate/index.js +1 -1
  328. package/dist/esm/biz-components/Evaluate/index.js.map +2 -2
  329. package/dist/esm/biz-components/Faq/Faq.d.ts +3 -3
  330. package/dist/esm/biz-components/FeatureCards/FeatureCards.d.ts +3 -3
  331. package/dist/esm/biz-components/FeatureShowcase/FeatureShowcase.d.ts +3 -3
  332. package/dist/esm/biz-components/Features/index.d.ts +3 -3
  333. package/dist/esm/biz-components/FootCharger/index.d.ts +3 -3
  334. package/dist/esm/biz-components/FooterNavigation/index.d.ts +3 -3
  335. package/dist/esm/biz-components/GiftBox/index.d.ts +3 -3
  336. package/dist/esm/biz-components/Graphic/index.d.ts +3 -3
  337. package/dist/esm/biz-components/GraphicAttractionBlock/index.d.ts +3 -3
  338. package/dist/esm/biz-components/GraphicMore/index.d.ts +3 -3
  339. package/dist/esm/biz-components/GraphicOverlay/GraphicOverlay.d.ts +3 -3
  340. package/dist/esm/biz-components/HeaderNavigation/index.d.ts +3 -3
  341. package/dist/esm/biz-components/HeroBanner/Countdown.js +1 -1
  342. package/dist/esm/biz-components/HeroBanner/Countdown.js.map +2 -2
  343. package/dist/esm/biz-components/HeroBanner/HeroBanner.d.ts +3 -6
  344. package/dist/esm/biz-components/HeroBanner/HeroBanner.js +1 -1
  345. package/dist/esm/biz-components/HeroBanner/HeroBanner.js.map +3 -3
  346. package/dist/esm/biz-components/HeroBanner/types.d.ts +0 -4
  347. package/dist/esm/biz-components/ImageTextFeature/ImageTextFeature.d.ts +3 -3
  348. package/dist/esm/biz-components/ImageTextFeature/ImageTextFeature.js +1 -1
  349. package/dist/esm/biz-components/ImageTextFeature/ImageTextFeature.js.map +3 -3
  350. package/dist/esm/biz-components/ImageTextFeature/types.d.ts +0 -1
  351. package/dist/esm/biz-components/ImageWithText/ImageWithText.d.ts +3 -3
  352. package/dist/esm/biz-components/Ksp/index.d.ts +3 -3
  353. package/dist/esm/biz-components/Listing/components/PaidShipping/index.d.ts +4 -4
  354. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/BenefitsTab.d.ts +3 -3
  355. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductBundle/index.d.ts +3 -3
  356. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductExchangePurchase/index.d.ts +3 -3
  357. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductFreeGift/index.d.ts +3 -3
  358. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductHighlight/index.d.ts +3 -3
  359. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductOptions/index.d.ts +3 -3
  360. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/index.d.ts +3 -3
  361. package/dist/esm/biz-components/Listing/components/ProductCard/ProductSummary/index.d.ts +3 -3
  362. package/dist/esm/biz-components/Listing/components/PurchaseBar/index.d.ts +3 -3
  363. package/dist/esm/biz-components/Marquee/Marquee.d.ts +3 -3
  364. package/dist/esm/biz-components/Marquee/Marquee.js +1 -1
  365. package/dist/esm/biz-components/Marquee/Marquee.js.map +3 -3
  366. package/dist/esm/biz-components/MarqueeReview/index.d.ts +3 -3
  367. package/dist/esm/biz-components/MediaPlayerBase/index.d.ts +3 -3
  368. package/dist/esm/biz-components/MediaPlayerMulti/index.d.ts +3 -3
  369. package/dist/esm/biz-components/MediaPlayerSticky/index.d.ts +4 -4
  370. package/dist/esm/biz-components/MediaPlayerSticky/types.d.ts +0 -1
  371. package/dist/esm/biz-components/MediaSceneSwitcher/MediaSceneSwitcher.d.ts +3 -3
  372. package/dist/esm/biz-components/MemberEquity/index.d.ts +3 -3
  373. package/dist/esm/biz-components/MultiLayoutGraphicBlock/MultiLayoutGraphicBlock.d.ts +3 -3
  374. package/dist/esm/biz-components/ProductCompare/index.d.ts +3 -3
  375. package/dist/esm/biz-components/ProductHero/ProductHero.d.ts +3 -3
  376. package/dist/esm/biz-components/ProductNav/ProductNav.d.ts +3 -3
  377. package/dist/esm/biz-components/SelectStore/index.d.ts +3 -3
  378. package/dist/esm/biz-components/ShelfDisplay/index.d.ts +3 -3
  379. package/dist/esm/biz-components/ShelfDisplay/shelfDisplay.d.ts +11 -0
  380. package/dist/esm/biz-components/ShelfDisplay/shelfDisplay.js +1 -1
  381. package/dist/esm/biz-components/ShelfDisplay/shelfDisplay.js.map +3 -3
  382. package/dist/esm/biz-components/ShelfDisplay/shelfDisplayItem.js +5 -5
  383. package/dist/esm/biz-components/ShelfDisplay/shelfDisplayItem.js.map +3 -3
  384. package/dist/esm/biz-components/Slogan/index.d.ts +3 -3
  385. package/dist/esm/biz-components/Spacer/index.d.ts +3 -3
  386. package/dist/esm/biz-components/Specs/index.d.ts +3 -3
  387. package/dist/esm/biz-components/SpecsComparison/SpecsComparison.d.ts +3 -3
  388. package/dist/esm/biz-components/TabWithImage/TabWithImage.d.ts +3 -3
  389. package/dist/esm/biz-components/Tabs/Tabs.d.ts +3 -3
  390. package/dist/esm/biz-components/Tabs/Tabs.js +1 -1
  391. package/dist/esm/biz-components/Tabs/Tabs.js.map +3 -3
  392. package/dist/esm/biz-components/Tabs/types.d.ts +0 -9
  393. package/dist/esm/biz-components/TabsGroup/index.d.ts +3 -3
  394. package/dist/esm/biz-components/TabsWithMedia/TabsWithMedia.d.ts +3 -3
  395. package/dist/esm/biz-components/ThreeDCarousel/ThreeDCarousel.d.ts +3 -3
  396. package/dist/esm/biz-components/Title/index.d.ts +3 -3
  397. package/dist/esm/biz-components/Title/index.js +1 -1
  398. package/dist/esm/biz-components/Title/index.js.map +3 -3
  399. package/dist/esm/biz-components/Title/types.d.ts +0 -55
  400. package/dist/esm/biz-components/VideoFeature/VideoFeature.d.ts +3 -3
  401. package/dist/esm/biz-components/WhyChoose/WhyChoose.d.ts +3 -3
  402. package/dist/esm/biz-components/index.d.ts +0 -32
  403. package/dist/esm/biz-components/index.js +1 -1
  404. package/dist/esm/biz-components/index.js.map +3 -3
  405. package/dist/esm/components/badge.d.ts +2 -5
  406. package/dist/esm/components/badge.js +1 -1
  407. package/dist/esm/components/badge.js.map +3 -3
  408. package/dist/esm/components/index.d.ts +0 -2
  409. package/dist/esm/components/index.js +1 -1
  410. package/dist/esm/components/index.js.map +2 -2
  411. package/dist/esm/components/tabs.d.ts +1 -2
  412. package/dist/esm/components/tabs.js +1 -1
  413. package/dist/esm/components/tabs.js.map +2 -2
  414. package/dist/esm/helpers/index.d.ts +0 -1
  415. package/dist/esm/helpers/index.js +1 -1
  416. package/dist/esm/helpers/index.js.map +3 -3
  417. package/dist/esm/shared/Styles.d.ts +4 -5
  418. package/dist/esm/shared/Styles.js +1 -1
  419. package/dist/esm/shared/Styles.js.map +3 -3
  420. package/dist/esm/stories/HeroBanner.stories.d.ts +28 -0
  421. package/dist/esm/stories/HeroBanner.stories.js +11 -0
  422. package/dist/esm/stories/HeroBanner.stories.js.map +7 -0
  423. package/dist/esm/stories/InlineVideo.stories.d.ts +37 -0
  424. package/dist/esm/stories/InlineVideo.stories.js +164 -0
  425. package/dist/esm/stories/InlineVideo.stories.js.map +7 -0
  426. package/dist/esm/stories/MarqueeReview.stories.d.ts +72 -0
  427. package/dist/esm/stories/MarqueeReview.stories.js +19 -0
  428. package/dist/esm/stories/MarqueeReview.stories.js.map +7 -0
  429. package/dist/esm/stories/MediaSceneSwitcher.stories.d.ts +47 -0
  430. package/dist/esm/stories/MediaSceneSwitcher.stories.js +2 -0
  431. package/dist/esm/stories/MediaSceneSwitcher.stories.js.map +7 -0
  432. package/dist/esm/stories/MemberEquity.stories.d.ts +9 -0
  433. package/dist/esm/stories/MemberEquity.stories.js +31 -0
  434. package/dist/esm/stories/MemberEquity.stories.js.map +7 -0
  435. package/dist/esm/stories/MultiLayoutGraphicBlock.stories.d.ts +9 -0
  436. package/dist/esm/stories/MultiLayoutGraphicBlock.stories.js +2 -0
  437. package/dist/esm/stories/MultiLayoutGraphicBlock.stories.js.map +7 -0
  438. package/dist/esm/stories/ProductNav.stories.d.ts +55 -0
  439. package/dist/esm/stories/ProductNav.stories.js +2 -0
  440. package/dist/esm/stories/ProductNav.stories.js.map +7 -0
  441. package/dist/esm/stories/ThreeDCarousel.stories.d.ts +27 -0
  442. package/dist/esm/stories/ThreeDCarousel.stories.js +118 -0
  443. package/dist/esm/stories/ThreeDCarousel.stories.js.map +7 -0
  444. package/dist/esm/stories/accordionCards.stories.d.ts +38 -0
  445. package/dist/esm/stories/accordionCards.stories.js +2 -0
  446. package/dist/esm/stories/accordionCards.stories.js.map +7 -0
  447. package/dist/esm/stories/alert.stories.d.ts +27 -0
  448. package/dist/esm/stories/alert.stories.js +2 -0
  449. package/dist/esm/stories/alert.stories.js.map +7 -0
  450. package/dist/esm/stories/avatar.stories.d.ts +39 -0
  451. package/dist/esm/stories/avatar.stories.js +2 -0
  452. package/dist/esm/stories/avatar.stories.js.map +7 -0
  453. package/dist/esm/stories/badge.stories.d.ts +31 -0
  454. package/dist/esm/stories/badge.stories.js +2 -0
  455. package/dist/esm/stories/badge.stories.js.map +7 -0
  456. package/dist/esm/stories/bizTabs.stories.d.ts +7 -0
  457. package/dist/esm/stories/bizTabs.stories.js +2 -0
  458. package/dist/esm/stories/bizTabs.stories.js.map +7 -0
  459. package/dist/esm/stories/board.stories.d.ts +6 -0
  460. package/dist/esm/stories/board.stories.js +2 -0
  461. package/dist/esm/stories/board.stories.js.map +7 -0
  462. package/dist/esm/stories/brandEquity.stories.d.ts +16 -0
  463. package/dist/esm/stories/brandEquity.stories.js +2 -0
  464. package/dist/esm/stories/brandEquity.stories.js.map +7 -0
  465. package/dist/esm/stories/brandStrip.stories.d.ts +12 -0
  466. package/dist/esm/stories/brandStrip.stories.js +2 -0
  467. package/dist/esm/stories/brandStrip.stories.js.map +7 -0
  468. package/dist/esm/stories/button.stories.d.ts +56 -0
  469. package/dist/esm/stories/button.stories.js +2 -0
  470. package/dist/esm/stories/button.stories.js.map +7 -0
  471. package/dist/esm/stories/card.stories.d.ts +27 -0
  472. package/dist/esm/stories/card.stories.js +2 -0
  473. package/dist/esm/stories/card.stories.js.map +7 -0
  474. package/dist/esm/stories/carousel.stories.d.ts +8 -0
  475. package/dist/esm/stories/carousel.stories.js +2 -0
  476. package/dist/esm/stories/carousel.stories.js.map +7 -0
  477. package/dist/esm/stories/category.stories.d.ts +17 -0
  478. package/dist/esm/stories/category.stories.js +2 -0
  479. package/dist/esm/stories/category.stories.js.map +7 -0
  480. package/dist/esm/stories/checkbox.stories.d.ts +46 -0
  481. package/dist/esm/stories/checkbox.stories.js +2 -0
  482. package/dist/esm/stories/checkbox.stories.js.map +7 -0
  483. package/dist/esm/stories/container.stories.d.ts +28 -0
  484. package/dist/esm/stories/container.stories.js +15 -0
  485. package/dist/esm/stories/container.stories.js.map +7 -0
  486. package/dist/esm/stories/cpnBanner.stories.d.ts +14 -0
  487. package/dist/esm/stories/cpnBanner.stories.js +2 -0
  488. package/dist/esm/stories/cpnBanner.stories.js.map +7 -0
  489. package/dist/esm/stories/cpnCountdown.stories.d.ts +12 -0
  490. package/dist/esm/stories/cpnCountdown.stories.js +2 -0
  491. package/dist/esm/stories/cpnCountdown.stories.js.map +7 -0
  492. package/dist/esm/stories/cpnNavigation.stories.d.ts +14 -0
  493. package/dist/esm/stories/cpnNavigation.stories.js +2 -0
  494. package/dist/esm/stories/cpnNavigation.stories.js.map +7 -0
  495. package/dist/esm/stories/cpnProductcard.stories.d.ts +14 -0
  496. package/dist/esm/stories/cpnProductcard.stories.js +2 -0
  497. package/dist/esm/stories/cpnProductcard.stories.js.map +7 -0
  498. package/dist/esm/stories/cpnTitle.stories.d.ts +14 -0
  499. package/dist/esm/stories/cpnTitle.stories.js +2 -0
  500. package/dist/esm/stories/cpnTitle.stories.js.map +7 -0
  501. package/dist/esm/stories/creativeModule.stories.d.ts +19 -0
  502. package/dist/esm/stories/creativeModule.stories.js +2 -0
  503. package/dist/esm/stories/creativeModule.stories.js.map +7 -0
  504. package/dist/esm/stories/dialog.stories.d.ts +20 -0
  505. package/dist/esm/stories/dialog.stories.js +2 -0
  506. package/dist/esm/stories/dialog.stories.js.map +7 -0
  507. package/dist/esm/stories/drawer.stories.d.ts +20 -0
  508. package/dist/esm/stories/drawer.stories.js +2 -0
  509. package/dist/esm/stories/drawer.stories.js.map +7 -0
  510. package/dist/esm/stories/drop-down.stories.d.ts +16 -0
  511. package/dist/esm/stories/drop-down.stories.js +2 -0
  512. package/dist/esm/stories/drop-down.stories.js.map +7 -0
  513. package/dist/esm/stories/evaluate.stories.d.ts +16 -0
  514. package/dist/esm/stories/evaluate.stories.js +2 -0
  515. package/dist/esm/stories/evaluate.stories.js.map +7 -0
  516. package/dist/esm/stories/faq.stories.d.ts +21 -0
  517. package/dist/esm/stories/faq.stories.js +2 -0
  518. package/dist/esm/stories/faq.stories.js.map +7 -0
  519. package/dist/esm/stories/featureCards.stories.d.ts +30 -0
  520. package/dist/esm/stories/featureCards.stories.js +61 -0
  521. package/dist/esm/stories/featureCards.stories.js.map +7 -0
  522. package/dist/esm/stories/featureShowcase.stories.d.ts +29 -0
  523. package/dist/esm/stories/featureShowcase.stories.js +44 -0
  524. package/dist/esm/stories/featureShowcase.stories.js.map +7 -0
  525. package/dist/esm/stories/graphic.stories.d.ts +64 -0
  526. package/dist/esm/stories/graphic.stories.js +2 -0
  527. package/dist/esm/stories/graphic.stories.js.map +7 -0
  528. package/dist/esm/stories/graphicAttractionBlock.stories.d.ts +6 -0
  529. package/dist/esm/stories/graphicAttractionBlock.stories.js +2 -0
  530. package/dist/esm/stories/graphicAttractionBlock.stories.js.map +7 -0
  531. package/dist/esm/stories/grid.stories.d.ts +22 -0
  532. package/dist/esm/stories/grid.stories.js +13 -0
  533. package/dist/esm/stories/grid.stories.js.map +7 -0
  534. package/dist/esm/stories/heading.stories.d.ts +84 -0
  535. package/dist/esm/stories/heading.stories.js +15 -0
  536. package/dist/esm/stories/heading.stories.js.map +7 -0
  537. package/dist/esm/stories/imageTextFeature.stories.d.ts +28 -0
  538. package/dist/esm/stories/imageTextFeature.stories.js +50 -0
  539. package/dist/esm/stories/imageTextFeature.stories.js.map +7 -0
  540. package/dist/esm/stories/imageWithText.stories.d.ts +51 -0
  541. package/dist/esm/stories/imageWithText.stories.js +84 -0
  542. package/dist/esm/stories/imageWithText.stories.js.map +7 -0
  543. package/dist/esm/stories/input-number.stories.d.ts +39 -0
  544. package/dist/esm/stories/input-number.stories.js +2 -0
  545. package/dist/esm/stories/input-number.stories.js.map +7 -0
  546. package/dist/esm/stories/input.stories.d.ts +35 -0
  547. package/dist/esm/stories/input.stories.js +2 -0
  548. package/dist/esm/stories/input.stories.js.map +7 -0
  549. package/dist/esm/stories/ksp.stories.d.ts +63 -0
  550. package/dist/esm/stories/ksp.stories.js +128 -0
  551. package/dist/esm/stories/ksp.stories.js.map +7 -0
  552. package/dist/esm/stories/link.stories.d.ts +69 -0
  553. package/dist/esm/stories/link.stories.js +2 -0
  554. package/dist/esm/stories/link.stories.js.map +7 -0
  555. package/dist/esm/stories/marquee.stories.d.ts +30 -0
  556. package/dist/esm/stories/marquee.stories.js +2 -0
  557. package/dist/esm/stories/marquee.stories.js.map +7 -0
  558. package/dist/esm/stories/mediaplayerBase.stories.d.ts +6 -0
  559. package/dist/esm/stories/mediaplayerBase.stories.js +2 -0
  560. package/dist/esm/stories/mediaplayerBase.stories.js.map +7 -0
  561. package/dist/esm/stories/mediaplayerMulti.stories.d.ts +16 -0
  562. package/dist/esm/stories/mediaplayerMulti.stories.js +2 -0
  563. package/dist/esm/stories/mediaplayerMulti.stories.js.map +7 -0
  564. package/dist/esm/stories/picture.stories.d.ts +23 -0
  565. package/dist/esm/stories/picture.stories.js +9 -0
  566. package/dist/esm/stories/picture.stories.js.map +7 -0
  567. package/dist/esm/stories/popover.stories.d.ts +17 -0
  568. package/dist/esm/stories/popover.stories.js +2 -0
  569. package/dist/esm/stories/popover.stories.js.map +7 -0
  570. package/dist/esm/stories/productCompare.stories.d.ts +54 -0
  571. package/dist/esm/stories/productCompare.stories.js +54 -0
  572. package/dist/esm/stories/productCompare.stories.js.map +7 -0
  573. package/dist/esm/stories/productHero.stories.d.ts +29 -0
  574. package/dist/esm/stories/productHero.stories.js +50 -0
  575. package/dist/esm/stories/productHero.stories.js.map +7 -0
  576. package/dist/esm/stories/radio.stories.d.ts +39 -0
  577. package/dist/esm/stories/radio.stories.js +2 -0
  578. package/dist/esm/stories/radio.stories.js.map +7 -0
  579. package/dist/esm/stories/shelfDisplay.stories.d.ts +16 -0
  580. package/dist/esm/stories/shelfDisplay.stories.js +2 -0
  581. package/dist/esm/stories/shelfDisplay.stories.js.map +7 -0
  582. package/dist/esm/stories/skeleton.stories.d.ts +20 -0
  583. package/dist/esm/stories/skeleton.stories.js +2 -0
  584. package/dist/esm/stories/skeleton.stories.js.map +7 -0
  585. package/dist/esm/stories/slogan.stories.d.ts +20 -0
  586. package/dist/esm/stories/slogan.stories.js +6 -0
  587. package/dist/esm/stories/slogan.stories.js.map +7 -0
  588. package/dist/esm/stories/specs.stories.d.ts +13 -0
  589. package/dist/esm/stories/specs.stories.js +57 -0
  590. package/dist/esm/stories/specs.stories.js.map +7 -0
  591. package/dist/esm/stories/specsComparison.stories.d.ts +28 -0
  592. package/dist/esm/stories/specsComparison.stories.js +105 -0
  593. package/dist/esm/stories/specsComparison.stories.js.map +7 -0
  594. package/dist/esm/stories/tabWithImage.stories.d.ts +28 -0
  595. package/dist/esm/stories/tabWithImage.stories.js +53 -0
  596. package/dist/esm/stories/tabWithImage.stories.js.map +7 -0
  597. package/dist/esm/stories/tabs.stories.d.ts +373 -0
  598. package/dist/esm/stories/tabs.stories.js +2 -0
  599. package/dist/esm/stories/tabs.stories.js.map +7 -0
  600. package/dist/esm/stories/tabsWithMedia.stories.d.ts +28 -0
  601. package/dist/esm/stories/tabsWithMedia.stories.js +68 -0
  602. package/dist/esm/stories/tabsWithMedia.stories.js.map +7 -0
  603. package/dist/esm/stories/text.stories.d.ts +86 -0
  604. package/dist/esm/stories/text.stories.js +21 -0
  605. package/dist/esm/stories/text.stories.js.map +7 -0
  606. package/dist/esm/stories/videoFeature.stories.d.ts +29 -0
  607. package/dist/esm/stories/videoFeature.stories.js +56 -0
  608. package/dist/esm/stories/videoFeature.stories.js.map +7 -0
  609. package/dist/esm/stories/whychoose.stories.d.ts +21 -0
  610. package/dist/esm/stories/whychoose.stories.js +2 -0
  611. package/dist/esm/stories/whychoose.stories.js.map +7 -0
  612. package/dist/esm/types/props.d.ts +3 -0
  613. package/dist/tokens/base.css +3 -4
  614. package/dist/tokens/eufy.css +0 -1
  615. package/dist/tokens/soundcore.css +3 -4
  616. package/package.json +3 -8
  617. package/style.css +118 -4968
  618. package/tailwind.config.js +2 -19
  619. package/dist/cjs/biz-components/ActiveShelf/index.d.ts +0 -174
  620. package/dist/cjs/biz-components/ActiveShelf/index.js +0 -2
  621. package/dist/cjs/biz-components/ActiveShelf/index.js.map +0 -7
  622. package/dist/cjs/biz-components/ActiveShelf/types.d.ts +0 -89
  623. package/dist/cjs/biz-components/ActiveShelf/types.js +0 -2
  624. package/dist/cjs/biz-components/ActiveShelf/types.js.map +0 -7
  625. package/dist/cjs/biz-components/AnchorNavigation/index.d.ts +0 -42
  626. package/dist/cjs/biz-components/AnchorNavigation/index.js +0 -2
  627. package/dist/cjs/biz-components/AnchorNavigation/index.js.map +0 -7
  628. package/dist/cjs/biz-components/AnchorNavigation/useAnchorPosition.d.ts +0 -2
  629. package/dist/cjs/biz-components/AnchorNavigation/useAnchorPosition.js +0 -2
  630. package/dist/cjs/biz-components/AnchorNavigation/useAnchorPosition.js.map +0 -7
  631. package/dist/cjs/biz-components/BrandCardLink/BrandCardLink.d.ts +0 -6
  632. package/dist/cjs/biz-components/BrandCardLink/BrandCardLink.js +0 -2
  633. package/dist/cjs/biz-components/BrandCardLink/BrandCardLink.js.map +0 -7
  634. package/dist/cjs/biz-components/BrandCardLink/index.d.ts +0 -1
  635. package/dist/cjs/biz-components/BrandCardLink/index.js +0 -2
  636. package/dist/cjs/biz-components/BrandCardLink/index.js.map +0 -7
  637. package/dist/cjs/biz-components/BrandCardLink/types.d.ts +0 -19
  638. package/dist/cjs/biz-components/BrandCardLink/types.js +0 -2
  639. package/dist/cjs/biz-components/BrandCardLink/types.js.map +0 -7
  640. package/dist/cjs/biz-components/BuyOneGetOneShelf/ProductCard.d.ts +0 -74
  641. package/dist/cjs/biz-components/BuyOneGetOneShelf/ProductCard.js +0 -2
  642. package/dist/cjs/biz-components/BuyOneGetOneShelf/ProductCard.js.map +0 -7
  643. package/dist/cjs/biz-components/BuyOneGetOneShelf/hooks/useBogoDataTransform.d.ts +0 -36
  644. package/dist/cjs/biz-components/BuyOneGetOneShelf/hooks/useBogoDataTransform.js +0 -2
  645. package/dist/cjs/biz-components/BuyOneGetOneShelf/hooks/useBogoDataTransform.js.map +0 -7
  646. package/dist/cjs/biz-components/BuyOneGetOneShelf/index.d.ts +0 -193
  647. package/dist/cjs/biz-components/BuyOneGetOneShelf/index.js +0 -2
  648. package/dist/cjs/biz-components/BuyOneGetOneShelf/index.js.map +0 -7
  649. package/dist/cjs/biz-components/EventSchedule/index.d.ts +0 -63
  650. package/dist/cjs/biz-components/EventSchedule/index.js +0 -2
  651. package/dist/cjs/biz-components/EventSchedule/index.js.map +0 -7
  652. package/dist/cjs/biz-components/IPRedirect/RegionBanner.d.ts +0 -37
  653. package/dist/cjs/biz-components/IPRedirect/RegionBanner.js +0 -60
  654. package/dist/cjs/biz-components/IPRedirect/RegionBanner.js.map +0 -7
  655. package/dist/cjs/biz-components/IPRedirect/RegionSelectorModal.d.ts +0 -47
  656. package/dist/cjs/biz-components/IPRedirect/RegionSelectorModal.js +0 -33
  657. package/dist/cjs/biz-components/IPRedirect/RegionSelectorModal.js.map +0 -7
  658. package/dist/cjs/biz-components/IPRedirect/index.d.ts +0 -9
  659. package/dist/cjs/biz-components/IPRedirect/index.js +0 -2
  660. package/dist/cjs/biz-components/IPRedirect/index.js.map +0 -7
  661. package/dist/cjs/biz-components/IPRedirect/type.d.ts +0 -36
  662. package/dist/cjs/biz-components/IPRedirect/type.js +0 -2
  663. package/dist/cjs/biz-components/IPRedirect/type.js.map +0 -7
  664. package/dist/cjs/biz-components/IPRedirect/useAutoRedirect.d.ts +0 -66
  665. package/dist/cjs/biz-components/IPRedirect/useAutoRedirect.js +0 -2
  666. package/dist/cjs/biz-components/IPRedirect/useAutoRedirect.js.map +0 -7
  667. package/dist/cjs/biz-components/IPRedirect/useDetectedRegionRedirect.d.ts +0 -51
  668. package/dist/cjs/biz-components/IPRedirect/useDetectedRegionRedirect.js +0 -2
  669. package/dist/cjs/biz-components/IPRedirect/useDetectedRegionRedirect.js.map +0 -7
  670. package/dist/cjs/biz-components/IPRedirect/useIPRedirect.d.ts +0 -42
  671. package/dist/cjs/biz-components/IPRedirect/useIPRedirect.js +0 -2
  672. package/dist/cjs/biz-components/IPRedirect/useIPRedirect.js.map +0 -7
  673. package/dist/cjs/biz-components/IPRedirect/useRedirectBanner.d.ts +0 -108
  674. package/dist/cjs/biz-components/IPRedirect/useRedirectBanner.js +0 -2
  675. package/dist/cjs/biz-components/IPRedirect/useRedirectBanner.js.map +0 -7
  676. package/dist/cjs/biz-components/IPRedirect/useRegionRedirectManager.d.ts +0 -152
  677. package/dist/cjs/biz-components/IPRedirect/useRegionRedirectManager.js +0 -2
  678. package/dist/cjs/biz-components/IPRedirect/useRegionRedirectManager.js.map +0 -7
  679. package/dist/cjs/biz-components/IPRedirect/useSavedRegionRedirect.d.ts +0 -51
  680. package/dist/cjs/biz-components/IPRedirect/useSavedRegionRedirect.js +0 -2
  681. package/dist/cjs/biz-components/IPRedirect/useSavedRegionRedirect.js.map +0 -7
  682. package/dist/cjs/biz-components/IPRedirect/utils.d.ts +0 -222
  683. package/dist/cjs/biz-components/IPRedirect/utils.js +0 -2
  684. package/dist/cjs/biz-components/IPRedirect/utils.js.map +0 -7
  685. package/dist/cjs/biz-components/ImageOverlayShelf/index.d.ts +0 -114
  686. package/dist/cjs/biz-components/ImageOverlayShelf/index.js +0 -2
  687. package/dist/cjs/biz-components/ImageOverlayShelf/index.js.map +0 -7
  688. package/dist/cjs/biz-components/Media/index.d.ts +0 -32
  689. package/dist/cjs/biz-components/Media/index.js +0 -2
  690. package/dist/cjs/biz-components/Media/index.js.map +0 -7
  691. package/dist/cjs/biz-components/MediaShelf/index.d.ts +0 -231
  692. package/dist/cjs/biz-components/MediaShelf/index.js +0 -2
  693. package/dist/cjs/biz-components/MediaShelf/index.js.map +0 -7
  694. package/dist/cjs/biz-components/MediaShelf/types.d.ts +0 -37
  695. package/dist/cjs/biz-components/MediaShelf/types.js +0 -2
  696. package/dist/cjs/biz-components/MediaShelf/types.js.map +0 -7
  697. package/dist/cjs/biz-components/MiniCart/index.d.ts +0 -88
  698. package/dist/cjs/biz-components/MiniCart/index.js +0 -2
  699. package/dist/cjs/biz-components/MiniCart/index.js.map +0 -7
  700. package/dist/cjs/biz-components/PromotionalBar/index.d.ts +0 -49
  701. package/dist/cjs/biz-components/PromotionalBar/index.js +0 -2
  702. package/dist/cjs/biz-components/PromotionalBar/index.js.map +0 -7
  703. package/dist/cjs/biz-components/SecondaryBanner/index.d.ts +0 -69
  704. package/dist/cjs/biz-components/SecondaryBanner/index.js +0 -2
  705. package/dist/cjs/biz-components/SecondaryBanner/index.js.map +0 -7
  706. package/dist/cjs/biz-components/Title/Countdown.d.ts +0 -14
  707. package/dist/cjs/biz-components/Title/Countdown.js +0 -2
  708. package/dist/cjs/biz-components/Title/Countdown.js.map +0 -7
  709. package/dist/cjs/biz-components/WheelLottery/BaseModal.d.ts +0 -55
  710. package/dist/cjs/biz-components/WheelLottery/BaseModal.js +0 -12
  711. package/dist/cjs/biz-components/WheelLottery/BaseModal.js.map +0 -7
  712. package/dist/cjs/biz-components/WheelLottery/ChanceMethods.d.ts +0 -30
  713. package/dist/cjs/biz-components/WheelLottery/ChanceMethods.js +0 -2
  714. package/dist/cjs/biz-components/WheelLottery/ChanceMethods.js.map +0 -7
  715. package/dist/cjs/biz-components/WheelLottery/ErrorModal.d.ts +0 -42
  716. package/dist/cjs/biz-components/WheelLottery/ErrorModal.js +0 -2
  717. package/dist/cjs/biz-components/WheelLottery/ErrorModal.js.map +0 -7
  718. package/dist/cjs/biz-components/WheelLottery/MyRewardsModal.d.ts +0 -91
  719. package/dist/cjs/biz-components/WheelLottery/MyRewardsModal.js +0 -2
  720. package/dist/cjs/biz-components/WheelLottery/MyRewardsModal.js.map +0 -7
  721. package/dist/cjs/biz-components/WheelLottery/PrizePool.d.ts +0 -26
  722. package/dist/cjs/biz-components/WheelLottery/PrizePool.js +0 -2
  723. package/dist/cjs/biz-components/WheelLottery/PrizePool.js.map +0 -7
  724. package/dist/cjs/biz-components/WheelLottery/RulesModal.d.ts +0 -47
  725. package/dist/cjs/biz-components/WheelLottery/RulesModal.js +0 -2
  726. package/dist/cjs/biz-components/WheelLottery/RulesModal.js.map +0 -7
  727. package/dist/cjs/biz-components/WheelLottery/ShareModal.d.ts +0 -74
  728. package/dist/cjs/biz-components/WheelLottery/ShareModal.js +0 -2
  729. package/dist/cjs/biz-components/WheelLottery/ShareModal.js.map +0 -7
  730. package/dist/cjs/biz-components/WheelLottery/Wheel.d.ts +0 -27
  731. package/dist/cjs/biz-components/WheelLottery/Wheel.js +0 -2
  732. package/dist/cjs/biz-components/WheelLottery/Wheel.js.map +0 -7
  733. package/dist/cjs/biz-components/WheelLottery/WinnerModal.d.ts +0 -25
  734. package/dist/cjs/biz-components/WheelLottery/WinnerModal.js +0 -2
  735. package/dist/cjs/biz-components/WheelLottery/WinnerModal.js.map +0 -7
  736. package/dist/cjs/biz-components/WheelLottery/index.d.ts +0 -52
  737. package/dist/cjs/biz-components/WheelLottery/index.js +0 -2
  738. package/dist/cjs/biz-components/WheelLottery/index.js.map +0 -7
  739. package/dist/cjs/biz-components/WheelLottery/types.d.ts +0 -1219
  740. package/dist/cjs/biz-components/WheelLottery/types.js +0 -2
  741. package/dist/cjs/biz-components/WheelLottery/types.js.map +0 -7
  742. package/dist/cjs/components/paginator.d.ts +0 -12
  743. package/dist/cjs/components/paginator.js +0 -7
  744. package/dist/cjs/components/paginator.js.map +0 -7
  745. package/dist/cjs/components/progress.d.ts +0 -46
  746. package/dist/cjs/components/progress.js +0 -2
  747. package/dist/cjs/components/progress.js.map +0 -7
  748. package/dist/cjs/helpers/priceFormatting.d.ts +0 -11
  749. package/dist/cjs/helpers/priceFormatting.js +0 -2
  750. package/dist/cjs/helpers/priceFormatting.js.map +0 -7
  751. package/dist/cjs/hooks/index.d.ts +0 -2
  752. package/dist/cjs/hooks/index.js +0 -2
  753. package/dist/cjs/hooks/index.js.map +0 -7
  754. package/dist/cjs/hooks/useCoupon.d.ts +0 -111
  755. package/dist/cjs/hooks/useCoupon.js +0 -2
  756. package/dist/cjs/hooks/useCoupon.js.map +0 -7
  757. package/dist/cjs/hooks/useMemberPrice.d.ts +0 -155
  758. package/dist/cjs/hooks/useMemberPrice.js +0 -2
  759. package/dist/cjs/hooks/useMemberPrice.js.map +0 -7
  760. package/dist/esm/biz-components/ActiveShelf/index.d.ts +0 -174
  761. package/dist/esm/biz-components/ActiveShelf/index.js +0 -2
  762. package/dist/esm/biz-components/ActiveShelf/index.js.map +0 -7
  763. package/dist/esm/biz-components/ActiveShelf/types.d.ts +0 -89
  764. package/dist/esm/biz-components/ActiveShelf/types.js +0 -2
  765. package/dist/esm/biz-components/ActiveShelf/types.js.map +0 -7
  766. package/dist/esm/biz-components/AnchorNavigation/index.d.ts +0 -42
  767. package/dist/esm/biz-components/AnchorNavigation/index.js +0 -2
  768. package/dist/esm/biz-components/AnchorNavigation/index.js.map +0 -7
  769. package/dist/esm/biz-components/AnchorNavigation/useAnchorPosition.d.ts +0 -2
  770. package/dist/esm/biz-components/AnchorNavigation/useAnchorPosition.js +0 -2
  771. package/dist/esm/biz-components/AnchorNavigation/useAnchorPosition.js.map +0 -7
  772. package/dist/esm/biz-components/BrandCardLink/BrandCardLink.d.ts +0 -6
  773. package/dist/esm/biz-components/BrandCardLink/BrandCardLink.js +0 -2
  774. package/dist/esm/biz-components/BrandCardLink/BrandCardLink.js.map +0 -7
  775. package/dist/esm/biz-components/BrandCardLink/index.d.ts +0 -1
  776. package/dist/esm/biz-components/BrandCardLink/index.js +0 -2
  777. package/dist/esm/biz-components/BrandCardLink/index.js.map +0 -7
  778. package/dist/esm/biz-components/BrandCardLink/types.d.ts +0 -19
  779. package/dist/esm/biz-components/BrandCardLink/types.js +0 -1
  780. package/dist/esm/biz-components/BrandCardLink/types.js.map +0 -7
  781. package/dist/esm/biz-components/BuyOneGetOneShelf/ProductCard.d.ts +0 -74
  782. package/dist/esm/biz-components/BuyOneGetOneShelf/ProductCard.js +0 -2
  783. package/dist/esm/biz-components/BuyOneGetOneShelf/ProductCard.js.map +0 -7
  784. package/dist/esm/biz-components/BuyOneGetOneShelf/hooks/useBogoDataTransform.d.ts +0 -36
  785. package/dist/esm/biz-components/BuyOneGetOneShelf/hooks/useBogoDataTransform.js +0 -2
  786. package/dist/esm/biz-components/BuyOneGetOneShelf/hooks/useBogoDataTransform.js.map +0 -7
  787. package/dist/esm/biz-components/BuyOneGetOneShelf/index.d.ts +0 -193
  788. package/dist/esm/biz-components/BuyOneGetOneShelf/index.js +0 -2
  789. package/dist/esm/biz-components/BuyOneGetOneShelf/index.js.map +0 -7
  790. package/dist/esm/biz-components/EventSchedule/index.d.ts +0 -63
  791. package/dist/esm/biz-components/EventSchedule/index.js +0 -2
  792. package/dist/esm/biz-components/EventSchedule/index.js.map +0 -7
  793. package/dist/esm/biz-components/IPRedirect/RegionBanner.d.ts +0 -37
  794. package/dist/esm/biz-components/IPRedirect/RegionBanner.js +0 -60
  795. package/dist/esm/biz-components/IPRedirect/RegionBanner.js.map +0 -7
  796. package/dist/esm/biz-components/IPRedirect/RegionSelectorModal.d.ts +0 -47
  797. package/dist/esm/biz-components/IPRedirect/RegionSelectorModal.js +0 -33
  798. package/dist/esm/biz-components/IPRedirect/RegionSelectorModal.js.map +0 -7
  799. package/dist/esm/biz-components/IPRedirect/index.d.ts +0 -9
  800. package/dist/esm/biz-components/IPRedirect/index.js +0 -2
  801. package/dist/esm/biz-components/IPRedirect/index.js.map +0 -7
  802. package/dist/esm/biz-components/IPRedirect/type.d.ts +0 -36
  803. package/dist/esm/biz-components/IPRedirect/type.js +0 -1
  804. package/dist/esm/biz-components/IPRedirect/type.js.map +0 -7
  805. package/dist/esm/biz-components/IPRedirect/useAutoRedirect.d.ts +0 -66
  806. package/dist/esm/biz-components/IPRedirect/useAutoRedirect.js +0 -2
  807. package/dist/esm/biz-components/IPRedirect/useAutoRedirect.js.map +0 -7
  808. package/dist/esm/biz-components/IPRedirect/useDetectedRegionRedirect.d.ts +0 -51
  809. package/dist/esm/biz-components/IPRedirect/useDetectedRegionRedirect.js +0 -2
  810. package/dist/esm/biz-components/IPRedirect/useDetectedRegionRedirect.js.map +0 -7
  811. package/dist/esm/biz-components/IPRedirect/useIPRedirect.d.ts +0 -42
  812. package/dist/esm/biz-components/IPRedirect/useIPRedirect.js +0 -2
  813. package/dist/esm/biz-components/IPRedirect/useIPRedirect.js.map +0 -7
  814. package/dist/esm/biz-components/IPRedirect/useRedirectBanner.d.ts +0 -108
  815. package/dist/esm/biz-components/IPRedirect/useRedirectBanner.js +0 -2
  816. package/dist/esm/biz-components/IPRedirect/useRedirectBanner.js.map +0 -7
  817. package/dist/esm/biz-components/IPRedirect/useRegionRedirectManager.d.ts +0 -152
  818. package/dist/esm/biz-components/IPRedirect/useRegionRedirectManager.js +0 -2
  819. package/dist/esm/biz-components/IPRedirect/useRegionRedirectManager.js.map +0 -7
  820. package/dist/esm/biz-components/IPRedirect/useSavedRegionRedirect.d.ts +0 -51
  821. package/dist/esm/biz-components/IPRedirect/useSavedRegionRedirect.js +0 -2
  822. package/dist/esm/biz-components/IPRedirect/useSavedRegionRedirect.js.map +0 -7
  823. package/dist/esm/biz-components/IPRedirect/utils.d.ts +0 -222
  824. package/dist/esm/biz-components/IPRedirect/utils.js +0 -2
  825. package/dist/esm/biz-components/IPRedirect/utils.js.map +0 -7
  826. package/dist/esm/biz-components/ImageOverlayShelf/index.d.ts +0 -114
  827. package/dist/esm/biz-components/ImageOverlayShelf/index.js +0 -2
  828. package/dist/esm/biz-components/ImageOverlayShelf/index.js.map +0 -7
  829. package/dist/esm/biz-components/Media/index.d.ts +0 -32
  830. package/dist/esm/biz-components/Media/index.js +0 -2
  831. package/dist/esm/biz-components/Media/index.js.map +0 -7
  832. package/dist/esm/biz-components/MediaShelf/index.d.ts +0 -231
  833. package/dist/esm/biz-components/MediaShelf/index.js +0 -2
  834. package/dist/esm/biz-components/MediaShelf/index.js.map +0 -7
  835. package/dist/esm/biz-components/MediaShelf/types.d.ts +0 -37
  836. package/dist/esm/biz-components/MediaShelf/types.js +0 -2
  837. package/dist/esm/biz-components/MediaShelf/types.js.map +0 -7
  838. package/dist/esm/biz-components/MiniCart/index.d.ts +0 -88
  839. package/dist/esm/biz-components/MiniCart/index.js +0 -2
  840. package/dist/esm/biz-components/MiniCart/index.js.map +0 -7
  841. package/dist/esm/biz-components/PromotionalBar/index.d.ts +0 -49
  842. package/dist/esm/biz-components/PromotionalBar/index.js +0 -2
  843. package/dist/esm/biz-components/PromotionalBar/index.js.map +0 -7
  844. package/dist/esm/biz-components/SecondaryBanner/index.d.ts +0 -69
  845. package/dist/esm/biz-components/SecondaryBanner/index.js +0 -2
  846. package/dist/esm/biz-components/SecondaryBanner/index.js.map +0 -7
  847. package/dist/esm/biz-components/Title/Countdown.d.ts +0 -14
  848. package/dist/esm/biz-components/Title/Countdown.js +0 -2
  849. package/dist/esm/biz-components/Title/Countdown.js.map +0 -7
  850. package/dist/esm/biz-components/WheelLottery/BaseModal.d.ts +0 -55
  851. package/dist/esm/biz-components/WheelLottery/BaseModal.js +0 -12
  852. package/dist/esm/biz-components/WheelLottery/BaseModal.js.map +0 -7
  853. package/dist/esm/biz-components/WheelLottery/ChanceMethods.d.ts +0 -30
  854. package/dist/esm/biz-components/WheelLottery/ChanceMethods.js +0 -2
  855. package/dist/esm/biz-components/WheelLottery/ChanceMethods.js.map +0 -7
  856. package/dist/esm/biz-components/WheelLottery/ErrorModal.d.ts +0 -42
  857. package/dist/esm/biz-components/WheelLottery/ErrorModal.js +0 -2
  858. package/dist/esm/biz-components/WheelLottery/ErrorModal.js.map +0 -7
  859. package/dist/esm/biz-components/WheelLottery/MyRewardsModal.d.ts +0 -91
  860. package/dist/esm/biz-components/WheelLottery/MyRewardsModal.js +0 -2
  861. package/dist/esm/biz-components/WheelLottery/MyRewardsModal.js.map +0 -7
  862. package/dist/esm/biz-components/WheelLottery/PrizePool.d.ts +0 -26
  863. package/dist/esm/biz-components/WheelLottery/PrizePool.js +0 -2
  864. package/dist/esm/biz-components/WheelLottery/PrizePool.js.map +0 -7
  865. package/dist/esm/biz-components/WheelLottery/RulesModal.d.ts +0 -47
  866. package/dist/esm/biz-components/WheelLottery/RulesModal.js +0 -2
  867. package/dist/esm/biz-components/WheelLottery/RulesModal.js.map +0 -7
  868. package/dist/esm/biz-components/WheelLottery/ShareModal.d.ts +0 -74
  869. package/dist/esm/biz-components/WheelLottery/ShareModal.js +0 -2
  870. package/dist/esm/biz-components/WheelLottery/ShareModal.js.map +0 -7
  871. package/dist/esm/biz-components/WheelLottery/Wheel.d.ts +0 -27
  872. package/dist/esm/biz-components/WheelLottery/Wheel.js +0 -2
  873. package/dist/esm/biz-components/WheelLottery/Wheel.js.map +0 -7
  874. package/dist/esm/biz-components/WheelLottery/WinnerModal.d.ts +0 -25
  875. package/dist/esm/biz-components/WheelLottery/WinnerModal.js +0 -2
  876. package/dist/esm/biz-components/WheelLottery/WinnerModal.js.map +0 -7
  877. package/dist/esm/biz-components/WheelLottery/index.d.ts +0 -52
  878. package/dist/esm/biz-components/WheelLottery/index.js +0 -2
  879. package/dist/esm/biz-components/WheelLottery/index.js.map +0 -7
  880. package/dist/esm/biz-components/WheelLottery/types.d.ts +0 -1219
  881. package/dist/esm/biz-components/WheelLottery/types.js +0 -2
  882. package/dist/esm/biz-components/WheelLottery/types.js.map +0 -7
  883. package/dist/esm/components/paginator.d.ts +0 -12
  884. package/dist/esm/components/paginator.js +0 -7
  885. package/dist/esm/components/paginator.js.map +0 -7
  886. package/dist/esm/components/progress.d.ts +0 -46
  887. package/dist/esm/components/progress.js +0 -2
  888. package/dist/esm/components/progress.js.map +0 -7
  889. package/dist/esm/helpers/priceFormatting.d.ts +0 -11
  890. package/dist/esm/helpers/priceFormatting.js +0 -2
  891. package/dist/esm/helpers/priceFormatting.js.map +0 -7
  892. package/dist/esm/hooks/index.d.ts +0 -2
  893. package/dist/esm/hooks/index.js +0 -2
  894. package/dist/esm/hooks/index.js.map +0 -7
  895. package/dist/esm/hooks/useCoupon.d.ts +0 -111
  896. package/dist/esm/hooks/useCoupon.js +0 -2
  897. package/dist/esm/hooks/useCoupon.js.map +0 -7
  898. package/dist/esm/hooks/useMemberPrice.d.ts +0 -155
  899. package/dist/esm/hooks/useMemberPrice.js +0 -2
  900. package/dist/esm/hooks/useMemberPrice.js.map +0 -7
@@ -1,2 +0,0 @@
1
- const n="https://cdn.shopify.com/s/files/1/0517/2199/4432/files/2790697ba78c1a85d953787a8be9b258.png?v=1766371471",i="https://cdn.shopify.com/s/files/1/0582/4669/3040/files/2790697ba78c1a85d953787a8be9b258.png?v=1767610632",t="https://cdn.shopify.com/s/files/1/0517/2199/4432/files/be866c03-4d29-4d59-a8d4-39f5d64bbc0e_ae_e_6.png?v=1766374361",o="https://cdn.shopify.com/s/files/1/0517/2199/4432/files/ad63174a-3da0-4dcd-ac61-c83172c7893c_ae_e_8.png?v=1766374392",r=[{methodKey:"default-share",type:"share",title:"Share on your socials",description:"Share this event on your social media",buttonText:"Redeem now",onLoginRequired:()=>{alert("Please log in to share and get a chance!")},onClick:()=>{console.warn("ChanceMethod.onClick not implemented. Please provide a custom onClick handler.")},disabled:!1},{methodKey:"default-points",type:"points",title:"Spend 100 points",description:"Use your reward points to get a chance",buttonText:"Redeem now",onLoginRequired:()=>{alert("Please log in to share and get a chance!")},onClick:()=>{console.warn("ChanceMethod.onClick not implemented. Please provide a custom onClick handler.")},disabled:!1},{methodKey:"default-refer",type:"refer",title:"Refer a friend",description:"Invite your friends to join",buttonText:"Redeem now",onLoginRequired:()=>{alert("Please log in to share and get a chance!")},onClick:()=>{console.warn("ChanceMethod.onClick not implemented. Please provide a custom onClick handler.")},disabled:!1}],s={spinDuration:4e3,easing:"ease-out",chanceTitle:"Want more chances to win?"},a={isSpinning:!1,currentRotation:0,winningPrize:null,isButtonDisabled:!1,isFinished:!1};function g(e){return typeof e=="object"&&e!==null&&"prizeKey"in e&&"name"in e&&"image"in e&&typeof e.prizeKey=="string"&&typeof e.name=="string"&&typeof e.image=="object"}function d(e){return typeof e=="object"&&e!==null&&"methodKey"in e&&"type"in e&&"title"in e&&"description"in e&&"onClick"in e&&typeof e.methodKey=="string"&&typeof e.type=="string"&&typeof e.title=="string"&&typeof e.description=="string"&&typeof e.onClick=="function"}function l(e){return typeof e=="object"&&e!==null&&"winningKey"in e&&"userName"in e&&"prizeName"in e&&typeof e.winningKey=="string"&&typeof e.userName=="string"&&typeof e.prizeName=="string"}export{r as DEFAULT_CHANCE_METHODS,i as DEFAULT_POINTER_DISABLE_IMAGE,n as DEFAULT_POINTER_IMAGE,t as DEFAULT_WHEEL_BG_6_PRIZES,o as DEFAULT_WHEEL_BG_8_PRIZES,s as DEFAULT_WHEEL_CONFIG,a as INITIAL_WHEEL_STATE,d as isChanceMethod,g as isPrize,l as isWinningInfo};
2
- //# sourceMappingURL=types.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../src/biz-components/WheelLottery/types.ts"],
4
- "sourcesContent": ["/**\n * \u5927\u8F6C\u76D8\u62BD\u5956\u7EC4\u4EF6\uFF08WheelLottery\uFF09\u7C7B\u578B\u5B9A\u4E49\n *\n * @module WheelLotteryTypes\n * @date 2025-12-17\n */\n\nimport type { Theme, Img } from '../../types/props.js'\n\n// ============================================================================\n// Imperative Handle \u63A5\u53E3\n// ============================================================================\n\n/**\n * WheelLottery \u7EC4\u4EF6\u547D\u4EE4\u5F0F\u63A7\u5236\u63A5\u53E3\n *\n * \u901A\u8FC7 ref \u66B4\u9732\u7ED9\u7236\u7EC4\u4EF6\uFF0C\u7528\u4E8E\u5916\u90E8\u63A7\u5236\u5F39\u7A97\u7B49\u72B6\u6001\n *\n * @example\n * ```tsx\n * const lotteryRef = useRef<WheelLotteryHandle>(null)\n *\n * <WheelLottery ref={lotteryRef} prizes={prizes} />\n *\n * // \u5916\u90E8\u89E6\u53D1\u9519\u8BEF\u5F39\u7A97\n * lotteryRef.current?.showError({\n * title: 'Network Error',\n * message: 'Failed to connect to server',\n * confirmText: 'Retry'\n * })\n *\n * // \u663E\u793A\u89C4\u5219\u5F39\u7A97\n * lotteryRef.current?.showRules()\n *\n * // \u5173\u95ED\u6240\u6709\u5F39\u7A97\n * lotteryRef.current?.hideAllModals()\n * ```\n */\nexport interface WheelLotteryHandle {\n /**\n * \u663E\u793A\u9519\u8BEF\u5F39\u7A97\n * @param config \u9519\u8BEF\u5F39\u7A97\u914D\u7F6E\n */\n showError: (config: {\n /** \u9519\u8BEF\u4FE1\u606F */\n message: string\n /** \u6807\u9898\uFF08\u53EF\u9009\uFF09 */\n title?: string\n /** \u786E\u8BA4\u6309\u94AE\u6587\u672C\uFF08\u53EF\u9009\uFF09 */\n confirmText?: string\n }) => void\n\n /**\n * \u9690\u85CF\u9519\u8BEF\u5F39\u7A97\n */\n hideError: () => void\n\n /**\n * \u663E\u793A\u672A\u4E2D\u5956\u5F39\u7A97\uFF08\u4F7F\u7528 ErrorModal\uFF09\n * @param config \u672A\u4E2D\u5956\u5F39\u7A97\u914D\u7F6E\n */\n showNoWin: (config?: {\n /** \u6807\u9898\uFF08\u53EF\u9009\uFF09 */\n title?: string\n /** \u63D0\u793A\u4FE1\u606F\uFF08\u53EF\u9009\uFF09 */\n message?: string\n /** \u786E\u8BA4\u6309\u94AE\u6587\u672C\uFF08\u53EF\u9009\uFF09 */\n confirmText?: string\n }) => void\n\n /**\n * \u9690\u85CF\u672A\u4E2D\u5956\u5F39\u7A97\n */\n hideNoWin: () => void\n\n /**\n * \u663E\u793A\u4E2D\u5956\u5F39\u7A97\n * @param prize \u4E2D\u5956\u5956\u54C1\n * @param config \u4E2D\u5956\u5F39\u7A97\u914D\u7F6E\uFF08\u53EF\u9009\uFF09\n */\n showWinner: (prize: Prize, config?: Partial<WinnerModalConfig>) => void\n\n /**\n * \u9690\u85CF\u4E2D\u5956\u5F39\u7A97\n */\n hideWinner: () => void\n\n /**\n * \u663E\u793A\u89C4\u5219\u5F39\u7A97\n */\n showRules: () => void\n\n /**\n * \u9690\u85CF\u89C4\u5219\u5F39\u7A97\n */\n hideRules: () => void\n\n /**\n * \u663E\u793A\u6211\u7684\u5956\u52B1\u5F39\u7A97\n */\n showRewards: () => void\n\n /**\n * \u9690\u85CF\u6211\u7684\u5956\u52B1\u5F39\u7A97\n */\n hideRewards: () => void\n\n /**\n * \u663E\u793A\u5206\u4EAB\u5F39\u7A97\n * @param config \u5206\u4EAB\u5F39\u7A97\u914D\u7F6E\uFF08\u53EF\u9009\uFF09\n */\n showShare: (config?: Partial<ShareModalConfig>) => void\n\n /**\n * \u9690\u85CF\u5206\u4EAB\u5F39\u7A97\n */\n hideShare: () => void\n\n /**\n * \u5173\u95ED\u6240\u6709\u5F39\u7A97\n */\n hideAllModals: () => void\n}\n\n// ============================================================================\n// \u9ED8\u8BA4\u56FE\u7247\u7D20\u6750\u5E38\u91CF\n// ============================================================================\n\n/**\n * \u9ED8\u8BA4\u8F6C\u76D8\u6307\u9488\u56FE\u7247 URL\n */\nexport const DEFAULT_POINTER_IMAGE =\n 'https://cdn.shopify.com/s/files/1/0517/2199/4432/files/2790697ba78c1a85d953787a8be9b258.png?v=1766371471'\n\nexport const DEFAULT_POINTER_DISABLE_IMAGE =\n 'https://cdn.shopify.com/s/files/1/0582/4669/3040/files/2790697ba78c1a85d953787a8be9b258.png?v=1767610632'\n\n/**\n * \u9ED8\u8BA4\u8F6C\u76D8\u5E95\u56FE\uFF086 \u4E2A\u5956\u54C1\uFF09\n */\nexport const DEFAULT_WHEEL_BG_6_PRIZES =\n 'https://cdn.shopify.com/s/files/1/0517/2199/4432/files/be866c03-4d29-4d59-a8d4-39f5d64bbc0e_ae_e_6.png?v=1766374361'\n\n/**\n * \u9ED8\u8BA4\u8F6C\u76D8\u5E95\u56FE\uFF088 \u4E2A\u5956\u54C1\uFF09\n */\nexport const DEFAULT_WHEEL_BG_8_PRIZES =\n 'https://cdn.shopify.com/s/files/1/0517/2199/4432/files/ad63174a-3da0-4dcd-ac61-c83172c7893c_ae_e_8.png?v=1766374392'\n\n// ============================================================================\n// \u6838\u5FC3\u5B9E\u4F53\u7C7B\u578B\n// ============================================================================\n\n/**\n * \u5956\u54C1\uFF08Prize\uFF09\n *\n * \u4EE3\u8868\u8F6C\u76D8\u4E0A\u7684\u4E00\u4E2A\u5956\u54C1\u533A\u5757\uFF0C\u5305\u542B\u663E\u793A\u6240\u9700\u7684\u6240\u6709\u4FE1\u606F\u3002\n *\n * @example\n * ```tsx\n * const prize: Prize = {\n * prizeKey: 'prize-001',\n * name: 'Anker Prime Charger (100W, 3 Ports, GaN)',\n * image: { url: 'https://images.unsplash.com/photo-123', alt: 'Charger' },\n * rank: '1st',\n * price: '$79.99'\n * }\n * ```\n */\nexport interface Prize {\n /**\n * \u552F\u4E00\u6807\u8BC6\u7B26\uFF0C\u7528\u4E8E React key \u548C\u4E2D\u5956\u7ED3\u679C\u5339\u914D\n */\n prizeKey: string\n\n /**\n * \u5956\u54C1\u540D\u79F0\uFF0C\u663E\u793A\u5728\u8F6C\u76D8\u548C\u5956\u6C60\u4E2D\n * @maxLength 100\n */\n name: string\n\n /**\n * \u5956\u54C1\u56FE\u7247\u5BF9\u8C61\uFF0C\u5305\u542B url \u548C alt\n */\n image: Img\n\n /**\n * \u6392\u540D\u6807\u8BC6\uFF0C\u4EC5\u5728 Prize Pool \u4E2D\u663E\u793A\n * @optional\n */\n rank?: '1st' | '2nd' | '3rd'\n\n /**\n * \u4EF7\u683C\u6216\u6298\u6263\u4FE1\u606F\uFF0C\u663E\u793A\u5728\u5956\u6C60\u4E2D\n * @example \"$99.99\" | \"12% Off\"\n * @optional\n */\n price?: string\n}\n\n/**\n * \u4E2D\u5956\u4FE1\u606F\uFF08WinningInfo\uFF09\n *\n * \u4EE3\u8868\u4E00\u6761\u4E2D\u5956\u8BB0\u5F55\uFF0C\u7528\u4E8E\u5E95\u90E8\u6EDA\u52A8\u6761\u5C55\u793A\uFF0C\u8425\u9020\u6D3B\u52A8\u6C1B\u56F4\u3002\n *\n * @example\n * ```tsx\n * const winningInfo: WinningInfo = {\n * winningKey: 'win-001',\n * userName: 'Shuqi***',\n * prizeName: '12% Off Discount',\n * timestamp: 1702800000000\n * }\n * ```\n */\nexport interface WinningInfo {\n /**\n * \u552F\u4E00\u6807\u8BC6\u7B26\n */\n winningKey: string\n\n /**\n * \u7528\u6237\u540D\uFF08\u5DF2\u8131\u654F\uFF09\uFF0C\u5982 \"Shuqi***\"\n * @note \u5047\u8BBE\u4F20\u5165\u7684\u7528\u6237\u540D\u5DF2\u7ECF\u8FC7\u8131\u654F\u5904\u7406\uFF0C\u7EC4\u4EF6\u5185\u90E8\u4E0D\u518D\u5904\u7406\n */\n userName: string\n\n /**\n * \u4E2D\u5956\u5956\u54C1\u540D\u79F0\n */\n prizeName: string\n\n /**\n * \u4E2D\u5956\u65F6\u95F4\u6233\uFF08\u6BEB\u79D2\uFF09\n * @optional\n */\n timestamp?: number\n}\n\n/**\n * \u83B7\u53D6\u673A\u4F1A\u65B9\u5F0F\u7C7B\u578B\n */\nexport type ChanceMethodType = 'share' | 'points' | 'refer' | string\n\n/**\n * \u83B7\u53D6\u673A\u4F1A\u65B9\u5F0F\u72B6\u6001\n */\nexport type ChanceMethodStatus = 'pending' | 'completed' | 'used'\n\n/**\n * \u83B7\u53D6\u673A\u4F1A\u65B9\u5F0F\uFF08ChanceMethod\uFF09\n *\n * \u4EE3\u8868\u4E00\u79CD\u83B7\u53D6\u62BD\u5956\u673A\u4F1A\u7684\u65B9\u5F0F\uFF0C\u652F\u6301\u7075\u6D3B\u914D\u7F6E\uFF08\u5206\u4EAB\u3001\u79EF\u5206\u3001\u63A8\u8350\u7B49\uFF09\u3002\n *\n * @example\n * ```tsx\n * const chanceMethod: ChanceMethod = {\n * methodKey: 'share-001',\n * type: 'share',\n * title: 'Share on your socials',\n * description: 'Share this event on your social media',\n * buttonText: 'Redeem now',\n * onClick: () => console.log('Share clicked'),\n * disabled: false,\n * status: 'pending'\n * }\n * ```\n */\nexport interface ChanceMethod {\n /**\n * \u552F\u4E00\u6807\u8BC6\u7B26\n */\n methodKey: string\n\n /**\n * \u65B9\u5F0F\u7C7B\u578B\uFF0C\u652F\u6301\u9884\u5B9A\u4E49\u7C7B\u578B\uFF08'share', 'points', 'refer'\uFF09\u6216\u81EA\u5B9A\u4E49\u7C7B\u578B\n */\n type: ChanceMethodType\n\n /**\n * \u65B9\u5F0F\u6807\u9898\uFF0C\u5982 \"Share on your socials\"\n */\n title: string\n\n /**\n * \u8BE6\u7EC6\u8BF4\u660E\u6587\u5B57\n */\n description: string\n\n /**\n * \u6309\u94AE\u6587\u6848\uFF0C\u9ED8\u8BA4 \"Redeem now\"\n * @default \"Redeem now\"\n * @optional\n */\n buttonText?: string\n\n completed?: string\n\n used?: string\n\n /**\n * \u672A\u767B\u5F55\u65F6\u70B9\u51FB GO \u6309\u94AE\u7684\u56DE\u8C03\n * @example\n * ```tsx\n * onLoginRequired={() => {\n * // \u6253\u5F00\u767B\u5F55\u5F39\u7A97\u6216\u8DF3\u8F6C\u767B\u5F55\u9875\n * router.push('/login')\n * }}\n * ```\n */\n onLoginRequired: () => void\n\n /**\n * \u70B9\u51FB\u6309\u94AE\u65F6\u7684\u56DE\u8C03\u51FD\u6570\n * @note \u4E1A\u52A1\u903B\u8F91\uFF08\u5982\u79EF\u5206\u6263\u9664\u3001\u5206\u4EAB\u9A8C\u8BC1\uFF09\u7531\u7236\u7EC4\u4EF6\u5904\u7406\n */\n onClick: () => void\n\n /**\n * \u662F\u5426\u7981\u7528\u8BE5\u65B9\u5F0F\n * @default false\n * @optional\n */\n disabled?: boolean\n\n /**\n * \u83B7\u53D6\u673A\u4F1A\u65B9\u5F0F\u7684\u72B6\u6001\n * - pending: \u672A\u5B8C\u6210\uFF08\u9ED8\u8BA4\u72B6\u6001\uFF09\n * - completed: \u5DF2\u5B8C\u6210/\u5DF2\u83B7\u5F97\n * - used: \u5DF2\u4F7F\u7528\n * @default \"pending\"\n * @optional\n */\n status?: ChanceMethodStatus\n\n /**\n * \u662F\u5426\u663E\u793A\u52A0\u8F7D\u72B6\u6001\n * @default false\n * @optional\n */\n loading?: boolean\n\n /**\n * \u662F\u5426\u5728\u70B9\u51FB\u65F6\u6253\u5F00\u5206\u4EAB\u5F39\u7A97\n * @default false\n * @optional\n */\n openShareModal?: boolean\n}\n\n/**\n * \u7528\u6237\u6570\u636E\uFF08UserData\uFF09\n *\n * \u4EE3\u8868\u5F53\u524D\u7528\u6237\u7684\u62BD\u5956\u76F8\u5173\u6570\u636E\n *\n * @example\n * ```tsx\n * const userData: UserData = {\n * isLoggedIn: true,\n * availableChances: 3,\n * wonPrizes: [\n * { id: 'prize-001', name: 'Charger', image: 'https://...', timestamp: 1702800000000 }\n * ]\n * }\n * ```\n */\nexport interface UserData {\n /**\n * \u7528\u6237\u662F\u5426\u5DF2\u767B\u5F55\n */\n isLoggedIn: boolean\n\n /**\n * \u5F53\u524D\u53EF\u4F7F\u7528\u7684\u62BD\u5956\u6B21\u6570\n * @default 0\n */\n availableChances: number\n\n /**\n * \u603B\u673A\u4F1A\u6570\uFF08\u7528\u4E8E\u663E\u793A\u8FDB\u5EA6\uFF0C\u4F8B\u5982 \"3/5\"\uFF09\n * @default undefined\n * @optional\n */\n totalChances?: number\n\n /**\n * \u5DF2\u83B7\u5F97\u7684\u5956\u54C1\u5217\u8868\n * @optional\n */\n wonPrizes?: Array<Prize & { timestamp?: number }>\n\n /** * \u7528\u6237\u7535\u5B50\u90AE\u7BB1\uFF08\u53EF\u9009\uFF0C\u7528\u4E8E\u53D1\u9001\u4E2D\u5956\u901A\u77E5\u7B49\uFF09\n * @optional\n */\n email?: string\n}\n\n/**\n * \u7F13\u52A8\u51FD\u6570\u7C7B\u578B\n */\nexport type EasingFunction = 'ease-out' | 'ease-in-out' | 'linear'\n\n/**\n * \u4E2D\u5956\u5F39\u7A97\u914D\u7F6E\uFF08WinnerModalConfig\uFF09\n *\n * \u7528\u4E8E\u914D\u7F6E\u4E2D\u5956\u5F39\u7A97\u7684\u5C55\u793A\u5185\u5BB9\uFF0C\u901A\u5E38\u7531\u62BD\u5956\u63A5\u53E3\u8FD4\u56DE\u63D0\u4F9B\n *\n * @example\n * ```tsx\n * const winnerModalConfig: WinnerModalConfig = {\n * title: 'Congratulations!',\n * prizeTitle: 'Anker Prime Charger',\n * prizeImage: 'https://...',\n * prizeDescription: 'High-speed charging for all your devices',\n * learnMoreUrl: 'https://...',\n * learnMoreText: 'View Details',\n * couponCode: 'ANKER2024',\n * expiresAt: '2024-12-31',\n * couponDiscount: '20%',\n * couponUnit: 'Off',\n * confirmText: 'Claim Now'\n * }\n * ```\n */\nexport interface WinnerModalConfig {\n /**\n * \u4E2D\u5956\u5F39\u7A97\u6807\u9898\n * @default \"You Have Won\"\n * @optional\n */\n title?: string\n\n /**\n * \u4E2D\u5956\u5F39\u7A97\u5956\u54C1\u6807\u9898\uFF08\u4F18\u5148\u7EA7\u9AD8\u4E8E prize.name\uFF09\n * @optional\n */\n prizeTitle?: string\n\n /**\n * \u4E2D\u5956\u5F39\u7A97\u5956\u54C1\u56FE\u7247 URL\uFF08\u4F18\u5148\u7EA7\u9AD8\u4E8E prize.image\uFF09\n * @optional\n */\n prizeImage?: string\n\n /**\n * \u4E2D\u5956\u5F39\u7A97\u5956\u54C1\u8BE6\u60C5\u63CF\u8FF0\n * @optional\n */\n prizeDescription?: string\n\n /**\n * \u4E2D\u5956\u5F39\u7A97 Learn More \u94FE\u63A5\n * @optional\n */\n learnMoreUrl?: string\n\n /**\n * \u4E2D\u5956\u5F39\u7A97 Learn More \u6309\u94AE\u6587\u672C\n * @default \"Learn More\"\n * @optional\n */\n learnMoreText?: string\n\n /**\n * \u4E2D\u5956\u5F39\u7A97\u4F18\u60E0\u7801\n * @optional\n */\n couponCode?: string\n\n /**\n * \u590D\u5236\u6309\u94AE\u6587\u672C\n * @default \"COPY\"\n * @optional\n */\n copyText?: string\n\n /**\n * \u4EE3\u7801\u6587\u672C\u524D\u7F00\n * @default \"CODE:\"\n * @optional\n */\n codeText?: string\n\n /**\n * \u4E2D\u5956\u5F39\u7A97\u4F18\u60E0\u7801\u8FC7\u671F\u65F6\u95F4\n * @optional\n */\n expiresAt?: string\n\n /**\n * \u4E2D\u5956\u5F39\u7A97\u4F18\u60E0\u5238\u6298\u6263\u6587\u672C\uFF08\u4F8B\u5982 \"20%\"\uFF09\n * @optional\n */\n couponDiscount?: string\n\n /**\n * \u4E2D\u5956\u5F39\u7A97\u4F18\u60E0\u5238\u5355\u4F4D\u6587\u672C\n * @default \"Off\"\n * @optional\n */\n couponUnit?: string\n\n /**\n * \u4E2D\u5956\u5F39\u7A97\u786E\u8BA4\u6309\u94AE\u6587\u672C\n * @default \"Okay, Got It\"\n * @optional\n */\n confirmText?: string\n}\n\n/**\n * Rules \u5F39\u7A97\u914D\u7F6E\n *\n * @example\n * ```tsx\n * rulesModalConfig={{\n * rulesData: [\n * { title: 'Rule 1', content: 'Description...' },\n * { title: 'Rule 2', content: ['Point 1', 'Point 2'] }\n * ],\n * rulesText: 'Game Rules',\n * rulesTitle: 'Activity Rules'\n * }}\n * ```\n */\nexport interface RulesModalConfig {\n /**\n * \u89C4\u5219\u6570\u636E\u5217\u8868\n * @optional\n */\n rulesData?: Array<{\n /**\n * \u89C4\u5219\u6807\u9898\n */\n title: string\n /**\n * \u89C4\u5219\u5185\u5BB9\uFF08\u652F\u6301\u5B57\u7B26\u4E32\u6216\u5B57\u7B26\u4E32\u6570\u7EC4\uFF09\n */\n content: string | string[]\n }>\n\n /**\n * Rules \u6309\u94AE\u6587\u672C\n * @default \"Rules\"\n * @optional\n */\n rulesText?: string\n\n /**\n * \u5F39\u7A97\u6807\u9898\n * @default \"Rules\"\n * @optional\n */\n rulesTitle?: string\n}\n\n/**\n * My Rewards \u5F39\u7A97\u914D\u7F6E\n *\n * @example\n * ```tsx\n * myRewardsModalConfig={{\n * rewardsData: [\n * {\n * id: '1',\n * name: 'Anker Charger',\n * code: 'ANKER2024',\n * status: 'Available',\n * prizeTime: '2024-01-01',\n * showCopyCode: true\n * }\n * ],\n * myRewardsText: 'My Prizes',\n * codeText: 'CODE:',\n * copyText: 'COPY',\n * prizeText: 'Prize time:',\n * emptyText: 'No rewards yet'\n * }}\n * ```\n */\nexport interface MyRewardsModalConfig {\n /**\n * \u5956\u52B1\u6570\u636E\u5217\u8868\n * @optional\n */\n rewardsData?: Array<{\n /**\n * \u5956\u52B1 ID\n */\n id: string\n /**\n * \u5956\u52B1\u540D\u79F0\n */\n name: string\n /**\n * \u4F18\u60E0\u7801\uFF08\u53EF\u9009\uFF09\n */\n code?: string\n /**\n * \u72B6\u6001\n */\n status: 'Available' | 'Expired' | 'Used'\n /**\n * \u5956\u52B1\u65F6\u95F4\n */\n prizeTime?: string\n /**\n * \u662F\u5426\u53EF\u590D\u5236\u7801\n */\n showCopyCode?: boolean\n }>\n\n /**\n * My Rewards \u6309\u94AE\u6587\u672C\n * @default \"My Rewards\"\n * @optional\n */\n myRewardsText?: string\n\n /**\n * \u5F39\u7A97\u6807\u9898\n * @default \"My Rewards\"\n * @optional\n */\n myRewardsTitle?: string\n\n /**\n * \u4EE3\u7801\u6587\u672C\u524D\u7F00\n * @default \"CODE:\"\n * @optional\n */\n codeText?: string\n\n /**\n * \u590D\u5236\u6309\u94AE\u6587\u672C\n * @default \"COPY\"\n * @optional\n */\n copyText?: string\n\n /**\n * \u5956\u52B1\u65F6\u95F4\u6587\u672C\u524D\u7F00\n * @default \"Prize time:\"\n * @optional\n */\n prizeText?: string\n\n /**\n * \u7A7A\u72B6\u6001\u63D0\u793A\u6587\u672C\n * @default \"No rewards yet\"\n * @optional\n */\n emptyText?: string\n}\n\n/**\n * \u9519\u8BEF\u5F39\u7A97\u914D\u7F6E\n * @example\n * ```tsx\n * errorModalConfig={{\n * title: 'Oops!',\n * message: 'Something went wrong during the lottery process.',\n * confirmText: 'OK, I get'\n * }}\n * ```\n */\nexport interface ErrorModalConfig {\n /**\n * \u5F39\u7A97\u6807\u9898\n * @default \"Oops!\"\n * @optional\n */\n title?: string\n /**\n * \u9519\u8BEF\u6D88\u606F\u5185\u5BB9\n * @default \"Something went wrong during the lottery process.\"\n * @optional\n */\n message?: string\n /**\n * \u786E\u8BA4\u6309\u94AE\u6587\u672C\n * @default \"OK, I get\"\n * @optional\n */\n confirmText?: string\n}\n\n/**\n * \u793E\u4EA4\u5E73\u53F0\u7C7B\u578B\n */\nexport type SocialPlatform = 'facebook' | 'twitter' | 'instagram' | 'linkedin' | 'tiktok' | 'youtube'\n\n/**\n * \u793E\u4EA4\u5E73\u53F0\u914D\u7F6E\n */\nexport interface SharePlatformConfig {\n /**\n * \u5E73\u53F0\u7C7B\u578B\n */\n platform: SocialPlatform\n\n /**\n * \u5E73\u53F0\u540D\u79F0\n */\n name: string\n\n /**\n * \u5206\u4EAB URL\uFF08\u53EF\u9009\uFF0C\u5982\u679C\u63D0\u4F9B\u5219\u76F4\u63A5\u8DF3\u8F6C\uFF09\n */\n url?: string\n\n /**\n * \u70B9\u51FB\u56DE\u8C03\uFF08\u5982\u679C\u63D0\u4F9B url \u5219\u6B64\u56DE\u8C03\u4F1A\u5728\u8DF3\u8F6C\u524D\u6267\u884C\uFF09\n */\n onClick?: () => void\n\n /**\n * \u662F\u5426\u7981\u7528\n */\n disabled?: boolean\n}\n\n/**\n * \u5206\u4EAB\u5F39\u7A97\u914D\u7F6E\n */\nexport interface ShareModalConfig {\n /**\n * \u5F39\u7A97\u6807\u9898\n * @default \"Share to Get More Chances\"\n */\n title?: string\n\n /**\n * \u526F\u6807\u9898/\u5F15\u5BFC\u6587\u6848\n * @default \"Share to Play Again Keep Trying! You Could Still Win Big!\"\n */\n subtitle?: string\n\n /**\n * \u5E95\u90E8\u63D0\u793A\u6587\u6848\n * @default \"Note: Maximum of 3 times per participant.\"\n */\n note?: string\n\n /**\n * \u793E\u4EA4\u5E73\u53F0\u914D\u7F6E\u5217\u8868\n */\n platforms?: SharePlatformConfig[]\n\n /**\n * \u5206\u4EAB\u6210\u529F\u56DE\u8C03\n */\n onShareSuccess?: (platform: SocialPlatform) => void\n}\n\n// ============================================================================\n// \u7EC4\u4EF6 Props \u63A5\u53E3\n// ============================================================================\n\n/**\n * WheelLottery \u7EC4\u4EF6 Props\n *\n * @example\n * ```tsx\n * <WheelLottery\n * prizes={prizes}\n * winningPrizeId=\"prize-003\"\n * spinDuration={4000}\n * easing=\"ease-out\"\n * chanceMethods={chanceMethods}\n * chanceTitle=\"Want more chances to win?\"\n * winningInfos={winningInfos}\n * onSpinStart={() => console.log('Spin started')}\n * onSpinEnd={(prize) => alert(`You won ${prize.name}`)}\n * />\n * ```\n */\nexport interface WheelLotteryProps {\n // ========== \u5FC5\u9700 Props ==========\n\n /**\n * 8 \u4E2A\u5956\u54C1\u6570\u7EC4\uFF08\u5FC5\u9700\uFF09\n * @minLength 8\n * @maxLength 8\n * @validation \u5982\u679C\u957F\u5EA6\u4E0D\u7B49\u4E8E 8\uFF0C\u5E94\u5728\u5F00\u53D1\u73AF\u5883\u4E0B\u8F93\u51FA\u8B66\u544A\n */\n prizes: Prize[]\n\n // ========== \u8F6C\u76D8\u914D\u7F6E Props\uFF08\u53EF\u9009\uFF09 ==========\n\n /**\n * \u4E3B\u9898\u8272\n */\n theme?: Theme\n\n /**\n * \u6307\u5B9A\u4E2D\u5956\u5956\u54C1\u7684 ID\uFF0C\u7528\u4E8E\u6D4B\u8BD5\u6216\u670D\u52A1\u7AEF\u51B3\u5B9A\u7ED3\u679C\n * @note \u5FC5\u987B\u662F prizes \u6570\u7EC4\u4E2D\u67D0\u4E2A Prize \u7684 id\n * @optional\n */\n winningPrizeId?: string\n\n /**\n * \u65CB\u8F6C\u65F6\u957F\uFF08\u6BEB\u79D2\uFF09\n * @default 4000\n * @range 3000-5000\n * @optional\n */\n spinDuration?: number\n\n /**\n * \u7F13\u52A8\u51FD\u6570\n * @default \"ease-out\"\n * @optional\n */\n easing?: EasingFunction\n\n /**\n * \u8F6C\u76D8\u5E95\u56FE URL\uFF08\u652F\u6301 6 \u4E2A\u6216 8 \u4E2A\u5956\u54C1\u7684\u80CC\u666F\u56FE\uFF09\n * @default \u6839\u636E prizes.length \u81EA\u52A8\u9009\u62E9 6 \u6216 8 \u5956\u54C1\u5E95\u56FE\n * @optional\n */\n wheelBackgroundImage?: string\n\n /**\n * \u8F6C\u76D8\u6307\u9488\u56FE\u7247 URL\n * @default \u9ED8\u8BA4\u6307\u9488\u56FE\u7247\n * @optional\n */\n pointerImage?: string\n\n // ========== \u83B7\u53D6\u673A\u4F1A\u533A\u57DF Props\uFF08\u53EF\u9009\uFF09 ==========\n\n /**\n * \u83B7\u53D6\u673A\u4F1A\u65B9\u5F0F\u6570\u7EC4\n * @default DEFAULT_CHANCE_METHODS\uFF083\u79CD\u9ED8\u8BA4\u65B9\u5F0F\uFF1A\u5206\u4EAB\u3001\u79EF\u5206\u3001\u63A8\u8350\uFF09\n * @note \u5F53\u6570\u7EC4\u4E3A\u7A7A\u65F6\uFF0C\u9690\u85CF\u6574\u4E2A\"\u83B7\u53D6\u673A\u4F1A\"\u533A\u57DF\n * @optional\n */\n chanceMethods?: ChanceMethod[]\n\n /**\n * \u83B7\u53D6\u673A\u4F1A\u533A\u57DF\u6807\u9898\n * @default \"Want more chances to win?\"\n * @optional\n */\n chanceTitle?: string\n\n /**\n * \u83B7\u53D6\u673A\u4F1A\u533A\u57DF\u526F\u6807\u9898\n * @optional\n */\n chanceSubtitle?: string\n\n /**\n * \u83B7\u53D6\u673A\u4F1A\u533A\u57DF\u5E95\u90E8\u63D0\u793A\n * @optional\n */\n chanceFooterNote?: string\n\n // ========== \u4E2D\u5956\u4FE1\u606F Props\uFF08\u53EF\u9009\uFF09 ==========\n\n /**\n * \u4E2D\u5956\u4FE1\u606F\u6570\u7EC4\uFF0C\u7528\u4E8E\u5E95\u90E8\u6EDA\u52A8\u6761\u5C55\u793A\n * @default []\n * @note \u5F53\u6570\u7EC4\u4E3A\u7A7A\u65F6\uFF0C\u9690\u85CF\u5E95\u90E8\u6EDA\u52A8\u6761\u6216\u663E\u793A\u9ED8\u8BA4\u63D0\u793A\n * @optional\n */\n winningInfos?: WinningInfo[]\n\n // ========== \u56DE\u8C03\u51FD\u6570 Props\uFF08\u53EF\u9009\uFF09 ==========\n\n /**\n * \u62BD\u5956\u5F00\u59CB\u65F6\u7684\u56DE\u8C03\uFF0C\u8FD4\u56DE Promise \u4EE5\u652F\u6301\u5F02\u6B65\u63A5\u53E3\u8C03\u7528\n * @returns Promise<string> - \u4E2D\u5956\u5956\u54C1\u7684 ID\uFF0C\u5982\u679C\u63A5\u53E3\u5931\u8D25\u5219 reject\n * @optional\n * @example\n * ```tsx\n * onSpinStart={async () => {\n * const result = await fetch('/api/lottery')\n * const data = await result.json()\n * return data.prizeId // \u8FD4\u56DE\u4E2D\u5956\u5956\u54C1 ID\n * }}\n * ```\n */\n onSpinStart?: () => Promise<string>\n\n /**\n * \u62BD\u5956\u7ED3\u675F\u65F6\u7684\u56DE\u8C03\uFF0C\u4F20\u9012\u4E2D\u5956\u5956\u54C1\n * @param prize \u4E2D\u5956\u5956\u54C1\u5BF9\u8C61\n * @optional\n */\n onSpinEnd?: (prize: Prize) => void\n\n /**\n * \u62BD\u5956\u9519\u8BEF\u65F6\u7684\u56DE\u8C03\n * @param error \u9519\u8BEF\u4FE1\u606F\n * @optional\n */\n onSpinError?: (error: Error) => void\n\n // ========== \u4E2D\u5956\u5F39\u7A97\u914D\u7F6E Props\uFF08\u53EF\u9009\uFF09 ==========\n\n /**\n * \u4E2D\u5956\u5F39\u7A97\u914D\u7F6E\u5BF9\u8C61\uFF0C\u901A\u5E38\u7531\u62BD\u5956\u63A5\u53E3\u8FD4\u56DE\u63D0\u4F9B\n * @optional\n * @example\n * ```tsx\n * winnerModalConfig={{\n * title: 'Congratulations!',\n * prizeTitle: 'Anker Prime Charger',\n * prizeImage: 'https://...',\n * prizeDescription: 'High-speed charging',\n * learnMoreUrl: 'https://...',\n * couponCode: 'ANKER2024',\n * expiresAt: '2024-12-31',\n * couponDiscount: '20%',\n * confirmText: 'Claim Now'\n * }}\n * ```\n */\n winnerModalConfig?: WinnerModalConfig\n\n rulesModalConfig?: RulesModalConfig\n\n myRewardsModalConfig?: MyRewardsModalConfig\n\n errorModalConfig?: ErrorModalConfig\n\n /**\n * \u5206\u4EAB\u5F39\u7A97\u914D\u7F6E\n * @optional\n */\n shareModalConfig?: ShareModalConfig\n\n /**\n * \u672A\u767B\u5F55\u65F6\u70B9\u51FB GO \u6309\u94AE\u7684\u56DE\u8C03\n * @example\n * ```tsx\n * onLoginRequired={() => {\n * // \u6253\u5F00\u767B\u5F55\u5F39\u7A97\u6216\u8DF3\u8F6C\u767B\u5F55\u9875\n * router.push('/login')\n * }}\n * ```\n */\n onLoginRequired: () => void\n\n // ========== \u7528\u6237\u76F8\u5173 Props\uFF08\u53EF\u9009\uFF09 ==========\n\n /**\n * \u7528\u6237\u6570\u636E\n * @optional\n * @example\n * ```tsx\n * userData={{\n * isLoggedIn: true,\n * availableChances: 3,\n * wonPrizes: [{ id: 'prize-001', name: 'Charger', image: 'https://...' }]\n * }}\n * ```\n */\n userData?: UserData\n\n /**\n * \u672A\u767B\u5F55\u65F6\u7684\u63D0\u793A\u6587\u6848\n * @default \"Please log in to participate\"\n * @optional\n */\n loginPromptText?: string\n\n /**\n * \u767B\u5F55\u6309\u94AE\u6587\u6848\n * @default \"Log In\"\n * @optional\n */\n loginButtonText?: string\n\n /**\n * \u6B21\u6570\u4E0D\u8DB3\u65F6\u7684\u63D0\u793A\u6587\u6848\n * @default \"You have no chances left\"\n * @optional\n */\n noChancesText?: string\n\n // ========== \u5F39\u7A97\u76F8\u5173 Props\uFF08\u53EF\u9009\uFF09 ==========\n\n /**\n * \u590D\u5236\u4F18\u60E0\u7801\u56DE\u8C03\n * @optional\n */\n onCopyCode?: (code: string) => void\n\n /**\n * Rules \u6309\u94AE\u6587\u672C\n * @default \"Rules\"\n * @optional\n */\n rulesText?: string\n\n /**\n * Opportunities \u6587\u672C\u6570\u7EC4\n * @default [\"Accumulate\", \"lottery opportunities\"]\n * @optional\n */\n opportunitiesText?: string[]\n\n /**\n * My Rewards \u6309\u94AE\u6587\u672C\n * @default \"My Rewards\"\n * @optional\n */\n myRewardsText?: string\n\n /**\n * \u672A\u4E2D\u5956\u5F39\u7A97\u6807\u9898\n * @default \"Sorry, You Didn't Win This Time\"\n * @optional\n */\n noWinTitle?: string\n\n /**\n * \u672A\u4E2D\u5956\u5F39\u7A97\u526F\u6807\u9898\n * @default \"Keep Trying, You Could Still Win Big!\"\n * @optional\n */\n noWinSubtitle?: string\n\n // ========== My Rewards \u5F39\u7A97\u6587\u6848\u914D\u7F6E\uFF08\u53EF\u9009\uFF09 ==========\n\n /**\n * My Rewards \u5F39\u7A97\u65E0\u5956\u52B1\u65F6\u7684\u63D0\u793A\u6587\u672C\n * @default \"No rewards yet\"\n * @optional\n */\n rewardsEmptyText?: string\n\n /**\n * My Rewards \u5F39\u7A97 CODE \u6807\u7B7E\u6587\u672C\n * @default \"CODE:\"\n * @optional\n */\n rewardsCodeLabel?: string\n\n /**\n * My Rewards \u5F39\u7A97\u590D\u5236\u6309\u94AE\u6587\u672C\n * @default \"Copy\"\n * @optional\n */\n rewardsCopyButtonText?: string\n\n /**\n * My Rewards \u5F39\u7A97\u5956\u52B1\u65F6\u95F4\u6807\u7B7E\u6587\u672C\n * @default \"Prize time:\"\n * @optional\n */\n rewardsPrizeTimeLabel?: string\n\n // ========== BaseModal \u914D\u7F6E\uFF08\u53EF\u9009\uFF09 ==========\n\n /**\n * \u5F39\u7A97\u5173\u95ED\u6309\u94AE\u7684 aria-label\n * @default \"\u5173\u95ED\u5F39\u7A97\"\n * @optional\n */\n modalCloseButtonAriaLabel?: string\n\n // ========== \u6837\u5F0F\u76F8\u5173 Props\uFF08\u53EF\u9009\uFF09 ==========\n\n /**\n * \u81EA\u5B9A\u4E49 CSS \u7C7B\u540D\uFF0C\u7528\u4E8E\u8986\u76D6\u6216\u6269\u5C55\u9ED8\u8BA4\u6837\u5F0F\n * @optional\n */\n className?: string\n}\n\n// ============================================================================\n// \u9ED8\u8BA4\u914D\u7F6E\n// ============================================================================\n\n/**\n * \u9ED8\u8BA4\u83B7\u53D6\u673A\u4F1A\u65B9\u5F0F\uFF083\u79CD\uFF09\n * @note \u7236\u7EC4\u4EF6\u9700\u8981\u8986\u76D6 onClick \u56DE\u8C03\u4EE5\u5B9E\u73B0\u5177\u4F53\u4E1A\u52A1\u903B\u8F91\n */\nexport const DEFAULT_CHANCE_METHODS: ChanceMethod[] = [\n {\n methodKey: 'default-share',\n type: 'share',\n title: 'Share on your socials',\n description: 'Share this event on your social media',\n buttonText: 'Redeem now',\n onLoginRequired: () => {\n alert('Please log in to share and get a chance!')\n },\n onClick: () => {\n console.warn('ChanceMethod.onClick not implemented. Please provide a custom onClick handler.')\n },\n disabled: false,\n },\n {\n methodKey: 'default-points',\n type: 'points',\n title: 'Spend 100 points',\n description: 'Use your reward points to get a chance',\n buttonText: 'Redeem now',\n onLoginRequired: () => {\n alert('Please log in to share and get a chance!')\n },\n onClick: () => {\n console.warn('ChanceMethod.onClick not implemented. Please provide a custom onClick handler.')\n },\n disabled: false,\n },\n {\n methodKey: 'default-refer',\n type: 'refer',\n title: 'Refer a friend',\n description: 'Invite your friends to join',\n buttonText: 'Redeem now',\n onLoginRequired: () => {\n alert('Please log in to share and get a chance!')\n },\n onClick: () => {\n console.warn('ChanceMethod.onClick not implemented. Please provide a custom onClick handler.')\n },\n disabled: false,\n },\n]\n\n/**\n * \u9ED8\u8BA4\u8F6C\u76D8\u914D\u7F6E\n */\n\nexport const DEFAULT_WHEEL_CONFIG = {\n spinDuration: 4000, // 4 \u79D2\n easing: 'ease-out' as EasingFunction,\n chanceTitle: 'Want more chances to win?',\n}\n\n// ============================================================================\n// \u5185\u90E8\u72B6\u6001\u7C7B\u578B\uFF08\u4EC5\u4F9B\u7EC4\u4EF6\u5185\u90E8\u4F7F\u7528\uFF09\n// ============================================================================\n\n/**\n * \u8F6C\u76D8\u8FD0\u884C\u65F6\u72B6\u6001\uFF08\u7EC4\u4EF6\u5185\u90E8\u4F7F\u7528\uFF09\n * @internal\n */\nexport interface WheelState {\n /**\n * \u8F6C\u76D8\u662F\u5426\u6B63\u5728\u65CB\u8F6C\n */\n isSpinning: boolean\n\n /**\n * \u5F53\u524D\u65CB\u8F6C\u89D2\u5EA6\uFF08\u5EA6\u6570\uFF09\n */\n currentRotation: number\n\n /**\n * \u4E2D\u5956\u5956\u54C1\uFF0C\u62BD\u5956\u7ED3\u675F\u540E\u8BBE\u7F6E\n */\n winningPrize: Prize | null\n\n /**\n * GO \u6309\u94AE\u662F\u5426\u7981\u7528\n */\n isButtonDisabled: boolean\n\n /**\n * \u662F\u5426\u5DF2\u5B8C\u6210\u62BD\u5956\uFF08\u7528\u4E8E\u63A7\u5236\u8F6C\u76D8\u662F\u5426\u663E\u793A\u521D\u59CB\u65CB\u8F6C\u52A8\u753B\uFF09\n */\n isFinished: boolean\n}\n\n/**\n * \u521D\u59CB\u8F6C\u76D8\u72B6\u6001\n * @internal\n */\nexport const INITIAL_WHEEL_STATE: WheelState = {\n isSpinning: false,\n currentRotation: 0,\n winningPrize: null,\n isButtonDisabled: false,\n isFinished: false,\n}\n\n// ============================================================================\n// \u5B50\u7EC4\u4EF6 Props \u7C7B\u578B\n// ============================================================================\n\n/**\n * Wheel \u8F6C\u76D8\u7EC4\u4EF6 Props\n */\nexport interface WheelProps {\n /**\n * \u4E3B\u9898\u6A21\u5F0F\n * @optional\n */\n theme?: Theme\n\n /**\n * 8 \u4E2A\u5956\u54C1\u6570\u7EC4\n */\n prizes: Prize[]\n\n /**\n * \u5F53\u524D\u65CB\u8F6C\u89D2\u5EA6(\u5EA6\u6570)\n */\n rotation: number\n\n /**\n * \u662F\u5426\u6B63\u5728\u65CB\u8F6C\n */\n isSpinning: boolean\n\n /**\n * \u662F\u5426\u5DF2\u5B8C\u6210\u62BD\u5956\uFF08\u7528\u4E8E\u63A7\u5236\u8F6C\u76D8\u662F\u5426\u663E\u793A\u521D\u59CB\u65CB\u8F6C\u52A8\u753B\uFF09\n */\n isFinished?: boolean\n\n /**\n * GO \u6309\u94AE\u662F\u5426\u7981\u7528\n */\n isButtonDisabled: boolean\n\n /**\n * GO \u6309\u94AE\u70B9\u51FB\u56DE\u8C03\n */\n onGoClick: () => void\n\n /**\n * \u8F6C\u76D8\u5E95\u56FE URL\uFF08\u53EF\u9009\uFF09\n */\n wheelBackgroundImage?: string\n\n /**\n * \u8F6C\u76D8\u6307\u9488\u56FE\u7247 URL\uFF08\u53EF\u9009\uFF09\n */\n pointerImage?: string\n\n /**\n * \u767B\u5F55\u7528\u6237\u6570\u636E\uFF08\u53EF\u9009\uFF09\n * @optional\n */\n userData?: UserData\n\n /**\n * \u6253\u5F00\u5206\u4EAB\u5F39\u7A97\u56DE\u8C03\uFF08\u53EF\u9009\uFF09\n * @optional\n */\n onOpenShareModal?: () => void\n\n /**\n * \u81EA\u5B9A\u4E49\u7C7B\u540D\n */\n className?: string\n}\n\n/**\n * PrizePool \u5956\u54C1\u6C60\u7EC4\u4EF6 Props\n */\nexport interface PrizePoolProps {\n /**\n * \u4E3B\u9898\u6A21\u5F0F\n * @optional\n */\n theme?: Theme\n\n /**\n * \u5956\u54C1\u5217\u8868(\u901A\u5E38\u662F\u5168\u90E8 8 \u4E2A\u5956\u54C1)\n */\n prizes: Prize[]\n\n /**\n * \u6807\u9898\u6587\u672C\n * @default \"Prize Pool\"\n */\n title?: string\n\n /**\n * \u4E2D\u5956\u4EBA\u540D\u5355\u6570\u636E\n * @optional\n */\n winningInfos?: WinningInfo[]\n\n /**\n * \u81EA\u5B9A\u4E49\u7C7B\u540D\n */\n className?: string\n}\n\n/**\n * ChanceMethods \u83B7\u53D6\u673A\u4F1A\u7EC4\u4EF6 Props\n */\nexport interface ChanceMethodsProps {\n /**\n * \u4E3B\u9898\u6A21\u5F0F\n * @optional\n */\n theme?: Theme\n\n /**\n * \u83B7\u53D6\u673A\u4F1A\u65B9\u5F0F\u5217\u8868\n */\n methods: ChanceMethod[]\n\n /**\n * \u6807\u9898\u6587\u672C\n * @default \"Want more chances to win?\"\n */\n title?: string\n\n /**\n * \u526F\u6807\u9898(\u53EF\u9009)\n */\n subtitle?: string\n\n /**\n * \u5E95\u90E8\u63D0\u793A\u6587\u672C(\u53EF\u9009)\n */\n footerNote?: string\n\n /**\n * \u767B\u5F55\u7528\u6237\u6570\u636E\uFF08\u53EF\u9009\uFF09\n * @optional\n */\n userData?: UserData\n\n /**\n * \u6253\u5F00\u5206\u4EAB\u5F39\u7A97\u56DE\u8C03\uFF08\u53EF\u9009\uFF09\n * @optional\n */\n onOpenShareModal?: () => void\n\n /**\n * \u81EA\u5B9A\u4E49\u7C7B\u540D\n */\n className?: string\n}\n\n/**\n * WinnerModal \u4E2D\u5956\u5F39\u7A97\u7EC4\u4EF6 Props\n */\nexport interface WinnerModalProps {\n /**\n * \u662F\u5426\u663E\u793A\u5F39\u7A97\n */\n isOpen: boolean\n\n /**\n * \u4E2D\u5956\u5956\u54C1\u4FE1\u606F\n */\n prize: Prize | null\n\n /**\n * \u5F39\u7A97\u6807\u9898\uFF08\u53EF\u9009\uFF0C\u9ED8\u8BA4 \"You Have Won\"\uFF09\n */\n title?: string\n\n /**\n * \u5956\u54C1\u6807\u9898\uFF08\u53EF\u9009\uFF0C\u9ED8\u8BA4\u4F7F\u7528 prize.name\uFF09\n */\n prizeTitle?: string\n\n /**\n * \u5956\u54C1\u56FE\u7247 URL\uFF08\u53EF\u9009\uFF0C\u9ED8\u8BA4\u4F7F\u7528 prize.image\uFF09\n */\n prizeImage?: string\n\n /**\n * \u5956\u54C1\u8BE6\u60C5\u63CF\u8FF0\uFF08\u53EF\u9009\uFF09\n */\n prizeDescription?: string\n\n /**\n * Learn More \u94FE\u63A5\uFF08\u53EF\u9009\uFF09\n */\n learnMoreUrl?: string\n\n /**\n * Learn More \u6309\u94AE\u6587\u672C\uFF08\u53EF\u9009\uFF0C\u9ED8\u8BA4 \"Learn More\"\uFF09\n */\n learnMoreText?: string\n\n /**\n * \u4F18\u60E0\u7801\uFF08\u53EF\u9009\uFF09\n */\n couponCode?: string\n\n /**\n * \u4F18\u60E0\u7801\u8FC7\u671F\u65F6\u95F4\uFF08\u53EF\u9009\uFF09\n */\n expiresAt?: string\n\n /**\n * \u4F18\u60E0\u5238\u6298\u6263\u6587\u672C\uFF08\u53EF\u9009\uFF0C\u4F8B\u5982 \"20%\"\uFF0C\u4E3A\u7A7A\u65F6\u4E0D\u663E\u793A\u4F18\u60E0\u5238\uFF09\n */\n couponDiscount?: string\n\n /**\n * \u4F18\u60E0\u5238\u5355\u4F4D\u6587\u672C\uFF08\u53EF\u9009\uFF0C\u9ED8\u8BA4 \"Off\"\uFF09\n */\n couponUnit?: string\n\n /**\n * \u590D\u5236\u7801\u6309\u94AE\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 * \u590D\u5236\u7801\u70B9\u51FB\u56DE\u8C03\n */\n onCopyCode?: (code: string) => void\n\n /**\n * \u5173\u95ED\u5F39\u7A97\u56DE\u8C03\n */\n onClose: () => void\n\n /**\n * \u786E\u8BA4\u6309\u94AE\u6587\u672C\uFF08\u53EF\u9009\uFF0C\u9ED8\u8BA4 \"Okay, Got It\"\uFF09\n */\n confirmText?: string\n\n /**\n * \u786E\u8BA4\u6309\u94AE\u70B9\u51FB\u56DE\u8C03\uFF08\u53EF\u9009\uFF09\n */\n onConfirm?: () => void\n\n /**\n * \u81EA\u5B9A\u4E49\u7C7B\u540D\n */\n className?: string\n}\n\n// ============================================================================\n// \u5DE5\u5177\u7C7B\u578B\n// ============================================================================\n\n/**\n * \u9A8C\u8BC1\u7ED3\u679C\n */\nexport interface ValidationResult {\n valid: boolean\n error?: string\n}\n\n/**\n * \u5956\u54C1\u9A8C\u8BC1\u9009\u9879\n */\nexport interface ValidatePrizesOptions {\n /**\n * \u662F\u5426\u5141\u8BB8\u7F3A\u5C11 rank \u5B57\u6BB5\n * @default true\n */\n allowMissingRank?: boolean\n\n /**\n * \u662F\u5426\u5141\u8BB8\u7F3A\u5C11 price \u5B57\u6BB5\n * @default true\n */\n allowMissingPrice?: boolean\n}\n\n// ============================================================================\n// \u7C7B\u578B\u5B88\u536B\n// ============================================================================\n\n/**\n * \u68C0\u67E5\u662F\u5426\u4E3A\u6709\u6548\u7684 Prize \u5BF9\u8C61\n * @param value \u5F85\u68C0\u67E5\u7684\u503C\n * @returns \u662F\u5426\u4E3A\u6709\u6548\u7684 Prize\n */\nexport function isPrize(value: unknown): value is Prize {\n return (\n typeof value === 'object' &&\n value !== null &&\n 'prizeKey' in value &&\n 'name' in value &&\n 'image' in value &&\n typeof (value as Prize).prizeKey === 'string' &&\n typeof (value as Prize).name === 'string' &&\n typeof (value as Prize).image === 'object'\n )\n}\n\n/**\n * \u68C0\u67E5\u662F\u5426\u4E3A\u6709\u6548\u7684 ChanceMethod \u5BF9\u8C61\n * @param value \u5F85\u68C0\u67E5\u7684\u503C\n * @returns \u662F\u5426\u4E3A\u6709\u6548\u7684 ChanceMethod\n */\nexport function isChanceMethod(value: unknown): value is ChanceMethod {\n return (\n typeof value === 'object' &&\n value !== null &&\n 'methodKey' in value &&\n 'type' in value &&\n 'title' in value &&\n 'description' in value &&\n 'onClick' in value &&\n typeof (value as ChanceMethod).methodKey === 'string' &&\n typeof (value as ChanceMethod).type === 'string' &&\n typeof (value as ChanceMethod).title === 'string' &&\n typeof (value as ChanceMethod).description === 'string' &&\n typeof (value as ChanceMethod).onClick === 'function'\n )\n}\n\n/**\n * \u68C0\u67E5\u662F\u5426\u4E3A\u6709\u6548\u7684 WinningInfo \u5BF9\u8C61\n * @param value \u5F85\u68C0\u67E5\u7684\u503C\n * @returns \u662F\u5426\u4E3A\u6709\u6548\u7684 WinningInfo\n */\nexport function isWinningInfo(value: unknown): value is WinningInfo {\n return (\n typeof value === 'object' &&\n value !== null &&\n 'winningKey' in value &&\n 'userName' in value &&\n 'prizeName' in value &&\n typeof (value as WinningInfo).winningKey === 'string' &&\n typeof (value as WinningInfo).userName === 'string' &&\n typeof (value as WinningInfo).prizeName === 'string'\n )\n}\n\n// ============================================================================\n// \u5BFC\u51FA\u7C7B\u578B\u522B\u540D\uFF08\u7528\u4E8E\u7B80\u5316\u4F7F\u7528\uFF09\n// ============================================================================\n\n/**\n * \u62BD\u5956\u56DE\u8C03\u51FD\u6570\u7C7B\u578B\n */\nexport type OnSpinEndCallback = (prize: Prize) => void\n\n/**\n * \u83B7\u53D6\u673A\u4F1A\u70B9\u51FB\u56DE\u8C03\u51FD\u6570\u7C7B\u578B\n */\nexport type OnChanceMethodClick = () => void\n"],
5
- "mappings": "AAmIO,MAAMA,EACX,2GAEWC,EACX,2GAKWC,EACX,sHAKWC,EACX,sHAw6BWC,EAAyC,CACpD,CACE,UAAW,gBACX,KAAM,QACN,MAAO,wBACP,YAAa,wCACb,WAAY,aACZ,gBAAiB,IAAM,CACrB,MAAM,0CAA0C,CAClD,EACA,QAAS,IAAM,CACb,QAAQ,KAAK,gFAAgF,CAC/F,EACA,SAAU,EACZ,EACA,CACE,UAAW,iBACX,KAAM,SACN,MAAO,mBACP,YAAa,yCACb,WAAY,aACZ,gBAAiB,IAAM,CACrB,MAAM,0CAA0C,CAClD,EACA,QAAS,IAAM,CACb,QAAQ,KAAK,gFAAgF,CAC/F,EACA,SAAU,EACZ,EACA,CACE,UAAW,gBACX,KAAM,QACN,MAAO,iBACP,YAAa,8BACb,WAAY,aACZ,gBAAiB,IAAM,CACrB,MAAM,0CAA0C,CAClD,EACA,QAAS,IAAM,CACb,QAAQ,KAAK,gFAAgF,CAC/F,EACA,SAAU,EACZ,CACF,EAMaC,EAAuB,CAClC,aAAc,IACd,OAAQ,WACR,YAAa,2BACf,EAyCaC,EAAkC,CAC7C,WAAY,GACZ,gBAAiB,EACjB,aAAc,KACd,iBAAkB,GAClB,WAAY,EACd,EA8SO,SAASC,EAAQC,EAAgC,CACtD,OACE,OAAOA,GAAU,UACjBA,IAAU,MACV,aAAcA,GACd,SAAUA,GACV,UAAWA,GACX,OAAQA,EAAgB,UAAa,UACrC,OAAQA,EAAgB,MAAS,UACjC,OAAQA,EAAgB,OAAU,QAEtC,CAOO,SAASC,EAAeD,EAAuC,CACpE,OACE,OAAOA,GAAU,UACjBA,IAAU,MACV,cAAeA,GACf,SAAUA,GACV,UAAWA,GACX,gBAAiBA,GACjB,YAAaA,GACb,OAAQA,EAAuB,WAAc,UAC7C,OAAQA,EAAuB,MAAS,UACxC,OAAQA,EAAuB,OAAU,UACzC,OAAQA,EAAuB,aAAgB,UAC/C,OAAQA,EAAuB,SAAY,UAE/C,CAOO,SAASE,EAAcF,EAAsC,CAClE,OACE,OAAOA,GAAU,UACjBA,IAAU,MACV,eAAgBA,GAChB,aAAcA,GACd,cAAeA,GACf,OAAQA,EAAsB,YAAe,UAC7C,OAAQA,EAAsB,UAAa,UAC3C,OAAQA,EAAsB,WAAc,QAEhD",
6
- "names": ["DEFAULT_POINTER_IMAGE", "DEFAULT_POINTER_DISABLE_IMAGE", "DEFAULT_WHEEL_BG_6_PRIZES", "DEFAULT_WHEEL_BG_8_PRIZES", "DEFAULT_CHANCE_METHODS", "DEFAULT_WHEEL_CONFIG", "INITIAL_WHEEL_STATE", "isPrize", "value", "isChanceMethod", "isWinningInfo"]
7
- }
@@ -1,12 +0,0 @@
1
- import React from 'react';
2
- export interface PaginatorProps {
3
- items?: any[];
4
- itemsLength?: number;
5
- pageSize?: number;
6
- currentPage?: number;
7
- onPageChange?: (page: number) => void;
8
- initialPage?: number;
9
- className?: string;
10
- }
11
- declare const Paginator: React.ForwardRefExoticComponent<PaginatorProps & React.RefAttributes<HTMLDivElement>>;
12
- export default Paginator;
@@ -1,7 +0,0 @@
1
- "use client";import{jsx as m,jsxs as w}from"react/jsx-runtime";import N,{useMemo as k,useState as P,useCallback as v}from"react";function S(r,s){const t=[];for(let a=r;a<=s;a++)t.push(a);return t}function $(r,s){if(r<=8)return S(1,r);const t=new Set;t.add(1),t.add(2),t.add(r-1),t.add(r),t.add(s-1),t.add(s),t.add(s+1);const a=[...t].filter(e=>e>=1&&e<=r).sort((e,l)=>e-l),i=[];for(let e=0;e<a.length;e++){const l=a[e];i.push(l);const d=a[e+1];d&&d-l>1&&i.push("...")}return i}const y=N.forwardRef(({items:r=[],itemsLength:s,pageSize:t=10,currentPage:a,onPageChange:i,initialPage:e=1,className:l=""},d)=>{const g=typeof s=="number"?s:r.length,o=Math.max(1,Math.ceil(g/Math.max(1,t))),[x,h]=P(()=>Math.min(Math.max(1,e||1),o)),n=typeof a=="number"?a:x,b=v(u=>{if(u===n)return;const p=Math.min(Math.max(1,u),o);typeof i=="function"&&i?.(p),typeof a!="number"&&h(p)},[n,o,i,a]),M=k(()=>$(o,n),[o,n]);return w("nav",{ref:d,className:`paginator-wrapper flex items-center justify-center gap-2 ${l}`,children:[m("style",{children:`
2
- .pg-btn[aria-disabled='true'] {
3
- opacity: 0.45;
4
- cursor: not-allowed;
5
- }
6
- `}),m("button",{"aria-label":"\u4E0A\u4E00\u9875","aria-disabled":n===1,disabled:n===1,className:"mr-1 cursor-pointer text-xl",onClick:()=>b(n-1),children:"\u2039"}),M.map((u,p)=>{if(u==="...")return m("span",{className:"pg-ellipsis","aria-hidden":!0,children:"\u2026"},`e-${p}`);const c=u,f=c===n;return m("button",{"aria-label":`\u7B2C ${c} \u9875`,onClick:()=>b(c),"aria-current":f?"page":void 0,className:`box-border border-transparent px-3.5 py-2 text-sm font-bold ${f?"bg-black text-[#FFF]":""}`,children:c},c)}),m("button",{"aria-label":"\u4E0B\u4E00\u9875","aria-disabled":n===o,disabled:n===o,className:"ml-1 cursor-pointer text-xl",onClick:()=>b(n+1),children:"\u203A"})]})});y.displayName="Paginator";var D=y;export{D as default};
7
- //# sourceMappingURL=paginator.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/components/paginator.tsx"],
4
- "sourcesContent": ["'use client'\n\nimport React, { useMemo, useState, useCallback } from 'react'\n\nfunction range(start: number, end: number) {\n const out = []\n for (let i = start; i <= end; i++) out.push(i)\n return out\n}\n/**\n * \u751F\u6210\u8981\u663E\u793A\u7684\u9875\u7801\u6570\u7EC4\uFF0C\u8FD4\u56DE\u7684\u6570\u7EC4\u4E2D\u5305\u542B\u6570\u5B57\u9875\u7801\u548C\u5B57\u7B26\u4E32 '...' \u8868\u793A\u7701\u7565\u53F7\n * \u7B97\u6CD5\u7279\u70B9\uFF1A\u4E0D\u521B\u5EFA\u957F\u6570\u7EC4\uFF08\u4E0D\u4F1A\u5BF9 pageCount \u505A map\uFF09\u2014\u2014\u53EA\u5C06\u9700\u8981\u663E\u793A\u7684\u9875\u7801\u52A0\u5165\u96C6\u5408\u5E76\u6392\u5E8F\n */\nfunction getDisplayPages(pageCount: any, currentPage: any) {\n // pageCount \u5F88\u5C0F\u65F6\uFF0C\u76F4\u63A5\u8FD4\u56DE\u5168\u90E8\u9875\u7801\n if (pageCount <= 8) return range(1, pageCount)\n\n const pagesSet = new Set()\n // \u524D\u4E24\u9875\u4E0E\u540E\u4E24\u9875\n pagesSet.add(1)\n pagesSet.add(2)\n pagesSet.add(pageCount - 1)\n pagesSet.add(pageCount)\n // \u5F53\u524D\u9875\u4EE5\u53CA\u5DE6\u53F3\u5404\u4E00\u9875\n pagesSet.add(currentPage - 1)\n pagesSet.add(currentPage)\n pagesSet.add(currentPage + 1)\n\n // \u8FC7\u6EE4\u8D8A\u754C\u5E76\u8F6C\u4E3A\u6392\u5E8F\u6570\u7EC4\n const pages = [...(pagesSet as any)].filter(p => p >= 1 && p <= pageCount).sort((a, b) => a - b)\n // \u6700\u7EC8\u6570\u7EC4\uFF0C\u9047\u5230\u76F8\u90BB\u95F4\u9699 > 1 \u65F6\u63D2\u5165\u7701\u7565\u53F7\n const result = []\n for (let i = 0; i < pages.length; i++) {\n const p = pages[i]\n result.push(p)\n const next = pages[i + 1]\n if (next && next - p > 1) {\n result.push('...')\n }\n }\n return result\n}\n\nexport interface PaginatorProps {\n items?: any[]\n itemsLength?: number\n pageSize?: number\n currentPage?: number\n onPageChange?: (page: number) => void\n initialPage?: number\n className?: string\n}\n\n// Paginator \u7EC4\u4EF6\nconst Paginator = React.forwardRef<HTMLDivElement, PaginatorProps>(\n (\n {\n items = [], // \u4EC5\u7528\u6765\u8BA1\u7B97\u603B\u6570\uFF1B\u82E5\u6570\u636E\u5F88\u5927\uFF0C\u5EFA\u8BAE\u4F20\u957F\u5EA6 itemsLength\n itemsLength, // \u4F18\u5148\u4F7F\u7528 itemsLength\uFF08\u5982\u679C\u4F60\u4E0D\u60F3\u628A\u6574\u4E2A\u6570\u7EC4\u4F20\u8FDB\u6765\uFF09\n pageSize = 10,\n currentPage: controlledPage, // \u53D7\u63A7 current\n onPageChange, // \u5F53\u53D7\u63A7\u65F6\u7531\u7236\u7EC4\u4EF6\u63A5\u7BA1\n initialPage = 1, // \u975E\u53D7\u63A7\u65F6\u7684\u521D\u59CB\u9875\n className = '',\n }: any,\n ref\n ) => {\n const totalItems = typeof itemsLength === 'number' ? itemsLength : items.length\n const pageCount = Math.max(1, Math.ceil(totalItems / Math.max(1, pageSize)))\n\n const [internalPage, setInternalPage] = useState(() => {\n const start = initialPage || 1\n return Math.min(Math.max(1, start), pageCount)\n })\n\n const current = typeof controlledPage === 'number' ? controlledPage : internalPage\n\n const changePage = useCallback(\n (newPage: number) => {\n if (newPage === current) return\n const clamped = Math.min(Math.max(1, newPage), pageCount)\n if (typeof onPageChange === 'function') {\n onPageChange?.(clamped)\n }\n if (typeof controlledPage !== 'number') {\n setInternalPage(clamped)\n }\n },\n [current, pageCount, onPageChange, controlledPage]\n )\n\n const displayPages = useMemo(() => getDisplayPages(pageCount, current), [pageCount, current])\n\n return (\n <nav ref={ref} className={`paginator-wrapper flex items-center justify-center gap-2 ${className}`}>\n <style>\n {`\n .pg-btn[aria-disabled='true'] {\n opacity: 0.45;\n cursor: not-allowed;\n }\n `}\n </style>\n {/* \u8DF3\u5230\u9996\u9875 */}\n {/* <button\n className=\"pg-btn\"\n onClick={() => changePage(1)}\n aria-label=\"\u8DF3\u5230\u7B2C\u4E00\u9875\"\n aria-disabled={current === 1}\n disabled={current === 1}>\n \u00AB\n </button> */}\n {/* \u4E0A\u4E00\u9875 */}\n <button\n aria-label=\"\u4E0A\u4E00\u9875\"\n aria-disabled={current === 1}\n disabled={current === 1}\n className=\"mr-1 cursor-pointer text-xl\"\n onClick={() => changePage(current - 1)}\n >\n \u2039\n </button>\n {displayPages.map((p, idx) => {\n if (p === '...') {\n return (\n <span key={`e-${idx}`} className=\"pg-ellipsis\" aria-hidden>\n \u2026\n </span>\n )\n }\n const pageNum = p\n const isActive = pageNum === current\n return (\n <button\n key={pageNum}\n aria-label={`\u7B2C ${pageNum} \u9875`}\n onClick={() => changePage(pageNum)}\n aria-current={isActive ? 'page' : undefined}\n className={`box-border border-transparent px-3.5 py-2 text-sm font-bold ${isActive ? 'bg-black text-[#FFF]' : ''}`}\n >\n {pageNum}\n </button>\n )\n })}\n {/* \u4E0B\u4E00\u9875 */}\n <button\n aria-label=\"\u4E0B\u4E00\u9875\"\n aria-disabled={current === pageCount}\n disabled={current === pageCount}\n className=\"ml-1 cursor-pointer text-xl\"\n onClick={() => changePage(current + 1)}\n >\n \u203A\n </button>\n {/* \u8DF3\u5230\u672B\u9875 */}\n {/* <button\n className=\"pg-btn\"\n onClick={() => changePage(pageCount)}\n aria-label=\"\u8DF3\u5230\u6700\u540E\u4E00\u9875\"\n aria-disabled={current === pageCount}\n disabled={current === pageCount}>\n \u00BB\n </button> */}\n\n {/* \u603B\u6570\u5C55\u793A\uFF08\u53EF\u9009\uFF09 */}\n {/* <div style={{ marginLeft: 8, color: \"rgba(0,0,0,0.55)\" }}>\n \u7B2C {current} / {pageCount} \u9875 \u2022 {totalItems} \u9879\n </div> */}\n </nav>\n )\n }\n)\n\nPaginator.displayName = 'Paginator'\n\nexport default Paginator\n"],
5
- "mappings": "aA8FM,OACE,OAAAA,EADF,QAAAC,MAAA,oBA5FN,OAAOC,GAAS,WAAAC,EAAS,YAAAC,EAAU,eAAAC,MAAmB,QAEtD,SAASC,EAAMC,EAAeC,EAAa,CACzC,MAAMC,EAAM,CAAC,EACb,QAASC,EAAIH,EAAOG,GAAKF,EAAKE,IAAKD,EAAI,KAAKC,CAAC,EAC7C,OAAOD,CACT,CAKA,SAASE,EAAgBC,EAAgBC,EAAkB,CAEzD,GAAID,GAAa,EAAG,OAAON,EAAM,EAAGM,CAAS,EAE7C,MAAME,EAAW,IAAI,IAErBA,EAAS,IAAI,CAAC,EACdA,EAAS,IAAI,CAAC,EACdA,EAAS,IAAIF,EAAY,CAAC,EAC1BE,EAAS,IAAIF,CAAS,EAEtBE,EAAS,IAAID,EAAc,CAAC,EAC5BC,EAAS,IAAID,CAAW,EACxBC,EAAS,IAAID,EAAc,CAAC,EAG5B,MAAME,EAAQ,CAAC,GAAID,CAAgB,EAAE,OAAOE,GAAKA,GAAK,GAAKA,GAAKJ,CAAS,EAAE,KAAK,CAACK,EAAGC,IAAMD,EAAIC,CAAC,EAEzFC,EAAS,CAAC,EAChB,QAAST,EAAI,EAAGA,EAAIK,EAAM,OAAQL,IAAK,CACrC,MAAMM,EAAID,EAAML,CAAC,EACjBS,EAAO,KAAKH,CAAC,EACb,MAAMI,EAAOL,EAAML,EAAI,CAAC,EACpBU,GAAQA,EAAOJ,EAAI,GACrBG,EAAO,KAAK,KAAK,CAErB,CACA,OAAOA,CACT,CAaA,MAAME,EAAYnB,EAAM,WACtB,CACE,CACE,MAAAoB,EAAQ,CAAC,EACT,YAAAC,EACA,SAAAC,EAAW,GACX,YAAaC,EACb,aAAAC,EACA,YAAAC,EAAc,EACd,UAAAC,EAAY,EACd,EACAC,IACG,CACH,MAAMC,EAAa,OAAOP,GAAgB,SAAWA,EAAcD,EAAM,OACnEV,EAAY,KAAK,IAAI,EAAG,KAAK,KAAKkB,EAAa,KAAK,IAAI,EAAGN,CAAQ,CAAC,CAAC,EAErE,CAACO,EAAcC,CAAe,EAAI5B,EAAS,IAExC,KAAK,IAAI,KAAK,IAAI,EADXuB,GAAe,CACI,EAAGf,CAAS,CAC9C,EAEKqB,EAAU,OAAOR,GAAmB,SAAWA,EAAiBM,EAEhEG,EAAa7B,EAChB8B,GAAoB,CACnB,GAAIA,IAAYF,EAAS,OACzB,MAAMG,EAAU,KAAK,IAAI,KAAK,IAAI,EAAGD,CAAO,EAAGvB,CAAS,EACpD,OAAOc,GAAiB,YAC1BA,IAAeU,CAAO,EAEpB,OAAOX,GAAmB,UAC5BO,EAAgBI,CAAO,CAE3B,EACA,CAACH,EAASrB,EAAWc,EAAcD,CAAc,CACnD,EAEMY,EAAelC,EAAQ,IAAMQ,EAAgBC,EAAWqB,CAAO,EAAG,CAACrB,EAAWqB,CAAO,CAAC,EAE5F,OACEhC,EAAC,OAAI,IAAK4B,EAAK,UAAW,4DAA4DD,CAAS,GAC7F,UAAA5B,EAAC,SACE;AAAA;AAAA;AAAA;AAAA;AAAA,UAMH,EAWAA,EAAC,UACC,aAAW,qBACX,gBAAeiC,IAAY,EAC3B,SAAUA,IAAY,EACtB,UAAU,8BACV,QAAS,IAAMC,EAAWD,EAAU,CAAC,EACtC,kBAED,EACCI,EAAa,IAAI,CAACrB,EAAGsB,IAAQ,CAC5B,GAAItB,IAAM,MACR,OACEhB,EAAC,QAAsB,UAAU,cAAc,cAAW,GAAC,mBAAhD,KAAKsC,CAAG,EAEnB,EAGJ,MAAMC,EAAUvB,EACVwB,EAAWD,IAAYN,EAC7B,OACEjC,EAAC,UAEC,aAAY,UAAKuC,CAAO,UACxB,QAAS,IAAML,EAAWK,CAAO,EACjC,eAAcC,EAAW,OAAS,OAClC,UAAW,+DAA+DA,EAAW,uBAAyB,EAAE,GAE/G,SAAAD,GANIA,CAOP,CAEJ,CAAC,EAEDvC,EAAC,UACC,aAAW,qBACX,gBAAeiC,IAAYrB,EAC3B,SAAUqB,IAAYrB,EACtB,UAAU,8BACV,QAAS,IAAMsB,EAAWD,EAAU,CAAC,EACtC,kBAED,GAeF,CAEJ,CACF,EAEAZ,EAAU,YAAc,YAExB,IAAOoB,EAAQpB",
6
- "names": ["jsx", "jsxs", "React", "useMemo", "useState", "useCallback", "range", "start", "end", "out", "i", "getDisplayPages", "pageCount", "currentPage", "pagesSet", "pages", "p", "a", "b", "result", "next", "Paginator", "items", "itemsLength", "pageSize", "controlledPage", "onPageChange", "initialPage", "className", "ref", "totalItems", "internalPage", "setInternalPage", "current", "changePage", "newPage", "clamped", "displayPages", "idx", "pageNum", "isActive", "paginator_default"]
7
- }
@@ -1,46 +0,0 @@
1
- import * as React from 'react';
2
- import { type VariantProps } from 'class-variance-authority';
3
- /**
4
- * Progress Bar Variants
5
- */
6
- declare const progressVariants: (props?: ({
7
- variant?: "default" | "withHandle" | null | undefined;
8
- size?: "base" | "lg" | null | undefined;
9
- } & import("class-variance-authority/types").ClassProp) | undefined) => string;
10
- export interface ProgressClassNames {
11
- /** 根容器的样式类名 */
12
- root?: string;
13
- /** 进度条的样式类名 */
14
- progressBar?: string;
15
- /** 拖拽手柄的样式类名 */
16
- handle?: string;
17
- }
18
- export interface ProgressProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'children' | 'onChange'>, VariantProps<typeof progressVariants> {
19
- /** 当前进度值 */
20
- value: number;
21
- /** 最大值,默认为 100 */
22
- max?: number;
23
- /** 最小值,默认为 0 */
24
- min?: number;
25
- /** 进度条的 aria-label,用于屏幕阅读器 */
26
- 'aria-label'?: string;
27
- /** 进度条的 aria-labelledby,关联到标签元素的ID */
28
- 'aria-labelledby'?: string;
29
- /** 进度条描述,用于屏幕阅读器 */
30
- 'aria-describedby'?: string;
31
- /** 值改变时的回调函数(仅在withHandle变体时有效) */
32
- onValueChange?: (value: number) => void;
33
- /** 是否禁用交互(仅在withHandle变体时有效) */
34
- disabled?: boolean;
35
- /** 拖拽步长,默认为1 */
36
- step?: number;
37
- /** 自定义样式类名,用于覆盖不同部分的默认样式 */
38
- classNames?: ProgressClassNames;
39
- }
40
- /**
41
- * Progress - 进度条
42
- *
43
- * @description 用于显示任务完成进度的可视化组件,支持多种尺寸、颜色变体和无障碍访问
44
- */
45
- declare const Progress: React.ForwardRefExoticComponent<ProgressProps & React.RefAttributes<HTMLDivElement>>;
46
- export default Progress;
@@ -1,2 +0,0 @@
1
- "use client";import{jsx as z,jsxs as U}from"react/jsx-runtime";import*as a from"react";import{cva as w}from"class-variance-authority";import{cn as E}from"../helpers/index.js";const $=w("rounded-box relative w-full ",{variants:{variant:{default:"bg-container-secondary-0 overflow-hidden",withHandle:"bg-container-secondary-0"},size:{base:"h-2",lg:"h-3"}},defaultVariants:{variant:"default",size:"base"}}),A=w("rounded-box h-full ",{variants:{variant:{default:"bg-info-primary ",withHandle:"bg-info-primary "}},defaultVariants:{variant:"default"}}),S=w("border-info-white bg-info-primary size-4 rounded-full border shadow-sm",{variants:{size:{base:"size-4",lg:"tablet:size-5 size-4"}},defaultVariants:{size:"base"}}),L=a.forwardRef(({value:x,max:r=100,min:t=0,variant:g,size:D,className:N,classNames:m,onValueChange:o,disabled:l=!1,step:p=1,"aria-label":T,"aria-labelledby":X,"aria-describedby":k,...B},u)=>{const d=a.useRef(null),[f,R]=a.useState(!1),c=a.useRef(null),P=Math.max(t,Math.min(r,x)),v=(P-t)/(r-t)*100,V=g==="withHandle",s=V&&!l&&o,b=a.useCallback(e=>{if(!c.current||!o)return;const n=c.current,i=e-n.left,h=Math.max(0,Math.min(1,i/n.width)),M=t+h*(r-t),y=Math.max(t,Math.min(r,M));o(y)},[t,r,o]),H=a.useCallback(e=>{if(!c.current||!o)return;const n=c.current,i=e-n.left,h=Math.max(0,Math.min(1,i/n.width)),M=t+h*(r-t),y=Math.round(M/p)*p,O=Math.max(t,Math.min(r,y));o(O),c.current=null},[t,r,p,o]),C=a.useCallback(e=>{!s||!d.current||(e.preventDefault(),c.current=d.current.getBoundingClientRect(),R(!0),b(e.clientX))},[s,b]);a.useEffect(()=>{if(!f||!s)return;const e=i=>{b(i.clientX)},n=i=>{H(i.clientX),R(!1)};return document.addEventListener("mousemove",e),document.addEventListener("mouseup",n),()=>{document.removeEventListener("mousemove",e),document.removeEventListener("mouseup",n)}},[f,s,b,H]);const I=a.useCallback(e=>{d&&(d.current=e),u&&(typeof u=="function"?u(e):u.current=e)},[u]);return U("div",{ref:I,role:s?"slider":"progressbar","aria-valuenow":P,"aria-valuemin":t,"aria-valuemax":r,"aria-label":T,"aria-labelledby":X,"aria-describedby":k,"aria-disabled":l,className:E($({variant:g,size:D}),l&&"cursor-not-allowed opacity-50",s&&!l&&"cursor-pointer",N,m?.root),onMouseDown:s?C:void 0,...B,children:[z("div",{className:E(A({variant:g}),m?.progressBar),style:{width:`${Math.max(0,Math.min(100,v))}%`},"data-testid":"progress-bar"}),V&&v>0&&z("div",{className:E(S({size:D}),l&&"opacity-50",f&&"scale-110 shadow-lg",s&&!l&&"cursor-grab hover:scale-105 active:cursor-grabbing",m?.handle),"data-testid":"progress-handle",style:{position:"absolute",left:`${Math.max(0,Math.min(100,v))}%`,top:"50%",transform:"translate(-50%, -50%)",transition:f?"none":"all 0.2s ease-in-out"}})]})});L.displayName="Progress";var F=L;export{F as default};
2
- //# sourceMappingURL=progress.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/components/progress.tsx"],
4
- "sourcesContent": ["'use client'\n\nimport * as React from 'react'\nimport { type VariantProps, cva } from 'class-variance-authority'\nimport { cn } from '../helpers/index.js'\n\n/**\n * Progress Bar Variants\n */\nconst progressVariants = cva('rounded-box relative w-full ', {\n variants: {\n variant: {\n default: 'bg-container-secondary-0 overflow-hidden',\n withHandle: 'bg-container-secondary-0',\n },\n size: {\n base: 'h-2',\n lg: 'h-3',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'base',\n },\n})\n\nconst progressBarVariants = cva('rounded-box h-full ', {\n variants: {\n variant: {\n default: 'bg-info-primary ',\n withHandle: 'bg-info-primary ',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n})\n\nconst handleVariants = cva('border-info-white bg-info-primary size-4 rounded-full border shadow-sm', {\n variants: {\n size: {\n base: 'size-4',\n lg: 'tablet:size-5 size-4',\n },\n },\n defaultVariants: {\n size: 'base',\n },\n})\n\nexport interface ProgressClassNames {\n /** \u6839\u5BB9\u5668\u7684\u6837\u5F0F\u7C7B\u540D */\n root?: string\n /** \u8FDB\u5EA6\u6761\u7684\u6837\u5F0F\u7C7B\u540D */\n progressBar?: string\n /** \u62D6\u62FD\u624B\u67C4\u7684\u6837\u5F0F\u7C7B\u540D */\n handle?: string\n}\n\nexport interface ProgressProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, 'children' | 'onChange'>, VariantProps<typeof progressVariants> {\n /** \u5F53\u524D\u8FDB\u5EA6\u503C */\n value: number\n /** \u6700\u5927\u503C\uFF0C\u9ED8\u8BA4\u4E3A 100 */\n max?: number\n /** \u6700\u5C0F\u503C\uFF0C\u9ED8\u8BA4\u4E3A 0 */\n min?: number\n /** \u8FDB\u5EA6\u6761\u7684 aria-label\uFF0C\u7528\u4E8E\u5C4F\u5E55\u9605\u8BFB\u5668 */\n 'aria-label'?: string\n /** \u8FDB\u5EA6\u6761\u7684 aria-labelledby\uFF0C\u5173\u8054\u5230\u6807\u7B7E\u5143\u7D20\u7684ID */\n 'aria-labelledby'?: string\n /** \u8FDB\u5EA6\u6761\u63CF\u8FF0\uFF0C\u7528\u4E8E\u5C4F\u5E55\u9605\u8BFB\u5668 */\n 'aria-describedby'?: string\n /** \u503C\u6539\u53D8\u65F6\u7684\u56DE\u8C03\u51FD\u6570\uFF08\u4EC5\u5728withHandle\u53D8\u4F53\u65F6\u6709\u6548\uFF09 */\n onValueChange?: (value: number) => void\n /** \u662F\u5426\u7981\u7528\u4EA4\u4E92\uFF08\u4EC5\u5728withHandle\u53D8\u4F53\u65F6\u6709\u6548\uFF09 */\n disabled?: boolean\n /** \u62D6\u62FD\u6B65\u957F\uFF0C\u9ED8\u8BA4\u4E3A1 */\n step?: number\n /** \u81EA\u5B9A\u4E49\u6837\u5F0F\u7C7B\u540D\uFF0C\u7528\u4E8E\u8986\u76D6\u4E0D\u540C\u90E8\u5206\u7684\u9ED8\u8BA4\u6837\u5F0F */\n classNames?: ProgressClassNames\n}\n\n/**\n * Progress - \u8FDB\u5EA6\u6761\n *\n * @description \u7528\u4E8E\u663E\u793A\u4EFB\u52A1\u5B8C\u6210\u8FDB\u5EA6\u7684\u53EF\u89C6\u5316\u7EC4\u4EF6\uFF0C\u652F\u6301\u591A\u79CD\u5C3A\u5BF8\u3001\u989C\u8272\u53D8\u4F53\u548C\u65E0\u969C\u788D\u8BBF\u95EE\n */\nconst Progress = React.forwardRef<HTMLDivElement, ProgressProps>(\n (\n {\n value,\n max = 100,\n min = 0,\n variant,\n size,\n className,\n classNames,\n onValueChange,\n disabled = false,\n step = 1,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n 'aria-describedby': ariaDescribedBy,\n ...props\n },\n ref\n ) => {\n const progressRef = React.useRef<HTMLDivElement>(null)\n const [isDragging, setIsDragging] = React.useState(false)\n const dragRectRef = React.useRef<DOMRect | null>(null)\n\n // \u786E\u4FDD value \u5728\u6709\u6548\u8303\u56F4\u5185\n const normalizedValue = Math.max(min, Math.min(max, value))\n // \u8BA1\u7B97\u767E\u5206\u6BD4\n const percentage = ((normalizedValue - min) / (max - min)) * 100\n // \u662F\u5426\u663E\u793Ahandle\n const isWithHandle = variant === 'withHandle'\n // \u662F\u5426\u53EF\u4EA4\u4E92\n const isInteractive = isWithHandle && !disabled && onValueChange\n\n // \u62D6\u62FD\u65F6\u4F7F\u7528\u7F13\u5B58\u7684 rect \u907F\u514D\u91CD\u590D\u8BA1\u7B97\n const handleDragMove = React.useCallback(\n (clientX: number) => {\n if (!dragRectRef.current || !onValueChange) return\n\n const rect = dragRectRef.current\n const offsetX = clientX - rect.left\n const percentage = Math.max(0, Math.min(1, offsetX / rect.width))\n const rawValue = min + percentage * (max - min)\n const clampedValue = Math.max(min, Math.min(max, rawValue))\n\n onValueChange(clampedValue)\n },\n [min, max, onValueChange]\n )\n\n // \u62D6\u62FD\u7ED3\u675F\u65F6\u5E94\u7528\u6B65\u957F\n const handleDragEnd = React.useCallback(\n (clientX: number) => {\n if (!dragRectRef.current || !onValueChange) return\n\n const rect = dragRectRef.current\n const offsetX = clientX - rect.left\n const percentage = Math.max(0, Math.min(1, offsetX / rect.width))\n const rawValue = min + percentage * (max - min)\n const steppedValue = Math.round(rawValue / step) * step\n const clampedValue = Math.max(min, Math.min(max, steppedValue))\n\n onValueChange(clampedValue)\n dragRectRef.current = null // \u6E05\u7406\u7F13\u5B58\n },\n [min, max, step, onValueChange]\n )\n\n // \u9F20\u6807\u6309\u4E0B\u4E8B\u4EF6\n const handleMouseDown = React.useCallback(\n (event: React.MouseEvent) => {\n if (!isInteractive || !progressRef.current) return\n\n event.preventDefault()\n // \u53EA\u5728\u5F00\u59CB\u62D6\u62FD\u65F6\u83B7\u53D6\u4E00\u6B21 rect\uFF0C\u907F\u514D\u62D6\u62FD\u8FC7\u7A0B\u4E2D\u91CD\u590D\u8BA1\u7B97\n dragRectRef.current = progressRef.current.getBoundingClientRect()\n setIsDragging(true)\n handleDragMove(event.clientX)\n },\n [isInteractive, handleDragMove]\n )\n\n // \u5168\u5C40\u9F20\u6807\u79FB\u52A8\u4E8B\u4EF6\n React.useEffect(() => {\n if (!isDragging || !isInteractive) return\n\n const handleMouseMove = (event: MouseEvent) => {\n handleDragMove(event.clientX)\n }\n\n const handleMouseUp = (event: MouseEvent) => {\n handleDragEnd(event.clientX)\n setIsDragging(false)\n }\n\n document.addEventListener('mousemove', handleMouseMove)\n document.addEventListener('mouseup', handleMouseUp)\n\n return () => {\n document.removeEventListener('mousemove', handleMouseMove)\n document.removeEventListener('mouseup', handleMouseUp)\n }\n }, [isDragging, isInteractive, handleDragMove, handleDragEnd])\n\n // \u5408\u5E76refs\n const combinedRef = React.useCallback(\n (node: HTMLDivElement) => {\n if (progressRef) {\n // @ts-ignore\n progressRef.current = node\n }\n if (ref) {\n if (typeof ref === 'function') {\n ref(node)\n } else {\n ref.current = node\n }\n }\n },\n [ref]\n )\n\n return (\n <div\n ref={combinedRef}\n role={isInteractive ? 'slider' : 'progressbar'}\n aria-valuenow={normalizedValue}\n aria-valuemin={min}\n aria-valuemax={max}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n aria-describedby={ariaDescribedBy}\n aria-disabled={disabled}\n className={cn(\n progressVariants({ variant, size }),\n disabled && 'cursor-not-allowed opacity-50',\n isInteractive && !disabled && 'cursor-pointer',\n className,\n classNames?.root\n )}\n onMouseDown={isInteractive ? handleMouseDown : undefined}\n {...props}\n >\n <div\n className={cn(progressBarVariants({ variant }), classNames?.progressBar)}\n style={{\n width: `${Math.max(0, Math.min(100, percentage))}%`,\n }}\n data-testid=\"progress-bar\"\n />\n {isWithHandle && percentage > 0 && (\n <div\n className={cn(\n handleVariants({ size }),\n disabled && 'opacity-50',\n isDragging && 'scale-110 shadow-lg',\n isInteractive && !disabled && 'cursor-grab hover:scale-105 active:cursor-grabbing',\n classNames?.handle\n )}\n data-testid=\"progress-handle\"\n style={{\n position: 'absolute',\n left: `${Math.max(0, Math.min(100, percentage))}%`,\n top: '50%',\n transform: 'translate(-50%, -50%)',\n transition: isDragging ? 'none' : 'all 0.2s ease-in-out',\n }}\n />\n )}\n </div>\n )\n }\n)\n\nProgress.displayName = 'Progress'\n\nexport default Progress\n"],
5
- "mappings": "aAkNM,OAoBE,OAAAA,EApBF,QAAAC,MAAA,oBAhNN,UAAYC,MAAW,QACvB,OAA4B,OAAAC,MAAW,2BACvC,OAAS,MAAAC,MAAU,sBAKnB,MAAMC,EAAmBF,EAAI,+BAAgC,CAC3D,SAAU,CACR,QAAS,CACP,QAAS,2CACT,WAAY,0BACd,EACA,KAAM,CACJ,KAAM,MACN,GAAI,KACN,CACF,EACA,gBAAiB,CACf,QAAS,UACT,KAAM,MACR,CACF,CAAC,EAEKG,EAAsBH,EAAI,sBAAuB,CACrD,SAAU,CACR,QAAS,CACP,QAAS,mBACT,WAAY,kBACd,CACF,EACA,gBAAiB,CACf,QAAS,SACX,CACF,CAAC,EAEKI,EAAiBJ,EAAI,yEAA0E,CACnG,SAAU,CACR,KAAM,CACJ,KAAM,SACN,GAAI,sBACN,CACF,EACA,gBAAiB,CACf,KAAM,MACR,CACF,CAAC,EAwCKK,EAAWN,EAAM,WACrB,CACE,CACE,MAAAO,EACA,IAAAC,EAAM,IACN,IAAAC,EAAM,EACN,QAAAC,EACA,KAAAC,EACA,UAAAC,EACA,WAAAC,EACA,cAAAC,EACA,SAAAC,EAAW,GACX,KAAAC,EAAO,EACP,aAAcC,EACd,kBAAmBC,EACnB,mBAAoBC,EACpB,GAAGC,CACL,EACAC,IACG,CACH,MAAMC,EAActB,EAAM,OAAuB,IAAI,EAC/C,CAACuB,EAAYC,CAAa,EAAIxB,EAAM,SAAS,EAAK,EAClDyB,EAAczB,EAAM,OAAuB,IAAI,EAG/C0B,EAAkB,KAAK,IAAIjB,EAAK,KAAK,IAAID,EAAKD,CAAK,CAAC,EAEpDoB,GAAeD,EAAkBjB,IAAQD,EAAMC,GAAQ,IAEvDmB,EAAelB,IAAY,aAE3BmB,EAAgBD,GAAgB,CAACb,GAAYD,EAG7CgB,EAAiB9B,EAAM,YAC1B+B,GAAoB,CACnB,GAAI,CAACN,EAAY,SAAW,CAACX,EAAe,OAE5C,MAAMkB,EAAOP,EAAY,QACnBQ,EAAUF,EAAUC,EAAK,KACzBL,EAAa,KAAK,IAAI,EAAG,KAAK,IAAI,EAAGM,EAAUD,EAAK,KAAK,CAAC,EAC1DE,EAAWzB,EAAMkB,GAAcnB,EAAMC,GACrC0B,EAAe,KAAK,IAAI1B,EAAK,KAAK,IAAID,EAAK0B,CAAQ,CAAC,EAE1DpB,EAAcqB,CAAY,CAC5B,EACA,CAAC1B,EAAKD,EAAKM,CAAa,CAC1B,EAGMsB,EAAgBpC,EAAM,YACzB+B,GAAoB,CACnB,GAAI,CAACN,EAAY,SAAW,CAACX,EAAe,OAE5C,MAAMkB,EAAOP,EAAY,QACnBQ,EAAUF,EAAUC,EAAK,KACzBL,EAAa,KAAK,IAAI,EAAG,KAAK,IAAI,EAAGM,EAAUD,EAAK,KAAK,CAAC,EAC1DE,EAAWzB,EAAMkB,GAAcnB,EAAMC,GACrC4B,EAAe,KAAK,MAAMH,EAAWlB,CAAI,EAAIA,EAC7CmB,EAAe,KAAK,IAAI1B,EAAK,KAAK,IAAID,EAAK6B,CAAY,CAAC,EAE9DvB,EAAcqB,CAAY,EAC1BV,EAAY,QAAU,IACxB,EACA,CAAChB,EAAKD,EAAKQ,EAAMF,CAAa,CAChC,EAGMwB,EAAkBtC,EAAM,YAC3BuC,GAA4B,CACvB,CAACV,GAAiB,CAACP,EAAY,UAEnCiB,EAAM,eAAe,EAErBd,EAAY,QAAUH,EAAY,QAAQ,sBAAsB,EAChEE,EAAc,EAAI,EAClBM,EAAeS,EAAM,OAAO,EAC9B,EACA,CAACV,EAAeC,CAAc,CAChC,EAGA9B,EAAM,UAAU,IAAM,CACpB,GAAI,CAACuB,GAAc,CAACM,EAAe,OAEnC,MAAMW,EAAmBD,GAAsB,CAC7CT,EAAeS,EAAM,OAAO,CAC9B,EAEME,EAAiBF,GAAsB,CAC3CH,EAAcG,EAAM,OAAO,EAC3Bf,EAAc,EAAK,CACrB,EAEA,gBAAS,iBAAiB,YAAagB,CAAe,EACtD,SAAS,iBAAiB,UAAWC,CAAa,EAE3C,IAAM,CACX,SAAS,oBAAoB,YAAaD,CAAe,EACzD,SAAS,oBAAoB,UAAWC,CAAa,CACvD,CACF,EAAG,CAAClB,EAAYM,EAAeC,EAAgBM,CAAa,CAAC,EAG7D,MAAMM,EAAc1C,EAAM,YACvB2C,GAAyB,CACpBrB,IAEFA,EAAY,QAAUqB,GAEpBtB,IACE,OAAOA,GAAQ,WACjBA,EAAIsB,CAAI,EAERtB,EAAI,QAAUsB,EAGpB,EACA,CAACtB,CAAG,CACN,EAEA,OACEtB,EAAC,OACC,IAAK2C,EACL,KAAMb,EAAgB,SAAW,cACjC,gBAAeH,EACf,gBAAejB,EACf,gBAAeD,EACf,aAAYS,EACZ,kBAAiBC,EACjB,mBAAkBC,EAClB,gBAAeJ,EACf,UAAWb,EACTC,EAAiB,CAAE,QAAAO,EAAS,KAAAC,CAAK,CAAC,EAClCI,GAAY,gCACZc,GAAiB,CAACd,GAAY,iBAC9BH,EACAC,GAAY,IACd,EACA,YAAagB,EAAgBS,EAAkB,OAC9C,GAAGlB,EAEJ,UAAAtB,EAAC,OACC,UAAWI,EAAGE,EAAoB,CAAE,QAAAM,CAAQ,CAAC,EAAGG,GAAY,WAAW,EACvE,MAAO,CACL,MAAO,GAAG,KAAK,IAAI,EAAG,KAAK,IAAI,IAAKc,CAAU,CAAC,CAAC,GAClD,EACA,cAAY,eACd,EACCC,GAAgBD,EAAa,GAC5B7B,EAAC,OACC,UAAWI,EACTG,EAAe,CAAE,KAAAM,CAAK,CAAC,EACvBI,GAAY,aACZQ,GAAc,sBACdM,GAAiB,CAACd,GAAY,qDAC9BF,GAAY,MACd,EACA,cAAY,kBACZ,MAAO,CACL,SAAU,WACV,KAAM,GAAG,KAAK,IAAI,EAAG,KAAK,IAAI,IAAKc,CAAU,CAAC,CAAC,IAC/C,IAAK,MACL,UAAW,wBACX,WAAYJ,EAAa,OAAS,sBACpC,EACF,GAEJ,CAEJ,CACF,EAEAjB,EAAS,YAAc,WAEvB,IAAOsC,EAAQtC",
6
- "names": ["jsx", "jsxs", "React", "cva", "cn", "progressVariants", "progressBarVariants", "handleVariants", "Progress", "value", "max", "min", "variant", "size", "className", "classNames", "onValueChange", "disabled", "step", "ariaLabel", "ariaLabelledBy", "ariaDescribedBy", "props", "ref", "progressRef", "isDragging", "setIsDragging", "dragRectRef", "normalizedValue", "percentage", "isWithHandle", "isInteractive", "handleDragMove", "clientX", "rect", "offsetX", "rawValue", "clampedValue", "handleDragEnd", "steppedValue", "handleMouseDown", "event", "handleMouseMove", "handleMouseUp", "combinedRef", "node", "progress_default"]
7
- }
@@ -1,11 +0,0 @@
1
- export declare const PRICE_SYMBOL: any;
2
- export declare const languageTerritory: (locale: string) => string;
3
- export declare function formatPrice({ amount, currencyCode, locale, maximumFractionDigits, minimumFractionDigits, removeTrailingZeros, currencyDisplay, }: {
4
- amount: number;
5
- currencyCode: string;
6
- locale: string;
7
- maximumFractionDigits?: number;
8
- minimumFractionDigits?: number;
9
- removeTrailingZeros?: boolean;
10
- currencyDisplay?: Intl.NumberFormatOptions['currencyDisplay'];
11
- }): string | null;
@@ -1,2 +0,0 @@
1
- const d={us:"$",uk:"\xA3",ca:"$",eu:"\u20AC",fr:"\u20AC",de:"\u20AC",nl:"\u20AC",vn:"\u20AB",cl:"$",sg:"$",ae:"AED"},o=n=>({us:"en-US",uk:"en-GB",ca:"en-CA",eu:"en",fr:"fr-FR",au:"en-AU",my:"en-my","eu-es":"de-DE","eu-fr":"de-DE","eu-it":"de-DE","eu-de":"de-DE","eu-en":"en-US","cz-en":"de-DE","ca-fr":"fr-FR",nl:"de-DE",de:"de-DE",vn:"vi-vn",sg:"en-sg","ae-en":"ae-en",plus:"en-us",cl:"es-cl",dk:"en-dk",fi:"en-fi",no:"en-no",is:"en-is",se:"en-se","eu-pl":"pl-PL",es:"es-es",pl:"pl-PL",nz:"en-NZ","sg-en":"en-SG","sa-en":"en-SA","vn-vi":"vi-VN",ie:"en-IE",tw:"zh-TW"})[n]||"";function f({amount:n,currencyCode:c,locale:r,maximumFractionDigits:u,minimumFractionDigits:t,removeTrailingZeros:a=!1,currencyDisplay:i="symbol"}){const l=r==="nl"?"EUR":c||"USD",s=o(r);if(!s)return null;let e=new Intl.NumberFormat(s,{style:"currency",currency:l,currencyDisplay:i,minimumFractionDigits:u===0?0:t,maximumFractionDigits:u})?.format?.(n);return["eu-de","eu-en","de","eu"].includes(r)&&(e=e?.toString()?.replace?.(/[\s]/g,"")),a&&(e=e?.replace?.(/(\.\d*?[1-9])0+\b/,"$1")?.replace?.(/\.0+\b/,"")?.replace?.(/(,\d*?[1-9])0+\b/,"$1")?.replace?.(/,0+\b/,"")),e}export{d as PRICE_SYMBOL,f as formatPrice,o as languageTerritory};
2
- //# sourceMappingURL=priceFormatting.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/helpers/priceFormatting.ts"],
4
- "sourcesContent": ["export const PRICE_SYMBOL = {\n us: '$',\n uk: '\u00A3',\n ca: '$',\n eu: '\u20AC',\n fr: '\u20AC',\n de: '\u20AC',\n nl: '\u20AC',\n vn: '\u20AB',\n cl: '$',\n sg: '$',\n ae: 'AED',\n} as any\n\nexport const languageTerritory = (locale: string) =>\n // https://unicode-org.github.io/cldr-staging/charts/37/supplemental/language_territory_information.html\n ({\n us: 'en-US',\n uk: 'en-GB',\n ca: 'en-CA',\n eu: 'en',\n fr: 'fr-FR',\n au: 'en-AU',\n my: 'en-my',\n 'eu-es': 'de-DE',\n 'eu-fr': 'de-DE',\n 'eu-it': 'de-DE',\n 'eu-de': 'de-DE',\n 'eu-en': 'en-US',\n 'cz-en': 'de-DE',\n 'ca-fr': 'fr-FR',\n nl: 'de-DE',\n de: 'de-DE',\n vn: 'vi-vn',\n sg: 'en-sg',\n 'ae-en': 'ae-en',\n plus: 'en-us',\n cl: 'es-cl',\n dk: 'en-dk',\n fi: 'en-fi',\n no: 'en-no',\n is: 'en-is',\n se: 'en-se',\n 'eu-pl': 'pl-PL',\n es: 'es-es',\n pl: 'pl-PL',\n nz: 'en-NZ',\n 'sg-en': 'en-SG',\n 'sa-en': 'en-SA',\n 'vn-vi': 'vi-VN',\n ie: 'en-IE',\n tw: 'zh-TW',\n })[locale] || ''\n\nexport function formatPrice({\n amount,\n currencyCode,\n locale,\n maximumFractionDigits,\n minimumFractionDigits,\n removeTrailingZeros = false,\n currencyDisplay = 'symbol',\n}: {\n amount: number\n currencyCode: string\n locale: string\n maximumFractionDigits?: number\n minimumFractionDigits?: number\n removeTrailingZeros?: boolean\n currencyDisplay?: Intl.NumberFormatOptions['currencyDisplay']\n}) {\n const code = locale === 'nl' ? 'EUR' : currencyCode || 'USD'\n const localeLanguage = languageTerritory(locale)\n if (!localeLanguage) {\n return null\n }\n const formatCurrency = new Intl.NumberFormat(localeLanguage, {\n style: 'currency',\n currency: code,\n currencyDisplay: currencyDisplay,\n minimumFractionDigits: maximumFractionDigits === 0 ? 0 : minimumFractionDigits,\n maximumFractionDigits,\n })\n\n let formattedValue = formatCurrency?.format?.(amount)\n\n if (['eu-de', 'eu-en', 'de', 'eu'].includes(locale)) {\n formattedValue = formattedValue?.toString()?.replace?.(/[\\s]/g, '')\n }\n\n if (removeTrailingZeros) {\n formattedValue = formattedValue\n ?.replace?.(/(\\.\\d*?[1-9])0+\\b/, '$1')\n ?.replace?.(/\\.0+\\b/, '')\n ?.replace?.(/(,\\d*?[1-9])0+\\b/, '$1')\n ?.replace?.(/,0+\\b/, '')\n }\n\n return formattedValue\n}\n"],
5
- "mappings": "AAAO,MAAMA,EAAe,CAC1B,GAAI,IACJ,GAAI,OACJ,GAAI,IACJ,GAAI,SACJ,GAAI,SACJ,GAAI,SACJ,GAAI,SACJ,GAAI,SACJ,GAAI,IACJ,GAAI,IACJ,GAAI,KACN,EAEaC,EAAqBC,IAE/B,CACC,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,KACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,QAAS,QACT,QAAS,QACT,QAAS,QACT,QAAS,QACT,QAAS,QACT,QAAS,QACT,QAAS,QACT,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,QAAS,QACT,KAAM,QACN,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,QAAS,QACT,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,QAAS,QACT,QAAS,QACT,QAAS,QACT,GAAI,QACJ,GAAI,OACN,GAAGA,CAAM,GAAK,GAET,SAASC,EAAY,CAC1B,OAAAC,EACA,aAAAC,EACA,OAAAH,EACA,sBAAAI,EACA,sBAAAC,EACA,oBAAAC,EAAsB,GACtB,gBAAAC,EAAkB,QACpB,EAQG,CACD,MAAMC,EAAOR,IAAW,KAAO,MAAQG,GAAgB,MACjDM,EAAiBV,EAAkBC,CAAM,EAC/C,GAAI,CAACS,EACH,OAAO,KAUT,IAAIC,EARmB,IAAI,KAAK,aAAaD,EAAgB,CAC3D,MAAO,WACP,SAAUD,EACV,gBAAiBD,EACjB,sBAAuBH,IAA0B,EAAI,EAAIC,EACzD,sBAAAD,CACF,CAAC,GAEoC,SAASF,CAAM,EAEpD,MAAI,CAAC,QAAS,QAAS,KAAM,IAAI,EAAE,SAASF,CAAM,IAChDU,EAAiBA,GAAgB,SAAS,GAAG,UAAU,QAAS,EAAE,GAGhEJ,IACFI,EAAiBA,GACb,UAAU,oBAAqB,IAAI,GACnC,UAAU,SAAU,EAAE,GACtB,UAAU,mBAAoB,IAAI,GAClC,UAAU,QAAS,EAAE,GAGpBA,CACT",
6
- "names": ["PRICE_SYMBOL", "languageTerritory", "locale", "formatPrice", "amount", "currencyCode", "maximumFractionDigits", "minimumFractionDigits", "removeTrailingZeros", "currencyDisplay", "code", "localeLanguage", "formattedValue"]
7
- }
@@ -1,2 +0,0 @@
1
- export { default as useCoupon } from './useCoupon.js';
2
- export { default as useMemberPrice } from './useMemberPrice.js';
@@ -1,2 +0,0 @@
1
- import{default as r}from"./useCoupon.js";import{default as a}from"./useMemberPrice.js";export{r as useCoupon,a as useMemberPrice};
2
- //# sourceMappingURL=index.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/hooks/index.ts"],
4
- "sourcesContent": ["export { default as useCoupon } from './useCoupon.js'\nexport { default as useMemberPrice } from './useMemberPrice.js'\n"],
5
- "mappings": "AAAA,OAAoB,WAAXA,MAA4B,iBACrC,OAAoB,WAAXA,MAAiC",
6
- "names": ["default"]
7
- }
@@ -1,111 +0,0 @@
1
- /**
2
- * 通用优惠券 Hooks
3
- *
4
- * 提供优惠券相关的功能,包括从产品变体中获取有效优惠券等操作。
5
- */
6
- export declare enum CouponChannel {
7
- LIGHTNING_DEAL = "LIGHTNING_DEAL",
8
- DEAL = "LIGHTNING_DEAL",
9
- COUPON = "COUPON",
10
- PED = "PED",
11
- WS24 = "WS24",
12
- WSTD = "WSTD",
13
- WSCH = "WSCH"
14
- }
15
- /**
16
- * 折扣类型枚举
17
- * 原始位置: @utils/const
18
- */
19
- export declare enum DiscountType {
20
- fixedAmount = "fixed_amount",
21
- percentage = "percentage"
22
- }
23
- /**
24
- * 变体优惠券类型定义
25
- * 原始位置: @projectTypes/product
26
- */
27
- export interface VariantCoupon {
28
- title: string;
29
- starts_at: string;
30
- ends_at: string | null;
31
- variant_shopify_id: number;
32
- value_type: DiscountType;
33
- value: string;
34
- currency: string;
35
- fixed_value: string;
36
- value_style: string;
37
- variant_price4wscode: number;
38
- discount_type: string;
39
- amazon_deal: boolean;
40
- cdi_id: number;
41
- cdi_updated_at: string;
42
- }
43
- /**
44
- * 产品选项值类型
45
- */
46
- export interface ProductOptionValues {
47
- label: string;
48
- hexColors?: string[];
49
- }
50
- /**
51
- * 产品选项类型
52
- */
53
- export interface ProductOption {
54
- __typename?: 'MultipleChoiceOption';
55
- id: string;
56
- name: string;
57
- values: ProductOptionValues[];
58
- }
59
- /**
60
- * 产品价格类型
61
- */
62
- export interface ProductPrice {
63
- amount: number;
64
- currencyCode: string;
65
- }
66
- /**
67
- * 简化的产品变体类型定义
68
- * 原始位置: @shopify (lib/shopify/types/product.ts)
69
- */
70
- export interface ProductVariant {
71
- id: string | number;
72
- options?: ProductOption[];
73
- sku?: string;
74
- metafields?: {
75
- coupons?: VariantCoupon[];
76
- [key: string]: any;
77
- };
78
- price?: ProductPrice;
79
- coupons?: VariantCoupon[];
80
- weight?: number;
81
- [key: string]: any;
82
- }
83
- export interface UseCouponParams {
84
- variant?: ProductVariant;
85
- channel?: string;
86
- }
87
- export interface UseCouponConfig {
88
- couponExtractor?: (variant: ProductVariant) => VariantCoupon[];
89
- }
90
- export type UseCouponReturn = VariantCoupon | undefined;
91
- /**
92
- * 从产品变体中获取有效优惠券(核心逻辑函数)
93
- * @param variant - 产品变体对象
94
- * @param channel - 可选的优惠券渠道过滤器
95
- * @param couponExtractor - 优惠券提取函数
96
- * @returns 符合条件的优惠券或 undefined
97
- */
98
- declare const getCoupon: (variant: ProductVariant | undefined, channel?: string, couponExtractor?: (variant: ProductVariant) => VariantCoupon[]) => VariantCoupon | undefined;
99
- /**
100
- * 用于获取产品变体当前有效优惠券的 Hook
101
- *
102
- * @param params - 业务数据参数
103
- * @param params.variant - 产品变体对象
104
- * @param params.channel - 可选的优惠券渠道过滤器
105
- * @param config - 配置选项
106
- * @param config.couponExtractor - 自定义的优惠券提取函数,默认从 variant.metafields.coupons 获取
107
- * @returns 当前有效的优惠券信息
108
- */
109
- declare const useCoupon: ({ variant, channel }?: UseCouponParams, { couponExtractor }?: UseCouponConfig) => UseCouponReturn;
110
- export default useCoupon;
111
- export { getCoupon };
@@ -1,2 +0,0 @@
1
- import{useMemo as u}from"react";import{atobID as p}from"../helpers/utils.js";var d=(r=>(r.LIGHTNING_DEAL="LIGHTNING_DEAL",r.DEAL="LIGHTNING_DEAL",r.COUPON="COUPON",r.PED="PED",r.WS24="WS24",r.WSTD="WSTD",r.WSCH="WSCH",r))(d||{}),c=(n=>(n.fixedAmount="fixed_amount",n.percentage="percentage",n))(c||{});const g=(t,e)=>(!t.ends_at||new Date(t.ends_at).getTime()>e)&&new Date(t.starts_at).getTime()<=e,m=(t,e)=>{const n=t.title.toLocaleLowerCase();return e?n.includes(e.toLowerCase()):!n.includes("WSCH".toLowerCase())},f=(t,e)=>String(t.variant_shopify_id)===e,a=(t,e,n)=>{if(!t)return;const o=p(t?.id);if(!o)return;const s=new Date().getTime();return(n?.(t)?.filter(Boolean)||[]).find(i=>g(i,s)&&f(i,o)&&m(i,e))},l=({variant:t,channel:e}={},{couponExtractor:n=o=>o?.coupons||[]}={})=>u(()=>a(t,e,n),[t,e,n]);var P=l;export{d as CouponChannel,c as DiscountType,P as default,a as getCoupon};
2
- //# sourceMappingURL=useCoupon.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/hooks/useCoupon.ts"],
4
- "sourcesContent": ["import { useMemo } from 'react'\nimport { atobID } from '../helpers/utils.js'\n\n/**\n * \u901A\u7528\u4F18\u60E0\u5238 Hooks\n *\n * \u63D0\u4F9B\u4F18\u60E0\u5238\u76F8\u5173\u7684\u529F\u80FD\uFF0C\u5305\u62EC\u4ECE\u4EA7\u54C1\u53D8\u4F53\u4E2D\u83B7\u53D6\u6709\u6548\u4F18\u60E0\u5238\u7B49\u64CD\u4F5C\u3002\n */\n\nexport enum CouponChannel {\n LIGHTNING_DEAL = 'LIGHTNING_DEAL',\n DEAL = 'LIGHTNING_DEAL',\n COUPON = 'COUPON',\n PED = 'PED',\n WS24 = 'WS24',\n WSTD = 'WSTD',\n WSCH = 'WSCH',\n}\n\n/**\n * \u6298\u6263\u7C7B\u578B\u679A\u4E3E\n * \u539F\u59CB\u4F4D\u7F6E: @utils/const\n */\nexport enum DiscountType {\n fixedAmount = 'fixed_amount',\n percentage = 'percentage',\n}\n\n// ==================== \u7C7B\u578B\u5B9A\u4E49 ====================\n\n/**\n * \u53D8\u4F53\u4F18\u60E0\u5238\u7C7B\u578B\u5B9A\u4E49\n * \u539F\u59CB\u4F4D\u7F6E: @projectTypes/product\n */\nexport interface VariantCoupon {\n title: string\n starts_at: string // ISO 8601 \u65E5\u671F\u5B57\u7B26\u4E32\n ends_at: string | null // ISO 8601 \u65E5\u671F\u5B57\u7B26\u4E32\u6216 null\n variant_shopify_id: number\n value_type: DiscountType\n value: string // \u8D1F\u6570\u7684\u767E\u5206\u6BD4\u503C\n currency: string\n fixed_value: string // \u56FA\u5B9A\u503C\n value_style: string // \u5E26\u6709\u8D27\u5E01\u7B26\u53F7\u7684\u503C\n variant_price4wscode: number\n discount_type: string // \u5047\u8BBE discount_type \u662F\u4E00\u4E2A\u5B57\u7B26\u4E32\n amazon_deal: boolean\n cdi_id: number\n cdi_updated_at: string // ISO 8601 \u65E5\u671F\u5B57\u7B26\u4E32\n}\n\n/**\n * \u4EA7\u54C1\u9009\u9879\u503C\u7C7B\u578B\n */\nexport interface ProductOptionValues {\n label: string\n hexColors?: string[]\n}\n\n/**\n * \u4EA7\u54C1\u9009\u9879\u7C7B\u578B\n */\nexport interface ProductOption {\n __typename?: 'MultipleChoiceOption'\n id: string\n name: string\n values: ProductOptionValues[]\n}\n\n/**\n * \u4EA7\u54C1\u4EF7\u683C\u7C7B\u578B\n */\nexport interface ProductPrice {\n amount: number\n currencyCode: string\n}\n\n/**\n * \u7B80\u5316\u7684\u4EA7\u54C1\u53D8\u4F53\u7C7B\u578B\u5B9A\u4E49\n * \u539F\u59CB\u4F4D\u7F6E: @shopify (lib/shopify/types/product.ts)\n */\nexport interface ProductVariant {\n id: string | number\n options?: ProductOption[]\n sku?: string\n metafields?: {\n coupons?: VariantCoupon[]\n [key: string]: any\n }\n price?: ProductPrice\n coupons?: VariantCoupon[]\n weight?: number\n // \u5176\u4ED6 Shopify ProductVariant \u5C5E\u6027\u53EF\u4EE5\u6839\u636E\u9700\u8981\u6DFB\u52A0\n [key: string]: any\n}\n\n// ==================== Hook \u53C2\u6570\u7C7B\u578B ====================\n\nexport interface UseCouponParams {\n variant?: ProductVariant\n channel?: string\n}\n\nexport interface UseCouponConfig {\n couponExtractor?: (variant: ProductVariant) => VariantCoupon[]\n}\n\nexport type UseCouponReturn = VariantCoupon | undefined\n\n// ==================== \u5185\u90E8\u5DE5\u5177\u51FD\u6570 ====================\n\n/**\n * \u68C0\u67E5\u4F18\u60E0\u5238\u65F6\u95F4\u662F\u5426\u6709\u6548\n */\nconst isCouponTimeValid = (coupon: VariantCoupon, currentTime: number): boolean =>\n (!coupon.ends_at || new Date(coupon.ends_at).getTime() > currentTime) &&\n new Date(coupon.starts_at).getTime() <= currentTime\n\n/**\n * \u68C0\u67E5\u4F18\u60E0\u5238\u6E20\u9053\u662F\u5426\u5339\u914D\n */\nconst isCouponChannelValid = (coupon: VariantCoupon, channel?: string): boolean => {\n const couponTitleLower = coupon.title.toLocaleLowerCase()\n return channel\n ? couponTitleLower.includes(channel.toLowerCase())\n : !couponTitleLower.includes(CouponChannel.WSCH.toLowerCase())\n}\n\n/**\n * \u68C0\u67E5\u4F18\u60E0\u5238\u662F\u5426\u9002\u7528\u4E8E\u6307\u5B9A\u53D8\u4F53\n */\nconst isCouponForVariant = (coupon: VariantCoupon, variantId: string): boolean =>\n String(coupon.variant_shopify_id) === variantId\n\n/**\n * \u4ECE\u4EA7\u54C1\u53D8\u4F53\u4E2D\u83B7\u53D6\u6709\u6548\u4F18\u60E0\u5238\uFF08\u6838\u5FC3\u903B\u8F91\u51FD\u6570\uFF09\n * @param variant - \u4EA7\u54C1\u53D8\u4F53\u5BF9\u8C61\n * @param channel - \u53EF\u9009\u7684\u4F18\u60E0\u5238\u6E20\u9053\u8FC7\u6EE4\u5668\n * @param couponExtractor - \u4F18\u60E0\u5238\u63D0\u53D6\u51FD\u6570\n * @returns \u7B26\u5408\u6761\u4EF6\u7684\u4F18\u60E0\u5238\u6216 undefined\n */\nconst getCoupon = (\n variant: ProductVariant | undefined,\n channel?: string,\n couponExtractor?: (variant: ProductVariant) => VariantCoupon[]\n): VariantCoupon | undefined => {\n if (!variant) return undefined\n\n const targetVariantId = atobID(variant?.id as string)\n if (!targetVariantId) return undefined\n const currentTimestamp = new Date().getTime()\n const coupons = couponExtractor?.(variant)?.filter(Boolean) || []\n\n return coupons.find(\n (coupon: VariantCoupon) =>\n isCouponTimeValid(coupon, currentTimestamp) &&\n isCouponForVariant(coupon, targetVariantId) &&\n isCouponChannelValid(coupon, channel)\n )\n}\n\n// ==================== Hook \u5B9E\u73B0 ====================\n\n/**\n * \u7528\u4E8E\u83B7\u53D6\u4EA7\u54C1\u53D8\u4F53\u5F53\u524D\u6709\u6548\u4F18\u60E0\u5238\u7684 Hook\n *\n * @param params - \u4E1A\u52A1\u6570\u636E\u53C2\u6570\n * @param params.variant - \u4EA7\u54C1\u53D8\u4F53\u5BF9\u8C61\n * @param params.channel - \u53EF\u9009\u7684\u4F18\u60E0\u5238\u6E20\u9053\u8FC7\u6EE4\u5668\n * @param config - \u914D\u7F6E\u9009\u9879\n * @param config.couponExtractor - \u81EA\u5B9A\u4E49\u7684\u4F18\u60E0\u5238\u63D0\u53D6\u51FD\u6570\uFF0C\u9ED8\u8BA4\u4ECE variant.metafields.coupons \u83B7\u53D6\n * @returns \u5F53\u524D\u6709\u6548\u7684\u4F18\u60E0\u5238\u4FE1\u606F\n */\nconst useCoupon = (\n { variant, channel }: UseCouponParams = {},\n { couponExtractor = (variant: ProductVariant) => variant?.coupons || [] }: UseCouponConfig = {}\n): UseCouponReturn => {\n const coupon = useMemo(() => getCoupon(variant, channel, couponExtractor), [variant, channel, couponExtractor])\n return coupon\n}\n\nexport default useCoupon\n\nexport { getCoupon }\n"],
5
- "mappings": "AAAA,OAAS,WAAAA,MAAe,QACxB,OAAS,UAAAC,MAAc,sBAQhB,IAAKC,OACVA,EAAA,eAAiB,iBACjBA,EAAA,KAAO,iBACPA,EAAA,OAAS,SACTA,EAAA,IAAM,MACNA,EAAA,KAAO,OACPA,EAAA,KAAO,OACPA,EAAA,KAAO,OAPGA,OAAA,IAcAC,OACVA,EAAA,YAAc,eACdA,EAAA,WAAa,aAFHA,OAAA,IA2FZ,MAAMC,EAAoB,CAACC,EAAuBC,KAC/C,CAACD,EAAO,SAAW,IAAI,KAAKA,EAAO,OAAO,EAAE,QAAQ,EAAIC,IACzD,IAAI,KAAKD,EAAO,SAAS,EAAE,QAAQ,GAAKC,EAKpCC,EAAuB,CAACF,EAAuBG,IAA8B,CACjF,MAAMC,EAAmBJ,EAAO,MAAM,kBAAkB,EACxD,OAAOG,EACHC,EAAiB,SAASD,EAAQ,YAAY,CAAC,EAC/C,CAACC,EAAiB,SAAS,OAAmB,YAAY,CAAC,CACjE,EAKMC,EAAqB,CAACL,EAAuBM,IACjD,OAAON,EAAO,kBAAkB,IAAMM,EASlCC,EAAY,CAChBC,EACAL,EACAM,IAC8B,CAC9B,GAAI,CAACD,EAAS,OAEd,MAAME,EAAkBd,EAAOY,GAAS,EAAY,EACpD,GAAI,CAACE,EAAiB,OACtB,MAAMC,EAAmB,IAAI,KAAK,EAAE,QAAQ,EAG5C,OAFgBF,IAAkBD,CAAO,GAAG,OAAO,OAAO,GAAK,CAAC,GAEjD,KACZR,GACCD,EAAkBC,EAAQW,CAAgB,GAC1CN,EAAmBL,EAAQU,CAAe,GAC1CR,EAAqBF,EAAQG,CAAO,CACxC,CACF,EAcMS,EAAY,CAChB,CAAE,QAAAJ,EAAS,QAAAL,CAAQ,EAAqB,CAAC,EACzC,CAAE,gBAAAM,EAAmBD,GAA4BA,GAAS,SAAW,CAAC,CAAE,EAAqB,CAAC,IAE/Eb,EAAQ,IAAMY,EAAUC,EAASL,EAASM,CAAe,EAAG,CAACD,EAASL,EAASM,CAAe,CAAC,EAIhH,IAAOI,EAAQD",
6
- "names": ["useMemo", "atobID", "CouponChannel", "DiscountType", "isCouponTimeValid", "coupon", "currentTime", "isCouponChannelValid", "channel", "couponTitleLower", "isCouponForVariant", "variantId", "getCoupon", "variant", "couponExtractor", "targetVariantId", "currentTimestamp", "useCoupon", "useCoupon_default"]
7
- }
@@ -1,155 +0,0 @@
1
- /**
2
- * 价格结尾配置类型
3
- */
4
- export interface PriceEndingConfig {
5
- apply_price_ending: boolean;
6
- one_decimal_place: number;
7
- two_decimal_place: number;
8
- round_selected: number;
9
- }
10
- /**
11
- * 折扣配置类型
12
- * 原始位置: @projectTypes/metafields/discountMetafields
13
- */
14
- export interface DiscountConfig {
15
- discount_type: number;
16
- discount_value: number;
17
- price_ending_conf: PriceEndingConfig;
18
- }
19
- /**
20
- * 产品选项值类型
21
- */
22
- export interface ProductOptionValues {
23
- label: string;
24
- hexColors?: string[];
25
- }
26
- /**
27
- * 产品选项类型
28
- */
29
- export interface ProductOption {
30
- __typename?: 'MultipleChoiceOption';
31
- id: string;
32
- name: string;
33
- values: ProductOptionValues[];
34
- }
35
- /**
36
- * 产品价格类型
37
- */
38
- export interface ProductPrice {
39
- amount: number;
40
- currencyCode: string;
41
- }
42
- /**
43
- * 简化的产品变体类型定义
44
- * 原始位置: @shopify (lib/shopify/types/product.ts)
45
- */
46
- export interface ProductVariant {
47
- id: string | number;
48
- options?: ProductOption[];
49
- sku?: string;
50
- metafields?: {
51
- [key: string]: any;
52
- };
53
- price?: ProductPrice | number;
54
- weight?: number;
55
- [key: string]: any;
56
- }
57
- /**
58
- * 用户身份类型
59
- * 1 - 普通会员
60
- * 2 - Plus 会员
61
- */
62
- type userIdentity = 1 | 2;
63
- /**
64
- * 会员价格配置类型
65
- * 原始位置: @projectTypes/metafields/discountMetafields
66
- */
67
- export interface FunctionMemberPriceConfig {
68
- result_detail: {
69
- member_discounts: {
70
- user_identity: userIdentity;
71
- main_products: {
72
- variants: {
73
- variant_id: string;
74
- sku: string;
75
- handle: string;
76
- discount_value: number;
77
- }[];
78
- skip_variants: {
79
- variant_id: string;
80
- sku: string;
81
- handle: string;
82
- discount_value: number;
83
- }[];
84
- dynamic_conf: {
85
- in_collections?: string[];
86
- not_in_collections?: string[];
87
- in_products?: string[];
88
- not_in_products?: string[];
89
- SKU: {
90
- in?: string[];
91
- not_in?: string[];
92
- start_with?: string;
93
- notstart_with?: string;
94
- end_with?: string;
95
- unend_with?: string;
96
- contain?: string;
97
- uncontain?: string;
98
- };
99
- };
100
- all_store_variant: boolean;
101
- };
102
- discount_conf: DiscountConfig;
103
- }[];
104
- limit_discount_max: number;
105
- };
106
- discount_combinations: {
107
- other_order_discounts: boolean;
108
- other_product_discounts: boolean;
109
- shipping_discounts: boolean;
110
- };
111
- [key: string]: any;
112
- }
113
- export declare enum DISCOUNT_TYPE {
114
- PERCENTAGE = 1,// 百分比
115
- FIXED_AMOUNT = 2,// 固定金额
116
- FIXED_PRICE = 3
117
- }
118
- export declare enum ROUND_SELECTED {
119
- ROUND_HIGHEST = 1,// 向上取整
120
- ROUND_LOWEST = 2,// 向下取整
121
- ROUND_NEAREST = 3
122
- }
123
- export type DiscountGroup = {
124
- discountConfigList: DiscountConfig[];
125
- useCoupon: boolean;
126
- };
127
- export type MemberPriceDiscountParams = {
128
- config?: FunctionMemberPriceConfig[];
129
- variant?: ProductVariant;
130
- };
131
- export type MemberPriceDiscountResult = {
132
- list: DiscountGroup[];
133
- };
134
- /**
135
- * 获取会员价折扣配置 (合并后的统一函数)
136
- * @param config - 会员价格配置列表 (支持任意格式,会自动适配)
137
- * @param variant - 产品变体 (支持任意格式,会自动适配)
138
- * @returns 分类后的折扣配置列表
139
- */
140
- export declare const getFunctionMemberPriceDiscountConfig: ({ config, variant, }: {
141
- config?: FunctionMemberPriceConfig[];
142
- variant?: any;
143
- }) => any;
144
- /**
145
- * 会员价格hooks
146
- */
147
- declare const useMemberPrice: (variant: any, memberPriceConfig: any) => {
148
- hasMemberPrice: any;
149
- hasPlusMemberPrice: any;
150
- withCouponMemberPriceDiscount: number;
151
- withCouponPlusMemberPriceDiscount: number;
152
- withoutCouponMemberPriceDiscount: number;
153
- withoutCouponPlusMemberPriceDiscount: number;
154
- };
155
- export default useMemberPrice;