@coinbase/cds-mcp-server 8.23.0 → 8.24.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +4 -0
- package/mcp-docs/mobile/components/DatePicker.txt +35 -0
- package/mcp-docs/mobile/components/SelectAlpha.txt +33 -0
- package/mcp-docs/mobile/components/TextInput.txt +20 -0
- package/mcp-docs/web/components/DatePicker.txt +35 -0
- package/mcp-docs/web/components/SelectAlpha.txt +33 -0
- package/mcp-docs/web/components/TextInput.txt +23 -0
- package/mcp-docs/web/components/Tooltip.txt +24 -2
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -8,6 +8,10 @@ All notable changes to this project will be documented in this file.
|
|
|
8
8
|
|
|
9
9
|
<!-- template-start -->
|
|
10
10
|
|
|
11
|
+
## 8.24.0 ((12/1/2025, 06:51 AM PST))
|
|
12
|
+
|
|
13
|
+
This is an artificial version bump with no new change.
|
|
14
|
+
|
|
11
15
|
## 8.23.0 ((12/1/2025, 06:33 AM PST))
|
|
12
16
|
|
|
13
17
|
This is an artificial version bump with no new change.
|
|
@@ -36,6 +36,40 @@ function Example() {
|
|
|
36
36
|
}
|
|
37
37
|
```
|
|
38
38
|
|
|
39
|
+
### Custom Label
|
|
40
|
+
|
|
41
|
+
If you need to render a custom label (e.g. a label with a tooltip), you can use the `labelNode` prop.
|
|
42
|
+
|
|
43
|
+
```jsx
|
|
44
|
+
function Example() {
|
|
45
|
+
const [date, setDate] = useState(null);
|
|
46
|
+
const [error, setError] = useState(null);
|
|
47
|
+
|
|
48
|
+
return (
|
|
49
|
+
<DatePicker
|
|
50
|
+
date={date}
|
|
51
|
+
error={error}
|
|
52
|
+
onChangeDate={setDate}
|
|
53
|
+
onErrorDate={setError}
|
|
54
|
+
label="Birthdate"
|
|
55
|
+
labelNode={
|
|
56
|
+
<HStack alignItems="center" gap={1}>
|
|
57
|
+
<InputLabel>Birthdate</InputLabel>
|
|
58
|
+
<Tooltip content="This will be visible to other users.">
|
|
59
|
+
<Icon color="fgMuted" name="info" size="xs" />
|
|
60
|
+
</Tooltip>
|
|
61
|
+
</HStack>
|
|
62
|
+
}
|
|
63
|
+
calendarIconButtonAccessibilityLabel="Birthdate calendar"
|
|
64
|
+
nextArrowAccessibilityLabel="Next month"
|
|
65
|
+
previousArrowAccessibilityLabel="Previous month"
|
|
66
|
+
helperTextErrorIconAccessibilityLabel="Error"
|
|
67
|
+
invalidDateError="Please enter a valid date"
|
|
68
|
+
/>
|
|
69
|
+
);
|
|
70
|
+
}
|
|
71
|
+
```
|
|
72
|
+
|
|
39
73
|
### Invalid dates
|
|
40
74
|
|
|
41
75
|
Always provide the `invalidDateError` prop for when users type an impossible date like 99/99/2000.
|
|
@@ -420,6 +454,7 @@ function Example() {
|
|
|
420
454
|
| `keyboardAppearance` | `light \| default \| dark` | No | `-` | Determines the color of the keyboard. |
|
|
421
455
|
| `keyboardType` | `default \| url \| number-pad \| decimal-pad \| numeric \| email-address \| phone-pad \| visible-password \| ascii-capable \| numbers-and-punctuation \| name-phone-pad \| twitter \| web-search` | No | `-` | enum(default, numeric, email-address, ascii-capable, numbers-and-punctuation, url, number-pad, phone-pad, name-phone-pad, decimal-pad, twitter, web-search, visible-password) Determines which keyboard to open, e.g.numeric. The following values work across platforms: - default - numeric - email-address - phone-pad The following values work on iOS: - ascii-capable - numbers-and-punctuation - url - number-pad - name-phone-pad - decimal-pad - twitter - web-search The following values work on Android: - visible-password |
|
|
422
456
|
| `label` | `string` | No | `-` | Short messageArea indicating purpose of input |
|
|
457
|
+
| `labelNode` | `null \| string \| number \| false \| true \| ReactElement<any, string \| JSXElementConstructor<any>> \| Iterable<ReactNode> \| ReactPortal` | No | `-` | React node to render label. Takes precedence over label. |
|
|
423
458
|
| `labelVariant` | `inside \| outside` | No | `'outside'` | The variant of the label. Only used when compact is not true. |
|
|
424
459
|
| `lineBreakStrategyIOS` | `none \| standard \| hangul-word \| push-out` | No | `-` | Set line break strategy on iOS. |
|
|
425
460
|
| `maxDate` | `Date` | No | `-` | Maximum date allowed to be selected, inclusive. Dates after the maxDate are disabled. All navigation to months after the maxDate is disabled. |
|
|
@@ -1131,6 +1131,39 @@ function CustomClassNamesExamples() {
|
|
|
1131
1131
|
}
|
|
1132
1132
|
```
|
|
1133
1133
|
|
|
1134
|
+
### Custom Label
|
|
1135
|
+
|
|
1136
|
+
If you need to render a custom label (e.g. a label with a tooltip), you can pass a React Node to the `label` prop.
|
|
1137
|
+
|
|
1138
|
+
```jsx
|
|
1139
|
+
function CustomLabelExample() {
|
|
1140
|
+
const [value, setValue] = useState('1');
|
|
1141
|
+
|
|
1142
|
+
const options = [
|
|
1143
|
+
{ value: '1', label: 'Option 1' },
|
|
1144
|
+
{ value: '2', label: 'Option 2' },
|
|
1145
|
+
{ value: '3', label: 'Option 3' },
|
|
1146
|
+
];
|
|
1147
|
+
|
|
1148
|
+
return (
|
|
1149
|
+
<Select
|
|
1150
|
+
label={
|
|
1151
|
+
<HStack alignItems="center" gap={1}>
|
|
1152
|
+
Custom Label
|
|
1153
|
+
<Tooltip content="This will be visible to other users.">
|
|
1154
|
+
<Icon color="fgMuted" name="info" size="xs" />
|
|
1155
|
+
</Tooltip>
|
|
1156
|
+
</HStack>
|
|
1157
|
+
}
|
|
1158
|
+
value={value}
|
|
1159
|
+
onChange={setValue}
|
|
1160
|
+
options={options}
|
|
1161
|
+
placeholder="Select an option"
|
|
1162
|
+
/>
|
|
1163
|
+
);
|
|
1164
|
+
}
|
|
1165
|
+
```
|
|
1166
|
+
|
|
1134
1167
|
### Custom components
|
|
1135
1168
|
|
|
1136
1169
|
Select is highly customizable. Use the _Component_ props to customize the various subcomponents in Select.
|
|
@@ -323,6 +323,25 @@ When using the `inside` label variant, you should always include a `placeholder`
|
|
|
323
323
|
/>
|
|
324
324
|
```
|
|
325
325
|
|
|
326
|
+
#### Custom Label
|
|
327
|
+
|
|
328
|
+
If you need to render a custom label (e.g. a label with a tooltip), you can use the `labelNode` prop.
|
|
329
|
+
|
|
330
|
+
```jsx
|
|
331
|
+
<TextInput
|
|
332
|
+
label="Display name"
|
|
333
|
+
labelNode={
|
|
334
|
+
<HStack alignItems="center" gap={1}>
|
|
335
|
+
<InputLabel>Display name</InputLabel>
|
|
336
|
+
<Tooltip content="This will be visible to other users.">
|
|
337
|
+
<Icon active color="fg" name="info" size="xs" />
|
|
338
|
+
</Tooltip>
|
|
339
|
+
</HStack>
|
|
340
|
+
}
|
|
341
|
+
placeholder="Satoshi Nakamoto"
|
|
342
|
+
/>
|
|
343
|
+
```
|
|
344
|
+
|
|
326
345
|
### Example of Input Objects placed at the End
|
|
327
346
|
|
|
328
347
|
Here are some examples and best practices when using end content in a TextField.
|
|
@@ -648,6 +667,7 @@ function TextInputKeyboardExample() {
|
|
|
648
667
|
| `keyboardAppearance` | `light \| default \| dark` | No | `-` | Determines the color of the keyboard. |
|
|
649
668
|
| `keyboardType` | `default \| url \| number-pad \| decimal-pad \| numeric \| email-address \| phone-pad \| visible-password \| ascii-capable \| numbers-and-punctuation \| name-phone-pad \| twitter \| web-search` | No | `-` | enum(default, numeric, email-address, ascii-capable, numbers-and-punctuation, url, number-pad, phone-pad, name-phone-pad, decimal-pad, twitter, web-search, visible-password) Determines which keyboard to open, e.g.numeric. The following values work across platforms: - default - numeric - email-address - phone-pad The following values work on iOS: - ascii-capable - numbers-and-punctuation - url - number-pad - name-phone-pad - decimal-pad - twitter - web-search The following values work on Android: - visible-password |
|
|
650
669
|
| `label` | `string` | No | `-` | Short messageArea indicating purpose of input |
|
|
670
|
+
| `labelNode` | `null \| string \| number \| false \| true \| ReactElement<any, string \| JSXElementConstructor<any>> \| Iterable<ReactNode> \| ReactPortal` | No | `-` | React node to render label. Takes precedence over label. |
|
|
651
671
|
| `labelVariant` | `inside \| outside` | No | `'outside'` | The variant of the label. Only used when compact is not true. |
|
|
652
672
|
| `lineBreakStrategyIOS` | `none \| standard \| hangul-word \| push-out` | No | `-` | Set line break strategy on iOS. |
|
|
653
673
|
| `maxFontSizeMultiplier` | `number \| null` | No | `-` | Specifies largest possible scale a font can reach when allowFontScaling is enabled. Possible values: - null/undefined (default): inherit from the parent node or the global default (0) - 0: no max, ignore parent/global default - >= 1: sets the maxFontSizeMultiplier of this node to this value |
|
|
@@ -36,6 +36,40 @@ function Example() {
|
|
|
36
36
|
}
|
|
37
37
|
```
|
|
38
38
|
|
|
39
|
+
### Custom Label
|
|
40
|
+
|
|
41
|
+
If you need to render a custom label (e.g. a label with a tooltip), you can use the `labelNode` prop.
|
|
42
|
+
|
|
43
|
+
```jsx live
|
|
44
|
+
function Example() {
|
|
45
|
+
const [date, setDate] = useState(null);
|
|
46
|
+
const [error, setError] = useState(null);
|
|
47
|
+
|
|
48
|
+
return (
|
|
49
|
+
<DatePicker
|
|
50
|
+
date={date}
|
|
51
|
+
error={error}
|
|
52
|
+
onChangeDate={setDate}
|
|
53
|
+
onErrorDate={setError}
|
|
54
|
+
label="Birthdate"
|
|
55
|
+
labelNode={
|
|
56
|
+
<HStack alignItems="center" gap={1}>
|
|
57
|
+
<InputLabel>Birthdate</InputLabel>
|
|
58
|
+
<Tooltip content="This will be visible to other users.">
|
|
59
|
+
<Icon active color="fg" name="info" size="xs" tabIndex={0} />
|
|
60
|
+
</Tooltip>
|
|
61
|
+
</HStack>
|
|
62
|
+
}
|
|
63
|
+
calendarIconButtonAccessibilityLabel="Birthdate calendar"
|
|
64
|
+
nextArrowAccessibilityLabel="Next month"
|
|
65
|
+
previousArrowAccessibilityLabel="Previous month"
|
|
66
|
+
helperTextErrorIconAccessibilityLabel="Error"
|
|
67
|
+
invalidDateError="Please enter a valid date"
|
|
68
|
+
/>
|
|
69
|
+
);
|
|
70
|
+
}
|
|
71
|
+
```
|
|
72
|
+
|
|
39
73
|
### Invalid dates
|
|
40
74
|
|
|
41
75
|
Always provide the `invalidDateError` prop for when users type an impossible date like 99/99/2000.
|
|
@@ -475,6 +509,7 @@ function Example() {
|
|
|
475
509
|
| `invalidDateError` | `string` | No | `'Please enter a valid date'` | Error text to display when an impossible date is selected, e.g. 99/99/2000. This should always be defined for accessibility. Also displays when a date is selected that is more than 100 years before the minDate, or more than 100 years after the maxDate. |
|
|
476
510
|
| `key` | `Key \| null` | No | `-` | - |
|
|
477
511
|
| `label` | `string` | No | `-` | Short messageArea indicating purpose of input |
|
|
512
|
+
| `labelNode` | `null \| string \| number \| false \| true \| ReactElement<any, string \| JSXElementConstructor<any>> \| Iterable<ReactNode> \| ReactPortal` | No | `-` | React node to render label. Takes precedence over label. |
|
|
478
513
|
| `labelVariant` | `inside \| outside` | No | `'outside'` | The variant of the label. Only used when compact is not true. |
|
|
479
514
|
| `maxDate` | `Date` | No | `-` | Maximum date allowed to be selected, inclusive. Dates after the maxDate are disabled. All navigation to months after the maxDate is disabled. |
|
|
480
515
|
| `minDate` | `Date` | No | `-` | Minimum date allowed to be selected, inclusive. Dates before the minDate are disabled. All navigation to months before the minDate is disabled. |
|
|
@@ -1037,6 +1037,39 @@ function CustomClassNamesExamples() {
|
|
|
1037
1037
|
}
|
|
1038
1038
|
```
|
|
1039
1039
|
|
|
1040
|
+
### Custom Label
|
|
1041
|
+
|
|
1042
|
+
If you need to render a custom label (e.g. a label with a tooltip), you can pass a React Node to the `label` prop.
|
|
1043
|
+
|
|
1044
|
+
```jsx live
|
|
1045
|
+
function CustomLabelExample() {
|
|
1046
|
+
const [value, setValue] = useState('1');
|
|
1047
|
+
|
|
1048
|
+
const options = [
|
|
1049
|
+
{ value: '1', label: 'Option 1' },
|
|
1050
|
+
{ value: '2', label: 'Option 2' },
|
|
1051
|
+
{ value: '3', label: 'Option 3' },
|
|
1052
|
+
];
|
|
1053
|
+
|
|
1054
|
+
return (
|
|
1055
|
+
<Select
|
|
1056
|
+
label={
|
|
1057
|
+
<HStack alignItems="center" gap={1}>
|
|
1058
|
+
Custom Label
|
|
1059
|
+
<Tooltip content="This will be visible to other users.">
|
|
1060
|
+
<Icon active color="fg" name="info" size="xs" tabIndex={0} />
|
|
1061
|
+
</Tooltip>
|
|
1062
|
+
</HStack>
|
|
1063
|
+
}
|
|
1064
|
+
value={value}
|
|
1065
|
+
onChange={setValue}
|
|
1066
|
+
options={options}
|
|
1067
|
+
placeholder="Select an option"
|
|
1068
|
+
/>
|
|
1069
|
+
);
|
|
1070
|
+
}
|
|
1071
|
+
```
|
|
1072
|
+
|
|
1040
1073
|
### Custom components
|
|
1041
1074
|
|
|
1042
1075
|
Select is highly customizable. Use the _Component_ props to customize the various subcomponents in Select.
|
|
@@ -266,6 +266,28 @@ When using the `inside` label variant, you should always include a `placeholder`
|
|
|
266
266
|
</VStack>
|
|
267
267
|
```
|
|
268
268
|
|
|
269
|
+
#### Custom Label
|
|
270
|
+
|
|
271
|
+
If you need to render a custom label (e.g. a label with a tooltip), you can use the `labelNode` prop.
|
|
272
|
+
|
|
273
|
+
```jsx live
|
|
274
|
+
<TextInput
|
|
275
|
+
id="display-name-tooltip"
|
|
276
|
+
label="Display name"
|
|
277
|
+
labelNode={
|
|
278
|
+
<InputLabel htmlFor="display-name-tooltip">
|
|
279
|
+
<HStack alignItems="center" gap={1}>
|
|
280
|
+
Display name
|
|
281
|
+
<Tooltip content="This will be visible to other users.">
|
|
282
|
+
<Icon active color="fg" name="info" size="xs" tabIndex={0} />
|
|
283
|
+
</Tooltip>
|
|
284
|
+
</HStack>
|
|
285
|
+
</InputLabel>
|
|
286
|
+
}
|
|
287
|
+
placeholder="Satoshi Nakamoto"
|
|
288
|
+
/>
|
|
289
|
+
```
|
|
290
|
+
|
|
269
291
|
#### StartContent & EndContent
|
|
270
292
|
|
|
271
293
|
##### Examples of Input Objects placed at the Start
|
|
@@ -635,6 +657,7 @@ function TextInputKeyboardExample() {
|
|
|
635
657
|
| `inputNode` | `ReactElement` | No | `-` | Customize the element which the input area will be rendered as. Adds ability to render the input area as a <textarea />, <input /> etc... By default, the input area will be rendered as an <input />. |
|
|
636
658
|
| `key` | `Key \| null` | No | `-` | - |
|
|
637
659
|
| `label` | `string` | No | `-` | Short messageArea indicating purpose of input |
|
|
660
|
+
| `labelNode` | `null \| string \| number \| false \| true \| ReactElement<any, string \| JSXElementConstructor<any>> \| Iterable<ReactNode> \| ReactPortal` | No | `-` | React node to render label. Takes precedence over label. |
|
|
638
661
|
| `labelVariant` | `inside \| outside` | No | `'outside'` | The variant of the label. Only used when compact is not true. |
|
|
639
662
|
| `onChange` | `ChangeEventHandler<HTMLInputElement>` | No | `-` | - |
|
|
640
663
|
| `onClick` | `(MouseEventHandler<Element> & MouseEventHandler<HTMLInputElement>)` | No | `-` | Callback fired when pressed/clicked |
|
|
@@ -51,13 +51,13 @@ function TooltipPosition() {
|
|
|
51
51
|
<Box position="relative">
|
|
52
52
|
Set your default display currency.
|
|
53
53
|
<Tooltip content="I am not centered horizontally">
|
|
54
|
-
<Icon active color="fg" name="info" paddingStart={1} position="absolute" />
|
|
54
|
+
<Icon active color="fg" name="info" paddingStart={1} position="absolute" tabIndex={0} />
|
|
55
55
|
</Tooltip>
|
|
56
56
|
</Box>
|
|
57
57
|
<Box position="relative">
|
|
58
58
|
Set your default display currency.
|
|
59
59
|
<Tooltip content="I am centered horizontally" position="absolute">
|
|
60
|
-
<Icon active color="fg" name="info" paddingStart={1} />
|
|
60
|
+
<Icon active color="fg" name="info" paddingStart={1} tabIndex={0} />
|
|
61
61
|
</Tooltip>
|
|
62
62
|
</Box>
|
|
63
63
|
</VStack>
|
|
@@ -81,6 +81,28 @@ function TooltipColorSchemeOptOut() {
|
|
|
81
81
|
}
|
|
82
82
|
```
|
|
83
83
|
|
|
84
|
+
### Tooltip in TextInput
|
|
85
|
+
|
|
86
|
+
You can use tooltips within `TextInput` to provide more context.
|
|
87
|
+
|
|
88
|
+
```jsx live
|
|
89
|
+
<TextInput
|
|
90
|
+
id="tooltip-input-example"
|
|
91
|
+
label="Display name"
|
|
92
|
+
labelNode={
|
|
93
|
+
<InputLabel htmlFor="tooltip-input-example">
|
|
94
|
+
<HStack alignItems="center" gap={1}>
|
|
95
|
+
Display name
|
|
96
|
+
<Tooltip content="This will be visible to other users.">
|
|
97
|
+
<Icon active color="fg" name="info" size="xs" tabIndex={0} />
|
|
98
|
+
</Tooltip>
|
|
99
|
+
</HStack>
|
|
100
|
+
</InputLabel>
|
|
101
|
+
}
|
|
102
|
+
placeholder="Satoshi Nakamoto"
|
|
103
|
+
/>
|
|
104
|
+
```
|
|
105
|
+
|
|
84
106
|
## Props
|
|
85
107
|
|
|
86
108
|
| Prop | Type | Required | Default | Description |
|