@carbon/react 1.26.1 → 1.27.0-rc.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 (104) hide show
  1. package/es/components/Checkbox/Checkbox.d.ts +20 -0
  2. package/es/components/Checkbox/Checkbox.js +58 -4
  3. package/es/components/CheckboxGroup/CheckboxGroup.js +119 -0
  4. package/es/components/ComboBox/ComboBox.js +11 -2
  5. package/es/components/ContentSwitcher/ContentSwitcher.js +9 -4
  6. package/es/components/Copy/Copy.js +1 -1
  7. package/es/components/DataTable/DataTable.js +44 -2
  8. package/es/components/DataTable/Table.js +1 -2
  9. package/es/components/DataTable/TableCell.js +1 -2
  10. package/es/components/DataTable/TableExpandRow.js +1 -2
  11. package/es/components/DataTable/TableExpandedRow.js +1 -2
  12. package/es/components/DataTable/TableHead.js +1 -2
  13. package/es/components/DataTable/TableHeader.js +1 -2
  14. package/es/components/DataTable/TableRow.js +1 -2
  15. package/es/components/DataTable/TableSelectAll.js +1 -2
  16. package/es/components/DataTable/TableSelectRow.js +1 -2
  17. package/es/components/DataTable/TableToolbar.js +2 -3
  18. package/es/components/DataTable/TableToolbarAction.js +1 -2
  19. package/es/components/DataTable/TableToolbarContent.js +1 -2
  20. package/es/components/DataTable/TableToolbarMenu.js +1 -2
  21. package/es/components/DataTable/index.d.ts +29 -0
  22. package/es/components/DataTable/index.js +70 -0
  23. package/es/components/DatePicker/DatePicker.js +25 -3
  24. package/es/components/DatePicker/plugins/fixEventsPlugin.js +15 -1
  25. package/es/components/DatePickerInput/DatePickerInput.js +7 -2
  26. package/es/components/Dropdown/Dropdown.js +16 -4
  27. package/es/components/ErrorBoundary/ErrorBoundary.js +1 -1
  28. package/es/components/FileUploader/FileUploader.js +1 -1
  29. package/es/components/FluidDatePicker/FluidDatePicker.js +9 -2
  30. package/es/components/IconButton/index.js +19 -5
  31. package/es/components/Modal/Modal.js +4 -2
  32. package/es/components/ModalWrapper/ModalWrapper.js +1 -1
  33. package/es/components/MultiSelect/FilterableMultiSelect.js +9 -1
  34. package/es/components/MultiSelect/MultiSelect.js +2 -1
  35. package/es/components/NumberInput/NumberInput.js +10 -2
  36. package/es/components/ProgressBar/ProgressBar.js +3 -0
  37. package/es/components/RadioButtonGroup/RadioButtonGroup.js +2 -1
  38. package/es/components/Select/Select.d.ts +1 -1
  39. package/es/components/Select/Select.js +10 -1
  40. package/es/components/StructuredList/StructuredList.js +2 -1
  41. package/es/components/Switch/IconSwitch.js +174 -0
  42. package/es/components/TextArea/TextArea.js +16 -1
  43. package/es/components/TextInput/ControlledPasswordInput.js +11 -2
  44. package/es/components/TextInput/PasswordInput.js +4 -1
  45. package/es/components/TextInput/index.js +0 -3
  46. package/es/components/TextInput/util.js +15 -2
  47. package/es/components/Tile/Tile.js +6 -4
  48. package/es/components/Toggle/Toggle.Skeleton.d.ts +58 -0
  49. package/es/components/Toggle/Toggle.Skeleton.js +1 -1
  50. package/es/components/ToggleSmall/ToggleSmall.Skeleton.js +1 -1
  51. package/es/components/Tooltip/Tooltip.d.ts +1 -1
  52. package/es/components/UIShell/HeaderMenu.js +1 -1
  53. package/es/index.d.ts +1 -0
  54. package/es/index.js +4 -1
  55. package/lib/components/Checkbox/Checkbox.d.ts +20 -0
  56. package/lib/components/Checkbox/Checkbox.js +58 -4
  57. package/lib/components/CheckboxGroup/CheckboxGroup.js +129 -0
  58. package/lib/components/ComboBox/ComboBox.js +10 -1
  59. package/lib/components/ContentSwitcher/ContentSwitcher.js +9 -4
  60. package/lib/components/Copy/Copy.js +1 -1
  61. package/lib/components/DataTable/DataTable.js +48 -6
  62. package/lib/components/DataTable/Table.js +1 -2
  63. package/lib/components/DataTable/TableCell.js +1 -2
  64. package/lib/components/DataTable/TableExpandRow.js +1 -2
  65. package/lib/components/DataTable/TableExpandedRow.js +1 -2
  66. package/lib/components/DataTable/TableHead.js +1 -2
  67. package/lib/components/DataTable/TableHeader.js +1 -2
  68. package/lib/components/DataTable/TableRow.js +1 -2
  69. package/lib/components/DataTable/TableSelectAll.js +1 -2
  70. package/lib/components/DataTable/TableSelectRow.js +1 -2
  71. package/lib/components/DataTable/TableToolbar.js +1 -2
  72. package/lib/components/DataTable/TableToolbarAction.js +1 -2
  73. package/lib/components/DataTable/TableToolbarContent.js +1 -2
  74. package/lib/components/DataTable/TableToolbarMenu.js +1 -2
  75. package/lib/components/DataTable/index.d.ts +29 -0
  76. package/lib/components/DataTable/index.js +76 -0
  77. package/lib/components/DatePicker/DatePicker.js +25 -3
  78. package/lib/components/DatePicker/plugins/fixEventsPlugin.js +15 -1
  79. package/lib/components/DatePickerInput/DatePickerInput.js +7 -2
  80. package/lib/components/Dropdown/Dropdown.js +15 -3
  81. package/lib/components/FluidDatePicker/FluidDatePicker.js +9 -2
  82. package/lib/components/IconButton/index.js +19 -5
  83. package/lib/components/Modal/Modal.js +4 -2
  84. package/lib/components/MultiSelect/FilterableMultiSelect.js +8 -0
  85. package/lib/components/MultiSelect/MultiSelect.js +2 -1
  86. package/lib/components/NumberInput/NumberInput.js +10 -2
  87. package/lib/components/ProgressBar/ProgressBar.js +3 -0
  88. package/lib/components/RadioButtonGroup/RadioButtonGroup.js +2 -1
  89. package/lib/components/Select/Select.d.ts +1 -1
  90. package/lib/components/Select/Select.js +9 -0
  91. package/lib/components/StructuredList/StructuredList.js +2 -1
  92. package/lib/components/Switch/IconSwitch.js +184 -0
  93. package/lib/components/TextArea/TextArea.js +16 -1
  94. package/lib/components/TextInput/ControlledPasswordInput.js +10 -1
  95. package/lib/components/TextInput/PasswordInput.js +4 -1
  96. package/lib/components/TextInput/index.js +0 -3
  97. package/lib/components/TextInput/util.js +15 -2
  98. package/lib/components/Tile/Tile.js +6 -4
  99. package/lib/components/Toggle/Toggle.Skeleton.d.ts +58 -0
  100. package/lib/components/Toggle/Toggle.Skeleton.js +1 -1
  101. package/lib/components/Tooltip/Tooltip.d.ts +1 -1
  102. package/lib/index.d.ts +1 -0
  103. package/lib/index.js +6 -1
  104. package/package.json +12 -12
