@rio-cloud/uikit-mcp 1.1.7 → 1.1.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (201) hide show
  1. package/README.md +24 -18
  2. package/dist/doc-metadata.json +125 -295
  3. package/dist/docs/components/accentBar.md +16 -69
  4. package/dist/docs/components/activity.md +7 -44
  5. package/dist/docs/components/animatedNumber.md +3 -11
  6. package/dist/docs/components/animatedTextReveal.md +6 -34
  7. package/dist/docs/components/animations.md +21 -54
  8. package/dist/docs/components/appHeader.md +11 -30
  9. package/dist/docs/components/appLayout.md +40 -193
  10. package/dist/docs/components/appNavigationBar.md +1 -24
  11. package/dist/docs/components/areaCharts.md +7 -22
  12. package/dist/docs/components/aspectRatioPlaceholder.md +1 -9
  13. package/dist/docs/components/assetTree.md +241 -280
  14. package/dist/docs/components/autosuggests.md +3 -102
  15. package/dist/docs/components/avatar.md +1 -16
  16. package/dist/docs/components/banner.md +4 -37
  17. package/dist/docs/components/barCharts.md +20 -75
  18. package/dist/docs/components/barList.md +10 -78
  19. package/dist/docs/components/basicMap.md +1 -67
  20. package/dist/docs/components/bottomSheet.md +2 -28
  21. package/dist/docs/components/button.md +12 -65
  22. package/dist/docs/components/buttonToolbar.md +5 -19
  23. package/dist/docs/components/calendarStripe.md +50 -100
  24. package/dist/docs/components/card.md +1 -9
  25. package/dist/docs/components/carousel.md +1 -14
  26. package/dist/docs/components/chartColors.md +1 -156
  27. package/dist/docs/components/chartsGettingStarted.md +1 -1
  28. package/dist/docs/components/chat.md +2 -81
  29. package/dist/docs/components/checkbox.md +11 -72
  30. package/dist/docs/components/circularProgress.md +8 -49
  31. package/dist/docs/components/clearableInput.md +3 -62
  32. package/dist/docs/components/collapse.md +2 -15
  33. package/dist/docs/components/composedCharts.md +16 -26
  34. package/dist/docs/components/contentLoader.md +7 -25
  35. package/dist/docs/components/dataTabs.md +16 -104
  36. package/dist/docs/components/datepickers.md +710 -962
  37. package/dist/docs/components/dialogs.md +5 -67
  38. package/dist/docs/components/divider.md +1 -33
  39. package/dist/docs/components/dropdowns.md +3424 -5567
  40. package/dist/docs/components/editableContent.md +4 -82
  41. package/dist/docs/components/expander.md +15 -88
  42. package/dist/docs/components/fade.md +4 -61
  43. package/dist/docs/components/fadeExpander.md +1 -7
  44. package/dist/docs/components/fadeUp.md +2 -76
  45. package/dist/docs/components/feedback.md +9 -68
  46. package/dist/docs/components/filePickers.md +4 -18
  47. package/dist/docs/components/formLabel.md +7 -27
  48. package/dist/docs/components/groupedItemList.md +2 -158
  49. package/dist/docs/components/iconList.md +7 -64
  50. package/dist/docs/components/imagePreloader.md +1 -9
  51. package/dist/docs/components/labeledElement.md +3 -18
  52. package/dist/docs/components/licensePlate.md +1 -43
  53. package/dist/docs/components/lineCharts.md +8 -39
  54. package/dist/docs/components/listMenu.md +2 -34
  55. package/dist/docs/components/loadMore.md +5 -24
  56. package/dist/docs/components/mainNavigation.md +1 -9
  57. package/dist/docs/components/mapCircle.md +1 -23
  58. package/dist/docs/components/mapCluster.md +2 -54
  59. package/dist/docs/components/mapContext.md +1 -23
  60. package/dist/docs/components/mapDraggableMarker.md +2 -28
  61. package/dist/docs/components/mapGettingStarted.md +2 -2
  62. package/dist/docs/components/mapInfoBubble.md +1 -27
  63. package/dist/docs/components/mapLayerGroup.md +1 -23
  64. package/dist/docs/components/mapMarker.md +1 -99
  65. package/dist/docs/components/mapPolygon.md +2 -116
  66. package/dist/docs/components/mapRoute.md +6 -1465
  67. package/dist/docs/components/mapRouteGenerator.md +1 -1
  68. package/dist/docs/components/mapSettings.md +11 -128
  69. package/dist/docs/components/mapUtils.md +10 -113
  70. package/dist/docs/components/multiselects.md +14 -163
  71. package/dist/docs/components/noData.md +8 -22
  72. package/dist/docs/components/notifications.md +3 -19
  73. package/dist/docs/components/numbercontrol.md +3 -47
  74. package/dist/docs/components/onboarding.md +3 -15
  75. package/dist/docs/components/page.md +1 -33
  76. package/dist/docs/components/pager.md +1 -17
  77. package/dist/docs/components/pieCharts.md +40 -71
  78. package/dist/docs/components/popover.md +1 -12
  79. package/dist/docs/components/position.md +2 -6
  80. package/dist/docs/components/radialBarCharts.md +32 -116
  81. package/dist/docs/components/radioCardGroup.md +6 -48
  82. package/dist/docs/components/radiobutton.md +6 -75
  83. package/dist/docs/components/releaseNotes.md +3 -21
  84. package/dist/docs/components/resizer.md +1 -7
  85. package/dist/docs/components/responsiveColumnStripe.md +9 -49
  86. package/dist/docs/components/responsiveVideo.md +1 -7
  87. package/dist/docs/components/rioglyph.md +1 -17
  88. package/dist/docs/components/rules.md +7 -70
  89. package/dist/docs/components/saveableInput.md +267 -401
  90. package/dist/docs/components/selects.md +27 -1164
  91. package/dist/docs/components/sidebar.md +6 -17
  92. package/dist/docs/components/sliders.md +1 -27
  93. package/dist/docs/components/smoothScrollbars.md +1 -73
  94. package/dist/docs/components/spinners.md +6 -51
  95. package/dist/docs/components/states.md +6 -92
  96. package/dist/docs/components/statsWidgets.md +1 -76
  97. package/dist/docs/components/statusBar.md +1 -57
  98. package/dist/docs/components/stepButton.md +2 -7
  99. package/dist/docs/components/steppedProgressBars.md +5 -62
  100. package/dist/docs/components/subNavigation.md +1 -31
  101. package/dist/docs/components/supportMarker.md +2 -14
  102. package/dist/docs/components/svgImage.md +1 -5
  103. package/dist/docs/components/switch.md +2 -33
  104. package/dist/docs/components/tables.md +1 -1
  105. package/dist/docs/components/tagManager.md +1 -41
  106. package/dist/docs/components/tags.md +1 -138
  107. package/dist/docs/components/teaser.md +2 -122
  108. package/dist/docs/components/textTruncateMiddle.md +2 -9
  109. package/dist/docs/components/timeline.md +1 -99
  110. package/dist/docs/components/timepicker.md +4 -79
  111. package/dist/docs/components/toggleButton.md +2 -15
  112. package/dist/docs/components/tooltip.md +9 -30
  113. package/dist/docs/components/tracker.md +2 -19
  114. package/dist/docs/components/virtualList.md +61 -130
  115. package/dist/docs/foundations.md +749 -4069
  116. package/dist/docs/start/changelog.md +5 -1
  117. package/dist/docs/start/goodtoknow.md +1 -1
  118. package/dist/docs/start/guidelines/color-combinations.md +149 -483
  119. package/dist/docs/start/guidelines/custom-css.md +1 -1
  120. package/dist/docs/start/guidelines/custom-rioglyph.md +1 -1
  121. package/dist/docs/start/guidelines/formatting.md +1 -1
  122. package/dist/docs/start/guidelines/iframe.md +4 -16
  123. package/dist/docs/start/guidelines/obfuscate-data.md +1 -1
  124. package/dist/docs/start/guidelines/print-css.md +1 -1
  125. package/dist/docs/start/guidelines/spinner.md +13 -67
  126. package/dist/docs/start/guidelines/state-in-url.md +1 -1
  127. package/dist/docs/start/guidelines/supported-browsers.md +1 -1
  128. package/dist/docs/start/guidelines/writing.md +1 -1
  129. package/dist/docs/start/howto.md +11 -11
  130. package/dist/docs/start/intro.md +1 -1
  131. package/dist/docs/start/responsiveness.md +1 -1
  132. package/dist/docs/utilities/classNames.md +3 -18
  133. package/dist/docs/utilities/deviceUtils.md +7 -13
  134. package/dist/docs/utilities/featureToggles.md +1 -1
  135. package/dist/docs/utilities/fuelTypeUtils.md +2 -12
  136. package/dist/docs/utilities/routeUtils.md +25 -343
  137. package/dist/docs/utilities/useAfterMount.md +1 -6
  138. package/dist/docs/utilities/useAutoAnimate.md +2 -15
  139. package/dist/docs/utilities/useAverage.md +1 -6
  140. package/dist/docs/utilities/useClickOutside.md +1 -5
  141. package/dist/docs/utilities/useClipboard.md +2 -6
  142. package/dist/docs/utilities/useCookies.md +2 -10
  143. package/dist/docs/utilities/useCount.md +7 -16
  144. package/dist/docs/utilities/useDarkMode.md +2 -6
  145. package/dist/docs/utilities/useDebugInfo.md +6 -20
  146. package/dist/docs/utilities/useEffectOnce.md +1 -6
  147. package/dist/docs/utilities/useElapsedTime.md +2 -6
  148. package/dist/docs/utilities/useElementSize.md +1 -7
  149. package/dist/docs/utilities/useEsc.md +1 -5
  150. package/dist/docs/utilities/useEvent.md +1 -5
  151. package/dist/docs/utilities/useFocusTrap.md +1 -5
  152. package/dist/docs/utilities/useFullscreen.md +2 -15
  153. package/dist/docs/utilities/useHover.md +1 -5
  154. package/dist/docs/utilities/useIncomingPostMessages.md +2 -18
  155. package/dist/docs/utilities/useInterval.md +2 -8
  156. package/dist/docs/utilities/useIsFocusWithin.md +1 -10
  157. package/dist/docs/utilities/useKey.md +1 -15
  158. package/dist/docs/utilities/useLocalStorage.md +2 -11
  159. package/dist/docs/utilities/useLocationSuggestions.md +1 -5
  160. package/dist/docs/utilities/useMax.md +1 -5
  161. package/dist/docs/utilities/useMin.md +1 -5
  162. package/dist/docs/utilities/useMutationObserver.md +3 -11
  163. package/dist/docs/utilities/useOnScreen.md +1 -8
  164. package/dist/docs/utilities/useOnlineStatus.md +1 -5
  165. package/dist/docs/utilities/usePostMessage.md +3 -9
  166. package/dist/docs/utilities/usePostMessageSender.md +3 -13
  167. package/dist/docs/utilities/usePrevious.md +1 -5
  168. package/dist/docs/utilities/useResizeObserver.md +3 -11
  169. package/dist/docs/utilities/useRioCookieConsent.md +1 -5
  170. package/dist/docs/utilities/useScrollPosition.md +3 -59
  171. package/dist/docs/utilities/useSearch.md +2 -16
  172. package/dist/docs/utilities/useSearchHighlight.md +13 -78
  173. package/dist/docs/utilities/useSorting.md +18 -43
  174. package/dist/docs/utilities/useStateWithValidation.md +1 -5
  175. package/dist/docs/utilities/useSum.md +1 -9
  176. package/dist/docs/utilities/useTableExport.md +42 -59
  177. package/dist/docs/utilities/useTableSelection.md +74 -119
  178. package/dist/docs/utilities/useTimeout.md +2 -6
  179. package/dist/docs/utilities/useToggle.md +4 -14
  180. package/dist/docs/utilities/useUrlState.md +2 -27
  181. package/dist/docs/utilities/useWindowResize.md +1 -5
  182. package/dist/index.mjs +46 -16
  183. package/dist/version.json +2 -2
  184. package/package.json +15 -9
  185. package/dist/docs/templates/common-table.md +0 -1112
  186. package/dist/docs/templates/detail-views.md +0 -942
  187. package/dist/docs/templates/expandable-details.md +0 -228
  188. package/dist/docs/templates/feature-cards.md +0 -549
  189. package/dist/docs/templates/form-summary.md +0 -199
  190. package/dist/docs/templates/form-toggle.md +0 -367
  191. package/dist/docs/templates/list-blocks.md +0 -1021
  192. package/dist/docs/templates/loading-progress.md +0 -109
  193. package/dist/docs/templates/options-panel.md +0 -152
  194. package/dist/docs/templates/panel-variants.md +0 -164
  195. package/dist/docs/templates/progress-cards.md +0 -607
  196. package/dist/docs/templates/progress-success.md +0 -142
  197. package/dist/docs/templates/settings-form.md +0 -434
  198. package/dist/docs/templates/stats-blocks.md +0 -1381
  199. package/dist/docs/templates/table-panel.md +0 -184
  200. package/dist/docs/templates/table-row-animation.md +0 -317
  201. package/dist/docs/templates/usage-cards.md +0 -227
