@coinbase/cds-mcp-server 8.52.0 → 8.52.2

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 (32) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/mcp-docs/mobile/components/AreaChart.txt +12 -222
  3. package/mcp-docs/mobile/components/BarChart.txt +222 -333
  4. package/mcp-docs/mobile/components/CartesianChart.txt +6 -3
  5. package/mcp-docs/mobile/components/Checkbox.txt +2 -2
  6. package/mcp-docs/mobile/components/Chip.txt +74 -29
  7. package/mcp-docs/mobile/components/LineChart.txt +54 -134
  8. package/mcp-docs/mobile/components/Point.txt +1 -0
  9. package/mcp-docs/mobile/components/Radio.txt +2 -2
  10. package/mcp-docs/mobile/components/Scrubber.txt +2 -1
  11. package/mcp-docs/mobile/components/XAxis.txt +54 -1
  12. package/mcp-docs/mobile/components/YAxis.txt +3 -1
  13. package/mcp-docs/mobile/routes.txt +1 -1
  14. package/mcp-docs/web/components/AreaChart.txt +26 -118
  15. package/mcp-docs/web/components/BarChart.txt +228 -116
  16. package/mcp-docs/web/components/CartesianChart.txt +6 -3
  17. package/mcp-docs/web/components/Checkbox.txt +2 -2
  18. package/mcp-docs/web/components/Chip.txt +74 -29
  19. package/mcp-docs/web/components/FocusTrap.txt +2 -1
  20. package/mcp-docs/web/components/FullscreenModal.txt +2 -2
  21. package/mcp-docs/web/components/FullscreenModalLayout.txt +2 -2
  22. package/mcp-docs/web/components/LineChart.txt +42 -2
  23. package/mcp-docs/web/components/Modal.txt +67 -2
  24. package/mcp-docs/web/components/Point.txt +1 -0
  25. package/mcp-docs/web/components/Radio.txt +2 -2
  26. package/mcp-docs/web/components/ReferenceLine.txt +1 -1
  27. package/mcp-docs/web/components/Scrubber.txt +2 -1
  28. package/mcp-docs/web/components/Tray.txt +69 -2
  29. package/mcp-docs/web/components/XAxis.txt +55 -2
  30. package/mcp-docs/web/components/YAxis.txt +4 -2
  31. package/mcp-docs/web/routes.txt +1 -1
  32. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -8,6 +8,14 @@ All notable changes to this project will be documented in this file.
8
8
 
9
9
  <!-- template-start -->
10
10
 
11
+ ## 8.52.2 ((3/11/2026, 10:02 AM PST))
12
+
13
+ This is an artificial version bump with no new change.
14
+
15
+ ## 8.52.1 ((3/11/2026, 09:52 AM PST))
16
+
17
+ This is an artificial version bump with no new change.
18
+
11
19
  ## 8.52.0 ((3/10/2026, 08:50 AM PST))
12
20
 
13
21
  This is an artificial version bump with no new change.
@@ -145,233 +145,22 @@ You can have different area styles for each series.
145
145
 
146
146
  ### Animations
147
147
 
148
- You can configure chart transitions using the `transitions` prop on individual chart elements, or use the `animate` prop to toggle animations entirely.
149
-
150
- #### Customized Transitions
151
-
152
- You can pass in a custom spring or timing based transition to your chart for custom update animations. Use `CartesianChart` with `Area` and `Line` components directly to configure `transitions` per element.
148
+ You can configure chart transitions using the `transitions` prop.
153
149
 
