@coinbase/cds-mcp-server 8.28.2 → 8.30.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/mcp-docs/mobile/components/Accordion.txt +3 -1
  3. package/mcp-docs/mobile/components/Alert.txt +3 -1
  4. package/mcp-docs/mobile/components/Banner.txt +14 -14
  5. package/mcp-docs/mobile/components/Carousel.txt +24 -24
  6. package/mcp-docs/mobile/components/Combobox.txt +187 -0
  7. package/mcp-docs/mobile/components/ContainedAssetCard.txt +4 -4
  8. package/mcp-docs/mobile/components/ContentCard.txt +29 -27
  9. package/mcp-docs/mobile/components/ContentCardBody.txt +4 -4
  10. package/mcp-docs/mobile/components/ContentCardHeader.txt +2 -2
  11. package/mcp-docs/mobile/components/FloatingAssetCard.txt +6 -6
  12. package/mcp-docs/mobile/components/LineChart.txt +3 -2
  13. package/mcp-docs/mobile/components/MultiContentModule.txt +6 -6
  14. package/mcp-docs/mobile/components/Numpad.txt +2 -2
  15. package/mcp-docs/mobile/components/PageHeader.txt +3 -1
  16. package/mcp-docs/mobile/components/PeriodSelector.txt +4 -4
  17. package/mcp-docs/mobile/components/Pressable.txt +6 -2
  18. package/mcp-docs/mobile/components/ProgressBarWithFixedLabels.txt +4 -4
  19. package/mcp-docs/mobile/components/ProgressBarWithFloatLabel.txt +2 -2
  20. package/mcp-docs/mobile/components/ProgressCircle.txt +5 -1
  21. package/mcp-docs/mobile/components/SelectChip.txt +2 -0
  22. package/mcp-docs/mobile/components/SelectChipAlpha.txt +88 -1
  23. package/mcp-docs/mobile/components/SlideButton.txt +2 -2
  24. package/mcp-docs/mobile/components/Sparkline.txt +3 -1
  25. package/mcp-docs/mobile/components/SparklineGradient.txt +3 -1
  26. package/mcp-docs/mobile/components/SparklineInteractiveHeader.txt +3 -1
  27. package/mcp-docs/mobile/components/TabbedChips.txt +3 -1
  28. package/mcp-docs/mobile/components/TabbedChipsAlpha.txt +30 -0
  29. package/mcp-docs/mobile/components/Tag.txt +19 -9
  30. package/mcp-docs/mobile/components/TextInput.txt +9 -3
  31. package/mcp-docs/mobile/components/Tray.txt +2 -0
  32. package/mcp-docs/mobile/components/UpsellCard.txt +16 -16
  33. package/mcp-docs/mobile/hooks/useDimensions.txt +4 -4
  34. package/mcp-docs/mobile/hooks/useMergeRefs.txt +4 -4
  35. package/mcp-docs/mobile/hooks/usePreviousValue.txt +5 -5
  36. package/mcp-docs/mobile/hooks/useRefMap.txt +6 -6
  37. package/mcp-docs/mobile/routes.txt +1 -0
  38. package/mcp-docs/web/components/Accordion.txt +3 -1
  39. package/mcp-docs/web/components/Alert.txt +3 -1
  40. package/mcp-docs/web/components/Banner.txt +14 -14
  41. package/mcp-docs/web/components/Carousel.txt +71 -65
  42. package/mcp-docs/web/components/Chip.txt +1 -1
  43. package/mcp-docs/web/components/Combobox.txt +176 -0
  44. package/mcp-docs/web/components/ContainedAssetCard.txt +4 -4
  45. package/mcp-docs/web/components/ContentCard.txt +29 -27
  46. package/mcp-docs/web/components/ContentCardBody.txt +4 -4
  47. package/mcp-docs/web/components/ContentCardHeader.txt +2 -2
  48. package/mcp-docs/web/components/FloatingAssetCard.txt +6 -6
  49. package/mcp-docs/web/components/FullscreenModal.txt +12 -4
  50. package/mcp-docs/web/components/GridColumn.txt +12 -4
  51. package/mcp-docs/web/components/InputChip.txt +1 -1
  52. package/mcp-docs/web/components/LineChart.txt +3 -2
  53. package/mcp-docs/web/components/MediaChip.txt +1 -1
  54. package/mcp-docs/web/components/MultiContentModule.txt +6 -6
  55. package/mcp-docs/web/components/PageHeader.txt +11 -9
  56. package/mcp-docs/web/components/ProgressBarWithFixedLabels.txt +4 -4
  57. package/mcp-docs/web/components/ProgressBarWithFloatLabel.txt +2 -2
  58. package/mcp-docs/web/components/ProgressCircle.txt +5 -1
  59. package/mcp-docs/web/components/SelectChip.txt +1 -1
  60. package/mcp-docs/web/components/SelectChipAlpha.txt +87 -3
  61. package/mcp-docs/web/components/Sidebar.txt +2 -2
  62. package/mcp-docs/web/components/Sparkline.txt +3 -1
  63. package/mcp-docs/web/components/SparklineGradient.txt +3 -1
  64. package/mcp-docs/web/components/SparklineInteractiveHeader.txt +3 -1
  65. package/mcp-docs/web/components/TabbedChips.txt +3 -1
  66. package/mcp-docs/web/components/TabbedChipsAlpha.txt +35 -1
  67. package/mcp-docs/web/components/TableBody.txt +2 -2
  68. package/mcp-docs/web/components/TableCaption.txt +2 -2
  69. package/mcp-docs/web/components/TableCell.txt +6 -6
  70. package/mcp-docs/web/components/Tag.txt +19 -9
  71. package/mcp-docs/web/components/TextInput.txt +9 -3
  72. package/mcp-docs/web/components/Tray.txt +2 -1
  73. package/mcp-docs/web/components/UpsellCard.txt +16 -16
  74. package/mcp-docs/web/hooks/useDimensions.txt +4 -4
  75. package/mcp-docs/web/hooks/useHasMounted.txt +7 -3
  76. package/mcp-docs/web/hooks/useIsoEffect.txt +1 -1
  77. package/mcp-docs/web/hooks/useMergeRefs.txt +4 -4
  78. package/mcp-docs/web/hooks/useOverlayContentContext.txt +8 -8
  79. package/mcp-docs/web/hooks/usePreviousValue.txt +5 -5
  80. package/mcp-docs/web/hooks/useRefMap.txt +6 -6
  81. package/mcp-docs/web/hooks/useScrollBlocker.txt +1 -1
  82. package/mcp-docs/web/hooks/useTheme.txt +3 -3
  83. package/mcp-docs/web/routes.txt +1 -0
  84. package/package.json +1 -1
