@carbon/react 1.44.0 → 1.45.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 (134) hide show
  1. package/.playwright/INTERNAL_AVT_REPORT_DO_NOT_USE.json +820 -902
  2. package/es/components/Checkbox/Checkbox.d.ts +1 -1
  3. package/es/components/Checkbox/Checkbox.js +1 -1
  4. package/es/components/CheckboxGroup/CheckboxGroup.js +2 -2
  5. package/es/components/ComboBox/ComboBox.d.ts +1 -1
  6. package/es/components/ComboBox/ComboBox.js +2 -2
  7. package/es/components/ComboButton/index.js +1 -1
  8. package/es/components/ComposedModal/ModalFooter.d.ts +2 -1
  9. package/es/components/ContentSwitcher/ContentSwitcher.js +1 -1
  10. package/es/components/DataTable/DataTable.d.ts +2 -0
  11. package/es/components/DataTable/DataTable.js +3 -0
  12. package/es/components/DataTable/TableExpandRow.js +20 -3
  13. package/es/components/DataTable/TableHeader.d.ts +5 -0
  14. package/es/components/DataTable/TableHeader.js +30 -6
  15. package/es/components/DataTable/TableSlugRow.d.ts +31 -0
  16. package/es/components/DataTable/TableSlugRow.js +49 -0
  17. package/es/components/DataTable/index.d.ts +2 -1
  18. package/es/components/DataTable/index.js +3 -0
  19. package/es/components/DatePickerInput/DatePickerInput.d.ts +1 -1
  20. package/es/components/DatePickerInput/DatePickerInput.js +2 -2
  21. package/es/components/Dropdown/Dropdown.d.ts +1 -1
  22. package/es/components/Dropdown/Dropdown.js +2 -2
  23. package/es/components/InlineLoading/InlineLoading.d.ts +68 -0
  24. package/es/components/InlineLoading/InlineLoading.js +4 -4
  25. package/es/components/InlineLoading/index.d.ts +9 -0
  26. package/es/components/Layer/LayerContext.d.ts +8 -0
  27. package/es/components/Layer/LayerLevel.d.ts +5 -0
  28. package/es/components/Layer/LayerLevel.js +12 -0
  29. package/es/components/Layer/index.d.ts +38 -0
  30. package/es/components/Layer/index.js +9 -8
  31. package/es/components/Menu/MenuItem.js +2 -1
  32. package/es/components/MenuButton/index.js +1 -1
  33. package/es/components/Modal/Modal.d.ts +3 -2
  34. package/es/components/MultiSelect/FilterableMultiSelect.js +2 -2
  35. package/es/components/MultiSelect/MultiSelect.d.ts +1 -1
  36. package/es/components/MultiSelect/MultiSelect.js +5 -2
  37. package/es/components/Notification/Notification.js +1 -0
  38. package/es/components/NumberInput/NumberInput.d.ts +1 -1
  39. package/es/components/NumberInput/NumberInput.js +3 -3
  40. package/es/components/ProgressIndicator/ProgressIndicator.js +4 -0
  41. package/es/components/RadioButton/RadioButton.d.ts +1 -1
  42. package/es/components/RadioButton/RadioButton.js +1 -1
  43. package/es/components/RadioButtonGroup/RadioButtonGroup.d.ts +1 -1
  44. package/es/components/RadioButtonGroup/RadioButtonGroup.js +2 -2
  45. package/es/components/Select/Select.d.ts +1 -1
  46. package/es/components/Select/Select.js +2 -2
  47. package/es/components/Slider/Slider.Skeleton.js +17 -3
  48. package/es/components/Slider/Slider.js +132 -93
  49. package/es/components/Slider/SliderHandles.d.ts +4 -0
  50. package/es/components/Slider/SliderHandles.js +65 -0
  51. package/es/components/Slug/index.js +1 -0
  52. package/es/components/Tabs/Tabs.js +1 -1
  53. package/es/components/Tag/Tag.d.ts +18 -10
  54. package/es/components/Tag/Tag.js +23 -7
  55. package/es/components/TextArea/TextArea.d.ts +7 -3
  56. package/es/components/TextArea/TextArea.js +85 -18
  57. package/es/components/TextInput/TextInput.d.ts +1 -1
  58. package/es/components/TextInput/TextInput.js +2 -2
  59. package/es/components/Tile/Tile.d.ts +8 -8
  60. package/es/components/Tile/Tile.js +11 -7
  61. package/es/components/Tooltip/Tooltip.js +48 -2
  62. package/es/components/UIShell/HeaderPanel.d.ts +36 -0
  63. package/es/components/UIShell/HeaderPanel.js +6 -6
  64. package/es/components/UIShell/Switcher.js +1 -1
  65. package/es/index.js +2 -1
  66. package/es/internal/useAnnouncer.js +2 -1
  67. package/es/internal/useNoInteractiveChildren.js +2 -6
  68. package/lib/components/Checkbox/Checkbox.d.ts +1 -1
  69. package/lib/components/Checkbox/Checkbox.js +1 -1
  70. package/lib/components/CheckboxGroup/CheckboxGroup.js +2 -2
  71. package/lib/components/ComboBox/ComboBox.d.ts +1 -1
  72. package/lib/components/ComboBox/ComboBox.js +2 -2
  73. package/lib/components/ComboButton/index.js +1 -1
  74. package/lib/components/ComposedModal/ModalFooter.d.ts +2 -1
  75. package/lib/components/ContentSwitcher/ContentSwitcher.js +1 -1
  76. package/lib/components/DataTable/DataTable.d.ts +2 -0
  77. package/lib/components/DataTable/DataTable.js +3 -0
  78. package/lib/components/DataTable/TableExpandRow.js +20 -3
  79. package/lib/components/DataTable/TableHeader.d.ts +5 -0
  80. package/lib/components/DataTable/TableHeader.js +29 -5
  81. package/lib/components/DataTable/TableSlugRow.d.ts +31 -0
  82. package/lib/components/DataTable/TableSlugRow.js +59 -0
  83. package/lib/components/DataTable/index.d.ts +2 -1
  84. package/lib/components/DataTable/index.js +3 -0
  85. package/lib/components/DatePickerInput/DatePickerInput.d.ts +1 -1
  86. package/lib/components/DatePickerInput/DatePickerInput.js +2 -2
  87. package/lib/components/Dropdown/Dropdown.d.ts +1 -1
  88. package/lib/components/Dropdown/Dropdown.js +2 -2
  89. package/lib/components/InlineLoading/InlineLoading.d.ts +68 -0
  90. package/lib/components/InlineLoading/InlineLoading.js +4 -4
  91. package/lib/components/InlineLoading/index.d.ts +9 -0
  92. package/lib/components/Layer/LayerContext.d.ts +8 -0
  93. package/lib/components/Layer/LayerLevel.d.ts +5 -0
  94. package/lib/components/Layer/LayerLevel.js +18 -0
  95. package/lib/components/Layer/index.d.ts +38 -0
  96. package/lib/components/Layer/index.js +10 -9
  97. package/lib/components/Menu/MenuItem.js +2 -1
  98. package/lib/components/MenuButton/index.js +1 -1
  99. package/lib/components/Modal/Modal.d.ts +3 -2
  100. package/lib/components/MultiSelect/FilterableMultiSelect.js +2 -2
  101. package/lib/components/MultiSelect/MultiSelect.d.ts +1 -1
  102. package/lib/components/MultiSelect/MultiSelect.js +5 -2
  103. package/lib/components/Notification/Notification.js +1 -0
  104. package/lib/components/NumberInput/NumberInput.d.ts +1 -1
  105. package/lib/components/NumberInput/NumberInput.js +3 -3
  106. package/lib/components/ProgressIndicator/ProgressIndicator.js +4 -0
  107. package/lib/components/RadioButton/RadioButton.d.ts +1 -1
  108. package/lib/components/RadioButton/RadioButton.js +1 -1
  109. package/lib/components/RadioButtonGroup/RadioButtonGroup.d.ts +1 -1
  110. package/lib/components/RadioButtonGroup/RadioButtonGroup.js +2 -2
  111. package/lib/components/Select/Select.d.ts +1 -1
  112. package/lib/components/Select/Select.js +2 -2
  113. package/lib/components/Slider/Slider.Skeleton.js +17 -3
  114. package/lib/components/Slider/Slider.js +132 -93
  115. package/lib/components/Slider/SliderHandles.d.ts +4 -0
  116. package/lib/components/Slider/SliderHandles.js +76 -0
  117. package/lib/components/Slug/index.js +1 -0
  118. package/lib/components/Tabs/Tabs.js +1 -1
  119. package/lib/components/Tag/Tag.d.ts +18 -10
  120. package/lib/components/Tag/Tag.js +23 -7
  121. package/lib/components/TextArea/TextArea.d.ts +7 -3
  122. package/lib/components/TextArea/TextArea.js +84 -17
  123. package/lib/components/TextInput/TextInput.d.ts +1 -1
  124. package/lib/components/TextInput/TextInput.js +2 -2
  125. package/lib/components/Tile/Tile.d.ts +8 -8
  126. package/lib/components/Tile/Tile.js +11 -7
  127. package/lib/components/Tooltip/Tooltip.js +47 -1
  128. package/lib/components/UIShell/HeaderPanel.d.ts +36 -0
  129. package/lib/components/UIShell/HeaderPanel.js +7 -7
  130. package/lib/components/UIShell/Switcher.js +1 -1
  131. package/lib/index.js +4 -2
  132. package/lib/internal/useAnnouncer.js +2 -1
  133. package/lib/internal/useNoInteractiveChildren.js +2 -6
  134. package/package.json +4 -7
