@smwb/ui-mcp-solid 0.12.1 → 0.14.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.
Files changed (77) hide show
  1. package/component-meta/base/icon/icon.json +6 -1
  2. package/component-meta/base/ripple/ripple.json +6 -1
  3. package/component-meta/connects/rt/table/table.json +1 -1
  4. package/component-meta/dataDisplay/avatar/avatar.avatarGroup.json +5 -0
  5. package/component-meta/dataDisplay/avatar/avatar.json +5 -0
  6. package/component-meta/dataDisplay/card/card.json +18 -3
  7. package/component-meta/dataDisplay/chart/chart.json +5 -0
  8. package/component-meta/dataDisplay/chat/chat.chatFooterComposer.json +24 -0
  9. package/component-meta/dataDisplay/chat/chat.json +24 -3
  10. package/component-meta/dataDisplay/chat/chatComposer.json +1 -1
  11. package/component-meta/dataDisplay/chat/chatLayout.json +7 -1
  12. package/component-meta/dataDisplay/chat/chatOverlayLayout.json +7 -1
  13. package/component-meta/dataDisplay/chip/chip.json +18 -3
  14. package/component-meta/dataDisplay/dagView/dagView.json +170 -0
  15. package/component-meta/dataDisplay/descriptionList/descriptionList.json +1 -1
  16. package/component-meta/dataDisplay/diffStat/diffStat.json +65 -0
  17. package/component-meta/dataDisplay/kanban/kanban.json +5 -0
  18. package/component-meta/dataDisplay/kanban/kanban.kanbanCard.json +5 -0
  19. package/component-meta/dataDisplay/kanban/kanban.kanbanColumn.json +5 -0
  20. package/component-meta/dataDisplay/kbd/kbd.json +55 -0
  21. package/component-meta/dataDisplay/list/list.json +5 -0
  22. package/component-meta/dataDisplay/list/listItem.json +18 -3
  23. package/component-meta/dataDisplay/meter/meter.json +5 -0
  24. package/component-meta/dataDisplay/personChip/personChip.json +5 -0
  25. package/component-meta/dataDisplay/qrCode/qrCode.json +65 -0
  26. package/component-meta/dataDisplay/stat/stat.json +5 -0
  27. package/component-meta/dataDisplay/statusDot/statusDot.json +60 -0
  28. package/component-meta/dataDisplay/swimlanes/swimlanes.json +95 -0
  29. package/component-meta/dataDisplay/table/table.json +1 -1
  30. package/component-meta/dataDisplay/table/tableCell.json +7 -2
  31. package/component-meta/dataDisplay/table/tableHeadCell.json +11 -1
  32. package/component-meta/dataDisplay/table/tableRow.json +5 -0
  33. package/component-meta/dataDisplay/thumbCard/thumbCard.json +16 -6
  34. package/component-meta/dataDisplay/treeView/treeView.json +24 -4
  35. package/component-meta/feedBack/emptyState/emptyState.json +5 -0
  36. package/component-meta/feedBack/message/message.json +5 -0
  37. package/component-meta/feedBack/skeleton/skeleton.json +7 -2
  38. package/component-meta/feedBack/tooltip/tooltip.json +4 -4
  39. package/component-meta/inputs/button/button.json +15 -0
  40. package/component-meta/inputs/buttonGroups/buttonGroup.json +5 -0
  41. package/component-meta/inputs/checkbox/checkbox.json +2 -2
  42. package/component-meta/inputs/composer/composer.json +222 -0
  43. package/component-meta/inputs/radioButton/radioButton.json +6 -1
  44. package/component-meta/inputs/rating/rating.json +12 -2
  45. package/component-meta/inputs/selectField/dropdownMenu.json +47 -2
  46. package/component-meta/inputs/selectField/selectField.json +9 -8
  47. package/component-meta/inputs/slider/slider.json +11 -6
  48. package/component-meta/inputs/textField/textField.json +8 -3
  49. package/component-meta/inputs/textField/textFieldWrapper.json +16 -1
  50. package/component-meta/inputs/toggle/toggle.json +1 -1
  51. package/component-meta/inputs/valueSlider/valueSlider.json +15 -10
  52. package/component-meta/layout/appLayout/appLayout.json +5 -0
  53. package/component-meta/layout/divider/divider.json +5 -0
  54. package/component-meta/layout/floatingWindow/floatingWindow.json +5 -0
  55. package/component-meta/layout/grid/grid.column.json +5 -0
  56. package/component-meta/layout/grid/grid.container.json +5 -0
  57. package/component-meta/layout/grid/grid.row.json +5 -0
  58. package/component-meta/layout/page/page.json +5 -0
  59. package/component-meta/layout/pageHeader/pageHeader.json +5 -0
  60. package/component-meta/layout/sectionHeader/sectionHeader.json +5 -0
  61. package/component-meta/layout/sheet/sheet.json +25 -0
  62. package/component-meta/layout/stack/stack.json +5 -0
  63. package/component-meta/layout/tabGroups/tabGroups.json +118 -0
  64. package/component-meta/navigation/appBar/appBar.json +20 -0
  65. package/component-meta/navigation/breadcrumbs/breadcrumbs.json +5 -0
  66. package/component-meta/navigation/commandPalette/commandPalette.json +166 -0
  67. package/component-meta/navigation/menu/menu.json +1 -1
  68. package/component-meta/navigation/menu/menuItem.json +1 -1
  69. package/component-meta/navigation/menu/menuList.json +5 -0
  70. package/component-meta/navigation/menu/menuSubmenu.json +14 -3
  71. package/component-meta/navigation/pagination/pagination.json +5 -0
  72. package/component-meta/navigation/sidebar/sidebar.json +5 -0
  73. package/component-meta/navigation/stepper/stepper.json +5 -0
  74. package/component-meta/navigation/tabs/tab/tab.json +31 -5
  75. package/component-meta/navigation/tabs/tabPanel/tabPanel.json +42 -0
  76. package/component-meta/navigation/tabs/tabs.json +38 -6
  77. package/package.json +3 -3