154
150
  ```jsx
155
- function AnimatedStackedAreas() {
156
- const theme = useTheme();
157
- const dataCount = 20;
158
- const minYValue = 5000;
159
- const maxDataOffset = 15000;
160
- const minStepOffset = 2500;
161
- const maxStepOffset = 10000;
162
- const updateInterval = 500;
163
- const seriesSpacing = 2000;
164
- const myTransition = {
151
+ <AreaChart
152
+ {...props}
153
+ transitions={{
154
+ enter: { type: 'spring', stiffness: 700, damping: 80 },
165
155
  update: { type: 'spring', stiffness: 700, damping: 20 },
166
- };
167
-
168
- const seriesConfig = [
169
- { id: 'red', label: 'Red', color: `rgb(${theme.spectrum.red40})` },
170
- { id: 'orange', label: 'Orange', color: `rgb(${theme.spectrum.orange40})` },
171
- { id: 'yellow', label: 'Yellow', color: `rgb(${theme.spectrum.yellow40})` },
172
- { id: 'green', label: 'Green', color: `rgb(${theme.spectrum.green40})` },
173
- { id: 'blue', label: 'Blue', color: `rgb(${theme.spectrum.blue40})` },
174
- { id: 'indigo', label: 'Indigo', color: `rgb(${theme.spectrum.indigo40})` },
175
- { id: 'purple', label: 'Purple', color: `rgb(${theme.spectrum.purple40})` },
176
- ];
177
-
178
- const domainLimit = maxDataOffset + seriesConfig.length * seriesSpacing;
179
-
180
- function generateNextValue(previousValue) {
181
- const range = maxStepOffset - minStepOffset;
182
- const offset = Math.random() * range + minStepOffset;
183
-
184
- let direction;
185
- if (previousValue >= maxDataOffset) {
186
- direction = -1;
187
- } else if (previousValue <= minYValue) {
188
- direction = 1;
189
- } else {
190
- direction = Math.random() < 0.5 ? -1 : 1;
191
- }
192
-
193
- let newValue = previousValue + offset * direction;
194
- newValue = Math.max(minYValue, Math.min(maxDataOffset, newValue));
195
- return newValue;
196
- }
197
-
198
- function generateInitialData() {
199
- const data = [];
200
-
201
- let previousValue = minYValue + Math.random() * (maxDataOffset - minYValue);
202
- data.push(previousValue);
203
-
204
- for (let i = 1; i < dataCount; i++) {
205
- const newValue = generateNextValue(previousValue);
206
- data.push(newValue);
207
- previousValue = newValue;
208
- }
209
-
210
- return data;
211
- }
212
-
213
- const MemoizedDottedArea = memo((props) => (
214
- <DottedArea {...props} baselineOpacity={1} peakOpacity={1} />
215
- ));
216
-
217
- function AnimatedChart() {
218
- const [data, setData] = useState(generateInitialData);
219
-
220
- useEffect(() => {
221
- const intervalId = setInterval(() => {
222
- setData((currentData) => {
223
- const lastValue = currentData[currentData.length - 1] ?? 0;
224
- const newValue = generateNextValue(lastValue);
225
-
226
- return [...currentData.slice(1), newValue];
227
- });
228
- }, updateInterval);
229
-
230
- return () => clearInterval(intervalId);
231
- }, []);
232
-
233
- const series = seriesConfig.map((config, index) => ({
234
- id: config.id,
235
- label: config.label,
236
- color: config.color,
237
- data: index === 0 ? data : Array(dataCount).fill(seriesSpacing),
238
- }));
239
-
240
- return (
241
- <AreaChart
242
- stacked
243
- height={300}
244
- series={series}
245
- type="dotted"
246
- showLines
247
- AreaComponent={MemoizedDottedArea}
248
- transition={myTransition.update}
249
- inset={0}
250
- showYAxis
251
- yAxis={{
252
- showGrid: true,
253
- width: 0,
254
- tickLabelFormatter: () => '',
255
- domain: { min: 0, max: domainLimit },
256
- }}
257
- />
258
- );
259
- }
260
-
261
- return <AnimatedChart />;
262
- }
156
+ }}
157
+ />
263
158
  ```
264
159
 
265
- #### Disable Animations
266
-
267
- You can also disable animations by setting the `animate` prop to `false`.
160
+ Also, you can toggle animations by setting `animate` to `true` or `false`.
268
161
 
