@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
@@ -0,0 +1,5 @@
1
+ export declare const levels: readonly ["one", "two", "three"];
2
+ export declare const MIN_LEVEL = 0;
3
+ export declare const MAX_LEVEL: number;
4
+ export declare const LayerLevels: readonly [0, 1, 2];
5
+ export type LayerLevel = (typeof LayerLevels)[number];
@@ -0,0 +1,18 @@
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
+ const levels = ['one', 'two', 'three'];
13
+ const MIN_LEVEL = 0;
14
+ const MAX_LEVEL = levels.length - 1;
15
+
16
+ exports.MAX_LEVEL = MAX_LEVEL;
17
+ exports.MIN_LEVEL = MIN_LEVEL;
18
+ exports.levels = levels;
@@ -0,0 +1,38 @@
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 from 'react';
8
+ import { LayerLevel } from './LayerLevel';
9
+ import { PolymorphicProps } from '../../types/common';
10
+ /**
11
+ * A custom hook that will return information about the current layer. A common
12
+ * field to pull from this is the `level` for the layer that the component that
13
+ * calls this hook is currently in
14
+ */
15
+ export declare function useLayer(): {
16
+ level: 0 | 1 | 2;
17
+ };
18
+ interface LayerBaseProps {
19
+ /**
20
+ * Provide child elements to be rendered inside of `Theme`
21
+ */
22
+ children?: React.ReactNode;
23
+ /**
24
+ * Provide a custom class name to be used on the outermost element rendered by
25
+ * the component
26
+ */
27
+ className?: string;
28
+ /**
29
+ * Specify the layer level and override any existing levels based on hierarchy
30
+ */
31
+ level?: LayerLevel;
32
+ }
33
+ export type LayerProps<T extends React.ElementType> = PolymorphicProps<T, LayerBaseProps>;
34
+ export interface LayerComponent {
35
+ <T extends React.ElementType>(props: LayerProps<T>, context?: any): React.ReactElement<any, any> | null;
36
+ }
37
+ export declare const Layer: LayerComponent;
38
+ export {};
@@ -15,6 +15,7 @@ var PropTypes = require('prop-types');
15
15
  var cx = require('classnames');
16
16
  var usePrefix = require('../../internal/usePrefix.js');
17
17
  var LayerContext = require('./LayerContext.js');
18
+ var LayerLevel = require('./LayerLevel.js');
18
19
 
19
20
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
20
21
 
@@ -22,9 +23,6 @@ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
22
23
  var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
23
24
  var cx__default = /*#__PURE__*/_interopDefaultLegacy(cx);
24
25
 
