@rio-cloud/uikit-mcp 1.1.4 → 1.1.5

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 (191) hide show
  1. package/README.md +1 -0
  2. package/dist/doc-metadata.json +80 -80
  3. package/dist/docs/components/accentBar.md +34 -2
  4. package/dist/docs/components/activity.md +13 -2
  5. package/dist/docs/components/animatedNumber.md +16 -3
  6. package/dist/docs/components/animatedTextReveal.md +53 -7
  7. package/dist/docs/components/animations.md +30 -30
  8. package/dist/docs/components/appHeader.md +58 -2
  9. package/dist/docs/components/appLayout.md +543 -38
  10. package/dist/docs/components/appNavigationBar.md +54 -2
  11. package/dist/docs/components/areaCharts.md +4 -4
  12. package/dist/docs/components/aspectRatioPlaceholder.md +10 -2
  13. package/dist/docs/components/assetTree.md +1065 -218
  14. package/dist/docs/components/autosuggests.md +1 -1
  15. package/dist/docs/components/avatar.md +24 -2
  16. package/dist/docs/components/banner.md +2 -2
  17. package/dist/docs/components/barCharts.md +27 -27
  18. package/dist/docs/components/barList.md +21 -9
  19. package/dist/docs/components/basicMap.md +1 -1
  20. package/dist/docs/components/bottomSheet.md +99 -2
  21. package/dist/docs/components/button.md +161 -16
  22. package/dist/docs/components/buttonToolbar.md +9 -2
  23. package/dist/docs/components/calendarStripe.md +84 -110
  24. package/dist/docs/components/card.md +10 -2
  25. package/dist/docs/components/carousel.md +1 -1
  26. package/dist/docs/components/chartColors.md +1 -1
  27. package/dist/docs/components/chartsGettingStarted.md +1 -1
  28. package/dist/docs/components/chat.md +2 -2
  29. package/dist/docs/components/checkbox.md +51 -26
  30. package/dist/docs/components/clearableInput.md +17 -17
  31. package/dist/docs/components/collapse.md +27 -3
  32. package/dist/docs/components/composedCharts.md +15 -15
  33. package/dist/docs/components/contentLoader.md +125 -104
  34. package/dist/docs/components/dataTabs.md +189 -9
  35. package/dist/docs/components/datepickers.md +733 -721
  36. package/dist/docs/components/dialogs.md +361 -1
  37. package/dist/docs/components/divider.md +14 -2
  38. package/dist/docs/components/dropdowns.md +4533 -4352
  39. package/dist/docs/components/editableContent.md +186 -2
  40. package/dist/docs/components/expander.md +51 -4
  41. package/dist/docs/components/fade.md +41 -6
  42. package/dist/docs/components/fadeExpander.md +11 -2
  43. package/dist/docs/components/fadeUp.md +21 -3
  44. package/dist/docs/components/feedback.md +43 -2
  45. package/dist/docs/components/filePickers.md +44 -2
  46. package/dist/docs/components/formLabel.md +16 -2
  47. package/dist/docs/components/groupedItemList.md +53 -2
  48. package/dist/docs/components/iconList.md +4 -4
  49. package/dist/docs/components/imagePreloader.md +6 -2
  50. package/dist/docs/components/labeledElement.md +12 -2
  51. package/dist/docs/components/licensePlate.md +10 -2
  52. package/dist/docs/components/lineCharts.md +3 -3
  53. package/dist/docs/components/listMenu.md +72 -2
  54. package/dist/docs/components/loadMore.md +28 -2
  55. package/dist/docs/components/mainNavigation.md +1 -1
  56. package/dist/docs/components/mapCircle.md +1 -1
  57. package/dist/docs/components/mapCluster.md +1 -1
  58. package/dist/docs/components/mapContext.md +1 -1
  59. package/dist/docs/components/mapDraggableMarker.md +1 -1
  60. package/dist/docs/components/mapGettingStarted.md +1 -1
  61. package/dist/docs/components/mapInfoBubble.md +1 -1
  62. package/dist/docs/components/mapLayerGroup.md +1 -1
  63. package/dist/docs/components/mapMarker.md +1 -1
  64. package/dist/docs/components/mapPolygon.md +1 -1
  65. package/dist/docs/components/mapRoute.md +1 -1
  66. package/dist/docs/components/mapRouteGenerator.md +1 -1
  67. package/dist/docs/components/mapSettings.md +1 -1
  68. package/dist/docs/components/mapUtils.md +1 -1
  69. package/dist/docs/components/multiselects.md +1 -1
  70. package/dist/docs/components/noData.md +22 -2
  71. package/dist/docs/components/notifications.md +1 -1
  72. package/dist/docs/components/numbercontrol.md +50 -2
  73. package/dist/docs/components/onboarding.md +25 -1
  74. package/dist/docs/components/page.md +32 -2
  75. package/dist/docs/components/pager.md +14 -2
  76. package/dist/docs/components/pieCharts.md +36 -36
  77. package/dist/docs/components/popover.md +39 -1
  78. package/dist/docs/components/position.md +10 -2
  79. package/dist/docs/components/radialBarCharts.md +25 -25
  80. package/dist/docs/components/radiobutton.md +137 -9
  81. package/dist/docs/components/releaseNotes.md +18 -1
  82. package/dist/docs/components/resizer.md +13 -2
  83. package/dist/docs/components/responsiveColumnStripe.md +19 -2
  84. package/dist/docs/components/responsiveVideo.md +11 -2
  85. package/dist/docs/components/rioglyph.md +12 -2
  86. package/dist/docs/components/rules.md +94 -4
  87. package/dist/docs/components/saveableInput.md +399 -275
  88. package/dist/docs/components/selects.md +1 -1
  89. package/dist/docs/components/sidebar.md +38 -2
  90. package/dist/docs/components/sliders.md +37 -2
  91. package/dist/docs/components/smoothScrollbars.md +92 -2
  92. package/dist/docs/components/spinners.md +50 -2
  93. package/dist/docs/components/states.md +216 -1
  94. package/dist/docs/components/statsWidgets.md +122 -2
  95. package/dist/docs/components/statusBar.md +28 -2
  96. package/dist/docs/components/stepButton.md +8 -2
  97. package/dist/docs/components/steppedProgressBars.md +66 -2
  98. package/dist/docs/components/subNavigation.md +8 -1
  99. package/dist/docs/components/supportMarker.md +1 -1
  100. package/dist/docs/components/svgImage.md +12 -38
  101. package/dist/docs/components/switch.md +11 -2
  102. package/dist/docs/components/tables.md +1 -1
  103. package/dist/docs/components/tagManager.md +55 -1
  104. package/dist/docs/components/tags.md +32 -2
  105. package/dist/docs/components/teaser.md +29 -2
  106. package/dist/docs/components/timeline.md +1 -1
  107. package/dist/docs/components/timepicker.md +30 -2
  108. package/dist/docs/components/toggleButton.md +65 -7
  109. package/dist/docs/components/tooltip.md +26 -18
  110. package/dist/docs/components/virtualList.md +103 -77
  111. package/dist/docs/foundations.md +177 -177
  112. package/dist/docs/start/changelog.md +1 -1
  113. package/dist/docs/start/goodtoknow.md +1 -1
  114. package/dist/docs/start/guidelines/color-combinations.md +1 -1
  115. package/dist/docs/start/guidelines/custom-css.md +1 -1
  116. package/dist/docs/start/guidelines/custom-rioglyph.md +1 -1
  117. package/dist/docs/start/guidelines/formatting.md +1 -1
  118. package/dist/docs/start/guidelines/iframe.md +2 -2
  119. package/dist/docs/start/guidelines/obfuscate-data.md +1 -1
  120. package/dist/docs/start/guidelines/print-css.md +1 -1
  121. package/dist/docs/start/guidelines/spinner.md +81 -81
  122. package/dist/docs/start/guidelines/supported-browsers.md +1 -1
  123. package/dist/docs/start/guidelines/writing.md +1 -1
  124. package/dist/docs/start/howto.md +1 -1
  125. package/dist/docs/start/intro.md +1 -1
  126. package/dist/docs/start/responsiveness.md +1 -1
  127. package/dist/docs/templates/common-table.md +11 -11
  128. package/dist/docs/templates/detail-views.md +2 -2
  129. package/dist/docs/templates/expandable-details.md +1 -1
  130. package/dist/docs/templates/feature-cards.md +55 -55
  131. package/dist/docs/templates/form-summary.md +22 -22
  132. package/dist/docs/templates/form-toggle.md +1 -1
  133. package/dist/docs/templates/list-blocks.md +200 -200
  134. package/dist/docs/templates/loading-progress.md +1 -1
  135. package/dist/docs/templates/options-panel.md +1 -1
  136. package/dist/docs/templates/panel-variants.md +1 -1
  137. package/dist/docs/templates/progress-cards.md +1 -1
  138. package/dist/docs/templates/progress-success.md +1 -1
  139. package/dist/docs/templates/settings-form.md +23 -23
  140. package/dist/docs/templates/stats-blocks.md +16 -16
  141. package/dist/docs/templates/table-panel.md +1 -1
  142. package/dist/docs/templates/table-row-animation.md +1 -1
  143. package/dist/docs/templates/usage-cards.md +1 -1
  144. package/dist/docs/utilities/deviceUtils.md +1 -1
  145. package/dist/docs/utilities/featureToggles.md +1 -1
  146. package/dist/docs/utilities/fuelTypeUtils.md +1 -1
  147. package/dist/docs/utilities/routeUtils.md +1 -1
  148. package/dist/docs/utilities/useAfterMount.md +1 -1
  149. package/dist/docs/utilities/useAutoAnimate.md +1 -1
  150. package/dist/docs/utilities/useAverage.md +1 -1
  151. package/dist/docs/utilities/useClickOutside.md +1 -1
  152. package/dist/docs/utilities/useClipboard.md +2 -2
  153. package/dist/docs/utilities/useCount.md +1 -1
  154. package/dist/docs/utilities/useDarkMode.md +1 -1
  155. package/dist/docs/utilities/useDebugInfo.md +4 -4
  156. package/dist/docs/utilities/useEffectOnce.md +1 -1
  157. package/dist/docs/utilities/useElapsedTime.md +1 -1
  158. package/dist/docs/utilities/useElementSize.md +1 -1
  159. package/dist/docs/utilities/useEsc.md +1 -1
  160. package/dist/docs/utilities/useEvent.md +1 -1
  161. package/dist/docs/utilities/useFocusTrap.md +1 -1
  162. package/dist/docs/utilities/useFullscreen.md +1 -1
  163. package/dist/docs/utilities/useHover.md +1 -1
  164. package/dist/docs/utilities/useIncomingPostMessages.md +1 -1
  165. package/dist/docs/utilities/useInterval.md +1 -1
  166. package/dist/docs/utilities/useIsFocusWithin.md +1 -1
  167. package/dist/docs/utilities/useKey.md +1 -1
  168. package/dist/docs/utilities/useLocalStorage.md +1 -1
  169. package/dist/docs/utilities/useLocationSuggestions.md +1 -1
  170. package/dist/docs/utilities/useMax.md +1 -1
  171. package/dist/docs/utilities/useMin.md +1 -1
  172. package/dist/docs/utilities/useMutationObserver.md +1 -1
  173. package/dist/docs/utilities/useOnScreen.md +1 -1
  174. package/dist/docs/utilities/useOnlineStatus.md +1 -1
  175. package/dist/docs/utilities/usePostMessage.md +1 -1
  176. package/dist/docs/utilities/usePostMessageSender.md +1 -1
  177. package/dist/docs/utilities/usePrevious.md +1 -1
  178. package/dist/docs/utilities/useResizeObserver.md +1 -1
  179. package/dist/docs/utilities/useScrollPosition.md +1 -1
  180. package/dist/docs/utilities/useSearch.md +1 -1
  181. package/dist/docs/utilities/useSorting.md +1 -1
  182. package/dist/docs/utilities/useStateWithValidation.md +1 -1
  183. package/dist/docs/utilities/useSum.md +1 -1
  184. package/dist/docs/utilities/useTableExport.md +51 -51
  185. package/dist/docs/utilities/useTableSelection.md +87 -87
  186. package/dist/docs/utilities/useTimeout.md +1 -1
  187. package/dist/docs/utilities/useToggle.md +1 -1
  188. package/dist/docs/utilities/useWindowResize.md +1 -1
  189. package/dist/index.mjs +8 -8
  190. package/dist/version.json +1 -1
  191. package/package.json +6 -6