269
162
  ```jsx
270
- function AnimatedStackedAreas() {
271
- const theme = useTheme();
272
- const dataCount = 20;
273
- const minYValue = 5000;
274
- const maxDataOffset = 15000;
275
- const minStepOffset = 2500;
276
- const maxStepOffset = 10000;
277
- const updateInterval = 500;
278
- const seriesSpacing = 2000;
279
-
280
- const seriesConfig = [
281
- { id: 'red', label: 'Red', color: `rgb(${theme.spectrum.red40})` },
282
- { id: 'orange', label: 'Orange', color: `rgb(${theme.spectrum.orange40})` },
283
- { id: 'yellow', label: 'Yellow', color: `rgb(${theme.spectrum.yellow40})` },
284
- { id: 'green', label: 'Green', color: `rgb(${theme.spectrum.green40})` },
285
- { id: 'blue', label: 'Blue', color: `rgb(${theme.spectrum.blue40})` },
286
- { id: 'indigo', label: 'Indigo', color: `rgb(${theme.spectrum.indigo40})` },
287
- { id: 'purple', label: 'Purple', color: `rgb(${theme.spectrum.purple40})` },
288
- ];
289
-
290
- const domainLimit = maxDataOffset + seriesConfig.length * seriesSpacing;
291
-
292
- function generateNextValue(previousValue) {
293
- const range = maxStepOffset - minStepOffset;
294
- const offset = Math.random() * range + minStepOffset;
295
-
296
- let direction;
297
- if (previousValue >= maxDataOffset) {
298
- direction = -1;
299
- } else if (previousValue <= minYValue) {
300
- direction = 1;
301
- } else {
302
- direction = Math.random() < 0.5 ? -1 : 1;
303
- }
304
-
305
- let newValue = previousValue + offset * direction;
306
- newValue = Math.max(minYValue, Math.min(maxDataOffset, newValue));
307
- return newValue;
308
- }
309
-
310
- function generateInitialData() {
311
- const data = [];
312
-
313
- let previousValue = minYValue + Math.random() * (maxDataOffset - minYValue);
314
- data.push(previousValue);
315
-
316
- for (let i = 1; i < dataCount; i++) {
317
- const newValue = generateNextValue(previousValue);
318
- data.push(newValue);
319
- previousValue = newValue;
320
- }
321
-
322
- return data;
323
- }
324
-
325
- const MemoizedDottedArea = memo((props) => (
326
- <DottedArea {...props} baselineOpacity={1} peakOpacity={1} />
327
- ));
328
-
329
- function AnimatedChart() {
330
- const [data, setData] = useState(generateInitialData);
331
-
332
- useEffect(() => {
333
- const intervalId = setInterval(() => {
334
- setData((currentData) => {
335
- const lastValue = currentData[currentData.length - 1] ?? 0;
336
- const newValue = generateNextValue(lastValue);
337
-
338
- return [...currentData.slice(1), newValue];
339
- });
340
- }, updateInterval);
341
-
342
- return () => clearInterval(intervalId);
343
- }, []);
344
-
345
- const series = seriesConfig.map((config, index) => ({
346
- id: config.id,
347
- label: config.label,
348
- color: config.color,
349
- data: index === 0 ? data : Array(dataCount).fill(seriesSpacing),
350
- }));
351
-
352
- return (
353
- <AreaChart
354
- animate={false}
355
- stacked
356
- height={300}
357
- series={series}
358
- type="dotted"
359
- showLines
360
- AreaComponent={MemoizedDottedArea}
361
- inset={0}
362
- showYAxis
363
- yAxis={{
364
- showGrid: true,
365
- width: 0,
366
- tickLabelFormatter: () => '',
367
- domain: { min: 0, max: domainLimit },
368
- }}
369
- />
370
- );
371
- }
372
-
373
- return <AnimatedChart />;
374
- }
163
+ <AreaChart {...props} animate={false} />
375
164
  ```
376
165
 
377
166
  ### Gradients
