@carbon/react 1.57.0-rc.0 → 1.57.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.
Files changed (52) hide show
  1. package/.playwright/INTERNAL_AVT_REPORT_DO_NOT_USE.json +971 -936
  2. package/es/components/ComboBox/ComboBox.js +1 -0
  3. package/es/components/ContainedList/ContainedList.d.ts +7 -3
  4. package/es/components/ContainedList/ContainedList.js +3 -2
  5. package/es/components/ContainedList/ContainedListItem/ContainedListItem.js +1 -2
  6. package/es/components/ContainedList/ContainedListItem/index.d.ts +9 -0
  7. package/es/components/ContainedList/index.d.ts +11 -0
  8. package/es/components/ContainedList/index.js +13 -0
  9. package/es/components/DataTable/stories/examples/TableToolbarFilter.d.ts +51 -0
  10. package/es/components/DatePicker/DatePicker.d.ts +5 -4
  11. package/es/components/DatePicker/plugins/rangePlugin.js +5 -6
  12. package/es/components/Dialog/index.d.ts +31 -0
  13. package/es/components/ListBox/next/ListBoxTrigger.js +4 -3
  14. package/es/components/MultiSelect/FilterableMultiSelect.d.ts +177 -0
  15. package/es/components/MultiSelect/FilterableMultiSelect.js +388 -313
  16. package/es/components/MultiSelect/MultiSelect.js +1 -2
  17. package/es/components/MultiSelect/MultiSelectPropTypes.d.ts +62 -0
  18. package/es/components/MultiSelect/index.d.ts +10 -0
  19. package/es/components/MultiSelect/index.js +2 -0
  20. package/es/components/Pagination/Pagination.js +9 -9
  21. package/es/components/RadioButton/RadioButton.d.ts +4 -0
  22. package/es/components/RadioButton/RadioButton.js +7 -1
  23. package/es/components/RadioButtonGroup/RadioButtonGroup.d.ts +4 -0
  24. package/es/components/RadioButtonGroup/RadioButtonGroup.js +7 -1
  25. package/es/components/TimePicker/TimePicker.js +1 -1
  26. package/es/index.js +3 -1
  27. package/lib/components/ComboBox/ComboBox.js +1 -0
  28. package/lib/components/ContainedList/ContainedList.d.ts +7 -3
  29. package/lib/components/ContainedList/ContainedList.js +3 -2
  30. package/lib/components/ContainedList/ContainedListItem/ContainedListItem.js +1 -2
  31. package/lib/components/ContainedList/ContainedListItem/index.d.ts +9 -0
  32. package/lib/components/ContainedList/index.d.ts +11 -0
  33. package/lib/components/ContainedList/index.js +19 -0
  34. package/lib/components/DataTable/stories/examples/TableToolbarFilter.d.ts +51 -0
  35. package/lib/components/DatePicker/DatePicker.d.ts +5 -4
  36. package/lib/components/DatePicker/plugins/rangePlugin.js +5 -6
  37. package/lib/components/Dialog/index.d.ts +31 -0
  38. package/lib/components/ListBox/next/ListBoxTrigger.js +4 -3
  39. package/lib/components/MultiSelect/FilterableMultiSelect.d.ts +177 -0
  40. package/lib/components/MultiSelect/FilterableMultiSelect.js +387 -312
  41. package/lib/components/MultiSelect/MultiSelect.js +1 -2
  42. package/lib/components/MultiSelect/MultiSelectPropTypes.d.ts +62 -0
  43. package/lib/components/MultiSelect/index.d.ts +10 -0
  44. package/lib/components/MultiSelect/index.js +2 -0
  45. package/lib/components/Pagination/Pagination.js +9 -9
  46. package/lib/components/RadioButton/RadioButton.d.ts +4 -0
  47. package/lib/components/RadioButton/RadioButton.js +7 -1
  48. package/lib/components/RadioButtonGroup/RadioButtonGroup.d.ts +4 -0
  49. package/lib/components/RadioButtonGroup/RadioButtonGroup.js +7 -1
  50. package/lib/components/TimePicker/TimePicker.js +1 -1
  51. package/lib/index.js +4 -2
  52. package/package.json +7 -7
@@ -626,6 +626,5 @@ MultiSelect.propTypes = {
626
626
  */
627
627
  warnText: PropTypes__default["default"].node
628
628
  };
629
- var MultiSelect$1 = MultiSelect;
630
629
 