@@ -31,7 +31,7 @@
31
31
  "message": {
32
32
  "type": "JSX.Element",
33
33
  "required": true,
34
- "description": "Chat message data object."
34
+ "description": "What the tip says: text or markup."
35
35
  },
36
36
  "placement": {
37
37
  "type": "Placement",
@@ -46,17 +46,17 @@
46
46
  "trigger": {
47
47
  "type": "TooltipTrigger",
48
48
  "required": false,
49
- "description": "hover (default): show on pointer enter; click: toggle; manual: use open only."
49
+ "description": "What shows the tooltip. `hover` (default): the pointer over the target or keyboard focus\nin it, until both have left. Keyboard focus is focus with a focus ring (`:focus-visible`),\nnot the focus a mouse press gives a button. `click`: a click on the target shows or hides\nit. `manual`: `open` alone. Escape hides a `hover` or `click` tooltip."
50
50
  },
51
51
  "openDelay": {
52
52
  "type": "number",
53
53
  "required": false,
54
- "description": "Open Delay. Optional. Type: number."
54
+ "description": "Milliseconds from the pointer entering the target, or keyboard focus moving into it, until a hover tooltip shows."
55
55
  },
56
56
  "closeDelay": {
57
57
  "type": "number",
58
58
  "required": false,
59
- "description": "Close Delay. Optional. Type: number."
59
+ "description": "Milliseconds from the pointer and keyboard focus both leaving the target until a hover tooltip hides."
60
60
  },
61
61
  "ref": {
62
62
  "type": "Ref<HTMLDivElement>",
@@ -64,6 +64,16 @@
64
64
  "required": false,
65
65
  "description": "When set, the component renders as an <a>."
66
66
  },
67
+ "target": {
68
+ "type": "string | null | undefined",
69
+ "required": false,
70
+ "description": "Where a link (with `href`) opens. By default `\"_blank\"`: a new tab. `null` leaves the `target`\nattribute out, so the link opens in place, like an internal one; an empty string does the same, and\nany other string is used as is."
71
+ },
72
+ "rel": {
73
+ "type": "string | undefined",
74
+ "required": false,
75
+ "description": "The `rel` of a link (with `href`). By default `\"noreferrer\"` for a link that opens another tab or\nwindow, and none for one that opens in place. Your own value replaces the default, so add `noreferrer` yourself\nif you still want it; an empty string drops the attribute."
76
+ },
67
77
  "disabled": {
68
78
  "type": "boolean",
69
79
  "required": false,
@@ -89,6 +99,11 @@
89
99
  "required": false,
90
100
  "description": "Disable the ripple effect."
91
101
  },
102
+ "data-testid": {
103
+ "type": "string | undefined",
104
+ "required": false,
105
+ "description": "Test id of the root; `button`, or `button-link` for a link, unless given."
106
+ },
92
107
  "ref": {
93
108
  "type": "Ref<HTMLButtonElement | HTMLAnchorElement>",
94
109
  "required": false,
@@ -54,6 +54,11 @@
54
54
  "required": false,
55
55
  "description": "Semantic color propagated to child buttons."
56
56
  },
57
+ "data-testid": {
58
+ "type": "string | undefined",
59
+ "required": false,
60
+ "description": "Test id of the root `<div>`; `button-group` unless given."
61
+ },
57
62
  "ref": {
58
63
  "type": "Ref<HTMLDivElement>",
59
64
  "required": false,
@@ -37,7 +37,7 @@
37
37
  "readOnly": {
38
38
  "type": "boolean",
39
39
  "required": false,
40
- "description": "Whether the value is read-only."
40
+ "description": "Keeps the checkbox as it is: clicks on it or its label and Space change nothing, and `onChange` is not called.\nIt stays focusable, and its input tells assistive technology it is read-only (`aria-readonly`)."
41
41
  },
42
42
  "required": {
43
43
  "type": "boolean",
@@ -57,7 +57,7 @@
57
57
  "indeterminate": {
58
58
  "type": "boolean",
59
59
  "required": false,
60
- "description": "Indeterminate. Optional. Type: boolean."
60
+ "description": "Shows the checkbox as partly checked, as for a \"select all\" over a partial selection: drawn with a dash and\nannounced as \"mixed\" by screen readers, whatever `checked` is. A click does not clear it: the click toggles\n`checked` as usual and `onChange` reports the new `checked`, while the checkbox stays mixed until this prop turns\nfalse."
61
61
  },
62
62
  "size": {
63
63
  "type": "SelectionControlSize",
@@ -0,0 +1,222 @@
1
+ {
2
+ "name": "Composer",
3
+ "description": "A task input: a multi-line field that grows from minRows to maxRows, a toolbar slot under it for chip selectors, a send button that becomes Stop while busy, keyboard send (Ctrl/⌘+Enter by default), optional attach button and drop target, and a character counter.",
4
+ "ssr": {
5
+ "safe": true,
6
+ "rendering": "universal"
7
+ },
8
+ "extends": [
9
+ "Omit<\n JSX.HTMLAttributes<HTMLDivElement>,\n \"onChange\" | \"defaultValue\" | \"onKeyDown\" | \"onFocus\" | \"onBlur\" | \"children\"\n>"
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/composer/composer.entry.less"
19
+ ],
20
+ "dependencies": [
21
+ "@smwb/ui-styles/less/components/icon/icon.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/composer/composer.entry.less\";\n@import (less) \"node_modules/@smwb/ui-styles/less/components/icon/icon.entry.less\";"
24
+ },
25
+ "props": {
26
+ "value": {
27
+ "type": "string | undefined",
28
+ "required": false,
29
+ "description": "Controlled text. The composer is controlled while this is not `undefined` (checked reactively); a parent that\nignores `onValueChange` keeps the field showing this value."
30
+ },
31
+ "defaultValue": {
32
+ "type": "string | undefined",
33
+ "required": false,
34
+ "description": "Initial text while uncontrolled. Defaults to an empty string."
35
+ },
36
+ "onValueChange": {
37
+ "type": "((value: string) => void) | undefined",
38
+ "required": false,
39
+ "description": "Called on every text change: typing, a newline, and the clear after a send. Called in both modes."
40
+ },
41
+ "onSend": {
42
+ "type": "((text: string) => void) | undefined",
43
+ "required": false,
44
+ "description": "Called with the trimmed text when the user sends it: the send key (see `sendKey`) or a click on the action\nbutton. Nothing is called while sending is not allowed: no `onSend`, an empty or whitespace-only text, `disabled`,\n`readOnly`, `busy`, or a text over `maxLength`. Async work is shown with `busy`; the return value is ignored."
45
+ },
46
+ "sendKey": {
47
+ "type": "ComposerSendKey | undefined",
48
+ "required": false,
49
+ "description": "Which Enter sends. `\"modEnter\"` (default): Ctrl/⌘+Enter sends and Enter inserts a newline. `\"enter\"`: Enter sends,\nShift+Enter inserts a newline, Ctrl/⌘+Enter sends too. An Enter that commits an IME composition never sends."
50
+ },
51
+ "clearOnSend": {
52
+ "type": "boolean | undefined",
53
+ "required": false,
54
+ "description": "Clear the text after `onSend`: the composer's own state while uncontrolled, `onValueChange(\"\")` while controlled.\nDefaults to `true`."
55
+ },
56
+ "busy": {
57
+ "type": "boolean | undefined",
58
+ "required": false,
59
+ "description": "The agent is working: the action button turns into Stop and calls `onStop`, and the keys and the button do not\nsend. The text stays editable. The composer never changes `busy` itself, the parent owns it."
60
+ },
61
+ "onStop": {
62
+ "type": "(() => void) | undefined",
63
+ "required": false,
64
+ "description": "Called when Stop is pressed (click, Enter or Space on the button) while `busy` and not `disabled`. Without it the\nStop button does nothing, so pass it whenever `busy` can be set."
65
+ },
66
+ "placeholder": {
67
+ "type": "string | undefined",
68
+ "required": false,
69
+ "description": "Placeholder of the textarea. It is not a name for the field, set `aria-label` or `aria-labelledby` as well."
70
+ },
71
+ "maxLength": {
72
+ "type": "number | undefined",
73
+ "required": false,
74
+ "description": "Hard limit on the text (the native `maxlength` of the textarea, counted in UTF-16 units, so an emoji is 2).\nTurns the counter on."
75
+ },
76
+ "counter": {
77
+ "type": "boolean | undefined",
78
+ "required": false,
79
+ "description": "Show the counter (`n / maxLength`, or `n` without `maxLength`). Defaults to `true` when `maxLength` is set."
80
+ },
81
+ "counterAnnouncement": {
82
+ "type": "((remaining: number, maxLength: number) => string) | undefined",
83
+ "required": false,
84
+ "description": "Text for the polite status region that announces how many characters are left. It is spoken only near the limit\n(within the larger of 10 characters and 10% of `maxLength`) and when the text is over it, with a negative\n`remaining`. Defaults to \"N characters left\" / \"N characters over the limit\"."
85
+ },
86
+ "minRows": {
87
+ "type": "number | undefined",
88
+ "required": false,
89
+ "description": "Height of the empty field in rows, and the `rows` of the textarea. Defaults to `1`."
90
+ },
91
+ "maxRows": {
92
+ "type": "number | undefined",
93
+ "required": false,
94
+ "description": "Rows the field grows to before it scrolls. Clamped to at least `minRows`. Defaults to `8`."
95
+ },
96
+ "layout": {
97
+ "type": "ComposerLayout | undefined",
98
+ "required": false,
99
+ "description": "`\"stacked\"` (default): the field on top, a bar under it with the attach button, the toolbar, the counter and the\naction. `\"inline\"`: the attach button, the field, the counter and the action in one row, the toolbar (if any)\nin a row under it."
100
+ },
101
+ "toolbar": {
102
+ "type": "JSX.Element",
103
+ "required": false,
104
+ "description": "Slot under the field for chips and selectors (agent, model, mode, …). Drawn in every state. It is a plain `div`,\nnot `role=\"toolbar\"`: the content brings its own keyboard handling and disabled state."
105
+ },
106
+ "attachments": {
107
+ "type": "JSX.Element",
108
+ "required": false,
109
+ "description": "Slot above the field for the app's file chips. The composer keeps no file state: the app lists what `onAttach`\ngave it here."
110
+ },
111
+ "onAttach": {
112
+ "type": "((files: File[]) => void) | undefined",
113
+ "required": false,
114
+ "description": "Turns on the attach button, the hidden file input and the drop target (the whole composer). Called with the files\nof a pick or a drop that are left after `accept`, `multiple` and `maxFiles`, never with an empty list. Only a drag\nof files is taken: dragged text or a link still goes into the field."
115
+ },
116
+ "accept": {
117
+ "type": "Record<string, string[]> | string | undefined",
118
+ "required": false,
119
+ "description": "Accepted file types, as a record of mime type to extensions or a raw `accept` string (`image/*`, `.pdf`, an exact\nmime type). It sets the picker's filter, and the files of a pick or a drop that do not match are left out."
120
+ },
121
+ "multiple": {
122
+ "type": "boolean | undefined",
123
+ "required": false,
124
+ "description": "Allow several files per pick or drop. When `false` the picker takes one and a drop keeps the first. Defaults to `true`."
125
+ },
126
+ "maxFiles": {
127
+ "type": "number | undefined",
128
+ "required": false,
129
+ "description": "Files beyond this number are dropped from a pick or a drop (counted after `accept`)."
130
+ },
131
+ "dropTarget": {
132
+ "type": "boolean | undefined",
133
+ "required": false,
134
+ "description": "Whether `onAttach` also makes the composer a drop target for files. Set `false` when a parent already takes drops\n(a chat panel): the attach button and the picker stay, and a drop on the composer bubbles to the parent untouched.\nDefaults to `true`."
135
+ },
136
+ "disabled": {
137
+ "type": "boolean | undefined",
138
+ "required": false,
139
+ "description": "Disables the textarea, the attach button, the action button and the drop target. Toolbar content is the app's to\ndisable."
140
+ },
141
+ "readOnly": {
142
+ "type": "boolean | undefined",
143
+ "required": false,
144
+ "description": "The textarea is `readonly`: sending is unavailable, Stop still works."
145
+ },
146
+ "autofocus": {
147
+ "type": "boolean | undefined",
148
+ "required": false,
149
+ "description": "Focus the textarea on mount."
150
+ },
151
+ "name": {
152
+ "type": "string | undefined",
153
+ "required": false,
154
+ "description": "Name of the textarea."
155
+ },
156
+ "id": {
157
+ "type": "string | undefined",
158
+ "required": false,
159
+ "description": "Id of the textarea (the root keeps no id). Generated when not given."
160
+ },
161
+ "aria-label": {
162
+ "type": "string | undefined",
163
+ "required": false,
164
+ "description": "Accessible name of the textarea. Set this or `aria-labelledby`: a placeholder is not a name."
165
+ },
166
+ "aria-labelledby": {
167
+ "type": "string | undefined",
168
+ "required": false,
169
+ "description": "Id(s) of the element(s) that name the textarea."
170
+ },
171
+ "aria-describedby": {
172
+ "type": "string | undefined",
173
+ "required": false,
174
+ "description": "Id(s) that describe the textarea. They come first, the counter's id is appended."
175
+ },
176
+ "onKeyDown": {
177
+ "type": "JSX.EventHandlerUnion<HTMLTextAreaElement, KeyboardEvent> | undefined",
178
+ "required": false,
179
+ "description": "Key handler of the textarea. It runs before the composer's own; if it calls `preventDefault()`, the composer does nothing for that key."
180
+ },
181
+ "onFocus": {
182
+ "type": "JSX.EventHandlerUnion<HTMLTextAreaElement, FocusEvent> | undefined",
183
+ "required": false,
184
+ "description": "Focus handler of the textarea."
185
+ },
186
+ "onBlur": {
187
+ "type": "JSX.EventHandlerUnion<HTMLTextAreaElement, FocusEvent> | undefined",
188
+ "required": false,
189
+ "description": "Blur handler of the textarea."
190
+ },
191
+ "inputRef": {
192
+ "type": "((el: HTMLTextAreaElement) => void) | undefined",
193
+ "required": false,
194
+ "description": "Ref of the textarea (the root takes the component's own `ref`)."
195
+ },
196
+ "sendLabel": {
197
+ "type": "string | undefined",
198
+ "required": false,
199
+ "description": "Accessible name of the action button while it sends. Defaults to \"Send\"."
200
+ },
201
+ "stopLabel": {
202
+ "type": "string | undefined",
203
+ "required": false,
204
+ "description": "Accessible name of the action button while `busy`. Defaults to \"Stop\"."
205
+ },
206
+ "attachLabel": {
207
+ "type": "string | undefined",
208
+ "required": false,
209
+ "description": "Accessible name of the attach button. Defaults to \"Attach file\"."
210
+ },
211
+ "class": {
212
+ "type": "string | undefined",
213
+ "required": false,
214
+ "description": "Class name(s) for the root `<div>`. `style`, `ref`, `data-*` attributes and every other HTML attribute or event\nhandler go to the root too; the root's drag handlers run after yours."
215
+ },
216
+ "data-testid": {
217
+ "type": "string | undefined",
218
+ "required": false,
219
+ "description": "Test id of the root `<div>`. Defaults to `composer`; the parts inside have their own (`composer-input`, `composer-action`, …)."
220
+ }
221
+ }
222
+ }
@@ -38,7 +38,7 @@
38
38
  "readOnly": {
39
39
  "type": "boolean",
40
40
  "required": false,
41
- "description": "Whether the value is read-only."
41
+ "description": "Keeps the radio as it is: clicks on it or its label, Space and the arrow keys of its group do not check it, and\n`onChange` is not called. It stays focusable.\n\nThe input does not tell assistive technology it is read-only: ARIA has no read-only state for a single radio,\nonly for its group. Put `role=\"radiogroup\"`, a name and `aria-readonly=\"true\"` on the element around the radios."
42
42
  },
43
43
  "required": {
44
44
  "type": "boolean",
@@ -85,6 +85,11 @@
85
85
  "required": false,
86
86
  "description": "Unified handler: `(event, value, data)` where `value` is the radio's value (or checked state)."
87
87
  },
88
+ "data-testid": {
89
+ "type": "string | undefined",
90
+ "required": false,
91
+ "description": "Test id of the `<input>`; `radio` unless given."
92
+ },
88
93
  "ref": {
89
94
  "type": "Ref<HTMLInputElement>",
90
95
  "required": false,
@@ -92,7 +92,17 @@
92
92
  "id": {
93
93
  "type": "string",
94
94
  "required": false,
95
- "description": "Unique identifier for the root element."
95
+ "description": "Id of the control: the slider, or the image of a read-only rating."
96
+ },
97
+ "aria-label": {
98
+ "type": "string",
99
+ "required": false,
100
+ "description": "What is rated: the accessible name of the slider, \"Rating\" by default. A read-only rating is an image named by\nits value (\"3 of 5\"), after this label."
101
+ },
102
+ "aria-describedby": {
103
+ "type": "string",
104
+ "required": false,
105
+ "description": "Ids of more elements that describe the control, after its helper text."
96
106
  },
97
107
  "onChange": {
98
108
  "type": "(value: number) => void",
@@ -102,7 +112,7 @@
102
112
  "ref": {
103
113
  "type": "Ref<HTMLSpanElement>",
104
114
  "required": false,
105
- "description": "Ref. Optional. Type: Ref<HTMLSpanElement>."
115
+ "description": "The control: the slider, or the image of a read-only rating."
106
116
  }
107
117
  }
108
118
  }
@@ -83,9 +83,9 @@
83
83
  "description": "Is Loading. Optional. Type: boolean | undefined."
84
84
  },
85
85
  "optionRenderer": {
86
- "type": "((args: import(\"../../navigation/menu\").MenuItemProps) => JSX.Element) | undefined",
86
+ "type": "((args: MenuItemProps) => JSX.Element) | undefined",
87
87
  "required": false,
88
- "description": "Option Renderer. Optional. Type: ((args: import(\"../../navigation/menu\").MenuItemProps) => JSX.Element) | undefined."
88
+ "description": "Option Renderer. Optional. Type: ((args: MenuItemProps) => JSX.Element) | undefined."
89
89
  },
90
90
  "container": {
91
91
  "type": "HTMLElement | undefined",
@@ -106,6 +106,51 @@
106
106
  "type": "number | undefined",
107
107
  "required": false,
108
108
  "description": "Item Height. Optional. Type: number | undefined."
109
+ },
110
+ "listboxId": {
111
+ "type": "string | undefined",
112
+ "required": false,
113
+ "description": "Id of the listbox; the options' ids follow from it (`dropdownOptionId`)."
114
+ },
115
+ "labelledBy": {
116
+ "type": "string | undefined",
117
+ "required": false,
118
+ "description": "Ids of the elements that name the listbox and the search box in the menu."
119
+ },
120
+ "label": {
121
+ "type": "string | undefined",
122
+ "required": false,
123
+ "description": "Names the listbox and the search box in the menu when no element does."
124
+ },
125
+ "multiple": {
126
+ "type": "boolean | undefined",
127
+ "required": false,
128
+ "description": "Several options can be selected (`aria-multiselectable`)."
129
+ },
130
+ "activeIndex": {
131
+ "type": "number | undefined",
132
+ "required": false,
133
+ "description": "Index of the active option, counting `items` and then the create option; -1 for none."
134
+ },
135
+ "showActive": {
136
+ "type": "boolean | undefined",
137
+ "required": false,
138
+ "description": "Marks the active option and keeps it in view: the keyboard moved to it."
139
+ },
140
+ "searchInputProps": {
141
+ "type": "(JSX.AriaAttributes & Pick<JSX.InputHTMLAttributes<HTMLInputElement>, \"onKeyDown\">) | undefined",
142
+ "required": false,
143
+ "description": "Attributes and handlers of the search box in the menu, which the field makes a combobox."
144
+ },
145
+ "searchInputRef": {
146
+ "type": "((element: HTMLInputElement) => void) | undefined",
147
+ "required": false,
148
+ "description": "Search Input Ref. Optional. Type: ((element: HTMLInputElement) => void) | undefined."
149
+ },
150
+ "menuRef": {
151
+ "type": "((element: HTMLDivElement) => void) | undefined",
152
+ "required": false,
153
+ "description": "The menu's root element."
109
154
  }
110
155
  }
111
156
  }
@@ -19,9 +19,10 @@
19
19
  "@smwb/ui-styles/less/components/icon/icon.entry.less",
20
20
  "@smwb/ui-styles/less/components/menu/menu.entry.less",
21
21
  "@smwb/ui-styles/less/components/progressIndicator/progressIndicator.entry.less",
22
+ "@smwb/ui-styles/less/components/ripple/ripple.entry.less",
22
23
  "@smwb/ui-styles/less/components/textField/textField.entry.less"
23
24
  ],
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/selectField/selectField.entry.less\";\n@import (less) \"node_modules/@smwb/ui-styles/less/components/chip/chip.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\";\n@import (less) \"node_modules/@smwb/ui-styles/less/components/progressIndicator/progressIndicator.entry.less\";\n@import (less) \"node_modules/@smwb/ui-styles/less/components/textField/textField.entry.less\";"
25
+ "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/selectField/selectField.entry.less\";\n@import (less) \"node_modules/@smwb/ui-styles/less/components/chip/chip.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\";\n@import (less) \"node_modules/@smwb/ui-styles/less/components/progressIndicator/progressIndicator.entry.less\";\n@import (less) \"node_modules/@smwb/ui-styles/less/components/ripple/ripple.entry.less\";\n@import (less) \"node_modules/@smwb/ui-styles/less/components/textField/textField.entry.less\";"
25
26
  },
