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