@smwb/ui-mcp-solid 0.2.2 → 0.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/animateHeight/animateHeight.json +4 -0
- 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/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.json +5 -0
- package/component-meta/feedBack/modal/modal.modalSlot.json +4 -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/datePickerActionLabel.json +4 -0
- package/component-meta/inputs/datePicker/datePickerDay.json +4 -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.sidebarMenuItem.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
package/README.md
CHANGED
|
@@ -11,7 +11,7 @@ guide to AI coding assistants (Cursor, Claude Desktop/Code, Copilot, …).
|
|
|
11
11
|
| Tool | Purpose |
|
|
12
12
|
| --- | --- |
|
|
13
13
|
| `search_components` | Find components by name, id, description, or prop keywords |
|
|
14
|
-
| `get_component_props` | Full metadata for one component: props (types, required, descriptions) + required LESS imports (`styles.base` / `styles.entries` / `styles.dependencies` / `styles.importExample`) |
|
|
14
|
+
| `get_component_props` | Full metadata for one component: props (types, required, descriptions), SSR classification (`ssr.safe` / `ssr.rendering` / `ssr.note`) + required LESS imports (`styles.base` / `styles.entries` / `styles.dependencies` / `styles.importExample`) |
|
|
15
15
|
| `search_customization` | Global theming options and per-component customization approaches |
|
|
16
16
|
| `get_customization` | What and how to customize a component or a global topic |
|
|
17
17
|
|
|
@@ -45,6 +45,18 @@ Communicates over **stdio** only (no HTTP port); startup log goes to stderr.
|
|
|
45
45
|
|
|
46
46
|
Component ids follow the metadata path, e.g. `dataDisplay/chat/chat`.
|
|
47
47
|
|
|
48
|
+
## SSR
|
|
49
|
+
|
|
50
|
+
Every component carries an `ssr` field (also surfaced in `search_components` results):
|
|
51
|
+
|
|
52
|
+
- `safe` — always `true`: nothing in `@smwb/ui-solid` touches a browser global at module load or
|
|
53
|
+
during render, so `renderToString` never throws.
|
|
54
|
+
- `rendering` — `"universal"` (emits meaningful static HTML on the server and hydrates) or
|
|
55
|
+
`"client"` (a pure overlay such as `Modal`/`Sheet` that renders nothing on the server and mounts
|
|
56
|
+
through a portal after hydration).
|
|
57
|
+
- `note` — optional hint, e.g. that a picker's input renders on the server while its popup is
|
|
58
|
+
client-only.
|
|
59
|
+
|
|
48
60
|
## How the catalog is built
|
|
49
61
|
|
|
50
62
|
Component metadata is generated from the `@smwb/ui-solid` TypeScript prop interfaces
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "Carousel",
|
|
3
3
|
"description": "Scrollable media carousel with navigation and autoplay.",
|
|
4
|
+
"ssr": {
|
|
5
|
+
"safe": true,
|
|
6
|
+
"rendering": "universal",
|
|
7
|
+
"note": "Renders inline on the server; the fullscreen lightbox is portaled on the client."
|
|
8
|
+
},
|
|
4
9
|
"styles": {
|
|
5
10
|
"base": [
|
|
6
11
|
"@smwb/ui-styles/less/foundation.less",
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "Chat",
|
|
3
3
|
"description": "Chat dialog with layout modes, infinite scroll, attachments, and delivery statuses.",
|
|
4
|
+
"ssr": {
|
|
5
|
+
"safe": true,
|
|
6
|
+
"rendering": "universal"
|
|
7
|
+
},
|
|
4
8
|
"extends": [
|
|
5
9
|
"ParentProps",
|
|
6
10
|
"Omit<ChatMessageRenderContext, \"showAvatars\" | \"showAttachments\">"
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ChatAttachmentImage",
|
|
3
3
|
"description": "Clickable chat image attachment with fullscreen preview.",
|
|
4
|
+
"ssr": {
|
|
5
|
+
"safe": true,
|
|
6
|
+
"rendering": "universal",
|
|
7
|
+
"note": "Renders the thumbnail on the server; the fullscreen preview is portaled on the client."
|
|
8
|
+
},
|
|
4
9
|
"styles": {
|
|
5
10
|
"base": [
|
|
6
11
|
"@smwb/ui-styles/less/foundation.less",
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ChatLayoutChat",
|
|
3
3
|
"description": "Chat Layout Chat component from the dataDisplay module.",
|
|
4
|
+
"ssr": {
|
|
5
|
+
"safe": true,
|
|
6
|
+
"rendering": "universal"
|
|
7
|
+
},
|
|
4
8
|
"extends": [
|
|
5
9
|
"Omit<\n ChatProps,\n | \"class\"\n | \"embedded\"\n | \"floatingTrigger\"\n | \"anchor\"\n | \"allowedLayouts\"\n | \"layout\"\n | \"defaultLayout\"\n | \"open\"\n | \"defaultOpen\"\n | \"onOpenChange\"\n | \"onLayoutChange\"\n>"
|
|
6
10
|
],
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ChatOverlayLayoutChat",
|
|
3
3
|
"description": "Chat Overlay Layout Chat component from the dataDisplay module.",
|
|
4
|
+
"ssr": {
|
|
5
|
+
"safe": true,
|
|
6
|
+
"rendering": "universal"
|
|
7
|
+
},
|
|
4
8
|
"extends": [
|
|
5
9
|
"Omit<\n ChatProps,\n | \"class\"\n | \"overlayContext\"\n | \"embedded\"\n | \"floatingTrigger\"\n | \"anchor\"\n | \"allowedLayouts\"\n | \"layout\"\n | \"defaultLayout\"\n | \"onLayoutChange\"\n | \"open\"\n | \"defaultOpen\"\n | \"onOpenChange\"\n>"
|
|
6
10
|
],
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ChatShell",
|
|
3
3
|
"description": "Positioned chat container shell with header, body, and footer slots.",
|
|
4
|
+
"ssr": {
|
|
5
|
+
"safe": true,
|
|
6
|
+
"rendering": "universal",
|
|
7
|
+
"note": "Renders inline on the server; the fullscreen layout is portaled on the client."
|
|
8
|
+
},
|
|
4
9
|
"extends": [
|
|
5
10
|
"ParentProps"
|
|
6
11
|
],
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ExpansionPanel",
|
|
3
3
|
"description": "Panel with customizable controls and responsive fullscreen mode.",
|
|
4
|
+
"ssr": {
|
|
5
|
+
"safe": true,
|
|
6
|
+
"rendering": "universal",
|
|
7
|
+
"note": "Renders inline on the server; fullscreen mode is portaled on the client."
|
|
8
|
+
},
|
|
4
9
|
"styles": {
|
|
5
10
|
"base": [
|
|
6
11
|
"@smwb/ui-styles/less/foundation.less",
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ImagesListItem",
|
|
3
3
|
"description": "Single tile inside an ImagesList grid.",
|
|
4
|
+
"ssr": {
|
|
5
|
+
"safe": true,
|
|
6
|
+
"rendering": "universal",
|
|
7
|
+
"note": "Renders the tile on the server; the fullscreen modal is portaled on the client."
|
|
8
|
+
},
|
|
4
9
|
"styles": {
|
|
5
10
|
"base": [
|
|
6
11
|
"@smwb/ui-styles/less/foundation.less",
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ImagesListItemModal",
|
|
3
3
|
"description": "Fullscreen modal viewer for an ImagesList item.",
|
|
4
|
+
"ssr": {
|
|
5
|
+
"safe": true,
|
|
6
|
+
"rendering": "client",
|
|
7
|
+
"note": "Fullscreen viewer portaled on the client; nothing is emitted during SSR."
|
|
8
|
+
},
|
|
4
9
|
"styles": {
|
|
5
10
|
"base": [
|
|
6
11
|
"@smwb/ui-styles/less/foundation.less",
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "Modal",
|
|
3
3
|
"description": "Dialog overlay with focus trap and composable header, content, and footer.",
|
|
4
|
+
"ssr": {
|
|
5
|
+
"safe": true,
|
|
6
|
+
"rendering": "client",
|
|
7
|
+
"note": "Renders nothing on the server; the dialog is portaled into <body> on the client after hydration."
|
|
8
|
+
},
|
|
4
9
|
"styles": {
|
|
5
10
|
"base": [
|
|
6
11
|
"@smwb/ui-styles/less/foundation.less",
|