@@ -0,0 +1,184 @@
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
+
8
+ 'use strict';
9
+
10
+ Object.defineProperty(exports, '__esModule', { value: true });
11
+
12
+ var _rollupPluginBabelHelpers = require('../../_virtual/_rollupPluginBabelHelpers.js');
13
+ var PropTypes = require('prop-types');
14
+ var React = require('react');
15
+ var cx = require('classnames');
16
+ var index = require('../IconButton/index.js');
17
+ var usePrefix = require('../../internal/usePrefix.js');
18
+
19
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
20
+
21
+ var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
22
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
23
+ var cx__default = /*#__PURE__*/_interopDefaultLegacy(cx);
24
+
25
+ var _excluded = ["align", "children", "className", "disabled", "enterDelayMs", "index", "leaveDelayMs", "name", "onClick", "onKeyDown", "selected", "size", "text"];
26
+
27
+ var noopFn = function noopFn() {};
28
+
29
+ var IconSwitch = /*#__PURE__*/React__default["default"].forwardRef(function Switch(props, tabRef) {
30
+ var _classNames2;
31
+
32
+ var align = props.align,
33
+ children = props.children,
34
+ className = props.className,
35
+ disabled = props.disabled,
36
+ enterDelayMs = props.enterDelayMs,
37
+ index$1 = props.index,
38
+ _props$leaveDelayMs = props.leaveDelayMs,
39
+ leaveDelayMs = _props$leaveDelayMs === void 0 ? 0 : _props$leaveDelayMs,
40
+ name = props.name,
41
+ _props$onClick = props.onClick,
42
+ onClick = _props$onClick === void 0 ? noopFn : _props$onClick,
43
+ _props$onKeyDown = props.onKeyDown,
44
+ onKeyDown = _props$onKeyDown === void 0 ? noopFn : _props$onKeyDown,
45
+ _props$selected = props.selected,
46
+ selected = _props$selected === void 0 ? false : _props$selected,
47
+ size = props.size,
48
+ text = props.text,
49
+ other = _rollupPluginBabelHelpers.objectWithoutProperties(props, _excluded);
50
+
51
+ var prefix = usePrefix.usePrefix();
52
+
53
+ var _useState = React.useState(false),
54
+ _useState2 = _rollupPluginBabelHelpers.slicedToArray(_useState, 2),
55
+ isHovered = _useState2[0],
56
+ setIsHovered = _useState2[1];
57
+
58
+ var handleClick = function handleClick(e) {
59
+ e.preventDefault();
60
+ onClick({
61
+ index: index$1,
62
+ name: name,
63
+ text: text
64
+ });
65
+ };
66
+
67
+ var handleKeyDown = function handleKeyDown(event) {
68
+ var key = event.key || event.which;
69
+ onKeyDown({
70
+ index: index$1,
71
+ name: name,
72
+ text: text,
73
+ key: key
74
+ });
75
+ };
76
+
77
+ var handleMouseEnter = function handleMouseEnter() {
78
+ setIsHovered(true);
79
+ };
80
+
81
+ var handleMouseLeave = function handleMouseLeave() {
82
+ setIsHovered(false);
83
+ };
84
+
85
+ var classes = cx__default["default"](className, "".concat(prefix, "--content-switcher-btn"), _rollupPluginBabelHelpers.defineProperty({}, "".concat(prefix, "--content-switcher--selected"), selected));
86
+ var iconButtonClasses = cx__default["default"]("".concat(prefix, "--content-switcher-popover__wrapper"), (_classNames2 = {}, _rollupPluginBabelHelpers.defineProperty(_classNames2, "".concat(prefix, "--content-switcher-popover--selected"), selected), _rollupPluginBabelHelpers.defineProperty(_classNames2, "".concat(prefix, "--content-switcher-popover--disabled"), disabled), _classNames2));
87
+ var commonProps = {
88
+ onClick: handleClick,
89
+ onKeyDown: handleKeyDown,
90
+ className: classes,
91
+ disabled: disabled,
92
+ align: align,
93
+ enterDelayMs: enterDelayMs,
94
+ leaveDelayMs: leaveDelayMs,
95
+ size: size
96
+ };
97
+ return /*#__PURE__*/React__default["default"].createElement(index.IconButton, _rollupPluginBabelHelpers["extends"]({
98
+ label: text,
99
+ type: "button",
100
+ ref: tabRef,
101
+ role: "tab",
102
+ tabIndex: selected || isHovered ? 0 : -1,
103
+ onMouseEnter: handleMouseEnter,
104
+ onMouseLeave: handleMouseLeave,
105
+ onFocus: handleMouseEnter,
106
+ onBlur: handleMouseLeave,
107
+ "aria-selected": selected,
108
+ "aria-label": text,
109
+ wrapperClasses: iconButtonClasses
110
+ }, other, commonProps), children);
111
+ });
112
+ IconSwitch.displayName = 'IconSwitch';
113
+ IconSwitch.propTypes = {
114
+ /**
115
+ * Specify how the trigger should align with the tooltip
116
+ */
117
+ align: PropTypes__default["default"].oneOf(['top', 'top-left', 'top-right', 'bottom', 'bottom-left', 'bottom-right', 'left', 'right']),
118
+
119
+ /**
120
+ * Provide child elements to be rendered inside of the Switch
121
+ */
122
+ children: PropTypes__default["default"].node,
123
+
124
+ /**
125
+ * Specify an optional className to be added to your Switch
126
+ */
127
+ className: PropTypes__default["default"].string,
128
+
129
+ /**
130
+ * Specify whether or not the Switch should be disabled
131
+ */
132
+ disabled: PropTypes__default["default"].bool,
133
+
134
+ /**
135
+ * Specify the duration in milliseconds to delay before displaying the tooltip
136
+ */
137
+ enterDelayMs: PropTypes__default["default"].number,
138
+
139
+ /**
140
+ * The index of your Switch in your ContentSwitcher that is used for event handlers.
141
+ * Reserved for usage in ContentSwitcher
142
+ */
143
+ index: PropTypes__default["default"].number,
144
+
145
+ /**
146
+ * Specify the duration in milliseconds to delay before hiding the tooltip
147
+ */
148
+ leaveDelayMs: PropTypes__default["default"].number,
149
+
150
+ /**
151
+ * Provide the name of your Switch that is used for event handlers
152
+ */
153
+ name: PropTypes__default["default"].oneOfType([PropTypes__default["default"].string, PropTypes__default["default"].number]),
154
+
155
+ /**
156
+ * A handler that is invoked when a user clicks on the control.
157
+ * Reserved for usage in ContentSwitcher
158
+ */
159
+ onClick: PropTypes__default["default"].func,
160
+
161
+ /**
162
+ * A handler that is invoked on the key down event for the control.
163
+ * Reserved for usage in ContentSwitcher
164
+ */
165
+ onKeyDown: PropTypes__default["default"].func,
166
+
167
+ /**
168
+ * Whether your Switch is selected. Reserved for usage in ContentSwitcher
169
+ */
170
+ selected: PropTypes__default["default"].bool,
171
+
172
+ /**
173
+ * Passed in from `ContentSwitcher` to render icon-only variant
174
+ */
175
+ size: PropTypes__default["default"].oneOf(['sm', 'md', 'lg']),
176
+
177
+ /**
178
+ * Provide the visible text displayed by the Tooltip
179
+ */
180
+ text: PropTypes__default["default"].string
181
+ };
182
+ var IconSwitch$1 = IconSwitch;
183
+
184
+ exports["default"] = IconSwitch$1;
@@ -22,6 +22,7 @@ var FormContext = require('../FluidForm/FormContext.js');
22
22
  var useAnnouncer = require('../../internal/useAnnouncer.js');
