@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.
Files changed (388) hide show
  1. package/README.md +75 -40
  2. package/dist/doc-metadata.json +1872 -0
  3. package/dist/docs/components/accentBar.md +582 -0
  4. package/dist/docs/components/activity.md +330 -0
  5. package/dist/docs/components/animatedNumber.md +88 -0
  6. package/dist/docs/components/animatedTextReveal.md +381 -0
  7. package/dist/docs/components/animations.md +459 -0
  8. package/dist/docs/components/appHeader.md +737 -0
  9. package/dist/docs/components/appLayout.md +2016 -0
  10. package/dist/docs/components/appNavigationBar.md +274 -0
  11. package/dist/docs/components/areaCharts.md +828 -0
  12. package/dist/docs/components/aspectRatioPlaceholder.md +106 -0
  13. package/dist/docs/components/assetTree.md +3223 -0
  14. package/dist/docs/components/autosuggests.md +1177 -0
  15. package/dist/docs/components/avatar.md +206 -0
  16. package/dist/docs/components/banner.md +668 -0
  17. package/dist/docs/components/barCharts.md +2785 -0
  18. package/dist/docs/components/barList.md +517 -0
  19. package/dist/docs/components/basicMap.md +167 -0
  20. package/dist/docs/components/bottomSheet.md +721 -0
  21. package/dist/docs/components/button.md +775 -0
  22. package/dist/docs/components/buttonToolbar.md +134 -0
  23. package/dist/docs/components/calendarStripe.md +525 -0
  24. package/dist/docs/components/card.md +86 -0
  25. package/dist/docs/components/carousel.md +128 -0
  26. package/dist/docs/components/chartColors.md +716 -0
  27. package/dist/docs/components/chartsGettingStarted.md +28 -0
  28. package/dist/docs/components/chat.md +932 -0
  29. package/dist/docs/components/checkbox.md +996 -0
  30. package/dist/docs/components/clearableInput.md +806 -0
  31. package/dist/docs/components/collapse.md +189 -0
  32. package/dist/docs/components/composedCharts.md +424 -0
  33. package/dist/docs/components/contentLoader.md +674 -0
  34. package/dist/docs/components/dataTabs.md +1251 -0
  35. package/dist/docs/components/datepickers.md +2543 -0
  36. package/dist/docs/components/dialogs.md +2244 -0
  37. package/dist/docs/components/divider.md +219 -0
  38. package/dist/docs/components/dropdowns.md +17550 -0
  39. package/dist/docs/components/editableContent.md +1127 -0
  40. package/dist/docs/components/expander.md +970 -0
  41. package/dist/docs/components/fade.md +836 -0
  42. package/dist/docs/components/fadeExpander.md +180 -0
  43. package/dist/docs/components/fadeUp.md +396 -0
  44. package/dist/docs/components/feedback.md +758 -0
  45. package/dist/docs/components/filePickers.md +370 -0
  46. package/dist/docs/components/formLabel.md +251 -0
  47. package/dist/docs/components/fullscreenMap.md +10 -0
  48. package/dist/docs/components/groupedItemList.md +1001 -0
  49. package/dist/docs/components/iconList.md +306 -0
  50. package/dist/docs/components/imagePreloader.md +167 -0
  51. package/dist/docs/components/labeledElement.md +115 -0
  52. package/dist/docs/components/licensePlate.md +412 -0
  53. package/dist/docs/components/lineCharts.md +2014 -0
  54. package/dist/docs/components/listMenu.md +392 -0
  55. package/dist/docs/components/loadMore.md +219 -0
  56. package/dist/docs/components/mainNavigation.md +129 -0
  57. package/dist/docs/components/mapCircle.md +93 -0
  58. package/dist/docs/components/mapCluster.md +337 -0
  59. package/dist/docs/components/mapContext.md +284 -0
  60. package/dist/docs/components/mapDraggableMarker.md +150 -0
  61. package/dist/docs/components/mapGettingStarted.md +39 -0
  62. package/dist/docs/components/mapInfoBubble.md +135 -0
  63. package/dist/docs/components/mapLayerGroup.md +94 -0
  64. package/dist/docs/components/mapMarker.md +1814 -0
  65. package/dist/docs/components/mapPolygon.md +959 -0
  66. package/dist/docs/components/mapRoute.md +3816 -0
  67. package/dist/docs/components/mapRouteGenerator.md +6 -0
  68. package/dist/docs/components/mapSettings.md +1040 -0
  69. package/dist/docs/components/mapUtils.md +132 -0
  70. package/dist/docs/components/multiselects.md +1921 -0
  71. package/dist/docs/components/noData.md +210 -0
  72. package/dist/docs/components/notifications.md +314 -0
  73. package/dist/docs/components/numbercontrol.md +706 -0
  74. package/dist/docs/components/onboarding.md +297 -0
  75. package/dist/docs/components/page.md +241 -0
  76. package/dist/docs/components/pager.md +133 -0
  77. package/dist/docs/components/pieCharts.md +1284 -0
  78. package/dist/docs/components/popover.md +222 -0
  79. package/dist/docs/components/position.md +50 -0
  80. package/dist/docs/components/radialBarCharts.md +3663 -0
  81. package/dist/docs/components/radiobutton.md +1271 -0
  82. package/dist/docs/components/releaseNotes.md +135 -0
  83. package/dist/docs/components/resizer.md +162 -0
  84. package/dist/docs/components/responsiveColumnStripe.md +435 -0
  85. package/dist/docs/components/responsiveVideo.md +71 -0
  86. package/dist/docs/components/rioglyph.md +331 -0
  87. package/dist/docs/components/rules.md +965 -0
  88. package/dist/docs/components/saveableInput.md +1721 -0
  89. package/dist/docs/components/selects.md +1993 -0
  90. package/dist/docs/components/sidebar.md +332 -0
  91. package/dist/docs/components/sliders.md +376 -0
  92. package/dist/docs/components/smoothScrollbars.md +1180 -0
  93. package/dist/docs/components/spinners.md +506 -0
  94. package/dist/docs/components/states.md +1176 -0
  95. package/dist/docs/components/statsWidgets.md +636 -0
  96. package/dist/docs/components/statusBar.md +644 -0
  97. package/dist/docs/components/stepButton.md +61 -0
  98. package/dist/docs/components/steppedProgressBars.md +1064 -0
  99. package/dist/docs/components/subNavigation.md +470 -0
  100. package/dist/docs/components/supportMarker.md +115 -0
  101. package/dist/docs/components/svgImage.md +248 -0
  102. package/dist/docs/components/switch.md +554 -0
  103. package/dist/docs/components/tables.md +8 -0
  104. package/dist/docs/components/tagManager.md +476 -0
  105. package/dist/docs/components/tags.md +785 -0
  106. package/dist/docs/components/teaser.md +925 -0
  107. package/dist/docs/components/timeline.md +514 -0
  108. package/dist/docs/components/timepicker.md +262 -0
  109. package/dist/docs/components/toggleButton.md +178 -0
  110. package/dist/docs/components/tooltip.md +454 -0
  111. package/dist/docs/components/virtualList.md +483 -0
  112. package/dist/docs/foundations.md +20901 -0
  113. package/dist/docs/start/changelog.md +439 -0
  114. package/dist/docs/start/goodtoknow.md +14 -0
  115. package/dist/docs/start/guidelines/color-combinations.md +678 -0
  116. package/dist/docs/start/guidelines/custom-css.md +42 -0
  117. package/dist/docs/start/guidelines/custom-rioglyph.md +35 -0
  118. package/dist/docs/start/guidelines/formatting.md +587 -0
  119. package/dist/docs/start/guidelines/iframe.md +323 -0
  120. package/dist/docs/start/guidelines/obfuscate-data.md +30 -0
  121. package/dist/docs/start/guidelines/print-css.md +36 -0
  122. package/dist/docs/start/guidelines/spinner.md +710 -0
  123. package/dist/docs/start/guidelines/supported-browsers.md +10 -0
  124. package/dist/docs/start/guidelines/writing.md +635 -0
  125. package/dist/docs/start/howto.md +187 -0
  126. package/dist/docs/start/intro.md +43 -0
  127. package/dist/docs/start/responsiveness.md +98 -0
  128. package/dist/docs/templates/common-table.md +1111 -0
  129. package/dist/docs/templates/detail-views.md +942 -0
  130. package/dist/docs/templates/expandable-details.md +228 -0
  131. package/dist/docs/templates/feature-cards.md +549 -0
  132. package/dist/docs/templates/form-summary.md +199 -0
  133. package/dist/docs/templates/form-toggle.md +367 -0
  134. package/dist/docs/templates/list-blocks.md +1021 -0
  135. package/dist/docs/templates/loading-progress.md +109 -0
  136. package/dist/docs/templates/options-panel.md +152 -0
  137. package/dist/docs/templates/panel-variants.md +164 -0
  138. package/dist/docs/templates/progress-cards.md +607 -0
  139. package/dist/docs/templates/progress-success.md +142 -0
  140. package/dist/docs/templates/settings-form.md +434 -0
  141. package/dist/docs/templates/stats-blocks.md +1381 -0
  142. package/dist/docs/templates/table-panel.md +184 -0
  143. package/dist/docs/templates/table-row-animation.md +317 -0
  144. package/dist/docs/templates/usage-cards.md +227 -0
  145. package/dist/docs/utilities/deviceUtils.md +123 -0
  146. package/dist/docs/utilities/featureToggles.md +90 -0
  147. package/dist/docs/utilities/fuelTypeUtils.md +186 -0
  148. package/dist/docs/utilities/routeUtils.md +138 -0
  149. package/dist/docs/utilities/useAfterMount.md +66 -0
  150. package/dist/docs/utilities/useAutoAnimate.md +193 -0
  151. package/dist/docs/utilities/useAverage.md +95 -0
  152. package/dist/docs/utilities/useClickOutside.md +61 -0
  153. package/dist/docs/utilities/useClipboard.md +93 -0
  154. package/dist/docs/utilities/useCount.md +178 -0
  155. package/dist/docs/utilities/useDarkMode.md +49 -0
  156. package/dist/docs/utilities/useDebugInfo.md +126 -0
  157. package/dist/docs/utilities/useEffectOnce.md +58 -0
  158. package/dist/docs/utilities/useElapsedTime.md +58 -0
  159. package/dist/docs/utilities/useElementSize.md +71 -0
  160. package/dist/docs/utilities/useEsc.md +58 -0
  161. package/dist/docs/utilities/useEvent.md +64 -0
  162. package/dist/docs/utilities/useFocusTrap.md +85 -0
  163. package/dist/docs/utilities/useFullscreen.md +198 -0
  164. package/dist/docs/utilities/useHover.md +55 -0
  165. package/dist/docs/utilities/useIncomingPostMessages.md +237 -0
  166. package/dist/docs/utilities/useInterval.md +85 -0
  167. package/dist/docs/utilities/useIsFocusWithin.md +114 -0
  168. package/dist/docs/utilities/useKey.md +151 -0
  169. package/dist/docs/utilities/useLocalStorage.md +91 -0
  170. package/dist/docs/utilities/useLocationSuggestions.md +114 -0
  171. package/dist/docs/utilities/useMax.md +62 -0
  172. package/dist/docs/utilities/useMin.md +78 -0
  173. package/dist/docs/utilities/useMutationObserver.md +113 -0
  174. package/dist/docs/utilities/useOnScreen.md +138 -0
  175. package/dist/docs/utilities/useOnlineStatus.md +49 -0
  176. package/dist/docs/utilities/usePostMessage.md +117 -0
  177. package/dist/docs/utilities/usePostMessageSender.md +257 -0
  178. package/dist/docs/utilities/usePrevious.md +101 -0
  179. package/dist/docs/utilities/useResizeObserver.md +151 -0
  180. package/dist/docs/utilities/useScrollPosition.md +252 -0
  181. package/dist/docs/utilities/useSearch.md +228 -0
  182. package/dist/docs/utilities/useSorting.md +389 -0
  183. package/dist/docs/utilities/useStateWithValidation.md +83 -0
  184. package/dist/docs/utilities/useSum.md +155 -0
  185. package/dist/docs/utilities/useTableExport.md +404 -0
  186. package/dist/docs/utilities/useTableSelection.md +1120 -0
  187. package/dist/docs/utilities/useTimeout.md +55 -0
  188. package/dist/docs/utilities/useToggle.md +115 -0
  189. package/dist/docs/utilities/useWindowResize.md +70 -0
  190. package/dist/index.mjs +271 -0
  191. package/dist/search-synonyms.json +134 -0
  192. package/dist/version.json +4 -0
  193. package/package.json +23 -19
  194. package/bin/uikit-mcp.mjs +0 -23
  195. package/data/pages/Components/components/accentbar.json +0 -207
  196. package/data/pages/Components/components/activity.json +0 -87
  197. package/data/pages/Components/components/animatednumber.json +0 -99
  198. package/data/pages/Components/components/animations.json +0 -87
  199. package/data/pages/Components/components/appheader.json +0 -291
  200. package/data/pages/Components/components/applayout.json +0 -1198
  201. package/data/pages/Components/components/appnavigationbar.json +0 -327
  202. package/data/pages/Components/components/areacharts.json +0 -563
  203. package/data/pages/Components/components/aspectratioplaceholder.json +0 -75
  204. package/data/pages/Components/components/assettree.json +0 -3080
  205. package/data/pages/Components/components/autosuggests.json +0 -710
  206. package/data/pages/Components/components/avatar.json +0 -157
  207. package/data/pages/Components/components/banner.json +0 -599
  208. package/data/pages/Components/components/barcharts.json +0 -1507
  209. package/data/pages/Components/components/barlist.json +0 -223
  210. package/data/pages/Components/components/basicmap.json +0 -68
  211. package/data/pages/Components/components/bottomsheet.json +0 -601
  212. package/data/pages/Components/components/button.json +0 -583
  213. package/data/pages/Components/components/buttontoolbar.json +0 -63
  214. package/data/pages/Components/components/calendarstripe.json +0 -235
  215. package/data/pages/Components/components/card.json +0 -69
  216. package/data/pages/Components/components/carousel.json +0 -39
  217. package/data/pages/Components/components/chartcolors.json +0 -34
  218. package/data/pages/Components/components/chartsgettingstarted.json +0 -32
  219. package/data/pages/Components/components/chat.json +0 -39
  220. package/data/pages/Components/components/checkbox.json +0 -847
  221. package/data/pages/Components/components/clearableinput.json +0 -789
  222. package/data/pages/Components/components/collapse.json +0 -175
  223. package/data/pages/Components/components/composedcharts.json +0 -159
  224. package/data/pages/Components/components/contentloader.json +0 -233
  225. package/data/pages/Components/components/datatabs.json +0 -680
  226. package/data/pages/Components/components/datepickers.json +0 -287
  227. package/data/pages/Components/components/dialogs.json +0 -1492
  228. package/data/pages/Components/components/divider.json +0 -93
  229. package/data/pages/Components/components/dropdowns.json +0 -936
  230. package/data/pages/Components/components/editablecontent.json +0 -1117
  231. package/data/pages/Components/components/expander.json +0 -377
  232. package/data/pages/Components/components/fade.json +0 -403
  233. package/data/pages/Components/components/fadeexpander.json +0 -75
  234. package/data/pages/Components/components/fadeup.json +0 -127
  235. package/data/pages/Components/components/feedback.json +0 -269
  236. package/data/pages/Components/components/filepickers.json +0 -269
  237. package/data/pages/Components/components/formlabel.json +0 -115
  238. package/data/pages/Components/components/fullscreenmap.json +0 -22
  239. package/data/pages/Components/components/groupeditemlist.json +0 -323
  240. package/data/pages/Components/components/iconlist.json +0 -45
  241. package/data/pages/Components/components/imagepreloader.json +0 -81
  242. package/data/pages/Components/components/labeledelement.json +0 -75
  243. package/data/pages/Components/components/licenseplate.json +0 -69
  244. package/data/pages/Components/components/linecharts.json +0 -987
  245. package/data/pages/Components/components/listmenu.json +0 -313
  246. package/data/pages/Components/components/loadmore.json +0 -175
  247. package/data/pages/Components/components/mainnavigation.json +0 -39
  248. package/data/pages/Components/components/mapcircle.json +0 -34
  249. package/data/pages/Components/components/mapcluster.json +0 -51
  250. package/data/pages/Components/components/mapcontext.json +0 -105
  251. package/data/pages/Components/components/mapdraggablemarker.json +0 -34
  252. package/data/pages/Components/components/mapgettingstarted.json +0 -27
  253. package/data/pages/Components/components/mapgroup.json +0 -1198
  254. package/data/pages/Components/components/mapinfobubble.json +0 -34
  255. package/data/pages/Components/components/maplayergroup.json +0 -34
  256. package/data/pages/Components/components/mapmarker.json +0 -700
  257. package/data/pages/Components/components/mappolygon.json +0 -45
  258. package/data/pages/Components/components/maproute.json +0 -623
  259. package/data/pages/Components/components/maproutegenerator.json +0 -16
  260. package/data/pages/Components/components/mapsettings.json +0 -51
  261. package/data/pages/Components/components/maputils.json +0 -34
  262. package/data/pages/Components/components/multiselects.json +0 -1451
  263. package/data/pages/Components/components/nodata.json +0 -139
  264. package/data/pages/Components/components/notifications.json +0 -65
  265. package/data/pages/Components/components/numbercontrol.json +0 -301
  266. package/data/pages/Components/components/onboarding.json +0 -302
  267. package/data/pages/Components/components/page.json +0 -197
  268. package/data/pages/Components/components/pager.json +0 -93
  269. package/data/pages/Components/components/piecharts.json +0 -731
  270. package/data/pages/Components/components/popover.json +0 -251
  271. package/data/pages/Components/components/position.json +0 -69
  272. package/data/pages/Components/components/radialbarcharts.json +0 -1304
  273. package/data/pages/Components/components/radiobutton.json +0 -1105
  274. package/data/pages/Components/components/releasenotes.json +0 -44
  275. package/data/pages/Components/components/resizer.json +0 -93
  276. package/data/pages/Components/components/responsivecolumnstripe.json +0 -123
  277. package/data/pages/Components/components/responsivevideo.json +0 -75
  278. package/data/pages/Components/components/rioglyph.json +0 -93
  279. package/data/pages/Components/components/rules.json +0 -410
  280. package/data/pages/Components/components/saveableinput.json +0 -703
  281. package/data/pages/Components/components/selects.json +0 -701
  282. package/data/pages/Components/components/sidebar.json +0 -243
  283. package/data/pages/Components/components/sliders.json +0 -235
  284. package/data/pages/Components/components/smoothscrollbars.json +0 -335
  285. package/data/pages/Components/components/spinners.json +0 -343
  286. package/data/pages/Components/components/states.json +0 -1705
  287. package/data/pages/Components/components/statswidgets.json +0 -314
  288. package/data/pages/Components/components/statusbar.json +0 -177
  289. package/data/pages/Components/components/stepbutton.json +0 -57
  290. package/data/pages/Components/components/steppedprogressbars.json +0 -417
  291. package/data/pages/Components/components/subnavigation.json +0 -107
  292. package/data/pages/Components/components/supportmarker.json +0 -45
  293. package/data/pages/Components/components/svgimage.json +0 -81
  294. package/data/pages/Components/components/switch.json +0 -111
  295. package/data/pages/Components/components/tables.json +0 -144
  296. package/data/pages/Components/components/tagmanager.json +0 -86
  297. package/data/pages/Components/components/tags.json +0 -146
  298. package/data/pages/Components/components/teaser.json +0 -188
  299. package/data/pages/Components/components/timeline.json +0 -45
  300. package/data/pages/Components/components/timepicker.json +0 -163
  301. package/data/pages/Components/components/togglebutton.json +0 -247
  302. package/data/pages/Components/components/tooltip.json +0 -270
  303. package/data/pages/Components/components/virtuallist.json +0 -175
  304. package/data/pages/Foundations/foundations.json +0 -2475
  305. package/data/pages/Getting-started/start/changelog.json +0 -22
  306. package/data/pages/Getting-started/start/goodtoknow.json +0 -32
  307. package/data/pages/Getting-started/start/guidelines/color-combinations.json +0 -58
  308. package/data/pages/Getting-started/start/guidelines/custom-css.json +0 -27
  309. package/data/pages/Getting-started/start/guidelines/custom-rioglyph.json +0 -22
  310. package/data/pages/Getting-started/start/guidelines/formatting.json +0 -97
  311. package/data/pages/Getting-started/start/guidelines/iframe.json +0 -93
  312. package/data/pages/Getting-started/start/guidelines/obfuscate-data.json +0 -22
  313. package/data/pages/Getting-started/start/guidelines/print-css.json +0 -37
  314. package/data/pages/Getting-started/start/guidelines/spinner.json +0 -144
  315. package/data/pages/Getting-started/start/guidelines/supported-browsers.json +0 -22
  316. package/data/pages/Getting-started/start/guidelines/writing.json +0 -242
  317. package/data/pages/Getting-started/start/howto.json +0 -72
  318. package/data/pages/Getting-started/start/intro.json +0 -37
  319. package/data/pages/Getting-started/start/responsiveness.json +0 -52
  320. package/data/pages/Templates/templates/common-table.json +0 -39
  321. package/data/pages/Templates/templates/detail-views.json +0 -71
  322. package/data/pages/Templates/templates/expandable-details.json +0 -39
  323. package/data/pages/Templates/templates/feature-cards.json +0 -103
  324. package/data/pages/Templates/templates/form-summary.json +0 -39
  325. package/data/pages/Templates/templates/form-toggle.json +0 -39
  326. package/data/pages/Templates/templates/list-blocks.json +0 -119
  327. package/data/pages/Templates/templates/loading-progress.json +0 -39
  328. package/data/pages/Templates/templates/options-panel.json +0 -39
  329. package/data/pages/Templates/templates/panel-variants.json +0 -39
  330. package/data/pages/Templates/templates/progress-cards.json +0 -71
  331. package/data/pages/Templates/templates/progress-success.json +0 -39
  332. package/data/pages/Templates/templates/settings-form.json +0 -39
  333. package/data/pages/Templates/templates/stats-blocks.json +0 -135
  334. package/data/pages/Templates/templates/table-panel.json +0 -39
  335. package/data/pages/Templates/templates/table-row-animation.json +0 -39
  336. package/data/pages/Templates/templates/usage-cards.json +0 -39
  337. package/data/pages/Utilities/utilities/deviceutils.json +0 -39
  338. package/data/pages/Utilities/utilities/featuretoggles.json +0 -42
  339. package/data/pages/Utilities/utilities/fueltypeutils.json +0 -118
  340. package/data/pages/Utilities/utilities/routeutils.json +0 -34
  341. package/data/pages/Utilities/utilities/useaftermount.json +0 -63
  342. package/data/pages/Utilities/utilities/useaverage.json +0 -86
  343. package/data/pages/Utilities/utilities/useclickoutside.json +0 -69
  344. package/data/pages/Utilities/utilities/useclipboard.json +0 -57
  345. package/data/pages/Utilities/utilities/usecount.json +0 -92
  346. package/data/pages/Utilities/utilities/usedarkmode.json +0 -50
  347. package/data/pages/Utilities/utilities/usedebuginfo.json +0 -63
  348. package/data/pages/Utilities/utilities/useeffectonce.json +0 -57
  349. package/data/pages/Utilities/utilities/useelapsedtime.json +0 -57
  350. package/data/pages/Utilities/utilities/useelementsize.json +0 -63
  351. package/data/pages/Utilities/utilities/useesc.json +0 -57
  352. package/data/pages/Utilities/utilities/useevent.json +0 -75
  353. package/data/pages/Utilities/utilities/usefocustrap.json +0 -57
  354. package/data/pages/Utilities/utilities/usefullscreen.json +0 -197
  355. package/data/pages/Utilities/utilities/usehover.json +0 -57
  356. package/data/pages/Utilities/utilities/useinterval.json +0 -63
  357. package/data/pages/Utilities/utilities/useisfocuswithin.json +0 -75
  358. package/data/pages/Utilities/utilities/usekey.json +0 -75
  359. package/data/pages/Utilities/utilities/uselocalstorage.json +0 -69
  360. package/data/pages/Utilities/utilities/uselocationsuggestions.json +0 -110
  361. package/data/pages/Utilities/utilities/usemax.json +0 -86
  362. package/data/pages/Utilities/utilities/usemin.json +0 -86
  363. package/data/pages/Utilities/utilities/usemutationobserver.json +0 -69
  364. package/data/pages/Utilities/utilities/useonlinestatus.json +0 -39
  365. package/data/pages/Utilities/utilities/useonscreen.json +0 -63
  366. package/data/pages/Utilities/utilities/usepostmessage.json +0 -80
  367. package/data/pages/Utilities/utilities/useprevious.json +0 -63
  368. package/data/pages/Utilities/utilities/useresizeobserver.json +0 -65
  369. package/data/pages/Utilities/utilities/usescrollposition.json +0 -103
  370. package/data/pages/Utilities/utilities/usesearch.json +0 -197
  371. package/data/pages/Utilities/utilities/usesorting.json +0 -139
  372. package/data/pages/Utilities/utilities/usestatewithvalidation.json +0 -69
  373. package/data/pages/Utilities/utilities/usesum.json +0 -86
  374. package/data/pages/Utilities/utilities/usetableexport.json +0 -87
  375. package/data/pages/Utilities/utilities/usetableselection.json +0 -311
  376. package/data/pages/Utilities/utilities/usetimeout.json +0 -63
  377. package/data/pages/Utilities/utilities/usetoggle.json +0 -75
  378. package/data/pages/Utilities/utilities/usewindowresize.json +0 -63
  379. package/data/version.json +0 -4
  380. package/docs/content-schema.md +0 -147
  381. package/docs/navigation-inventory.json +0 -1310
  382. package/docs/search-synonyms.json +0 -43
  383. package/server/index.mjs +0 -268
  384. package/server/lib/load-docs.mjs +0 -48
  385. package/server/lib/normalise-doc.mjs +0 -220
  386. package/server/lib/render-markdown.mjs +0 -82
  387. package/server/lib/search-index.mjs +0 -49
  388. package/server/lib/types.js +0 -99
