@rio-cloud/uikit-mcp 1.0.1 → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +75 -39
- 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 +2033 -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 +3132 -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 +2765 -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 +533 -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 +935 -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 +17538 -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 +486 -0
- package/dist/docs/foundations.md +20901 -0
- package/dist/docs/start/changelog.md +714 -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,486 @@
|
|
|
1
|
+
# VirtualList
|
|
2
|
+
|
|
3
|
+
*Category:* Components
|
|
4
|
+
*Section:* Content
|
|
5
|
+
*Source:* https://uikit.developers.rio.cloud/#components/virtualList
|
|
6
|
+
*Captured:* 2025-12-12T14:20:50.395Z
|
|
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
|
+
In ante Sed nunc finibus ante massa, tortor ac In Mauris amet, Vivamus
|
|
18
|
+
|
|
19
|
+
Item 2
|
|
20
|
+
Efficitur Integer in Mauris Ut ac pretium tincidunt. ipsum elementum enim
|
|
21
|
+
|
|
22
|
+
Item 3
|
|
23
|
+
Ligula ut bibendum, Fusce nunc
|
|
24
|
+
|
|
25
|
+
Item 4
|
|
26
|
+
Nec ac iaculis. In iaculis. massa ante fames Fusce massa, sem. elit. primis ipsum
|
|
27
|
+
|
|
28
|
+
Item 5
|
|
29
|
+
Elit. volutpat sit eget et hendrerit adipiscing nec vel et ut amet, nec
|
|
30
|
+
|
|
31
|
+
Item 6
|
|
32
|
+
Pretium elit. elit. sagittis dui semper amet, hendrerit ipsum
|
|
33
|
+
|
|
34
|
+
Item 7
|
|
35
|
+
Est eget efficitur sem. ante semper Integer neque. enim condimentum in sit ligula elit.
|
|
36
|
+
|
|
37
|
+
Item 8
|
|
38
|
+
Scelerisque Ut ante et aliquam Mauris pharetra finibus semper. vitae libero efficitur In
|
|
39
|
+
|
|
40
|
+
Item 9
|
|
41
|
+
Est in ante enim metus Mauris elit. Ut
|
|
42
|
+
Lorem elit. vitae hendrerit scelerisque amet,
|
|
43
|
+
|
|
44
|
+
Item 10
|
|
45
|
+
Posuere dui orci libero et massa, finibus
|
|
46
|
+
|
|
47
|
+
#### Summary
|
|
48
|
+
|
|
49
|
+
Virtual list with 100 itemsItem 1
|
|
50
|
+
In ante Sed nunc finibus ante massa, tortor ac In Mauris amet, Vivamus
|
|
51
|
+
|
|
52
|
+
Item 2
|
|
53
|
+
Efficitur Integer in Mauris Ut ac pretium tincidunt. ipsum elementum enim
|
|
54
|
+
|
|
55
|
+
Item 3
|
|
56
|
+
Ligula ut bibendum, Fusce nunc
|
|
57
|
+
|
|
58
|
+
Item 4
|
|
59
|
+
Nec ac iaculis. In iaculis. massa ante fames Fusce massa, sem. elit. primis ipsum
|
|
60
|
+
|
|
61
|
+
Item 5
|
|
62
|
+
Elit. volutpat sit eget et hendrerit adipiscing nec vel et ut amet, nec
|
|
63
|
+
|
|
64
|
+
Item 6
|
|
65
|
+
Pretium elit. elit. sagittis dui semper amet, hendrerit ipsum
|
|
66
|
+
|
|
67
|
+
Item 7
|
|
68
|
+
Est eget efficitur sem. ante semper Integer neque. enim condimentum in sit ligula elit.
|
|
69
|
+
|
|
70
|
+
Item 8
|
|
71
|
+
Scelerisque Ut ante et aliquam Mauris pharetra finibus semper. vitae libero efficitur In
|
|
72
|
+
|
|
73
|
+
Item 9
|
|
74
|
+
Est in ante enim metus Mauris elit. Ut
|
|
75
|
+
Lorem elit. vitae hendrerit scelerisque amet,
|
|
76
|
+
|
|
77
|
+
Item 10
|
|
78
|
+
Posuere dui orci libero et massa, finibus
|
|
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: 7000px;">
|
|
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">In ante Sed nunc finibus ante massa, tortor ac In Mauris amet, Vivamus</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">Efficitur Integer in Mauris Ut ac pretium tincidunt. ipsum elementum enim</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">Ligula ut bibendum, Fusce nunc</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">Nec ac iaculis. In iaculis. massa ante fames Fusce massa, sem. elit. primis ipsum</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">Elit. volutpat sit eget et hendrerit adipiscing nec vel et ut amet, nec</div>
|
|
156
|
+
</div>
|
|
157
|
+
</div>
|
|
158
|
+
<div class="VirtualListItemWrapper " data-index="5" style="position: absolute; transform: translateY(350px); width: 100%; will-change: transform;">
|
|
159
|
+
<div class="margin-bottom-10 padding-y-10 padding-x-15 bg-white rounded shadow-accent text-color-darker">
|
|
160
|
+
<div class="text-medium" data-test-ignore="text">Item 6</div>
|
|
161
|
+
<div class="word-break" data-test-ignore="text">Pretium elit. elit. sagittis dui semper amet, hendrerit ipsum</div>
|
|
162
|
+
</div>
|
|
163
|
+
</div>
|
|
164
|
+
<div class="VirtualListItemWrapper " data-index="6" style="position: absolute; transform: translateY(420px); width: 100%; will-change: transform;">
|
|
165
|
+
<div class="margin-bottom-10 padding-y-10 padding-x-15 bg-white rounded shadow-accent text-color-darker">
|
|
166
|
+
<div class="text-medium" data-test-ignore="text">Item 7</div>
|
|
167
|
+
<div class="word-break" data-test-ignore="text">Est eget efficitur sem. ante semper Integer neque. enim condimentum in sit ligula elit.</div>
|
|
168
|
+
</div>
|
|
169
|
+
</div>
|
|
170
|
+
<div class="VirtualListItemWrapper " data-index="7" style="position: absolute; transform: translateY(490px); width: 100%; will-change: transform;">
|
|
171
|
+
<div class="margin-bottom-10 padding-y-10 padding-x-15 bg-white rounded shadow-accent text-color-darker">
|
|
172
|
+
<div class="text-medium" data-test-ignore="text">Item 8</div>
|
|
173
|
+
<div class="word-break" data-test-ignore="text">Scelerisque Ut ante et aliquam Mauris pharetra finibus semper. vitae libero efficitur In</div>
|
|
174
|
+
</div>
|
|
175
|
+
</div>
|
|
176
|
+
<div class="VirtualListItemWrapper " data-index="8" style="position: absolute; transform: translateY(560px); width: 100%; will-change: transform;">
|
|
177
|
+
<div class="margin-bottom-10 padding-y-10 padding-x-15 bg-white rounded shadow-accent text-color-darker">
|
|
178
|
+
<div class="text-medium" data-test-ignore="text">Item 9</div>
|
|
179
|
+
<div class="word-break" data-test-ignore="text">Est in ante enim metus Mauris elit. Ut
|
|
180
|
+
Lorem elit. vitae hendrerit scelerisque amet,</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">Posuere dui orci libero et massa, finibus</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
|
+
Rutrum quis, ipsum sit tincidunt. semper. libero ac ut tincidunt.
|
|
213
|
+
|
|
214
|
+
Vehicle 2
|
|
215
|
+
Ligula Ut tortor in aliquam
|
|
216
|
+
|
|
217
|
+
Vehicle 3
|
|
218
|
+
Mauris ut vitae Fusce et et Fusce orci, primis lorem neque. sem. orci In ut
|
|
219
|
+
|
|
220
|
+
Vehicle 4
|
|
221
|
+
Pretium est orci ante aliquam
|
|
222
|
+
|
|
223
|
+
Vehicle 5
|
|
224
|
+
Nec condimentum enim sagittis quis, quis, fames dolor
|
|
225
|
+
|
|
226
|
+
Vehicle 6
|
|
227
|
+
Interdum eget orci velit. elit. sagittis bibendum, elit. massa ac pretium iaculis.
|
|
228
|
+
|
|
229
|
+
Vehicle 7
|
|
230
|
+
Ante Duis Interdum ut dolor aliquam
|
|
231
|
+
Lorem dolor tincidunt. volutpat primis iaculis. iaculis.
|
|
232
|
+
|
|
233
|
+
Vehicle 8
|
|
234
|
+
Nec iaculis. et lorem condimentum ac semper. neque. Interdum
|
|
235
|
+
|
|
236
|
+
Vehicle 9
|
|
237
|
+
Metus adipiscing fames orci, consectetur Duis efficitur Integer eget ipsum elit.
|
|
238
|
+
|
|
239
|
+
Vehicle 10
|
|
240
|
+
Interdum vitae Fusce adipiscing tincidunt. hendrerit ac condimentum In in semper
|
|
241
|
+
|
|
242
|
+
#### Summary
|
|
243
|
+
|
|
244
|
+
Virtual list with 5000 items
|
|
245
|
+
Vehicle 1
|
|
246
|
+
Rutrum quis, ipsum sit tincidunt. semper. libero ac ut tincidunt.
|
|
247
|
+
|
|
248
|
+
Vehicle 2
|
|
249
|
+
Ligula Ut tortor in aliquam
|
|
250
|
+
|
|
251
|
+
Vehicle 3
|
|
252
|
+
Mauris ut vitae Fusce et et Fusce orci, primis lorem neque. sem. orci In ut
|
|
253
|
+
|
|
254
|
+
Vehicle 4
|
|
255
|
+
Pretium est orci ante aliquam
|
|
256
|
+
|
|
257
|
+
Vehicle 5
|
|
258
|
+
Nec condimentum enim sagittis quis, quis, fames dolor
|
|
259
|
+
|
|
260
|
+
Vehicle 6
|
|
261
|
+
Interdum eget orci velit. elit. sagittis bibendum, elit. massa ac pretium iaculis.
|
|
262
|
+
|
|
263
|
+
Vehicle 7
|
|
264
|
+
Ante Duis Interdum ut dolor aliquam
|
|
265
|
+
Lorem dolor tincidunt. volutpat primis iaculis. iaculis.
|
|
266
|
+
|
|
267
|
+
Vehicle 8
|
|
268
|
+
Nec iaculis. et lorem condimentum ac semper. neque. Interdum
|
|
269
|
+
|
|
270
|
+
Vehicle 9
|
|
271
|
+
Metus adipiscing fames orci, consectetur Duis efficitur Integer eget ipsum elit.
|
|
272
|
+
|
|
273
|
+
Vehicle 10
|
|
274
|
+
Interdum vitae Fusce adipiscing tincidunt. hendrerit ac condimentum In in semper
|
|
275
|
+
|
|
276
|
+
#### React (tsx)
|
|
277
|
+
|
|
278
|
+
```tsx
|
|
279
|
+
import { useRef } from 'react';
|
|
280
|
+
|
|
281
|
+
import Avatar from '@rio-cloud/rio-uikit/Avatar';
|
|
282
|
+
import VirtualList from '@rio-cloud/rio-uikit/VirtualList';
|
|
283
|
+
|
|
284
|
+
import { generateDummyText } from '../../../utils/data';
|
|
285
|
+
|
|
286
|
+
const DemoItem = ({ title, description }: { title: string; description: string }) => (
|
|
287
|
+
<div className='display-flex gap-15 align-items-center'>
|
|
288
|
+
<Avatar iconName='truck' backgroundColor='bg-lightest' />
|
|
289
|
+
<div>
|
|
290
|
+
<div className='text-medium' data-test-ignore='text'>
|
|
291
|
+
{title}
|
|
292
|
+
</div>
|
|
293
|
+
<div className='word-break' data-test-ignore='text'>
|
|
294
|
+
{description}
|
|
295
|
+
</div>
|
|
296
|
+
</div>
|
|
297
|
+
</div>
|
|
298
|
+
);
|
|
299
|
+
|
|
300
|
+
const ITEM_COUNT = 5_000;
|
|
301
|
+
|
|
302
|
+
// This demo includes:
|
|
303
|
+
// - A custom item component
|
|
304
|
+
// - List group styling for the inner container and the items wrapper
|
|
305
|
+
// - The max height is defined outside on the parent of the VirtualList using a scrollContainerRef
|
|
306
|
+
// - A custom overscan count, means more items are loaded outside the visible window
|
|
307
|
+
|
|
308
|
+
export default () => {
|
|
309
|
+
const items = Array.from({ length: ITEM_COUNT }, (_, index) => ({
|
|
310
|
+
title: `Vehicle ${index + 1}`,
|
|
311
|
+
description: generateDummyText(),
|
|
312
|
+
}));
|
|
313
|
+
|
|
314
|
+
const scrollContainerRef = useRef<HTMLDivElement>(null);
|
|
315
|
+
|
|
316
|
+
return (
|
|
317
|
+
<div className='padding-20'>
|
|
318
|
+
<label>Virtual list with {ITEM_COUNT} items</label>
|
|
319
|
+
<div ref={scrollContainerRef} className='max-width-600 max-height-400 overflow-y-auto'>
|
|
320
|
+
<VirtualList
|
|
321
|
+
items={items}
|
|
322
|
+
renderItem={(item, index) => (
|
|
323
|
+
<DemoItem key={index} title={item.title} description={item.description} />
|
|
324
|
+
)}
|
|
325
|
+
className='border rounded'
|
|
326
|
+
containerClassName='list-group'
|
|
327
|
+
listItemWrapperClassName='list-group-item padding-y-15'
|
|
328
|
+
defaultHeight={71}
|
|
329
|
+
overscanCount={5}
|
|
330
|
+
scrollContainerRef={scrollContainerRef}
|
|
331
|
+
/>
|
|
332
|
+
</div>
|
|
333
|
+
</div>
|
|
334
|
+
);
|
|
335
|
+
};
|
|
336
|
+
```
|
|
337
|
+
|
|
338
|
+
#### HTML (html)
|
|
339
|
+
|
|
340
|
+
```html
|
|
341
|
+
<div class="padding-20">
|
|
342
|
+
<label>Virtual list with 5000 items</label>
|
|
343
|
+
<div class="max-width-600 max-height-400 overflow-y-auto">
|
|
344
|
+
<div class="VirtualList overflow-y-auto border rounded" style="height: 360000px; position: relative; overflow: visible;">
|
|
345
|
+
<div class="position-relative" style="height: auto;">
|
|
346
|
+
<div class="VirtualListItemContainer list-group">
|
|
347
|
+
<div class="VirtualListItemWrapper list-group-item padding-y-15" data-index="0" style="position: absolute; transform: translateY(0px); width: 100%; will-change: transform;">
|
|
348
|
+
<div class="display-flex gap-15 align-items-center">
|
|
349
|
+
<div class="Avatar bg-lightest" style="height: 40px;">
|
|
350
|
+
<span class="Avatar-icon rioglyph rioglyph-truck ">
|
|
351
|
+
</span>
|
|
352
|
+
</div>
|
|
353
|
+
<div>
|
|
354
|
+
<div class="text-medium" data-test-ignore="text">Vehicle 1</div>
|
|
355
|
+
<div class="word-break" data-test-ignore="text">Rutrum quis, ipsum sit tincidunt. semper. libero ac ut tincidunt.</div>
|
|
356
|
+
</div>
|
|
357
|
+
</div>
|
|
358
|
+
</div>
|
|
359
|
+
<div class="VirtualListItemWrapper list-group-item padding-y-15" data-index="1" style="position: absolute; transform: translateY(69px); width: 100%; will-change: transform;">
|
|
360
|
+
<div class="display-flex gap-15 align-items-center">
|
|
361
|
+
<div class="Avatar bg-lightest" style="height: 40px;">
|
|
362
|
+
<span class="Avatar-icon rioglyph rioglyph-truck ">
|
|
363
|
+
</span>
|
|
364
|
+
</div>
|
|
365
|
+
<div>
|
|
366
|
+
<div class="text-medium" data-test-ignore="text">Vehicle 2</div>
|
|
367
|
+
<div class="word-break" data-test-ignore="text">Ligula Ut tortor in aliquam</div>
|
|
368
|
+
</div>
|
|
369
|
+
</div>
|
|
370
|
+
</div>
|
|
371
|
+
<div class="VirtualListItemWrapper list-group-item padding-y-15" data-index="2" style="position: absolute; transform: translateY(139px); width: 100%; will-change: transform;">
|
|
372
|
+
<div class="display-flex gap-15 align-items-center">
|
|
373
|
+
<div class="Avatar bg-lightest" style="height: 40px;">
|
|
374
|
+
<span class="Avatar-icon rioglyph rioglyph-truck ">
|
|
375
|
+
</span>
|
|
376
|
+
</div>
|
|
377
|
+
<div>
|
|
378
|
+
<div class="text-medium" data-test-ignore="text">Vehicle 3</div>
|
|
379
|
+
<div class="word-break" data-test-ignore="text">Mauris ut vitae Fusce et et Fusce orci, primis lorem neque. sem. orci In ut</div>
|
|
380
|
+
</div>
|
|
381
|
+
</div>
|
|
382
|
+
</div>
|
|
383
|
+
<div class="VirtualListItemWrapper list-group-item padding-y-15" data-index="3" style="position: absolute; transform: translateY(209px); width: 100%; will-change: transform;">
|
|
384
|
+
<div class="display-flex gap-15 align-items-center">
|
|
385
|
+
<div class="Avatar bg-lightest" style="height: 40px;">
|
|
386
|
+
<span class="Avatar-icon rioglyph rioglyph-truck ">
|
|
387
|
+
</span>
|
|
388
|
+
</div>
|
|
389
|
+
<div>
|
|
390
|
+
<div class="text-medium" data-test-ignore="text">Vehicle 4</div>
|
|
391
|
+
<div class="word-break" data-test-ignore="text">Pretium est orci ante aliquam</div>
|
|
392
|
+
</div>
|
|
393
|
+
</div>
|
|
394
|
+
</div>
|
|
395
|
+
<div class="VirtualListItemWrapper list-group-item padding-y-15" data-index="4" style="position: absolute; transform: translateY(279px); width: 100%; will-change: transform;">
|
|
396
|
+
<div class="display-flex gap-15 align-items-center">
|
|
397
|
+
<div class="Avatar bg-lightest" style="height: 40px;">
|
|
398
|
+
<span class="Avatar-icon rioglyph rioglyph-truck ">
|
|
399
|
+
</span>
|
|
400
|
+
</div>
|
|
401
|
+
<div>
|
|
402
|
+
<div class="text-medium" data-test-ignore="text">Vehicle 5</div>
|
|
403
|
+
<div class="word-break" data-test-ignore="text">Nec condimentum enim sagittis quis, quis, fames dolor</div>
|
|
404
|
+
</div>
|
|
405
|
+
</div>
|
|
406
|
+
</div>
|
|
407
|
+
<div class="VirtualListItemWrapper list-group-item padding-y-15" data-index="5" style="position: absolute; transform: translateY(349px); width: 100%; will-change: transform;">
|
|
408
|
+
<div class="display-flex gap-15 align-items-center">
|
|
409
|
+
<div class="Avatar bg-lightest" style="height: 40px;">
|
|
410
|
+
<span class="Avatar-icon rioglyph rioglyph-truck ">
|
|
411
|
+
</span>
|
|
412
|
+
</div>
|
|
413
|
+
<div>
|
|
414
|
+
<div class="text-medium" data-test-ignore="text">Vehicle 6</div>
|
|
415
|
+
<div class="word-break" data-test-ignore="text">Interdum eget orci velit. elit. sagittis bibendum, elit. massa ac pretium iaculis.</div>
|
|
416
|
+
</div>
|
|
417
|
+
</div>
|
|
418
|
+
</div>
|
|
419
|
+
<div class="VirtualListItemWrapper list-group-item padding-y-15" data-index="6" style="position: absolute; transform: translateY(419px); width: 100%; will-change: transform;">
|
|
420
|
+
<div class="display-flex gap-15 align-items-center">
|
|
421
|
+
<div class="Avatar bg-lightest" style="height: 40px;">
|
|
422
|
+
<span class="Avatar-icon rioglyph rioglyph-truck ">
|
|
423
|
+
</span>
|
|
424
|
+
</div>
|
|
425
|
+
<div>
|
|
426
|
+
<div class="text-medium" data-test-ignore="text">Vehicle 7</div>
|
|
427
|
+
<div class="word-break" data-test-ignore="text">Ante Duis Interdum ut dolor aliquam
|
|
428
|
+
Lorem dolor tincidunt. volutpat primis iaculis. iaculis.</div>
|
|
429
|
+
</div>
|
|
430
|
+
</div>
|
|
431
|
+
</div>
|
|
432
|
+
<div class="VirtualListItemWrapper list-group-item padding-y-15" data-index="7" style="position: absolute; transform: translateY(509px); width: 100%; will-change: transform;">
|
|
433
|
+
<div class="display-flex gap-15 align-items-center">
|
|
434
|
+
<div class="Avatar bg-lightest" style="height: 40px;">
|
|
435
|
+
<span class="Avatar-icon rioglyph rioglyph-truck ">
|
|
436
|
+
</span>
|
|
437
|
+
</div>
|
|
438
|
+
<div>
|
|
439
|
+
<div class="text-medium" data-test-ignore="text">Vehicle 8</div>
|
|
440
|
+
<div class="word-break" data-test-ignore="text">Nec iaculis. et lorem condimentum ac semper. neque. Interdum</div>
|
|
441
|
+
</div>
|
|
442
|
+
</div>
|
|
443
|
+
</div>
|
|
444
|
+
<div class="VirtualListItemWrapper list-group-item padding-y-15" data-index="8" style="position: absolute; transform: translateY(579px); width: 100%; will-change: transform;">
|
|
445
|
+
<div class="display-flex gap-15 align-items-center">
|
|
446
|
+
<div class="Avatar bg-lightest" style="height: 40px;">
|
|
447
|
+
<span class="Avatar-icon rioglyph rioglyph-truck ">
|
|
448
|
+
</span>
|
|
449
|
+
</div>
|
|
450
|
+
<div>
|
|
451
|
+
<div class="text-medium" data-test-ignore="text">Vehicle 9</div>
|
|
452
|
+
<div class="word-break" data-test-ignore="text">Metus adipiscing fames orci, consectetur Duis efficitur Integer eget ipsum elit.</div>
|
|
453
|
+
</div>
|
|
454
|
+
</div>
|
|
455
|
+
</div>
|
|
456
|
+
<div class="VirtualListItemWrapper list-group-item padding-y-15" data-index="9" style="position: absolute; transform: translateY(649px); width: 100%; will-change: transform;">
|
|
457
|
+
<div class="display-flex gap-15 align-items-center">
|
|
458
|
+
<div class="Avatar bg-lightest" style="height: 40px;">
|
|
459
|
+
<span class="Avatar-icon rioglyph rioglyph-truck ">
|
|
460
|
+
</span>
|
|
461
|
+
</div>
|
|
462
|
+
<div>
|
|
463
|
+
<div class="text-medium" data-test-ignore="text">Vehicle 10</div>
|
|
464
|
+
<div class="word-break" data-test-ignore="text">Interdum vitae Fusce adipiscing tincidunt. hendrerit ac condimentum In in semper</div>
|
|
465
|
+
</div>
|
|
466
|
+
</div>
|
|
467
|
+
</div>
|
|
468
|
+
</div>
|
|
469
|
+
</div>
|
|
470
|
+
</div>
|
|
471
|
+
</div>
|
|
472
|
+
</div>
|
|
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. |
|