@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
|
@@ -18,9 +18,9 @@ import { TableCell } from '@coinbase/cds-web/tables/TableCell'
|
|
|
18
18
|
<TableRow backgroundColor="bgAlternate">
|
|
19
19
|
<TableCell title="First Header" />
|
|
20
20
|
<TableCell>
|
|
21
|
-
<
|
|
21
|
+
<Text as="p" font="headline" color="currentColor">
|
|
22
22
|
Second Header
|
|
23
|
-
</
|
|
23
|
+
</Text>
|
|
24
24
|
</TableCell>
|
|
25
25
|
<TableCell title="Third Header" />
|
|
26
26
|
</TableRow>
|
|
@@ -47,12 +47,12 @@ import { TableCell } from '@coinbase/cds-web/tables/TableCell'
|
|
|
47
47
|
subtitle="0.11882557"
|
|
48
48
|
/>
|
|
49
49
|
<TableCell>
|
|
50
|
-
<
|
|
50
|
+
<Text as="h2" font="headline" color="currentColor">
|
|
51
51
|
$2,221.01
|
|
52
|
-
</
|
|
53
|
-
<
|
|
52
|
+
</Text>
|
|
53
|
+
<Text as="p" font="label2" color="foregroundMuted">
|
|
54
54
|
0.1519581 BTC
|
|
55
|
-
</
|
|
55
|
+
</Text>
|
|
56
56
|
</TableCell>
|
|
57
57
|
</TableRow>
|
|
58
58
|
</TableBody>
|
|
@@ -110,10 +110,14 @@ You can control the visual prominence of the Tag using the `emphasis` prop. By d
|
|
|
110
110
|
<HStack justifyContent="space-between" gap="2" alignItems="center">
|
|
111
111
|
<VStack gap={0.5}>
|
|
112
112
|
<HStack gap={1}>
|
|
113
|
-
<
|
|
113
|
+
<Text as="p" font="headline">
|
|
114
|
+
Tax account status
|
|
115
|
+
</Text>
|
|
114
116
|
<Tag colorScheme="red">Not verified</Tag>
|
|
115
117
|
</HStack>
|
|
116
|
-
<
|
|
118
|
+
<Text as="p" font="body">
|
|
119
|
+
Verify your info for tax reporting purposes.
|
|
120
|
+
</Text>
|
|
117
121
|
</VStack>
|
|
118
122
|
<Button>Get started</Button>
|
|
119
123
|
</HStack>
|
|
@@ -125,9 +129,9 @@ You can control the visual prominence of the Tag using the `emphasis` prop. By d
|
|
|
125
129
|
function MarginExample() {
|
|
126
130
|
const renderStartLabelNum = useCallback((num, disabled) => {
|
|
127
131
|
return (
|
|
128
|
-
<
|
|
132
|
+
<Text disabled={disabled} as="span" font="title3">
|
|
129
133
|
${num.toLocaleString()} (10%)
|
|
130
|
-
</
|
|
134
|
+
</Text>
|
|
131
135
|
);
|
|
132
136
|
}, []);
|
|
133
137
|
|
|
@@ -149,12 +153,14 @@ function MarginExample() {
|
|
|
149
153
|
>
|
|
150
154
|
<VStack gap={0.5}>
|
|
151
155
|
<HStack gap={1}>
|
|
152
|
-
<
|
|
156
|
+
<Text as="p" font="headline">
|
|
157
|
+
Margin ratio
|
|
158
|
+
</Text>
|
|
153
159
|
<Tag colorScheme="green">Low</Tag>
|
|
154
160
|
</HStack>
|
|
155
|
-
<
|
|
161
|
+
<Text as="p" font="body">
|
|
156
162
|
The portion of your balance being held on margin is low. No action is required.
|
|
157
|
-
</
|
|
163
|
+
</Text>
|
|
158
164
|
</VStack>
|
|
159
165
|
<ProgressBarWithFixedLabels
|
|
160
166
|
startLabel={{ value: 400, render: renderStartLabelNum }}
|
|
@@ -176,10 +182,14 @@ function MarginExample() {
|
|
|
176
182
|
>
|
|
177
183
|
<VStack gap={0.5}>
|
|
178
184
|
<HStack gap={1}>
|
|
179
|
-
<
|
|
185
|
+
<Text as="p" font="headline">
|
|
186
|
+
Margin ratio
|
|
187
|
+
</Text>
|
|
180
188
|
<Tag colorScheme="red">high</Tag>
|
|
181
189
|
</HStack>
|
|
182
|
-
<
|
|
190
|
+
<Text as="p" font="body">
|
|
191
|
+
Margin usage is high. Deposit funds to avoid liquidation
|
|
192
|
+
</Text>
|
|
183
193
|
</VStack>
|
|
184
194
|
<ProgressBarWithFixedLabels
|
|
185
195
|
startLabel={{ value: 60000, render: renderStartLabelNum }}
|
|
@@ -126,7 +126,9 @@ with a TypeAhead component.
|
|
|
126
126
|
```jsx live
|
|
127
127
|
<VStack gap={3}>
|
|
128
128
|
<VStack>
|
|
129
|
-
<
|
|
129
|
+
<Text as="p" font="headline">
|
|
130
|
+
Default sentiment
|
|
131
|
+
</Text>
|
|
130
132
|
<TextInput
|
|
131
133
|
label="Campaign title"
|
|
132
134
|
placeholder="Title"
|
|
@@ -135,7 +137,9 @@ with a TypeAhead component.
|
|
|
135
137
|
</VStack>
|
|
136
138
|
|
|
137
139
|
<VStack>
|
|
138
|
-
<
|
|
140
|
+
<Text as="p" font="headline">
|
|
141
|
+
Positive sentiment
|
|
142
|
+
</Text>
|
|
139
143
|
<TextInput
|
|
140
144
|
label="Address"
|
|
141
145
|
helperText="Valid BTC address"
|
|
@@ -146,7 +150,9 @@ with a TypeAhead component.
|
|
|
146
150
|
</VStack>
|
|
147
151
|
|
|
148
152
|
<VStack>
|
|
149
|
-
<
|
|
153
|
+
<Text as="p" font="headline">
|
|
154
|
+
Negative Sentiment
|
|
155
|
+
</Text>
|
|
150
156
|
<TextInput
|
|
151
157
|
label="Address"
|
|
152
158
|
helperText="Invalid BTC address"
|
|
@@ -271,7 +271,8 @@ Note: The Tray component is an elevated container that is pinned to the bottom o
|
|
|
271
271
|
| `closeAccessibilityHint` | `string` | No | `-` | Sets an accessible hint or description for the close button. On web, maps to aria-describedby and lists the id(s) of the element(s) that describe the element on which the attribute is set. On mobile, a string that helps users understand what will happen when they perform an action on the accessibility element when that result is not clear from the accessibility label. |
|
|
272
272
|
| `closeAccessibilityLabel` | `string` | No | `-` | Sets an accessible label for the close button. On web, maps to aria-label and defines a string value that labels an interactive element. On mobile, VoiceOver will read this string when a user selects the associated element. |
|
|
273
273
|
| `focusTabIndexElements` | `boolean` | No | `false` | Allow any element with tabIndex attribute to be focusable in FocusTrap, rather than only focusing specific interactive element types like button. This can be useful when having long content in a Modal. |
|
|
274
|
-
| `footer` | `null \| string \| number \| false \| true \| ReactElement<any, string \| JSXElementConstructor<any>> \| Iterable<ReactNode> \| ReactPortal` | No | `-` |
|
|
274
|
+
| `footer` | `null \| string \| number \| false \| true \| ReactElement<any, string \| JSXElementConstructor<any>> \| Iterable<ReactNode> \| ReactPortal` | No | `-` | ReactNode to render as the Drawer footer |
|
|
275
|
+
| `header` | `null \| string \| number \| false \| true \| ReactElement<any, string \| JSXElementConstructor<any>> \| Iterable<ReactNode> \| ReactPortal` | No | `-` | ReactNode to render as the Drawer header |
|
|
275
276
|
| `id` | `string` | No | `-` | HTML ID for the tray |
|
|
276
277
|
| `key` | `Key \| null` | No | `-` | - |
|
|
277
278
|
| `onBlur` | `(() => void)` | No | `-` | Callback fired when the overlay is pressed, or swipe to close |
|
|
@@ -98,14 +98,14 @@ function Example() {
|
|
|
98
98
|
<UpsellCard
|
|
99
99
|
{...card}
|
|
100
100
|
title={
|
|
101
|
-
<
|
|
101
|
+
<Text color="fgInverse" as="h3" font="headline">
|
|
102
102
|
{card.title}
|
|
103
|
-
</
|
|
103
|
+
</Text>
|
|
104
104
|
}
|
|
105
105
|
description={
|
|
106
|
-
<
|
|
106
|
+
<Text as="p" font="label2" numberOfLines={3} color="fgInverse">
|
|
107
107
|
{card.description}
|
|
108
|
-
</
|
|
108
|
+
</Text>
|
|
109
109
|
}
|
|
110
110
|
/>
|
|
111
111
|
);
|
|
@@ -160,14 +160,14 @@ function Example() {
|
|
|
160
160
|
<UpsellCard
|
|
161
161
|
{...card}
|
|
162
162
|
title={
|
|
163
|
-
<
|
|
163
|
+
<Text color="fgInverse" as="h3" font="headline">
|
|
164
164
|
{card.title}
|
|
165
|
-
</
|
|
165
|
+
</Text>
|
|
166
166
|
}
|
|
167
167
|
description={
|
|
168
|
-
<
|
|
168
|
+
<Text as="p" font="label2" numberOfLines={3} color="fgInverse">
|
|
169
169
|
{card.description}
|
|
170
|
-
</
|
|
170
|
+
</Text>
|
|
171
171
|
}
|
|
172
172
|
/>
|
|
173
173
|
);
|
|
@@ -222,14 +222,14 @@ function Example() {
|
|
|
222
222
|
<UpsellCard
|
|
223
223
|
{...card}
|
|
224
224
|
title={
|
|
225
|
-
<
|
|
225
|
+
<Text color="fgInverse" as="h3" font="headline">
|
|
226
226
|
{card.title}
|
|
227
|
-
</
|
|
227
|
+
</Text>
|
|
228
228
|
}
|
|
229
229
|
description={
|
|
230
|
-
<
|
|
230
|
+
<Text as="p" font="label2" numberOfLines={3} color="fgInverse">
|
|
231
231
|
{card.description}
|
|
232
|
-
</
|
|
232
|
+
</Text>
|
|
233
233
|
}
|
|
234
234
|
/>
|
|
235
235
|
);
|
|
@@ -284,14 +284,14 @@ function Example() {
|
|
|
284
284
|
<UpsellCard
|
|
285
285
|
{...card}
|
|
286
286
|
title={
|
|
287
|
-
<
|
|
287
|
+
<Text color="fgInverse" as="h3" font="headline">
|
|
288
288
|
{card.title}
|
|
289
|
-
</
|
|
289
|
+
</Text>
|
|
290
290
|
}
|
|
291
291
|
description={
|
|
292
|
-
<
|
|
292
|
+
<Text as="p" font="label2" numberOfLines={3} color="fgInverse">
|
|
293
293
|
{card.description}
|
|
294
|
-
</
|
|
294
|
+
</Text>
|
|
295
295
|
}
|
|
296
296
|
/>
|
|
297
297
|
);
|
|
@@ -79,9 +79,9 @@ function Example() {
|
|
|
79
79
|
|
|
80
80
|
return (
|
|
81
81
|
<Box ref={ref} padding={3} background="bgAlternate" borderRadius={300} width="100%">
|
|
82
|
-
<
|
|
82
|
+
<Text font="headline">
|
|
83
83
|
This box is {width}px wide and {height}px tall
|
|
84
|
-
</
|
|
84
|
+
</Text>
|
|
85
85
|
</Box>
|
|
86
86
|
);
|
|
87
87
|
}
|
|
@@ -104,8 +104,8 @@ function Example() {
|
|
|
104
104
|
return (
|
|
105
105
|
<Box ref={ref} padding={3} background="bgAlternate" borderRadius={300} width="100%">
|
|
106
106
|
<VStack gap={2}>
|
|
107
|
-
<
|
|
108
|
-
<
|
|
107
|
+
<Text font="headline">Width: {width}px</Text>
|
|
108
|
+
<Text font="headline">Current breakpoint: {currentBreakpoint || 'none'}</Text>
|
|
109
109
|
</VStack>
|
|
110
110
|
</Box>
|
|
111
111
|
);
|
|
@@ -41,7 +41,11 @@ const hasMounted = useHasMounted();
|
|
|
41
41
|
|
|
42
42
|
// in component render
|
|
43
43
|
{
|
|
44
|
-
hasMounted && isPhone &&
|
|
44
|
+
hasMounted && isPhone && (
|
|
45
|
+
<Text as="h3" font="headline">
|
|
46
|
+
Welcome {username}!
|
|
47
|
+
</Text>
|
|
48
|
+
);
|
|
45
49
|
}
|
|
46
50
|
```
|
|
47
51
|
|
|
@@ -51,7 +55,7 @@ const hasMounted = useHasMounted();
|
|
|
51
55
|
function Example() {
|
|
52
56
|
const hasMounted = useHasMounted();
|
|
53
57
|
|
|
54
|
-
return <
|
|
58
|
+
return <Text font="headline">Component has {hasMounted ? 'mounted' : 'not mounted'}</Text>;
|
|
55
59
|
}
|
|
56
60
|
```
|
|
57
61
|
|
|
@@ -69,7 +73,7 @@ function Example() {
|
|
|
69
73
|
}
|
|
70
74
|
}, [hasMounted]);
|
|
71
75
|
|
|
72
|
-
return <
|
|
76
|
+
return <Text font="headline">{hasMounted ? `Current time: ${currentTime}` : 'Loading...'}</Text>;
|
|
73
77
|
}
|
|
74
78
|
```
|
|
75
79
|
|
|
@@ -47,7 +47,7 @@ function Example() {
|
|
|
47
47
|
|
|
48
48
|
return (
|
|
49
49
|
<Box ref={refs} padding={3} background="bgAlternate" borderRadius={300}>
|
|
50
|
-
<
|
|
50
|
+
<Text font="body">This box uses a merged ref</Text>
|
|
51
51
|
</Box>
|
|
52
52
|
);
|
|
53
53
|
});
|
|
@@ -76,7 +76,7 @@ function Example() {
|
|
|
76
76
|
return (
|
|
77
77
|
<VStack gap={2}>
|
|
78
78
|
<Box ref={mergedRefs} padding={3} background="bgAlternate" borderRadius={300}>
|
|
79
|
-
<
|
|
79
|
+
<Text font="body">This element is referenced by three refs</Text>
|
|
80
80
|
</Box>
|
|
81
81
|
<Button onClick={checkRefs}>Check Refs</Button>
|
|
82
82
|
</VStack>
|
|
@@ -106,9 +106,9 @@ function Example() {
|
|
|
106
106
|
return (
|
|
107
107
|
<VStack gap={2}>
|
|
108
108
|
<Box ref={refs} padding={3} background="bgAlternate" borderRadius={300} width="100%">
|
|
109
|
-
<
|
|
109
|
+
<Text font="body">This box uses both function and object refs</Text>
|
|
110
110
|
</Box>
|
|
111
|
-
<
|
|
111
|
+
<Text font="body">Box width: {elementWidth}px</Text>
|
|
112
112
|
</VStack>
|
|
113
113
|
);
|
|
114
114
|
}
|
|
@@ -83,7 +83,7 @@ function ExampleComponent() {
|
|
|
83
83
|
|
|
84
84
|
return (
|
|
85
85
|
<VStack gap={2}>
|
|
86
|
-
<
|
|
86
|
+
<Text font="headline">Overlay Context Information</Text>
|
|
87
87
|
<Text>Is inside any overlay: {isOverlay ? 'Yes' : 'No'}</Text>
|
|
88
88
|
<Text>Is inside modal: {isModal ? 'Yes' : 'No'}</Text>
|
|
89
89
|
<Text>Is inside drawer/tray: {isDrawer ? 'Yes' : 'No'}</Text>
|
|
@@ -106,7 +106,7 @@ function ModalExample() {
|
|
|
106
106
|
|
|
107
107
|
return (
|
|
108
108
|
<VStack gap={2}>
|
|
109
|
-
<
|
|
109
|
+
<Text font="headline">Overlay Context Information</Text>
|
|
110
110
|
<Text>Is inside any overlay: {isOverlay ? 'Yes' : 'No'}</Text>
|
|
111
111
|
<Text>Is inside modal: {isModal ? 'Yes' : 'No'}</Text>
|
|
112
112
|
<Text>Is inside drawer/tray: {isDrawer ? 'Yes' : 'No'}</Text>
|
|
@@ -118,7 +118,7 @@ function ModalExample() {
|
|
|
118
118
|
return (
|
|
119
119
|
<VStack gap={3}>
|
|
120
120
|
<VStack gap={2} padding={3} background="bgSecondary" borderRadius={400}>
|
|
121
|
-
<
|
|
121
|
+
<Text font="headline">Outside Modal</Text>
|
|
122
122
|
<ExampleComponent />
|
|
123
123
|
</VStack>
|
|
124
124
|
|
|
@@ -156,7 +156,7 @@ function ContextProviderExample() {
|
|
|
156
156
|
|
|
157
157
|
return (
|
|
158
158
|
<VStack gap={2}>
|
|
159
|
-
<
|
|
159
|
+
<Text font="headline">Overlay Context Information</Text>
|
|
160
160
|
<Text>Is inside any overlay: {isOverlay ? 'Yes' : 'No'}</Text>
|
|
161
161
|
<Text>Is inside modal: {isModal ? 'Yes' : 'No'}</Text>
|
|
162
162
|
<Text>Is inside drawer/tray: {isDrawer ? 'Yes' : 'No'}</Text>
|
|
@@ -174,7 +174,7 @@ function ContextProviderExample() {
|
|
|
174
174
|
return (
|
|
175
175
|
<OverlayContentContext.Provider value={contextValue}>
|
|
176
176
|
<VStack gap={2} padding={3} background="bgSecondary" borderRadius={400}>
|
|
177
|
-
<
|
|
177
|
+
<Text font="headline">Inside Context Provider</Text>
|
|
178
178
|
<ExampleComponent />
|
|
179
179
|
</VStack>
|
|
180
180
|
</OverlayContentContext.Provider>
|
|
@@ -195,7 +195,7 @@ function ConditionalRenderingExample() {
|
|
|
195
195
|
|
|
196
196
|
return (
|
|
197
197
|
<VStack gap={2}>
|
|
198
|
-
<
|
|
198
|
+
<Text font="headline">Conditional Content</Text>
|
|
199
199
|
{isOverlay ? (
|
|
200
200
|
<VStack gap={1}>
|
|
201
201
|
<Text color="fgPositive">✓ This content shows when inside an overlay</Text>
|
|
@@ -211,7 +211,7 @@ function ConditionalRenderingExample() {
|
|
|
211
211
|
return (
|
|
212
212
|
<VStack gap={3}>
|
|
213
213
|
<VStack gap={2} padding={3} background="bgSecondary" borderRadius={400}>
|
|
214
|
-
<
|
|
214
|
+
<Text font="headline">Outside Modal</Text>
|
|
215
215
|
<ConditionalContent />
|
|
216
216
|
</VStack>
|
|
217
217
|
|
|
@@ -251,7 +251,7 @@ function StylingExample() {
|
|
|
251
251
|
|
|
252
252
|
return (
|
|
253
253
|
<VStack padding={3} background={getBackgroundColor()} borderRadius={400} gap={2}>
|
|
254
|
-
<
|
|
254
|
+
<Text font="headline">Dynamic Styling</Text>
|
|
255
255
|
<Text>{getStatusText()}</Text>
|
|
256
256
|
<Text color="fgMuted" font="caption">
|
|
257
257
|
Background color: {getBackgroundColor()}
|
|
@@ -39,8 +39,8 @@ function Example() {
|
|
|
39
39
|
return (
|
|
40
40
|
<VStack gap={3} alignItems="start">
|
|
41
41
|
<VStack gap={1}>
|
|
42
|
-
<
|
|
43
|
-
<
|
|
42
|
+
<Text font="headline">Current count: {count}</Text>
|
|
43
|
+
<Text font="headline">Previous count: {previousCount ?? 'None'}</Text>
|
|
44
44
|
</VStack>
|
|
45
45
|
<Button onClick={() => setCount(count + 1)}>Increment</Button>
|
|
46
46
|
</VStack>
|
|
@@ -62,9 +62,9 @@ function Example() {
|
|
|
62
62
|
return (
|
|
63
63
|
<VStack gap={3} alignItems="start">
|
|
64
64
|
<VStack gap={1}>
|
|
65
|
-
<
|
|
66
|
-
<
|
|
67
|
-
<
|
|
65
|
+
<Text font="headline">Name: {user.name}</Text>
|
|
66
|
+
<Text font="headline">Age: {user.age}</Text>
|
|
67
|
+
<Text font="headline">Previous age: {previousUser?.age ?? 'None'}</Text>
|
|
68
68
|
</VStack>
|
|
69
69
|
<Button onClick={updateAge}>Add Year</Button>
|
|
70
70
|
</VStack>
|
|
@@ -56,7 +56,7 @@ function Example() {
|
|
|
56
56
|
background="bgAlternate"
|
|
57
57
|
borderRadius={300}
|
|
58
58
|
>
|
|
59
|
-
<
|
|
59
|
+
<Text font="body">This box is registered with ID 'box1'</Text>
|
|
60
60
|
</Box>
|
|
61
61
|
<Button onClick={handleClick}>Get Box Dimensions</Button>
|
|
62
62
|
</VStack>
|
|
@@ -103,7 +103,7 @@ function Example() {
|
|
|
103
103
|
background="bgAlternate"
|
|
104
104
|
borderRadius={300}
|
|
105
105
|
>
|
|
106
|
-
<
|
|
106
|
+
<Text font="body">Box 1</Text>
|
|
107
107
|
</Box>
|
|
108
108
|
|
|
109
109
|
<Box
|
|
@@ -112,7 +112,7 @@ function Example() {
|
|
|
112
112
|
background="bgAlternate"
|
|
113
113
|
borderRadius={300}
|
|
114
114
|
>
|
|
115
|
-
<
|
|
115
|
+
<Text font="body">Box 2</Text>
|
|
116
116
|
</Box>
|
|
117
117
|
|
|
118
118
|
<Box
|
|
@@ -121,7 +121,7 @@ function Example() {
|
|
|
121
121
|
background="bgAlternate"
|
|
122
122
|
borderRadius={300}
|
|
123
123
|
>
|
|
124
|
-
<
|
|
124
|
+
<Text font="body">Box 3</Text>
|
|
125
125
|
</Box>
|
|
126
126
|
</VStack>
|
|
127
127
|
</VStack>
|
|
@@ -158,7 +158,7 @@ function Example() {
|
|
|
158
158
|
background="bgAlternate"
|
|
159
159
|
borderRadius={300}
|
|
160
160
|
>
|
|
161
|
-
<
|
|
161
|
+
<Text font="body">Box 1</Text>
|
|
162
162
|
</Box>
|
|
163
163
|
|
|
164
164
|
<Box
|
|
@@ -167,7 +167,7 @@ function Example() {
|
|
|
167
167
|
background="bgAlternate"
|
|
168
168
|
borderRadius={300}
|
|
169
169
|
>
|
|
170
|
-
<
|
|
170
|
+
<Text font="body">Box 2</Text>
|
|
171
171
|
</Box>
|
|
172
172
|
|
|
173
173
|
<Button onClick={logRefs}>Log Refs</Button>
|
|
@@ -44,7 +44,7 @@ function Example() {
|
|
|
44
44
|
|
|
45
45
|
return (
|
|
46
46
|
<VStack gap={3} alignItems="start">
|
|
47
|
-
<
|
|
47
|
+
<Text font="headline">Scroll is currently {isBlocked ? 'blocked' : 'enabled'}</Text>
|
|
48
48
|
<Button onClick={toggleScroll}>{isBlocked ? 'Enable Scroll' : 'Block Scroll'}</Button>
|
|
49
49
|
</VStack>
|
|
50
50
|
);
|
|
@@ -300,7 +300,7 @@ function Example() {
|
|
|
300
300
|
return (
|
|
301
301
|
<VStack gap={2}>
|
|
302
302
|
<Box padding={3} background="bgAlternate" borderRadius={300}>
|
|
303
|
-
<
|
|
303
|
+
<Text font="headline">Current Color Scheme: {theme.activeColorScheme}</Text>
|
|
304
304
|
</Box>
|
|
305
305
|
|
|
306
306
|
<VStack padding={3} background="bgAlternate" borderRadius={300}>
|
|
@@ -354,9 +354,9 @@ function Example() {
|
|
|
354
354
|
return (
|
|
355
355
|
<Box gap={0.5} borderRadius={300} alignItems="baseline">
|
|
356
356
|
<Text as="span">This box adapts to {isDarkMode ? 'dark' : 'light'} mode</Text>
|
|
357
|
-
<
|
|
357
|
+
<Text as="span" font="headline" color={isDarkMode ? 'fgMuted' : 'fgPrimary'}>
|
|
358
358
|
with adaptive text colors
|
|
359
|
-
</
|
|
359
|
+
</Text>
|
|
360
360
|
</Box>
|
|
361
361
|
);
|
|
362
362
|
}
|
package/mcp-docs/web/routes.txt
CHANGED
|
@@ -103,6 +103,7 @@
|
|
|
103
103
|
- [InputChip](web/components/InputChip.txt): A Chip used for removable selections.
|
|
104
104
|
- [IconButton](web/components/IconButton.txt): A Button with an Icon for content.
|
|
105
105
|
- [ControlGroup](web/components/ControlGroup.txt): A layout component that arranges and manages a group of related controls, such as radio buttons, switches, or checkboxes.
|
|
106
|
+
- [Combobox](web/components/Combobox.txt): A flexible combobox component for both single and multi-selection, built for web applications with comprehensive accessibility support.
|
|
106
107
|
- [Chip](web/components/Chip.txt): A compact, interactive content element.
|
|
107
108
|
- [CheckboxGroup](web/components/CheckboxGroup.txt): CheckboxGroup is a control component that allows users to select multiple options from a set of choices. It manages the state and layout of multiple checkbox inputs as a cohesive group.
|
|
108
109
|
- [CheckboxCell](web/components/CheckboxCell.txt): A selectable cell that pairs a checkbox with a title and description for multi-choice selections.
|