@@ -3,7 +3,7 @@
3
3
  *Category:* Components
4
4
  *Section:* Content
5
5
  *Source:* https://uikit.developers.rio.cloud/#components/virtualList
6
- *Captured:* 2026-01-14T09:07:38.387Z
6
+ *Captured:* 2026-02-03T14:04:54.271Z
7
7
 
8
8
  The VirtualList component is designed for efficiently rendering large lists of items by only displaying the visible portion of the list, also known as windowing.
9
9
 
@@ -14,70 +14,68 @@ It allows a specified number of items outside the viewport for smoother scrollin
14
14
  ### Example: Example 1
15
15
 
16
16
  Virtual list with 100 itemsItem 1
17
- Aliquam in massa, Integer lorem neque.
17
+ Consectetur primis adipiscing ac pharetra
18
18
 
19
19
  Item 2
20
- Nunc Duis consectetur purus primis sit metus Sed ipsum consectetur adipiscing vel
20
+ Fusce Ut sagittis ac sit ut in, efficitur finibus pretium Vivamus pretium amet, amet, orci,
21
21
 
22
22
  Item 3
23
- Efficitur ac Sed felis. tincidunt. elementum bibendum, finibus ac pharetra sit scelerisque
23
+ Ac Sed Mauris amet, molestie sem.
24
24
 
