@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,55 @@
|
|
|
1
|
+
# useTimeout
|
|
2
|
+
|
|
3
|
+
*Category:* Utilities
|
|
4
|
+
*Section:* Lifecycle & execution hooks
|
|
5
|
+
*Source:* https://uikit.developers.rio.cloud/#utilities/useTimeout
|
|
6
|
+
*Captured:* 2025-12-12T12:39:37.822Z
|
|
7
|
+
|
|
8
|
+
The useTimeout hook allows for executing some code after a specified amount of time.
|
|
9
|
+
|
|
10
|
+
## useTimeout
|
|
11
|
+
|
|
12
|
+
### Example: Example 1
|
|
13
|
+
|
|
14
|
+
Message:...
|
|
15
|
+
|
|
16
|
+
#### Summary
|
|
17
|
+
|
|
18
|
+
Message:...
|
|
19
|
+
|
|
20
|
+
#### React (tsx)
|
|
21
|
+
|
|
22
|
+
```tsx
|
|
23
|
+
import { useState } from 'react';
|
|
24
|
+
|
|
25
|
+
import useTimeout from '@rio-cloud/rio-uikit/useTimeout';
|
|
26
|
+
|
|
27
|
+
export default () => {
|
|
28
|
+
const [message, setMessage] = useState('...');
|
|
29
|
+
|
|
30
|
+
useTimeout(() => setMessage('Callback invoked'), 2000);
|
|
31
|
+
|
|
32
|
+
return (
|
|
33
|
+
<div className='display-flex flex-column justify-content-center align-items-center height-50'>
|
|
34
|
+
<label>Message:</label>
|
|
35
|
+
<div>{message}</div>
|
|
36
|
+
</div>
|
|
37
|
+
);
|
|
38
|
+
};
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
#### HTML (html)
|
|
42
|
+
|
|
43
|
+
```html
|
|
44
|
+
<div class="display-flex flex-column justify-content-center align-items-center height-50">
|
|
45
|
+
<label>Message:</label>
|
|
46
|
+
<div>...</div>
|
|
47
|
+
</div>
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
#### Props
|
|
51
|
+
|
|
52
|
+
| Name | Type | Default | Description |
|
|
53
|
+
| --- | --- | --- | --- |
|
|
54
|
+
| callback | Function | — | The callback function to be triggered. |
|
|
55
|
+
| delay | Number | — | The time to wait until the callback function gets invoked. |
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
# useToggle
|
|
2
|
+
|
|
3
|
+
*Category:* Utilities
|
|
4
|
+
*Section:* Lifecycle & execution hooks
|
|
5
|
+
*Source:* https://uikit.developers.rio.cloud/#utilities/useToggle
|
|
6
|
+
*Captured:* 2025-12-12T12:39:38.121Z
|
|
7
|
+
|
|
8
|
+
The useToggle hook is a custom React hook for managing a boolean state. It provides an intuitive API to toggle, enable, or disable the value. You can optionally initialize it with a default state. Use it to handle toggle-based logic like switches, modals, or content visibility in your React components.
|
|
9
|
+
|
|
10
|
+
## useToggle
|
|
11
|
+
|
|
12
|
+
### Example: Example 1
|
|
13
|
+
|
|
14
|
+
Usage on buttonsToggle is OFF
|
|
15
|
+
ToggleEnableDisable
|
|
16
|
+
Usage on a Switch component
|
|
17
|
+
|
|
18
|
+
Usage for hiding contentHide content
|
|
19
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. In pharetra dui eget massa efficitur aliquam condimentum in felis. Integer eget metus vel nunc efficitur iaculis. Vivamus elementum ante et est sagittis semper. Ut consectetur enim nec tortor scelerisque tincidunt. Fusce ac ligula bibendum, rutrum libero quis, viverra sem. Interdum et malesuada fames ac ante ipsum primis in faucibus. Duis ut hendrerit massa, in molestie elit. Sed vitae orci ac purus volutpat posuere ac ut neque. Mauris ante orci, semper finibus lorem in, fringilla pretium velit.
|
|
20
|
+
|
|
21
|
+
#### Summary
|
|
22
|
+
|
|
23
|
+
Usage on buttonsToggle is OFF
|
|
24
|
+
ToggleEnableDisable
|
|
25
|
+
Usage on a Switch component
|
|
26
|
+
|
|
27
|
+
Usage for hiding contentHide content
|
|
28
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. In pharetra dui eget massa efficitur aliquam condimentum in felis. Integer eget metus vel nunc efficitur iaculis. Vivamus elementum ante et est sagittis semper. Ut consectetur enim nec tortor scelerisque tincidunt. Fusce ac ligula bibendum, rutrum libero quis, viverra sem. Interdum et malesuada fames ac ante ipsum primis in faucibus. Duis ut hendrerit massa, in molestie elit. Sed vitae orci ac purus volutpat posuere ac ut neque. Mauris ante orci, semper finibus lorem in, fringilla pretium velit.
|
|
29
|
+
|
|
30
|
+
#### React (tsx)
|
|
31
|
+
|
|
32
|
+
```tsx
|
|
33
|
+
import Button from '@rio-cloud/rio-uikit/Button';
|
|
34
|
+
import useToggle from '@rio-cloud/rio-uikit/useToggle';
|
|
35
|
+
import Switch from '@rio-cloud/rio-uikit/Switch';
|
|
36
|
+
import Fade from '@rio-cloud/rio-uikit/Fade';
|
|
37
|
+
import { dummyText } from '../../../utils/data';
|
|
38
|
+
|
|
39
|
+
export default () => {
|
|
40
|
+
const { isToggled, toggle, enable, disable } = useToggle();
|
|
41
|
+
|
|
42
|
+
const { isToggled: isSwitchToggled, toggle: toggleSwitch } = useToggle(true);
|
|
43
|
+
|
|
44
|
+
const { isToggled: isContentShown, toggle: toggleContent } = useToggle(true);
|
|
45
|
+
|
|
46
|
+
const handleToggleButton = () => {
|
|
47
|
+
toggle(newValue => {
|
|
48
|
+
console.log(`Toggle changed to: ${newValue}`);
|
|
49
|
+
// Add some tracking here
|
|
50
|
+
});
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
return (
|
|
54
|
+
<div>
|
|
55
|
+
<label>Usage on buttons</label>
|
|
56
|
+
<p>Toggle is {isToggled ? 'ON' : 'OFF'}</p>
|
|
57
|
+
<div className='btn-toolbar'>
|
|
58
|
+
<Button onClick={handleToggleButton}>Toggle</Button>
|
|
59
|
+
<Button onClick={enable}>Enable</Button>
|
|
60
|
+
<Button onClick={disable}>Disable</Button>
|
|
61
|
+
</div>
|
|
62
|
+
<hr />
|
|
63
|
+
<label>Usage on a Switch component</label>
|
|
64
|
+
<Switch checked={isSwitchToggled} onChange={() => toggleSwitch()} />
|
|
65
|
+
<hr />
|
|
66
|
+
<label>Usage for hiding content</label>
|
|
67
|
+
<div>
|
|
68
|
+
<Button onClick={toggleContent}>{isContentShown ? 'Hide content' : 'Show content'}</Button>
|
|
69
|
+
<Fade show={isContentShown}>{dummyText}</Fade>
|
|
70
|
+
</div>
|
|
71
|
+
</div>
|
|
72
|
+
);
|
|
73
|
+
};
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
#### HTML (html)
|
|
77
|
+
|
|
78
|
+
```html
|
|
79
|
+
<div>
|
|
80
|
+
<label>Usage on buttons</label>
|
|
81
|
+
<p>Toggle is OFF</p>
|
|
82
|
+
<div class="btn-toolbar">
|
|
83
|
+
<button type="button" class="btn btn-default btn-component" tabindex="0">Toggle</button>
|
|
84
|
+
<button type="button" class="btn btn-default btn-component" tabindex="0">Enable</button>
|
|
85
|
+
<button type="button" class="btn btn-default btn-component" tabindex="0">Disable</button>
|
|
86
|
+
</div>
|
|
87
|
+
<hr>
|
|
88
|
+
<label>Usage on a Switch component</label>
|
|
89
|
+
<div class="uikit-switch">
|
|
90
|
+
<label class="switch-label">
|
|
91
|
+
<input type="checkbox" class="switch-input" checked="">
|
|
92
|
+
<div class="switch-content" style="color: var(--brand-primary); min-width: 40px;">
|
|
93
|
+
<div class="switch-handle">
|
|
94
|
+
</div>
|
|
95
|
+
</div>
|
|
96
|
+
</label>
|
|
97
|
+
</div>
|
|
98
|
+
<hr>
|
|
99
|
+
<label>Usage for hiding content</label>
|
|
100
|
+
<div>
|
|
101
|
+
<button type="button" class="btn btn-default btn-component" tabindex="0">Hide content</button>
|
|
102
|
+
<div style="opacity: 1; transform: none;">
|
|
103
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. In pharetra dui eget massa efficitur aliquam condimentum in felis. Integer eget metus vel nunc efficitur iaculis. Vivamus elementum ante et est sagittis semper. Ut consectetur enim nec tortor scelerisque tincidunt. Fusce ac ligula bibendum, rutrum libero quis, viverra sem. Interdum et malesuada fames ac ante ipsum primis in faucibus. Duis ut hendrerit massa, in molestie elit. Sed vitae orci ac purus volutpat posuere ac ut neque. Mauris ante orci, semper finibus lorem in, fringilla pretium velit.</div>
|
|
104
|
+
</div>
|
|
105
|
+
</div>
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
#### Props
|
|
109
|
+
|
|
110
|
+
| Name | Type | Default | Description |
|
|
111
|
+
| --- | --- | --- | --- |
|
|
112
|
+
| initialValue | Boolean | — | The initial state of the toggle. Defaults to false. |
|
|
113
|
+
| toggle | Function | — | Toggles the current state between true and false. Accepts an optional callback function that executes after the state changes, receiving the new state as an argument. |
|
|
114
|
+
| enable | Function | — | Sets the toggle state to true. |
|
|
115
|
+
| disable | Function | — | Sets the toggle state to false. |
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# useWindowResize
|
|
2
|
+
|
|
3
|
+
*Category:* Utilities
|
|
4
|
+
*Section:* DOM behavior hooks
|
|
5
|
+
*Source:* https://uikit.developers.rio.cloud/#utilities/useWindowResize
|
|
6
|
+
*Captured:* 2025-12-12T12:39:43.534Z
|
|
7
|
+
|
|
8
|
+
The useWindowResize hook allows to react on window size changes.
|
|
9
|
+
|
|
10
|
+
## useWindowResize
|
|
11
|
+
|
|
12
|
+
### Example: Example 1
|
|
13
|
+
|
|
14
|
+
Width is more than 1024px
|
|
15
|
+
|
|
16
|
+
#### Summary
|
|
17
|
+
|
|
18
|
+
Width is more than 1024px
|
|
19
|
+
|
|
20
|
+
#### React (tsx)
|
|
21
|
+
|
|
22
|
+
```tsx
|
|
23
|
+
import { useState } from 'react';
|
|
24
|
+
|
|
25
|
+
import useWindowResize from '@rio-cloud/rio-uikit/useWindowResize';
|
|
26
|
+
|
|
27
|
+
export default () => {
|
|
28
|
+
const getMessage = () => {
|
|
29
|
+
const windowWidth = window.innerWidth;
|
|
30
|
+
|
|
31
|
+
if (windowWidth < 1024 && windowWidth > 786) {
|
|
32
|
+
return 'Width is between 786px and 1024px';
|
|
33
|
+
}
|
|
34
|
+
if (windowWidth < 786) {
|
|
35
|
+
return 'Width is less than 786px';
|
|
36
|
+
}
|
|
37
|
+
if (windowWidth > 1024) {
|
|
38
|
+
return 'Width is more than 1024px';
|
|
39
|
+
}
|
|
40
|
+
return '';
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
const [message, setMessage] = useState(getMessage());
|
|
44
|
+
|
|
45
|
+
useWindowResize(() => {
|
|
46
|
+
setMessage(getMessage());
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
return (
|
|
50
|
+
<div className='display-flex justify-content-center align-items-center'>
|
|
51
|
+
<span>{message}</span>
|
|
52
|
+
</div>
|
|
53
|
+
);
|
|
54
|
+
};
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
#### HTML (html)
|
|
58
|
+
|
|
59
|
+
```html
|
|
60
|
+
<div class="display-flex justify-content-center align-items-center">
|
|
61
|
+
<span>Width is more than 1024px</span>
|
|
62
|
+
</div>
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
#### Props
|
|
66
|
+
|
|
67
|
+
| Name | Type | Default | Description |
|
|
68
|
+
| --- | --- | --- | --- |
|
|
69
|
+
| callback | Function | — | The callback function to be triggered. The callback will be throttled by default. |
|
|
70
|
+
| timeout | Number | 300 | The time in milliseconds to throttle the callback. |
|
package/dist/index.mjs
ADDED
|
@@ -0,0 +1,271 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
3
|
+
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
4
|
+
import { z } from "zod";
|
|
5
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
6
|
+
import path from "node:path";
|
|
7
|
+
import FlexSearch from "flexsearch";
|
|
8
|
+
|
|
9
|
+
//#region server/lib/load-compiled.ts
|
|
10
|
+
/**
|
|
11
|
+
* Runtime loading of pre-compiled documentation data.
|
|
12
|
+
*
|
|
13
|
+
* Expects build artifacts in distRoot:
|
|
14
|
+
* - doc-metadata.json (metadata for index + resource registry)
|
|
15
|
+
* - search-synonyms.json
|
|
16
|
+
* - version.json (optional)
|
|
17
|
+
* - docs/*.md
|
|
18
|
+
*/
|
|
19
|
+
var BuildArtifactError = class extends Error {
|
|
20
|
+
constructor(missingFile, distRoot) {
|
|
21
|
+
super(`Build artifact missing: ${missingFile}\nExpected at: ${path.join(distRoot, missingFile)}\n\nRun "npm run build:server" to compile documentation first.\nIf you installed this package via npm, this is a packaging error.`);
|
|
22
|
+
this.name = "BuildArtifactError";
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
function readRequiredJson(distRoot, filename) {
|
|
26
|
+
const filePath = path.join(distRoot, filename);
|
|
27
|
+
if (!existsSync(filePath)) throw new BuildArtifactError(filename, distRoot);
|
|
28
|
+
try {
|
|
29
|
+
return JSON.parse(readFileSync(filePath, "utf8"));
|
|
30
|
+
} catch (error) {
|
|
31
|
+
throw new Error(`Failed to parse ${filename}: ${error instanceof Error ? error.message : error}`);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
function loadCompiledData(distRoot) {
|
|
35
|
+
const metadata$1 = readRequiredJson(distRoot, "doc-metadata.json");
|
|
36
|
+
const synonyms$1 = readRequiredJson(distRoot, "search-synonyms.json");
|
|
37
|
+
let version$1 = null;
|
|
38
|
+
const versionPath = path.join(distRoot, "version.json");
|
|
39
|
+
if (existsSync(versionPath)) try {
|
|
40
|
+
version$1 = JSON.parse(readFileSync(versionPath, "utf8"));
|
|
41
|
+
} catch {}
|
|
42
|
+
return {
|
|
43
|
+
metadata: metadata$1,
|
|
44
|
+
synonyms: synonyms$1,
|
|
45
|
+
version: version$1
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
/** Markdown path is computed: docs/${id}.md */
|
|
49
|
+
function getMarkdownPath(id) {
|
|
50
|
+
return `docs/${id}.md`;
|
|
51
|
+
}
|
|
52
|
+
function loadMarkdown(distRoot, id) {
|
|
53
|
+
const mdPath = getMarkdownPath(id);
|
|
54
|
+
const fullPath = path.join(distRoot, mdPath);
|
|
55
|
+
if (!existsSync(fullPath)) throw new Error(`Markdown file not found: ${mdPath}\nExpected at: ${fullPath}\nThis may indicate an incomplete build. Run "npm run build:server" to regenerate.`);
|
|
56
|
+
return readFileSync(fullPath, "utf8");
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
//#endregion
|
|
60
|
+
//#region server/lib/search-index.ts
|
|
61
|
+
/**
|
|
62
|
+
* Build search index from pre-compiled metadata entries.
|
|
63
|
+
* The boost field is already computed at build time.
|
|
64
|
+
*/
|
|
65
|
+
function buildSearchIndex(entries) {
|
|
66
|
+
const index = new FlexSearch.Document({
|
|
67
|
+
document: {
|
|
68
|
+
id: "id",
|
|
69
|
+
index: [
|
|
70
|
+
{
|
|
71
|
+
field: "title",
|
|
72
|
+
tokenize: "forward"
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
field: "lead",
|
|
76
|
+
tokenize: "forward"
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
field: "summary",
|
|
80
|
+
tokenize: "forward"
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
field: "searchText",
|
|
84
|
+
tokenize: "forward"
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
field: "boost",
|
|
88
|
+
tokenize: "forward"
|
|
89
|
+
}
|
|
90
|
+
],
|
|
91
|
+
store: [
|
|
92
|
+
"id",
|
|
93
|
+
"title",
|
|
94
|
+
"summary",
|
|
95
|
+
"category",
|
|
96
|
+
"section"
|
|
97
|
+
]
|
|
98
|
+
},
|
|
99
|
+
tokenize: "forward"
|
|
100
|
+
});
|
|
101
|
+
for (const entry of entries) index.add({
|
|
102
|
+
id: entry.id,
|
|
103
|
+
title: entry.title,
|
|
104
|
+
lead: entry.lead ?? "",
|
|
105
|
+
summary: entry.summary,
|
|
106
|
+
searchText: entry.searchText,
|
|
107
|
+
boost: entry.boost,
|
|
108
|
+
category: entry.category ?? "",
|
|
109
|
+
section: entry.section ?? ""
|
|
110
|
+
});
|
|
111
|
+
const search = (query, options) => {
|
|
112
|
+
return index.search(query, options).map((group) => ({
|
|
113
|
+
field: group.field,
|
|
114
|
+
result: (group.result ?? []).map((id) => String(id))
|
|
115
|
+
}));
|
|
116
|
+
};
|
|
117
|
+
return { search };
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
//#endregion
|
|
121
|
+
//#region package.json
|
|
122
|
+
var version = "1.1.0";
|
|
123
|
+
|
|
124
|
+
//#endregion
|
|
125
|
+
//#region server/index.ts
|
|
126
|
+
const DIST_ROOT = import.meta.dirname;
|
|
127
|
+
const { metadata, synonyms, version: capturedVersionInfo } = loadCompiledData(DIST_ROOT);
|
|
128
|
+
const CAPTURED_UIKIT_VERSION = capturedVersionInfo?.version ?? null;
|
|
129
|
+
const metadataById = new Map(metadata.map((m) => [m.id, m]));
|
|
130
|
+
const server = new McpServer({
|
|
131
|
+
name: "uikit-mcp-server",
|
|
132
|
+
version
|
|
133
|
+
}, { instructions: `UI Kit MCP usage guidelines:
|
|
134
|
+
- Always discover documentation with search_docs; listResources is a static inventory and must not be used for guessing. Call readResource on the returned uikit-doc:// URI before using anything.
|
|
135
|
+
- Coding rules: import components from '@rio-cloud/rio-uikit', prefer styling via provided classes instead of custom CSS files, and wrap the app/content in ApplicationLayout.
|
|
136
|
+
- Follow documented props tables and examples; avoid inventing undocumented variants.
|
|
137
|
+
- Treat the captured metadata (Category, Section, Captured) as the source of truth.
|
|
138
|
+
- Captured UI Kit version: ${CAPTURED_UIKIT_VERSION ?? "unknown"}` });
|
|
139
|
+
function buildResourceUri(docId) {
|
|
140
|
+
return new URL(`uikit-doc://${docId}`);
|
|
141
|
+
}
|
|
142
|
+
function expandDomainSynonyms(rawQuery, config) {
|
|
143
|
+
const query = rawQuery.toLowerCase();
|
|
144
|
+
const expansions = /* @__PURE__ */ new Set();
|
|
145
|
+
const preferred = /* @__PURE__ */ new Set();
|
|
146
|
+
const hints = /* @__PURE__ */ new Set();
|
|
147
|
+
for (const [key, values] of Object.entries(config.synonyms ?? {})) if (query.includes(key.toLowerCase())) {
|
|
148
|
+
(values ?? []).forEach((value) => {
|
|
149
|
+
if (value.toLowerCase() !== query) expansions.add(value);
|
|
150
|
+
});
|
|
151
|
+
(config.preferredDocIds?.[key] ?? []).forEach((id) => preferred.add(id));
|
|
152
|
+
if (config.hints?.[key]) hints.add(config.hints[key]);
|
|
153
|
+
}
|
|
154
|
+
return {
|
|
155
|
+
expansions: Array.from(expansions),
|
|
156
|
+
preferredDocIds: Array.from(preferred),
|
|
157
|
+
hints: Array.from(hints)
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
function registerDocResources(docs) {
|
|
161
|
+
for (const doc of docs) {
|
|
162
|
+
const uri = buildResourceUri(doc.id);
|
|
163
|
+
server.registerResource(doc.id, uri.href, {
|
|
164
|
+
title: doc.title,
|
|
165
|
+
description: doc.summary,
|
|
166
|
+
mimeType: "text/markdown"
|
|
167
|
+
}, async () => {
|
|
168
|
+
const markdown = loadMarkdown(DIST_ROOT, doc.id);
|
|
169
|
+
const versionNote = CAPTURED_UIKIT_VERSION ? `\n\n> Captured UI Kit version: ${CAPTURED_UIKIT_VERSION}` : "";
|
|
170
|
+
return { contents: [{
|
|
171
|
+
uri: uri.href,
|
|
172
|
+
mimeType: "text/markdown",
|
|
173
|
+
text: markdown + versionNote
|
|
174
|
+
}] };
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
console.error(`Registered ${docs.length} documentation resources.`);
|
|
178
|
+
}
|
|
179
|
+
function registerSearchTool(index, metadataMap, synonymsConfig) {
|
|
180
|
+
const inputSchema = {
|
|
181
|
+
query: z.string().min(1, "Query is required"),
|
|
182
|
+
limit: z.number().int().min(1).max(20).optional()
|
|
183
|
+
};
|
|
184
|
+
const outputSchema = { results: z.array(z.object({
|
|
185
|
+
resource: z.string(),
|
|
186
|
+
title: z.string(),
|
|
187
|
+
summary: z.string().optional(),
|
|
188
|
+
category: z.string().nullish(),
|
|
189
|
+
section: z.string().nullish()
|
|
190
|
+
})) };
|
|
191
|
+
server.registerTool("search_docs", {
|
|
192
|
+
title: "Search UI Kit docs",
|
|
193
|
+
description: "Full-text search across the captured UI Kit documentation. Always call this before readResource; it is the only supported way to discover resource IDs.",
|
|
194
|
+
inputSchema,
|
|
195
|
+
outputSchema
|
|
196
|
+
}, async ({ query, limit = 5 }) => {
|
|
197
|
+
const searchQueue = [query];
|
|
198
|
+
const domainSynonyms = expandDomainSynonyms(query, synonymsConfig);
|
|
199
|
+
for (const extra of domainSynonyms.expansions) searchQueue.push(extra);
|
|
200
|
+
const seen = /* @__PURE__ */ new Set();
|
|
201
|
+
const resolved = [];
|
|
202
|
+
for (const id of domainSynonyms.preferredDocIds) {
|
|
203
|
+
if (seen.has(id)) continue;
|
|
204
|
+
const doc = metadataMap.get(id);
|
|
205
|
+
if (!doc) continue;
|
|
206
|
+
seen.add(id);
|
|
207
|
+
resolved.push({
|
|
208
|
+
resource: buildResourceUri(id).href,
|
|
209
|
+
title: doc.title,
|
|
210
|
+
summary: doc.summary,
|
|
211
|
+
category: doc.category,
|
|
212
|
+
section: doc.section
|
|
213
|
+
});
|
|
214
|
+
if (resolved.length >= limit) break;
|
|
215
|
+
}
|
|
216
|
+
for (const searchQuery of searchQueue) {
|
|
217
|
+
const hits = index.search(searchQuery, {
|
|
218
|
+
limit: Math.max(limit * 2, 10),
|
|
219
|
+
suggest: true
|
|
220
|
+
});
|
|
221
|
+
for (const group of hits) {
|
|
222
|
+
for (const id of group.result ?? []) {
|
|
223
|
+
const docId = String(id);
|
|
224
|
+
if (seen.has(docId)) continue;
|
|
225
|
+
seen.add(docId);
|
|
226
|
+
const doc = metadataMap.get(docId);
|
|
227
|
+
if (!doc) continue;
|
|
228
|
+
resolved.push({
|
|
229
|
+
resource: buildResourceUri(docId).href,
|
|
230
|
+
title: doc.title,
|
|
231
|
+
summary: doc.summary,
|
|
232
|
+
category: doc.category,
|
|
233
|
+
section: doc.section
|
|
234
|
+
});
|
|
235
|
+
if (resolved.length >= limit) break;
|
|
236
|
+
}
|
|
237
|
+
if (resolved.length >= limit) break;
|
|
238
|
+
}
|
|
239
|
+
if (resolved.length >= limit) break;
|
|
240
|
+
}
|
|
241
|
+
let text = resolved.length > 0 ? resolved.map((entry, idx) => `${idx + 1}. ${entry.title} (${entry.resource})${entry.summary ? `\n ${entry.summary}` : ""}`).join("\n\n").concat("\n\nAlways call readResource on one of the URIs above instead of guessing component routes.") : `No matches for "${query}".`;
|
|
242
|
+
const uniqueHints = Array.from(new Set(domainSynonyms.hints.filter(Boolean)));
|
|
243
|
+
if (uniqueHints.length) text += `\n\n${uniqueHints.join("\n")}`;
|
|
244
|
+
if (CAPTURED_UIKIT_VERSION) text += `\n\nCaptured UI Kit version: ${CAPTURED_UIKIT_VERSION}. Read "How to use the UIKIT" → "Install the npm package" for installation details.`;
|
|
245
|
+
return {
|
|
246
|
+
structuredContent: { results: resolved },
|
|
247
|
+
content: [{
|
|
248
|
+
type: "text",
|
|
249
|
+
text
|
|
250
|
+
}]
|
|
251
|
+
};
|
|
252
|
+
});
|
|
253
|
+
}
|
|
254
|
+
async function main() {
|
|
255
|
+
const index = buildSearchIndex(metadata);
|
|
256
|
+
registerDocResources(metadata);
|
|
257
|
+
registerSearchTool(index, metadataById, synonyms);
|
|
258
|
+
const docIds = new Set(metadata.map((m) => m.id));
|
|
259
|
+
const missingPreferred = /* @__PURE__ */ new Set();
|
|
260
|
+
for (const ids of Object.values(synonyms.preferredDocIds ?? {})) for (const id of ids ?? []) if (!docIds.has(id)) missingPreferred.add(id);
|
|
261
|
+
if (missingPreferred.size) console.warn(`Warning: preferredDocIds not found in dataset: ${Array.from(missingPreferred).join(", ")}`);
|
|
262
|
+
const transport = new StdioServerTransport();
|
|
263
|
+
await server.connect(transport);
|
|
264
|
+
}
|
|
265
|
+
main().catch((error) => {
|
|
266
|
+
console.error(error);
|
|
267
|
+
process.exit(1);
|
|
268
|
+
});
|
|
269
|
+
|
|
270
|
+
//#endregion
|
|
271
|
+
export { };
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
{
|
|
2
|
+
"synonyms": {
|
|
3
|
+
"install": [
|
|
4
|
+
"installation",
|
|
5
|
+
"setup",
|
|
6
|
+
"how to",
|
|
7
|
+
"howto",
|
|
8
|
+
"getting started"
|
|
9
|
+
],
|
|
10
|
+
"version": [
|
|
11
|
+
"release"
|
|
12
|
+
],
|
|
13
|
+
"button": [
|
|
14
|
+
"btn",
|
|
15
|
+
"cta",
|
|
16
|
+
"buttons"
|
|
17
|
+
],
|
|
18
|
+
"dropdown": [
|
|
19
|
+
"select",
|
|
20
|
+
"combobox"
|
|
21
|
+
],
|
|
22
|
+
"select": [
|
|
23
|
+
"dropdown",
|
|
24
|
+
"combobox"
|
|
25
|
+
],
|
|
26
|
+
"table": [
|
|
27
|
+
"datagrid",
|
|
28
|
+
"grid"
|
|
29
|
+
],
|
|
30
|
+
"datagrid": [
|
|
31
|
+
"table",
|
|
32
|
+
"grid"
|
|
33
|
+
],
|
|
34
|
+
"form": [
|
|
35
|
+
"input",
|
|
36
|
+
"field"
|
|
37
|
+
],
|
|
38
|
+
"modal": [
|
|
39
|
+
"dialog"
|
|
40
|
+
],
|
|
41
|
+
"dialog": [
|
|
42
|
+
"modal"
|
|
43
|
+
],
|
|
44
|
+
"toast": [
|
|
45
|
+
"alert",
|
|
46
|
+
"notification"
|
|
47
|
+
],
|
|
48
|
+
"alert": [
|
|
49
|
+
"toast",
|
|
50
|
+
"notification"
|
|
51
|
+
],
|
|
52
|
+
"datepicker": [
|
|
53
|
+
"date picker",
|
|
54
|
+
"calendar"
|
|
55
|
+
],
|
|
56
|
+
"date picker": [
|
|
57
|
+
"datepicker",
|
|
58
|
+
"calendar"
|
|
59
|
+
],
|
|
60
|
+
"accordion": [
|
|
61
|
+
"expander"
|
|
62
|
+
],
|
|
63
|
+
"expander": [
|
|
64
|
+
"accordion"
|
|
65
|
+
],
|
|
66
|
+
"chip": [
|
|
67
|
+
"tag",
|
|
68
|
+
"badge"
|
|
69
|
+
],
|
|
70
|
+
"tag": [
|
|
71
|
+
"chip",
|
|
72
|
+
"badge"
|
|
73
|
+
]
|
|
74
|
+
},
|
|
75
|
+
"preferredDocIds": {
|
|
76
|
+
"install": [
|
|
77
|
+
"start/howto"
|
|
78
|
+
],
|
|
79
|
+
"getting started": [
|
|
80
|
+
"start/howto"
|
|
81
|
+
],
|
|
82
|
+
"setup": [
|
|
83
|
+
"start/howto"
|
|
84
|
+
],
|
|
85
|
+
"version": [
|
|
86
|
+
"start/howto"
|
|
87
|
+
],
|
|
88
|
+
"button": [
|
|
89
|
+
"components/button"
|
|
90
|
+
],
|
|
91
|
+
"dropdown": [
|
|
92
|
+
"components/dropdowns"
|
|
93
|
+
],
|
|
94
|
+
"select": [
|
|
95
|
+
"components/dropdowns"
|
|
96
|
+
],
|
|
97
|
+
"table": [
|
|
98
|
+
"components/tables"
|
|
99
|
+
],
|
|
100
|
+
"datagrid": [
|
|
101
|
+
"components/tables"
|
|
102
|
+
],
|
|
103
|
+
"modal": [
|
|
104
|
+
"components/dialogs"
|
|
105
|
+
],
|
|
106
|
+
"dialog": [
|
|
107
|
+
"components/dialogs"
|
|
108
|
+
],
|
|
109
|
+
"toast": [
|
|
110
|
+
"components/notifications"
|
|
111
|
+
],
|
|
112
|
+
"alert": [
|
|
113
|
+
"components/notifications"
|
|
114
|
+
],
|
|
115
|
+
"datepicker": [
|
|
116
|
+
"components/datepickers"
|
|
117
|
+
],
|
|
118
|
+
"date picker": [
|
|
119
|
+
"components/datepickers"
|
|
120
|
+
],
|
|
121
|
+
"accordion": [
|
|
122
|
+
"components/expander"
|
|
123
|
+
],
|
|
124
|
+
"expander": [
|
|
125
|
+
"components/expander"
|
|
126
|
+
],
|
|
127
|
+
"chip": [
|
|
128
|
+
"components/tags"
|
|
129
|
+
],
|
|
130
|
+
"tag": [
|
|
131
|
+
"components/tags"
|
|
132
|
+
]
|
|
133
|
+
}
|
|
134
|
+
}
|