@carbon/react 1.44.0-rc.0 → 1.45.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 (140) hide show
  1. package/.playwright/INTERNAL_AVT_REPORT_DO_NOT_USE.json +1009 -1050
  2. package/es/components/Accordion/AccordionItem.d.ts +1 -1
  3. package/es/components/Accordion/AccordionItem.js +19 -15
  4. package/es/components/Checkbox/Checkbox.d.ts +4 -0
  5. package/es/components/Checkbox/Checkbox.js +15 -2
  6. package/es/components/CheckboxGroup/CheckboxGroup.js +17 -2
  7. package/es/components/ComboBox/ComboBox.d.ts +1 -1
  8. package/es/components/ComboBox/ComboBox.js +1 -1
  9. package/es/components/ComboButton/index.js +1 -1
  10. package/es/components/ComposedModal/ModalFooter.d.ts +2 -1
  11. package/es/components/DataTable/DataTable.d.ts +2 -0
  12. package/es/components/DataTable/DataTable.js +3 -0
  13. package/es/components/DataTable/TableExpandRow.js +20 -3
  14. package/es/components/DataTable/TableHeader.d.ts +5 -0
  15. package/es/components/DataTable/TableHeader.js +30 -6
  16. package/es/components/DataTable/TableSlugRow.d.ts +31 -0
  17. package/es/components/DataTable/TableSlugRow.js +49 -0
  18. package/es/components/DataTable/index.d.ts +2 -1
  19. package/es/components/DataTable/index.js +3 -0
  20. package/es/components/DataTable/tools/sorting.js +1 -1
  21. package/es/components/DatePickerInput/DatePickerInput.d.ts +1 -1
  22. package/es/components/DatePickerInput/DatePickerInput.js +1 -1
  23. package/es/components/Dropdown/Dropdown.d.ts +1 -1
  24. package/es/components/Dropdown/Dropdown.js +1 -1
  25. package/es/components/FileUploader/FileUploader.js +5 -3
  26. package/es/components/Grid/Column.js +11 -1
  27. package/es/components/InlineLoading/InlineLoading.d.ts +68 -0
  28. package/es/components/InlineLoading/InlineLoading.js +4 -4
  29. package/es/components/InlineLoading/index.d.ts +9 -0
  30. package/es/components/Layer/LayerContext.d.ts +8 -0
  31. package/es/components/Layer/LayerLevel.d.ts +5 -0
  32. package/es/components/Layer/LayerLevel.js +12 -0
  33. package/es/components/Layer/index.d.ts +38 -0
  34. package/es/components/Layer/index.js +9 -8
  35. package/es/components/Menu/MenuItem.js +2 -1
  36. package/es/components/MenuButton/index.js +8 -2
  37. package/es/components/Modal/Modal.d.ts +3 -2
  38. package/es/components/MultiSelect/FilterableMultiSelect.js +1 -1
  39. package/es/components/MultiSelect/MultiSelect.d.ts +1 -1
  40. package/es/components/MultiSelect/MultiSelect.js +1 -1
  41. package/es/components/Notification/Notification.js +1 -0
  42. package/es/components/NumberInput/NumberInput.d.ts +1 -1
  43. package/es/components/NumberInput/NumberInput.js +1 -1
  44. package/es/components/RadioButton/RadioButton.d.ts +4 -0
  45. package/es/components/RadioButton/RadioButton.js +15 -2
  46. package/es/components/RadioButtonGroup/RadioButtonGroup.d.ts +4 -0
  47. package/es/components/RadioButtonGroup/RadioButtonGroup.js +17 -2
  48. package/es/components/Select/Select.d.ts +2 -2
  49. package/es/components/Select/Select.js +1 -1
  50. package/es/components/Slider/Slider.Skeleton.js +17 -3
  51. package/es/components/Slider/Slider.js +132 -93
  52. package/es/components/Slider/SliderHandles.d.ts +4 -0
  53. package/es/components/Slider/SliderHandles.js +65 -0
  54. package/es/components/Slug/index.js +1 -1
  55. package/es/components/Tabs/Tabs.js +1 -1
  56. package/es/components/TextArea/TextArea.d.ts +7 -3
  57. package/es/components/TextArea/TextArea.js +84 -17
  58. package/es/components/TextInput/TextInput.d.ts +1 -1
  59. package/es/components/TextInput/TextInput.js +1 -1
  60. package/es/components/Tile/Tile.d.ts +37 -0
  61. package/es/components/Tile/Tile.js +114 -13
  62. package/es/components/Tooltip/Tooltip.js +48 -2
  63. package/es/components/UIShell/Content.d.ts +296 -0
  64. package/es/components/UIShell/Content.js +1 -2
  65. package/es/components/UIShell/HeaderPanel.d.ts +36 -0
  66. package/es/components/UIShell/HeaderPanel.js +6 -6
  67. package/es/components/UIShell/SideNav.d.ts +1 -1
  68. package/es/index.js +2 -1
  69. package/es/internal/useAnnouncer.js +2 -1
  70. package/es/internal/useNoInteractiveChildren.js +2 -6
  71. package/lib/components/Accordion/AccordionItem.d.ts +1 -1
  72. package/lib/components/Accordion/AccordionItem.js +18 -14
  73. package/lib/components/Checkbox/Checkbox.d.ts +4 -0
  74. package/lib/components/Checkbox/Checkbox.js +15 -2
  75. package/lib/components/CheckboxGroup/CheckboxGroup.js +17 -2
  76. package/lib/components/ComboBox/ComboBox.d.ts +1 -1
  77. package/lib/components/ComboBox/ComboBox.js +1 -1
  78. package/lib/components/ComboButton/index.js +1 -1
  79. package/lib/components/ComposedModal/ModalFooter.d.ts +2 -1
  80. package/lib/components/DataTable/DataTable.d.ts +2 -0
  81. package/lib/components/DataTable/DataTable.js +3 -0
  82. package/lib/components/DataTable/TableExpandRow.js +20 -3
  83. package/lib/components/DataTable/TableHeader.d.ts +5 -0
  84. package/lib/components/DataTable/TableHeader.js +29 -5
  85. package/lib/components/DataTable/TableSlugRow.d.ts +31 -0
  86. package/lib/components/DataTable/TableSlugRow.js +59 -0
  87. package/lib/components/DataTable/index.d.ts +2 -1
  88. package/lib/components/DataTable/index.js +3 -0
  89. package/lib/components/DataTable/tools/sorting.js +1 -1
  90. package/lib/components/DatePickerInput/DatePickerInput.d.ts +1 -1
  91. package/lib/components/DatePickerInput/DatePickerInput.js +1 -1
  92. package/lib/components/Dropdown/Dropdown.d.ts +1 -1
  93. package/lib/components/Dropdown/Dropdown.js +1 -1
  94. package/lib/components/FileUploader/FileUploader.js +5 -3
  95. package/lib/components/Grid/Column.js +11 -1
  96. package/lib/components/InlineLoading/InlineLoading.d.ts +68 -0
  97. package/lib/components/InlineLoading/InlineLoading.js +4 -4
  98. package/lib/components/InlineLoading/index.d.ts +9 -0
  99. package/lib/components/Layer/LayerContext.d.ts +8 -0
  100. package/lib/components/Layer/LayerLevel.d.ts +5 -0
  101. package/lib/components/Layer/LayerLevel.js +18 -0
  102. package/lib/components/Layer/index.d.ts +38 -0
  103. package/lib/components/Layer/index.js +10 -9
  104. package/lib/components/Menu/MenuItem.js +2 -1
  105. package/lib/components/MenuButton/index.js +8 -2
  106. package/lib/components/Modal/Modal.d.ts +3 -2
  107. package/lib/components/MultiSelect/FilterableMultiSelect.js +1 -1
  108. package/lib/components/MultiSelect/MultiSelect.d.ts +1 -1
  109. package/lib/components/MultiSelect/MultiSelect.js +1 -1
  110. package/lib/components/Notification/Notification.js +1 -0
  111. package/lib/components/NumberInput/NumberInput.d.ts +1 -1
  112. package/lib/components/NumberInput/NumberInput.js +1 -1
  113. package/lib/components/RadioButton/RadioButton.d.ts +4 -0
  114. package/lib/components/RadioButton/RadioButton.js +15 -2
  115. package/lib/components/RadioButtonGroup/RadioButtonGroup.d.ts +4 -0
  116. package/lib/components/RadioButtonGroup/RadioButtonGroup.js +17 -2
  117. package/lib/components/Select/Select.d.ts +2 -2
  118. package/lib/components/Select/Select.js +1 -1
  119. package/lib/components/Slider/Slider.Skeleton.js +17 -3
  120. package/lib/components/Slider/Slider.js +132 -93
  121. package/lib/components/Slider/SliderHandles.d.ts +4 -0
  122. package/lib/components/Slider/SliderHandles.js +76 -0
  123. package/lib/components/Slug/index.js +1 -1
  124. package/lib/components/Tabs/Tabs.js +1 -1
  125. package/lib/components/TextArea/TextArea.d.ts +7 -3
  126. package/lib/components/TextArea/TextArea.js +83 -16
  127. package/lib/components/TextInput/TextInput.d.ts +1 -1
  128. package/lib/components/TextInput/TextInput.js +1 -1
  129. package/lib/components/Tile/Tile.d.ts +37 -0
  130. package/lib/components/Tile/Tile.js +114 -13
  131. package/lib/components/Tooltip/Tooltip.js +47 -1
  132. package/lib/components/UIShell/Content.d.ts +296 -0
  133. package/lib/components/UIShell/Content.js +1 -2
  134. package/lib/components/UIShell/HeaderPanel.d.ts +36 -0
  135. package/lib/components/UIShell/HeaderPanel.js +7 -7
  136. package/lib/components/UIShell/SideNav.d.ts +1 -1
  137. package/lib/index.js +4 -2
  138. package/lib/internal/useAnnouncer.js +2 -1
  139. package/lib/internal/useNoInteractiveChildren.js +2 -6
  140. package/package.json +5 -8
