@rio-cloud/uikit-mcp 1.0.0 → 1.1.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.
- package/README.md +75 -40
- package/dist/doc-metadata.json +1872 -0
- package/dist/docs/components/accentBar.md +582 -0
- package/dist/docs/components/activity.md +330 -0
- package/dist/docs/components/animatedNumber.md +88 -0
- package/dist/docs/components/animatedTextReveal.md +381 -0
- package/dist/docs/components/animations.md +459 -0
- package/dist/docs/components/appHeader.md +737 -0
- package/dist/docs/components/appLayout.md +2016 -0
- package/dist/docs/components/appNavigationBar.md +274 -0
- package/dist/docs/components/areaCharts.md +828 -0
- package/dist/docs/components/aspectRatioPlaceholder.md +106 -0
- package/dist/docs/components/assetTree.md +3223 -0
- package/dist/docs/components/autosuggests.md +1177 -0
- package/dist/docs/components/avatar.md +206 -0
- package/dist/docs/components/banner.md +668 -0
- package/dist/docs/components/barCharts.md +2785 -0
- package/dist/docs/components/barList.md +517 -0
- package/dist/docs/components/basicMap.md +167 -0
- package/dist/docs/components/bottomSheet.md +721 -0
- package/dist/docs/components/button.md +775 -0
- package/dist/docs/components/buttonToolbar.md +134 -0
- package/dist/docs/components/calendarStripe.md +525 -0
- package/dist/docs/components/card.md +86 -0
- package/dist/docs/components/carousel.md +128 -0
- package/dist/docs/components/chartColors.md +716 -0
- package/dist/docs/components/chartsGettingStarted.md +28 -0
- package/dist/docs/components/chat.md +932 -0
- package/dist/docs/components/checkbox.md +996 -0
- package/dist/docs/components/clearableInput.md +806 -0
- package/dist/docs/components/collapse.md +189 -0
- package/dist/docs/components/composedCharts.md +424 -0
- package/dist/docs/components/contentLoader.md +674 -0
- package/dist/docs/components/dataTabs.md +1251 -0
- package/dist/docs/components/datepickers.md +2543 -0
- package/dist/docs/components/dialogs.md +2244 -0
- package/dist/docs/components/divider.md +219 -0
- package/dist/docs/components/dropdowns.md +17550 -0
- package/dist/docs/components/editableContent.md +1127 -0
- package/dist/docs/components/expander.md +970 -0
- package/dist/docs/components/fade.md +836 -0
- package/dist/docs/components/fadeExpander.md +180 -0
- package/dist/docs/components/fadeUp.md +396 -0
- package/dist/docs/components/feedback.md +758 -0
- package/dist/docs/components/filePickers.md +370 -0
- package/dist/docs/components/formLabel.md +251 -0
- package/dist/docs/components/fullscreenMap.md +10 -0
- package/dist/docs/components/groupedItemList.md +1001 -0
- package/dist/docs/components/iconList.md +306 -0
- package/dist/docs/components/imagePreloader.md +167 -0
- package/dist/docs/components/labeledElement.md +115 -0
- package/dist/docs/components/licensePlate.md +412 -0
- package/dist/docs/components/lineCharts.md +2014 -0
- package/dist/docs/components/listMenu.md +392 -0
- package/dist/docs/components/loadMore.md +219 -0
- package/dist/docs/components/mainNavigation.md +129 -0
- package/dist/docs/components/mapCircle.md +93 -0
- package/dist/docs/components/mapCluster.md +337 -0
- package/dist/docs/components/mapContext.md +284 -0
- package/dist/docs/components/mapDraggableMarker.md +150 -0
- package/dist/docs/components/mapGettingStarted.md +39 -0
- package/dist/docs/components/mapInfoBubble.md +135 -0
- package/dist/docs/components/mapLayerGroup.md +94 -0
- package/dist/docs/components/mapMarker.md +1814 -0
- package/dist/docs/components/mapPolygon.md +959 -0
- package/dist/docs/components/mapRoute.md +3816 -0
- package/dist/docs/components/mapRouteGenerator.md +6 -0
- package/dist/docs/components/mapSettings.md +1040 -0
- package/dist/docs/components/mapUtils.md +132 -0
- package/dist/docs/components/multiselects.md +1921 -0
- package/dist/docs/components/noData.md +210 -0
- package/dist/docs/components/notifications.md +314 -0
- package/dist/docs/components/numbercontrol.md +706 -0
- package/dist/docs/components/onboarding.md +297 -0
- package/dist/docs/components/page.md +241 -0
- package/dist/docs/components/pager.md +133 -0
- package/dist/docs/components/pieCharts.md +1284 -0
- package/dist/docs/components/popover.md +222 -0
- package/dist/docs/components/position.md +50 -0
- package/dist/docs/components/radialBarCharts.md +3663 -0
- package/dist/docs/components/radiobutton.md +1271 -0
- package/dist/docs/components/releaseNotes.md +135 -0
- package/dist/docs/components/resizer.md +162 -0
- package/dist/docs/components/responsiveColumnStripe.md +435 -0
- package/dist/docs/components/responsiveVideo.md +71 -0
- package/dist/docs/components/rioglyph.md +331 -0
- package/dist/docs/components/rules.md +965 -0
- package/dist/docs/components/saveableInput.md +1721 -0
- package/dist/docs/components/selects.md +1993 -0
- package/dist/docs/components/sidebar.md +332 -0
- package/dist/docs/components/sliders.md +376 -0
- package/dist/docs/components/smoothScrollbars.md +1180 -0
- package/dist/docs/components/spinners.md +506 -0
- package/dist/docs/components/states.md +1176 -0
- package/dist/docs/components/statsWidgets.md +636 -0
- package/dist/docs/components/statusBar.md +644 -0
- package/dist/docs/components/stepButton.md +61 -0
- package/dist/docs/components/steppedProgressBars.md +1064 -0
- package/dist/docs/components/subNavigation.md +470 -0
- package/dist/docs/components/supportMarker.md +115 -0
- package/dist/docs/components/svgImage.md +248 -0
- package/dist/docs/components/switch.md +554 -0
- package/dist/docs/components/tables.md +8 -0
- package/dist/docs/components/tagManager.md +476 -0
- package/dist/docs/components/tags.md +785 -0
- package/dist/docs/components/teaser.md +925 -0
- package/dist/docs/components/timeline.md +514 -0
- package/dist/docs/components/timepicker.md +262 -0
- package/dist/docs/components/toggleButton.md +178 -0
- package/dist/docs/components/tooltip.md +454 -0
- package/dist/docs/components/virtualList.md +483 -0
- package/dist/docs/foundations.md +20901 -0
- package/dist/docs/start/changelog.md +439 -0
- package/dist/docs/start/goodtoknow.md +14 -0
- package/dist/docs/start/guidelines/color-combinations.md +678 -0
- package/dist/docs/start/guidelines/custom-css.md +42 -0
- package/dist/docs/start/guidelines/custom-rioglyph.md +35 -0
- package/dist/docs/start/guidelines/formatting.md +587 -0
- package/dist/docs/start/guidelines/iframe.md +323 -0
- package/dist/docs/start/guidelines/obfuscate-data.md +30 -0
- package/dist/docs/start/guidelines/print-css.md +36 -0
- package/dist/docs/start/guidelines/spinner.md +710 -0
- package/dist/docs/start/guidelines/supported-browsers.md +10 -0
- package/dist/docs/start/guidelines/writing.md +635 -0
- package/dist/docs/start/howto.md +187 -0
- package/dist/docs/start/intro.md +43 -0
- package/dist/docs/start/responsiveness.md +98 -0
- package/dist/docs/templates/common-table.md +1111 -0
- package/dist/docs/templates/detail-views.md +942 -0
- package/dist/docs/templates/expandable-details.md +228 -0
- package/dist/docs/templates/feature-cards.md +549 -0
- package/dist/docs/templates/form-summary.md +199 -0
- package/dist/docs/templates/form-toggle.md +367 -0
- package/dist/docs/templates/list-blocks.md +1021 -0
- package/dist/docs/templates/loading-progress.md +109 -0
- package/dist/docs/templates/options-panel.md +152 -0
- package/dist/docs/templates/panel-variants.md +164 -0
- package/dist/docs/templates/progress-cards.md +607 -0
- package/dist/docs/templates/progress-success.md +142 -0
- package/dist/docs/templates/settings-form.md +434 -0
- package/dist/docs/templates/stats-blocks.md +1381 -0
- package/dist/docs/templates/table-panel.md +184 -0
- package/dist/docs/templates/table-row-animation.md +317 -0
- package/dist/docs/templates/usage-cards.md +227 -0
- package/dist/docs/utilities/deviceUtils.md +123 -0
- package/dist/docs/utilities/featureToggles.md +90 -0
- package/dist/docs/utilities/fuelTypeUtils.md +186 -0
- package/dist/docs/utilities/routeUtils.md +138 -0
- package/dist/docs/utilities/useAfterMount.md +66 -0
- package/dist/docs/utilities/useAutoAnimate.md +193 -0
- package/dist/docs/utilities/useAverage.md +95 -0
- package/dist/docs/utilities/useClickOutside.md +61 -0
- package/dist/docs/utilities/useClipboard.md +93 -0
- package/dist/docs/utilities/useCount.md +178 -0
- package/dist/docs/utilities/useDarkMode.md +49 -0
- package/dist/docs/utilities/useDebugInfo.md +126 -0
- package/dist/docs/utilities/useEffectOnce.md +58 -0
- package/dist/docs/utilities/useElapsedTime.md +58 -0
- package/dist/docs/utilities/useElementSize.md +71 -0
- package/dist/docs/utilities/useEsc.md +58 -0
- package/dist/docs/utilities/useEvent.md +64 -0
- package/dist/docs/utilities/useFocusTrap.md +85 -0
- package/dist/docs/utilities/useFullscreen.md +198 -0
- package/dist/docs/utilities/useHover.md +55 -0
- package/dist/docs/utilities/useIncomingPostMessages.md +237 -0
- package/dist/docs/utilities/useInterval.md +85 -0
- package/dist/docs/utilities/useIsFocusWithin.md +114 -0
- package/dist/docs/utilities/useKey.md +151 -0
- package/dist/docs/utilities/useLocalStorage.md +91 -0
- package/dist/docs/utilities/useLocationSuggestions.md +114 -0
- package/dist/docs/utilities/useMax.md +62 -0
- package/dist/docs/utilities/useMin.md +78 -0
- package/dist/docs/utilities/useMutationObserver.md +113 -0
- package/dist/docs/utilities/useOnScreen.md +138 -0
- package/dist/docs/utilities/useOnlineStatus.md +49 -0
- package/dist/docs/utilities/usePostMessage.md +117 -0
- package/dist/docs/utilities/usePostMessageSender.md +257 -0
- package/dist/docs/utilities/usePrevious.md +101 -0
- package/dist/docs/utilities/useResizeObserver.md +151 -0
- package/dist/docs/utilities/useScrollPosition.md +252 -0
- package/dist/docs/utilities/useSearch.md +228 -0
- package/dist/docs/utilities/useSorting.md +389 -0
- package/dist/docs/utilities/useStateWithValidation.md +83 -0
- package/dist/docs/utilities/useSum.md +155 -0
- package/dist/docs/utilities/useTableExport.md +404 -0
- package/dist/docs/utilities/useTableSelection.md +1120 -0
- package/dist/docs/utilities/useTimeout.md +55 -0
- package/dist/docs/utilities/useToggle.md +115 -0
- package/dist/docs/utilities/useWindowResize.md +70 -0
- package/dist/index.mjs +271 -0
- package/dist/search-synonyms.json +134 -0
- package/dist/version.json +4 -0
- package/package.json +23 -19
- package/bin/uikit-mcp.mjs +0 -23
- package/data/pages/Components/components/accentbar.json +0 -207
- package/data/pages/Components/components/activity.json +0 -87
- package/data/pages/Components/components/animatednumber.json +0 -99
- package/data/pages/Components/components/animations.json +0 -87
- package/data/pages/Components/components/appheader.json +0 -291
- package/data/pages/Components/components/applayout.json +0 -1198
- package/data/pages/Components/components/appnavigationbar.json +0 -327
- package/data/pages/Components/components/areacharts.json +0 -563
- package/data/pages/Components/components/aspectratioplaceholder.json +0 -75
- package/data/pages/Components/components/assettree.json +0 -3080
- package/data/pages/Components/components/autosuggests.json +0 -710
- package/data/pages/Components/components/avatar.json +0 -157
- package/data/pages/Components/components/banner.json +0 -599
- package/data/pages/Components/components/barcharts.json +0 -1507
- package/data/pages/Components/components/barlist.json +0 -223
- package/data/pages/Components/components/basicmap.json +0 -68
- package/data/pages/Components/components/bottomsheet.json +0 -601
- package/data/pages/Components/components/button.json +0 -583
- package/data/pages/Components/components/buttontoolbar.json +0 -63
- package/data/pages/Components/components/calendarstripe.json +0 -235
- package/data/pages/Components/components/card.json +0 -69
- package/data/pages/Components/components/carousel.json +0 -39
- package/data/pages/Components/components/chartcolors.json +0 -34
- package/data/pages/Components/components/chartsgettingstarted.json +0 -32
- package/data/pages/Components/components/chat.json +0 -39
- package/data/pages/Components/components/checkbox.json +0 -847
- package/data/pages/Components/components/clearableinput.json +0 -789
- package/data/pages/Components/components/collapse.json +0 -175
- package/data/pages/Components/components/composedcharts.json +0 -159
- package/data/pages/Components/components/contentloader.json +0 -233
- package/data/pages/Components/components/datatabs.json +0 -680
- package/data/pages/Components/components/datepickers.json +0 -287
- package/data/pages/Components/components/dialogs.json +0 -1492
- package/data/pages/Components/components/divider.json +0 -93
- package/data/pages/Components/components/dropdowns.json +0 -936
- package/data/pages/Components/components/editablecontent.json +0 -1117
- package/data/pages/Components/components/expander.json +0 -377
- package/data/pages/Components/components/fade.json +0 -403
- package/data/pages/Components/components/fadeexpander.json +0 -75
- package/data/pages/Components/components/fadeup.json +0 -127
- package/data/pages/Components/components/feedback.json +0 -269
- package/data/pages/Components/components/filepickers.json +0 -269
- package/data/pages/Components/components/formlabel.json +0 -115
- package/data/pages/Components/components/fullscreenmap.json +0 -22
- package/data/pages/Components/components/groupeditemlist.json +0 -323
- package/data/pages/Components/components/iconlist.json +0 -45
- package/data/pages/Components/components/imagepreloader.json +0 -81
- package/data/pages/Components/components/labeledelement.json +0 -75
- package/data/pages/Components/components/licenseplate.json +0 -69
- package/data/pages/Components/components/linecharts.json +0 -987
- package/data/pages/Components/components/listmenu.json +0 -313
- package/data/pages/Components/components/loadmore.json +0 -175
- package/data/pages/Components/components/mainnavigation.json +0 -39
- package/data/pages/Components/components/mapcircle.json +0 -34
- package/data/pages/Components/components/mapcluster.json +0 -51
- package/data/pages/Components/components/mapcontext.json +0 -105
- package/data/pages/Components/components/mapdraggablemarker.json +0 -34
- package/data/pages/Components/components/mapgettingstarted.json +0 -27
- package/data/pages/Components/components/mapgroup.json +0 -1198
- package/data/pages/Components/components/mapinfobubble.json +0 -34
- package/data/pages/Components/components/maplayergroup.json +0 -34
- package/data/pages/Components/components/mapmarker.json +0 -700
- package/data/pages/Components/components/mappolygon.json +0 -45
- package/data/pages/Components/components/maproute.json +0 -623
- package/data/pages/Components/components/maproutegenerator.json +0 -16
- package/data/pages/Components/components/mapsettings.json +0 -51
- package/data/pages/Components/components/maputils.json +0 -34
- package/data/pages/Components/components/multiselects.json +0 -1451
- package/data/pages/Components/components/nodata.json +0 -139
- package/data/pages/Components/components/notifications.json +0 -65
- package/data/pages/Components/components/numbercontrol.json +0 -301
- package/data/pages/Components/components/onboarding.json +0 -302
- package/data/pages/Components/components/page.json +0 -197
- package/data/pages/Components/components/pager.json +0 -93
- package/data/pages/Components/components/piecharts.json +0 -731
- package/data/pages/Components/components/popover.json +0 -251
- package/data/pages/Components/components/position.json +0 -69
- package/data/pages/Components/components/radialbarcharts.json +0 -1304
- package/data/pages/Components/components/radiobutton.json +0 -1105
- package/data/pages/Components/components/releasenotes.json +0 -44
- package/data/pages/Components/components/resizer.json +0 -93
- package/data/pages/Components/components/responsivecolumnstripe.json +0 -123
- package/data/pages/Components/components/responsivevideo.json +0 -75
- package/data/pages/Components/components/rioglyph.json +0 -93
- package/data/pages/Components/components/rules.json +0 -410
- package/data/pages/Components/components/saveableinput.json +0 -703
- package/data/pages/Components/components/selects.json +0 -701
- package/data/pages/Components/components/sidebar.json +0 -243
- package/data/pages/Components/components/sliders.json +0 -235
- package/data/pages/Components/components/smoothscrollbars.json +0 -335
- package/data/pages/Components/components/spinners.json +0 -343
- package/data/pages/Components/components/states.json +0 -1705
- package/data/pages/Components/components/statswidgets.json +0 -314
- package/data/pages/Components/components/statusbar.json +0 -177
- package/data/pages/Components/components/stepbutton.json +0 -57
- package/data/pages/Components/components/steppedprogressbars.json +0 -417
- package/data/pages/Components/components/subnavigation.json +0 -107
- package/data/pages/Components/components/supportmarker.json +0 -45
- package/data/pages/Components/components/svgimage.json +0 -81
- package/data/pages/Components/components/switch.json +0 -111
- package/data/pages/Components/components/tables.json +0 -144
- package/data/pages/Components/components/tagmanager.json +0 -86
- package/data/pages/Components/components/tags.json +0 -146
- package/data/pages/Components/components/teaser.json +0 -188
- package/data/pages/Components/components/timeline.json +0 -45
- package/data/pages/Components/components/timepicker.json +0 -163
- package/data/pages/Components/components/togglebutton.json +0 -247
- package/data/pages/Components/components/tooltip.json +0 -270
- package/data/pages/Components/components/virtuallist.json +0 -175
- package/data/pages/Foundations/foundations.json +0 -2475
- package/data/pages/Getting-started/start/changelog.json +0 -22
- package/data/pages/Getting-started/start/goodtoknow.json +0 -32
- package/data/pages/Getting-started/start/guidelines/color-combinations.json +0 -58
- package/data/pages/Getting-started/start/guidelines/custom-css.json +0 -27
- package/data/pages/Getting-started/start/guidelines/custom-rioglyph.json +0 -22
- package/data/pages/Getting-started/start/guidelines/formatting.json +0 -97
- package/data/pages/Getting-started/start/guidelines/iframe.json +0 -93
- package/data/pages/Getting-started/start/guidelines/obfuscate-data.json +0 -22
- package/data/pages/Getting-started/start/guidelines/print-css.json +0 -37
- package/data/pages/Getting-started/start/guidelines/spinner.json +0 -144
- package/data/pages/Getting-started/start/guidelines/supported-browsers.json +0 -22
- package/data/pages/Getting-started/start/guidelines/writing.json +0 -242
- package/data/pages/Getting-started/start/howto.json +0 -72
- package/data/pages/Getting-started/start/intro.json +0 -37
- package/data/pages/Getting-started/start/responsiveness.json +0 -52
- package/data/pages/Templates/templates/common-table.json +0 -39
- package/data/pages/Templates/templates/detail-views.json +0 -71
- package/data/pages/Templates/templates/expandable-details.json +0 -39
- package/data/pages/Templates/templates/feature-cards.json +0 -103
- package/data/pages/Templates/templates/form-summary.json +0 -39
- package/data/pages/Templates/templates/form-toggle.json +0 -39
- package/data/pages/Templates/templates/list-blocks.json +0 -119
- package/data/pages/Templates/templates/loading-progress.json +0 -39
- package/data/pages/Templates/templates/options-panel.json +0 -39
- package/data/pages/Templates/templates/panel-variants.json +0 -39
- package/data/pages/Templates/templates/progress-cards.json +0 -71
- package/data/pages/Templates/templates/progress-success.json +0 -39
- package/data/pages/Templates/templates/settings-form.json +0 -39
- package/data/pages/Templates/templates/stats-blocks.json +0 -135
- package/data/pages/Templates/templates/table-panel.json +0 -39
- package/data/pages/Templates/templates/table-row-animation.json +0 -39
- package/data/pages/Templates/templates/usage-cards.json +0 -39
- package/data/pages/Utilities/utilities/deviceutils.json +0 -39
- package/data/pages/Utilities/utilities/featuretoggles.json +0 -42
- package/data/pages/Utilities/utilities/fueltypeutils.json +0 -118
- package/data/pages/Utilities/utilities/routeutils.json +0 -34
- package/data/pages/Utilities/utilities/useaftermount.json +0 -63
- package/data/pages/Utilities/utilities/useaverage.json +0 -86
- package/data/pages/Utilities/utilities/useclickoutside.json +0 -69
- package/data/pages/Utilities/utilities/useclipboard.json +0 -57
- package/data/pages/Utilities/utilities/usecount.json +0 -92
- package/data/pages/Utilities/utilities/usedarkmode.json +0 -50
- package/data/pages/Utilities/utilities/usedebuginfo.json +0 -63
- package/data/pages/Utilities/utilities/useeffectonce.json +0 -57
- package/data/pages/Utilities/utilities/useelapsedtime.json +0 -57
- package/data/pages/Utilities/utilities/useelementsize.json +0 -63
- package/data/pages/Utilities/utilities/useesc.json +0 -57
- package/data/pages/Utilities/utilities/useevent.json +0 -75
- package/data/pages/Utilities/utilities/usefocustrap.json +0 -57
- package/data/pages/Utilities/utilities/usefullscreen.json +0 -197
- package/data/pages/Utilities/utilities/usehover.json +0 -57
- package/data/pages/Utilities/utilities/useinterval.json +0 -63
- package/data/pages/Utilities/utilities/useisfocuswithin.json +0 -75
- package/data/pages/Utilities/utilities/usekey.json +0 -75
- package/data/pages/Utilities/utilities/uselocalstorage.json +0 -69
- package/data/pages/Utilities/utilities/uselocationsuggestions.json +0 -110
- package/data/pages/Utilities/utilities/usemax.json +0 -86
- package/data/pages/Utilities/utilities/usemin.json +0 -86
- package/data/pages/Utilities/utilities/usemutationobserver.json +0 -69
- package/data/pages/Utilities/utilities/useonlinestatus.json +0 -39
- package/data/pages/Utilities/utilities/useonscreen.json +0 -63
- package/data/pages/Utilities/utilities/usepostmessage.json +0 -80
- package/data/pages/Utilities/utilities/useprevious.json +0 -63
- package/data/pages/Utilities/utilities/useresizeobserver.json +0 -65
- package/data/pages/Utilities/utilities/usescrollposition.json +0 -103
- package/data/pages/Utilities/utilities/usesearch.json +0 -197
- package/data/pages/Utilities/utilities/usesorting.json +0 -139
- package/data/pages/Utilities/utilities/usestatewithvalidation.json +0 -69
- package/data/pages/Utilities/utilities/usesum.json +0 -86
- package/data/pages/Utilities/utilities/usetableexport.json +0 -87
- package/data/pages/Utilities/utilities/usetableselection.json +0 -311
- package/data/pages/Utilities/utilities/usetimeout.json +0 -63
- package/data/pages/Utilities/utilities/usetoggle.json +0 -75
- package/data/pages/Utilities/utilities/usewindowresize.json +0 -63
- package/data/version.json +0 -4
- package/docs/content-schema.md +0 -147
- package/docs/navigation-inventory.json +0 -1310
- package/docs/search-synonyms.json +0 -43
- package/server/index.mjs +0 -268
- package/server/lib/load-docs.mjs +0 -48
- package/server/lib/normalise-doc.mjs +0 -220
- package/server/lib/render-markdown.mjs +0 -82
- package/server/lib/search-index.mjs +0 -49
- package/server/lib/types.js +0 -99
|
@@ -0,0 +1,483 @@
|
|
|
1
|
+
# VirtualList
|
|
2
|
+
|
|
3
|
+
*Category:* Components
|
|
4
|
+
*Section:* Content
|
|
5
|
+
*Source:* https://uikit.developers.rio.cloud/#components/virtualList
|
|
6
|
+
*Captured:* 2025-12-12T12:38:48.209Z
|
|
7
|
+
|
|
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
|
+
|
|
10
|
+
## VirtualList
|
|
11
|
+
|
|
12
|
+
It allows a specified number of items outside the viewport for smoother scrolling. It optimizes performance by minimizing DOM updates and provides a customizable rendering function for each item, making it ideal for applications that require dynamic and responsive list displays.
|
|
13
|
+
|
|
14
|
+
### Example: Example 1
|
|
15
|
+
|
|
16
|
+
Virtual list with 100 itemsItem 1
|
|
17
|
+
Et viverra Sed et quis, adipiscing
|
|
18
|
+
|
|
19
|
+
Item 2
|
|
20
|
+
Ac efficitur dolor molestie In finibus ipsum in in, nec felis. eget
|
|
21
|
+
|
|
22
|
+
Item 3
|
|
23
|
+
Rutrum Mauris molestie finibus faucibus. pretium
|
|
24
|
+
|
|
25
|
+
Item 4
|
|
26
|
+
Libero massa, Mauris ante efficitur
|
|
27
|
+
|
|
28
|
+
Item 5
|
|
29
|
+
In sem. in,
|
|
30
|
+
Lorem et
|
|
31
|
+
|
|
32
|
+
Item 6
|
|
33
|
+
Vivamus sem. molestie in, vitae orci, ante ac in consectetur ut
|
|
34
|
+
|
|
35
|
+
Item 7
|
|
36
|
+
Finibus et faucibus. elit. et tortor
|
|
37
|
+
|
|
38
|
+
Item 8
|
|
39
|
+
Adipiscing tortor sem. in Mauris metus ligula felis.
|
|
40
|
+
|
|
41
|
+
Item 9
|
|
42
|
+
Vitae in lorem dolor ante elit. efficitur finibus fames felis. et eget fringilla vel volutpat
|
|
43
|
+
|
|
44
|
+
Item 10
|
|
45
|
+
Duis tortor libero orci aliquam ac semper. elit. elit. finibus primis massa consectetur condimentum Vivamus
|
|
46
|
+
|
|
47
|
+
#### Summary
|
|
48
|
+
|
|
49
|
+
Virtual list with 100 itemsItem 1
|
|
50
|
+
Et viverra Sed et quis, adipiscing
|
|
51
|
+
|
|
52
|
+
Item 2
|
|
53
|
+
Ac efficitur dolor molestie In finibus ipsum in in, nec felis. eget
|
|
54
|
+
|
|
55
|
+
Item 3
|
|
56
|
+
Rutrum Mauris molestie finibus faucibus. pretium
|
|
57
|
+
|
|
58
|
+
Item 4
|
|
59
|
+
Libero massa, Mauris ante efficitur
|
|
60
|
+
|
|
61
|
+
Item 5
|
|
62
|
+
In sem. in,
|
|
63
|
+
Lorem et
|
|
64
|
+
|
|
65
|
+
Item 6
|
|
66
|
+
Vivamus sem. molestie in, vitae orci, ante ac in consectetur ut
|
|
67
|
+
|
|
68
|
+
Item 7
|
|
69
|
+
Finibus et faucibus. elit. et tortor
|
|
70
|
+
|
|
71
|
+
Item 8
|
|
72
|
+
Adipiscing tortor sem. in Mauris metus ligula felis.
|
|
73
|
+
|
|
74
|
+
Item 9
|
|
75
|
+
Vitae in lorem dolor ante elit. efficitur finibus fames felis. et eget fringilla vel volutpat
|
|
76
|
+
|
|
77
|
+
Item 10
|
|
78
|
+
Duis tortor libero orci aliquam ac semper. elit. elit. finibus primis massa consectetur condimentum Vivamus
|
|
79
|
+
|
|
80
|
+
#### React (tsx)
|
|
81
|
+
|
|
82
|
+
```tsx
|
|
83
|
+
import VirtualList from '@rio-cloud/rio-uikit/VirtualList';
|
|
84
|
+
|
|
85
|
+
import { generateDummyText } from '../../../utils/data';
|
|
86
|
+
|
|
87
|
+
const ITEM_COUNT = 100;
|
|
88
|
+
|
|
89
|
+
export default () => {
|
|
90
|
+
const items = Array.from({ length: ITEM_COUNT }, (_, index) => ({
|
|
91
|
+
title: `Item ${index + 1}`,
|
|
92
|
+
description: generateDummyText(),
|
|
93
|
+
}));
|
|
94
|
+
|
|
95
|
+
return (
|
|
96
|
+
<div className='max-width-600 padding-y-20'>
|
|
97
|
+
<label className='padding-left-10'>Virtual list with {ITEM_COUNT} items</label>
|
|
98
|
+
<VirtualList
|
|
99
|
+
items={items}
|
|
100
|
+
renderItem={(item, index) => (
|
|
101
|
+
<div
|
|
102
|
+
key={index}
|
|
103
|
+
className='margin-bottom-10 padding-y-10 padding-x-15 bg-white rounded shadow-accent text-color-darker'
|
|
104
|
+
>
|
|
105
|
+
<div className='text-medium' data-test-ignore='text'>
|
|
106
|
+
{item.title}
|
|
107
|
+
</div>
|
|
108
|
+
<div className='word-break' data-test-ignore='text'>
|
|
109
|
+
{item.description}
|
|
110
|
+
</div>
|
|
111
|
+
</div>
|
|
112
|
+
)}
|
|
113
|
+
className='max-height-400 padding-x-10'
|
|
114
|
+
/>
|
|
115
|
+
</div>
|
|
116
|
+
);
|
|
117
|
+
};
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
#### HTML (html)
|
|
121
|
+
|
|
122
|
+
```html
|
|
123
|
+
<div class="max-width-600 padding-y-20">
|
|
124
|
+
<label class="padding-left-10">Virtual list with 100 items</label>
|
|
125
|
+
<div class="VirtualList overflow-y-auto max-height-400 padding-x-10" style="height: 100%; position: relative; overflow: auto;">
|
|
126
|
+
<div class="position-relative" style="height: 7200px;">
|
|
127
|
+
<div class="VirtualListItemContainer ">
|
|
128
|
+
<div class="VirtualListItemWrapper " data-index="0" style="position: absolute; transform: translateY(0px); width: 100%; will-change: transform;">
|
|
129
|
+
<div class="margin-bottom-10 padding-y-10 padding-x-15 bg-white rounded shadow-accent text-color-darker">
|
|
130
|
+
<div class="text-medium" data-test-ignore="text">Item 1</div>
|
|
131
|
+
<div class="word-break" data-test-ignore="text">Et viverra Sed et quis, adipiscing</div>
|
|
132
|
+
</div>
|
|
133
|
+
</div>
|
|
134
|
+
<div class="VirtualListItemWrapper " data-index="1" style="position: absolute; transform: translateY(70px); width: 100%; will-change: transform;">
|
|
135
|
+
<div class="margin-bottom-10 padding-y-10 padding-x-15 bg-white rounded shadow-accent text-color-darker">
|
|
136
|
+
<div class="text-medium" data-test-ignore="text">Item 2</div>
|
|
137
|
+
<div class="word-break" data-test-ignore="text">Ac efficitur dolor molestie In finibus ipsum in in, nec felis. eget</div>
|
|
138
|
+
</div>
|
|
139
|
+
</div>
|
|
140
|
+
<div class="VirtualListItemWrapper " data-index="2" style="position: absolute; transform: translateY(140px); width: 100%; will-change: transform;">
|
|
141
|
+
<div class="margin-bottom-10 padding-y-10 padding-x-15 bg-white rounded shadow-accent text-color-darker">
|
|
142
|
+
<div class="text-medium" data-test-ignore="text">Item 3</div>
|
|
143
|
+
<div class="word-break" data-test-ignore="text">Rutrum Mauris molestie finibus faucibus. pretium</div>
|
|
144
|
+
</div>
|
|
145
|
+
</div>
|
|
146
|
+
<div class="VirtualListItemWrapper " data-index="3" style="position: absolute; transform: translateY(210px); width: 100%; will-change: transform;">
|
|
147
|
+
<div class="margin-bottom-10 padding-y-10 padding-x-15 bg-white rounded shadow-accent text-color-darker">
|
|
148
|
+
<div class="text-medium" data-test-ignore="text">Item 4</div>
|
|
149
|
+
<div class="word-break" data-test-ignore="text">Libero massa, Mauris ante efficitur</div>
|
|
150
|
+
</div>
|
|
151
|
+
</div>
|
|
152
|
+
<div class="VirtualListItemWrapper " data-index="4" style="position: absolute; transform: translateY(280px); width: 100%; will-change: transform;">
|
|
153
|
+
<div class="margin-bottom-10 padding-y-10 padding-x-15 bg-white rounded shadow-accent text-color-darker">
|
|
154
|
+
<div class="text-medium" data-test-ignore="text">Item 5</div>
|
|
155
|
+
<div class="word-break" data-test-ignore="text">In sem. in,
|
|
156
|
+
Lorem et</div>
|
|
157
|
+
</div>
|
|
158
|
+
</div>
|
|
159
|
+
<div class="VirtualListItemWrapper " data-index="5" style="position: absolute; transform: translateY(350px); width: 100%; will-change: transform;">
|
|
160
|
+
<div class="margin-bottom-10 padding-y-10 padding-x-15 bg-white rounded shadow-accent text-color-darker">
|
|
161
|
+
<div class="text-medium" data-test-ignore="text">Item 6</div>
|
|
162
|
+
<div class="word-break" data-test-ignore="text">Vivamus sem. molestie in, vitae orci, ante ac in consectetur ut</div>
|
|
163
|
+
</div>
|
|
164
|
+
</div>
|
|
165
|
+
<div class="VirtualListItemWrapper " data-index="6" style="position: absolute; transform: translateY(420px); width: 100%; will-change: transform;">
|
|
166
|
+
<div class="margin-bottom-10 padding-y-10 padding-x-15 bg-white rounded shadow-accent text-color-darker">
|
|
167
|
+
<div class="text-medium" data-test-ignore="text">Item 7</div>
|
|
168
|
+
<div class="word-break" data-test-ignore="text">Finibus et faucibus. elit. et tortor</div>
|
|
169
|
+
</div>
|
|
170
|
+
</div>
|
|
171
|
+
<div class="VirtualListItemWrapper " data-index="7" style="position: absolute; transform: translateY(490px); width: 100%; will-change: transform;">
|
|
172
|
+
<div class="margin-bottom-10 padding-y-10 padding-x-15 bg-white rounded shadow-accent text-color-darker">
|
|
173
|
+
<div class="text-medium" data-test-ignore="text">Item 8</div>
|
|
174
|
+
<div class="word-break" data-test-ignore="text">Adipiscing tortor sem. in Mauris metus ligula felis.</div>
|
|
175
|
+
</div>
|
|
176
|
+
</div>
|
|
177
|
+
<div class="VirtualListItemWrapper " data-index="8" style="position: absolute; transform: translateY(560px); width: 100%; will-change: transform;">
|
|
178
|
+
<div class="margin-bottom-10 padding-y-10 padding-x-15 bg-white rounded shadow-accent text-color-darker">
|
|
179
|
+
<div class="text-medium" data-test-ignore="text">Item 9</div>
|
|
180
|
+
<div class="word-break" data-test-ignore="text">Vitae in lorem dolor ante elit. efficitur finibus fames felis. et eget fringilla vel volutpat</div>
|
|
181
|
+
</div>
|
|
182
|
+
</div>
|
|
183
|
+
<div class="VirtualListItemWrapper " data-index="9" style="position: absolute; transform: translateY(630px); width: 100%; will-change: transform;">
|
|
184
|
+
<div class="margin-bottom-10 padding-y-10 padding-x-15 bg-white rounded shadow-accent text-color-darker">
|
|
185
|
+
<div class="text-medium" data-test-ignore="text">Item 10</div>
|
|
186
|
+
<div class="word-break" data-test-ignore="text">Duis tortor libero orci aliquam ac semper. elit. elit. finibus primis massa consectetur condimentum Vivamus</div>
|
|
187
|
+
</div>
|
|
188
|
+
</div>
|
|
189
|
+
</div>
|
|
190
|
+
</div>
|
|
191
|
+
</div>
|
|
192
|
+
</div>
|
|
193
|
+
```
|
|
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
|
+
|
|
208
|
+
### Example: Example 2
|
|
209
|
+
|
|
210
|
+
Virtual list with 5000 items
|
|
211
|
+
Vehicle 1
|
|
212
|
+
Ligula nec felis. in ante volutpat felis. fringilla finibus scelerisque
|
|
213
|
+
|
|
214
|
+
Vehicle 2
|
|
215
|
+
Libero molestie molestie pretium efficitur ac felis. dui elit. Integer fames iaculis. Duis sit
|
|
216
|
+
|
|
217
|
+
Vehicle 3
|
|
218
|
+
Viverra Integer dolor molestie orci, primis
|
|
219
|
+
|
|
220
|
+
Vehicle 4
|
|
221
|
+
Faucibus. orci, ante ut et libero primis
|
|
222
|
+
|
|
223
|
+
Vehicle 5
|
|
224
|
+
In orci In Vivamus libero adipiscing Sed ligula fringilla bibendum, elit. molestie ipsum ante finibus
|
|
225
|
+
|
|
226
|
+
Vehicle 6
|
|
227
|
+
Bibendum, adipiscing neque. ac semper in sem. Integer vel
|
|
228
|
+
|
|
229
|
+
Vehicle 7
|
|
230
|
+
Efficitur rutrum lorem velit. ut
|
|
231
|
+
|
|
232
|
+
Vehicle 8
|
|
233
|
+
Quis, eget viverra faucibus. aliquam elit. ante finibus ac fames libero finibus pretium
|
|
234
|
+
|
|
235
|
+
Vehicle 9
|
|
236
|
+
Orci fames Interdum felis. Integer semper. purus efficitur fames sem. ac
|
|
237
|
+
|
|
238
|
+
Vehicle 10
|
|
239
|
+
Dolor semper. vitae sit libero sit quis,
|
|
240
|
+
|
|
241
|
+
#### Summary
|
|
242
|
+
|
|
243
|
+
Virtual list with 5000 items
|
|
244
|
+
Vehicle 1
|
|
245
|
+
Ligula nec felis. in ante volutpat felis. fringilla finibus scelerisque
|
|
246
|
+
|
|
247
|
+
Vehicle 2
|
|
248
|
+
Libero molestie molestie pretium efficitur ac felis. dui elit. Integer fames iaculis. Duis sit
|
|
249
|
+
|
|
250
|
+
Vehicle 3
|
|
251
|
+
Viverra Integer dolor molestie orci, primis
|
|
252
|
+
|
|
253
|
+
Vehicle 4
|
|
254
|
+
Faucibus. orci, ante ut et libero primis
|
|
255
|
+
|
|
256
|
+
Vehicle 5
|
|
257
|
+
In orci In Vivamus libero adipiscing Sed ligula fringilla bibendum, elit. molestie ipsum ante finibus
|
|
258
|
+
|
|
259
|
+
Vehicle 6
|
|
260
|
+
Bibendum, adipiscing neque. ac semper in sem. Integer vel
|
|
261
|
+
|
|
262
|
+
Vehicle 7
|
|
263
|
+
Efficitur rutrum lorem velit. ut
|
|
264
|
+
|
|
265
|
+
Vehicle 8
|
|
266
|
+
Quis, eget viverra faucibus. aliquam elit. ante finibus ac fames libero finibus pretium
|
|
267
|
+
|
|
268
|
+
Vehicle 9
|
|
269
|
+
Orci fames Interdum felis. Integer semper. purus efficitur fames sem. ac
|
|
270
|
+
|
|
271
|
+
Vehicle 10
|
|
272
|
+
Dolor semper. vitae sit libero sit quis,
|
|
273
|
+
|
|
274
|
+
#### React (tsx)
|
|
275
|
+
|
|
276
|
+
```tsx
|
|
277
|
+
import { useRef } from 'react';
|
|
278
|
+
|
|
279
|
+
import Avatar from '@rio-cloud/rio-uikit/Avatar';
|
|
280
|
+
import VirtualList from '@rio-cloud/rio-uikit/VirtualList';
|
|
281
|
+
|
|
282
|
+
import { generateDummyText } from '../../../utils/data';
|
|
283
|
+
|
|
284
|
+
const DemoItem = ({ title, description }: { title: string; description: string }) => (
|
|
285
|
+
<div className='display-flex gap-15 align-items-center'>
|
|
286
|
+
<Avatar iconName='truck' backgroundColor='bg-lightest' />
|
|
287
|
+
<div>
|
|
288
|
+
<div className='text-medium' data-test-ignore='text'>
|
|
289
|
+
{title}
|
|
290
|
+
</div>
|
|
291
|
+
<div className='word-break' data-test-ignore='text'>
|
|
292
|
+
{description}
|
|
293
|
+
</div>
|
|
294
|
+
</div>
|
|
295
|
+
</div>
|
|
296
|
+
);
|
|
297
|
+
|
|
298
|
+
const ITEM_COUNT = 5_000;
|
|
299
|
+
|
|
300
|
+
// This demo includes:
|
|
301
|
+
// - A custom item component
|
|
302
|
+
// - List group styling for the inner container and the items wrapper
|
|
303
|
+
// - The max height is defined outside on the parent of the VirtualList using a scrollContainerRef
|
|
304
|
+
// - A custom overscan count, means more items are loaded outside the visible window
|
|
305
|
+
|
|
306
|
+
export default () => {
|
|
307
|
+
const items = Array.from({ length: ITEM_COUNT }, (_, index) => ({
|
|
308
|
+
title: `Vehicle ${index + 1}`,
|
|
309
|
+
description: generateDummyText(),
|
|
310
|
+
}));
|
|
311
|
+
|
|
312
|
+
const scrollContainerRef = useRef<HTMLDivElement>(null);
|
|
313
|
+
|
|
314
|
+
return (
|
|
315
|
+
<div className='padding-20'>
|
|
316
|
+
<label>Virtual list with {ITEM_COUNT} items</label>
|
|
317
|
+
<div ref={scrollContainerRef} className='max-width-600 max-height-400 overflow-y-auto'>
|
|
318
|
+
<VirtualList
|
|
319
|
+
items={items}
|
|
320
|
+
renderItem={(item, index) => (
|
|
321
|
+
<DemoItem key={index} title={item.title} description={item.description} />
|
|
322
|
+
)}
|
|
323
|
+
className='border rounded'
|
|
324
|
+
containerClassName='list-group'
|
|
325
|
+
listItemWrapperClassName='list-group-item padding-y-15'
|
|
326
|
+
defaultHeight={71}
|
|
327
|
+
overscanCount={5}
|
|
328
|
+
scrollContainerRef={scrollContainerRef}
|
|
329
|
+
/>
|
|
330
|
+
</div>
|
|
331
|
+
</div>
|
|
332
|
+
);
|
|
333
|
+
};
|
|
334
|
+
```
|
|
335
|
+
|
|
336
|
+
#### HTML (html)
|
|
337
|
+
|
|
338
|
+
```html
|
|
339
|
+
<div class="padding-20">
|
|
340
|
+
<label>Virtual list with 5000 items</label>
|
|
341
|
+
<div class="max-width-600 max-height-400 overflow-y-auto">
|
|
342
|
+
<div class="VirtualList overflow-y-auto border rounded" style="height: 360000px; position: relative; overflow: visible;">
|
|
343
|
+
<div class="position-relative" style="height: auto;">
|
|
344
|
+
<div class="VirtualListItemContainer list-group">
|
|
345
|
+
<div class="VirtualListItemWrapper list-group-item padding-y-15" data-index="0" style="position: absolute; transform: translateY(0px); width: 100%; will-change: transform;">
|
|
346
|
+
<div class="display-flex gap-15 align-items-center">
|
|
347
|
+
<div class="Avatar bg-lightest" style="height: 40px;">
|
|
348
|
+
<span class="Avatar-icon rioglyph rioglyph-truck ">
|
|
349
|
+
</span>
|
|
350
|
+
</div>
|
|
351
|
+
<div>
|
|
352
|
+
<div class="text-medium" data-test-ignore="text">Vehicle 1</div>
|
|
353
|
+
<div class="word-break" data-test-ignore="text">Ligula nec felis. in ante volutpat felis. fringilla finibus scelerisque</div>
|
|
354
|
+
</div>
|
|
355
|
+
</div>
|
|
356
|
+
</div>
|
|
357
|
+
<div class="VirtualListItemWrapper list-group-item padding-y-15" data-index="1" style="position: absolute; transform: translateY(69px); width: 100%; will-change: transform;">
|
|
358
|
+
<div class="display-flex gap-15 align-items-center">
|
|
359
|
+
<div class="Avatar bg-lightest" style="height: 40px;">
|
|
360
|
+
<span class="Avatar-icon rioglyph rioglyph-truck ">
|
|
361
|
+
</span>
|
|
362
|
+
</div>
|
|
363
|
+
<div>
|
|
364
|
+
<div class="text-medium" data-test-ignore="text">Vehicle 2</div>
|
|
365
|
+
<div class="word-break" data-test-ignore="text">Libero molestie molestie pretium efficitur ac felis. dui elit. Integer fames iaculis. Duis sit</div>
|
|
366
|
+
</div>
|
|
367
|
+
</div>
|
|
368
|
+
</div>
|
|
369
|
+
<div class="VirtualListItemWrapper list-group-item padding-y-15" data-index="2" style="position: absolute; transform: translateY(139px); width: 100%; will-change: transform;">
|
|
370
|
+
<div class="display-flex gap-15 align-items-center">
|
|
371
|
+
<div class="Avatar bg-lightest" style="height: 40px;">
|
|
372
|
+
<span class="Avatar-icon rioglyph rioglyph-truck ">
|
|
373
|
+
</span>
|
|
374
|
+
</div>
|
|
375
|
+
<div>
|
|
376
|
+
<div class="text-medium" data-test-ignore="text">Vehicle 3</div>
|
|
377
|
+
<div class="word-break" data-test-ignore="text">Viverra Integer dolor molestie orci, primis</div>
|
|
378
|
+
</div>
|
|
379
|
+
</div>
|
|
380
|
+
</div>
|
|
381
|
+
<div class="VirtualListItemWrapper list-group-item padding-y-15" data-index="3" style="position: absolute; transform: translateY(209px); width: 100%; will-change: transform;">
|
|
382
|
+
<div class="display-flex gap-15 align-items-center">
|
|
383
|
+
<div class="Avatar bg-lightest" style="height: 40px;">
|
|
384
|
+
<span class="Avatar-icon rioglyph rioglyph-truck ">
|
|
385
|
+
</span>
|
|
386
|
+
</div>
|
|
387
|
+
<div>
|
|
388
|
+
<div class="text-medium" data-test-ignore="text">Vehicle 4</div>
|
|
389
|
+
<div class="word-break" data-test-ignore="text">Faucibus. orci, ante ut et libero primis</div>
|
|
390
|
+
</div>
|
|
391
|
+
</div>
|
|
392
|
+
</div>
|
|
393
|
+
<div class="VirtualListItemWrapper list-group-item padding-y-15" data-index="4" style="position: absolute; transform: translateY(279px); width: 100%; will-change: transform;">
|
|
394
|
+
<div class="display-flex gap-15 align-items-center">
|
|
395
|
+
<div class="Avatar bg-lightest" style="height: 40px;">
|
|
396
|
+
<span class="Avatar-icon rioglyph rioglyph-truck ">
|
|
397
|
+
</span>
|
|
398
|
+
</div>
|
|
399
|
+
<div>
|
|
400
|
+
<div class="text-medium" data-test-ignore="text">Vehicle 5</div>
|
|
401
|
+
<div class="word-break" data-test-ignore="text">In orci In Vivamus libero adipiscing Sed ligula fringilla bibendum, elit. molestie ipsum ante finibus</div>
|
|
402
|
+
</div>
|
|
403
|
+
</div>
|
|
404
|
+
</div>
|
|
405
|
+
<div class="VirtualListItemWrapper list-group-item padding-y-15" data-index="5" style="position: absolute; transform: translateY(369px); width: 100%; will-change: transform;">
|
|
406
|
+
<div class="display-flex gap-15 align-items-center">
|
|
407
|
+
<div class="Avatar bg-lightest" style="height: 40px;">
|
|
408
|
+
<span class="Avatar-icon rioglyph rioglyph-truck ">
|
|
409
|
+
</span>
|
|
410
|
+
</div>
|
|
411
|
+
<div>
|
|
412
|
+
<div class="text-medium" data-test-ignore="text">Vehicle 6</div>
|
|
413
|
+
<div class="word-break" data-test-ignore="text">Bibendum, adipiscing neque. ac semper in sem. Integer vel</div>
|
|
414
|
+
</div>
|
|
415
|
+
</div>
|
|
416
|
+
</div>
|
|
417
|
+
<div class="VirtualListItemWrapper list-group-item padding-y-15" data-index="6" style="position: absolute; transform: translateY(439px); width: 100%; will-change: transform;">
|
|
418
|
+
<div class="display-flex gap-15 align-items-center">
|
|
419
|
+
<div class="Avatar bg-lightest" style="height: 40px;">
|
|
420
|
+
<span class="Avatar-icon rioglyph rioglyph-truck ">
|
|
421
|
+
</span>
|
|
422
|
+
</div>
|
|
423
|
+
<div>
|
|
424
|
+
<div class="text-medium" data-test-ignore="text">Vehicle 7</div>
|
|
425
|
+
<div class="word-break" data-test-ignore="text">Efficitur rutrum lorem velit. ut</div>
|
|
426
|
+
</div>
|
|
427
|
+
</div>
|
|
428
|
+
</div>
|
|
429
|
+
<div class="VirtualListItemWrapper list-group-item padding-y-15" data-index="7" style="position: absolute; transform: translateY(509px); width: 100%; will-change: transform;">
|
|
430
|
+
<div class="display-flex gap-15 align-items-center">
|
|
431
|
+
<div class="Avatar bg-lightest" style="height: 40px;">
|
|
432
|
+
<span class="Avatar-icon rioglyph rioglyph-truck ">
|
|
433
|
+
</span>
|
|
434
|
+
</div>
|
|
435
|
+
<div>
|
|
436
|
+
<div class="text-medium" data-test-ignore="text">Vehicle 8</div>
|
|
437
|
+
<div class="word-break" data-test-ignore="text">Quis, eget viverra faucibus. aliquam elit. ante finibus ac fames libero finibus pretium</div>
|
|
438
|
+
</div>
|
|
439
|
+
</div>
|
|
440
|
+
</div>
|
|
441
|
+
<div class="VirtualListItemWrapper list-group-item padding-y-15" data-index="8" style="position: absolute; transform: translateY(579px); width: 100%; will-change: transform;">
|
|
442
|
+
<div class="display-flex gap-15 align-items-center">
|
|
443
|
+
<div class="Avatar bg-lightest" style="height: 40px;">
|
|
444
|
+
<span class="Avatar-icon rioglyph rioglyph-truck ">
|
|
445
|
+
</span>
|
|
446
|
+
</div>
|
|
447
|
+
<div>
|
|
448
|
+
<div class="text-medium" data-test-ignore="text">Vehicle 9</div>
|
|
449
|
+
<div class="word-break" data-test-ignore="text">Orci fames Interdum felis. Integer semper. purus efficitur fames sem. ac</div>
|
|
450
|
+
</div>
|
|
451
|
+
</div>
|
|
452
|
+
</div>
|
|
453
|
+
<div class="VirtualListItemWrapper list-group-item padding-y-15" data-index="9" style="position: absolute; transform: translateY(649px); width: 100%; will-change: transform;">
|
|
454
|
+
<div class="display-flex gap-15 align-items-center">
|
|
455
|
+
<div class="Avatar bg-lightest" style="height: 40px;">
|
|
456
|
+
<span class="Avatar-icon rioglyph rioglyph-truck ">
|
|
457
|
+
</span>
|
|
458
|
+
</div>
|
|
459
|
+
<div>
|
|
460
|
+
<div class="text-medium" data-test-ignore="text">Vehicle 10</div>
|
|
461
|
+
<div class="word-break" data-test-ignore="text">Dolor semper. vitae sit libero sit quis,</div>
|
|
462
|
+
</div>
|
|
463
|
+
</div>
|
|
464
|
+
</div>
|
|
465
|
+
</div>
|
|
466
|
+
</div>
|
|
467
|
+
</div>
|
|
468
|
+
</div>
|
|
469
|
+
</div>
|
|
470
|
+
```
|
|
471
|
+
|
|
472
|
+
#### Props
|
|
473
|
+
|
|
474
|
+
| Name | Type | Default | Description |
|
|
475
|
+
| --- | --- | --- | --- |
|
|
476
|
+
| items | T[] | — | The array of items to be rendered in the list. |
|
|
477
|
+
| renderItem | (item: T, index: number) => React.ReactElement | — | A function that renders an item given its data and index. |
|
|
478
|
+
| overscanCount | number | 3 | The number of items to render outside the visible area for smoother scrolling. |
|
|
479
|
+
| defaultHeight | number | 50 | The default height for items if their height cannot be determined. |
|
|
480
|
+
| scrollContainerRef | React.RefObject<HTMLElement> | — | Optional ref to an external scroll container. Use this when VirtualList is inside a scrollable container. |
|
|
481
|
+
| containerClassName | string | — | Additional classNames for the container of the list items. |
|
|
482
|
+
| 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. |
|
|
483
|
+
| className | string | — | Additional classNames for the outer list container. |
|