@@ -1,270 +0,0 @@
1
- {
2
- "metadata": {
3
- "captured_at": "2025-11-21T12:08:01.438Z",
4
- "source": "https://uikit.developers.rio.cloud/#components/tooltip",
5
- "category": "Components",
6
- "section": "Misc",
7
- "slug": "components/tooltip",
8
- "version": "v1.13.2",
9
- "hash_algorithm": "sha256",
10
- "hash": "87df7686078a14e6f47c159846d45179ff07df10dc0edc9336c529bc8cffec33"
11
- },
12
- "title": "Tooltips",
13
- "lead": "In order to use a Tooltip on an element, wrap it with the OverlayTrigger component or use the SimpleTooltip component.",
14
- "content": [
15
- {
16
- "heading": "Tooltips",
17
- "body": "> Note: By default Tooltips are not rendered on touch devices. This might lead to issues for test environments where the check for mobile evaluate to true simply because the required class name is not set on the document element. To fix that, simply set the class in your test as follows:document.documentElement.classList.add('ua-desktop');",
18
- "examples": [
19
- {
20
- "caption": "Example 1",
21
- "rendered_html": "<div class=\"playground-content bg-white padding-20 padding-bottom-25\" style=\"width: 100%;\"><div class=\"display-grid grid-cols-1 grid-cols-2-sm gap-20\"><div class=\"padding-15\"><div class=\"display-flex justify-content-between gap-10 center-block height-50\"><button type=\"button\" class=\"btn btn-primary btn-component\" tabindex=\"0\">Hover</button><button type=\"button\" class=\"btn btn-primary btn-component\" tabindex=\"0\">Hover</button><button type=\"button\" class=\"btn btn-primary btn-component\" tabindex=\"0\">Hover</button></div><div class=\"display-flex justify-content-between gap-10 center-block height-50\"><button type=\"button\" class=\"btn btn-primary btn-component\" tabindex=\"0\">Hover</button><button type=\"button\" class=\"btn btn-primary btn-component\" tabindex=\"0\">Hover</button></div><div class=\"display-flex justify-content-between gap-10 center-block height-50\"><button type=\"button\" class=\"btn btn-primary btn-component\" tabindex=\"0\">Hover</button><button type=\"button\" class=\"btn btn-primary btn-component\" tabindex=\"0\">Hover</button><button type=\"button\" class=\"btn btn-primary btn-component\" tabindex=\"0\">Hover</button></div></div><div class=\"padding-15\"><div class=\"display-flex justify-content-between gap-10 center-block height-50\"><button type=\"button\" class=\"btn btn-primary btn-component\" tabindex=\"0\">Click</button><button type=\"button\" class=\"btn btn-primary btn-component\" tabindex=\"0\">Click</button><button type=\"button\" class=\"btn btn-primary btn-component\" tabindex=\"0\">Click</button></div><div class=\"display-flex justify-content-between gap-10 center-block height-50\"><button type=\"button\" class=\"btn btn-primary btn-component\" tabindex=\"0\">Click</button><button type=\"button\" class=\"btn btn-primary btn-component\" tabindex=\"0\">Click</button></div><div class=\"display-flex justify-content-between gap-10 center-block height-50\"><button type=\"button\" class=\"btn btn-primary btn-component\" tabindex=\"0\">Click</button><button type=\"button\" class=\"btn btn-primary btn-component\" tabindex=\"0\">Click</button><button type=\"button\" class=\"btn btn-primary btn-component\" tabindex=\"0\">Click</button></div></div></div><hr><div class=\"display-grid grid-cols-2\"><div class=\"display-flex justify-content-between gap-10 center-block\"><div class=\"display-flex align-items-center justify-content-center\" data-test=\"info-overlay\"><span class=\"rioglyph rioglyph-info-sign text-color-info text-size-18\"></span></div><div class=\"display-flex align-items-center justify-content-center\" data-test=\"info-overlay\"><span class=\"rioglyph rioglyph-info-sign text-color-info text-size-18\"></span></div><div class=\"display-flex align-items-center justify-content-center\" data-test=\"info-overlay\"><span class=\"rioglyph rioglyph-info-sign text-color-info text-size-18\"></span></div></div><div class=\"display-flex justify-content-between gap-10 center-block\"><div class=\"display-flex align-items-center justify-content-center\" data-test=\"info-overlay\"><span class=\"rioglyph rioglyph-info-sign text-color-info text-size-18\"></span></div><div class=\"display-flex align-items-center justify-content-center\" data-test=\"info-overlay\"><span class=\"rioglyph rioglyph-info-sign text-color-info text-size-18\"></span></div><div class=\"display-flex align-items-center justify-content-center\" data-test=\"info-overlay\"><span class=\"rioglyph rioglyph-info-sign text-color-info text-size-18\"></span></div></div></div></div>",
22
- "tabs": [
23
- {
24
- "label": "React",
25
- "language": "tsx",
26
- "code": "import Button from '@rio-cloud/rio-uikit/Button';\nimport Tooltip from '@rio-cloud/rio-uikit/Tooltip';\nimport OverlayTrigger from '@rio-cloud/rio-uikit/OverlayTrigger';\nimport type { Placement } from '@rio-cloud/rio-uikit/values/Placement';\n\nimport { getNames } from '../../../utils/mapUtils';\n\nconst tip = <span>Tooltip</span>;\n\nconst tooltipPlacements = {\n top: [\n {\n name: 'top-start',\n },\n {\n name: 'top',\n },\n {\n name: 'top-end',\n },\n ],\n middle: [\n {\n name: 'left',\n },\n {\n name: 'right',\n },\n ],\n bottom: [\n {\n name: 'bottom-start',\n },\n {\n name: 'bottom',\n },\n {\n name: 'bottom-end',\n },\n ],\n};\n\nconst eachPlacementTop = getNames(tooltipPlacements.top);\nconst eachPlacementMiddle = getNames(tooltipPlacements.middle);\nconst eachPlacementBottom = getNames(tooltipPlacements.bottom);\n\nexport default () => (\n <>\n <div className='display-grid grid-cols-1 grid-cols-2-sm gap-20'>\n <div className='padding-15'>\n <div className='display-flex justify-content-between gap-10 center-block height-50'>\n {eachPlacementTop.map((placement: Placement) => (\n <OverlayTrigger\n key={crypto.randomUUID()}\n placement={placement}\n overlay={\n <Tooltip id='tooltip' allowOnTouch>\n {tip}\n </Tooltip>\n }\n >\n <Button bsStyle='primary'>Hover</Button>\n </OverlayTrigger>\n ))}\n </div>\n <div className='display-flex justify-content-between gap-10 center-block height-50'>\n {eachPlacementMiddle.map((placement: Placement) => (\n <OverlayTrigger\n key={crypto.randomUUID()}\n placement={placement}\n overlay={\n <Tooltip id='tooltip' allowOnTouch>\n {tip}\n </Tooltip>\n }\n >\n <Button bsStyle='primary'>Hover</Button>\n </OverlayTrigger>\n ))}\n </div>\n <div className='display-flex justify-content-between gap-10 center-block height-50'>\n {eachPlacementBottom.map((placement: Placement) => (\n <OverlayTrigger\n key={crypto.randomUUID()}\n placement={placement}\n overlay={\n <Tooltip id='tooltip' allowOnTouch>\n {tip}\n </Tooltip>\n }\n >\n <Button bsStyle='primary'>Hover</Button>\n </OverlayTrigger>\n ))}\n </div>\n </div>\n <div className='padding-15'>\n <div className='display-flex justify-content-between gap-10 center-block height-50'>\n {eachPlacementTop.map((placement: Placement) => (\n <OverlayTrigger\n key={crypto.randomUUID()}\n placement={placement}\n trigger='click'\n overlay={\n <Tooltip id='tooltip' allowOnTouch>\n {tip}\n </Tooltip>\n }\n >\n <Button bsStyle='primary'>Click</Button>\n </OverlayTrigger>\n ))}\n </div>\n <div className='display-flex justify-content-between gap-10 center-block height-50'>\n {eachPlacementMiddle.map((placement: Placement) => (\n <OverlayTrigger\n key={crypto.randomUUID()}\n placement={placement}\n trigger='click'\n overlay={\n <Tooltip id='tooltip' allowOnTouch>\n {tip}\n </Tooltip>\n }\n >\n <Button bsStyle='primary'>Click</Button>\n </OverlayTrigger>\n ))}\n </div>\n <div className='display-flex justify-content-between gap-10 center-block height-50'>\n {eachPlacementBottom.map((placement: Placement) => (\n <OverlayTrigger\n key={crypto.randomUUID()}\n placement={placement}\n trigger='click'\n overlay={\n <Tooltip id='tooltip' allowOnTouch>\n {tip}\n </Tooltip>\n }\n >\n <Button bsStyle='primary'>Click</Button>\n </OverlayTrigger>\n ))}\n </div>\n </div>\n </div>\n <hr />\n <div className='display-grid grid-cols-2'>\n <div className='display-flex justify-content-between gap-10 center-block'>\n {eachPlacementTop.map((placement: Placement) => (\n <OverlayTrigger\n key={crypto.randomUUID()}\n placement={placement}\n delay={200}\n overlay={\n <Tooltip id='tooltip' allowOnTouch>\n {tip}\n </Tooltip>\n }\n >\n <div\n className='display-flex align-items-center justify-content-center'\n data-test='info-overlay'\n >\n <span className='rioglyph rioglyph-info-sign text-color-info text-size-18' />\n </div>\n </OverlayTrigger>\n ))}\n </div>\n <div className='display-flex justify-content-between gap-10 center-block'>\n {eachPlacementBottom.map((placement: Placement) => (\n <OverlayTrigger\n key={crypto.randomUUID()}\n placement={placement}\n delay={{ show: 1000, hide: 500 }}\n overlay={\n <Tooltip id='tooltip' allowOnTouch>\n {tip}\n </Tooltip>\n }\n >\n <div\n className='display-flex align-items-center justify-content-center'\n data-test='info-overlay'\n >\n <span className='rioglyph rioglyph-info-sign text-color-info text-size-18' />\n </div>\n </OverlayTrigger>\n ))}\n </div>\n </div>\n </>\n);"
27
- },
28
- {
29
- "label": "HTML",
30
- "language": "html",
31
- "code": "<div class=\"display-grid grid-cols-1 grid-cols-2-sm gap-20\">\n <div class=\"padding-15\">\n <div class=\"display-flex justify-content-between gap-10 center-block height-50\">\n <button type=\"button\" class=\"btn btn-primary btn-component\" tabindex=\"0\">Hover</button>\n <button type=\"button\" class=\"btn btn-primary btn-component\" tabindex=\"0\">Hover</button>\n <button type=\"button\" class=\"btn btn-primary btn-component\" tabindex=\"0\">Hover</button>\n </div>\n <div class=\"display-flex justify-content-between gap-10 center-block height-50\">\n <button type=\"button\" class=\"btn btn-primary btn-component\" tabindex=\"0\">Hover</button>\n <button type=\"button\" class=\"btn btn-primary btn-component\" tabindex=\"0\">Hover</button>\n </div>\n <div class=\"display-flex justify-content-between gap-10 center-block height-50\">\n <button type=\"button\" class=\"btn btn-primary btn-component\" tabindex=\"0\">Hover</button>\n <button type=\"button\" class=\"btn btn-primary btn-component\" tabindex=\"0\">Hover</button>\n <button type=\"button\" class=\"btn btn-primary btn-component\" tabindex=\"0\">Hover</button>\n </div>\n </div>\n <div class=\"padding-15\">\n <div class=\"display-flex justify-content-between gap-10 center-block height-50\">\n <button type=\"button\" class=\"btn btn-primary btn-component\" tabindex=\"0\">Click</button>\n <button type=\"button\" class=\"btn btn-primary btn-component\" tabindex=\"0\">Click</button>\n <button type=\"button\" class=\"btn btn-primary btn-component\" tabindex=\"0\">Click</button>\n </div>\n <div class=\"display-flex justify-content-between gap-10 center-block height-50\">\n <button type=\"button\" class=\"btn btn-primary btn-component\" tabindex=\"0\">Click</button>\n <button type=\"button\" class=\"btn btn-primary btn-component\" tabindex=\"0\">Click</button>\n </div>\n <div class=\"display-flex justify-content-between gap-10 center-block height-50\">\n <button type=\"button\" class=\"btn btn-primary btn-component\" tabindex=\"0\">Click</button>\n <button type=\"button\" class=\"btn btn-primary btn-component\" tabindex=\"0\">Click</button>\n <button type=\"button\" class=\"btn btn-primary btn-component\" tabindex=\"0\">Click</button>\n </div>\n </div>\n</div>\n<hr>\n<div class=\"display-grid grid-cols-2\">\n <div class=\"display-flex justify-content-between gap-10 center-block\">\n <div class=\"display-flex align-items-center justify-content-center\" data-test=\"info-overlay\">\n <span class=\"rioglyph rioglyph-info-sign text-color-info text-size-18\">\n </span>\n </div>\n <div class=\"display-flex align-items-center justify-content-center\" data-test=\"info-overlay\">\n <span class=\"rioglyph rioglyph-info-sign text-color-info text-size-18\">\n </span>\n </div>\n <div class=\"display-flex align-items-center justify-content-center\" data-test=\"info-overlay\">\n <span class=\"rioglyph rioglyph-info-sign text-color-info text-size-18\">\n </span>\n </div>\n </div>\n <div class=\"display-flex justify-content-between gap-10 center-block\">\n <div class=\"display-flex align-items-center justify-content-center\" data-test=\"info-overlay\">\n <span class=\"rioglyph rioglyph-info-sign text-color-info text-size-18\">\n </span>\n </div>\n <div class=\"display-flex align-items-center justify-content-center\" data-test=\"info-overlay\">\n <span class=\"rioglyph rioglyph-info-sign text-color-info text-size-18\">\n </span>\n </div>\n <div class=\"display-flex align-items-center justify-content-center\" data-test=\"info-overlay\">\n <span class=\"rioglyph rioglyph-info-sign text-color-info text-size-18\">\n </span>\n </div>\n </div>\n</div>"
32
- },
33
- {
34
- "label": "Props",
35
- "language": "json",
36
- "code": null,
37
- "props": [
38
- {
39
- "heading": "Tooltip",
40
- "rows": [
41
- {
42
- "name": "id",
43
- "type": "String / Number",
44
- "default": "",
45
- "description": "An HTML id attribute, necessary for accessibility."
46
- },
47
- {
48
- "name": "placement",
49
- "type": "String",
50
- "default": "",
51
- "description": "Sets the direction the Tooltip is positioned towards. This is generally provided by the OverlayTrigger component positioning the tooltip. Possible values are: auto-start, auto, auto-end, top-start, top, top-end, bottom-start, bottom, bottom-end, right-start, right, right-end, left-start, left or left-end"
52
- },
53
- {
54
- "name": "tooltipStyle",
55
- "type": "String",
56
- "default": "default",
57
- "description": "Defines the look of the tooltip. Possible values are: default, onboarding"
58
- },
59
- {
60
- "name": "textAlignment",
61
- "type": "String",
62
- "default": "center",
63
- "description": "Defines the position of the text content. Possible values are: left, right, center"
64
- },
65
- {
66
- "name": "width",
67
- "type": "String",
68
- "default": "",
69
- "description": "Defines the width of the tooltip. Possible values are: auto, 100, 150, 200, 250, 300, 350, 400, 450, 500"
70
- },
71
- {
72
- "name": "allowOnTouch",
73
- "type": "bool",
74
- "default": "false",
75
- "description": "Render Tooltips on mobile devices."
76
- },
77
- {
78
- "name": "className",
79
- "type": "String",
80
- "default": "",
81
- "description": "Additional classes to be set on the wrapper element."
82
- },
83
- {
84
- "name": "innerClassName",
85
- "type": "String",
86
- "default": "",
87
- "description": "Additional classes to be set on the inner element."
88
- },
89
- {
90
- "name": "children",
91
- "type": "any",
92
- "default": "",
93
- "description": "Any element to be rendered inside the tooltip."
94
- }
95
- ]
96
- },
97
- {
98
- "heading": "OverlayTrigger",
99
- "rows": [
100
- {
101
- "name": "trigger",
102
- "type": "'click' | 'hover' | 'focus'",
103
- "default": "hover",
104
- "description": "Specify which action or actions trigger Overlay visibility. Possible values are: OverlayTrigger.TRIGGER_CLICK , OverlayTrigger.TRIGGER_HOVER, OverlayTrigger.TRIGGER_HOVER or 'click', 'hover', 'focus'"
105
- },
106
- {
107
- "name": "delay",
108
- "type": "Number / Object",
109
- "default": "",
110
- "description": "A millisecond delay amount to show and hide the Overlay once triggered."
111
- },
112
- {
113
- "name": "└show",
114
- "type": "Number",
115
- "default": "",
116
- "description": "A millisecond delay amount before showing the Overlay once triggered."
117
- },
118
- {
119
- "name": "└hide",
120
- "type": "Number",
121
- "default": "",
122
- "description": "A millisecond delay amount before hiding the Overlay once triggered."
123
- },
124
- {
125
- "name": "defaultShow",
126
- "type": "Boolean",
127
- "default": "",
128
- "description": "The initial visibility state of the Overlay. For more nuanced visibility control, consider using the Overlay component directly."
129
- },
130
- {
131
- "name": "overlay",
132
- "type": "Node",
133
- "default": "",
134
- "description": "An element or text to overlay next to the target."
135
- },
136
- {
137
- "name": "placement",
138
- "type": "String",
139
- "default": "",
140
- "description": "Sets the direction the overlay is positioned towards. Possible values are: auto-start, auto, auto-end, top-start, top, top-end, bottom-start, bottom, bottom-end, right-start, right, right-end, left-start, left or left-end"
141
- },
142
- {
143
- "name": "popperConfig",
144
- "type": "Object",
145
- "default": "",
146
- "description": "A Popper.js config object passed to the the underlying popper instance."
147
- }
148
- ]
149
- }
150
- ]
151
- }
152
- ]
153
- }
154
- ]
155
- },
156
- {
157
- "heading": "SimpleTooltip",
158
- "body": "",
159
- "examples": [
160
- {
161
- "caption": "Example 2",
162
- "rendered_html": "<div class=\"playground-content bg-white padding-20 padding-bottom-25\" style=\"width: 100%;\"><div><label>Simple tooltip with auto placement:</label><div class=\"margin-bottom-25 display-flex gap-25\"><button type=\"button\" class=\"btn btn-default btn-component\" tabindex=\"0\">Hover me</button></div><label>Simple tooltip with bottom placement:</label><div class=\"margin-bottom-25 display-flex gap-25\"><div class=\"tag\"><div class=\"tag-inner\">Hover me</div></div><div class=\"uikit-switch\"><label class=\"switch-label label-position-right\"><input type=\"checkbox\" class=\"switch-input\"><div class=\"switch-content\" style=\"color: var(--brand-primary); min-width: 40px;\"><div class=\"switch-handle\"></div></div>Hover me</label></div></div><label>Simple tooltip within text:</label><div>Lorem ipsum dolor sit amet, <a href=\"#\">consectetur adipiscing</a> elit. In pharetra dui eget massa efficitur aliquam condimentum in felis. Integer eget metus vel nunc efficitur iaculis. Vivamus elementum ante et est sagittis semper. Ut consectetur enim nec tortor scelerisque tincidunt. <a href=\"#\">Fusce ac ligula bibendum</a>, rutrum libero quis, viverra sem. Interdum etmalesuada fames ac ante ipsum primis in faucibus. Duis ut hendrerit massa, in molestie elit. Sed vitae orci ac purus volutpat posuere ac ut neque. Mauris ante orci, semper finibus lorem in, fringilla pretium velit.</div><hr><span class=\"rioglyph rioglyph-info-sign text-color-info text-size-18\"></span></div></div>",
163
- "tabs": [
164
- {
165
- "label": "React",
166
- "language": "tsx",
167
- "code": "import SimpleTooltip from '@rio-cloud/rio-uikit/SimpleTooltip';\nimport Button from '@rio-cloud/rio-uikit/Button';\nimport Tag from '@rio-cloud/rio-uikit/Tag';\nimport Switch from '@rio-cloud/rio-uikit/Switch';\n\nconst content = <span>Lorem ipsum dolor sit amet, consetetur sadipscing elitr.</span>;\n\nexport default () => (\n <div>\n <label>Simple tooltip with auto placement:</label>\n <div className='margin-bottom-25 display-flex gap-25'>\n <SimpleTooltip content={content}>\n <Button>Hover me</Button>\n </SimpleTooltip>\n </div>\n <label>Simple tooltip with bottom placement:</label>\n <div className='margin-bottom-25 display-flex gap-25'>\n <SimpleTooltip content={content} placement='bottom'>\n <Tag>Hover me</Tag>\n </SimpleTooltip>\n <SimpleTooltip content={content} placement='bottom'>\n <Switch>Hover me</Switch>\n </SimpleTooltip>\n </div>\n <label>Simple tooltip within text:</label>\n <div>\n Lorem ipsum dolor sit amet,{' '}\n <SimpleTooltip content={content} placement='top'>\n <a href='#'>consectetur adipiscing</a>\n </SimpleTooltip>{' '}\n elit. In pharetra dui eget massa efficitur aliquam condimentum in felis. Integer eget metus vel nunc\n efficitur iaculis. Vivamus elementum ante et est sagittis semper. Ut consectetur enim nec tortor scelerisque\n tincidunt.{' '}\n <SimpleTooltip content={content} placement='top'>\n <a href='#'>Fusce ac ligula bibendum</a>\n </SimpleTooltip>\n , rutrum libero quis, viverra sem. Interdum etmalesuada fames ac ante ipsum primis in faucibus. Duis ut\n hendrerit massa, in molestie elit. Sed vitae orci ac purus volutpat posuere ac ut neque. Mauris ante orci,\n semper finibus lorem in, fringilla pretium velit.\n </div>\n <hr />\n <SimpleTooltip placement='bottom-start' content={<span>Hello</span>} width={100}>\n <span className='rioglyph rioglyph-info-sign text-color-info text-size-18' />\n </SimpleTooltip>\n </div>\n);"
168
- },
169
- {
170
- "label": "HTML",
171
- "language": "html",
172
- "code": "<div>\n <label>Simple tooltip with auto placement:</label>\n <div class=\"margin-bottom-25 display-flex gap-25\">\n <button type=\"button\" class=\"btn btn-default btn-component\" tabindex=\"0\">Hover me</button>\n </div>\n <label>Simple tooltip with bottom placement:</label>\n <div class=\"margin-bottom-25 display-flex gap-25\">\n <div class=\"tag\">\n <div class=\"tag-inner\">Hover me</div>\n </div>\n <div class=\"uikit-switch\">\n <label class=\"switch-label label-position-right\">\n <input type=\"checkbox\" class=\"switch-input\">\n <div class=\"switch-content\" style=\"color: var(--brand-primary); min-width: 40px;\">\n <div class=\"switch-handle\">\n </div>\n </div>Hover me\n </label>\n </div>\n </div>\n <label>Simple tooltip within text:</label>\n <div>Lorem ipsum dolor sit amet, <a href=\"#\">consectetur adipiscing</a> elit. In pharetra dui eget massa efficitur aliquam condimentum in felis. Integer eget metus vel nunc efficitur iaculis. Vivamus elementum ante et est sagittis semper. Ut consectetur enim nec tortor scelerisque tincidunt. <a href=\"#\">Fusce ac ligula bibendum</a>, rutrum libero quis, viverra sem. Interdum etmalesuada fames ac ante ipsum primis in faucibus. Duis ut hendrerit massa, in molestie elit. Sed vitae orci ac purus volutpat posuere ac ut neque. Mauris ante orci, semper finibus lorem in, fringilla pretium velit.</div>\n <hr>\n <span class=\"rioglyph rioglyph-info-sign text-color-info text-size-18\">\n </span>\n</div>"
173
- },
174
- {
175
- "label": "Props",
176
- "language": "json",
177
- "code": null,
178
- "props": [
179
- {
180
- "heading": "SimpleTooltip",
181
- "rows": [
182
- {
183
- "name": "trigger",
184
- "type": "String",
185
- "default": "hover",
186
- "description": "Specify which action or actions trigger Overlay visibility. Possible values are: 'click', 'hover', 'focus'"
187
- },
188
- {
189
- "name": "placement",
190
- "type": "String",
191
- "default": "AUTO",
192
- "description": "Sets the direction the Tooltip is positioned towards. This is generally provided by the OverlayTrigger component positioning the tooltip. Possible values are: auto-start, auto, auto-end, top-start, top, top-end, bottom-start, bottom, bottom-end, right-start, right, right-end, left-start, left or left-end"
193
- },
194
- {
195
- "name": "content",
196
- "type": "String / Node",
197
- "default": "",
198
- "description": "The tooltip content."
199
- },
200
- {
201
- "name": "targetRef",
202
- "type": "Ref",
203
- "default": "",
204
- "description": "The react ref object assigned to the target of the tooltip."
205
- },
206
- {
207
- "name": "delay",
208
- "type": "Number / Object",
209
- "default": "",
210
- "description": "A millisecond delay amount to show the Overlay once triggered."
211
- },
212
- {
213
- "name": "└show",
214
- "type": "Number",
215
- "default": "",
216
- "description": "A millisecond delay amount before showing the Overlay once triggered."
217
- },
218
- {
219
- "name": "└hide",
220
- "type": "Number",
221
- "default": "",
222
- "description": "A millisecond delay amount before hiding the Overlay once triggered."
223
- },
224
- {
225
- "name": "textAlignment",
226
- "type": "String",
227
- "default": "center",
228
- "description": "Defines the position of the text content. Possible values are: left, right, center"
229
- },
230
- {
231
- "name": "width",
232
- "type": "String",
233
- "default": "",
234
- "description": "Defines the width of the tooltip. Possible values are: auto, 100, 150, 200, 250, 300, 350, 400, 450, 500"
235
- },
236
- {
237
- "name": "className",
238
- "type": "String",
239
- "default": "",
240
- "description": "Additional classes to be set on the wrapper element."
241
- },
242
- {
243
- "name": "innerClassName",
244
- "type": "String",
245
- "default": "",
246
- "description": "Additional classes to be set on the inner element."
247
- },
248
- {
249
- "name": "popperConfig",
250
- "type": "Object",
251
- "default": "",
252
- "description": "A Popper.js config object passed to the the underlying popper instance."
253
- },
254
- {
255
- "name": "children",
256
- "type": "Node",
257
- "default": "",
258
- "description": "The target node."
259
- }
260
- ]
261
- }
262
- ]
263
- }
264
- ]
265
- }
266
- ]
267
- }
268
- ],
269
- "see_also": []
270
- }
@@ -1,175 +0,0 @@
1
- {
2
- "metadata": {
3
- "captured_at": "2025-11-21T12:07:47.173Z",
4
- "source": "https://uikit.developers.rio.cloud/#components/virtualList",
5
- "category": "Components",
6
- "section": "Content",
7
- "slug": "components/virtuallist",
8
- "version": "v1.13.2",
9
- "hash_algorithm": "sha256",
10
- "hash": "2d601fb47c834c8b282e44d07d64a30f072c1a3ba8f95d8b651e9a0d4c4ea479"
11
- },
12
- "title": "VirtualList",
13
- "lead": "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.",
14
- "content": [
15
- {
16
- "heading": "VirtualList",
17
- "body": "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.",
18
- "examples": [
19
- {
20
- "caption": "Example 1",
21
- "rendered_html": "<div class=\"playground-content bg-lighter padding-20 padding-bottom-25\" style=\"width: 100%;\"><div class=\"max-width-600 padding-y-20\"><label class=\"padding-left-10\">Virtual list with 100 items</label><div class=\"VirtualList overflow-y-auto max-height-400 padding-x-10\" style=\"height: 100%; position: relative; overflow: auto;\"><div class=\"position-relative\" style=\"height: 7000px;\"><div class=\"VirtualListItemContainer \"><div class=\"VirtualListItemWrapper \" data-index=\"0\" style=\"position: absolute; transform: translateY(0px); width: 100%; will-change: transform;\"><div class=\"margin-bottom-10 padding-y-10 padding-x-15 bg-white rounded shadow-accent text-color-darker\"><div class=\"text-medium\" data-test-ignore=\"text\">Item 1</div><div class=\"word-break\" data-test-ignore=\"text\">Bibendum, semper orci velit. consectetur eget ipsum ac sagittis massa ac sem.</div></div></div><div class=\"VirtualListItemWrapper \" data-index=\"1\" style=\"position: absolute; transform: translateY(70px); width: 100%; will-change: transform;\"><div class=\"margin-bottom-10 padding-y-10 padding-x-15 bg-white rounded shadow-accent text-color-darker\"><div class=\"text-medium\" data-test-ignore=\"text\">Item 2</div><div class=\"word-break\" data-test-ignore=\"text\">\nLorem sem. eget et in ut faucibus. adipiscing in, fames libero ac eget Fusce vel</div></div></div><div class=\"VirtualListItemWrapper \" data-index=\"2\" style=\"position: absolute; transform: translateY(140px); width: 100%; will-change: transform;\"><div class=\"margin-bottom-10 padding-y-10 padding-x-15 bg-white rounded shadow-accent text-color-darker\"><div class=\"text-medium\" data-test-ignore=\"text\">Item 3</div><div class=\"word-break\" data-test-ignore=\"text\">Eget ac Vivamus in viverra ut Duis Mauris pretium ac elit.</div></div></div><div class=\"VirtualListItemWrapper \" data-index=\"3\" style=\"position: absolute; transform: translateY(210px); width: 100%; will-change: transform;\"><div class=\"margin-bottom-10 padding-y-10 padding-x-15 bg-white rounded shadow-accent text-color-darker\"><div class=\"text-medium\" data-test-ignore=\"text\">Item 4</div><div class=\"word-break\" data-test-ignore=\"text\">Bibendum, volutpat ac ac pretium in, fringilla ante ipsum orci malesuada amet, libero enim</div></div></div><div class=\"VirtualListItemWrapper \" data-index=\"4\" style=\"position: absolute; transform: translateY(280px); width: 100%; will-change: transform;\"><div class=\"margin-bottom-10 padding-y-10 padding-x-15 bg-white rounded shadow-accent text-color-darker\"><div class=\"text-medium\" data-test-ignore=\"text\">Item 5</div><div class=\"word-break\" data-test-ignore=\"text\">Consectetur In condimentum semper amet, \nLorem nec libero in efficitur</div></div></div><div class=\"VirtualListItemWrapper \" data-index=\"5\" style=\"position: absolute; transform: translateY(350px); width: 100%; will-change: transform;\"><div class=\"margin-bottom-10 padding-y-10 padding-x-15 bg-white rounded shadow-accent text-color-darker\"><div class=\"text-medium\" data-test-ignore=\"text\">Item 6</div><div class=\"word-break\" data-test-ignore=\"text\">Ut hendrerit elementum primis in Duis posuere enim in, ac hendrerit dolor Ut est eget</div></div></div><div class=\"VirtualListItemWrapper \" data-index=\"6\" style=\"position: absolute; transform: translateY(420px); width: 100%; will-change: transform;\"><div class=\"margin-bottom-10 padding-y-10 padding-x-15 bg-white rounded shadow-accent text-color-darker\"><div class=\"text-medium\" data-test-ignore=\"text\">Item 7</div><div class=\"word-break\" data-test-ignore=\"text\">In ante eget in pretium elementum lorem ac consectetur in,</div></div></div><div class=\"VirtualListItemWrapper \" data-index=\"7\" style=\"position: absolute; transform: translateY(490px); width: 100%; will-change: transform;\"><div class=\"margin-bottom-10 padding-y-10 padding-x-15 bg-white rounded shadow-accent text-color-darker\"><div class=\"text-medium\" data-test-ignore=\"text\">Item 8</div><div class=\"word-break\" data-test-ignore=\"text\">Felis. ut semper. eget Fusce Sed et orci,</div></div></div><div class=\"VirtualListItemWrapper \" data-index=\"8\" style=\"position: absolute; transform: translateY(560px); width: 100%; will-change: transform;\"><div class=\"margin-bottom-10 padding-y-10 padding-x-15 bg-white rounded shadow-accent text-color-darker\"><div class=\"text-medium\" data-test-ignore=\"text\">Item 9</div><div class=\"word-break\" data-test-ignore=\"text\">Ante Integer quis, volutpat Integer \nLorem velit. In</div></div></div><div class=\"VirtualListItemWrapper \" data-index=\"9\" style=\"position: absolute; transform: translateY(630px); width: 100%; will-change: transform;\"><div class=\"margin-bottom-10 padding-y-10 padding-x-15 bg-white rounded shadow-accent text-color-darker\"><div class=\"text-medium\" data-test-ignore=\"text\">Item 10</div><div class=\"word-break\" data-test-ignore=\"text\">Ut et posuere Sed in</div></div></div></div></div></div></div></div>",
22
- "tabs": [
23
- {
24
- "label": "React",
25
- "language": "tsx",
26
- "code": "import VirtualList from '@rio-cloud/rio-uikit/VirtualList';\n\nimport { generateDummyText } from '../../../utils/data';\n\nconst ITEM_COUNT = 100;\n\nexport default () => {\n const items = Array.from({ length: ITEM_COUNT }, (_, index) => ({\n title: `Item ${index + 1}`,\n description: generateDummyText(),\n }));\n\n return (\n <div className='max-width-600 padding-y-20'>\n <label className='padding-left-10'>Virtual list with {ITEM_COUNT} items</label>\n <VirtualList\n items={items}\n renderItem={(item, index) => (\n <div\n key={index}\n className='margin-bottom-10 padding-y-10 padding-x-15 bg-white rounded shadow-accent text-color-darker'\n >\n <div className='text-medium' data-test-ignore='text'>\n {item.title}\n </div>\n <div className='word-break' data-test-ignore='text'>\n {item.description}\n </div>\n </div>\n )}\n className='max-height-400 padding-x-10'\n />\n </div>\n );\n};"
27
- },
28
- {
29
- "label": "HTML",
30
- "language": "html",
31
- "code": "<div class=\"max-width-600 padding-y-20\">\n <label class=\"padding-left-10\">Virtual list with 100 items</label>\n <div class=\"VirtualList overflow-y-auto max-height-400 padding-x-10\" style=\"height: 100%; position: relative; overflow: auto;\">\n <div class=\"position-relative\" style=\"height: 7000px;\">\n <div class=\"VirtualListItemContainer \">\n <div class=\"VirtualListItemWrapper \" data-index=\"0\" style=\"position: absolute; transform: translateY(0px); width: 100%; will-change: transform;\">\n <div class=\"margin-bottom-10 padding-y-10 padding-x-15 bg-white rounded shadow-accent text-color-darker\">\n <div class=\"text-medium\" data-test-ignore=\"text\">Item 1</div>\n <div class=\"word-break\" data-test-ignore=\"text\">Bibendum, semper orci velit. consectetur eget ipsum ac sagittis massa ac sem.</div>\n </div>\n </div>\n <div class=\"VirtualListItemWrapper \" data-index=\"1\" style=\"position: absolute; transform: translateY(70px); width: 100%; will-change: transform;\">\n <div class=\"margin-bottom-10 padding-y-10 padding-x-15 bg-white rounded shadow-accent text-color-darker\">\n <div class=\"text-medium\" data-test-ignore=\"text\">Item 2</div>\n <div class=\"word-break\" data-test-ignore=\"text\">\n Lorem sem. eget et in ut faucibus. adipiscing in, fames libero ac eget Fusce vel</div>\n </div>\n </div>\n <div class=\"VirtualListItemWrapper \" data-index=\"2\" style=\"position: absolute; transform: translateY(140px); width: 100%; will-change: transform;\">\n <div class=\"margin-bottom-10 padding-y-10 padding-x-15 bg-white rounded shadow-accent text-color-darker\">\n <div class=\"text-medium\" data-test-ignore=\"text\">Item 3</div>\n <div class=\"word-break\" data-test-ignore=\"text\">Eget ac Vivamus in viverra ut Duis Mauris pretium ac elit.</div>\n </div>\n </div>\n <div class=\"VirtualListItemWrapper \" data-index=\"3\" style=\"position: absolute; transform: translateY(210px); width: 100%; will-change: transform;\">\n <div class=\"margin-bottom-10 padding-y-10 padding-x-15 bg-white rounded shadow-accent text-color-darker\">\n <div class=\"text-medium\" data-test-ignore=\"text\">Item 4</div>\n <div class=\"word-break\" data-test-ignore=\"text\">Bibendum, volutpat ac ac pretium in, fringilla ante ipsum orci malesuada amet, libero enim</div>\n </div>\n </div>\n <div class=\"VirtualListItemWrapper \" data-index=\"4\" style=\"position: absolute; transform: translateY(280px); width: 100%; will-change: transform;\">\n <div class=\"margin-bottom-10 padding-y-10 padding-x-15 bg-white rounded shadow-accent text-color-darker\">\n <div class=\"text-medium\" data-test-ignore=\"text\">Item 5</div>\n <div class=\"word-break\" data-test-ignore=\"text\">Consectetur In condimentum semper amet,\n Lorem nec libero in efficitur</div>\n </div>\n </div>\n <div class=\"VirtualListItemWrapper \" data-index=\"5\" style=\"position: absolute; transform: translateY(350px); width: 100%; will-change: transform;\">\n <div class=\"margin-bottom-10 padding-y-10 padding-x-15 bg-white rounded shadow-accent text-color-darker\">\n <div class=\"text-medium\" data-test-ignore=\"text\">Item 6</div>\n <div class=\"word-break\" data-test-ignore=\"text\">Ut hendrerit elementum primis in Duis posuere enim in, ac hendrerit dolor Ut est eget</div>\n </div>\n </div>\n <div class=\"VirtualListItemWrapper \" data-index=\"6\" style=\"position: absolute; transform: translateY(420px); width: 100%; will-change: transform;\">\n <div class=\"margin-bottom-10 padding-y-10 padding-x-15 bg-white rounded shadow-accent text-color-darker\">\n <div class=\"text-medium\" data-test-ignore=\"text\">Item 7</div>\n <div class=\"word-break\" data-test-ignore=\"text\">In ante eget in pretium elementum lorem ac consectetur in,</div>\n </div>\n </div>\n <div class=\"VirtualListItemWrapper \" data-index=\"7\" style=\"position: absolute; transform: translateY(490px); width: 100%; will-change: transform;\">\n <div class=\"margin-bottom-10 padding-y-10 padding-x-15 bg-white rounded shadow-accent text-color-darker\">\n <div class=\"text-medium\" data-test-ignore=\"text\">Item 8</div>\n <div class=\"word-break\" data-test-ignore=\"text\">Felis. ut semper. eget Fusce Sed et orci,</div>\n </div>\n </div>\n <div class=\"VirtualListItemWrapper \" data-index=\"8\" style=\"position: absolute; transform: translateY(560px); width: 100%; will-change: transform;\">\n <div class=\"margin-bottom-10 padding-y-10 padding-x-15 bg-white rounded shadow-accent text-color-darker\">\n <div class=\"text-medium\" data-test-ignore=\"text\">Item 9</div>\n <div class=\"word-break\" data-test-ignore=\"text\">Ante Integer quis, volutpat Integer\n Lorem velit. In</div>\n </div>\n </div>\n <div class=\"VirtualListItemWrapper \" data-index=\"9\" style=\"position: absolute; transform: translateY(630px); width: 100%; will-change: transform;\">\n <div class=\"margin-bottom-10 padding-y-10 padding-x-15 bg-white rounded shadow-accent text-color-darker\">\n <div class=\"text-medium\" data-test-ignore=\"text\">Item 10</div>\n <div class=\"word-break\" data-test-ignore=\"text\">Ut et posuere Sed in</div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>"
32
- },
33
- {
34
- "label": "Props",
35
- "language": "json",
36
- "code": null,
37
- "props": [
38
- {
39
- "heading": null,
40
- "rows": [
41
- {
42
- "name": "items",
43
- "type": "T[]",
44
- "default": "",
45
- "description": "The array of items to be rendered in the list."
46
- },
47
- {
48
- "name": "renderItem",
49
- "type": "(item: T, index: number) => React.ReactElement",
50
- "default": "",
51
- "description": "A function that renders an item given its data and index."
52
- },
53
- {
54
- "name": "overscanCount",
55
- "type": "number",
56
- "default": "3",
57
- "description": "The number of items to render outside the visible area for smoother scrolling."
58
- },
59
- {
60
- "name": "defaultHeight",
61
- "type": "number",
62
- "default": "50",
63
- "description": "The default height for items if their height cannot be determined."
64
- },
65
- {
66
- "name": "scrollContainerRef",
67
- "type": "React.RefObject<HTMLElement>",
68
- "default": "",
69
- "description": "Optional ref to an external scroll container. Use this when VirtualList is inside a scrollable container."
70
- },
71
- {
72
- "name": "containerClassName",
73
- "type": "string",
74
- "default": "",
75
- "description": "Additional classNames for the container of the list items."
76
- },
77
- {
78
- "name": "listItemWrapperClassName",
79
- "type": "string",
80
- "default": "",
81
- "description": "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."
82
- },
83
- {
84
- "name": "className",
85
- "type": "string",
86
- "default": "",
87
- "description": "Additional classNames for the outer list container."
88
- }
89
- ]
90
- }
91
- ]
92
- }
93
- ]
94
- },
95
- {
96
- "caption": "Example 2",
97
- "rendered_html": "<div class=\"playground-content bg-white padding-20 padding-bottom-25\" style=\"width: 100%;\"><div class=\"padding-20\"><label>Virtual list with 5000 items</label><div class=\"max-width-600 max-height-400 overflow-y-auto\"><div class=\"VirtualList overflow-y-auto border rounded\" style=\"height: 360000px; position: relative; overflow: visible;\"><div class=\"position-relative\" style=\"height: auto;\"><div class=\"VirtualListItemContainer list-group\"><div class=\"VirtualListItemWrapper list-group-item padding-y-15\" data-index=\"0\" style=\"position: absolute; transform: translateY(0px); width: 100%; will-change: transform;\"><div class=\"display-flex gap-15 align-items-center\"><div class=\"Avatar bg-lightest\" style=\"height: 40px;\"><span class=\"Avatar-icon rioglyph rioglyph-truck \"></span></div><div><div class=\"text-medium\" data-test-ignore=\"text\">Vehicle 1</div><div class=\"word-break\" data-test-ignore=\"text\">Elementum finibus Integer lorem malesuada pretium fames in</div></div></div></div><div class=\"VirtualListItemWrapper list-group-item padding-y-15\" data-index=\"1\" style=\"position: absolute; transform: translateY(69px); width: 100%; will-change: transform;\"><div class=\"display-flex gap-15 align-items-center\"><div class=\"Avatar bg-lightest\" style=\"height: 40px;\"><span class=\"Avatar-icon rioglyph rioglyph-truck \"></span></div><div><div class=\"text-medium\" data-test-ignore=\"text\">Vehicle 2</div><div class=\"word-break\" data-test-ignore=\"text\">Tortor in semper. massa Duis eget nunc sem. malesuada</div></div></div></div><div class=\"VirtualListItemWrapper list-group-item padding-y-15\" data-index=\"2\" style=\"position: absolute; transform: translateY(139px); width: 100%; will-change: transform;\"><div class=\"display-flex gap-15 align-items-center\"><div class=\"Avatar bg-lightest\" style=\"height: 40px;\"><span class=\"Avatar-icon rioglyph rioglyph-truck \"></span></div><div><div class=\"text-medium\" data-test-ignore=\"text\">Vehicle 3</div><div class=\"word-break\" data-test-ignore=\"text\">Pharetra ac iaculis. pharetra in, finibus pharetra felis. Sed ligula quis, semper. vel</div></div></div></div><div class=\"VirtualListItemWrapper list-group-item padding-y-15\" data-index=\"3\" style=\"position: absolute; transform: translateY(209px); width: 100%; will-change: transform;\"><div class=\"display-flex gap-15 align-items-center\"><div class=\"Avatar bg-lightest\" style=\"height: 40px;\"><span class=\"Avatar-icon rioglyph rioglyph-truck \"></span></div><div><div class=\"text-medium\" data-test-ignore=\"text\">Vehicle 4</div><div class=\"word-break\" data-test-ignore=\"text\">Efficitur semper. sem. neque. aliquam orci nec ante in, In</div></div></div></div><div class=\"VirtualListItemWrapper list-group-item padding-y-15\" data-index=\"4\" style=\"position: absolute; transform: translateY(279px); width: 100%; will-change: transform;\"><div class=\"display-flex gap-15 align-items-center\"><div class=\"Avatar bg-lightest\" style=\"height: 40px;\"><span class=\"Avatar-icon rioglyph rioglyph-truck \"></span></div><div><div class=\"text-medium\" data-test-ignore=\"text\">Vehicle 5</div><div class=\"word-break\" data-test-ignore=\"text\">Vel dui Interdum amet, Vivamus in ipsum</div></div></div></div><div class=\"VirtualListItemWrapper list-group-item padding-y-15\" data-index=\"5\" style=\"position: absolute; transform: translateY(349px); width: 100%; will-change: transform;\"><div class=\"display-flex gap-15 align-items-center\"><div class=\"Avatar bg-lightest\" style=\"height: 40px;\"><span class=\"Avatar-icon rioglyph rioglyph-truck \"></span></div><div><div class=\"text-medium\" data-test-ignore=\"text\">Vehicle 6</div><div class=\"word-break\" data-test-ignore=\"text\">Felis. purus consectetur dolor efficitur ut libero neque. massa, efficitur dui consectetur fringilla molestie posuere</div></div></div></div><div class=\"VirtualListItemWrapper list-group-item padding-y-15\" data-index=\"6\" style=\"position: absolute; transform: translateY(439px); width: 100%; will-change: transform;\"><div class=\"display-flex gap-15 align-items-center\"><div class=\"Avatar bg-lightest\" style=\"height: 40px;\"><span class=\"Avatar-icon rioglyph rioglyph-truck \"></span></div><div><div class=\"text-medium\" data-test-ignore=\"text\">Vehicle 7</div><div class=\"word-break\" data-test-ignore=\"text\">Condimentum ante bibendum, orci, adipiscing sem. vel eget malesuada quis,</div></div></div></div><div class=\"VirtualListItemWrapper list-group-item padding-y-15\" data-index=\"7\" style=\"position: absolute; transform: translateY(509px); width: 100%; will-change: transform;\"><div class=\"display-flex gap-15 align-items-center\"><div class=\"Avatar bg-lightest\" style=\"height: 40px;\"><span class=\"Avatar-icon rioglyph rioglyph-truck \"></span></div><div><div class=\"text-medium\" data-test-ignore=\"text\">Vehicle 8</div><div class=\"word-break\" data-test-ignore=\"text\">Iaculis. Mauris ut semper. bibendum, est finibus</div></div></div></div><div class=\"VirtualListItemWrapper list-group-item padding-y-15\" data-index=\"8\" style=\"position: absolute; transform: translateY(579px); width: 100%; will-change: transform;\"><div class=\"display-flex gap-15 align-items-center\"><div class=\"Avatar bg-lightest\" style=\"height: 40px;\"><span class=\"Avatar-icon rioglyph rioglyph-truck \"></span></div><div><div class=\"text-medium\" data-test-ignore=\"text\">Vehicle 9</div><div class=\"word-break\" data-test-ignore=\"text\">Massa Interdum ligula iaculis. vel fringilla pretium</div></div></div></div><div class=\"VirtualListItemWrapper list-group-item padding-y-15\" data-index=\"9\" style=\"position: absolute; transform: translateY(649px); width: 100%; will-change: transform;\"><div class=\"display-flex gap-15 align-items-center\"><div class=\"Avatar bg-lightest\" style=\"height: 40px;\"><span class=\"Avatar-icon rioglyph rioglyph-truck \"></span></div><div><div class=\"text-medium\" data-test-ignore=\"text\">Vehicle 10</div><div class=\"word-break\" data-test-ignore=\"text\">Enim consectetur in molestie Integer Interdum</div></div></div></div></div></div></div></div></div></div>",
98
- "tabs": [
99
- {
100
- "label": "React",
101
- "language": "tsx",
102
- "code": "import { useRef } from 'react';\n\nimport Avatar from '@rio-cloud/rio-uikit/Avatar';\nimport VirtualList from '@rio-cloud/rio-uikit/VirtualList';\n\nimport { generateDummyText } from '../../../utils/data';\n\nconst DemoItem = ({ title, description }: { title: string; description: string }) => (\n <div className='display-flex gap-15 align-items-center'>\n <Avatar iconName='truck' backgroundColor='bg-lightest' />\n <div>\n <div className='text-medium' data-test-ignore='text'>\n {title}\n </div>\n <div className='word-break' data-test-ignore='text'>\n {description}\n </div>\n </div>\n </div>\n);\n\nconst ITEM_COUNT = 5_000;\n\n// This demo includes:\n// - A custom item component\n// - List group styling for the inner container and the items wrapper\n// - The max height is defined outside on the parent of the VirtualList using a scrollContainerRef\n// - A custom overscan count, means more items are loaded outside the visible window\n\nexport default () => {\n const items = Array.from({ length: ITEM_COUNT }, (_, index) => ({\n title: `Vehicle ${index + 1}`,\n description: generateDummyText(),\n }));\n\n const scrollContainerRef = useRef<HTMLDivElement>(null);\n\n return (\n <div className='padding-20'>\n <label>Virtual list with {ITEM_COUNT} items</label>\n <div ref={scrollContainerRef} className='max-width-600 max-height-400 overflow-y-auto'>\n <VirtualList\n items={items}\n renderItem={(item, index) => (\n <DemoItem key={index} title={item.title} description={item.description} />\n )}\n className='border rounded'\n containerClassName='list-group'\n listItemWrapperClassName='list-group-item padding-y-15'\n defaultHeight={71}\n overscanCount={5}\n scrollContainerRef={scrollContainerRef}\n />\n </div>\n </div>\n );\n};"
103
- },
104
- {
105
- "label": "HTML",
106
- "language": "html",
107
- "code": "<div class=\"padding-20\">\n <label>Virtual list with 5000 items</label>\n <div class=\"max-width-600 max-height-400 overflow-y-auto\">\n <div class=\"VirtualList overflow-y-auto border rounded\" style=\"height: 360000px; position: relative; overflow: visible;\">\n <div class=\"position-relative\" style=\"height: auto;\">\n <div class=\"VirtualListItemContainer list-group\">\n <div class=\"VirtualListItemWrapper list-group-item padding-y-15\" data-index=\"0\" style=\"position: absolute; transform: translateY(0px); width: 100%; will-change: transform;\">\n <div class=\"display-flex gap-15 align-items-center\">\n <div class=\"Avatar bg-lightest\" style=\"height: 40px;\">\n <span class=\"Avatar-icon rioglyph rioglyph-truck \">\n </span>\n </div>\n <div>\n <div class=\"text-medium\" data-test-ignore=\"text\">Vehicle 1</div>\n <div class=\"word-break\" data-test-ignore=\"text\">Elementum finibus Integer lorem malesuada pretium fames in</div>\n </div>\n </div>\n </div>\n <div class=\"VirtualListItemWrapper list-group-item padding-y-15\" data-index=\"1\" style=\"position: absolute; transform: translateY(69px); width: 100%; will-change: transform;\">\n <div class=\"display-flex gap-15 align-items-center\">\n <div class=\"Avatar bg-lightest\" style=\"height: 40px;\">\n <span class=\"Avatar-icon rioglyph rioglyph-truck \">\n </span>\n </div>\n <div>\n <div class=\"text-medium\" data-test-ignore=\"text\">Vehicle 2</div>\n <div class=\"word-break\" data-test-ignore=\"text\">Tortor in semper. massa Duis eget nunc sem. malesuada</div>\n </div>\n </div>\n </div>\n <div class=\"VirtualListItemWrapper list-group-item padding-y-15\" data-index=\"2\" style=\"position: absolute; transform: translateY(139px); width: 100%; will-change: transform;\">\n <div class=\"display-flex gap-15 align-items-center\">\n <div class=\"Avatar bg-lightest\" style=\"height: 40px;\">\n <span class=\"Avatar-icon rioglyph rioglyph-truck \">\n </span>\n </div>\n <div>\n <div class=\"text-medium\" data-test-ignore=\"text\">Vehicle 3</div>\n <div class=\"word-break\" data-test-ignore=\"text\">Pharetra ac iaculis. pharetra in, finibus pharetra felis. Sed ligula quis, semper. vel</div>\n </div>\n </div>\n </div>\n <div class=\"VirtualListItemWrapper list-group-item padding-y-15\" data-index=\"3\" style=\"position: absolute; transform: translateY(209px); width: 100%; will-change: transform;\">\n <div class=\"display-flex gap-15 align-items-center\">\n <div class=\"Avatar bg-lightest\" style=\"height: 40px;\">\n <span class=\"Avatar-icon rioglyph rioglyph-truck \">\n </span>\n </div>\n <div>\n <div class=\"text-medium\" data-test-ignore=\"text\">Vehicle 4</div>\n <div class=\"word-break\" data-test-ignore=\"text\">Efficitur semper. sem. neque. aliquam orci nec ante in, In</div>\n </div>\n </div>\n </div>\n <div class=\"VirtualListItemWrapper list-group-item padding-y-15\" data-index=\"4\" style=\"position: absolute; transform: translateY(279px); width: 100%; will-change: transform;\">\n <div class=\"display-flex gap-15 align-items-center\">\n <div class=\"Avatar bg-lightest\" style=\"height: 40px;\">\n <span class=\"Avatar-icon rioglyph rioglyph-truck \">\n </span>\n </div>\n <div>\n <div class=\"text-medium\" data-test-ignore=\"text\">Vehicle 5</div>\n <div class=\"word-break\" data-test-ignore=\"text\">Vel dui Interdum amet, Vivamus in ipsum</div>\n </div>\n </div>\n </div>\n <div class=\"VirtualListItemWrapper list-group-item padding-y-15\" data-index=\"5\" style=\"position: absolute; transform: translateY(349px); width: 100%; will-change: transform;\">\n <div class=\"display-flex gap-15 align-items-center\">\n <div class=\"Avatar bg-lightest\" style=\"height: 40px;\">\n <span class=\"Avatar-icon rioglyph rioglyph-truck \">\n </span>\n </div>\n <div>\n <div class=\"text-medium\" data-test-ignore=\"text\">Vehicle 6</div>\n <div class=\"word-break\" data-test-ignore=\"text\">Felis. purus consectetur dolor efficitur ut libero neque. massa, efficitur dui consectetur fringilla molestie posuere</div>\n </div>\n </div>\n </div>\n <div class=\"VirtualListItemWrapper list-group-item padding-y-15\" data-index=\"6\" style=\"position: absolute; transform: translateY(439px); width: 100%; will-change: transform;\">\n <div class=\"display-flex gap-15 align-items-center\">\n <div class=\"Avatar bg-lightest\" style=\"height: 40px;\">\n <span class=\"Avatar-icon rioglyph rioglyph-truck \">\n </span>\n </div>\n <div>\n <div class=\"text-medium\" data-test-ignore=\"text\">Vehicle 7</div>\n <div class=\"word-break\" data-test-ignore=\"text\">Condimentum ante bibendum, orci, adipiscing sem. vel eget malesuada quis,</div>\n </div>\n </div>\n </div>\n <div class=\"VirtualListItemWrapper list-group-item padding-y-15\" data-index=\"7\" style=\"position: absolute; transform: translateY(509px); width: 100%; will-change: transform;\">\n <div class=\"display-flex gap-15 align-items-center\">\n <div class=\"Avatar bg-lightest\" style=\"height: 40px;\">\n <span class=\"Avatar-icon rioglyph rioglyph-truck \">\n </span>\n </div>\n <div>\n <div class=\"text-medium\" data-test-ignore=\"text\">Vehicle 8</div>\n <div class=\"word-break\" data-test-ignore=\"text\">Iaculis. Mauris ut semper. bibendum, est finibus</div>\n </div>\n </div>\n </div>\n <div class=\"VirtualListItemWrapper list-group-item padding-y-15\" data-index=\"8\" style=\"position: absolute; transform: translateY(579px); width: 100%; will-change: transform;\">\n <div class=\"display-flex gap-15 align-items-center\">\n <div class=\"Avatar bg-lightest\" style=\"height: 40px;\">\n <span class=\"Avatar-icon rioglyph rioglyph-truck \">\n </span>\n </div>\n <div>\n <div class=\"text-medium\" data-test-ignore=\"text\">Vehicle 9</div>\n <div class=\"word-break\" data-test-ignore=\"text\">Massa Interdum ligula iaculis. vel fringilla pretium</div>\n </div>\n </div>\n </div>\n <div class=\"VirtualListItemWrapper list-group-item padding-y-15\" data-index=\"9\" style=\"position: absolute; transform: translateY(649px); width: 100%; will-change: transform;\">\n <div class=\"display-flex gap-15 align-items-center\">\n <div class=\"Avatar bg-lightest\" style=\"height: 40px;\">\n <span class=\"Avatar-icon rioglyph rioglyph-truck \">\n </span>\n </div>\n <div>\n <div class=\"text-medium\" data-test-ignore=\"text\">Vehicle 10</div>\n <div class=\"word-break\" data-test-ignore=\"text\">Enim consectetur in molestie Integer Interdum</div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>"
108
- },
109
- {
110
- "label": "Props",
111
- "language": "json",
112
- "code": null,
113
- "props": [
114
- {
115
- "heading": null,
116
- "rows": [
117
- {
118
- "name": "items",
119
- "type": "T[]",
120
- "default": "",
121
- "description": "The array of items to be rendered in the list."
122
- },
123
- {
124
- "name": "renderItem",
125
- "type": "(item: T, index: number) => React.ReactElement",
126
- "default": "",
127
- "description": "A function that renders an item given its data and index."
128
- },
129
- {
130
- "name": "overscanCount",
131
- "type": "number",
132
- "default": "3",
133
- "description": "The number of items to render outside the visible area for smoother scrolling."
134
- },
135
- {
136
- "name": "defaultHeight",
137
- "type": "number",
138
- "default": "50",
139
- "description": "The default height for items if their height cannot be determined."
140
- },
141
- {
142
- "name": "scrollContainerRef",
143
- "type": "React.RefObject<HTMLElement>",
144
- "default": "",
145
- "description": "Optional ref to an external scroll container. Use this when VirtualList is inside a scrollable container."
146
- },
147
- {
148
- "name": "containerClassName",
149
- "type": "string",
150
- "default": "",
151
- "description": "Additional classNames for the container of the list items."
152
- },
153
- {
154
- "name": "listItemWrapperClassName",
155
- "type": "string",
156
- "default": "",
157
- "description": "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."
158
- },
159
- {
160
- "name": "className",
161
- "type": "string",
162
- "default": "",
163
- "description": "Additional classNames for the outer list container."
164
- }
165
- ]
166
- }
167
- ]
168
- }
169
- ]
170
- }
171
- ]
172
- }
173
- ],
174
- "see_also": []
175
- }