25
25
  Item 4
26
- Elementum consectetur tortor dui volutpat
26
+ Consectetur tortor efficitur rutrum vitae in vel efficitur sem. scelerisque efficitur Fusce velit.
27
27
 
28
28
  Item 5
29
- Hendrerit ipsum ante
30
- Lorem massa neque. orci pretium est Ut faucibus. ac primis quis,
29
+ Ut ac Integer rutrum nunc sem. efficitur ante Duis finibus ac ut purus
31
30
 
32
31
  Item 6
33
- Semper. semper malesuada ligula Fusce in,
32
+ Elit. ante felis. finibus in
34
33
 
35
34
  Item 7
36
- Enim iaculis. ac et pretium ante
35
+ Metus rutrum ante ac consectetur aliquam
37
36
 
38
37
  Item 8
39
- In,
40
- Lorem molestie ligula ante primis
38
+ Malesuada ac Vivamus purus massa, efficitur Vivamus hendrerit
41
39
 
42
40
  Item 9
43
- Vivamus hendrerit fames Integer enim in tincidunt. ante Duis in ac ante ante ut Fusce
41
+ Nunc libero
42
+ Lorem in elementum
44
43
 
45
44
  Item 10
46
- Enim tortor finibus in, posuere dolor efficitur
45
+ Fringilla massa, quis, sit orci scelerisque ante elit. ut fringilla faucibus. Vivamus
47
46
 
48
47
  #### Summary
49
48
 
50
49
  Virtual list with 100 itemsItem 1
51
- Aliquam in massa, Integer lorem neque.
50
+ Consectetur primis adipiscing ac pharetra
52
51
 
53
52
  Item 2
54
- Nunc Duis consectetur purus primis sit metus Sed ipsum consectetur adipiscing vel
53
+ Fusce Ut sagittis ac sit ut in, efficitur finibus pretium Vivamus pretium amet, amet, orci,
55
54
 
