@rio-cloud/uikit-mcp 1.0.0 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +75 -40
- package/dist/doc-metadata.json +1872 -0
- package/dist/docs/components/accentBar.md +582 -0
- package/dist/docs/components/activity.md +330 -0
- package/dist/docs/components/animatedNumber.md +88 -0
- package/dist/docs/components/animatedTextReveal.md +381 -0
- package/dist/docs/components/animations.md +459 -0
- package/dist/docs/components/appHeader.md +737 -0
- package/dist/docs/components/appLayout.md +2016 -0
- package/dist/docs/components/appNavigationBar.md +274 -0
- package/dist/docs/components/areaCharts.md +828 -0
- package/dist/docs/components/aspectRatioPlaceholder.md +106 -0
- package/dist/docs/components/assetTree.md +3223 -0
- package/dist/docs/components/autosuggests.md +1177 -0
- package/dist/docs/components/avatar.md +206 -0
- package/dist/docs/components/banner.md +668 -0
- package/dist/docs/components/barCharts.md +2785 -0
- package/dist/docs/components/barList.md +517 -0
- package/dist/docs/components/basicMap.md +167 -0
- package/dist/docs/components/bottomSheet.md +721 -0
- package/dist/docs/components/button.md +775 -0
- package/dist/docs/components/buttonToolbar.md +134 -0
- package/dist/docs/components/calendarStripe.md +525 -0
- package/dist/docs/components/card.md +86 -0
- package/dist/docs/components/carousel.md +128 -0
- package/dist/docs/components/chartColors.md +716 -0
- package/dist/docs/components/chartsGettingStarted.md +28 -0
- package/dist/docs/components/chat.md +932 -0
- package/dist/docs/components/checkbox.md +996 -0
- package/dist/docs/components/clearableInput.md +806 -0
- package/dist/docs/components/collapse.md +189 -0
- package/dist/docs/components/composedCharts.md +424 -0
- package/dist/docs/components/contentLoader.md +674 -0
- package/dist/docs/components/dataTabs.md +1251 -0
- package/dist/docs/components/datepickers.md +2543 -0
- package/dist/docs/components/dialogs.md +2244 -0
- package/dist/docs/components/divider.md +219 -0
- package/dist/docs/components/dropdowns.md +17550 -0
- package/dist/docs/components/editableContent.md +1127 -0
- package/dist/docs/components/expander.md +970 -0
- package/dist/docs/components/fade.md +836 -0
- package/dist/docs/components/fadeExpander.md +180 -0
- package/dist/docs/components/fadeUp.md +396 -0
- package/dist/docs/components/feedback.md +758 -0
- package/dist/docs/components/filePickers.md +370 -0
- package/dist/docs/components/formLabel.md +251 -0
- package/dist/docs/components/fullscreenMap.md +10 -0
- package/dist/docs/components/groupedItemList.md +1001 -0
- package/dist/docs/components/iconList.md +306 -0
- package/dist/docs/components/imagePreloader.md +167 -0
- package/dist/docs/components/labeledElement.md +115 -0
- package/dist/docs/components/licensePlate.md +412 -0
- package/dist/docs/components/lineCharts.md +2014 -0
- package/dist/docs/components/listMenu.md +392 -0
- package/dist/docs/components/loadMore.md +219 -0
- package/dist/docs/components/mainNavigation.md +129 -0
- package/dist/docs/components/mapCircle.md +93 -0
- package/dist/docs/components/mapCluster.md +337 -0
- package/dist/docs/components/mapContext.md +284 -0
- package/dist/docs/components/mapDraggableMarker.md +150 -0
- package/dist/docs/components/mapGettingStarted.md +39 -0
- package/dist/docs/components/mapInfoBubble.md +135 -0
- package/dist/docs/components/mapLayerGroup.md +94 -0
- package/dist/docs/components/mapMarker.md +1814 -0
- package/dist/docs/components/mapPolygon.md +959 -0
- package/dist/docs/components/mapRoute.md +3816 -0
- package/dist/docs/components/mapRouteGenerator.md +6 -0
- package/dist/docs/components/mapSettings.md +1040 -0
- package/dist/docs/components/mapUtils.md +132 -0
- package/dist/docs/components/multiselects.md +1921 -0
- package/dist/docs/components/noData.md +210 -0
- package/dist/docs/components/notifications.md +314 -0
- package/dist/docs/components/numbercontrol.md +706 -0
- package/dist/docs/components/onboarding.md +297 -0
- package/dist/docs/components/page.md +241 -0
- package/dist/docs/components/pager.md +133 -0
- package/dist/docs/components/pieCharts.md +1284 -0
- package/dist/docs/components/popover.md +222 -0
- package/dist/docs/components/position.md +50 -0
- package/dist/docs/components/radialBarCharts.md +3663 -0
- package/dist/docs/components/radiobutton.md +1271 -0
- package/dist/docs/components/releaseNotes.md +135 -0
- package/dist/docs/components/resizer.md +162 -0
- package/dist/docs/components/responsiveColumnStripe.md +435 -0
- package/dist/docs/components/responsiveVideo.md +71 -0
- package/dist/docs/components/rioglyph.md +331 -0
- package/dist/docs/components/rules.md +965 -0
- package/dist/docs/components/saveableInput.md +1721 -0
- package/dist/docs/components/selects.md +1993 -0
- package/dist/docs/components/sidebar.md +332 -0
- package/dist/docs/components/sliders.md +376 -0
- package/dist/docs/components/smoothScrollbars.md +1180 -0
- package/dist/docs/components/spinners.md +506 -0
- package/dist/docs/components/states.md +1176 -0
- package/dist/docs/components/statsWidgets.md +636 -0
- package/dist/docs/components/statusBar.md +644 -0
- package/dist/docs/components/stepButton.md +61 -0
- package/dist/docs/components/steppedProgressBars.md +1064 -0
- package/dist/docs/components/subNavigation.md +470 -0
- package/dist/docs/components/supportMarker.md +115 -0
- package/dist/docs/components/svgImage.md +248 -0
- package/dist/docs/components/switch.md +554 -0
- package/dist/docs/components/tables.md +8 -0
- package/dist/docs/components/tagManager.md +476 -0
- package/dist/docs/components/tags.md +785 -0
- package/dist/docs/components/teaser.md +925 -0
- package/dist/docs/components/timeline.md +514 -0
- package/dist/docs/components/timepicker.md +262 -0
- package/dist/docs/components/toggleButton.md +178 -0
- package/dist/docs/components/tooltip.md +454 -0
- package/dist/docs/components/virtualList.md +483 -0
- package/dist/docs/foundations.md +20901 -0
- package/dist/docs/start/changelog.md +439 -0
- package/dist/docs/start/goodtoknow.md +14 -0
- package/dist/docs/start/guidelines/color-combinations.md +678 -0
- package/dist/docs/start/guidelines/custom-css.md +42 -0
- package/dist/docs/start/guidelines/custom-rioglyph.md +35 -0
- package/dist/docs/start/guidelines/formatting.md +587 -0
- package/dist/docs/start/guidelines/iframe.md +323 -0
- package/dist/docs/start/guidelines/obfuscate-data.md +30 -0
- package/dist/docs/start/guidelines/print-css.md +36 -0
- package/dist/docs/start/guidelines/spinner.md +710 -0
- package/dist/docs/start/guidelines/supported-browsers.md +10 -0
- package/dist/docs/start/guidelines/writing.md +635 -0
- package/dist/docs/start/howto.md +187 -0
- package/dist/docs/start/intro.md +43 -0
- package/dist/docs/start/responsiveness.md +98 -0
- package/dist/docs/templates/common-table.md +1111 -0
- package/dist/docs/templates/detail-views.md +942 -0
- package/dist/docs/templates/expandable-details.md +228 -0
- package/dist/docs/templates/feature-cards.md +549 -0
- package/dist/docs/templates/form-summary.md +199 -0
- package/dist/docs/templates/form-toggle.md +367 -0
- package/dist/docs/templates/list-blocks.md +1021 -0
- package/dist/docs/templates/loading-progress.md +109 -0
- package/dist/docs/templates/options-panel.md +152 -0
- package/dist/docs/templates/panel-variants.md +164 -0
- package/dist/docs/templates/progress-cards.md +607 -0
- package/dist/docs/templates/progress-success.md +142 -0
- package/dist/docs/templates/settings-form.md +434 -0
- package/dist/docs/templates/stats-blocks.md +1381 -0
- package/dist/docs/templates/table-panel.md +184 -0
- package/dist/docs/templates/table-row-animation.md +317 -0
- package/dist/docs/templates/usage-cards.md +227 -0
- package/dist/docs/utilities/deviceUtils.md +123 -0
- package/dist/docs/utilities/featureToggles.md +90 -0
- package/dist/docs/utilities/fuelTypeUtils.md +186 -0
- package/dist/docs/utilities/routeUtils.md +138 -0
- package/dist/docs/utilities/useAfterMount.md +66 -0
- package/dist/docs/utilities/useAutoAnimate.md +193 -0
- package/dist/docs/utilities/useAverage.md +95 -0
- package/dist/docs/utilities/useClickOutside.md +61 -0
- package/dist/docs/utilities/useClipboard.md +93 -0
- package/dist/docs/utilities/useCount.md +178 -0
- package/dist/docs/utilities/useDarkMode.md +49 -0
- package/dist/docs/utilities/useDebugInfo.md +126 -0
- package/dist/docs/utilities/useEffectOnce.md +58 -0
- package/dist/docs/utilities/useElapsedTime.md +58 -0
- package/dist/docs/utilities/useElementSize.md +71 -0
- package/dist/docs/utilities/useEsc.md +58 -0
- package/dist/docs/utilities/useEvent.md +64 -0
- package/dist/docs/utilities/useFocusTrap.md +85 -0
- package/dist/docs/utilities/useFullscreen.md +198 -0
- package/dist/docs/utilities/useHover.md +55 -0
- package/dist/docs/utilities/useIncomingPostMessages.md +237 -0
- package/dist/docs/utilities/useInterval.md +85 -0
- package/dist/docs/utilities/useIsFocusWithin.md +114 -0
- package/dist/docs/utilities/useKey.md +151 -0
- package/dist/docs/utilities/useLocalStorage.md +91 -0
- package/dist/docs/utilities/useLocationSuggestions.md +114 -0
- package/dist/docs/utilities/useMax.md +62 -0
- package/dist/docs/utilities/useMin.md +78 -0
- package/dist/docs/utilities/useMutationObserver.md +113 -0
- package/dist/docs/utilities/useOnScreen.md +138 -0
- package/dist/docs/utilities/useOnlineStatus.md +49 -0
- package/dist/docs/utilities/usePostMessage.md +117 -0
- package/dist/docs/utilities/usePostMessageSender.md +257 -0
- package/dist/docs/utilities/usePrevious.md +101 -0
- package/dist/docs/utilities/useResizeObserver.md +151 -0
- package/dist/docs/utilities/useScrollPosition.md +252 -0
- package/dist/docs/utilities/useSearch.md +228 -0
- package/dist/docs/utilities/useSorting.md +389 -0
- package/dist/docs/utilities/useStateWithValidation.md +83 -0
- package/dist/docs/utilities/useSum.md +155 -0
- package/dist/docs/utilities/useTableExport.md +404 -0
- package/dist/docs/utilities/useTableSelection.md +1120 -0
- package/dist/docs/utilities/useTimeout.md +55 -0
- package/dist/docs/utilities/useToggle.md +115 -0
- package/dist/docs/utilities/useWindowResize.md +70 -0
- package/dist/index.mjs +271 -0
- package/dist/search-synonyms.json +134 -0
- package/dist/version.json +4 -0
- package/package.json +23 -19
- package/bin/uikit-mcp.mjs +0 -23
- package/data/pages/Components/components/accentbar.json +0 -207
- package/data/pages/Components/components/activity.json +0 -87
- package/data/pages/Components/components/animatednumber.json +0 -99
- package/data/pages/Components/components/animations.json +0 -87
- package/data/pages/Components/components/appheader.json +0 -291
- package/data/pages/Components/components/applayout.json +0 -1198
- package/data/pages/Components/components/appnavigationbar.json +0 -327
- package/data/pages/Components/components/areacharts.json +0 -563
- package/data/pages/Components/components/aspectratioplaceholder.json +0 -75
- package/data/pages/Components/components/assettree.json +0 -3080
- package/data/pages/Components/components/autosuggests.json +0 -710
- package/data/pages/Components/components/avatar.json +0 -157
- package/data/pages/Components/components/banner.json +0 -599
- package/data/pages/Components/components/barcharts.json +0 -1507
- package/data/pages/Components/components/barlist.json +0 -223
- package/data/pages/Components/components/basicmap.json +0 -68
- package/data/pages/Components/components/bottomsheet.json +0 -601
- package/data/pages/Components/components/button.json +0 -583
- package/data/pages/Components/components/buttontoolbar.json +0 -63
- package/data/pages/Components/components/calendarstripe.json +0 -235
- package/data/pages/Components/components/card.json +0 -69
- package/data/pages/Components/components/carousel.json +0 -39
- package/data/pages/Components/components/chartcolors.json +0 -34
- package/data/pages/Components/components/chartsgettingstarted.json +0 -32
- package/data/pages/Components/components/chat.json +0 -39
- package/data/pages/Components/components/checkbox.json +0 -847
- package/data/pages/Components/components/clearableinput.json +0 -789
- package/data/pages/Components/components/collapse.json +0 -175
- package/data/pages/Components/components/composedcharts.json +0 -159
- package/data/pages/Components/components/contentloader.json +0 -233
- package/data/pages/Components/components/datatabs.json +0 -680
- package/data/pages/Components/components/datepickers.json +0 -287
- package/data/pages/Components/components/dialogs.json +0 -1492
- package/data/pages/Components/components/divider.json +0 -93
- package/data/pages/Components/components/dropdowns.json +0 -936
- package/data/pages/Components/components/editablecontent.json +0 -1117
- package/data/pages/Components/components/expander.json +0 -377
- package/data/pages/Components/components/fade.json +0 -403
- package/data/pages/Components/components/fadeexpander.json +0 -75
- package/data/pages/Components/components/fadeup.json +0 -127
- package/data/pages/Components/components/feedback.json +0 -269
- package/data/pages/Components/components/filepickers.json +0 -269
- package/data/pages/Components/components/formlabel.json +0 -115
- package/data/pages/Components/components/fullscreenmap.json +0 -22
- package/data/pages/Components/components/groupeditemlist.json +0 -323
- package/data/pages/Components/components/iconlist.json +0 -45
- package/data/pages/Components/components/imagepreloader.json +0 -81
- package/data/pages/Components/components/labeledelement.json +0 -75
- package/data/pages/Components/components/licenseplate.json +0 -69
- package/data/pages/Components/components/linecharts.json +0 -987
- package/data/pages/Components/components/listmenu.json +0 -313
- package/data/pages/Components/components/loadmore.json +0 -175
- package/data/pages/Components/components/mainnavigation.json +0 -39
- package/data/pages/Components/components/mapcircle.json +0 -34
- package/data/pages/Components/components/mapcluster.json +0 -51
- package/data/pages/Components/components/mapcontext.json +0 -105
- package/data/pages/Components/components/mapdraggablemarker.json +0 -34
- package/data/pages/Components/components/mapgettingstarted.json +0 -27
- package/data/pages/Components/components/mapgroup.json +0 -1198
- package/data/pages/Components/components/mapinfobubble.json +0 -34
- package/data/pages/Components/components/maplayergroup.json +0 -34
- package/data/pages/Components/components/mapmarker.json +0 -700
- package/data/pages/Components/components/mappolygon.json +0 -45
- package/data/pages/Components/components/maproute.json +0 -623
- package/data/pages/Components/components/maproutegenerator.json +0 -16
- package/data/pages/Components/components/mapsettings.json +0 -51
- package/data/pages/Components/components/maputils.json +0 -34
- package/data/pages/Components/components/multiselects.json +0 -1451
- package/data/pages/Components/components/nodata.json +0 -139
- package/data/pages/Components/components/notifications.json +0 -65
- package/data/pages/Components/components/numbercontrol.json +0 -301
- package/data/pages/Components/components/onboarding.json +0 -302
- package/data/pages/Components/components/page.json +0 -197
- package/data/pages/Components/components/pager.json +0 -93
- package/data/pages/Components/components/piecharts.json +0 -731
- package/data/pages/Components/components/popover.json +0 -251
- package/data/pages/Components/components/position.json +0 -69
- package/data/pages/Components/components/radialbarcharts.json +0 -1304
- package/data/pages/Components/components/radiobutton.json +0 -1105
- package/data/pages/Components/components/releasenotes.json +0 -44
- package/data/pages/Components/components/resizer.json +0 -93
- package/data/pages/Components/components/responsivecolumnstripe.json +0 -123
- package/data/pages/Components/components/responsivevideo.json +0 -75
- package/data/pages/Components/components/rioglyph.json +0 -93
- package/data/pages/Components/components/rules.json +0 -410
- package/data/pages/Components/components/saveableinput.json +0 -703
- package/data/pages/Components/components/selects.json +0 -701
- package/data/pages/Components/components/sidebar.json +0 -243
- package/data/pages/Components/components/sliders.json +0 -235
- package/data/pages/Components/components/smoothscrollbars.json +0 -335
- package/data/pages/Components/components/spinners.json +0 -343
- package/data/pages/Components/components/states.json +0 -1705
- package/data/pages/Components/components/statswidgets.json +0 -314
- package/data/pages/Components/components/statusbar.json +0 -177
- package/data/pages/Components/components/stepbutton.json +0 -57
- package/data/pages/Components/components/steppedprogressbars.json +0 -417
- package/data/pages/Components/components/subnavigation.json +0 -107
- package/data/pages/Components/components/supportmarker.json +0 -45
- package/data/pages/Components/components/svgimage.json +0 -81
- package/data/pages/Components/components/switch.json +0 -111
- package/data/pages/Components/components/tables.json +0 -144
- package/data/pages/Components/components/tagmanager.json +0 -86
- package/data/pages/Components/components/tags.json +0 -146
- package/data/pages/Components/components/teaser.json +0 -188
- package/data/pages/Components/components/timeline.json +0 -45
- package/data/pages/Components/components/timepicker.json +0 -163
- package/data/pages/Components/components/togglebutton.json +0 -247
- package/data/pages/Components/components/tooltip.json +0 -270
- package/data/pages/Components/components/virtuallist.json +0 -175
- package/data/pages/Foundations/foundations.json +0 -2475
- package/data/pages/Getting-started/start/changelog.json +0 -22
- package/data/pages/Getting-started/start/goodtoknow.json +0 -32
- package/data/pages/Getting-started/start/guidelines/color-combinations.json +0 -58
- package/data/pages/Getting-started/start/guidelines/custom-css.json +0 -27
- package/data/pages/Getting-started/start/guidelines/custom-rioglyph.json +0 -22
- package/data/pages/Getting-started/start/guidelines/formatting.json +0 -97
- package/data/pages/Getting-started/start/guidelines/iframe.json +0 -93
- package/data/pages/Getting-started/start/guidelines/obfuscate-data.json +0 -22
- package/data/pages/Getting-started/start/guidelines/print-css.json +0 -37
- package/data/pages/Getting-started/start/guidelines/spinner.json +0 -144
- package/data/pages/Getting-started/start/guidelines/supported-browsers.json +0 -22
- package/data/pages/Getting-started/start/guidelines/writing.json +0 -242
- package/data/pages/Getting-started/start/howto.json +0 -72
- package/data/pages/Getting-started/start/intro.json +0 -37
- package/data/pages/Getting-started/start/responsiveness.json +0 -52
- package/data/pages/Templates/templates/common-table.json +0 -39
- package/data/pages/Templates/templates/detail-views.json +0 -71
- package/data/pages/Templates/templates/expandable-details.json +0 -39
- package/data/pages/Templates/templates/feature-cards.json +0 -103
- package/data/pages/Templates/templates/form-summary.json +0 -39
- package/data/pages/Templates/templates/form-toggle.json +0 -39
- package/data/pages/Templates/templates/list-blocks.json +0 -119
- package/data/pages/Templates/templates/loading-progress.json +0 -39
- package/data/pages/Templates/templates/options-panel.json +0 -39
- package/data/pages/Templates/templates/panel-variants.json +0 -39
- package/data/pages/Templates/templates/progress-cards.json +0 -71
- package/data/pages/Templates/templates/progress-success.json +0 -39
- package/data/pages/Templates/templates/settings-form.json +0 -39
- package/data/pages/Templates/templates/stats-blocks.json +0 -135
- package/data/pages/Templates/templates/table-panel.json +0 -39
- package/data/pages/Templates/templates/table-row-animation.json +0 -39
- package/data/pages/Templates/templates/usage-cards.json +0 -39
- package/data/pages/Utilities/utilities/deviceutils.json +0 -39
- package/data/pages/Utilities/utilities/featuretoggles.json +0 -42
- package/data/pages/Utilities/utilities/fueltypeutils.json +0 -118
- package/data/pages/Utilities/utilities/routeutils.json +0 -34
- package/data/pages/Utilities/utilities/useaftermount.json +0 -63
- package/data/pages/Utilities/utilities/useaverage.json +0 -86
- package/data/pages/Utilities/utilities/useclickoutside.json +0 -69
- package/data/pages/Utilities/utilities/useclipboard.json +0 -57
- package/data/pages/Utilities/utilities/usecount.json +0 -92
- package/data/pages/Utilities/utilities/usedarkmode.json +0 -50
- package/data/pages/Utilities/utilities/usedebuginfo.json +0 -63
- package/data/pages/Utilities/utilities/useeffectonce.json +0 -57
- package/data/pages/Utilities/utilities/useelapsedtime.json +0 -57
- package/data/pages/Utilities/utilities/useelementsize.json +0 -63
- package/data/pages/Utilities/utilities/useesc.json +0 -57
- package/data/pages/Utilities/utilities/useevent.json +0 -75
- package/data/pages/Utilities/utilities/usefocustrap.json +0 -57
- package/data/pages/Utilities/utilities/usefullscreen.json +0 -197
- package/data/pages/Utilities/utilities/usehover.json +0 -57
- package/data/pages/Utilities/utilities/useinterval.json +0 -63
- package/data/pages/Utilities/utilities/useisfocuswithin.json +0 -75
- package/data/pages/Utilities/utilities/usekey.json +0 -75
- package/data/pages/Utilities/utilities/uselocalstorage.json +0 -69
- package/data/pages/Utilities/utilities/uselocationsuggestions.json +0 -110
- package/data/pages/Utilities/utilities/usemax.json +0 -86
- package/data/pages/Utilities/utilities/usemin.json +0 -86
- package/data/pages/Utilities/utilities/usemutationobserver.json +0 -69
- package/data/pages/Utilities/utilities/useonlinestatus.json +0 -39
- package/data/pages/Utilities/utilities/useonscreen.json +0 -63
- package/data/pages/Utilities/utilities/usepostmessage.json +0 -80
- package/data/pages/Utilities/utilities/useprevious.json +0 -63
- package/data/pages/Utilities/utilities/useresizeobserver.json +0 -65
- package/data/pages/Utilities/utilities/usescrollposition.json +0 -103
- package/data/pages/Utilities/utilities/usesearch.json +0 -197
- package/data/pages/Utilities/utilities/usesorting.json +0 -139
- package/data/pages/Utilities/utilities/usestatewithvalidation.json +0 -69
- package/data/pages/Utilities/utilities/usesum.json +0 -86
- package/data/pages/Utilities/utilities/usetableexport.json +0 -87
- package/data/pages/Utilities/utilities/usetableselection.json +0 -311
- package/data/pages/Utilities/utilities/usetimeout.json +0 -63
- package/data/pages/Utilities/utilities/usetoggle.json +0 -75
- package/data/pages/Utilities/utilities/usewindowresize.json +0 -63
- package/data/version.json +0 -4
- package/docs/content-schema.md +0 -147
- package/docs/navigation-inventory.json +0 -1310
- package/docs/search-synonyms.json +0 -43
- package/server/index.mjs +0 -268
- package/server/lib/load-docs.mjs +0 -48
- package/server/lib/normalise-doc.mjs +0 -220
- package/server/lib/render-markdown.mjs +0 -82
- package/server/lib/search-index.mjs +0 -49
- package/server/lib/types.js +0 -99
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
# useIsFocusWithin
|
|
2
|
+
|
|
3
|
+
*Category:* Utilities
|
|
4
|
+
*Section:* DOM behavior hooks
|
|
5
|
+
*Source:* https://uikit.developers.rio.cloud/#utilities/useIsFocusWithin
|
|
6
|
+
*Captured:* 2025-12-12T12:39:40.989Z
|
|
7
|
+
|
|
8
|
+
The useIsFocusWithin hook allows you to detect whether the focus is currently within a specific element or any of its children. This is useful for managing focus-based behavior like showing or hiding UI elements, styling active areas, or triggering accessibility behavior.
|
|
9
|
+
|
|
10
|
+
## useIsFocusWithin
|
|
11
|
+
|
|
12
|
+
It provides a boolean flag isFocusedWithin and a ref you can attach to any container. Optionally, you can provide callbacks for when focus enters or leaves the container, and configure a delay for blur detection.
|
|
13
|
+
|
|
14
|
+
### Example: Example 1
|
|
15
|
+
|
|
16
|
+
Click inside or outside
|
|
17
|
+
Simple input 1
|
|
18
|
+
|
|
19
|
+
Simple input 2
|
|
20
|
+
|
|
21
|
+
Focus is outside the block
|
|
22
|
+
|
|
23
|
+
#### Summary
|
|
24
|
+
|
|
25
|
+
Click inside or outside
|
|
26
|
+
Simple input 1
|
|
27
|
+
|
|
28
|
+
Simple input 2
|
|
29
|
+
|
|
30
|
+
Focus is outside the block
|
|
31
|
+
|
|
32
|
+
#### React (tsx)
|
|
33
|
+
|
|
34
|
+
```tsx
|
|
35
|
+
import ClearableInput from '@rio-cloud/rio-uikit/ClearableInput';
|
|
36
|
+
import FormLabel from '@rio-cloud/rio-uikit/FormLabel';
|
|
37
|
+
import useIsFocusWithin from '@rio-cloud/rio-uikit/useIsFocusWithin';
|
|
38
|
+
|
|
39
|
+
export default () => {
|
|
40
|
+
const { ref, isFocusedWithin } = useIsFocusWithin<HTMLDivElement>({
|
|
41
|
+
onFocusWithin: () => console.log('Entered component'),
|
|
42
|
+
onBlurWithin: () => console.log('Left component'),
|
|
43
|
+
delay: 100, // optional
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
return (
|
|
47
|
+
<div>
|
|
48
|
+
<div
|
|
49
|
+
ref={ref}
|
|
50
|
+
className={`max-width-400 padding-20 border ${isFocusedWithin ? 'border-color-primary' : 'border-color-lighter'} rounded bg-lightest`}
|
|
51
|
+
>
|
|
52
|
+
<div className='text-medium text-size-16 text-color-darker margin-bottom-15'>
|
|
53
|
+
Click inside or outside
|
|
54
|
+
</div>
|
|
55
|
+
<div>
|
|
56
|
+
<FormLabel htmlFor='simpleInput1'>Simple input 1</FormLabel>
|
|
57
|
+
<ClearableInput id='simpleInput1' />
|
|
58
|
+
</div>
|
|
59
|
+
<div>
|
|
60
|
+
<FormLabel htmlFor='simpleInput2'>Simple input 2</FormLabel>
|
|
61
|
+
<ClearableInput id='simpleInput2' />
|
|
62
|
+
</div>
|
|
63
|
+
</div>
|
|
64
|
+
<div className='margin-top-15 text-size-16 text-italic text-color-darker'>
|
|
65
|
+
{isFocusedWithin ? 'Focus is within the block' : 'Focus is outside the block'}
|
|
66
|
+
</div>
|
|
67
|
+
</div>
|
|
68
|
+
);
|
|
69
|
+
};
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
#### HTML (html)
|
|
73
|
+
|
|
74
|
+
```html
|
|
75
|
+
<div>
|
|
76
|
+
<div class="max-width-400 padding-20 border border-color-lighter rounded bg-lightest">
|
|
77
|
+
<div class="text-medium text-size-16 text-color-darker margin-bottom-15">Click inside or outside</div>
|
|
78
|
+
<div>
|
|
79
|
+
<label for="simpleInput1" class="display-inline-block">
|
|
80
|
+
<span>Simple input 1</span>
|
|
81
|
+
</label>
|
|
82
|
+
<div class="ClearableInput input-group">
|
|
83
|
+
<input id="simpleInput1" class="form-control" type="text" tabindex="0" value="">
|
|
84
|
+
<span class="clearButton hide">
|
|
85
|
+
<span class="clearButtonIcon rioglyph rioglyph-remove-sign">
|
|
86
|
+
</span>
|
|
87
|
+
</span>
|
|
88
|
+
</div>
|
|
89
|
+
</div>
|
|
90
|
+
<div>
|
|
91
|
+
<label for="simpleInput2" class="display-inline-block">
|
|
92
|
+
<span>Simple input 2</span>
|
|
93
|
+
</label>
|
|
94
|
+
<div class="ClearableInput input-group">
|
|
95
|
+
<input id="simpleInput2" class="form-control" type="text" tabindex="0" value="">
|
|
96
|
+
<span class="clearButton hide">
|
|
97
|
+
<span class="clearButtonIcon rioglyph rioglyph-remove-sign">
|
|
98
|
+
</span>
|
|
99
|
+
</span>
|
|
100
|
+
</div>
|
|
101
|
+
</div>
|
|
102
|
+
</div>
|
|
103
|
+
<div class="margin-top-15 text-size-16 text-italic text-color-darker">Focus is outside the block</div>
|
|
104
|
+
</div>
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
#### Props
|
|
108
|
+
|
|
109
|
+
| Name | Type | Default | Description |
|
|
110
|
+
| --- | --- | --- | --- |
|
|
111
|
+
| ref | React.RefObject<HTMLElement> | — | Optional ref to an existing DOM element. If not provided, the hook will return its own ref. |
|
|
112
|
+
| onFocusWithin | Function | — | Callback triggered when focus enters the target element or any of its children. |
|
|
113
|
+
| onBlurWithin | Function | — | Callback triggered when focus leaves the target element and all of its children. |
|
|
114
|
+
| delay | number | — | Optional delay in milliseconds before calling onBlurWithin. Useful when focus quickly shifts inside the container. |
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
# useKey
|
|
2
|
+
|
|
3
|
+
*Category:* Utilities
|
|
4
|
+
*Section:* DOM behavior hooks
|
|
5
|
+
*Source:* https://uikit.developers.rio.cloud/#utilities/useKey
|
|
6
|
+
*Captured:* 2025-12-12T12:39:41.372Z
|
|
7
|
+
|
|
8
|
+
The useKey hook allows to easily detect key events. It can be used in two ways, either to specify a specific key to listen for or with a callback to listen for all keys.
|
|
9
|
+
|
|
10
|
+
## useKey
|
|
11
|
+
|
|
12
|
+
### Example: Example 1
|
|
13
|
+
|
|
14
|
+
Key
|
|
15
|
+
|
|
16
|
+
pressed
|
|
17
|
+
|
|
18
|
+
Key
|
|
19
|
+
|
|
20
|
+
pressed
|
|
21
|
+
|
|
22
|
+
Key
|
|
23
|
+
|
|
24
|
+
pressed
|
|
25
|
+
|
|
26
|
+
#### Summary
|
|
27
|
+
|
|
28
|
+
Key
|
|
29
|
+
|
|
30
|
+
pressed
|
|
31
|
+
|
|
32
|
+
Key
|
|
33
|
+
|
|
34
|
+
pressed
|
|
35
|
+
|
|
36
|
+
Key
|
|
37
|
+
|
|
38
|
+
pressed
|
|
39
|
+
|
|
40
|
+
#### React (tsx)
|
|
41
|
+
|
|
42
|
+
```tsx
|
|
43
|
+
import { useState } from 'react';
|
|
44
|
+
|
|
45
|
+
import useKey from '@rio-cloud/rio-uikit/useKey';
|
|
46
|
+
|
|
47
|
+
const Usage1 = () => {
|
|
48
|
+
const [pressedKey, setPressedKey] = useState(' ');
|
|
49
|
+
|
|
50
|
+
// Use the useKey hook to listen for any key presses
|
|
51
|
+
useKey(event => {
|
|
52
|
+
console.log(event);
|
|
53
|
+
event.key === ' ' ? setPressedKey(event.code) : setPressedKey(event.key);
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
return (
|
|
57
|
+
<div className='display-flex justify-content-center align-items-center height-50'>
|
|
58
|
+
<div className='margin-right-10'>Key</div>
|
|
59
|
+
<div className='label label-default'>{pressedKey}</div>
|
|
60
|
+
<div className='margin-left-10'>pressed</div>
|
|
61
|
+
</div>
|
|
62
|
+
);
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
const Usage2 = () => {
|
|
66
|
+
const [pressedKey, setPressedKey] = useState(' ');
|
|
67
|
+
|
|
68
|
+
// Use the useKey hook to listen for any key presses with optional event types
|
|
69
|
+
useKey(
|
|
70
|
+
event => {
|
|
71
|
+
if (event.shiftKey) {
|
|
72
|
+
setPressedKey(`Shift + ${event.key}`);
|
|
73
|
+
} else if (event.metaKey) {
|
|
74
|
+
setPressedKey(`Cmd + ${event.key}`);
|
|
75
|
+
} else if (event.key === ' ') {
|
|
76
|
+
setPressedKey(event.code);
|
|
77
|
+
} else {
|
|
78
|
+
setPressedKey(event.key);
|
|
79
|
+
}
|
|
80
|
+
},
|
|
81
|
+
['keyup'] // Listens for the 'keyup' event
|
|
82
|
+
);
|
|
83
|
+
|
|
84
|
+
return (
|
|
85
|
+
<div className='display-flex justify-content-center align-items-center height-50'>
|
|
86
|
+
<div className='margin-right-10'>Key</div>
|
|
87
|
+
<div className='label label-default'>{pressedKey}</div>
|
|
88
|
+
<div className='margin-left-10'>pressed</div>
|
|
89
|
+
</div>
|
|
90
|
+
);
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
const Usage3 = () => {
|
|
94
|
+
const [pressedKey, setPressedKey] = useState(' ');
|
|
95
|
+
|
|
96
|
+
// Use the useKey hook to listen for the Enter key press
|
|
97
|
+
useKey('Enter', event => {
|
|
98
|
+
console.log('Enter key pressed');
|
|
99
|
+
setPressedKey('Enter');
|
|
100
|
+
});
|
|
101
|
+
|
|
102
|
+
return (
|
|
103
|
+
<div className='display-flex justify-content-center align-items-center height-50'>
|
|
104
|
+
<div className='margin-right-10'>Key</div>
|
|
105
|
+
<div className='label label-default'>{pressedKey}</div>
|
|
106
|
+
<div className='margin-left-10'>pressed</div>
|
|
107
|
+
</div>
|
|
108
|
+
);
|
|
109
|
+
};
|
|
110
|
+
|
|
111
|
+
export default () => {
|
|
112
|
+
return (
|
|
113
|
+
<div className='display-flex flex-column justify-content-center align-items-center'>
|
|
114
|
+
<Usage1 />
|
|
115
|
+
<Usage2 />
|
|
116
|
+
<Usage3 />
|
|
117
|
+
</div>
|
|
118
|
+
);
|
|
119
|
+
};
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
#### HTML (html)
|
|
123
|
+
|
|
124
|
+
```html
|
|
125
|
+
<div class="display-flex flex-column justify-content-center align-items-center">
|
|
126
|
+
<div class="display-flex justify-content-center align-items-center height-50">
|
|
127
|
+
<div class="margin-right-10">Key</div>
|
|
128
|
+
<div class="label label-default"> </div>
|
|
129
|
+
<div class="margin-left-10">pressed</div>
|
|
130
|
+
</div>
|
|
131
|
+
<div class="display-flex justify-content-center align-items-center height-50">
|
|
132
|
+
<div class="margin-right-10">Key</div>
|
|
133
|
+
<div class="label label-default"> </div>
|
|
134
|
+
<div class="margin-left-10">pressed</div>
|
|
135
|
+
</div>
|
|
136
|
+
<div class="display-flex justify-content-center align-items-center height-50">
|
|
137
|
+
<div class="margin-right-10">Key</div>
|
|
138
|
+
<div class="label label-default"> </div>
|
|
139
|
+
<div class="margin-left-10">pressed</div>
|
|
140
|
+
</div>
|
|
141
|
+
</div>
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
#### Props
|
|
145
|
+
|
|
146
|
+
| Name | Type | Default | Description |
|
|
147
|
+
| --- | --- | --- | --- |
|
|
148
|
+
| keyOrCallback | string \| ((event: KeyboardEvent) => void) | — | Either a key string (e.g., "Enter") or a callback function |
|
|
149
|
+
| callbackOrEventTypes | (event: KeyboardEvent) => void \| KeyboardEventType[] | — | If the first argument is a key, this should be the callback function. If the first argument is a callback, this is an optional array of event types. |
|
|
150
|
+
| eventTypesOrNode | KeyboardEventType[] \| Document | [keydown] | If the first argument is a key, this should be an array of event types. If the first argument is a callback, this is the node (defaults to document). |
|
|
151
|
+
| node | Node | document | Optional DOM node to attach the event listener to (defaults to document). |
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
# useLocalStorage / useSessionStorage
|
|
2
|
+
|
|
3
|
+
*Category:* Utilities
|
|
4
|
+
*Section:* Browser & device hooks
|
|
5
|
+
*Source:* https://uikit.developers.rio.cloud/#utilities/useLocalStorage
|
|
6
|
+
*Captured:* 2025-12-12T12:39:44.986Z
|
|
7
|
+
|
|
8
|
+
The useLocalStorage and the useSessionStorage hook allows to save custom data in the respective storage locations.
|
|
9
|
+
|
|
10
|
+
## useLocalStorage / useSessionStorage
|
|
11
|
+
|
|
12
|
+
### Example: Example 1
|
|
13
|
+
|
|
14
|
+
Tom - 26
|
|
15
|
+
{
|
|
16
|
+
"enableBuyOption": true
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
Set NameSet AgeRemove NameRemove AgeToggle Settings
|
|
20
|
+
|
|
21
|
+
#### Summary
|
|
22
|
+
|
|
23
|
+
Tom - 26
|
|
24
|
+
{
|
|
25
|
+
"enableBuyOption": true
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
Set NameSet AgeRemove NameRemove AgeToggle Settings
|
|
29
|
+
|
|
30
|
+
#### React (tsx)
|
|
31
|
+
|
|
32
|
+
```tsx
|
|
33
|
+
import Button from '@rio-cloud/rio-uikit/Button';
|
|
34
|
+
import useLocalStorage from '@rio-cloud/rio-uikit/useLocalStorage';
|
|
35
|
+
import useSessionStorage from '@rio-cloud/rio-uikit/useSessionStorage';
|
|
36
|
+
|
|
37
|
+
export default () => {
|
|
38
|
+
const [name, setName, removeName] = useSessionStorage('name', 'Tom');
|
|
39
|
+
|
|
40
|
+
const [age, setAge, removeAge] = useLocalStorage('age', 26);
|
|
41
|
+
const [settings, setSettings] = useLocalStorage('uikit.demo.settings', { enableBuyOption: true });
|
|
42
|
+
|
|
43
|
+
return (
|
|
44
|
+
<div>
|
|
45
|
+
<div className='margin-bottom-15'>
|
|
46
|
+
<div>
|
|
47
|
+
{name} - {age}
|
|
48
|
+
</div>
|
|
49
|
+
<div>{JSON.stringify(settings, null, 1)}</div>
|
|
50
|
+
</div>
|
|
51
|
+
<div className='btn-toolbar'>
|
|
52
|
+
<Button onClick={() => setName('John')}>Set Name</Button>
|
|
53
|
+
<Button onClick={() => setAge(40)}>Set Age</Button>
|
|
54
|
+
<Button onClick={removeName}>Remove Name</Button>
|
|
55
|
+
<Button onClick={removeAge}>Remove Age</Button>
|
|
56
|
+
<Button onClick={() => setSettings({ ...settings, enableBuyOption: !settings?.enableBuyOption })}>
|
|
57
|
+
Toggle Settings
|
|
58
|
+
</Button>
|
|
59
|
+
</div>
|
|
60
|
+
</div>
|
|
61
|
+
);
|
|
62
|
+
};
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
#### HTML (html)
|
|
66
|
+
|
|
67
|
+
```html
|
|
68
|
+
<div>
|
|
69
|
+
<div class="margin-bottom-15">
|
|
70
|
+
<div>Tom - 26</div>
|
|
71
|
+
<div>{
|
|
72
|
+
"enableBuyOption": true
|
|
73
|
+
}</div>
|
|
74
|
+
</div>
|
|
75
|
+
<div class="btn-toolbar">
|
|
76
|
+
<button type="button" class="btn btn-default btn-component" tabindex="0">Set Name</button>
|
|
77
|
+
<button type="button" class="btn btn-default btn-component" tabindex="0">Set Age</button>
|
|
78
|
+
<button type="button" class="btn btn-default btn-component" tabindex="0">Remove Name</button>
|
|
79
|
+
<button type="button" class="btn btn-default btn-component" tabindex="0">Remove Age</button>
|
|
80
|
+
<button type="button" class="btn btn-default btn-component" tabindex="0">Toggle Settings</button>
|
|
81
|
+
</div>
|
|
82
|
+
</div>
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
#### Props
|
|
86
|
+
|
|
87
|
+
| Name | Type | Default | Description |
|
|
88
|
+
| --- | --- | --- | --- |
|
|
89
|
+
| key | string | — | The key used for storing and retrieving values from the storage. |
|
|
90
|
+
| defaultValue | any | — | The initial default value to be stored. If passed a function, it gets executed. |
|
|
91
|
+
| [value, setValue, removeValue] | [any, Function, Function] | — | Returns the stored value and two functions for setting and removing the value from the storage. |
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
# useLocationSuggestions
|
|
2
|
+
|
|
3
|
+
*Category:* Utilities
|
|
4
|
+
*Section:* UI state & input hooks
|
|
5
|
+
*Source:* https://uikit.developers.rio.cloud/#utilities/useLocationSuggestions
|
|
6
|
+
*Captured:* 2025-12-12T12:39:47.391Z
|
|
7
|
+
|
|
8
|
+
The useLocationSuggestions hook allows to use a side effect after the component has been mounted and rendered. The effect will not be triggered on mount and only when the dependencies change.
|
|
9
|
+
|
|
10
|
+
## useLocationSuggestions
|
|
11
|
+
|
|
12
|
+
### Example: Example 1
|
|
13
|
+
|
|
14
|
+
Here map location search
|
|
15
|
+
|
|
16
|
+
#### Summary
|
|
17
|
+
|
|
18
|
+
Here map location search
|
|
19
|
+
|
|
20
|
+
#### React (tsx)
|
|
21
|
+
|
|
22
|
+
```tsx
|
|
23
|
+
import { useState } from 'react';
|
|
24
|
+
|
|
25
|
+
import { UIKIT_DEMO_CREDENTIALS_ARE_NOT_ALLOWED_IN_PROD_ENVIRONMENT } from '../../components/map/uikit_demo_credentials';
|
|
26
|
+
import AutoSuggest, { type AutoSuggestSuggestion } from '@rio-cloud/rio-uikit/AutoSuggest';
|
|
27
|
+
import FormLabel from '@rio-cloud/rio-uikit/FormLabel';
|
|
28
|
+
import useLocationSuggestions from '@rio-cloud/rio-uikit/useLocationSuggestions';
|
|
29
|
+
|
|
30
|
+
export default () => {
|
|
31
|
+
const [searchValue, setSearchValue] = useState('');
|
|
32
|
+
|
|
33
|
+
const { suggestions, loading, error } = useLocationSuggestions(searchValue, {
|
|
34
|
+
apiKey: UIKIT_DEMO_CREDENTIALS_ARE_NOT_ALLOWED_IN_PROD_ENVIRONMENT.apikey,
|
|
35
|
+
limit: 20, // optional, but has to be between 5...20
|
|
36
|
+
lang: 'de-DE', // optional
|
|
37
|
+
// ... Add any additional options dynamically. See API documentation - https://www.here.com/docs/bundle/geocoding-and-search-api-v7-api-reference/page/index.html#/paths/~1autocomplete/get
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
const handleSuggestionsFetchRequested = (result: { value: string }) => {
|
|
41
|
+
setSearchValue(result.value);
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
const renderSuggestion = (suggestion: AutoSuggestSuggestion) => <span>{suggestion.label}</span>;
|
|
45
|
+
|
|
46
|
+
const inputProps = {
|
|
47
|
+
icon: 'rioglyph rioglyph-search',
|
|
48
|
+
placeholder: 'Search for location',
|
|
49
|
+
value: searchValue,
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
return (
|
|
53
|
+
<div className='max-width-600'>
|
|
54
|
+
<FormLabel htmlFor='locationAutosuggest'>Here map location search</FormLabel>
|
|
55
|
+
<AutoSuggest
|
|
56
|
+
id='locationAutosuggest'
|
|
57
|
+
inputProps={inputProps}
|
|
58
|
+
suggestions={suggestions}
|
|
59
|
+
onSuggestionsFetchRequested={handleSuggestionsFetchRequested}
|
|
60
|
+
renderSuggestion={renderSuggestion}
|
|
61
|
+
isLoading={loading}
|
|
62
|
+
openOnFocus={false}
|
|
63
|
+
/>
|
|
64
|
+
{error && <div>{error.message}</div>}
|
|
65
|
+
</div>
|
|
66
|
+
);
|
|
67
|
+
};
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
#### HTML (html)
|
|
71
|
+
|
|
72
|
+
```html
|
|
73
|
+
<div class="max-width-600">
|
|
74
|
+
<label for="locationAutosuggest" class="display-inline-block">
|
|
75
|
+
<span>Here map location search</span>
|
|
76
|
+
</label>
|
|
77
|
+
<div class="AutoSuggest dropdown">
|
|
78
|
+
<div class="input-group width-100pct">
|
|
79
|
+
<span class="input-group-addon">
|
|
80
|
+
<span class="rioglyph rioglyph rioglyph-search" aria-hidden="true">
|
|
81
|
+
</span>
|
|
82
|
+
</span>
|
|
83
|
+
<div class="ClearableInput input-group">
|
|
84
|
+
<input id="locationAutosuggest" placeholder="Search for location" class="form-control" autocomplete="off" type="text" tabindex="0" value="">
|
|
85
|
+
<span class="clearButton hide">
|
|
86
|
+
<span class="clearButtonIcon rioglyph rioglyph-remove-sign">
|
|
87
|
+
</span>
|
|
88
|
+
</span>
|
|
89
|
+
</div>
|
|
90
|
+
</div>
|
|
91
|
+
</div>
|
|
92
|
+
</div>
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
#### Props
|
|
96
|
+
|
|
97
|
+
| Name | Type | Default | Description |
|
|
98
|
+
| --- | --- | --- | --- |
|
|
99
|
+
| query | string | — | The user input string to search for location suggestions. |
|
|
100
|
+
| options | object | — | Optional configuration for the hook. |
|
|
101
|
+
| └apiKey | string | — | Your HERE Maps API key. Defaults to "YOUR_API_KEY" if not provided. |
|
|
102
|
+
| └fetchUrl | string | — | Optional override for the autocomplete endpoint URL. Defaults to HERE Maps API URL. |
|
|
103
|
+
| └limit | number | 5 | Optional value to define the result limit (between 5 and 20). |
|
|
104
|
+
| └...additionalOptions | unknown | — | Pass in any additional option for the fetch API. |
|
|
105
|
+
|
|
106
|
+
#### Props: Returns
|
|
107
|
+
|
|
108
|
+
### Returns
|
|
109
|
+
|
|
110
|
+
| Name | Type | Default | Description |
|
|
111
|
+
| --- | --- | --- | --- |
|
|
112
|
+
| suggestions | LocationSuggestion[] | — | An array of suggestion objects containing an id and label. |
|
|
113
|
+
| loading | boolean | — | Indicates whether the suggestions are currently being fetched. |
|
|
114
|
+
| error | Error \| null | — | Error object if the fetch fails, otherwise null. |
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# useMax
|
|
2
|
+
|
|
3
|
+
*Category:* Utilities
|
|
4
|
+
*Section:* Data aggregation hooks
|
|
5
|
+
*Source:* https://uikit.developers.rio.cloud/#utilities/useMax
|
|
6
|
+
*Captured:* 2025-12-12T12:39:49.073Z
|
|
7
|
+
|
|
8
|
+
Returns the largest valid numeric value found at the specified path within a list of objects. Supports localized formats and gracefully skips unparsable values.
|
|
9
|
+
|
|
10
|
+
## useMax
|
|
11
|
+
|
|
12
|
+
### Example: Example 1
|
|
13
|
+
|
|
14
|
+
Longest duration: 1440 min
|
|
15
|
+
|
|
16
|
+
#### Summary
|
|
17
|
+
|
|
18
|
+
Longest duration: 1440 min
|
|
19
|
+
|
|
20
|
+
#### React (tsx)
|
|
21
|
+
|
|
22
|
+
```tsx
|
|
23
|
+
import useMax from '@rio-cloud/rio-uikit/useMax';
|
|
24
|
+
|
|
25
|
+
const deliveries = [
|
|
26
|
+
{ shipment: { duration: 90 } }, // in minutes
|
|
27
|
+
{ shipment: { duration: 150 } },
|
|
28
|
+
{ shipment: { duration: 1440 } },
|
|
29
|
+
{ shipment: { duration: 180 } },
|
|
30
|
+
];
|
|
31
|
+
|
|
32
|
+
export default () => {
|
|
33
|
+
const maxDuration = useMax(deliveries, 'shipment.duration');
|
|
34
|
+
|
|
35
|
+
return <div>Longest duration: {maxDuration} min</div>;
|
|
36
|
+
};
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
#### HTML (html)
|
|
40
|
+
|
|
41
|
+
```html
|
|
42
|
+
<div>Longest duration: 1440 min</div>
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
#### Props: Options for the `useMax` hook
|
|
46
|
+
|
|
47
|
+
### Options for the `useMax` hook
|
|
48
|
+
|
|
49
|
+
| Name | Type | Default | Description |
|
|
50
|
+
| --- | --- | --- | --- |
|
|
51
|
+
| items | unknown[] | — | The array of objects to evaluate. |
|
|
52
|
+
| path | string | — | Dot-separated path to the numeric value inside each object. |
|
|
53
|
+
| options | object | — | Optional configuration for number parsing. |
|
|
54
|
+
| └locale | string | "en-GB" | Locale string used for parsing localized number formats. Affects grouping and decimal separator interpretation. |
|
|
55
|
+
|
|
56
|
+
#### Props: Return value of the `useMax` hook
|
|
57
|
+
|
|
58
|
+
### Return value of the `useMax` hook
|
|
59
|
+
|
|
60
|
+
| Name | Type | Default | Description |
|
|
61
|
+
| --- | --- | --- | --- |
|
|
62
|
+
| value | number | — | The largest valid numeric value found at the given path, or 0 if none could be parsed. |
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# useMin
|
|
2
|
+
|
|
3
|
+
*Category:* Utilities
|
|
4
|
+
*Section:* Data aggregation hooks
|
|
5
|
+
*Source:* https://uikit.developers.rio.cloud/#utilities/useMin
|
|
6
|
+
*Captured:* 2025-12-12T12:39:49.637Z
|
|
7
|
+
|
|
8
|
+
Returns the smallest valid numeric value found at the specified path within a list of objects. Handles localized number strings and safely ignores invalid values.
|
|
9
|
+
|
|
10
|
+
## useMin
|
|
11
|
+
|
|
12
|
+
### Example: Example 1
|
|
13
|
+
|
|
14
|
+
Lowest shipment value: 850 €
|
|
15
|
+
|
|
16
|
+
#### Summary
|
|
17
|
+
|
|
18
|
+
Lowest shipment value: 850 €
|
|
19
|
+
|
|
20
|
+
#### React (tsx)
|
|
21
|
+
|
|
22
|
+
```tsx
|
|
23
|
+
import { FormattedNumber, IntlProvider } from 'react-intl';
|
|
24
|
+
import useMin from '@rio-cloud/rio-uikit/useMin';
|
|
25
|
+
|
|
26
|
+
const deliveries = [
|
|
27
|
+
{ shipment: { value: '2.345,50 €' } },
|
|
28
|
+
{ shipment: { value: '1.000,75 €' } },
|
|
29
|
+
{ shipment: { value: 850 } },
|
|
30
|
+
{ shipment: { value: '2.000' } },
|
|
31
|
+
];
|
|
32
|
+
|
|
33
|
+
export default () => {
|
|
34
|
+
const minValue = useMin(deliveries, 'shipment.value', {
|
|
35
|
+
locale: 'de-DE',
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
return (
|
|
39
|
+
<IntlProvider locale='de-DE'>
|
|
40
|
+
<div>
|
|
41
|
+
Lowest shipment value:{' '}
|
|
42
|
+
<FormattedNumber
|
|
43
|
+
value={minValue}
|
|
44
|
+
style='currency'
|
|
45
|
+
currency='EUR'
|
|
46
|
+
minimumFractionDigits={0}
|
|
47
|
+
maximumFractionDigits={0}
|
|
48
|
+
/>
|
|
49
|
+
</div>
|
|
50
|
+
</IntlProvider>
|
|
51
|
+
);
|
|
52
|
+
};
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
#### HTML (html)
|
|
56
|
+
|
|
57
|
+
```html
|
|
58
|
+
<div>Lowest shipment value: 850 €</div>
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
#### Props: Options for the `useMin` hook
|
|
62
|
+
|
|
63
|
+
### Options for the `useMin` hook
|
|
64
|
+
|
|
65
|
+
| Name | Type | Default | Description |
|
|
66
|
+
| --- | --- | --- | --- |
|
|
67
|
+
| items | unknown[] | — | The array of objects to evaluate. |
|
|
68
|
+
| path | string | — | Dot-separated path to the numeric value inside each object. |
|
|
69
|
+
| options | object | — | Optional configuration for number parsing. |
|
|
70
|
+
| └locale | string | "en-GB" | Locale string used for parsing localized number formats. Affects grouping and decimal separator interpretation. |
|
|
71
|
+
|
|
72
|
+
#### Props: Return value of the `useMin` hook
|
|
73
|
+
|
|
74
|
+
### Return value of the `useMin` hook
|
|
75
|
+
|
|
76
|
+
| Name | Type | Default | Description |
|
|
77
|
+
| --- | --- | --- | --- |
|
|
78
|
+
| value | number | — | The smallest valid numeric value found at the given path, or 0 if none could be parsed. |
|