@smwb/ui-mcp-solid 0.13.0 → 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.
@@ -0,0 +1,24 @@
1
+ {
2
+ "name": "ChatFooterComposer",
3
+ "description": "Props for the `Composer` Chat draws as its footer. The props Chat owns itself — `onSendMessage` (the composer's\n`onSend`), `busy`, `onStop`, `composerPlaceholder` (`placeholder`), `composerDisabled` (`disabled`), the file upload\nprops (`onAttach`, `accept`, `multiple`, `maxFiles`) and `dropTarget` (always `false`: the Chat shell is the drop\ntarget) — are left out, Chat passes them and does not let a caller override them.",
4
+ "ssr": {
5
+ "safe": true,
6
+ "rendering": "universal"
7
+ },
8
+ "extends": [
9
+ "Omit<\n ComposerProps,\n | \"onSend\"\n | \"busy\"\n | \"onStop\"\n | \"disabled\"\n | \"placeholder\"\n | \"onAttach\"\n | \"accept\"\n | \"multiple\"\n | \"maxFiles\"\n | \"dropTarget\"\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/chat/chat.entry.less"
19
+ ],
20
+ "dependencies": [],
21
+ "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/chat/chat.entry.less\";"
22
+ },
23
+ "props": {}
24
+ }
@@ -20,6 +20,7 @@
20
20
  ],
21
21
  "dependencies": [
22
22
  "@smwb/ui-styles/less/components/avatar/avatar.entry.less",
23
+ "@smwb/ui-styles/less/components/composer/composer.entry.less",
23
24
  "@smwb/ui-styles/less/components/floatingButton/floatingButton.entry.less",
24
25
  "@smwb/ui-styles/less/components/icon/icon.entry.less",
25
26
  "@smwb/ui-styles/less/components/ripple/ripple.entry.less",
@@ -27,7 +28,7 @@
27
28
  "@smwb/ui-styles/less/components/textField/textField.entry.less",
28
29
  "@smwb/ui-styles/less/components/typography/typography.entry.less"
29
30
  ],
30
- "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/chat/chat.entry.less\";\n@import (less) \"node_modules/@smwb/ui-styles/less/components/avatar/avatar.entry.less\";\n@import (less) \"node_modules/@smwb/ui-styles/less/components/floatingButton/floatingButton.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/ripple/ripple.entry.less\";\n@import (less) \"node_modules/@smwb/ui-styles/less/components/skeleton/skeleton.entry.less\";\n@import (less) \"node_modules/@smwb/ui-styles/less/components/textField/textField.entry.less\";\n@import (less) \"node_modules/@smwb/ui-styles/less/components/typography/typography.entry.less\";"
31
+ "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/chat/chat.entry.less\";\n@import (less) \"node_modules/@smwb/ui-styles/less/components/avatar/avatar.entry.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/floatingButton/floatingButton.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/ripple/ripple.entry.less\";\n@import (less) \"node_modules/@smwb/ui-styles/less/components/skeleton/skeleton.entry.less\";\n@import (less) \"node_modules/@smwb/ui-styles/less/components/textField/textField.entry.less\";\n@import (less) \"node_modules/@smwb/ui-styles/less/components/typography/typography.entry.less\";"
31
32
  },