56
55
  Item 3
57
- Efficitur ac Sed felis. tincidunt. elementum bibendum, finibus ac pharetra sit scelerisque
56
+ Ac Sed Mauris amet, molestie sem.
58
57
 
59
58
  Item 4
60
- Elementum consectetur tortor dui volutpat
59
+ Consectetur tortor efficitur rutrum vitae in vel efficitur sem. scelerisque efficitur Fusce velit.
61
60
 
62
61
  Item 5
63
- Hendrerit ipsum ante
64
- Lorem massa neque. orci pretium est Ut faucibus. ac primis quis,
62
+ Ut ac Integer rutrum nunc sem. efficitur ante Duis finibus ac ut purus
65
63
 
66
64
  Item 6
67
- Semper. semper malesuada ligula Fusce in,
65
+ Elit. ante felis. finibus in
68
66
 
69
67
  Item 7
70
- Enim iaculis. ac et pretium ante
68
+ Metus rutrum ante ac consectetur aliquam
71
69
 
72
70
  Item 8
73
- In,
74
- Lorem molestie ligula ante primis
71
+ Malesuada ac Vivamus purus massa, efficitur Vivamus hendrerit
75
72
 
76
73
  Item 9
77
- Vivamus hendrerit fames Integer enim in tincidunt. ante Duis in ac ante ante ut Fusce
74
+ Nunc libero
75
+ Lorem in elementum
78
76
 
79
77
  Item 10
80
- Enim tortor finibus in, posuere dolor efficitur
78
+ Fringilla massa, quis, sit orci scelerisque ante elit. ut fringilla faucibus. Vivamus
81
79
 
82
80
  #### React (tsx)
83
81
 
