@coinbase/cds-web 9.24.0 → 9.26.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 +12 -0
- package/dts/banner/Banner.d.ts +5 -0
- package/dts/banner/Banner.d.ts.map +1 -1
- package/dts/controls/Control.d.ts +2 -0
- package/dts/controls/Control.d.ts.map +1 -1
- package/dts/controls/Switch.d.ts +1 -0
- package/esm/banner/Banner.js +3 -2
- package/esm/controls/Control.js +16 -5
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
## 9.26.0 (2026-09-02)
|
|
2
|
+
|
|
3
|
+
### 🚀 Features
|
|
4
|
+
|
|
5
|
+
- feat: support control font customization
|
|
6
|
+
|
|
7
|
+
## 9.25.0 (2026-09-02)
|
|
8
|
+
|
|
9
|
+
### 🚀 Features
|
|
10
|
+
|
|
11
|
+
- Add new prop (startIconColor) to Banner to support customizing the color of the icon from its default variant-based color.
|
|
12
|
+
|
|
1
13
|
## 9.24.0 (2026-08-31)
|
|
2
14
|
|
|
3
15
|
### 🚀 Features
|
package/dts/banner/Banner.d.ts
CHANGED
|
@@ -36,6 +36,11 @@ export type BannerBaseProps = SharedProps & {
|
|
|
36
36
|
startIcon: IconName;
|
|
37
37
|
/** Whether the start icon is active */
|
|
38
38
|
startIconActive?: boolean;
|
|
39
|
+
/**
|
|
40
|
+
* Color of the start icon.
|
|
41
|
+
* @default based on the banner variant
|
|
42
|
+
*/
|
|
43
|
+
startIconColor?: ThemeVars.Color;
|
|
39
44
|
/** Provide a CDS Link component to be used as a primary action. It will inherit colors depending on the provided variant */
|
|
40
45
|
primaryAction?: React.ReactNode;
|
|
41
46
|
/** Provide a CDS Link component to be used as a secondary action. It will inherit colors depending on the provided tone */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Banner.d.ts","sourceRoot":"","sources":["../../src/banner/Banner.tsx"],"names":[],"mappings":"AAAA,OAAO,KAQN,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAGjE,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AACpG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAC;AAQ1E,OAAO,EAAU,KAAK,oBAAoB,EAAE,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEvF,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE9E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AASpD,eAAO,MAAM,uBAAuB,EAAE,eAAe,CAAC,gBAAgB,CAAC,CAAC,eAAe,CAI7E,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,gBAAgB;IAC3B,qFAAqF;;IAErF,yDAAyD;;IAEzD,0BAA0B;;IAE1B,qEAAqE;;IAErE,oEAAoE;;IAEpE,0BAA0B;;IAE1B,2BAA2B;;IAE3B,sCAAsC;;CAE9B,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,WAAW,GAAG;IAC1C,2GAA2G;IAC3G,OAAO,EAAE,aAAa,CAAC;IACvB,6CAA6C;IAC7C,SAAS,EAAE,QAAQ,CAAC;IACpB,uCAAuC;IACvC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,4HAA4H;IAC5H,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAChC,2HAA2H;IAC3H,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAClC,2DAA2D;IAC3D,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,wBAAwB;IACxB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B;;;SAGK;IACL,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,gFAAgF;IAChF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gCAAgC;IAChC,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB;;;SAGK;IACL,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC,uDAAuD;IACvD,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC;;OAEG;IACH,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC;;;SAGK;IACL,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;SAGK;IACL,YAAY,CAAC,EAAE,SAAS,CAAC,YAAY,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,eAAe,GACvC,mBAAmB,CAAC,OAAO,gBAAgB,CAAC,GAC5C,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,CAAC;AAEhE,eAAO,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"Banner.d.ts","sourceRoot":"","sources":["../../src/banner/Banner.tsx"],"names":[],"mappings":"AAAA,OAAO,KAQN,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAGjE,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AACpG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAC;AAQ1E,OAAO,EAAU,KAAK,oBAAoB,EAAE,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEvF,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE9E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AASpD,eAAO,MAAM,uBAAuB,EAAE,eAAe,CAAC,gBAAgB,CAAC,CAAC,eAAe,CAI7E,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,gBAAgB;IAC3B,qFAAqF;;IAErF,yDAAyD;;IAEzD,0BAA0B;;IAE1B,qEAAqE;;IAErE,oEAAoE;;IAEpE,0BAA0B;;IAE1B,2BAA2B;;IAE3B,sCAAsC;;CAE9B,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,WAAW,GAAG;IAC1C,2GAA2G;IAC3G,OAAO,EAAE,aAAa,CAAC;IACvB,6CAA6C;IAC7C,SAAS,EAAE,QAAQ,CAAC;IACpB,uCAAuC;IACvC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;OAGG;IACH,cAAc,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC;IACjC,4HAA4H;IAC5H,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAChC,2HAA2H;IAC3H,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAClC,2DAA2D;IAC3D,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,wBAAwB;IACxB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B;;;SAGK;IACL,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,gFAAgF;IAChF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gCAAgC;IAChC,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB;;;SAGK;IACL,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC,uDAAuD;IACvD,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC;;OAEG;IACH,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC;;;SAGK;IACL,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;SAGK;IACL,YAAY,CAAC,EAAE,SAAS,CAAC,YAAY,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,eAAe,GACvC,mBAAmB,CAAC,OAAO,gBAAgB,CAAC,GAC5C,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,CAAC;AAEhE,eAAO,MAAM,MAAM,4FA2PlB,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import type { SharedProps } from '@coinbase/cds-common/types/SharedProps';
|
|
3
|
+
import type { TypographyProps } from '@coinbase/cds-common/types/TextBaseProps';
|
|
3
4
|
import { type InteractableBaseProps } from '../system/Interactable';
|
|
4
5
|
import type { FilteredHTMLAttributes, StylesAndClassNames } from '../types';
|
|
5
6
|
/**
|
|
@@ -21,6 +22,7 @@ export type ControlBaseProps<ControlValue extends string> = FilteredHTMLAttribut
|
|
|
21
22
|
'value' | 'color'
|
|
22
23
|
> &
|
|
23
24
|
SharedProps &
|
|
25
|
+
TypographyProps &
|
|
24
26
|
Partial<
|
|
25
27
|
Pick<
|
|
26
28
|
InteractableBaseProps,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Control.d.ts","sourceRoot":"","sources":["../../src/controls/Control.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4C,MAAM,OAAO,CAAC;AAIjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAC;
|
|
1
|
+
{"version":3,"file":"Control.d.ts","sourceRoot":"","sources":["../../src/controls/Control.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4C,MAAM,OAAO,CAAC;AAIjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAOhF,OAAO,EAAgB,KAAK,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAClF,OAAO,KAAK,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAI5E;;;GAGG;AACH,eAAO,MAAM,iBAAiB;IAC5B,sEAAsE;;IAEtE,wCAAwC;;IAExC,yCAAyC;;IAEzC,4BAA4B;;CAEpB,CAAC;AAyCX,MAAM,MAAM,gBAAgB,CAAC,YAAY,SAAS,MAAM,IAAI,sBAAsB,CAChF,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EAC3C,OAAO,GAAG,OAAO,CAClB,GACC,WAAW,GACX,eAAe,GACf,OAAO,CACL,IAAI,CACF,qBAAqB,EACnB,YAAY,GACZ,aAAa,GACb,cAAc,GACd,aAAa,GACb,OAAO,GACP,WAAW,GACX,WAAW,GACX,OAAO,CACV,CACF,GAAG;IACF,oCAAoC;IACpC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,sCAAsC;IACtC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,gCAAgC;IAChC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iEAAiE;IACjE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,uDAAuD;IACvD,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,kDAAkD;IAClD,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,qHAAqH;IACrH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,iCAAiC;IACjC,SAAS,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAChC,kCAAkC;IAClC,UAAU,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAClC,CAAC;AAEJ,MAAM,MAAM,YAAY,CAAC,YAAY,SAAS,MAAM,IAAI,gBAAgB,CAAC,YAAY,CAAC,GACpF,mBAAmB,CAAC,OAAO,iBAAiB,CAAC,GAAG;IAC9C,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,CAAC;AAEJ,QAAA,MAAM,cAAc,EAmLd,CAAC,YAAY,SAAS,MAAM,EAChC,KAAK,EAAE,YAAY,CAAC,YAAY,CAAC,GAAG;IAAE,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;CAAE,KACtE,KAAK,CAAC,YAAY,CAAC;AAExB,eAAO,MAAM,OAAO,EAA2B,OAAO,cAAc,GAClE,KAAK,CAAC,mBAAmB,CAAC,OAAO,cAAc,CAAC,CAAC"}
|
package/dts/controls/Switch.d.ts
CHANGED
package/esm/banner/Banner.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const _excluded = ["variant", "startIcon", "startIconActive", "onClose", "primaryAction", "secondaryAction", "title", "children", "showDismiss", "testID", "style", "className", "numberOfLines", "label", "styleVariant", "startIconAccessibilityLabel", "closeAccessibilityLabel", "borderRadius", "margin", "marginY", "marginX", "marginTop", "marginBottom", "marginStart", "marginEnd", "width", "classNames", "styles"];
|
|
1
|
+
const _excluded = ["variant", "startIcon", "startIconActive", "startIconColor", "onClose", "primaryAction", "secondaryAction", "title", "children", "showDismiss", "testID", "style", "className", "numberOfLines", "label", "styleVariant", "startIconAccessibilityLabel", "closeAccessibilityLabel", "borderRadius", "margin", "marginY", "marginX", "marginTop", "marginBottom", "marginStart", "marginEnd", "width", "classNames", "styles"];
|
|
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; }
|
|
@@ -54,6 +54,7 @@ export const Banner = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((_props, ref) =>
|
|
|
54
54
|
variant,
|
|
55
55
|
startIcon,
|
|
56
56
|
startIconActive,
|
|
57
|
+
startIconColor,
|
|
57
58
|
onClose,
|
|
58
59
|
primaryAction,
|
|
59
60
|
secondaryAction,
|
|
@@ -164,7 +165,7 @@ export const Banner = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((_props, ref) =>
|
|
|
164
165
|
children: /*#__PURE__*/_jsx(Icon, {
|
|
165
166
|
accessibilityLabel: startIconAccessibilityLabel,
|
|
166
167
|
active: startIconActive,
|
|
167
|
-
color: iconColor,
|
|
168
|
+
color: startIconColor !== null && startIconColor !== void 0 ? startIconColor : iconColor,
|
|
168
169
|
name: startIcon,
|
|
169
170
|
size: "s",
|
|
170
171
|
testID: "".concat(testID, "-icon")
|
package/esm/controls/Control.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const _excluded = ["type", "checked", "disabled", "indeterminate", "readOnly", "required", "value", "children", "label", "aria-labelledby", "background", "borderColor", "borderRadius", "borderWidth", "color", "elevation", "testID", "iconStyle", "labelStyle", "className", "style", "classNames", "styles"];
|
|
1
|
+
const _excluded = ["type", "checked", "disabled", "indeterminate", "readOnly", "required", "value", "children", "label", "aria-labelledby", "background", "borderColor", "borderRadius", "borderWidth", "color", "elevation", "testID", "iconStyle", "labelStyle", "className", "style", "classNames", "styles", "font", "fontFamily", "fontSize", "fontWeight", "lineHeight", "textTransform"];
|
|
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; }
|
|
@@ -62,7 +62,13 @@ const ControlWithRef = /*#__PURE__*/forwardRef(function ControlWithRef(_props, r
|
|
|
62
62
|
className,
|
|
63
63
|
style,
|
|
64
64
|
classNames,
|
|
65
|
-
styles
|
|
65
|
+
styles,
|
|
66
|
+
font = 'body',
|
|
67
|
+
fontFamily = font,
|
|
68
|
+
fontSize = font,
|
|
69
|
+
fontWeight = font,
|
|
70
|
+
lineHeight = font,
|
|
71
|
+
textTransform
|
|
66
72
|
} = mergedProps,
|
|
67
73
|
htmlProps = _objectWithoutProperties(mergedProps, _excluded);
|
|
68
74
|
if (isDevelopment() && !children && !ariaLabelledby) {
|
|
@@ -121,14 +127,19 @@ const ControlWithRef = /*#__PURE__*/forwardRef(function ControlWithRef(_props, r
|
|
|
121
127
|
gap: 1,
|
|
122
128
|
children: [/*#__PURE__*/_jsx(Box, {
|
|
123
129
|
alignItems: "center",
|
|
124
|
-
height: "var(--lineHeight-
|
|
130
|
+
height: "var(--lineHeight-".concat(lineHeight, ")"),
|
|
125
131
|
role: "presentation",
|
|
126
132
|
children: iconElement
|
|
127
133
|
}), typeof label === 'string' ? /*#__PURE__*/_jsx(Text, {
|
|
128
134
|
color: color,
|
|
129
135
|
disabled: disabled || readOnly,
|
|
130
|
-
font:
|
|
136
|
+
font: font,
|
|
137
|
+
fontFamily: fontFamily,
|
|
138
|
+
fontSize: fontSize,
|
|
139
|
+
fontWeight: fontWeight,
|
|
131
140
|
id: labelId,
|
|
141
|
+
lineHeight: lineHeight,
|
|
142
|
+
textTransform: textTransform,
|
|
132
143
|
children: label
|
|
133
144
|
}) : /*#__PURE__*/_jsx(Box, {
|
|
134
145
|
id: labelId,
|
|
@@ -136,7 +147,7 @@ const ControlWithRef = /*#__PURE__*/forwardRef(function ControlWithRef(_props, r
|
|
|
136
147
|
})]
|
|
137
148
|
})
|
|
138
149
|
});
|
|
139
|
-
}, [label, iconElement, inputId, labelStyle, color, disabled, readOnly, labelId, classNames === null || classNames === void 0 ? void 0 : classNames.label, styles === null || styles === void 0 ? void 0 : styles.label]);
|
|
150
|
+
}, [label, iconElement, inputId, labelStyle, color, disabled, readOnly, labelId, classNames === null || classNames === void 0 ? void 0 : classNames.label, styles === null || styles === void 0 ? void 0 : styles.label, font, fontFamily, fontSize, fontWeight, lineHeight, textTransform]);
|
|
140
151
|
|
|
141
152
|
// If no label is provided, consumer should wrap the checkbox with <label> or provide a value for the aria-labelledby prop.
|
|
142
153
|
return /*#__PURE__*/_jsx(Box, {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@coinbase/cds-web",
|
|
3
|
-
"version": "9.
|
|
3
|
+
"version": "9.26.0",
|
|
4
4
|
"description": "Coinbase Design System - Web",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -227,7 +227,7 @@
|
|
|
227
227
|
"react-dom": "^18.0.0 || ~19.1.2"
|
|
228
228
|
},
|
|
229
229
|
"dependencies": {
|
|
230
|
-
"@coinbase/cds-common": "^9.
|
|
230
|
+
"@coinbase/cds-common": "^9.26.0",
|
|
231
231
|
"@coinbase/cds-icons": "^5.22.0",
|
|
232
232
|
"@coinbase/cds-illustrations": "^4.48.0",
|
|
233
233
|
"@coinbase/cds-lottie-files": "^3.3.4",
|