lazy-render-virtual-scroll 1.5.0 → 1.7.0

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 (428) hide show
  1. package/README.md +49 -310
  2. package/dist/adapters/react/index.d.ts +187 -1
  3. package/dist/cjs/adapters/react/LazyList.js +377 -0
  4. package/dist/cjs/adapters/react/LazyList.js.map +1 -1
  5. package/dist/cjs/adapters/react/adapters/react/components/AdaptiveScrollView.d.ts +16 -0
  6. package/dist/cjs/adapters/react/adapters/react/components/AdaptiveScrollView.d.ts.map +1 -0
  7. package/dist/cjs/adapters/react/adapters/react/components/IntelligentLazyList.d.ts +16 -0
  8. package/dist/cjs/adapters/react/adapters/react/components/IntelligentLazyList.d.ts.map +1 -0
  9. package/dist/cjs/adapters/react/adapters/react/components/SmartInfiniteScroll.d.ts +15 -0
  10. package/dist/cjs/adapters/react/adapters/react/components/SmartInfiniteScroll.d.ts.map +1 -0
  11. package/dist/cjs/adapters/react/adapters/react/components/index.d.ts +7 -0
  12. package/dist/cjs/adapters/react/adapters/react/components/index.d.ts.map +1 -0
  13. package/dist/cjs/adapters/react/adapters/react/hooks/index.d.ts +7 -0
  14. package/dist/cjs/adapters/react/adapters/react/hooks/index.d.ts.map +1 -0
  15. package/dist/cjs/adapters/react/adapters/react/hooks/useAdaptiveLoading.d.ts +39 -0
  16. package/dist/cjs/adapters/react/adapters/react/hooks/useAdaptiveLoading.d.ts.map +1 -0
  17. package/dist/cjs/adapters/react/adapters/react/hooks/useIntelligentScroll.d.ts +37 -0
  18. package/dist/cjs/adapters/react/adapters/react/hooks/useIntelligentScroll.d.ts.map +1 -0
  19. package/dist/cjs/adapters/react/adapters/react/hooks/useSmartPagination.d.ts +57 -0
  20. package/dist/cjs/adapters/react/adapters/react/hooks/useSmartPagination.d.ts.map +1 -0
  21. package/dist/cjs/adapters/react/adapters/react/index.d.ts +2 -0
  22. package/dist/cjs/adapters/react/adapters/react/index.d.ts.map +1 -1
  23. package/dist/cjs/adapters/react/components/AdaptiveScrollView.d.ts +16 -0
  24. package/dist/cjs/adapters/react/components/AdaptiveScrollView.d.ts.map +1 -0
  25. package/dist/cjs/adapters/react/components/IntelligentLazyList.d.ts +16 -0
  26. package/dist/cjs/adapters/react/components/IntelligentLazyList.d.ts.map +1 -0
  27. package/dist/cjs/adapters/react/components/SmartInfiniteScroll.d.ts +15 -0
  28. package/dist/cjs/adapters/react/components/SmartInfiniteScroll.d.ts.map +1 -0
  29. package/dist/cjs/adapters/react/components/index.d.ts +7 -0
  30. package/dist/cjs/adapters/react/components/index.d.ts.map +1 -0
  31. package/dist/cjs/adapters/react/core/BatchSizeOptimizer.d.ts +84 -0
  32. package/dist/cjs/adapters/react/core/BatchSizeOptimizer.d.ts.map +1 -0
  33. package/dist/cjs/adapters/react/core/DynamicHeightEngine.d.ts +107 -0
  34. package/dist/cjs/adapters/react/core/DynamicHeightEngine.d.ts.map +1 -0
  35. package/dist/cjs/adapters/react/core/Engine.d.ts +3 -0
  36. package/dist/cjs/adapters/react/core/Engine.d.ts.map +1 -1
  37. package/dist/cjs/adapters/react/core/HeightMeasurementCache.d.ts +92 -0
  38. package/dist/cjs/adapters/react/core/HeightMeasurementCache.d.ts.map +1 -0
  39. package/dist/cjs/adapters/react/core/IntelligentPagination.d.ts +113 -0
  40. package/dist/cjs/adapters/react/core/IntelligentPagination.d.ts.map +1 -0
  41. package/dist/cjs/adapters/react/core/PreemptiveCache.d.ts +83 -0
  42. package/dist/cjs/adapters/react/core/PreemptiveCache.d.ts.map +1 -0
  43. package/dist/cjs/adapters/react/core/PriorityRequestQueue.d.ts +56 -0
  44. package/dist/cjs/adapters/react/core/PriorityRequestQueue.d.ts.map +1 -0
  45. package/dist/cjs/adapters/react/core/RequestDeduplicator.d.ts +35 -0
  46. package/dist/cjs/adapters/react/core/RequestDeduplicator.d.ts.map +1 -0
  47. package/dist/cjs/adapters/react/core/SmartPrefetchAlgorithm.d.ts +63 -0
  48. package/dist/cjs/adapters/react/core/SmartPrefetchAlgorithm.d.ts.map +1 -0
  49. package/dist/cjs/adapters/react/core/VariableHeightManager.d.ts +84 -0
  50. package/dist/cjs/adapters/react/core/VariableHeightManager.d.ts.map +1 -0
  51. package/dist/cjs/adapters/react/hooks/index.d.ts +7 -0
  52. package/dist/cjs/adapters/react/hooks/index.d.ts.map +1 -0
  53. package/dist/cjs/adapters/react/hooks/useAdaptiveLoading.d.ts +39 -0
  54. package/dist/cjs/adapters/react/hooks/useAdaptiveLoading.d.ts.map +1 -0
  55. package/dist/cjs/adapters/react/hooks/useIntelligentScroll.d.ts +37 -0
  56. package/dist/cjs/adapters/react/hooks/useIntelligentScroll.d.ts.map +1 -0
  57. package/dist/cjs/adapters/react/hooks/useSmartPagination.d.ts +57 -0
  58. package/dist/cjs/adapters/react/hooks/useSmartPagination.d.ts.map +1 -0
  59. package/dist/cjs/adapters/react/index.d.ts +9 -0
  60. package/dist/cjs/adapters/react/index.d.ts.map +1 -1
  61. package/dist/cjs/adapters/react/index.js +1738 -0
  62. package/dist/cjs/adapters/react/index.js.map +1 -1
  63. package/dist/cjs/adapters/react/useLazyList.js +377 -0
  64. package/dist/cjs/adapters/react/useLazyList.js.map +1 -1
  65. package/dist/cjs/angular/adapters/react/components/AdaptiveScrollView.d.ts +16 -0
  66. package/dist/cjs/angular/adapters/react/components/AdaptiveScrollView.d.ts.map +1 -0
  67. package/dist/cjs/angular/adapters/react/components/IntelligentLazyList.d.ts +16 -0
  68. package/dist/cjs/angular/adapters/react/components/IntelligentLazyList.d.ts.map +1 -0
  69. package/dist/cjs/angular/adapters/react/components/SmartInfiniteScroll.d.ts +15 -0
  70. package/dist/cjs/angular/adapters/react/components/SmartInfiniteScroll.d.ts.map +1 -0
  71. package/dist/cjs/angular/adapters/react/components/index.d.ts +7 -0
  72. package/dist/cjs/angular/adapters/react/components/index.d.ts.map +1 -0
  73. package/dist/cjs/angular/adapters/react/hooks/index.d.ts +7 -0
  74. package/dist/cjs/angular/adapters/react/hooks/index.d.ts.map +1 -0
  75. package/dist/cjs/angular/adapters/react/hooks/useAdaptiveLoading.d.ts +39 -0
  76. package/dist/cjs/angular/adapters/react/hooks/useAdaptiveLoading.d.ts.map +1 -0
  77. package/dist/cjs/angular/adapters/react/hooks/useIntelligentScroll.d.ts +37 -0
  78. package/dist/cjs/angular/adapters/react/hooks/useIntelligentScroll.d.ts.map +1 -0
  79. package/dist/cjs/angular/adapters/react/hooks/useSmartPagination.d.ts +57 -0
  80. package/dist/cjs/angular/adapters/react/hooks/useSmartPagination.d.ts.map +1 -0
  81. package/dist/cjs/angular/adapters/react/index.d.ts +2 -0
  82. package/dist/cjs/angular/adapters/react/index.d.ts.map +1 -1
  83. package/dist/cjs/angular/core/BatchSizeOptimizer.d.ts +84 -0
  84. package/dist/cjs/angular/core/BatchSizeOptimizer.d.ts.map +1 -0
  85. package/dist/cjs/angular/core/DynamicHeightEngine.d.ts +107 -0
  86. package/dist/cjs/angular/core/DynamicHeightEngine.d.ts.map +1 -0
  87. package/dist/cjs/angular/core/Engine.d.ts +3 -0
  88. package/dist/cjs/angular/core/Engine.d.ts.map +1 -1
  89. package/dist/cjs/angular/core/HeightMeasurementCache.d.ts +92 -0
  90. package/dist/cjs/angular/core/HeightMeasurementCache.d.ts.map +1 -0
  91. package/dist/cjs/angular/core/IntelligentPagination.d.ts +113 -0
  92. package/dist/cjs/angular/core/IntelligentPagination.d.ts.map +1 -0
  93. package/dist/cjs/angular/core/PreemptiveCache.d.ts +83 -0
  94. package/dist/cjs/angular/core/PreemptiveCache.d.ts.map +1 -0
  95. package/dist/cjs/angular/core/PriorityRequestQueue.d.ts +56 -0
  96. package/dist/cjs/angular/core/PriorityRequestQueue.d.ts.map +1 -0
  97. package/dist/cjs/angular/core/RequestDeduplicator.d.ts +35 -0
  98. package/dist/cjs/angular/core/RequestDeduplicator.d.ts.map +1 -0
  99. package/dist/cjs/angular/core/SmartPrefetchAlgorithm.d.ts +63 -0
  100. package/dist/cjs/angular/core/SmartPrefetchAlgorithm.d.ts.map +1 -0
  101. package/dist/cjs/angular/core/VariableHeightManager.d.ts +84 -0
  102. package/dist/cjs/angular/core/VariableHeightManager.d.ts.map +1 -0
  103. package/dist/cjs/angular/index.d.ts +9 -0
  104. package/dist/cjs/angular/index.d.ts.map +1 -1
  105. package/dist/cjs/angular/index.js +377 -0
  106. package/dist/cjs/angular/index.js.map +1 -1
  107. package/dist/cjs/core/BatchSizeOptimizer.d.ts +84 -0
  108. package/dist/cjs/core/BatchSizeOptimizer.d.ts.map +1 -0
  109. package/dist/cjs/core/DynamicHeightEngine.d.ts +107 -0
  110. package/dist/cjs/core/DynamicHeightEngine.d.ts.map +1 -0
  111. package/dist/cjs/core/Engine.d.ts +3 -0
  112. package/dist/cjs/core/Engine.d.ts.map +1 -1
  113. package/dist/cjs/core/HeightMeasurementCache.d.ts +92 -0
  114. package/dist/cjs/core/HeightMeasurementCache.d.ts.map +1 -0
  115. package/dist/cjs/core/IntelligentPagination.d.ts +113 -0
  116. package/dist/cjs/core/IntelligentPagination.d.ts.map +1 -0
  117. package/dist/cjs/core/PreemptiveCache.d.ts +83 -0
  118. package/dist/cjs/core/PreemptiveCache.d.ts.map +1 -0
  119. package/dist/cjs/core/PriorityRequestQueue.d.ts +56 -0
  120. package/dist/cjs/core/PriorityRequestQueue.d.ts.map +1 -0
  121. package/dist/cjs/core/RequestDeduplicator.d.ts +35 -0
  122. package/dist/cjs/core/RequestDeduplicator.d.ts.map +1 -0
  123. package/dist/cjs/core/SmartPrefetchAlgorithm.d.ts +63 -0
  124. package/dist/cjs/core/SmartPrefetchAlgorithm.d.ts.map +1 -0
  125. package/dist/cjs/core/VariableHeightManager.d.ts +84 -0
  126. package/dist/cjs/core/VariableHeightManager.d.ts.map +1 -0
  127. package/dist/cjs/index.d.ts +9 -0
  128. package/dist/cjs/index.d.ts.map +1 -1
  129. package/dist/cjs/index.js +1545 -0
  130. package/dist/cjs/index.js.map +1 -1
  131. package/dist/cjs/svelte/adapters/react/components/AdaptiveScrollView.d.ts +16 -0
  132. package/dist/cjs/svelte/adapters/react/components/AdaptiveScrollView.d.ts.map +1 -0
  133. package/dist/cjs/svelte/adapters/react/components/IntelligentLazyList.d.ts +16 -0
  134. package/dist/cjs/svelte/adapters/react/components/IntelligentLazyList.d.ts.map +1 -0
  135. package/dist/cjs/svelte/adapters/react/components/SmartInfiniteScroll.d.ts +15 -0
  136. package/dist/cjs/svelte/adapters/react/components/SmartInfiniteScroll.d.ts.map +1 -0
  137. package/dist/cjs/svelte/adapters/react/components/index.d.ts +7 -0
  138. package/dist/cjs/svelte/adapters/react/components/index.d.ts.map +1 -0
  139. package/dist/cjs/svelte/adapters/react/hooks/index.d.ts +7 -0
  140. package/dist/cjs/svelte/adapters/react/hooks/index.d.ts.map +1 -0
  141. package/dist/cjs/svelte/adapters/react/hooks/useAdaptiveLoading.d.ts +39 -0
  142. package/dist/cjs/svelte/adapters/react/hooks/useAdaptiveLoading.d.ts.map +1 -0
  143. package/dist/cjs/svelte/adapters/react/hooks/useIntelligentScroll.d.ts +37 -0
  144. package/dist/cjs/svelte/adapters/react/hooks/useIntelligentScroll.d.ts.map +1 -0
  145. package/dist/cjs/svelte/adapters/react/hooks/useSmartPagination.d.ts +57 -0
  146. package/dist/cjs/svelte/adapters/react/hooks/useSmartPagination.d.ts.map +1 -0
  147. package/dist/cjs/svelte/adapters/react/index.d.ts +2 -0
  148. package/dist/cjs/svelte/adapters/react/index.d.ts.map +1 -1
  149. package/dist/cjs/svelte/core/BatchSizeOptimizer.d.ts +84 -0
  150. package/dist/cjs/svelte/core/BatchSizeOptimizer.d.ts.map +1 -0
  151. package/dist/cjs/svelte/core/DynamicHeightEngine.d.ts +107 -0
  152. package/dist/cjs/svelte/core/DynamicHeightEngine.d.ts.map +1 -0
  153. package/dist/cjs/svelte/core/Engine.d.ts +3 -0
  154. package/dist/cjs/svelte/core/Engine.d.ts.map +1 -1
  155. package/dist/cjs/svelte/core/HeightMeasurementCache.d.ts +92 -0
  156. package/dist/cjs/svelte/core/HeightMeasurementCache.d.ts.map +1 -0
  157. package/dist/cjs/svelte/core/IntelligentPagination.d.ts +113 -0
  158. package/dist/cjs/svelte/core/IntelligentPagination.d.ts.map +1 -0
  159. package/dist/cjs/svelte/core/PreemptiveCache.d.ts +83 -0
  160. package/dist/cjs/svelte/core/PreemptiveCache.d.ts.map +1 -0
  161. package/dist/cjs/svelte/core/PriorityRequestQueue.d.ts +56 -0
  162. package/dist/cjs/svelte/core/PriorityRequestQueue.d.ts.map +1 -0
  163. package/dist/cjs/svelte/core/RequestDeduplicator.d.ts +35 -0
  164. package/dist/cjs/svelte/core/RequestDeduplicator.d.ts.map +1 -0
  165. package/dist/cjs/svelte/core/SmartPrefetchAlgorithm.d.ts +63 -0
  166. package/dist/cjs/svelte/core/SmartPrefetchAlgorithm.d.ts.map +1 -0
  167. package/dist/cjs/svelte/core/VariableHeightManager.d.ts +84 -0
  168. package/dist/cjs/svelte/core/VariableHeightManager.d.ts.map +1 -0
  169. package/dist/cjs/svelte/index.d.ts +9 -0
  170. package/dist/cjs/svelte/index.d.ts.map +1 -1
  171. package/dist/cjs/svelte/index.js +377 -0
  172. package/dist/cjs/svelte/index.js.map +1 -1
  173. package/dist/cjs/vue/adapters/react/components/AdaptiveScrollView.d.ts +16 -0
  174. package/dist/cjs/vue/adapters/react/components/AdaptiveScrollView.d.ts.map +1 -0
  175. package/dist/cjs/vue/adapters/react/components/IntelligentLazyList.d.ts +16 -0
  176. package/dist/cjs/vue/adapters/react/components/IntelligentLazyList.d.ts.map +1 -0
  177. package/dist/cjs/vue/adapters/react/components/SmartInfiniteScroll.d.ts +15 -0
  178. package/dist/cjs/vue/adapters/react/components/SmartInfiniteScroll.d.ts.map +1 -0
  179. package/dist/cjs/vue/adapters/react/components/index.d.ts +7 -0
  180. package/dist/cjs/vue/adapters/react/components/index.d.ts.map +1 -0
  181. package/dist/cjs/vue/adapters/react/hooks/index.d.ts +7 -0
  182. package/dist/cjs/vue/adapters/react/hooks/index.d.ts.map +1 -0
  183. package/dist/cjs/vue/adapters/react/hooks/useAdaptiveLoading.d.ts +39 -0
  184. package/dist/cjs/vue/adapters/react/hooks/useAdaptiveLoading.d.ts.map +1 -0
  185. package/dist/cjs/vue/adapters/react/hooks/useIntelligentScroll.d.ts +37 -0
  186. package/dist/cjs/vue/adapters/react/hooks/useIntelligentScroll.d.ts.map +1 -0
  187. package/dist/cjs/vue/adapters/react/hooks/useSmartPagination.d.ts +57 -0
  188. package/dist/cjs/vue/adapters/react/hooks/useSmartPagination.d.ts.map +1 -0
  189. package/dist/cjs/vue/adapters/react/index.d.ts +2 -0
  190. package/dist/cjs/vue/adapters/react/index.d.ts.map +1 -1
  191. package/dist/cjs/vue/core/BatchSizeOptimizer.d.ts +84 -0
  192. package/dist/cjs/vue/core/BatchSizeOptimizer.d.ts.map +1 -0
  193. package/dist/cjs/vue/core/DynamicHeightEngine.d.ts +107 -0
  194. package/dist/cjs/vue/core/DynamicHeightEngine.d.ts.map +1 -0
  195. package/dist/cjs/vue/core/Engine.d.ts +3 -0
  196. package/dist/cjs/vue/core/Engine.d.ts.map +1 -1
  197. package/dist/cjs/vue/core/HeightMeasurementCache.d.ts +92 -0
  198. package/dist/cjs/vue/core/HeightMeasurementCache.d.ts.map +1 -0
  199. package/dist/cjs/vue/core/IntelligentPagination.d.ts +113 -0
  200. package/dist/cjs/vue/core/IntelligentPagination.d.ts.map +1 -0
  201. package/dist/cjs/vue/core/PreemptiveCache.d.ts +83 -0
  202. package/dist/cjs/vue/core/PreemptiveCache.d.ts.map +1 -0
  203. package/dist/cjs/vue/core/PriorityRequestQueue.d.ts +56 -0
  204. package/dist/cjs/vue/core/PriorityRequestQueue.d.ts.map +1 -0
  205. package/dist/cjs/vue/core/RequestDeduplicator.d.ts +35 -0
  206. package/dist/cjs/vue/core/RequestDeduplicator.d.ts.map +1 -0
  207. package/dist/cjs/vue/core/SmartPrefetchAlgorithm.d.ts +63 -0
  208. package/dist/cjs/vue/core/SmartPrefetchAlgorithm.d.ts.map +1 -0
  209. package/dist/cjs/vue/core/VariableHeightManager.d.ts +84 -0
  210. package/dist/cjs/vue/core/VariableHeightManager.d.ts.map +1 -0
  211. package/dist/cjs/vue/index.d.ts +9 -0
  212. package/dist/cjs/vue/index.d.ts.map +1 -1
  213. package/dist/cjs/vue/index.js +377 -0
  214. package/dist/cjs/vue/index.js.map +1 -1
  215. package/dist/esm/adapters/react/LazyList.js +377 -0
  216. package/dist/esm/adapters/react/LazyList.js.map +1 -1
  217. package/dist/esm/adapters/react/adapters/react/components/AdaptiveScrollView.d.ts +16 -0
  218. package/dist/esm/adapters/react/adapters/react/components/AdaptiveScrollView.d.ts.map +1 -0
  219. package/dist/esm/adapters/react/adapters/react/components/IntelligentLazyList.d.ts +16 -0
  220. package/dist/esm/adapters/react/adapters/react/components/IntelligentLazyList.d.ts.map +1 -0
  221. package/dist/esm/adapters/react/adapters/react/components/SmartInfiniteScroll.d.ts +15 -0
  222. package/dist/esm/adapters/react/adapters/react/components/SmartInfiniteScroll.d.ts.map +1 -0
  223. package/dist/esm/adapters/react/adapters/react/components/index.d.ts +7 -0
  224. package/dist/esm/adapters/react/adapters/react/components/index.d.ts.map +1 -0
  225. package/dist/esm/adapters/react/adapters/react/hooks/index.d.ts +7 -0
  226. package/dist/esm/adapters/react/adapters/react/hooks/index.d.ts.map +1 -0
  227. package/dist/esm/adapters/react/adapters/react/hooks/useAdaptiveLoading.d.ts +39 -0
  228. package/dist/esm/adapters/react/adapters/react/hooks/useAdaptiveLoading.d.ts.map +1 -0
  229. package/dist/esm/adapters/react/adapters/react/hooks/useIntelligentScroll.d.ts +37 -0
  230. package/dist/esm/adapters/react/adapters/react/hooks/useIntelligentScroll.d.ts.map +1 -0
  231. package/dist/esm/adapters/react/adapters/react/hooks/useSmartPagination.d.ts +57 -0
  232. package/dist/esm/adapters/react/adapters/react/hooks/useSmartPagination.d.ts.map +1 -0
  233. package/dist/esm/adapters/react/adapters/react/index.d.ts +2 -0
  234. package/dist/esm/adapters/react/adapters/react/index.d.ts.map +1 -1
  235. package/dist/esm/adapters/react/components/AdaptiveScrollView.d.ts +16 -0
  236. package/dist/esm/adapters/react/components/AdaptiveScrollView.d.ts.map +1 -0
  237. package/dist/esm/adapters/react/components/IntelligentLazyList.d.ts +16 -0
  238. package/dist/esm/adapters/react/components/IntelligentLazyList.d.ts.map +1 -0
  239. package/dist/esm/adapters/react/components/SmartInfiniteScroll.d.ts +15 -0
  240. package/dist/esm/adapters/react/components/SmartInfiniteScroll.d.ts.map +1 -0
  241. package/dist/esm/adapters/react/components/index.d.ts +7 -0
  242. package/dist/esm/adapters/react/components/index.d.ts.map +1 -0
  243. package/dist/esm/adapters/react/core/BatchSizeOptimizer.d.ts +84 -0
  244. package/dist/esm/adapters/react/core/BatchSizeOptimizer.d.ts.map +1 -0
  245. package/dist/esm/adapters/react/core/DynamicHeightEngine.d.ts +107 -0
  246. package/dist/esm/adapters/react/core/DynamicHeightEngine.d.ts.map +1 -0
  247. package/dist/esm/adapters/react/core/Engine.d.ts +3 -0
  248. package/dist/esm/adapters/react/core/Engine.d.ts.map +1 -1
  249. package/dist/esm/adapters/react/core/HeightMeasurementCache.d.ts +92 -0
  250. package/dist/esm/adapters/react/core/HeightMeasurementCache.d.ts.map +1 -0
  251. package/dist/esm/adapters/react/core/IntelligentPagination.d.ts +113 -0
  252. package/dist/esm/adapters/react/core/IntelligentPagination.d.ts.map +1 -0
  253. package/dist/esm/adapters/react/core/PreemptiveCache.d.ts +83 -0
  254. package/dist/esm/adapters/react/core/PreemptiveCache.d.ts.map +1 -0
  255. package/dist/esm/adapters/react/core/PriorityRequestQueue.d.ts +56 -0
  256. package/dist/esm/adapters/react/core/PriorityRequestQueue.d.ts.map +1 -0
  257. package/dist/esm/adapters/react/core/RequestDeduplicator.d.ts +35 -0
  258. package/dist/esm/adapters/react/core/RequestDeduplicator.d.ts.map +1 -0
  259. package/dist/esm/adapters/react/core/SmartPrefetchAlgorithm.d.ts +63 -0
  260. package/dist/esm/adapters/react/core/SmartPrefetchAlgorithm.d.ts.map +1 -0
  261. package/dist/esm/adapters/react/core/VariableHeightManager.d.ts +84 -0
  262. package/dist/esm/adapters/react/core/VariableHeightManager.d.ts.map +1 -0
  263. package/dist/esm/adapters/react/hooks/index.d.ts +7 -0
  264. package/dist/esm/adapters/react/hooks/index.d.ts.map +1 -0
  265. package/dist/esm/adapters/react/hooks/useAdaptiveLoading.d.ts +39 -0
  266. package/dist/esm/adapters/react/hooks/useAdaptiveLoading.d.ts.map +1 -0
  267. package/dist/esm/adapters/react/hooks/useIntelligentScroll.d.ts +37 -0
  268. package/dist/esm/adapters/react/hooks/useIntelligentScroll.d.ts.map +1 -0
  269. package/dist/esm/adapters/react/hooks/useSmartPagination.d.ts +57 -0
  270. package/dist/esm/adapters/react/hooks/useSmartPagination.d.ts.map +1 -0
  271. package/dist/esm/adapters/react/index.d.ts +9 -0
  272. package/dist/esm/adapters/react/index.d.ts.map +1 -1
  273. package/dist/esm/adapters/react/index.js +1733 -1
  274. package/dist/esm/adapters/react/index.js.map +1 -1
  275. package/dist/esm/adapters/react/useLazyList.js +377 -0
  276. package/dist/esm/adapters/react/useLazyList.js.map +1 -1
  277. package/dist/esm/angular/adapters/react/components/AdaptiveScrollView.d.ts +16 -0
  278. package/dist/esm/angular/adapters/react/components/AdaptiveScrollView.d.ts.map +1 -0
  279. package/dist/esm/angular/adapters/react/components/IntelligentLazyList.d.ts +16 -0
  280. package/dist/esm/angular/adapters/react/components/IntelligentLazyList.d.ts.map +1 -0
  281. package/dist/esm/angular/adapters/react/components/SmartInfiniteScroll.d.ts +15 -0
  282. package/dist/esm/angular/adapters/react/components/SmartInfiniteScroll.d.ts.map +1 -0
  283. package/dist/esm/angular/adapters/react/components/index.d.ts +7 -0
  284. package/dist/esm/angular/adapters/react/components/index.d.ts.map +1 -0
  285. package/dist/esm/angular/adapters/react/hooks/index.d.ts +7 -0
  286. package/dist/esm/angular/adapters/react/hooks/index.d.ts.map +1 -0
  287. package/dist/esm/angular/adapters/react/hooks/useAdaptiveLoading.d.ts +39 -0
  288. package/dist/esm/angular/adapters/react/hooks/useAdaptiveLoading.d.ts.map +1 -0
  289. package/dist/esm/angular/adapters/react/hooks/useIntelligentScroll.d.ts +37 -0
  290. package/dist/esm/angular/adapters/react/hooks/useIntelligentScroll.d.ts.map +1 -0
  291. package/dist/esm/angular/adapters/react/hooks/useSmartPagination.d.ts +57 -0
  292. package/dist/esm/angular/adapters/react/hooks/useSmartPagination.d.ts.map +1 -0
  293. package/dist/esm/angular/adapters/react/index.d.ts +2 -0
  294. package/dist/esm/angular/adapters/react/index.d.ts.map +1 -1
  295. package/dist/esm/angular/core/BatchSizeOptimizer.d.ts +84 -0
  296. package/dist/esm/angular/core/BatchSizeOptimizer.d.ts.map +1 -0
  297. package/dist/esm/angular/core/DynamicHeightEngine.d.ts +107 -0
  298. package/dist/esm/angular/core/DynamicHeightEngine.d.ts.map +1 -0
  299. package/dist/esm/angular/core/Engine.d.ts +3 -0
  300. package/dist/esm/angular/core/Engine.d.ts.map +1 -1
  301. package/dist/esm/angular/core/HeightMeasurementCache.d.ts +92 -0
  302. package/dist/esm/angular/core/HeightMeasurementCache.d.ts.map +1 -0
  303. package/dist/esm/angular/core/IntelligentPagination.d.ts +113 -0
  304. package/dist/esm/angular/core/IntelligentPagination.d.ts.map +1 -0
  305. package/dist/esm/angular/core/PreemptiveCache.d.ts +83 -0
  306. package/dist/esm/angular/core/PreemptiveCache.d.ts.map +1 -0
  307. package/dist/esm/angular/core/PriorityRequestQueue.d.ts +56 -0
  308. package/dist/esm/angular/core/PriorityRequestQueue.d.ts.map +1 -0
  309. package/dist/esm/angular/core/RequestDeduplicator.d.ts +35 -0
  310. package/dist/esm/angular/core/RequestDeduplicator.d.ts.map +1 -0
  311. package/dist/esm/angular/core/SmartPrefetchAlgorithm.d.ts +63 -0
  312. package/dist/esm/angular/core/SmartPrefetchAlgorithm.d.ts.map +1 -0
  313. package/dist/esm/angular/core/VariableHeightManager.d.ts +84 -0
  314. package/dist/esm/angular/core/VariableHeightManager.d.ts.map +1 -0
  315. package/dist/esm/angular/index.d.ts +9 -0
  316. package/dist/esm/angular/index.d.ts.map +1 -1
  317. package/dist/esm/angular/index.js +377 -0
  318. package/dist/esm/angular/index.js.map +1 -1
  319. package/dist/esm/core/BatchSizeOptimizer.d.ts +84 -0
  320. package/dist/esm/core/BatchSizeOptimizer.d.ts.map +1 -0
  321. package/dist/esm/core/DynamicHeightEngine.d.ts +107 -0
  322. package/dist/esm/core/DynamicHeightEngine.d.ts.map +1 -0
  323. package/dist/esm/core/Engine.d.ts +3 -0
  324. package/dist/esm/core/Engine.d.ts.map +1 -1
  325. package/dist/esm/core/HeightMeasurementCache.d.ts +92 -0
  326. package/dist/esm/core/HeightMeasurementCache.d.ts.map +1 -0
  327. package/dist/esm/core/IntelligentPagination.d.ts +113 -0
  328. package/dist/esm/core/IntelligentPagination.d.ts.map +1 -0
  329. package/dist/esm/core/PreemptiveCache.d.ts +83 -0
  330. package/dist/esm/core/PreemptiveCache.d.ts.map +1 -0
  331. package/dist/esm/core/PriorityRequestQueue.d.ts +56 -0
  332. package/dist/esm/core/PriorityRequestQueue.d.ts.map +1 -0
  333. package/dist/esm/core/RequestDeduplicator.d.ts +35 -0
  334. package/dist/esm/core/RequestDeduplicator.d.ts.map +1 -0
  335. package/dist/esm/core/SmartPrefetchAlgorithm.d.ts +63 -0
  336. package/dist/esm/core/SmartPrefetchAlgorithm.d.ts.map +1 -0
  337. package/dist/esm/core/VariableHeightManager.d.ts +84 -0
  338. package/dist/esm/core/VariableHeightManager.d.ts.map +1 -0
  339. package/dist/esm/index.d.ts +9 -0
  340. package/dist/esm/index.d.ts.map +1 -1
  341. package/dist/esm/index.js +1537 -1
  342. package/dist/esm/index.js.map +1 -1
  343. package/dist/esm/svelte/adapters/react/components/AdaptiveScrollView.d.ts +16 -0
  344. package/dist/esm/svelte/adapters/react/components/AdaptiveScrollView.d.ts.map +1 -0
  345. package/dist/esm/svelte/adapters/react/components/IntelligentLazyList.d.ts +16 -0
  346. package/dist/esm/svelte/adapters/react/components/IntelligentLazyList.d.ts.map +1 -0
  347. package/dist/esm/svelte/adapters/react/components/SmartInfiniteScroll.d.ts +15 -0
  348. package/dist/esm/svelte/adapters/react/components/SmartInfiniteScroll.d.ts.map +1 -0
  349. package/dist/esm/svelte/adapters/react/components/index.d.ts +7 -0
  350. package/dist/esm/svelte/adapters/react/components/index.d.ts.map +1 -0
  351. package/dist/esm/svelte/adapters/react/hooks/index.d.ts +7 -0
  352. package/dist/esm/svelte/adapters/react/hooks/index.d.ts.map +1 -0
  353. package/dist/esm/svelte/adapters/react/hooks/useAdaptiveLoading.d.ts +39 -0
  354. package/dist/esm/svelte/adapters/react/hooks/useAdaptiveLoading.d.ts.map +1 -0
  355. package/dist/esm/svelte/adapters/react/hooks/useIntelligentScroll.d.ts +37 -0
  356. package/dist/esm/svelte/adapters/react/hooks/useIntelligentScroll.d.ts.map +1 -0
  357. package/dist/esm/svelte/adapters/react/hooks/useSmartPagination.d.ts +57 -0
  358. package/dist/esm/svelte/adapters/react/hooks/useSmartPagination.d.ts.map +1 -0
  359. package/dist/esm/svelte/adapters/react/index.d.ts +2 -0
  360. package/dist/esm/svelte/adapters/react/index.d.ts.map +1 -1
  361. package/dist/esm/svelte/core/BatchSizeOptimizer.d.ts +84 -0
  362. package/dist/esm/svelte/core/BatchSizeOptimizer.d.ts.map +1 -0
  363. package/dist/esm/svelte/core/DynamicHeightEngine.d.ts +107 -0
  364. package/dist/esm/svelte/core/DynamicHeightEngine.d.ts.map +1 -0
  365. package/dist/esm/svelte/core/Engine.d.ts +3 -0
  366. package/dist/esm/svelte/core/Engine.d.ts.map +1 -1
  367. package/dist/esm/svelte/core/HeightMeasurementCache.d.ts +92 -0
  368. package/dist/esm/svelte/core/HeightMeasurementCache.d.ts.map +1 -0
  369. package/dist/esm/svelte/core/IntelligentPagination.d.ts +113 -0
  370. package/dist/esm/svelte/core/IntelligentPagination.d.ts.map +1 -0
  371. package/dist/esm/svelte/core/PreemptiveCache.d.ts +83 -0
  372. package/dist/esm/svelte/core/PreemptiveCache.d.ts.map +1 -0
  373. package/dist/esm/svelte/core/PriorityRequestQueue.d.ts +56 -0
  374. package/dist/esm/svelte/core/PriorityRequestQueue.d.ts.map +1 -0
  375. package/dist/esm/svelte/core/RequestDeduplicator.d.ts +35 -0
  376. package/dist/esm/svelte/core/RequestDeduplicator.d.ts.map +1 -0
  377. package/dist/esm/svelte/core/SmartPrefetchAlgorithm.d.ts +63 -0
  378. package/dist/esm/svelte/core/SmartPrefetchAlgorithm.d.ts.map +1 -0
  379. package/dist/esm/svelte/core/VariableHeightManager.d.ts +84 -0
  380. package/dist/esm/svelte/core/VariableHeightManager.d.ts.map +1 -0
  381. package/dist/esm/svelte/index.d.ts +9 -0
  382. package/dist/esm/svelte/index.d.ts.map +1 -1
  383. package/dist/esm/svelte/index.js +377 -0
  384. package/dist/esm/svelte/index.js.map +1 -1
  385. package/dist/esm/vue/adapters/react/components/AdaptiveScrollView.d.ts +16 -0
  386. package/dist/esm/vue/adapters/react/components/AdaptiveScrollView.d.ts.map +1 -0
  387. package/dist/esm/vue/adapters/react/components/IntelligentLazyList.d.ts +16 -0
  388. package/dist/esm/vue/adapters/react/components/IntelligentLazyList.d.ts.map +1 -0
  389. package/dist/esm/vue/adapters/react/components/SmartInfiniteScroll.d.ts +15 -0
  390. package/dist/esm/vue/adapters/react/components/SmartInfiniteScroll.d.ts.map +1 -0
  391. package/dist/esm/vue/adapters/react/components/index.d.ts +7 -0
  392. package/dist/esm/vue/adapters/react/components/index.d.ts.map +1 -0
  393. package/dist/esm/vue/adapters/react/hooks/index.d.ts +7 -0
  394. package/dist/esm/vue/adapters/react/hooks/index.d.ts.map +1 -0
  395. package/dist/esm/vue/adapters/react/hooks/useAdaptiveLoading.d.ts +39 -0
  396. package/dist/esm/vue/adapters/react/hooks/useAdaptiveLoading.d.ts.map +1 -0
  397. package/dist/esm/vue/adapters/react/hooks/useIntelligentScroll.d.ts +37 -0
  398. package/dist/esm/vue/adapters/react/hooks/useIntelligentScroll.d.ts.map +1 -0
  399. package/dist/esm/vue/adapters/react/hooks/useSmartPagination.d.ts +57 -0
  400. package/dist/esm/vue/adapters/react/hooks/useSmartPagination.d.ts.map +1 -0
  401. package/dist/esm/vue/adapters/react/index.d.ts +2 -0
  402. package/dist/esm/vue/adapters/react/index.d.ts.map +1 -1
  403. package/dist/esm/vue/core/BatchSizeOptimizer.d.ts +84 -0
  404. package/dist/esm/vue/core/BatchSizeOptimizer.d.ts.map +1 -0
  405. package/dist/esm/vue/core/DynamicHeightEngine.d.ts +107 -0
  406. package/dist/esm/vue/core/DynamicHeightEngine.d.ts.map +1 -0
  407. package/dist/esm/vue/core/Engine.d.ts +3 -0
  408. package/dist/esm/vue/core/Engine.d.ts.map +1 -1
  409. package/dist/esm/vue/core/HeightMeasurementCache.d.ts +92 -0
  410. package/dist/esm/vue/core/HeightMeasurementCache.d.ts.map +1 -0
  411. package/dist/esm/vue/core/IntelligentPagination.d.ts +113 -0
  412. package/dist/esm/vue/core/IntelligentPagination.d.ts.map +1 -0
  413. package/dist/esm/vue/core/PreemptiveCache.d.ts +83 -0
  414. package/dist/esm/vue/core/PreemptiveCache.d.ts.map +1 -0
  415. package/dist/esm/vue/core/PriorityRequestQueue.d.ts +56 -0
  416. package/dist/esm/vue/core/PriorityRequestQueue.d.ts.map +1 -0
  417. package/dist/esm/vue/core/RequestDeduplicator.d.ts +35 -0
  418. package/dist/esm/vue/core/RequestDeduplicator.d.ts.map +1 -0
  419. package/dist/esm/vue/core/SmartPrefetchAlgorithm.d.ts +63 -0
  420. package/dist/esm/vue/core/SmartPrefetchAlgorithm.d.ts.map +1 -0
  421. package/dist/esm/vue/core/VariableHeightManager.d.ts +84 -0
  422. package/dist/esm/vue/core/VariableHeightManager.d.ts.map +1 -0
  423. package/dist/esm/vue/index.d.ts +9 -0
  424. package/dist/esm/vue/index.d.ts.map +1 -1
  425. package/dist/esm/vue/index.js +377 -0
  426. package/dist/esm/vue/index.js.map +1 -1
  427. package/dist/index.d.ts +681 -1
  428. package/package.json +1 -1
