@carbon/react 1.40.0 → 1.41.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 (260) hide show
  1. package/.playwright/INTERNAL_AVT_REPORT_DO_NOT_USE.json +1564 -872
  2. package/es/components/Accordion/Accordion.Skeleton.d.ts +0 -5
  3. package/es/components/Accordion/Accordion.Skeleton.js +0 -5
  4. package/es/components/Breadcrumb/BreadcrumbItem.js +3 -1
  5. package/es/components/Checkbox/Checkbox.js +3 -6
  6. package/es/components/CodeSnippet/CodeSnippet.js +5 -12
  7. package/es/components/ComboBox/ComboBox.d.ts +1 -5
  8. package/es/components/ComboBox/ComboBox.js +6 -20
  9. package/es/components/ComposedModal/ComposedModal.js +1 -5
  10. package/es/components/ComposedModal/ModalFooter.js +4 -9
  11. package/es/components/ComposedModal/ModalHeader.js +1 -4
  12. package/es/components/ContentSwitcher/ContentSwitcher.d.ts +3 -8
  13. package/es/components/ContentSwitcher/ContentSwitcher.js +7 -11
  14. package/es/components/Copy/Copy.js +4 -8
  15. package/es/components/CopyButton/CopyButton.js +8 -7
  16. package/es/components/DataTable/DataTable.d.ts +3 -39
  17. package/es/components/DataTable/DataTable.js +10 -18
  18. package/es/components/DataTable/Table.d.ts +0 -4
  19. package/es/components/DataTable/Table.js +4 -7
  20. package/es/components/DataTable/TableBatchAction.js +12 -5
  21. package/es/components/DataTable/TableBatchActions.js +1 -6
  22. package/es/components/DataTable/TableBody.d.ts +0 -3
  23. package/es/components/DataTable/TableBody.js +1 -3
  24. package/es/components/DataTable/TableExpandHeader.d.ts +1 -1
  25. package/es/components/DataTable/TableHeader.js +3 -8
  26. package/es/components/DataTable/TableSelectAll.d.ts +0 -3
  27. package/es/components/DataTable/TableSelectAll.js +1 -4
  28. package/es/components/DataTable/TableToolbar.d.ts +10 -0
  29. package/es/components/DataTable/TableToolbar.js +15 -7
  30. package/es/components/DataTable/TableToolbarMenu.js +2 -6
  31. package/es/components/DataTable/TableToolbarSearch.d.ts +2 -8
  32. package/es/components/DataTable/TableToolbarSearch.js +6 -11
  33. package/es/components/DataTable/tools/sorting.js +2 -2
  34. package/es/components/DatePicker/DatePicker.d.ts +4 -4
  35. package/es/components/DatePicker/DatePicker.js +9 -4
  36. package/es/components/DatePicker/plugins/fixEventsPlugin.js +6 -0
  37. package/es/components/DatePickerInput/DatePickerInput.d.ts +1 -1
  38. package/es/components/DatePickerInput/DatePickerInput.js +12 -6
  39. package/es/components/Dropdown/Dropdown.js +6 -15
  40. package/es/components/FileUploader/FileUploader.d.ts +2 -11
  41. package/es/components/FileUploader/FileUploader.js +15 -19
  42. package/es/components/FileUploader/FileUploaderButton.js +2 -2
  43. package/es/components/FileUploader/FileUploaderDropContainer.d.ts +0 -7
  44. package/es/components/FileUploader/FileUploaderDropContainer.js +2 -8
  45. package/es/components/FileUploader/FileUploaderItem.d.ts +0 -4
  46. package/es/components/FileUploader/FileUploaderItem.js +12 -9
  47. package/es/components/FileUploader/Filename.d.ts +6 -10
  48. package/es/components/FileUploader/Filename.js +7 -11
  49. package/es/components/FormGroup/FormGroup.d.ts +0 -5
  50. package/es/components/FormGroup/FormGroup.js +3 -8
  51. package/es/components/FormItem/FormItem.d.ts +32 -0
  52. package/es/components/FormItem/index.d.ts +9 -0
  53. package/es/components/FormLabel/FormLabel.js +4 -1
  54. package/es/components/ListBox/ListBox.js +4 -8
  55. package/es/components/ListBox/ListBoxMenuIcon.js +1 -4
  56. package/es/components/ListBox/ListBoxMenuItem.js +4 -8
  57. package/es/components/ListBox/ListBoxSelection.d.ts +5 -5
  58. package/es/components/ListBox/ListBoxSelection.js +12 -13
  59. package/es/components/ListBox/next/ListBoxSelection.js +12 -13
  60. package/es/components/ListBox/next/ListBoxTrigger.js +3 -5
  61. package/es/components/ListItem/ListItem.d.ts +1 -1
  62. package/es/components/ListItem/ListItem.js +6 -2
  63. package/es/components/Menu/MenuItem.js +4 -1
  64. package/es/components/Modal/Modal.d.ts +137 -0
  65. package/es/components/Modal/Modal.js +39 -45
  66. package/es/components/Modal/index.d.ts +9 -0
  67. package/es/components/ModalWrapper/ModalWrapper.js +13 -19
  68. package/es/components/MultiSelect/FilterableMultiSelect.js +14 -28
  69. package/es/components/MultiSelect/MultiSelect.js +17 -33
  70. package/es/components/MultiSelect/MultiSelectPropTypes.js +2 -2
  71. package/es/components/MultiSelect/tools/sorting.js +2 -2
  72. package/es/components/Notification/Notification.d.ts +11 -29
  73. package/es/components/Notification/Notification.js +38 -57
  74. package/es/components/NumberInput/NumberInput.js +6 -2
  75. package/es/components/OverflowMenu/OverflowMenu.js +27 -33
  76. package/es/components/OverflowMenuItem/OverflowMenuItem.js +4 -1
  77. package/es/components/Pagination/experimental/PageSelector.js +3 -8
  78. package/es/components/Pagination/experimental/Pagination.js +16 -34
  79. package/es/components/ProgressIndicator/ProgressIndicator.js +7 -6
  80. package/es/components/RadioTile/RadioTile.js +6 -7
  81. package/es/components/Search/Search.Skeleton.d.ts +0 -3
  82. package/es/components/Search/Search.Skeleton.js +1 -4
  83. package/es/components/Select/Select.d.ts +2 -2
  84. package/es/components/Select/Select.js +13 -16
  85. package/es/components/SelectItem/SelectItem.d.ts +0 -6
  86. package/es/components/SelectItem/SelectItem.js +4 -10
  87. package/es/components/SelectItemGroup/SelectItemGroup.d.ts +0 -3
  88. package/es/components/SelectItemGroup/SelectItemGroup.js +1 -4
  89. package/es/components/SkeletonIcon/SkeletonIcon.d.ts +13 -0
  90. package/es/components/SkeletonIcon/SkeletonIcon.js +2 -3
  91. package/es/components/SkeletonText/SkeletonText.d.ts +0 -6
  92. package/es/components/SkeletonText/SkeletonText.js +0 -6
  93. package/es/components/Slider/Slider.Skeleton.d.ts +9 -1
  94. package/es/components/Slider/Slider.Skeleton.js +20 -4
  95. package/es/components/Slider/Slider.d.ts +137 -25
  96. package/es/components/Slider/Slider.js +779 -186
  97. package/es/components/StructuredList/StructuredList.js +5 -2
  98. package/es/components/Switch/Switch.js +3 -7
  99. package/es/components/Tabs/Tabs.js +5 -2
  100. package/es/components/Tag/Tag.js +4 -2
  101. package/es/components/Text/Text.js +1 -1
  102. package/es/components/Text/TextDirection.d.ts +1 -1
  103. package/es/components/TextArea/TextArea.js +30 -34
  104. package/es/components/TextInput/ControlledPasswordInput.js +12 -19
  105. package/es/components/TextInput/TextInput.js +8 -3
  106. package/es/components/Tile/Tile.js +5 -3
  107. package/es/components/TileGroup/TileGroup.js +5 -4
  108. package/es/components/Toggle/Toggle.js +4 -2
  109. package/es/components/Toggletip/index.d.ts +6 -1
  110. package/es/components/Toggletip/index.js +7 -1
  111. package/es/components/UIShell/Content.js +1 -4
  112. package/es/components/UIShell/SideNav.d.ts +1 -1
  113. package/es/components/UIShell/SideNavDetails.d.ts +32 -0
  114. package/es/components/UIShell/SideNavDetails.js +1 -2
  115. package/es/components/UIShell/SideNavDivider.d.ts +15 -0
  116. package/es/components/UIShell/SideNavDivider.js +2 -2
  117. package/es/components/UIShell/SideNavFooter.js +2 -5
  118. package/es/components/UIShell/SideNavIcon.d.ts +25 -0
  119. package/es/components/UIShell/SideNavIcon.js +4 -7
  120. package/es/components/UIShell/SideNavSwitcher.d.ts +31 -0
  121. package/es/components/UIShell/SideNavSwitcher.js +6 -5
  122. package/es/index.js +2 -2
  123. package/es/internal/FloatingMenu.js +2 -7
  124. package/es/internal/Selection.js +0 -3
  125. package/es/internal/noopFn.d.ts +7 -0
  126. package/es/internal/noopFn.js +10 -0
  127. package/es/internal/useNormalizedInputProps.js +6 -2
  128. package/es/internal/wrapFocus.js +5 -5
  129. package/es/prop-types/requiredIfGivenPropIsTruthy.js +2 -2
  130. package/lib/components/Accordion/Accordion.Skeleton.d.ts +0 -5
  131. package/lib/components/Accordion/Accordion.Skeleton.js +0 -5
  132. package/lib/components/Breadcrumb/BreadcrumbItem.js +3 -1
  133. package/lib/components/Checkbox/Checkbox.js +3 -6
  134. package/lib/components/CodeSnippet/CodeSnippet.js +5 -12
  135. package/lib/components/ComboBox/ComboBox.d.ts +1 -5
  136. package/lib/components/ComboBox/ComboBox.js +5 -19
  137. package/lib/components/ComposedModal/ComposedModal.js +1 -5
  138. package/lib/components/ComposedModal/ModalFooter.js +4 -9
  139. package/lib/components/ComposedModal/ModalHeader.js +1 -4
  140. package/lib/components/ContentSwitcher/ContentSwitcher.d.ts +3 -8
  141. package/lib/components/ContentSwitcher/ContentSwitcher.js +7 -11
  142. package/lib/components/Copy/Copy.js +4 -8
  143. package/lib/components/CopyButton/CopyButton.js +8 -7
  144. package/lib/components/DataTable/DataTable.d.ts +3 -39
  145. package/lib/components/DataTable/DataTable.js +13 -21
  146. package/lib/components/DataTable/Table.d.ts +0 -4
  147. package/lib/components/DataTable/Table.js +3 -6
  148. package/lib/components/DataTable/TableBatchAction.js +12 -5
  149. package/lib/components/DataTable/TableBatchActions.js +1 -6
  150. package/lib/components/DataTable/TableBody.d.ts +0 -3
  151. package/lib/components/DataTable/TableBody.js +1 -3
  152. package/lib/components/DataTable/TableExpandHeader.d.ts +1 -1
  153. package/lib/components/DataTable/TableHeader.js +3 -8
  154. package/lib/components/DataTable/TableSelectAll.d.ts +0 -3
  155. package/lib/components/DataTable/TableSelectAll.js +1 -4
  156. package/lib/components/DataTable/TableToolbar.d.ts +10 -0
  157. package/lib/components/DataTable/TableToolbar.js +15 -7
  158. package/lib/components/DataTable/TableToolbarMenu.js +2 -6
  159. package/lib/components/DataTable/TableToolbarSearch.d.ts +2 -8
  160. package/lib/components/DataTable/TableToolbarSearch.js +6 -11
  161. package/lib/components/DataTable/tools/sorting.js +2 -2
  162. package/lib/components/DatePicker/DatePicker.d.ts +4 -4
  163. package/lib/components/DatePicker/DatePicker.js +9 -4
  164. package/lib/components/DatePicker/plugins/fixEventsPlugin.js +6 -0
  165. package/lib/components/DatePickerInput/DatePickerInput.d.ts +1 -1
  166. package/lib/components/DatePickerInput/DatePickerInput.js +12 -6
  167. package/lib/components/Dropdown/Dropdown.js +6 -15
  168. package/lib/components/FileUploader/FileUploader.d.ts +2 -11
  169. package/lib/components/FileUploader/FileUploader.js +15 -19
  170. package/lib/components/FileUploader/FileUploaderButton.js +2 -2
  171. package/lib/components/FileUploader/FileUploaderDropContainer.d.ts +0 -7
  172. package/lib/components/FileUploader/FileUploaderDropContainer.js +2 -8
  173. package/lib/components/FileUploader/FileUploaderItem.d.ts +0 -4
  174. package/lib/components/FileUploader/FileUploaderItem.js +12 -9
  175. package/lib/components/FileUploader/Filename.d.ts +6 -10
  176. package/lib/components/FileUploader/Filename.js +7 -11
  177. package/lib/components/FormGroup/FormGroup.d.ts +0 -5
  178. package/lib/components/FormGroup/FormGroup.js +3 -8
  179. package/lib/components/FormItem/FormItem.d.ts +32 -0
  180. package/lib/components/FormItem/index.d.ts +9 -0
  181. package/lib/components/FormLabel/FormLabel.js +4 -1
  182. package/lib/components/ListBox/ListBox.js +4 -8
  183. package/lib/components/ListBox/ListBoxMenuIcon.js +1 -4
  184. package/lib/components/ListBox/ListBoxMenuItem.js +4 -8
  185. package/lib/components/ListBox/ListBoxSelection.d.ts +5 -5
  186. package/lib/components/ListBox/ListBoxSelection.js +12 -13
  187. package/lib/components/ListBox/next/ListBoxSelection.js +12 -13
  188. package/lib/components/ListBox/next/ListBoxTrigger.js +3 -5
  189. package/lib/components/ListItem/ListItem.d.ts +1 -1
  190. package/lib/components/ListItem/ListItem.js +6 -2
  191. package/lib/components/Menu/MenuItem.js +4 -1
  192. package/lib/components/Modal/Modal.d.ts +137 -0
  193. package/lib/components/Modal/Modal.js +40 -45
  194. package/lib/components/Modal/index.d.ts +9 -0
  195. package/lib/components/ModalWrapper/ModalWrapper.js +13 -19
  196. package/lib/components/MultiSelect/FilterableMultiSelect.js +18 -32
  197. package/lib/components/MultiSelect/MultiSelect.js +16 -32
  198. package/lib/components/MultiSelect/MultiSelectPropTypes.js +2 -2
  199. package/lib/components/MultiSelect/tools/sorting.js +2 -2
  200. package/lib/components/Notification/Notification.d.ts +11 -29
  201. package/lib/components/Notification/Notification.js +38 -57
  202. package/lib/components/NumberInput/NumberInput.js +6 -2
  203. package/lib/components/OverflowMenu/OverflowMenu.js +27 -33
  204. package/lib/components/OverflowMenuItem/OverflowMenuItem.js +4 -1
  205. package/lib/components/Pagination/experimental/PageSelector.js +3 -8
  206. package/lib/components/Pagination/experimental/Pagination.js +16 -34
  207. package/lib/components/ProgressIndicator/ProgressIndicator.js +7 -6
  208. package/lib/components/RadioTile/RadioTile.js +6 -7
  209. package/lib/components/Search/Search.Skeleton.d.ts +0 -3
  210. package/lib/components/Search/Search.Skeleton.js +1 -4
  211. package/lib/components/Select/Select.d.ts +2 -2
  212. package/lib/components/Select/Select.js +13 -16
  213. package/lib/components/SelectItem/SelectItem.d.ts +0 -6
  214. package/lib/components/SelectItem/SelectItem.js +4 -10
  215. package/lib/components/SelectItemGroup/SelectItemGroup.d.ts +0 -3
  216. package/lib/components/SelectItemGroup/SelectItemGroup.js +1 -4
  217. package/lib/components/SkeletonIcon/SkeletonIcon.d.ts +13 -0
  218. package/lib/components/SkeletonIcon/SkeletonIcon.js +2 -3
  219. package/lib/components/SkeletonText/SkeletonText.d.ts +0 -6
  220. package/lib/components/SkeletonText/SkeletonText.js +0 -6
  221. package/lib/components/Slider/Slider.Skeleton.d.ts +9 -1
  222. package/lib/components/Slider/Slider.Skeleton.js +20 -4
  223. package/lib/components/Slider/Slider.d.ts +137 -25
  224. package/lib/components/Slider/Slider.js +778 -185
  225. package/lib/components/StructuredList/StructuredList.js +5 -2
  226. package/lib/components/Switch/Switch.js +3 -7
  227. package/lib/components/Tabs/Tabs.js +5 -2
  228. package/lib/components/Tag/Tag.js +4 -2
  229. package/lib/components/Text/Text.js +1 -1
  230. package/lib/components/Text/TextDirection.d.ts +1 -1
  231. package/lib/components/TextArea/TextArea.js +30 -34
  232. package/lib/components/TextInput/ControlledPasswordInput.js +12 -19
  233. package/lib/components/TextInput/TextInput.js +8 -3
  234. package/lib/components/Tile/Tile.js +5 -3
  235. package/lib/components/TileGroup/TileGroup.js +5 -4
  236. package/lib/components/Toggle/Toggle.js +4 -2
  237. package/lib/components/Toggletip/index.d.ts +6 -1
  238. package/lib/components/Toggletip/index.js +7 -1
  239. package/lib/components/UIShell/Content.js +1 -4
  240. package/lib/components/UIShell/SideNav.d.ts +1 -1
  241. package/lib/components/UIShell/SideNavDetails.d.ts +32 -0
  242. package/lib/components/UIShell/SideNavDetails.js +1 -2
  243. package/lib/components/UIShell/SideNavDivider.d.ts +15 -0
  244. package/lib/components/UIShell/SideNavDivider.js +2 -2
  245. package/lib/components/UIShell/SideNavFooter.js +2 -5
  246. package/lib/components/UIShell/SideNavIcon.d.ts +25 -0
  247. package/lib/components/UIShell/SideNavIcon.js +4 -7
  248. package/lib/components/UIShell/SideNavSwitcher.d.ts +31 -0
  249. package/lib/components/UIShell/SideNavSwitcher.js +5 -4
  250. package/lib/index.js +4 -4
  251. package/lib/internal/FloatingMenu.js +2 -7
  252. package/lib/internal/Selection.js +0 -3
  253. package/lib/internal/noopFn.d.ts +7 -0
  254. package/lib/internal/noopFn.js +14 -0
  255. package/lib/internal/useNormalizedInputProps.js +6 -2
  256. package/lib/internal/wrapFocus.js +5 -5
  257. package/lib/prop-types/requiredIfGivenPropIsTruthy.js +2 -2
  258. package/package.json +9 -9
  259. package/scss/components/slug/_index.scss +9 -0
  260. package/scss/components/slug/_slug.scss +9 -0
