@coinbase/cds-web 8.52.1 → 8.53.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 +16 -0
- package/dts/controls/Checkbox.d.ts +5 -3
- package/dts/controls/Checkbox.d.ts.map +1 -1
- package/dts/controls/Radio.d.ts +9 -2
- package/dts/controls/Radio.d.ts.map +1 -1
- package/dts/controls/SegmentedControl.d.ts +3 -0
- package/dts/controls/SegmentedControl.d.ts.map +1 -1
- package/esm/controls/Checkbox.js +1 -2
- package/esm/controls/Radio.css +1 -1
- package/esm/controls/Radio.js +3 -1
- package/esm/controls/SegmentedControl.js +4 -0
- package/package.json +4 -4
package/CHANGELOG.md
CHANGED
|
@@ -8,6 +8,22 @@ All notable changes to this project will be documented in this file.
|
|
|
8
8
|
|
|
9
9
|
<!-- template-start -->
|
|
10
10
|
|
|
11
|
+
## 8.53.0 (3/16/2026 PST)
|
|
12
|
+
|
|
13
|
+
#### 🚀 Updates
|
|
14
|
+
|
|
15
|
+
- Feat: update Checkbox borderRadius to match design. [[#509](https://github.com/coinbase/cds/pull/509)]
|
|
16
|
+
|
|
17
|
+
#### 📘 Misc
|
|
18
|
+
|
|
19
|
+
- Deprecate SegmentedControl. [[#493](https://github.com/coinbase/cds/pull/493)]
|
|
20
|
+
|
|
21
|
+
## 8.52.2 (3/11/2026 PST)
|
|
22
|
+
|
|
23
|
+
#### 🐞 Fixes
|
|
24
|
+
|
|
25
|
+
- Configure control borderWidth and controlColor. [[#457](https://github.com/coinbase/cds/pull/457)]
|
|
26
|
+
|
|
11
27
|
## 8.52.1 (3/11/2026 PST)
|
|
12
28
|
|
|
13
29
|
#### 🐞 Fixes
|
|
@@ -1,17 +1,19 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import type { ThemeVars } from '@coinbase/cds-common/core/theme';
|
|
3
3
|
import { type ControlBaseProps } from './Control';
|
|
4
|
-
export type
|
|
5
|
-
/**
|
|
4
|
+
export type CheckboxBaseProps<CheckboxValue extends string> = ControlBaseProps<CheckboxValue> & {
|
|
5
|
+
/**
|
|
6
|
+
* Sets the checked/active color of the checkbox.
|
|
6
7
|
* @default fgInverse
|
|
7
8
|
*/
|
|
8
9
|
controlColor?: ThemeVars.Color;
|
|
9
10
|
/**
|
|
10
|
-
*
|
|
11
|
+
* Sets the border width of the checkbox.
|
|
11
12
|
* @default 100
|
|
12
13
|
*/
|
|
13
14
|
borderWidth?: ThemeVars.BorderWidth;
|
|
14
15
|
};
|
|
16
|
+
export type CheckboxProps<CheckboxValue extends string> = CheckboxBaseProps<CheckboxValue>;
|
|
15
17
|
declare const CheckboxWithRef: <CheckboxValue extends string>(
|
|
16
18
|
props: CheckboxProps<CheckboxValue> & {
|
|
17
19
|
ref?: React.Ref<HTMLInputElement>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Checkbox.d.ts","sourceRoot":"","sources":["../../src/controls/Checkbox.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoC,MAAM,OAAO,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAejE,OAAO,EAAW,KAAK,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAyB3D,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"Checkbox.d.ts","sourceRoot":"","sources":["../../src/controls/Checkbox.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoC,MAAM,OAAO,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAejE,OAAO,EAAW,KAAK,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAyB3D,MAAM,MAAM,iBAAiB,CAAC,aAAa,SAAS,MAAM,IAAI,gBAAgB,CAAC,aAAa,CAAC,GAAG;IAC9F;;;OAGG;IACH,YAAY,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC;IAC/B;;;OAGG;IACH,WAAW,CAAC,EAAE,SAAS,CAAC,WAAW,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,aAAa,CAAC,aAAa,SAAS,MAAM,IAAI,iBAAiB,CAAC,aAAa,CAAC,CAAC;AAE3F,QAAA,MAAM,eAAe,EA4Ef,CAAC,aAAa,SAAS,MAAM,EACjC,KAAK,EAAE,aAAa,CAAC,aAAa,CAAC,GAAG;IAAE,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;CAAE,KACxE,KAAK,CAAC,YAAY,CAAC;AAExB,eAAO,MAAM,QAAQ,EAA4B,OAAO,eAAe,GACrE,KAAK,CAAC,mBAAmB,CAAC,OAAO,eAAe,CAAC,CAAC"}
|
package/dts/controls/Radio.d.ts
CHANGED
|
@@ -1,12 +1,19 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import type { ThemeVars } from '@coinbase/cds-common/core/theme';
|
|
3
3
|
import { type ControlBaseProps } from './Control';
|
|
4
|
-
export type
|
|
5
|
-
/**
|
|
4
|
+
export type RadioBaseProps<RadioValue extends string> = ControlBaseProps<RadioValue> & {
|
|
5
|
+
/**
|
|
6
|
+
* Sets the checked/active color of the radio.
|
|
6
7
|
* @default bgPrimary
|
|
7
8
|
*/
|
|
8
9
|
controlColor?: ThemeVars.Color;
|
|
10
|
+
/**
|
|
11
|
+
* Sets the border width of the radio.
|
|
12
|
+
* @default 100
|
|
13
|
+
*/
|
|
14
|
+
borderWidth?: ThemeVars.BorderWidth;
|
|
9
15
|
};
|
|
16
|
+
export type RadioProps<RadioValue extends string> = RadioBaseProps<RadioValue>;
|
|
10
17
|
declare const RadioWithRef: <RadioValue extends string>(
|
|
11
18
|
props: RadioProps<RadioValue> & {
|
|
12
19
|
ref?: React.Ref<HTMLInputElement>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Radio.d.ts","sourceRoot":"","sources":["../../src/controls/Radio.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2B,MAAM,OAAO,CAAC;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAcjE,OAAO,EAAW,KAAK,gBAAgB,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"Radio.d.ts","sourceRoot":"","sources":["../../src/controls/Radio.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2B,MAAM,OAAO,CAAC;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAcjE,OAAO,EAAW,KAAK,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAsC3D,MAAM,MAAM,cAAc,CAAC,UAAU,SAAS,MAAM,IAAI,gBAAgB,CAAC,UAAU,CAAC,GAAG;IACrF;;;OAGG;IACH,YAAY,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC;IAC/B;;;OAGG;IACH,WAAW,CAAC,EAAE,SAAS,CAAC,WAAW,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,UAAU,CAAC,UAAU,SAAS,MAAM,IAAI,cAAc,CAAC,UAAU,CAAC,CAAC;AAE/E,QAAA,MAAM,YAAY,EAqDZ,CAAC,UAAU,SAAS,MAAM,EAC9B,KAAK,EAAE,UAAU,CAAC,UAAU,CAAC,GAAG;IAAE,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;CAAE,KAClE,KAAK,CAAC,YAAY,CAAC;AAExB,eAAO,MAAM,KAAK,EAAyB,OAAO,YAAY,GAC5D,KAAK,CAAC,mBAAmB,CAAC,OAAO,YAAY,CAAC,CAAC"}
|
|
@@ -42,6 +42,9 @@ type IconOptionProps = {
|
|
|
42
42
|
/** The options to render as an array of values and IconNames */
|
|
43
43
|
options: IconOptions;
|
|
44
44
|
};
|
|
45
|
+
/**
|
|
46
|
+
* @deprecated SegmentedControl is deprecated and will be removed in a future version. Please use Tabs or SegmentedTabs instead.
|
|
47
|
+
*/
|
|
45
48
|
export declare const SegmentedControl: React.MemoExoticComponent<
|
|
46
49
|
React.ForwardRefExoticComponent<SegmentedControlProps & React.RefAttributes<HTMLInputElement>>
|
|
47
50
|
>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SegmentedControl.d.ts","sourceRoot":"","sources":["../../src/controls/SegmentedControl.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmE,MAAM,OAAO,CAAC;AAGxF,OAAO,KAAK,EACV,QAAQ,EACR,QAAQ,EACR,wBAAwB,EACxB,WAAW,EACZ,MAAM,4BAA4B,CAAC;AA2IpC,MAAM,MAAM,qBAAqB,GAAG;IAClC,yBAAyB;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qCAAqC;IACrC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,gDAAgD;IAChD,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,GAAG,CAAC,eAAe,GAAG,eAAe,CAAC,GACrC,WAAW,CAAC;AAEd,MAAM,MAAM,WAAW,GAAG,SAAS,UAAU,EAAE,CAAC;AAChD,MAAM,MAAM,WAAW,GAAG,SAAS,UAAU,EAAE,CAAC;AAEhD,KAAK,UAAU,GAAG;IAChB,uBAAuB;IACvB,KAAK,EAAE,MAAM,CAAC;CACf,GAAG,IAAI,CAAC,wBAAwB,EAAE,oBAAoB,CAAC,CAAC;AAEzD,KAAK,UAAU,GAAG;IAChB,iDAAiD;IACjD,KAAK,EAAE,MAAM,CAAC;CACf,GAAG,UAAU,CAAC;AAEf,KAAK,eAAe,GAAG;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6DAA6D;IAC7D,OAAO,EAAE,WAAW,CAAC;CACtB,CAAC;AAEF,KAAK,UAAU,GAAG;IAChB,gDAAgD;IAChD,KAAK,EAAE,QAAQ,CAAC;IAChB,iCAAiC;IACjC,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,GAAG,UAAU,CAAC;AAEf,KAAK,eAAe,GAAG;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,QAAQ,CAAC;IACnB,iEAAiE;IACjE,OAAO,EAAE,WAAW,CAAC;CACtB,CAAC;AAyDF,eAAO,MAAM,gBAAgB,2HAA6C,CAAC"}
|
|
1
|
+
{"version":3,"file":"SegmentedControl.d.ts","sourceRoot":"","sources":["../../src/controls/SegmentedControl.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmE,MAAM,OAAO,CAAC;AAGxF,OAAO,KAAK,EACV,QAAQ,EACR,QAAQ,EACR,wBAAwB,EACxB,WAAW,EACZ,MAAM,4BAA4B,CAAC;AA2IpC,MAAM,MAAM,qBAAqB,GAAG;IAClC,yBAAyB;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qCAAqC;IACrC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,gDAAgD;IAChD,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,GAAG,CAAC,eAAe,GAAG,eAAe,CAAC,GACrC,WAAW,CAAC;AAEd,MAAM,MAAM,WAAW,GAAG,SAAS,UAAU,EAAE,CAAC;AAChD,MAAM,MAAM,WAAW,GAAG,SAAS,UAAU,EAAE,CAAC;AAEhD,KAAK,UAAU,GAAG;IAChB,uBAAuB;IACvB,KAAK,EAAE,MAAM,CAAC;CACf,GAAG,IAAI,CAAC,wBAAwB,EAAE,oBAAoB,CAAC,CAAC;AAEzD,KAAK,UAAU,GAAG;IAChB,iDAAiD;IACjD,KAAK,EAAE,MAAM,CAAC;CACf,GAAG,UAAU,CAAC;AAEf,KAAK,eAAe,GAAG;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6DAA6D;IAC7D,OAAO,EAAE,WAAW,CAAC;CACtB,CAAC;AAEF,KAAK,UAAU,GAAG;IAChB,gDAAgD;IAChD,KAAK,EAAE,QAAQ,CAAC;IAChB,iCAAiC;IACjC,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,GAAG,UAAU,CAAC;AAEf,KAAK,eAAe,GAAG;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,QAAQ,CAAC;IACnB,iEAAiE;IACjE,OAAO,EAAE,WAAW,CAAC;CACtB,CAAC;AAyDF;;GAEG;AACH,eAAO,MAAM,gBAAgB,2HAA6C,CAAC"}
|
package/esm/controls/Checkbox.js
CHANGED
|
@@ -24,7 +24,7 @@ const CheckboxWithRef = /*#__PURE__*/forwardRef(function CheckboxWithRef(_ref, r
|
|
|
24
24
|
controlColor = 'fgInverse',
|
|
25
25
|
background = checked || indeterminate ? 'bgPrimary' : 'bg',
|
|
26
26
|
borderColor = checked || indeterminate ? 'bgPrimary' : 'bgLineHeavy',
|
|
27
|
-
borderRadius,
|
|
27
|
+
borderRadius = 100,
|
|
28
28
|
borderWidth = 100,
|
|
29
29
|
elevation
|
|
30
30
|
} = _ref,
|
|
@@ -51,7 +51,6 @@ const CheckboxWithRef = /*#__PURE__*/forwardRef(function CheckboxWithRef(_ref, r
|
|
|
51
51
|
ref: ref,
|
|
52
52
|
"aria-label": props.accessibilityLabel,
|
|
53
53
|
borderRadius: borderRadius,
|
|
54
|
-
borderWidth: borderWidth,
|
|
55
54
|
checked: checked,
|
|
56
55
|
elevation: elevation,
|
|
57
56
|
label: children,
|
package/esm/controls/Radio.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
@layer cds{.baseCss-b1rohblb{position:relative;-webkit-appearance:radio;-moz-appearance:radio;appearance:radio;width:var(--controlSize-radioSize);height:var(--controlSize-radioSize);border-style:solid;border-
|
|
1
|
+
@layer cds{.baseCss-b1rohblb{position:relative;-webkit-appearance:radio;-moz-appearance:radio;appearance:radio;width:var(--controlSize-radioSize);height:var(--controlSize-radioSize);border-style:solid;border-radius:var(--borderRadius-1000);-webkit-transition:border-color 0.2s linear;transition:border-color 0.2s linear;}.baseCss-b1rohblb:focus{outline:none;}.baseCss-b1rohblb:focus-visible{outline-style:solid;outline-width:2px;outline-color:var(--color-bgPrimary);outline-offset:2px;}}
|
package/esm/controls/Radio.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const _excluded = ["children", "controlColor", "checked", "background", "borderColor", "elevation"];
|
|
1
|
+
const _excluded = ["children", "controlColor", "checked", "background", "borderColor", "borderWidth", "elevation"];
|
|
2
2
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
3
3
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
4
4
|
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
@@ -40,6 +40,7 @@ const RadioWithRef = /*#__PURE__*/forwardRef(function RadioWithRef(_ref2, ref) {
|
|
|
40
40
|
checked = false,
|
|
41
41
|
background = 'bg',
|
|
42
42
|
borderColor = checked ? controlColor : 'bgLineHeavy',
|
|
43
|
+
borderWidth = 100,
|
|
43
44
|
elevation
|
|
44
45
|
} = _ref2,
|
|
45
46
|
props = _objectWithoutProperties(_ref2, _excluded);
|
|
@@ -61,6 +62,7 @@ const RadioWithRef = /*#__PURE__*/forwardRef(function RadioWithRef(_ref2, ref) {
|
|
|
61
62
|
alignItems: "center",
|
|
62
63
|
background: background,
|
|
63
64
|
borderColor: borderColor,
|
|
65
|
+
borderWidth: borderWidth,
|
|
64
66
|
className: baseCss,
|
|
65
67
|
"data-filled": checked,
|
|
66
68
|
flexShrink: 0,
|
|
@@ -104,6 +104,10 @@ function SegmentedControlInternal(props, ref) {
|
|
|
104
104
|
})
|
|
105
105
|
});
|
|
106
106
|
}
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* @deprecated SegmentedControl is deprecated and will be removed in a future version. Please use Tabs or SegmentedTabs instead.
|
|
110
|
+
*/
|
|
107
111
|
export const SegmentedControl = /*#__PURE__*/memo(/*#__PURE__*/forwardRef(SegmentedControlInternal));
|
|
108
112
|
SegmentedControl.displayName = 'SegmentedControl';
|
|
109
113
|
import "./SegmentedControl.css";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@coinbase/cds-web",
|
|
3
|
-
"version": "8.
|
|
3
|
+
"version": "8.53.0",
|
|
4
4
|
"description": "Coinbase Design System - Web",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -207,9 +207,9 @@
|
|
|
207
207
|
"react-dom": "^18.3.1"
|
|
208
208
|
},
|
|
209
209
|
"dependencies": {
|
|
210
|
-
"@coinbase/cds-common": "^8.
|
|
211
|
-
"@coinbase/cds-icons": "^5.
|
|
212
|
-
"@coinbase/cds-illustrations": "^4.
|
|
210
|
+
"@coinbase/cds-common": "^8.53.0",
|
|
211
|
+
"@coinbase/cds-icons": "^5.13.0",
|
|
212
|
+
"@coinbase/cds-illustrations": "^4.33.0",
|
|
213
213
|
"@coinbase/cds-lottie-files": "^3.3.4",
|
|
214
214
|
"@coinbase/cds-utils": "^2.3.5",
|
|
215
215
|
"@floating-ui/react-dom": "^2.1.1",
|