@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
@@ -22,6 +22,16 @@
22
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
23
  },
24
24
  "props": {
25
+ "label": {
26
+ "type": "string | undefined",
27
+ "required": false,
28
+ "description": "Label text, drawn in the header row beside the readout. It names the slider,\nas `Slider`'s label does; each thumb of a range adds its own word: with\n`label=\"Price\"` they read \"Price minimum\" and \"Price maximum\"."
29
+ },
30
+ "aria-label": {
31
+ "type": "string | undefined",
32
+ "required": false,
33
+ "description": "Accessible name of the slider. Replaces the name the header `label` gives\nit; a ValueSlider without a label needs it or `aria-labelledby`. Each thumb\nof a range adds its own word, as with `label`."
34
+ },
25
35
  "readout": {
26
36
  "type": "boolean | ((value: SliderValue | undefined) => string)",
27
37
  "required": false,
@@ -43,7 +53,7 @@
43
53
  "description": "Accessible label for the reset control."
44
54
  },
45
55
  "value": {
46
- "type": "SliderValue",
56
+ "type": "SliderValue | undefined",
47
57
  "required": false,
48
58
  "description": "Controlled value."
49
59
  },
@@ -90,18 +100,13 @@
90
100
  "valueField": {
91
101
  "type": "boolean",
92
102
  "required": false,
93
- "description": "Value Field. Optional. Type: boolean."
103
+ "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`)."
94
104
  },
95
105
  "withTicks": {
96
106
  "type": "boolean",
97
107
  "required": false,
98
108
  "description": "With Ticks. Optional. Type: boolean."
99
109
  },
100
- "label": {
101
- "type": "string",
102
- "required": false,
103
- "description": "Visible label text."
104
- },
105
110
  "helperText": {
106
111
  "type": "JSX.Element",
107
112
  "required": false,
@@ -137,10 +142,10 @@
137
142
  "required": false,
138
143
  "description": "Slider tick marks configuration."
139
144
  },
140
- "aria-label": {
141
- "type": "string",
145
+ "aria-labelledby": {
146
+ "type": "string | undefined",
142
147
  "required": false,
143
- "description": "Accessible label when no visible title is present."
148
+ "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`."
144
149
  },
145
150
  "getAriaValueText": {
146
151
  "type": "(value: number) => string",
@@ -83,6 +83,11 @@
83
83
  "required": false,
84
84
  "description": "Keep the header pinned while content scrolls."
85
85
  },
86
+ "data-testid": {
87
+ "type": "string | undefined",
88
+ "required": false,
89
+ "description": "Test id of the root `<div>`; `app-layout` unless given."
90
+ },
86
91
  "ref": {
87
92
  "type": "Ref<HTMLDivElement>",
88
93
  "required": false,
@@ -51,6 +51,11 @@
51
51
  "required": false,
52
52
  "description": "Stretch to fill a flex container along the cross axis."
53
53
  },
54
+ "data-testid": {
55
+ "type": "string | undefined",
56
+ "required": false,
57
+ "description": "Test id of the root `<div>`; `divider` unless given."
58
+ },
54
59
  "ref": {
55
60
  "type": "Ref<HTMLDivElement>",
56
61
  "required": false,
@@ -194,6 +194,11 @@
194
194
  "required": false,
195
195
  "description": "Accessible label when no visible title is present."
196
196
  },
197
+ "data-testid": {
198
+ "type": "string | undefined",
199
+ "required": false,
200
+ "description": "Test id of the window's root `<div>`; `floating-window` unless given."
201
+ },
197
202
  "ref": {
198
203
  "type": "Ref<HTMLDivElement>",
199
204
  "required": false,
@@ -76,6 +76,11 @@
76
76
  "required": false,
77
77
  "description": "Hide column: boolean (always) or per breakpoint `{ xs:true, md:false }`."
78
78
  },
79
+ "data-testid": {
80
+ "type": "string | undefined",
81
+ "required": false,
82
+ "description": "Test id of the root `<div>`; `grid-col` unless given."
83
+ },
79
84
  "ref": {
80
85
  "type": "Ref<HTMLDivElement>",
81
86
  "required": false,
@@ -31,6 +31,11 @@
31
31
  "required": false,
32
32
  "description": "Remove horizontal gutters."
33
33
  },
34
+ "data-testid": {
35
+ "type": "string | undefined",
36
+ "required": false,
37
+ "description": "Test id of the root `<div>`; `grid-container` unless given."
38
+ },
34
39
  "ref": {
35
40
  "type": "Ref<HTMLDivElement>",
36
41
  "required": false,
@@ -46,6 +46,11 @@
46
46
  "required": false,
47
47
  "description": "Spacing between stacked children."
48
48
  },
49
+ "data-testid": {
50
+ "type": "string | undefined",
51
+ "required": false,
52
+ "description": "Test id of the root `<div>`; `grid-row` unless given."
53
+ },
49
54
  "ref": {
50
55
  "type": "Ref<HTMLDivElement>",
51
56
  "required": false,
@@ -36,6 +36,11 @@
36
36
  "required": false,
37
37
  "description": "Render as a different element (default `main`)."
38
38
  },
39
+ "data-testid": {
40
+ "type": "string | undefined",
41
+ "required": false,
42
+ "description": "Test id of the root element; `page` unless given."
43
+ },
39
44
  "ref": {
40
45
  "type": "Ref<HTMLElement>",
41
46
  "required": false,
@@ -48,6 +48,11 @@
48
48
  "required": false,
49
49
  "description": "Render a divider below the header."
50
50
  },
51
+ "data-testid": {
52
+ "type": "string | undefined",
53
+ "required": false,
54
+ "description": "Test id of the root `<header>`; `page-header` unless given."
55
+ },
51
56
  "ref": {
52
57
  "type": "Ref<HTMLElement>",
53
58
  "required": false,
@@ -59,6 +59,11 @@
59
59
  "required": false,
60
60
  "description": "A line under the title."
61
61
  },
62
+ "data-testid": {
63
+ "type": "string | undefined",
64
+ "required": false,
65
+ "description": "Test id of the root `<header>`; `section-header` unless given."
66
+ },
62
67
  "ref": {
63
68
  "type": "Ref<HTMLElement>",
64
69
  "required": false,
@@ -60,6 +60,26 @@
60
60
  "required": false,
61
61
  "description": "Reverse Header Actions. Optional. Type: boolean."
62
62
  },
63
+ "closeAriaLabel": {
64
+ "type": "string",
65
+ "required": false,
66
+ "description": "Accessible name of the header close button (default \"Close sheet\")."
67
+ },
68
+ "expandAriaLabel": {
69
+ "type": "string",
70
+ "required": false,
71
+ "description": "Accessible name of the size toggle while the sheet is at its normal size (default \"Expand sheet\"). The toggle\ncycles normal, expanded, collapsed and back, and its name always says what the next press does; the\nname changing is how it exposes its state. It shows the `open_in_full` icon, and `close_fullscreen` while expanded."
72
+ },
73
+ "collapseAriaLabel": {
74
+ "type": "string",
75
+ "required": false,
76
+ "description": "Accessible name of the size toggle while the sheet is expanded (default \"Collapse sheet\")."
77
+ },
78
+ "restoreAriaLabel": {
79
+ "type": "string",
80
+ "required": false,
81
+ "description": "Accessible name of the size toggle while the sheet is collapsed to its header (default \"Restore sheet size\")."
82
+ },
63
83
  "size": {
64
84
  "type": "string",
65
85
  "required": false,
@@ -110,6 +130,11 @@
110
130
  "required": false,
111
131
  "description": "Accessible label when no visible title is present."
112
132
  },
133
+ "data-testid": {
134
+ "type": "string | undefined",
135
+ "required": false,
136
+ "description": "Test id of the sheet panel (the dialog); `sheet` unless given."
137
+ },
113
138
  "ref": {
114
139
  "type": "Ref<HTMLDivElement>",
115
140
  "required": false,
@@ -51,6 +51,11 @@
51
51
  "required": false,
52
52
  "description": "Optional element rendered between each child."
53
53
  },
54
+ "data-testid": {
55
+ "type": "string | undefined",
56
+ "required": false,
57
+ "description": "Test id of the root `<div>`; `stack` unless given."
58
+ },
54
59
  "ref": {
55
60
  "type": "Ref<HTMLDivElement>",
56
61
  "required": false,
@@ -0,0 +1,118 @@
1
+ {
2
+ "name": "TabGroups",
3
+ "description": "Tab groups in a split area: move tabs between groups by drag and drop or keyboard, split right or down, resize, close the last tab to close a group; the layout is a versioned JSON (layout/onLayoutChange).",
4
+ "ssr": {
5
+ "safe": true,
6
+ "rendering": "universal",
7
+ "note": "Renders the groups, tab rows and selected panels on the server; drag and drop and resizing run in the browser."
8
+ },
9
+ "extends": [
10
+ "Omit<JSX.HTMLAttributes<HTMLDivElement>, \"children\" | \"onChange\" | \"id\">"
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/tabGroups/tabGroups.entry.less"
20
+ ],
21
+ "dependencies": [
22
+ "@smwb/ui-styles/less/components/icon/icon.entry.less",
23
+ "@smwb/ui-styles/less/components/kbd/kbd.entry.less",
24
+ "@smwb/ui-styles/less/components/menu/menu.entry.less",
25
+ "@smwb/ui-styles/less/components/ripple/ripple.entry.less",
26
+ "@smwb/ui-styles/less/components/tabs/tab/tab.entry.less",
27
+ "@smwb/ui-styles/less/components/tabs/tabs.entry.less"
28
+ ],
29
+ "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/tabGroups/tabGroups.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/kbd/kbd.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/ripple/ripple.entry.less\";\n@import (less) \"node_modules/@smwb/ui-styles/less/components/tabs/tab/tab.entry.less\";\n@import (less) \"node_modules/@smwb/ui-styles/less/components/tabs/tabs.entry.less\";"
30
+ },
31
+ "props": {
32
+ "layout": {
33
+ "type": "TabGroupsLayout | undefined",
34
+ "required": false,
35
+ "description": "The arrangement to draw: the split tree, every group's tabs and the selected one. Controlled\nwhile it is not `undefined` — the component then only reports changes through\n`onLayoutChange` and draws what the owner gives back."
36
+ },
37
+ "defaultLayout": {
38
+ "type": "TabGroupsLayout | undefined",
39
+ "required": false,
40
+ "description": "The arrangement to start from while uncontrolled: one empty group by default."
41
+ },
42
+ "onLayoutChange": {
43
+ "type": "((layout: TabGroupsLayout, change: TabGroupsChange) => void) | undefined",
44
+ "required": false,
45
+ "description": "Called with the layout after a change and with what happened, in both the controlled and the\nuncontrolled mode. A controlled owner that does not apply the change simply sees nothing move."
46
+ },
47
+ "getTab": {
48
+ "type": "(tabId: string) => TabGroupsTab | undefined",
49
+ "required": true,
50
+ "description": "What a tab shows, by its id; `undefined` draws the id as the label."
51
+ },
52
+ "renderPanel": {
53
+ "type": "(tabId: string) => JSX.Element",
54
+ "required": true,
55
+ "description": "The content of a tab's panel, by its id. It is called the first time the tab is selected and\nthe panel stays mounted from then on, hidden while another tab is shown and kept through a\nmove to another group: a form keeps what was typed, a terminal its scrollback. Its node stays\nwhere it is in the DOM, so an iframe in it does not reload either."
56
+ },
57
+ "onTabClose": {
58
+ "type": "((tabId: string, event: Event, reason: TabCloseReason) => boolean | void) | undefined",
59
+ "required": false,
60
+ "description": "Asked before a tab closes, with what asked for it (its close button, Delete or Backspace, a\nmiddle click, its `actions`). Return `false` to keep the tab."
61
+ },
62
+ "empty": {
63
+ "type": "JSX.Element",
64
+ "required": false,
65
+ "description": "Drawn, centred, when the only group has no tabs left."
66
+ },
67
+ "minGroupSize": {
68
+ "type": "number | undefined",
69
+ "required": false,
70
+ "description": "The smallest a group can be resized to, in px of its split; 120 by default."
71
+ },
72
+ "keyboardStep": {
73
+ "type": "number | undefined",
74
+ "required": false,
75
+ "description": "The arrow-key step of a separator, in percent of its split; 5 by default."
76
+ },
77
+ "groupActions": {
78
+ "type": "boolean | undefined",
79
+ "required": false,
80
+ "description": "Draw each group's actions button and menu; true by default."
81
+ },
82
+ "dense": {
83
+ "type": "boolean | undefined",
84
+ "required": false,
85
+ "description": "Compact tab rows, as `Tabs`' `dense`; false by default."
86
+ },
87
+ "labels": {
88
+ "type": "Partial<TabGroupsLabels> | undefined",
89
+ "required": false,
90
+ "description": "The texts of the component: its menus, labels and announcements. English by default."
91
+ },
92
+ "id": {
93
+ "type": "string | undefined",
94
+ "required": false,
95
+ "description": "Base of the generated ids and the id of the root element. Generated by default."
96
+ },
97
+ "data-testid": {
98
+ "type": "string | undefined",
99
+ "required": false,
100
+ "description": "Test id of the root element; `tab-groups` unless given."
101
+ },
102
+ "class": {
103
+ "type": "string | undefined",
104
+ "required": false,
105
+ "description": "Class of the root element, added to the component's own."
106
+ },
107
+ "style": {
108
+ "type": "JSX.HTMLAttributes<HTMLDivElement>[\"style\"]",
109
+ "required": false,
110
+ "description": "Inline style of the root element; the component's `grid-template-*` win over it."
111
+ },
112
+ "ref": {
113
+ "type": "Ref<HTMLDivElement>",
114
+ "required": false,
115
+ "description": "The root element."
116
+ }
117
+ }
118
+ }
@@ -56,16 +56,36 @@
56
56
  "required": false,
57
57
  "description": "Accessible title or tooltip text."
58
58
  },
59
+ "titleAs": {
60
+ "type": "\"div\" | \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\"",
61
+ "required": false,
62
+ "description": "Tag the `title` is rendered in: a `div` (default) or a heading, `h1`–`h6`,\nfor the page's main heading. Only the tag changes — a heading is drawn with\nthe bar's own font size, weight and no margins, so it looks exactly like the\ndiv. The heading's text is the `title` itself, so pass a string or plain\nmarkup rather than a `Typography` heading."
63
+ },
59
64
  "midContentAlign": {
60
65
  "type": "\"middle\" | \"left\" | \"right\"",
61
66
  "required": false,
62
67
  "description": "Mid Content Align. Optional. Type: \"middle\" | \"left\" | \"right\"."
63
68
  },
69
+ "variant": {
70
+ "type": "\"default\" | \"window\"",
71
+ "required": false,
72
+ "description": "`window`: the bar is the title bar of a desktop app window (Electron, Tauri, an installed PWA with Window\nControls Overlay). The bar drags the window; buttons, links, fields and other controls in it stay clickable,\nand room is left for the OS window buttons (`windowControls`). In a plain browser tab it looks like `default`."
73
+ },
74
+ "windowControls": {
75
+ "type": "\"auto\" | \"left\" | \"right\" | \"none\"",
76
+ "required": false,
77
+ "description": "With `variant=\"window\"`: where the OS window buttons are, so the bar's content keeps clear of them.\n`auto` (default) takes the area from the shell's `env(titlebar-area-*)` (Window Controls Overlay, Electron\n`titleBarOverlay`) and reserves nothing without it; `left` is macOS (traffic lights, `titleBarStyle: \"hiddenInset\"`),\n`right` is Windows/Linux caption buttons drawn by the OS; `none` reserves nothing. The reserved width is\nthe `--smui-appBarWindowControlsWidth` custom property (64px on the left, 138px on the right by default)."
78
+ },
64
79
  "color": {
65
80
  "type": "AppBarColor",
66
81
  "required": false,
67
82
  "description": "Semantic background color."
68
83
  },
84
+ "data-testid": {
85
+ "type": "string | undefined",
86
+ "required": false,
87
+ "description": "Test id of the root (`<header>`, or `<footer>` at the bottom); `app-bar` unless given."
88
+ },
69
89
  "ref": {
70
90
  "type": "Ref<HTMLElement>",
71
91
  "required": false,
@@ -56,6 +56,11 @@
56
56
  "required": false,
57
57
  "description": "Accessible label for the expand button."
58
58
  },
59
+ "data-testid": {
60
+ "type": "string | undefined",
61
+ "required": false,
62
+ "description": "Test id of the root `<nav>`; `breadcrumbs` unless given."
63
+ },
59
64
  "ref": {
60
65
  "type": "Ref<HTMLElement>",
61
66
  "required": false,
@@ -0,0 +1,166 @@
1
+ {
2
+ "name": "CommandPalette",
3
+ "description": "Command Palette component from the navigation module.",
4
+ "ssr": {
5
+ "safe": true,
6
+ "rendering": "universal"
7
+ },
8
+ "styles": {
9
+ "base": [
10
+ "@smwb/ui-styles/less/foundation.less",
11
+ "@smwb/ui-styles/less/theme.less"
12
+ ],
13
+ "entries": [
14
+ "@smwb/ui-styles/less/components/commandPalette/commandPalette.entry.less"
15
+ ],
16
+ "dependencies": [
17
+ "@smwb/ui-styles/less/components/icon/icon.entry.less",
18
+ "@smwb/ui-styles/less/components/kbd/kbd.entry.less",
19
+ "@smwb/ui-styles/less/components/modal/modal.entry.less",
20
+ "@smwb/ui-styles/less/components/skeleton/skeleton.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/commandPalette/commandPalette.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/kbd/kbd.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/skeleton/skeleton.entry.less\";"
23
+ },
24
+ "props": {
25
+ "open": {
26
+ "type": "boolean | undefined",
27
+ "required": false,
28
+ "description": "Whether the palette is open. Any value but `undefined` makes it controlled: the palette then\nshows this and only asks to change it through `onOpenChange`. While it is `undefined`, the\npalette keeps its own state, starting from `defaultOpen`."
29
+ },
30
+ "defaultOpen": {
31
+ "type": "boolean | undefined",
32
+ "required": false,
33
+ "description": "Open state to start from while uncontrolled; `false` by default."
34
+ },
35
+ "onOpenChange": {
36
+ "type": "((open: boolean) => void) | undefined",
37
+ "required": false,
38
+ "description": "Called for every request to open or close: Escape, a backdrop click, and choosing an item while\n`closeOnSelect`. Called in both the controlled and the uncontrolled mode."
39
+ },
40
+ "groups": {
41
+ "type": "CommandPaletteGroup[] | undefined",
42
+ "required": false,
43
+ "description": "The groups to search in, filtered locally by `filter`; empty by default."
44
+ },
45
+ "recent": {
46
+ "type": "CommandPaletteItem[] | undefined",
47
+ "required": false,
48
+ "description": "Recently used items, kept by the app (its local storage, its server, per user) and updated from\n`onSelect`. Shown as the first group while the query is empty, unfiltered, and hidden while\nthe user searches."
49
+ },
50
+ "recentLabel": {
51
+ "type": "string | undefined",
52
+ "required": false,
53
+ "description": "Heading of the recent group; `\"Recent\"` by default."
54
+ },
55
+ "query": {
56
+ "type": "string | undefined",
57
+ "required": false,
58
+ "description": "The text in the search field. Any value but `undefined` makes it controlled: the field shows\nthis and only reports edits through `onQueryChange`."
59
+ },
60
+ "defaultQuery": {
61
+ "type": "string | undefined",
62
+ "required": false,
63
+ "description": "Text to start from while uncontrolled, and to reset to each time the palette opens; `\"\"`."
64
+ },
65
+ "onQueryChange": {
66
+ "type": "((query: string) => void) | undefined",
67
+ "required": false,
68
+ "description": "Called for every edit of the field, in both the controlled and the uncontrolled mode."
69
+ },
70
+ "filter": {
71
+ "type": "CommandPaletteFilter | false | undefined",
72
+ "required": false,
73
+ "description": "Decides which of `groups` an edit keeps; commandPaletteFilter by default. `false` shows\n`groups` as given, for an app that filters them itself or gets them filtered from a server.\nNever applied to `recent` or to the results of `source`."
74
+ },
75
+ "source": {
76
+ "type": "CommandPaletteSource | undefined",
77
+ "required": false,
78
+ "description": "Loads results for the trimmed query, after `debounce` ms of quiet typing. Its `signal` is\naborted when a newer query, a close or an unmount makes the answer useless, and an answer that\narrives for an older query is dropped. Appended after `groups`."
79
+ },
80
+ "debounce": {
81
+ "type": "number | undefined",
82
+ "required": false,
83
+ "description": "Milliseconds of quiet typing before `source` is called; `200` by default."
84
+ },
85
+ "minQueryLength": {
86
+ "type": "number | undefined",
87
+ "required": false,
88
+ "description": "`source` is called only when the trimmed query has at least this many characters; `1` by\ndefault. `0` also loads for the empty query."
89
+ },
90
+ "loading": {
91
+ "type": "boolean | undefined",
92
+ "required": false,
93
+ "description": "App-driven loading: shows the skeleton like a pending `source` does, for an app that loads\nitself with a controlled `query`; `false` by default."
94
+ },
95
+ "onSelect": {
96
+ "type": "((item: CommandPaletteItem, group: CommandPaletteGroup) => void) | undefined",
97
+ "required": false,
98
+ "description": "Called for every chosen item, after the item's own `onSelect`. The place for the app to move the\nitem to the top of its `recent` list."
99
+ },
100
+ "closeOnSelect": {
101
+ "type": "boolean | undefined",
102
+ "required": false,
103
+ "description": "Ask to close when an item is chosen; `true` by default."
104
+ },
105
+ "placeholder": {
106
+ "type": "string | undefined",
107
+ "required": false,
108
+ "description": "Placeholder of the field; `\"Type a command or search…\"` by default. It is not its name."
109
+ },
110
+ "searchLabel": {
111
+ "type": "string | undefined",
112
+ "required": false,
113
+ "description": "Accessible name of the field and, through `aria-labelledby`, of the listbox; `\"Search commands\"`."
114
+ },
115
+ "noResultsText": {
116
+ "type": "string | undefined",
117
+ "required": false,
118
+ "description": "Shown and announced when nothing matches; `\"No results\"` by default."
119
+ },
120
+ "errorText": {
121
+ "type": "string | undefined",
122
+ "required": false,
123
+ "description": "Shown and announced when `source` rejects; `\"Couldn't load results\"` by default."
124
+ },
125
+ "resultsAnnouncement": {
126
+ "type": "((count: number) => string) | undefined",
127
+ "required": false,
128
+ "description": "Text of the polite announcement after a search settles; `\"1 result\"` or `\"N results\"` by\ndefault. Not used for zero results, which announce `noResultsText`."
129
+ },
130
+ "footer": {
131
+ "type": "JSX.Element | undefined",
132
+ "required": false,
133
+ "description": "Slot under the results, for key hints built with `Kbd`. Drawn only when given:\n`<>Press <Kbd keys={[\"Enter\"]} /> to run</>`."
134
+ },
135
+ "class": {
136
+ "type": "string | undefined",
137
+ "required": false,
138
+ "description": "Added to the dialog element, after `smwb-command-palette`."
139
+ },
140
+ "aria-label": {
141
+ "type": "string | undefined",
142
+ "required": false,
143
+ "description": "Name of the dialog; `\"Command palette\"` by default. Not set when `aria-labelledby` is given."
144
+ },
145
+ "aria-labelledby": {
146
+ "type": "string | undefined",
147
+ "required": false,
148
+ "description": "Id of the element that names the dialog; replaces the default `aria-label`."
149
+ },
150
+ "aria-describedby": {
151
+ "type": "string | undefined",
152
+ "required": false,
153
+ "description": "Ids of the elements that describe the dialog."
154
+ },
155
+ "data-testid": {
156
+ "type": "string | undefined",
157
+ "required": false,
158
+ "description": "Test id of the dialog element; `\"command-palette\"` unless given."
159
+ },
160
+ "ref": {
161
+ "type": "Ref<HTMLDivElement> | undefined",
162
+ "required": false,
163
+ "description": "Ref of the dialog element."
164
+ }
165
+ }
166
+ }
@@ -7,7 +7,7 @@
7
7
  "note": "The trigger renders on the server; the menu surface mounts on the client."
8
8
  },
9
9
  "extends": [
10
- "MenuFloatingProps & {\n variant?: \"static\" | \"floating\";\n dense?: boolean;\n}"
10
+ "MenuFloatingProps & {\n variant?: \"static\" | \"floating\";\n dense?: boolean;\n /**\n * Role of the list inside the menu, `menu` by default. A component that draws\n * a list of its own on the menu's surface sets `presentation`: SelectField's\n * options are a `listbox` inside it.\n */\n listRole?: JSX.AriaAttributes[\"role\"];\n}"
11
11
  ],
12
12
  "inheritedAttributes": "Also accepts standard HTML attributes for the underlying element (see extends clause in TypeScript).",
13
13
  "styles": {
@@ -26,7 +26,7 @@
26
26
  "disabled": {
27
27
  "type": "boolean | undefined",
28
28
  "required": false,
29
- "description": "Whether the control is disabled and non-interactive."
29
+ "description": "Greys the item out and marks it `aria-disabled`. It takes no focus, the arrow keys\nskip it, and neither a click nor Enter or Space chooses it."
30
30
  },
31
31
  "selected": {
32
32
  "type": "boolean | undefined",
@@ -25,6 +25,11 @@
25
25
  "type": "Ref<HTMLDivElement>",
26
26
  "required": false,
27
27
  "description": "Ref. Optional. Type: Ref<HTMLDivElement>."
28
+ },
29
+ "listRole": {
30
+ "type": "JSX.AriaAttributes[\"role\"] | undefined",
31
+ "required": false,
32
+ "description": "Role of the inner list, `menu` by default (see `MenuProps`)."
28
33
  }
29
34
  }
30
35
  }
@@ -5,6 +5,10 @@
5
5
  "safe": true,
6
6
  "rendering": "universal"
7
7
  },
