rsuite 5.1.0 → 5.2.3

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 (211) hide show
  1. package/Button/styles/index.less +7 -1
  2. package/CHANGELOG.md +45 -0
  3. package/PanelGroup/styles/index.less +12 -12
  4. package/README.md +3 -45
  5. package/Sidenav/styles/index.less +4 -0
  6. package/Slider/styles/index.less +20 -14
  7. package/Toggle/styles/index.less +48 -27
  8. package/Toggle/styles/mixin.less +16 -14
  9. package/cjs/@types/common.d.ts +8 -2
  10. package/cjs/Affix/Affix.js +3 -3
  11. package/cjs/Animation/Collapse.js +9 -7
  12. package/cjs/Animation/Transition.js +4 -2
  13. package/cjs/AutoComplete/AutoComplete.d.ts +2 -2
  14. package/cjs/AutoComplete/AutoComplete.js +7 -4
  15. package/cjs/Calendar/TimeDropdown.js +5 -3
  16. package/cjs/Cascader/Cascader.d.ts +1 -1
  17. package/cjs/Cascader/DropdownMenu.js +6 -5
  18. package/cjs/CheckTreePicker/CheckTreeNode.d.ts +1 -1
  19. package/cjs/CheckTreePicker/CheckTreePicker.d.ts +1 -1
  20. package/cjs/CheckTreePicker/utils.d.ts +1 -1
  21. package/cjs/CheckTreePicker/utils.js +7 -6
  22. package/cjs/Checkbox/Checkbox.d.ts +3 -3
  23. package/cjs/CheckboxGroup/CheckboxGroup.js +2 -2
  24. package/cjs/CheckboxGroup/CheckboxGroupContext.d.ts +1 -1
  25. package/cjs/DOMHelper/index.d.ts +12 -27
  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/DateRangePicker/Calendar.d.ts +1 -1
  31. package/cjs/DateRangePicker/DateRangePicker.d.ts +2 -2
  32. package/cjs/Disclosure/Disclosure.d.ts +1 -1
  33. package/cjs/Disclosure/DisclosureContext.d.ts +1 -1
  34. package/cjs/Dropdown/DropdownItem.d.ts +1 -1
  35. package/cjs/Dropdown/DropdownItem.js +16 -19
  36. package/cjs/Dropdown/DropdownMenu.d.ts +2 -2
  37. package/cjs/Dropdown/useRenderDropdownItem.d.ts +2 -0
  38. package/cjs/Dropdown/useRenderDropdownItem.js +26 -0
  39. package/cjs/Form/Form.d.ts +1 -1
  40. package/cjs/FormControl/FormControl.d.ts +9 -3
  41. package/cjs/Input/Input.d.ts +2 -1
  42. package/cjs/InputNumber/InputNumber.js +2 -2
  43. package/cjs/InputPicker/InputPicker.js +3 -3
  44. package/cjs/List/helper/useSortHelper.js +11 -6
  45. package/cjs/MaskedInput/MaskedInput.d.ts +5 -42
  46. package/cjs/MaskedInput/MaskedInput.js +9 -63
  47. package/cjs/MaskedInput/TextMask.d.ts +43 -0
  48. package/cjs/MaskedInput/TextMask.js +80 -0
  49. package/cjs/Menu/Menu.js +46 -34
  50. package/cjs/Menu/MenuItem.d.ts +1 -1
  51. package/cjs/Menu/MenuItem.js +16 -12
  52. package/cjs/Menu/Menubar.d.ts +1 -1
  53. package/cjs/Message/Message.js +13 -11
  54. package/cjs/Modal/Modal.js +5 -3
  55. package/cjs/Modal/utils.js +15 -14
  56. package/cjs/Notification/Notification.js +6 -3
  57. package/cjs/Overlay/Modal.js +14 -11
  58. package/cjs/Overlay/ModalManager.js +19 -7
  59. package/cjs/Overlay/OverlayTrigger.js +2 -2
  60. package/cjs/Overlay/Position.js +27 -17
  61. package/cjs/Overlay/positionUtils.js +16 -8
  62. package/cjs/Panel/Panel.d.ts +1 -1
  63. package/cjs/Picker/DropdownMenu.js +10 -6
  64. package/cjs/Picker/DropdownMenuCheckItem.d.ts +3 -3
  65. package/cjs/Picker/PickerOverlay.js +5 -3
  66. package/cjs/Picker/PickerToggle.d.ts +6 -0
  67. package/cjs/Picker/PickerToggle.js +16 -8
  68. package/cjs/Picker/SearchBar.d.ts +1 -1
  69. package/cjs/Picker/utils.d.ts +2 -2
  70. package/cjs/Radio/Radio.d.ts +1 -1
  71. package/cjs/RadioGroup/RadioGroup.d.ts +1 -1
  72. package/cjs/RadioGroup/RadioGroup.js +2 -2
  73. package/cjs/RangeSlider/RangeSlider.js +9 -5
  74. package/cjs/Rate/Character.js +2 -2
  75. package/cjs/Rate/Rate.js +3 -1
  76. package/cjs/Ripple/Ripple.js +6 -7
  77. package/cjs/Sidenav/SidenavDropdownItem.d.ts +1 -1
  78. package/cjs/Sidenav/SidenavDropdownItem.js +17 -10
  79. package/cjs/Sidenav/SidenavDropdownMenu.d.ts +1 -1
  80. package/cjs/Slider/Graduated.js +1 -1
  81. package/cjs/Slider/Handle.js +10 -5
  82. package/cjs/Slider/ProgressBar.js +1 -1
  83. package/cjs/Slider/Slider.js +9 -5
  84. package/cjs/Toggle/Toggle.d.ts +3 -6
  85. package/cjs/Toggle/Toggle.js +32 -27
  86. package/cjs/Tree/Tree.d.ts +3 -3
  87. package/cjs/TreePicker/TreeNode.d.ts +1 -1
  88. package/cjs/TreePicker/TreeNode.js +2 -2
  89. package/cjs/TreePicker/TreePicker.d.ts +1 -1
  90. package/cjs/Uploader/Uploader.d.ts +4 -4
  91. package/cjs/locales/fa_IR.js +8 -8
  92. package/cjs/utils/BrowserDetection.js +1 -1
  93. package/cjs/utils/index.d.ts +1 -0
  94. package/cjs/utils/index.js +7 -2
  95. package/cjs/utils/scrollTopAnimation.js +5 -5
  96. package/cjs/utils/treeUtils.d.ts +2 -2
  97. package/cjs/utils/useElementResize.d.ts +1 -1
  98. package/cjs/utils/useElementResize.js +11 -6
  99. package/cjs/utils/useEventListener.js +4 -2
  100. package/cjs/utils/useIsMounted.d.ts +2 -0
  101. package/cjs/utils/useIsMounted.js +22 -0
  102. package/cjs/utils/usePortal.js +2 -2
  103. package/cjs/utils/useRootClose.js +10 -10
  104. package/dist/rsuite-rtl.css +194 -119
  105. package/dist/rsuite-rtl.min.css +1 -1
  106. package/dist/rsuite-rtl.min.css.map +1 -1
  107. package/dist/rsuite.css +194 -119
  108. package/dist/rsuite.js +703 -504
  109. package/dist/rsuite.js.map +1 -1
  110. package/dist/rsuite.min.css +1 -1
  111. package/dist/rsuite.min.css.map +1 -1
  112. package/dist/rsuite.min.js +1 -1
  113. package/dist/rsuite.min.js.LICENSE.txt +9 -0
  114. package/dist/rsuite.min.js.map +1 -1
  115. package/esm/@types/common.d.ts +8 -2
  116. package/esm/Affix/Affix.js +1 -1
  117. package/esm/Animation/Collapse.js +2 -1
  118. package/esm/Animation/Transition.js +3 -2
  119. package/esm/AutoComplete/AutoComplete.d.ts +2 -2
  120. package/esm/AutoComplete/AutoComplete.js +8 -5
  121. package/esm/Calendar/TimeDropdown.js +2 -1
  122. package/esm/Cascader/Cascader.d.ts +1 -1
  123. package/esm/Cascader/DropdownMenu.js +4 -3
  124. package/esm/CheckTreePicker/CheckTreeNode.d.ts +1 -1
  125. package/esm/CheckTreePicker/CheckTreePicker.d.ts +1 -1
  126. package/esm/CheckTreePicker/utils.d.ts +1 -1
  127. package/esm/CheckTreePicker/utils.js +7 -6
  128. package/esm/Checkbox/Checkbox.d.ts +3 -3
  129. package/esm/CheckboxGroup/CheckboxGroup.js +2 -2
  130. package/esm/CheckboxGroup/CheckboxGroupContext.d.ts +1 -1
  131. package/esm/DOMHelper/index.d.ts +12 -27
  132. package/esm/DOMHelper/index.js +2 -3
  133. package/esm/DOMHelper/isElement.d.ts +2 -0
  134. package/esm/DOMHelper/isElement.js +5 -0
  135. package/esm/DatePicker/DatePicker.d.ts +3 -3
  136. package/esm/DateRangePicker/Calendar.d.ts +1 -1
  137. package/esm/DateRangePicker/DateRangePicker.d.ts +2 -2
  138. package/esm/Disclosure/Disclosure.d.ts +1 -1
  139. package/esm/Disclosure/DisclosureContext.d.ts +1 -1
  140. package/esm/Dropdown/DropdownItem.d.ts +1 -1
  141. package/esm/Dropdown/DropdownItem.js +15 -19
  142. package/esm/Dropdown/DropdownMenu.d.ts +2 -2
  143. package/esm/Dropdown/useRenderDropdownItem.d.ts +2 -0
  144. package/esm/Dropdown/useRenderDropdownItem.js +18 -0
  145. package/esm/Form/Form.d.ts +1 -1
  146. package/esm/FormControl/FormControl.d.ts +9 -3
  147. package/esm/Input/Input.d.ts +2 -1
  148. package/esm/InputNumber/InputNumber.js +2 -2
  149. package/esm/InputPicker/InputPicker.js +2 -2
  150. package/esm/List/helper/useSortHelper.js +8 -4
  151. package/esm/MaskedInput/MaskedInput.d.ts +5 -42
  152. package/esm/MaskedInput/MaskedInput.js +9 -63
  153. package/esm/MaskedInput/TextMask.d.ts +43 -0
  154. package/esm/MaskedInput/TextMask.js +67 -0
  155. package/esm/Menu/Menu.js +46 -36
  156. package/esm/Menu/MenuItem.d.ts +1 -1
  157. package/esm/Menu/MenuItem.js +16 -12
  158. package/esm/Menu/Menubar.d.ts +1 -1
  159. package/esm/Message/Message.js +15 -13
  160. package/esm/Modal/Modal.js +3 -2
  161. package/esm/Modal/utils.js +14 -12
  162. package/esm/Notification/Notification.js +7 -4
  163. package/esm/Overlay/Modal.js +11 -8
  164. package/esm/Overlay/ModalManager.js +6 -1
  165. package/esm/Overlay/OverlayTrigger.js +1 -1
  166. package/esm/Overlay/Position.js +20 -11
  167. package/esm/Overlay/positionUtils.js +5 -1
  168. package/esm/Panel/Panel.d.ts +1 -1
  169. package/esm/Picker/DropdownMenu.js +3 -1
  170. package/esm/Picker/DropdownMenuCheckItem.d.ts +3 -3
  171. package/esm/Picker/PickerOverlay.js +2 -1
  172. package/esm/Picker/PickerToggle.d.ts +6 -0
  173. package/esm/Picker/PickerToggle.js +15 -8
  174. package/esm/Picker/SearchBar.d.ts +1 -1
  175. package/esm/Picker/utils.d.ts +2 -2
  176. package/esm/Radio/Radio.d.ts +1 -1
  177. package/esm/RadioGroup/RadioGroup.d.ts +1 -1
  178. package/esm/RadioGroup/RadioGroup.js +2 -2
  179. package/esm/RangeSlider/RangeSlider.js +4 -2
  180. package/esm/Rate/Character.js +2 -2
  181. package/esm/Rate/Rate.js +2 -1
  182. package/esm/Ripple/Ripple.js +4 -3
  183. package/esm/Sidenav/SidenavDropdownItem.d.ts +1 -1
  184. package/esm/Sidenav/SidenavDropdownItem.js +16 -10
  185. package/esm/Sidenav/SidenavDropdownMenu.d.ts +1 -1
  186. package/esm/Slider/Graduated.js +1 -1
  187. package/esm/Slider/Handle.js +5 -2
  188. package/esm/Slider/ProgressBar.js +1 -1
  189. package/esm/Slider/Slider.js +4 -2
  190. package/esm/Toggle/Toggle.d.ts +3 -6
  191. package/esm/Toggle/Toggle.js +34 -29
  192. package/esm/Tree/Tree.d.ts +3 -3
  193. package/esm/TreePicker/TreeNode.d.ts +1 -1
  194. package/esm/TreePicker/TreeNode.js +1 -1
  195. package/esm/TreePicker/TreePicker.d.ts +1 -1
  196. package/esm/Uploader/Uploader.d.ts +4 -4
  197. package/esm/locales/fa_IR.js +8 -8
  198. package/esm/utils/BrowserDetection.js +1 -1
  199. package/esm/utils/index.d.ts +1 -0
  200. package/esm/utils/index.js +2 -1
  201. package/esm/utils/scrollTopAnimation.js +2 -2
  202. package/esm/utils/treeUtils.d.ts +2 -2
  203. package/esm/utils/useElementResize.d.ts +1 -1
  204. package/esm/utils/useElementResize.js +12 -5
  205. package/esm/utils/useEventListener.js +1 -1
  206. package/esm/utils/useIsMounted.d.ts +2 -0
  207. package/esm/utils/useIsMounted.js +16 -0
  208. package/esm/utils/usePortal.js +2 -2
  209. package/esm/utils/useRootClose.js +8 -6
  210. package/package.json +5 -5
  211. package/styles/plugins/palette.js +10 -1