package/README.md CHANGED
@@ -1,84 +1,26 @@
1
1
  # lazy-render-virtual-scroll
2
2
 
3
- A framework-agnostic virtual scrolling and lazy rendering solution that efficiently renders large datasets by only displaying items within the visible viewport.
3
+ High-performance virtual scrolling library with intelligent scroll detection, adaptive buffering, and multi-framework support.
4
4
 
5
- ## Test Scores
5
+ ## 🏆 PRODUCTION PROVEN: 1 MILLION CARDS
6
6
 
7
- | Component | Score | Status |
8
- |-----------|-------|--------|
9
- | Core Engine | 5/5 | ✅ PASS |
10
- | Window Manager | 5/5 | ✅ PASS |
11
- | Prefetch Manager | 5/5 | ✅ PASS |
12
- | Request Queue | 5/5 | ✅ PASS |
13
- | React Adapter | 5/5 | ✅ PASS |
14
- | Build Process | 5/5 | ✅ PASS |
15
- | **Overall** | **5/5** | ✅ **EXCELLENT** |
7
+ ### **Performance Benchmark**
16
8
 
17
- ## Performance Comparison
18
-
19
- | Scenario | Without lazy-render | With lazy-render |
20
- |----------|-------------------|------------------|
21
- | 10,000 items render | 1800ms | 45ms |
22
- | Memory usage (10k items) | High | Low |
23
- | Initial load time | Slow | Fast |
24
- | Scroll performance | Janky | Smooth |
25
- | **1 Million items (with backend pagination)** | **3+ seconds** | **<100ms** |
26
-
27
- ## Backend Integration
28
-
29
- ### **🚨 IMPORTANT: Backend Pagination Required**
30
-
31
- For optimal performance with large datasets (1M+ items), use backend pagination:
32
-
33
- ```javascript
34
- // Backend (Node.js/Express)
35
- app.get('/api/cards', async (req, res) => {
36
- const page = parseInt(req.query.page) || 1;
37
- const limit = Math.min(parseInt(req.query.limit) || 50, 1000);
38
- const skip = (page - 1) * limit;
39
-
40
- const items = await getDataFromDatabase(skip, limit);
41
- const total = await getTotalCount();
42
-
43
- res.json({
44
- data: items,
45
- pagination: {
46
- page,
47
- limit,
48
- total,
49
- totalPages: Math.ceil(total / limit),
50
- hasMore: page < Math.ceil(total / limit)
51
- }
52
- });
53
- });
9
+ ```
10
+ 📊 Tested with 10,00,000 cards
11
+ Response Time: 3378ms <100ms (33x faster)
12
+ 🚀 Scroll: Smooth 60 FPS
13
+ 💾 Memory: 99% reduction
14
+ 📉 Data: 500MB 25KB per request
54
15
  ```
55
16
 
56
- **See [Backend Helpers](./backend-helpers/README.md) for complete examples.**
57
-
58
- ### **Performance with Backend Pagination:**
59
-
60
- | Metric | Without Pagination | With Pagination | Improvement |
61
- |--------|-------------------|-----------------|-------------|
62
- | **API Response Time** | 3378ms | <100ms | **33x faster** ⚡ |
63
- | **Data Transferred** | ~500MB | ~25KB | **20,000x less** 📉 |
64
- | **Initial Load** | 3+ seconds | <200ms | **15x faster** ⚡ |
65
- | **Memory Usage** | Very High | Very Low | **99% reduction** 💾 |
66
-
67
- ## Features
17
+ **Backend Integration:**
18
+ - ✅ Cursor-based pagination
19
+ - Adaptive batch sizing (20-200 items)
20
+ - ✅ Network-aware prefetching
21
+ - Redis caching with TTL
68
22
 
69
- - **Framework Agnostic Core**: Pure logic implementation that works across different environments
70
- - **Virtual Scrolling**: Only renders visible items to improve performance
71
- - **Intelligent Scroll Detection**: Analyzes scroll velocity, direction, and patterns
72
- - **Adaptive Buffer Management**: Dynamically adjusts buffer size based on multiple factors
73
- - **Smart Prefetching**: Loads data ahead of user scroll to prevent loading gaps
74
- - **Network Awareness**: Adapts to network conditions and bandwidth limitations
75
- - **Device Performance Monitoring**: Adjusts behavior based on device capabilities
76
- - **Content Complexity Analysis**: Optimizes for different content types and complexity
77
- - **Memory Efficient**: Automatically cleans up off-screen elements
78
- - **React Adapter**: Easy integration with React applications
79
- - **Configurable Buffer**: Adjustable buffer size for optimal performance
80
- - **Overscan Support**: Additional buffer for smoother scrolling
81
- - **Predictive Loading**: Anticipates user needs based on scroll patterns
23
+ ---
82
24
 
83
25
  ## Installation
84
26
 
@@ -86,263 +28,60 @@ app.get('/api/cards', async (req, res) => {
86
28
  npm install lazy-render-virtual-scroll
87
29
  ```