package/dist/index.mjs CHANGED
@@ -5,7 +5,43 @@ import { z } from "zod";
5
5
  import { existsSync, readFileSync } from "node:fs";
6
6
  import path from "node:path";
7
7
  import FlexSearch from "flexsearch";
8
-
8
+ //#region server/lib/doc-id.ts
9
+ var InvalidDocIdError = class extends Error {
10
+ constructor(id, reason) {
11
+ super(`Invalid doc id "${id}": ${reason}`);
12
+ this.name = "InvalidDocIdError";
13
+ }
14
+ };
15
+ function decodeSegment(segment, originalId) {
16
+ try {
17
+ return decodeURIComponent(segment);
18
+ } catch {
19
+ throw new InvalidDocIdError(originalId, `segment "${segment}" contains invalid encoding`);
20
+ }
21
+ }
22
+ function assertSafeDocId(id) {
23
+ if (typeof id !== "string") throw new InvalidDocIdError(String(id), "doc id must be a string");
24
+ const trimmed = id.trim();
25
+ if (!trimmed) throw new InvalidDocIdError(id, "doc id must not be empty");
26
+ if (trimmed.startsWith("/")) throw new InvalidDocIdError(id, "leading slash is not allowed");
27
+ const segments = trimmed.split("/");
28
+ for (const segment of segments) {
29
+ if (!segment.length) throw new InvalidDocIdError(id, "empty path segment is not allowed");
30
+ const decoded = decodeSegment(segment, id);
31
+ if (decoded === "." || decoded === "..") throw new InvalidDocIdError(id, "dot segments are not allowed");
32
+ if (decoded.includes("/") || decoded.includes("\\")) throw new InvalidDocIdError(id, "slash characters in path segments are not allowed");
33
+ if (decoded.includes("\0")) throw new InvalidDocIdError(id, "null bytes are not allowed");
34
+ }
35
+ return trimmed;
36
+ }
37
+ function resolveInsideRoot(root, relativePath) {
38
+ const rootPath = path.resolve(root);
39
+ const resolved = path.resolve(rootPath, relativePath);
40
+ const relative = path.relative(rootPath, resolved);
41
+ if (!relative || relative.startsWith("..") || path.isAbsolute(relative)) throw new Error(`Resolved path escapes root: root="${rootPath}" relative="${relativePath}"`);
42
+ return resolved;
43
+ }
44
+ //#endregion
9
45
  //#region server/lib/load-compiled.ts