@@ -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',
@@ -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>;
@@ -12,7 +12,8 @@ import CloseButton from '../CloseButton';
12
12
  import { useClassNames, KEY_VALUES, mergeRefs } from '../utils';
13
13
  import Plaintext from '../Plaintext';
14
14
  import useToggleCaret from '../utils/useToggleCaret';
15
- import MaskedInput from '../MaskedInput';
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
 
@@ -80,15 +83,17 @@ var PickerToggle = /*#__PURE__*/React.forwardRef(function (props, ref) {
80
83
  onFocus === null || onFocus === void 0 ? void 0 : onFocus(event);
81
84
 
82
85
  if (input) {
83
- inputRef.current.focus();
86
+ var _inputRef$current;
87
+
88
+ (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.focus();
84
89
  }
85
90
  }, [input, onFocus]);
86
91
  var handleBlur = useCallback(function (event) {
87
92
  if (document.activeElement !== inputRef.current) {
88
- var _inputRef$current;
93
+ var _inputRef$current2;
89
94
 
90
95
  setActive(false);
91
- (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.blur();
96
+ (_inputRef$current2 = inputRef.current) === null || _inputRef$current2 === void 0 ? void 0 : _inputRef$current2.blur();
92
97
  }
93
98
 
94
99
  onBlur === null || onBlur === void 0 ? void 0 : onBlur(event);
@@ -117,7 +122,7 @@ var PickerToggle = /*#__PURE__*/React.forwardRef(function (props, ref) {
117
122
  }
118
123
  }, [onInputPressEnter, input]);
119
124
  var ToggleCaret = useToggleCaret(placement);
120
- var Caret = caretComponent !== null && caretComponent !== void 0 ? caretComponent : ToggleCaret;
125
+ var Caret = caretAs !== null && caretAs !== void 0 ? caretAs : ToggleCaret;
121
126
 
122
127
  if (plaintext) {
123
128
  return /*#__PURE__*/React.createElement(Plaintext, {
@@ -143,7 +148,7 @@ var PickerToggle = /*#__PURE__*/React.forwardRef(function (props, ref) {
143
148
  onFocus: !disabled ? handleFocus : null // The debounce is set to 200 to solve the flicker caused by the switch between input and div.
144
149
  ,
145
150
  onBlur: !disabled ? debounce(handleBlur, 200) : null
146
- }), /*#__PURE__*/React.createElement(MaskedInput, {
151
+ }), /*#__PURE__*/React.createElement(TextMask, {
147
152
  mask: inputMask,
148
153
  value: Array.isArray(inputValue) ? inputValue.toString() : inputValue,
149
154
  onBlur: handleInputBlur,
@@ -192,6 +197,8 @@ PickerToggle.propTypes = {
192
197
  active: PropTypes.bool,
193
198
  readOnly: PropTypes.bool,
194
199
  disabled: PropTypes.bool,
195
- plaintext: PropTypes.bool
200
+ plaintext: PropTypes.bool,
201
+ caretComponent: deprecatePropType(PropTypes.elementType, 'Use `caretAs` instead.'),
202
+ caretAs: PropTypes.elementType
196
203
  };
197
204
  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 */
@@ -55,10 +55,10 @@ var RadioGroup = /*#__PURE__*/React.forwardRef(function (props, ref) {
55
55
  }, [disabled, handleChange, inline, isControlled, name, plaintext, readOnly, value]);
56
56
  return /*#__PURE__*/React.createElement(RadioContext.Provider, {
57
57
  value: contextValue
58
- }, plaintext ? /*#__PURE__*/React.createElement(Plaintext, {
58
+ }, plaintext ? /*#__PURE__*/React.createElement(Plaintext, _extends({
59
59
  ref: ref,
60
60
  localeKey: "notSelected"
61
- }, value ? children : null) : /*#__PURE__*/React.createElement(Component, _extends({
61
+ }, rest), value ? children : null) : /*#__PURE__*/React.createElement(Component, _extends({
62
62
  role: "radiogroup"
63
63
  }, rest, {
64
64
  ref: ref,
@@ -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) {
package/esm/Rate/Rate.js CHANGED
@@ -2,6 +2,7 @@ import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
3
  import React, { useCallback, useEffect, useState } from 'react';
4
4
  import PropTypes from 'prop-types';
5
+ import isNil from 'lodash/isNil';
5
6
  import Star from '@rsuite/icons/legacy/Star';
6
7
  import { useClassNames, useControlled, shallowEqualArray, SIZE, KEY_VALUES } from '../utils';
7
8
  import { transformValueToCharacterMap, transformCharacterMapToValue } from './utils';
@@ -120,7 +121,7 @@ var Rate = /*#__PURE__*/React.forwardRef(function (props, ref) {
120
121
  return /*#__PURE__*/React.createElement(Plaintext, {
121
122
  localeKey: "notSelected",
122
123
  className: className
123
- }, value + "(" + max + ")");
124
+ }, !isNil(value) ? value + "(" + max + ")" : null);
124
125
  }
125
126
 
126
127
  return /*#__PURE__*/React.createElement(Component, _extends({
@@ -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
  });
@@ -24,7 +24,7 @@ var ProgressBar = /*#__PURE__*/React.forwardRef(function (props, ref) {
24
24
 
25
25
  var sizeKey = vertical ? 'height' : 'width';
26
26
  var dirKey = rtl ? 'right' : 'left';
27
- var startKey = vertical ? 'top' : dirKey;
27
+ var startKey = vertical ? 'bottom' : dirKey;
28
28
 
29
29
  var styles = _extends({}, style, (_extends2 = {}, _extends2[startKey] = start + "%", _extends2[sizeKey] = end - start + "%", _extends2));
30
30
 
@@ -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, { useCallback, useMemo, useRef } 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 ProgressBar from './ProgressBar';
7
9
  import Handle from './Handle';
8
10
  import Graduated from './Graduated';
@@ -137,7 +139,7 @@ var Slider = /*#__PURE__*/React.forwardRef(function (props, ref) {
137
139
 
138
140
  var getValueByPosition = useCallback(function (event) {
139
141
  var barOffset = getOffset(barRef.current);
140
- var offset = vertical ? event.pageY - barOffset.top : event.pageX - barOffset.left;
142
+ var offset = vertical ? barOffset.top + barOffset.height - event.pageY : event.pageX - barOffset.left;
141
143
  var offsetValue = rtl && !vertical ? barOffset.width - offset : offset;
142
144
  return getValueByOffset(offsetValue) + min;
143
145
  }, [getValueByOffset, min, rtl, vertical]);
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { WithAsProps, TypeAttributes } from '../@types/common';
2
+ import { WithAsProps, TypeAttributes, RsRefForwardingComponent } from '../@types/common';
3
3
  import { ToggleLocale } from '../locales';
4
4
  export interface ToggleProps extends WithAsProps {
5
5
  /** Wheather to disabled toggle */
@@ -23,10 +23,7 @@ export interface ToggleProps extends WithAsProps {
23
23
  /** Custom locale */
24
24
  locale?: ToggleLocale;
25
25
  /** Callback function when state changes */
26
- onChange?: (checked: boolean, event: React.SyntheticEvent) => void;
26
+ onChange?: (checked: boolean, event: React.ChangeEvent<HTMLInputElement>) => void;
27
27
  }
28
- /**
29
- * fixme: Should contain an input[type=checkbox]
30
- */
31
- declare const Toggle: React.ForwardRefExoticComponent<ToggleProps & React.RefAttributes<unknown>>;
28
+ declare const Toggle: RsRefForwardingComponent<'label', ToggleProps>;
32
29
  export default Toggle;