@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.
- package/README.md +1 -0
- package/dist/doc-metadata.json +80 -80
- package/dist/docs/components/accentBar.md +34 -2
- package/dist/docs/components/activity.md +13 -2
- package/dist/docs/components/animatedNumber.md +16 -3
- package/dist/docs/components/animatedTextReveal.md +53 -7
- package/dist/docs/components/animations.md +30 -30
- package/dist/docs/components/appHeader.md +58 -2
- package/dist/docs/components/appLayout.md +543 -38
- package/dist/docs/components/appNavigationBar.md +54 -2
- package/dist/docs/components/areaCharts.md +4 -4
- package/dist/docs/components/aspectRatioPlaceholder.md +10 -2
- package/dist/docs/components/assetTree.md +1065 -218
- package/dist/docs/components/autosuggests.md +1 -1
- package/dist/docs/components/avatar.md +24 -2
- package/dist/docs/components/banner.md +2 -2
- package/dist/docs/components/barCharts.md +27 -27
- package/dist/docs/components/barList.md +21 -9
- package/dist/docs/components/basicMap.md +1 -1
- package/dist/docs/components/bottomSheet.md +99 -2
- package/dist/docs/components/button.md +161 -16
- package/dist/docs/components/buttonToolbar.md +9 -2
- package/dist/docs/components/calendarStripe.md +84 -110
- package/dist/docs/components/card.md +10 -2
- package/dist/docs/components/carousel.md +1 -1
- package/dist/docs/components/chartColors.md +1 -1
- package/dist/docs/components/chartsGettingStarted.md +1 -1
- package/dist/docs/components/chat.md +2 -2
- package/dist/docs/components/checkbox.md +51 -26
- package/dist/docs/components/clearableInput.md +17 -17
- package/dist/docs/components/collapse.md +27 -3
- package/dist/docs/components/composedCharts.md +15 -15
- package/dist/docs/components/contentLoader.md +125 -104
- package/dist/docs/components/dataTabs.md +189 -9
- package/dist/docs/components/datepickers.md +733 -721
- package/dist/docs/components/dialogs.md +361 -1
- package/dist/docs/components/divider.md +14 -2
- package/dist/docs/components/dropdowns.md +4533 -4352
- package/dist/docs/components/editableContent.md +186 -2
- package/dist/docs/components/expander.md +51 -4
- package/dist/docs/components/fade.md +41 -6
- package/dist/docs/components/fadeExpander.md +11 -2
- package/dist/docs/components/fadeUp.md +21 -3
- package/dist/docs/components/feedback.md +43 -2
- package/dist/docs/components/filePickers.md +44 -2
- package/dist/docs/components/formLabel.md +16 -2
- package/dist/docs/components/groupedItemList.md +53 -2
- package/dist/docs/components/iconList.md +4 -4
- package/dist/docs/components/imagePreloader.md +6 -2
- package/dist/docs/components/labeledElement.md +12 -2
- package/dist/docs/components/licensePlate.md +10 -2
- package/dist/docs/components/lineCharts.md +3 -3
- package/dist/docs/components/listMenu.md +72 -2
- package/dist/docs/components/loadMore.md +28 -2
- package/dist/docs/components/mainNavigation.md +1 -1
- package/dist/docs/components/mapCircle.md +1 -1
- package/dist/docs/components/mapCluster.md +1 -1
- package/dist/docs/components/mapContext.md +1 -1
- package/dist/docs/components/mapDraggableMarker.md +1 -1
- package/dist/docs/components/mapGettingStarted.md +1 -1
- package/dist/docs/components/mapInfoBubble.md +1 -1
- package/dist/docs/components/mapLayerGroup.md +1 -1
- package/dist/docs/components/mapMarker.md +1 -1
- package/dist/docs/components/mapPolygon.md +1 -1
- package/dist/docs/components/mapRoute.md +1 -1
- package/dist/docs/components/mapRouteGenerator.md +1 -1
- package/dist/docs/components/mapSettings.md +1 -1
- package/dist/docs/components/mapUtils.md +1 -1
- package/dist/docs/components/multiselects.md +1 -1
- package/dist/docs/components/noData.md +22 -2
- package/dist/docs/components/notifications.md +1 -1
- package/dist/docs/components/numbercontrol.md +50 -2
- package/dist/docs/components/onboarding.md +25 -1
- package/dist/docs/components/page.md +32 -2
- package/dist/docs/components/pager.md +14 -2
- package/dist/docs/components/pieCharts.md +36 -36
- package/dist/docs/components/popover.md +39 -1
- package/dist/docs/components/position.md +10 -2
- package/dist/docs/components/radialBarCharts.md +25 -25
- package/dist/docs/components/radiobutton.md +137 -9
- package/dist/docs/components/releaseNotes.md +18 -1
- package/dist/docs/components/resizer.md +13 -2
- package/dist/docs/components/responsiveColumnStripe.md +19 -2
- package/dist/docs/components/responsiveVideo.md +11 -2
- package/dist/docs/components/rioglyph.md +12 -2
- package/dist/docs/components/rules.md +94 -4
- package/dist/docs/components/saveableInput.md +399 -275
- package/dist/docs/components/selects.md +1 -1
- package/dist/docs/components/sidebar.md +38 -2
- package/dist/docs/components/sliders.md +37 -2
- package/dist/docs/components/smoothScrollbars.md +92 -2
- package/dist/docs/components/spinners.md +50 -2
- package/dist/docs/components/states.md +216 -1
- package/dist/docs/components/statsWidgets.md +122 -2
- package/dist/docs/components/statusBar.md +28 -2
- package/dist/docs/components/stepButton.md +8 -2
- package/dist/docs/components/steppedProgressBars.md +66 -2
- package/dist/docs/components/subNavigation.md +8 -1
- package/dist/docs/components/supportMarker.md +1 -1
- package/dist/docs/components/svgImage.md +12 -38
- package/dist/docs/components/switch.md +11 -2
- package/dist/docs/components/tables.md +1 -1
- package/dist/docs/components/tagManager.md +55 -1
- package/dist/docs/components/tags.md +32 -2
- package/dist/docs/components/teaser.md +29 -2
- package/dist/docs/components/timeline.md +1 -1
- package/dist/docs/components/timepicker.md +30 -2
- package/dist/docs/components/toggleButton.md +65 -7
- package/dist/docs/components/tooltip.md +26 -18
- package/dist/docs/components/virtualList.md +103 -77
- package/dist/docs/foundations.md +177 -177
- package/dist/docs/start/changelog.md +1 -1
- package/dist/docs/start/goodtoknow.md +1 -1
- package/dist/docs/start/guidelines/color-combinations.md +1 -1
- package/dist/docs/start/guidelines/custom-css.md +1 -1
- package/dist/docs/start/guidelines/custom-rioglyph.md +1 -1
- package/dist/docs/start/guidelines/formatting.md +1 -1
- package/dist/docs/start/guidelines/iframe.md +2 -2
- package/dist/docs/start/guidelines/obfuscate-data.md +1 -1
- package/dist/docs/start/guidelines/print-css.md +1 -1
- package/dist/docs/start/guidelines/spinner.md +81 -81
- package/dist/docs/start/guidelines/supported-browsers.md +1 -1
- package/dist/docs/start/guidelines/writing.md +1 -1
- package/dist/docs/start/howto.md +1 -1
- package/dist/docs/start/intro.md +1 -1
- package/dist/docs/start/responsiveness.md +1 -1
- package/dist/docs/templates/common-table.md +11 -11
- package/dist/docs/templates/detail-views.md +2 -2
- package/dist/docs/templates/expandable-details.md +1 -1
- package/dist/docs/templates/feature-cards.md +55 -55
- package/dist/docs/templates/form-summary.md +22 -22
- package/dist/docs/templates/form-toggle.md +1 -1
- package/dist/docs/templates/list-blocks.md +200 -200
- package/dist/docs/templates/loading-progress.md +1 -1
- package/dist/docs/templates/options-panel.md +1 -1
- package/dist/docs/templates/panel-variants.md +1 -1
- package/dist/docs/templates/progress-cards.md +1 -1
- package/dist/docs/templates/progress-success.md +1 -1
- package/dist/docs/templates/settings-form.md +23 -23
- package/dist/docs/templates/stats-blocks.md +16 -16
- package/dist/docs/templates/table-panel.md +1 -1
- package/dist/docs/templates/table-row-animation.md +1 -1
- package/dist/docs/templates/usage-cards.md +1 -1
- package/dist/docs/utilities/deviceUtils.md +1 -1
- package/dist/docs/utilities/featureToggles.md +1 -1
- package/dist/docs/utilities/fuelTypeUtils.md +1 -1
- package/dist/docs/utilities/routeUtils.md +1 -1
- package/dist/docs/utilities/useAfterMount.md +1 -1
- package/dist/docs/utilities/useAutoAnimate.md +1 -1
- package/dist/docs/utilities/useAverage.md +1 -1
- package/dist/docs/utilities/useClickOutside.md +1 -1
- package/dist/docs/utilities/useClipboard.md +2 -2
- package/dist/docs/utilities/useCount.md +1 -1
- package/dist/docs/utilities/useDarkMode.md +1 -1
- package/dist/docs/utilities/useDebugInfo.md +4 -4
- package/dist/docs/utilities/useEffectOnce.md +1 -1
- package/dist/docs/utilities/useElapsedTime.md +1 -1
- package/dist/docs/utilities/useElementSize.md +1 -1
- package/dist/docs/utilities/useEsc.md +1 -1
- package/dist/docs/utilities/useEvent.md +1 -1
- package/dist/docs/utilities/useFocusTrap.md +1 -1
- package/dist/docs/utilities/useFullscreen.md +1 -1
- package/dist/docs/utilities/useHover.md +1 -1
- package/dist/docs/utilities/useIncomingPostMessages.md +1 -1
- package/dist/docs/utilities/useInterval.md +1 -1
- package/dist/docs/utilities/useIsFocusWithin.md +1 -1
- package/dist/docs/utilities/useKey.md +1 -1
- package/dist/docs/utilities/useLocalStorage.md +1 -1
- package/dist/docs/utilities/useLocationSuggestions.md +1 -1
- package/dist/docs/utilities/useMax.md +1 -1
- package/dist/docs/utilities/useMin.md +1 -1
- package/dist/docs/utilities/useMutationObserver.md +1 -1
- package/dist/docs/utilities/useOnScreen.md +1 -1
- package/dist/docs/utilities/useOnlineStatus.md +1 -1
- package/dist/docs/utilities/usePostMessage.md +1 -1
- package/dist/docs/utilities/usePostMessageSender.md +1 -1
- package/dist/docs/utilities/usePrevious.md +1 -1
- package/dist/docs/utilities/useResizeObserver.md +1 -1
- package/dist/docs/utilities/useScrollPosition.md +1 -1
- package/dist/docs/utilities/useSearch.md +1 -1
- package/dist/docs/utilities/useSorting.md +1 -1
- package/dist/docs/utilities/useStateWithValidation.md +1 -1
- package/dist/docs/utilities/useSum.md +1 -1
- package/dist/docs/utilities/useTableExport.md +51 -51
- package/dist/docs/utilities/useTableSelection.md +87 -87
- package/dist/docs/utilities/useTimeout.md +1 -1
- package/dist/docs/utilities/useToggle.md +1 -1
- package/dist/docs/utilities/useWindowResize.md +1 -1
- package/dist/index.mjs +8 -8
- package/dist/version.json +1 -1
- 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-
|
|
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
|
-
|
|
17
|
+
Consectetur primis adipiscing ac pharetra
|
|
18
18
|
|
|
19
19
|
Item 2
|
|
20
|
-
|
|
20
|
+
Fusce Ut sagittis ac sit ut in, efficitur finibus pretium Vivamus pretium amet, amet, orci,
|
|
21
21
|
|
|
22
22
|
Item 3
|
|
23
|
-
|
|
23
|
+
Ac Sed Mauris amet, molestie sem.
|
|
24
24
|
|
|
25
25
|
Item 4
|
|
26
|
-
|
|
26
|
+
Consectetur tortor efficitur rutrum vitae in vel efficitur sem. scelerisque efficitur Fusce velit.
|
|
27
27
|
|
|
28
28
|
Item 5
|
|
29
|
-
|
|
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
|
-
|
|
32
|
+
Elit. ante felis. finibus in
|
|
34
33
|
|
|
35
34
|
Item 7
|
|
36
|
-
|
|
35
|
+
Metus rutrum ante ac consectetur aliquam
|
|
37
36
|
|
|
38
37
|
Item 8
|
|
39
|
-
|
|
40
|
-
Lorem molestie ligula ante primis
|
|
38
|
+
Malesuada ac Vivamus purus massa, efficitur Vivamus hendrerit
|
|
41
39
|
|
|
42
40
|
Item 9
|
|
43
|
-
|
|
41
|
+
Nunc libero
|
|
42
|
+
Lorem in elementum
|
|
44
43
|
|
|
45
44
|
Item 10
|
|
46
|
-
|
|
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
|
-
|
|
50
|
+
Consectetur primis adipiscing ac pharetra
|
|
52
51
|
|
|
53
52
|
Item 2
|
|
54
|
-
|
|
53
|
+
Fusce Ut sagittis ac sit ut in, efficitur finibus pretium Vivamus pretium amet, amet, orci,
|
|
55
54
|
|
|
56
55
|
Item 3
|
|
57
|
-
|
|
56
|
+
Ac Sed Mauris amet, molestie sem.
|
|
58
57
|
|
|
59
58
|
Item 4
|
|
60
|
-
|
|
59
|
+
Consectetur tortor efficitur rutrum vitae in vel efficitur sem. scelerisque efficitur Fusce velit.
|
|
61
60
|
|
|
62
61
|
Item 5
|
|
63
|
-
|
|
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
|
-
|
|
65
|
+
Elit. ante felis. finibus in
|
|
68
66
|
|
|
69
67
|
Item 7
|
|
70
|
-
|
|
68
|
+
Metus rutrum ante ac consectetur aliquam
|
|
71
69
|
|
|
72
70
|
Item 8
|
|
73
|
-
|
|
74
|
-
Lorem molestie ligula ante primis
|
|
71
|
+
Malesuada ac Vivamus purus massa, efficitur Vivamus hendrerit
|
|
75
72
|
|
|
76
73
|
Item 9
|
|
77
|
-
|
|
74
|
+
Nunc libero
|
|
75
|
+
Lorem in elementum
|
|
78
76
|
|
|
79
77
|
Item 10
|
|
80
|
-
|
|
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">
|
|
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">
|
|
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">
|
|
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">
|
|
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">
|
|
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">
|
|
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">
|
|
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">
|
|
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">
|
|
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">
|
|
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
|
-
|
|
212
|
+
Fringilla semper. faucibus. lorem ac Ut condimentum semper.
|
|
203
213
|
|
|
204
214
|
Vehicle 2
|
|
205
|
-
|
|
215
|
+
Finibus aliquam in Vivamus consectetur sit ante
|
|
206
216
|
|
|
207
217
|
Vehicle 3
|
|
208
|
-
|
|
218
|
+
Primis orci purus elementum libero tortor sit
|
|
209
219
|
|
|
210
220
|
Vehicle 4
|
|
211
|
-
|
|
221
|
+
Sed aliquam semper ipsum orci et metus Mauris ligula Ut consectetur nec elementum
|
|
212
222
|
|
|
213
223
|
Vehicle 5
|
|
214
|
-
|
|
224
|
+
Efficitur Integer malesuada adipiscing vel malesuada elit. pharetra elit. fringilla pretium orci, elit.
|
|
215
225
|
|
|
216
226
|
Vehicle 6
|
|
217
|
-
|
|
227
|
+
Orci, Fusce et condimentum scelerisque dolor metus fringilla consectetur consectetur primis nunc
|
|
218
228
|
|
|
219
229
|
Vehicle 7
|
|
220
|
-
|
|
230
|
+
Felis. ipsum condimentum efficitur tortor iaculis. amet, hendrerit dolor dolor massa molestie ut ac
|
|
231
|
+
Lorem
|
|
221
232
|
|
|
222
233
|
Vehicle 8
|
|
223
|
-
|
|
234
|
+
Fringilla ac ipsum Mauris ac ac et semper. semper Fusce ut
|
|
224
235
|
|
|
225
236
|
Vehicle 9
|
|
226
|
-
|
|
237
|
+
Scelerisque ante orci, in nec elementum rutrum adipiscing hendrerit molestie in, fames orci,
|
|
227
238
|
|
|
228
239
|
Vehicle 10
|
|
229
|
-
|
|
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
|
-
|
|
246
|
+
Fringilla semper. faucibus. lorem ac Ut condimentum semper.
|
|
236
247
|
|
|
237
248
|
Vehicle 2
|
|
238
|
-
|
|
249
|
+
Finibus aliquam in Vivamus consectetur sit ante
|
|
239
250
|
|
|
240
251
|
Vehicle 3
|
|
241
|
-
|
|
252
|
+
Primis orci purus elementum libero tortor sit
|
|
242
253
|
|
|
243
254
|
Vehicle 4
|
|
244
|
-
|
|
255
|
+
Sed aliquam semper ipsum orci et metus Mauris ligula Ut consectetur nec elementum
|
|
245
256
|
|
|
246
257
|
Vehicle 5
|
|
247
|
-
|
|
258
|
+
Efficitur Integer malesuada adipiscing vel malesuada elit. pharetra elit. fringilla pretium orci, elit.
|
|
248
259
|
|
|
249
260
|
Vehicle 6
|
|
250
|
-
|
|
261
|
+
Orci, Fusce et condimentum scelerisque dolor metus fringilla consectetur consectetur primis nunc
|
|
251
262
|
|
|
252
263
|
Vehicle 7
|
|
253
|
-
|
|
264
|
+
Felis. ipsum condimentum efficitur tortor iaculis. amet, hendrerit dolor dolor massa molestie ut ac
|
|
265
|
+
Lorem
|
|
254
266
|
|
|
255
267
|
Vehicle 8
|
|
256
|
-
|
|
268
|
+
Fringilla ac ipsum Mauris ac ac et semper. semper Fusce ut
|
|
257
269
|
|
|
258
270
|
Vehicle 9
|
|
259
|
-
|
|
271
|
+
Scelerisque ante orci, in nec elementum rutrum adipiscing hendrerit molestie in, fames orci,
|
|
260
272
|
|
|
261
273
|
Vehicle 10
|
|
262
|
-
|
|
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:
|
|
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">
|
|
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(
|
|
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">
|
|
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(
|
|
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">
|
|
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(
|
|
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">
|
|
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(
|
|
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">
|
|
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">
|
|
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(
|
|
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">
|
|
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(
|
|
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">
|
|
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(
|
|
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">
|
|
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(
|
|
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">
|
|
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 |
|