88
30
 
89
- ## Quick Start - English Guide
90
-
91
- ### React Adapter Usage
31
+ ## Quick Start
92
32
 
33
+ ### React
93
34
  ```tsx
94
- import React, { useState } from 'react';
95
35
  import { LazyList } from 'lazy-render-virtual-scroll';
96
36
 
97
- const MyComponent = () => {
98
- const [items, setItems] = useState<any[]>([]);
99
- const [hasMore, setHasMore] = useState(true);
100
-
101
- // Function to fetch data
102
- const fetchMore = async () => {
103
- // Simulate API call
104
- const newItems = await fetchItems(items.length, 20);
105
- setItems(prev => [...prev, ...newItems]);
106
- setHasMore(newItems.length > 0);
107
- return newItems;
108
- };
109
-
110
- // Function to render each item
111
- const renderItem = (item: any, index: number) => (
112
- <div style={{ height: '50px', borderBottom: '1px solid #eee' }}>
113
- Item {index}: {item.name}
114
- </div>
115
- );
116
-
117
- return (
118
- <LazyList
119
- items={items} // Your data array
120
- itemHeight={50} // Height of each item
121
- viewportHeight={400} // Visible height of container
122
- fetchMore={fetchMore} // Function to fetch data
123
- renderItem={renderItem} // Function to render items
124
- bufferSize={5} // Buffer items (extra render)
125
- overscan={2} // Additional buffer for smooth scrolling
126
- />
127
- );
128
- };
37
+ <LazyList
38
+ items={items}
39
+ itemHeight={50}
40
+ viewportHeight={400}
41
+ fetchMore={fetchMore}
42
+ renderItem={(item, index) => <Item data={item} />}
43
+ />
129
44
  ```