10
46
  /**
11
47
  * Runtime loading of pre-compiled documentation data.
@@ -45,17 +81,13 @@ function loadCompiledData(distRoot) {
45
81
  version
46
82
  };
47
83
  }
48
- /** Markdown path is computed: docs/${id}.md */
49
- function getMarkdownPath(id) {
50
- return `docs/${id}.md`;
51
- }
52
84
  function loadMarkdown(distRoot, id) {
53
- const mdPath = getMarkdownPath(id);
54
- const fullPath = path.join(distRoot, mdPath);
85
+ const safeId = assertSafeDocId(id);
86
+ const fullPath = resolveInsideRoot(path.join(distRoot, "docs"), `${safeId}.md`);
87
+ const mdPath = path.relative(distRoot, fullPath);
55
88
  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
89
  return readFileSync(fullPath, "utf8");
57
90
  }
58
-
59
91
  //#endregion
60
92
  //#region server/lib/search-index.ts
61
93
  /**
@@ -116,11 +148,9 @@ function buildSearchIndex(entries) {
116
148
  };
117
149
  return { search };
118
150
  }
119
-
120
151
  //#endregion
121
152
  //#region package.json
122
- var version = "1.1.7";
123
-
153
+ var version = "1.1.9";
124
154
  //#endregion
125
155
  //#region server/index.ts
126
156
  const DIST_ROOT = import.meta.dirname;
@@ -159,13 +189,14 @@ function expandDomainSynonyms(rawQuery, config) {
159
189
  }
160
190
  function registerDocResources(docs) {
161
191
  for (const doc of docs) {
162
- const uri = buildResourceUri(doc.id);
163
- server.registerResource(doc.id, uri.href, {
192
+ const safeId = assertSafeDocId(doc.id);
193
+ const uri = buildResourceUri(safeId);
194
+ server.registerResource(safeId, uri.href, {
164
195
  title: doc.title,
165
196
  description: doc.summary,
166
197
  mimeType: "text/markdown"
167
198
  }, async () => {
168
- const markdown = loadMarkdown(DIST_ROOT, doc.id);
199
+ const markdown = loadMarkdown(DIST_ROOT, safeId);
169
200
  const versionNote = CAPTURED_UIKIT_VERSION ? `\n\n> Captured UI Kit version: ${CAPTURED_UIKIT_VERSION}` : "";
170
201
  return { contents: [{
171
202
  uri: uri.href,
@@ -272,6 +303,5 @@ main().catch((error) => {
272
303
  console.error(error);
273
304
  process.exit(1);
274
305
  });
275
-
276
306
  //#endregion
277
- export { };
307
+ export {};
package/dist/version.json CHANGED
@@ -1,4 +1,4 @@
1
1
  {
2
- "version": "2.2.0",
3
- "captured_at": "2026-02-23T15:50:16.411Z"
2
+ "version": "2.2.1",
3
+ "captured_at": "2026-03-06T10:42:10.406Z"
4
4
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rio-cloud/uikit-mcp",
3
- "version": "1.1.7",
3
+ "version": "1.1.9",
4
4
  "description": "MCP server that serves the captured RIO UI Kit documentation to Model Context Protocol clients.",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -8,6 +8,10 @@
8
8
  "type": "module",
9
9
  "author": "TB Digital Services GmbH",
10
10
  "license": "Apache-2.0",
11
+ "engines": {
12
+ "node": ">=24",
13
+ "npm": ">=11"
14
+ },
11
15
  "bin": {
12
16
  "uikit-mcp": "./dist/index.mjs"
13
17
  },
@@ -17,9 +21,7 @@
17
21
  "scripts": {
18
22
  "build:server": "tsdown",
19
23
  "typecheck": "tsc --noEmit",
20
- "pretest": "npm run build:server",
21
- "test": "npm run typecheck && node --test --import tsx test/**/*.ts",
22
- "prepack": "npm test",
24
+ "test": "npm run build:server && npm run typecheck && node --test --import tsx test/**/*.ts",
23
25
  "setup:crawler": "npx playwright install chromium",
24
26
  "crawl:full": "tsx tools/crawl-full.ts",
25
27
  "crawl:navigation": "tsx crawler/cli/crawl-navigation.ts",
@@ -28,15 +30,19 @@
28
30
  "mcp:server": "npm run build:server && node dist/index.mjs"
29
31
  },
30
32
  "dependencies": {
31
- "@modelcontextprotocol/sdk": "1.26.0",
33
+ "@modelcontextprotocol/sdk": "1.29.0",
32
34
  "flexsearch": "0.8.212",
33
35
  "zod": "4.3.6"
34
36
  },
37
+ "overrides": {
38
+ "@hono/node-server": "1.19.13",
39
+ "hono": "4.12.12"
40
+ },
35
41
  "devDependencies": {
36
- "@types/node": "22.19.11",
37
- "playwright": "1.58.2",
38
- "tsdown": "0.20.3",
42
+ "@types/node": "24.12.2",
43
+ "playwright": "1.59.1",
44
+ "tsdown": "0.21.7",
39
45
  "tsx": "4.21.0",
40
- "typescript": "5.9.3"
46
+ "typescript": "6.0.2"
41
47
  }
42
48
  }