@coinbase/cds-common 8.62.0 → 8.66.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 CHANGED
@@ -8,6 +8,52 @@ All notable changes to this project will be documented in this file.
8
8
 
9
9
  <!-- template-start -->
10
10
 
11
+ ## 8.66.0 ((4/16/2026, 01:57 PM PST))
12
+
13
+ This is an artificial version bump with no new change.
14
+
15
+ ## 8.65.0 ((4/16/2026, 10:06 AM PST))
16
+
17
+ This is an artificial version bump with no new change.
18
+
19
+ ## 8.64.5 ((4/16/2026, 06:50 AM PST))
20
+
21
+ This is an artificial version bump with no new change.
22
+
23
+ ## 8.64.4 ((4/10/2026, 01:20 PM PST))
24
+
25
+ This is an artificial version bump with no new change.
26
+
27
+ ## 8.64.3 ((4/8/2026, 05:54 PM PST))
28
+
29
+ This is an artificial version bump with no new change.
30
+
31
+ ## 8.64.2 ((4/8/2026, 11:26 AM PST))
32
+
33
+ This is an artificial version bump with no new change.
34
+
35
+ ## 8.64.1 (4/7/2026 PST)
36
+
37
+ #### 🐞 Fixes
38
+
39
+ - Adds deprecations to several types for the Tour web/mobile components. [[#592](https://github.com/coinbase/cds/pull/592)]
40
+
41
+ ## 8.64.0 (4/2/2026 PST)
42
+
43
+ #### 🚀 Updates
44
+
45
+ - UseTabs: Added an optional second generic TTab extends TabValue<TabId> so tabs, activeTab, and onChange can be typed with custom tab row shapes (defaults preserve the old behavior). [[#558](https://github.com/coinbase/cds/pull/558)]
46
+
47
+ ## 8.63.0 ((4/1/2026, 03:43 PM PST))
48
+
49
+ This is an artificial version bump with no new change.
50
+
51
+ ## 8.62.1 (4/1/2026 PST)
52
+
53
+ #### 🐞 Fixes
54
+
55
+ - Remove usage of Array.prototype.at(). [[#575](https://github.com/coinbase/cds/pull/575)]
56
+
11
57
  ## 8.62.0 ((3/30/2026, 06:52 PM PST))
12
58
 
13
59
  This is an artificial version bump with no new change.
@@ -1,5 +1,13 @@
1
- import { type TabsApi } from './useTabs';
2
- export type TabsContextValue<TabId extends string = string> = TabsApi<TabId>;
3
- export declare const TabsContext: import('react').Context<TabsContextValue<string> | undefined>;
4
- export declare const useTabsContext: <TabId extends string>() => TabsContextValue<TabId>;
1
+ import { type TabsApi, type TabValue } from './useTabs';
2
+ export type TabsContextValue<
3
+ TabId extends string = string,
4
+ TTab extends TabValue<TabId> = TabValue<TabId>,
5
+ > = TabsApi<TabId, TTab>;
6
+ export declare const TabsContext: import('react').Context<
7
+ TabsContextValue<string, TabValue<string>> | undefined
8
+ >;
9
+ export declare const useTabsContext: <
10
+ TabId extends string,
11
+ TTab extends TabValue<TabId> = TabValue<TabId>,
12
+ >() => TabsContextValue<TabId, TTab>;
5
13
  //# sourceMappingURL=TabsContext.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TabsContext.d.ts","sourceRoot":"","sources":["../../src/tabs/TabsContext.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,MAAM,MAAM,gBAAgB,CAAC,KAAK,SAAS,MAAM,GAAG,MAAM,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC;AAE7E,eAAO,MAAM,WAAW,+DAAyD,CAAC;AAElF,eAAO,MAAM,cAAc,GAAI,KAAK,SAAS,MAAM,OAAK,gBAAgB,CAAC,KAAK,CAI7E,CAAC"}
1
+ {"version":3,"file":"TabsContext.d.ts","sourceRoot":"","sources":["../../src/tabs/TabsContext.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,WAAW,CAAC;AAExD,MAAM,MAAM,gBAAgB,CAC1B,KAAK,SAAS,MAAM,GAAG,MAAM,EAC7B,IAAI,SAAS,QAAQ,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,IAC5C,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAEzB,eAAO,MAAM,WAAW,iFAAyD,CAAC;AAElF,eAAO,MAAM,cAAc,GACzB,KAAK,SAAS,MAAM,EACpB,IAAI,SAAS,QAAQ,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,OAC3C,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAIhC,CAAC"}
@@ -6,17 +6,23 @@ export type TabValue<TabId extends string = string> = {
6
6
  /** Disable interactions on the tab. */
7
7
  disabled?: boolean;
8
8
  };
9
- export type TabsOptions<TabId extends string = string> = {
9
+ export type TabsOptions<
10
+ TabId extends string = string,
11
+ TTab extends TabValue<TabId> = TabValue<TabId>,
12
+ > = {
10
13
  /** The array of tabs data. */
11
- tabs: TabValue<TabId>[];
14
+ tabs: TTab[];
12
15
  /** React state for the currently active tab. Setting it to `null` results in no active tab. */
13
- activeTab: TabValue<TabId> | null;
16
+ activeTab: TTab | null;
14
17
  /** Callback that is fired when the active tab changes. Use this callback to update the `activeTab` state. */
15
- onChange: (activeTab: TabValue<TabId> | null) => void;
18
+ onChange: (activeTab: TTab | null) => void;
16
19
  /** Disable interactions on all the tabs. */
17
20
  disabled?: boolean;
18
21
  };
19
- export type TabsApi<TabId extends string = string> = Omit<TabsOptions<TabId>, 'onChange'> & {
22
+ export type TabsApi<
23
+ TabId extends string = string,
24
+ TTab extends TabValue<TabId> = TabValue<TabId>,
25
+ > = Omit<TabsOptions<TabId, TTab>, 'onChange'> & {
20
26
  /** Update the currently active tab to the tab with `tabId`. */
21
27
  updateActiveTab: (tabId: TabId | null) => void;
22
28
  /** Update the currently active tab to the next enabled tab in the tabs array. Does nothing if the last tab is already active. */
@@ -25,10 +31,13 @@ export type TabsApi<TabId extends string = string> = Omit<TabsOptions<TabId>, 'o
25
31
  goPreviousTab: () => void;
26
32
  };
27
33
  /** A controlled hook for managing tabs state, such as the currently active tab. */
28
- export declare const useTabs: <TabId extends string>({
34
+ export declare const useTabs: <
35
+ TabId extends string,
36
+ TTab extends TabValue<TabId> = TabValue<TabId>,
37
+ >({
29
38
  tabs,
30
39
  activeTab,
31
40
  disabled,
32
41
  onChange,
33
- }: TabsOptions<TabId>) => TabsApi<TabId>;
42
+ }: TabsOptions<TabId, TTab>) => TabsApi<TabId, TTab>;
34
43
  //# sourceMappingURL=useTabs.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useTabs.d.ts","sourceRoot":"","sources":["../../src/tabs/useTabs.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,QAAQ,CAAC,KAAK,SAAS,MAAM,GAAG,MAAM,IAAI;IACpD,kBAAkB;IAClB,EAAE,EAAE,KAAK,CAAC;IACV,qBAAqB;IACrB,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,uCAAuC;IACvC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,WAAW,CAAC,KAAK,SAAS,MAAM,GAAG,MAAM,IAAI;IACvD,8BAA8B;IAC9B,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;IACxB,+FAA+F;IAC/F,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;IAClC,6GAA6G;IAC7G,QAAQ,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC;IACtD,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,OAAO,CAAC,KAAK,SAAS,MAAM,GAAG,MAAM,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,GAAG;IAC1F,+DAA+D;IAC/D,eAAe,EAAE,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,KAAK,IAAI,CAAC;IAC/C,iIAAiI;IACjI,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,sIAAsI;IACtI,aAAa,EAAE,MAAM,IAAI,CAAC;CAC3B,CAAC;AAEF,mFAAmF;AACnF,eAAO,MAAM,OAAO,GAAI,KAAK,SAAS,MAAM,EAAE,0CAK3C,WAAW,CAAC,KAAK,CAAC,KAAG,OAAO,CAAC,KAAK,CA2CpC,CAAC"}
1
+ {"version":3,"file":"useTabs.d.ts","sourceRoot":"","sources":["../../src/tabs/useTabs.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,QAAQ,CAAC,KAAK,SAAS,MAAM,GAAG,MAAM,IAAI;IACpD,kBAAkB;IAClB,EAAE,EAAE,KAAK,CAAC;IACV,qBAAqB;IACrB,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,uCAAuC;IACvC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,WAAW,CACrB,KAAK,SAAS,MAAM,GAAG,MAAM,EAC7B,IAAI,SAAS,QAAQ,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,IAC5C;IACF,8BAA8B;IAC9B,IAAI,EAAE,IAAI,EAAE,CAAC;IACb,+FAA+F;IAC/F,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;IACvB,6GAA6G;IAC7G,QAAQ,EAAE,CAAC,SAAS,EAAE,IAAI,GAAG,IAAI,KAAK,IAAI,CAAC;IAC3C,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,OAAO,CACjB,KAAK,SAAS,MAAM,GAAG,MAAM,EAC7B,IAAI,SAAS,QAAQ,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,IAC5C,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,UAAU,CAAC,GAAG;IAC/C,+DAA+D;IAC/D,eAAe,EAAE,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,KAAK,IAAI,CAAC;IAC/C,iIAAiI;IACjI,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,sIAAsI;IACtI,aAAa,EAAE,MAAM,IAAI,CAAC;CAC3B,CAAC;AAEF,mFAAmF;AACnF,eAAO,MAAM,OAAO,GAAI,KAAK,SAAS,MAAM,EAAE,IAAI,SAAS,QAAQ,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,EAAE,0CAK3F,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,KAAG,OAAO,CAAC,KAAK,EAAE,IAAI,CA2ChD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"TourContext.d.ts","sourceRoot":"","sources":["../../src/tour/TourContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAA6B,MAAM,OAAO,CAAC;AAGhE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,MAAM,MAAM,gBAAgB,CAAC,UAAU,SAAS,MAAM,GAAG,MAAM,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC;AAEvF,eAAO,MAAM,WAAW,+CAAyD,CAAC;AAElF,eAAO,MAAM,cAAc,GACzB,UAAU,SAAS,MAAM,GAAG,MAAM,OAC/B,gBAAgB,CAAC,UAAU,CAI/B,CAAC"}
1
+ {"version":3,"file":"TourContext.d.ts","sourceRoot":"","sources":["../../src/tour/TourContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAA6B,MAAM,OAAO,CAAC;AAEhE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,MAAM,MAAM,gBAAgB,CAAC,UAAU,SAAS,MAAM,GAAG,MAAM,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC;AAEvF,eAAO,MAAM,WAAW,+CAAyD,CAAC;AAElF,eAAO,MAAM,cAAc,GACzB,UAAU,SAAS,MAAM,GAAG,MAAM,OAC/B,gBAAgB,CAAC,UAAU,CAI/B,CAAC"}
@@ -1,6 +1,10 @@
1
1
  import type React from 'react';
2
2
  import type { View } from 'react-native';
3
3
  import { type Coords, type Placement } from '@floating-ui/react-dom';
4
+ /**
5
+ * @deprecated Import from `@coinbase/cds-web` or `@coinbase/cds-mobile` instead. This will be removed in a future major release.
6
+ * @deprecationExpectedRemoval v10
7
+ */
4
8
  export type TourStepArrowComponentProps = {
5
9
  arrow?: Partial<Coords> & {
6
10
  centerOffset: number;
@@ -10,7 +14,8 @@ export type TourStepArrowComponentProps = {
10
14
  style?: Record<string, string | number>;
11
15
  };
12
16
  /**
13
- * The TourStepArrowComponent must forwardRef onto the underlying element for `@floating-ui` to correctly position the element.
17
+ * @deprecated Import from `@coinbase/cds-web` or `@coinbase/cds-mobile` instead. This will be removed in a future major release.
18
+ * @deprecationExpectedRemoval v10
14
19
  */
15
20
  export type TourStepArrowComponent = React.ForwardRefExoticComponent<
16
21
  TourStepArrowComponentProps & {
@@ -18,9 +23,6 @@ export type TourStepArrowComponent = React.ForwardRefExoticComponent<
18
23
  }
19
24
  >;
20
25
  export type TourStepComponent = React.FC<Omit<TourStepValue, 'Component'>>;
21
- /**
22
- * Web only.
23
- */
24
26
  export type TourScrollOptions = {
25
27
  behavior?: ScrollBehavior;
26
28
  marginX?: number;
@@ -72,7 +74,9 @@ export type TourStepValue<TourStepId extends string = string> = {
72
74
  */
73
75
  tourMaskBorderRadius?: string | number;
74
76
  /**
75
- * Add styles to the TourStepArrowComponent for this tour step.
77
+ * Add styles to the TourStepArrowComponent for this tour step. Use `styles.arrow` instead.
78
+ * @deprecated Use Tour's `styles.stepArrow` prop instead. This will be removed in a future major release.
79
+ * @deprecationExpectedRemoval v10
76
80
  */
77
81
  arrowStyle?: Record<string, string | number>;
78
82
  /**
@@ -101,7 +105,10 @@ export type TourApi<TourStepId extends string = string> = Omit<
101
105
  goNextTourStep: () => void;
102
106
  goPreviousTourStep: () => void;
103
107
  };
104
- /** A controlled hook for managing tour state, such as the currently active tour step. */
108
+ /**
109
+ * A controlled hook for managing tour state, such as the currently active tour step.
110
+ * @see {@link https://linear.app/coinbase/issue/CDS-1878 CDS-1878} for planned refactor to make this API platform agnostic.
111
+ */
105
112
  export declare const useTour: <TourStepId extends string = string>({
106
113
  steps,
107
114
  activeTourStep,
@@ -1 +1 @@
1
- {"version":3,"file":"useTour.d.ts","sourceRoot":"","sources":["../../src/tour/useTour.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useTour.d.ts","sourceRoot":"","sources":["../../src/tour/useTour.ts"],"names":[],"mappings":"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"}
@@ -16,7 +16,7 @@ export const useTabs = _ref => {
16
16
  if (newActiveTab !== activeTab) onChange(newActiveTab);
17
17
  }, [activeTab, tabs, onChange]);
18
18
  const goNextTab = useCallback(() => {
19
- if (!activeTab || activeTab === tabs.at(-1)) return;
19
+ if (!activeTab || activeTab === tabs[tabs.length - 1]) return;
20
20
  const activeTabIndex = tabs.indexOf(activeTab);
21
21
  // Find next tab that isn't disabled
22
22
  for (let i = activeTabIndex + 1; i < tabs.length; i++) {
@@ -1,14 +1,19 @@
1
1
  import { useCallback, useMemo, useState } from 'react';
2
2
 
3
3
  /**
4
- * The TourStepArrowComponent must forwardRef onto the underlying element for `@floating-ui` to correctly position the element.
4
+ * @deprecated Import from `@coinbase/cds-web` or `@coinbase/cds-mobile` instead. This will be removed in a future major release.
5
+ * @deprecationExpectedRemoval v10
5
6
  */
6
7
 
7
8
  /**
8
- * Web only.
9
+ * @deprecated Import from `@coinbase/cds-web` or `@coinbase/cds-mobile` instead. This will be removed in a future major release.
10
+ * @deprecationExpectedRemoval v10
9
11
  */
10
12
 
11
- /** A controlled hook for managing tour state, such as the currently active tour step. */
13
+ /**
14
+ * A controlled hook for managing tour state, such as the currently active tour step.
15
+ * @see {@link https://linear.app/coinbase/issue/CDS-1878 CDS-1878} for planned refactor to make this API platform agnostic.
16
+ */
12
17
  export const useTour = _ref => {
13
18
  let {
14
19
  steps,
@@ -39,9 +44,9 @@ export const useTour = _ref => {
39
44
  await ((_activeTourStep$onIna2 = activeTourStep.onInactive) === null || _activeTourStep$onIna2 === void 0 ? void 0 : _activeTourStep$onIna2.call(activeTourStep));
40
45
  }, [activeTourStep, onChange]);
41
46
  const goNextTourStep = useCallback(async () => {
42
- var _steps$at;
47
+ var _steps;
43
48
  // If no active step, or active step is the last step, or there are 0 - 1 steps, do nothing
44
- if (!activeTourStep || activeTourStep.id === ((_steps$at = steps.at(-1)) === null || _steps$at === void 0 ? void 0 : _steps$at.id) || steps.length < 2) return;
49
+ if (!activeTourStep || activeTourStep.id === ((_steps = steps[steps.length - 1]) === null || _steps === void 0 ? void 0 : _steps.id) || steps.length < 2) return;
45
50
  const activeStepIndex = steps.findIndex(step => step.id === activeTourStep.id);
46
51
  // Find next step that isn't disabled
47
52
  for (let i = activeStepIndex + 1; i < steps.length; i++) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@coinbase/cds-common",
3
- "version": "8.62.0",
3
+ "version": "8.66.0",
4
4
  "description": "Coinbase Design System - Common",
5
5
  "repository": {
6
6
  "type": "git",
@@ -38,9 +38,9 @@
38
38
  "react-dom": "^18.3.1"
39
39
  },
40
40
  "dependencies": {
41
- "@coinbase/cds-icons": "^5.13.0",
42
- "@coinbase/cds-illustrations": "^4.36.0",
43
- "@coinbase/cds-mcp-server": "^8.62.0",
41
+ "@coinbase/cds-icons": "^5.15.0",
42
+ "@coinbase/cds-illustrations": "^4.38.0",
43
+ "@coinbase/cds-mcp-server": "^8.66.0",
44
44
  "@coinbase/cds-utils": "^2.3.5",
45
45
  "@modelcontextprotocol/sdk": "^1.13.1",
46
46
  "d3-array": "^3.2.4",