rsuite 5.0.3 → 5.2.2

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 (243) hide show
  1. package/Button/styles/index.less +7 -1
  2. package/CHANGELOG.md +50 -0
  3. package/MaskedInput/package.json +7 -0
  4. package/PanelGroup/styles/index.less +12 -12
  5. package/README.md +4 -46
  6. package/Sidenav/styles/index.less +4 -0
  7. package/Slider/styles/index.less +20 -14
  8. package/Toggle/styles/index.less +53 -12
  9. package/Toggle/styles/mixin.less +25 -11
  10. package/cjs/@types/common.d.ts +8 -2
  11. package/cjs/Affix/Affix.js +3 -3
  12. package/cjs/Animation/Collapse.js +9 -7
  13. package/cjs/Animation/Transition.js +4 -2
  14. package/cjs/AutoComplete/AutoComplete.d.ts +2 -2
  15. package/cjs/AutoComplete/AutoComplete.js +7 -4
  16. package/cjs/Calendar/TimeDropdown.js +5 -3
  17. package/cjs/Cascader/Cascader.d.ts +1 -1
  18. package/cjs/Cascader/DropdownMenu.js +6 -5
  19. package/cjs/CheckTreePicker/CheckTreeNode.d.ts +1 -1
  20. package/cjs/CheckTreePicker/CheckTreePicker.d.ts +1 -1
  21. package/cjs/CheckTreePicker/utils.d.ts +1 -1
  22. package/cjs/CheckTreePicker/utils.js +7 -6
  23. package/cjs/Checkbox/Checkbox.d.ts +3 -3
  24. package/cjs/CheckboxGroup/CheckboxGroupContext.d.ts +1 -1
  25. package/cjs/DOMHelper/index.d.ts +13 -28
  26. package/cjs/DOMHelper/index.js +4 -3
  27. package/cjs/DOMHelper/isElement.d.ts +2 -0
  28. package/cjs/DOMHelper/isElement.js +11 -0
  29. package/cjs/DatePicker/DatePicker.d.ts +3 -3
  30. package/cjs/DatePicker/DatePicker.js +3 -2
  31. package/cjs/DateRangePicker/Calendar.d.ts +1 -1
  32. package/cjs/DateRangePicker/DateRangePicker.d.ts +2 -2
  33. package/cjs/DateRangePicker/DateRangePicker.js +3 -2
  34. package/cjs/Disclosure/Disclosure.d.ts +1 -1
  35. package/cjs/Disclosure/DisclosureContext.d.ts +1 -1
  36. package/cjs/Dropdown/DropdownItem.d.ts +1 -1
  37. package/cjs/Dropdown/DropdownItem.js +23 -19
  38. package/cjs/Dropdown/DropdownMenu.d.ts +2 -2
  39. package/cjs/Dropdown/useRenderDropdownItem.d.ts +2 -0
  40. package/cjs/Dropdown/useRenderDropdownItem.js +26 -0
  41. package/cjs/Form/Form.d.ts +1 -1
  42. package/cjs/FormControl/FormControl.d.ts +9 -3
  43. package/cjs/Input/Input.d.ts +2 -1
  44. package/cjs/InputNumber/InputNumber.js +2 -2
  45. package/cjs/InputPicker/InputPicker.js +2 -2
  46. package/cjs/List/helper/useSortHelper.js +11 -6
  47. package/cjs/MaskedInput/MaskedInput.d.ts +6 -0
  48. package/cjs/MaskedInput/MaskedInput.js +26 -0
  49. package/cjs/MaskedInput/TextMask.d.ts +43 -0
  50. package/cjs/MaskedInput/TextMask.js +80 -0
  51. package/cjs/MaskedInput/adjustCaretPosition.d.ts +11 -0
  52. package/cjs/MaskedInput/adjustCaretPosition.js +218 -0
  53. package/cjs/MaskedInput/conformToMask.d.ts +8 -0
  54. package/cjs/MaskedInput/conformToMask.js +247 -0
  55. package/cjs/MaskedInput/createTextMaskInputElement.d.ts +7 -0
  56. package/cjs/MaskedInput/createTextMaskInputElement.js +226 -0
  57. package/cjs/MaskedInput/index.d.ts +3 -0
  58. package/cjs/MaskedInput/index.js +11 -0
  59. package/cjs/MaskedInput/types.d.ts +10 -0
  60. package/cjs/{@types/icons.js → MaskedInput/types.js} +0 -0
  61. package/cjs/MaskedInput/utilities.d.ts +7 -0
  62. package/cjs/MaskedInput/utilities.js +47 -0
  63. package/cjs/Menu/MenuItem.d.ts +1 -1
  64. package/cjs/Menu/Menubar.d.ts +1 -1
  65. package/cjs/Message/Message.js +13 -11
  66. package/cjs/Modal/Modal.js +5 -3
  67. package/cjs/Modal/utils.js +15 -14
  68. package/cjs/Notification/Notification.js +6 -3
  69. package/cjs/Overlay/Modal.js +14 -11
  70. package/cjs/Overlay/ModalManager.js +19 -7
  71. package/cjs/Overlay/OverlayTrigger.js +2 -2
  72. package/cjs/Overlay/Position.js +27 -17
  73. package/cjs/Overlay/positionUtils.js +16 -8
  74. package/cjs/Panel/Panel.d.ts +1 -1
  75. package/cjs/Picker/DropdownMenu.js +10 -6
  76. package/cjs/Picker/DropdownMenuCheckItem.d.ts +3 -3
  77. package/cjs/Picker/PickerOverlay.js +5 -3
  78. package/cjs/Picker/PickerToggle.d.ts +6 -0
  79. package/cjs/Picker/PickerToggle.js +12 -6
  80. package/cjs/Picker/SearchBar.d.ts +1 -1
  81. package/cjs/Picker/utils.d.ts +2 -2
  82. package/cjs/Radio/Radio.d.ts +1 -1
  83. package/cjs/RadioGroup/RadioGroup.d.ts +1 -1
  84. package/cjs/RangeSlider/RangeSlider.js +9 -5
  85. package/cjs/Rate/Character.js +2 -2
  86. package/cjs/Ripple/Ripple.js +6 -7
  87. package/cjs/Sidenav/SidenavDropdownItem.d.ts +1 -1
  88. package/cjs/Sidenav/SidenavDropdownItem.js +17 -10
  89. package/cjs/Sidenav/SidenavDropdownMenu.d.ts +1 -1
  90. package/cjs/Slider/Graduated.js +1 -1
  91. package/cjs/Slider/Handle.js +10 -5
  92. package/cjs/Slider/ProgressBar.js +1 -1
  93. package/cjs/Slider/Slider.js +9 -5
  94. package/cjs/Toggle/Toggle.d.ts +5 -6
  95. package/cjs/Toggle/Toggle.js +42 -19
  96. package/cjs/Tree/Tree.d.ts +3 -3
  97. package/cjs/TreePicker/TreeNode.d.ts +1 -1
  98. package/cjs/TreePicker/TreeNode.js +2 -2
  99. package/cjs/TreePicker/TreePicker.d.ts +1 -1
  100. package/cjs/Uploader/Uploader.d.ts +4 -4
  101. package/cjs/index.d.ts +2 -0
  102. package/cjs/index.js +5 -1
  103. package/cjs/locales/fa_IR.d.ts +105 -0
  104. package/cjs/locales/fa_IR.js +84 -0
  105. package/cjs/locales/index.d.ts +1 -0
  106. package/cjs/locales/index.js +6 -2
  107. package/cjs/utils/BrowserDetection.js +1 -1
  108. package/cjs/utils/index.d.ts +1 -0
  109. package/cjs/utils/index.js +7 -2
  110. package/cjs/utils/scrollTopAnimation.js +5 -5
  111. package/cjs/utils/treeUtils.d.ts +2 -2
  112. package/cjs/utils/useElementResize.d.ts +1 -1
  113. package/cjs/utils/useElementResize.js +7 -5
  114. package/cjs/utils/useEventListener.js +4 -2
  115. package/cjs/utils/useIsMounted.d.ts +2 -0
  116. package/cjs/utils/useIsMounted.js +22 -0
  117. package/cjs/utils/usePortal.js +2 -2
  118. package/cjs/utils/useRootClose.js +10 -10
  119. package/dist/rsuite-rtl.css +217 -84
  120. package/dist/rsuite-rtl.min.css +1 -1
  121. package/dist/rsuite-rtl.min.css.map +1 -1
  122. package/dist/rsuite.css +217 -84
  123. package/dist/rsuite.js +769 -536
  124. package/dist/rsuite.js.map +1 -1
  125. package/dist/rsuite.min.css +1 -1
  126. package/dist/rsuite.min.css.map +1 -1
  127. package/dist/rsuite.min.js +1 -1
  128. package/dist/rsuite.min.js.map +1 -1
  129. package/esm/@types/common.d.ts +8 -2
  130. package/esm/Affix/Affix.js +1 -1
  131. package/esm/Animation/Collapse.js +2 -1
  132. package/esm/Animation/Transition.js +3 -2
  133. package/esm/AutoComplete/AutoComplete.d.ts +2 -2
  134. package/esm/AutoComplete/AutoComplete.js +8 -5
  135. package/esm/Calendar/TimeDropdown.js +2 -1
  136. package/esm/Cascader/Cascader.d.ts +1 -1
  137. package/esm/Cascader/DropdownMenu.js +4 -3
  138. package/esm/CheckTreePicker/CheckTreeNode.d.ts +1 -1
  139. package/esm/CheckTreePicker/CheckTreePicker.d.ts +1 -1
  140. package/esm/CheckTreePicker/utils.d.ts +1 -1
  141. package/esm/CheckTreePicker/utils.js +7 -6
  142. package/esm/Checkbox/Checkbox.d.ts +3 -3
  143. package/esm/CheckboxGroup/CheckboxGroupContext.d.ts +1 -1
  144. package/esm/DOMHelper/index.d.ts +13 -28
  145. package/esm/DOMHelper/index.js +2 -3
  146. package/esm/DOMHelper/isElement.d.ts +2 -0
  147. package/esm/DOMHelper/isElement.js +5 -0
  148. package/esm/DatePicker/DatePicker.d.ts +3 -3
  149. package/esm/DatePicker/DatePicker.js +3 -2
  150. package/esm/DateRangePicker/Calendar.d.ts +1 -1
  151. package/esm/DateRangePicker/DateRangePicker.d.ts +2 -2
  152. package/esm/DateRangePicker/DateRangePicker.js +3 -2
  153. package/esm/Disclosure/Disclosure.d.ts +1 -1
  154. package/esm/Disclosure/DisclosureContext.d.ts +1 -1
  155. package/esm/Dropdown/DropdownItem.d.ts +1 -1
  156. package/esm/Dropdown/DropdownItem.js +22 -19
  157. package/esm/Dropdown/DropdownMenu.d.ts +2 -2
  158. package/esm/Dropdown/useRenderDropdownItem.d.ts +2 -0
  159. package/esm/Dropdown/useRenderDropdownItem.js +18 -0
  160. package/esm/Form/Form.d.ts +1 -1
  161. package/esm/FormControl/FormControl.d.ts +9 -3
  162. package/esm/Input/Input.d.ts +2 -1
  163. package/esm/InputNumber/InputNumber.js +2 -2
  164. package/esm/InputPicker/InputPicker.js +1 -1
  165. package/esm/List/helper/useSortHelper.js +8 -4
  166. package/esm/MaskedInput/MaskedInput.d.ts +6 -0
  167. package/esm/MaskedInput/MaskedInput.js +13 -0
  168. package/esm/MaskedInput/TextMask.d.ts +43 -0
  169. package/esm/MaskedInput/TextMask.js +67 -0
  170. package/esm/MaskedInput/adjustCaretPosition.d.ts +11 -0
  171. package/esm/MaskedInput/adjustCaretPosition.js +213 -0
  172. package/esm/MaskedInput/conformToMask.d.ts +8 -0
  173. package/esm/MaskedInput/conformToMask.js +239 -0
  174. package/esm/MaskedInput/createTextMaskInputElement.d.ts +7 -0
  175. package/esm/MaskedInput/createTextMaskInputElement.js +212 -0
  176. package/esm/MaskedInput/index.d.ts +3 -0
  177. package/esm/MaskedInput/index.js +2 -0
  178. package/esm/MaskedInput/types.d.ts +10 -0
  179. package/esm/{@types/icons.js → MaskedInput/types.js} +0 -0
  180. package/esm/MaskedInput/utilities.d.ts +7 -0
  181. package/esm/MaskedInput/utilities.js +38 -0
  182. package/esm/Menu/MenuItem.d.ts +1 -1
  183. package/esm/Menu/Menubar.d.ts +1 -1
  184. package/esm/Message/Message.js +15 -13
  185. package/esm/Modal/Modal.js +3 -2
  186. package/esm/Modal/utils.js +14 -12
  187. package/esm/Notification/Notification.js +7 -4
  188. package/esm/Overlay/Modal.js +11 -8
  189. package/esm/Overlay/ModalManager.js +6 -1
  190. package/esm/Overlay/OverlayTrigger.js +1 -1
  191. package/esm/Overlay/Position.js +20 -11
  192. package/esm/Overlay/positionUtils.js +6 -2
  193. package/esm/Panel/Panel.d.ts +1 -1
  194. package/esm/Picker/DropdownMenu.js +3 -1
  195. package/esm/Picker/DropdownMenuCheckItem.d.ts +3 -3
  196. package/esm/Picker/PickerOverlay.js +2 -1
  197. package/esm/Picker/PickerToggle.d.ts +6 -0
  198. package/esm/Picker/PickerToggle.js +10 -5
  199. package/esm/Picker/SearchBar.d.ts +1 -1
  200. package/esm/Picker/utils.d.ts +2 -2
  201. package/esm/Radio/Radio.d.ts +1 -1
  202. package/esm/RadioGroup/RadioGroup.d.ts +1 -1
  203. package/esm/RangeSlider/RangeSlider.js +4 -2
  204. package/esm/Rate/Character.js +2 -2
  205. package/esm/Ripple/Ripple.js +4 -3
  206. package/esm/Sidenav/SidenavDropdownItem.d.ts +1 -1
  207. package/esm/Sidenav/SidenavDropdownItem.js +16 -10
  208. package/esm/Sidenav/SidenavDropdownMenu.d.ts +1 -1
  209. package/esm/Slider/Graduated.js +1 -1
  210. package/esm/Slider/Handle.js +5 -2
  211. package/esm/Slider/ProgressBar.js +1 -1
  212. package/esm/Slider/Slider.js +4 -2
  213. package/esm/Toggle/Toggle.d.ts +5 -6
  214. package/esm/Toggle/Toggle.js +43 -21
  215. package/esm/Tree/Tree.d.ts +3 -3
  216. package/esm/TreePicker/TreeNode.d.ts +1 -1
  217. package/esm/TreePicker/TreeNode.js +1 -1
  218. package/esm/TreePicker/TreePicker.d.ts +1 -1
  219. package/esm/Uploader/Uploader.d.ts +4 -4
  220. package/esm/index.d.ts +2 -0
  221. package/esm/index.js +1 -0
  222. package/esm/locales/fa_IR.d.ts +105 -0
  223. package/esm/locales/fa_IR.js +74 -0
  224. package/esm/locales/index.d.ts +1 -0
  225. package/esm/locales/index.js +2 -1
  226. package/esm/utils/BrowserDetection.js +1 -1
  227. package/esm/utils/index.d.ts +1 -0
  228. package/esm/utils/index.js +2 -1
  229. package/esm/utils/scrollTopAnimation.js +2 -2
  230. package/esm/utils/treeUtils.d.ts +2 -2
  231. package/esm/utils/useElementResize.d.ts +1 -1
  232. package/esm/utils/useElementResize.js +8 -4
  233. package/esm/utils/useEventListener.js +1 -1
  234. package/esm/utils/useIsMounted.d.ts +2 -0
  235. package/esm/utils/useIsMounted.js +16 -0
  236. package/esm/utils/usePortal.js +2 -2
  237. package/esm/utils/useRootClose.js +8 -6
  238. package/locales/fa_IR/package.json +7 -0
  239. package/package.json +5 -6
  240. package/styles/color-modes/light.less +2 -0
  241. package/styles/plugins/palette.js +10 -1
  242. package/cjs/@types/icons.d.ts +0 -1
  243. package/esm/@types/icons.d.ts +0 -1