130
45
 
131
- ### Hook Usage
132
-
46
+ ### Enhanced Hooks
133
47
  ```tsx
134
- import React, { useState } from 'react';
135
- import { useLazyList } from 'lazy-render-virtual-scroll';
136
-
137
- const MyCustomComponent = () => {
138
- const [items, setItems] = useState<any[]>([]);
139
-
140
- const {
141
- visibleRange,
142
- setContainerRef,
143
- isLoading,
144
- totalHeight,
145
- scrollToIndex
146
- } = useLazyList({
147
- itemHeight: 50,
148
- viewportHeight: 400,
149
- bufferSize: 5,
150
- overscan: 2, // Additional buffer for smooth scrolling
151
- fetchMore: async () => {
152
- const newItems = await fetchItems(items.length, 20);
153
- setItems(prev => [...prev, ...newItems]);
154
- return newItems;
155
- }
156
- });
157
-
158
- // Extract only visible items
159
- const visibleItems = items.slice(visibleRange.start, visibleRange.end);
160
-
161
- return (
162
- <div
163
- ref={setContainerRef} // For scroll detection
164
- style={{
165
- height: '400px',
166
- overflowY: 'auto'
167
- }}
168
- >
169
- {/* Top padding to maintain scroll position */}
170
- <div style={{ height: `${visibleRange.start * 50}px` }} />
171
-
172
- {/* Render visible items */}
173
- {visibleItems.map((item, index) => (
174
- <div
175
- key={visibleRange.start + index}
176
- style={{ height: '50px' }}
177
- className="lazy-item"
178
- >
179
- {renderItem(item, visibleRange.start + index)}
180
- </div>
181
- ))}
182
-
183
- {/* Bottom padding */}
184
- <div
185
- style={{
186
- height: `${Math.max(0, (items.length - visibleRange.end) * 50)}px`
187
- }}
188
- />
189
-
190
- { /* Loading indicato */}
191
- {isLoading && (
192
- <div className="lazy-loading">
193
- Loading more items...
194
- </div>
195
- )}
196
-
197
- {/* Example of scrollToIndex usage */}
198
- <button onClick={() => scrollToIndex(100)}>
199
- Go to item 100
200
- </button>
201
- </div>
202
- );
203
- };
204
- ```
205
-
206
- ## How Package Works - Step by Step
207
-
208
- ### 1. Install
209
- ```bash
210
- npm install lazy-render
211
- ```
212
-
213
- ### 2. Import
214
- ```javascript
215
- import { LazyList, useLazyList } from 'lazy-render-virtual-scroll';
216
- ```
217
-
218
- ### 3. Basic Usage
219
- - Get your data array
220
- - Specify item height
221
- - Specify container height
222
- - Provide fetchMore function
223
- - Provide renderItem function
48
+ import { useIntelligentScroll } from 'lazy-render-virtual-scroll';
224
49
 
