react-native-reanimated-carousel 5.1.1 → 5.2.1

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 (141) hide show
  1. package/README.md +18 -1
  2. package/lib/commonjs/components/CarouselLayout.js +1 -1
  3. package/lib/commonjs/components/CarouselLayout.js.map +1 -1
  4. package/lib/commonjs/components/ItemLayout.js +1 -1
  5. package/lib/commonjs/components/ItemLayout.js.map +1 -1
  6. package/lib/commonjs/components/ItemRenderer.js +1 -1
  7. package/lib/commonjs/components/ItemRenderer.js.map +1 -1
  8. package/lib/commonjs/components/Pagination/PaginationItem.js +1 -1
  9. package/lib/commonjs/components/Pagination/PaginationItem.js.map +1 -1
  10. package/lib/commonjs/components/ScrollViewGesture.js +1 -1
  11. package/lib/commonjs/components/ScrollViewGesture.js.map +1 -1
  12. package/lib/commonjs/constants/index.js +1 -1
  13. package/lib/commonjs/constants/index.js.map +1 -1
  14. package/lib/commonjs/hooks/useAutoPlay.js +1 -1
  15. package/lib/commonjs/hooks/useAutoPlay.js.map +1 -1
  16. package/lib/commonjs/hooks/useCarouselController.js +1 -1
  17. package/lib/commonjs/hooks/useCarouselController.js.map +1 -1
  18. package/lib/commonjs/hooks/useCommonVariables.js +1 -1
  19. package/lib/commonjs/hooks/useCommonVariables.js.map +1 -1
  20. package/lib/commonjs/hooks/useInitProps.js +1 -1
  21. package/lib/commonjs/hooks/useInitProps.js.map +1 -1
  22. package/lib/commonjs/hooks/useOffsetX.js +1 -1
  23. package/lib/commonjs/hooks/useOffsetX.js.map +1 -1
  24. package/lib/commonjs/hooks/useOnProgressChange.js +1 -1
  25. package/lib/commonjs/hooks/useOnProgressChange.js.map +1 -1
  26. package/lib/commonjs/hooks/useVisibleRanges.js +1 -1
  27. package/lib/commonjs/hooks/useVisibleRanges.js.map +1 -1
  28. package/lib/commonjs/layouts/normal.js +1 -1
  29. package/lib/commonjs/layouts/normal.js.map +1 -1
  30. package/lib/commonjs/layouts/parallax.js +1 -1
  31. package/lib/commonjs/layouts/parallax.js.map +1 -1
  32. package/lib/commonjs/utils/web-only-dependencies.js +2 -0
  33. package/lib/commonjs/utils/web-only-dependencies.js.map +1 -0
  34. package/lib/module/components/CarouselLayout.js +1 -1
  35. package/lib/module/components/CarouselLayout.js.map +1 -1
  36. package/lib/module/components/ItemLayout.js +1 -1
  37. package/lib/module/components/ItemLayout.js.map +1 -1
  38. package/lib/module/components/ItemRenderer.js +1 -1
  39. package/lib/module/components/ItemRenderer.js.map +1 -1
  40. package/lib/module/components/Pagination/PaginationItem.js +1 -1
  41. package/lib/module/components/Pagination/PaginationItem.js.map +1 -1
  42. package/lib/module/components/ScrollViewGesture.js +1 -1
  43. package/lib/module/components/ScrollViewGesture.js.map +1 -1
  44. package/lib/module/constants/index.js +1 -1
  45. package/lib/module/constants/index.js.map +1 -1
  46. package/lib/module/hooks/useAutoPlay.js +1 -1
  47. package/lib/module/hooks/useAutoPlay.js.map +1 -1
  48. package/lib/module/hooks/useCarouselController.js +1 -1
  49. package/lib/module/hooks/useCarouselController.js.map +1 -1
  50. package/lib/module/hooks/useCommonVariables.js +1 -1
  51. package/lib/module/hooks/useCommonVariables.js.map +1 -1
  52. package/lib/module/hooks/useInitProps.js +1 -1
  53. package/lib/module/hooks/useInitProps.js.map +1 -1
  54. package/lib/module/hooks/useOffsetX.js +1 -1
  55. package/lib/module/hooks/useOffsetX.js.map +1 -1
  56. package/lib/module/hooks/useOnProgressChange.js +1 -1
  57. package/lib/module/hooks/useOnProgressChange.js.map +1 -1
  58. package/lib/module/hooks/useVisibleRanges.js +1 -1
  59. package/lib/module/hooks/useVisibleRanges.js.map +1 -1
  60. package/lib/module/layouts/normal.js +1 -1
  61. package/lib/module/layouts/normal.js.map +1 -1
  62. package/lib/module/layouts/parallax.js +1 -1
  63. package/lib/module/layouts/parallax.js.map +1 -1
  64. package/lib/module/utils/web-only-dependencies.js +2 -0
  65. package/lib/module/utils/web-only-dependencies.js.map +1 -0
  66. package/lib/typescript/commonjs/components/CarouselLayout.d.ts.map +1 -1
  67. package/lib/typescript/commonjs/components/ItemLayout.d.ts.map +1 -1
  68. package/lib/typescript/commonjs/components/ItemRenderer.d.ts.map +1 -1
  69. package/lib/typescript/commonjs/components/Pagination/PaginationItem.d.ts.map +1 -1
  70. package/lib/typescript/commonjs/components/ScrollViewGesture.d.ts.map +1 -1
  71. package/lib/typescript/commonjs/constants/index.d.ts +4 -4
  72. package/lib/typescript/commonjs/constants/index.d.ts.map +1 -1
  73. package/lib/typescript/commonjs/hooks/useAutoPlay.d.ts +19 -5
  74. package/lib/typescript/commonjs/hooks/useAutoPlay.d.ts.map +1 -1
  75. package/lib/typescript/commonjs/hooks/useCarouselController.d.ts.map +1 -1
  76. package/lib/typescript/commonjs/hooks/useCommonVariables.d.ts.map +1 -1
  77. package/lib/typescript/commonjs/hooks/useInitProps.d.ts +2 -1
  78. package/lib/typescript/commonjs/hooks/useInitProps.d.ts.map +1 -1
  79. package/lib/typescript/commonjs/hooks/useOffsetX.d.ts.map +1 -1
  80. package/lib/typescript/commonjs/hooks/useOnProgressChange.d.ts.map +1 -1
  81. package/lib/typescript/commonjs/hooks/usePanGestureProxy.d.ts.map +1 -1
  82. package/lib/typescript/commonjs/hooks/useUpdateGestureConfig.d.ts.map +1 -1
  83. package/lib/typescript/commonjs/hooks/useVisibleRanges.d.ts +1 -0
  84. package/lib/typescript/commonjs/hooks/useVisibleRanges.d.ts.map +1 -1
  85. package/lib/typescript/commonjs/layouts/normal.d.ts +2 -9
  86. package/lib/typescript/commonjs/layouts/normal.d.ts.map +1 -1
  87. package/lib/typescript/commonjs/layouts/parallax.d.ts +2 -16
  88. package/lib/typescript/commonjs/layouts/parallax.d.ts.map +1 -1
  89. package/lib/typescript/commonjs/layouts/stack.d.ts.map +1 -1
  90. package/lib/typescript/commonjs/public-types.d.ts +1 -0
  91. package/lib/typescript/commonjs/public-types.d.ts.map +1 -1
  92. package/lib/typescript/commonjs/store/index.d.ts.map +1 -1
  93. package/lib/typescript/commonjs/utils/web-only-dependencies.d.ts +7 -0
  94. package/lib/typescript/commonjs/utils/web-only-dependencies.d.ts.map +1 -0
  95. package/lib/typescript/module/components/CarouselLayout.d.ts.map +1 -1
  96. package/lib/typescript/module/components/ItemLayout.d.ts.map +1 -1
  97. package/lib/typescript/module/components/ItemRenderer.d.ts.map +1 -1
  98. package/lib/typescript/module/components/Pagination/PaginationItem.d.ts.map +1 -1
  99. package/lib/typescript/module/components/ScrollViewGesture.d.ts.map +1 -1
  100. package/lib/typescript/module/constants/index.d.ts +4 -4
  101. package/lib/typescript/module/constants/index.d.ts.map +1 -1
  102. package/lib/typescript/module/hooks/useAutoPlay.d.ts +19 -5
  103. package/lib/typescript/module/hooks/useAutoPlay.d.ts.map +1 -1
  104. package/lib/typescript/module/hooks/useCarouselController.d.ts.map +1 -1
  105. package/lib/typescript/module/hooks/useCommonVariables.d.ts.map +1 -1
  106. package/lib/typescript/module/hooks/useInitProps.d.ts +2 -1
  107. package/lib/typescript/module/hooks/useInitProps.d.ts.map +1 -1
  108. package/lib/typescript/module/hooks/useOffsetX.d.ts.map +1 -1
  109. package/lib/typescript/module/hooks/useOnProgressChange.d.ts.map +1 -1
  110. package/lib/typescript/module/hooks/usePanGestureProxy.d.ts.map +1 -1
  111. package/lib/typescript/module/hooks/useUpdateGestureConfig.d.ts.map +1 -1
  112. package/lib/typescript/module/hooks/useVisibleRanges.d.ts +1 -0
  113. package/lib/typescript/module/hooks/useVisibleRanges.d.ts.map +1 -1
  114. package/lib/typescript/module/layouts/normal.d.ts +2 -9
  115. package/lib/typescript/module/layouts/normal.d.ts.map +1 -1
  116. package/lib/typescript/module/layouts/parallax.d.ts +2 -16
  117. package/lib/typescript/module/layouts/parallax.d.ts.map +1 -1
  118. package/lib/typescript/module/layouts/stack.d.ts.map +1 -1
  119. package/lib/typescript/module/public-types.d.ts +1 -0
  120. package/lib/typescript/module/public-types.d.ts.map +1 -1
  121. package/lib/typescript/module/store/index.d.ts.map +1 -1
  122. package/lib/typescript/module/utils/web-only-dependencies.d.ts +7 -0
  123. package/lib/typescript/module/utils/web-only-dependencies.d.ts.map +1 -0
  124. package/package.json +8 -4
  125. package/src/components/CarouselLayout.tsx +42 -12
  126. package/src/components/ItemLayout.tsx +14 -4
  127. package/src/components/ItemRenderer.tsx +36 -4
  128. package/src/components/Pagination/PaginationItem.tsx +22 -20
  129. package/src/components/ScrollViewGesture.tsx +12 -5
  130. package/src/constants/index.ts +4 -4
  131. package/src/hooks/useAutoPlay.ts +44 -17
  132. package/src/hooks/useCarouselController.tsx +3 -2
  133. package/src/hooks/useCommonVariables.ts +3 -2
  134. package/src/hooks/useInitProps.ts +13 -0
  135. package/src/hooks/useOffsetX.ts +11 -1
  136. package/src/hooks/useOnProgressChange.ts +2 -1
  137. package/src/hooks/useVisibleRanges.tsx +5 -2
  138. package/src/layouts/normal.ts +2 -1
  139. package/src/layouts/parallax.ts +2 -1
  140. package/src/public-types.ts +1 -0
  141. package/src/utils/web-only-dependencies.ts +10 -0