@@ -130,63 +128,62 @@ export default () => {
130
128
  <div class="VirtualListItemWrapper " data-index="0" style="position: absolute; transform: translateY(0px); width: 100%; will-change: transform;">
131
129
  <div class="margin-bottom-10 padding-y-10 padding-x-15 bg-white rounded shadow-accent text-color-darker">
132
130
  <div class="text-medium" data-test-ignore="text">Item 1</div>
133
- <div class="word-break" data-test-ignore="text">Aliquam in massa, Integer lorem neque.</div>
131
+ <div class="word-break" data-test-ignore="text">Consectetur primis adipiscing ac pharetra</div>
134
132
  </div>
135
133
  </div>
136
134
  <div class="VirtualListItemWrapper " data-index="1" style="position: absolute; transform: translateY(70px); width: 100%; will-change: transform;">
137
135
  <div class="margin-bottom-10 padding-y-10 padding-x-15 bg-white rounded shadow-accent text-color-darker">
138
136
  <div class="text-medium" data-test-ignore="text">Item 2</div>
139
- <div class="word-break" data-test-ignore="text">Nunc Duis consectetur purus primis sit metus Sed ipsum consectetur adipiscing vel</div>
137
+ <div class="word-break" data-test-ignore="text">Fusce Ut sagittis ac sit ut in, efficitur finibus pretium Vivamus pretium amet, amet, orci,</div>
140
138
  </div>
141
139
  </div>
142
140
  <div class="VirtualListItemWrapper " data-index="2" style="position: absolute; transform: translateY(140px); width: 100%; will-change: transform;">
143
141
  <div class="margin-bottom-10 padding-y-10 padding-x-15 bg-white rounded shadow-accent text-color-darker">
144
142
  <div class="text-medium" data-test-ignore="text">Item 3</div>
145
- <div class="word-break" data-test-ignore="text">Efficitur ac Sed felis. tincidunt. elementum bibendum, finibus ac pharetra sit scelerisque</div>
143
+ <div class="word-break" data-test-ignore="text">Ac Sed Mauris amet, molestie sem.</div>
146
144
  </div>
147
145
  </div>
148
146
  <div class="VirtualListItemWrapper " data-index="3" style="position: absolute; transform: translateY(210px); width: 100%; will-change: transform;">
149
147
  <div class="margin-bottom-10 padding-y-10 padding-x-15 bg-white rounded shadow-accent text-color-darker">
150
148
  <div class="text-medium" data-test-ignore="text">Item 4</div>
151
- <div class="word-break" data-test-ignore="text">Elementum consectetur tortor dui volutpat</div>
149
+ <div class="word-break" data-test-ignore="text">Consectetur tortor efficitur rutrum vitae in vel efficitur sem. scelerisque efficitur Fusce velit.</div>
152
150
  </div>
153
151
  </div>
154
152
  <div class="VirtualListItemWrapper " data-index="4" style="position: absolute; transform: translateY(280px); width: 100%; will-change: transform;">
155
153
  <div class="margin-bottom-10 padding-y-10 padding-x-15 bg-white rounded shadow-accent text-color-darker">
156
154
  <div class="text-medium" data-test-ignore="text">Item 5</div>
157
- <div class="word-break" data-test-ignore="text">Hendrerit ipsum ante
158
- Lorem massa neque. orci pretium est Ut faucibus. ac primis quis,</div>
155
+ <div class="word-break" data-test-ignore="text">Ut ac Integer rutrum nunc sem. efficitur ante Duis finibus ac ut purus</div>
159
156
  </div>
160
157
  </div>
161
158
  <div class="VirtualListItemWrapper " data-index="5" style="position: absolute; transform: translateY(350px); width: 100%; will-change: transform;">
162
159
  <div class="margin-bottom-10 padding-y-10 padding-x-15 bg-white rounded shadow-accent text-color-darker">
163
160
  <div class="text-medium" data-test-ignore="text">Item 6</div>
164
- <div class="word-break" data-test-ignore="text">Semper. semper malesuada ligula Fusce in,</div>
161
+ <div class="word-break" data-test-ignore="text">Elit. ante felis. finibus in</div>
165
162
  </div>
166
163
  </div>
167
164
  <div class="VirtualListItemWrapper " data-index="6" style="position: absolute; transform: translateY(420px); width: 100%; will-change: transform;">
168
165
  <div class="margin-bottom-10 padding-y-10 padding-x-15 bg-white rounded shadow-accent text-color-darker">
169
166
  <div class="text-medium" data-test-ignore="text">Item 7</div>
170
- <div class="word-break" data-test-ignore="text">Enim iaculis. ac et pretium ante</div>
167
+ <div class="word-break" data-test-ignore="text">Metus rutrum ante ac consectetur aliquam</div>
171
168
  </div>
172
169
  </div>
173
170
  <div class="VirtualListItemWrapper " data-index="7" style="position: absolute; transform: translateY(490px); width: 100%; will-change: transform;">
174
171
  <div class="margin-bottom-10 padding-y-10 padding-x-15 bg-white rounded shadow-accent text-color-darker">
175
172
  <div class="text-medium" data-test-ignore="text">Item 8</div>
176
- <div class="word-break" data-test-ignore="text">In,
177
- Lorem molestie ligula ante primis</div>
173
+ <div class="word-break" data-test-ignore="text">Malesuada ac Vivamus purus massa, efficitur Vivamus hendrerit</div>
178
174
  </div>
179
175
  </div>
180
176
  <div class="VirtualListItemWrapper " data-index="8" style="position: absolute; transform: translateY(560px); width: 100%; will-change: transform;">
181
177
  <div class="margin-bottom-10 padding-y-10 padding-x-15 bg-white rounded shadow-accent text-color-darker">
182
178
  <div class="text-medium" data-test-ignore="text">Item 9</div>
183
- <div class="word-break" data-test-ignore="text">Vivamus hendrerit fames Integer enim in tincidunt. ante Duis in ac ante ante ut Fusce</div>
179
+ <div class="word-break" data-test-ignore="text">Nunc libero
180
+ Lorem in elementum</div>
184
181
  </div>
185
182
  </div>
186
183
  <div class="VirtualListItemWrapper " data-index="9" style="position: absolute; transform: translateY(630px); width: 100%; will-change: transform;">
187
184
  <div class="margin-bottom-10 padding-y-10 padding-x-15 bg-white rounded shadow-accent text-color-darker">
188
185
  <div class="text-medium" data-test-ignore="text">Item 10</div>
189
- <div class="word-break" data-test-ignore="text">Enim tortor finibus in, posuere dolor efficitur</div>
186
+ <div class="word-break" data-test-ignore="text">Fringilla massa, quis, sit orci scelerisque ante elit. ut fringilla faucibus. Vivamus</div>
190
187
  </div>
191
188
  </div>
192
189
  </div>
@@ -195,71 +192,86 @@ export default () => {
195
192
  </div>
196
193
  ```
197
194
 
195
+ #### Props
196
+
197
+ | Name | Type | Default | Description |
198
+ | --- | --- | --- | --- |
199
+ | items | T[] | — | The array of items to be rendered in the list. |
200
+ | renderItem | (item: T, index: number) => React.ReactElement | — | A function that renders an item given its data and index. |
201
+ | overscanCount | number | 3 | The number of items to render outside the visible area for smoother scrolling. |
202
+ | defaultHeight | number | 50 | The default height for items if their height cannot be determined. |
203
+ | scrollContainerRef | React.RefObject<HTMLElement> | — | Optional ref to an external scroll container. Use this when VirtualList is inside a scrollable container. |
204
+ | containerClassName | string | — | Additional classNames for the container of the list items. |
205
+ | listItemWrapperClassName | string | — | Additional classNames for each individual list item wrapper. This wrapper is required for proper positioning each item in the list using an absolute top value. |
206
+ | className | string | — | Additional classNames for the outer list container |
207
+
198
208
  ### Example: Example 2
199
209
 
200
210
  Virtual list with 5000 items
201
211
  Vehicle 1
202
- Faucibus. fringilla massa vel ut neque. ante in ipsum metus consectetur Mauris Mauris efficitur
212
+ Fringilla semper. faucibus. lorem ac Ut condimentum semper.
203
213
 
204
214
  Vehicle 2
205
- Tincidunt. ante ipsum aliquam eget hendrerit pharetra et ante Interdum
215
+ Finibus aliquam in Vivamus consectetur sit ante
206
216
 
207
217
  Vehicle 3
208
- Vivamus vel ipsum consectetur ut sit purus
218
+ Primis orci purus elementum libero tortor sit
209
219
 
210
220
  Vehicle 4
211
- Iaculis. ut fringilla adipiscing posuere ligula ac ligula
221
+ Sed aliquam semper ipsum orci et metus Mauris ligula Ut consectetur nec elementum
212
222
 
213
223
  Vehicle 5
214
- Fames dolor purus consectetur neque. Sed semper. sit eget in, orci,
224
+ Efficitur Integer malesuada adipiscing vel malesuada elit. pharetra elit. fringilla pretium orci, elit.
215
225
 
216
226
  Vehicle 6
217
- Eget eget in efficitur fames vitae ante
227
+ Orci, Fusce et condimentum scelerisque dolor metus fringilla consectetur consectetur primis nunc
218
228
 
219
229
  Vehicle 7
220
- Sagittis finibus Duis in, condimentum malesuada
230
+ Felis. ipsum condimentum efficitur tortor iaculis. amet, hendrerit dolor dolor massa molestie ut ac
231
+ Lorem
221
232
 
222
233
  Vehicle 8
223
- Semper felis. consectetur libero nec tincidunt. Ut rutrum adipiscing tincidunt. molestie nunc sagittis finibus
234
+ Fringilla ac ipsum Mauris ac ac et semper. semper Fusce ut
224
235
 
225
236
  Vehicle 9
226
- Tortor ipsum eget orci, ipsum
237
+ Scelerisque ante orci, in nec elementum rutrum adipiscing hendrerit molestie in, fames orci,
227
238
 
228
239
  Vehicle 10
229
- Ut tincidunt. vel fames volutpat posuere est In pharetra consectetur consectetur sagittis Mauris
240
+ Nunc nec bibendum, velit. Mauris
230
241
 
231
242
  #### Summary
232
243
 
233
244
  Virtual list with 5000 items
234
245
  Vehicle 1
235
- Faucibus. fringilla massa vel ut neque. ante in ipsum metus consectetur Mauris Mauris efficitur
246
+ Fringilla semper. faucibus. lorem ac Ut condimentum semper.
236
247
 
237
248
  Vehicle 2
238
- Tincidunt. ante ipsum aliquam eget hendrerit pharetra et ante Interdum
249
+ Finibus aliquam in Vivamus consectetur sit ante
239
250
 
240
251
  Vehicle 3
241
- Vivamus vel ipsum consectetur ut sit purus
252
+ Primis orci purus elementum libero tortor sit
242
253
 
243
254
  Vehicle 4
244
- Iaculis. ut fringilla adipiscing posuere ligula ac ligula
255
+ Sed aliquam semper ipsum orci et metus Mauris ligula Ut consectetur nec elementum
245
256
 
246
257
  Vehicle 5
247
- Fames dolor purus consectetur neque. Sed semper. sit eget in, orci,
258
+ Efficitur Integer malesuada adipiscing vel malesuada elit. pharetra elit. fringilla pretium orci, elit.
248
259
 
249
260
  Vehicle 6
250
- Eget eget in efficitur fames vitae ante
261
+ Orci, Fusce et condimentum scelerisque dolor metus fringilla consectetur consectetur primis nunc
251
262
 
252
263
  Vehicle 7
253
- Sagittis finibus Duis in, condimentum malesuada
264
+ Felis. ipsum condimentum efficitur tortor iaculis. amet, hendrerit dolor dolor massa molestie ut ac
265
+ Lorem
254
266
 
255
267
  Vehicle 8
256
- Semper felis. consectetur libero nec tincidunt. Ut rutrum adipiscing tincidunt. molestie nunc sagittis finibus
268
+ Fringilla ac ipsum Mauris ac ac et semper. semper Fusce ut
257
269
 
258
270
  Vehicle 9
259
- Tortor ipsum eget orci, ipsum
271
+ Scelerisque ante orci, in nec elementum rutrum adipiscing hendrerit molestie in, fames orci,
260
272
 
261
273
  Vehicle 10
262
- Ut tincidunt. vel fames volutpat posuere est In pharetra consectetur consectetur sagittis Mauris
274
+ Nunc nec bibendum, velit. Mauris
263
275
 
264
276
  #### React (tsx)
265
277
 
@@ -329,7 +341,7 @@ export default () => {
329
341
  <div class="padding-20">
330
342
  <label>Virtual list with 5000 items</label>
331
343
  <div class="max-width-600 max-height-400 overflow-y-auto">
332
- <div class="VirtualList overflow-y-auto border rounded" style="height: 380000px; position: relative; overflow: visible;">
344
+ <div class="VirtualList overflow-y-auto border rounded" style="height: 390000px; position: relative; overflow: visible;">
333
345
  <div class="position-relative" style="height: auto;">
334
346
  <div class="VirtualListItemContainer list-group">
335
347
  <div class="VirtualListItemWrapper list-group-item padding-y-15" data-index="0" style="position: absolute; transform: translateY(0px); width: 100%; will-change: transform;">
@@ -340,11 +352,11 @@ export default () => {
340
352
  </div>
341
353
  <div>
342
354
  <div class="text-medium" data-test-ignore="text">Vehicle 1</div>
343
- <div class="word-break" data-test-ignore="text">Faucibus. fringilla massa vel ut neque. ante in ipsum metus consectetur Mauris Mauris efficitur</div>
355
+ <div class="word-break" data-test-ignore="text">Fringilla semper. faucibus. lorem ac Ut condimentum semper.</div>
344
356
  </div>
345
357
  </div>
346
358
  </div>
347
- <div class="VirtualListItemWrapper list-group-item padding-y-15" data-index="1" style="position: absolute; transform: translateY(89px); width: 100%; will-change: transform;">
359
+ <div class="VirtualListItemWrapper list-group-item padding-y-15" data-index="1" style="position: absolute; transform: translateY(69px); width: 100%; will-change: transform;">
348
360
  <div class="display-flex gap-15 align-items-center">
349
361
  <div class="Avatar bg-lightest" style="height: 40px;">
350
362
  <span class="Avatar-icon rioglyph rioglyph-truck ">
@@ -352,11 +364,11 @@ export default () => {
352
364
  </div>
353
365
  <div>
354
366
  <div class="text-medium" data-test-ignore="text">Vehicle 2</div>
355
- <div class="word-break" data-test-ignore="text">Tincidunt. ante ipsum aliquam eget hendrerit pharetra et ante Interdum</div>
367
+ <div class="word-break" data-test-ignore="text">Finibus aliquam in Vivamus consectetur sit ante</div>
356
368
  </div>
357
369
  </div>
358
370
  </div>
359
- <div class="VirtualListItemWrapper list-group-item padding-y-15" data-index="2" style="position: absolute; transform: translateY(159px); width: 100%; will-change: transform;">
371
+ <div class="VirtualListItemWrapper list-group-item padding-y-15" data-index="2" style="position: absolute; transform: translateY(139px); width: 100%; will-change: transform;">
360
372
  <div class="display-flex gap-15 align-items-center">
361
373
  <div class="Avatar bg-lightest" style="height: 40px;">
362
374
  <span class="Avatar-icon rioglyph rioglyph-truck ">
@@ -364,11 +376,11 @@ export default () => {
364
376
  </div>
365
377
  <div>
366
378
  <div class="text-medium" data-test-ignore="text">Vehicle 3</div>
367
- <div class="word-break" data-test-ignore="text">Vivamus vel ipsum consectetur ut sit purus</div>
379
+ <div class="word-break" data-test-ignore="text">Primis orci purus elementum libero tortor sit</div>
368
380
  </div>
369
381
  </div>
370
382
  </div>
371
- <div class="VirtualListItemWrapper list-group-item padding-y-15" data-index="3" style="position: absolute; transform: translateY(229px); width: 100%; will-change: transform;">
383
+ <div class="VirtualListItemWrapper list-group-item padding-y-15" data-index="3" style="position: absolute; transform: translateY(209px); width: 100%; will-change: transform;">
372
384
  <div class="display-flex gap-15 align-items-center">
373
385
  <div class="Avatar bg-lightest" style="height: 40px;">
374
386
  <span class="Avatar-icon rioglyph rioglyph-truck ">
@@ -376,11 +388,11 @@ export default () => {
376
388
  </div>
377
389
  <div>
378
390
  <div class="text-medium" data-test-ignore="text">Vehicle 4</div>
379
- <div class="word-break" data-test-ignore="text">Iaculis. ut fringilla adipiscing posuere ligula ac ligula</div>
391
+ <div class="word-break" data-test-ignore="text">Sed aliquam semper ipsum orci et metus Mauris ligula Ut consectetur nec elementum</div>
380
392
  </div>
381
393
  </div>
382
394
  </div>
383
- <div class="VirtualListItemWrapper list-group-item padding-y-15" data-index="4" style="position: absolute; transform: translateY(299px); width: 100%; will-change: transform;">
395
+ <div class="VirtualListItemWrapper list-group-item padding-y-15" data-index="4" style="position: absolute; transform: translateY(279px); width: 100%; will-change: transform;">
384
396
  <div class="display-flex gap-15 align-items-center">
385
397
  <div class="Avatar bg-lightest" style="height: 40px;">
386
398
  <span class="Avatar-icon rioglyph rioglyph-truck ">
@@ -388,7 +400,7 @@ export default () => {
388
400
  </div>
389
401
  <div>
390
402
  <div class="text-medium" data-test-ignore="text">Vehicle 5</div>
391
- <div class="word-break" data-test-ignore="text">Fames dolor purus consectetur neque. Sed semper. sit eget in, orci,</div>
403
+ <div class="word-break" data-test-ignore="text">Efficitur Integer malesuada adipiscing vel malesuada elit. pharetra elit. fringilla pretium orci, elit.</div>
392
404
  </div>
393
405
  </div>
394
406
  </div>
@@ -400,11 +412,11 @@ export default () => {
400
412
  </div>
401
413
  <div>
402
414
  <div class="text-medium" data-test-ignore="text">Vehicle 6</div>
403
- <div class="word-break" data-test-ignore="text">Eget eget in efficitur fames vitae ante</div>
415
+ <div class="word-break" data-test-ignore="text">Orci, Fusce et condimentum scelerisque dolor metus fringilla consectetur consectetur primis nunc</div>
404
416
  </div>
405
417
  </div>
406
418
  </div>
407
- <div class="VirtualListItemWrapper list-group-item padding-y-15" data-index="6" style="position: absolute; transform: translateY(439px); width: 100%; will-change: transform;">
419
+ <div class="VirtualListItemWrapper list-group-item padding-y-15" data-index="6" style="position: absolute; transform: translateY(459px); width: 100%; will-change: transform;">
408
420
  <div class="display-flex gap-15 align-items-center">
409
421
  <div class="Avatar bg-lightest" style="height: 40px;">
410
422
  <span class="Avatar-icon rioglyph rioglyph-truck ">
@@ -412,11 +424,12 @@ export default () => {
412
424
  </div>
413
425
  <div>
414
426
  <div class="text-medium" data-test-ignore="text">Vehicle 7</div>
415
- <div class="word-break" data-test-ignore="text">Sagittis finibus Duis in, condimentum malesuada</div>
427
+ <div class="word-break" data-test-ignore="text">Felis. ipsum condimentum efficitur tortor iaculis. amet, hendrerit dolor dolor massa molestie ut ac
428
+ Lorem</div>
416
429
  </div>
417
430
  </div>
418
431
  </div>
419
- <div class="VirtualListItemWrapper list-group-item padding-y-15" data-index="7" style="position: absolute; transform: translateY(509px); width: 100%; will-change: transform;">
432
+ <div class="VirtualListItemWrapper list-group-item padding-y-15" data-index="7" style="position: absolute; transform: translateY(549px); width: 100%; will-change: transform;">
420
433
  <div class="display-flex gap-15 align-items-center">
421
434
  <div class="Avatar bg-lightest" style="height: 40px;">
422
435
  <span class="Avatar-icon rioglyph rioglyph-truck ">
@@ -424,11 +437,11 @@ export default () => {
424
437
  </div>
425
438
  <div>
426
439
  <div class="text-medium" data-test-ignore="text">Vehicle 8</div>
427
- <div class="word-break" data-test-ignore="text">Semper felis. consectetur libero nec tincidunt. Ut rutrum adipiscing tincidunt. molestie nunc sagittis finibus</div>
440
+ <div class="word-break" data-test-ignore="text">Fringilla ac ipsum Mauris ac ac et semper. semper Fusce ut</div>
428
441
  </div>
429
442
  </div>
430
443
  </div>
431
- <div class="VirtualListItemWrapper list-group-item padding-y-15" data-index="8" style="position: absolute; transform: translateY(599px); width: 100%; will-change: transform;">
444
+ <div class="VirtualListItemWrapper list-group-item padding-y-15" data-index="8" style="position: absolute; transform: translateY(619px); width: 100%; will-change: transform;">
432
445
  <div class="display-flex gap-15 align-items-center">
433
446
  <div class="Avatar bg-lightest" style="height: 40px;">
434
447
  <span class="Avatar-icon rioglyph rioglyph-truck ">
@@ -436,11 +449,11 @@ export default () => {
436
449
  </div>
437
450
  <div>
438
451
  <div class="text-medium" data-test-ignore="text">Vehicle 9</div>
439
- <div class="word-break" data-test-ignore="text">Tortor ipsum eget orci, ipsum</div>
452
+ <div class="word-break" data-test-ignore="text">Scelerisque ante orci, in nec elementum rutrum adipiscing hendrerit molestie in, fames orci,</div>
440
453
  </div>
441
454
  </div>
442
455
  </div>
443
- <div class="VirtualListItemWrapper list-group-item padding-y-15" data-index="9" style="position: absolute; transform: translateY(669px); width: 100%; will-change: transform;">
456
+ <div class="VirtualListItemWrapper list-group-item padding-y-15" data-index="9" style="position: absolute; transform: translateY(709px); width: 100%; will-change: transform;">
444
457
  <div class="display-flex gap-15 align-items-center">
445
458
  <div class="Avatar bg-lightest" style="height: 40px;">
446
459
  <span class="Avatar-icon rioglyph rioglyph-truck ">
@@ -448,7 +461,7 @@ export default () => {
448
461
  </div>
449
462
  <div>
450
463
  <div class="text-medium" data-test-ignore="text">Vehicle 10</div>
451
- <div class="word-break" data-test-ignore="text">Ut tincidunt. vel fames volutpat posuere est In pharetra consectetur consectetur sagittis Mauris</div>
464
+ <div class="word-break" data-test-ignore="text">Nunc nec bibendum, velit. Mauris</div>
452
465
  </div>
453
466
  </div>
454
467
  </div>
@@ -457,4 +470,17 @@ export default () => {
457
470
  </div>
458
471
  </div>
459
472
  </div>
460
- ```
473
+ ```
474
+
475
+ #### Props
476
+
477
+ | Name | Type | Default | Description |
478
+ | --- | --- | --- | --- |
479
+ | items | T[] | — | The array of items to be rendered in the list. |
480
+ | renderItem | (item: T, index: number) => React.ReactElement | — | A function that renders an item given its data and index. |
481
+ | overscanCount | number | 3 | The number of items to render outside the visible area for smoother scrolling. |
482
+ | defaultHeight | number | 50 | The default height for items if their height cannot be determined. |
483
+ | scrollContainerRef | React.RefObject<HTMLElement> | — | Optional ref to an external scroll container. Use this when VirtualList is inside a scrollable container. |
484
+ | containerClassName | string | — | Additional classNames for the container of the list items. |
485
+ | listItemWrapperClassName | string | — | Additional classNames for each individual list item wrapper. This wrapper is required for proper positioning each item in the list using an absolute top value. |
486
+ | className | string | — | Additional classNames for the outer list container |