631
- exports["default"] = MultiSelect$1;
630
+ exports["default"] = MultiSelect;
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Copyright IBM Corp. 2016, 2023
3
+ *
4
+ * This source code is licensed under the Apache-2.0 license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+ import PropTypes from 'prop-types';
8
+ export declare const sortingPropTypes: {
9
+ /**
10
+ * Provide a compare function that is used to determine the ordering of
11
+ * options. `compareItems` has the following function signature:
12
+ *
13
+ * compareFunction :
14
+ * (itemA: string, itemB: string, { locale: string }) => number
15
+ */
16
+ compareItems: PropTypes.Requireable<(...args: any[]) => any>;
17
+ /**
18
+ * Provide a method that sorts all options in the control. Overriding this
19
+ * prop means that you also have to handle the sort logic for selected versus
20
+ * un-selected items. If you just want to control ordering, consider the
21
+ * `compareItems` prop instead.
22
+ *
23
+ * `sortItems` has the following signature:
24
+ *
25
+ * sortItems :
26
+ * (items: Array<Item>, {
27
+ * selectedItems: Array<Item>,
28
+ * itemToString: Item => string,
29
+ * compareItems: (itemA: string, itemB: string, {
30
+ * locale: string
31
+ * }) => number,
32
+ * locale: string,
33
+ * }) => Array<Item>
34
+ */
35
+ sortItems: PropTypes.Requireable<(...args: any[]) => any>;
36
+ };
37
+ export interface ItemBase {
38
+ disabled?: boolean;
39
+ }
40
+ export interface SortingPropTypes<Item extends ItemBase> {
41
+ /**
42
+ * Provide a compare function that is used
43
+ * to determine the ordering of options.
44
+ */
45
+ compareItems(itemA: string, itemB: string, ctx: {
46
+ locale: string;
47
+ }): number;
48
+ /**
49
+ * Provide a method that sorts all options in the control. Overriding this
50
+ * prop means that you also have to handle the sort logic for selected versus
51
+ * un-selected items. If you just want to control ordering, consider the
52
+ * `compareItems` prop instead.
53
+ */
54
+ sortItems(items: Item[], state: {
55
+ selectedItems: Item[];
56
+ itemToString(item: Item): string;
57
+ compareItems(itemA: string, itemB: string, ctx: {
58
+ locale: string;
59
+ }): number;
60
+ locale: string;
61
+ }): Item[];
62
+ }
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Copyright IBM Corp. 2016, 2023
3
+ *
4
+ * This source code is licensed under the Apache-2.0 license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+ import MultiSelect from './MultiSelect';
8
+ import { default as FilterableMultiSelect } from './FilterableMultiSelect';
9
+ export { FilterableMultiSelect, MultiSelect };
10
+ export default MultiSelect;
@@ -14,6 +14,8 @@ var MultiSelect = require('./MultiSelect.js');
14
14
  var FilterableMultiSelect = require('./FilterableMultiSelect.js');
15
15
 
16
16
  FilterableMultiSelect["default"].displayName = 'MultiSelect.Filterable';
17
+ // @ts-expect-error: The attribute indeed does not exist on the object,
18
+ // but since it is already deprecated, we do not have to fix it.
17
19
  MultiSelect["default"].Filterable = FilterableMultiSelect["default"];
18
20
  if (process.env.NODE_ENV !== "production") {
19
21
  deprecateFieldOnObject.deprecateFieldOnObject(MultiSelect["default"], 'Filterable', FilterableMultiSelect["default"]);
@@ -78,10 +78,10 @@ const Pagination = /*#__PURE__*/React__default["default"].forwardRef(function Pa
78
78
  pageSize: controlledPageSize,
79
79
  pageSizeInputDisabled,
80
80
  pageSizes: controlledPageSizes,
81
- pageText = (page, pagesUnknown) => `page ${pagesUnknown ? '' : page}`,
81
+ pageText = page => `page ${page}`,
82
82
  pagesUnknown = false,
83
83
  size = 'md',
84
- totalItems = 1,
84
+ totalItems,
85
85
  ...rest
86
86
  } = _ref;
87
87
  const prefix = usePrefix.usePrefix();
@@ -103,7 +103,7 @@ const Pagination = /*#__PURE__*/React__default["default"].forwardRef(function Pa
103
103
  [`${prefix}--pagination--${size}`]: size,
104
104
  [customClassName]: !!customClassName
105
105
  });
106
- const totalPages = Math.max(Math.ceil(totalItems / pageSize), 1);
106
+ const totalPages = totalItems ? Math.max(Math.ceil(totalItems / pageSize), 1) : NaN;
107
107
  const backButtonDisabled = disabled || page === 1;
