@coinbase/cds-web 8.22.1 → 8.23.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,18 @@ All notable changes to this project will be documented in this file.
8
8
 
9
9
  <!-- template-start -->
10
10
 
11
+ ## 8.23.0 (12/1/2025 PST)
12
+
13
+ #### 🚀 Updates
14
+
15
+ - Enable custom text label for "First" and "Last" buttons of Pagination. [[#192](https://github.com/coinbase/cds/pull/192)] [DX-4997]
16
+
17
+ ## 8.22.2 (11/26/2025 PST)
18
+
19
+ #### 🐞 Fixes
20
+
21
+ - Wrap Select labels instead of truncating them. [[#179](https://github.com/coinbase/cds/pull/179)]
22
+
11
23
  ## 8.22.1 (11/24/2025 PST)
12
24
 
13
25
  #### 🐞 Fixes
@@ -1 +1 @@
1
- {"version":3,"file":"DefaultSelectControl.d.ts","sourceRoot":"","sources":["../../../src/alpha/select/DefaultSelectControl.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyD,MAAM,OAAO,CAAC;AAe9E,OAAO,KAAK,EAAE,kBAAkB,EAAgB,UAAU,EAAE,MAAM,UAAU,CAAC;AAyB7E,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;AAyUxB,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;AAe9E,OAAO,KAAK,EAAE,kBAAkB,EAAgB,UAAU,EAAE,MAAM,UAAU,CAAC;AAyB7E,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;AA0UxB,eAAO,MAAM,oBAAoB,EAAoC,wBAAwB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"DefaultSelectOption.d.ts","sourceRoot":"","sources":["../../../src/alpha/select/DefaultSelectOption.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAwD9D,KAAK,uBAAuB,GAAG,CAAC,IAAI,SAAS,UAAU,EAAE,iBAAiB,SAAS,MAAM,GAAG,MAAM,EAChG,KAAK,EAAE,iBAAiB,CAAC,IAAI,EAAE,iBAAiB,CAAC,GAAG;IAAE,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;CAAE,KACvF,KAAK,CAAC,YAAY,CAAC;AAoHxB,eAAO,MAAM,mBAAmB,EAAmC,uBAAuB,CAAC"}
1
+ {"version":3,"file":"DefaultSelectOption.d.ts","sourceRoot":"","sources":["../../../src/alpha/select/DefaultSelectOption.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAwD9D,KAAK,uBAAuB,GAAG,CAAC,IAAI,SAAS,UAAU,EAAE,iBAAiB,SAAS,MAAM,GAAG,MAAM,EAChG,KAAK,EAAE,iBAAiB,CAAC,IAAI,EAAE,iBAAiB,CAAC,GAAG;IAAE,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;CAAE,KACvF,KAAK,CAAC,YAAY,CAAC;AAmHxB,eAAO,MAAM,mBAAmB,EAAmC,uBAAuB,CAAC"}
@@ -53,6 +53,10 @@ export type PaginationBaseProps = Omit<PaginationOptions, 'initialPage'> & {
53
53
  firstButton?: string;
54
54
  lastButton?: string;
55
55
  };
56
+ /** Custom label for the first page button */
57
+ firstPageButtonLabel?: string;
58
+ /** Custom label for the last page button */
59
+ lastPageButtonLabel?: string;
56
60
  /** Custom accessibility labels for navigation buttons */
57
61
  accessibilityLabels?: {
58
62
  next?: string;
@@ -96,6 +100,8 @@ export declare const Pagination: ({
96
100
  PaginationPageButtonComponent,
97
101
  PaginationNavigationButtonComponent,
98
102
  PaginationEllipsisComponent,
103
+ firstPageButtonLabel,
104
+ lastPageButtonLabel,
99
105
  ...props
100
106
  }: PaginationProps) => import('react/jsx-runtime').JSX.Element;
101
107
  //# sourceMappingURL=Pagination.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Pagination.d.ts","sourceRoot":"","sources":["../../src/pagination/Pagination.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Pagination.d.ts","sourceRoot":"","sources":["../../src/pagination/Pagination.tsx"],"names":[],"mappings":"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"}
@@ -165,12 +165,13 @@ const DefaultSelectControlComponent = /*#__PURE__*/memo(/*#__PURE__*/forwardRef(
165
165
  borderWidth: 0,
166
166
  className: cx(noFocusOutlineCss, classNames === null || classNames === void 0 ? void 0 : classNames.controlInputNode),
167
167
  disabled: disabled,
168
+ flexGrow: 1,
168
169
  focusable: false,
169
170
  minHeight: labelVariant === 'inside' ? LABEL_VARIANT_INSIDE_HEIGHT : compact ? COMPACT_HEIGHT : DEFAULT_HEIGHT,
171
+ minWidth: 0,
170
172
  onClick: () => setOpen(s => !s),
171
173
  paddingStart: 1,
172
174
  style: styles === null || styles === void 0 ? void 0 : styles.controlInputNode,
173
- width: "100%",
174
175
  children: [!!startNode && /*#__PURE__*/_jsx(HStack, {
175
176
  alignItems: "center",
176
177
  className: classNames === null || classNames === void 0 ? void 0 : classNames.controlStartNode,
@@ -183,8 +184,8 @@ const DefaultSelectControlComponent = /*#__PURE__*/memo(/*#__PURE__*/forwardRef(
183
184
  }), shouldShowCompactLabel ? /*#__PURE__*/_jsx(HStack, {
184
185
  alignItems: "center",
185
186
  height: "100%",
186
- maxWidth: "40%",
187
187
  paddingStart: 1,
188
+ width: "40%",
188
189
  children: /*#__PURE__*/_jsx(InputLabel, {
189
190
  color: "fg",
190
191
  overflow: "truncate",
@@ -194,7 +195,7 @@ const DefaultSelectControlComponent = /*#__PURE__*/memo(/*#__PURE__*/forwardRef(
194
195
  alignItems: "center",
195
196
  borderRadius: 200,
196
197
  justifyContent: "space-between",
197
- width: "100%",
198
+ width: shouldShowCompactLabel ? '60%' : '100%',
198
199
  children: /*#__PURE__*/_jsx(HStack, {
199
200
  ref: valueNodeContainerRef,
200
201
  alignItems: "center",
@@ -41,7 +41,7 @@ const DefaultSelectOptionComponent = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((
41
41
  as: "div",
42
42
  className: classNames === null || classNames === void 0 ? void 0 : classNames.optionLabel,
43
43
  font: "headline",
44
- overflow: "truncate",
44
+ overflow: "wrap",
45
45
  style: styles === null || styles === void 0 ? void 0 : styles.optionLabel,
46
46
  children: label
47
47
  }) : label, [label, classNames === null || classNames === void 0 ? void 0 : classNames.optionLabel, styles === null || styles === void 0 ? void 0 : styles.optionLabel]);
@@ -76,7 +76,6 @@ const DefaultSelectOptionComponent = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((
76
76
  className: cx(multiline ? multilineTextCss : undefined, classNames === null || classNames === void 0 ? void 0 : classNames.optionCell),
77
77
  end: end,
78
78
  innerSpacing: selectCellSpacingConfig.innerSpacing,
79
- maxHeight: compact ? 56 : 64,
80
79
  media: media,
81
80
  minHeight: compact ? 40 : 56,
82
81
  outerSpacing: selectCellSpacingConfig.outerSpacing,
@@ -1,4 +1,4 @@
1
- const _excluded = ["totalPages", "activePage", "onChange", "disabled", "showFirstLastButtons", "siblingCount", "boundaryCount", "accessibilityLabel", "testID", "testIDMap", "accessibilityLabels", "PaginationPageButtonComponent", "PaginationNavigationButtonComponent", "PaginationEllipsisComponent"];
1
+ const _excluded = ["totalPages", "activePage", "onChange", "disabled", "showFirstLastButtons", "siblingCount", "boundaryCount", "accessibilityLabel", "testID", "testIDMap", "accessibilityLabels", "PaginationPageButtonComponent", "PaginationNavigationButtonComponent", "PaginationEllipsisComponent", "firstPageButtonLabel", "lastPageButtonLabel"];
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; }
@@ -30,7 +30,9 @@ export const Pagination = _ref => {
30
30
  accessibilityLabels,
31
31
  PaginationPageButtonComponent = DefaultPaginationPageButton,
32
32
  PaginationNavigationButtonComponent = DefaultPaginationNavigationButton,
33
- PaginationEllipsisComponent = DefaultPaginationEllipsis
33
+ PaginationEllipsisComponent = DefaultPaginationEllipsis,
34
+ firstPageButtonLabel = 'First',
35
+ lastPageButtonLabel = 'Last'
34
36
  } = _ref,
35
37
  props = _objectWithoutProperties(_ref, _excluded);
36
38
  const {
@@ -90,7 +92,7 @@ export const Pagination = _ref => {
90
92
  disabled: activePage === 1 || disabled,
91
93
  onClick: handleGoFirstPage,
92
94
  testID: testIDMap === null || testIDMap === void 0 ? void 0 : testIDMap.firstButton,
93
- children: "First"
95
+ children: firstPageButtonLabel
94
96
  }) : /*#__PURE__*/_jsx(PaginationNavigationButtonComponent, {
95
97
  accessibilityLabel: (_accessibilityLabels$2 = accessibilityLabels === null || accessibilityLabels === void 0 ? void 0 : accessibilityLabels.first) !== null && _accessibilityLabels$2 !== void 0 ? _accessibilityLabels$2 : 'First page',
96
98
  direction: "first",
@@ -129,7 +131,7 @@ export const Pagination = _ref => {
129
131
  disabled: activePage === totalPages || disabled,
130
132
  onClick: handleGoLastPage,
131
133
  testID: testIDMap === null || testIDMap === void 0 ? void 0 : testIDMap.lastButton,
132
- children: "Last"
134
+ children: lastPageButtonLabel
133
135
  }) : /*#__PURE__*/_jsx(PaginationNavigationButtonComponent, {
134
136
  accessibilityLabel: (_accessibilityLabels$6 = accessibilityLabels === null || accessibilityLabels === void 0 ? void 0 : accessibilityLabels.last) !== null && _accessibilityLabels$6 !== void 0 ? _accessibilityLabels$6 : 'Last page',
135
137
  direction: "last",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@coinbase/cds-web",
3
- "version": "8.22.1",
3
+ "version": "8.23.0",
4
4
  "description": "Coinbase Design System - Web",
5
5
  "repository": {
6
6
  "type": "git",
@@ -147,7 +147,7 @@
147
147
  "react-dom": "^18.3.1"
148
148
  },
149
149
  "dependencies": {
150
- "@coinbase/cds-common": "^8.22.1",
150
+ "@coinbase/cds-common": "^8.23.0",
151
151
  "@coinbase/cds-icons": "^5.7.0",
152
152
  "@coinbase/cds-illustrations": "^4.28.0",
153
153
  "@coinbase/cds-lottie-files": "^3.3.3",