@@ -20,6 +20,9 @@ var deprecate = require('../../prop-types/deprecate.js');
20
20
  var index = require('../FeatureFlags/index.js');
21
21
  var iconsReact = require('@carbon/icons-react');
22
22
  require('../Text/index.js');
23
+ require('../Tooltip/DefinitionTooltip.js');
24
+ var Tooltip = require('../Tooltip/Tooltip.js');
25
+ var SliderHandles = require('./SliderHandles.js');
23
26
  var match = require('../../internal/keyboard/match.js');
24
27
  var Text = require('../Text/Text.js');
25
28
 
@@ -30,59 +33,53 @@ var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
30
33
  var cx__default = /*#__PURE__*/_interopDefaultLegacy(cx);
31
34
  var throttle__default = /*#__PURE__*/_interopDefaultLegacy(throttle);
32
35
 
33
- var _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9, _path10, _path11, _path12, _path13, _path14, _LowerHandle, _LowerHandleFocus, _UpperHandle, _UpperHandleFocus, _UpperHandle2, _UpperHandleFocus2, _LowerHandle2, _LowerHandleFocus2;
34
- const LowerHandle = () => /*#__PURE__*/React__default["default"].createElement(usePrefix.PrefixContext.Consumer, null, prefix => /*#__PURE__*/React__default["default"].createElement("svg", {
35
- xmlns: "http://www.w3.org/2000/svg",
36
- viewBox: "0 0 16 24",
37
- className: `${prefix}--slider__thumb-icon ${prefix}--slider__thumb-icon--lower`
38
- }, _path || (_path = /*#__PURE__*/React__default["default"].createElement("path", {
39
- d: "M15.08 6.46H16v11.08h-.92zM4.46 17.54c-.25 0-.46-.21-.46-.46V6.92a.465.465 0 0 1 .69-.4l8.77 5.08a.46.46 0 0 1 0 .8l-8.77 5.08c-.07.04-.15.06-.23.06Z"
40
- })), _path2 || (_path2 = /*#__PURE__*/React__default["default"].createElement("path", {
41
- fill: "none",
42
- d: "M-4 0h24v24H-4z"
43
- }))));
44
- const LowerHandleFocus = () => /*#__PURE__*/React__default["default"].createElement(usePrefix.PrefixContext.Consumer, null, prefix => /*#__PURE__*/React__default["default"].createElement("svg", {
45
- xmlns: "http://www.w3.org/2000/svg",
46
- viewBox: "0 0 16 24",
47
- className: `${prefix}--slider__thumb-icon ${prefix}--slider__thumb-icon--lower ${prefix}--slider__thumb-icon--focus`
48
- }, _path3 || (_path3 = /*#__PURE__*/React__default["default"].createElement("path", {
49
- d: "M15.08 6.46H16v11.08h-.92zM4.46 17.54c-.25 0-.46-.21-.46-.46V6.92a.465.465 0 0 1 .69-.4l8.77 5.08a.46.46 0 0 1 0 .8l-8.77 5.08c-.07.04-.15.06-.23.06Z"
50
- })), _path4 || (_path4 = /*#__PURE__*/React__default["default"].createElement("path", {
51
- fill: "none",
52
- d: "M-4 0h24v24H-4z"
53
- })), _path5 || (_path5 = /*#__PURE__*/React__default["default"].createElement("path", {
54
- d: "M15.08 0H16v6.46h-.92z"
55
- })), _path6 || (_path6 = /*#__PURE__*/React__default["default"].createElement("path", {
56
- d: "M0 0h.92v24H0zM15.08 0H16v24h-.92z"
57
- })), _path7 || (_path7 = /*#__PURE__*/React__default["default"].createElement("path", {
58
- d: "M0 .92V0h16v.92zM0 24v-.92h16V24z"
59
- }))));
60
- const UpperHandle = () => /*#__PURE__*/React__default["default"].createElement(usePrefix.PrefixContext.Consumer, null, prefix => /*#__PURE__*/React__default["default"].createElement("svg", {
61
- xmlns: "http://www.w3.org/2000/svg",
62
- viewBox: "0 0 16 24",
63
- className: `${prefix}--slider__thumb-icon ${prefix}--slider__thumb-icon--upper`
64
- }, _path8 || (_path8 = /*#__PURE__*/React__default["default"].createElement("path", {
65
- d: "M0 6.46h.92v11.08H0zM11.54 6.46c.25 0 .46.21.46.46v10.15a.465.465 0 0 1-.69.4L2.54 12.4a.46.46 0 0 1 0-.8l8.77-5.08c.07-.04.15-.06.23-.06Z"
66
- })), _path9 || (_path9 = /*#__PURE__*/React__default["default"].createElement("path", {
67
- fill: "none",
68
- d: "M-4 0h24v24H-4z"
69
- }))));
70
- const UpperHandleFocus = () => /*#__PURE__*/React__default["default"].createElement(usePrefix.PrefixContext.Consumer, null, prefix => /*#__PURE__*/React__default["default"].createElement("svg", {
71
- xmlns: "http://www.w3.org/2000/svg",
72
- viewBox: "0 0 16 24",
73
- className: `${prefix}--slider__thumb-icon ${prefix}--slider__thumb-icon--upper ${prefix}--slider__thumb-icon--focus`
74
- }, _path10 || (_path10 = /*#__PURE__*/React__default["default"].createElement("path", {
75
- d: "M0 6.46h.92v11.08H0zM11.54 6.46c.25 0 .46.21.46.46v10.15a.465.465 0 0 1-.69.4L2.54 12.4a.46.46 0 0 1 0-.8l8.77-5.08c.07-.04.15-.06.23-.06Z"
76
- })), _path11 || (_path11 = /*#__PURE__*/React__default["default"].createElement("path", {
77
- fill: "none",
78
- d: "M-4 0h24v24H-4z"
79
- })), _path12 || (_path12 = /*#__PURE__*/React__default["default"].createElement("path", {
80
- d: "M.92 24H0v-6.46h.92z"
81
- })), _path13 || (_path13 = /*#__PURE__*/React__default["default"].createElement("path", {
82
- d: "M16 24h-.92V0H16zM.92 24H0V0h.92z"
83
- })), _path14 || (_path14 = /*#__PURE__*/React__default["default"].createElement("path", {
84
- d: "M16 23.08V24H0v-.92zM16 0v.92H0V0z"
85
- }))));
36
+ var _LowerHandle, _LowerHandleFocus, _UpperHandle, _UpperHandleFocus, _UpperHandle2, _UpperHandleFocus2, _LowerHandle2, _LowerHandleFocus2;
37
+ const ThumbWrapper = _ref => {
38
+ let {
39
+ hasTooltip = false,
40
+ className,
41
+ style,
42
+ children,
43
+ ...rest
44
+ } = _ref;
45
+ if (hasTooltip) {
46
+ return (
47
+ /*#__PURE__*/
48
+ // eslint-disable-next-line react/forbid-component-props
49
+ React__default["default"].createElement(Tooltip.Tooltip, _rollupPluginBabelHelpers["extends"]({
50
+ className: className,
51
+ style: style
52
+ }, rest), children)
53
+ );
54
+ } else {
55
+ return (
56
+ /*#__PURE__*/
57
+ // eslint-disable-next-line react/forbid-dom-props
58
+ React__default["default"].createElement("div", {
59
+ className: className,
60
+ style: style
61
+ }, children)
62
+ );
63
+ }
64
+ };
65
+ ThumbWrapper.propTypes = {
66
+ /**
67
+ * The thumb node itself.
68
+ */
69
+ children: PropTypes__default["default"].node,
70
+ /**
71
+ * CSS wrapper class names.
72
+ */
73
+ className: PropTypes__default["default"].string,
74
+ /**
75
+ * Should the thumb show a tooltip with the current value?
76
+ */
77
+ hasTooltip: PropTypes__default["default"].bool.isRequired,
78
+ /**
79
+ * Percentage offset for the select thumb value.
80
+ */
81
+ style: PropTypes__default["default"].object
82
+ };
86
83
  const translationIds = {
87
84
  autoCorrectAnnouncement: 'carbon.slider.auto-correct-announcement'
88
85
  };
