@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
@@ -0,0 +1,252 @@
1
+ # useScrollPosition
2
+
3
+ *Category:* Utilities
4
+ *Section:* DOM behavior hooks
5
+ *Source:* https://uikit.developers.rio.cloud/#utilities/useScrollPosition
6
+ *Captured:* 2025-12-12T12:39:43.570Z
7
+
8
+ The useScrollPosition hook allows to react on a desired scroll position of a given target. Use it when showing or hiding content based on the scroll position.
9
+
10
+ ## useScrollPosition
11
+
12
+ ### Example: Example 1
13
+
14
+ Default example for scroll position of the ApplicationBody module-content0 px
15
+
16
+ Lorem ipsum dolor sit amet, consectetur adipiscing 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. Fusce ac ligula bibendum, rutrum libero quis, viverra sem. Interdum et malesuada 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.
17
+
18
+ In mattis massa a tellus laoreet volutpat. Integer placerat convallis tempor. Quisque id diam nec ex iaculis pulvinar. Nunc urna dui, varius at tempus sit amet, euismod id risus. Cras placerat imperdiet mattis. Etiam vehicula finibus magna. Nullam ornare diam at molestie faucibus. Aenean dictum magna a ipsum scelerisque, a vehicula massa vehicula. Suspendisse blandit tellus vulputate enim ullamcorper tincidunt. Vivamus enim justo, sollicitudin sit amet pulvinar vitae, vehicula sed leo. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;
19
+
20
+ Praesent mattis purus et velit maximus hendrerit. Aenean vehicula tempus dapibus. Mauris convallis pharetra purus, non vulputate erat rutrum quis. Sed in tincidunt justo. Ut eu venenatis augue. Aliquam ullamcorper vitae tellus et egestas. Integer eget metus quis odio elementum auctor quis et ipsum. Duis lobortis eros lacinia sapien rutrum egestas. Phasellus ornare, elit non efficitur fringilla, arcu risus molestie enim, sit amet blandit lorem ex in lectus. Vestibulum quis tempor nisi, at pretium erat.
21
+
22
+ Mauris sed blandit nisi. In tellus sem, auctor ut porttitor eget, dictum et eros. Integer in sem nec lacus hendrerit cursus. Nulla mattis nisi et tincidunt tincidunt. Fusce ullamcorper nunc in quam euismod mattis et dignissim nulla. Ut tincidunt sodales felis, id feugiat ligula suscipit vel. Suspendisse ullamcorper commodo maximus.
23
+
24
+ Nam in dapibus eros, eget tristique enim. Vivamus non neque at elit cursus tempus vel vitae neque. Aenean pellentesque aliquet lorem, commodo ornare dolor tempus id. Curabitur efficitur nulla eu libero consectetur, at ultricies nisi condimentum. Nam imperdiet ac magna ut congue. Vivamus id aliquet turpis, quis suscipit nulla. Nunc placerat pulvinar neque. Donec ullamcorper vel ante ac iaculis. Phasellus eget dapibus turpis. Nam interdum enim at bibendum faucibus. Nunc ipsum urna, finibus ut hendrerit at, laoreet sit amet eros. Morbi ligula arcu, eleifend et dictum egestas, consequat vitae nunc.
25
+
26
+ Lorem ipsum dolor sit amet, consectetur adipiscing 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. Fusce ac ligula bibendum, rutrum libero quis, viverra sem. Interdum et malesuada 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.
27
+
28
+ Lorem ipsum dolor sit amet, consectetur adipiscing 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. Fusce ac ligula bibendum, rutrum libero quis, viverra sem. Interdum et malesuada 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.
29
+
30
+ In mattis massa a tellus laoreet volutpat. Integer placerat convallis tempor. Quisque id diam nec ex iaculis pulvinar. Nunc urna dui, varius at tempus sit amet, euismod id risus. Cras placerat imperdiet mattis. Etiam vehicula finibus magna. Nullam ornare diam at molestie faucibus. Aenean dictum magna a ipsum scelerisque, a vehicula massa vehicula. Suspendisse blandit tellus vulputate enim ullamcorper tincidunt. Vivamus enim justo, sollicitudin sit amet pulvinar vitae, vehicula sed leo. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;
31
+
32
+ Praesent mattis purus et velit maximus hendrerit. Aenean vehicula tempus dapibus. Mauris convallis pharetra purus, non vulputate erat rutrum quis. Sed in tincidunt justo. Ut eu venenatis augue. Aliquam ullamcorper vitae tellus et egestas. Integer eget metus quis odio elementum auctor quis et ipsum. Duis lobortis eros lacinia sapien rutrum egestas. Phasellus ornare, elit non efficitur fringilla, arcu risus molestie enim, sit amet blandit lorem ex in lectus. Vestibulum quis tempor nisi, at pretium erat.
33
+
34
+ Mauris sed blandit nisi. In tellus sem, auctor ut porttitor eget, dictum et eros. Integer in sem nec lacus hendrerit cursus. Nulla mattis nisi et tincidunt tincidunt. Fusce ullamcorper nunc in quam euismod mattis et dignissim nulla. Ut tincidunt sodales felis, id feugiat ligula suscipit vel. Suspendisse ullamcorper commodo maximus.
35
+
36
+ Nam in dapibus eros, eget tristique enim. Vivamus non neque at elit cursus tempus vel vitae neque. Aenean pellentesque aliquet lorem, commodo ornare dolor tempus id. Curabitur efficitur nulla eu libero consectetur, at ultricies nisi condimentum. Nam imperdiet ac magna ut congue. Vivamus id aliquet turpis, quis suscipit nulla. Nunc placerat pulvinar neque. Donec ullamcorper vel ante ac iaculis. Phasellus eget dapibus turpis. Nam interdum enim at bibendum faucibus. Nunc ipsum urna, finibus ut hendrerit at, laoreet sit amet eros. Morbi ligula arcu, eleifend et dictum egestas, consequat vitae nunc.
37
+
38
+ Lorem ipsum dolor sit amet, consectetur adipiscing 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. Fusce ac ligula bibendum, rutrum libero quis, viverra sem. Interdum et malesuada 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.
39
+
40
+ #### Summary
41
+
42
+ Default example for scroll position of the ApplicationBody module-content0 px
43
+
44
+ Lorem ipsum dolor sit amet, consectetur adipiscing 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. Fusce ac ligula bibendum, rutrum libero quis, viverra sem. Interdum et malesuada 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.
45
+
46
+ In mattis massa a tellus laoreet volutpat. Integer placerat convallis tempor. Quisque id diam nec ex iaculis pulvinar. Nunc urna dui, varius at tempus sit amet, euismod id risus. Cras placerat imperdiet mattis. Etiam vehicula finibus magna. Nullam ornare diam at molestie faucibus. Aenean dictum magna a ipsum scelerisque, a vehicula massa vehicula. Suspendisse blandit tellus vulputate enim ullamcorper tincidunt. Vivamus enim justo, sollicitudin sit amet pulvinar vitae, vehicula sed leo. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;
47
+
48
+ Praesent mattis purus et velit maximus hendrerit. Aenean vehicula tempus dapibus. Mauris convallis pharetra purus, non vulputate erat rutrum quis. Sed in tincidunt justo. Ut eu venenatis augue. Aliquam ullamcorper vitae tellus et egestas. Integer eget metus quis odio elementum auctor quis et ipsum. Duis lobortis eros lacinia sapien rutrum egestas. Phasellus ornare, elit non efficitur fringilla, arcu risus molestie enim, sit amet blandit lorem ex in lectus. Vestibulum quis tempor nisi, at pretium erat.
49
+
50
+ Mauris sed blandit nisi. In tellus sem, auctor ut porttitor eget, dictum et eros. Integer in sem nec lacus hendrerit cursus. Nulla mattis nisi et tincidunt tincidunt. Fusce ullamcorper nunc in quam euismod mattis et dignissim nulla. Ut tincidunt sodales felis, id feugiat ligula suscipit vel. Suspendisse ullamcorper commodo maximus.
51
+
52
+ Nam in dapibus eros, eget tristique enim. Vivamus non neque at elit cursus tempus vel vitae neque. Aenean pellentesque aliquet lorem, commodo ornare dolor tempus id. Curabitur efficitur nulla eu libero consectetur, at ultricies nisi condimentum. Nam imperdiet ac magna ut congue. Vivamus id aliquet turpis, quis suscipit nulla. Nunc placerat pulvinar neque. Donec ullamcorper vel ante ac iaculis. Phasellus eget dapibus turpis. Nam interdum enim at bibendum faucibus. Nunc ipsum urna, finibus ut hendrerit at, laoreet sit amet eros. Morbi ligula arcu, eleifend et dictum egestas, consequat vitae nunc.
53
+
54
+ Lorem ipsum dolor sit amet, consectetur adipiscing 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. Fusce ac ligula bibendum, rutrum libero quis, viverra sem. Interdum et malesuada 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.
55
+
56
+ Lorem ipsum dolor sit amet, consectetur adipiscing 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. Fusce ac ligula bibendum, rutrum libero quis, viverra sem. Interdum et malesuada 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.
57
+
58
+ In mattis massa a tellus laoreet volutpat. Integer placerat convallis tempor. Quisque id diam nec ex iaculis pulvinar. Nunc urna dui, varius at tempus sit amet, euismod id risus. Cras placerat imperdiet mattis. Etiam vehicula finibus magna. Nullam ornare diam at molestie faucibus. Aenean dictum magna a ipsum scelerisque, a vehicula massa vehicula. Suspendisse blandit tellus vulputate enim ullamcorper tincidunt. Vivamus enim justo, sollicitudin sit amet pulvinar vitae, vehicula sed leo. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;
59
+
60
+ Praesent mattis purus et velit maximus hendrerit. Aenean vehicula tempus dapibus. Mauris convallis pharetra purus, non vulputate erat rutrum quis. Sed in tincidunt justo. Ut eu venenatis augue. Aliquam ullamcorper vitae tellus et egestas. Integer eget metus quis odio elementum auctor quis et ipsum. Duis lobortis eros lacinia sapien rutrum egestas. Phasellus ornare, elit non efficitur fringilla, arcu risus molestie enim, sit amet blandit lorem ex in lectus. Vestibulum quis tempor nisi, at pretium erat.
61
+
62
+ Mauris sed blandit nisi. In tellus sem, auctor ut porttitor eget, dictum et eros. Integer in sem nec lacus hendrerit cursus. Nulla mattis nisi et tincidunt tincidunt. Fusce ullamcorper nunc in quam euismod mattis et dignissim nulla. Ut tincidunt sodales felis, id feugiat ligula suscipit vel. Suspendisse ullamcorper commodo maximus.
63
+
64
+ Nam in dapibus eros, eget tristique enim. Vivamus non neque at elit cursus tempus vel vitae neque. Aenean pellentesque aliquet lorem, commodo ornare dolor tempus id. Curabitur efficitur nulla eu libero consectetur, at ultricies nisi condimentum. Nam imperdiet ac magna ut congue. Vivamus id aliquet turpis, quis suscipit nulla. Nunc placerat pulvinar neque. Donec ullamcorper vel ante ac iaculis. Phasellus eget dapibus turpis. Nam interdum enim at bibendum faucibus. Nunc ipsum urna, finibus ut hendrerit at, laoreet sit amet eros. Morbi ligula arcu, eleifend et dictum egestas, consequat vitae nunc.
65
+
66
+ Lorem ipsum dolor sit amet, consectetur adipiscing 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. Fusce ac ligula bibendum, rutrum libero quis, viverra sem. Interdum et malesuada 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.
67
+
68
+ #### React (tsx)
69
+
70
+ ```tsx
71
+ import useScrollPosition from '@rio-cloud/rio-uikit/useScrollPosition';
72
+
73
+ import { dummyTextExtraLong } from '../../../utils/data';
74
+
75
+ export default () => {
76
+ const scrollPosition = useScrollPosition();
77
+
78
+ return (
79
+ <>
80
+ <label>Default example for scroll position of the ApplicationBody module-content</label>
81
+ <div className='position-relative'>
82
+ <div className='position-sticky top-0 well well-sm border shadow-default'>{`${scrollPosition} px`}</div>
83
+ <div className='display-flex flex-column align-items-center text-size-14'>{dummyTextExtraLong}</div>
84
+ </div>
85
+ </>
86
+ );
87
+ };
88
+ ```
89
+
90
+ #### HTML (html)
91
+
92
+ ```html
93
+ <label>Default example for scroll position of the ApplicationBody module-content</label>
94
+ <div class="position-relative">
95
+ <div class="position-sticky top-0 well well-sm border shadow-default">0 px</div>
96
+ <div class="display-flex flex-column align-items-center text-size-14">
97
+ Lorem ipsum dolor sit amet, consectetur adipiscing 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. Fusce ac ligula bibendum, rutrum libero quis, viverra sem. Interdum et malesuada 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.
98
+
99
+ In mattis massa a tellus laoreet volutpat. Integer placerat convallis tempor. Quisque id diam nec ex iaculis pulvinar. Nunc urna dui, varius at tempus sit amet, euismod id risus. Cras placerat imperdiet mattis. Etiam vehicula finibus magna. Nullam ornare diam at molestie faucibus. Aenean dictum magna a ipsum scelerisque, a vehicula massa vehicula. Suspendisse blandit tellus vulputate enim ullamcorper tincidunt. Vivamus enim justo, sollicitudin sit amet pulvinar vitae, vehicula sed leo. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;
100
+
101
+ Praesent mattis purus et velit maximus hendrerit. Aenean vehicula tempus dapibus. Mauris convallis pharetra purus, non vulputate erat rutrum quis. Sed in tincidunt justo. Ut eu venenatis augue. Aliquam ullamcorper vitae tellus et egestas. Integer eget metus quis odio elementum auctor quis et ipsum. Duis lobortis eros lacinia sapien rutrum egestas. Phasellus ornare, elit non efficitur fringilla, arcu risus molestie enim, sit amet blandit lorem ex in lectus. Vestibulum quis tempor nisi, at pretium erat.
102
+
103
+ Mauris sed blandit nisi. In tellus sem, auctor ut porttitor eget, dictum et eros. Integer in sem nec lacus hendrerit cursus. Nulla mattis nisi et tincidunt tincidunt. Fusce ullamcorper nunc in quam euismod mattis et dignissim nulla. Ut tincidunt sodales felis, id feugiat ligula suscipit vel. Suspendisse ullamcorper commodo maximus.
104
+
105
+ Nam in dapibus eros, eget tristique enim. Vivamus non neque at elit cursus tempus vel vitae neque. Aenean pellentesque aliquet lorem, commodo ornare dolor tempus id. Curabitur efficitur nulla eu libero consectetur, at ultricies nisi condimentum. Nam imperdiet ac magna ut congue. Vivamus id aliquet turpis, quis suscipit nulla. Nunc placerat pulvinar neque. Donec ullamcorper vel ante ac iaculis. Phasellus eget dapibus turpis. Nam interdum enim at bibendum faucibus. Nunc ipsum urna, finibus ut hendrerit at, laoreet sit amet eros. Morbi ligula arcu, eleifend et dictum egestas, consequat vitae nunc.
106
+
107
+ Lorem ipsum dolor sit amet, consectetur adipiscing 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. Fusce ac ligula bibendum, rutrum libero quis, viverra sem. Interdum et malesuada 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.
108
+
109
+ Lorem ipsum dolor sit amet, consectetur adipiscing 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. Fusce ac ligula bibendum, rutrum libero quis, viverra sem. Interdum et malesuada 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.
110
+
111
+ In mattis massa a tellus laoreet volutpat. Integer placerat convallis tempor. Quisque id diam nec ex iaculis pulvinar. Nunc urna dui, varius at tempus sit amet, euismod id risus. Cras placerat imperdiet mattis. Etiam vehicula finibus magna. Nullam ornare diam at molestie faucibus. Aenean dictum magna a ipsum scelerisque, a vehicula massa vehicula. Suspendisse blandit tellus vulputate enim ullamcorper tincidunt. Vivamus enim justo, sollicitudin sit amet pulvinar vitae, vehicula sed leo. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;
112
+
113
+ Praesent mattis purus et velit maximus hendrerit. Aenean vehicula tempus dapibus. Mauris convallis pharetra purus, non vulputate erat rutrum quis. Sed in tincidunt justo. Ut eu venenatis augue. Aliquam ullamcorper vitae tellus et egestas. Integer eget metus quis odio elementum auctor quis et ipsum. Duis lobortis eros lacinia sapien rutrum egestas. Phasellus ornare, elit non efficitur fringilla, arcu risus molestie enim, sit amet blandit lorem ex in lectus. Vestibulum quis tempor nisi, at pretium erat.
114
+
115
+ Mauris sed blandit nisi. In tellus sem, auctor ut porttitor eget, dictum et eros. Integer in sem nec lacus hendrerit cursus. Nulla mattis nisi et tincidunt tincidunt. Fusce ullamcorper nunc in quam euismod mattis et dignissim nulla. Ut tincidunt sodales felis, id feugiat ligula suscipit vel. Suspendisse ullamcorper commodo maximus.
116
+
117
+ Nam in dapibus eros, eget tristique enim. Vivamus non neque at elit cursus tempus vel vitae neque. Aenean pellentesque aliquet lorem, commodo ornare dolor tempus id. Curabitur efficitur nulla eu libero consectetur, at ultricies nisi condimentum. Nam imperdiet ac magna ut congue. Vivamus id aliquet turpis, quis suscipit nulla. Nunc placerat pulvinar neque. Donec ullamcorper vel ante ac iaculis. Phasellus eget dapibus turpis. Nam interdum enim at bibendum faucibus. Nunc ipsum urna, finibus ut hendrerit at, laoreet sit amet eros. Morbi ligula arcu, eleifend et dictum egestas, consequat vitae nunc.
118
+
119
+ Lorem ipsum dolor sit amet, consectetur adipiscing 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. Fusce ac ligula bibendum, rutrum libero quis, viverra sem. Interdum et malesuada 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>
120
+ </div>
121
+ ```
122
+
123
+ #### Props
124
+
125
+ | Name | Type | Default | Description |
126
+ | --- | --- | --- | --- |
127
+ | target | Window \| HTMLBodyElement \| React.ReactElement \| React.MutableRefObject<object> \| undefined | — | The target element to get the scroll position for. |
128
+ | return | Number | — | The hook returns the scroll position as a number |
129
+
130
+ ### Example: Example 2
131
+
132
+ Example for scroll position of a certain element0 px
133
+
134
+ Lorem ipsum dolor sit amet, consectetur adipiscing 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. Fusce ac ligula bibendum, rutrum libero quis, viverra sem. Interdum et malesuada 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.
135
+
136
+ In mattis massa a tellus laoreet volutpat. Integer placerat convallis tempor. Quisque id diam nec ex iaculis pulvinar. Nunc urna dui, varius at tempus sit amet, euismod id risus. Cras placerat imperdiet mattis. Etiam vehicula finibus magna. Nullam ornare diam at molestie faucibus. Aenean dictum magna a ipsum scelerisque, a vehicula massa vehicula. Suspendisse blandit tellus vulputate enim ullamcorper tincidunt. Vivamus enim justo, sollicitudin sit amet pulvinar vitae, vehicula sed leo. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;
137
+
138
+ Praesent mattis purus et velit maximus hendrerit. Aenean vehicula tempus dapibus. Mauris convallis pharetra purus, non vulputate erat rutrum quis. Sed in tincidunt justo. Ut eu venenatis augue. Aliquam ullamcorper vitae tellus et egestas. Integer eget metus quis odio elementum auctor quis et ipsum. Duis lobortis eros lacinia sapien rutrum egestas. Phasellus ornare, elit non efficitur fringilla, arcu risus molestie enim, sit amet blandit lorem ex in lectus. Vestibulum quis tempor nisi, at pretium erat.
139
+
140
+ Mauris sed blandit nisi. In tellus sem, auctor ut porttitor eget, dictum et eros. Integer in sem nec lacus hendrerit cursus. Nulla mattis nisi et tincidunt tincidunt. Fusce ullamcorper nunc in quam euismod mattis et dignissim nulla. Ut tincidunt sodales felis, id feugiat ligula suscipit vel. Suspendisse ullamcorper commodo maximus.
141
+
142
+ Nam in dapibus eros, eget tristique enim. Vivamus non neque at elit cursus tempus vel vitae neque. Aenean pellentesque aliquet lorem, commodo ornare dolor tempus id. Curabitur efficitur nulla eu libero consectetur, at ultricies nisi condimentum. Nam imperdiet ac magna ut congue. Vivamus id aliquet turpis, quis suscipit nulla. Nunc placerat pulvinar neque. Donec ullamcorper vel ante ac iaculis. Phasellus eget dapibus turpis. Nam interdum enim at bibendum faucibus. Nunc ipsum urna, finibus ut hendrerit at, laoreet sit amet eros. Morbi ligula arcu, eleifend et dictum egestas, consequat vitae nunc.
143
+
144
+ Lorem ipsum dolor sit amet, consectetur adipiscing 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. Fusce ac ligula bibendum, rutrum libero quis, viverra sem. Interdum et malesuada 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.
145
+
146
+ Lorem ipsum dolor sit amet, consectetur adipiscing 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. Fusce ac ligula bibendum, rutrum libero quis, viverra sem. Interdum et malesuada 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.
147
+
148
+ In mattis massa a tellus laoreet volutpat. Integer placerat convallis tempor. Quisque id diam nec ex iaculis pulvinar. Nunc urna dui, varius at tempus sit amet, euismod id risus. Cras placerat imperdiet mattis. Etiam vehicula finibus magna. Nullam ornare diam at molestie faucibus. Aenean dictum magna a ipsum scelerisque, a vehicula massa vehicula. Suspendisse blandit tellus vulputate enim ullamcorper tincidunt. Vivamus enim justo, sollicitudin sit amet pulvinar vitae, vehicula sed leo. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;
149
+
150
+ Praesent mattis purus et velit maximus hendrerit. Aenean vehicula tempus dapibus. Mauris convallis pharetra purus, non vulputate erat rutrum quis. Sed in tincidunt justo. Ut eu venenatis augue. Aliquam ullamcorper vitae tellus et egestas. Integer eget metus quis odio elementum auctor quis et ipsum. Duis lobortis eros lacinia sapien rutrum egestas. Phasellus ornare, elit non efficitur fringilla, arcu risus molestie enim, sit amet blandit lorem ex in lectus. Vestibulum quis tempor nisi, at pretium erat.
151
+
152
+ Mauris sed blandit nisi. In tellus sem, auctor ut porttitor eget, dictum et eros. Integer in sem nec lacus hendrerit cursus. Nulla mattis nisi et tincidunt tincidunt. Fusce ullamcorper nunc in quam euismod mattis et dignissim nulla. Ut tincidunt sodales felis, id feugiat ligula suscipit vel. Suspendisse ullamcorper commodo maximus.
153
+
154
+ Nam in dapibus eros, eget tristique enim. Vivamus non neque at elit cursus tempus vel vitae neque. Aenean pellentesque aliquet lorem, commodo ornare dolor tempus id. Curabitur efficitur nulla eu libero consectetur, at ultricies nisi condimentum. Nam imperdiet ac magna ut congue. Vivamus id aliquet turpis, quis suscipit nulla. Nunc placerat pulvinar neque. Donec ullamcorper vel ante ac iaculis. Phasellus eget dapibus turpis. Nam interdum enim at bibendum faucibus. Nunc ipsum urna, finibus ut hendrerit at, laoreet sit amet eros. Morbi ligula arcu, eleifend et dictum egestas, consequat vitae nunc.
155
+
156
+ Lorem ipsum dolor sit amet, consectetur adipiscing 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. Fusce ac ligula bibendum, rutrum libero quis, viverra sem. Interdum et malesuada 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.
157
+
158
+ #### Summary
159
+
160
+ Example for scroll position of a certain element0 px
161
+
162
+ Lorem ipsum dolor sit amet, consectetur adipiscing 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. Fusce ac ligula bibendum, rutrum libero quis, viverra sem. Interdum et malesuada 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.
163
+
164
+ In mattis massa a tellus laoreet volutpat. Integer placerat convallis tempor. Quisque id diam nec ex iaculis pulvinar. Nunc urna dui, varius at tempus sit amet, euismod id risus. Cras placerat imperdiet mattis. Etiam vehicula finibus magna. Nullam ornare diam at molestie faucibus. Aenean dictum magna a ipsum scelerisque, a vehicula massa vehicula. Suspendisse blandit tellus vulputate enim ullamcorper tincidunt. Vivamus enim justo, sollicitudin sit amet pulvinar vitae, vehicula sed leo. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;
165
+
166
+ Praesent mattis purus et velit maximus hendrerit. Aenean vehicula tempus dapibus. Mauris convallis pharetra purus, non vulputate erat rutrum quis. Sed in tincidunt justo. Ut eu venenatis augue. Aliquam ullamcorper vitae tellus et egestas. Integer eget metus quis odio elementum auctor quis et ipsum. Duis lobortis eros lacinia sapien rutrum egestas. Phasellus ornare, elit non efficitur fringilla, arcu risus molestie enim, sit amet blandit lorem ex in lectus. Vestibulum quis tempor nisi, at pretium erat.
167
+
168
+ Mauris sed blandit nisi. In tellus sem, auctor ut porttitor eget, dictum et eros. Integer in sem nec lacus hendrerit cursus. Nulla mattis nisi et tincidunt tincidunt. Fusce ullamcorper nunc in quam euismod mattis et dignissim nulla. Ut tincidunt sodales felis, id feugiat ligula suscipit vel. Suspendisse ullamcorper commodo maximus.
169
+
170
+ Nam in dapibus eros, eget tristique enim. Vivamus non neque at elit cursus tempus vel vitae neque. Aenean pellentesque aliquet lorem, commodo ornare dolor tempus id. Curabitur efficitur nulla eu libero consectetur, at ultricies nisi condimentum. Nam imperdiet ac magna ut congue. Vivamus id aliquet turpis, quis suscipit nulla. Nunc placerat pulvinar neque. Donec ullamcorper vel ante ac iaculis. Phasellus eget dapibus turpis. Nam interdum enim at bibendum faucibus. Nunc ipsum urna, finibus ut hendrerit at, laoreet sit amet eros. Morbi ligula arcu, eleifend et dictum egestas, consequat vitae nunc.
171
+
172
+ Lorem ipsum dolor sit amet, consectetur adipiscing 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. Fusce ac ligula bibendum, rutrum libero quis, viverra sem. Interdum et malesuada 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.
173
+
174
+ Lorem ipsum dolor sit amet, consectetur adipiscing 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. Fusce ac ligula bibendum, rutrum libero quis, viverra sem. Interdum et malesuada 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.
175
+
176
+ In mattis massa a tellus laoreet volutpat. Integer placerat convallis tempor. Quisque id diam nec ex iaculis pulvinar. Nunc urna dui, varius at tempus sit amet, euismod id risus. Cras placerat imperdiet mattis. Etiam vehicula finibus magna. Nullam ornare diam at molestie faucibus. Aenean dictum magna a ipsum scelerisque, a vehicula massa vehicula. Suspendisse blandit tellus vulputate enim ullamcorper tincidunt. Vivamus enim justo, sollicitudin sit amet pulvinar vitae, vehicula sed leo. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;
177
+
178
+ Praesent mattis purus et velit maximus hendrerit. Aenean vehicula tempus dapibus. Mauris convallis pharetra purus, non vulputate erat rutrum quis. Sed in tincidunt justo. Ut eu venenatis augue. Aliquam ullamcorper vitae tellus et egestas. Integer eget metus quis odio elementum auctor quis et ipsum. Duis lobortis eros lacinia sapien rutrum egestas. Phasellus ornare, elit non efficitur fringilla, arcu risus molestie enim, sit amet blandit lorem ex in lectus. Vestibulum quis tempor nisi, at pretium erat.
179
+
180
+ Mauris sed blandit nisi. In tellus sem, auctor ut porttitor eget, dictum et eros. Integer in sem nec lacus hendrerit cursus. Nulla mattis nisi et tincidunt tincidunt. Fusce ullamcorper nunc in quam euismod mattis et dignissim nulla. Ut tincidunt sodales felis, id feugiat ligula suscipit vel. Suspendisse ullamcorper commodo maximus.
181
+
182
+ Nam in dapibus eros, eget tristique enim. Vivamus non neque at elit cursus tempus vel vitae neque. Aenean pellentesque aliquet lorem, commodo ornare dolor tempus id. Curabitur efficitur nulla eu libero consectetur, at ultricies nisi condimentum. Nam imperdiet ac magna ut congue. Vivamus id aliquet turpis, quis suscipit nulla. Nunc placerat pulvinar neque. Donec ullamcorper vel ante ac iaculis. Phasellus eget dapibus turpis. Nam interdum enim at bibendum faucibus. Nunc ipsum urna, finibus ut hendrerit at, laoreet sit amet eros. Morbi ligula arcu, eleifend et dictum egestas, consequat vitae nunc.
183
+
184
+ Lorem ipsum dolor sit amet, consectetur adipiscing 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. Fusce ac ligula bibendum, rutrum libero quis, viverra sem. Interdum et malesuada 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.
185
+
186
+ #### React (tsx)
187
+
188
+ ```tsx
189
+ import { useRef } from 'react';
190
+
191
+ import useScrollPosition from '@rio-cloud/rio-uikit/useScrollPosition';
192
+
193
+ import { dummyTextExtraLong } from '../../../utils/data';
194
+
195
+ export default () => {
196
+ const contentRef = useRef<HTMLDivElement>(null);
197
+ const scrollPosition = useScrollPosition(contentRef);
198
+
199
+ return (
200
+ <>
201
+ <label>Example for scroll position of a certain element</label>
202
+ <div
203
+ ref={contentRef}
204
+ className='height-200 position-relative overflow-auto height-200 position-relative overflow-auto'
205
+ >
206
+ <div className='position-sticky top-0 well well-sm border shadow-default'>{`${scrollPosition} px`}</div>
207
+ <div className='text-size-14'>{dummyTextExtraLong}</div>
208
+ </div>
209
+ </>
210
+ );
211
+ };
212
+ ```
213
+
214
+ #### HTML (html)
215
+
216
+ ```html
217
+ <label>Example for scroll position of a certain element</label>
218
+ <div class="height-200 position-relative overflow-auto height-200 position-relative overflow-auto">
219
+ <div class="position-sticky top-0 well well-sm border shadow-default">0 px</div>
220
+ <div class="text-size-14">
221
+ Lorem ipsum dolor sit amet, consectetur adipiscing 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. Fusce ac ligula bibendum, rutrum libero quis, viverra sem. Interdum et malesuada 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.
222
+
223
+ In mattis massa a tellus laoreet volutpat. Integer placerat convallis tempor. Quisque id diam nec ex iaculis pulvinar. Nunc urna dui, varius at tempus sit amet, euismod id risus. Cras placerat imperdiet mattis. Etiam vehicula finibus magna. Nullam ornare diam at molestie faucibus. Aenean dictum magna a ipsum scelerisque, a vehicula massa vehicula. Suspendisse blandit tellus vulputate enim ullamcorper tincidunt. Vivamus enim justo, sollicitudin sit amet pulvinar vitae, vehicula sed leo. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;
224
+
225
+ Praesent mattis purus et velit maximus hendrerit. Aenean vehicula tempus dapibus. Mauris convallis pharetra purus, non vulputate erat rutrum quis. Sed in tincidunt justo. Ut eu venenatis augue. Aliquam ullamcorper vitae tellus et egestas. Integer eget metus quis odio elementum auctor quis et ipsum. Duis lobortis eros lacinia sapien rutrum egestas. Phasellus ornare, elit non efficitur fringilla, arcu risus molestie enim, sit amet blandit lorem ex in lectus. Vestibulum quis tempor nisi, at pretium erat.
226
+
227
+ Mauris sed blandit nisi. In tellus sem, auctor ut porttitor eget, dictum et eros. Integer in sem nec lacus hendrerit cursus. Nulla mattis nisi et tincidunt tincidunt. Fusce ullamcorper nunc in quam euismod mattis et dignissim nulla. Ut tincidunt sodales felis, id feugiat ligula suscipit vel. Suspendisse ullamcorper commodo maximus.
228
+
229
+ Nam in dapibus eros, eget tristique enim. Vivamus non neque at elit cursus tempus vel vitae neque. Aenean pellentesque aliquet lorem, commodo ornare dolor tempus id. Curabitur efficitur nulla eu libero consectetur, at ultricies nisi condimentum. Nam imperdiet ac magna ut congue. Vivamus id aliquet turpis, quis suscipit nulla. Nunc placerat pulvinar neque. Donec ullamcorper vel ante ac iaculis. Phasellus eget dapibus turpis. Nam interdum enim at bibendum faucibus. Nunc ipsum urna, finibus ut hendrerit at, laoreet sit amet eros. Morbi ligula arcu, eleifend et dictum egestas, consequat vitae nunc.
230
+
231
+ Lorem ipsum dolor sit amet, consectetur adipiscing 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. Fusce ac ligula bibendum, rutrum libero quis, viverra sem. Interdum et malesuada 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.
232
+
233
+ Lorem ipsum dolor sit amet, consectetur adipiscing 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. Fusce ac ligula bibendum, rutrum libero quis, viverra sem. Interdum et malesuada 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.
234
+
235
+ In mattis massa a tellus laoreet volutpat. Integer placerat convallis tempor. Quisque id diam nec ex iaculis pulvinar. Nunc urna dui, varius at tempus sit amet, euismod id risus. Cras placerat imperdiet mattis. Etiam vehicula finibus magna. Nullam ornare diam at molestie faucibus. Aenean dictum magna a ipsum scelerisque, a vehicula massa vehicula. Suspendisse blandit tellus vulputate enim ullamcorper tincidunt. Vivamus enim justo, sollicitudin sit amet pulvinar vitae, vehicula sed leo. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;
236
+
237
+ Praesent mattis purus et velit maximus hendrerit. Aenean vehicula tempus dapibus. Mauris convallis pharetra purus, non vulputate erat rutrum quis. Sed in tincidunt justo. Ut eu venenatis augue. Aliquam ullamcorper vitae tellus et egestas. Integer eget metus quis odio elementum auctor quis et ipsum. Duis lobortis eros lacinia sapien rutrum egestas. Phasellus ornare, elit non efficitur fringilla, arcu risus molestie enim, sit amet blandit lorem ex in lectus. Vestibulum quis tempor nisi, at pretium erat.
238
+
239
+ Mauris sed blandit nisi. In tellus sem, auctor ut porttitor eget, dictum et eros. Integer in sem nec lacus hendrerit cursus. Nulla mattis nisi et tincidunt tincidunt. Fusce ullamcorper nunc in quam euismod mattis et dignissim nulla. Ut tincidunt sodales felis, id feugiat ligula suscipit vel. Suspendisse ullamcorper commodo maximus.
240
+
241
+ Nam in dapibus eros, eget tristique enim. Vivamus non neque at elit cursus tempus vel vitae neque. Aenean pellentesque aliquet lorem, commodo ornare dolor tempus id. Curabitur efficitur nulla eu libero consectetur, at ultricies nisi condimentum. Nam imperdiet ac magna ut congue. Vivamus id aliquet turpis, quis suscipit nulla. Nunc placerat pulvinar neque. Donec ullamcorper vel ante ac iaculis. Phasellus eget dapibus turpis. Nam interdum enim at bibendum faucibus. Nunc ipsum urna, finibus ut hendrerit at, laoreet sit amet eros. Morbi ligula arcu, eleifend et dictum egestas, consequat vitae nunc.
242
+
243
+ Lorem ipsum dolor sit amet, consectetur adipiscing 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. Fusce ac ligula bibendum, rutrum libero quis, viverra sem. Interdum et malesuada 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>
244
+ </div>
245
+ ```
246
+
247
+ #### Props
248
+
249
+ | Name | Type | Default | Description |
250
+ | --- | --- | --- | --- |
251
+ | target | Window \| HTMLBodyElement \| React.ReactElement \| React.MutableRefObject<object> \| undefined | — | The target element to get the scroll position for. |
252
+ | return | Number | — | The hook returns the scroll position as a number |
@@ -0,0 +1,228 @@
1
+ # useSearch
2
+
3
+ *Category:* Utilities
4
+ *Section:* UI state & input hooks
5
+ *Source:* https://uikit.developers.rio.cloud/#utilities/useSearch
6
+ *Captured:* 2025-12-12T12:39:48.194Z
7
+
8
+ The useSearch hook is a custom hook to filter a list of objects by a search value. Supports field-based filtering, custom filtering logic, debounce, and case sensitivity.
9
+
10
+ ## useSearch
11
+
12
+ ### Example: Search a list of objects
13
+
14
+ Search a list of objects
15
+
16
+ AppleBananaFigPearMango
17
+
18
+ #### Summary
19
+
20
+ Search a list of objects
21
+
22
+ AppleBananaFigPearMango
23
+
24
+ #### React (tsx)
25
+
26
+ ```tsx
27
+ import { isEmpty } from 'es-toolkit/compat';
28
+ import useSearch from '@rio-cloud/rio-uikit/useSearch';
29
+ import ClearableInput from '@rio-cloud/rio-uikit/ClearableInput';
30
+ import FormLabel from '@rio-cloud/rio-uikit/FormLabel';
31
+
32
+ type ListType = { name: string };
33
+
34
+ export default () => {
35
+ const items = [{ name: 'Apple' }, { name: 'Banana' }, { name: 'Fig' }, { name: 'Pear' }, { name: 'Mango' }];
36
+
37
+ const { searchValue, setSearchValue, filteredList } = useSearch(items);
38
+
39
+ return (
40
+ <>
41
+ <div className='form-group max-width-300'>
42
+ <FormLabel>Search a list of objects</FormLabel>
43
+ <div className='input-group'>
44
+ <span className='input-group-addon'>
45
+ <span className='rioglyph rioglyph-search' aria-hidden='true' />
46
+ </span>
47
+ <ClearableInput
48
+ value={searchValue}
49
+ onChange={(newValue: string) => setSearchValue(newValue)}
50
+ onClear={() => setSearchValue('')}
51
+ placeholder='Search for fruits'
52
+ />
53
+ </div>
54
+ </div>
55
+ <div className='display-flex gap-10'>
56
+ {isEmpty(filteredList)
57
+ ? 'Nothing found'
58
+ : filteredList.map(listItem => <span key={listItem.name}>{listItem.name}</span>)}
59
+ </div>
60
+ </>
61
+ );
62
+ };
63
+ ```
64
+
65
+ #### HTML (html)
66
+
67
+ ```html
68
+ <div class="form-group max-width-300">
69
+ <div class="text-color-dark max-width-100pct text-size-12 display-inline-block margin-bottom-5">Search a list of objects</div>
70
+ <div class="input-group">
71
+ <span class="input-group-addon">
72
+ <span class="rioglyph rioglyph-search" aria-hidden="true">
73
+ </span>
74
+ </span>
75
+ <div class="ClearableInput input-group">
76
+ <input placeholder="Search for fruits" class="form-control" type="text" tabindex="0" value="">
77
+ <span class="clearButton hide">
78
+ <span class="clearButtonIcon rioglyph rioglyph-remove-sign">
79
+ </span>
80
+ </span>
81
+ </div>
82
+ </div>
83
+ </div>
84
+ <div class="display-flex gap-10">
85
+ <span>Apple</span>
86
+ <span>Banana</span>
87
+ <span>Fig</span>
88
+ <span>Pear</span>
89
+ <span>Mango</span>
90
+ </div>
91
+ ```
92
+
93
+ #### Props: Options for the `useSearch` hook
94
+
95
+ ### Options for the `useSearch` hook
96
+
97
+ | Name | Type | Default | Description |
98
+ | --- | --- | --- | --- |
99
+ | list | T[] | — | The array of objects to search through. |
100
+ | options | object | — | Configuration options for the search behavior. |
101
+ | └fields | (keyof T \| string)[] | — | Fields to search through. If omitted, all top-level string/number fields are used. |
102
+ | └customFilter | (item: T, query: string) => boolean | — | Optional custom filter function overriding field-based filtering. |
103
+ | └debounceMs | number | — | Debounce time in milliseconds. If omitted, debounce is disabled. |
104
+ | └caseSensitive | boolean | false | Whether the search should be case-sensitive. |
105
+
106
+ #### Props: Return value of the `useSearch` hook
107
+
108
+ ### Return value of the `useSearch` hook
109
+
110
+ | Name | Type | Default | Description |
111
+ | --- | --- | --- | --- |
112
+ | searchValue | string | — | The current search input string. |
113
+ | setSearchValue | Function | — | A setter function to update the search query. |
114
+ | filteredList | T[] | — | The list of items matching the current search query. |
115
+
116
+ ### Example: Search a list of objects for multiple fields
117
+
118
+ Search a list of objects for multiple fields
119
+
120
+ Alice - 30 | Berlin
121
+ Bob - 25 | Munich
122
+ Charlie - 35 |
123
+
124
+ #### Summary
125
+
126
+ Search a list of objects for multiple fields
127
+
128
+ Alice - 30 | Berlin
129
+ Bob - 25 | Munich
130
+ Charlie - 35 |
131
+
132
+ #### React (tsx)
133
+
134
+ ```tsx
135
+ import { isEmpty } from 'es-toolkit/compat';
136
+ import useSearch from '@rio-cloud/rio-uikit/useSearch';
137
+ import ClearableInput from '@rio-cloud/rio-uikit/ClearableInput';
138
+ import FormLabel from '@rio-cloud/rio-uikit/FormLabel';
139
+
140
+ type ListType = { name: string; age: number; address?: { city: string } };
141
+
142
+ export default () => {
143
+ const users = [
144
+ { name: 'Alice', age: 30, address: { city: 'Berlin' } },
145
+ { name: 'Bob', age: 25, address: { city: 'Munich' } },
146
+ { name: 'Charlie', age: 35 },
147
+ ];
148
+
149
+ const { searchValue, setSearchValue, filteredList } = useSearch(users, { fields: ['name', 'age', 'address.city'] });
150
+
151
+ return (
152
+ <>
153
+ <div className='form-group max-width-300'>
154
+ <FormLabel>Search a list of objects for multiple fields</FormLabel>
155
+ <div className='input-group'>
156
+ <span className='input-group-addon'>
157
+ <span className='rioglyph rioglyph-search' aria-hidden='true' />
158
+ </span>
159
+ <ClearableInput
160
+ value={searchValue}
161
+ onChange={(newValue: string) => setSearchValue(newValue)}
162
+ onClear={() => setSearchValue('')}
163
+ placeholder='Search for users'
164
+ />
165
+ </div>
166
+ </div>
167
+ <div>
168
+ {isEmpty(filteredList)
169
+ ? 'Nothing found'
170
+ : filteredList.map(listItem => (
171
+ <div key={listItem.name}>
172
+ {listItem.name} - {listItem.age} | {listItem.address?.city}
173
+ </div>
174
+ ))}
175
+ </div>
176
+ </>
177
+ );
178
+ };
179
+ ```
180
+
181
+ #### HTML (html)
182
+
183
+ ```html
184
+ <div class="form-group max-width-300">
185
+ <div class="text-color-dark max-width-100pct text-size-12 display-inline-block margin-bottom-5">Search a list of objects for multiple fields</div>
186
+ <div class="input-group">
187
+ <span class="input-group-addon">
188
+ <span class="rioglyph rioglyph-search" aria-hidden="true">
189
+ </span>
190
+ </span>
191
+ <div class="ClearableInput input-group">
192
+ <input placeholder="Search for users" class="form-control" type="text" tabindex="0" value="">
193
+ <span class="clearButton hide">
194
+ <span class="clearButtonIcon rioglyph rioglyph-remove-sign">
195
+ </span>
196
+ </span>
197
+ </div>
198
+ </div>
199
+ </div>
200
+ <div>
201
+ <div>Alice - 30 | Berlin</div>
202
+ <div>Bob - 25 | Munich</div>
203
+ <div>Charlie - 35 | </div>
204
+ </div>
205
+ ```
206
+
207
+ #### Props: Options for the `useSearch` hook
208
+
209
+ ### Options for the `useSearch` hook
210
+
211
+ | Name | Type | Default | Description |
212
+ | --- | --- | --- | --- |
213
+ | list | T[] | — | The array of objects to search through. |
214
+ | options | object | — | Configuration options for the search behavior. |
215
+ | └fields | (keyof T \| string)[] | — | Fields to search through. If omitted, all top-level string/number fields are used. |
216
+ | └customFilter | (item: T, query: string) => boolean | — | Optional custom filter function overriding field-based filtering. |
217
+ | └debounceMs | number | — | Debounce time in milliseconds. If omitted, debounce is disabled. |
218
+ | └caseSensitive | boolean | false | Whether the search should be case-sensitive. |
219
+
220
+ #### Props: Return value of the `useSearch` hook
221
+
222
+ ### Return value of the `useSearch` hook
223
+
224
+ | Name | Type | Default | Description |
225
+ | --- | --- | --- | --- |
226
+ | searchValue | string | — | The current search input string. |
227
+ | setSearchValue | Function | — | A setter function to update the search query. |
228
+ | filteredList | T[] | — | The list of items matching the current search query. |