@@ -45,10 +45,10 @@ function Example() {
45
45
  return (
46
46
  <Box backgroundColor="bgAlternate" padding={3} borderRadius={300} width="100%">
47
47
  <VStack gap={2}>
48
- <TextHeadline>
48
+ <Text font="headline">
49
49
  Screen dimensions: {screenWidth}x{screenHeight}
50
- </TextHeadline>
51
- <TextHeadline>Status bar height: {statusBarHeight}px</TextHeadline>
50
+ </Text>
51
+ <Text font="headline">Status bar height: {statusBarHeight}px</Text>
52
52
  </VStack>
53
53
  </Box>
54
54
  );
@@ -64,7 +64,7 @@ function Example() {
64
64
 
65
65
  return (
66
66
  <Box backgroundColor="bgAlternate" height={contentHeight} paddingTop={statusBarHeight}>
67
- <TextHeadline>Content below status bar</TextHeadline>
67
+ <Text font="headline">Content below status bar</Text>
68
68
  </Box>
69
69
  );
70
70
  }
@@ -47,7 +47,7 @@ function Example() {
47
47
 
48
48
  return (
49
49
  <Box ref={refs} padding={3} background="bgAlternate" borderRadius={300}>
50
- <TextBody>This box uses a merged ref</TextBody>
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
- <TextBody>This element is referenced by three refs</TextBody>
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
- <TextBody>This box uses both function and object refs</TextBody>
109
+ <Text font="body">This box uses both function and object refs</Text>
110
110
  </Box>
111
- <TextBody>Box width: {elementWidth}px</TextBody>
111
+ <Text font="body">Box width: {elementWidth}px</Text>
112
112
  </VStack>
113
113
  );
114
114
  }
@@ -39,8 +39,8 @@ function Example() {
39
39
  return (
40
40
  <VStack gap={3} alignItems="start">
41
41
  <VStack gap={1}>
42
- <TextHeadline>Current count: {count}</TextHeadline>
43
- <TextHeadline>Previous count: {previousCount ?? 'None'}</TextHeadline>
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
- <TextHeadline>Name: {user.name}</TextHeadline>
66
- <TextHeadline>Age: {user.age}</TextHeadline>
67
- <TextHeadline>Previous age: {previousUser?.age ?? 'None'}</TextHeadline>
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
- <TextBody>This box is registered with ID 'box1'</TextBody>
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
- <TextBody>Box 1</TextBody>
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
- <TextBody>Box 2</TextBody>
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
- <TextBody>Box 3</TextBody>
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
- <TextBody>Box 1</TextBody>
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
- <TextBody>Box 2</TextBody>
170
+ <Text font="body">Box 2</Text>
171
171
  </Box>
172
172
 
173
173
  <Button onClick={logRefs}>Log Refs</Button>
@@ -92,6 +92,7 @@
92
92
  - [InputChip](mobile/components/InputChip.txt): A Chip used for removable selections.
93
93
  - [IconButton](mobile/components/IconButton.txt): A Button with an Icon for content.
94
94
  - [ControlGroup](mobile/components/ControlGroup.txt): A layout component that arranges and manages a group of related controls, such as radio buttons, switches, or checkboxes.
95
+ - [Combobox](mobile/components/Combobox.txt): A flexible combobox component for both single and multi-selection, built for mobile applications with comprehensive accessibility support.
95
96
  - [Chip](mobile/components/Chip.txt): A compact, interactive content element.
96
97
  - [CheckboxGroup](mobile/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.
97
98
  - [CheckboxCell](mobile/components/CheckboxCell.txt): A selectable cell that pairs a checkbox with a title and description for multi-choice selections.
@@ -38,7 +38,9 @@ Check [here](/components/layout/AccordionItem) for AccordionItem Props.
38
38
  media={<CellMedia active type="icon" name="wallet" title="BTC" />}
39
39
  onClick={(itemKey) => console.log(itemKey)}
40
40
  >
41
- <TextBody as="p">{loremIpsum.repeat(20)}</TextBody>
41
+ <Text as="p" font="body">
42
+ {loremIpsum.repeat(20)}
43
+ </Text>
42
44
  </AccordionItem>
43
45
  </Accordion>
44
46
  ```
@@ -117,7 +117,9 @@ function AlertOnModalExample() {
117
117
  openModal(
118
118
  <Modal visible onRequestClose={closeModal}>
119
119
  <ModalBody>
120
- <TextBody as="p">{loremIpsum}</TextBody>
120
+ <Text as="p" font="body">
121
+ {loremIpsum}
122
+ </Text>
121
123
  </ModalBody>
122
124
  <ModalFooter
123
125
  primaryAction={<Button onClick={closeModal}>Save</Button>}
@@ -26,10 +26,10 @@ The global warning banner is used to communicate important alerts or warnings to
26
26
  primaryAction={<Link to="https://www.coinbase.com">Primary</Link>}
27
27
  secondaryAction={<Link to="https://www.coinbase.com">Secondary</Link>}
28
28
  >
29
- <TextLabel2 as="p">
29
+ <Text as="p" font="label2">
30
30
  Your funds are safe. We’re looking into it and expect our usual service to return soon.
31
31
  <Link to="https://www.coinbase.com">Learn more</Link>
32
- </TextLabel2>
32
+ </Text>
33
33
  </Banner>
34
34
  ```
35
35
 
@@ -47,10 +47,10 @@ The In-line Error Banner is used to display specific error messages directly ben
47
47
  primaryAction={<Link to="https://www.coinbase.com">Primary</Link>}
48
48
  secondaryAction={<Link to="https://www.coinbase.com">Secondary</Link>}
49
49
  >
50
- <TextLabel2 as="p">
50
+ <Text as="p" font="label2">
51
51
  Your funds are safe. We’re looking into it and expect our usual service to return soon.
52
52
  <Link to="https://www.coinbase.com">Learn more</Link>
53
- </TextLabel2>
53
+ </Text>
54
54
  </Banner>
55
55
  ```
56
56
 
@@ -66,10 +66,10 @@ The Contextual Promotional Banner is used to highlight special offers, promotion
66
66
  title="Some features are temporarily unavailable"
67
67
  variant="promotional"
68
68
  >
69
- <TextLabel2 as="p">
69
+ <Text as="p" font="label2">
70
70
  Your funds are safe. We’re looking into it and expect our usual service to return soon.
71
71
  <Link to="https://www.coinbase.com">Learn more</Link>
72
- </TextLabel2>
72
+ </Text>
73
73
  </Banner>
74
74
  ```
75
75
 
@@ -88,10 +88,10 @@ The in-line Informational Banner is used to provide users with additional inform
88
88
  primaryAction={<Link to="https://www.coinbase.com">Primary</Link>}
89
89
  secondaryAction={<Link to="https://www.coinbase.com">Secondary</Link>}
90
90
  >
91
- <TextLabel2 as="p">
91
+ <Text as="p" font="label2">
92
92
  Your funds are safe. We’re looking into it and expect our usual service to return soon.
93
93
  <Link to="https://www.coinbase.com">Learn more</Link>
94
- </TextLabel2>
94
+ </Text>
95
95
  </Banner>
96
96
  <Banner
97
97
  startIcon="warning"
@@ -100,9 +100,9 @@ The in-line Informational Banner is used to provide users with additional inform
100
100
  title="Some features are temporarily unavailable"
101
101
  variant="warning"
102
102
  >
103
- <TextLabel2 as="p">
103
+ <Text as="p" font="label2">
104
104
  <Link to="https://www.coinbase.com">Retry</Link>
105
- </TextLabel2>
105
+ </Text>
106
106
  </Banner>
107
107
  </VStack>
108
108
  ```
@@ -121,9 +121,9 @@ You can customize `borderRadius` to soften contextual and in-line banners.
121
121
  title="Rounded contextual banner"
122
122
  variant="informational"
123
123
  >
124
- <TextLabel2 as="p">
124
+ <Text as="p" font="label2">
125
125
  Rounded corners help align with softer surface treatments within a page section.
126
- </TextLabel2>
126
+ </Text>
127
127
  </Banner>
128
128
  <Banner
129
129
  borderRadius={400}
@@ -135,9 +135,9 @@ You can customize `borderRadius` to soften contextual and in-line banners.
135
135
  title="Rounded inline banner"
136
136
  variant="promotional"
137
137
  >
138
- <TextLabel2 as="p">
138
+ <Text as="p" font="label2">
139
139
  You can incrementally increase the radius to match surrounding cards or panels.
140
- </TextLabel2>
140
+ </Text>
141
141
  </Banner>
142
142
  </VStack>
143
143
  ```
@@ -32,9 +32,9 @@ function MyCarousel() {
32
32
  return (
33
33
  <ContainedAssetCard
34
34
  description={
35
- <TextLabel2 as="p" color="fgPositive" numberOfLines={2}>
35
+ <Text as="p" font="label2" color="fgPositive" numberOfLines={2}>
36
36
  ↗6.37%
37
- </TextLabel2>
37
+ </Text>
38
38
  }
39
39
  header={<RemoteImage height="32px" source={imageUrl} width="32px" />}
40
40
  subtitle={name}
@@ -113,7 +113,9 @@ function DynamicSizingCarousel() {
113
113
  return (
114
114
  <VStack gap={2}>
115
115
  <HStack justifyContent="flex-end" gap={2} alignItems="center">
116
- <TextHeadline as="h3">Items per page</TextHeadline>
116
+ <Text as="h3" font="headline">
117
+ Items per page
118
+ </Text>
117
119
  <SegmentedTabs
118
120
  activeTab={selectedItemsPerPage}
119
121
  onChange={setSelectedItemsPerPage}
@@ -146,9 +148,9 @@ function DynamicSizingCarousel() {
146
148
  }
147
149
  minWidth="0"
148
150
  title={
149
- <TextHeadline as="h3" id="recurring-buy-label">
151
+ <Text as="h3" font="headline" id="recurring-buy-label">
150
152
  Recurring Buy
151
- </TextHeadline>
153
+ </Text>
152
154
  }
153
155
  width="100%"
154
156
  />
@@ -164,9 +166,9 @@ function DynamicSizingCarousel() {
164
166
  action={<ActionButton isVisible={isVisible}>Start earning</ActionButton>}
165
167
  dangerouslySetBackground="rgb(var(--purple70))"
166
168
  description={
167
- <TextLabel2 as="p" numberOfLines={3} color="fgInverse">
169
+ <Text as="p" font="label2" numberOfLines={3} color="fgInverse">
168
170
  Earn staking rewards on ETH by holding it on Coinbase
169
- </TextLabel2>
171
+ </Text>
170
172
  }
171
173
  media={
172
174
  <Box left={16} position="relative" top={12}>
@@ -175,9 +177,9 @@ function DynamicSizingCarousel() {
175
177
  }
176
178
  minWidth="0"
177
179
  title={
178
- <TextHeadline id="eths-apr-label" color="fgInverse" as="h3">
180
+ <Text id="eths-apr-label" color="fgInverse" as="h3">
179
181
  Up to 3.29% APR on ETHs
180
- </TextHeadline>
182
+ </Text>
181
183
  }
182
184
  width="100%"
183
185
  />
@@ -193,9 +195,9 @@ function DynamicSizingCarousel() {
193
195
  action={<ActionButton isVisible={isVisible}>Start chatting</ActionButton>}
194
196
  dangerouslySetBackground="rgb(var(--teal70))"
195
197
  description={
196
- <TextLabel2 as="p" numberOfLines={3} color="fgInverse">
198
+ <Text as="p" font="label2" numberOfLines={3} color="fgInverse">
197
199
  Chat with other devs in our Discord community
198
- </TextLabel2>
200
+ </Text>
199
201
  }
200
202
  media={
201
203
  <Box left={16} position="relative" top={4}>
@@ -204,9 +206,9 @@ function DynamicSizingCarousel() {
204
206
  }
205
207
  minWidth="0"
206
208
  title={
207
- <TextHeadline id="join-the-community-label" color="fgInverse" as="h3">
209
+ <Text id="join-the-community-label" color="fgInverse" as="h3">
208
210
  Join the community
209
- </TextHeadline>
211
+ </Text>
210
212
  }
211
213
  width="100%"
212
214
  />
@@ -222,9 +224,9 @@ function DynamicSizingCarousel() {
222
224
  action={<ActionButton isVisible={isVisible}>Get 60 days free</ActionButton>}
223
225
  dangerouslySetBackground="rgb(var(--blue80))"
224
226
  description={
225
- <TextLabel2 as="p" numberOfLines={3} color="fgInverse">
227
+ <Text as="p" font="label2" numberOfLines={3} color="fgInverse">
226
228
  Use code NOV60 when you sign up for Coinbase One
227
- </TextLabel2>
229
+ </Text>
228
230
  }
229
231
  media={
230
232
  <Box left={16} position="relative" top={0}>
@@ -233,9 +235,9 @@ function DynamicSizingCarousel() {
233
235
  }
234
236
  minWidth="0"
235
237
  title={
236
- <TextHeadline id="coinbase-one-offer-label" color="fgInverse" as="h3">
238
+ <Text id="coinbase-one-offer-label" color="fgInverse" as="h3">
237
239
  Coinbase One offer
238
- </TextHeadline>
240
+ </Text>
239
241
  }
240
242
  width="100%"
241
243
  />
@@ -251,9 +253,9 @@ function DynamicSizingCarousel() {
251
253
  action={<ActionButton isVisible={isVisible}>Get started</ActionButton>}
252
254
  dangerouslySetBackground="rgb(var(--gray100))"
253
255
  description={
254
- <TextLabel2 as="p" numberOfLines={3} color="fgInverse">
256
+ <Text as="p" font="label2" numberOfLines={3} color="fgInverse">
255
257
  Spend USDC to get rewards with our Visa® debit card
256
- </TextLabel2>
258
+ </Text>
257
259
  }
258
260
  media={
259
261
  <Box left={16} position="relative" top={0}>
@@ -262,9 +264,9 @@ function DynamicSizingCarousel() {
262
264
  }
263
265
  minWidth="0"
264
266
  title={
265
- <TextHeadline id="coinbase-card-label" color="fgInverse" as="h3">
267
+ <Text id="coinbase-card-label" color="fgInverse" as="h3">
266
268
  Coinbase Card
267
- </TextHeadline>
269
+ </Text>
268
270
  }
269
271
  width="100%"
270
272
  />
@@ -367,9 +369,9 @@ function VariedSizingCarousel() {
367
369
  return (
368
370
  <ContainedAssetCard
369
371
  description={
370
- <TextLabel2 as="p" color="fgPositive" numberOfLines={2}>
372
+ <Text as="p" font="label2" color="fgPositive" numberOfLines={2}>
371
373
  ↗6.37%
372
- </TextLabel2>
374
+ </Text>
373
375
  }
374
376
  header={<RemoteImage height="32px" source={imageUrl} width="32px" />}
375
377
  subtitle={name}
@@ -475,9 +477,9 @@ function DragCarousel() {
475
477
  return (
476
478
  <ContainedAssetCard
477
479
  description={
478
- <TextLabel2 as="p" color="fgPositive" numberOfLines={2}>
480
+ <Text as="p" font="label2" color="fgPositive" numberOfLines={2}>
479
481
  ↗6.37%
480
- </TextLabel2>
482
+ </Text>
481
483
  }
482
484
  header={<RemoteImage height="32px" source={imageUrl} width="32px" />}
483
485
  subtitle={name}
@@ -488,7 +490,9 @@ function DragCarousel() {
488
490
  return (
489
491
  <VStack gap={2}>
490
492
  <HStack justifyContent="flex-end" gap={2} alignItems="center">
491
- <TextHeadline as="h3">Drag</TextHeadline>
493
+ <Text as="h3" font="headline">
494
+ Drag
495
+ </Text>
492
496
  <SegmentedTabs activeTab={drag} onChange={setDrag} tabs={dragOptions} />
493
497
  </HStack>
494
498
  <Box style={{ marginInline: 'calc(-1 * var(--space-3))' }}>
@@ -532,9 +536,9 @@ function SnapModeCarousel() {
532
536
  return (
533
537
  <ContainedAssetCard
534
538
  description={
535
- <TextLabel2 as="p" color="fgPositive" numberOfLines={2}>
539
+ <Text as="p" font="label2" color="fgPositive" numberOfLines={2}>
536
540
  ↗6.37%
537
- </TextLabel2>
541
+ </Text>
538
542
  }
539
543
  header={<RemoteImage height="32px" source={imageUrl} width="32px" />}
540
544
  subtitle={name}
@@ -545,7 +549,9 @@ function SnapModeCarousel() {
545
549
  return (
546
550
  <VStack gap={2}>
547
551
  <HStack justifyContent="flex-end" gap={2} alignItems="center">
548
- <TextHeadline as="h3">Snap mode</TextHeadline>
552
+ <Text as="h3" font="headline">
553
+ Snap mode
554
+ </Text>
549
555
  <SegmentedTabs activeTab={snapMode} onChange={setSnapMode} tabs={snapModeOptions} />
550
556
  </HStack>
551
557
  <Box style={{ marginInline: 'calc(-1 * var(--space-3))' }}>
@@ -591,9 +597,9 @@ function OverflowCarousel() {
591
597
  return (
592
598
  <ContainedAssetCard
593
599
  description={
594
- <TextLabel2 as="p" color="fgPositive" numberOfLines={2}>
600
+ <Text as="p" font="label2" color="fgPositive" numberOfLines={2}>
595
601
  ↗6.37%
596
- </TextLabel2>
602
+ </Text>
597
603
  }
598
604
  header={<RemoteImage height="32px" source={imageUrl} width="32px" />}
599
605
  onClick={isVisible ? () => console.log('clicked') : undefined}
@@ -665,9 +671,9 @@ If you have elements that are focusable, you can use `isVisible` render prop to
665
671
  }
666
672
  minWidth="0"
667
673
  title={
668
- <TextHeadline as="h3" id="recurring-buy-label">
674
+ <Text as="h3" font="headline" id="recurring-buy-label">
669
675
  Recurring Buy
670
- </TextHeadline>
676
+ </Text>
671
677
  }
672
678
  width="100%"
673
679
  />
@@ -686,11 +692,11 @@ You can customize the navigation and pagination components of the carousel using
686
692
  function CustomComponentsCarousel() {
687
693
  function SeeAllComponent({ style }) {
688
694
  return (
689
- <TextHeadline style={style}>
695
+ <Text style={style}>
690
696
  <Link openInNewWindow href="https://coinbase.com/">
691
697
  See all
692
698
  </Link>
693
- </TextHeadline>
699
+ </Text>
694
700
  );
695
701
  }
696
702
  function PaginationComponent({ totalPages, activePageIndex, onClickPage, style }) {
@@ -773,9 +779,9 @@ function CustomComponentsCarousel() {
773
779
  carousel: { gap: 'var(--space-1)' },
774
780
  }}
775
781
  title={
776
- <TextHeadline as="h3">
782
+ <Text as="h3" font="headline">
777
783
  Learn more
778
- </TextHeadline>
784
+ </Text>
779
785
  }
780
786
  >
781
787
  <CarouselItem id="recurring-buy" width={itemWidth}>
@@ -800,9 +806,9 @@ function CustomComponentsCarousel() {
800
806
  action={<ActionButton isVisible={isVisible}>Start earning</ActionButton>}
801
807
  dangerouslySetBackground="rgb(var(--purple70))"
802
808
  description={
803
- <TextLabel2 as="p" numberOfLines={3} color="fgInverse">
809
+ <Text as="p" font="label2" numberOfLines={3} color="fgInverse">
804
810
  Earn staking rewards on ETH by holding it on Coinbase
805
- </TextLabel2>
811
+ </Text>
806
812
  }
807
813
  media={
808
814
  <Box left={16} position="relative" top={12}>
@@ -811,9 +817,9 @@ function CustomComponentsCarousel() {
811
817
  }
812
818
  minWidth="0"
813
819
  title={
814
- <TextHeadline color="fgInverse" as="h3">
820
+ <Text color="fgInverse" as="h3" font="headline">
815
821
  Up to 3.29% APR on ETHs
816
- </TextHeadline>
822
+ </Text>
817
823
  }
818
824
  width="100%"
819
825
  />
@@ -825,9 +831,9 @@ function CustomComponentsCarousel() {
825
831
  action={<ActionButton isVisible={isVisible}>Start chatting</ActionButton>}
826
832
  dangerouslySetBackground="rgb(var(--teal70))"
827
833
  description={
828
- <TextLabel2 as="p" numberOfLines={3} color="fgInverse">
834
+ <Text as="p" font="label2" numberOfLines={3} color="fgInverse">
829
835
  Chat with other devs in our Discord community
830
- </TextLabel2>
836
+ </Text>
831
837
  }
832
838
  media={
833
839
  <Box left={16} position="relative" top={4}>
@@ -836,9 +842,9 @@ function CustomComponentsCarousel() {
836
842
  }
837
843
  minWidth="0"
838
844
  title={
839
- <TextHeadline color="fgInverse" as="h3">
845
+ <Text color="fgInverse" as="h3" font="headline">
840
846
  Join the community
841
- </TextHeadline>
847
+ </Text>
842
848
  }
843
849
  width="100%"
844
850
  />
@@ -850,9 +856,9 @@ function CustomComponentsCarousel() {
850
856
  action={<ActionButton isVisible={isVisible}>Get 60 days free</ActionButton>}
851
857
  dangerouslySetBackground="rgb(var(--blue80))"
852
858
  description={
853
- <TextLabel2 as="p" numberOfLines={3} color="fgInverse">
859
+ <Text as="p" font="label2" numberOfLines={3} color="fgInverse">
854
860
  Use code NOV60 when you sign up for Coinbase One
855
- </TextLabel2>
861
+ </Text>
856
862
  }
857
863
  media={
858
864
  <Box left={16} position="relative" top={0}>
@@ -861,9 +867,9 @@ function CustomComponentsCarousel() {
861
867
  }
862
868
  minWidth="0"
863
869
  title={
864
- <TextHeadline color="fgInverse" as="h3">
870
+ <Text color="fgInverse" as="h3" font="headline">
865
871
  Coinbase One offer
866
- </TextHeadline>
872
+ </Text>
867
873
  }
868
874
  width="100%"
869
875
  />
@@ -875,9 +881,9 @@ function CustomComponentsCarousel() {
875
881
  action={<ActionButton isVisible={isVisible}>Get started</ActionButton>}
876
882
  dangerouslySetBackground="rgb(var(--gray100))"
877
883
  description={
878
- <TextLabel2 as="p" numberOfLines={3} color="fgInverse">
884
+ <Text as="p" font="label2" numberOfLines={3} color="fgInverse">
879
885
  Spend USDC to get rewards with our Visa® debit card
880
- </TextLabel2>
886
+ </Text>
881
887
  }
882
888
  media={
883
889
  <Box left={16} position="relative" top={0}>
@@ -886,9 +892,9 @@ function CustomComponentsCarousel() {
886
892
  }
887
893
  minWidth="0"
888
894
  title={
889
- <TextHeadline color="fgInverse" as="h3">
895
+ <Text color="fgInverse" as="h3" font="headline">
890
896
  Coinbase Card
891
- </TextHeadline>
897
+ </Text>
892
898
  }
893
899
  width="100%"
894
900
  />
@@ -1002,9 +1008,9 @@ function DynamicContentCarousel() {
1002
1008
  return (
1003
1009
  <ContainedAssetCard
1004
1010
  description={
1005
- <TextLabel2 as="p" color="fgPositive" numberOfLines={2}>
1011
+ <Text as="p" font="label2" color="fgPositive" numberOfLines={2}>
1006
1012
  ↗6.37%
1007
- </TextLabel2>
1013
+ </Text>
1008
1014
  }
1009
1015
  header={<RemoteImage height="32px" source={imageUrl} width="32px" />}
1010
1016
  subtitle={name}
@@ -1069,9 +1075,9 @@ function AnimatedCarousel() {
1069
1075
  >
1070
1076
  <ContainedAssetCard
1071
1077
  description={
1072
- <TextLabel2 as="p" color="fgPositive" numberOfLines={2}>
1078
+ <Text as="p" font="label2" color="fgPositive" numberOfLines={2}>
1073
1079
  ↗6.37%
1074
- </TextLabel2>
1080
+ </Text>
1075
1081
  }
1076
1082
  header={<RemoteImage height="32px" source={imageUrl} width="32px" />}
1077
1083
  subtitle={name}
@@ -1146,9 +1152,9 @@ function AnimatedSelectionCarousel() {
1146
1152
  >
1147
1153
  <ContainedAssetCard
1148
1154
  description={
1149
- <TextLabel2 as="p" color="fgPositive" numberOfLines={2}>
1155
+ <Text as="p" font="label2" color="fgPositive" numberOfLines={2}>
1150
1156
  ↗6.37%
1151
- </TextLabel2>
1157
+ </Text>
1152
1158
  }
1153
1159
  header={<RemoteImage height="32px" source={imageUrl} width="32px" />}
1154
1160
  subtitle={name}
@@ -1205,9 +1211,9 @@ function HideNavigationAndPaginationCarousel() {
1205
1211
  return (
1206
1212
  <ContainedAssetCard
1207
1213
  description={
1208
- <TextLabel2 as="p" color="fgPositive" numberOfLines={2}>
1214
+ <Text as="p" font="label2" color="fgPositive" numberOfLines={2}>
1209
1215
  ↗6.37%
1210
- </TextLabel2>
1216
+ </Text>
1211
1217
  }
1212
1218
  header={<RemoteImage height="32px" source={imageUrl} width="32px" />}
1213
1219
  subtitle={name}
@@ -1282,9 +1288,9 @@ function AnimatedPaginationCarousel() {
1282
1288
  return (
1283
1289
  <ContainedAssetCard
1284
1290
  description={
1285
- <TextLabel2 as="p" color="fgPositive" numberOfLines={2}>
1291
+ <Text as="p" font="label2" color="fgPositive" numberOfLines={2}>
1286
1292
  ↗6.37%
1287
- </TextLabel2>
1293
+ </Text>
1288
1294
  }
1289
1295
  header={<RemoteImage height="32px" source={imageUrl} width="32px" />}
1290
1296
  subtitle={name}
@@ -1359,9 +1365,9 @@ function ImperativeApiCarousel() {
1359
1365
  return (
1360
1366
  <ContainedAssetCard
1361
1367
  description={
1362
- <TextLabel2 as="p" color="fgPositive" numberOfLines={2}>
1368
+ <Text as="p" font="label2" color="fgPositive" numberOfLines={2}>
1363
1369
  ↗6.37%
1364
- </TextLabel2>
1370
+ </Text>
1365
1371
  }
1366
1372
  header={<RemoteImage height="32px" source={imageUrl} width="32px" />}
1367
1373
  subtitle={name}
@@ -158,7 +158,7 @@ function Example() {
158
158
  | `marginX` | `ResponsiveProp<0 \| -5 \| -10 \| -0.25 \| -0.5 \| -0.75 \| -1 \| -1.5 \| -2 \| -3 \| -4 \| -6 \| -7 \| -8 \| -9>` | No | `-` | - |
159
159
  | `marginY` | `ResponsiveProp<0 \| -5 \| -10 \| -0.25 \| -0.5 \| -0.75 \| -1 \| -1.5 \| -2 \| -3 \| -4 \| -6 \| -7 \| -8 \| -9>` | No | `-` | - |
160
160
  | `maxHeight` | `ResponsiveProp<MaxHeight<string \| number>>` | No | `-` | - |
161
- | `maxWidth` | `((MaxWidth<string \| number> \| { base?: MaxWidth<string \| number>; phone?: MaxWidth<string \| number> \| undefined; tablet?: MaxWidth<string \| number> \| undefined; desktop?: MaxWidth<string \| number> \| undefined; }) & DimensionValue) \| undefined` | No | `200` | If text content overflows, it will get truncated with an ellipsis. |
161
+ | `maxWidth` | `ResponsiveProp<MaxWidth<string \| number>>` | No | `200` | If text content overflows, it will get truncated with an ellipsis. |
162
162
  | `minHeight` | `ResponsiveProp<MinHeight<string \| number>>` | No | `-` | - |
163
163
  | `minWidth` | `ResponsiveProp<MinWidth<string \| number>>` | No | `-` | - |
164
164
  | `noScaleOnPress` | `boolean` | No | `-` | Dont scale element on press. |