@smwb/ui-mcp-react 2.1.3 → 2.3.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 +13 -1
- package/component-meta/base/icon/icon.json +4 -0
- package/component-meta/base/ripple/ripple.json +4 -0
- package/component-meta/clickAwayListener/clickAwayListener.json +4 -0
- package/component-meta/connects/rt/table/draggableHeader.draggableColumnHeader.json +4 -0
- package/component-meta/connects/rt/table/draggableHeader.draggableColumnHeaderWrapper.json +4 -0
- package/component-meta/connects/rt/table/headerCellRenderer.json +4 -0
- package/component-meta/connects/rt/table/table.json +4 -0
- package/component-meta/dataDisplay/accordion/accordion.json +4 -0
- package/component-meta/dataDisplay/assetGrid/assetGrid.json +77 -0
- package/component-meta/dataDisplay/avatar/avatar.avatarGroup.json +4 -0
- package/component-meta/dataDisplay/avatar/avatar.json +4 -0
- package/component-meta/dataDisplay/badge/badge.json +4 -0
- package/component-meta/dataDisplay/card/card.json +4 -0
- package/component-meta/dataDisplay/carousel/carousel.json +5 -0
- package/component-meta/dataDisplay/chat/chat.json +4 -0
- package/component-meta/dataDisplay/chat/chatAttachmentImage.json +5 -0
- package/component-meta/dataDisplay/chat/chatAttachments.json +4 -0
- package/component-meta/dataDisplay/chat/chatComposer.json +4 -0
- package/component-meta/dataDisplay/chat/chatHeader.json +4 -0
- package/component-meta/dataDisplay/chat/chatIconButton.json +4 -0
- package/component-meta/dataDisplay/chat/chatLayout.chatLayoutChat.json +4 -0
- package/component-meta/dataDisplay/chat/chatLayout.json +4 -0
- package/component-meta/dataDisplay/chat/chatMessageAvatar.json +4 -0
- package/component-meta/dataDisplay/chat/chatMessageBubble.json +4 -0
- package/component-meta/dataDisplay/chat/chatMessageIncoming.json +4 -0
- package/component-meta/dataDisplay/chat/chatMessageItem.json +4 -0
- package/component-meta/dataDisplay/chat/chatMessageOutgoing.json +4 -0
- package/component-meta/dataDisplay/chat/chatMessageSkeleton.json +4 -0
- package/component-meta/dataDisplay/chat/chatMessageStatus.json +4 -0
- package/component-meta/dataDisplay/chat/chatMessageSystem.json +4 -0
- package/component-meta/dataDisplay/chat/chatMessages.json +4 -0
- package/component-meta/dataDisplay/chat/chatOverlayLayout.chatOverlayLayoutChat.json +4 -0
- package/component-meta/dataDisplay/chat/chatOverlayLayout.json +4 -0
- package/component-meta/dataDisplay/chat/chatShell.json +5 -0
- package/component-meta/dataDisplay/chip/chip.json +4 -0
- package/component-meta/dataDisplay/chipGroup/chipGroup.json +62 -0
- package/component-meta/dataDisplay/expansionPanel/expansionPanel.json +5 -0
- package/component-meta/dataDisplay/imagesList/imagesList.json +4 -0
- package/component-meta/dataDisplay/imagesList/imagesListItem/imagesListItem.json +5 -0
- package/component-meta/dataDisplay/imagesList/imagesListItem/imagesListItemModal.json +5 -0
- package/component-meta/dataDisplay/lazyImage/lazyImage.json +56 -0
- package/component-meta/dataDisplay/list/list.json +4 -0
- package/component-meta/dataDisplay/list/listItem.json +4 -0
- package/component-meta/dataDisplay/table/table.json +4 -0
- package/component-meta/dataDisplay/table/tableBody.json +4 -0
- package/component-meta/dataDisplay/table/tableCell.json +4 -0
- package/component-meta/dataDisplay/table/tableHead.json +4 -0
- package/component-meta/dataDisplay/table/tableHeadCell.json +4 -0
- package/component-meta/dataDisplay/table/tablePagination/tablePagination.baseTablePagination.json +4 -0
- package/component-meta/dataDisplay/table/tablePagination/tablePagination.json +4 -0
- package/component-meta/dataDisplay/table/tableRow.json +4 -0
- package/component-meta/dataDisplay/thumbCard/thumbCard.json +83 -0
- package/component-meta/dataDisplay/treeView/treeView.json +4 -0
- package/component-meta/dataDisplay/typography/typography.json +4 -0
- package/component-meta/feedBack/message/message.json +4 -0
- package/component-meta/feedBack/modal/modal.content.json +4 -0
- package/component-meta/feedBack/modal/modal.footer.json +4 -0
- package/component-meta/feedBack/modal/modal.header.json +4 -0
- package/component-meta/feedBack/modal/modal.json +5 -0
- package/component-meta/feedBack/progressIndicator/progressIndicator.circularProgress.json +4 -0
- package/component-meta/feedBack/progressIndicator/progressIndicator.json +4 -0
- package/component-meta/feedBack/saveAssetDialog/saveAssetDialog.json +101 -0
- package/component-meta/feedBack/skeleton/skeleton.json +4 -0
- package/component-meta/feedBack/snackbar/snackbar.json +5 -0
- package/component-meta/feedBack/snackbar/snackbar.snackbarsProvider.json +4 -0
- package/component-meta/feedBack/tooltip/tooltip.json +5 -0
- package/component-meta/inputs/button/button.json +4 -0
- package/component-meta/inputs/buttonGroups/buttonGroup.json +4 -0
- package/component-meta/inputs/checkbox/checkbox.json +4 -0
- package/component-meta/inputs/datePicker/dataPickerDays.json +4 -0
- package/component-meta/inputs/datePicker/dataPickerHeader.json +4 -0
- package/component-meta/inputs/datePicker/dataPickerInput.json +4 -0
- package/component-meta/inputs/datePicker/datePicker.json +5 -0
- package/component-meta/inputs/datePicker/datePickerIconButton.json +4 -0
- package/component-meta/inputs/datePicker/datePickerList.json +4 -0
- package/component-meta/inputs/dateTimePicker/dateTimePicker.json +5 -0
- package/component-meta/inputs/dateTimePicker/dateTimePickerInput.json +4 -0
- package/component-meta/inputs/fileDrop/countPreview.json +4 -0
- package/component-meta/inputs/fileDrop/fileDrop.json +4 -0
- package/component-meta/inputs/fileDrop/preview.json +4 -0
- package/component-meta/inputs/fileDrop/previewWrapper.json +4 -0
- package/component-meta/inputs/fileInput/fileInput.json +4 -0
- package/component-meta/inputs/floatingButton/floatingButton.json +4 -0
- package/component-meta/inputs/radioButton/radioButton.json +4 -0
- package/component-meta/inputs/rating/rating.json +4 -0
- package/component-meta/inputs/selectField/dropdownMenu.json +4 -0
- package/component-meta/inputs/selectField/selectField.json +5 -0
- package/component-meta/inputs/slider/slider.json +4 -0
- package/component-meta/inputs/textField/textField.json +4 -0
- package/component-meta/inputs/textField/textFieldAdornment.json +4 -0
- package/component-meta/inputs/textField/textFieldWrapper.json +4 -0
- package/component-meta/inputs/timePicker/timePicker.json +5 -0
- package/component-meta/inputs/timePicker/timePickerColumns.json +4 -0
- package/component-meta/inputs/timePicker/timePickerInput.json +4 -0
- package/component-meta/inputs/timePicker/timePickerList.json +4 -0
- package/component-meta/inputs/toggle/toggle.json +4 -0
- package/component-meta/inputs/valueSlider/valueSlider.json +151 -0
- package/component-meta/layout/appLayout/appLayout.json +4 -0
- package/component-meta/layout/divider/divider.json +4 -0
- package/component-meta/layout/grid/grid.column.json +4 -0
- package/component-meta/layout/grid/grid.container.json +4 -0
- package/component-meta/layout/grid/grid.row.json +4 -0
- package/component-meta/layout/page/page.json +4 -0
- package/component-meta/layout/pageHeader/pageHeader.json +4 -0
- package/component-meta/layout/screenDivider/screenDivider.json +4 -0
- package/component-meta/layout/sheet/sheet.json +5 -0
- package/component-meta/layout/stack/stack.json +4 -0
- package/component-meta/navigation/appBar/appBar.json +4 -0
- package/component-meta/navigation/bottomBar/bottomBar.bottomBarMenuItem.json +4 -0
- package/component-meta/navigation/bottomBar/bottomBar.json +4 -0
- package/component-meta/navigation/breadcrumbs/breadcrumbs.json +4 -0
- package/component-meta/navigation/menu/menu.json +5 -0
- package/component-meta/navigation/menu/menuDivider.json +4 -0
- package/component-meta/navigation/menu/menuFloating.json +5 -0
- package/component-meta/navigation/menu/menuItem.json +4 -0
- package/component-meta/navigation/menu/menuItemIcon.json +4 -0
- package/component-meta/navigation/menu/menuItemText.json +4 -0
- package/component-meta/navigation/menu/menuList.json +4 -0
- package/component-meta/navigation/menu/menuSubmenu.json +4 -0
- package/component-meta/navigation/overflowMenu/overflowMenu.json +56 -0
- package/component-meta/navigation/pagination/pagination.json +4 -0
- package/component-meta/navigation/sidebar/sidebar.json +4 -0
- package/component-meta/navigation/sidebar/sidebar.menuItem.json +4 -0
- package/component-meta/navigation/stepper/stepper.json +4 -0
- package/component-meta/navigation/tabs/tab/tab.json +4 -0
- package/component-meta/navigation/tabs/tabs.json +4 -0
- package/componentMeta.mjs +4 -0
- package/package.json +3 -3
- package/server.mjs +3 -3
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "OverflowMenu",
|
|
3
|
+
"description": "One-shot kebab/overflow menu from an items array (trigger + floating Menu).",
|
|
4
|
+
"ssr": {
|
|
5
|
+
"safe": true,
|
|
6
|
+
"rendering": "universal",
|
|
7
|
+
"note": "The trigger button renders on the server; the menu surface mounts on the client."
|
|
8
|
+
},
|
|
9
|
+
"styles": {
|
|
10
|
+
"base": [
|
|
11
|
+
"@smwb/ui-styles/less/foundation.less",
|
|
12
|
+
"@smwb/ui-styles/less/theme.less"
|
|
13
|
+
],
|
|
14
|
+
"entries": [
|
|
15
|
+
"@smwb/ui-styles/less/components/overflowMenu/overflowMenu.entry.less"
|
|
16
|
+
],
|
|
17
|
+
"dependencies": [
|
|
18
|
+
"@smwb/ui-styles/less/components/button/button.entry.less",
|
|
19
|
+
"@smwb/ui-styles/less/components/icon/icon.entry.less",
|
|
20
|
+
"@smwb/ui-styles/less/components/menu/menu.entry.less"
|
|
21
|
+
],
|
|
22
|
+
"importExample": "@import (less) \"node_modules/@smwb/ui-styles/less/foundation.less\";\n@import (less) \"node_modules/@smwb/ui-styles/less/theme.less\";\n@import (less) \"node_modules/@smwb/ui-styles/less/components/overflowMenu/overflowMenu.entry.less\";\n@import (less) \"node_modules/@smwb/ui-styles/less/components/button/button.entry.less\";\n@import (less) \"node_modules/@smwb/ui-styles/less/components/icon/icon.entry.less\";\n@import (less) \"node_modules/@smwb/ui-styles/less/components/menu/menu.entry.less\";"
|
|
23
|
+
},
|
|
24
|
+
"props": {
|
|
25
|
+
"items": {
|
|
26
|
+
"type": "OverflowMenuItem[]",
|
|
27
|
+
"required": true,
|
|
28
|
+
"description": "Breadcrumb or navigation items."
|
|
29
|
+
},
|
|
30
|
+
"icon": {
|
|
31
|
+
"type": "string",
|
|
32
|
+
"required": false,
|
|
33
|
+
"description": "Trigger icon name (default `more_vert`)."
|
|
34
|
+
},
|
|
35
|
+
"placement": {
|
|
36
|
+
"type": "Placement",
|
|
37
|
+
"required": false,
|
|
38
|
+
"description": "Preferred floating placement relative to the anchor."
|
|
39
|
+
},
|
|
40
|
+
"aria-label": {
|
|
41
|
+
"type": "string",
|
|
42
|
+
"required": false,
|
|
43
|
+
"description": "Accessible label when no visible title is present."
|
|
44
|
+
},
|
|
45
|
+
"disabled": {
|
|
46
|
+
"type": "boolean",
|
|
47
|
+
"required": false,
|
|
48
|
+
"description": "Whether the control is disabled and non-interactive."
|
|
49
|
+
},
|
|
50
|
+
"className": {
|
|
51
|
+
"type": "string",
|
|
52
|
+
"required": false,
|
|
53
|
+
"description": "Additional CSS class name(s) for the root element."
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
package/componentMeta.mjs
CHANGED
|
@@ -306,6 +306,7 @@ export function parseComponentMetaFile(absolutePath, relativePath) {
|
|
|
306
306
|
id,
|
|
307
307
|
name: parsed.name,
|
|
308
308
|
description: parsed.description ?? "",
|
|
309
|
+
ssr: parsed.ssr,
|
|
309
310
|
extends: parsed.extends,
|
|
310
311
|
inheritedAttributes: parsed.inheritedAttributes,
|
|
311
312
|
styles: parsed.styles,
|
|
@@ -349,6 +350,7 @@ export function searchComponents(catalog, query, limit = 10) {
|
|
|
349
350
|
id: entry.id,
|
|
350
351
|
name: entry.name,
|
|
351
352
|
description: entry.description,
|
|
353
|
+
ssr: entry.ssr,
|
|
352
354
|
propCount: entry.propNames.length,
|
|
353
355
|
}));
|
|
354
356
|
}
|
|
@@ -373,6 +375,7 @@ export function searchComponents(catalog, query, limit = 10) {
|
|
|
373
375
|
id: entry.id,
|
|
374
376
|
name: entry.name,
|
|
375
377
|
description: entry.description,
|
|
378
|
+
ssr: entry.ssr,
|
|
376
379
|
propCount: entry.propNames.length,
|
|
377
380
|
score,
|
|
378
381
|
matchReasons: reasons,
|
|
@@ -413,6 +416,7 @@ export function getComponentProps(catalog, nameOrId) {
|
|
|
413
416
|
id: entry.id,
|
|
414
417
|
name: entry.name,
|
|
415
418
|
description: entry.description,
|
|
419
|
+
ssr: entry.ssr,
|
|
416
420
|
extends: entry.extends,
|
|
417
421
|
inheritedAttributes: entry.inheritedAttributes,
|
|
418
422
|
styles: entry.styles,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@smwb/ui-mcp-react",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.3.0",
|
|
4
4
|
"description": "Model Context Protocol server exposing the @smwb/ui-react (React) component catalog and customization guide.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -28,8 +28,8 @@
|
|
|
28
28
|
"zod": "^4.4.3"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
|
-
"@smwb/ui-react": "^2.
|
|
32
|
-
"@smwb/ui-styles": "^1.0
|
|
31
|
+
"@smwb/ui-react": "^2.3.0",
|
|
32
|
+
"@smwb/ui-styles": "^1.1.0",
|
|
33
33
|
"glob": "^13.0.6",
|
|
34
34
|
"typescript": "^6.0.3",
|
|
35
35
|
"vitest": "^2.1.9"
|
package/server.mjs
CHANGED
|
@@ -20,7 +20,7 @@ const server = new McpServer(
|
|
|
20
20
|
},
|
|
21
21
|
{
|
|
22
22
|
instructions:
|
|
23
|
-
"@smwb/ui-react component catalog and customization guide. Use search_components / get_component_props for API metadata, and search_customization / get_customization for theming and appearance options.",
|
|
23
|
+
"@smwb/ui-react component catalog and customization guide. Use search_components / get_component_props for API metadata, and search_customization / get_customization for theming and appearance options. Every component exposes an `ssr` field: `safe` (always true — nothing throws during renderToString), `rendering` (\"universal\" = emits static HTML on the server and hydrates; \"client\" = a pure overlay that renders nothing server-side and mounts via a portal after hydration), and an optional `note`.",
|
|
24
24
|
}
|
|
25
25
|
);
|
|
26
26
|
|
|
@@ -29,7 +29,7 @@ server.registerTool(
|
|
|
29
29
|
{
|
|
30
30
|
title: "Search @smwb/ui-react components",
|
|
31
31
|
description:
|
|
32
|
-
"Search the @smwb/ui-react component catalog by exact, partial, fuzzy, or multi-word queries across names, ids, descriptions, and prop names.",
|
|
32
|
+
"Search the @smwb/ui-react component catalog by exact, partial, fuzzy, or multi-word queries across names, ids, descriptions, and prop names. Each result includes its `ssr` classification (`rendering`: \"universal\" or \"client\").",
|
|
33
33
|
inputSchema: z.object({
|
|
34
34
|
query: z.string().describe("Search query, for example: button, chat, text field"),
|
|
35
35
|
limit: z.number().int().min(1).max(50).optional().describe("Maximum number of matches to return"),
|
|
@@ -54,7 +54,7 @@ server.registerTool(
|
|
|
54
54
|
{
|
|
55
55
|
title: "Get @smwb/ui-react component props",
|
|
56
56
|
description:
|
|
57
|
-
"Return the full metadata document for a @smwb/ui-react component, including prop names, types, required flags, descriptions, and required Less imports (`styles.base`, `styles.entries`, `styles.dependencies`, `styles.importExample`).",
|
|
57
|
+
"Return the full metadata document for a @smwb/ui-react component, including prop names, types, required flags, descriptions, SSR classification (`ssr.safe`, `ssr.rendering`, `ssr.note`), and required Less imports (`styles.base`, `styles.entries`, `styles.dependencies`, `styles.importExample`).",
|
|
58
58
|
inputSchema: z.object({
|
|
59
59
|
nameOrId: z
|
|
60
60
|
.string()
|