26
27
  "props": {
27
28
  "class": {
@@ -32,7 +33,7 @@
32
33
  "value": {
33
34
  "type": "SelectValue | undefined",
34
35
  "required": false,
35
- "description": "Controlled value."
36
+ "description": "The selected value, or the values of a `multiple` field. Any value but\n`undefined` makes the field controlled: it shows this value and nothing\nelse, and a pick, a chip delete or a clear only asks for a change through\n`onChange`. `null` means nothing is selected. While `value` is `undefined`,\nthe field keeps its own value, starting from `defaultValue`."
36
37
  },
37
38
  "defaultValue": {
38
39
  "type": "null | string | number | (string | number)[]",
@@ -87,7 +88,7 @@
87
88
  "search": {
88
89
  "type": "true | false | \"menu\"",
89
90
  "required": false,
90
- "description": "Search. Optional. Type: true | false | \"menu\"."
91
+ "description": "A search box for the options: `true` puts it in the field, where it takes\nthe focus and is the combobox; `\"menu\"` puts it at the top of the menu,\nwhich moves the focus into it when it opens."
91
92
  },
92
93
  "chips": {
93
94
  "type": "boolean",
@@ -112,7 +113,7 @@
112
113
  "label": {
113
114
  "type": "string",
114
115
  "required": false,
115
- "description": "Visible label text."
116
+ "description": "Visible label, drawn above the field (an `inline` field draws none). It\nnames the combobox, whose value is the selected text: \"Country\", \"Russia\".\nWith `chips` the chips' texts follow it in the name: \"Labels Backend Docs\"."
116
117
  },
117
118
  "variant": {
118
119
  "type": "\"outlined\" | \"filled\"",
@@ -167,7 +168,7 @@
167
168
  "optionRenderer": {
168
169
  "type": "(args: MenuItemProps) => JSX.Element",
169
170
  "required": false,
170
- "description": "Option Renderer. Optional. Type: (args: MenuItemProps) => JSX.Element."
171
+ "description": "Draws an option in place of the default one. It gets the option's props\nand returns its `<li>`: pass `id`, `role`, `aria-selected`, `aria-disabled`,\n`class` and `onClick` on to it, so the option can be reached from the\nkeyboard, read out and picked."
171
172
  },
172
173
  "clearable": {
173
174
  "type": "boolean",
@@ -195,14 +196,14 @@
195
196
  "description": "Item Height. Optional. Type: number."
196
197
  },
197
198
  "aria-label": {
198
- "type": "string",
199
+ "type": "string | undefined",
199
200
  "required": false,
200
- "description": "Accessible label when no visible title is present."
201
+ "description": "Accessible name of the combobox. Replaces the name the visible `label`\ngives it; a field without a drawn label needs it."
201
202
  },
202
203
  "id": {
203
204
  "type": "string",
204
205
  "required": false,
205
- "description": "Unique identifier for the root element."
206
+ "description": "Id of the control, the part of the field that holds the selected text. It is\nthe combobox, unless `search` puts a search box in it: then the box is."
206
207
  },
207
208
  "ref": {
208
209
  "type": "Ref<HTMLSpanElement>",
@@ -24,7 +24,7 @@
24
24
  },
25
25
  "props": {
26
26
  "value": {
27
- "type": "SliderValue",
27
+ "type": "SliderValue | undefined",
28
28
  "required": false,
29
29
  "description": "Controlled value."
30
30
  },
@@ -71,7 +71,7 @@
71
71
  "valueField": {
72
72
  "type": "boolean",
73
73
  "required": false,
74
- "description": "Value Field. Optional. Type: boolean."
74
+ "description": "Draws a number field beside the slider for typing the value; a single\n`discrete` slider only. The field is named as the slider is (see `label`\nand `aria-label`)."
75
75
  },
76
76
  "withTicks": {
77
77
  "type": "boolean",
@@ -79,9 +79,9 @@
79
79
  "description": "With Ticks. Optional. Type: boolean."
80
80
  },
81
81
  "label": {
82
- "type": "string",
82
+ "type": "string | undefined",
83
83
  "required": false,
84
- "description": "Visible label text."
84
+ "description": "Visible label, drawn above the slider. It names the slider; each thumb of a\nrange adds its own word: with `label=\"Price\"` they read \"Price minimum\" and\n\"Price maximum\"."
85
85
  },
86
86
  "helperText": {
87
87
  "type": "JSX.Element",
@@ -119,9 +119,14 @@
119
119
  "description": "Slider tick marks configuration."
120
120
  },
121
121
  "aria-label": {
122
- "type": "string",
122
+ "type": "string | undefined",
123
+ "required": false,
124
+ "description": "Accessible name of the slider. Replaces the name the visible `label` gives\nit; a slider without a label needs it or `aria-labelledby`. Each thumb of a\nrange adds its own word, as with `label`."
125
+ },
126
+ "aria-labelledby": {
127
+ "type": "string | undefined",
123
128
  "required": false,
124
- "description": "Accessible label when no visible title is present."
129
+ "description": "Ids of the elements whose text names the slider. It goes on the range input,\nnot the root, and replaces the name the visible `label` gives it; as on any\nelement, it also wins over `aria-label`. Each thumb of a range adds its own\nword, as with `label`."
125
130
  },
126
131
  "getAriaValueText": {
127
132
  "type": "(value: number) => string",
@@ -24,7 +24,7 @@
24
24
  "label": {
25
25
  "type": "string | undefined",
26
26
  "required": false,
27
- "description": "Visible label text."
27
+ "description": "Visible label; it points to the `<input>`, so it also names the field. Not drawn for an `inline` field."
28
28
  },
29
29
  "helperText": {
30
30
  "type": "JSX.Element",
@@ -56,6 +56,11 @@
56
56
  "required": false,
57
57
  "description": "Controlled value."
58
58
  },
59
+ "class": {
60
+ "type": "string | undefined",
61
+ "required": false,
62
+ "description": "Class name(s) for the root wrapper `<div>`. `style` and `data-*` attributes go to the wrapper too (a `data-testid`\nreplaces its default `text-field`); every other HTML attribute (`aria-*`, `autofocus`, `maxlength`, event handlers)\ngoes to the `<input>`."
63
+ },
59
64
  "placeholder": {
60
65
  "type": "string",
61
66
  "required": false,
@@ -112,9 +117,9 @@
112
117
  "description": "End Adornment. Optional. Type: JSX.Element."
113
118
  },
114
119
  "id": {
115
- "type": "string",
120
+ "type": "string | undefined",
116
121
  "required": false,
117
- "description": "Unique identifier for the root element."
122
+ "description": "Id of the `<input>`; the label points to it. Generated when not given."
118
123
  },
119
124
  "inline": {
120
125
  "type": "boolean",
@@ -31,6 +31,11 @@
31
31
  "required": false,
32
32
  "description": "Supplementary hint text displayed below the control."
33
33
  },
34
+ "helperTextId": {
35
+ "type": "string | undefined",
36
+ "required": false,
37
+ "description": "Id of the helper text, for the control's `aria-describedby`. Only shown helper text takes it: not the blank line\ndrawn without helper text, and an inline field shows none."
38
+ },
34
39
  "variant": {
35
40
  "type": "TextFieldVariant | undefined",
36
41
  "required": false,
@@ -64,7 +69,12 @@
64
69
  "for": {
65
70
  "type": "string | undefined",
66
71
  "required": false,
67
- "description": "For. Optional. Type: string | undefined."
72
+ "description": "Id of the control the label names. Without it, the label names nothing."
73
+ },
74
+ "labelId": {
75
+ "type": "string | undefined",
76
+ "required": false,
77
+ "description": "Id of the `<label>`. A control that `for` cannot label (one that is not a\nform element, such as SelectField's `role=\"button\"`) points\n`aria-labelledby` at it."
68
78
  },
69
79
  "shrink": {
70
80
  "type": "boolean | undefined",
@@ -91,6 +101,11 @@
91
101
  "required": false,
92
102
  "description": "Inline. Optional. Type: boolean | undefined."
93
103
  },
104
+ "data-testid": {
105
+ "type": "string | undefined",
106
+ "required": false,
107
+ "description": "Test id of the root `<div>`; `text-field` unless given."
108
+ },
94
109
  "children": {
95
110
  "type": "JSX.Element",
96
111
  "required": false,
@@ -33,7 +33,7 @@
33
33
  "readOnly": {
34
34
  "type": "boolean",
35
35
  "required": false,
36
- "description": "Whether the value is read-only."
36
+ "description": "Keeps the switch as it is: clicks on it or its label and Space change nothing, and `onChange` is not called.\nIt stays focusable, and its input tells assistive technology it is read-only (`aria-readonly`)."
37
37
  },
38
38
  "required": {
39
39
  "type": "boolean",