@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,178 @@
|
|
|
1
|
+
# useCount
|
|
2
|
+
|
|
3
|
+
*Category:* Utilities
|
|
4
|
+
*Section:* Data aggregation hooks
|
|
5
|
+
*Source:* https://uikit.developers.rio.cloud/#utilities/useCount
|
|
6
|
+
*Captured:* 2025-12-12T12:39:48.738Z
|
|
7
|
+
|
|
8
|
+
useCount is a utility hook for counting how many objects in a list contain a specific value or match a custom condition at a given property path. It supports exact value matching (e.g. true, 0, 'PENDING') or predicate-based logic using a match function. By default, all values that are not null or undefined are counted.
|
|
9
|
+
|
|
10
|
+
## useCount
|
|
11
|
+
|
|
12
|
+
### Example: Example 1
|
|
13
|
+
|
|
14
|
+
Deliveries marked as delivered:3
|
|
15
|
+
Deliveries marked as not delivered:2
|
|
16
|
+
Deliveries with status "PENDING":2
|
|
17
|
+
Deliveries with quantity 0:2
|
|
18
|
+
Deliveries with a written note:2
|
|
19
|
+
Deliveries with at least one item:3
|
|
20
|
+
|
|
21
|
+
#### Summary
|
|
22
|
+
|
|
23
|
+
Deliveries marked as delivered:3
|
|
24
|
+
Deliveries marked as not delivered:2
|
|
25
|
+
Deliveries with status "PENDING":2
|
|
26
|
+
Deliveries with quantity 0:2
|
|
27
|
+
Deliveries with a written note:2
|
|
28
|
+
Deliveries with at least one item:3
|
|
29
|
+
|
|
30
|
+
#### React (tsx)
|
|
31
|
+
|
|
32
|
+
```tsx
|
|
33
|
+
import useCount from '@rio-cloud/rio-uikit/useCount';
|
|
34
|
+
|
|
35
|
+
const deliveries = [
|
|
36
|
+
{
|
|
37
|
+
id: 'D-001',
|
|
38
|
+
delivered: true,
|
|
39
|
+
status: 'PENDING',
|
|
40
|
+
quantity: 0,
|
|
41
|
+
notes: '',
|
|
42
|
+
items: [],
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
id: 'D-002',
|
|
46
|
+
delivered: false,
|
|
47
|
+
status: 'CONFIRMED',
|
|
48
|
+
quantity: 20,
|
|
49
|
+
notes: 'Customer confirmed by phone.',
|
|
50
|
+
items: [1, 2],
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
id: 'D-003',
|
|
54
|
+
delivered: true,
|
|
55
|
+
status: 'CANCELLED',
|
|
56
|
+
quantity: 0,
|
|
57
|
+
notes: null,
|
|
58
|
+
items: [],
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
id: 'D-004',
|
|
62
|
+
delivered: false,
|
|
63
|
+
status: 'PENDING',
|
|
64
|
+
quantity: 10,
|
|
65
|
+
notes: 'Leave at front desk.',
|
|
66
|
+
items: [1],
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
id: 'D-005',
|
|
70
|
+
delivered: true,
|
|
71
|
+
status: 'CONFIRMED',
|
|
72
|
+
quantity: 5,
|
|
73
|
+
notes: '',
|
|
74
|
+
items: [1, 2, 3],
|
|
75
|
+
},
|
|
76
|
+
];
|
|
77
|
+
|
|
78
|
+
export default () => {
|
|
79
|
+
const countDelivered = useCount(deliveries, 'delivered', { equals: true });
|
|
80
|
+
const countUndelivered = useCount(deliveries, 'delivered', { equals: false });
|
|
81
|
+
|
|
82
|
+
const countPendingStatus = useCount(deliveries, 'status', { equals: 'PENDING' });
|
|
83
|
+
|
|
84
|
+
const countQuantityZero = useCount(deliveries, 'quantity', { equals: 0 });
|
|
85
|
+
|
|
86
|
+
const countWithNotes = useCount(deliveries, 'notes', {
|
|
87
|
+
match: val => typeof val === 'string' && val.trim().length > 0,
|
|
88
|
+
});
|
|
89
|
+
|
|
90
|
+
const countWithItems = useCount(deliveries, 'items', {
|
|
91
|
+
match: val => Array.isArray(val) && val.length > 0,
|
|
92
|
+
});
|
|
93
|
+
|
|
94
|
+
return (
|
|
95
|
+
<table>
|
|
96
|
+
<tbody>
|
|
97
|
+
<tr>
|
|
98
|
+
<td>Deliveries marked as delivered:</td>
|
|
99
|
+
<td className='text-right width-20'>{countDelivered}</td>
|
|
100
|
+
</tr>
|
|
101
|
+
<tr>
|
|
102
|
+
<td>Deliveries marked as not delivered:</td>
|
|
103
|
+
<td className='text-right width-20'>{countUndelivered}</td>
|
|
104
|
+
</tr>
|
|
105
|
+
<tr>
|
|
106
|
+
<td>Deliveries with status "PENDING":</td>
|
|
107
|
+
<td className='text-right width-20'>{countPendingStatus}</td>
|
|
108
|
+
</tr>
|
|
109
|
+
<tr>
|
|
110
|
+
<td>Deliveries with quantity 0:</td>
|
|
111
|
+
<td className='text-right width-20'>{countQuantityZero}</td>
|
|
112
|
+
</tr>
|
|
113
|
+
<tr>
|
|
114
|
+
<td>Deliveries with a written note:</td>
|
|
115
|
+
<td className='text-right width-20'>{countWithNotes}</td>
|
|
116
|
+
</tr>
|
|
117
|
+
<tr>
|
|
118
|
+
<td>Deliveries with at least one item:</td>
|
|
119
|
+
<td className='text-right width-20'>{countWithItems}</td>
|
|
120
|
+
</tr>
|
|
121
|
+
</tbody>
|
|
122
|
+
</table>
|
|
123
|
+
);
|
|
124
|
+
};
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
#### HTML (html)
|
|
128
|
+
|
|
129
|
+
```html
|
|
130
|
+
<table>
|
|
131
|
+
<tbody>
|
|
132
|
+
<tr>
|
|
133
|
+
<td>Deliveries marked as delivered:</td>
|
|
134
|
+
<td class="text-right width-20">3</td>
|
|
135
|
+
</tr>
|
|
136
|
+
<tr>
|
|
137
|
+
<td>Deliveries marked as not delivered:</td>
|
|
138
|
+
<td class="text-right width-20">2</td>
|
|
139
|
+
</tr>
|
|
140
|
+
<tr>
|
|
141
|
+
<td>Deliveries with status "PENDING":</td>
|
|
142
|
+
<td class="text-right width-20">2</td>
|
|
143
|
+
</tr>
|
|
144
|
+
<tr>
|
|
145
|
+
<td>Deliveries with quantity 0:</td>
|
|
146
|
+
<td class="text-right width-20">2</td>
|
|
147
|
+
</tr>
|
|
148
|
+
<tr>
|
|
149
|
+
<td>Deliveries with a written note:</td>
|
|
150
|
+
<td class="text-right width-20">2</td>
|
|
151
|
+
</tr>
|
|
152
|
+
<tr>
|
|
153
|
+
<td>Deliveries with at least one item:</td>
|
|
154
|
+
<td class="text-right width-20">3</td>
|
|
155
|
+
</tr>
|
|
156
|
+
</tbody>
|
|
157
|
+
</table>
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
#### Props: Options for the `useCount` hook
|
|
161
|
+
|
|
162
|
+
### Options for the `useCount` hook
|
|
163
|
+
|
|
164
|
+
| Name | Type | Default | Description |
|
|
165
|
+
| --- | --- | --- | --- |
|
|
166
|
+
| items | unknown[] | — | The array of objects to evaluate. |
|
|
167
|
+
| path | string | — | Dot-separated path to the field that should be checked in each object. |
|
|
168
|
+
| options | object | — | Optional configuration for counting logic. |
|
|
169
|
+
| └equals | unknown | — | The exact value to match against. Only values that strictly equal this will be counted. Ignored if `match` is defined. |
|
|
170
|
+
| └match | (value: unknown) => boolean | — | Custom predicate function that determines whether a value should be counted. Overrides `equals` if defined. |
|
|
171
|
+
|
|
172
|
+
#### Props: Return value of the `useCount` hook
|
|
173
|
+
|
|
174
|
+
### Return value of the `useCount` hook
|
|
175
|
+
|
|
176
|
+
| Name | Type | Default | Description |
|
|
177
|
+
| --- | --- | --- | --- |
|
|
178
|
+
| count | number | — | The number of objects where the target value matches the given condition. |
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# useDarkMode
|
|
2
|
+
|
|
3
|
+
*Category:* Utilities
|
|
4
|
+
*Section:* Browser & device hooks
|
|
5
|
+
*Source:* https://uikit.developers.rio.cloud/#utilities/useDarkMode
|
|
6
|
+
*Captured:* 2025-12-12T12:39:44.755Z
|
|
7
|
+
|
|
8
|
+
The useDarkMode hook enables you to listen for the color scheme change and react accordingly.
|
|
9
|
+
|
|
10
|
+
## useDarkMode
|
|
11
|
+
|
|
12
|
+
### Example: Example 1
|
|
13
|
+
|
|
14
|
+
isDarkMode:false
|
|
15
|
+
|
|
16
|
+
#### Summary
|
|
17
|
+
|
|
18
|
+
isDarkMode:false
|
|
19
|
+
|
|
20
|
+
#### React (tsx)
|
|
21
|
+
|
|
22
|
+
```tsx
|
|
23
|
+
import useDarkMode from '@rio-cloud/rio-uikit/useDarkMode';
|
|
24
|
+
|
|
25
|
+
export default () => {
|
|
26
|
+
const isDarkMode = useDarkMode();
|
|
27
|
+
|
|
28
|
+
return (
|
|
29
|
+
<div className='display-flex flex-column justify-content-center align-items-center'>
|
|
30
|
+
<label>isDarkMode:</label>
|
|
31
|
+
<div className='margin-15'>{`${isDarkMode}`}</div>
|
|
32
|
+
</div>
|
|
33
|
+
);
|
|
34
|
+
};
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
#### HTML (html)
|
|
38
|
+
|
|
39
|
+
```html
|
|
40
|
+
<div class="display-flex flex-column justify-content-center align-items-center">
|
|
41
|
+
<label>isDarkMode:</label>
|
|
42
|
+
<div class="margin-15">false</div>
|
|
43
|
+
</div>
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
#### Props
|
|
47
|
+
|
|
48
|
+
| Name | Type | Default | Description |
|
|
49
|
+
| --- | --- | --- | --- |
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
# useDebugInfo
|
|
2
|
+
|
|
3
|
+
*Category:* Utilities
|
|
4
|
+
*Section:* UI state & input hooks
|
|
5
|
+
*Source:* https://uikit.developers.rio.cloud/#utilities/useDebugInfo
|
|
6
|
+
*Captured:* 2025-12-12T12:39:46.321Z
|
|
7
|
+
|
|
8
|
+
The useDebugInfo hook allows to return detailed information about render count, render time and changed component props and also to print these information to the console.
|
|
9
|
+
|
|
10
|
+
## useDebugInfo
|
|
11
|
+
|
|
12
|
+
### Example: Example 1
|
|
13
|
+
|
|
14
|
+
Component props:isToggled: false
|
|
15
|
+
count: 0
|
|
16
|
+
|
|
17
|
+
Debug Info:{
|
|
18
|
+
"renderCount": 1,
|
|
19
|
+
"changedProps": {},
|
|
20
|
+
"timeSinceLastRender": 0,
|
|
21
|
+
"lastRenderTimestamp": 1765543185577
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
ToggleIncrement
|
|
25
|
+
|
|
26
|
+
#### Summary
|
|
27
|
+
|
|
28
|
+
Component props:isToggled: false
|
|
29
|
+
count: 0
|
|
30
|
+
|
|
31
|
+
Debug Info:{
|
|
32
|
+
"renderCount": 1,
|
|
33
|
+
"changedProps": {},
|
|
34
|
+
"timeSinceLastRender": 0,
|
|
35
|
+
"lastRenderTimestamp": 1765543185577
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
ToggleIncrement
|
|
39
|
+
|
|
40
|
+
#### React (tsx)
|
|
41
|
+
|
|
42
|
+
```tsx
|
|
43
|
+
import { useState } from 'react';
|
|
44
|
+
|
|
45
|
+
import Button from '@rio-cloud/rio-uikit/Button';
|
|
46
|
+
import useDebugInfo from '@rio-cloud/rio-uikit/useDebugInfo';
|
|
47
|
+
|
|
48
|
+
const ChildComponent = (props: { isToggled?: boolean; count?: number }) => {
|
|
49
|
+
const { isToggled, count } = props;
|
|
50
|
+
|
|
51
|
+
const info = useDebugInfo('ChildComponent', props);
|
|
52
|
+
|
|
53
|
+
return (
|
|
54
|
+
<div className='margin-bottom-25 padding-15 border'>
|
|
55
|
+
<div>
|
|
56
|
+
<label>Component props:</label>
|
|
57
|
+
<div>
|
|
58
|
+
<b>isToggled: </b>
|
|
59
|
+
{isToggled?.toString()}
|
|
60
|
+
</div>
|
|
61
|
+
<div>
|
|
62
|
+
<b>count: </b>
|
|
63
|
+
{count}
|
|
64
|
+
</div>
|
|
65
|
+
</div>
|
|
66
|
+
<div className='margin-top-20'>
|
|
67
|
+
<label>Debug Info:</label>
|
|
68
|
+
<pre className='bg-none text-size-12 text-color-darker'>{JSON.stringify(info, null, 1)}</pre>
|
|
69
|
+
</div>
|
|
70
|
+
</div>
|
|
71
|
+
);
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
export default () => {
|
|
75
|
+
const [toggle, setToggle] = useState(false);
|
|
76
|
+
const [count, setCount] = useState(0);
|
|
77
|
+
|
|
78
|
+
return (
|
|
79
|
+
<div>
|
|
80
|
+
<ChildComponent isToggled={toggle} count={count} />
|
|
81
|
+
<div className='btn-toolbar'>
|
|
82
|
+
<Button onClick={() => setToggle(!toggle)}>Toggle</Button>
|
|
83
|
+
<Button onClick={() => setCount(prevCount => prevCount + 1)}>Increment</Button>
|
|
84
|
+
</div>
|
|
85
|
+
</div>
|
|
86
|
+
);
|
|
87
|
+
};
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
#### HTML (html)
|
|
91
|
+
|
|
92
|
+
```html
|
|
93
|
+
<div>
|
|
94
|
+
<div class="margin-bottom-25 padding-15 border">
|
|
95
|
+
<div>
|
|
96
|
+
<label>Component props:</label>
|
|
97
|
+
<div>
|
|
98
|
+
<b>isToggled: </b>false
|
|
99
|
+
</div>
|
|
100
|
+
<div>
|
|
101
|
+
<b>count: </b>0
|
|
102
|
+
</div>
|
|
103
|
+
</div>
|
|
104
|
+
<div class="margin-top-20">
|
|
105
|
+
<label>Debug Info:</label>
|
|
106
|
+
<pre class="bg-none text-size-12 text-color-darker">{
|
|
107
|
+
"renderCount": 1,
|
|
108
|
+
"changedProps": {},
|
|
109
|
+
"timeSinceLastRender": 0,
|
|
110
|
+
"lastRenderTimestamp": 1765543185577
|
|
111
|
+
}</pre>
|
|
112
|
+
</div>
|
|
113
|
+
</div>
|
|
114
|
+
<div class="btn-toolbar">
|
|
115
|
+
<button type="button" class="btn btn-default btn-component" tabindex="0">Toggle</button>
|
|
116
|
+
<button type="button" class="btn btn-default btn-component" tabindex="0">Increment</button>
|
|
117
|
+
</div>
|
|
118
|
+
</div>
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
#### Props
|
|
122
|
+
|
|
123
|
+
| Name | Type | Default | Description |
|
|
124
|
+
| --- | --- | --- | --- |
|
|
125
|
+
| component | String | — | The name of the component that will be printed out. |
|
|
126
|
+
| props | Object | — | The component props that will be checked for changed values. |
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# useEffectOnce
|
|
2
|
+
|
|
3
|
+
*Category:* Utilities
|
|
4
|
+
*Section:* Lifecycle & execution hooks
|
|
5
|
+
*Source:* https://uikit.developers.rio.cloud/#utilities/useEffectOnce
|
|
6
|
+
*Captured:* 2025-12-12T12:39:36.402Z
|
|
7
|
+
|
|
8
|
+
The useEffectOnce hook allows to use a side effect only once after the component has been mounted.
|
|
9
|
+
|
|
10
|
+
## useEffectOnce
|
|
11
|
+
|
|
12
|
+
### Example: Example 1
|
|
13
|
+
|
|
14
|
+
0
|
|
15
|
+
Increment
|
|
16
|
+
|
|
17
|
+
#### Summary
|
|
18
|
+
|
|
19
|
+
0
|
|
20
|
+
Increment
|
|
21
|
+
|
|
22
|
+
#### React (tsx)
|
|
23
|
+
|
|
24
|
+
```tsx
|
|
25
|
+
import { useState } from 'react';
|
|
26
|
+
|
|
27
|
+
import useEffectOnce from '@rio-cloud/rio-uikit/useEffectOnce';
|
|
28
|
+
|
|
29
|
+
export default () => {
|
|
30
|
+
const [count, setCount] = useState(0);
|
|
31
|
+
|
|
32
|
+
useEffectOnce(() => alert('Hi'));
|
|
33
|
+
|
|
34
|
+
return (
|
|
35
|
+
<div className='display-flex flex-column justify-content-center align-items-center'>
|
|
36
|
+
<div className='margin-15'>{count}</div>
|
|
37
|
+
<button className='btn btn-default' type='button' onClick={() => setCount(value => value + 1)}>
|
|
38
|
+
Increment
|
|
39
|
+
</button>
|
|
40
|
+
</div>
|
|
41
|
+
);
|
|
42
|
+
};
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
#### HTML (html)
|
|
46
|
+
|
|
47
|
+
```html
|
|
48
|
+
<div class="display-flex flex-column justify-content-center align-items-center">
|
|
49
|
+
<div class="margin-15">0</div>
|
|
50
|
+
<button class="btn btn-default" type="button">Increment</button>
|
|
51
|
+
</div>
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
#### Props
|
|
55
|
+
|
|
56
|
+
| Name | Type | Default | Description |
|
|
57
|
+
| --- | --- | --- | --- |
|
|
58
|
+
| callback | Function | — | The effect callback function to be used after the component has been mounted. |
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# useElapsedTime
|
|
2
|
+
|
|
3
|
+
*Category:* Utilities
|
|
4
|
+
*Section:* Lifecycle & execution hooks
|
|
5
|
+
*Source:* https://uikit.developers.rio.cloud/#utilities/useElapsedTime
|
|
6
|
+
*Captured:* 2025-12-12T12:39:36.704Z
|
|
7
|
+
|
|
8
|
+
## useElapsedTime
|
|
9
|
+
|
|
10
|
+
### Example: Example 1
|
|
11
|
+
|
|
12
|
+
Get elapsed timeElapsed time sind mount: 0 ms
|
|
13
|
+
|
|
14
|
+
#### Summary
|
|
15
|
+
|
|
16
|
+
Get elapsed timeElapsed time sind mount: 0 ms
|
|
17
|
+
|
|
18
|
+
#### React (tsx)
|
|
19
|
+
|
|
20
|
+
```tsx
|
|
21
|
+
import { useState } from 'react';
|
|
22
|
+
|
|
23
|
+
import useElapsedTime from '@rio-cloud/rio-uikit/useElapsedTime';
|
|
24
|
+
import Button from '@rio-cloud/rio-uikit/Button';
|
|
25
|
+
|
|
26
|
+
export default () => {
|
|
27
|
+
const [timeValue, setTimeValue] = useState(0);
|
|
28
|
+
|
|
29
|
+
const getElapsedTime = useElapsedTime();
|
|
30
|
+
|
|
31
|
+
const handleClick = () => {
|
|
32
|
+
const elapsedTime = getElapsedTime();
|
|
33
|
+
setTimeValue(elapsedTime);
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
return (
|
|
37
|
+
<div>
|
|
38
|
+
<Button onClick={handleClick}>Get elapsed time</Button>
|
|
39
|
+
<p>Elapsed time sind mount: {timeValue} ms</p>
|
|
40
|
+
</div>
|
|
41
|
+
);
|
|
42
|
+
};
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
#### HTML (html)
|
|
46
|
+
|
|
47
|
+
```html
|
|
48
|
+
<div>
|
|
49
|
+
<button type="button" class="btn btn-default btn-component" tabindex="0">Get elapsed time</button>
|
|
50
|
+
<p>Elapsed time sind mount: 0 ms</p>
|
|
51
|
+
</div>
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
#### Props
|
|
55
|
+
|
|
56
|
+
| Name | Type | Default | Description |
|
|
57
|
+
| --- | --- | --- | --- |
|
|
58
|
+
| startTime | Function | Date.now() | The start time in milliseconds from which to measure the elapsed time. |
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# useElementSize
|
|
2
|
+
|
|
3
|
+
*Category:* Utilities
|
|
4
|
+
*Section:* DOM behavior hooks
|
|
5
|
+
*Source:* https://uikit.developers.rio.cloud/#utilities/useElementSize
|
|
6
|
+
*Captured:* 2025-12-12T12:39:39.353Z
|
|
7
|
+
|
|
8
|
+
The useElementSize hook allows to easily detect an elements dimension.
|
|
9
|
+
|
|
10
|
+
## useElementSize
|
|
11
|
+
|
|
12
|
+
### Example: Example 1
|
|
13
|
+
|
|
14
|
+
Resize box to see it's width updating
|
|
15
|
+
|
|
16
|
+
Width: 50, Height: 50
|
|
17
|
+
|
|
18
|
+
#### Summary
|
|
19
|
+
|
|
20
|
+
Resize box to see it's width updating
|
|
21
|
+
|
|
22
|
+
Width: 50, Height: 50
|
|
23
|
+
|
|
24
|
+
#### React (tsx)
|
|
25
|
+
|
|
26
|
+
```tsx
|
|
27
|
+
import { useState, useRef } from 'react';
|
|
28
|
+
|
|
29
|
+
import useElementSize from '@rio-cloud/rio-uikit/useElementSize';
|
|
30
|
+
import Resizer from '@rio-cloud/rio-uikit/Resizer';
|
|
31
|
+
|
|
32
|
+
export default () => {
|
|
33
|
+
const [boxWidth, setBoxWidth] = useState(50);
|
|
34
|
+
|
|
35
|
+
const elementRef = useRef<HTMLDivElement>(null);
|
|
36
|
+
const [width, height] = useElementSize(elementRef);
|
|
37
|
+
|
|
38
|
+
const handleResize = (diff: number) => setBoxWidth(oldWidth => oldWidth - diff);
|
|
39
|
+
|
|
40
|
+
return (
|
|
41
|
+
<div className='display-flex flex-column justify-content-center align-items-center height-100'>
|
|
42
|
+
<label>Resize box to see it's width updating</label>
|
|
43
|
+
<div className='height-50 bg-info position-relative' style={{ width: boxWidth }} ref={elementRef}>
|
|
44
|
+
<Resizer onResize={handleResize} />
|
|
45
|
+
</div>
|
|
46
|
+
|
|
47
|
+
<div>{`Width: ${width}, Height: ${height}`}</div>
|
|
48
|
+
</div>
|
|
49
|
+
);
|
|
50
|
+
};
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
#### HTML (html)
|
|
54
|
+
|
|
55
|
+
```html
|
|
56
|
+
<div class="display-flex flex-column justify-content-center align-items-center height-100">
|
|
57
|
+
<label>Resize box to see it's width updating</label>
|
|
58
|
+
<div class="height-50 bg-info position-relative" style="width: 50px;">
|
|
59
|
+
<div class="Resizer resize-horizontal resize-right">
|
|
60
|
+
</div>
|
|
61
|
+
</div>
|
|
62
|
+
<div>Width: 50, Height: 50</div>
|
|
63
|
+
</div>
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
#### Props
|
|
67
|
+
|
|
68
|
+
| Name | Type | Default | Description |
|
|
69
|
+
| --- | --- | --- | --- |
|
|
70
|
+
| ref | Function | — | Pass a ref of the target element as parameter to the hook to get its height and width. |
|
|
71
|
+
| [width, height] | Number | — | Returns height and width values of the referenced element. |
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# useEsc
|
|
2
|
+
|
|
3
|
+
*Category:* Utilities
|
|
4
|
+
*Section:* DOM behavior hooks
|
|
5
|
+
*Source:* https://uikit.developers.rio.cloud/#utilities/useEsc
|
|
6
|
+
*Captured:* 2025-12-12T12:39:39.553Z
|
|
7
|
+
|
|
8
|
+
The useEsc hook allows to easily detect keydown events for escape key to to react on. This comes in handy when closing something or aborting some operation on esc.
|
|
9
|
+
|
|
10
|
+
## useEsc
|
|
11
|
+
|
|
12
|
+
### Example: Example 1
|
|
13
|
+
|
|
14
|
+
Press "esc" key
|
|
15
|
+
|
|
16
|
+
#### Summary
|
|
17
|
+
|
|
18
|
+
Press "esc" key
|
|
19
|
+
|
|
20
|
+
#### React (tsx)
|
|
21
|
+
|
|
22
|
+
```tsx
|
|
23
|
+
import { useState } from 'react';
|
|
24
|
+
|
|
25
|
+
import useEsc from '@rio-cloud/rio-uikit/useEsc';
|
|
26
|
+
|
|
27
|
+
export default () => {
|
|
28
|
+
const [log, setLog] = useState('');
|
|
29
|
+
|
|
30
|
+
useEsc(event => {
|
|
31
|
+
console.log(event);
|
|
32
|
+
setLog(`${log}Esc pressed\n`);
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
return (
|
|
36
|
+
<div className='display-flex flex-column justify-content-center align-items-center height-100'>
|
|
37
|
+
<label className='margin-bottom-10'>Press "esc" key</label>
|
|
38
|
+
<textarea className='form-control width-50pct' value={log} readOnly rows={4} />
|
|
39
|
+
</div>
|
|
40
|
+
);
|
|
41
|
+
};
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
#### HTML (html)
|
|
45
|
+
|
|
46
|
+
```html
|
|
47
|
+
<div class="display-flex flex-column justify-content-center align-items-center height-100">
|
|
48
|
+
<label class="margin-bottom-10">Press "esc" key</label>
|
|
49
|
+
<textarea class="form-control width-50pct" readonly="" rows="4">
|
|
50
|
+
</textarea>
|
|
51
|
+
</div>
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
#### Props
|
|
55
|
+
|
|
56
|
+
| Name | Type | Default | Description |
|
|
57
|
+
| --- | --- | --- | --- |
|
|
58
|
+
| callback | Function | — | The callback function to be triggered. It passes the key event as argument. |
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# useEvent
|
|
2
|
+
|
|
3
|
+
*Category:* Utilities
|
|
4
|
+
*Section:* UI state & input hooks
|
|
5
|
+
*Source:* https://uikit.developers.rio.cloud/#utilities/useEvent
|
|
6
|
+
*Captured:* 2025-12-12T12:39:46.735Z
|
|
7
|
+
|
|
8
|
+
The useEvent hook allows to easily detect given events registered on the document.
|
|
9
|
+
|
|
10
|
+
## useEvent
|
|
11
|
+
|
|
12
|
+
### Example: Example 1
|
|
13
|
+
|
|
14
|
+
Mouse position:
|
|
15
|
+
|
|
16
|
+
#### Summary
|
|
17
|
+
|
|
18
|
+
Mouse position:
|
|
19
|
+
|
|
20
|
+
#### React (tsx)
|
|
21
|
+
|
|
22
|
+
```tsx
|
|
23
|
+
import { useState } from 'react';
|
|
24
|
+
import { throttle } from 'es-toolkit/function';
|
|
25
|
+
|
|
26
|
+
import useEvent from '@rio-cloud/rio-uikit/useEvent';
|
|
27
|
+
|
|
28
|
+
const THROTTLE_TIMEOUT_IN_MS = 100;
|
|
29
|
+
|
|
30
|
+
export default () => {
|
|
31
|
+
const [mousePosition, setMousePosition] = useState(' ');
|
|
32
|
+
|
|
33
|
+
const handleMouseMove = throttle(event => {
|
|
34
|
+
setMousePosition(`x: ${event.screenX} - y: ${event.screenY}`);
|
|
35
|
+
}, THROTTLE_TIMEOUT_IN_MS);
|
|
36
|
+
|
|
37
|
+
useEvent('mousemove', handleMouseMove);
|
|
38
|
+
|
|
39
|
+
return (
|
|
40
|
+
<div className='display-flex justify-content-center align-items-center height-50'>
|
|
41
|
+
<div className='margin-right-10'>{'Mouse position: '}</div>
|
|
42
|
+
<div className='label label-default'>{mousePosition}</div>
|
|
43
|
+
</div>
|
|
44
|
+
);
|
|
45
|
+
};
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
#### HTML (html)
|
|
49
|
+
|
|
50
|
+
```html
|
|
51
|
+
<div class="display-flex justify-content-center align-items-center height-50">
|
|
52
|
+
<div class="margin-right-10">Mouse position: </div>
|
|
53
|
+
<div class="label label-default">x: 775 - y: 355</div>
|
|
54
|
+
</div>
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
#### Props
|
|
58
|
+
|
|
59
|
+
| Name | Type | Default | Description |
|
|
60
|
+
| --- | --- | --- | --- |
|
|
61
|
+
| callback | Function | — | The callback function to be triggered. It passes the key event as argument. |
|
|
62
|
+
| eventType | String | — | The event type to listen on. |
|
|
63
|
+
| options | Boolean | false | Flag for event listener options. |
|
|
64
|
+
| target | Node | document | The target the event shall be registered for. Use "window" for "resize" events. |
|