23
23
  var useIsomorphicEffect = require('../../internal/useIsomorphicEffect.js');
24
24
  var useMergedRefs = require('../../internal/useMergedRefs.js');
25
+ var setupGetInstanceId = require('../../tools/setupGetInstanceId.js');
25
26
 
26
27
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
27
28
 
@@ -30,6 +31,7 @@ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
30
31
  var cx__default = /*#__PURE__*/_interopDefaultLegacy(cx);
31
32
 
32
33
  var _excluded = ["className", "id", "labelText", "hideLabel", "onChange", "onClick", "invalid", "invalidText", "helperText", "light", "placeholder", "enableCounter", "maxCount", "warn", "warnText"];
34
+ var getInstanceId = setupGetInstanceId["default"]();
33
35
  var TextArea = /*#__PURE__*/React__default["default"].forwardRef(function (props, forwardRef) {
34
36
  var _classNames, _classNames4, _classNames5;
35
37
 
@@ -66,6 +68,9 @@ var TextArea = /*#__PURE__*/React__default["default"].forwardRef(function (props
66
68
  textCount = _useState2[0],
67
69
  setTextCount = _useState2[1];
68
70
 
71
+ var _useRef = React.useRef(getInstanceId()),
72
+ textAreaInstanceId = _useRef.current;
73
+
69
74
  var textareaProps = {
70
75
  id: id,
71
76
  onChange: function onChange(evt) {
@@ -99,7 +104,9 @@ var TextArea = /*#__PURE__*/React__default["default"].forwardRef(function (props
99
104
  className: counterClasses
100
105
  }, "".concat(textCount, "/").concat(maxCount)) : null;
101
106
  var helperTextClasses = cx__default["default"]("".concat(prefix, "--form__helper-text"), _rollupPluginBabelHelpers.defineProperty({}, "".concat(prefix, "--form__helper-text--disabled"), other.disabled));
107
+ var helperId = !helperText ? undefined : "text-area-helper-text-".concat(textAreaInstanceId);
102
108
  var helper = helperText ? /*#__PURE__*/React__default["default"].createElement("div", {
109
+ id: helperId,
103
110
  className: helperTextClasses
104
111
  }, helperText) : null;
105
112
  var errorId = id + '-error-msg';
@@ -127,11 +134,19 @@ var TextArea = /*#__PURE__*/React__default["default"].forwardRef(function (props
127
134
  textareaRef.current.style.width = "100%";
128
135
  }
129
136
  }, [other.cols]);
137
+ var ariaDescribedBy;
138
+
139
+ if (invalid) {
140
+ ariaDescribedBy = errorId;
141
+ } else if (!invalid && !warn && !isFluid && helperText) {
142
+ ariaDescribedBy = helperId;
143
+ }
144
+
130
145
  var input = /*#__PURE__*/React__default["default"].createElement("textarea", _rollupPluginBabelHelpers["extends"]({}, other, textareaProps, {
131
146
  placeholder: placeholder,
132
147
  className: textareaClasses,
133
148
  "aria-invalid": invalid,
134
- "aria-describedby": invalid ? errorId : undefined,
149
+ "aria-describedby": ariaDescribedBy,
135
150
  disabled: other.disabled,
136
151
  readOnly: other.readOnly,
137
152
  ref: ref
@@ -18,6 +18,7 @@ var util = require('./util.js');
18
18
  var warning = require('../../internal/warning.js');
19
19
  var deprecate = require('../../prop-types/deprecate.js');
20
20
  var usePrefix = require('../../internal/usePrefix.js');
21
+ var setupGetInstanceId = require('../../tools/setupGetInstanceId.js');
21
22
 
22
23
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
23
24
 
@@ -26,6 +27,7 @@ var cx__default = /*#__PURE__*/_interopDefaultLegacy(cx);
26
27
  var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
27
28
 
28
29
  var _excluded = ["labelText", "className", "id", "placeholder", "onChange", "onClick", "hideLabel", "invalid", "invalidText", "helperText", "light", "type", "togglePasswordVisibility", "tooltipPosition", "tooltipAlignment", "hidePasswordLabel", "showPasswordLabel", "size"];
30
+ var getInstanceId = setupGetInstanceId["default"]();
29
31
  var didWarnAboutDeprecation = false;
30
32
  var ControlledPasswordInput = /*#__PURE__*/React__default["default"].forwardRef(function ControlledPasswordInput(_ref, ref) {
31
33
  var _classNames, _classNames2, _classNames4;
@@ -57,6 +59,9 @@ var ControlledPasswordInput = /*#__PURE__*/React__default["default"].forwardRef(
57
59
 
58
60
  var prefix = usePrefix.usePrefix();
59
61
 
62
+ var _useRef = React.useRef(getInstanceId()),
63
+ controlledPasswordInstanceId = _useRef.current;
64
+
60
65
  if (process.env.NODE_ENV !== "production") {
61
66
  process.env.NODE_ENV !== "production" ? warning.warning(didWarnAboutDeprecation, '`<TextInput.ControlledPasswordInput>` has been deprecated in favor of `<TextInput.PasswordInput />` and will be removed in the next major release of `carbon-components-react`') : void 0;
62
67
  didWarnAboutDeprecation = true;
@@ -100,10 +105,13 @@ var ControlledPasswordInput = /*#__PURE__*/React__default["default"].forwardRef(
100
105
  className: "".concat(prefix, "--icon-visibility-on")
101
106
  });
102
107
  var passwordVisibilityToggleClasses = cx__default["default"]("".concat(prefix, "--text-input--password__visibility__toggle"), "".concat(prefix, "--btn"), "".concat(prefix, "--btn--icon-only"), "".concat(prefix, "--tooltip__trigger"), "".concat(prefix, "--tooltip--a11y"), (_classNames4 = {}, _rollupPluginBabelHelpers.defineProperty(_classNames4, "".concat(prefix, "--tooltip--").concat(tooltipPosition), tooltipPosition), _rollupPluginBabelHelpers.defineProperty(_classNames4, "".concat(prefix, "--tooltip--align-").concat(tooltipAlignment), tooltipAlignment), _classNames4));
108
+ var helperId = !helperText ? undefined : "controlled-password-helper-text-".concat(controlledPasswordInstanceId);
103
109
  var input = /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement("input", _rollupPluginBabelHelpers["extends"]({}, util.textInputProps({
104
110
  invalid: invalid,
105
111
  sharedTextInputProps: sharedTextInputProps,
106
- invalidId: errorId
112
+ invalidId: errorId,
113
+ hasHelper: !error && helperText,
114
+ helperId: helperId
107
115
  }), {
108
116
  "data-toggle-password-visibility": type === 'password'
109
117
  })), /*#__PURE__*/React__default["default"].createElement("button", {
@@ -114,6 +122,7 @@ var ControlledPasswordInput = /*#__PURE__*/React__default["default"].forwardRef(
114
122
  className: "".concat(prefix, "--assistive-text")
115
123
  }, passwordIsVisible ? hidePasswordLabel : showPasswordLabel), passwordVisibilityIcon));
116
124
  var helper = helperText ? /*#__PURE__*/React__default["default"].createElement("div", {
125
+ id: helperId,
117
126
  className: helperTextClasses
118
127
  }, helperText) : null;
119
128
  return /*#__PURE__*/React__default["default"].createElement("div", {
@@ -122,6 +122,7 @@ var PasswordInput = /*#__PURE__*/React__default["default"].forwardRef(function P
122
122
  className: labelClasses
123
123
  }, labelText) : null;
124
124
  var helper = helperText ? /*#__PURE__*/React__default["default"].createElement("div", {
125
+ id: normalizedProps.helperId,
125
126
  className: helperTextClasses
126
127
  }, helperText) : null;
127
128
  var passwordIsVisible = inputType === 'text';
@@ -136,7 +137,9 @@ var PasswordInput = /*#__PURE__*/React__default["default"].forwardRef(function P
136
137
  invalid: normalizedProps.invalid,
137
138
  invalidId: normalizedProps.invalidId,
138
139
  warn: normalizedProps.warn,
139
- warnId: normalizedProps.warnId
140
+ warnId: normalizedProps.warnId,
141
+ hasHelper: Boolean(helperText && !isFluid && (inline || !inline && !normalizedProps.validation)),
142
+ helperId: normalizedProps.helperId
140
143
  }), {
141
144
  disabled: disabled,
142
145
  "data-toggle-password-visibility": inputType === 'password'
@@ -15,9 +15,6 @@ var PasswordInput = require('./PasswordInput.js');
15
15
  var TextInput = require('./TextInput.js');
16
16
  var TextInput_Skeleton = require('./TextInput.Skeleton.js');
17
17
 
18
- TextInput["default"].ControlledPasswordInput = ControlledPasswordInput["default"];
19
- TextInput["default"].PasswordInput = PasswordInput["default"];
20
-
21
18
  if (process.env.NODE_ENV !== "production") {
22
19
  deprecateFieldOnObject.deprecateFieldOnObject(TextInput["default"], 'ControlledPasswordInput', ControlledPasswordInput["default"]);
23
20
  deprecateFieldOnObject.deprecateFieldOnObject(TextInput["default"], 'PasswordInput', PasswordInput["default"]);
@@ -25,13 +25,26 @@ var warnProps = function warnProps(warnId) {
25
25
  };
26
26
  };
27
27
 
28
+ var helperProps = function helperProps(helperId) {
29
+ return {
30
+ 'aria-describedby': helperId
31
+ };
32
+ };
33
+ /**
34
+ * @param {{sharedTextInputProps: object, invalid?: boolean, invalidId?: string, warn?: boolean, warnId?: string, hasHelper?: boolean, helperId?: string}} config
35
+ * @returns {object}
36
+ */
37
+
38
+
28
39
  var textInputProps = function textInputProps(_ref) {
29
40
  var sharedTextInputProps = _ref.sharedTextInputProps,
30
41
  invalid = _ref.invalid,
31
42
  invalidId = _ref.invalidId,
32
43
  warn = _ref.warn,
33
- warnId = _ref.warnId;
34
- return _rollupPluginBabelHelpers.objectSpread2(_rollupPluginBabelHelpers.objectSpread2(_rollupPluginBabelHelpers.objectSpread2({}, sharedTextInputProps), invalid ? invalidProps(invalidId) : {}), warn ? warnProps(warnId) : {});
44
+ warnId = _ref.warnId,
45
+ hasHelper = _ref.hasHelper,
46
+ helperId = _ref.helperId;
47
+ return _rollupPluginBabelHelpers.objectSpread2(_rollupPluginBabelHelpers.objectSpread2(_rollupPluginBabelHelpers.objectSpread2(_rollupPluginBabelHelpers.objectSpread2({}, sharedTextInputProps), invalid ? invalidProps(invalidId) : {}), warn ? warnProps(warnId) : {}), hasHelper ? helperProps(helperId) : {});
35
48
  };
36
49
 
37
50
  exports.textInputProps = textInputProps;
@@ -20,6 +20,7 @@ var events = require('../../tools/events.js');
20
20
  var usePrefix = require('../../internal/usePrefix.js');
21
21
  var useIsomorphicEffect = require('../../internal/useIsomorphicEffect.js');
22
22
  var useNoInteractiveChildren = require('../../internal/useNoInteractiveChildren.js');
23
+ var useMergedRefs = require('../../internal/useMergedRefs.js');
23
24
  var match = require('../../internal/keyboard/match.js');
24
25
  var keys = require('../../internal/keyboard/keys.js');
25
26
 
@@ -328,7 +329,7 @@ SelectableTile.propTypes = {
328
329
  */
329
330
  value: PropTypes__default["default"].oneOfType([PropTypes__default["default"].string, PropTypes__default["default"].number]).isRequired
330
331
  };
331
- function ExpandableTile(_ref4) {
332
+ var ExpandableTile = /*#__PURE__*/React__default["default"].forwardRef(function ExpandableTile(_ref4, forwardRef) {
332
333
  var _cx4, _cx5;
333
334
 
334
335
  var tabIndex = _ref4.tabIndex,
@@ -386,6 +387,7 @@ function ExpandableTile(_ref4) {
386
387
  var tileContent = React.useRef(null);
387
388
  var tile = React.useRef(null);
388
389
  var prefix = usePrefix.usePrefix();
390
+ var ref = useMergedRefs.useMergedRefs([forwardRef, tile]);
389
391
 
390
392
  if (expanded !== prevExpanded) {
391
393
  setIsExpanded(expanded);
@@ -473,7 +475,7 @@ function ExpandableTile(_ref4) {
473
475
  };
474
476
  }, []);
475
477
  return interactive ? /*#__PURE__*/React__default["default"].createElement("div", _rollupPluginBabelHelpers["extends"]({
476
- ref: tile,
478
+ ref: ref,
477
479
  className: interactiveClassNames,
478
480
  "aria-expanded": isExpanded
479
481
  }, rest), /*#__PURE__*/React__default["default"].createElement("div", {
@@ -493,7 +495,7 @@ function ExpandableTile(_ref4) {
493
495
  className: "".concat(prefix, "--tile-content")
494
496
  }, childrenAsArray[1]))) : /*#__PURE__*/React__default["default"].createElement("button", _rollupPluginBabelHelpers["extends"]({
495
497
  type: "button",
496
- ref: tile,
498
+ ref: ref,
497
499
  className: classNames,
498
500
  "aria-expanded": isExpanded,
499
501
  title: isExpanded ? tileExpandedIconText : tileCollapsedIconText
@@ -512,7 +514,7 @@ function ExpandableTile(_ref4) {
512
514
  ref: belowTheFold,
513
515
  className: "".concat(prefix, "--tile-content")
514
516
  }, childrenAsArray[1])));
515
- }
517
+ });
516
518
  ExpandableTile.propTypes = {
517
519
  /**
518
520
  * The child nodes.
@@ -0,0 +1,58 @@
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
+ import React from 'react';
9
+ type ToggleSkeletonProps = {
10
+ 'aria-label': string;
11
+ /**
12
+ * Specify an optional className to add to the form item wrapper.
13
+ */
14
+ className?: string;
15
+ /**
16
+ * Provide an id that unique represents the underlying `<input>`
17
+ */
18
+ id?: string;
19
+ /**
20
+ * Provide the text that will be read by a screen reader when visiting this
21
+ * control
22
+ * `aria-label` is always required but will be null if `labelText` is also
23
+ * provided
24
+ */
25
+ labelText?: string;
26
+ /**
27
+ * Specify the size of the Toggle. Currently only supports 'sm' or 'md' (default)
28
+ */
29
+ size?: 'sm' | 'md';
30
+ } & React.HTMLAttributes<HTMLDivElement>;
31
+ declare class ToggleSkeleton extends React.Component<ToggleSkeletonProps> {
32
+ static propTypes: {
33
+ "aria-label": PropTypes.Validator<string>;
34
+ /**
35
+ * Specify an optional className to add to the form item wrapper.
36
+ */
37
+ className: PropTypes.Requireable<string>;
38
+ /**
39
+ * Provide an id that unique represents the underlying `<input>`
40
+ */
41
+ id: PropTypes.Requireable<string>;
42
+ /**
43
+ * Provide the text that will be read by a screen reader when visiting this
44
+ * control
45
+ * `aria-label` is always required but will be undefined if `labelText` is also
46
+ * provided
47
+ */
48
+ labelText: PropTypes.Requireable<string>;
49
+ /**
50
+ * Specify the size of the Toggle. Currently only supports 'sm' or 'md' (default)
51
+ */
52
+ size: PropTypes.Requireable<string>;
53
+ };
54
+ static defaultProps: Partial<ToggleSkeletonProps>;
55
+ render(): JSX.Element;
56
+ }
57
+ export default ToggleSkeleton;
58
+ export { ToggleSkeleton };
@@ -60,7 +60,7 @@ var ToggleSkeleton = /*#__PURE__*/function (_React$Component) {
60
60
  }), /*#__PURE__*/React__default["default"].createElement("label", {
61
61
  className: "".concat(prefix, "--toggle-input__label"),
62
62
  htmlFor: id,
63
- "aria-label": labelText ? null : _this.props['aria-label']
63
+ "aria-label": labelText ? undefined : _this.props['aria-label']
64
64
  }, labelText ? _div || (_div = /*#__PURE__*/React__default["default"].createElement("div", null, labelText)) : null, /*#__PURE__*/React__default["default"].createElement("span", {
65
65
  className: "".concat(prefix, "--toggle__switch")
66
66
  }, /*#__PURE__*/React__default["default"].createElement("span", {
@@ -22,7 +22,7 @@ interface TooltipBaseProps {
22
22
  */
23
23
  className?: string;
24
24
  /**
25
- * Determines wether the tooltip should close when inner content is activated (click, Enter or Space)
25
+ * Determines whether the tooltip should close when inner content is activated (click, Enter or Space)
26
26
  */
27
27
  closeOnActivation?: boolean;
28
28
  /**
package/lib/index.d.ts CHANGED
@@ -12,6 +12,7 @@ export * from './components/Breadcrumb';
12
12
  export * from './components/Button';
13
13
  export * from './components/ButtonSet';
14
14
  export * from './components/Checkbox';
15
+ export * from './components/CheckboxGroup';
15
16
  export * from './components/ClassPrefix';
16
17
  export * from './components/CodeSnippet';
17
18
  export * from './components/ComboBox';
package/lib/index.js CHANGED
@@ -14,6 +14,7 @@ var Checkbox = require('./components/Checkbox/Checkbox.js');
14
14
  var Checkbox_Skeleton = require('./components/Checkbox/Checkbox.Skeleton.js');
15
15
  var index$4 = require('./components/ClassPrefix/index.js');
16
16
  var index$5 = require('./components/ContentSwitcher/index.js');
17
+ require('./components/DataTable/index.js');
17
18
  var Dropdown = require('./components/Dropdown/Dropdown.js');
18
19
  var Dropdown_Skeleton = require('./components/Dropdown/Dropdown.Skeleton.js');
19
20
  var FluidForm = require('./components/FluidForm/FluidForm.js');
@@ -64,6 +65,7 @@ var Accordion_Skeleton = require('./components/Accordion/Accordion.Skeleton.js')
64
65
  var Accordion = require('./components/Accordion/Accordion.js');
65
66
  var AspectRatio = require('./components/AspectRatio/AspectRatio.js');
66
67
  var Breadcrumb_Skeleton = require('./components/Breadcrumb/Breadcrumb.Skeleton.js');
68
+ var CheckboxGroup = require('./components/CheckboxGroup/CheckboxGroup.js');
67
69
  var CodeSnippet_Skeleton = require('./components/CodeSnippet/CodeSnippet.Skeleton.js');
68
70
  var CodeSnippet = require('./components/CodeSnippet/CodeSnippet.js');
69
71
  var ContainedListItem = require('./components/ContainedList/ContainedListItem/ContainedListItem.js');
@@ -180,6 +182,7 @@ var Select = require('./components/Select/Select.js');
180
182
  var SelectItem = require('./components/SelectItem/SelectItem.js');
181
183
  var SelectItemGroup = require('./components/SelectItemGroup/SelectItemGroup.js');
182
184
  var Switch = require('./components/Switch/Switch.js');
185
+ var IconSwitch = require('./components/Switch/IconSwitch.js');
183
186
  var Slider_Skeleton = require('./components/Slider/Slider.Skeleton.js');
184
187
  var StructuredList_Skeleton = require('./components/StructuredList/StructuredList.Skeleton.js');
185
188
  var StructuredList = require('./components/StructuredList/StructuredList.js');
@@ -289,6 +292,7 @@ exports.AccordionSkeleton = Accordion_Skeleton["default"];
289
292
  exports.Accordion = Accordion["default"];
290
293
  exports.AspectRatio = AspectRatio["default"];
291
294
  exports.BreadcrumbSkeleton = Breadcrumb_Skeleton["default"];
295
+ exports.CheckboxGroup = CheckboxGroup["default"];
292
296
  exports.CodeSnippetSkeleton = CodeSnippet_Skeleton["default"];
293
297
  exports.CodeSnippet = CodeSnippet["default"];
294
298
  exports.ContainedListItem = ContainedListItem["default"];
@@ -356,7 +360,7 @@ exports.ModalFooter = ModalFooter.ModalFooter;
356
360
  exports.ModalHeader = ModalHeader.ModalHeader;
357
361
  exports.DangerButton = DangerButton["default"];
358
362
  exports.DataTable = DataTable["default"];
359
- exports.Table = Table["default"];
363
+ exports.Table = Table.Table;
360
364
  exports.TableActionList = TableActionList["default"];
361
365
  exports.TableBatchAction = TableBatchAction["default"];
362
366
  exports.TableBatchActions = TableBatchActions["default"];
@@ -415,6 +419,7 @@ exports.Select = Select["default"];
415
419
  exports.SelectItem = SelectItem["default"];
416
420
  exports.SelectItemGroup = SelectItemGroup["default"];
417
421
  exports.Switch = Switch["default"];
422
+ exports.IconSwitch = IconSwitch["default"];
418
423
  exports.SliderSkeleton = Slider_Skeleton["default"];
419
424
  exports.StructuredListSkeleton = StructuredList_Skeleton["default"];
420
425
  exports.StructuredListBody = StructuredList.StructuredListBody;
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.26.1",
4
+ "version": "1.27.0-rc.0",
5
5
  "license": "Apache-2.0",
6
6
  "main": "lib/index.js",
7
7
  "module": "es/index.js",
@@ -37,16 +37,16 @@
37
37
  "storybook": "start-storybook -p 3000"
38
38
  },
39
39
  "peerDependencies": {
40
- "react": "^16.8.6 || ^17.0.1",
41
- "react-dom": "^16.8.6 || ^17.0.1",
40
+ "react": "^16.8.6 || ^17.0.1 || ^18.2.0",
41
+ "react-dom": "^16.8.6 || ^17.0.1 || ^18.2.0",
42
42
  "sass": "^1.33.0"
43
43
  },
44
44
  "dependencies": {
45
45
  "@babel/runtime": "^7.18.3",
46
46
  "@carbon/feature-flags": "^0.13.0",
47
- "@carbon/icons-react": "^11.17.0",
48
- "@carbon/layout": "^11.12.0",
49
- "@carbon/styles": "^1.26.1",
47
+ "@carbon/icons-react": "^11.18.0-rc.0",
48
+ "@carbon/layout": "^11.13.0-rc.0",
49
+ "@carbon/styles": "^1.27.0-rc.0",
50
50
  "@carbon/telemetry": "0.1.0",
51
51
  "classnames": "2.3.2",
52
52
  "copy-to-clipboard": "^3.3.1",
@@ -59,7 +59,7 @@
59
59
  "lodash.omit": "^4.5.0",
60
60
  "lodash.throttle": "^4.1.1",
61
61
  "prop-types": "^15.7.2",
62
- "react-is": "^17.0.2",
62
+ "react-is": "^18.2.0",
63
63
  "use-resize-observer": "^6.0.0",
64
64
  "wicg-inert": "^3.1.1",
65
65
  "window-or-global": "^1.0.1"
@@ -72,8 +72,8 @@
72
72
  "@babel/plugin-transform-react-constant-elements": "^7.17.12",
73
73
  "@babel/preset-env": "^7.18.2",
74
74
  "@babel/preset-react": "^7.17.12",
75
- "@carbon/test-utils": "^10.27.0",
76
- "@carbon/themes": "^11.17.0",
75
+ "@carbon/test-utils": "^10.28.0-rc.0",
76
+ "@carbon/themes": "^11.18.0-rc.0",
77
77
  "@rollup/plugin-babel": "^6.0.0",
78
78
  "@rollup/plugin-commonjs": "^24.0.0",
79
79
  "@rollup/plugin-node-resolve": "^15.0.0",
@@ -106,8 +106,8 @@
106
106
  "postcss-loader": "^7.0.0",
107
107
  "process": "^0.11.10",
108
108
  "prop-types": "^15.7.2",
109
- "react": "^17.0.2",
110
- "react-dom": "^17.0.2",
109
+ "react": "^18.2.0",
110
+ "react-dom": "^18.2.0",
111
111
  "requestanimationframe": "^0.0.23",
112
112
  "rimraf": "^4.0.0",
113
113
  "rollup": "^2.79.1",
@@ -133,5 +133,5 @@
133
133
  "**/*.scss",
134
134
  "**/*.css"
135
135
  ],
136
- "gitHead": "722f2ebbad8ce2ebf41385a1e3dae5b9ca279a5b"
136
+ "gitHead": "af6bbf9ea6a025c19a041ea352dfde798e1cd22f"
137
137
  }