@@ -25,15 +25,25 @@ const SliderSkeleton = _ref => {
25
25
  let {
26
26
  hideLabel,
27
27
  className,
28
+ twoHandles,
28
29
  ...rest
29
30
  } = _ref;
30
31
  const prefix = usePrefix.usePrefix();
32
+ const containerClasses = cx__default["default"](`${prefix}--slider-container`, `${prefix}--skeleton`, {
33
+ [`${prefix}--slider-container--two-handles`]: twoHandles
34
+ });
35
+ const lowerThumbClasses = cx__default["default"](`${prefix}--slider__thumb`, {
36
+ [`${prefix}--slider__thumb--lower`]: twoHandles
37
+ });
38
+ const upperThumbClasses = cx__default["default"](`${prefix}--slider__thumb`, {
39
+ [`${prefix}--slider__thumb--upper`]: twoHandles
40
+ });
31
41
  return /*#__PURE__*/React__default["default"].createElement("div", _rollupPluginBabelHelpers["extends"]({
32
42
  className: cx__default["default"](`${prefix}--form-item`, className)
33
43
  }, rest), !hideLabel && /*#__PURE__*/React__default["default"].createElement("span", {
34
44
  className: `${prefix}--label ${prefix}--skeleton`
35
45
  }), /*#__PURE__*/React__default["default"].createElement("div", {
36
- className: `${prefix}--slider-container ${prefix}--skeleton`
46
+ className: containerClasses
37
47
  }, /*#__PURE__*/React__default["default"].createElement("span", {
38
48
  className: `${prefix}--slider__range-label`
39
49
  }), /*#__PURE__*/React__default["default"].createElement("div", {
@@ -43,8 +53,10 @@ const SliderSkeleton = _ref => {
43
53
  }), /*#__PURE__*/React__default["default"].createElement("div", {
44
54
  className: `${prefix}--slider__filled-track`
45
55
  }), /*#__PURE__*/React__default["default"].createElement("div", {
46
- className: `${prefix}--slider__thumb`
47
- })), /*#__PURE__*/React__default["default"].createElement("span", {
56
+ className: lowerThumbClasses
57
+ }), twoHandles ? /*#__PURE__*/React__default["default"].createElement("div", {
58
+ className: upperThumbClasses
59
+ }) : undefined), /*#__PURE__*/React__default["default"].createElement("span", {
48
60
  className: `${prefix}--slider__range-label`
49
61
  })));
