@coinbase/cds-web 8.58.0 → 8.59.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,12 @@ All notable changes to this project will be documented in this file.
8
8
 
9
9
  <!-- template-start -->
10
10
 
11
+ ## 8.59.0 (3/27/2026 PST)
12
+
13
+ #### 🚀 Updates
14
+
15
+ - Suppoer controlSize on Checkbox and Radio. [[#546](https://github.com/coinbase/cds/pull/546)]
16
+
11
17
  ## 8.58.0 (3/25/2026 PST)
12
18
 
13
19
  #### 🚀 Updates
@@ -12,6 +12,11 @@ export type CheckboxBaseProps<CheckboxValue extends string> = ControlBaseProps<C
12
12
  * @default 100
13
13
  */
14
14
  borderWidth?: ThemeVars.BorderWidth;
15
+ /**
16
+ * Sets the outer checkbox control size in pixels.
17
+ * @default theme.controlSize.checkboxSize
18
+ */
19
+ controlSize?: number;
15
20
  };
16
21
  export type CheckboxProps<CheckboxValue extends string> = CheckboxBaseProps<CheckboxValue>;
17
22
  declare const CheckboxWithRef: <CheckboxValue extends string>(
@@ -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,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"}
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;AAsB3D,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;IACpC;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,aAAa,CAAC,aAAa,SAAS,MAAM,IAAI,iBAAiB,CAAC,aAAa,CAAC,CAAC;AAE3F,QAAA,MAAM,eAAe,EA8Ef,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"}
@@ -12,6 +12,11 @@ export type CheckboxCellBaseProps<CheckboxValue extends string> = Omit<
12
12
  'onChange' | 'title' | 'children' | 'iconStyle' | 'labelStyle' | 'checked'
13
13
  > & {
14
14
  checked?: boolean;
15
+ /**
16
+ * Sets the outer checkbox control size in pixels.
17
+ * @default theme.controlSize.checkboxSize
18
+ */
19
+ controlSize?: number;
15
20
  title: React.ReactNode;
16
21
  description?: React.ReactNode;
17
22
  onChange?: (inputChangeEvent: React.ChangeEvent<HTMLInputElement>) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"CheckboxCell.d.ts","sourceRoot":"","sources":["../../src/controls/CheckboxCell.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAoC,MAAM,OAAO,CAAC;AAC7E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAKjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAa,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAIrE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAGlD,MAAM,MAAM,qBAAqB,CAAC,aAAa,SAAS,MAAM,IAAI,IAAI,CACpE,cAAc,CAAC,OAAO,CAAC,EACvB,OAAO,GAAG,UAAU,CACrB,GACC,IAAI,CACF,gBAAgB,CAAC,aAAa,CAAC,EAC/B,UAAU,GAAG,OAAO,GAAG,UAAU,GAAG,WAAW,GAAG,YAAY,GAAG,SAAS,CAC3E,GAAG;IACF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,QAAQ,CAAC,EAAE,CAAC,gBAAgB,EAAE,KAAK,CAAC,WAAW,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IAC3E,SAAS,CAAC,EAAE,cAAc,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,CAAC,EAAE,cAAc,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACzC,uFAAuF;IACvF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6FAA6F;IAC7F,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEJ,MAAM,MAAM,iBAAiB,CAAC,aAAa,SAAS,MAAM,IACxD,qBAAqB,CAAC,aAAa,CAAC,GAAG;IACrC,UAAU,CAAC,EAAE;QACX,mBAAmB;QACnB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,uCAAuC;QACvC,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,yBAAyB;QACzB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,+BAA+B;QAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,gCAAgC;QAChC,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,CAAC;IACF,MAAM,CAAC,EAAE;QACP,mBAAmB;QACnB,IAAI,CAAC,EAAE,aAAa,CAAC;QACrB,uCAAuC;QACvC,iBAAiB,CAAC,EAAE,aAAa,CAAC;QAClC,yBAAyB;QACzB,KAAK,CAAC,EAAE,aAAa,CAAC;QACtB,+BAA+B;QAC/B,WAAW,CAAC,EAAE,aAAa,CAAC;QAC5B,gCAAgC;QAChC,gBAAgB,CAAC,EAAE,aAAa,CAAC;KAClC,CAAC;CACH,CAAC;AASJ,QAAA,MAAM,mBAAmB,EAmHnB,CAAC,aAAa,SAAS,MAAM,EACjC,KAAK,EAAE,iBAAiB,CAAC,aAAa,CAAC,GAAG;IAAE,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;CAAE,KAC5E,KAAK,CAAC,YAAY,CAAC;AAExB,eAAO,MAAM,YAAY,EAAgC,OAAO,mBAAmB,GACjF,KAAK,CAAC,mBAAmB,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
1
+ {"version":3,"file":"CheckboxCell.d.ts","sourceRoot":"","sources":["../../src/controls/CheckboxCell.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAoC,MAAM,OAAO,CAAC;AAC7E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAKjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAa,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAIrE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAGlD,MAAM,MAAM,qBAAqB,CAAC,aAAa,SAAS,MAAM,IAAI,IAAI,CACpE,cAAc,CAAC,OAAO,CAAC,EACvB,OAAO,GAAG,UAAU,CACrB,GACC,IAAI,CACF,gBAAgB,CAAC,aAAa,CAAC,EAC/B,UAAU,GAAG,OAAO,GAAG,UAAU,GAAG,WAAW,GAAG,YAAY,GAAG,SAAS,CAC3E,GAAG;IACF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,QAAQ,CAAC,EAAE,CAAC,gBAAgB,EAAE,KAAK,CAAC,WAAW,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IAC3E,SAAS,CAAC,EAAE,cAAc,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,CAAC,EAAE,cAAc,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACzC,uFAAuF;IACvF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6FAA6F;IAC7F,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEJ,MAAM,MAAM,iBAAiB,CAAC,aAAa,SAAS,MAAM,IACxD,qBAAqB,CAAC,aAAa,CAAC,GAAG;IACrC,UAAU,CAAC,EAAE;QACX,mBAAmB;QACnB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,uCAAuC;QACvC,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,yBAAyB;QACzB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,+BAA+B;QAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,gCAAgC;QAChC,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,CAAC;IACF,MAAM,CAAC,EAAE;QACP,mBAAmB;QACnB,IAAI,CAAC,EAAE,aAAa,CAAC;QACrB,uCAAuC;QACvC,iBAAiB,CAAC,EAAE,aAAa,CAAC;QAClC,yBAAyB;QACzB,KAAK,CAAC,EAAE,aAAa,CAAC;QACtB,+BAA+B;QAC/B,WAAW,CAAC,EAAE,aAAa,CAAC;QAC5B,gCAAgC;QAChC,gBAAgB,CAAC,EAAE,aAAa,CAAC;KAClC,CAAC;CACH,CAAC;AASJ,QAAA,MAAM,mBAAmB,EAqHnB,CAAC,aAAa,SAAS,MAAM,EACjC,KAAK,EAAE,iBAAiB,CAAC,aAAa,CAAC,GAAG;IAAE,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;CAAE,KAC5E,KAAK,CAAC,YAAY,CAAC;AAExB,eAAO,MAAM,YAAY,EAAgC,OAAO,mBAAmB,GACjF,KAAK,CAAC,mBAAmB,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
@@ -12,6 +12,16 @@ export type RadioBaseProps<RadioValue extends string> = ControlBaseProps<RadioVa
12
12
  * @default 100
13
13
  */
14
14
  borderWidth?: ThemeVars.BorderWidth;
15
+ /**
16
+ * Sets the outer radio control size in pixels.
17
+ * @default theme.controlSize.radioSize
18
+ */
19
+ controlSize?: number;
20
+ /**
21
+ * Sets the inner dot size in pixels.
22
+ * @default 2/3 of controlSize
23
+ */
24
+ dotSize?: number;
15
25
  };
16
26
  export type RadioProps<RadioValue extends string> = RadioBaseProps<RadioValue>;
17
27
  declare const RadioWithRef: <RadioValue extends string>(
@@ -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;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"}
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;IACpC;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,UAAU,CAAC,UAAU,SAAS,MAAM,IAAI,cAAc,CAAC,UAAU,CAAC,CAAC;AAE/E,QAAA,MAAM,YAAY,EAwDZ,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"}
@@ -1 +1 @@
1
- @layer cds{.checkboxCss-c198zdvk{position:relative;width:var(--controlSize-checkboxSize);height:var(--controlSize-checkboxSize);border-style:solid;-webkit-transition: border-color, background-color 0.1s linear;transition: border-color, background-color 0.1s linear;}.checkboxCss-c198zdvk:focus{outline:none;}.checkboxCss-c198zdvk:focus-visible{outline-style:solid;outline-width:2px;outline-color:var(--color-bgPrimary);outline-offset:2px;}}
1
+ @layer cds{.checkboxCss-c198zdvk{position:relative;border-style:solid;-webkit-transition: border-color, background-color 0.1s linear;transition: border-color, background-color 0.1s linear;}.checkboxCss-c198zdvk:focus{outline:none;}.checkboxCss-c198zdvk:focus-visible{outline-style:solid;outline-width:2px;outline-color:var(--color-bgPrimary);outline-offset:2px;}}
@@ -1,4 +1,4 @@
1
- const _excluded = ["children", "checked", "indeterminate", "controlColor", "background", "borderColor", "borderRadius", "borderWidth", "elevation"];
1
+ const _excluded = ["children", "checked", "indeterminate", "controlColor", "background", "borderColor", "borderRadius", "borderWidth", "elevation", "controlSize"];
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; }
@@ -26,12 +26,13 @@ const CheckboxWithRef = /*#__PURE__*/forwardRef(function CheckboxWithRef(_ref, r
26
26
  borderColor = checked || indeterminate ? 'bgPrimary' : 'bgLineHeavy',
27
27
  borderRadius = 100,
28
28
  borderWidth = 100,
29
- elevation
29
+ elevation,
30
+ controlSize
30
31
  } = _ref,
31
32
  props = _objectWithoutProperties(_ref, _excluded);
32
33
  const filled = checked || indeterminate;
33
34
  const theme = useTheme();
34
- const checkboxSize = theme.controlSize.checkboxSize;
35
+ const checkboxSize = controlSize !== null && controlSize !== void 0 ? controlSize : theme.controlSize.checkboxSize;
35
36
  const iconPadding = checkboxSize / 5;
36
37
  const iconSize = checkboxSize - iconPadding;
37
38
  const innerContainerMotionProps = useMotionProps({
@@ -67,6 +68,10 @@ const CheckboxWithRef = /*#__PURE__*/forwardRef(function CheckboxWithRef(_ref, r
67
68
  flexShrink: 0,
68
69
  justifyContent: "center",
69
70
  role: "presentation",
71
+ style: {
72
+ width: checkboxSize,
73
+ height: checkboxSize
74
+ },
70
75
  testID: "checkbox-outer",
71
76
  children: /*#__PURE__*/_jsx(motion.div, _objectSpread(_objectSpread({}, innerContainerMotionProps), {}, {
72
77
  "data-testid": "checkbox-inner",
@@ -1,4 +1,4 @@
1
- const _excluded = ["title", "description", "checked", "onChange", "disabled", "columnGap", "rowGap", "padding", "borderWidth", "borderRadius", "titleId", "descriptionId", "testID", "style", "value", "noScaleOnPress", "readOnly", "indeterminate", "className", "classNames", "styles"];
1
+ const _excluded = ["title", "description", "checked", "onChange", "disabled", "columnGap", "rowGap", "padding", "borderWidth", "borderRadius", "titleId", "descriptionId", "testID", "style", "value", "noScaleOnPress", "readOnly", "indeterminate", "controlSize", "className", "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; }
@@ -35,6 +35,7 @@ const CheckboxCellWithRef = /*#__PURE__*/forwardRef(function CheckboxCell(_ref,
35
35
  noScaleOnPress = true,
36
36
  readOnly,
37
37
  indeterminate,
38
+ controlSize,
38
39
  className,
39
40
  classNames,
40
41
  styles
@@ -78,6 +79,7 @@ const CheckboxCellWithRef = /*#__PURE__*/forwardRef(function CheckboxCell(_ref,
78
79
  "aria-describedby": ariaDescribedBy,
79
80
  "aria-labelledby": ariaLabelledBy,
80
81
  checked: !!checked,
82
+ controlSize: controlSize,
81
83
  disabled: disabled,
82
84
  indeterminate: indeterminate,
83
85
  onChange: onChange,
@@ -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-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;}}
1
+ @layer cds{.baseCss-b1rohblb{position:relative;-webkit-appearance:radio;-moz-appearance:radio;appearance:radio;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;}}
@@ -1,4 +1,4 @@
1
- const _excluded = ["children", "controlColor", "checked", "background", "borderColor", "borderWidth", "elevation"];
1
+ const _excluded = ["children", "controlColor", "checked", "background", "borderColor", "borderWidth", "elevation", "controlSize", "dotSize"];
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; }
@@ -17,7 +17,8 @@ import { jsx as _jsx } from "react/jsx-runtime";
17
17
  const DotSvg = _ref => {
18
18
  let {
19
19
  color = 'black',
20
- width = 20
20
+ width = 20,
21
+ dotSize = 2 * width / 3
21
22
  } = _ref;
22
23
  return /*#__PURE__*/_jsx("svg", {
23
24
  fill: "none",
@@ -28,7 +29,7 @@ const DotSvg = _ref => {
28
29
  cx: "50%",
29
30
  cy: "50%",
30
31
  fill: color,
31
- r: width / 3
32
+ r: dotSize / 2
32
33
  })
33
34
  });
34
35
  };
@@ -41,11 +42,13 @@ const RadioWithRef = /*#__PURE__*/forwardRef(function RadioWithRef(_ref2, ref) {
41
42
  background = 'bg',
42
43
  borderColor = checked ? controlColor : 'bgLineHeavy',
43
44
  borderWidth = 100,
44
- elevation
45
+ elevation,
46
+ controlSize,
47
+ dotSize
45
48
  } = _ref2,
46
49
  props = _objectWithoutProperties(_ref2, _excluded);
47
50
  const theme = useTheme();
48
- const iconWidth = theme.controlSize.radioSize;
51
+ const iconWidth = controlSize !== null && controlSize !== void 0 ? controlSize : theme.controlSize.radioSize;
49
52
  const innerContainerMotionProps = useMotionProps({
50
53
  enterConfigs: [checkboxOpacityEnterConfig, checkboxScaleEnterConfig],
51
54
  exitConfigs: [checkboxOpacityExitConfig, checkboxScaleExitConfig],
@@ -68,6 +71,10 @@ const RadioWithRef = /*#__PURE__*/forwardRef(function RadioWithRef(_ref2, ref) {
68
71
  flexShrink: 0,
69
72
  justifyContent: "center",
70
73
  role: "presentation",
74
+ style: {
75
+ width: iconWidth,
76
+ height: iconWidth
77
+ },
71
78
  children: /*#__PURE__*/_jsx(motion.div, _objectSpread(_objectSpread({}, innerContainerMotionProps), {}, {
72
79
  children: checked &&
73
80
  /*#__PURE__*/
@@ -77,6 +84,7 @@ const RadioWithRef = /*#__PURE__*/forwardRef(function RadioWithRef(_ref2, ref) {
77
84
  testID: "radio-icon",
78
85
  children: /*#__PURE__*/_jsx(DotSvg, {
79
86
  color: "currentColor",
87
+ dotSize: dotSize,
80
88
  width: iconWidth
81
89
  })
82
90
  })
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@coinbase/cds-web",
3
- "version": "8.58.0",
3
+ "version": "8.59.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.58.0",
210
+ "@coinbase/cds-common": "^8.59.0",
211
211
  "@coinbase/cds-icons": "^5.13.0",
212
- "@coinbase/cds-illustrations": "^4.35.0",
212
+ "@coinbase/cds-illustrations": "^4.36.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",