@smwb/ui-mcp-react 2.1.3 → 2.2.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/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/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/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/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/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/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/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 +2 -2
- package/server.mjs +3 -3
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "Menu",
|
|
3
3
|
"description": "Dropdown menu anchored to a trigger element.",
|
|
4
|
+
"ssr": {
|
|
5
|
+
"safe": true,
|
|
6
|
+
"rendering": "universal",
|
|
7
|
+
"note": "The trigger renders on the server; the menu surface mounts on the client."
|
|
8
|
+
},
|
|
4
9
|
"extends": [
|
|
5
10
|
"MenuFloatingProps &\n React.HTMLAttributes<HTMLElement> & {\n variant?: \"static\" | \"floating\";\n dense?: boolean;\n }"
|
|
6
11
|
],
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "MenuFloating",
|
|
3
3
|
"description": "Floating positioned surface used by menus and popovers.",
|
|
4
|
+
"ssr": {
|
|
5
|
+
"safe": true,
|
|
6
|
+
"rendering": "client",
|
|
7
|
+
"note": "Floating surface portaled on the client; nothing is emitted during SSR."
|
|
8
|
+
},
|
|
4
9
|
"extends": [
|
|
5
10
|
"React.HTMLAttributes<HTMLDivElement>"
|
|
6
11
|
],
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "MenuSubmenu",
|
|
3
3
|
"description": "Nested submenu with hover or click activation.",
|
|
4
|
+
"ssr": {
|
|
5
|
+
"safe": true,
|
|
6
|
+
"rendering": "universal"
|
|
7
|
+
},
|
|
4
8
|
"extends": [
|
|
5
9
|
"Pick<MenuFloatingProps, \"placement\" | \"onClose\"> &\n React.HTMLAttributes<HTMLDivElement> & {\n toggleElement?: React.ReactElement;\n /** Items and/or nested `MenuSubmenu` elements (multi-level supported). */\n children: React.ReactNode;\n /** Open the submenu on pointer hover in addition to click. */\n openOnHover?: boolean;\n }"
|
|
6
10
|
],
|
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.2.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,7 +28,7 @@
|
|
|
28
28
|
"zod": "^4.4.3"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
|
-
"@smwb/ui-react": "^2.
|
|
31
|
+
"@smwb/ui-react": "^2.2.0",
|
|
32
32
|
"@smwb/ui-styles": "^1.0.3",
|
|
33
33
|
"glob": "^13.0.6",
|
|
34
34
|
"typescript": "^6.0.3",
|
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()
|