@anker-in/headless-ui 1.1.74 → 1.1.76

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 (216) hide show
  1. package/dist/cjs/biz-components/ActiveShelf/ProductCard.js +1 -1
  2. package/dist/cjs/biz-components/ActiveShelf/ProductCard.js.map +2 -2
  3. package/dist/cjs/biz-components/ActivityMechanism/index.d.ts +9 -0
  4. package/dist/cjs/biz-components/ActivityMechanism/index.js +2 -0
  5. package/dist/cjs/biz-components/ActivityMechanism/index.js.map +7 -0
  6. package/dist/cjs/biz-components/ActivityMechanism/types.d.ts +43 -0
  7. package/dist/cjs/biz-components/ActivityMechanism/types.js +2 -0
  8. package/dist/cjs/biz-components/ActivityMechanism/types.js.map +7 -0
  9. package/dist/cjs/biz-components/ActivitySchedule/index.d.ts +3 -0
  10. package/dist/cjs/biz-components/ActivitySchedule/index.js +2 -0
  11. package/dist/cjs/biz-components/ActivitySchedule/index.js.map +7 -0
  12. package/dist/cjs/biz-components/ActivitySchedule/types.d.ts +44 -0
  13. package/dist/cjs/biz-components/ActivitySchedule/types.js +2 -0
  14. package/dist/cjs/biz-components/ActivitySchedule/types.js.map +7 -0
  15. package/dist/cjs/biz-components/AnchorNavigation/index.d.ts +20 -0
  16. package/dist/cjs/biz-components/AnchorNavigation/index.js +1 -1
  17. package/dist/cjs/biz-components/AnchorNavigation/index.js.map +3 -3
  18. package/dist/cjs/biz-components/EventSchedule/index.js +1 -1
  19. package/dist/cjs/biz-components/EventSchedule/index.js.map +2 -2
  20. package/dist/cjs/biz-components/FooterNavigation/index.js +1 -1
  21. package/dist/cjs/biz-components/FooterNavigation/index.js.map +3 -3
  22. package/dist/cjs/biz-components/FooterNavigation/types.d.ts +7 -0
  23. package/dist/cjs/biz-components/FooterNavigation/types.js +1 -1
  24. package/dist/cjs/biz-components/FooterNavigation/types.js.map +2 -2
  25. package/dist/cjs/biz-components/GiftShelf/index.d.ts +3 -0
  26. package/dist/cjs/biz-components/GiftShelf/index.js +2 -0
  27. package/dist/cjs/biz-components/GiftShelf/index.js.map +7 -0
  28. package/dist/cjs/biz-components/GiftShelf/types.d.ts +120 -0
  29. package/dist/cjs/biz-components/GiftShelf/types.js +2 -0
  30. package/dist/cjs/biz-components/GiftShelf/types.js.map +7 -0
  31. package/dist/cjs/biz-components/GiftTierShelf/index.d.ts +3 -0
  32. package/dist/cjs/biz-components/GiftTierShelf/index.js +2 -0
  33. package/dist/cjs/biz-components/GiftTierShelf/index.js.map +7 -0
  34. package/dist/cjs/biz-components/GiftTierShelf/types.d.ts +75 -0
  35. package/dist/cjs/biz-components/GiftTierShelf/types.js +2 -0
  36. package/dist/cjs/biz-components/GiftTierShelf/types.js.map +7 -0
  37. package/dist/cjs/biz-components/HeroBanner/HeroBanner.js +1 -1
  38. package/dist/cjs/biz-components/HeroBanner/HeroBanner.js.map +2 -2
  39. package/dist/cjs/biz-components/HeroBanner/types.d.ts +2 -0
  40. package/dist/cjs/biz-components/HeroBanner/types.js +1 -1
  41. package/dist/cjs/biz-components/HeroBanner/types.js.map +1 -1
  42. package/dist/cjs/biz-components/ImageWithText/ImageWithText.js +1 -1
  43. package/dist/cjs/biz-components/ImageWithText/ImageWithText.js.map +2 -2
  44. package/dist/cjs/biz-components/Ksp/index.d.ts +45 -6
  45. package/dist/cjs/biz-components/Ksp/index.js +1 -1
  46. package/dist/cjs/biz-components/Ksp/index.js.map +3 -3
  47. package/dist/cjs/biz-components/MediaPlayerBase/index.js +1 -1
  48. package/dist/cjs/biz-components/MediaPlayerBase/index.js.map +3 -3
  49. package/dist/cjs/biz-components/PromotionalBar/index.js +1 -1
  50. package/dist/cjs/biz-components/PromotionalBar/index.js.map +3 -3
  51. package/dist/cjs/biz-components/ThreeDCarousel/ThreeDCarousel.js +1 -1
  52. package/dist/cjs/biz-components/ThreeDCarousel/ThreeDCarousel.js.map +2 -2
  53. package/dist/cjs/biz-components/Title/index.js +1 -1
  54. package/dist/cjs/biz-components/Title/index.js.map +3 -3
  55. package/dist/cjs/biz-components/Title/types.d.ts +10 -1
  56. package/dist/cjs/biz-components/Title/types.js +1 -1
  57. package/dist/cjs/biz-components/Title/types.js.map +1 -1
  58. package/dist/cjs/biz-components/VideoModal/index.js +1 -1
  59. package/dist/cjs/biz-components/VideoModal/index.js.map +2 -2
  60. package/dist/cjs/biz-components/WheelLottery/BaseModal.d.ts +61 -0
  61. package/dist/cjs/biz-components/WheelLottery/BaseModal.js +2 -0
  62. package/dist/cjs/biz-components/WheelLottery/BaseModal.js.map +7 -0
  63. package/dist/cjs/biz-components/WheelLottery/ChanceMethods.d.ts +25 -0
  64. package/dist/cjs/biz-components/WheelLottery/ChanceMethods.js +2 -0
  65. package/dist/cjs/biz-components/WheelLottery/ChanceMethods.js.map +7 -0
  66. package/dist/cjs/biz-components/WheelLottery/ErrorModal.d.ts +47 -0
  67. package/dist/cjs/biz-components/WheelLottery/ErrorModal.js +2 -0
  68. package/dist/cjs/biz-components/WheelLottery/ErrorModal.js.map +7 -0
  69. package/dist/cjs/biz-components/WheelLottery/MyRewardsModal.d.ts +101 -0
  70. package/dist/cjs/biz-components/WheelLottery/MyRewardsModal.js +2 -0
  71. package/dist/cjs/biz-components/WheelLottery/MyRewardsModal.js.map +7 -0
  72. package/dist/cjs/biz-components/WheelLottery/PrizePool.d.ts +29 -0
  73. package/dist/cjs/biz-components/WheelLottery/PrizePool.js +2 -0
  74. package/dist/cjs/biz-components/WheelLottery/PrizePool.js.map +7 -0
  75. package/dist/cjs/biz-components/WheelLottery/RulesModal.d.ts +56 -0
  76. package/dist/cjs/biz-components/WheelLottery/RulesModal.js +2 -0
  77. package/dist/cjs/biz-components/WheelLottery/RulesModal.js.map +7 -0
  78. package/dist/cjs/biz-components/WheelLottery/ShareModal.d.ts +79 -0
  79. package/dist/cjs/biz-components/WheelLottery/ShareModal.js +2 -0
  80. package/dist/cjs/biz-components/WheelLottery/ShareModal.js.map +7 -0
  81. package/dist/cjs/biz-components/WheelLottery/Wheel.d.ts +27 -0
  82. package/dist/cjs/biz-components/WheelLottery/Wheel.js +2 -0
  83. package/dist/cjs/biz-components/WheelLottery/Wheel.js.map +7 -0
  84. package/dist/cjs/biz-components/WheelLottery/WinnerModal.d.ts +27 -0
  85. package/dist/cjs/biz-components/WheelLottery/WinnerModal.js +2 -0
  86. package/dist/cjs/biz-components/WheelLottery/WinnerModal.js.map +7 -0
  87. package/dist/cjs/biz-components/WheelLottery/index.d.ts +48 -0
  88. package/dist/cjs/biz-components/WheelLottery/index.js +2 -0
  89. package/dist/cjs/biz-components/WheelLottery/index.js.map +7 -0
  90. package/dist/cjs/biz-components/WheelLottery/types.d.ts +1229 -0
  91. package/dist/cjs/biz-components/WheelLottery/types.js +2 -0
  92. package/dist/cjs/biz-components/WheelLottery/types.js.map +7 -0
  93. package/dist/cjs/biz-components/index.d.ts +11 -0
  94. package/dist/cjs/biz-components/index.js +1 -1
  95. package/dist/cjs/biz-components/index.js.map +3 -3
  96. package/dist/cjs/components/Countdown.d.ts +27 -4
  97. package/dist/cjs/components/Countdown.js +1 -1
  98. package/dist/cjs/components/Countdown.js.map +3 -3
  99. package/dist/cjs/hooks/useCountDown.js +1 -1
  100. package/dist/cjs/hooks/useCountDown.js.map +3 -3
  101. package/dist/cjs/hooks/useDraggableScroll.d.ts +77 -0
  102. package/dist/cjs/hooks/useDraggableScroll.js +2 -0
  103. package/dist/cjs/hooks/useDraggableScroll.js.map +7 -0
  104. package/dist/esm/biz-components/ActiveShelf/ProductCard.js +1 -1
  105. package/dist/esm/biz-components/ActiveShelf/ProductCard.js.map +2 -2
  106. package/dist/esm/biz-components/ActivityMechanism/index.d.ts +9 -0
  107. package/dist/esm/biz-components/ActivityMechanism/index.js +2 -0
  108. package/dist/esm/biz-components/ActivityMechanism/index.js.map +7 -0
  109. package/dist/esm/biz-components/ActivityMechanism/types.d.ts +43 -0
  110. package/dist/esm/biz-components/ActivityMechanism/types.js +1 -0
  111. package/dist/esm/biz-components/ActivityMechanism/types.js.map +7 -0
  112. package/dist/esm/biz-components/ActivitySchedule/index.d.ts +3 -0
  113. package/dist/esm/biz-components/ActivitySchedule/index.js +2 -0
  114. package/dist/esm/biz-components/ActivitySchedule/index.js.map +7 -0
  115. package/dist/esm/biz-components/ActivitySchedule/types.d.ts +44 -0
  116. package/dist/esm/biz-components/ActivitySchedule/types.js +1 -0
  117. package/dist/esm/biz-components/ActivitySchedule/types.js.map +7 -0
  118. package/dist/esm/biz-components/AnchorNavigation/index.d.ts +20 -0
  119. package/dist/esm/biz-components/AnchorNavigation/index.js +1 -1
  120. package/dist/esm/biz-components/AnchorNavigation/index.js.map +3 -3
  121. package/dist/esm/biz-components/EventSchedule/index.js +1 -1
  122. package/dist/esm/biz-components/EventSchedule/index.js.map +3 -3
  123. package/dist/esm/biz-components/FooterNavigation/index.js +1 -1
  124. package/dist/esm/biz-components/FooterNavigation/index.js.map +3 -3
  125. package/dist/esm/biz-components/FooterNavigation/types.d.ts +7 -0
  126. package/dist/esm/biz-components/FooterNavigation/types.js.map +2 -2
  127. package/dist/esm/biz-components/GiftShelf/index.d.ts +3 -0
  128. package/dist/esm/biz-components/GiftShelf/index.js +2 -0
  129. package/dist/esm/biz-components/GiftShelf/index.js.map +7 -0
  130. package/dist/esm/biz-components/GiftShelf/types.d.ts +120 -0
  131. package/dist/esm/biz-components/GiftShelf/types.js +1 -0
  132. package/dist/esm/biz-components/GiftShelf/types.js.map +7 -0
  133. package/dist/esm/biz-components/GiftTierShelf/index.d.ts +3 -0
  134. package/dist/esm/biz-components/GiftTierShelf/index.js +2 -0
  135. package/dist/esm/biz-components/GiftTierShelf/index.js.map +7 -0
  136. package/dist/esm/biz-components/GiftTierShelf/types.d.ts +75 -0
  137. package/dist/esm/biz-components/GiftTierShelf/types.js +1 -0
  138. package/dist/esm/biz-components/GiftTierShelf/types.js.map +7 -0
  139. package/dist/esm/biz-components/HeroBanner/HeroBanner.js +1 -1
  140. package/dist/esm/biz-components/HeroBanner/HeroBanner.js.map +2 -2
  141. package/dist/esm/biz-components/HeroBanner/types.d.ts +2 -0
  142. package/dist/esm/biz-components/ImageWithText/ImageWithText.js +1 -1
  143. package/dist/esm/biz-components/ImageWithText/ImageWithText.js.map +2 -2
  144. package/dist/esm/biz-components/Ksp/index.d.ts +45 -6
  145. package/dist/esm/biz-components/Ksp/index.js +1 -1
  146. package/dist/esm/biz-components/Ksp/index.js.map +3 -3
  147. package/dist/esm/biz-components/MediaPlayerBase/index.js +1 -1
  148. package/dist/esm/biz-components/MediaPlayerBase/index.js.map +3 -3
  149. package/dist/esm/biz-components/PromotionalBar/index.js +1 -1
  150. package/dist/esm/biz-components/PromotionalBar/index.js.map +3 -3
  151. package/dist/esm/biz-components/ThreeDCarousel/ThreeDCarousel.js +1 -1
  152. package/dist/esm/biz-components/ThreeDCarousel/ThreeDCarousel.js.map +2 -2
  153. package/dist/esm/biz-components/Title/index.js +1 -1
  154. package/dist/esm/biz-components/Title/index.js.map +3 -3
  155. package/dist/esm/biz-components/Title/types.d.ts +10 -1
  156. package/dist/esm/biz-components/VideoModal/index.js +1 -1
  157. package/dist/esm/biz-components/VideoModal/index.js.map +2 -2
  158. package/dist/esm/biz-components/WheelLottery/BaseModal.d.ts +61 -0
  159. package/dist/esm/biz-components/WheelLottery/BaseModal.js +2 -0
  160. package/dist/esm/biz-components/WheelLottery/BaseModal.js.map +7 -0
  161. package/dist/esm/biz-components/WheelLottery/ChanceMethods.d.ts +25 -0
  162. package/dist/esm/biz-components/WheelLottery/ChanceMethods.js +2 -0
  163. package/dist/esm/biz-components/WheelLottery/ChanceMethods.js.map +7 -0
  164. package/dist/esm/biz-components/WheelLottery/ErrorModal.d.ts +47 -0
  165. package/dist/esm/biz-components/WheelLottery/ErrorModal.js +2 -0
  166. package/dist/esm/biz-components/WheelLottery/ErrorModal.js.map +7 -0
  167. package/dist/esm/biz-components/WheelLottery/MyRewardsModal.d.ts +101 -0
  168. package/dist/esm/biz-components/WheelLottery/MyRewardsModal.js +2 -0
  169. package/dist/esm/biz-components/WheelLottery/MyRewardsModal.js.map +7 -0
  170. package/dist/esm/biz-components/WheelLottery/PrizePool.d.ts +29 -0
  171. package/dist/esm/biz-components/WheelLottery/PrizePool.js +2 -0
  172. package/dist/esm/biz-components/WheelLottery/PrizePool.js.map +7 -0
  173. package/dist/esm/biz-components/WheelLottery/RulesModal.d.ts +56 -0
  174. package/dist/esm/biz-components/WheelLottery/RulesModal.js +2 -0
  175. package/dist/esm/biz-components/WheelLottery/RulesModal.js.map +7 -0
  176. package/dist/esm/biz-components/WheelLottery/ShareModal.d.ts +79 -0
  177. package/dist/esm/biz-components/WheelLottery/ShareModal.js +2 -0
  178. package/dist/esm/biz-components/WheelLottery/ShareModal.js.map +7 -0
  179. package/dist/esm/biz-components/WheelLottery/Wheel.d.ts +27 -0
  180. package/dist/esm/biz-components/WheelLottery/Wheel.js +2 -0
  181. package/dist/esm/biz-components/WheelLottery/Wheel.js.map +7 -0
  182. package/dist/esm/biz-components/WheelLottery/WinnerModal.d.ts +27 -0
  183. package/dist/esm/biz-components/WheelLottery/WinnerModal.js +2 -0
  184. package/dist/esm/biz-components/WheelLottery/WinnerModal.js.map +7 -0
  185. package/dist/esm/biz-components/WheelLottery/index.d.ts +48 -0
  186. package/dist/esm/biz-components/WheelLottery/index.js +2 -0
  187. package/dist/esm/biz-components/WheelLottery/index.js.map +7 -0
  188. package/dist/esm/biz-components/WheelLottery/types.d.ts +1229 -0
  189. package/dist/esm/biz-components/WheelLottery/types.js +2 -0
  190. package/dist/esm/biz-components/WheelLottery/types.js.map +7 -0
  191. package/dist/esm/biz-components/index.d.ts +11 -0
  192. package/dist/esm/biz-components/index.js +1 -1
  193. package/dist/esm/biz-components/index.js.map +2 -2
  194. package/dist/esm/components/Countdown.d.ts +27 -4
  195. package/dist/esm/components/Countdown.js +1 -1
  196. package/dist/esm/components/Countdown.js.map +3 -3
  197. package/dist/esm/hooks/useCountDown.js +1 -1
  198. package/dist/esm/hooks/useCountDown.js.map +3 -3
  199. package/dist/esm/hooks/useDraggableScroll.d.ts +77 -0
  200. package/dist/esm/hooks/useDraggableScroll.js +2 -0
  201. package/dist/esm/hooks/useDraggableScroll.js.map +7 -0
  202. package/package.json +1 -1
  203. package/style.css +6252 -862
  204. package/tailwind.config.js +18 -2
  205. package/dist/cjs/biz-components/HeroBanner/Countdown.d.ts +0 -10
  206. package/dist/cjs/biz-components/HeroBanner/Countdown.js +0 -2
  207. package/dist/cjs/biz-components/HeroBanner/Countdown.js.map +0 -7
  208. package/dist/cjs/biz-components/Title/Countdown.d.ts +0 -14
  209. package/dist/cjs/biz-components/Title/Countdown.js +0 -2
  210. package/dist/cjs/biz-components/Title/Countdown.js.map +0 -7
  211. package/dist/esm/biz-components/HeroBanner/Countdown.d.ts +0 -10
  212. package/dist/esm/biz-components/HeroBanner/Countdown.js +0 -2
  213. package/dist/esm/biz-components/HeroBanner/Countdown.js.map +0 -7
  214. package/dist/esm/biz-components/Title/Countdown.d.ts +0 -14
  215. package/dist/esm/biz-components/Title/Countdown.js +0 -2
  216. package/dist/esm/biz-components/Title/Countdown.js.map +0 -7
