@coinbase/cds-web 8.56.0 → 8.56.1

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.56.1 (3/24/2026 PST)
12
+
13
+ #### 🐞 Fixes
14
+
15
+ - Fixed issue when typing space in combobox input closes the popover by mistake. [[#523](https://github.com/coinbase/cds/pull/523)]
16
+
11
17
  ## 8.56.0 (3/23/2026 PST)
12
18
 
13
19
  #### 🚀 Updates
@@ -1 +1 @@
1
- {"version":3,"file":"DefaultComboboxControl.d.ts","sourceRoot":"","sources":["../../../src/alpha/combobox/DefaultComboboxControl.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,wBAAwB,EAAwB,MAAM,YAAY,CAAC;AAOjF,eAAO,MAAM,sBAAsB,EAkI9B,wBAAwB,CAAC"}
1
+ {"version":3,"file":"DefaultComboboxControl.d.ts","sourceRoot":"","sources":["../../../src/alpha/combobox/DefaultComboboxControl.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,wBAAwB,EAAwB,MAAM,YAAY,CAAC;AAOjF,eAAO,MAAM,sBAAsB,EAmI9B,wBAAwB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"DefaultSelectControl.d.ts","sourceRoot":"","sources":["../../../src/alpha/select/DefaultSelectControl.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyD,MAAM,OAAO,CAAC;AAgB9E,OAAO,EAEL,KAAK,kBAAkB,EAEvB,KAAK,UAAU,EAChB,MAAM,UAAU,CAAC;AAkClB,KAAK,wBAAwB,GAAG,CAC9B,IAAI,SAAS,UAAU,EACvB,iBAAiB,SAAS,MAAM,GAAG,MAAM,EAEzC,KAAK,EAAE,kBAAkB,CAAC,IAAI,EAAE,iBAAiB,CAAC,GAAG;IAAE,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;CAAE,KAClF,KAAK,CAAC,YAAY,CAAC;AAsbxB,eAAO,MAAM,oBAAoB,EAAoC,wBAAwB,CAAC"}
1
+ {"version":3,"file":"DefaultSelectControl.d.ts","sourceRoot":"","sources":["../../../src/alpha/select/DefaultSelectControl.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyD,MAAM,OAAO,CAAC;AAgB9E,OAAO,EAEL,KAAK,kBAAkB,EAEvB,KAAK,UAAU,EAChB,MAAM,UAAU,CAAC;AAkClB,KAAK,wBAAwB,GAAG,CAC9B,IAAI,SAAS,UAAU,EACvB,iBAAiB,SAAS,MAAM,GAAG,MAAM,EAEzC,KAAK,EAAE,kBAAkB,CAAC,IAAI,EAAE,iBAAiB,CAAC,GAAG;IACnD,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;CAC9B,KACE,KAAK,CAAC,YAAY,CAAC;AA0bxB,eAAO,MAAM,oBAAoB,EAAoC,wBAAwB,CAAC"}
@@ -62,6 +62,7 @@ export const DefaultComboboxControl = /*#__PURE__*/memo(_ref => {
62
62
  compact: compact,
63
63
  open: open,
64
64
  options: options,
65
+ role: "combobox",
65
66
  setOpen: setOpen,
66
67
  value: value
67
68
  }, props), {}, {
@@ -1,4 +1,4 @@
1
- const _excluded = ["type", "options", "value", "onChange", "open", "placeholder", "disabled", "setOpen", "variant", "helperText", "label", "labelVariant", "contentNode", "startNode", "endNode", "compact", "blendStyles", "align", "bordered", "borderWidth", "focusedBorderWidth", "maxSelectedOptionsToShow", "hiddenSelectedOptionsLabel", "removeSelectedOptionAccessibilityLabel", "accessibilityLabel", "ariaHaspopup", "tabIndex", "styles", "classNames"];
1
+ const _excluded = ["role", "type", "options", "value", "onChange", "open", "placeholder", "disabled", "setOpen", "variant", "helperText", "label", "labelVariant", "contentNode", "startNode", "endNode", "compact", "blendStyles", "align", "bordered", "borderWidth", "focusedBorderWidth", "maxSelectedOptionsToShow", "hiddenSelectedOptionsLabel", "removeSelectedOptionAccessibilityLabel", "accessibilityLabel", "ariaHaspopup", "tabIndex", "styles", "classNames"];
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; }
@@ -38,6 +38,7 @@ const variantColor = {
38
38
  };
39
39
  const DefaultSelectControlComponent = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((_ref, ref) => {
40
40
  let {
41
+ role = 'button',
41
42
  type,
42
43
  options,
43
44
  value,
@@ -72,7 +73,6 @@ const DefaultSelectControlComponent = /*#__PURE__*/memo(/*#__PURE__*/forwardRef(
72
73
  const isMultiSelect = type === 'multi';
73
74
  const shouldShowCompactLabel = compact && label && !isMultiSelect;
74
75
  const hasValue = value !== null && !(Array.isArray(value) && value.length === 0);
75
-
76
76
  // Map of options to their values
77
77
  // If multiple options share the same value, the first occurrence wins (matches native HTML select behavior)
78
78
  const optionsMap = useMemo(() => {
@@ -226,14 +226,13 @@ const DefaultSelectControlComponent = /*#__PURE__*/memo(/*#__PURE__*/forwardRef(
226
226
  children: singleValueContent
227
227
  }) : singleValueContent;
228
228
  }, [hasValue, isMultiSelect, singleValueContent, align, value, maxSelectedOptionsToShow, hiddenSelectedOptionsLabel, optionsMap, removeSelectedOptionAccessibilityLabel, handleUnselectValue]);
229
- const inputNode = useMemo(() =>
230
- /*#__PURE__*/
231
- // We don't offer control over setting the role since this must always be a button
232
- _jsxs(Pressable, {
229
+ const inputNode = useMemo(() => /*#__PURE__*/_jsxs(Pressable, {
233
230
  ref: controlPressableRef,
234
231
  noScaleOnPress: true,
235
232
  accessibilityLabel: computedControlAccessibilityLabel,
233
+ "aria-expanded": open,
236
234
  "aria-haspopup": ariaHaspopup,
235
+ as: role === 'combobox' ? 'div' : 'button',
237
236
  background: "transparent",
238
237
  blendStyles: interactableBlendStyles,
239
238
  borderWidth: 0,
@@ -246,6 +245,7 @@ const DefaultSelectControlComponent = /*#__PURE__*/memo(/*#__PURE__*/forwardRef(
246
245
  minWidth: 0,
247
246
  onClick: () => setOpen(s => !s),
248
247
  paddingStart: 1,
248
+ role: role,
249
249
  style: styles === null || styles === void 0 ? void 0 : styles.controlInputNode,
250
250
  tabIndex: tabIndex,
251
251
  children: [!!startNode && /*#__PURE__*/_jsx(HStack, {
@@ -286,7 +286,7 @@ const DefaultSelectControlComponent = /*#__PURE__*/memo(/*#__PURE__*/forwardRef(
286
286
  children: [valueNode, contentNode]
287
287
  })
288
288
  })]
289
- }), [computedControlAccessibilityLabel, ariaHaspopup, interactableBlendStyles, classNames === null || classNames === void 0 ? void 0 : classNames.controlInputNode, classNames === null || classNames === void 0 ? void 0 : classNames.controlStartNode, classNames === null || classNames === void 0 ? void 0 : classNames.controlValueNode, disabled, labelVariant, compact, styles === null || styles === void 0 ? void 0 : styles.controlInputNode, styles === null || styles === void 0 ? void 0 : styles.controlStartNode, styles === null || styles === void 0 ? void 0 : styles.controlValueNode, tabIndex, startNode, shouldShowCompactLabel, labelNode, align, isMultiSelect, valueNode, contentNode, setOpen]);
289
+ }), [computedControlAccessibilityLabel, ariaHaspopup, open, role, interactableBlendStyles, classNames === null || classNames === void 0 ? void 0 : classNames.controlInputNode, classNames === null || classNames === void 0 ? void 0 : classNames.controlStartNode, classNames === null || classNames === void 0 ? void 0 : classNames.controlValueNode, disabled, labelVariant, compact, styles === null || styles === void 0 ? void 0 : styles.controlInputNode, styles === null || styles === void 0 ? void 0 : styles.controlStartNode, styles === null || styles === void 0 ? void 0 : styles.controlValueNode, tabIndex, startNode, shouldShowCompactLabel, labelNode, align, isMultiSelect, valueNode, contentNode, setOpen]);
290
290
  const endNode = useMemo(() => /*#__PURE__*/_jsx(Pressable, {
291
291
  "aria-hidden": true,
292
292
  flexShrink: 0,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@coinbase/cds-web",
3
- "version": "8.56.0",
3
+ "version": "8.56.1",
4
4
  "description": "Coinbase Design System - Web",
5
5
  "repository": {
6
6
  "type": "git",
@@ -207,7 +207,7 @@
207
207
  "react-dom": "^18.3.1"
208
208
  },
209
209
  "dependencies": {
210
- "@coinbase/cds-common": "^8.56.0",
210
+ "@coinbase/cds-common": "^8.56.1",
211
211
  "@coinbase/cds-icons": "^5.13.0",
212
212
  "@coinbase/cds-illustrations": "^4.35.0",
213
213
  "@coinbase/cds-lottie-files": "^3.3.4",