8
+ "extends": [
9
+ "JSX.HTMLAttributes<HTMLDivElement>"
10
+ ],
11
+ "inheritedAttributes": "Also accepts standard HTML attributes for the underlying element (see extends clause in TypeScript).",
8
12
  "styles": {
9
13
  "base": [
10
14
  "@smwb/ui-styles/less/foundation.less",
@@ -13,8 +17,10 @@
13
17
  "entries": [
14
18
  "@smwb/ui-styles/less/components/menu/menu.entry.less"
15
19
  ],
16
- "dependencies": [],
17
- "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/menu/menu.entry.less\";"
20
+ "dependencies": [
21
+ "@smwb/ui-styles/less/components/ripple/ripple.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/menu/menu.entry.less\";\n@import (less) \"node_modules/@smwb/ui-styles/less/components/ripple/ripple.entry.less\";"
18
24
  },
19
25
  "props": {
20
26
  "placement": {
@@ -45,7 +51,12 @@
45
51
  "class": {
46
52
  "type": "string",
47
53
  "required": false,
48
- "description": "Class. Optional. Type: string."
54
+ "description": "Class of the floating panel that holds the items, as in React. The other HTML\nattributes and `style` go to the panel too; the toggle row takes none of them."
55
+ },
56
+ "ref": {
57
+ "type": "Ref<HTMLDivElement>",
58
+ "required": false,
59
+ "description": "Gets the floating panel that holds the items, while it is open."
49
60
  }
50
61
  }
51
62
  }