@@ -159,6 +156,12 @@ class Slider extends React.PureComponent {
159
156
  return;
160
157
  }
161
158
 
159
+ // We're going to force focus on one of the handles later on here, b/c we're
160
+ // firing on a mousedown event, we need to call event.preventDefault() to
161
+ // keep the focus from leaving the HTMLElement.
162
+ // @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/focus#notes
163
+ evt.preventDefault();
164
+
162
165
  // Register drag stop handlers
163
166
  DRAG_STOP_EVENT_TYPES.forEach(element => {
164
167
  this.element?.ownerDocument.addEventListener(element, this.onDragStop);
@@ -171,14 +174,34 @@ class Slider extends React.PureComponent {
171
174
  const clientX = this.getClientXFromEvent(evt);
172
175
  let activeHandle;
173
176
  if (this.hasTwoHandles()) {
174
- const distanceToLower = this.calcDistanceToHandle(HandlePosition.LOWER, clientX);
175
- const distanceToUpper = this.calcDistanceToHandle(HandlePosition.UPPER, clientX);
176
- if (distanceToLower <= distanceToUpper) {
177
+ if (evt.target == this.thumbRef.current) {
177
178
  activeHandle = HandlePosition.LOWER;
178
- } else {
179
+ } else if (evt.target == this.thumbRefUpper.current) {
179
180
  activeHandle = HandlePosition.UPPER;
181
+ } else {
182
+ const distanceToLower = this.calcDistanceToHandle(HandlePosition.LOWER, clientX);
183
+ const distanceToUpper = this.calcDistanceToHandle(HandlePosition.UPPER, clientX);
184
+ if (distanceToLower <= distanceToUpper) {
185
+ activeHandle = HandlePosition.LOWER;
186
+ } else {
187
+ activeHandle = HandlePosition.UPPER;
188
+ }
180
189
  }
181
190
  }
191
+
192
+ // Force focus to the appropriate handle.
193
+ const focusOptions = {
194
+ preventScroll: true
195
+ };
196
+ if (this.hasTwoHandles()) {
197
+ if (this.thumbRef.current && activeHandle === HandlePosition.LOWER) {
198
+ this.thumbRef.current.focus(focusOptions);
199
+ } else if (this.thumbRefUpper.current && activeHandle === HandlePosition.UPPER) {
200
+ this.thumbRefUpper.current.focus(focusOptions);
201
+ }
202
+ } else if (this.thumbRef.current) {
203
+ this.thumbRef.current.focus(focusOptions);
204
+ }
182
205
  this.setState({
183
206
  activeHandle
184
207
  });
@@ -476,12 +499,12 @@ class Slider extends React.PureComponent {
476
499
  }
477
500
  }
478
501
  });
479
- _rollupPluginBabelHelpers.defineProperty(this, "calcLeftPercent", _ref => {
502
+ _rollupPluginBabelHelpers.defineProperty(this, "calcLeftPercent", _ref2 => {
480
503
  let {
481
504
  clientX,
482
505
  value,
483
506
  range
484
- } = _ref;
507
+ } = _ref2;
485
508
  const boundingRect = this.element?.getBoundingClientRect?.();
486
509
  let width = boundingRect ? boundingRect.right - boundingRect.left : 0;
487
510
 
@@ -503,11 +526,11 @@ class Slider extends React.PureComponent {
503
526
  // re-assure Typescript, return 0.
504
527
  return 0;
505
528
  });
506
- _rollupPluginBabelHelpers.defineProperty(this, "calcSteppedValuePercent", _ref2 => {
529
+ _rollupPluginBabelHelpers.defineProperty(this, "calcSteppedValuePercent", _ref3 => {
507
530
  let {
508
531
  leftPercent,
509
532
  range
510
- } = _ref2;
533
+ } = _ref3;
511
534
  const {
512
535
  step = 1
513
536
  } = this.props;
@@ -536,12 +559,12 @@ class Slider extends React.PureComponent {
536
559
  * clientX is not provided.
537
560
  * @param {boolean} [params.useRawValue=false] `true` to use the given value as-is.
538
561
  */
539
- _rollupPluginBabelHelpers.defineProperty(this, "calcValue", _ref3 => {
562
+ _rollupPluginBabelHelpers.defineProperty(this, "calcValue", _ref4 => {
540
563
  let {
541
564
  clientX,
542
565
  value,
543
566
  useRawValue = false
544
- } = _ref3;
567
+ } = _ref4;
545
568
  const range = this.props.max - this.props.min;
546
569
 
547
570
  // @todo solve for rtl.
@@ -592,11 +615,11 @@ class Slider extends React.PureComponent {
592
615
  *
593
616
  * Guards against setting either lower or upper values beyond its counterpart.
594
617
  */
595
- _rollupPluginBabelHelpers.defineProperty(this, "setValueLeftForHandle", (handle, _ref4) => {
618
+ _rollupPluginBabelHelpers.defineProperty(this, "setValueLeftForHandle", (handle, _ref5) => {
596
619
  let {
597
620
  value: newValue,
598
621
  left: newLeft
599
- } = _ref4;
622
+ } = _ref5;
600
623
  const {
601
624
  value,
602
625
  valueUpper,
@@ -631,13 +654,13 @@ class Slider extends React.PureComponent {
631
654
  });
632
655
  }
633
656
  });
634
- _rollupPluginBabelHelpers.defineProperty(this, "isValidValueForPosition", _ref5 => {
657
+ _rollupPluginBabelHelpers.defineProperty(this, "isValidValueForPosition", _ref6 => {
635
658
  let {
636
659
  handle,
637
660
  value: newValue,
638
661
  min,
639
662
  max
640
- } = _ref5;
663
+ } = _ref6;
641
664
  const {
642
665
  value,
643
666
  valueUpper
@@ -656,21 +679,21 @@ class Slider extends React.PureComponent {
656
679
  }
657
680
  return false;
658
681
  });
659
- _rollupPluginBabelHelpers.defineProperty(this, "isValidValue", _ref6 => {
682
+ _rollupPluginBabelHelpers.defineProperty(this, "isValidValue", _ref7 => {
660
683
  let {
661
684
  value,
662
685
  min,
663
686
  max
664
- } = _ref6;
687
+ } = _ref7;
665
688
  return !(value < min || value > max);
666
689
  });
667
- _rollupPluginBabelHelpers.defineProperty(this, "getAdjustedValueForPosition", _ref7 => {
690
+ _rollupPluginBabelHelpers.defineProperty(this, "getAdjustedValueForPosition", _ref8 => {
668
691
  let {
669
692
  handle,
670
693
  value: newValue,
671
694
  min,
672
695
  max
673
- } = _ref7;
696
+ } = _ref8;
674
697
  const {
675
698
  value,
676
699
  valueUpper
@@ -689,12 +712,12 @@ class Slider extends React.PureComponent {
689
712
  }
690
713
  return newValue;
691
714
  });
692
- _rollupPluginBabelHelpers.defineProperty(this, "getAdjustedValue", _ref8 => {
715
+ _rollupPluginBabelHelpers.defineProperty(this, "getAdjustedValue", _ref9 => {
693
716
  let {
694
717
  value,
695
718
  min,
696
719
  max
697
- } = _ref8;
720
+ } = _ref9;
698
721
  if (value < min) {
699
722
  value = min;
700
723
  }
@@ -779,22 +802,10 @@ class Slider extends React.PureComponent {
779
802
  // Fire onChange event handler if present, if there's a usable value, and
780
803
  // if the value is different from the last one
781
804
  if (this.hasTwoHandles()) {
782
- if (this.thumbRef.current) {
783
- this.thumbRef.current.style.insetInlineStart = `${this.state.left}%`;
784
- if (this.state.isRtl) {
785
- this.thumbRef.current.style.transform = `translate(100%, -50%)`;
786
- }
787
- }
788
- if (this.thumbRefUpper.current) {
789
- this.thumbRefUpper.current.style.insetInlineStart = `${this.state.leftUpper}%`;
790
- }
791
805
  if (this.filledTrackRef.current) {
792
806
  this.filledTrackRef.current.style.transform = this.state.isRtl ? `translate(${100 - this.state.leftUpper}%, -50%) scaleX(${(this.state.leftUpper - this.state.left) / 100})` : `translate(${this.state.left}%, -50%) scaleX(${(this.state.leftUpper - this.state.left) / 100})`;
793
807
  }
794
808
  } else {
795
- if (this.thumbRef.current) {
796
- this.thumbRef.current.style.insetInlineStart = this.state.isRtl ? `calc(${this.state.left}% - 14px)` : `${this.state.left}%`;
797
- }
798
809
  if (this.filledTrackRef.current) {
799
810
  this.filledTrackRef.current.style.transform = this.state.isRtl ? `translate(100%, -50%) scaleX(-${this.state.left / 100})` : `translate(0%, -50%) scaleX(${this.state.left / 100})`;
800
811
  }
@@ -988,7 +999,8 @@ class Slider extends React.PureComponent {
988
999
  const containerClasses = cx__default["default"](`${prefix}--slider-container`, {
989
1000
  [`${prefix}--slider-container--two-handles`]: twoHandles,
990
1001
  [`${prefix}--slider-container--disabled`]: disabled,
991
- [`${prefix}--slider-container--readonly`]: readOnly
1002
+ [`${prefix}--slider-container--readonly`]: readOnly,
1003
+ [`${prefix}--slider-container--rtl`]: isRtl
992
1004
  });
993
1005
  const sliderClasses = cx__default["default"](`${prefix}--slider`, {
994
1006
  [`${prefix}--slider--disabled`]: disabled,
@@ -996,8 +1008,7 @@ class Slider extends React.PureComponent {
996
1008
  });
997
1009
  const fixedInputClasses = [`${prefix}--text-input`, `${prefix}--slider-text-input`];
998
1010
  const conditionalInputClasses = {
999
- [`${prefix}--text-input--light`]: light,
1000
- [`${prefix}--slider-text-input--hidden`]: hideTextInput
1011
+ [`${prefix}--text-input--light`]: light
1001
1012
  };
1002
1013
  const lowerInputClasses = cx__default["default"]([...fixedInputClasses, `${prefix}--slider-text-input--lower`, conditionalInputClasses, {
1003
1014
  [`${prefix}--text-input--invalid`]: !readOnly && !isValid,
@@ -1008,10 +1019,12 @@ class Slider extends React.PureComponent {
1008
1019
  [`${prefix}--slider-text-input--warn`]: showWarningUpper
1009
1020
  }]);
1010
1021
  const lowerInputWrapperClasses = cx__default["default"]([`${prefix}--text-input-wrapper`, `${prefix}--slider-text-input-wrapper`, `${prefix}--slider-text-input-wrapper--lower`, {
1011
- [`${prefix}--text-input-wrapper--readonly`]: readOnly
1022
+ [`${prefix}--text-input-wrapper--readonly`]: readOnly,
1023
+ [`${prefix}--slider-text-input-wrapper--hidden`]: hideTextInput
1012
1024
  }]);
1013
1025
  const upperInputWrapperClasses = cx__default["default"]([`${prefix}--text-input-wrapper`, `${prefix}--slider-text-input-wrapper`, `${prefix}--slider-text-input-wrapper--upper`, {
1014
- [`${prefix}--text-input-wrapper--readonly`]: readOnly
1026
+ [`${prefix}--text-input-wrapper--readonly`]: readOnly,
1027
+ [`${prefix}--slider-text-input-wrapper--hidden`]: hideTextInput
1015
1028
  }]);
1016
1029
  const lowerThumbClasses = cx__default["default"](`${prefix}--slider__thumb`, {
1017
1030
  [`${prefix}--slider__thumb--lower`]: twoHandles
@@ -1019,6 +1032,22 @@ class Slider extends React.PureComponent {
1019
1032
  const upperThumbClasses = cx__default["default"](`${prefix}--slider__thumb`, {
1020
1033
  [`${prefix}--slider__thumb--upper`]: twoHandles
1021
1034
  });
1035
+ const lowerThumbWrapperClasses = cx__default["default"]([`${prefix}--icon-tooltip`, `${prefix}--slider__thumb-wrapper`, {
1036
+ [`${prefix}--slider__thumb-wrapper--lower`]: twoHandles
1037
+ }]);
1038
+ const upperThumbWrapperClasses = cx__default["default"]([`${prefix}--icon-tooltip`, `${prefix}--slider__thumb-wrapper`, {
1039
+ [`${prefix}--slider__thumb-wrapper--upper`]: twoHandles
1040
+ }]);
1041
+ const lowerThumbWrapperProps = {
1042
+ style: {
1043
+ insetInlineStart: `${this.state.left}%`
1044
+ }
1045
+ };
1046
+ const upperThumbWrapperProps = {
1047
+ style: {
1048
+ insetInlineStart: `${this.state.leftUpper}%`
1049
+ }
1050
+ };
1022
1051
  return /*#__PURE__*/React__default["default"].createElement("div", {
1023
1052
  className: cx__default["default"](`${prefix}--form-item`, className)
1024
1053
  }, /*#__PURE__*/React__default["default"].createElement(Text.Text, {
@@ -1067,7 +1096,12 @@ class Slider extends React.PureComponent {
1067
1096
  role: "presentation",
1068
1097
  tabIndex: -1,
1069
1098
  "data-invalid": (twoHandles ? !isValid || !isValidUpper : !isValid) && !readOnly ? true : null
1070
- }, other), /*#__PURE__*/React__default["default"].createElement("div", {
1099
+ }, other), /*#__PURE__*/React__default["default"].createElement(ThumbWrapper, _rollupPluginBabelHelpers["extends"]({
1100
+ hasTooltip: hideTextInput,
1101
+ className: lowerThumbWrapperClasses,
1102
+ label: `${value}`,
1103
+ align: twoHandles ? 'top-right' : 'top'
1104
+ }, lowerThumbWrapperProps), /*#__PURE__*/React__default["default"].createElement("div", {
1071
1105
  className: lowerThumbClasses,
1072
1106
  role: "slider",
1073
1107
  id: twoHandles ? undefined : id,
@@ -1081,7 +1115,12 @@ class Slider extends React.PureComponent {
1081
1115
  onFocus: () => this.setState({
1082
1116
  activeHandle: HandlePosition.LOWER
1083
1117
  })
1084
- }, twoHandles && !isRtl && (_LowerHandle || (_LowerHandle = /*#__PURE__*/React__default["default"].createElement(LowerHandle, null))), twoHandles && !isRtl && (_LowerHandleFocus || (_LowerHandleFocus = /*#__PURE__*/React__default["default"].createElement(LowerHandleFocus, null))), twoHandles && isRtl && (_UpperHandle || (_UpperHandle = /*#__PURE__*/React__default["default"].createElement(UpperHandle, null))), twoHandles && isRtl && (_UpperHandleFocus || (_UpperHandleFocus = /*#__PURE__*/React__default["default"].createElement(UpperHandleFocus, null)))), twoHandles ? /*#__PURE__*/React__default["default"].createElement("div", {
1118
+ }, twoHandles && !isRtl ? /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, _LowerHandle || (_LowerHandle = /*#__PURE__*/React__default["default"].createElement(SliderHandles.LowerHandle, null)), _LowerHandleFocus || (_LowerHandleFocus = /*#__PURE__*/React__default["default"].createElement(SliderHandles.LowerHandleFocus, null))) : twoHandles && isRtl ? /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, _UpperHandle || (_UpperHandle = /*#__PURE__*/React__default["default"].createElement(SliderHandles.UpperHandle, null)), _UpperHandleFocus || (_UpperHandleFocus = /*#__PURE__*/React__default["default"].createElement(SliderHandles.UpperHandleFocus, null))) : undefined)), twoHandles ? /*#__PURE__*/React__default["default"].createElement(ThumbWrapper, _rollupPluginBabelHelpers["extends"]({
1119
+ hasTooltip: hideTextInput,
1120
+ className: upperThumbWrapperClasses,
1121
+ label: `${valueUpper}`,
1122
+ align: "top-left"
1123
+ }, upperThumbWrapperProps), /*#__PURE__*/React__default["default"].createElement("div", {
1085
1124
  className: upperThumbClasses,
1086
1125
  role: "slider",
1087
1126
  tabIndex: !readOnly ? 0 : -1,
@@ -1093,7 +1132,7 @@ class Slider extends React.PureComponent {
1093
1132
  onFocus: () => this.setState({
1094
1133
  activeHandle: HandlePosition.UPPER
1095
1134
  })
1096
- }, twoHandles && !isRtl && (_UpperHandle2 || (_UpperHandle2 = /*#__PURE__*/React__default["default"].createElement(UpperHandle, null))), twoHandles && !isRtl && (_UpperHandleFocus2 || (_UpperHandleFocus2 = /*#__PURE__*/React__default["default"].createElement(UpperHandleFocus, null))), twoHandles && isRtl && (_LowerHandle2 || (_LowerHandle2 = /*#__PURE__*/React__default["default"].createElement(LowerHandle, null))), twoHandles && isRtl && (_LowerHandleFocus2 || (_LowerHandleFocus2 = /*#__PURE__*/React__default["default"].createElement(LowerHandleFocus, null)))) : null, /*#__PURE__*/React__default["default"].createElement("div", {
1135
+ }, twoHandles && !isRtl ? /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, _UpperHandle2 || (_UpperHandle2 = /*#__PURE__*/React__default["default"].createElement(SliderHandles.UpperHandle, null)), _UpperHandleFocus2 || (_UpperHandleFocus2 = /*#__PURE__*/React__default["default"].createElement(SliderHandles.UpperHandleFocus, null))) : twoHandles && isRtl ? /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, _LowerHandle2 || (_LowerHandle2 = /*#__PURE__*/React__default["default"].createElement(SliderHandles.LowerHandle, null)), _LowerHandleFocus2 || (_LowerHandleFocus2 = /*#__PURE__*/React__default["default"].createElement(SliderHandles.LowerHandleFocus, null))) : undefined)) : null, /*#__PURE__*/React__default["default"].createElement("div", {
1097
1136
  className: `${prefix}--slider__track`,
1098
1137
  ref: node => {
1099
1138
  this.track = node;
@@ -0,0 +1,4 @@
1
+ export declare const LowerHandle: () => JSX.Element;
2
+ export declare const LowerHandleFocus: () => JSX.Element;
3
+ export declare const UpperHandle: () => JSX.Element;
4
+ export declare const UpperHandleFocus: () => JSX.Element;
@@ -0,0 +1,76 @@
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 usePrefix = require('../../internal/usePrefix.js');
13
+ var React = require('react');
14
+
15
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
16
+
17
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
18
+
19
+ var _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9, _path10, _path11, _path12, _path13, _path14;
20
+ const LowerHandle = () => /*#__PURE__*/React__default["default"].createElement(usePrefix.PrefixContext.Consumer, null, prefix => /*#__PURE__*/React__default["default"].createElement("svg", {
21
+ xmlns: "http://www.w3.org/2000/svg",
22
+ viewBox: "0 0 16 24",
23
+ className: `${prefix}--slider__thumb-icon ${prefix}--slider__thumb-icon--lower`
24
+ }, _path || (_path = /*#__PURE__*/React__default["default"].createElement("path", {
25
+ d: "M15.08 6.46H16v11.08h-.92zM4.46 17.54c-.25 0-.46-.21-.46-.46V6.92a.465.465 0 0 1 .69-.4l8.77 5.08a.46.46 0 0 1 0 .8l-8.77 5.08c-.07.04-.15.06-.23.06Z"
26
+ })), _path2 || (_path2 = /*#__PURE__*/React__default["default"].createElement("path", {
27
+ fill: "none",
28
+ d: "M-4 0h24v24H-4z"
29
+ }))));
30
+ const LowerHandleFocus = () => /*#__PURE__*/React__default["default"].createElement(usePrefix.PrefixContext.Consumer, null, prefix => /*#__PURE__*/React__default["default"].createElement("svg", {
31
+ xmlns: "http://www.w3.org/2000/svg",
32
+ viewBox: "0 0 16 24",
33
+ className: `${prefix}--slider__thumb-icon ${prefix}--slider__thumb-icon--lower ${prefix}--slider__thumb-icon--focus`
34
+ }, _path3 || (_path3 = /*#__PURE__*/React__default["default"].createElement("path", {
35
+ d: "M15.08 6.46H16v11.08h-.92zM4.46 17.54c-.25 0-.46-.21-.46-.46V6.92a.465.465 0 0 1 .69-.4l8.77 5.08a.46.46 0 0 1 0 .8l-8.77 5.08c-.07.04-.15.06-.23.06Z"
36
+ })), _path4 || (_path4 = /*#__PURE__*/React__default["default"].createElement("path", {
37
+ fill: "none",
38
+ d: "M-4 0h24v24H-4z"
39
+ })), _path5 || (_path5 = /*#__PURE__*/React__default["default"].createElement("path", {
40
+ d: "M15.08 0H16v6.46h-.92z"
41
+ })), _path6 || (_path6 = /*#__PURE__*/React__default["default"].createElement("path", {
42
+ d: "M0 0h.92v24H0zM15.08 0H16v24h-.92z"
43
+ })), _path7 || (_path7 = /*#__PURE__*/React__default["default"].createElement("path", {
44
+ d: "M0 .92V0h16v.92zM0 24v-.92h16V24z"
45
+ }))));
46
+ const UpperHandle = () => /*#__PURE__*/React__default["default"].createElement(usePrefix.PrefixContext.Consumer, null, prefix => /*#__PURE__*/React__default["default"].createElement("svg", {
47
+ xmlns: "http://www.w3.org/2000/svg",
48
+ viewBox: "0 0 16 24",
49
+ className: `${prefix}--slider__thumb-icon ${prefix}--slider__thumb-icon--upper`
50
+ }, _path8 || (_path8 = /*#__PURE__*/React__default["default"].createElement("path", {
51
+ d: "M0 6.46h.92v11.08H0zM11.54 6.46c.25 0 .46.21.46.46v10.15a.465.465 0 0 1-.69.4L2.54 12.4a.46.46 0 0 1 0-.8l8.77-5.08c.07-.04.15-.06.23-.06Z"
52
+ })), _path9 || (_path9 = /*#__PURE__*/React__default["default"].createElement("path", {
53
+ fill: "none",
54
+ d: "M-4 0h24v24H-4z"
55
+ }))));
56
+ const UpperHandleFocus = () => /*#__PURE__*/React__default["default"].createElement(usePrefix.PrefixContext.Consumer, null, prefix => /*#__PURE__*/React__default["default"].createElement("svg", {
57
+ xmlns: "http://www.w3.org/2000/svg",
58
+ viewBox: "0 0 16 24",
59
+ className: `${prefix}--slider__thumb-icon ${prefix}--slider__thumb-icon--upper ${prefix}--slider__thumb-icon--focus`
60
+ }, _path10 || (_path10 = /*#__PURE__*/React__default["default"].createElement("path", {
61
+ d: "M0 6.46h.92v11.08H0zM11.54 6.46c.25 0 .46.21.46.46v10.15a.465.465 0 0 1-.69.4L2.54 12.4a.46.46 0 0 1 0-.8l8.77-5.08c.07-.04.15-.06.23-.06Z"
62
+ })), _path11 || (_path11 = /*#__PURE__*/React__default["default"].createElement("path", {
63
+ fill: "none",
64
+ d: "M-4 0h24v24H-4z"
65
+ })), _path12 || (_path12 = /*#__PURE__*/React__default["default"].createElement("path", {
66
+ d: "M.92 24H0v-6.46h.92z"
67
+ })), _path13 || (_path13 = /*#__PURE__*/React__default["default"].createElement("path", {
68
+ d: "M16 24h-.92V0H16zM.92 24H0V0h.92z"
69
+ })), _path14 || (_path14 = /*#__PURE__*/React__default["default"].createElement("path", {
70
+ d: "M16 23.08V24H0v-.92zM16 0v.92H0V0z"
71
+ }))));
72
+
73
+ exports.LowerHandle = LowerHandle;
74
+ exports.LowerHandleFocus = LowerHandleFocus;
75
+ exports.UpperHandle = UpperHandle;
76
+ exports.UpperHandleFocus = UpperHandleFocus;
@@ -83,7 +83,7 @@ const Slug = /*#__PURE__*/React__default["default"].forwardRef(function Slug(_re
83
83
  children,
84
84
  className,
85
85
  dotType,
86
- kind,
86
+ kind = 'default',
87
87
  onRevertClick,
88
88
  revertActive,
89
89
  revertLabel = 'Revert to AI input',
@@ -268,7 +268,7 @@ function TabList(_ref2) {
268
268
  }
269
269
  }, [scrollLeft, children, dismissable]);
270
270
  useEffectOnce.useEffectOnce(() => {
271
- if (tabs.current[selectedIndex].disabled) {
271
+ if (tabs.current[selectedIndex]?.disabled) {
272
272
  const activeTabs = tabs.current.filter(tab => {
273
273
  return !tab.disabled;
274
274
  });
@@ -25,7 +25,7 @@ export interface TextAreaProps extends React.InputHTMLAttributes<HTMLTextAreaEle
25
25
  */
26
26
  disabled?: boolean;
27
27
  /**
28
- * Specify whether to display the character counter
28
+ * Specify whether to display the counter
29
29
  */
30
30
  enableCounter?: boolean;
31
31
  /**
@@ -60,7 +60,7 @@ export interface TextAreaProps extends React.InputHTMLAttributes<HTMLTextAreaEle
60
60
  */
61
61
  light?: boolean;
62
62
  /**
63
- * Max character count allowed for the textarea. This is needed in order for enableCounter to display
63
+ * Max entity count allowed for the textarea. This is needed in order for enableCounter to display
64
64
  */
65
65
  maxCount?: number;
66
66
  /**
@@ -86,7 +86,7 @@ export interface TextAreaProps extends React.InputHTMLAttributes<HTMLTextAreaEle
86
86
  */
87
87
  rows?: number;
88
88
  /**
89
- * Provide a `Slug` component to be rendered inside the `TextArea` component
89
+ * **Experimental**: Provide a `Slug` component to be rendered inside the `TextArea` component
90
90
  */
91
91
  slug?: ReactNodeLike;
92
92
  /**
@@ -101,6 +101,10 @@ export interface TextAreaProps extends React.InputHTMLAttributes<HTMLTextAreaEle
101
101
  * Provide the text that is displayed when the control is in warning state
102
102
  */
103
103
  warnText?: ReactNodeLike;
104
+ /**
105
+ * Specify the method used for calculating the counter number
106
+ */
107
+ counterMode?: 'character' | 'word';
104
108
  }
105
109
  declare const TextArea: React.ForwardRefExoticComponent<TextAreaProps & React.RefAttributes<unknown>>;
106
110
  export default TextArea;