@@ -1,8 +1,8 @@
1
1
  import type { EasingFunction } from "react-native-reanimated";
2
- export declare enum DATA_LENGTH {
3
- SINGLE_ITEM = 1,
4
- DOUBLE_ITEM = 2
5
- }
2
+ export declare const DATA_LENGTH: {
3
+ readonly SINGLE_ITEM: 1;
4
+ readonly DOUBLE_ITEM: 2;
5
+ };
6
6
  export declare const Easing: {
7
7
  easeOutQuart: EasingFunction;
8
8
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/constants/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAG9D,oBAAY,WAAW;IACrB,WAAW,IAAI;IACf,WAAW,IAAI;CAChB;AAED,eAAO,MAAM,MAAM;kBAC2C,cAAc;CAC3E,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/constants/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAG9D,eAAO,MAAM,WAAW;;;CAGd,CAAC;AAEX,eAAO,MAAM,MAAM;kBAC2C,cAAc;CAC3E,CAAC"}
@@ -1,12 +1,26 @@
1
1
  import type { CarouselController } from "./useCarouselController";
2
+ export interface AutoPlayControls {
3
+ /** Stops autoplay until `start` is called, for example while the user touches the carousel. */
4
+ pause: () => void;
5
+ /** Resumes autoplay and begins a fresh dwell. */
6
+ start: () => void;
7
+ /** Begins a fresh dwell if autoplay is running. */
8
+ trigger: () => void;
9
+ /** A transition started from any source: drop the pending dwell without stopping autoplay. */
10
+ onTransitionStart: () => void;
11
+ /** A transition settled from any source: begin a fresh dwell if autoplay is running. */
12
+ onTransitionEnd: () => void;
13
+ }
14
+ /**
15
+ * Autoplay waits `autoplayInterval` of idle time, then steps once. The dwell is restarted
16
+ * when a transition settles, whatever started it (an autoplay step, `ref.next/prev/scrollTo`,
17
+ * or a pagination tap), so a manual move never cuts the next dwell short and an interrupted
18
+ * autoplay step does not stop autoplay.
19
+ */
2
20
  export declare function useAutoPlay(options: {
3
21
  autoplay?: boolean;
4
22
  autoplayInterval?: number;
5
23
  autoplayDirection?: "forward" | "backward";
6
24
  carouselController: CarouselController;
7
- }): {
8
- pause: () => void;
9
- start: () => void;
10
- trigger: () => void;
11
- };
25
+ }): AutoPlayControls;
12
26
  //# sourceMappingURL=useAutoPlay.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useAutoPlay.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useAutoPlay.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAElE,wBAAgB,WAAW,CAAC,OAAO,EAAE;IACnC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC;IAC3C,kBAAkB,EAAE,kBAAkB,CAAC;CACxC;;;;EAqDA"}