@@ -11,9 +11,7 @@ import PropTypes from 'prop-types';
11
11
  import cx from 'classnames';
12
12
  import { usePrefix } from '../../internal/usePrefix.js';
13
13
  import { LayerContext } from './LayerContext.js';
14
-
15
- const levels = ['one', 'two', 'three'];
16
- const MAX_LEVEL = levels.length - 1;
14
+ import { levels, MIN_LEVEL, MAX_LEVEL } from './LayerLevel.js';
17
15
 
18
16
  /**
19
17
  * A custom hook that will return information about the current layer. A common
@@ -26,9 +24,9 @@ function useLayer() {
26
24
  level
27
25
  };
28
26
  }
29
- const Layer = /*#__PURE__*/React__default.forwardRef(function Layer(_ref, ref) {
27
+ const LayerRenderFunction = /*#__PURE__*/React__default.forwardRef(function Layer(_ref, ref) {
30
28
  let {
31
- as: BaseComponent = 'div',
29
+ as = 'div',
32
30
  className: customClassName,
33
31
  children,
34
32
  level: overrideLevel,
@@ -38,8 +36,9 @@ const Layer = /*#__PURE__*/React__default.forwardRef(function Layer(_ref, ref) {
38
36
  const level = overrideLevel ?? contextLevel;
39
37
  const prefix = usePrefix();
40
38
  const className = cx(`${prefix}--layer-${levels[level]}`, customClassName);
41
- // The level should be between 0 and MAX_LEVEL
42
- const value = Math.max(0, Math.min(level + 1, MAX_LEVEL));
39
+ // The level should be between MIN_LEVEL and MAX_LEVEL
40
+ const value = Math.max(MIN_LEVEL, Math.min(level + 1, MAX_LEVEL));
41
+ const BaseComponent = as;
43
42
  return /*#__PURE__*/React__default.createElement(LayerContext.Provider, {
44
43
  value: value
45
44
  }, /*#__PURE__*/React__default.createElement(BaseComponent, _extends({
@@ -48,7 +47,8 @@ const Layer = /*#__PURE__*/React__default.forwardRef(function Layer(_ref, ref) {
48
47
  className: className
49
48
  }), children));
50
49
  });
51
- Layer.propTypes = {
50
+ LayerRenderFunction.displayName = 'Layer';
51
+ LayerRenderFunction.propTypes = {
52
52
  /**
53
53
  * Specify a custom component or element to be rendered as the top-level
54
54
  * element in the component
@@ -68,5 +68,6 @@ Layer.propTypes = {
68
68
  */
69
69
  level: PropTypes.oneOf([0, 1, 2])
70
70
  };
71
+ const Layer = LayerRenderFunction;
71
72
 
72
73
  export { Layer, useLayer };
@@ -169,7 +169,8 @@ const MenuItem = /*#__PURE__*/React__default.forwardRef(function MenuItem(_ref,
169
169
  className: `${prefix}--menu-item__icon`
170
170
  }, iconsAllowed && IconElement && /*#__PURE__*/React__default.createElement(IconElement, null)), /*#__PURE__*/React__default.createElement(Text, {
171
171
  as: "div",
172
- className: `${prefix}--menu-item__label`
172
+ className: `${prefix}--menu-item__label`,
173
+ title: label
173
174
  }, label), shortcut && !hasChildren && /*#__PURE__*/React__default.createElement("div", {
174
175
  className: `${prefix}--menu-item__shortcut`
175
176
  }, shortcut), hasChildren && /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement("div", {
@@ -18,7 +18,7 @@ import { useId } from '../../internal/useId.js';
18
18
  import { useMergedRefs } from '../../internal/useMergedRefs.js';
19
19
  import { usePrefix } from '../../internal/usePrefix.js';
20
20
 
21
- const spacing = 4; // top and bottom spacing between the button and the menu. in px
21
+ const spacing = 0; // top and bottom spacing between the button and the menu. in px
22
22
  const validButtonKinds = ['primary', 'tertiary', 'ghost'];
23
23
  const defaultButtonKind = 'primary';
24
24
  const MenuButton = /*#__PURE__*/React__default.forwardRef(function MenuButton(_ref, forwardRef) {
@@ -6,6 +6,7 @@
6
6
  */
7
7
  import React from 'react';
8
8
  import { ReactAttr } from '../../types/common';
9
+ import { InlineLoadingStatus } from '../InlineLoading/InlineLoading';
9
10
  export declare const ModalSizes: readonly ["xs", "sm", "md", "lg"];
10
11
  export type ModalSize = (typeof ModalSizes)[number];
11
12
  export interface ModalSecondaryButton {
@@ -65,7 +66,7 @@ export interface ModalProps extends ReactAttr<HTMLDivElement> {
65
66
  /**
66
67
  * Specify loading status
67
68
  */
68
- loadingStatus?: string;
69
+ loadingStatus?: InlineLoadingStatus;
69
70
  /**
70
71
  * Specify a label to be read by screen readers on the modal root node
71
72
  */
@@ -87,7 +88,7 @@ export interface ModalProps extends ReactAttr<HTMLDivElement> {
87
88
  * Specify an optional handler to be invoked when loading is
88
89
  * successful
89
90
  */
90
- onLoadingSuccess?: React.ReactEventHandler<HTMLElement>;
91
+ onLoadingSuccess?: () => void;
91
92
  /**
92
93
  * Specify a handler for closing modal.
93
94
  * The handler should care of closing modal, e.g. changing `open` prop.
@@ -193,7 +193,7 @@ const FilterableMultiSelect = /*#__PURE__*/React__default.forwardRef(function Fi
193
193
 
194
194
  // Slug is always size `mini`
195
195
  let normalizedSlug;
196
- if (slug) {
196
+ if (slug && slug['type']?.displayName === 'Slug') {
197
197
  normalizedSlug = /*#__PURE__*/React__default.cloneElement(slug, {
198
198
  size: 'mini'
199
199
  });
@@ -545,7 +545,7 @@ FilterableMultiSelect.propTypes = {
545
545
  */
546
546
  size: ListBoxSize,
547
547
  /**
548
- * Provide a `Slug` component to be rendered inside the `FilterableMultiSelect` component
548
+ * **Experimental**: Provide a `Slug` component to be rendered inside the `FilterableMultiSelect` component
549
549
  */
550
550
  slug: PropTypes.node,
551
551
  ...sortingPropTypes,
@@ -164,7 +164,7 @@ export interface MultiSelectProps<ItemType> extends MultiSelectSortingProps<Item
164
164
  */
165
165
  size?: ListBoxSize;
166
166
  /**
167
- * Provide a `Slug` component to be rendered inside the `MultiSelect` component
167
+ * **Experimental**: Provide a `Slug` component to be rendered inside the `MultiSelect` component
168
168
  */
169
169
  slug?: ReactNodeLike;
170
170
  /**
@@ -237,6 +237,9 @@ const MultiSelect = /*#__PURE__*/React__default.forwardRef((_ref, ref) => {
237
237
  if (changes.selectedItem === undefined) {
238
238
  break;
239
239
  }
240
+ if (Array.isArray(changes.selectedItem)) {
241
+ break;
242
+ }
240
243
  onItemChange(changes.selectedItem);
241
244
  return {
242
245
  ...changes,
@@ -298,7 +301,7 @@ const MultiSelect = /*#__PURE__*/React__default.forwardRef((_ref, ref) => {
298
301
 
299
302
  // Slug is always size `mini`
300
303
  let normalizedSlug;
301
- if (slug) {
304
+ if (slug && slug['type']?.displayName === 'Slug') {
302
305
  normalizedSlug = /*#__PURE__*/React__default.cloneElement(slug, {
303
306
  size: 'mini'
304
307
  });
@@ -507,7 +510,7 @@ MultiSelect.propTypes = {
507
510
  */
508
511
  size: ListBoxSize,
509
512
  /**
510
- * Provide a `Slug` component to be rendered inside the `MultiSelect` component
513
+ * **Experimental**: Provide a `Slug` component to be rendered inside the `MultiSelect` component
511
514
  */
512
515
  slug: PropTypes.node,
513
516
  /**
@@ -584,6 +584,7 @@ function ActionableNotification(_ref6) {
584
584
  className: `${prefix}--actionable-notification__subtitle`,
585
585
  id: subtitleId
586
586
  }, subtitle), children))), /*#__PURE__*/React__default.createElement("div", {
587
+ className: `${prefix}--actionable-notification__button-wrapper`,
587
588
  ref: innerModal
588
589
  }, actionButtonLabel && /*#__PURE__*/React__default.createElement(NotificationActionButton, {
589
590
  onClick: onActionButtonClick,
@@ -109,7 +109,7 @@ export interface NumberInputProps extends Omit<React.InputHTMLAttributes<HTMLInp
109
109
  */
110
110
  size?: 'sm' | 'md' | 'lg';
111
111
  /**
112
- * Provide a `Slug` component to be rendered inside the `TextInput` component
112
+ * **Experimental**: Provide a `Slug` component to be rendered inside the `TextInput` component
113
113
  */
114
114
  slug?: ReactNodeLike;
115
115
  /**
@@ -172,7 +172,7 @@ const NumberInput = /*#__PURE__*/React__default.forwardRef(function NumberInput(
172
172
 
173
173
  // Slug is always size `mini`
174
174
  let normalizedSlug;
175
- if (slug) {
175
+ if (slug && slug['type']?.displayName === 'Slug') {
176
176
  normalizedSlug = /*#__PURE__*/React__default.cloneElement(slug, {
177
177
  size: 'mini'
178
178
  });
@@ -180,7 +180,7 @@ const NumberInput = /*#__PURE__*/React__default.forwardRef(function NumberInput(
180
180
 
181
181
  // Need to update the internal value when the revert button is clicked
182
182
  let isRevertActive;
183
- if (slug) {
183
+ if (slug && slug['type']?.displayName === 'Slug') {
184
184
  isRevertActive = normalizedSlug.props.revertActive;
185
185
  }
186
186
  useEffect(() => {
@@ -360,7 +360,7 @@ NumberInput.propTypes = {
360
360
  */
361
361
  size: PropTypes.oneOf(['sm', 'md', 'lg']),
362
362
  /**
363
- * Provide a `Slug` component to be rendered inside the `NumberInput` component
363
+ * **Experimental**: Provide a `Slug` component to be rendered inside the `NumberInput` component
364
364
  */
365
365
  slug: PropTypes.node,
366
366
  /**
@@ -51,6 +51,10 @@ function ProgressIndicator(_ref) {
51
51
  return /*#__PURE__*/React__default.createElement("ul", _extends({
52
52
  className: className
53
53
  }, rest), React__default.Children.map(children, (child, index) => {
54
+ if (! /*#__PURE__*/React__default.isValidElement(child)) {
55
+ return null;
56
+ }
57
+
54
58
  // only setup click handlers if onChange event is passed
55
59
  const onClick = onChange ? () => onChange(index) : undefined;
56
60
  if (index === currentIndex) {
@@ -56,7 +56,7 @@ export interface RadioButtonProps extends Omit<React.InputHTMLAttributes<HTMLInp
56
56
  */
57
57
  onClick?: (evt: React.MouseEvent<HTMLInputElement>) => void;
58
58
  /**
59
- * Provide a `Slug` component to be rendered inside the `RadioButton` component
59
+ * **Experimental**: Provide a `Slug` component to be rendered inside the `RadioButton` component
60
60
  */
61
61
  slug?: ReactNodeLike;
62
62
  /**
@@ -120,7 +120,7 @@ RadioButton.propTypes = {
120
120
  */
121
121
  onClick: PropTypes.func,
122
122
  /**
123
- * Provide a `Slug` component to be rendered inside the `RadioButton` component
123
+ * **Experimental**: Provide a `Slug` component to be rendered inside the `RadioButton` component
124
124
  */
125
125
  slug: PropTypes.node,
126
126
  /**
@@ -64,7 +64,7 @@ export interface RadioButtonGroupProps extends Omit<React.InputHTMLAttributes<HT
64
64
  */
65
65
  readOnly?: boolean;
66
66
  /**
67
- * Provide a `Slug` component to be rendered inside the `RadioButtonGroup` component
67
+ * **Experimental**: Provide a `Slug` component to be rendered inside the `RadioButtonGroup` component
68
68
  */
69
69
  slug?: ReactNodeLike;
70
70
  /**
@@ -104,7 +104,7 @@ const RadioButtonGroup = /*#__PURE__*/React__default.forwardRef((props, ref) =>
104
104
 
105
105
  // Slug is always size `mini`
106
106
  let normalizedSlug;
107
- if (slug) {
107
+ if (slug && slug['type']?.displayName === 'Slug') {
108
108
  normalizedSlug = /*#__PURE__*/React__default.cloneElement(slug, {
109
109
  size: 'mini',
110
110
  kind: 'default'
@@ -188,7 +188,7 @@ RadioButtonGroup.propTypes = {
188
188
  */
189
189
  readOnly: PropTypes.bool,
190
190
  /**
191
- * Provide a `Slug` component to be rendered inside the `RadioButtonGroup` component
191
+ * **Experimental**: Provide a `Slug` component to be rendered inside the `RadioButtonGroup` component
192
192
  */
193
193
  slug: PropTypes.node,
194
194
  /**
@@ -78,7 +78,7 @@ interface SelectProps extends Omit<ComponentPropsWithRef<'select'>, ExcludedAttr
78
78
  */
79
79
  size?: 'sm' | 'md' | 'lg';
80
80
  /**
81
- * Provide a `Slug` component to be rendered inside the `Dropdown` component
81
+ * **Experimental**: Provide a `Slug` component to be rendered inside the `Dropdown` component
82
82
  */
83
83
  slug?: ReactNodeLike;
84
84
  /**
@@ -128,7 +128,7 @@ const Select = /*#__PURE__*/React__default.forwardRef(function Select(_ref, ref)
128
128
 
129
129
  // Slug is always size `mini`
130
130
  let normalizedSlug;
131
- if (slug) {
131
+ if (slug && slug['type']?.displayName === 'Slug') {
132
132
  normalizedSlug = /*#__PURE__*/React__default.cloneElement(slug, {
133
133
  size: 'mini'
134
134
  });
@@ -245,7 +245,7 @@ Select.propTypes = {
245
245
  */
246
246
  size: PropTypes.oneOf(['sm', 'md', 'lg']),
247
247
  /**
248
- * Provide a `Slug` component to be rendered inside the `Select` component
248
+ * **Experimental**: Provide a `Slug` component to be rendered inside the `Select` component
249
249
  */
250
250
  slug: PropTypes.node,
251
251
  /**
@@ -10,7 +10,9 @@ import PropTypes from 'prop-types';
10
10
  import React__default from 'react';
11
11
  import cx from 'classnames';
12
12
  import { usePrefix } from '../../internal/usePrefix.js';
13
+ import { LowerHandle, UpperHandle } from './SliderHandles.js';
13
14
 
15
+ var _LowerHandle, _UpperHandle, _UpperHandle2, _LowerHandle2;
14
16
  const SliderSkeleton = _ref => {
15
17
  let {
16
18
  hideLabel,
@@ -19,8 +21,10 @@ const SliderSkeleton = _ref => {
19
21
  ...rest
20
22
  } = _ref;
21
23
  const prefix = usePrefix();
24
+ const isRtl = document?.dir === 'rtl';
22
25
  const containerClasses = cx(`${prefix}--slider-container`, `${prefix}--skeleton`, {
23
- [`${prefix}--slider-container--two-handles`]: twoHandles
26
+ [`${prefix}--slider-container--two-handles`]: twoHandles,
27
+ [`${prefix}--slider-container--rtl`]: isRtl
24
28
  });
25
29
  const lowerThumbClasses = cx(`${prefix}--slider__thumb`, {
26
30
  [`${prefix}--slider__thumb--lower`]: twoHandles
@@ -28,6 +32,12 @@ const SliderSkeleton = _ref => {
28
32
  const upperThumbClasses = cx(`${prefix}--slider__thumb`, {
29
33
  [`${prefix}--slider__thumb--upper`]: twoHandles
30
34
  });
35
+ const lowerThumbWrapperClasses = cx(`${prefix}--slider__thumb-wrapper`, {
36
+ [`${prefix}--slider__thumb-wrapper--lower`]: twoHandles
37
+ });
38
+ const upperThumbWrapperClasses = cx(`${prefix}--slider__thumb-wrapper`, {
39
+ [`${prefix}--slider__thumb-wrapper--upper`]: twoHandles
40
+ });
31
41
  return /*#__PURE__*/React__default.createElement("div", _extends({
32
42
  className: cx(`${prefix}--form-item`, className)
33
43
  }, rest), !hideLabel && /*#__PURE__*/React__default.createElement("span", {
@@ -43,10 +53,14 @@ const SliderSkeleton = _ref => {
43
53
  }), /*#__PURE__*/React__default.createElement("div", {
44
54
  className: `${prefix}--slider__filled-track`
45
55
  }), /*#__PURE__*/React__default.createElement("div", {
56
+ className: lowerThumbWrapperClasses
57
+ }, /*#__PURE__*/React__default.createElement("div", {
46
58
  className: lowerThumbClasses
47
- }), twoHandles ? /*#__PURE__*/React__default.createElement("div", {
59
+ }, twoHandles && !isRtl ? _LowerHandle || (_LowerHandle = /*#__PURE__*/React__default.createElement(LowerHandle, null)) : twoHandles && isRtl ? _UpperHandle || (_UpperHandle = /*#__PURE__*/React__default.createElement(UpperHandle, null)) : undefined)), twoHandles ? /*#__PURE__*/React__default.createElement("div", {
60
+ className: upperThumbWrapperClasses
61
+ }, /*#__PURE__*/React__default.createElement("div", {
48
62
  className: upperThumbClasses
49
- }) : undefined), /*#__PURE__*/React__default.createElement("span", {
63
+ }, twoHandles && !isRtl ? _UpperHandle2 || (_UpperHandle2 = /*#__PURE__*/React__default.createElement(UpperHandle, null)) : twoHandles && isRtl ? _LowerHandle2 || (_LowerHandle2 = /*#__PURE__*/React__default.createElement(LowerHandle, null)) : undefined)) : undefined), /*#__PURE__*/React__default.createElement("span", {
50
64
  className: `${prefix}--slider__range-label`
51
65
  })));
52
66
  };