@@ -673,6 +462,7 @@ function XAxisGradient() {
673
462
  | `inset` | `number \| Partial<ChartInset>` | No | `-` | Inset around the entire chart (outside the axes). |
674
463
  | `justifyContent` | `flex-start \| flex-end \| center \| space-between \| space-around \| space-evenly` | No | `-` | - |
675
464
  | `key` | `Key \| null` | No | `-` | - |
465
+ | `layout` | `horizontal \| vertical` | No | `'vertical'` | Chart layout - describes the direction bars/areas grow. - vertical (default): Bars grow vertically. X is category axis, Y is value axis. - horizontal: Bars grow horizontally. Y is category axis, X is value axis. |
676
466
  | `left` | `string \| number` | No | `-` | - |
677
467
  | `legend` | `null \| string \| number \| false \| true \| ReactElement<any, string \| JSXElementConstructor<any>> \| Iterable<ReactNode> \| ReactPortal` | No | `-` | Whether to show the legend or a custom legend element. - true renders the default Legend component - A React element renders that element as the legend - false or omitted hides the legend |
678
468
  | `legendAccessibilityLabel` | `string` | No | `'Legend'` | Accessibility label for the legend group. |
@@ -737,8 +527,8 @@ function XAxisGradient() {
737
527
  | `type` | `solid \| dotted \| gradient` | No | `'solid'` | The type of area to render. |
738
528
  | `userSelect` | `none \| auto \| text \| contain \| all` | No | `-` | - |
739
529
  | `width` | `string \| number` | No | `-` | - |
740
- | `xAxis` | `(Partial<AxisConfigProps> & AxisBaseProps & { GridLineComponent?: LineComponent; LineComponent?: LineComponent \| undefined; TickMarkLineComponent?: LineComponent \| undefined; tickLabelFormatter?: ((value: number) => ChartTextChildren) \| undefined; TickLabelComponent?: AxisTickLabelComponent \| undefined; } & { position?: top \| bottom \| undefined; height?: number \| undefined; }) \| undefined` | No | `-` | Configuration for x-axis. Accepts axis config and axis props. To show the axis, set showXAxis to true. |
741
- | `yAxis` | `(Partial<AxisConfigProps> & AxisBaseProps & { GridLineComponent?: LineComponent; LineComponent?: LineComponent \| undefined; TickMarkLineComponent?: LineComponent \| undefined; tickLabelFormatter?: ((value: number) => ChartTextChildren) \| undefined; TickLabelComponent?: AxisTickLabelComponent \| undefined; } & { axisId?: string \| undefined; position?: left \| right \| undefined; width?: number \| undefined; }) \| undefined` | No | `-` | Configuration for y-axis. Accepts axis config and axis props. To show the axis, set showYAxis to true. |
530
+ | `xAxis` | `(Partial<CartesianAxisConfigProps> & AxisBaseProps & { GridLineComponent?: LineComponent; LineComponent?: LineComponent \| undefined; TickMarkLineComponent?: LineComponent \| undefined; tickLabelFormatter?: ((value: number) => ChartTextChildren) \| undefined; TickLabelComponent?: AxisTickLabelComponent \| undefined; } & { axisId?: string \| undefined; position?: top \| bottom \| undefined; height?: number \| undefined; }) \| undefined` | No | `-` | Configuration for x-axis. Accepts axis config and axis props. To show the axis, set showXAxis to true. |
531
+ | `yAxis` | `(Partial<CartesianAxisConfigProps> & AxisBaseProps & { GridLineComponent?: LineComponent; LineComponent?: LineComponent \| undefined; TickMarkLineComponent?: LineComponent \| undefined; tickLabelFormatter?: ((value: number) => ChartTextChildren) \| undefined; TickLabelComponent?: AxisTickLabelComponent \| undefined; } & { axisId?: string \| undefined; position?: left \| right \| undefined; width?: number \| undefined; }) \| undefined` | No | `-` | Configuration for y-axis. Accepts axis config and axis props. To show the axis, set showYAxis to true. |
742
532
  | `zIndex` | `number` | No | `-` | - |
743
533
 
744
534