1
+ {"version":3,"file":"useAutoPlay.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useAutoPlay.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAElE,MAAM,WAAW,gBAAgB;IAC/B,+FAA+F;IAC/F,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,iDAAiD;IACjD,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,mDAAmD;IACnD,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,8FAA8F;IAC9F,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B,wFAAwF;IACxF,eAAe,EAAE,MAAM,IAAI,CAAC;CAC7B;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE;IACnC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC;IAC3C,kBAAkB,EAAE,kBAAkB,CAAC;CACxC,GAAG,gBAAgB,CA6DnB"}
@@ -1 +1 @@
1
- {"version":3,"file":"useCarouselController.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useCarouselController.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAiB,MAAM,OAAO,CAAC;AACtC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAK3D,OAAO,KAAK,EACV,iBAAiB,EACjB,WAAW,EACX,+BAA+B,EAC/B,2BAA2B,EAC5B,MAAM,UAAU,CAAC;AAUlB,UAAU,yBAAyB;IACjC,GAAG,EAAE,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;IACrC,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACnC,SAAS,EAAE,iBAAiB,CAAC;IAC7B,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,aAAa,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IACzC,aAAa,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;CACvD;AAED,MAAM,WAAW,kBAAkB;IACjC,cAAc,EAAE,MAAM,MAAM,CAAC;IAC7B,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,2BAA2B,KAAK,IAAI,CAAC;IACtD,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,2BAA2B,KAAK,IAAI,CAAC;IACtD,eAAe,EAAE,MAAM,MAAM,CAAC;IAC9B,QAAQ,EAAE,CAAC,OAAO,EAAE,+BAA+B,KAAK,IAAI,CAAC;IAC7D,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC3B,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,MAAM,EAAE,MAAM,MAAM,CAAC;CACtB;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,yBAAyB,GAAG,kBAAkB,CAwP5F"}
1
+ {"version":3,"file":"useCarouselController.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useCarouselController.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAiB,MAAM,OAAO,CAAC;AACtC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAK3D,OAAO,KAAK,EACV,iBAAiB,EACjB,WAAW,EACX,+BAA+B,EAC/B,2BAA2B,EAC5B,MAAM,UAAU,CAAC;AAWlB,UAAU,yBAAyB;IACjC,GAAG,EAAE,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;IACrC,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACnC,SAAS,EAAE,iBAAiB,CAAC;IAC7B,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,aAAa,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IACzC,aAAa,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;CACvD;AAED,MAAM,WAAW,kBAAkB;IACjC,cAAc,EAAE,MAAM,MAAM,CAAC;IAC7B,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,2BAA2B,KAAK,IAAI,CAAC;IACtD,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,2BAA2B,KAAK,IAAI,CAAC;IACtD,eAAe,EAAE,MAAM,MAAM,CAAC;IAC9B,QAAQ,EAAE,CAAC,OAAO,EAAE,+BAA+B,KAAK,IAAI,CAAC;IAC7D,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC3B,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,MAAM,EAAE,MAAM,MAAM,CAAC;CACtB;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,yBAAyB,GAAG,kBAAkB,CAwP5F"}
@@ -1 +1 @@
1
- {"version":3,"file":"useCommonVariables.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useCommonVariables.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAI3D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAS/D,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,OAAO,GAAG,UAAU,CAAC;AAEjE,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACnC,YAAY,EAAE,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACzC,SAAS,EAAE,WAAW,CAAC,iBAAiB,CAAC,CAAC;IAC1C,YAAY,EAAE,OAAO,CAAC;IACtB,QAAQ,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,cAAc,EAAE,MAAM,IAAI,CAAC;CAC5B;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,wBAAwB,CAAC,OAAO,CAAC,GACvC,uBAAuB,CAmOzB"}
1
+ {"version":3,"file":"useCommonVariables.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useCommonVariables.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAI3D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAU/D,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,OAAO,GAAG,UAAU,CAAC;AAEjE,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACnC,YAAY,EAAE,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACzC,SAAS,EAAE,WAAW,CAAC,iBAAiB,CAAC,CAAC;IAC1C,YAAY,EAAE,OAAO,CAAC;IACtB,QAAQ,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,cAAc,EAAE,MAAM,IAAI,CAAC;CAC5B;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,wBAAwB,CAAC,OAAO,CAAC,GACvC,uBAAuB,CAmOzB"}
@@ -1,7 +1,7 @@
1
1
  import type { CarouselAnimation, CarouselProps } from "../types";
2
2
  import { type CarouselDirectionSign } from "../utils/carousel-direction";
3
3
  type CarouselSnapMode = NonNullable<CarouselProps<unknown>["snapMode"]>;