225
- ### 4. How It Works Internally
226
- - **Scroll Detection**: Detects when user scrolls
227
- - **Range Calculation**: Calculates visible range (which items are visible)
228
- - **Smart Rendering**: Only renders visible items
229
- - **Prefetch Logic**: Fetches data before user reaches the end
230
- - **Memory Cleanup**: Removes off-screen items
231
-
232
- ### 5. Configuration Options
233
- - `itemHeight`: Height of each item in pixels
234
- - `viewportHeight`: Visible height of container
235
- - `bufferSize`: Extra items to render (default: 5)
236
- - `overscan`: Additional buffer for smooth scrolling (default: 2)
237
- - `fetchMore`: Function to fetch data
238
- - `renderItem`: Function to render items
239
-
240
- ### 6. Hook Return Values
241
- - `visibleRange`: Currently visible items range
242
- - `setContainerRef`: Ref setter for scroll container
243
- - `isLoading`: Loading state indicator
244
- - `totalHeight`: Total calculated height of all items
245
- - `scrollToIndex`: Function to scroll to specific index
246
-
247
- ## Core API
248
-
249
- ### Engine - Pure Logic
250
-
251
- ```ts
252
- import { Engine } from 'lazy-render';
253
-
254
- // Engine initialize karo
255
- const engine = new Engine({
50
+ const { visibleRange, isLoading, scrollPattern } = useIntelligentScroll({
256
51
  itemHeight: 50,
257
52
  viewportHeight: 400,
258
- bufferSize: 5
53
+ fetchMore
259
54
  });
260
-
261
- // FetchMore callback set karo
262
- engine.setFetchMoreCallback(async () => {
263
- // Data fetch karo
264
- });
265
-
266
- // Scroll position update karo
267
- engine.updateScrollPosition(scrollTop);
268
-
269
- // Current state dekho
270
- const state = engine.getState();
271
55
  ```