@@ -1,6 +1,7 @@
1
1
  import { useState, useRef, useCallback, useEffect } from 'react';
2
- import bindElementResize, { unbind as unbindElementResize } from 'element-resize-event';
3
- import helper from '../DOMHelper';
2
+ import getHeight from 'dom-lib/getHeight';
3
+ import on from 'dom-lib/on';
4
+ import { ResizeObserver } from '@juggle/resize-observer';
4
5
  export var useBodyStyles = function useBodyStyles(ref, options) {
5
6
  var _useState = useState({}),
6
7
  bodyStyles = _useState[0],
@@ -11,6 +12,7 @@ export var useBodyStyles = function useBodyStyles(ref, options) {
11
12
  prefix = options.prefix;
12
13
  var windowResizeListener = useRef();
13
14
  var contentElement = useRef();
15
+ var contentElementResizeObserver = useRef();
14
16
  var updateBodyStyles = useCallback(function (_event, entering) {
15
17
  var dialog = ref.current;
16
18
  var scrollHeight = dialog ? dialog.scrollHeight : 0;
@@ -24,14 +26,14 @@ export var useBodyStyles = function useBodyStyles(ref, options) {
24
26
  var footerHeight = 46;
25
27
  var headerDOM = dialog.querySelector("." + prefix('header'));
26
28
  var footerDOM = dialog.querySelector("." + prefix('footer'));
27
- headerHeight = headerDOM ? helper.getHeight(headerDOM) + headerHeight : headerHeight;
28
- footerHeight = footerDOM ? helper.getHeight(footerDOM) + footerHeight : footerHeight;
29
+ headerHeight = headerDOM ? getHeight(headerDOM) + headerHeight : headerHeight;
30
+ footerHeight = footerDOM ? getHeight(footerDOM) + footerHeight : footerHeight;
29
31
  /**
30
32
  * Header height + Footer height + Dialog margin
31
33
  */
32
34
 
33
35
  var excludeHeight = headerHeight + footerHeight + (entering ? 70 : 60);
34
- var bodyHeight = helper.getHeight(window) - excludeHeight;
36
+ var bodyHeight = getHeight(window) - excludeHeight;
35
37
  var maxHeight = scrollHeight >= bodyHeight ? bodyHeight : scrollHeight;
36
38
  styles.maxHeight = maxHeight;
37
39
  }
@@ -39,13 +41,10 @@ export var useBodyStyles = function useBodyStyles(ref, options) {
39
41
  setBodyStyles(styles);
40
42
  }, [prefix, ref]);
41
43
  var onDestroyEvents = useCallback(function () {
42
- var _windowResizeListener, _windowResizeListener2;
44
+ var _windowResizeListener, _windowResizeListener2, _contentElementResize;
43
45
 
44
46
  (_windowResizeListener = windowResizeListener.current) === null || _windowResizeListener === void 0 ? void 0 : (_windowResizeListener2 = _windowResizeListener.off) === null || _windowResizeListener2 === void 0 ? void 0 : _windowResizeListener2.call(_windowResizeListener);
45
-
46
- if (contentElement.current) {
47
- unbindElementResize(contentElement.current);
48
- }
47
+ (_contentElementResize = contentElementResizeObserver.current) === null || _contentElementResize === void 0 ? void 0 : _contentElementResize.disconnect();
49
48
  }, []);
50
49
  var onChangeBodyStyles = useCallback(function (entering) {
51
50
  if (overflow && !drawer) {
@@ -53,8 +52,11 @@ export var useBodyStyles = function useBodyStyles(ref, options) {
53
52
 
54
53
  updateBodyStyles(null, entering);
55
54
  contentElement.current = (_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : _ref$current.querySelector("." + prefix('content'));
56
- windowResizeListener.current = helper.on(window, 'resize', updateBodyStyles);
57
- bindElementResize(contentElement.current, updateBodyStyles);
55
+ windowResizeListener.current = on(window, 'resize', updateBodyStyles);
56
+ contentElementResizeObserver.current = new ResizeObserver(function () {
57
+ return updateBodyStyles();
58
+ });
59
+ contentElementResizeObserver.current.observe(contentElement.current);
58
60
  }
59
61
  }, [drawer, overflow, prefix, ref, updateBodyStyles]);
60
62
  useEffect(function () {
@@ -6,7 +6,7 @@ var _templateObject, _templateObject2;
6
6
 
7
7
  import React, { useCallback, useState } from 'react';
8
8
  import PropTypes from 'prop-types';
9
- import { useClassNames, useTimeout, MESSAGE_STATUS_ICONS } from '../utils';
9
+ import { useClassNames, useTimeout, MESSAGE_STATUS_ICONS, useIsMounted } from '../utils';
10
10
  import CloseButton from '../CloseButton';
11
11
  var Notification = /*#__PURE__*/React.forwardRef(function (props, ref) {
12
12
  var _props$as = props.as,
@@ -30,8 +30,9 @@ var Notification = /*#__PURE__*/React.forwardRef(function (props, ref) {
30
30
  var _useClassNames = useClassNames(classPrefix),
31
31
  withClassPrefix = _useClassNames.withClassPrefix,
32
32
  merge = _useClassNames.merge,
33
- prefix = _useClassNames.prefix; // Timed close message
33
+ prefix = _useClassNames.prefix;
34
34
 
35
+ var isMounted = useIsMounted(); // Timed close message
35
36
 
36
37
  var _useTimeout = useTimeout(onClose, duration, duration > 0),
37
38
  clear = _useTimeout.clear; // Click to trigger to close the message
@@ -42,9 +43,11 @@ var Notification = /*#__PURE__*/React.forwardRef(function (props, ref) {
42
43
  onClose === null || onClose === void 0 ? void 0 : onClose(event);
43
44
  clear();
44
45
  setTimeout(function () {
45
- setDisplay('hide');
46
+ if (isMounted()) {
47
+ setDisplay('hide');
48
+ }
46
49
  }, 1000);
47
- }, [onClose, clear]);
50
+ }, [onClose, clear, isMounted]);
48
51
  var renderHeader = useCallback(function () {
49
52
  if (!header) {
50
53
  return null;
@@ -3,7 +3,10 @@ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWith
3
3
  import React, { useRef, useEffect, useState, useCallback } from 'react';
4
4
  import PropTypes from 'prop-types';
5
5
  import classNames from 'classnames';
6
- import helper from '../DOMHelper';
6
+ import canUseDOM from 'dom-lib/canUseDOM';
7
+ import contains from 'dom-lib/contains';
8
+ import getContainer from 'dom-lib/getContainer';
9
+ import on from 'dom-lib/on';
7
10
  import ModalManager from './ModalManager';
8
11
  import Fade from '../Animation/Fade';
9
12
  import { animationPropTypes } from '../Animation/utils';
@@ -102,8 +105,8 @@ var Modal = /*#__PURE__*/React.forwardRef(function (props, ref) {
102
105
  }
103
106
  }, [keyboard, modal, onEscapeKeyUp, onClose]);
104
107
  var checkForFocus = useCallback(function () {
105
- if (helper.canUseDOM) {
106
- lastFocus.current = helper.activeElement();
108
+ if (canUseDOM) {
109
+ lastFocus.current = document.activeElement;
107
110
  }
108
111
  }, []);
109
112
  var restoreLastFocus = useCallback(function () {
@@ -122,10 +125,10 @@ var Modal = /*#__PURE__*/React.forwardRef(function (props, ref) {
122
125
  return;
123
126
  }
124
127
 
125
- var currentActiveElement = helper.activeElement();
128
+ var currentActiveElement = document.activeElement;
126
129
  var dialog = getDialogElement();
127
130
 
128
- if (dialog && dialog !== currentActiveElement && !helper.contains(dialog, currentActiveElement)) {
131
+ if (dialog && dialog !== currentActiveElement && !contains(dialog, currentActiveElement)) {
129
132
  dialog.focus();
130
133
  }
131
134
  }, [enforceFocus, getDialogElement, modal]);
@@ -144,10 +147,10 @@ var Modal = /*#__PURE__*/React.forwardRef(function (props, ref) {
144
147
  var docusinListener = useRef();
145
148
  var handleOpen = useCallback(function () {
146
149
  var dialog = getDialogElement();
147
- var containerElement = helper.getContainer(container, document.body);
150
+ var containerElement = getContainer(container, document.body);
148
151
  modal.add(containerElement, containerClassName);
149
- documentKeyupListener.current = helper.on(document, 'keydown', handleDocumentKeyUp);
150
- docusinListener.current = helper.on(document, 'focus', handleEnforceFocus, true);
152
+ documentKeyupListener.current = on(document, 'keydown', handleDocumentKeyUp);
153
+ docusinListener.current = on(document, 'focus', handleEnforceFocus, true);
151
154
  onOpen === null || onOpen === void 0 ? void 0 : onOpen();
152
155
  checkForFocus();
153
156
 
@@ -1,4 +1,9 @@
1
- import { addClass, removeClass, addStyle, getStyle, getScrollbarSize, isOverflowing } from 'dom-lib';
1
+ import addClass from 'dom-lib/addClass';
2
+ import removeClass from 'dom-lib/removeClass';
3
+ import addStyle from 'dom-lib/addStyle';
4
+ import getStyle from 'dom-lib/getStyle';
5
+ import getScrollbarSize from 'dom-lib/getScrollbarSize';
6
+ import isOverflowing from 'dom-lib/isOverflowing';
2
7
 
3
8
  function findIndexOf(arr, cb) {
4
9
  var index = -1;
@@ -4,7 +4,7 @@ import _isUndefined from "lodash/isUndefined";
4
4
  import React, { useRef, useEffect, useImperativeHandle, useCallback } from 'react';
5
5
  import get from 'lodash/get';
6
6
  import isNil from 'lodash/isNil';
7
- import { contains } from 'dom-lib';
7
+ import contains from 'dom-lib/contains';
8
8
  import Overlay from './Overlay';
9
9
  import { createChainedFunction, usePortal, useControlled } from '../utils';
10
10
  import isOneOf from '../utils/isOneOf';
@@ -1,8 +1,14 @@
1
1
  import React, { useState, useEffect, useRef, useMemo, useCallback, useImperativeHandle } from 'react';
2
- import bindElementResize from 'element-resize-event';
3
2
  import PropTypes from 'prop-types';
4
3
  import classNames from 'classnames';
5
- import helper from '../DOMHelper';
4
+ import getContainer from 'dom-lib/getContainer';
5
+ import ownerDocument from 'dom-lib/ownerDocument';
6
+ import removeClass from 'dom-lib/removeClass';
7
+ import on from 'dom-lib/on';
8
+ import addClass from 'dom-lib/addClass';
9
+ import addStyle from 'dom-lib/addStyle';
10
+ import { ResizeObserver } from '@juggle/resize-observer';
11
+ import isElement from '../DOMHelper/isElement';
6
12
  import positionUtils from './positionUtils';
7
13
  import { getDOMNode } from '../utils';
8
14
  import { useUpdateEffect } from '../utils';
@@ -17,6 +23,7 @@ var usePosition = function usePosition(props, ref) {
17
23
  triggerTarget = props.triggerTarget;
18
24
  var containerRef = useRef();
19
25
  var lastTargetRef = useRef();
26
+ var overlayResizeObserver = useRef();
20
27
  var defaultPosition = {
21
28
  positionLeft: 0,
22
29
  positionTop: 0,
@@ -52,7 +59,7 @@ var usePosition = function usePosition(props, ref) {
52
59
 
53
60
  var targetElement = getDOMNode(triggerTarget);
54
61
 
55
- if (!helper.isElement(targetElement)) {
62
+ if (!isElement(targetElement)) {
56
63
  throw new Error('`target` should return an HTMLElement');
57
64
  } // If the target and placement do not change, the position is not updated.
58
65
 
@@ -62,16 +69,16 @@ var usePosition = function usePosition(props, ref) {
62
69
  }
63
70
 
64
71
  var overlay = getDOMNode(ref.current);
65
- var containerElement = helper.getContainer(typeof container === 'function' ? container() : container, helper.ownerDocument(ref.current).body);
72
+ var containerElement = getContainer(typeof container === 'function' ? container() : container, ownerDocument(ref.current).body);
66
73
  var posi = utils.calcOverlayPosition(overlay, targetElement, containerElement);
67
74
 
68
75
  if (forceUpdateDOM && overlay) {
69
76
  var _overlay$className, _overlay$className$ma;
70
77
 
71
78
  var preClassName = overlay === null || overlay === void 0 ? void 0 : (_overlay$className = overlay.className) === null || _overlay$className === void 0 ? void 0 : (_overlay$className$ma = _overlay$className.match(/(placement-\S+)/)) === null || _overlay$className$ma === void 0 ? void 0 : _overlay$className$ma[0];
72
- helper.removeClass(overlay, preClassName);
73
- helper.addClass(overlay, posi.positionClassName);
74
- helper.addStyle(overlay, {
79
+ removeClass(overlay, preClassName);
80
+ addClass(overlay, posi.positionClassName);
81
+ addStyle(overlay, {
75
82
  left: posi.positionLeft + "px",
76
83
  top: posi.positionTop + "px"
77
84
  });
@@ -91,29 +98,31 @@ var usePosition = function usePosition(props, ref) {
91
98
  var _containerRef$current;
92
99
 
93
100
  // Update the overlay position when the container scroll bar is scrolling
94
- containerScrollListener = helper.on(((_containerRef$current = containerRef.current) === null || _containerRef$current === void 0 ? void 0 : _containerRef$current.tagName) === 'BODY' ? window : containerRef.current, 'scroll', function () {
101
+ containerScrollListener = on(((_containerRef$current = containerRef.current) === null || _containerRef$current === void 0 ? void 0 : _containerRef$current.tagName) === 'BODY' ? window : containerRef.current, 'scroll', function () {
95
102
  return updatePosition(true, true);
96
103
  });
97
104
  } // Update the position when the window size changes
98
105
 
99
106
 
100
- var resizeListener = helper.on(window, 'resize', function () {
107
+ var resizeListener = on(window, 'resize', function () {
101
108
  return updatePosition(true, true);
102
109
  });
103
110
 
104
111
  if (overlay) {
105
112
  // Update the position when the size of the overlay changes
106
- bindElementResize(overlay, function () {
113
+ overlayResizeObserver.current = new ResizeObserver(function () {
107
114
  return updatePosition(true, true);
108
115
  });
116
+ overlayResizeObserver.current.observe(overlay);
109
117
  }
110
118
 
111
119
  return function () {
112
- var _containerScrollListe;
120
+ var _containerScrollListe, _overlayResizeObserve;
113
121
 
114
122
  lastTargetRef.current = null;
115
123
  (_containerScrollListe = containerScrollListener) === null || _containerScrollListe === void 0 ? void 0 : _containerScrollListe.off();
116
124
  resizeListener === null || resizeListener === void 0 ? void 0 : resizeListener.off();
125
+ (_overlayResizeObserve = overlayResizeObserver.current) === null || _overlayResizeObserve === void 0 ? void 0 : _overlayResizeObserve.disconnect();
117
126
  };
118
127
  }, [preventOverflow, ref, updatePosition]);
119
128
  useUpdateEffect(function () {
@@ -1,7 +1,11 @@
1
1
  import maxBy from 'lodash/maxBy';
2
2
  import minBy from 'lodash/minBy';
3
3
  import kebabCase from 'lodash/kebabCase';
4
- import { ownerDocument, getOffset, getPosition as _getPosition, scrollTop, scrollLeft } from 'dom-lib';
4
+ import ownerDocument from 'dom-lib/ownerDocument';
5
+ import getOffset from 'dom-lib/getOffset';
6
+ import scrollTop from 'dom-lib/scrollTop';
7
+ import scrollLeft from 'dom-lib/scrollLeft';
8
+ import _getPosition from 'dom-lib/getPosition';
5
9
  export var AutoPlacement = {
6
10
  left: 'Start',
7
11
  right: 'End',
@@ -123,7 +127,7 @@ export default (function (props) {
123
127
 
124
128
  return {
125
129
  getPosition: function getPosition(target, container) {
126
- var offset = container.tagName === 'BODY' ? getOffset(target) : _getPosition(target, container);
130
+ var offset = container.tagName === 'BODY' ? getOffset(target) : _getPosition(target, container, false);
127
131
  return offset;
128
132
  },
129
133
  calcAutoPlacement: function calcAutoPlacement(targetOffset, container, overlay) {
@@ -24,7 +24,7 @@ export interface PanelProps<T = string | number> extends WithAsProps, AnimationE
24
24
  /** Role of Panel */
25
25
  panelRole?: string;
26
26
  /** callback function for the panel clicked */
27
- onSelect?: (eventKey: T, event: React.SyntheticEvent<any>) => void;
27
+ onSelect?: (eventKey: T, event: React.SyntheticEvent) => void;
28
28
  }
29
29
  declare const Panel: RsRefForwardingComponent<'div', PanelProps>;
30
30
  export default Panel;
@@ -9,7 +9,9 @@ import isUndefined from 'lodash/isUndefined';
9
9
  import isString from 'lodash/isString';
10
10
  import isNumber from 'lodash/isNumber';
11
11
  import findIndex from 'lodash/findIndex';
12
- import { getPosition, scrollTop, getHeight } from 'dom-lib';
12
+ import getPosition from 'dom-lib/getPosition';
13
+ import scrollTop from 'dom-lib/scrollTop';
14
+ import getHeight from 'dom-lib/getHeight';
13
15
  import classNames from 'classnames';
14
16
  import { List, AutoSizer } from './VirtualizedList';
15
17
  import shallowEqual from '../utils/shallowEqual';
@@ -12,9 +12,9 @@ export interface DropdownMenuCheckItemProps extends WithAsProps {
12
12
  title?: string;
13
13
  className?: string;
14
14
  children?: React.ReactNode;
15
- onSelect?: (value: any, event: React.SyntheticEvent<HTMLElement>, checked: boolean) => void;
16
- onCheck?: (value: any, event: React.SyntheticEvent<HTMLElement>, checked: boolean) => void;
17
- onSelectItem?: (value: any, event: React.SyntheticEvent<HTMLElement>, checked: boolean) => void;
15
+ onSelect?: (value: any, event: React.SyntheticEvent, checked: boolean) => void;
16
+ onCheck?: (value: any, event: React.SyntheticEvent, checked: boolean) => void;
17
+ onSelectItem?: (value: any, event: React.SyntheticEvent, checked: boolean) => void;
18
18
  onKeyDown?: (event: React.KeyboardEvent) => void;
19
19
  }
20
20
  declare const DropdownMenuCheckItem: RsRefForwardingComponent<'div', DropdownMenuCheckItemProps>;
@@ -2,7 +2,8 @@ import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
3
  import React, { useRef, useCallback, useEffect } from 'react';
4
4
  import omit from 'lodash/omit';
5
- import { addStyle, getWidth } from 'dom-lib';
5
+ import addStyle from 'dom-lib/addStyle';
6
+ import getWidth from 'dom-lib/getWidth';
6
7
  import { getDOMNode, mergeRefs, useElementResize, useClassNames } from '../utils';
7
8
  var omitProps = ['placement', 'arrowOffsetLeft', 'arrowOffsetTop', 'positionLeft', 'positionTop', 'getPositionInstance', 'getToggleInstance', 'autoWidth'];
8
9
  var resizePlacement = ['topStart', 'topEnd', 'leftEnd', 'rightEnd', 'auto', 'autoVerticalStart', 'autoVerticalEnd', 'autoHorizontalEnd'];
@@ -23,7 +23,13 @@ export interface PickerToggleProps extends ToggleButtonProps {
23
23
  onInputBlur?: (event: React.FocusEvent<HTMLElement>) => void;
24
24
  onInputFocus?: (event: React.FocusEvent<HTMLElement>) => void;
25
25
  placement?: TypeAttributes.Placement;
26
+ /**
27
+ * Custom caret component
28
+ * @deprecated Use `caretAs` instead
29
+ */
26
30
  caretComponent?: React.FC<IconProps>;
31
+ /** Custom caret component */
32
+ caretAs?: React.ElementType;
27
33
  onClean?: (event: React.MouseEvent) => void;
28
34
  }
29
35
  declare const PickerToggle: RsRefForwardingComponent<typeof ToggleButton, PickerToggleProps>;
@@ -7,12 +7,13 @@ var _templateObject, _templateObject2;
7
7
  import React, { useState, useCallback, useEffect, useRef } from 'react';
8
8
  import PropTypes from 'prop-types';
9
9
  import debounce from 'lodash/debounce';
10
- import MaskedInput from 'react-text-mask';
11
10
  import ToggleButton from './ToggleButton';
12
11
  import CloseButton from '../CloseButton';
13
12
  import { useClassNames, KEY_VALUES, mergeRefs } from '../utils';
14
13
  import Plaintext from '../Plaintext';
15
14
  import useToggleCaret from '../utils/useToggleCaret';
15
+ import TextMask from '../MaskedInput/TextMask';
16
+ import deprecatePropType from '../utils/deprecatePropType';
16
17
  var defaultInputMask = [];
17
18
  var PickerToggle = /*#__PURE__*/React.forwardRef(function (props, ref) {
18
19
  var activeProp = props.active,
@@ -47,7 +48,9 @@ var PickerToggle = /*#__PURE__*/React.forwardRef(function (props, ref) {
47
48
  onBlur = props.onBlur,
48
49
  placement = props.placement,
49
50
  caretComponent = props.caretComponent,
50
- rest = _objectWithoutPropertiesLoose(props, ["active", "as", "classPrefix", "children", "caret", "className", "disabled", "readOnly", "plaintext", "hasValue", "cleanable", "tabIndex", "id", "value", "input", "inputPlaceholder", "inputValue", "inputMask", "onInputChange", "onInputPressEnter", "onInputBlur", "onInputFocus", "onClean", "onFocus", "onBlur", "placement", "caretComponent"]);
51
+ _props$caretAs = props.caretAs,
52
+ caretAs = _props$caretAs === void 0 ? caretComponent : _props$caretAs,
53
+ rest = _objectWithoutPropertiesLoose(props, ["active", "as", "classPrefix", "children", "caret", "className", "disabled", "readOnly", "plaintext", "hasValue", "cleanable", "tabIndex", "id", "value", "input", "inputPlaceholder", "inputValue", "inputMask", "onInputChange", "onInputPressEnter", "onInputBlur", "onInputFocus", "onClean", "onFocus", "onBlur", "placement", "caretComponent", "caretAs"]);
51
54
 
52
55
  var inputRef = useRef();
53
56
 
@@ -117,7 +120,7 @@ var PickerToggle = /*#__PURE__*/React.forwardRef(function (props, ref) {
117
120
  }
118
121
  }, [onInputPressEnter, input]);
119
122
  var ToggleCaret = useToggleCaret(placement);
120
- var Caret = caretComponent !== null && caretComponent !== void 0 ? caretComponent : ToggleCaret;
123
+ var Caret = caretAs !== null && caretAs !== void 0 ? caretAs : ToggleCaret;
121
124
 
122
125
  if (plaintext) {
123
126
  return /*#__PURE__*/React.createElement(Plaintext, {
@@ -143,7 +146,7 @@ var PickerToggle = /*#__PURE__*/React.forwardRef(function (props, ref) {
143
146
  onFocus: !disabled ? handleFocus : null // The debounce is set to 200 to solve the flicker caused by the switch between input and div.
144
147
  ,
145
148
  onBlur: !disabled ? debounce(handleBlur, 200) : null
146
- }), /*#__PURE__*/React.createElement(MaskedInput, {
149
+ }), /*#__PURE__*/React.createElement(TextMask, {
147
150
  mask: inputMask,
148
151
  value: Array.isArray(inputValue) ? inputValue.toString() : inputValue,
149
152
  onBlur: handleInputBlur,
@@ -192,6 +195,8 @@ PickerToggle.propTypes = {
192
195
  active: PropTypes.bool,
193
196
  readOnly: PropTypes.bool,
194
197
  disabled: PropTypes.bool,
195
- plaintext: PropTypes.bool
198
+ plaintext: PropTypes.bool,
199
+ caretComponent: deprecatePropType(PropTypes.elementType, 'Use `caretAs` instead.'),
200
+ caretAs: PropTypes.elementType
196
201
  };
197
202
  export default PickerToggle;
@@ -5,7 +5,7 @@ export interface SearchBarProps extends WithAsProps {
5
5
  placeholder?: string;
6
6
  className?: string;
7
7
  inputRef?: React.Ref<HTMLInputElement>;
8
- onChange?: (value: string, event: React.SyntheticEvent<HTMLElement>) => void;
8
+ onChange?: (value: string, event: React.SyntheticEvent) => void;
9
9
  }
10
10
  declare const SearchBar: RsRefForwardingComponent<'div', SearchBarProps>;
11
11
  export default SearchBar;
@@ -89,7 +89,7 @@ interface SearchProps {
89
89
  labelKey: string;
90
90
  data: ItemDataType[];
91
91
  searchBy: (keyword: any, label: any, item: any) => boolean;
92
- callback?: (keyword: string, data: ItemDataType[], event: React.SyntheticEvent<any>) => void;
92
+ callback?: (keyword: string, data: ItemDataType[], event: React.SyntheticEvent) => void;
93
93
  }
94
94
  /**
95
95
  * A hook that handles search filter options
@@ -101,7 +101,7 @@ export declare function useSearch(props: SearchProps): {
101
101
  updateFilteredData: (nextData: ItemDataType[]) => void;
102
102
  setSearchKeyword: React.Dispatch<React.SetStateAction<string>>;
103
103
  checkShouldDisplay: (item: ItemDataType, keyword?: string) => boolean;
104
- handleSearch: (searchKeyword: string, event: React.SyntheticEvent<any>) => void;
104
+ handleSearch: (searchKeyword: string, event: React.SyntheticEvent) => void;
105
105
  };
106
106
  interface Refs {
107
107
  triggerRef?: React.RefObject<OverlayTriggerInstance>;
@@ -27,7 +27,7 @@ export interface RadioProps<T = ValueType> extends WithAsProps, Omit<React.HTMLA
27
27
  /** Primary content */
28
28
  children?: React.ReactNode;
29
29
  /** Callback function with value changed */
30
- onChange?: (value: T, checked: boolean, event: React.SyntheticEvent<HTMLInputElement>) => void;
30
+ onChange?: (value: T, checked: boolean, event: React.ChangeEvent<HTMLInputElement>) => void;
31
31
  }
32
32
  declare const Radio: React.ForwardRefExoticComponent<RadioProps<ValueType> & React.RefAttributes<unknown>>;
33
33
  export default Radio;
@@ -9,7 +9,7 @@ export interface RadioContextProps {
9
9
  disabled?: boolean;
10
10
  readOnly?: boolean;
11
11
  plaintext?: boolean;
12
- onChange?: (value: ValueType, event: React.SyntheticEvent<HTMLInputElement>) => void;
12
+ onChange?: (value: ValueType, event: React.ChangeEvent<HTMLInputElement>) => void;
13
13
  }
14
14
  export interface RadioGroupProps<T = ValueType> extends WithAsProps, FormControlBaseProps<T> {
15
15
  /** A radio group can have different appearances */
@@ -2,7 +2,9 @@ import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
3
  import React, { useMemo, useRef, useCallback } from 'react';
4
4
  import PropTypes from 'prop-types';
5
- import { getWidth, getHeight, getOffset } from 'dom-lib';
5
+ import getWidth from 'dom-lib/getWidth';
6
+ import getHeight from 'dom-lib/getHeight';
7
+ import getOffset from 'dom-lib/getOffset';
6
8
  import { useClassNames, useCustom, useControlled, useEventCallback } from '../utils';
7
9
  import { sliderPropTypes } from '../Slider/Slider';
8
10
  import ProgressBar from '../Slider/ProgressBar';
@@ -114,7 +116,7 @@ var RangeSlider = /*#__PURE__*/React.forwardRef(function (props, ref) {
114
116
  }, [count, getBarHeight, getBarWidth, step, vertical]);
115
117
  var getValueByPosition = useCallback(function (event) {
116
118
  var barOffset = getOffset(barRef.current);
117
- var offset = vertical ? event.pageY - barOffset.top : event.pageX - barOffset.left;
119
+ var offset = vertical ? barOffset.top + barOffset.height - event.pageY : event.pageX - barOffset.left;
118
120
  var val = rtl && !vertical ? barOffset.width - offset : offset;
119
121
  return getValueByOffset(val) + min;
120
122
  }, [getValueByOffset, min, rtl, vertical]);
@@ -5,12 +5,12 @@ var _characterStatus;
5
5
 
6
6
  import React, { useCallback, useRef } from 'react';
7
7
  import PropTypes from 'prop-types';
8
- import helper from '../DOMHelper';
8
+ import contains from 'dom-lib/contains';
9
9
  import { useClassNames } from '../utils';
10
10
  var characterStatus = (_characterStatus = {}, _characterStatus[0] = 'empty', _characterStatus[0.5] = 'half', _characterStatus[1] = 'full', _characterStatus);
11
11
 
12
12
  var getKey = function getKey(a, b) {
13
- return helper.contains(a, b) ? 'before' : 'after';
13
+ return contains(a, b) ? 'before' : 'after';
14
14
  };
15
15
 
16
16
  var Character = /*#__PURE__*/React.forwardRef(function (props, ref) {
@@ -2,12 +2,13 @@ import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
3
  import React, { useRef, useState, useEffect, useCallback } from 'react';
4
4
  import PropTypes from 'prop-types';
5
+ import getOffset from 'dom-lib/getOffset';
6
+ import on from 'dom-lib/on';
5
7
  import Transition from '../Animation/Transition';
6
- import helper from '../DOMHelper';
7
8
  import { mergeRefs, useClassNames } from '../utils';
8
9
 
9
10
  var getPosition = function getPosition(target, event) {
10
- var offset = helper.getOffset(target);
11
+ var offset = getOffset(target);
11
12
  var offsetX = (event.pageX || 0) - offset.left;
12
13
  var offsetY = (event.pageY || 0) - offset.top;
13
14
  var radiusX = Math.max(offset.width - offsetX, offsetX);
@@ -58,7 +59,7 @@ var Ripple = /*#__PURE__*/React.forwardRef(function (props, ref) {
58
59
  }, [onMouseDown]);
59
60
  useEffect(function () {
60
61
  var parentNode = triggerRef.current.parentNode;
61
- var mousedownListener = helper.on(parentNode, 'mousedown', handleMouseDown);
62
+ var mousedownListener = on(parentNode, 'mousedown', handleMouseDown);
62
63
  return function () {
63
64
  mousedownListener === null || mousedownListener === void 0 ? void 0 : mousedownListener.off();
64
65
  };
@@ -23,7 +23,7 @@ export interface SidenavDropdownItemProps<T = any> extends WithAsProps, Omit<Rea
23
23
  /** Whether the submenu is expanded, used in Sidenav. */
24
24
  expanded?: boolean;
25
25
  /** Select the callback function for the current option */
26
- onSelect?: (eventKey: T, event: React.SyntheticEvent<HTMLElement>) => void;
26
+ onSelect?: (eventKey: T, event: React.SyntheticEvent) => void;
27
27
  }
28
28
  /**
29
29
  * Tree View Node
@@ -9,6 +9,7 @@ import Ripple from '../Ripple';
9
9
  import SafeAnchor from '../SafeAnchor';
10
10
  import NavContext from '../Nav/NavContext';
11
11
  import DropdownContext from '../Dropdown/DropdownContext';
12
+ import { useRenderDropdownItem } from '../Dropdown/useRenderDropdownItem';
12
13
 
13
14
  /**
14
15
  * Tree View Node
@@ -59,34 +60,39 @@ var SidenavDropdownItem = /*#__PURE__*/React.forwardRef(function (props, ref) {
59
60
  var menuitemEventHandlers = {
60
61
  onClick: createChainedFunction(handleClick, onClick)
61
62
  };
63
+ var renderDropdownItem = useRenderDropdownItem(Component);
62
64
 
63
65
  if (divider) {
64
- return /*#__PURE__*/React.createElement(Component, _extends({
66
+ return renderDropdownItem(_extends({
65
67
  ref: ref,
66
- role: "separator",
68
+ role: 'separator',
67
69
  style: style,
68
70
  className: merge(prefix('divider'), className)
69
71
  }, rest));
70
72
  }
71
73
 
72
74
  if (panel) {
73
- return /*#__PURE__*/React.createElement(Component, _extends({
75
+ return renderDropdownItem(_extends({
74
76
  ref: ref,
75
- role: "none presentation",
77
+ role: 'none presentation',
76
78
  style: style,
77
79
  className: merge(prefix('panel'), className)
78
- }, rest), children);
80
+ }, rest, {
81
+ children: children
82
+ }));
79
83
  }
80
84
 
81
- return /*#__PURE__*/React.createElement(SafeAnchor, _extends({
85
+ return renderDropdownItem(_extends({
82
86
  ref: ref
83
87
  }, rest, {
84
88
  style: style,
85
89
  className: classes,
86
- "aria-current": selected || undefined
87
- }, menuitemEventHandlers), icon && /*#__PURE__*/React.cloneElement(icon, {
88
- className: prefix('menu-icon')
89
- }), children, /*#__PURE__*/React.createElement(Ripple, null));
90
+ 'aria-current': selected || undefined
91
+ }, menuitemEventHandlers, {
92
+ children: /*#__PURE__*/React.createElement(React.Fragment, null, icon && /*#__PURE__*/React.cloneElement(icon, {
93
+ className: prefix('menu-icon')
94
+ }), children, /*#__PURE__*/React.createElement(Ripple, null))
95
+ }), SafeAnchor);
90
96
  });
91
97
  SidenavDropdownItem.displayName = 'Sidenav.Dropdown.Item';
92
98
  SidenavDropdownItem.propTypes = {
@@ -15,7 +15,7 @@ export interface SidenavDropdownMenuProps<T = any> extends WithAsProps, Omit<Rea
15
15
  /** Whether the submenu is expanded, used in Sidenav. */
16
16
  expanded?: boolean;
17
17
  /** Select the callback function for the current option */
18
- onSelect?: (eventKey: T, event: React.SyntheticEvent<HTMLElement>) => void;
18
+ onSelect?: (eventKey: T, event: React.SyntheticEvent) => void;
19
19
  title?: React.ReactNode;
20
20
  }
21
21
  /**
@@ -65,7 +65,7 @@ var Graduated = /*#__PURE__*/React.forwardRef(function (props, ref) {
65
65
  return /*#__PURE__*/React.createElement(Component, {
66
66
  ref: ref,
67
67
  className: classes
68
- }, /*#__PURE__*/React.createElement("ul", null, graduatedItems));
68
+ }, /*#__PURE__*/React.createElement("ol", null, graduatedItems));
69
69
  });
70
70
  Graduated.displayName = 'Graduated';
71
71
  Graduated.propTypes = {
@@ -2,7 +2,9 @@ import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
3
  import React, { useState, useRef, useEffect, useCallback } from 'react';
4
4
  import PropTypes from 'prop-types';
5
- import { DOMMouseMoveTracker, addStyle, getWidth } from 'dom-lib';
5
+ import DOMMouseMoveTracker from 'dom-lib/DOMMouseMoveTracker';
6
+ import addStyle from 'dom-lib/addStyle';
7
+ import getWidth from 'dom-lib/getWidth';
6
8
  import Tooltip from '../Tooltip';
7
9
  import { useClassNames, mergeRefs } from '../utils';
8
10
  import Input from './Input';
@@ -39,7 +41,7 @@ var Handle = /*#__PURE__*/React.forwardRef(function (props, ref) {
39
41
 
40
42
  var rootRef = useRef();
41
43
  var horizontalKey = rtl ? 'right' : 'left';
42
- var direction = vertical ? 'top' : horizontalKey;
44
+ var direction = vertical ? 'bottom' : horizontalKey;
43
45
 
44
46
  var styles = _extends({}, style, (_extends2 = {}, _extends2[direction] = position + "%", _extends2));
45
47
 
@@ -119,6 +121,7 @@ var Handle = /*#__PURE__*/React.forwardRef(function (props, ref) {
119
121
  ref: tooltipRef,
120
122
  className: merge(prefix('tooltip'), 'placement-top')
121
123
  }, renderTooltip ? renderTooltip(value) : value), /*#__PURE__*/React.createElement(Input, _extends({
124
+ tabIndex: -1,
122
125
  value: value
123
126
  }, rest)), children);
124
127
  });