4
- export type InitializedCarouselProps<Item> = Omit<CarouselProps<Item>, "autoplay" | "autoplayDirection" | "autoplayInterval" | "data" | "defaultIndex" | "loop" | "orientation" | "overscrollEnabled" | "scrollEnabled" | "snapMode" | "style"> & {
4
+ export type InitializedCarouselProps<Item> = Omit<CarouselProps<Item>, "autoplay" | "autoplayDirection" | "autoplayInterval" | "data" | "defaultIndex" | "loop" | "orientation" | "overscrollEnabled" | "scrollEnabled" | "snapMode" | "snapMomentum" | "style"> & {
5
5
  autoplay: boolean;
6
6
  autoplayDirection: "forward" | "backward";
7
7
  autoplayInterval: number;
@@ -12,6 +12,7 @@ export type InitializedCarouselProps<Item> = Omit<CarouselProps<Item>, "autoplay
12
12
  overscrollEnabled: boolean;
13
13
  scrollEnabled: boolean;
14
14
  snapMode: CarouselSnapMode;
15
+ snapMomentum: number;
15
16
  style: NonNullable<CarouselProps<Item>["style"]>;
16
17
  animation: CarouselAnimation;
17
18
  rawData: Item[];
@@ -1 +1 @@
1
- {"version":3,"file":"useInitProps.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useInitProps.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACjE,OAAO,EAAE,KAAK,qBAAqB,EAA4B,MAAM,6BAA6B,CAAC;AAGnG,KAAK,gBAAgB,GAAG,WAAW,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;AAExE,MAAM,MAAM,wBAAwB,CAAC,IAAI,IAAI,IAAI,CAC/C,aAAa,CAAC,IAAI,CAAC,EACjB,UAAU,GACV,mBAAmB,GACnB,kBAAkB,GAClB,MAAM,GACN,cAAc,GACd,MAAM,GACN,aAAa,GACb,mBAAmB,GACnB,eAAe,GACf,UAAU,GACV,OAAO,CACV,GAAG;IACF,QAAQ,EAAE,OAAO,CAAC;IAClB,iBAAiB,EAAE,SAAS,GAAG,UAAU,CAAC;IAC1C,gBAAgB,EAAE,MAAM,CAAC;IACzB,IAAI,EAAE,IAAI,EAAE,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,OAAO,CAAC;IACd,WAAW,EAAE,YAAY,GAAG,UAAU,CAAC;IACvC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,aAAa,EAAE,OAAO,CAAC;IACvB,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,KAAK,EAAE,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IACjD,SAAS,EAAE,iBAAiB,CAAC;IAC7B,OAAO,EAAE,IAAI,EAAE,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,IAAI,CAAC;IACnB,aAAa,EAAE,qBAAqB,CAAC;CACtC,CAAC;AAEF,wBAAgB,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,GAAG,wBAAwB,CAAC,IAAI,CAAC,CA2F7F"}
1
+ {"version":3,"file":"useInitProps.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useInitProps.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACjE,OAAO,EAAE,KAAK,qBAAqB,EAA4B,MAAM,6BAA6B,CAAC;AAGnG,KAAK,gBAAgB,GAAG,WAAW,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;AAExE,MAAM,MAAM,wBAAwB,CAAC,IAAI,IAAI,IAAI,CAC/C,aAAa,CAAC,IAAI,CAAC,EACjB,UAAU,GACV,mBAAmB,GACnB,kBAAkB,GAClB,MAAM,GACN,cAAc,GACd,MAAM,GACN,aAAa,GACb,mBAAmB,GACnB,eAAe,GACf,UAAU,GACV,cAAc,GACd,OAAO,CACV,GAAG;IACF,QAAQ,EAAE,OAAO,CAAC;IAClB,iBAAiB,EAAE,SAAS,GAAG,UAAU,CAAC;IAC1C,gBAAgB,EAAE,MAAM,CAAC;IACzB,IAAI,EAAE,IAAI,EAAE,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,OAAO,CAAC;IACd,WAAW,EAAE,YAAY,GAAG,UAAU,CAAC;IACvC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,aAAa,EAAE,OAAO,CAAC;IACvB,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IACjD,SAAS,EAAE,iBAAiB,CAAC;IAC7B,OAAO,EAAE,IAAI,EAAE,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,IAAI,CAAC;IACnB,aAAa,EAAE,qBAAqB,CAAC;CACtC,CAAC;AAEF,wBAAgB,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,GAAG,wBAAwB,CAAC,IAAI,CAAC,CA6F7F"}
@@ -1 +1 @@
1
- {"version":3,"file":"useOffsetX.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useOffsetX.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAG3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAE7D,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,UAAU,GAAG,UAAU,GAAG,SAAS,CAAC;IAC3C,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC5B;AAED,eAAO,MAAM,UAAU,SAAU,aAAa,iBAAiB,kBAAkB,2DAiEhF,CAAC"}
1
+ {"version":3,"file":"useOffsetX.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useOffsetX.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAI3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAE7D,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,UAAU,GAAG,UAAU,GAAG,SAAS,CAAC;IAC3C,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC5B;AAED,eAAO,MAAM,UAAU,GAAI,MAAM,aAAa,EAAE,eAAe,kBAAkB,2DA0EhF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useOnProgressChange.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useOnProgressChange.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAI3D,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,UAAU,CAAC;AAG9D,wBAAgB,mBAAmB,CAAC,OAAO,EAAE;IAC3C,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC5B,gBAAgB,CAAC,EAAE,6BAA6B,GAAG,SAAS,CAAC;IAC7D,QAAQ,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;IAC3C,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;CACjC,QAiBA"}
1
+ {"version":3,"file":"useOnProgressChange.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useOnProgressChange.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAI3D,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,UAAU,CAAC;AAI9D,wBAAgB,mBAAmB,CAAC,OAAO,EAAE;IAC3C,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC5B,gBAAgB,CAAC,EAAE,6BAA6B,GAAG,SAAS,CAAC;IAC7D,QAAQ,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;IAC3C,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;CACjC,QAiBA"}
@@ -1 +1 @@
1
- {"version":3,"file":"usePanGestureProxy.d.ts","sourceRoot":"","sources":["../../../../src/hooks/usePanGestureProxy.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,uBAAuB,EACvB,kBAAkB,EAClB,6BAA6B,EAC9B,MAAM,8BAA8B,CAAC;AAGtC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAG9D,eAAO,MAAM,kBAAkB,kBAAmB;IAChD,qBAAqB,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,kBAAkB,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC5E,cAAc,EAAE,CAAC,KAAK,EAAE,uBAAuB,CAAC,6BAA6B,CAAC,KAAK,IAAI,CAAC;IACxF,eAAe,EAAE,CAAC,KAAK,EAAE,kBAAkB,CAAC,6BAA6B,CAAC,KAAK,IAAI,CAAC;IACpF,YAAY,EAAE,CACZ,KAAK,EAAE,uBAAuB,CAAC,6BAA6B,CAAC,EAC7D,OAAO,EAAE,OAAO,KACb,IAAI,CAAC;IACV,OAAO,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;CACrC,kGA0HA,CAAC"}
1
+ {"version":3,"file":"usePanGestureProxy.d.ts","sourceRoot":"","sources":["../../../../src/hooks/usePanGestureProxy.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,uBAAuB,EACvB,kBAAkB,EAClB,6BAA6B,EAC9B,MAAM,8BAA8B,CAAC;AAGtC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAG9D,eAAO,MAAM,kBAAkB,GAAI,eAAe;IAChD,qBAAqB,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,kBAAkB,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC5E,cAAc,EAAE,CAAC,KAAK,EAAE,uBAAuB,CAAC,6BAA6B,CAAC,KAAK,IAAI,CAAC;IACxF,eAAe,EAAE,CAAC,KAAK,EAAE,kBAAkB,CAAC,6BAA6B,CAAC,KAAK,IAAI,CAAC;IACpF,YAAY,EAAE,CACZ,KAAK,EAAE,uBAAuB,CAAC,6BAA6B,CAAC,EAC7D,OAAO,EAAE,OAAO,KACb,IAAI,CAAC;IACV,OAAO,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;CACrC,kGA0HA,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useUpdateGestureConfig.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useUpdateGestureConfig.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC/B;AAED,KAAK,sBAAsB,GAAG;IAC5B,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC;CACpC,CAAC;AAEF,eAAO,MAAM,sBAAsB,YAAa,sBAAsB,UAAU,aAAa,SAM5F,CAAC"}
1
+ {"version":3,"file":"useUpdateGestureConfig.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useUpdateGestureConfig.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC/B;AAED,KAAK,sBAAsB,GAAG;IAC5B,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC;CACpC,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAI,SAAS,sBAAsB,EAAE,QAAQ,aAAa,SAM5F,CAAC"}
@@ -5,6 +5,7 @@ export interface VisibleRanges {
5
5
  positiveRange: Range;
6
6
  }
7
7
  export type VisibleRangesValue = SharedValue<VisibleRanges>;
8
+ export declare function normalizeWindowSize(total: number, windowSize?: number): number;
8
9
  export declare function computeVisibleRanges(params: {
9
10
  total: number;
10
11
  windowSize?: number | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"useVisibleRanges.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useVisibleRanges.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAG3D,KAAK,KAAK,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAE9B,MAAM,WAAW,aAAa;IAC5B,aAAa,EAAE,KAAK,CAAC;IACrB,aAAa,EAAE,KAAK,CAAC;CACtB;AAED,MAAM,MAAM,kBAAkB,GAAG,WAAW,CAAC,aAAa,CAAC,CAAC;AAgB5D,wBAAgB,oBAAoB,CAAC,MAAM,EAAE;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC5B,GAAG,aAAa,CAwDhB;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACjC,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC5B,GAAG,kBAAkB,CAqCrB"}
1
+ {"version":3,"file":"useVisibleRanges.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useVisibleRanges.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAK3D,KAAK,KAAK,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAE9B,MAAM,WAAW,aAAa;IAC5B,aAAa,EAAE,KAAK,CAAC;IACrB,aAAa,EAAE,KAAK,CAAC;CACtB;AAED,MAAM,MAAM,kBAAkB,GAAG,WAAW,CAAC,aAAa,CAAC,CAAC;AAE5D,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,UAMrE;AAQD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC5B,GAAG,aAAa,CAwDhB;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACjC,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC5B,GAAG,kBAAkB,CAsCrB"}
@@ -1,15 +1,8 @@
1
+ import type { ViewStyle } from "react-native";
1
2
  import type { CarouselDirectionSign } from "../utils/carousel-direction";
2
3
  export declare function normalLayout(opts: {
3
4
  size: number;
4
5
  isVertical: boolean;
5
6
  directionSign: CarouselDirectionSign;
6
- }): (value: number) => {
7
- transform: ({
8
- translateY: number;
9
- translateX?: never;
10
- } | {
11
- translateX: number;
12
- translateY?: never;
13
- })[];
14
- };
7
+ }): (value: number) => ViewStyle;
15
8
  //# sourceMappingURL=normal.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"normal.d.ts","sourceRoot":"","sources":["../../../../src/layouts/normal.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAGzE,wBAAgB,YAAY,CAAC,IAAI,EAAE;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,qBAAqB,CAAC;CACtC,WAGgB,MAAM;;;;;;;;EAmBtB"}
1
+ {"version":3,"file":"normal.d.ts","sourceRoot":"","sources":["../../../../src/layouts/normal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAG9C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAGzE,wBAAgB,YAAY,CAAC,IAAI,EAAE;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,qBAAqB,CAAC;CACtC,IAGS,OAAO,MAAM,KAAG,SAAS,CAmBlC"}
@@ -1,3 +1,4 @@
1
+ import type { ViewStyle } from "react-native";
1
2
  import type { CarouselLayout } from "../types";
2
3
  import type { CarouselDirectionSign } from "../utils/carousel-direction";
3
4
  type ParallaxLayout = Extract<CarouselLayout, {
@@ -7,21 +8,6 @@ export declare function parallaxLayout(baseConfig: {
7
8
  size: number;
8
9
  isVertical: boolean;
9
10
  directionSign: CarouselDirectionSign;
10
- }, config: ParallaxLayout): (relativeProgress: number) => {
11
- transform: ({
12
- translateY: number;
13
- translateX?: never;
14
- scale?: never;
15
- } | {
16
- translateX: number;
17
- translateY?: never;
18
- scale?: never;
19
- } | {
20
- scale: number;
21
- translateY?: never;
22
- translateX?: never;
23
- })[];
24
- zIndex: number;
25
- };
11
+ }, config: ParallaxLayout): (relativeProgress: number) => ViewStyle;
26
12
  export {};
27
13
  //# sourceMappingURL=parallax.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parallax.d.ts","sourceRoot":"","sources":["../../../../src/layouts/parallax.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAGzE,KAAK,cAAc,GAAG,OAAO,CAAC,cAAc,EAAE;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,CAAC,CAAC;AAEpE,wBAAgB,cAAc,CAC5B,UAAU,EAAE;IACV,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,qBAAqB,CAAC;CACtC,EACD,MAAM,EAAE,cAAc,sBAKI,MAAM;;;;;;;;;;;;;;;EA8BjC"}
1
+ {"version":3,"file":"parallax.d.ts","sourceRoot":"","sources":["../../../../src/layouts/parallax.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAG9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAGzE,KAAK,cAAc,GAAG,OAAO,CAAC,cAAc,EAAE;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,CAAC,CAAC;AAEpE,wBAAgB,cAAc,CAC5B,UAAU,EAAE;IACV,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,qBAAqB,CAAC;CACtC,EACD,MAAM,EAAE,cAAc,IAKd,kBAAkB,MAAM,KAAG,SAAS,CA8B7C"}
@@ -1 +1 @@
1
- {"version":3,"file":"stack.d.ts","sourceRoot":"","sources":["../../../../src/layouts/stack.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAmB,SAAS,EAAE,MAAM,cAAc,CAAC;AAI/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAKzE,KAAK,WAAW,GAAG,OAAO,CAAC,cAAc,EAAE;IAAE,IAAI,EAAE,kBAAkB,GAAG,gBAAgB,CAAA;CAAE,CAAC,CAAC;AAE5F,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,WAAW,EACnB,aAAa,GAAE,qBAAyB,YAExB,MAAM,eAgFvB;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,WAAW,YACrC,MAAM,eAqFvB"}
1
+ {"version":3,"file":"stack.d.ts","sourceRoot":"","sources":["../../../../src/layouts/stack.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAmB,SAAS,EAAE,MAAM,cAAc,CAAC;AAI/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAKzE,KAAK,WAAW,GAAG,OAAO,CAAC,cAAc,EAAE;IAAE,IAAI,EAAE,kBAAkB,GAAG,gBAAgB,CAAA;CAAE,CAAC,CAAC;AAE5F,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,WAAW,EACnB,aAAa,GAAE,qBAAyB,IAEhC,QAAQ,MAAM,eAgFvB;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,WAAW,IAC7C,QAAQ,MAAM,eAqFvB"}
@@ -50,6 +50,7 @@ export type CarouselProps<Item> = {
50
50
  itemSize?: number;
51
51
  scrollEnabled?: boolean;
52
52
  snapMode?: CarouselSnapMode;
53
+ snapMomentum?: number;
53
54
  overscrollEnabled?: boolean;
54
55
  renderWindowSize?: number;
55
56
  animation?: CarouselAnimation;
@@ -1 +1 @@
1
- {"version":3,"file":"public-types.d.ts","sourceRoot":"","sources":["../../../src/public-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"public-types.d.ts","sourceRoot":"","sources":["../../../src/public-types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/store/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,KAAK,WAAW,EAAkB,MAAM,yBAAyB,CAAC;AAC3E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAC3E,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEtE,KAAK,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAExE,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,wBAAwB,CAAC,OAAO,CAAC,CAAC;IACzC,MAAM,EAAE,uBAAuB,CAAC;IAChC,MAAM,EAAE;QACN,aAAa,EAAE,WAAW,CAAC;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAC9D,mBAAmB,EAAE,CAAC,UAAU,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,KAAK,IAAI,CAAC;QAC7E,cAAc,EAAE,WAAW,CAAC,cAAc,CAAC,CAAC;QAC5C,oBAAoB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,KAAK,IAAI,CAAC;KAC9F,CAAC;CACH;AAED,eAAO,MAAM,kBAAkB,gCAA8D,CAAC;AAE9F,eAAO,MAAM,mBAAmB,yBAG7B;IACD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,KAAK,EAAE,IAAI,CAAC,eAAe,EAAE,OAAO,GAAG,QAAQ,CAAC,CAAC;CAClD,sBAyBA,CAAC;AAEF,eAAO,MAAM,cAAc,uBAQ1B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/store/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,KAAK,WAAW,EAAkB,MAAM,yBAAyB,CAAC;AAC3E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAC3E,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEtE,KAAK,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAExE,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,wBAAwB,CAAC,OAAO,CAAC,CAAC;IACzC,MAAM,EAAE,uBAAuB,CAAC;IAChC,MAAM,EAAE;QACN,aAAa,EAAE,WAAW,CAAC;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAC9D,mBAAmB,EAAE,CAAC,UAAU,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,KAAK,IAAI,CAAC;QAC7E,cAAc,EAAE,WAAW,CAAC,cAAc,CAAC,CAAC;QAC5C,oBAAoB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,KAAK,IAAI,CAAC;KAC9F,CAAC;CACH;AAED,eAAO,MAAM,kBAAkB,gCAA8D,CAAC;AAE9F,eAAO,MAAM,mBAAmB,GAAI,sBAGjC;IACD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,KAAK,EAAE,IAAI,CAAC,eAAe,EAAE,OAAO,GAAG,QAAQ,CAAC,CAAC;CAClD,sBAyBA,CAAC;AAEF,eAAO,MAAM,cAAc,uBAQ1B,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Reanimated only reads hook dependency arrays in its Web implementation when the
3
+ * worklets Babel plugin is not used. Native derives them from the worklet closure
4
+ * and, since Reanimated 4.6, warns on every render when an array is passed.
5
+ */
6
+ export declare function webOnlyDependencies<T extends unknown[]>(dependencies: T): T | undefined;
7
+ //# sourceMappingURL=web-only-dependencies.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web-only-dependencies.d.ts","sourceRoot":"","sources":["../../../../src/utils/web-only-dependencies.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,OAAO,EAAE,EAAE,YAAY,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS,CAEvF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-reanimated-carousel",
3
- "version": "5.1.1",
3
+ "version": "5.2.1",
4
4
  "packageManager": "yarn@4.0.2",
5
5
  "description": "A performant, customizable carousel for React Native powered by Reanimated.",
6
6
  "author": "Doho <zhaodonghao586@outlook.com> (https://github.com/dohooo)",
@@ -28,7 +28,10 @@
28
28
  },
29
29
  "exports": {
30
30
  ".": {
31
- "react-native": "./src/index.tsx",
31
+ "react-native": {
32
+ "types": "./lib/typescript/module/index.d.ts",
33
+ "default": "./src/index.tsx"
34
+ },
32
35
  "import": {
33
36
  "types": "./lib/typescript/module/index.d.ts",
34
37
  "default": "./lib/module/index.js"
@@ -54,8 +57,9 @@
54
57
  "test:watch": "jest --watch",
55
58
  "test:coverage": "jest --coverage",
56
59
  "test:ci": "jest --coverage --ci --runInBand --reporters=default --reporters=jest-junit",
57
- "types": "tsc --noEmit && yarn types:public",
60
+ "types": "tsc --noEmit && yarn types:public && yarn types:non-strict",
58
61
  "types:public": "tsc -p tsconfig.type-tests.json",
62
+ "types:non-strict": "tsc -p tsconfig.non-strict.json",
59
63
  "lint": "biome check .",
60
64
  "lint:fix": "biome check --write .",
61
65
  "format": "biome format .",
@@ -128,7 +132,7 @@
128
132
  "react-native-worklets": "0.5.2",
129
133
  "react-test-renderer": "19.1.0",
130
134
  "sponsorkit": "^0.1.3",
131
- "typescript": "^5.5.4",
135
+ "typescript": "^5.9.3",
132
136
  "watch": "^1.0.2"
133
137
  },
134
138
  "husky": {
@@ -2,12 +2,13 @@ import React from "react";
2
2
  import { type StyleProp, StyleSheet, View, type ViewStyle } from "react-native";
3
3
  import { useAnimatedReaction, useAnimatedStyle, useDerivedValue } from "react-native-reanimated";
4
4
  import { scheduleOnRN } from "react-native-worklets";
5
- import { useAutoPlay } from "../hooks/useAutoPlay";
5
+ import { type AutoPlayControls, useAutoPlay } from "../hooks/useAutoPlay";
6
6
  import { useCarouselController } from "../hooks/useCarouselController";
7
7
  import { useLayoutConfig } from "../hooks/useLayoutConfig";
8
8
  import { useOnProgressChange } from "../hooks/useOnProgressChange";
9
9
  import { useGlobalState } from "../store";
10
10
  import type { CarouselRef } from "../types";
11
+ import { webOnlyDependencies } from "../utils/web-only-dependencies";
11
12
  import { ItemRenderer } from "./ItemRenderer";
12
13
  import { ScrollViewGesture } from "./ScrollViewGesture";
13
14
 
@@ -66,11 +67,13 @@ export const CarouselLayout = React.forwardRef<CarouselRef>((_props, ref) => {
66
67
  const { size, handlerOffset, resolvedSize, sizePhase, sizeExplicit } = common;
67
68
  const layoutConfig = useLayoutConfig({ ...props, size });
68
69
 
70
+ const isSizeReadyDependencies = webOnlyDependencies([resolvedSize, sizePhase]);
69
71
  const isSizeReady = useDerivedValue(() => {
70
72
  const currentSize = resolvedSize.value ?? 0;
71
73
  return sizePhase.value === "ready" && currentSize > 0;
72
- }, [resolvedSize, sizePhase]);
74
+ }, isSizeReadyDependencies);
73
75
 
76
+ const offsetXDependencies = webOnlyDependencies([loop, dataLength, handlerOffset, resolvedSize]);
74
77
  const offsetX = useDerivedValue(() => {
75
78
  const currentSize = resolvedSize.value ?? 0;
76
79
  if (currentSize <= 0) return 0;
@@ -83,7 +86,7 @@ export const CarouselLayout = React.forwardRef<CarouselRef>((_props, ref) => {
83
86
 
84
87
  const x = value % totalSize;
85
88
  return Number.isNaN(x) ? 0 : x;
86
- }, [loop, dataLength, handlerOffset, resolvedSize]);
89
+ }, offsetXDependencies);
87
90
 
88
91
  useOnProgressChange({
89
92
  loop,
@@ -102,6 +105,24 @@ export const CarouselLayout = React.forwardRef<CarouselRef>((_props, ref) => {
102
105
  [onSnapToItem]
103
106
  );
104
107
 
108
+ // Autoplay steps through the controller, and every controller transition (an autoplay
109
+ // step or a ref command such as a pagination tap) has to restart the autoplay dwell.
110
+ // The controller is created first, so it reaches autoplay through this ref.
111
+ const autoPlayRef = React.useRef<AutoPlayControls | null>(null);
112
+
113
+ const onControllerTransitionStart = React.useCallback(() => {
114
+ autoPlayRef.current?.onTransitionStart();
115
+ onScrollStart?.();
116
+ }, [onScrollStart]);
117
+
118
+ const onControllerTransitionEnd = React.useCallback(
119
+ (realIndex: number) => {
120
+ autoPlayRef.current?.onTransitionEnd();
121
+ _onScrollEnd(realIndex);
122
+ },
123
+ [_onScrollEnd]
124
+ );
125
+
105
126
  const carouselController = useCarouselController({
106
127
  ref,
107
128
  loop,
@@ -111,20 +132,21 @@ export const CarouselLayout = React.forwardRef<CarouselRef>((_props, ref) => {
111
132
  handlerOffset,
112
133
  animation,
113
134
  defaultIndex,
114
- onMovementEnd: _onScrollEnd,
115
- onScrollStart,
135
+ onMovementEnd: onControllerTransitionEnd,
136
+ onScrollStart: onControllerTransitionStart,
116
137
  });
117
138
 
118
- const {
119
- start: startAutoPlay,
120
- pause: pauseAutoPlay,
121
- trigger: triggerAutoPlay,
122
- } = useAutoPlay({
139
+ const autoPlay = useAutoPlay({
123
140
  autoplay,
124
141
  autoplayDirection,
125
142
  autoplayInterval,
126
143
  carouselController,
127
144
  });
145
+ const { start: startAutoPlay, pause: pauseAutoPlay, trigger: triggerAutoPlay } = autoPlay;
146
+
147
+ React.useEffect(() => {
148
+ autoPlayRef.current = autoPlay;
149
+ }, [autoPlay]);
128
150
 
129
151
  useAnimatedReaction(
130
152
  () => ({ ready: isSizeReady.value }),
@@ -135,7 +157,7 @@ export const CarouselLayout = React.forwardRef<CarouselRef>((_props, ref) => {
135
157
  if (state.ready) scheduleOnRN(triggerAutoPlay);
136
158
  else scheduleOnRN(pauseAutoPlay);
137
159
  },
138
- [autoplay]
160
+ webOnlyDependencies([autoplay])
139
161
  );
140
162
 
141
163
  const scrollViewGestureOnScrollStart = React.useCallback(() => {
@@ -158,6 +180,14 @@ export const CarouselLayout = React.forwardRef<CarouselRef>((_props, ref) => {
158
180
  StyleSheet.flatten(contentContainerStyle as StyleProp<ViewStyle>) || {};
159
181
  const flattenedStyle = StyleSheet.flatten(style) || {};
160
182
 
183
+ const layoutStyleDependencies = webOnlyDependencies([
184
+ flattenedStyle,
185
+ isSizeReady,
186
+ isVertical,
187
+ resolvedSize,
188
+ sizePhase,
189
+ sizeExplicit,
190
+ ]);
161
191
  const layoutStyle = useAnimatedStyle(() => {
162
192
  const measuredSize = resolvedSize.value ?? 0;
163
193
  const { width, height } = resolveCarouselLayoutStyle({
@@ -172,7 +202,7 @@ export const CarouselLayout = React.forwardRef<CarouselRef>((_props, ref) => {
172
202
  height,
173
203
  opacity: isSizeReady.value ? 1 : 0,
174
204
  };
175
- }, [flattenedStyle, isSizeReady, isVertical, resolvedSize, sizePhase, sizeExplicit]);
205
+ }, layoutStyleDependencies);
176
206
 
177
207
  return (
178
208
  <View testID={testID} style={[styles.layoutContainer, style]} onLayout={props.onLayout}>
@@ -18,6 +18,7 @@ import type { CarouselItemAnimation } from "../types";
18
18
  import { getHorizontalStackOffsetType } from "../utils/carousel-direction";
19
19
  import { positiveModulo } from "../utils/carousel-math";
20
20
  import { sanitizeAnimationStyle } from "../utils/sanitize-animation-style";
21
+ import { webOnlyDependencies } from "../utils/web-only-dependencies";
21
22
 
22
23
  export type ItemAnimationStyle = CarouselItemAnimation;
23
24
 
@@ -67,6 +68,13 @@ export const ItemLayout: React.FC<{
67
68
  const size = (itemSize ?? fallbackSize) || 0;
68
69
  const effectivePageSize = size > 0 ? size : undefined;
69
70
 
71
+ const dimensionsStyleDependencies = webOnlyDependencies([
72
+ effectivePageSize,
73
+ isVertical,
74
+ itemSize,
75
+ styleHeightNumber,
76
+ styleWidthNumber,
77
+ ]);
70
78
  const dimensionsStyle = useAnimatedStyle<ViewStyle>(() => {
71
79
  const widthCandidate = isVertical ? styleWidthNumber : itemSize;
72
80
  const heightCandidate = isVertical ? itemSize : styleHeightNumber;
@@ -95,7 +103,7 @@ export const ItemLayout: React.FC<{
95
103
  width: computedWidth,
96
104
  height: computedHeight,
97
105
  };
98
- }, [effectivePageSize, isVertical, itemSize, styleHeightNumber, styleWidthNumber]);
106
+ }, dimensionsStyleDependencies);
99
107
 
100
108
  let offsetXConfig: OffsetOptions = {
101
109
  handlerOffset,
@@ -137,17 +145,19 @@ export const ItemLayout: React.FC<{
137
145
  scheduleOnRN(setIsAccessibilityCurrent, isCurrent);
138
146
  }
139
147
  },
140
- [isCurrentForAccessibility]
148
+ webOnlyDependencies([isCurrentForAccessibility])
141
149
  );
142
150
 
151
+ const relativeProgressDependencies = webOnlyDependencies([x, size]);
143
152
  const relativeProgress = useDerivedValue(() => {
144
153
  if (!size) return 0;
145
154
  return x.value / size;
146
- }, [x, size]);
155
+ }, relativeProgressDependencies);
156
+ const animatedStyleDependencies = webOnlyDependencies([animationStyle, rawIndex, x, size]);
147
157
  const animatedStyle = useAnimatedStyle<ViewStyle>(() => {
148
158
  const safeSize = size || 1;
149
159
  return sanitizeAnimationStyle(animationStyle(x.value / safeSize, rawIndex));
150
- }, [animationStyle, rawIndex, x, size]);
160
+ }, animatedStyleDependencies);
151
161
 
152
162
  // TODO: For dynamic dimension in the future
153
163
  // function handleLayout(e: LayoutChangeEvent) {
@@ -8,9 +8,14 @@ import type { ItemAnimationStyle } from "./ItemLayout";
8
8
  import { ItemLayout } from "./ItemLayout";
9
9
 
10
10
  import type { VisibleRanges } from "../hooks/useVisibleRanges";
11
- import { computeVisibleRanges, useVisibleRanges } from "../hooks/useVisibleRanges";
11
+ import {
12
+ computeVisibleRanges,
13
+ normalizeWindowSize,
14
+ useVisibleRanges,
15
+ } from "../hooks/useVisibleRanges";
12
16
  import type { CarouselItemAnimation, CarouselRenderItem } from "../types";
13
17
  import { computedRealIndexWithAutoFillData } from "../utils/computed-with-auto-fill-data";
18
+ import { webOnlyDependencies } from "../utils/web-only-dependencies";
14
19
 
15
20
  interface Props {
16
21
  data: unknown[];
@@ -71,12 +76,34 @@ export const ItemRenderer: FC<Props> = (props) => {
71
76
 
72
77
  const [displayedItems, setDisplayedItems] = React.useState<VisibleRanges>(initialRanges);
73
78
 
79
+ // When the window covers every item, the ranges always span the whole list. Skip them so a
80
+ // stale range from before a data change cannot unmount keyed items for one render.
81
+ const rendersAllItems = normalizeWindowSize(dataLength, renderWindowSize) >= dataLength;
82
+
74
83
  useAnimatedReaction(
75
84
  () => visibleRanges.value,
76
85
  (ranges) => scheduleOnRN(setDisplayedItems, ranges),
77
- [visibleRanges]
86
+ webOnlyDependencies([visibleRanges])
78
87
  );
79
88
 
89
+ // With a render window, the ranges still describe the previous data for the renders between a
90
+ // data change and the next range update. Keep the keyed items mounted with the last up-to-date
91
+ // ranges until then, so an item that shifted index is not unmounted and mounted again.
92
+ const lastSettledRender = React.useRef<{
93
+ data: unknown[];
94
+ ranges: VisibleRanges;
95
+ keys: ReadonlySet<string>;
96
+ } | null>(null);
97
+ const settled = lastSettledRender.current;
98
+ const rangesAreStale =
99
+ !!keyExtractor && !!settled && settled.ranges === displayedItems && settled.data !== data;
100
+ const renderedKeys = new Set<string>();
101
+
102
+ React.useEffect(() => {
103
+ if (rangesAreStale) return;
104
+ lastSettledRender.current = { data, ranges: displayedItems, keys: renderedKeys };
105
+ });
106
+
80
107
  return (
81
108
  <>
82
109
  {data.map((item, index) => {
@@ -89,11 +116,12 @@ export const ItemRenderer: FC<Props> = (props) => {
89
116
 
90
117
  const { negativeRange, positiveRange } = displayedItems;
91
118
 
92
- const shouldRender =
119
+ const isInRange =
120
+ rendersAllItems ||
93
121
  (index >= negativeRange[0] && index <= negativeRange[1]) ||
94
122
  (index >= positiveRange[0] && index <= positiveRange[1]);
95
123
 
96
- if (!shouldRender) return null;
124
+ if (!isInRange && !rangesAreStale) return null;
97
125
 
98
126
  const rawItem = rawData[realIndex] ?? item;
99
127
  const key = keyExtractor
@@ -102,6 +130,10 @@ export const ItemRenderer: FC<Props> = (props) => {
102
130
  )}`
103
131
  : String(index);
104
132
 
133
+ if (!isInRange && !settled?.keys.has(key)) return null;
134
+
135
+ renderedKeys.add(key);
136
+
105
137
  return (
106
138
  <ItemLayout
107
139
  key={key}
@@ -12,6 +12,7 @@ import { scheduleOnRN } from "react-native-worklets";
12
12
 
13
13
  import type { PaginationDotStyle, PaginationProps } from "../../public-types";
14
14
  import { getNearestLoopPosition, getSettledRawIndex } from "../../utils/carousel-math";
15
+ import { webOnlyDependencies } from "../../utils/web-only-dependencies";
15
16
 
16
17
  const DEFAULT_DOT_SIZE = 10;
17
18
  const DEFAULT_DOT_COLOR = "#D1D5DB";
@@ -86,9 +87,28 @@ export function PaginationItem(props: {
86
87
  scheduleOnRN(setSelected, nextSelected);
87
88
  }
88
89
  },
89
- [count, index, progress]
90
+ webOnlyDependencies([count, index, progress])
90
91
  );
91
92
 
93
+ const animatedStyleDependencies = webOnlyDependencies([
94
+ activeBackgroundColor,
95
+ activeBorderColor,
96
+ activeBorderRadius,
97
+ activeBorderWidth,
98
+ activeHeight,
99
+ activeOpacity,
100
+ activeWidth,
101
+ baseBackgroundColor,
102
+ baseBorderColor,
103
+ baseBorderRadius,
104
+ baseBorderWidth,
105
+ baseHeight,
106
+ baseOpacity,
107
+ baseWidth,
108
+ count,
109
+ index,
110
+ progress,
111
+ ]);
92
112
  const animatedStyle = useAnimatedStyle<ViewStyle>(() => {
93
113
  const distance = Math.min(1, getPaginationDotDistance(progress.value, index, count));
94
114
 
@@ -111,25 +131,7 @@ export function PaginationItem(props: {
111
131
  backgroundColor: interpolateDotColor(distance, activeBackgroundColor, baseBackgroundColor),
112
132
  opacity: interpolate(distance, [0, 1], [activeOpacity, baseOpacity], Extrapolation.CLAMP),
113
133
  };
114
- }, [
115
- activeBackgroundColor,
116
- activeBorderColor,
117
- activeBorderRadius,
118
- activeBorderWidth,
119
- activeHeight,
120
- activeOpacity,
121
- activeWidth,
122
- baseBackgroundColor,
123
- baseBorderColor,
124
- baseBorderRadius,
125
- baseBorderWidth,
126
- baseHeight,
127
- baseOpacity,
128
- baseWidth,
129
- count,
130
- index,
131
- progress,
132
- ]);
134
+ }, animatedStyleDependencies);
133
135
 
134
136
  const reservedStyle: ViewStyle = {
135
137
  alignItems: "center",