@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,227 @@
|
|
|
1
|
+
# Data usage cards
|
|
2
|
+
|
|
3
|
+
*Category:* Templates
|
|
4
|
+
*Section:* Content
|
|
5
|
+
*Source:* https://uikit.developers.rio.cloud/#templates/usage-cards
|
|
6
|
+
*Captured:* 2025-12-12T12:39:29.731Z
|
|
7
|
+
|
|
8
|
+
## Data usage cards
|
|
9
|
+
|
|
10
|
+
### Example: Example 1
|
|
11
|
+
|
|
12
|
+
Data used for shipment tracking
|
|
13
|
+
|
|
14
|
+
The following data may be used to track shipments across carriers and systems:
|
|
15
|
+
Vehicle ID
|
|
16
|
+
Current location
|
|
17
|
+
Shipment status
|
|
18
|
+
Timestamps
|
|
19
|
+
Driver ID
|
|
20
|
+
Route info
|
|
21
|
+
|
|
22
|
+
Edit shipment settings
|
|
23
|
+
|
|
24
|
+
Data linked to your company profile
|
|
25
|
+
|
|
26
|
+
This information may be associated with your identity or company profile:
|
|
27
|
+
Customer ID
|
|
28
|
+
Delivery address
|
|
29
|
+
Shipping docs
|
|
30
|
+
Usage metrics
|
|
31
|
+
Freight costs
|
|
32
|
+
Other data
|
|
33
|
+
|
|
34
|
+
Edit profile settings
|
|
35
|
+
|
|
36
|
+
#### Summary
|
|
37
|
+
|
|
38
|
+
Data used for shipment tracking
|
|
39
|
+
|
|
40
|
+
The following data may be used to track shipments across carriers and systems:
|
|
41
|
+
Vehicle ID
|
|
42
|
+
Current location
|
|
43
|
+
Shipment status
|
|
44
|
+
Timestamps
|
|
45
|
+
Driver ID
|
|
46
|
+
Route info
|
|
47
|
+
|
|
48
|
+
Edit shipment settings
|
|
49
|
+
|
|
50
|
+
Data linked to your company profile
|
|
51
|
+
|
|
52
|
+
This information may be associated with your identity or company profile:
|
|
53
|
+
Customer ID
|
|
54
|
+
Delivery address
|
|
55
|
+
Shipping docs
|
|
56
|
+
Usage metrics
|
|
57
|
+
Freight costs
|
|
58
|
+
Other data
|
|
59
|
+
|
|
60
|
+
Edit profile settings
|
|
61
|
+
|
|
62
|
+
#### React (tsx)
|
|
63
|
+
|
|
64
|
+
```tsx
|
|
65
|
+
import Button from '@rio-cloud/rio-uikit/Button';
|
|
66
|
+
|
|
67
|
+
export default () => {
|
|
68
|
+
return (
|
|
69
|
+
<div className='max-width-600 margin-auto'>
|
|
70
|
+
<div className='display-grid gap-20 grid-cols-1 grid-cols-2-md'>
|
|
71
|
+
<div className='bg-white rounded border padding-20 display-flex flex-column justify-content-between'>
|
|
72
|
+
<div className='display-flex flex-column gap-5 justify-content-center text-color-darker margin-bottom-25'>
|
|
73
|
+
<span className='rioglyph rioglyph-delivery text-size-h2' />
|
|
74
|
+
<div className='text-size-18 text-bold text-center'>Data used for shipment tracking</div>
|
|
75
|
+
</div>
|
|
76
|
+
<div>
|
|
77
|
+
<div className='text-color-darker text-center margin-bottom-15'>
|
|
78
|
+
The following data may be used to track shipments across carriers and systems:
|
|
79
|
+
</div>
|
|
80
|
+
<div className='display-grid grid-cols-2 gap-10 text-size-14 text-color-darker'>
|
|
81
|
+
<div className='display-flex align-items-center gap-5'>
|
|
82
|
+
<span className='rioglyph rioglyph-truck' /> Vehicle ID
|
|
83
|
+
</div>
|
|
84
|
+
<div className='display-flex align-items-center gap-5'>
|
|
85
|
+
<span className='rioglyph rioglyph-map-marker' /> Current location
|
|
86
|
+
</div>
|
|
87
|
+
<div className='display-flex align-items-center gap-5'>
|
|
88
|
+
<span className='rioglyph rioglyph-archive' /> Shipment status
|
|
89
|
+
</div>
|
|
90
|
+
<div className='display-flex align-items-center gap-5'>
|
|
91
|
+
<span className='rioglyph rioglyph-time' /> Timestamps
|
|
92
|
+
</div>
|
|
93
|
+
<div className='display-flex align-items-center gap-5'>
|
|
94
|
+
<span className='rioglyph rioglyph-user' /> Driver ID
|
|
95
|
+
</div>
|
|
96
|
+
<div className='display-flex align-items-center gap-5'>
|
|
97
|
+
<span className='rioglyph rioglyph-route' /> Route info
|
|
98
|
+
</div>
|
|
99
|
+
</div>
|
|
100
|
+
<Button className='margin-top-25' variant='link' block>
|
|
101
|
+
Edit shipment settings
|
|
102
|
+
</Button>
|
|
103
|
+
</div>
|
|
104
|
+
</div>
|
|
105
|
+
|
|
106
|
+
<div className='bg-white rounded border padding-20 display-flex flex-column justify-content-between'>
|
|
107
|
+
<div className='display-flex flex-column gap-5 justify-content-center text-color-darker margin-bottom-25'>
|
|
108
|
+
<span className='rioglyph rioglyph-user-sign text-size-h2' />
|
|
109
|
+
<div className='text-size-18 text-bold text-center'>Data linked to your company profile</div>
|
|
110
|
+
</div>
|
|
111
|
+
<div>
|
|
112
|
+
<div className='text-color-darker text-center margin-bottom-15'>
|
|
113
|
+
This information may be associated with your identity or company profile:
|
|
114
|
+
</div>
|
|
115
|
+
<div className='display-grid grid-cols-2 gap-10 text-size-14 text-color-darker'>
|
|
116
|
+
<div className='display-flex align-items-center gap-5'>
|
|
117
|
+
<span className='rioglyph rioglyph-user-group' /> Customer ID
|
|
118
|
+
</div>
|
|
119
|
+
<div className='display-flex align-items-center gap-5'>
|
|
120
|
+
<span className='rioglyph rioglyph-map' /> Delivery address
|
|
121
|
+
</div>
|
|
122
|
+
<div className='display-flex align-items-center gap-5'>
|
|
123
|
+
<span className='rioglyph rioglyph-document' /> Shipping docs
|
|
124
|
+
</div>
|
|
125
|
+
<div className='display-flex align-items-center gap-5'>
|
|
126
|
+
<span className='rioglyph rioglyph-stats' /> Usage metrics
|
|
127
|
+
</div>
|
|
128
|
+
<div className='display-flex align-items-center gap-5'>
|
|
129
|
+
<span className='rioglyph rioglyph-cost-efficency' /> Freight costs
|
|
130
|
+
</div>
|
|
131
|
+
<div className='display-flex align-items-center gap-5'>
|
|
132
|
+
<span className='rioglyph rioglyph-info-sign' /> Other data
|
|
133
|
+
</div>
|
|
134
|
+
</div>
|
|
135
|
+
<Button className='margin-top-25' variant='link' block>
|
|
136
|
+
Edit profile settings
|
|
137
|
+
</Button>
|
|
138
|
+
</div>
|
|
139
|
+
</div>
|
|
140
|
+
</div>
|
|
141
|
+
</div>
|
|
142
|
+
);
|
|
143
|
+
};
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
#### HTML (html)
|
|
147
|
+
|
|
148
|
+
```html
|
|
149
|
+
<div class="max-width-600 margin-auto">
|
|
150
|
+
<div class="display-grid gap-20 grid-cols-1 grid-cols-2-md">
|
|
151
|
+
<div class="bg-white rounded border padding-20 display-flex flex-column justify-content-between">
|
|
152
|
+
<div class="display-flex flex-column gap-5 justify-content-center text-color-darker margin-bottom-25">
|
|
153
|
+
<span class="rioglyph rioglyph-delivery text-size-h2">
|
|
154
|
+
</span>
|
|
155
|
+
<div class="text-size-18 text-bold text-center">Data used for shipment tracking</div>
|
|
156
|
+
</div>
|
|
157
|
+
<div>
|
|
158
|
+
<div class="text-color-darker text-center margin-bottom-15">The following data may be used to track shipments across carriers and systems:</div>
|
|
159
|
+
<div class="display-grid grid-cols-2 gap-10 text-size-14 text-color-darker">
|
|
160
|
+
<div class="display-flex align-items-center gap-5">
|
|
161
|
+
<span class="rioglyph rioglyph-truck">
|
|
162
|
+
</span> Vehicle ID
|
|
163
|
+
</div>
|
|
164
|
+
<div class="display-flex align-items-center gap-5">
|
|
165
|
+
<span class="rioglyph rioglyph-map-marker">
|
|
166
|
+
</span> Current location
|
|
167
|
+
</div>
|
|
168
|
+
<div class="display-flex align-items-center gap-5">
|
|
169
|
+
<span class="rioglyph rioglyph-archive">
|
|
170
|
+
</span> Shipment status
|
|
171
|
+
</div>
|
|
172
|
+
<div class="display-flex align-items-center gap-5">
|
|
173
|
+
<span class="rioglyph rioglyph-time">
|
|
174
|
+
</span> Timestamps
|
|
175
|
+
</div>
|
|
176
|
+
<div class="display-flex align-items-center gap-5">
|
|
177
|
+
<span class="rioglyph rioglyph-user">
|
|
178
|
+
</span> Driver ID
|
|
179
|
+
</div>
|
|
180
|
+
<div class="display-flex align-items-center gap-5">
|
|
181
|
+
<span class="rioglyph rioglyph-route">
|
|
182
|
+
</span> Route info
|
|
183
|
+
</div>
|
|
184
|
+
</div>
|
|
185
|
+
<button type="button" class="btn btn-default btn-link btn-block btn-component margin-top-25" tabindex="0">Edit shipment settings</button>
|
|
186
|
+
</div>
|
|
187
|
+
</div>
|
|
188
|
+
<div class="bg-white rounded border padding-20 display-flex flex-column justify-content-between">
|
|
189
|
+
<div class="display-flex flex-column gap-5 justify-content-center text-color-darker margin-bottom-25">
|
|
190
|
+
<span class="rioglyph rioglyph-user-sign text-size-h2">
|
|
191
|
+
</span>
|
|
192
|
+
<div class="text-size-18 text-bold text-center">Data linked to your company profile</div>
|
|
193
|
+
</div>
|
|
194
|
+
<div>
|
|
195
|
+
<div class="text-color-darker text-center margin-bottom-15">This information may be associated with your identity or company profile:</div>
|
|
196
|
+
<div class="display-grid grid-cols-2 gap-10 text-size-14 text-color-darker">
|
|
197
|
+
<div class="display-flex align-items-center gap-5">
|
|
198
|
+
<span class="rioglyph rioglyph-user-group">
|
|
199
|
+
</span> Customer ID
|
|
200
|
+
</div>
|
|
201
|
+
<div class="display-flex align-items-center gap-5">
|
|
202
|
+
<span class="rioglyph rioglyph-map">
|
|
203
|
+
</span> Delivery address
|
|
204
|
+
</div>
|
|
205
|
+
<div class="display-flex align-items-center gap-5">
|
|
206
|
+
<span class="rioglyph rioglyph-document">
|
|
207
|
+
</span> Shipping docs
|
|
208
|
+
</div>
|
|
209
|
+
<div class="display-flex align-items-center gap-5">
|
|
210
|
+
<span class="rioglyph rioglyph-stats">
|
|
211
|
+
</span> Usage metrics
|
|
212
|
+
</div>
|
|
213
|
+
<div class="display-flex align-items-center gap-5">
|
|
214
|
+
<span class="rioglyph rioglyph-cost-efficency">
|
|
215
|
+
</span> Freight costs
|
|
216
|
+
</div>
|
|
217
|
+
<div class="display-flex align-items-center gap-5">
|
|
218
|
+
<span class="rioglyph rioglyph-info-sign">
|
|
219
|
+
</span> Other data
|
|
220
|
+
</div>
|
|
221
|
+
</div>
|
|
222
|
+
<button type="button" class="btn btn-default btn-link btn-block btn-component margin-top-25" tabindex="0">Edit profile settings</button>
|
|
223
|
+
</div>
|
|
224
|
+
</div>
|
|
225
|
+
</div>
|
|
226
|
+
</div>
|
|
227
|
+
```
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
# Device Utils
|
|
2
|
+
|
|
3
|
+
*Category:* Utilities
|
|
4
|
+
*Section:* Helper
|
|
5
|
+
*Source:* https://uikit.developers.rio.cloud/#utilities/deviceUtils
|
|
6
|
+
*Captured:* 2025-12-12T12:39:34.926Z
|
|
7
|
+
|
|
8
|
+
Set of utility functions which helps detecting certain devices or functionality.
|
|
9
|
+
|
|
10
|
+
## Device Utils
|
|
11
|
+
|
|
12
|
+
### Example: Example 1
|
|
13
|
+
|
|
14
|
+
No touch support
|
|
15
|
+
isMobileScreen: false
|
|
16
|
+
isMobile: false
|
|
17
|
+
isDesktop: true
|
|
18
|
+
isRetinaDevice: false
|
|
19
|
+
isMac: true
|
|
20
|
+
Loaded in iFrame: false
|
|
21
|
+
Zoom is: enabled
|
|
22
|
+
Note
|
|
23
|
+
Because Apple does not allow to disable zoom on touch devices, isZoomDisabled has no effect when using iOS.
|
|
24
|
+
|
|
25
|
+
#### Summary
|
|
26
|
+
|
|
27
|
+
No touch support
|
|
28
|
+
isMobileScreen: false
|
|
29
|
+
isMobile: false
|
|
30
|
+
isDesktop: true
|
|
31
|
+
isRetinaDevice: false
|
|
32
|
+
isMac: true
|
|
33
|
+
Loaded in iFrame: false
|
|
34
|
+
Zoom is: enabled
|
|
35
|
+
Note
|
|
36
|
+
Because Apple does not allow to disable zoom on touch devices, isZoomDisabled has no effect when using iOS.
|
|
37
|
+
|
|
38
|
+
#### React (tsx)
|
|
39
|
+
|
|
40
|
+
```tsx
|
|
41
|
+
import { useEffect, useState } from 'react';
|
|
42
|
+
|
|
43
|
+
import { Note } from '../../../components/Note';
|
|
44
|
+
|
|
45
|
+
import {
|
|
46
|
+
hasTouch,
|
|
47
|
+
isMobile,
|
|
48
|
+
isMobileScreen,
|
|
49
|
+
isDesktop,
|
|
50
|
+
isRetinaDevice,
|
|
51
|
+
toggleZoomOnMobile,
|
|
52
|
+
inIframe,
|
|
53
|
+
isMac,
|
|
54
|
+
} from '@rio-cloud/rio-uikit/DeviceUtils';
|
|
55
|
+
import useWindowResize from '@rio-cloud/rio-uikit/useWindowResize';
|
|
56
|
+
|
|
57
|
+
export default () => {
|
|
58
|
+
const [isZoomDisabled, setIsZoomDisabled] = useState(false);
|
|
59
|
+
const [isMobileScreenSize, setIsMobileScreenSize] = useState(isMobileScreen());
|
|
60
|
+
|
|
61
|
+
useEffect(() => {
|
|
62
|
+
// Disables the Zoom for the mobile devices.
|
|
63
|
+
// This is not good for accessibility but makes the webpage
|
|
64
|
+
// feel more like a native app.
|
|
65
|
+
toggleZoomOnMobile();
|
|
66
|
+
setIsZoomDisabled(document.head.querySelector('[name="viewport"]')?.content.includes('user-scalable=0'));
|
|
67
|
+
}, []);
|
|
68
|
+
|
|
69
|
+
useWindowResize(() => setIsMobileScreenSize(isMobileScreen()));
|
|
70
|
+
|
|
71
|
+
return (
|
|
72
|
+
<div>
|
|
73
|
+
<p>{hasTouch() ? 'Device has touch. Treat it well!' : 'No touch support'}</p>
|
|
74
|
+
<hr />
|
|
75
|
+
<p>isMobileScreen: {`${isMobileScreenSize}`}</p>
|
|
76
|
+
<hr />
|
|
77
|
+
<p>isMobile: {`${isMobile()}`}</p>
|
|
78
|
+
<hr />
|
|
79
|
+
<p>isDesktop: {`${isDesktop()}`}</p>
|
|
80
|
+
<hr />
|
|
81
|
+
<p>isRetinaDevice: {`${isRetinaDevice()}`}</p>
|
|
82
|
+
<hr />
|
|
83
|
+
<p>isMac: {`${isMac()}`}</p>
|
|
84
|
+
<hr />
|
|
85
|
+
<p>Loaded in iFrame: {`${inIframe()}`}</p>
|
|
86
|
+
<hr />
|
|
87
|
+
<p>Zoom is: {isZoomDisabled ? 'disabled' : 'enabled'}</p>
|
|
88
|
+
<Note>
|
|
89
|
+
Because Apple does not allow to disable zoom on touch devices, <code>isZoomDisabled</code> has no effect
|
|
90
|
+
when using iOS.
|
|
91
|
+
</Note>
|
|
92
|
+
</div>
|
|
93
|
+
);
|
|
94
|
+
};
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
#### HTML (html)
|
|
98
|
+
|
|
99
|
+
```html
|
|
100
|
+
<div>
|
|
101
|
+
<p>No touch support</p>
|
|
102
|
+
<hr>
|
|
103
|
+
<p>isMobileScreen: false</p>
|
|
104
|
+
<hr>
|
|
105
|
+
<p>isMobile: false</p>
|
|
106
|
+
<hr>
|
|
107
|
+
<p>isDesktop: true</p>
|
|
108
|
+
<hr>
|
|
109
|
+
<p>isRetinaDevice: false</p>
|
|
110
|
+
<hr>
|
|
111
|
+
<p>isMac: true</p>
|
|
112
|
+
<hr>
|
|
113
|
+
<p>Loaded in iFrame: false</p>
|
|
114
|
+
<hr>
|
|
115
|
+
<p>Zoom is: enabled</p>
|
|
116
|
+
<div class="display-flex gap-10 max-width-1000 margin-bottom-10 last-child-margin-bottom-0" data-capture-callout="true">
|
|
117
|
+
<div>
|
|
118
|
+
<span class="label label-info label-condensed label-filled">Note</span>
|
|
119
|
+
</div>
|
|
120
|
+
<div class="width-100pct children-first-margin-top-0 children-last-margin-bottom-0 padding-top-1">Because Apple does not allow to disable zoom on touch devices, <code>isZoomDisabled</code> has no effect when using iOS.</div>
|
|
121
|
+
</div>
|
|
122
|
+
</div>
|
|
123
|
+
```
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
# URL feature toggles
|
|
2
|
+
|
|
3
|
+
*Category:* Utilities
|
|
4
|
+
*Section:* Helper
|
|
5
|
+
*Source:* https://uikit.developers.rio.cloud/#utilities/featureToggles
|
|
6
|
+
*Captured:* 2025-12-12T12:39:35.555Z
|
|
7
|
+
|
|
8
|
+
URL-based feature toggles (also known as feature flags) are a powerful development technique that allows you to enable or disable features in your application dynamically, without deploying new code.
|
|
9
|
+
|
|
10
|
+
## URL feature toggles
|
|
11
|
+
|
|
12
|
+
## Feature toggles detection
|
|
13
|
+
|
|
14
|
+
The feature toggle detection system in your application is designed to handle the dynamic activation and retrieval of feature toggles from two primary sources:
|
|
15
|
+
|
|
16
|
+
- URL Query Parameters Toggles can be passed through the URL as query parameters (e.g., ?ft_demo=true), allowing for easy testing or overriding of features without modifying code
|
|
17
|
+
- LocalStorage If a toggle is not present in the URL, the system falls back to using stored values in the browser's localStorage, ensuring that user preferences or feature states are preserved across sessions
|
|
18
|
+
|
|
19
|
+
## Defining feature toggles
|
|
20
|
+
|
|
21
|
+
Feature toggles are defined in a centralized configuration map, with each toggle specifying its corresponding query parameter name, its data type (boolean, string, or number) and an optional default value. This allows you to easily configure new toggles.
|
|
22
|
+
|
|
23
|
+
**Type transformers**
|
|
24
|
+
|
|
25
|
+
- asBoolean and asBooleanWithDefault: Interprets the parameter as a boolean (e.g., true, false, 1, 0)
|
|
26
|
+
- asString and asStringWithDefault: Treats the parameter as a string
|
|
27
|
+
- asNumber and asNumberWithDefault: Converts the parameter into a number
|
|
28
|
+
|
|
29
|
+
The detectFeatureToggles function first checks if the specified toggle exists in the URL by extracting and parsing the query string (i.e., everything after the ? in the URL). If the parameter is found, its value is transformed using the appropriate type transformer (boolean, string, number), saved in localStorage, and returned.
|
|
30
|
+
|
|
31
|
+
```typescript
|
|
32
|
+
import { detectFeatureToggles, asString, asBoolean, asNumber } from '@rio-cloud/rio-uikit/urlFeatureToggles';
|
|
33
|
+
|
|
34
|
+
// Define old toggles to clean up
|
|
35
|
+
const oldToggles = ['ft_eventTeaser', 'ft_survey', 'ft_menu'];
|
|
36
|
+
|
|
37
|
+
// Define toggle transformation functions with their respective names and
|
|
38
|
+
// export the detected feature toggles as a singleton
|
|
39
|
+
export const featureToggles = detectFeatureToggles(
|
|
40
|
+
{
|
|
41
|
+
enforcedLocale: asString('ft_enforceLocale'),
|
|
42
|
+
tracing: asBoolean('ft_tracing'),
|
|
43
|
+
demo: asBooleanWithDefault('ft_demo', false),
|
|
44
|
+
maxItems: asNumberWithDefault('ft_maxItems', 10),
|
|
45
|
+
},
|
|
46
|
+
oldToggles
|
|
47
|
+
);
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
**Default values**
|
|
51
|
+
|
|
52
|
+
For each type of transformer there is a *WithDefault variant. This function accepts a default value as second parameter. The default value is only returned if neither the query parameter nor the local storage contain a value for the feature toggle. A feature toggle with a default value will never be null. This fact is also reflected in the type of the feature toggle properties in the object returned by detectFeatureToggles.
|
|
53
|
+
|
|
54
|
+
**Customizable prefix**
|
|
55
|
+
|
|
56
|
+
Feature toggles are stored in localStorage with a predefined prefix (default: featureToggle.), which can be customized as needed. This prefix helps to avoid naming collisions with other items stored in localStorage and makes it clear which items are related to feature toggles.
|
|
57
|
+
|
|
58
|
+
```typescript
|
|
59
|
+
export const featureToggles = detectFeatureToggles(
|
|
60
|
+
{ demo: asBoolean('ft_demo') },
|
|
61
|
+
oldToggles,
|
|
62
|
+
'myCustomPrefix.'
|
|
63
|
+
);
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## Usage
|
|
67
|
+
|
|
68
|
+
Suppose you want to enable or disable a demo mode in your application. You can pass ?ft_demo=true in the URL or rely on the value previously stored in localStorage.
|
|
69
|
+
|
|
70
|
+
- URL: http://example.com/#?ft_demo=true&ft_enforceLocale=de-DE
|
|
71
|
+
- Expected behavior: The system detects the ft_demo parameter and interprets it as true (boolean) The ft_enforceLocale is stored as a string ("de-DE") If a value like ft_maxItems is not provided in the URL, the system will try to fetch it from localStorage
|
|
72
|
+
|
|
73
|
+
- The system detects the ft_demo parameter and interprets it as true (boolean)
|
|
74
|
+
- The ft_enforceLocale is stored as a string ("de-DE")
|
|
75
|
+
- If a value like ft_maxItems is not provided in the URL, the system will try to fetch it from localStorage
|
|
76
|
+
|
|
77
|
+
To use a feature toggle, simply reference it in your code
|
|
78
|
+
|
|
79
|
+
```typescript
|
|
80
|
+
if (featureToggles.demo) {
|
|
81
|
+
// Render demo feature
|
|
82
|
+
}
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## Benefits
|
|
86
|
+
|
|
87
|
+
- Flexibility This approach allows toggles to be easily overridden via URL for testing or debugging purposes without changing the codebase
|
|
88
|
+
- Persistence By leveraging localStorage, feature toggles persist across browser sessions, ensuring a consistent experience for users
|
|
89
|
+
- Type safety Type transformation functions (asBoolean, asString, asNumber) ensure that toggles are correctly interpreted based on the expected data type
|
|
90
|
+
- Clean state management Unused toggles can be cleaned up from localStorage, ensuring there is no unnecessary buildup of outdated data
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
# Fuel type utils
|
|
2
|
+
|
|
3
|
+
*Category:* Utilities
|
|
4
|
+
*Section:* Helper
|
|
5
|
+
*Source:* https://uikit.developers.rio.cloud/#utilities/fuelTypeUtils
|
|
6
|
+
*Captured:* 2025-12-12T12:39:35.305Z
|
|
7
|
+
|
|
8
|
+
There is a wide variety of standardized fuel types, and on top of that, some projects or systems introduce their own custom definitions. While the naming can differ, many of these values carry the same semantic meaning. To avoid confusion and ensure consistent visual representation, we provide a centralized mapping of fuel types to icons.
|
|
9
|
+
|
|
10
|
+
## Fuel type utils
|
|
11
|
+
|
|
12
|
+
In this mapping, multiple values may point to the same icon when they represent equivalent or very similar fuel types. This guarantees that the UI remains consistent across the application and that users always see the correct symbol, regardless of the data source.
|
|
13
|
+
|
|
14
|
+
## getFuelIcon
|
|
15
|
+
|
|
16
|
+
The getFuelIcon function offers a single, reliable way to retrieve the correct icon:
|
|
17
|
+
|
|
18
|
+
- It accepts any known fuel type value.
|
|
19
|
+
- It returns the corresponding Rioglyph icon.
|
|
20
|
+
- Unknown or unsupported values automatically fall back to the unknown icon, preventing broken or missing visuals.
|
|
21
|
+
|
|
22
|
+
This approach ensures that developers don’t need to decide individually which icon to use. Instead, all mappings are maintained in one place, making the system easier to understand, maintain, and extend. Adding new fuel types or adjusting existing mappings can be done centrally without requiring changes throughout the codebase.
|
|
23
|
+
|
|
24
|
+
## Fuel type utils
|
|
25
|
+
|
|
26
|
+
These utilities help group, filter, and render fuel types based on predefined semantic categories such as liquid, gas, electric, hydrogen, or hybrid.
|
|
27
|
+
|
|
28
|
+
- you need to filter items by fuel type group,
|
|
29
|
+
- show fuel group filter buttons with icons and counters,
|
|
30
|
+
- or render the appropriate icon for a specific fuel type or group.
|
|
31
|
+
|
|
32
|
+
**Overview**
|
|
33
|
+
|
|
34
|
+
- fuelTypeGroupIcons Maps each fuel type group to its representative icon (e.g. for use in UI filter buttons or legends).
|
|
35
|
+
- fuelTypeGroups List of all defined fuel type groups (excluding unknown). Useful to iterate over filterable groups.
|
|
36
|
+
- getFuelTypeGroupIcon(fuelTypeGroup) Returns the icon associated with a given fuel group.
|
|
37
|
+
- filterByFuelTypeGroup(items, groups, getFuelType) Filters a list of items by their fuel group, using a custom fuel type extractor function.
|
|
38
|
+
- countFuelTypeGroups(items, getFuelType) Counts how many items belong to each fuel group, useful for showing badge counters on group filter buttons.
|
|
39
|
+
|
|
40
|
+
### Example: Example 1
|
|
41
|
+
|
|
42
|
+
Single rioglyph fuel iconThis is a diesel truck
|
|
43
|
+
This is a gasoline truck
|
|
44
|
+
This is an electric bus
|
|
45
|
+
|
|
46
|
+
Paired rioglyph fuel icon
|
|
47
|
+
|
|
48
|
+
Unknown paired fuel icon
|
|
49
|
+
|
|
50
|
+
#### Summary
|
|
51
|
+
|
|
52
|
+
Single rioglyph fuel iconThis is a diesel truck
|
|
53
|
+
This is a gasoline truck
|
|
54
|
+
This is an electric bus
|
|
55
|
+
|
|
56
|
+
Paired rioglyph fuel icon
|
|
57
|
+
|
|
58
|
+
Unknown paired fuel icon
|
|
59
|
+
|
|
60
|
+
#### React (tsx)
|
|
61
|
+
|
|
62
|
+
```tsx
|
|
63
|
+
import Rioglyph from '@rio-cloud/rio-uikit/Rioglyph';
|
|
64
|
+
import { getFuelIcon } from '@rio-cloud/rio-uikit/fuelTypeUtils';
|
|
65
|
+
|
|
66
|
+
export default () => {
|
|
67
|
+
return (
|
|
68
|
+
<div className='display-flex flex-column gap-15'>
|
|
69
|
+
<div>
|
|
70
|
+
<label>Single rioglyph fuel icon</label>
|
|
71
|
+
<div className='display-flex gap-5 align-items-center text-size-20'>
|
|
72
|
+
This is a diesel truck <span className={`rioglyph ${getFuelIcon('diesel')}`} />
|
|
73
|
+
</div>
|
|
74
|
+
<div className='display-flex gap-5 align-items-center text-size-20'>
|
|
75
|
+
This is a gasoline truck <span className={`rioglyph ${getFuelIcon('gas')}`} />
|
|
76
|
+
</div>
|
|
77
|
+
<div className='display-flex gap-5 align-items-center text-size-20'>
|
|
78
|
+
This is an electric bus <span className={`rioglyph ${getFuelIcon('electric')}`} />
|
|
79
|
+
</div>
|
|
80
|
+
</div>
|
|
81
|
+
<div>
|
|
82
|
+
<label>Paired rioglyph fuel icon</label>
|
|
83
|
+
<div className='display-flex gap-10'>
|
|
84
|
+
<Rioglyph size='h1' icon={'rioglyph-truck'} pairIcon={getFuelIcon('diesel')} />
|
|
85
|
+
<Rioglyph size='h1' icon={'rioglyph-truck'} pairIcon={getFuelIcon('gas')} />
|
|
86
|
+
<Rioglyph size='h1' icon={'rioglyph-bus'} pairIcon={getFuelIcon('electric')} />
|
|
87
|
+
</div>
|
|
88
|
+
</div>
|
|
89
|
+
<div>
|
|
90
|
+
<label>Unknown paired fuel icon</label>
|
|
91
|
+
<div className='display-flex gap-10'>
|
|
92
|
+
<Rioglyph size='h1' icon={'rioglyph-truck'} pairIcon={getFuelIcon('whatever')} />
|
|
93
|
+
</div>
|
|
94
|
+
</div>
|
|
95
|
+
</div>
|
|
96
|
+
);
|
|
97
|
+
};
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
#### HTML (html)
|
|
101
|
+
|
|
102
|
+
```html
|
|
103
|
+
<div class="display-flex flex-column gap-15">
|
|
104
|
+
<div>
|
|
105
|
+
<label>Single rioglyph fuel icon</label>
|
|
106
|
+
<div class="display-flex gap-5 align-items-center text-size-20">This is a diesel truck <span class="rioglyph rioglyph-fuel-liquid">
|
|
107
|
+
</span>
|
|
108
|
+
</div>
|
|
109
|
+
<div class="display-flex gap-5 align-items-center text-size-20">This is a gasoline truck <span class="rioglyph rioglyph-fuel-liquid">
|
|
110
|
+
</span>
|
|
111
|
+
</div>
|
|
112
|
+
<div class="display-flex gap-5 align-items-center text-size-20">This is an electric bus <span class="rioglyph rioglyph-fuel-electric">
|
|
113
|
+
</span>
|
|
114
|
+
</div>
|
|
115
|
+
</div>
|
|
116
|
+
<div>
|
|
117
|
+
<label>Paired rioglyph fuel icon</label>
|
|
118
|
+
<div class="display-flex gap-10">
|
|
119
|
+
<span class="rioglyph-icon-pair text-size-h1">
|
|
120
|
+
<span class="rioglyph rioglyph-truck">
|
|
121
|
+
</span>
|
|
122
|
+
<span class="rioglyph rioglyph-fuel-liquid">
|
|
123
|
+
</span>
|
|
124
|
+
</span>
|
|
125
|
+
<span class="rioglyph-icon-pair text-size-h1">
|
|
126
|
+
<span class="rioglyph rioglyph-truck">
|
|
127
|
+
</span>
|
|
128
|
+
<span class="rioglyph rioglyph-fuel-liquid">
|
|
129
|
+
</span>
|
|
130
|
+
</span>
|
|
131
|
+
<span class="rioglyph-icon-pair text-size-h1">
|
|
132
|
+
<span class="rioglyph rioglyph-bus">
|
|
133
|
+
</span>
|
|
134
|
+
<span class="rioglyph rioglyph-fuel-electric">
|
|
135
|
+
</span>
|
|
136
|
+
</span>
|
|
137
|
+
</div>
|
|
138
|
+
</div>
|
|
139
|
+
<div>
|
|
140
|
+
<label>Unknown paired fuel icon</label>
|
|
141
|
+
<div class="display-flex gap-10">
|
|
142
|
+
<span class="rioglyph-icon-pair text-size-h1">
|
|
143
|
+
<span class="rioglyph rioglyph-truck">
|
|
144
|
+
</span>
|
|
145
|
+
<span class="rioglyph rioglyph-question">
|
|
146
|
+
</span>
|
|
147
|
+
</span>
|
|
148
|
+
</div>
|
|
149
|
+
</div>
|
|
150
|
+
</div>
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
#### Props: getFuelIcon
|
|
154
|
+
|
|
155
|
+
### getFuelIcon
|
|
156
|
+
|
|
157
|
+
| Name | Type | Default | Description |
|
|
158
|
+
| --- | --- | --- | --- |
|
|
159
|
+
| fuelType | FuelType | unknown | The specific fuel type of the item. This will be resolved to a fuel group icon. Supported values include: gas, diesel, electric, hydrogen, cng, and more. |
|
|
160
|
+
|
|
161
|
+
#### Props: getFuelTypeGroupIcon
|
|
162
|
+
|
|
163
|
+
### getFuelTypeGroupIcon
|
|
164
|
+
|
|
165
|
+
| Name | Type | Default | Description |
|
|
166
|
+
| --- | --- | --- | --- |
|
|
167
|
+
| fuelTypeGroup | FuelTypeGroup | — | The fuel group identifier used to resolve the corresponding icon. |
|
|
168
|
+
|
|
169
|
+
#### Props: filterByFuelTypeGroup
|
|
170
|
+
|
|
171
|
+
### filterByFuelTypeGroup
|
|
172
|
+
|
|
173
|
+
| Name | Type | Default | Description |
|
|
174
|
+
| --- | --- | --- | --- |
|
|
175
|
+
| items | T[] | — | The list of items to filter by fuel type group. |
|
|
176
|
+
| activeGroups | FuelTypeGroup[] | — | Array of selected fuel groups to include in the filtered result. |
|
|
177
|
+
| getFuelType | (item: T) => FuelType \| undefined | — | Function used to extract the fuel type from each item. |
|
|
178
|
+
|
|
179
|
+
#### Props: countFuelTypeGroups
|
|
180
|
+
|
|
181
|
+
### countFuelTypeGroups
|
|
182
|
+
|
|
183
|
+
| Name | Type | Default | Description |
|
|
184
|
+
| --- | --- | --- | --- |
|
|
185
|
+
| items | T[] | — | The list of items to count by fuel group. |
|
|
186
|
+
| getFuelType | (item: T) => FuelType \| undefined | — | Function used to extract the fuel type from each item. |
|