@coinbase/cds-web 9.25.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 CHANGED
@@ -1,3 +1,9 @@
1
+ ## 9.26.0 (2026-09-02)
2
+
3
+ ### 🚀 Features
4
+
5
+ - feat: support control font customization
6
+
1
7
  ## 9.25.0 (2026-09-02)
2
8
 
3
9
  ### 🚀 Features
@@ -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;AAO1E,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,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,EA6Jd,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"}
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"}
@@ -48,6 +48,7 @@ export declare const Switch: React.NamedExoticComponent<
48
48
  'color' | 'value'
49
49
  > &
50
50
  import('@coinbase/cds-common').SharedProps &
51
+ import('@coinbase/cds-common').TypographyProps &
51
52
  Partial<
52
53
  Pick<
53
54
  import('../system').InteractableBaseProps,
@@ -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-body)",
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: "body",
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.25.0",
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.25.0",
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",