@smwb/ui-mcp-solid 0.4.1 → 0.6.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.
@@ -0,0 +1,77 @@
1
+ {
2
+ "name": "AssetGrid",
3
+ "description": "Virtualized, data-shape-agnostic asset grid with a renderItem slot and empty/loading states.",
4
+ "ssr": {
5
+ "safe": true,
6
+ "rendering": "universal",
7
+ "note": "Renders a plain grid of all items on the server; virtualizes after the client mounts and measures."
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/assetGrid/assetGrid.entry.less"
16
+ ],
17
+ "dependencies": [],
18
+ "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/assetGrid/assetGrid.entry.less\";"
19
+ },
20
+ "props": {
21
+ "items": {
22
+ "type": "T[]",
23
+ "required": true,
24
+ "description": "Breadcrumb or navigation items."
25
+ },
26
+ "renderItem": {
27
+ "type": "(item: T, index: number) => JSX.Element",
28
+ "required": true,
29
+ "description": "Render one cell. `index` is the absolute index into `items`."
30
+ },
31
+ "minColumn": {
32
+ "type": "number",
33
+ "required": false,
34
+ "description": "Minimum column width (px); drives the column count from the measured width. Default 160."
35
+ },
36
+ "rowHeight": {
37
+ "type": "number",
38
+ "required": true,
39
+ "description": "Fixed cell height (px)."
40
+ },
41
+ "gap": {
42
+ "type": "number",
43
+ "required": false,
44
+ "description": "Gap (px) between cells on both axes. Default 8."
45
+ },
46
+ "overscan": {
47
+ "type": "number",
48
+ "required": false,
49
+ "description": "Extra rows rendered above/below the viewport. Default 2."
50
+ },
51
+ "loading": {
52
+ "type": "boolean",
53
+ "required": false,
54
+ "description": "Whether content is loading."
55
+ },
56
+ "loadingCount": {
57
+ "type": "number",
58
+ "required": false,
59
+ "description": "Skeleton tile count while loading. Default 12."
60
+ },
61
+ "emptyLabel": {
62
+ "type": "JSX.Element",
63
+ "required": false,
64
+ "description": "Empty Label. Optional. Type: JSX.Element."
65
+ },
66
+ "class": {
67
+ "type": "string",
68
+ "required": false,
69
+ "description": "Class. Optional. Type: string."
70
+ },
71
+ "style": {
72
+ "type": "JSX.CSSProperties | string",
73
+ "required": false,
74
+ "description": "Inline CSS styles for the root element."
75
+ }
76
+ }
77
+ }
@@ -0,0 +1,62 @@
1
+ {
2
+ "name": "ChipGroup",
3
+ "description": "Single/multi-select toggle group built on Chip, for filters and segmented controls.",
4
+ "ssr": {
5
+ "safe": true,
6
+ "rendering": "universal"
7
+ },
8
+ "extends": [
9
+ "Omit<JSX.HTMLAttributes<HTMLDivElement>, \"onChange\">"
10
+ ],
11
+ "inheritedAttributes": "Also accepts standard HTML attributes for the underlying element (see extends clause in TypeScript).",
12
+ "styles": {
13
+ "base": [
14
+ "@smwb/ui-styles/less/foundation.less",
15
+ "@smwb/ui-styles/less/theme.less"
16
+ ],
17
+ "entries": [
18
+ "@smwb/ui-styles/less/components/chipGroup/chipGroup.entry.less"
19
+ ],
20
+ "dependencies": [
21
+ "@smwb/ui-styles/less/components/chip/chip.entry.less"
22
+ ],
23
+ "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/chipGroup/chipGroup.entry.less\";\n@import (less) \"node_modules/@smwb/ui-styles/less/components/chip/chip.entry.less\";"
24
+ },
25
+ "props": {
26
+ "options": {
27
+ "type": "ChipGroupOption[]",
28
+ "required": true,
29
+ "description": "Selectable options list."
30
+ },
31
+ "value": {
32
+ "type": "string | string[]",
33
+ "required": false,
34
+ "description": "Selected value (single) or values (when `multiple`)."
35
+ },
36
+ "multiple": {
37
+ "type": "boolean",
38
+ "required": false,
39
+ "description": "Allow more than one selected chip (value becomes a string[])."
40
+ },
41
+ "onChange": {
42
+ "type": "(value: string | string[]) => void",
43
+ "required": false,
44
+ "description": "Callback fired when the value changes."
45
+ },
46
+ "size": {
47
+ "type": "\"small\" | \"medium\"",
48
+ "required": false,
49
+ "description": "Visual size preset."
50
+ },
51
+ "color": {
52
+ "type": "ChipColor",
53
+ "required": false,
54
+ "description": "Semantic color token."
55
+ },
56
+ "disabled": {
57
+ "type": "boolean",
58
+ "required": false,
59
+ "description": "Whether the control is disabled and non-interactive."
60
+ }
61
+ }
62
+ }
@@ -0,0 +1,61 @@
1
+ {
2
+ "name": "LazyImage",
3
+ "description": "Image with a built-in onError fallback and optional in-viewport lazy loading.",
4
+ "ssr": {
5
+ "safe": true,
6
+ "rendering": "universal",
7
+ "note": "Renders the image markup on the server; the IntersectionObserver lazy-load runs on the client."
8
+ },
9
+ "extends": [
10
+ "Omit<JSX.ImgHTMLAttributes<HTMLImageElement>, \"onError\">"
11
+ ],
12
+ "inheritedAttributes": "Also accepts standard HTML attributes for the underlying element (see extends clause in TypeScript).",
13
+ "styles": {
14
+ "base": [
15
+ "@smwb/ui-styles/less/foundation.less",
16
+ "@smwb/ui-styles/less/theme.less"
17
+ ],
18
+ "entries": [
19
+ "@smwb/ui-styles/less/components/lazyImage/lazyImage.entry.less"
20
+ ],
21
+ "dependencies": [],
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/lazyImage/lazyImage.entry.less\";"
23
+ },
24
+ "props": {
25
+ "src": {
26
+ "type": "string | undefined",
27
+ "required": false,
28
+ "description": "Image URL. When absent (or after a load error) the `fallback` is shown."
29
+ },
30
+ "alt": {
31
+ "type": "string | undefined",
32
+ "required": false,
33
+ "description": "Alternative text for images or icons."
34
+ },
35
+ "fallback": {
36
+ "type": "JSX.Element | undefined",
37
+ "required": false,
38
+ "description": "Rendered in place of the image when it is missing or fails to load."
39
+ },
40
+ "lazy": {
41
+ "type": "boolean",
42
+ "required": false,
43
+ "description": "Defer loading until the image scrolls into view (IntersectionObserver). Default true."
44
+ },
45
+ "aspectRatio": {
46
+ "type": "string | number",
47
+ "required": false,
48
+ "description": "CSS `aspect-ratio` for the wrapper (e.g. `1`, `\"4 / 3\"`) to reserve space before load."
49
+ },
50
+ "onError": {
51
+ "type": "(event: Event) => void",
52
+ "required": false,
53
+ "description": "Fires on a load error (after the fallback is swapped in)."
54
+ },
55
+ "ref": {
56
+ "type": "Ref<HTMLImageElement>",
57
+ "required": false,
58
+ "description": "Ref. Optional. Type: Ref<HTMLImageElement>."
59
+ }
60
+ }
61
+ }
@@ -0,0 +1,88 @@
1
+ {
2
+ "name": "ThumbCard",
3
+ "description": "Selectable gallery card with image fallback, corner action slots, and a hover preview.",
4
+ "ssr": {
5
+ "safe": true,
6
+ "rendering": "universal",
7
+ "note": "Renders the card + image on the server; the hover preview is portaled on the client."
8
+ },
9
+ "extends": [
10
+ "Omit<JSX.HTMLAttributes<HTMLDivElement>, \"onSelect\">"
11
+ ],
12
+ "inheritedAttributes": "Also accepts standard HTML attributes for the underlying element (see extends clause in TypeScript).",
13
+ "styles": {
14
+ "base": [
15
+ "@smwb/ui-styles/less/foundation.less",
16
+ "@smwb/ui-styles/less/theme.less"
17
+ ],
18
+ "entries": [
19
+ "@smwb/ui-styles/less/components/thumbCard/thumbCard.entry.less"
20
+ ],
21
+ "dependencies": [
22
+ "@smwb/ui-styles/less/components/lazyImage/lazyImage.entry.less"
23
+ ],
24
+ "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/thumbCard/thumbCard.entry.less\";\n@import (less) \"node_modules/@smwb/ui-styles/less/components/lazyImage/lazyImage.entry.less\";"
25
+ },
26
+ "props": {
27
+ "src": {
28
+ "type": "string",
29
+ "required": false,
30
+ "description": "Thumbnail URL; falls back to `fallback` when missing / failed."
31
+ },
32
+ "caption": {
33
+ "type": "JSX.Element",
34
+ "required": false,
35
+ "description": "Caption. Optional. Type: JSX.Element."
36
+ },
37
+ "selected": {
38
+ "type": "boolean",
39
+ "required": false,
40
+ "description": "Controlled selected tab index or value."
41
+ },
42
+ "onSelect": {
43
+ "type": "() => void",
44
+ "required": false,
45
+ "description": "Makes the card a selectable button (keyboard + `aria-pressed`)."
46
+ },
47
+ "fallback": {
48
+ "type": "JSX.Element",
49
+ "required": false,
50
+ "description": "Shown in place of the image when `src` is missing / fails."
51
+ },
52
+ "hoverPreview": {
53
+ "type": "JSX.Element | string",
54
+ "required": false,
55
+ "description": "A larger preview shown in a floating popup after a hover delay."
56
+ },
57
+ "topStart": {
58
+ "type": "JSX.Element",
59
+ "required": false,
60
+ "description": "Top-left overlay slot (e.g. a favourite star)."
61
+ },
62
+ "topEnd": {
63
+ "type": "JSX.Element",
64
+ "required": false,
65
+ "description": "Top-right overlay slot (e.g. a kebab menu)."
66
+ },
67
+ "lazy": {
68
+ "type": "boolean",
69
+ "required": false,
70
+ "description": "Lazy. Optional. Type: boolean."
71
+ },
72
+ "disabled": {
73
+ "type": "boolean",
74
+ "required": false,
75
+ "description": "Whether the control is disabled and non-interactive."
76
+ },
77
+ "hoverDelay": {
78
+ "type": "number",
79
+ "required": false,
80
+ "description": "Delay (ms) before the hover preview appears. Default 350."
81
+ },
82
+ "ref": {
83
+ "type": "Ref<HTMLDivElement>",
84
+ "required": false,
85
+ "description": "Ref. Optional. Type: Ref<HTMLDivElement>."
86
+ }
87
+ }
88
+ }
@@ -0,0 +1,101 @@
1
+ {
2
+ "name": "SaveAssetDialog",
3
+ "description": "Name-it / preview / confirm-cancel save dialog on Modal, with busy state.",
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
+ },
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/saveAssetDialog/saveAssetDialog.entry.less"
16
+ ],
17
+ "dependencies": [
18
+ "@smwb/ui-styles/less/components/button/button.entry.less",
19
+ "@smwb/ui-styles/less/components/modal/modal.entry.less",
20
+ "@smwb/ui-styles/less/components/textField/textField.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/saveAssetDialog/saveAssetDialog.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/modal/modal.entry.less\";\n@import (less) \"node_modules/@smwb/ui-styles/less/components/textField/textField.entry.less\";"
23
+ },
24
+ "props": {
25
+ "open": {
26
+ "type": "boolean",
27
+ "required": true,
28
+ "description": "Controlled open/visible state."
29
+ },
30
+ "title": {
31
+ "type": "string",
32
+ "required": false,
33
+ "description": "Accessible title or tooltip text."
34
+ },
35
+ "nameLabel": {
36
+ "type": "string",
37
+ "required": false,
38
+ "description": "Label for the name field. Omit `onNameChange` AND `name` to hide the field."
39
+ },
40
+ "name": {
41
+ "type": "string",
42
+ "required": false,
43
+ "description": "Form field name submitted with the value."
44
+ },
45
+ "onNameChange": {
46
+ "type": "(name: string) => void",
47
+ "required": false,
48
+ "description": "On Name Change. Optional. Type: (name: string) => void."
49
+ },
50
+ "previewSrc": {
51
+ "type": "string",
52
+ "required": false,
53
+ "description": "Preview image URL (e.g. a freshly captured thumbnail)."
54
+ },
55
+ "onCapture": {
56
+ "type": "() => void",
57
+ "required": false,
58
+ "description": "Shows a Capture button when provided."
59
+ },
60
+ "captureLabel": {
61
+ "type": "string",
62
+ "required": false,
63
+ "description": "Capture Label. Optional. Type: string."
64
+ },
65
+ "busy": {
66
+ "type": "boolean",
67
+ "required": false,
68
+ "description": "Disables the actions + name field while a save/capture is in flight."
69
+ },
70
+ "confirmLabel": {
71
+ "type": "string",
72
+ "required": false,
73
+ "description": "Confirm Label. Optional. Type: string."
74
+ },
75
+ "cancelLabel": {
76
+ "type": "string",
77
+ "required": false,
78
+ "description": "Cancel Label. Optional. Type: string."
79
+ },
80
+ "onConfirm": {
81
+ "type": "() => void",
82
+ "required": true,
83
+ "description": "On Confirm. Required. Type: () => void."
84
+ },
85
+ "onClose": {
86
+ "type": "() => void",
87
+ "required": true,
88
+ "description": "Callback fired when the user dismisses the component."
89
+ },
90
+ "children": {
91
+ "type": "JSX.Element",
92
+ "required": false,
93
+ "description": "Extra content between the name field/preview and the actions."
94
+ },
95
+ "class": {
96
+ "type": "string",
97
+ "required": false,
98
+ "description": "Class. Optional. Type: string."
99
+ }
100
+ }
101
+ }
@@ -0,0 +1,156 @@
1
+ {
2
+ "name": "ValueSlider",
3
+ "description": "Slider preset with a value readout, a reset eraser, and an end-adornment slot.",
4
+ "ssr": {
5
+ "safe": true,
6
+ "rendering": "universal"
7
+ },
8
+ "extends": [
9
+ "SliderProps"
10
+ ],
11
+ "styles": {
12
+ "base": [
13
+ "@smwb/ui-styles/less/foundation.less",
14
+ "@smwb/ui-styles/less/theme.less"
15
+ ],
16
+ "entries": [
17
+ "@smwb/ui-styles/less/components/valueSlider/valueSlider.entry.less"
18
+ ],
19
+ "dependencies": [
20
+ "@smwb/ui-styles/less/components/slider/slider.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/valueSlider/valueSlider.entry.less\";\n@import (less) \"node_modules/@smwb/ui-styles/less/components/slider/slider.entry.less\";"
23
+ },
24
+ "props": {
25
+ "readout": {
26
+ "type": "boolean | ((value: SliderValue | undefined) => string)",
27
+ "required": false,
28
+ "description": "Read-only value readout beside the label. `true` shows the raw value; pass a\nformatter for units/precision (e.g. `(v) => `${v}%``). Reflects `props.value`.\n/"
29
+ },
30
+ "endAdornment": {
31
+ "type": "JSX.Element",
32
+ "required": false,
33
+ "description": "Content at the end of the header row — a reset button, a favourite star, etc."
34
+ },
35
+ "onReset": {
36
+ "type": "() => void",
37
+ "required": false,
38
+ "description": "Renders a built-in reset control in the header; called on click."
39
+ },
40
+ "resetLabel": {
41
+ "type": "string",
42
+ "required": false,
43
+ "description": "Accessible label for the reset control."
44
+ },
45
+ "value": {
46
+ "type": "SliderValue",
47
+ "required": false,
48
+ "description": "Controlled value."
49
+ },
50
+ "onChange": {
51
+ "type": "(event: Event, value: SliderValue, data: SliderProps) => void",
52
+ "required": false,
53
+ "description": "Callback fired when the value changes."
54
+ },
55
+ "min": {
56
+ "type": "number",
57
+ "required": false,
58
+ "description": "Minimum allowed value."
59
+ },
60
+ "max": {
61
+ "type": "number",
62
+ "required": false,
63
+ "description": "Maximum allowed value."
64
+ },
65
+ "step": {
66
+ "type": "number",
67
+ "required": false,
68
+ "description": "Step increment between values."
69
+ },
70
+ "name": {
71
+ "type": "string",
72
+ "required": false,
73
+ "description": "Form field name submitted with the value."
74
+ },
75
+ "defaultValue": {
76
+ "type": "SliderValue",
77
+ "required": false,
78
+ "description": "Initial uncontrolled value."
79
+ },
80
+ "disabled": {
81
+ "type": "boolean",
82
+ "required": false,
83
+ "description": "Whether the control is disabled and non-interactive."
84
+ },
85
+ "variant": {
86
+ "type": "\"continuous\" | \"discrete\"",
87
+ "required": false,
88
+ "description": "Visual style variant."
89
+ },
90
+ "valueField": {
91
+ "type": "boolean",
92
+ "required": false,
93
+ "description": "Value Field. Optional. Type: boolean."
94
+ },
95
+ "withTicks": {
96
+ "type": "boolean",
97
+ "required": false,
98
+ "description": "With Ticks. Optional. Type: boolean."
99
+ },
100
+ "label": {
101
+ "type": "string",
102
+ "required": false,
103
+ "description": "Visible label text."
104
+ },
105
+ "helperText": {
106
+ "type": "JSX.Element",
107
+ "required": false,
108
+ "description": "Supplementary hint text displayed below the control."
109
+ },
110
+ "error": {
111
+ "type": "boolean",
112
+ "required": false,
113
+ "description": "Whether the control is in an error state."
114
+ },
115
+ "size": {
116
+ "type": "\"small\" | \"medium\" | \"large\"",
117
+ "required": false,
118
+ "description": "Visual size preset."
119
+ },
120
+ "color": {
121
+ "type": "\"primary\" | \"secondary\" | \"error\" | \"success\" | \"warning\" | \"info\"",
122
+ "required": false,
123
+ "description": "Semantic color token."
124
+ },
125
+ "range": {
126
+ "type": "boolean",
127
+ "required": false,
128
+ "description": "Enables a two-thumb range slider (value becomes `[number, number]`)."
129
+ },
130
+ "orientation": {
131
+ "type": "\"horizontal\" | \"vertical\"",
132
+ "required": false,
133
+ "description": "Layout orientation."
134
+ },
135
+ "marks": {
136
+ "type": "boolean | SliderMark[]",
137
+ "required": false,
138
+ "description": "Slider tick marks configuration."
139
+ },
140
+ "aria-label": {
141
+ "type": "string",
142
+ "required": false,
143
+ "description": "Accessible label when no visible title is present."
144
+ },
145
+ "getAriaValueText": {
146
+ "type": "(value: number) => string",
147
+ "required": false,
148
+ "description": "Get Aria Value Text. Optional. Type: (value: number) => string."
149
+ },
150
+ "ref": {
151
+ "type": "Ref<HTMLSpanElement>",
152
+ "required": false,
153
+ "description": "Ref. Optional. Type: Ref<HTMLSpanElement>."
154
+ }
155
+ }
156
+ }
@@ -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
+ "class": {
51
+ "type": "string",
52
+ "required": false,
53
+ "description": "Class. Optional. Type: string."
54
+ }
55
+ }
56
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smwb/ui-mcp-solid",
3
- "version": "0.4.1",
3
+ "version": "0.6.0",
4
4
  "description": "Model Context Protocol server exposing the @smwb/ui-solid (SolidJS) 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-solid": "^0.4.1",
32
- "@smwb/ui-styles": "^1.0.4",
31
+ "@smwb/ui-solid": "^0.6.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"