@carbon/react 1.24.0-rc.0 → 1.25.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 (151) hide show
  1. package/es/components/CodeSnippet/CodeSnippet.js +13 -115
  2. package/es/components/ComboBox/ComboBox.d.ts +6 -0
  3. package/es/components/ComboBox/ComboBox.js +19 -172
  4. package/es/components/ComboButton/index.js +164 -0
  5. package/es/components/ComposedModal/ComposedModal.js +1 -2
  6. package/es/components/DataTable/TableToolbar.d.ts +19 -0
  7. package/es/components/DataTable/TableToolbar.js +1 -1
  8. package/es/components/DataTable/TableToolbarAction.d.ts +21 -0
  9. package/es/components/DataTable/TableToolbarContent.d.ts +21 -0
  10. package/es/components/DataTable/TableToolbarMenu.d.ts +24 -0
  11. package/es/components/DataTable/TableToolbarMenu.js +3 -3
  12. package/es/components/DataTable/tools/sorting.js +2 -1
  13. package/es/components/DataTableSkeleton/DataTableSkeleton.d.ts +107 -0
  14. package/es/components/Dropdown/Dropdown.d.ts +6 -0
  15. package/es/components/Dropdown/Dropdown.js +8 -145
  16. package/es/components/FileUploader/FileUploader.js +1 -1
  17. package/es/components/FileUploader/FileUploaderDropContainer.js +30 -18
  18. package/es/components/FileUploader/FileUploaderItem.js +2 -1
  19. package/es/components/FileUploader/Filename.js +8 -2
  20. package/es/components/FluidTextArea/FluidTextArea.js +12 -1
  21. package/es/components/IconButton/index.js +1 -0
  22. package/es/components/ListBox/ListBoxMenuItem.d.ts +2 -2
  23. package/es/components/ListBox/ListBoxSelection.js +4 -23
  24. package/es/components/ListBox/next/ListBoxSelection.js +2 -23
  25. package/es/components/Menu/Menu.js +50 -33
  26. package/es/components/Menu/MenuContext.js +3 -6
  27. package/es/components/Menu/MenuItem.js +1 -0
  28. package/es/components/MenuButton/index.js +127 -0
  29. package/es/components/Modal/Modal.js +4 -3
  30. package/es/components/MultiSelect/FilterableMultiSelect.js +31 -137
  31. package/es/components/MultiSelect/MultiSelect.d.ts +1 -1
  32. package/es/components/MultiSelect/MultiSelect.js +48 -26
  33. package/es/components/Notification/Notification.js +27 -264
  34. package/es/components/OverflowMenu/OverflowMenu.js +13 -139
  35. package/es/components/OverflowMenuItem/OverflowMenuItem.d.ts +58 -0
  36. package/es/components/OverflowMenuItem/OverflowMenuItem.js +12 -7
  37. package/es/components/OverflowMenuV2/index.js +15 -51
  38. package/es/components/Popover/index.d.ts +55 -0
  39. package/es/components/Popover/index.js +61 -29
  40. package/es/components/RadioButtonGroup/RadioButtonGroup.js +7 -4
  41. package/es/components/RadioTile/RadioTile.js +6 -6
  42. package/es/components/Select/Select.d.ts +89 -0
  43. package/es/components/SelectItem/SelectItem.d.ts +62 -0
  44. package/es/components/SelectItem/SelectItem.js +2 -4
  45. package/es/components/SelectItemGroup/SelectItemGroup.d.ts +52 -0
  46. package/es/components/SkeletonText/SkeletonText.js +1 -1
  47. package/es/components/Slider/Slider.Skeleton.d.ts +2 -2
  48. package/es/components/Slider/Slider.d.ts +355 -0
  49. package/es/components/Slider/Slider.js +63 -35
  50. package/es/components/StructuredList/StructuredList.js +10 -38
  51. package/es/components/Tabs/Tabs.js +3 -1
  52. package/es/components/TextArea/TextArea.Skeleton.d.ts +33 -0
  53. package/es/components/TextArea/TextArea.Skeleton.js +5 -5
  54. package/es/components/TextArea/TextArea.d.ts +9 -2
  55. package/es/components/TextArea/TextArea.js +31 -8
  56. package/es/components/TextArea/index.js +1 -0
  57. package/es/components/TextInput/TextInput.d.ts +106 -0
  58. package/es/components/TextInput/TextInput.js +3 -2
  59. package/es/components/Toggle/Toggle.js +8 -19
  60. package/es/components/Tooltip/DefinitionTooltip.d.ts +52 -0
  61. package/es/components/Tooltip/DefinitionTooltip.js +2 -2
  62. package/es/components/Tooltip/Tooltip.d.ts +117 -0
  63. package/es/components/Tooltip/Tooltip.js +6 -4
  64. package/es/components/Tooltip/index.d.ts +9 -0
  65. package/es/index.d.ts +2 -0
  66. package/es/index.js +5 -3
  67. package/es/internal/ClickListener.js +1 -2
  68. package/es/internal/keyboard/match.js +1 -1
  69. package/es/internal/useAttachedMenu.js +85 -0
  70. package/es/internal/useDelayedState.d.ts +19 -0
  71. package/es/internal/useDelayedState.js +7 -3
  72. package/es/internal/useId.js +1 -1
  73. package/es/internal/useMergedRefs.d.ts +13 -0
  74. package/es/internal/useMergedRefs.js +2 -5
  75. package/es/internal/useNormalizedInputProps.js +1 -0
  76. package/lib/components/CodeSnippet/CodeSnippet.js +13 -115
  77. package/lib/components/ComboBox/ComboBox.d.ts +6 -0
  78. package/lib/components/ComboBox/ComboBox.js +18 -171
  79. package/lib/components/ComboButton/index.js +174 -0
  80. package/lib/components/ComposedModal/ComposedModal.js +1 -2
  81. package/lib/components/DataTable/TableToolbar.d.ts +19 -0
  82. package/lib/components/DataTable/TableToolbar.js +1 -1
  83. package/lib/components/DataTable/TableToolbarAction.d.ts +21 -0
  84. package/lib/components/DataTable/TableToolbarContent.d.ts +21 -0
  85. package/lib/components/DataTable/TableToolbarMenu.d.ts +24 -0
  86. package/lib/components/DataTable/TableToolbarMenu.js +3 -3
  87. package/lib/components/DataTable/tools/sorting.js +2 -1
  88. package/lib/components/DataTableSkeleton/DataTableSkeleton.d.ts +107 -0
  89. package/lib/components/Dropdown/Dropdown.d.ts +6 -0
  90. package/lib/components/Dropdown/Dropdown.js +7 -144
  91. package/lib/components/FileUploader/FileUploader.js +1 -1
  92. package/lib/components/FileUploader/FileUploaderDropContainer.js +30 -18
  93. package/lib/components/FileUploader/FileUploaderItem.js +2 -1
  94. package/lib/components/FileUploader/Filename.js +8 -2
  95. package/lib/components/FluidTextArea/FluidTextArea.js +12 -1
  96. package/lib/components/IconButton/index.js +1 -0
  97. package/lib/components/ListBox/ListBoxMenuItem.d.ts +2 -2
  98. package/lib/components/ListBox/ListBoxSelection.js +4 -23
  99. package/lib/components/ListBox/next/ListBoxSelection.js +2 -23
  100. package/lib/components/Menu/Menu.js +50 -33
  101. package/lib/components/Menu/MenuContext.js +3 -6
  102. package/lib/components/Menu/MenuItem.js +1 -0
  103. package/lib/components/MenuButton/index.js +137 -0
  104. package/lib/components/Modal/Modal.js +4 -3
  105. package/lib/components/MultiSelect/FilterableMultiSelect.js +29 -135
  106. package/lib/components/MultiSelect/MultiSelect.d.ts +1 -1
  107. package/lib/components/MultiSelect/MultiSelect.js +47 -25
  108. package/lib/components/Notification/Notification.js +27 -264
  109. package/lib/components/OverflowMenu/OverflowMenu.js +13 -139
  110. package/lib/components/OverflowMenuItem/OverflowMenuItem.d.ts +58 -0
  111. package/lib/components/OverflowMenuItem/OverflowMenuItem.js +12 -7
  112. package/lib/components/OverflowMenuV2/index.js +13 -49
  113. package/lib/components/Popover/index.d.ts +55 -0
  114. package/lib/components/Popover/index.js +61 -29
  115. package/lib/components/RadioButtonGroup/RadioButtonGroup.js +6 -3
  116. package/lib/components/RadioTile/RadioTile.js +6 -6
  117. package/lib/components/Select/Select.d.ts +89 -0
  118. package/lib/components/SelectItem/SelectItem.d.ts +62 -0
  119. package/lib/components/SelectItem/SelectItem.js +1 -3
  120. package/lib/components/SelectItemGroup/SelectItemGroup.d.ts +52 -0
  121. package/lib/components/SkeletonText/SkeletonText.js +1 -1
  122. package/lib/components/Slider/Slider.Skeleton.d.ts +2 -2
  123. package/lib/components/Slider/Slider.d.ts +355 -0
  124. package/lib/components/Slider/Slider.js +62 -34
  125. package/lib/components/StructuredList/StructuredList.js +10 -38
  126. package/lib/components/Tabs/Tabs.js +3 -1
  127. package/lib/components/TextArea/TextArea.Skeleton.d.ts +33 -0
  128. package/lib/components/TextArea/TextArea.Skeleton.js +5 -5
  129. package/lib/components/TextArea/TextArea.d.ts +9 -2
  130. package/lib/components/TextArea/TextArea.js +30 -7
  131. package/lib/components/TextArea/index.js +2 -0
  132. package/lib/components/TextInput/TextInput.d.ts +106 -0
  133. package/lib/components/TextInput/TextInput.js +3 -2
  134. package/lib/components/Toggle/Toggle.js +8 -19
  135. package/lib/components/Tooltip/DefinitionTooltip.d.ts +52 -0
  136. package/lib/components/Tooltip/DefinitionTooltip.js +2 -2
  137. package/lib/components/Tooltip/Tooltip.d.ts +117 -0
  138. package/lib/components/Tooltip/Tooltip.js +6 -4
  139. package/lib/components/Tooltip/index.d.ts +9 -0
  140. package/lib/index.d.ts +2 -0
  141. package/lib/index.js +50 -46
  142. package/lib/internal/ClickListener.js +1 -2
  143. package/lib/internal/keyboard/match.js +1 -1
  144. package/lib/internal/useAttachedMenu.js +89 -0
  145. package/lib/internal/useDelayedState.d.ts +19 -0
  146. package/lib/internal/useDelayedState.js +7 -3
  147. package/lib/internal/useId.js +1 -1
  148. package/lib/internal/useMergedRefs.d.ts +13 -0
  149. package/lib/internal/useMergedRefs.js +2 -5
  150. package/lib/internal/useNormalizedInputProps.js +1 -0
  151. package/package.json +10 -10