108
108
  const backButtonClasses = cx__default["default"]({
109
109
  [`${prefix}--pagination__button`]: true,
@@ -155,7 +155,7 @@ const Pagination = /*#__PURE__*/React__default["default"].forwardRef(function Pa
155
155
  }
156
156
  function handlePageInputChange(event) {
157
157
  const page = Number(event.target.value);
158
- if (page > 0 && page <= Math.max(Math.ceil(totalItems / pageSize), 1)) {
158
+ if (page > 0 && totalItems && page <= Math.max(Math.ceil(totalItems / pageSize), 1)) {
159
159
  setPage(page);
160
160
  if (onChange) {
161
161
  onChange({
@@ -228,11 +228,11 @@ const Pagination = /*#__PURE__*/React__default["default"].forwardRef(function Pa
228
228
  text: String(sizeObj.text)
229
229
  }))), /*#__PURE__*/React__default["default"].createElement("span", {
230
230
  className: `${prefix}--pagination__text ${prefix}--pagination__items-count`
231
- }, pagesUnknown ? itemText(pageSize * (page - 1) + 1, page * pageSize) : itemRangeText(Math.min(pageSize * (page - 1) + 1, totalItems), Math.min(page * pageSize, totalItems), totalItems))), /*#__PURE__*/React__default["default"].createElement("div", {
231
+ }, pagesUnknown || !totalItems ? itemText(pageSize * (page - 1) + 1, page * pageSize) : itemRangeText(Math.min(pageSize * (page - 1) + 1, totalItems), Math.min(page * pageSize, totalItems), totalItems))), /*#__PURE__*/React__default["default"].createElement("div", {
232
232
  className: `${prefix}--pagination__right`
233
233
  }, pagesUnknown ? /*#__PURE__*/React__default["default"].createElement("span", {
234
- className: `${prefix}--pagination__text ${prefix}--pagination__page-text`
235
- }, pagesUnknown ? pageText(page, pagesUnknown) : pageRangeText(page, totalPages)) : null, /*#__PURE__*/React__default["default"].createElement(Select["default"], {
234
+ className: `${prefix}--pagination__text ${prefix}--pagination__page-text ${prefix}--pagination__unknown-pages-text`
235
+ }, pageText(page)) : /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(Select["default"], {
236
236
  id: `${prefix}-pagination-select-${inputId}-right`,
237
237
  className: `${prefix}--select__page-number`,
238
238
  labelText: `Page number, of ${totalPages} pages`,
@@ -241,9 +241,9 @@ const Pagination = /*#__PURE__*/React__default["default"].forwardRef(function Pa
241
241
  onChange: handlePageInputChange,
242
242
  value: page,
243
243
  disabled: pageInputDisabled || disabled
244
- }, selectItems), pagesUnknown ? null : /*#__PURE__*/React__default["default"].createElement("span", {
244
+ }, selectItems), /*#__PURE__*/React__default["default"].createElement("span", {
245
245
  className: `${prefix}--pagination__text`
246
- }, pagesUnknown ? pageText(page, pagesUnknown) : pageRangeText(page, totalPages)), /*#__PURE__*/React__default["default"].createElement("div", {
246
+ }, pageRangeText(page, totalPages))), /*#__PURE__*/React__default["default"].createElement("div", {
247
247
  className: `${prefix}--pagination__control-buttons`
248
248
  }, /*#__PURE__*/React__default["default"].createElement(index.IconButton, {
249
249
  align: "top",
@@ -63,6 +63,10 @@ export interface RadioButtonProps extends Omit<React.InputHTMLAttributes<HTMLInp
63
63
  * Specify the value of the `<RadioButton>`
64
64
  */
65
65
  value?: string | number;
66
+ /**
67
+ * `true` to specify if the input is required.
68
+ */
69
+ required?: boolean;
66
70
  }
67
71
  declare const RadioButton: React.ForwardRefExoticComponent<RadioButtonProps & React.RefAttributes<unknown>>;
68
72
  export default RadioButton;
@@ -37,6 +37,7 @@ const RadioButton = /*#__PURE__*/React__default["default"].forwardRef((props, re
37
37
  onChange = () => {},
38
38
  value = '',
39
39
  slug,
40
+ required,
40
41
  ...rest
41
42
  } = props;
42
43
  const prefix = usePrefix.usePrefix();
@@ -70,7 +71,8 @@ const RadioButton = /*#__PURE__*/React__default["default"].forwardRef((props, re
70
71
  ref: mergeRefs["default"](inputRef, ref),
71
72
  disabled: disabled,
72
73
  value: value,
73
- name: name
74
+ name: name,
75
+ required: required
74
76
  })), /*#__PURE__*/React__default["default"].createElement("label", {
75
77
  htmlFor: uniqueId,
76
78
  className: `${prefix}--radio-button__label`
@@ -129,6 +131,10 @@ RadioButton.propTypes = {
129
131
  * Provide a handler that is invoked when a user clicks on the control
130
132
  */
131
133
  onClick: PropTypes__default["default"].func,
134
+ /**
135
+ * `true` to specify if the control is required.
136
+ */
137
+ required: PropTypes__default["default"].bool,
132
138
  /**
133
139
  * **Experimental**: Provide a `Slug` component to be rendered inside the `RadioButton` component
134
140
  */
@@ -79,6 +79,10 @@ export interface RadioButtonGroupProps extends Omit<React.InputHTMLAttributes<HT
79
79
  * Specify the value that is currently selected in the group
80
80
  */
81
81
  valueSelected?: string | number;
82
+ /**
83
+ * `true` to specify if input selection in group is required.
84
+ */
85
+ required?: boolean;
82
86
  }
83
87
  declare const RadioButtonGroup: React.ForwardRefExoticComponent<RadioButtonGroupProps & React.RefAttributes<unknown>>;
84
88
  export default RadioButtonGroup;
@@ -45,6 +45,7 @@ const RadioButtonGroup = /*#__PURE__*/React__default["default"].forwardRef((prop
45
45
  warn = false,
46
46
  warnText,
47
47
  slug,
48
+ required,
48
49
  ...rest
49
50
  } = props;
50
51
  const prefix = usePrefix.usePrefix();
@@ -72,7 +73,8 @@ const RadioButtonGroup = /*#__PURE__*/React__default["default"].forwardRef((prop
72
73
  key: value,
73
74
  value: value,
74
75
  onChange: handleOnChange,
75
- checked: value === selected
76
+ checked: value === selected,
77
+ required: required
76
78
  };
77
79
  if (!selected && radioButton?.props.checked) {
78
80
  newProps.checked = true;
@@ -197,6 +199,10 @@ RadioButtonGroup.propTypes = {
197
199
  * Whether the RadioButtonGroup should be read-only
198
200
  */
199
201
  readOnly: PropTypes__default["default"].bool,
202
+ /**
203
+ * `true` to specify if radio selection in group is required.
204
+ */
205
+ required: PropTypes__default["default"].bool,
200
206
  /**
201
207
  * **Experimental**: Provide a `Slug` component to be rendered inside the `RadioButtonGroup` component
202
208
  */
@@ -123,7 +123,7 @@ const TimePicker = /*#__PURE__*/React__default["default"].forwardRef(function Ti
123
123
  if (item) {
124
124
  return /*#__PURE__*/React__default["default"].cloneElement(item, {
125
125
  ...item.props,
126
- disabled: disabled,
126
+ disabled: item.props.disabled ?? disabled,
127
127
  readOnly: readOnly,
128
128
  ...readOnlyEventHandlers
129
129
  });
package/lib/index.js CHANGED
@@ -30,6 +30,7 @@ var index$5 = require('./components/ComboButton/index.js');
30
30
  var ComposedModal = require('./components/ComposedModal/ComposedModal.js');
31
31
  var ModalHeader = require('./components/ComposedModal/ModalHeader.js');
32
32
  var ModalFooter = require('./components/ComposedModal/ModalFooter.js');
33
+ require('./components/ContainedList/index.js');
33
34
  var index$6 = require('./components/ContentSwitcher/index.js');
34
35
  var Copy = require('./components/Copy/Copy.js');
35
36
  var CopyButton = require('./components/CopyButton/CopyButton.js');
@@ -73,6 +74,7 @@ var MenuItem = require('./components/Menu/MenuItem.js');
73
74
  var index$8 = require('./components/MenuButton/index.js');
74
75
  var Modal = require('./components/Modal/Modal.js');
75
76
  var ModalWrapper = require('./components/ModalWrapper/ModalWrapper.js');
77
+ require('./components/MultiSelect/index.js');
76
78
  var Notification = require('./components/Notification/Notification.js');
77
79
  var NumberInput_Skeleton = require('./components/NumberInput/NumberInput.Skeleton.js');
78
80
  var NumberInput = require('./components/NumberInput/NumberInput.js');
@@ -183,6 +185,7 @@ var PageSelector = require('./components/Pagination/experimental/PageSelector.js
183
185
  var Pagination = require('./components/Pagination/experimental/Pagination.js');
184
186
  var CheckboxGroup = require('./components/CheckboxGroup/CheckboxGroup.js');
185
187
  var ContainedListItem = require('./components/ContainedList/ContainedListItem/ContainedListItem.js');
188
+ var ContainedList = require('./components/ContainedList/ContainedList.js');
186
189
  var useContextMenu = require('./components/ContextMenu/useContextMenu.js');
187
190
  var Slider_Skeleton = require('./components/Slider/Slider.Skeleton.js');
188
191
  var TextInput_Skeleton = require('./components/TextInput/TextInput.Skeleton.js');
@@ -207,7 +210,6 @@ var ChatButton = require('./components/ChatButton/ChatButton.js');
207
210
  var ChatButton_Skeleton = require('./components/ChatButton/ChatButton.Skeleton.js');
208
211
  var Text = require('./components/Text/Text.js');
209
212
  var TextDirection = require('./components/Text/TextDirection.js');
210
- var ContainedList = require('./components/ContainedList/ContainedList.js');
211
213
  var DataTable = require('./components/DataTable/DataTable.js');
212
214
  var Table = require('./components/DataTable/Table.js');
213
215
  var TableActionList = require('./components/DataTable/TableActionList.js');
@@ -454,6 +456,7 @@ exports.unstable_PageSelector = PageSelector["default"];
454
456
  exports.unstable_Pagination = Pagination["default"];
455
457
  exports.CheckboxGroup = CheckboxGroup["default"];
456
458
  exports.ContainedListItem = ContainedListItem["default"];
459
+ exports.ContainedList = ContainedList["default"];
457
460
  exports.useContextMenu = useContextMenu["default"];
458
461
  exports.SliderSkeleton = Slider_Skeleton["default"];
459
462
  exports.TextInputSkeleton = TextInput_Skeleton["default"];
@@ -478,7 +481,6 @@ exports.unstable__ChatButton = ChatButton["default"];
478
481
  exports.unstable__ChatButtonSkeleton = ChatButton_Skeleton["default"];
479
482
  exports.unstable_Text = Text.Text;
480
483
  exports.unstable_TextDirection = TextDirection.TextDirection;
481
- exports.ContainedList = ContainedList["default"];
482
484
  exports.DataTable = DataTable["default"];
483
485
  exports.Table = Table.Table;
484
486
  exports.TableActionList = TableActionList["default"];
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@carbon/react",
3
3
  "description": "React components for the Carbon Design System",
4
- "version": "1.57.0-rc.0",
4
+ "version": "1.57.0",
5
5
  "license": "Apache-2.0",
6
6
  "main": "lib/index.js",
7
7
  "module": "es/index.js",
@@ -48,10 +48,10 @@
48
48
  },
49
49
  "dependencies": {
50
50
  "@babel/runtime": "^7.18.3",
51
- "@carbon/feature-flags": "^0.20.0-rc.0",
52
- "@carbon/icons-react": "^11.41.0-rc.0",
53
- "@carbon/layout": "^11.22.0-rc.0",
54
- "@carbon/styles": "^1.57.0-rc.0",
51
+ "@carbon/feature-flags": "^0.20.0",
52
+ "@carbon/icons-react": "^11.41.0",
53
+ "@carbon/layout": "^11.22.0",
54
+ "@carbon/styles": "^1.57.0",
55
55
  "@floating-ui/react": "^0.26.0",
56
56
  "@ibm/telemetry-js": "^1.5.0",
57
57
  "classnames": "2.5.1",
@@ -81,7 +81,7 @@
81
81
  "@babel/preset-react": "^7.22.3",
82
82
  "@babel/preset-typescript": "^7.21.5",
83
83
  "@carbon/test-utils": "^10.30.0",
84
- "@carbon/themes": "^11.35.0-rc.0",
84
+ "@carbon/themes": "^11.35.0",
85
85
  "@rollup/plugin-babel": "^6.0.0",
86
86
  "@rollup/plugin-commonjs": "^25.0.0",
87
87
  "@rollup/plugin-node-resolve": "^15.0.0",
@@ -141,5 +141,5 @@
141
141
  "**/*.scss",
142
142
  "**/*.css"
143
143
  ],
144
- "gitHead": "401633ab2d5fdeaeb89f66bb9040cc1de008599d"
144
+ "gitHead": "e4922a44b2110b9dcb71da21ff6c0c9bb95610e0"
145
145
  }