@@ -0,0 +1,77 @@
1
+ /**
2
+ * useDraggableScroll - 拖拽滚动 Hook
3
+ *
4
+ * 基于 Framer Motion 实现的水平拖拽滚动功能
5
+ *
6
+ * @module useDraggableScroll
7
+ * @date 2026-01-29
8
+ */
9
+ export interface UseDraggableScrollOptions {
10
+ /**
11
+ * 拖拽速度倍数
12
+ * @default 1
13
+ */
14
+ dragSpeed?: number;
15
+ /**
16
+ * 是否启用惯性滚动
17
+ * @default true
18
+ */
19
+ enableMomentum?: boolean;
20
+ /**
21
+ * 边界弹性系数(0-1,0表示无弹性)
22
+ * @default 0.1
23
+ */
24
+ dragElastic?: number;
25
+ }
26
+ export interface UseDraggableScrollReturn {
27
+ /**
28
+ * 容器 ref
29
+ */
30
+ containerRef: React.RefObject<HTMLDivElement>;
31
+ /**
32
+ * 是否正在拖拽
33
+ */
34
+ isDragging: boolean;
35
+ /**
36
+ * 滚动进度(0-100)
37
+ */
38
+ scrollProgress: number;
39
+ /**
40
+ * 是否可以向左滚动
41
+ */
42
+ canScrollLeft: boolean;
43
+ /**
44
+ * 是否可以向右滚动
45
+ */
46
+ canScrollRight: boolean;
47
+ /**
48
+ * 滚动到指定位置
49
+ */
50
+ scrollTo: (position: number, smooth?: boolean) => void;
51
+ /**
52
+ * 向左滚动
53
+ */
54
+ scrollLeft: (amount?: number) => void;
55
+ /**
56
+ * 向右滚动
57
+ */
58
+ scrollRight: (amount?: number) => void;
59
+ }
60
+ /**
61
+ * 拖拽滚动 Hook
62
+ *
63
+ * @example
64
+ * ```tsx
65
+ * const { containerRef, isDragging, scrollProgress } = useDraggableScroll({
66
+ * dragSpeed: 1.5,
67
+ * enableMomentum: true
68
+ * })
69
+ *
70
+ * return (
71
+ * <div ref={containerRef} className="overflow-x-auto">
72
+ * {items.map(item => <Item key={item.id} />)}
73
+ * </div>
74
+ * )
75
+ * ```
76
+ */
77
+ export declare function useDraggableScroll(options?: UseDraggableScrollOptions): UseDraggableScrollReturn;
@@ -0,0 +1,2 @@
1
+ import{useRef as R,useState as l,useEffect as L}from"react";function T(i={}){const{dragSpeed:v=1,enableMomentum:p=!0,dragElastic:D=.1}=i,o=R(null),[g,M]=l(!1),[u,f]=l(0),[m,b]=l(!1),[S,h]=l(!1),n=()=>{const r=o.current;if(!r)return;const{scrollLeft:e,scrollWidth:t,clientWidth:s}=r,a=t-s,d=a>0?e/a*100:0;f(Math.min(100,Math.max(0,d))),b(e>0),h(e<a-1)};L(()=>{const r=o.current;if(!r)return;n(),r.addEventListener("scroll",n);const e=new ResizeObserver(n);return e.observe(r),()=>{r.removeEventListener("scroll",n),e.disconnect()}},[]);const c=(r,e=!0)=>{const t=o.current;t&&t.scrollTo({left:r,behavior:e?"smooth":"auto"})};return{containerRef:o,isDragging:g,scrollProgress:u,canScrollLeft:m,canScrollRight:S,scrollTo:c,scrollLeft:(r=300)=>{const e=o.current;if(!e)return;const t=Math.max(0,e.scrollLeft-r);c(t)},scrollRight:(r=300)=>{const e=o.current;if(!e)return;const t=e.scrollWidth-e.clientWidth,s=Math.min(t,e.scrollLeft+r);c(s)}}}export{T as useDraggableScroll};
2
+ //# sourceMappingURL=useDraggableScroll.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/hooks/useDraggableScroll.ts"],
4
+ "sourcesContent": ["/**\n * useDraggableScroll - \u62D6\u62FD\u6EDA\u52A8 Hook\n *\n * \u57FA\u4E8E Framer Motion \u5B9E\u73B0\u7684\u6C34\u5E73\u62D6\u62FD\u6EDA\u52A8\u529F\u80FD\n *\n * @module useDraggableScroll\n * @date 2026-01-29\n */\n\nimport { useRef, useState, useEffect } from 'react'\n\nexport interface UseDraggableScrollOptions {\n /**\n * \u62D6\u62FD\u901F\u5EA6\u500D\u6570\n * @default 1\n */\n dragSpeed?: number\n\n /**\n * \u662F\u5426\u542F\u7528\u60EF\u6027\u6EDA\u52A8\n * @default true\n */\n enableMomentum?: boolean\n\n /**\n * \u8FB9\u754C\u5F39\u6027\u7CFB\u6570\uFF080-1\uFF0C0\u8868\u793A\u65E0\u5F39\u6027\uFF09\n * @default 0.1\n */\n dragElastic?: number\n}\n\nexport interface UseDraggableScrollReturn {\n /**\n * \u5BB9\u5668 ref\n */\n containerRef: React.RefObject<HTMLDivElement>\n\n /**\n * \u662F\u5426\u6B63\u5728\u62D6\u62FD\n */\n isDragging: boolean\n\n /**\n * \u6EDA\u52A8\u8FDB\u5EA6\uFF080-100\uFF09\n */\n scrollProgress: number\n\n /**\n * \u662F\u5426\u53EF\u4EE5\u5411\u5DE6\u6EDA\u52A8\n */\n canScrollLeft: boolean\n\n /**\n * \u662F\u5426\u53EF\u4EE5\u5411\u53F3\u6EDA\u52A8\n */\n canScrollRight: boolean\n\n /**\n * \u6EDA\u52A8\u5230\u6307\u5B9A\u4F4D\u7F6E\n */\n scrollTo: (position: number, smooth?: boolean) => void\n\n /**\n * \u5411\u5DE6\u6EDA\u52A8\n */\n scrollLeft: (amount?: number) => void\n\n /**\n * \u5411\u53F3\u6EDA\u52A8\n */\n scrollRight: (amount?: number) => void\n}\n\n/**\n * \u62D6\u62FD\u6EDA\u52A8 Hook\n *\n * @example\n * ```tsx\n * const { containerRef, isDragging, scrollProgress } = useDraggableScroll({\n * dragSpeed: 1.5,\n * enableMomentum: true\n * })\n *\n * return (\n * <div ref={containerRef} className=\"overflow-x-auto\">\n * {items.map(item => <Item key={item.id} />)}\n * </div>\n * )\n * ```\n */\nexport function useDraggableScroll(options: UseDraggableScrollOptions = {}): UseDraggableScrollReturn {\n const { dragSpeed = 1, enableMomentum = true, dragElastic = 0.1 } = options\n\n const containerRef = useRef<HTMLDivElement>(null)\n const [isDragging, setIsDragging] = useState(false)\n const [scrollProgress, setScrollProgress] = useState(0)\n const [canScrollLeft, setCanScrollLeft] = useState(false)\n const [canScrollRight, setCanScrollRight] = useState(false)\n\n // \u66F4\u65B0\u6EDA\u52A8\u72B6\u6001\n const updateScrollState = () => {\n const container = containerRef.current\n if (!container) return\n\n const { scrollLeft, scrollWidth, clientWidth } = container\n\n // \u8BA1\u7B97\u6EDA\u52A8\u8FDB\u5EA6\n const maxScroll = scrollWidth - clientWidth\n const progress = maxScroll > 0 ? (scrollLeft / maxScroll) * 100 : 0\n setScrollProgress(Math.min(100, Math.max(0, progress)))\n\n // \u66F4\u65B0\u6EDA\u52A8\u65B9\u5411\u53EF\u7528\u6027\n setCanScrollLeft(scrollLeft > 0)\n setCanScrollRight(scrollLeft < maxScroll - 1) // -1 \u5BB9\u9519\n }\n\n // \u76D1\u542C\u5BB9\u5668\u6EDA\u52A8\u4E8B\u4EF6\n useEffect(() => {\n const container = containerRef.current\n if (!container) return\n\n // \u521D\u59CB\u5316\u72B6\u6001\n updateScrollState()\n\n // \u76D1\u542C\u6EDA\u52A8\n container.addEventListener('scroll', updateScrollState)\n\n // \u76D1\u542C\u7A97\u53E3\u5927\u5C0F\u53D8\u5316\n const resizeObserver = new ResizeObserver(updateScrollState)\n resizeObserver.observe(container)\n\n return () => {\n container.removeEventListener('scroll', updateScrollState)\n resizeObserver.disconnect()\n }\n }, [])\n\n // \u6EDA\u52A8\u5230\u6307\u5B9A\u4F4D\u7F6E\n const scrollTo = (position: number, smooth = true) => {\n const container = containerRef.current\n if (!container) return\n\n container.scrollTo({\n left: position,\n behavior: smooth ? 'smooth' : 'auto',\n })\n }\n\n // \u5411\u5DE6\u6EDA\u52A8\n const scrollLeftFn = (amount = 300) => {\n const container = containerRef.current\n if (!container) return\n\n const targetScroll = Math.max(0, container.scrollLeft - amount)\n scrollTo(targetScroll)\n }\n\n // \u5411\u53F3\u6EDA\u52A8\n const scrollRightFn = (amount = 300) => {\n const container = containerRef.current\n if (!container) return\n\n const maxScroll = container.scrollWidth - container.clientWidth\n const targetScroll = Math.min(maxScroll, container.scrollLeft + amount)\n scrollTo(targetScroll)\n }\n\n return {\n containerRef,\n isDragging,\n scrollProgress,\n canScrollLeft,\n canScrollRight,\n scrollTo,\n scrollLeft: scrollLeftFn,\n scrollRight: scrollRightFn,\n }\n}\n"],
5
+ "mappings": "AASA,OAAS,UAAAA,EAAQ,YAAAC,EAAU,aAAAC,MAAiB,QAiFrC,SAASC,EAAmBC,EAAqC,CAAC,EAA6B,CACpG,KAAM,CAAE,UAAAC,EAAY,EAAG,eAAAC,EAAiB,GAAM,YAAAC,EAAc,EAAI,EAAIH,EAE9DI,EAAeR,EAAuB,IAAI,EAC1C,CAACS,EAAYC,CAAa,EAAIT,EAAS,EAAK,EAC5C,CAACU,EAAgBC,CAAiB,EAAIX,EAAS,CAAC,EAChD,CAACY,EAAeC,CAAgB,EAAIb,EAAS,EAAK,EAClD,CAACc,EAAgBC,CAAiB,EAAIf,EAAS,EAAK,EAGpDgB,EAAoB,IAAM,CAC9B,MAAMC,EAAYV,EAAa,QAC/B,GAAI,CAACU,EAAW,OAEhB,KAAM,CAAE,WAAAC,EAAY,YAAAC,EAAa,YAAAC,CAAY,EAAIH,EAG3CI,EAAYF,EAAcC,EAC1BE,EAAWD,EAAY,EAAKH,EAAaG,EAAa,IAAM,EAClEV,EAAkB,KAAK,IAAI,IAAK,KAAK,IAAI,EAAGW,CAAQ,CAAC,CAAC,EAGtDT,EAAiBK,EAAa,CAAC,EAC/BH,EAAkBG,EAAaG,EAAY,CAAC,CAC9C,EAGApB,EAAU,IAAM,CACd,MAAMgB,EAAYV,EAAa,QAC/B,GAAI,CAACU,EAAW,OAGhBD,EAAkB,EAGlBC,EAAU,iBAAiB,SAAUD,CAAiB,EAGtD,MAAMO,EAAiB,IAAI,eAAeP,CAAiB,EAC3D,OAAAO,EAAe,QAAQN,CAAS,EAEzB,IAAM,CACXA,EAAU,oBAAoB,SAAUD,CAAiB,EACzDO,EAAe,WAAW,CAC5B,CACF,EAAG,CAAC,CAAC,EAGL,MAAMC,EAAW,CAACC,EAAkBC,EAAS,KAAS,CACpD,MAAMT,EAAYV,EAAa,QAC1BU,GAELA,EAAU,SAAS,CACjB,KAAMQ,EACN,SAAUC,EAAS,SAAW,MAChC,CAAC,CACH,EAqBA,MAAO,CACL,aAAAnB,EACA,WAAAC,EACA,eAAAE,EACA,cAAAE,EACA,eAAAE,EACA,SAAAU,EACA,WAzBmB,CAACG,EAAS,MAAQ,CACrC,MAAMV,EAAYV,EAAa,QAC/B,GAAI,CAACU,EAAW,OAEhB,MAAMW,EAAe,KAAK,IAAI,EAAGX,EAAU,WAAaU,CAAM,EAC9DH,EAASI,CAAY,CACvB,EAoBE,YAjBoB,CAACD,EAAS,MAAQ,CACtC,MAAMV,EAAYV,EAAa,QAC/B,GAAI,CAACU,EAAW,OAEhB,MAAMI,EAAYJ,EAAU,YAAcA,EAAU,YAC9CW,EAAe,KAAK,IAAIP,EAAWJ,EAAU,WAAaU,CAAM,EACtEH,EAASI,CAAY,CACvB,CAWA,CACF",
6
+ "names": ["useRef", "useState", "useEffect", "useDraggableScroll", "options", "dragSpeed", "enableMomentum", "dragElastic", "containerRef", "isDragging", "setIsDragging", "scrollProgress", "setScrollProgress", "canScrollLeft", "setCanScrollLeft", "canScrollRight", "setCanScrollRight", "updateScrollState", "container", "scrollLeft", "scrollWidth", "clientWidth", "maxScroll", "progress", "resizeObserver", "scrollTo", "position", "smooth", "amount", "targetScroll"]
7
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@anker-in/headless-ui",
3
- "version": "1.1.74",
3
+ "version": "1.1.76",
4
4
  "type": "commonjs",
5
5
  "main": "./dist/cjs/index.js",
6
6
  "types": "./dist/cjs/index.d.ts",