50
62
  };
@@ -56,7 +68,11 @@ SliderSkeleton.propTypes = {
56
68
  /**
57
69
  * Specify whether the label should be hidden, or not
58
70
  */
59
- hideLabel: PropTypes__default["default"].bool
71
+ hideLabel: PropTypes__default["default"].bool,
72
+ /**
73
+ * Turn the slider into a range slider.
74
+ */
75
+ twoHandles: PropTypes__default["default"].bool
60
76
  };
61
77
  var SliderSkeleton$1 = SliderSkeleton;
62
78
 
@@ -6,18 +6,29 @@
6
6
  */
7
7
  import React, { KeyboardEventHandler, PureComponent } from 'react';
8
8
  import PropTypes, { ReactNodeLike } from 'prop-types';
9
+ /**
10
+ * Distinguish two handles by lower and upper positions.
11
+ */
12
+ declare enum HandlePosition {
13
+ LOWER = "lower",
14
+ UPPER = "upper"
15
+ }
9
16
  type ExcludedAttributes = 'onChange' | 'onBlur';
10
17
  export interface SliderProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, ExcludedAttributes> {
11
18
  /**
12
19
  * The `ariaLabel` for the `<input>`.
13
20
  */
14
21
  ariaLabelInput?: string;
22
+ /**
23
+ * The `ariaLabel` for the upper bound `<input>` and handle when there are two handles.
24
+ */
25
+ unstable_ariaLabelInputUpper?: string;
15
26
  /**
16
27
  * The child nodes.
17
28
  */
18
29
  children?: ReactNodeLike;
19
30
  /**
20
- * The CSS class name for the slider.
31
+ * The CSS class name for the slider, set on the wrapping div.
21
32
  */
22
33
  className?: string;
23
34
  /**
@@ -77,23 +88,28 @@ export interface SliderProps extends Omit<React.InputHTMLAttributes<HTMLInputEle
77
88
  * The `name` attribute of the `<input>`.
78
89
  */
79
90
  name?: string;
91
+ /**
92
+ * The `name` attribute of the upper bound `<input>` when there are two handles.
93
+ */
94
+ unstable_nameUpper?: string;
80
95
  /**
81
96
  * Provide an optional function to be called when the input element
82
97
  * loses focus
83
98
  */
84
99
  onBlur?: (data: {
85
100
  value: string;
101
+ handlePosition: HandlePosition | undefined;
86
102
  }) => void;
87
103
  /**
88
104
  * The callback to get notified of change in value.
89
- * `({ value}) => void`
90
- // * @param {{ value }}
105
+ * `({ value: number, valueUpper?: number }) => void`
91
106
  */
92
107
  onChange?: (data: {
93
108
  value: SliderProps['value'];
109
+ valueUpper: SliderProps['unstable_valueUpper'];
94
110
  }) => void;
95
111
  /**
96
- * Provide an optional function to be called when a key is pressed in the number input
112
+ * Provide an optional function to be called when a key is pressed in the number input. When there are two handles, you can obtain the relevant handle position by using `event.target.dataset.handlePosition`.
97
113
  */
98
114
  onInputKeyUp?: KeyboardEventHandler<HTMLInputElement>;
99
115
  /**
@@ -101,6 +117,7 @@ export interface SliderProps extends Omit<React.InputHTMLAttributes<HTMLInputEle
101
117
  */
102
118
  onRelease?: (data: {
103
119
  value: SliderProps['value'];
120
+ valueUpper: SliderProps['unstable_valueUpper'];
104
121
  }) => void;
105
122
  /**
106
123
  * Whether the slider should be read-only
@@ -111,7 +128,7 @@ export interface SliderProps extends Omit<React.InputHTMLAttributes<HTMLInputEle
111
128
  */
112
129
  required?: boolean;
113
130
  /**
114
- * A value determining how much the value should increase/decrease by moving the thumb by mouse. If a value other than 1 is provided and the input is *not* hidden, the new step requirement should be added to a visible label. Values outside of the `step` increment will be considered invalid.
131
+ * A value determining how much the value should increase/decrease by moving the thumb by mouse. If a value other than 1 is provided and the input is *not* hidden, the new step requirement should be added to a visible label. Values outside the `step` increment will be considered invalid.
115
132
  */
116
133
  step?: number;
117
134
  /**
@@ -120,9 +137,22 @@ export interface SliderProps extends Omit<React.InputHTMLAttributes<HTMLInputEle
120
137
  */
121
138
  stepMultiplier?: number;
122
139
  /**
123
- * The value.
140
+ * Supply a method to translate internal strings with your i18n tool of
141
+ * choice. Translation keys are available on the `translationIds` field for
142
+ * this component.
143
+ */
144
+ translateWithId?: (translationId: string, translationState: {
145
+ correctedValue?: string;
146
+ }) => string;
147
+ /**
148
+ * The value of the slider. When there are two handles, value is the lower
149
+ * bound.
124
150
  */
125
151
  value: number;
152
+ /**
153
+ * The upper bound when there are two handles.
154
+ */
155
+ unstable_valueUpper?: number;
126
156
  /**
127
157
  * Specify whether the control is currently in warning state
128
158
  */
@@ -137,7 +167,12 @@ interface CalcValueProps {
137
167
  value?: number;
138
168
  useRawValue?: boolean;
139
169
  }
140
- export default class Slider extends PureComponent<SliderProps> {
170
+ interface CalcLeftPercentProps {
171
+ clientX?: number;
172
+ value?: number;
173
+ range?: number;
174
+ }
175
+ declare class Slider extends PureComponent<SliderProps> {
141
176
  static propTypes: {
142
177
  /**
143
178
  * The `ariaLabel` for the `<input>`.
@@ -233,7 +268,7 @@ export default class Slider extends PureComponent<SliderProps> {
233
268
  */
234
269
  required: PropTypes.Requireable<boolean>;
235
270
  /**
236
- * A value determining how much the value should increase/decrease by moving the thumb by mouse. If a value other than 1 is provided and the input is *not* hidden, the new step requirement should be added to a visible label. Values outside of the `step` increment will be considered invalid.
271
+ * A value determining how much the value should increase/decrease by moving the thumb by mouse. If a value other than 1 is provided and the input is *not* hidden, the new step requirement should be added to a visible label. Values outside the `step` increment will be considered invalid.
237
272
  */
238
273
  step: PropTypes.Requireable<number>;
239
274
  /**
@@ -242,7 +277,26 @@ export default class Slider extends PureComponent<SliderProps> {
242
277
  */
243
278
  stepMultiplier: PropTypes.Requireable<number>;
244
279
  /**
245
- * The value.
280
+ * Supply a method to translate internal strings with your i18n tool of
281
+ * choice. Translation keys are available on the `translationIds` field for
282
+ * this component.
283
+ */
284
+ translateWithId: PropTypes.Requireable<(...args: any[]) => any>;
285
+ /**
286
+ * The `ariaLabel` for the upper bound `<input>` when there are two handles.
287
+ */
288
+ unstable_ariaLabelInputUpper: PropTypes.Requireable<string>;
289
+ /**
290
+ * The `name` attribute of the upper bound `<input>` when there are two handles.
291
+ */
292
+ unstable_nameUpper: PropTypes.Requireable<string>;
293
+ /**
294
+ * The upper bound when there are two handles.
295
+ */
296
+ unstable_valueUpper: PropTypes.Requireable<number>;
297
+ /**
298
+ * The value of the slider. When there are two handles, value is the lower
299
+ * bound.
246
300
  */
247
301
  value: PropTypes.Validator<number>;
248
302
  /**
@@ -250,29 +304,26 @@ export default class Slider extends PureComponent<SliderProps> {
250
304
  */
251
305
  warn: PropTypes.Requireable<boolean>;
252
306
  /**
253
- * Provide the text that is displayed when the Slider is in an warn state
307
+ * Provide the text that is displayed when the Slider is in a warn state
254
308
  */
255
309
  warnText: PropTypes.Requireable<PropTypes.ReactNodeLike>;
256
310
  };
257
- static defaultProps: {
258
- hideTextInput: boolean;
259
- step: number;
260
- stepMultiplier: number;
261
- disabled: boolean;
262
- minLabel: string;
263
- maxLabel: string;
264
- inputType: string;
265
- readOnly: boolean;
266
- };
267
311
  static contextType: React.Context<any>;
268
312
  state: {
269
313
  value: number;
314
+ valueUpper: number | undefined;
270
315
  left: number;
316
+ leftUpper: number;
271
317
  needsOnRelease: boolean;
272
318
  isValid: boolean;
319
+ isValidUpper: boolean;
320
+ activeHandle: null;
321
+ correctedValue: null;
322
+ correctedPosition: null;
273
323
  isRtl: boolean;
274
324
  };
275
325
  thumbRef: React.RefObject<HTMLDivElement>;
326
+ thumbRefUpper: React.RefObject<HTMLDivElement>;
276
327
  filledTrackRef: React.RefObject<HTMLDivElement>;
277
328
  element: HTMLDivElement | null;
278
329
  inputId: string;
@@ -325,8 +376,11 @@ export default class Slider extends PureComponent<SliderProps> {
325
376
  * accordingly.
326
377
  *
327
378
  * @param {Event} evt The event.
379
+ * @param activeHandle
380
+ * The first drag event call, we may have an explicit activeHandle value,
381
+ * which is to be used before state is used.
328
382
  */
329
- _onDrag: (evt: any) => void;
383
+ _onDrag: (evt: any, activeHandle?: HandlePosition | null) => void;
330
384
  /**
331
385
  * Throttles calls to `this._onDrag` by limiting events to being processed at
332
386
  * most once every `EVENT_THROTTLE` milliseconds.
@@ -354,6 +408,13 @@ export default class Slider extends PureComponent<SliderProps> {
354
408
  * @param {Event} evt The event.
355
409
  */
356
410
  onBlur: (evt: React.FocusEvent<HTMLInputElement>) => void;
411
+ onInputKeyDown: (evt: any) => void;
412
+ processNewInputValue: (input: HTMLInputElement) => void;
413
+ calcLeftPercent: ({ clientX, value, range }: CalcLeftPercentProps) => number;
414
+ calcSteppedValuePercent: ({ leftPercent, range }: {
415
+ leftPercent: any;
416
+ range: any;
417
+ }) => number[];
357
418
  /**
358
419
  * Calculates a new Slider `value` and `left` (thumb offset) given a `clientX`,
359
420
  * `value`, or neither of those.
@@ -377,9 +438,60 @@ export default class Slider extends PureComponent<SliderProps> {
377
438
  value: number | undefined;
378
439
  left: number;
379
440
  };
380
- static getDerivedStateFromProps(props: any, state: any): {
381
- isValid: boolean;
382
- } | null;
441
+ calcDistanceToHandle: (handle: HandlePosition, clientX: any) => number;
442
+ /**
443
+ * Given the current value, delta and step, calculate the new value.
444
+ *
445
+ * @param {number} currentValue
446
+ * Current value user is moving from.
447
+ * @param {number} delta
448
+ * Movement from the current value. Can be positive or negative.
449
+ * @param {number} step
450
+ * A value determining how much the value should increase/decrease by moving
451
+ * the thumb by mouse.
452
+ */
453
+ calcValueForDelta: (currentValue: any, delta: any, step?: number) => any;
454
+ /**
455
+ * Sets state relevant to the given handle position.
456
+ *
457
+ * Guards against setting either lower or upper values beyond its counterpart.
458
+ */
459
+ setValueLeftForHandle: (handle: HandlePosition, { value: newValue, left: newLeft }: {
460
+ value: any;
461
+ left: any;
462
+ }) => void;
463
+ setValueForHandle: (handle: HandlePosition, value: any) => void;
464
+ isValidValueForPosition: ({ handle, value: newValue, min, max }: {
465
+ handle: any;
466
+ value: any;
467
+ min: any;
468
+ max: any;
469
+ }) => boolean;
470
+ isValidValue: ({ value, min, max }: {
471
+ value: any;
472
+ min: any;
473
+ max: any;
474
+ }) => boolean;
475
+ getAdjustedValueForPosition: ({ handle, value: newValue, min, max }: {
476
+ handle: any;
477
+ value: any;
478
+ min: any;
479
+ max: any;
480
+ }) => any;
481
+ getAdjustedValue: ({ value, min, max }: {
482
+ value: any;
483
+ min: any;
484
+ max: any;
485
+ }) => any;
486
+ /**
487
+ * Get the bounding rect for the requested handles' DOM element.
488
+ *
489
+ * If the bounding rect is not available, a new, empty DOMRect is returned.
490
+ */
491
+ getHandleBoundingRect: (handle: HandlePosition) => DOMRect;
492
+ getClientXFromEvent(event: MouseEvent | TouchEvent): any;
493
+ hasTwoHandles(): boolean;
494
+ static getDerivedStateFromProps(props: any, state: any): {} | null;
383
495
  render(): JSX.Element;
384
496
  }
385
- export {};
497
+ export default Slider;