@@ -89,6 +89,16 @@ var Slider = /*#__PURE__*/function (_PureComponent) {
89
89
  isValid: true
90
90
  });
91
91
 
92
+ _rollupPluginBabelHelpers.defineProperty(_rollupPluginBabelHelpers.assertThisInitialized(_this), "thumbRef", void 0);
93
+
94
+ _rollupPluginBabelHelpers.defineProperty(_rollupPluginBabelHelpers.assertThisInitialized(_this), "filledTrackRef", void 0);
95
+
96
+ _rollupPluginBabelHelpers.defineProperty(_rollupPluginBabelHelpers.assertThisInitialized(_this), "element", null);
97
+
98
+ _rollupPluginBabelHelpers.defineProperty(_rollupPluginBabelHelpers.assertThisInitialized(_this), "inputId", '');
99
+
100
+ _rollupPluginBabelHelpers.defineProperty(_rollupPluginBabelHelpers.assertThisInitialized(_this), "track", void 0);
101
+
92
102
  _rollupPluginBabelHelpers.defineProperty(_rollupPluginBabelHelpers.assertThisInitialized(_this), "onDragStart", function (evt) {
93
103
  // Do nothing if component is disabled
94
104
  if (_this.props.disabled || _this.props.readOnly) {
@@ -97,11 +107,15 @@ var Slider = /*#__PURE__*/function (_PureComponent) {
97
107
 
98
108
 
99
109
  DRAG_STOP_EVENT_TYPES.forEach(function (element) {
100
- _this.element.ownerDocument.addEventListener(element, _this.onDragStop);
110
+ var _this$element;
111
+
112
+ (_this$element = _this.element) === null || _this$element === void 0 ? void 0 : _this$element.ownerDocument.addEventListener(element, _this.onDragStop);
101
113
  }); // Register drag handlers
102
114
 
103
115
  DRAG_EVENT_TYPES.forEach(function (element) {
104
- _this.element.ownerDocument.addEventListener(element, _this.onDrag);
116
+ var _this$element2;
117
+
118
+ (_this$element2 = _this.element) === null || _this$element2 === void 0 ? void 0 : _this$element2.ownerDocument.addEventListener(element, _this.onDrag);
105
119
  }); // Perform first recalculation since we probably didn't click exactly in the
106
120
  // middle of the thumb
107
121
 
@@ -116,11 +130,15 @@ var Slider = /*#__PURE__*/function (_PureComponent) {
116
130
 
117
131
 
118
132
  DRAG_STOP_EVENT_TYPES.forEach(function (element) {
119
- _this.element.ownerDocument.removeEventListener(element, _this.onDragStop);
133
+ var _this$element3;
134
+
135
+ (_this$element3 = _this.element) === null || _this$element3 === void 0 ? void 0 : _this$element3.ownerDocument.removeEventListener(element, _this.onDragStop);
120
136
  }); // Remove drag handlers
121
137
 
122
138
  DRAG_EVENT_TYPES.forEach(function (element) {
123
- _this.element.ownerDocument.removeEventListener(element, _this.onDrag);
139
+ var _this$element4;
140
+
141
+ (_this$element4 = _this.element) === null || _this$element4 === void 0 ? void 0 : _this$element4.ownerDocument.removeEventListener(element, _this.onDrag);
124
142
  }); // Set needsOnRelease flag so event fires on next update
125
143
 
126
144
  _this.setState({
@@ -165,18 +183,23 @@ var Slider = /*#__PURE__*/function (_PureComponent) {
165
183
  }));
166
184
 
167
185
  _rollupPluginBabelHelpers.defineProperty(_rollupPluginBabelHelpers.assertThisInitialized(_this), "onKeyDown", function (evt) {
186
+ var _this$props$step3, _this$props$step4, _this$props$step5, _this$props$step6;
187
+
168
188
  // Do nothing if component is disabled or we don't have a valid event
169
189
  if (_this.props.disabled || _this.props.readOnly || !('which' in evt)) {
170
190
  return;
171
191
  }
172
192
 
173
- var which = Number.parseInt(evt.which);
174
193
  var delta = 0;
175
194
 
176
- if (match.matches(which, [keys.ArrowDown, keys.ArrowLeft])) {
177
- delta = -_this.props.step;
178
- } else if (match.matches(which, [keys.ArrowUp, keys.ArrowRight])) {
179
- delta = _this.props.step;
195
+ if (match.matches(evt.which, [keys.ArrowDown, keys.ArrowLeft])) {
196
+ var _this$props$step;
197
+
198
+ delta = -((_this$props$step = _this.props.step) !== null && _this$props$step !== void 0 ? _this$props$step : Slider.defaultProps.step);
199
+ } else if (match.matches(evt.which, [keys.ArrowUp, keys.ArrowRight])) {
200
+ var _this$props$step2;
201
+
202
+ delta = (_this$props$step2 = _this.props.step) !== null && _this$props$step2 !== void 0 ? _this$props$step2 : Slider.defaultProps.step;
180
203
  } else {
181
204
  // Ignore keys we don't want to handle
182
205
  return;
@@ -185,15 +208,15 @@ var Slider = /*#__PURE__*/function (_PureComponent) {
185
208
 
186
209
  if (evt.shiftKey) {
187
210
  var stepMultiplier = _this.props.stepMultiplier;
188
- delta *= stepMultiplier;
211
+ delta *= stepMultiplier !== null && stepMultiplier !== void 0 ? stepMultiplier : Slider.defaultProps.stepMultiplier;
189
212
  }
190
213
 
191
- Math.floor(_this.state.value / _this.props.step) * _this.props.step;
214
+ Math.floor(_this.state.value / ((_this$props$step3 = _this.props.step) !== null && _this$props$step3 !== void 0 ? _this$props$step3 : Slider.defaultProps.step)) * ((_this$props$step4 = _this.props.step) !== null && _this$props$step4 !== void 0 ? _this$props$step4 : Slider.defaultProps.step);
192
215
 
193
216
  var _this$calcValue2 = _this.calcValue({
194
217
  // Ensures custom value from `<input>` won't cause skipping next stepping point with right arrow key,
195
218
  // e.g. Typing 51 in `<input>`, moving focus onto the thumb and the hitting right arrow key should yield 52 instead of 54
196
- value: (delta > 0 ? Math.floor(_this.state.value / _this.props.step) * _this.props.step : _this.state.value) + delta
219
+ value: (delta > 0 ? Math.floor(_this.state.value / ((_this$props$step5 = _this.props.step) !== null && _this$props$step5 !== void 0 ? _this$props$step5 : Slider.defaultProps.step)) * ((_this$props$step6 = _this.props.step) !== null && _this$props$step6 !== void 0 ? _this$props$step6 : Slider.defaultProps.step) : _this.state.value) + delta
197
220
  }),
198
221
  value = _this$calcValue2.value,
199
222
  left = _this$calcValue2.left;
@@ -227,11 +250,11 @@ var Slider = /*#__PURE__*/function (_PureComponent) {
227
250
  value: targetValue,
228
251
  useRawValue: true
229
252
  }),
230
- value = _this$calcValue3.value,
253
+ _value = _this$calcValue3.value,
231
254
  left = _this$calcValue3.left;
232
255
 
233
256
  _this.setState({
234
- value: value,
257
+ value: _value,
235
258
  left: left
236
259
  });
237
260
  }
@@ -259,18 +282,16 @@ var Slider = /*#__PURE__*/function (_PureComponent) {
259
282
  });
260
283
 
261
284
  _rollupPluginBabelHelpers.defineProperty(_rollupPluginBabelHelpers.assertThisInitialized(_this), "calcValue", function (_ref) {
262
- var _ref$clientX = _ref.clientX,
263
- clientX = _ref$clientX === void 0 ? null : _ref$clientX,
264
- _ref$value = _ref.value,
265
- value = _ref$value === void 0 ? null : _ref$value,
285
+ var _this$element5, _this$element5$getBou, _this$props$step7, _this$props$step8;
286
+
287
+ var clientX = _ref.clientX,
288
+ value = _ref.value,
266
289
  _ref$useRawValue = _ref.useRawValue,
267
290
  useRawValue = _ref$useRawValue === void 0 ? false : _ref$useRawValue;
268
291
  var range = _this.props.max - _this.props.min;
269
-
270
- var boundingRect = _this.element.getBoundingClientRect();
271
-
272
- var totalSteps = range / _this.props.step;
273
- var width = boundingRect.right - boundingRect.left; // Enforce a minimum width of at least 1 for calculations
292
+ var boundingRect = (_this$element5 = _this.element) === null || _this$element5 === void 0 ? void 0 : (_this$element5$getBou = _this$element5.getBoundingClientRect) === null || _this$element5$getBou === void 0 ? void 0 : _this$element5$getBou.call(_this$element5);
293
+ var totalSteps = range / ((_this$props$step7 = _this.props.step) !== null && _this$props$step7 !== void 0 ? _this$props$step7 : Slider.defaultProps.step);
294
+ var width = boundingRect ? boundingRect.right - boundingRect.left : 0; // Enforce a minimum width of at least 1 for calculations
274
295
 
275
296
  if (width <= 0) {
276
297
  width = 1;
@@ -281,7 +302,9 @@ var Slider = /*#__PURE__*/function (_PureComponent) {
281
302
  var leftPercent;
282
303
 
283
304
  if (clientX != null) {
284
- var leftOffset = clientX - boundingRect.left;
305
+ var _boundingRect$left;
306
+
307
+ var leftOffset = clientX - ((_boundingRect$left = boundingRect === null || boundingRect === void 0 ? void 0 : boundingRect.left) !== null && _boundingRect$left !== void 0 ? _boundingRect$left : 0);
285
308
  leftPercent = leftOffset / width;
286
309
  } else {
287
310
  if (value == null) {
@@ -300,7 +323,7 @@ var Slider = /*#__PURE__*/function (_PureComponent) {
300
323
  };
301
324
  }
302
325
 
303
- var steppedValue = Math.round(leftPercent * totalSteps) * _this.props.step;
326
+ var steppedValue = Math.round(leftPercent * totalSteps) * ((_this$props$step8 = _this.props.step) !== null && _this$props$step8 !== void 0 ? _this$props$step8 : Slider.defaultProps.step);
304
327
 
305
328
  var steppedPercent = _this.clamp(steppedValue / range, 0, 1);
306
329
 
@@ -327,11 +350,11 @@ var Slider = /*#__PURE__*/function (_PureComponent) {
327
350
  var _this$calcValue4 = this.calcValue({
328
351
  useRawValue: true
329
352
  }),
330
- value = _this$calcValue4.value,
353
+ _value2 = _this$calcValue4.value,
331
354
  left = _this$calcValue4.left;
332
355
 
333
356
  this.setState({
334
- value: value,
357
+ value: _value2,
335
358
  left: left
336
359
  });
337
360
  }
@@ -350,10 +373,15 @@ var Slider = /*#__PURE__*/function (_PureComponent) {
350
373
  value: function componentDidUpdate(prevProps, prevState) {
351
374
  // Fire onChange event handler if present, if there's a usable value, and
352
375
  // if the value is different from the last one
353
- this.thumbRef.current.style.left = "".concat(this.state.left, "%");
354
- this.filledTrackRef.current.style.transform = "translate(0%, -50%) scaleX(".concat(this.state.left / 100, ")");
376
+ if (this.thumbRef.current) {
377
+ this.thumbRef.current.style.left = "".concat(this.state.left, "%");
378
+ }
379
+
380
+ if (this.filledTrackRef.current) {
381
+ this.filledTrackRef.current.style.transform = "translate(0%, -50%) scaleX(".concat(this.state.left / 100, ")");
382
+ }
355
383
 
356
- if (this.state.value !== '' && prevState.value !== this.state.value && typeof this.props.onChange === 'function') {
384
+ if (prevState.value !== this.state.value && typeof this.props.onChange === 'function') {
357
385
  this.props.onChange({
358
386
  value: this.state.value
359
387
  });
@@ -498,8 +526,8 @@ var Slider = /*#__PURE__*/function (_PureComponent) {
498
526
  name: name,
499
527
  className: inputClasses,
500
528
  value: value,
501
- "aria-labelledby": !ariaLabelInput ? labelId : null,
502
- "aria-label": ariaLabelInput ? ariaLabelInput : null,
529
+ "aria-labelledby": !ariaLabelInput ? labelId : undefined,
530
+ "aria-label": ariaLabelInput ? ariaLabelInput : undefined,
503
531
  disabled: disabled,
504
532
  required: required,
505
533
  min: min,
@@ -507,9 +535,9 @@ var Slider = /*#__PURE__*/function (_PureComponent) {
507
535
  step: step,
508
536
  onChange: _this2.onChange,
509
537
  onBlur: _this2.onBlur,
510
- onKeyUp: _this2.onInputKeyUp,
538
+ onKeyUp: _this2.props.onInputKeyUp,
511
539
  "data-invalid": isValid ? null : true,
512
- "aria-invalid": isValid ? null : true,
540
+ "aria-invalid": isValid ? undefined : true,
513
541
  readOnly: readOnly
514
542
  })));
515
543
  });
@@ -23,7 +23,9 @@ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
23
23
  var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
24
24
  var cx__default = /*#__PURE__*/_interopDefaultLegacy(cx);
25
25
 
26
- var _excluded = ["children", "selection", "className", "ariaLabel", "isCondensed", "isFlush"],
26
+ var _StructuredListWrappe;
27
+
28
+ var _excluded = ["children", "selection", "className", "aria-label", "ariaLabel", "isCondensed", "isFlush"],
27
29
  _excluded2 = ["children", "className"],
28
30
  _excluded3 = ["children", "className"],
29
31
  _excluded4 = ["onKeyDown", "children", "className", "head"],
@@ -37,7 +39,8 @@ function StructuredListWrapper(props) {
37
39
  var children = props.children,
38
40
  selection = props.selection,
39
41
  className = props.className,
40
- ariaLabel = props.ariaLabel,
42
+ ariaLabel = props['aria-label'],
43
+ deprecatedAriaLabel = props.ariaLabel,
41
44
  isCondensed = props.isCondensed,
42
45
  isFlush = props.isFlush,
43
46
  other = _rollupPluginBabelHelpers.objectWithoutProperties(props, _excluded);
@@ -58,46 +61,15 @@ function StructuredListWrapper(props) {
58
61
  role: "table",
59
62
  className: classes
60
63
  }, other, {
61
- "aria-label": ariaLabel
64
+ "aria-label": deprecatedAriaLabel || ariaLabel
62
65
  }), children)));
63
66
  }
64
- StructuredListWrapper.propTypes = {
65
- /**
66
- * Specify a label to be read by screen readers on the container node
67
- */
68
- ariaLabel: PropTypes__default["default"].string,
69
-
70
- /**
71
- * Provide the contents of your StructuredListWrapper
72
- */
73
- children: PropTypes__default["default"].node,
74
-
75
- /**
76
- * Specify an optional className to be applied to the container node
77
- */
78
- className: PropTypes__default["default"].string,
79
-
80
- /**
81
- * Specify if structured list is condensed, default is false
82
- */
83
- isCondensed: PropTypes__default["default"].bool,
84
-
85
- /**
86
- * Specify if structured list is flush, default is false
87
- */
88
- isFlush: PropTypes__default["default"].bool,
89
-
90
- /**
91
- * Specify whether your StructuredListWrapper should have selections
92
- */
93
- selection: PropTypes__default["default"].bool
94
- };
95
- StructuredListWrapper.defaultProps = {
67
+ StructuredListWrapper.propTypes = (_StructuredListWrappe = {}, _rollupPluginBabelHelpers.defineProperty(_StructuredListWrappe, 'aria-label', PropTypes__default["default"].string), _rollupPluginBabelHelpers.defineProperty(_StructuredListWrappe, "ariaLabel", deprecate["default"](PropTypes__default["default"].string, 'This prop syntax has been deprecated. Please use the new `aria-label`.')), _rollupPluginBabelHelpers.defineProperty(_StructuredListWrappe, "children", PropTypes__default["default"].node), _rollupPluginBabelHelpers.defineProperty(_StructuredListWrappe, "className", PropTypes__default["default"].string), _rollupPluginBabelHelpers.defineProperty(_StructuredListWrappe, "isCondensed", PropTypes__default["default"].bool), _rollupPluginBabelHelpers.defineProperty(_StructuredListWrappe, "isFlush", PropTypes__default["default"].bool), _rollupPluginBabelHelpers.defineProperty(_StructuredListWrappe, "selection", PropTypes__default["default"].bool), _StructuredListWrappe);
68
+ StructuredListWrapper.defaultProps = _rollupPluginBabelHelpers.defineProperty({
96
69
  selection: false,
97
70
  isCondensed: false,
98
- isFlush: false,
99
- ariaLabel: 'Structured list section'
100
- };
71
+ isFlush: false
72
+ }, 'aria-label', 'Structured list section');
101
73
  function StructuredListHead(props) {
102
74
  var children = props.children,
103
75
  className = props.className,
@@ -15,6 +15,7 @@ var cx = require('classnames');
15
15
  var debounce = require('lodash.debounce');
16
16
  var PropTypes = require('prop-types');
17
17
  var React = require('react');
18
+ require('../Tooltip/DefinitionTooltip.js');
18
19
  var Tooltip = require('../Tooltip/Tooltip.js');
19
20
  var useControllableState = require('../../internal/useControllableState.js');
20
21
  var useEffectOnce = require('../../internal/useEffectOnce.js');
@@ -24,6 +25,7 @@ var useMergedRefs = require('../../internal/useMergedRefs.js');
24
25
  var useNoInteractiveChildren = require('../../internal/useNoInteractiveChildren.js');
25
26
  var usePrefix = require('../../internal/usePrefix.js');
26
27
  var usePressable = require('./usePressable.js');
28
+ var deprecate = require('../../prop-types/deprecate.js');
27
29
  var match = require('../../internal/keyboard/match.js');
28
30
  var keys = require('../../internal/keyboard/keys.js');
29
31
 
@@ -388,7 +390,7 @@ TabList.propTypes = {
388
390
  /**
389
391
  * Specify whether or not to use the light component variant
390
392
  */
391
- light: PropTypes__default["default"].bool,
393
+ light: deprecate["default"](PropTypes__default["default"].bool, 'The `light` prop for `TabList` has ' + 'been deprecated in favor of the new `Layer` component. It will be removed in the next major release.'),
392
394
 
393
395
  /**
394
396
  * Provide the props that describe the right overflow button
@@ -0,0 +1,33 @@
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
+ export interface TextAreaSkeletonProps extends React.InputHTMLAttributes<HTMLDivElement> {
10
+ /**
11
+ * Specify an optional className to add to the form item wrapper.
12
+ */
13
+ className?: string;
14
+ /**
15
+ * Specify whether the label should be hidden, or not
16
+ */
17
+ hideLabel?: boolean;
18
+ }
19
+ declare const TextAreaSkeleton: {
20
+ (props: TextAreaSkeletonProps): JSX.Element;
21
+ propTypes: {
22
+ /**
23
+ * Specify an optional className to add to the form item wrapper.
24
+ */
25
+ className: PropTypes.Requireable<string>;
26
+ /**
27
+ * Specify whether the label should be hidden, or not
28
+ */
29
+ hideLabel: PropTypes.Requireable<boolean>;
30
+ };
31
+ };
32
+ export default TextAreaSkeleton;
33
+ export { TextAreaSkeleton };
@@ -21,12 +21,12 @@ var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
21
21
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
22
22
  var cx__default = /*#__PURE__*/_interopDefaultLegacy(cx);
23
23
 
24
- var _excluded = ["hideLabel", "className"];
24
+ var _excluded = ["className", "hideLabel"];
25
25
 
26
- var TextAreaSkeleton = function TextAreaSkeleton(_ref) {
27
- var hideLabel = _ref.hideLabel,
28
- className = _ref.className,
29
- rest = _rollupPluginBabelHelpers.objectWithoutProperties(_ref, _excluded);
26
+ var TextAreaSkeleton = function TextAreaSkeleton(props) {
27
+ var className = props.className,
28
+ hideLabel = props.hideLabel,
29
+ rest = _rollupPluginBabelHelpers.objectWithoutProperties(props, _excluded);
30
30
 
31
31
  var prefix = usePrefix.usePrefix();
32
32
  return /*#__PURE__*/React__default["default"].createElement("div", _rollupPluginBabelHelpers["extends"]({
@@ -6,8 +6,7 @@
6
6
  */
7
7
  import { ReactNodeLike } from 'prop-types';
8
8
  import React from 'react';
9
- type ExcludedAttributes = '';
10
- export interface TextAreaProps extends Omit<React.InputHTMLAttributes<HTMLTextAreaElement>, ExcludedAttributes> {
9
+ export interface TextAreaProps extends React.InputHTMLAttributes<HTMLTextAreaElement> {
11
10
  /**
12
11
  * Provide a custom className that is applied directly to the underlying
13
12
  * `<textarea>` node
@@ -90,6 +89,14 @@ export interface TextAreaProps extends Omit<React.InputHTMLAttributes<HTMLTextAr
90
89
  * Provide the current value of the `<textarea>`
91
90
  */
92
91
  value?: string | number;
92
+ /**
93
+ * Specify whether the control is currently in warning state
94
+ */
95
+ warn?: boolean;
96
+ /**
97
+ * Provide the text that is displayed when the control is in warning state
98
+ */
99
+ warnText?: ReactNodeLike;
93
100
  }
94
101
  declare const TextArea: React.ForwardRefExoticComponent<TextAreaProps & React.RefAttributes<unknown>>;
95
102
  export default TextArea;
@@ -29,9 +29,9 @@ var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
29
29
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
30
30
  var cx__default = /*#__PURE__*/_interopDefaultLegacy(cx);
31
31
 
32
- var _excluded = ["className", "id", "labelText", "hideLabel", "onChange", "onClick", "invalid", "invalidText", "helperText", "light", "placeholder", "enableCounter", "maxCount"];
32
+ var _excluded = ["className", "id", "labelText", "hideLabel", "onChange", "onClick", "invalid", "invalidText", "helperText", "light", "placeholder", "enableCounter", "maxCount", "warn", "warnText"];
33
33
  var TextArea = /*#__PURE__*/React__default["default"].forwardRef(function (props, forwardRef) {
34
- var _classNames, _classNames4;
34
+ var _classNames, _classNames4, _classNames5;
35
35
 
36
36
  var className = props.className,
37
37
  id = props.id,
@@ -46,6 +46,9 @@ var TextArea = /*#__PURE__*/React__default["default"].forwardRef(function (props
46
46
  placeholder = props.placeholder,
47
47
  enableCounter = props.enableCounter,
48
48
  maxCount = props.maxCount,
49
+ _props$warn = props.warn,
50
+ warn = _props$warn === void 0 ? false : _props$warn,
51
+ warnText = props.warnText,
49
52
  other = _rollupPluginBabelHelpers.objectWithoutProperties(props, _excluded);
50
53
 
51
54
  var prefix = usePrefix.usePrefix();
@@ -107,7 +110,13 @@ var TextArea = /*#__PURE__*/React__default["default"].forwardRef(function (props
107
110
  }, invalidText, isFluid && /*#__PURE__*/React__default["default"].createElement(iconsReact.WarningFilled, {
108
111
  className: "".concat(prefix, "--text-area__invalid-icon")
109
112
  })) : null;
110
- var textareaClasses = cx__default["default"]("".concat(prefix, "--text-area"), [enabled ? null : className], (_classNames4 = {}, _rollupPluginBabelHelpers.defineProperty(_classNames4, "".concat(prefix, "--text-area--light"), light), _rollupPluginBabelHelpers.defineProperty(_classNames4, "".concat(prefix, "--text-area--invalid"), invalid), _classNames4));
113
+ var warning = warn ? /*#__PURE__*/React__default["default"].createElement("div", {
114
+ role: "alert",
115
+ className: "".concat(prefix, "--form-requirement")
116
+ }, warnText, isFluid && /*#__PURE__*/React__default["default"].createElement(iconsReact.WarningAltFilled, {
117
+ className: "".concat(prefix, "--text-area__invalid-icon ").concat(prefix, "--text-area__invalid-icon--warning")
118
+ })) : null;
119
+ var textareaClasses = cx__default["default"]("".concat(prefix, "--text-area"), [enabled ? null : className], (_classNames4 = {}, _rollupPluginBabelHelpers.defineProperty(_classNames4, "".concat(prefix, "--text-area--light"), light), _rollupPluginBabelHelpers.defineProperty(_classNames4, "".concat(prefix, "--text-area--invalid"), invalid), _rollupPluginBabelHelpers.defineProperty(_classNames4, "".concat(prefix, "--text-area--warn"), warn), _classNames4));
111
120
  var textareaRef = React.useRef(null);
112
121
  var ref = useMergedRefs.useMergedRefs([forwardRef, textareaRef]);
113
122
  useIsomorphicEffect["default"](function () {
@@ -132,16 +141,18 @@ var TextArea = /*#__PURE__*/React__default["default"].forwardRef(function (props
132
141
  }, /*#__PURE__*/React__default["default"].createElement("div", {
133
142
  className: "".concat(prefix, "--text-area__label-wrapper")
134
143
  }, label, counter), /*#__PURE__*/React__default["default"].createElement("div", {
135
- className: cx__default["default"]("".concat(prefix, "--text-area__wrapper"), _rollupPluginBabelHelpers.defineProperty({}, "".concat(prefix, "--text-area__wrapper--readonly"), other.readOnly)),
144
+ className: cx__default["default"]("".concat(prefix, "--text-area__wrapper"), (_classNames5 = {}, _rollupPluginBabelHelpers.defineProperty(_classNames5, "".concat(prefix, "--text-area__wrapper--readonly"), other.readOnly), _rollupPluginBabelHelpers.defineProperty(_classNames5, "".concat(prefix, "--text-area__wrapper--warn"), warn), _classNames5)),
136
145
  "data-invalid": invalid || null
137
146
  }, invalid && !isFluid && /*#__PURE__*/React__default["default"].createElement(iconsReact.WarningFilled, {
138
147
  className: "".concat(prefix, "--text-area__invalid-icon")
148
+ }), warn && !invalid && !isFluid && /*#__PURE__*/React__default["default"].createElement(iconsReact.WarningAltFilled, {
149
+ className: "".concat(prefix, "--text-area__invalid-icon ").concat(prefix, "--text-area__invalid-icon--warning")
139
150
  }), input, /*#__PURE__*/React__default["default"].createElement("span", {
140
151
  className: "".concat(prefix, "--text-area__counter-alert"),
141
152
  role: "alert"
142
153
  }, ariaAnnouncement), isFluid && /*#__PURE__*/React__default["default"].createElement("hr", {
143
154
  className: "".concat(prefix, "--text-area__divider")
144
- }), isFluid && invalid ? error : null), invalid && !isFluid ? error : helper);
155
+ }), isFluid && invalid ? error : null, isFluid && warn && !invalid ? warning : null), !invalid && !warn && !isFluid ? helper : null, invalid && !isFluid ? error : null, warn && !invalid && !isFluid ? warning : null);
145
156
  });
146
157
  TextArea.displayName = 'TextArea';
147
158
  TextArea.propTypes = {
@@ -243,7 +254,17 @@ TextArea.propTypes = {
243
254
  /**
244
255
  * Provide the current value of the `<textarea>`
245
256
  */
246
- value: PropTypes__default["default"].oneOfType([PropTypes__default["default"].string, PropTypes__default["default"].number])
257
+ value: PropTypes__default["default"].oneOfType([PropTypes__default["default"].string, PropTypes__default["default"].number]),
258
+
259
+ /**
260
+ * Specify whether the control is currently in warning state
261
+ */
262
+ warn: PropTypes__default["default"].bool,
263
+
264
+ /**
265
+ * Provide the text that is displayed when the control is in warning state
266
+ */
267
+ warnText: PropTypes__default["default"].node
247
268
  };
248
269
  TextArea.defaultProps = {
249
270
  disabled: false,
@@ -255,7 +276,9 @@ TextArea.defaultProps = {
255
276
  invalidText: '',
256
277
  helperText: '',
257
278
  enableCounter: false,
258
- maxCount: undefined
279
+ maxCount: undefined,
280
+ warn: false,
281
+ warnText: ''
259
282
  };
260
283
  var TextArea$1 = TextArea;
261
284
 
@@ -10,8 +10,10 @@
10
10
  Object.defineProperty(exports, '__esModule', { value: true });
11
11
 
12
12
  var TextArea = require('./TextArea.js');
13
+ var TextArea_Skeleton = require('./TextArea.Skeleton.js');
13
14
 
14
15
 
15
16
 
16
17
  exports.TextArea = TextArea["default"];
17
18
  exports["default"] = TextArea["default"];
19
+ exports.TextAreaSkeleton = TextArea_Skeleton["default"];
@@ -0,0 +1,106 @@
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 React, { ReactNode } from 'react';
8
+ type ExcludedAttributes = 'defaultValue' | 'id' | 'size' | 'value';
9
+ export interface TextInputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, ExcludedAttributes> {
10
+ /**
11
+ * Specify an optional className to be applied to the `<input>` node
12
+ */
13
+ className?: string;
14
+ /**
15
+ * Optionally provide the default value of the `<input>`
16
+ */
17
+ defaultValue?: string | number;
18
+ /**
19
+ * Specify whether the `<input>` should be disabled
20
+ */
21
+ disabled?: boolean;
22
+ /**
23
+ * Specify whether to display the character counter
24
+ */
25
+ enableCounter?: boolean;
26
+ /**
27
+ * Provide text that is used alongside the control label for additional help
28
+ */
29
+ helperText?: ReactNode;
30
+ /**
31
+ * Specify whether you want the underlying label to be visually hidden
32
+ */
33
+ hideLabel?: boolean;
34
+ /**
35
+ * Specify a custom `id` for the `<input>`
36
+ */
37
+ id: string;
38
+ /**
39
+ * `true` to use the inline version.
40
+ */
41
+ inline?: boolean;
42
+ /**
43
+ * Specify whether the control is currently invalid
44
+ */
45
+ invalid?: boolean;
46
+ /**
47
+ * Provide the text that is displayed when the control is in an invalid state
48
+ */
49
+ invalidText?: ReactNode;
50
+ /**
51
+ * Provide the text that will be read by a screen reader when visiting this
52
+ * control
53
+ */
54
+ labelText: ReactNode;
55
+ /**
56
+ * `true` to use the light version. For use on $ui-01 backgrounds only.
57
+ * Don't use this to make tile background color same as container background color.
58
+ * 'The `light` prop for `TextInput` has ' +
59
+ 'been deprecated in favor of the new `Layer` component. It will be removed in the next major release.'
60
+ */
61
+ light?: boolean;
62
+ /**
63
+ * Max character count allowed for the input. This is needed in order for enableCounter to display
64
+ */
65
+ maxCount?: number;
66
+ /**
67
+ * Optionally provide an `onChange` handler that is called whenever `<input>`
68
+ * is updated
69
+ */
70
+ onChange?: (event: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => void;
71
+ /**
72
+ * Optionally provide an `onClick` handler that is called whenever the
73
+ * `<input>` is clicked
74
+ */
75
+ onClick?: (event: React.MouseEvent<HTMLElement>) => void;
76
+ /**
77
+ * Specify the placeholder attribute for the `<input>`
78
+ */
79
+ placeholder?: string;
80
+ /**
81
+ * Whether the input should be read-only
82
+ */
83
+ readOnly?: boolean;
84
+ /**
85
+ * Specify the size of the Text Input. Currently supports the following:
86
+ */
87
+ size?: 'sm' | 'md' | 'lg' | 'xl';
88
+ /**
89
+ * Specify the type of the `<input>`
90
+ */
91
+ type?: string;
92
+ /**
93
+ * Specify the value of the `<input>`
94
+ */
95
+ value?: string | number | undefined;
96
+ /**
97
+ * Specify whether the control is currently in warning state
98
+ */
99
+ warn?: boolean;
100
+ /**
101
+ * Provide the text that is displayed when the control is in warning state
102
+ */
103
+ warnText?: ReactNode;
104
+ }
105
+ declare const TextInput: React.ForwardRefExoticComponent<TextInputProps & React.RefAttributes<unknown>>;
106
+ export default TextInput;
@@ -90,7 +90,7 @@ var TextInput = /*#__PURE__*/React__default["default"].forwardRef(function TextI
90
90
  var defaultValue = rest.defaultValue,
91
91
  value = rest.value;
92
92
 
93
- var _useState = React.useState((defaultValue === null || defaultValue === void 0 ? void 0 : defaultValue.length) || (value === null || value === void 0 ? void 0 : value.length) || 0),
93
+ var _useState = React.useState((defaultValue === null || defaultValue === void 0 ? void 0 : defaultValue.toString().length) || (value === null || value === void 0 ? void 0 : value.toString().length) || 0),
94
94
  _useState2 = _rollupPluginBabelHelpers.slicedToArray(_useState, 2),
95
95
  textCount = _useState2[0],
96
96
  setTextCount = _useState2[1];
@@ -168,6 +168,7 @@ var TextInput = /*#__PURE__*/React__default["default"].forwardRef(function TextI
168
168
  isFluid = _useContext.isFluid;
169
169
 
170
170
  var ariaAnnouncement = useAnnouncer.useAnnouncer(textCount, maxCount);
171
+ var Icon = normalizedProps.icon;
171
172
  return /*#__PURE__*/React__default["default"].createElement("div", {
172
173
  className: inputWrapperClasses
173
174
  }, !inline ? labelWrapper : /*#__PURE__*/React__default["default"].createElement("div", {
@@ -177,7 +178,7 @@ var TextInput = /*#__PURE__*/React__default["default"].forwardRef(function TextI
177
178
  }, /*#__PURE__*/React__default["default"].createElement("div", {
178
179
  className: fieldWrapperClasses,
179
180
  "data-invalid": normalizedProps.invalid || null
180
- }, normalizedProps.icon && /*#__PURE__*/React__default["default"].createElement(normalizedProps.icon, {
181
+ }, Icon && /*#__PURE__*/React__default["default"].createElement(Icon, {
181
182
  className: iconClasses
182
183
  }), input, /*#__PURE__*/React__default["default"].createElement("span", {
183
184
  className: "".concat(prefix, "--text-input__counter-alert"),