272
56
 
273
- ## Architecture - Kaise Banaya Gaya
274
-
275
- ### 1. Core Layer (Framework Agnostic)
276
- - Engine: Main logic
277
- - WindowManager: Range calculations
278
- - PrefetchManager: Prefetch decisions
279
- - RequestQueue: API request management
280
-
281
- ### 2. Platform Layer
282
- - ScrollObserver: Scroll events handle
283
- - DOM operations: Browser-specific
284
-
285
- ### 3. Adapter Layer
286
- - React hooks: useLazyList
287
- - React components: LazyList
288
- - Future: Vue, Angular adapters
289
-
290
- ## Performance Benefits
291
-
292
- 1. **Efficient Rendering**: Only visible items are rendered
293
- 2. **Memory Management**: Unnecessary items are removed from memory
294
- 3. **Smart Prefetch**: Data loads ahead of user scroll
295
- 4. **Smooth Scrolling**: Overscan provides seamless experience
296
-
297
- ## Installation
298
-
299
- ```bash
300
- npm i lazy-render-virtual-scroll
57
+ ### Advanced Components
58
+ ```tsx
59
+ import { IntelligentLazyList, SmartInfiniteScroll } from 'lazy-render-virtual-scroll';
301
60
  ```
302
61
 
303
- ## When to Use lazy-render
304
-
305
- ### Use when:
306
- - Rendering 1000+ items
307
- - Need infinite scroll functionality
308
- - Dashboard widgets with large data sets
309
- - Chat applications with message history
310
- - Feed applications with posts/comments
311
- - Any scenario with large data that needs smooth scrolling
312
-
313
- ### Avoid when:
314
- - Rendering less than 100 items
315
- - Static content with no scrolling
316
- - Simple pages without performance concerns
317
-
318
- ## Future Roadmap
319
-
320
- ### Planned Features:
321
- - **Variable Height Items**: Support for items with different heights
322
- - **Grouped Lists**: Collapsible sections and groups
323
- - **Multi-column Layout**: Masonry-style layouts
324
- - **Server-side Rendering**: Better SSR support
325
- - **Vue/Angular Adapters**: Additional framework support
326
-
327
- ## Performance Tips
62
+ ## Features
328
63
 
329
- 1. Use consistent item heights for best performance
330
- 2. Adjust buffer size based on content complexity
331
- 3. Implement proper error handling
332
- 4. Use skeleton loaders for better UX
333
- 5. Use overscan for smoother scrolling experience
64
+ - Virtual scrolling (60 FPS)
65
+ - Intelligent scroll detection
66
+ - Adaptive buffering
67
+ - Network-aware prefetching
68
+ - Multi-framework (React, Vue, Angular, Svelte, Vanilla)
69
+ - ✅ SSR-safe
70
+ - ✅ TypeScript support
334
71
 
335
- ## Examples
72
+ ## Performance
336
73
 
337
- Check out our [examples folder](./examples/) for practical implementations:
338
- - Basic React integration
339
- - Infinite feed implementation
340
- - Chat UI with message history
341
- - Dashboard with large data sets
74
+ | Metric | Before | After | Improvement |
75
+ |--------|---------|-------|-------------|
76
+ | 10K items render | 1800ms | 45ms | **40x faster** |
77
+ | 1M items API | 3378ms | <100ms | **33x faster** |
78
+ | Memory usage | High | Low | **99% reduction** |
79
+ | Data transfer | 500MB | 25KB | **20,000x less** |
80
+ | Scroll FPS | 30 FPS | 60 FPS | **2x smoother** |
342
81
 
343
- ## Contributing
82
+ ## Documentation
344
83
 
345
- We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for more details.
84
+ See [GitHub](https://github.com/sannuk79/lezzyrender) for full documentation.
346
85
 
347
86
  ## License
348
87
 
@@ -51,4 +51,190 @@ interface LazyListProps extends EngineConfig {
51
51
  }
52
52
  declare const LazyList: React.ForwardRefExoticComponent<LazyListProps & React.RefAttributes<HTMLDivElement>>;
53
53
 
54
- export { LazyList, useLazyList };
54
+ /**
55
+ * Intelligent Pagination
56
+ * Adaptive page size with cursor-based pagination
57
+ */
58
+ interface PaginationState {
59
+ currentPage: number;
60
+ pageSize: number;
61
+ totalItems: number;
62
+ totalPages: number;
63
+ hasMore: boolean;
64
+ cursor?: string;
65
+ nextCursor?: string;
66
+ prevCursor?: string;
67
+ }
68
+
69
+ interface UseIntelligentScrollConfig {
70
+ itemHeight?: number;
71
+ viewportHeight?: number;
72
+ bufferSize?: number;
73
+ fetchMore: FetchMoreCallback;
74
+ enablePrefetch?: boolean;
75
+ enableCache?: boolean;
76
+ cacheSize?: number;
77
+ }
78
+ interface IntelligentScrollState {
79
+ visibleRange: VisibleRange;
80
+ isLoading: boolean;
81
+ scrollVelocity: number;
82
+ scrollDirection: 'up' | 'down' | 'stationary';
83
+ scrollPattern: 'fast-scroll' | 'slow-scroll' | 'paused' | 'oscillating' | 'steady';
84
+ prefetchConfidence: number;
85
+ cacheHitRate: number;
86
+ totalItems: number;
87
+ }
88
+ declare const useIntelligentScroll: (config: UseIntelligentScrollConfig) => {
89
+ visibleRange: VisibleRange;
90
+ isLoading: boolean;
91
+ scrollVelocity: number;
92
+ scrollDirection: "up" | "down" | "stationary";
93
+ scrollPattern: "fast-scroll" | "slow-scroll" | "paused" | "oscillating" | "steady";
94
+ prefetchConfidence: number;
95
+ cacheHitRate: number;
96
+ totalItems: number;
97
+ setContainerRef: (element: HTMLElement | null) => (() => void) | undefined;
98
+ getCachedData: (index: number) => any;
99
+ cacheData: (index: number, data: any, priority?: "low" | "normal" | "high" | "critical") => void;
100
+ getPaginationState: () => PaginationState | null;
101
+ refresh: () => void;
102
+ };
103
+
104
+ interface UseAdaptiveLoadingConfig {
105
+ initialBatchSize?: number;
106
+ minBatchSize?: number;
107
+ maxBatchSize?: number;
108
+ fetchMore: () => Promise<any[]>;
109
+ enableNetworkAdaptation?: boolean;
110
+ enablePerformanceAdaptation?: boolean;
111
+ }
112
+ interface AdaptiveLoadingState {
113
+ currentBatchSize: number;
114
+ networkQuality: 'excellent' | 'good' | 'poor' | 'offline';
115
+ performanceScore: number;
116
+ isLoading: boolean;
117
+ loadedItems: number;
118
+ avgLoadTime: number;
119
+ adaptationCount: number;
120
+ }
121
+ declare const useAdaptiveLoading: (config: UseAdaptiveLoadingConfig) => {
122
+ loadMore: () => Promise<any[]>;
123
+ getCurrentBatchSize: () => number;
124
+ getStats: () => {
125
+ currentBatchSize: number;
126
+ networkQuality: "excellent" | "good" | "poor" | "offline";
127
+ performanceScore: number;
128
+ avgLoadTime: number;
129
+ adaptationCount: number;
130
+ loadedItems: number;
131
+ };
132
+ reset: () => void;
133
+ currentBatchSize: number;
134
+ networkQuality: "excellent" | "good" | "poor" | "offline";
135
+ performanceScore: number;
136
+ isLoading: boolean;
137
+ loadedItems: number;
138
+ avgLoadTime: number;
139
+ adaptationCount: number;
140
+ };
141
+
142
+ interface UseSmartPaginationConfig {
143
+ initialPage?: number;
144
+ initialPageSize?: number;
145
+ minPageSize?: number;
146
+ maxPageSize?: number;
147
+ enableAdaptation?: boolean;
148
+ }
149
+ interface SmartPaginationState {
150
+ currentPage: number;
151
+ pageSize: number;
152
+ totalItems: number;
153
+ totalPages: number;
154
+ hasMore: boolean;
155
+ cursor?: string;
156
+ nextCursor?: string;
157
+ prevCursor?: string;
158
+ avgLoadTime: number;
159
+ isAdapting: boolean;
160
+ }
161
+ declare const useSmartPagination: (config?: UseSmartPaginationConfig) => {
162
+ nextPage: (loadDataFn?: () => Promise<void>) => Promise<void>;
163
+ prevPage: () => void;
164
+ goToPage: (page: number) => void;
165
+ goToCursor: (cursor: string) => void;
166
+ setTotalItems: (total: number) => void;
167
+ getFetchRange: () => {
168
+ skip: number;
169
+ limit: number;
170
+ };
171
+ getCurrentCursor: () => string | undefined;
172
+ getStats: () => {
173
+ currentPage: number;
174
+ pageSize: number;
175
+ totalItems: number;
176
+ totalPages: number;
177
+ hasMore: boolean;
178
+ avgLoadTime: number;
179
+ currentCursor: string | undefined;
180
+ loadHistory: {
181
+ page: number;
182
+ time: number;
183
+ }[];
184
+ } | null;
185
+ reset: () => void;
186
+ currentPage: number;
187
+ pageSize: number;
188
+ totalItems: number;
189
+ totalPages: number;
190
+ hasMore: boolean;
191
+ cursor?: string;
192
+ nextCursor?: string;
193
+ prevCursor?: string;
194
+ avgLoadTime: number;
195
+ isAdapting: boolean;
196
+ };
197
+
198
+ interface IntelligentLazyListProps {
199
+ items: any[];
200
+ itemHeight: number;
201
+ viewportHeight: number;
202
+ fetchMore: () => Promise<any[]>;
203
+ renderItem: (item: any, index: number) => React.ReactNode;
204
+ bufferSize?: number;
205
+ enablePrefetch?: boolean;
206
+ enableCache?: boolean;
207
+ className?: string;
208
+ style?: React.CSSProperties;
209
+ }
210
+ declare const IntelligentLazyList: React.FC<IntelligentLazyListProps>;
211
+
212
+ interface AdaptiveScrollViewProps {
213
+ children: React.ReactNode;
214
+ fetchMore: () => Promise<any[]>;
215
+ initialBatchSize?: number;
216
+ minBatchSize?: number;
217
+ maxBatchSize?: number;
218
+ enableNetworkAdaptation?: boolean;
219
+ enablePerformanceAdaptation?: boolean;
220
+ className?: string;
221
+ style?: React.CSSProperties;
222
+ onLoadMore?: (items: any[]) => void;
223
+ }
224
+ declare const AdaptiveScrollView: React.FC<AdaptiveScrollViewProps>;
225
+
226
+ interface SmartInfiniteScrollProps {
227
+ fetchMore: (page: number, limit: number) => Promise<any[]>;
228
+ renderItem: (item: any, index: number) => React.ReactNode;
229
+ initialPageSize?: number;
230
+ minPageSize?: number;
231
+ maxPageSize?: number;
232
+ enableAdaptation?: boolean;
233
+ className?: string;
234
+ style?: React.CSSProperties;
235
+ emptyMessage?: string;
236
+ }
237
+ declare const SmartInfiniteScroll: React.FC<SmartInfiniteScrollProps>;
238
+
239
+ export { AdaptiveScrollView, IntelligentLazyList, LazyList, SmartInfiniteScroll, useAdaptiveLoading, useIntelligentScroll, useLazyList, useSmartPagination };
240
+ export type { AdaptiveLoadingState, AdaptiveScrollViewProps, IntelligentLazyListProps, IntelligentScrollState, SmartInfiniteScrollProps, SmartPaginationState, UseAdaptiveLoadingConfig, UseIntelligentScrollConfig, UseSmartPaginationConfig };