25
- const levels = ['one', 'two', 'three'];
26
- const MAX_LEVEL = levels.length - 1;
27
-
28
26
  /**
29
27
  * A custom hook that will return information about the current layer. A common
30
28
  * field to pull from this is the `level` for the layer that the component that
@@ -36,9 +34,9 @@ function useLayer() {
36
34
  level
37
35
  };
38
36
  }
39
- const Layer = /*#__PURE__*/React__default["default"].forwardRef(function Layer(_ref, ref) {
37
+ const LayerRenderFunction = /*#__PURE__*/React__default["default"].forwardRef(function Layer(_ref, ref) {
40
38
  let {
41
- as: BaseComponent = 'div',
39
+ as = 'div',
42
40
  className: customClassName,
43
41
  children,
44
42
  level: overrideLevel,
@@ -47,9 +45,10 @@ const Layer = /*#__PURE__*/React__default["default"].forwardRef(function Layer(_
47
45
  const contextLevel = React__default["default"].useContext(LayerContext.LayerContext);
48
46
  const level = overrideLevel ?? contextLevel;
49
47
  const prefix = usePrefix.usePrefix();
50
- const className = cx__default["default"](`${prefix}--layer-${levels[level]}`, customClassName);
51
- // The level should be between 0 and MAX_LEVEL
52
- const value = Math.max(0, Math.min(level + 1, MAX_LEVEL));
48
+ const className = cx__default["default"](`${prefix}--layer-${LayerLevel.levels[level]}`, customClassName);
49
+ // The level should be between MIN_LEVEL and MAX_LEVEL
50
+ const value = Math.max(LayerLevel.MIN_LEVEL, Math.min(level + 1, LayerLevel.MAX_LEVEL));
51
+ const BaseComponent = as;
53
52
  return /*#__PURE__*/React__default["default"].createElement(LayerContext.LayerContext.Provider, {
54
53
  value: value
55
54
  }, /*#__PURE__*/React__default["default"].createElement(BaseComponent, _rollupPluginBabelHelpers["extends"]({
@@ -58,7 +57,8 @@ const Layer = /*#__PURE__*/React__default["default"].forwardRef(function Layer(_
58
57
  className: className
59
58
  }), children));
60
59
  });
61
- Layer.propTypes = {
60
+ LayerRenderFunction.displayName = 'Layer';
61
+ LayerRenderFunction.propTypes = {
62
62
  /**
63
63
  * Specify a custom component or element to be rendered as the top-level
64
64
  * element in the component
@@ -78,6 +78,7 @@ Layer.propTypes = {
78
78
  */
79
79
  level: PropTypes__default["default"].oneOf([0, 1, 2])
80
80
  };
81
+ const Layer = LayerRenderFunction;
81
82
 
82
83
  exports.Layer = Layer;
83
84
  exports.useLayer = useLayer;
@@ -179,7 +179,8 @@ const MenuItem = /*#__PURE__*/React__default["default"].forwardRef(function Menu
179
179
  className: `${prefix}--menu-item__icon`
180
180
  }, iconsAllowed && IconElement && /*#__PURE__*/React__default["default"].createElement(IconElement, null)), /*#__PURE__*/React__default["default"].createElement(Text.Text, {
181
181
  as: "div",
182
- className: `${prefix}--menu-item__label`
182
+ className: `${prefix}--menu-item__label`,
183
+ title: label
183
184
  }, label), shortcut && !hasChildren && /*#__PURE__*/React__default["default"].createElement("div", {
184
185
  className: `${prefix}--menu-item__shortcut`
185
186
  }, shortcut), hasChildren && /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement("div", {
@@ -28,7 +28,7 @@ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
28
28
  var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
29
29
  var cx__default = /*#__PURE__*/_interopDefaultLegacy(cx);
30
30
 
31
- const spacing = 4; // top and bottom spacing between the button and the menu. in px
31
+ const spacing = 0; // top and bottom spacing between the button and the menu. in px
32
32
  const validButtonKinds = ['primary', 'tertiary', 'ghost'];
33
33
  const defaultButtonKind = 'primary';
34
34
  const MenuButton = /*#__PURE__*/React__default["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.
@@ -205,7 +205,7 @@ const FilterableMultiSelect = /*#__PURE__*/React__default["default"].forwardRef(
205
205
 
206
206
  // Slug is always size `mini`
207
207
  let normalizedSlug;
208
- if (slug) {
208
+ if (slug && slug['type']?.displayName === 'Slug') {
209
209
  normalizedSlug = /*#__PURE__*/React__default["default"].cloneElement(slug, {
210
210
  size: 'mini'
211
211
  });
@@ -557,7 +557,7 @@ FilterableMultiSelect.propTypes = {
557
557
  */
558
558
  size: ListBoxPropTypes.ListBoxSize,
559
559
  /**
560
- * Provide a `Slug` component to be rendered inside the `FilterableMultiSelect` component
560
+ * **Experimental**: Provide a `Slug` component to be rendered inside the `FilterableMultiSelect` component
561
561
  */
562
562
  slug: PropTypes__default["default"].node,
563
563
  ...MultiSelectPropTypes.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
  /**
@@ -248,6 +248,9 @@ const MultiSelect = /*#__PURE__*/React__default["default"].forwardRef((_ref, ref
248
248
  if (changes.selectedItem === undefined) {
249
249
  break;
250
250
  }
251
+ if (Array.isArray(changes.selectedItem)) {
252
+ break;
253
+ }
251
254
  onItemChange(changes.selectedItem);
252
255
  return {
253
256
  ...changes,
@@ -309,7 +312,7 @@ const MultiSelect = /*#__PURE__*/React__default["default"].forwardRef((_ref, ref
309
312
 
310
313
  // Slug is always size `mini`
311
314
  let normalizedSlug;
312
- if (slug) {
315
+ if (slug && slug['type']?.displayName === 'Slug') {
313
316
  normalizedSlug = /*#__PURE__*/React__default["default"].cloneElement(slug, {
314
317
  size: 'mini'
315
318
  });
@@ -518,7 +521,7 @@ MultiSelect.propTypes = {
518
521
  */
519
522
  size: ListBoxPropTypes.ListBoxSize,
520
523
  /**
521
- * Provide a `Slug` component to be rendered inside the `MultiSelect` component
524
+ * **Experimental**: Provide a `Slug` component to be rendered inside the `MultiSelect` component
522
525
  */
523
526
  slug: PropTypes__default["default"].node,
524
527
  /**
@@ -594,6 +594,7 @@ function ActionableNotification(_ref6) {
594
594
  className: `${prefix}--actionable-notification__subtitle`,
595
595
  id: subtitleId
596
596
  }, subtitle), children))), /*#__PURE__*/React__default["default"].createElement("div", {
597
+ className: `${prefix}--actionable-notification__button-wrapper`,
597
598
  ref: innerModal
598
599
  }, actionButtonLabel && /*#__PURE__*/React__default["default"].createElement(NotificationActionButton, {
599
600
  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
  /**
@@ -182,7 +182,7 @@ const NumberInput = /*#__PURE__*/React__default["default"].forwardRef(function N
182
182
 
183
183
  // Slug is always size `mini`
184
184
  let normalizedSlug;
185
- if (slug) {
185
+ if (slug && slug['type']?.displayName === 'Slug') {
186
186
  normalizedSlug = /*#__PURE__*/React__default["default"].cloneElement(slug, {
187
187
  size: 'mini'
188
188
  });
@@ -190,7 +190,7 @@ const NumberInput = /*#__PURE__*/React__default["default"].forwardRef(function N
190
190
 
191
191
  // Need to update the internal value when the revert button is clicked
192
192
  let isRevertActive;
193
- if (slug) {
193
+ if (slug && slug['type']?.displayName === 'Slug') {
194
194
  isRevertActive = normalizedSlug.props.revertActive;
195
195
  }
196
196
  React.useEffect(() => {
@@ -370,7 +370,7 @@ NumberInput.propTypes = {
370
370
  */
371
371
  size: PropTypes__default["default"].oneOf(['sm', 'md', 'lg']),
372
372
  /**
373
- * Provide a `Slug` component to be rendered inside the `NumberInput` component
373
+ * **Experimental**: Provide a `Slug` component to be rendered inside the `NumberInput` component
374
374
  */
375
375
  slug: PropTypes__default["default"].node,
376
376
  /**
@@ -61,6 +61,10 @@ function ProgressIndicator(_ref) {
61
61
  return /*#__PURE__*/React__default["default"].createElement("ul", _rollupPluginBabelHelpers["extends"]({
62
62
  className: className
63
63
  }, rest), React__default["default"].Children.map(children, (child, index) => {
64
+ if (! /*#__PURE__*/React__default["default"].isValidElement(child)) {
65
+ return null;
66
+ }
67
+
64
68
  // only setup click handlers if onChange event is passed
65
69
  const onClick = onChange ? () => onChange(index) : undefined;
66
70
  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
  /**
@@ -130,7 +130,7 @@ RadioButton.propTypes = {
130
130
  */
131
131
  onClick: PropTypes__default["default"].func,
132
132
  /**
133
- * Provide a `Slug` component to be rendered inside the `RadioButton` component
133
+ * **Experimental**: Provide a `Slug` component to be rendered inside the `RadioButton` component
134
134
  */
135
135
  slug: PropTypes__default["default"].node,
136
136
  /**
@@ -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
  /**
@@ -114,7 +114,7 @@ const RadioButtonGroup = /*#__PURE__*/React__default["default"].forwardRef((prop
114
114
 
115
115
  // Slug is always size `mini`
116
116
  let normalizedSlug;
117
- if (slug) {
117
+ if (slug && slug['type']?.displayName === 'Slug') {
118
118
  normalizedSlug = /*#__PURE__*/React__default["default"].cloneElement(slug, {
119
119
  size: 'mini',
120
120
  kind: 'default'
@@ -198,7 +198,7 @@ RadioButtonGroup.propTypes = {
198
198
  */
199
199
  readOnly: PropTypes__default["default"].bool,
200
200
  /**
201
- * Provide a `Slug` component to be rendered inside the `RadioButtonGroup` component
201
+ * **Experimental**: Provide a `Slug` component to be rendered inside the `RadioButtonGroup` component
202
202
  */
203
203
  slug: PropTypes__default["default"].node,
204
204
  /**
@@ -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
  /**
@@ -138,7 +138,7 @@ const Select = /*#__PURE__*/React__default["default"].forwardRef(function Select
138
138
 
139
139
  // Slug is always size `mini`
140
140
  let normalizedSlug;
141
- if (slug) {
141
+ if (slug && slug['type']?.displayName === 'Slug') {
142
142
  normalizedSlug = /*#__PURE__*/React__default["default"].cloneElement(slug, {
143
143
  size: 'mini'
144
144
  });
@@ -255,7 +255,7 @@ Select.propTypes = {
255
255
  */
256
256
  size: PropTypes__default["default"].oneOf(['sm', 'md', 'lg']),
257
257
  /**
258
- * Provide a `Slug` component to be rendered inside the `Select` component
258
+ * **Experimental**: Provide a `Slug` component to be rendered inside the `Select` component
259
259
  */
260
260
  slug: PropTypes__default["default"].node,
261
261
  /**
@@ -14,6 +14,7 @@ var PropTypes = require('prop-types');
14
14
  var React = require('react');
15
15
  var cx = require('classnames');
16
16
  var usePrefix = require('../../internal/usePrefix.js');
17
+ var SliderHandles = require('./SliderHandles.js');
17
18
 
18
19
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
19
20
 
@@ -21,6 +22,7 @@ var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
21
22
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
22
23
  var cx__default = /*#__PURE__*/_interopDefaultLegacy(cx);
23
24
 
25
+ var _LowerHandle, _UpperHandle, _UpperHandle2, _LowerHandle2;
24
26
  const SliderSkeleton = _ref => {
25
27
  let {
26
28
  hideLabel,
@@ -29,8 +31,10 @@ const SliderSkeleton = _ref => {
29
31
  ...rest
30
32
  } = _ref;
31
33
  const prefix = usePrefix.usePrefix();
34
+ const isRtl = document?.dir === 'rtl';
32
35
  const containerClasses = cx__default["default"](`${prefix}--slider-container`, `${prefix}--skeleton`, {
33
- [`${prefix}--slider-container--two-handles`]: twoHandles
36
+ [`${prefix}--slider-container--two-handles`]: twoHandles,
37
+ [`${prefix}--slider-container--rtl`]: isRtl
34
38
  });
35
39
  const lowerThumbClasses = cx__default["default"](`${prefix}--slider__thumb`, {
36
40
  [`${prefix}--slider__thumb--lower`]: twoHandles
@@ -38,6 +42,12 @@ const SliderSkeleton = _ref => {
38
42
  const upperThumbClasses = cx__default["default"](`${prefix}--slider__thumb`, {
39
43
  [`${prefix}--slider__thumb--upper`]: twoHandles
40
44
  });
45
+ const lowerThumbWrapperClasses = cx__default["default"](`${prefix}--slider__thumb-wrapper`, {
46
+ [`${prefix}--slider__thumb-wrapper--lower`]: twoHandles
47
+ });
48
+ const upperThumbWrapperClasses = cx__default["default"](`${prefix}--slider__thumb-wrapper`, {
49
+ [`${prefix}--slider__thumb-wrapper--upper`]: twoHandles
50
+ });
41
51
  return /*#__PURE__*/React__default["default"].createElement("div", _rollupPluginBabelHelpers["extends"]({
42
52
  className: cx__default["default"](`${prefix}--form-item`, className)
43
53
  }, rest), !hideLabel && /*#__PURE__*/React__default["default"].createElement("span", {
@@ -53,10 +63,14 @@ const SliderSkeleton = _ref => {
53
63
  }), /*#__PURE__*/React__default["default"].createElement("div", {
54
64
  className: `${prefix}--slider__filled-track`
55
65
  }), /*#__PURE__*/React__default["default"].createElement("div", {
66
+ className: lowerThumbWrapperClasses
67
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
56
68
  className: lowerThumbClasses
57
- }), twoHandles ? /*#__PURE__*/React__default["default"].createElement("div", {
69
+ }, twoHandles && !isRtl ? _LowerHandle || (_LowerHandle = /*#__PURE__*/React__default["default"].createElement(SliderHandles.LowerHandle, null)) : twoHandles && isRtl ? _UpperHandle || (_UpperHandle = /*#__PURE__*/React__default["default"].createElement(SliderHandles.UpperHandle, null)) : undefined)), twoHandles ? /*#__PURE__*/React__default["default"].createElement("div", {
70
+ className: upperThumbWrapperClasses
71
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
58
72
  className: upperThumbClasses
59
- }) : undefined), /*#__PURE__*/React__default["default"].createElement("span", {
73
+ }, twoHandles && !isRtl ? _UpperHandle2 || (_UpperHandle2 = /*#__PURE__*/React__default["default"].createElement(SliderHandles.UpperHandle, null)) : twoHandles && isRtl ? _LowerHandle2 || (_LowerHandle2 = /*#__PURE__*/React__default["default"].createElement(SliderHandles.LowerHandle, null)) : undefined)) : undefined), /*#__PURE__*/React__default["default"].createElement("span", {
60
74
  className: `${prefix}--slider__range-label`
61
75
  })));
62
76
  };