32
33
  "props": {
33
34
  "class": {
@@ -145,6 +146,26 @@
145
146
  "required": false,
146
147
  "description": "On Send Message. Optional. Type: ((text: string) => void | Promise<void>) | undefined."
147
148
  },
149
+ "busy": {
150
+ "type": "boolean | undefined",
151
+ "required": false,
152
+ "description": "The agent is replying: the composer's send button turns into Stop and calls `onStop`, the keys do not send, the\ntext stays editable. Not the same as `loading` (the message list skeleton). The default composer only."
153
+ },
154
+ "onStop": {
155
+ "type": "(() => void) | undefined",
156
+ "required": false,
157
+ "description": "Called when Stop is pressed while `busy` (and not `composerDisabled`). The default composer only."
158
+ },
159
+ "composerProps": {
160
+ "type": "ChatFooterComposerProps | undefined",
161
+ "required": false,
162
+ "description": "More props for the built-in `Composer`: `toolbar`, `attachments`, `maxLength`, `counter`, `minRows`, `maxRows`,\n`layout`, `sendKey` (default here `\"enter\"`), `value`/`defaultValue`/`onValueChange`, `clearOnSend`, `autofocus`,\n`inputRef`, `aria-*`, `sendLabel`, `stopLabel`, `attachLabel`, `class`, `data-*`, … Chat's own props\n(`onSendMessage`, `busy`, `onStop`, `composerPlaceholder`, `composerDisabled`, the file upload props) win."
163
+ },
164
+ "legacyComposer": {
165
+ "type": "boolean | undefined",
166
+ "required": false,
167
+ "description": "Deprecated: draws the old `ChatComposer` (Enter sends, TextField DOM, `chat-composer*` test ids) instead of the\nbuilt-in `Composer`. Kept for the migration and removed with `ChatComposer` in the next major; `busy`, `onStop`\nand `composerProps` are ignored in this mode."
168
+ },
148
169
  "composerPlaceholder": {
149
170
  "type": "string | undefined",
150
171
  "required": false,
@@ -158,12 +179,12 @@
158
179
  "composerShiftEnterNewline": {
159
180
  "type": "boolean | undefined",
160
181
  "required": false,
161
- "description": "Composer Shift Enter Newline. Optional. Type: boolean | undefined."
182
+ "description": "Deprecated: works with `legacyComposer` only — the built-in `Composer` always inserts a newline on Shift+Enter.\nPass it together with `legacyComposer` until that is removed."
162
183
  },
163
184
  "composerCtrlEnterNewline": {
164
185
  "type": "boolean | undefined",
165
186
  "required": false,
166
- "description": "Composer Ctrl Enter Newline. Optional. Type: boolean | undefined."
187
+ "description": "Deprecated: works with `legacyComposer` only — with the built-in `Composer` Ctrl/⌘+Enter sends. Pass it together\nwith `legacyComposer` until that is removed."
167
188
  },
168
189
  "fileUpload": {
169
190
  "type": "boolean | undefined",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ChatComposer",
3
- "description": "Chat Composer component from the dataDisplay module.",
3
+ "description": "Deprecated: the old chat input (Enter sends, TextField-based). Use Composer; Chat draws a Composer by default (legacyComposer keeps this one during the migration).",
4
4
  "ssr": {
5
5
  "safe": true,
6
6
  "rendering": "universal"
@@ -20,6 +20,7 @@
20
20
  ],
21
21
  "dependencies": [
22
22
  "@smwb/ui-styles/less/components/avatar/avatar.entry.less",
23
+ "@smwb/ui-styles/less/components/composer/composer.entry.less",
23
24
  "@smwb/ui-styles/less/components/floatingButton/floatingButton.entry.less",
24
25
  "@smwb/ui-styles/less/components/icon/icon.entry.less",
25
26
  "@smwb/ui-styles/less/components/ripple/ripple.entry.less",
@@ -27,7 +28,7 @@
27
28
  "@smwb/ui-styles/less/components/textField/textField.entry.less",
28
29
  "@smwb/ui-styles/less/components/typography/typography.entry.less"
29
30
  ],
30
- "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/chat/chat.entry.less\";\n@import (less) \"node_modules/@smwb/ui-styles/less/components/avatar/avatar.entry.less\";\n@import (less) \"node_modules/@smwb/ui-styles/less/components/floatingButton/floatingButton.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/ripple/ripple.entry.less\";\n@import (less) \"node_modules/@smwb/ui-styles/less/components/skeleton/skeleton.entry.less\";\n@import (less) \"node_modules/@smwb/ui-styles/less/components/textField/textField.entry.less\";\n@import (less) \"node_modules/@smwb/ui-styles/less/components/typography/typography.entry.less\";"
31
+ "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/chat/chat.entry.less\";\n@import (less) \"node_modules/@smwb/ui-styles/less/components/avatar/avatar.entry.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/floatingButton/floatingButton.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/ripple/ripple.entry.less\";\n@import (less) \"node_modules/@smwb/ui-styles/less/components/skeleton/skeleton.entry.less\";\n@import (less) \"node_modules/@smwb/ui-styles/less/components/textField/textField.entry.less\";\n@import (less) \"node_modules/@smwb/ui-styles/less/components/typography/typography.entry.less\";"
31
32
  },
32
33
  "props": {
33
34
  "contentClass": {
@@ -20,6 +20,7 @@
20
20
  ],
21
21
  "dependencies": [
22
22
  "@smwb/ui-styles/less/components/avatar/avatar.entry.less",
23
+ "@smwb/ui-styles/less/components/composer/composer.entry.less",
23
24
  "@smwb/ui-styles/less/components/floatingButton/floatingButton.entry.less",
24
25
  "@smwb/ui-styles/less/components/icon/icon.entry.less",
25
26
  "@smwb/ui-styles/less/components/ripple/ripple.entry.less",
@@ -27,7 +28,7 @@
27
28
  "@smwb/ui-styles/less/components/textField/textField.entry.less",
28
29
  "@smwb/ui-styles/less/components/typography/typography.entry.less"
29
30
  ],
30
- "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/chat/chat.entry.less\";\n@import (less) \"node_modules/@smwb/ui-styles/less/components/avatar/avatar.entry.less\";\n@import (less) \"node_modules/@smwb/ui-styles/less/components/floatingButton/floatingButton.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/ripple/ripple.entry.less\";\n@import (less) \"node_modules/@smwb/ui-styles/less/components/skeleton/skeleton.entry.less\";\n@import (less) \"node_modules/@smwb/ui-styles/less/components/textField/textField.entry.less\";\n@import (less) \"node_modules/@smwb/ui-styles/less/components/typography/typography.entry.less\";"
31
+ "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/chat/chat.entry.less\";\n@import (less) \"node_modules/@smwb/ui-styles/less/components/avatar/avatar.entry.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/floatingButton/floatingButton.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/ripple/ripple.entry.less\";\n@import (less) \"node_modules/@smwb/ui-styles/less/components/skeleton/skeleton.entry.less\";\n@import (less) \"node_modules/@smwb/ui-styles/less/components/textField/textField.entry.less\";\n@import (less) \"node_modules/@smwb/ui-styles/less/components/typography/typography.entry.less\";"
31
32
  },
32
33
  "props": {
33
34
  "contentClass": {
@@ -0,0 +1,65 @@
1
+ {
2
+ "name": "DiffStat",
3
+ "description": "The size of a change: \"+N −M\" (U+2212 minus) in the theme's success and error, with an optional five-cell bar of the same proportions and a compact tab variant; one accessible name (\"added N, removed M\", overridable with format) instead of the digits read twice (role=img).",
4
+ "ssr": {
5
+ "safe": true,
6
+ "rendering": "universal"
7
+ },
8
+ "extends": [
9
+ "Omit<JSX.HTMLAttributes<HTMLSpanElement>, \"role\">"
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/diffStat/diffStat.entry.less"
19
+ ],
20
+ "dependencies": [],
21
+ "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/diffStat/diffStat.entry.less\";"
22
+ },
23
+ "props": {
24
+ "added": {
25
+ "type": "number",
26
+ "required": true,
27
+ "description": "Lines added; the figure behind \"+N\". NaN, `undefined`, Infinity and negatives count as 0."
28
+ },
29
+ "removed": {
30
+ "type": "number",
31
+ "required": true,
32
+ "description": "Lines removed; the figure behind \"−M\". NaN, `undefined`, Infinity and negatives count as 0."
33
+ },
34
+ "bar": {
35
+ "type": "boolean | undefined",
36
+ "required": false,
37
+ "description": "The five cells beside the figures. Shown by default, hidden in `compact`; set it either way."
38
+ },
39
+ "compact": {
40
+ "type": "boolean | undefined",
41
+ "required": false,
42
+ "description": "The tab variant: smaller figures, and no bar unless `bar` asks for one."
43
+ },
44
+ "format": {
45
+ "type": "DiffStatFormat | undefined",
46
+ "required": false,
47
+ "description": "How the accessible name is made from the two counts, as numbers: `DEFAULT_DIFF_STAT_FORMAT` unless given."
48
+ },
49
+ "group": {
50
+ "type": "((value: number) => string) | undefined",
51
+ "required": false,
52
+ "description": "How each figure is written (it gets the count as `diffStatCount` takes it): `groupDiffStatCount` — three digits per group — unless given."
53
+ },
54
+ "data-testid": {
55
+ "type": "string | undefined",
56
+ "required": false,
57
+ "description": "Test id of the root `<span>`; `diff-stat` unless given."
58
+ },
59
+ "ref": {
60
+ "type": "Ref<HTMLSpanElement>",
61
+ "required": false,
62
+ "description": "Ref. Optional. Type: Ref<HTMLSpanElement>."
63
+ }
64
+ }
65
+ }
@@ -0,0 +1,55 @@
1
+ {
2
+ "name": "Kbd",
3
+ "description": "A keyboard shortcut as key caps (<kbd>): `Mod` is Command on macOS and Ctrl elsewhere, Mac names become symbols; for a tooltip, a menu item or a command palette.",
4
+ "ssr": {
5
+ "safe": true,
6
+ "rendering": "universal"
7
+ },
8
+ "extends": [
9
+ "Omit<JSX.HTMLAttributes<HTMLElement>, \"children\">"
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/kbd/kbd.entry.less"
19
+ ],
20
+ "dependencies": [],
21
+ "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/kbd/kbd.entry.less\";"
22
+ },
23
+ "props": {
24
+ "keys": {
25
+ "type": "string[]",
26
+ "required": true,
27
+ "description": "The keys of the shortcut in order, e.g. `[\"Mod\", \"K\"]` or `[\"Shift\", \"Enter\"]`. `Mod` is the\nCommand key on macOS and Ctrl elsewhere. On macOS, `Shift`, `Alt`/`Option`, `Ctrl`/`Control`,\n`Meta`/`Cmd`/`Command`, `Enter`, `Escape`, `Tab`, `Backspace` and `Delete` are drawn as the\nsymbols of the Mac keyboard; elsewhere the same names are drawn as Ctrl, Alt, Shift, Meta, Enter,\nEsc, Tab, Backspace and Del, whatever their case. `\" \"` and `Space` are the Space key, `+` and\n`Plus` the plus key.\nArrow names (`ArrowUp` or `Up`, …) are arrows everywhere; any other key is drawn as given\n(a single letter in upper case)."
28
+ },
29
+ "platform": {
30
+ "type": "KbdPlatform | undefined",
31
+ "required": false,
32
+ "description": "The platform whose keys are drawn. Without it the browser's own is used: `other` on the\nserver and in the first client render (so that hydration matches), `mac` right after on a Mac.\nSet it for a fixed look, in stories and in tests."
33
+ },
34
+ "separator": {
35
+ "type": "string | undefined",
36
+ "required": false,
37
+ "description": "Drawn between the key caps. By default `+` on `other` and nothing on `mac`, where the symbols\nstand side by side; `\"\"` draws none. It is for the eye only; assistive technology reads `label`."
38
+ },
39
+ "label": {
40
+ "type": "string | undefined",
41
+ "required": false,
42
+ "description": "What assistive technology reads instead of the key caps. By default the key names, joined\nwith `+` on `other` (\"Ctrl+K\") and with a space on `mac` (\"Command K\")."
43
+ },
44
+ "data-testid": {
45
+ "type": "string | undefined",
46
+ "required": false,
47
+ "description": "Test id of the root `<kbd>`; `kbd` unless given."
48
+ },
49
+ "ref": {
50
+ "type": "Ref<HTMLElement>",
51
+ "required": false,
52
+ "description": "Ref. Optional. Type: Ref<HTMLElement>."
53
+ }
54
+ }
55
+ }
@@ -30,7 +30,7 @@
30
30
  "selected": {
31
31
  "type": "boolean",
32
32
  "required": false,
33
- "description": "Controlled selected tab index or value."
33
+ "description": "Paints the row as the current one. On a link row (with `href`) it also marks the link as the current page\nwith `aria-current=\"page\"`, because `aria-selected` is not a state a list item can have; on another row it\nstays `aria-selected`."
34
34
  },
35
35
  "dense": {
36
36
  "type": "boolean",
@@ -50,12 +50,27 @@
50
50
  "endAdornment": {
51
51
  "type": "JSX.Element",
52
52
  "required": false,
53
- "description": "End Adornment. Optional. Type: JSX.Element."
53
+ "description": "Trailing content. On a link row (with `href`) it sits beside the link, not inside it, so it can hold a control\n(a pin button, a toggle) without nesting it in the `<a>`; a click on it does not reach `onClick`."
54
+ },
55
+ "href": {
56
+ "type": "string",
57
+ "required": false,
58
+ "description": "Makes the row a link: the `startAdornment` and the children sit in an `<a href>` that fills the row, so it can be\nfocused with Tab, opened with middle click or copied. Keep the `startAdornment` non-interactive; a control\nbelongs in the `endAdornment`. A disabled row has no `href`. A router takes the\nplain click in `onClick` with `event.preventDefault()`, and leaves a modified one (Ctrl, Meta, Shift,\nAlt, or a button other than the main one) to the browser, as a router's `Link` does."
59
+ },
60
+ "target": {
61
+ "type": "string | null | undefined",
62
+ "required": false,
63
+ "description": "Where the link (with `href`) opens. By default `\"_blank\"`: a new tab, as for `Button`. Pass `null` for an\ninternal link: the `target` attribute is left out and the link opens in place. An empty string does the same; any other\nstring is used as is."
64
+ },
65
+ "rel": {
66
+ "type": "string | undefined",
67
+ "required": false,
68
+ "description": "The `rel` of the link (with `href`). By default `\"noreferrer\"` for a link that opens another tab or window,\nand 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."
54
69
  },
55
70
  "onClick": {
56
71
  "type": "JSX.EventHandlerUnion<HTMLLIElement, MouseEvent>",
57
72
  "required": false,
58
- "description": "Callback fired when the element is clicked."
73
+ "description": "Click handler of the row. With an `href` it runs for a click on the link (not on the `endAdornment`), before the\nbrowser follows it, so `event.preventDefault()` cancels the navigation; the row then is not a Tab stop of its\nown, the link is."
59
74
  },
60
75
  "ref": {
61
76
  "type": "Ref<HTMLLIElement>",
@@ -0,0 +1,65 @@
1
+ {
2
+ "name": "QrCode",
3
+ "description": "QR code of a value as an SVG image (role=img), dark modules on white in every theme, with a quiet zone, size, caption and error-correction level.",
4
+ "ssr": {
5
+ "safe": true,
6
+ "rendering": "universal"
7
+ },
8
+ "extends": [
9
+ "Omit<JSX.HTMLAttributes<HTMLElement>, \"children\" | \"role\">"
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/qrCode/qrCode.entry.less"
19
+ ],
20
+ "dependencies": [],
21
+ "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/qrCode/qrCode.entry.less\";"
22
+ },
23
+ "props": {
24
+ "value": {
25
+ "type": "string",
26
+ "required": true,
27
+ "description": "Text encoded in the code (a URL, a pairing token). Encoded as UTF-8 bytes."
28
+ },
29
+ "size": {
30
+ "type": "number | undefined",
31
+ "required": false,
32
+ "description": "Side of the code, quiet zone included, in pixels. Default 192."
33
+ },
34
+ "caption": {
35
+ "type": "JSX.Element",
36
+ "required": false,
37
+ "description": "Shown under the code (a `<figcaption>`), e.g. \"Scan with the phone app\"."
38
+ },
39
+ "label": {
40
+ "type": "string | undefined",
41
+ "required": false,
42
+ "description": "Accessible name of the image. Default \"QR code\"."
43
+ },
44
+ "errorCorrection": {
45
+ "type": "QrCodeErrorCorrection | undefined",
46
+ "required": false,
47
+ "description": "Error-correction level: L 7%, M 15% (default), Q 25%, H 30% of the code may be damaged or covered."
48
+ },
49
+ "quietZone": {
50
+ "type": "number | undefined",
51
+ "required": false,
52
+ "description": "Light margin around the code in modules. Default 4, the minimum the QR spec asks for; smaller values hurt scanning."
53
+ },
54
+ "data-testid": {
55
+ "type": "string | undefined",
56
+ "required": false,
57
+ "description": "Test id of the root; `qr-code` unless given."
58
+ },
59
+ "ref": {
60
+ "type": "Ref<HTMLElement>",
61
+ "required": false,
62
+ "description": "Ref. Optional. Type: Ref<HTMLElement>."
63
+ }
64
+ }
65
+ }
@@ -0,0 +1,60 @@
1
+ {
2
+ "name": "StatusDot",
3
+ "description": "Small status marker dot coloured by status or theme colour, with a pulse for active (role=img).",
4
+ "ssr": {
5
+ "safe": true,
6
+ "rendering": "universal"
7
+ },
8
+ "extends": [
9
+ "Omit<JSX.HTMLAttributes<HTMLSpanElement>, \"role\" | \"children\" | \"aria-label\">"
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/statusDot/statusDot.entry.less"
19
+ ],
20
+ "dependencies": [],
21
+ "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/statusDot/statusDot.entry.less\";"
22
+ },
23
+ "props": {
24
+ "status": {
25
+ "type": "StatusDotStatus | undefined",
26
+ "required": false,
27
+ "description": "What the dot says, and so its colour: `active` info, `attention` warning, `idle` neutral, `done` success,\n`error` error. `unknown` is a ring in the outline colour. Without `status` (and without `color`) the dot is\n`unknown`."
28
+ },
29
+ "color": {
30
+ "type": "StatusDotColor | undefined",
31
+ "required": false,
32
+ "description": "A theme colour instead of the status's own, or on its own with no `status` (a plain disc). Given with a\n`status`, the status still sets the shape."
33
+ },
34
+ "size": {
35
+ "type": "StatusDotSize | undefined",
36
+ "required": false,
37
+ "description": "`md` (12px) unless given; `sm` is 8px."
38
+ },
39
+ "pulse": {
40
+ "type": "boolean | undefined",
41
+ "required": false,
42
+ "description": "A ring spreads from the dot. On unless given for `active`, off for every other status. Never drawn while the\nuser prefers reduced motion."
43
+ },
44
+ "label": {
45
+ "type": "string",
46
+ "required": true,
47
+ "description": "What the dot means in words, e.g. \"Working\": the accessible name, read by assistive technology."
48
+ },
49
+ "data-testid": {
50
+ "type": "string | undefined",
51
+ "required": false,
52
+ "description": "Test id of the root; `status-dot` unless given."
53
+ },
54
+ "ref": {
55
+ "type": "Ref<HTMLSpanElement>",
56
+ "required": false,
57
+ "description": "Ref. Optional. Type: Ref<HTMLSpanElement>."
58
+ }
59
+ }
60
+ }
@@ -0,0 +1,95 @@
1
+ {
2
+ "name": "Swimlanes",
3
+ "description": "Participant lanes: a virtualised grid (role=grid) with one row per lane, a fixed rowheader column (avatar, name, role) and a content cell that scrolls sideways; fixed rowHeight, single selection (selectedId/defaultSelectedId/onSelectedChange), arrow/Home/End/Page keys with one Tab stop.",
4
+ "ssr": {
5
+ "safe": true,
6
+ "rendering": "universal"
7
+ },
8
+ "extends": [
9
+ "Omit<JSX.HTMLAttributes<HTMLDivElement>, \"onSelect\" | \"role\" | \"children\">"
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/swimlanes/swimlanes.entry.less"
19
+ ],
20
+ "dependencies": [],
21
+ "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/swimlanes/swimlanes.entry.less\";"
22
+ },
23
+ "props": {
24
+ "lanes": {
25
+ "type": "readonly SwimlanesLane[]",
26
+ "required": true,
27
+ "description": "The lanes, one row each, in the order they are shown."
28
+ },
29
+ "label": {
30
+ "type": "string | undefined",
31
+ "required": false,
32
+ "description": "Accessible name of the grid (`aria-label`); `aria-labelledby` wins when given."
33
+ },
34
+ "selectedId": {
35
+ "type": "string | null | undefined",
36
+ "required": false,
37
+ "description": "The selected lane's id (controlled); `null` selects nothing."
38
+ },
39
+ "defaultSelectedId": {
40
+ "type": "string | null | undefined",
41
+ "required": false,
42
+ "description": "The lane selected at first (uncontrolled)."
43
+ },
44
+ "onSelectedChange": {
45
+ "type": "((id: string | null) => void) | undefined",
46
+ "required": false,
47
+ "description": "A lane was selected (its id) or the selection was cleared (`null`)."
48
+ },
49
+ "selectable": {
50
+ "type": "boolean | undefined",
51
+ "required": false,
52
+ "description": "Whether lanes can be selected; true by default. False: no `aria-selected`, no selected look,\nand Enter, Space, Escape and a click select nothing; a `selectedId` given anyway is ignored."
53
+ },
54
+ "rowHeight": {
55
+ "type": "number | undefined",
56
+ "required": false,
57
+ "description": "Row height in px (every lane is this tall; virtualisation needs a fixed height). 64 by default."
58
+ },
59
+ "headerWidth": {
60
+ "type": "number | string | undefined",
61
+ "required": false,
62
+ "description": "Width of the fixed header column: px or any CSS length; 240px by default from the stylesheet."
63
+ },
64
+ "contentMinWidth": {
65
+ "type": "number | string | undefined",
66
+ "required": false,
67
+ "description": "Narrowest width of the content column; when the grid is narrower, it scrolls sideways. 0 by default."
68
+ },
69
+ "height": {
70
+ "type": "number | string | undefined",
71
+ "required": false,
72
+ "description": "Height of the grid (the scroller): a number of pixels or any CSS length;\n480 by default, from the stylesheet, so a height in `style` works too."
73
+ },
74
+ "overscan": {
75
+ "type": "number | undefined",
76
+ "required": false,
77
+ "description": "Lanes rendered above and below the visible ones. 4 by default. Read once, when the grid mounts."
78
+ },
79
+ "emptyLabel": {
80
+ "type": "JSX.Element",
81
+ "required": false,
82
+ "description": "Shown instead of the grid when `lanes` is empty."
83
+ },
84
+ "data-testid": {
85
+ "type": "string | undefined",
86
+ "required": false,
87
+ "description": "Test id of the root `<div>`; `swimlanes` unless given."
88
+ },
89
+ "ref": {
90
+ "type": "Ref<HTMLDivElement>",
91
+ "required": false,
92
+ "description": "Ref. Optional. Type: Ref<HTMLDivElement>."
93
+ }
94
+ }
95
+ }
@@ -71,22 +71,37 @@
71
71
  "selectable": {
72
72
  "type": "boolean",
73
73
  "required": false,
74
- "description": "Selectable. Optional. Type: boolean."
74
+ "description": "Enables row selection: a click, Enter or Space on a row toggles its selection. The chevron and the\nLeft/Right keys never change it."
75
75
  },
76
76
  "checkboxes": {
77
77
  "type": "boolean",
78
78
  "required": false,
79
- "description": "Checkboxes. Optional. Type: boolean."
79
+ "description": "Renders a checkbox per node bound to selection."
80
+ },
81
+ "toggleOnRowClick": {
82
+ "type": "boolean",
83
+ "required": false,
84
+ "description": "Whether a click, Enter or Space on a row also expands or collapses its children. The chevron and the\nRight/Left keys always do. Defaults to `true` while the tree is not `selectable` (a row has nothing else to\ndo) and to `false` otherwise, so that selecting a row leaves it open or closed."
80
85
  },
81
86
  "renderLabel": {
82
87
  "type": "(item: ITreeNodeItem, nodeId: string) => JSX.Element",
83
88
  "required": false,
84
- "description": "Render Label. Optional. Type: (item: ITreeNodeItem, nodeId: string) => JSX.Element."
89
+ "description": "Custom node renderer."
90
+ },
91
+ "renderActions": {
92
+ "type": "(item: ITreeNodeItem, nodeId: string) => JSX.Element",
93
+ "required": false,
94
+ "description": "Per-node actions (buttons, a menu trigger), drawn at the end of the row. They sit beside the row's\nbutton, not inside it, so they take their own clicks, Enter and Space, focus and accessible names."
95
+ },
96
+ "loadingText": {
97
+ "type": "string",
98
+ "required": false,
99
+ "description": "Text shown while `loadChildren` is pending; \"Loading…\" unless given."
85
100
  },
86
101
  "loadChildren": {
87
102
  "type": "(item: ITreeNodeItem, nodeId: string) => Promise<ITreeNodeItem[]>",
88
103
  "required": false,
89
- "description": "Load Children. Optional. Type: (item: ITreeNodeItem, nodeId: string) => Promise<ITreeNodeItem[]>."
104
+ "description": "Lazily resolves children the first time a node is expanded."
90
105
  },
91
106
  "data-testid": {
92
107
  "type": "string | undefined",
@@ -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,