@coinbase/cds-mcp-server 8.28.1 → 8.29.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 +8 -0
- package/mcp-docs/mobile/components/Accordion.txt +3 -1
- package/mcp-docs/mobile/components/Alert.txt +3 -1
- package/mcp-docs/mobile/components/Banner.txt +14 -14
- package/mcp-docs/mobile/components/Button.txt +173 -30
- package/mcp-docs/mobile/components/Carousel.txt +24 -24
- package/mcp-docs/mobile/components/Combobox.txt +187 -0
- package/mcp-docs/mobile/components/ContainedAssetCard.txt +4 -4
- package/mcp-docs/mobile/components/ContentCard.txt +29 -27
- package/mcp-docs/mobile/components/ContentCardBody.txt +4 -4
- package/mcp-docs/mobile/components/ContentCardHeader.txt +2 -2
- package/mcp-docs/mobile/components/FloatingAssetCard.txt +6 -6
- package/mcp-docs/mobile/components/IconButton.txt +126 -51
- package/mcp-docs/mobile/components/LineChart.txt +3 -2
- package/mcp-docs/mobile/components/MultiContentModule.txt +6 -6
- package/mcp-docs/mobile/components/Numpad.txt +2 -2
- package/mcp-docs/mobile/components/PageHeader.txt +3 -1
- package/mcp-docs/mobile/components/PeriodSelector.txt +4 -4
- package/mcp-docs/mobile/components/Pressable.txt +6 -2
- package/mcp-docs/mobile/components/ProgressBarWithFixedLabels.txt +4 -4
- package/mcp-docs/mobile/components/ProgressBarWithFloatLabel.txt +2 -2
- package/mcp-docs/mobile/components/ProgressCircle.txt +5 -1
- package/mcp-docs/mobile/components/SelectChip.txt +2 -0
- package/mcp-docs/mobile/components/SelectChipAlpha.txt +1 -1
- package/mcp-docs/mobile/components/SlideButton.txt +2 -2
- package/mcp-docs/mobile/components/Sparkline.txt +3 -1
- package/mcp-docs/mobile/components/SparklineGradient.txt +3 -1
- package/mcp-docs/mobile/components/SparklineInteractiveHeader.txt +3 -1
- package/mcp-docs/mobile/components/TabbedChips.txt +3 -1
- package/mcp-docs/mobile/components/Tag.txt +19 -9
- package/mcp-docs/mobile/components/TextInput.txt +9 -3
- package/mcp-docs/mobile/components/Tray.txt +2 -0
- package/mcp-docs/mobile/components/UpsellCard.txt +16 -16
- package/mcp-docs/mobile/hooks/useDimensions.txt +4 -4
- package/mcp-docs/mobile/hooks/useMergeRefs.txt +4 -4
- package/mcp-docs/mobile/hooks/usePreviousValue.txt +5 -5
- package/mcp-docs/mobile/hooks/useRefMap.txt +6 -6
- package/mcp-docs/mobile/routes.txt +1 -0
- package/mcp-docs/web/components/Accordion.txt +3 -1
- package/mcp-docs/web/components/Alert.txt +3 -1
- package/mcp-docs/web/components/Banner.txt +14 -14
- package/mcp-docs/web/components/Button.txt +188 -34
- package/mcp-docs/web/components/Carousel.txt +71 -65
- package/mcp-docs/web/components/Combobox.txt +176 -0
- package/mcp-docs/web/components/ContainedAssetCard.txt +4 -4
- package/mcp-docs/web/components/ContentCard.txt +29 -27
- package/mcp-docs/web/components/ContentCardBody.txt +4 -4
- package/mcp-docs/web/components/ContentCardHeader.txt +2 -2
- package/mcp-docs/web/components/FloatingAssetCard.txt +6 -6
- package/mcp-docs/web/components/FullscreenModal.txt +12 -4
- package/mcp-docs/web/components/GridColumn.txt +12 -4
- package/mcp-docs/web/components/IconButton.txt +164 -189
- package/mcp-docs/web/components/LineChart.txt +3 -2
- package/mcp-docs/web/components/MultiContentModule.txt +6 -6
- package/mcp-docs/web/components/PageHeader.txt +11 -9
- package/mcp-docs/web/components/ProgressBarWithFixedLabels.txt +4 -4
- package/mcp-docs/web/components/ProgressBarWithFloatLabel.txt +2 -2
- package/mcp-docs/web/components/ProgressCircle.txt +5 -1
- package/mcp-docs/web/components/SelectChipAlpha.txt +1 -1
- package/mcp-docs/web/components/Sidebar.txt +2 -2
- package/mcp-docs/web/components/Sparkline.txt +3 -1
- package/mcp-docs/web/components/SparklineGradient.txt +3 -1
- package/mcp-docs/web/components/SparklineInteractiveHeader.txt +3 -1
- package/mcp-docs/web/components/TabbedChips.txt +3 -1
- package/mcp-docs/web/components/TableBody.txt +2 -2
- package/mcp-docs/web/components/TableCaption.txt +2 -2
- package/mcp-docs/web/components/TableCell.txt +6 -6
- package/mcp-docs/web/components/Tag.txt +19 -9
- package/mcp-docs/web/components/TextInput.txt +9 -3
- package/mcp-docs/web/components/Tray.txt +2 -1
- package/mcp-docs/web/components/UpsellCard.txt +16 -16
- package/mcp-docs/web/hooks/useDimensions.txt +4 -4
- package/mcp-docs/web/hooks/useHasMounted.txt +7 -3
- package/mcp-docs/web/hooks/useIsoEffect.txt +1 -1
- package/mcp-docs/web/hooks/useMergeRefs.txt +4 -4
- package/mcp-docs/web/hooks/useOverlayContentContext.txt +8 -8
- package/mcp-docs/web/hooks/usePreviousValue.txt +5 -5
- package/mcp-docs/web/hooks/useRefMap.txt +6 -6
- package/mcp-docs/web/hooks/useScrollBlocker.txt +1 -1
- package/mcp-docs/web/hooks/useTheme.txt +3 -3
- package/mcp-docs/web/routes.txt +1 -0
- package/package.json +1 -1
|
@@ -10,204 +10,99 @@ import { IconButton } from '@coinbase/cds-web/buttons/IconButton'
|
|
|
10
10
|
|
|
11
11
|
## Examples
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
IconButton is a compact button that displays only an icon. Use it for actions where the icon alone clearly communicates the purpose.
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
### Basics
|
|
16
16
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
<br />
|
|
20
|
-
|
|
21
|
-
In cases where you're composing a button next to a label or some text that describes the buttons
|
|
22
|
-
action, you can setup your system using `accessibilityLabelledBy` prop mapping to the `id` on the
|
|
23
|
-
label node (See [Composed example](#composed-example)).
|
|
24
|
-
|
|
25
|
-
:::
|
|
17
|
+
The only required props are `name` (which determines the icon) and `accessibilityLabel` (for screen readers).
|
|
26
18
|
|
|
27
19
|
```jsx live
|
|
28
|
-
<
|
|
29
|
-
<
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
name="orderHistory"
|
|
35
|
-
accessibilityLabel="View transaction history"
|
|
36
|
-
variant="primary"
|
|
37
|
-
onClick={console.log}
|
|
38
|
-
/>
|
|
39
|
-
<IconButton
|
|
40
|
-
active
|
|
41
|
-
name="gear"
|
|
42
|
-
accessibilityLabel="View settings"
|
|
43
|
-
variant="secondary"
|
|
44
|
-
onClick={console.log}
|
|
45
|
-
/>
|
|
46
|
-
<IconButton
|
|
47
|
-
name="phone"
|
|
48
|
-
accessibilityLabel="View settings"
|
|
49
|
-
variant="tertiary"
|
|
50
|
-
onClick={console.log}
|
|
51
|
-
/>
|
|
52
|
-
<IconButton
|
|
53
|
-
name="checkmark"
|
|
54
|
-
accessibilityLabel="Approve transaction"
|
|
55
|
-
variant="foregroundMuted"
|
|
56
|
-
onClick={console.log}
|
|
57
|
-
/>
|
|
58
|
-
</HStack>
|
|
59
|
-
</VStack>
|
|
20
|
+
<HStack gap={2} flexWrap="wrap">
|
|
21
|
+
<IconButton name="gear" accessibilityLabel="Open settings" onClick={console.log} />
|
|
22
|
+
<IconButton name="close" accessibilityLabel="Close modal" onClick={console.log} />
|
|
23
|
+
<IconButton name="refresh" accessibilityLabel="Refresh data" onClick={console.log} />
|
|
24
|
+
</HStack>
|
|
25
|
+
```
|
|
60
26
|
|
|
61
|
-
|
|
62
|
-
<Text font="title3">Transparent variants</Text>
|
|
63
|
-
<HStack gap={2}>
|
|
64
|
-
<IconButton
|
|
65
|
-
active
|
|
66
|
-
name="orderHistory"
|
|
67
|
-
accessibilityLabel="View past order history"
|
|
68
|
-
variant="primary"
|
|
69
|
-
transparent
|
|
70
|
-
onClick={console.log}
|
|
71
|
-
/>
|
|
72
|
-
<IconButton
|
|
73
|
-
name="phone"
|
|
74
|
-
accessibilityLabel="View settings"
|
|
75
|
-
variant="tertiary"
|
|
76
|
-
transparent
|
|
77
|
-
onClick={console.log}
|
|
78
|
-
/>
|
|
79
|
-
<IconButton
|
|
80
|
-
active
|
|
81
|
-
name="gear"
|
|
82
|
-
accessibilityLabel="Update settings"
|
|
83
|
-
variant="secondary"
|
|
84
|
-
transparent
|
|
85
|
-
onClick={console.log}
|
|
86
|
-
/>
|
|
87
|
-
<IconButton
|
|
88
|
-
name="checkmark"
|
|
89
|
-
accessibilityLabel="Verify your identity"
|
|
90
|
-
variant="foregroundMuted"
|
|
91
|
-
transparent
|
|
92
|
-
onClick={console.log}
|
|
93
|
-
/>
|
|
94
|
-
</HStack>
|
|
95
|
-
</VStack>
|
|
27
|
+
### Variants
|
|
96
28
|
|
|
97
|
-
|
|
98
|
-
<Text font="title3">Loading states</Text>
|
|
99
|
-
<HStack gap={2}>
|
|
100
|
-
<IconButton
|
|
101
|
-
active
|
|
102
|
-
name="orderHistory"
|
|
103
|
-
accessibilityLabel="Loading transaction history"
|
|
104
|
-
variant="primary"
|
|
105
|
-
loading
|
|
106
|
-
onClick={console.log}
|
|
107
|
-
/>
|
|
108
|
-
<IconButton
|
|
109
|
-
active
|
|
110
|
-
name="gear"
|
|
111
|
-
accessibilityLabel="Loading settings"
|
|
112
|
-
variant="secondary"
|
|
113
|
-
loading
|
|
114
|
-
onClick={console.log}
|
|
115
|
-
/>
|
|
116
|
-
<IconButton
|
|
117
|
-
name="checkmark"
|
|
118
|
-
accessibilityLabel="Processing approval"
|
|
119
|
-
variant="foregroundMuted"
|
|
120
|
-
loading
|
|
121
|
-
onClick={console.log}
|
|
122
|
-
/>
|
|
123
|
-
</HStack>
|
|
124
|
-
</VStack>
|
|
125
|
-
|
|
126
|
-
<VStack gap={2}>
|
|
127
|
-
<Text font="title3">Disabled states</Text>
|
|
128
|
-
<HStack gap={2}>
|
|
129
|
-
<IconButton
|
|
130
|
-
active
|
|
131
|
-
name="orderHistory"
|
|
132
|
-
accessibilityLabel="View transaction history"
|
|
133
|
-
variant="primary"
|
|
134
|
-
disabled
|
|
135
|
-
onClick={console.log}
|
|
136
|
-
/>
|
|
137
|
-
<IconButton
|
|
138
|
-
active
|
|
139
|
-
name="gear"
|
|
140
|
-
accessibilityLabel="View settings"
|
|
141
|
-
variant="secondary"
|
|
142
|
-
disabled
|
|
143
|
-
onClick={console.log}
|
|
144
|
-
/>
|
|
145
|
-
<IconButton
|
|
146
|
-
name="checkmark"
|
|
147
|
-
accessibilityLabel="Approve transaction"
|
|
148
|
-
variant="foregroundMuted"
|
|
149
|
-
disabled
|
|
150
|
-
onClick={console.log}
|
|
151
|
-
/>
|
|
152
|
-
</HStack>
|
|
153
|
-
</VStack>
|
|
29
|
+
Use variants to denote intent and importance. The `active` prop fills the icon when enabled.
|
|
154
30
|
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
31
|
+
```jsx live
|
|
32
|
+
<HStack gap={2} flexWrap="wrap">
|
|
33
|
+
<IconButton
|
|
34
|
+
active
|
|
35
|
+
name="orderHistory"
|
|
36
|
+
accessibilityLabel="View transaction history"
|
|
37
|
+
variant="primary"
|
|
38
|
+
onClick={console.log}
|
|
39
|
+
/>
|
|
40
|
+
<IconButton
|
|
41
|
+
active
|
|
42
|
+
name="gear"
|
|
43
|
+
accessibilityLabel="View settings"
|
|
44
|
+
variant="secondary"
|
|
45
|
+
onClick={console.log}
|
|
46
|
+
/>
|
|
47
|
+
<IconButton
|
|
48
|
+
name="phone"
|
|
49
|
+
accessibilityLabel="Call support"
|
|
50
|
+
variant="tertiary"
|
|
51
|
+
onClick={console.log}
|
|
52
|
+
/>
|
|
53
|
+
<IconButton
|
|
54
|
+
name="checkmark"
|
|
55
|
+
accessibilityLabel="Approve transaction"
|
|
56
|
+
variant="foregroundMuted"
|
|
57
|
+
onClick={console.log}
|
|
58
|
+
/>
|
|
59
|
+
</HStack>
|
|
177
60
|
```
|
|
178
61
|
|
|
179
|
-
|
|
62
|
+
#### Transparent
|
|
180
63
|
|
|
181
|
-
|
|
64
|
+
Use the `transparent` prop to remove the background until the user interacts with the button.
|
|
182
65
|
|
|
183
66
|
```jsx live
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
67
|
+
<HStack gap={2} flexWrap="wrap">
|
|
68
|
+
<IconButton
|
|
69
|
+
active
|
|
70
|
+
name="orderHistory"
|
|
71
|
+
accessibilityLabel="View past order history"
|
|
72
|
+
variant="primary"
|
|
73
|
+
transparent
|
|
74
|
+
onClick={console.log}
|
|
75
|
+
/>
|
|
76
|
+
<IconButton
|
|
77
|
+
active
|
|
78
|
+
name="gear"
|
|
79
|
+
accessibilityLabel="Update settings"
|
|
80
|
+
variant="secondary"
|
|
81
|
+
transparent
|
|
82
|
+
onClick={console.log}
|
|
83
|
+
/>
|
|
84
|
+
<IconButton
|
|
85
|
+
name="phone"
|
|
86
|
+
accessibilityLabel="Call support"
|
|
87
|
+
variant="tertiary"
|
|
88
|
+
transparent
|
|
89
|
+
onClick={console.log}
|
|
90
|
+
/>
|
|
91
|
+
<IconButton
|
|
92
|
+
name="checkmark"
|
|
93
|
+
accessibilityLabel="Verify your identity"
|
|
94
|
+
variant="foregroundMuted"
|
|
95
|
+
transparent
|
|
96
|
+
onClick={console.log}
|
|
97
|
+
/>
|
|
98
|
+
</HStack>
|
|
206
99
|
```
|
|
207
100
|
|
|
208
|
-
###
|
|
101
|
+
### States
|
|
102
|
+
|
|
103
|
+
#### Loading
|
|
209
104
|
|
|
210
|
-
Use the `loading` prop to show a spinner when an action is in progress. The button becomes non-interactive and
|
|
105
|
+
Use the `loading` prop to show a spinner when an action is in progress. The button becomes non-interactive and displays a loading spinner instead of the icon.
|
|
211
106
|
|
|
212
107
|
```jsx live
|
|
213
108
|
function LoadingExample() {
|
|
@@ -215,12 +110,11 @@ function LoadingExample() {
|
|
|
215
110
|
|
|
216
111
|
const handleSubmit = () => {
|
|
217
112
|
setIsLoading(true);
|
|
218
|
-
// Simulate async operation
|
|
219
113
|
setTimeout(() => setIsLoading(false), 2000);
|
|
220
114
|
};
|
|
221
115
|
|
|
222
116
|
return (
|
|
223
|
-
<HStack gap={2}>
|
|
117
|
+
<HStack gap={2} flexWrap="wrap">
|
|
224
118
|
<IconButton
|
|
225
119
|
name="checkmark"
|
|
226
120
|
accessibilityLabel={isLoading ? 'Processing submission' : 'Submit form'}
|
|
@@ -240,18 +134,51 @@ function LoadingExample() {
|
|
|
240
134
|
}
|
|
241
135
|
```
|
|
242
136
|
|
|
137
|
+
#### Disabled
|
|
138
|
+
|
|
139
|
+
Use the `disabled` prop to prevent interaction and show a disabled visual state.
|
|
140
|
+
|
|
141
|
+
```jsx live
|
|
142
|
+
<HStack gap={2} flexWrap="wrap">
|
|
143
|
+
<IconButton
|
|
144
|
+
active
|
|
145
|
+
name="orderHistory"
|
|
146
|
+
accessibilityLabel="View transaction history"
|
|
147
|
+
variant="primary"
|
|
148
|
+
disabled
|
|
149
|
+
onClick={console.log}
|
|
150
|
+
/>
|
|
151
|
+
<IconButton
|
|
152
|
+
active
|
|
153
|
+
name="gear"
|
|
154
|
+
accessibilityLabel="View settings"
|
|
155
|
+
variant="secondary"
|
|
156
|
+
disabled
|
|
157
|
+
onClick={console.log}
|
|
158
|
+
/>
|
|
159
|
+
<IconButton
|
|
160
|
+
name="checkmark"
|
|
161
|
+
accessibilityLabel="Approve transaction"
|
|
162
|
+
variant="foregroundMuted"
|
|
163
|
+
disabled
|
|
164
|
+
onClick={console.log}
|
|
165
|
+
/>
|
|
166
|
+
</HStack>
|
|
167
|
+
```
|
|
168
|
+
|
|
243
169
|
### Sizing
|
|
244
170
|
|
|
245
|
-
IconButtons
|
|
171
|
+
IconButtons are compact by default. Use `compact={false}` for larger touch targets.
|
|
246
172
|
|
|
247
173
|
```jsx live
|
|
248
|
-
<HStack gap={2} alignItems="center">
|
|
174
|
+
<HStack gap={2} flexWrap="wrap" alignItems="center">
|
|
249
175
|
<IconButton
|
|
250
176
|
active
|
|
251
177
|
name="gear"
|
|
252
178
|
accessibilityLabel="Settings - compact"
|
|
253
179
|
variant="primary"
|
|
254
180
|
compact
|
|
181
|
+
onClick={console.log}
|
|
255
182
|
/>
|
|
256
183
|
<IconButton
|
|
257
184
|
active
|
|
@@ -259,18 +186,66 @@ IconButtons come in two sizes: compact (default) and regular. Use `compact={fals
|
|
|
259
186
|
accessibilityLabel="Settings - regular"
|
|
260
187
|
variant="primary"
|
|
261
188
|
compact={false}
|
|
189
|
+
onClick={console.log}
|
|
262
190
|
/>
|
|
263
191
|
</HStack>
|
|
264
192
|
```
|
|
265
193
|
|
|
266
|
-
###
|
|
194
|
+
### Accessibility
|
|
267
195
|
|
|
268
|
-
Since icon buttons have no
|
|
196
|
+
Since icon buttons have no visible text, an `accessibilityLabel` is required to describe the button's purpose for screen readers.
|
|
269
197
|
|
|
270
198
|
```jsx
|
|
271
199
|
<IconButton name="close" accessibilityLabel="Close trade modal" />
|
|
272
200
|
```
|
|
273
201
|
|
|
202
|
+
When composing a button with a visible label, use `accessibilityLabelledBy` to reference the label's `id` instead. See the [Claim Drop example](#claim-drop) below.
|
|
203
|
+
|
|
204
|
+
### Composed Examples
|
|
205
|
+
|
|
206
|
+
#### Claim Drop
|
|
207
|
+
|
|
208
|
+
A toggleable icon button with an adjacent label. Uses `accessibilityLabelledBy` to associate the button with its visible label.
|
|
209
|
+
|
|
210
|
+
```jsx live
|
|
211
|
+
function ClaimDropExample() {
|
|
212
|
+
const [active, setActive] = useState(false);
|
|
213
|
+
const variant = useMemo(() => (active ? 'primary' : 'foregroundMuted'), [active]);
|
|
214
|
+
const label = useMemo(() => (active ? 'Reject drop' : 'Claim drop'), [active]);
|
|
215
|
+
|
|
216
|
+
return (
|
|
217
|
+
<HStack gap={2} alignItems="center">
|
|
218
|
+
<IconButton
|
|
219
|
+
name="drops"
|
|
220
|
+
active={active}
|
|
221
|
+
variant={variant}
|
|
222
|
+
onClick={() => setActive((active) => !active)}
|
|
223
|
+
id="claim-drop-button"
|
|
224
|
+
accessibilityLabelledBy="claim-drop-label"
|
|
225
|
+
/>
|
|
226
|
+
<Text font="label1" as="label" htmlFor="claim-drop-button" id="claim-drop-label">
|
|
227
|
+
{label}
|
|
228
|
+
</Text>
|
|
229
|
+
</HStack>
|
|
230
|
+
);
|
|
231
|
+
}
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
#### Notification Bell
|
|
235
|
+
|
|
236
|
+
An icon button with a badge showing the notification count. Uses `DotCount` to display the number of unread notifications.
|
|
237
|
+
|
|
238
|
+
```jsx live
|
|
239
|
+
<DotCount count={3} overlap="circular" pin="top-end">
|
|
240
|
+
<IconButton
|
|
241
|
+
name="bell"
|
|
242
|
+
accessibilityLabel="Notifications, 3 unread"
|
|
243
|
+
variant="secondary"
|
|
244
|
+
onClick={console.log}
|
|
245
|
+
/>
|
|
246
|
+
</DotCount>
|
|
247
|
+
```
|
|
248
|
+
|
|
274
249
|
## Props
|
|
275
250
|
|
|
276
251
|
| Prop | Type | Required | Default | Description |
|
|
@@ -1268,14 +1268,15 @@ function AssetPriceWithDottedArea() {
|
|
|
1268
1268
|
<SegmentedTab
|
|
1269
1269
|
ref={ref}
|
|
1270
1270
|
label={
|
|
1271
|
-
<
|
|
1271
|
+
<Text
|
|
1272
|
+
font="label1"
|
|
1272
1273
|
style={{
|
|
1273
1274
|
transition: 'color 0.2s ease',
|
|
1274
1275
|
color: isActive ? assets.btc.color : undefined,
|
|
1275
1276
|
}}
|
|
1276
1277
|
>
|
|
1277
1278
|
{label}
|
|
1278
|
-
</
|
|
1279
|
+
</Text>
|
|
1279
1280
|
}
|
|
1280
1281
|
{...props}
|
|
1281
1282
|
/>
|
|
@@ -215,9 +215,9 @@ function Example() {
|
|
|
215
215
|
<VStack>
|
|
216
216
|
<HStack justifyContent="center" zIndex={1}>
|
|
217
217
|
<Box background="background" paddingHorizontal={1.5}>
|
|
218
|
-
<
|
|
218
|
+
<Text as="span" font="body" color="foregroundMuted">
|
|
219
219
|
OR
|
|
220
|
-
</
|
|
220
|
+
</Text>
|
|
221
221
|
</Box>
|
|
222
222
|
</HStack>
|
|
223
223
|
<Divider marginTop={-1.5} paddingBottom={1.5} />
|
|
@@ -235,9 +235,9 @@ function Example() {
|
|
|
235
235
|
>
|
|
236
236
|
<Box padding={2}>{icon}</Box>
|
|
237
237
|
</Pressable>
|
|
238
|
-
<
|
|
238
|
+
<Text as="span" font="label2" color="foregroundMuted" paddingTop={1}>
|
|
239
239
|
{name}
|
|
240
|
-
</
|
|
240
|
+
</Text>
|
|
241
241
|
</VStack>
|
|
242
242
|
))}
|
|
243
243
|
</HStack>
|
|
@@ -251,13 +251,13 @@ function Example() {
|
|
|
251
251
|
actionAccessibilityLabel="Continue"
|
|
252
252
|
title="Sign in to Coinbase"
|
|
253
253
|
description={
|
|
254
|
-
<
|
|
254
|
+
<Text as="p" font="body" color="foregroundMuted">
|
|
255
255
|
By signing in, you agree to our{' '}
|
|
256
256
|
<Link to="https://www.google.com/" openInNewWindow underline={false}>
|
|
257
257
|
Privacy Policy
|
|
258
258
|
</Link>
|
|
259
259
|
. Not your device? Use a private window.
|
|
260
|
-
</
|
|
260
|
+
</Text>
|
|
261
261
|
}
|
|
262
262
|
accessibilityLabel="Login section"
|
|
263
263
|
pictogram={<LogoMark size={32} />}
|
|
@@ -85,17 +85,17 @@ function Example() {
|
|
|
85
85
|
/>
|
|
86
86
|
<Box padding={3} background="bgPositiveWash">
|
|
87
87
|
<VStack gap={3} background="bgPrimaryWash">
|
|
88
|
-
<
|
|
89
|
-
<
|
|
88
|
+
<Text font="title2">Configure Your Trading Preferences</Text>
|
|
89
|
+
<Text font="body">
|
|
90
90
|
Customize your trading experience by adjusting the settings below. These preferences
|
|
91
91
|
will apply to all your trading activities and can be modified at any time.
|
|
92
|
-
</
|
|
93
|
-
<
|
|
94
|
-
<
|
|
92
|
+
</Text>
|
|
93
|
+
<Text font="title4">Order Types</Text>
|
|
94
|
+
<Text font="body" color="fgSecondary">
|
|
95
95
|
Choose your preferred default order types for buying and selling. Market orders execute
|
|
96
96
|
immediately at current prices, while limit orders allow you to set specific price
|
|
97
97
|
targets.
|
|
98
|
-
</
|
|
98
|
+
</Text>
|
|
99
99
|
</VStack>
|
|
100
100
|
</Box>
|
|
101
101
|
</>
|
|
@@ -123,10 +123,12 @@ function Example() {
|
|
|
123
123
|
paddingY={10}
|
|
124
124
|
>
|
|
125
125
|
<HeroSquare name="bigWarning" />
|
|
126
|
-
<
|
|
127
|
-
|
|
126
|
+
<Text as="h3" font="title1">
|
|
127
|
+
You need to X before you Y
|
|
128
|
+
</Text>
|
|
129
|
+
<Text font="body" align="center" as="sub">
|
|
128
130
|
You'll need to [add funds] before you can [complete this transaction]
|
|
129
|
-
</
|
|
131
|
+
</Text>
|
|
130
132
|
</VStack>
|
|
131
133
|
</Box>
|
|
132
134
|
</VStack>
|
|
@@ -63,17 +63,17 @@ function Example() {
|
|
|
63
63
|
|
|
64
64
|
const renderStartLabelNum = useCallback((num, disabled) => {
|
|
65
65
|
return (
|
|
66
|
-
<
|
|
66
|
+
<Text disabled={disabled} as="span" font="title3">
|
|
67
67
|
${num.toLocaleString()}
|
|
68
|
-
</
|
|
68
|
+
</Text>
|
|
69
69
|
);
|
|
70
70
|
}, []);
|
|
71
71
|
|
|
72
72
|
const renderEndLabelNum = useCallback((num, disabled) => {
|
|
73
73
|
return (
|
|
74
|
-
<
|
|
74
|
+
<Text disabled={disabled} as="span" font="label2" align="end" noWrap>
|
|
75
75
|
${num.toLocaleString()} left
|
|
76
|
-
</
|
|
76
|
+
</Text>
|
|
77
77
|
);
|
|
78
78
|
}, []);
|
|
79
79
|
|
|
@@ -56,9 +56,9 @@ function Example() {
|
|
|
56
56
|
|
|
57
57
|
const renderLabelNum = useCallback((num, disabled) => {
|
|
58
58
|
return (
|
|
59
|
-
<
|
|
59
|
+
<Text as="span" font="title3" disabled={disabled}>
|
|
60
60
|
${num.toLocaleString()}
|
|
61
|
-
</
|
|
61
|
+
</Text>
|
|
62
62
|
);
|
|
63
63
|
}, []);
|
|
64
64
|
|
|
@@ -351,7 +351,11 @@ The progress circle can be customized with styles and class names.
|
|
|
351
351
|
stroke: 'transparent',
|
|
352
352
|
},
|
|
353
353
|
}}
|
|
354
|
-
contentNode={
|
|
354
|
+
contentNode={
|
|
355
|
+
<Text font="title1" color="fgPrimary">
|
|
356
|
+
40%
|
|
357
|
+
</Text>
|
|
358
|
+
}
|
|
355
359
|
weight="semiheavy"
|
|
356
360
|
/>
|
|
357
361
|
<ProgressCircle
|
|
@@ -349,6 +349,6 @@ function ExampleDisabled() {
|
|
|
349
349
|
| `style` | `CSSProperties` | No | `-` | Inline styles for the root element |
|
|
350
350
|
| `styles` | `{ root?: CSSProperties; control?: CSSProperties \| undefined; controlStartNode?: CSSProperties \| undefined; controlInputNode?: CSSProperties \| undefined; controlValueNode?: CSSProperties \| undefined; controlLabelNode?: CSSProperties \| undefined; controlHelperTextNode?: CSSProperties \| undefined; controlEndNode?: CSSProperties \| undefined; controlBlendStyles?: InteractableBlendStyles \| undefined; dropdown?: CSSProperties \| undefined; option?: CSSProperties \| undefined; optionCell?: CSSProperties \| undefined; optionContent?: CSSProperties \| undefined; optionLabel?: CSSProperties \| undefined; optionDescription?: CSSProperties \| undefined; optionBlendStyles?: InteractableBlendStyles \| undefined; selectAllDivider?: CSSProperties \| undefined; emptyContentsContainer?: CSSProperties \| undefined; emptyContentsText?: CSSProperties \| undefined; optionGroup?: CSSProperties \| undefined; } \| undefined` | No | `-` | Custom styles for different parts of the select |
|
|
351
351
|
| `testID` | `string` | No | `-` | Test ID for the root element |
|
|
352
|
-
| `type` | `
|
|
352
|
+
| `type` | `multi \| single` | No | `-` | Whether the select allows single or multiple selections |
|
|
353
353
|
|
|
354
354
|
|
|
@@ -57,9 +57,9 @@ function Example() {
|
|
|
57
57
|
testID="sidebar-item-primary"
|
|
58
58
|
>
|
|
59
59
|
<Icon name="documentation" />
|
|
60
|
-
<
|
|
60
|
+
<Text as="span" font="headline" color="foreground">
|
|
61
61
|
End item
|
|
62
|
-
</
|
|
62
|
+
</Text>
|
|
63
63
|
</HStack>
|
|
64
64
|
</Pressable>
|
|
65
65
|
);
|
|
@@ -76,7 +76,9 @@ function Example() {
|
|
|
76
76
|
const path = useSparklinePath({ ...dimensions, data: prices, yAxisScalingFactor });
|
|
77
77
|
return (
|
|
78
78
|
<VStack gap={2}>
|
|
79
|
-
<
|
|
79
|
+
<Text as="p" font="label1">
|
|
80
|
+
Scale {yAxisScalingFactor}
|
|
81
|
+
</Text>
|
|
80
82
|
<Sparkline {...dimensions} path={path} color="auto" yAxisScalingFactor={yAxisScalingFactor} />
|
|
81
83
|
</VStack>
|
|
82
84
|
);
|
|
@@ -55,7 +55,9 @@ function Example() {
|
|
|
55
55
|
const path = useSparklinePath({ ...dimensions, data: prices, yAxisScalingFactor });
|
|
56
56
|
return (
|
|
57
57
|
<VStack gap={2}>
|
|
58
|
-
<
|
|
58
|
+
<Text as="p" font="label1">
|
|
59
|
+
Scale {yAxisScalingFactor}
|
|
60
|
+
</Text>
|
|
59
61
|
<SparklineGradient
|
|
60
62
|
{...dimensions}
|
|
61
63
|
path={path}
|
|
@@ -55,7 +55,9 @@ The fill will be added by default
|
|
|
55
55
|
labelNode={
|
|
56
56
|
<HStack gap={1} alignItems="center">
|
|
57
57
|
<Icon active name="wallet" size="s" />
|
|
58
|
-
<
|
|
58
|
+
<Text as="span" font="title3">
|
|
59
|
+
CustomHeader
|
|
60
|
+
</Text>
|
|
59
61
|
</HStack>
|
|
60
62
|
}
|
|
61
63
|
/>
|
|
@@ -36,7 +36,9 @@ function TabbedChipsExample() {
|
|
|
36
36
|
return (
|
|
37
37
|
<VStack maxWidth={375} borderRadius={400} bordered paddingX={3} gap={2} paddingY={3}>
|
|
38
38
|
<VStack paddingTop={1}>
|
|
39
|
-
<
|
|
39
|
+
<Text as="p" font="title3">
|
|
40
|
+
Popular assets
|
|
41
|
+
</Text>
|
|
40
42
|
</VStack>
|
|
41
43
|
<SearchInput compact placeholder="Search by name" />
|
|
42
44
|
<OldTabbedChips value={value} onChange={setValue} tabs={tabs} />
|
|
@@ -40,9 +40,9 @@ import { TableBody } from '@coinbase/cds-web/tables/TableBody'
|
|
|
40
40
|
<TableRow>
|
|
41
41
|
<TableCell height={320} alignItems="center" justifyContent="center">
|
|
42
42
|
<Spinner size={4} color="primary" />
|
|
43
|
-
<
|
|
43
|
+
<Text as="p" font="headline" spacingTop={2} color="foregroundMuted">
|
|
44
44
|
Loading content...
|
|
45
|
-
</
|
|
45
|
+
</Text>
|
|
46
46
|
</TableCell>
|
|
47
47
|
</TableRow>
|
|
48
48
|
</TableBody>
|
|
@@ -36,9 +36,9 @@ import { TableCaption } from '@coinbase/cds-web/tables/TableCaption'
|
|
|
36
36
|
<Table bordered>
|
|
37
37
|
<TableCaption>
|
|
38
38
|
<VStack gap={1}>
|
|
39
|
-
<
|
|
39
|
+
<Text as="h2" font="title2" color="primary">
|
|
40
40
|
Project Team
|
|
41
|
-
</
|
|
41
|
+
</Text>
|
|
42
42
|
<Text as="p" color="foregroundMuted">
|
|
43
43
|
Updated as of March 2024
|
|
44
44
|
</Text>
|