rsuite 5.20.0 → 5.21.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 (132) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/CheckTreePicker/styles/index.less +0 -25
  3. package/Picker/styles/index.less +0 -10
  4. package/Picker/styles/mixin.less +0 -5
  5. package/README.md +4 -2
  6. package/TreePicker/styles/index.less +0 -19
  7. package/Windowing/package.json +7 -0
  8. package/cjs/Calendar/MonthDropdown.d.ts +1 -0
  9. package/cjs/Calendar/MonthDropdown.js +27 -40
  10. package/cjs/Cascader/Cascader.d.ts +2 -2
  11. package/cjs/Cascader/DropdownMenu.js +5 -2
  12. package/cjs/CheckPicker/CheckPicker.d.ts +2 -2
  13. package/cjs/CheckPicker/CheckPicker.js +4 -1
  14. package/cjs/CheckTreePicker/CheckTreePicker.js +37 -39
  15. package/cjs/CustomProvider/CustomProvider.d.ts +1 -108
  16. package/cjs/CustomProvider/CustomProvider.js +2 -5
  17. package/cjs/CustomProvider/index.d.ts +2 -2
  18. package/cjs/CustomProvider/index.js +0 -1
  19. package/cjs/DateRangePicker/DateRangePicker.js +5 -5
  20. package/cjs/Disclosure/Disclosure.d.ts +2 -2
  21. package/cjs/Disclosure/Disclosure.js +6 -6
  22. package/cjs/InputPicker/InputPicker.js +4 -1
  23. package/cjs/Modal/ModalBody.js +18 -17
  24. package/cjs/MultiCascader/DropdownMenu.js +5 -2
  25. package/cjs/Navbar/NavbarDropdownMenu.js +16 -10
  26. package/cjs/Overlay/OverlayTrigger.d.ts +2 -2
  27. package/cjs/Picker/DropdownMenu.d.ts +2 -1
  28. package/cjs/Picker/DropdownMenu.js +38 -34
  29. package/cjs/Picker/PickerOverlay.d.ts +2 -2
  30. package/cjs/Picker/PickerToggle.js +4 -1
  31. package/cjs/Picker/PickerToggleTrigger.d.ts +2 -2
  32. package/cjs/Picker/PickerToggleTrigger.js +11 -10
  33. package/cjs/Picker/index.d.ts +3 -3
  34. package/cjs/Picker/types.d.ts +7 -5
  35. package/cjs/Picker/utils.d.ts +11 -12
  36. package/cjs/Picker/utils.js +4 -0
  37. package/cjs/SelectPicker/SelectPicker.d.ts +4 -5
  38. package/cjs/SelectPicker/SelectPicker.js +4 -1
  39. package/cjs/Tree/Tree.d.ts +2 -5
  40. package/cjs/TreePicker/TreePicker.js +35 -37
  41. package/cjs/TreePicker/test/TreePicker.test.js +14 -0
  42. package/cjs/Whisper/Whisper.d.ts +3 -3
  43. package/cjs/Whisper/Whisper.js +11 -10
  44. package/cjs/Windowing/AutoSizer.d.ts +25 -0
  45. package/cjs/Windowing/AutoSizer.js +103 -0
  46. package/cjs/Windowing/List.d.ts +45 -0
  47. package/cjs/Windowing/List.js +72 -0
  48. package/cjs/Windowing/index.d.ts +5 -0
  49. package/cjs/Windowing/index.js +19 -0
  50. package/cjs/index.d.ts +1 -0
  51. package/cjs/toaster/ToastContainer.d.ts +2 -1
  52. package/cjs/toaster/ToastContainer.js +27 -26
  53. package/cjs/toaster/toaster.d.ts +1 -1
  54. package/cjs/toaster/toaster.js +43 -13
  55. package/cjs/toaster/useToaster.d.ts +1 -1
  56. package/cjs/utils/index.d.ts +1 -0
  57. package/cjs/utils/index.js +6 -1
  58. package/cjs/utils/render.d.ts +3 -0
  59. package/cjs/utils/render.js +49 -0
  60. package/cjs/utils/treeUtils.d.ts +2 -2
  61. package/cjs/utils/useUniqueId.js +10 -2
  62. package/dist/rsuite-rtl.css +0 -67
  63. package/dist/rsuite-rtl.min.css +1 -1
  64. package/dist/rsuite-rtl.min.css.map +1 -1
  65. package/dist/rsuite.css +0 -67
  66. package/dist/rsuite.js +104 -363
  67. package/dist/rsuite.js.map +1 -1
  68. package/dist/rsuite.min.css +1 -1
  69. package/dist/rsuite.min.css.map +1 -1
  70. package/dist/rsuite.min.js +1 -1
  71. package/dist/rsuite.min.js.LICENSE.txt +2 -0
  72. package/dist/rsuite.min.js.map +1 -1
  73. package/esm/Calendar/MonthDropdown.d.ts +1 -0
  74. package/esm/Calendar/MonthDropdown.js +26 -41
  75. package/esm/Cascader/Cascader.d.ts +2 -2
  76. package/esm/Cascader/DropdownMenu.js +5 -2
  77. package/esm/CheckPicker/CheckPicker.d.ts +2 -2
  78. package/esm/CheckPicker/CheckPicker.js +4 -1
  79. package/esm/CheckTreePicker/CheckTreePicker.js +37 -38
  80. package/esm/CustomProvider/CustomProvider.d.ts +1 -108
  81. package/esm/CustomProvider/CustomProvider.js +2 -4
  82. package/esm/CustomProvider/index.d.ts +2 -2
  83. package/esm/CustomProvider/index.js +2 -2
  84. package/esm/DateRangePicker/DateRangePicker.js +5 -5
  85. package/esm/Disclosure/Disclosure.d.ts +2 -2
  86. package/esm/Disclosure/Disclosure.js +6 -6
  87. package/esm/InputPicker/InputPicker.js +4 -1
  88. package/esm/Modal/ModalBody.js +16 -17
  89. package/esm/MultiCascader/DropdownMenu.js +5 -2
  90. package/esm/Navbar/NavbarDropdownMenu.js +14 -8
  91. package/esm/Overlay/OverlayTrigger.d.ts +2 -2
  92. package/esm/Picker/DropdownMenu.d.ts +2 -1
  93. package/esm/Picker/DropdownMenu.js +38 -36
  94. package/esm/Picker/PickerOverlay.d.ts +2 -2
  95. package/esm/Picker/PickerToggle.js +4 -1
  96. package/esm/Picker/PickerToggleTrigger.d.ts +2 -2
  97. package/esm/Picker/PickerToggleTrigger.js +10 -11
  98. package/esm/Picker/index.d.ts +3 -3
  99. package/esm/Picker/types.d.ts +7 -5
  100. package/esm/Picker/utils.d.ts +11 -12
  101. package/esm/Picker/utils.js +4 -0
  102. package/esm/SelectPicker/SelectPicker.d.ts +4 -5
  103. package/esm/SelectPicker/SelectPicker.js +4 -1
  104. package/esm/Tree/Tree.d.ts +2 -5
  105. package/esm/TreePicker/TreePicker.js +34 -35
  106. package/esm/TreePicker/test/TreePicker.test.js +14 -0
  107. package/esm/Whisper/Whisper.d.ts +3 -3
  108. package/esm/Whisper/Whisper.js +10 -11
  109. package/esm/Windowing/AutoSizer.d.ts +25 -0
  110. package/esm/Windowing/AutoSizer.js +88 -0
  111. package/esm/Windowing/List.d.ts +45 -0
  112. package/esm/Windowing/List.js +58 -0
  113. package/esm/Windowing/index.d.ts +5 -0
  114. package/esm/Windowing/index.js +3 -0
  115. package/esm/index.d.ts +1 -0
  116. package/esm/toaster/ToastContainer.d.ts +2 -1
  117. package/esm/toaster/ToastContainer.js +28 -26
  118. package/esm/toaster/toaster.d.ts +1 -1
  119. package/esm/toaster/toaster.js +41 -13
  120. package/esm/toaster/useToaster.d.ts +1 -1
  121. package/esm/utils/index.d.ts +1 -0
  122. package/esm/utils/index.js +1 -0
  123. package/esm/utils/render.d.ts +3 -0
  124. package/esm/utils/render.js +37 -0
  125. package/esm/utils/treeUtils.d.ts +2 -2
  126. package/esm/utils/useUniqueId.js +7 -2
  127. package/package.json +3 -3
  128. package/styles/mixins/listbox.less +0 -5
  129. package/cjs/Picker/VirtualizedList.d.ts +0 -37
  130. package/cjs/Picker/VirtualizedList.js +0 -15
  131. package/esm/Picker/VirtualizedList.d.ts +0 -37
  132. package/esm/Picker/VirtualizedList.js +0 -4
@@ -2,6 +2,7 @@ import React from 'react';
2
2
  import { RsRefForwardingComponent, WithAsProps } from '../@types/common';
3
3
  export interface MonthDropdownProps extends WithAsProps {
4
4
  show?: boolean;
5
+ limitStartYear?: number;
5
6
  limitEndYear?: number;
6
7
  height?: number;
7
8
  width?: number;
@@ -1,35 +1,19 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
- import React, { useCallback } from 'react';
3
+ import React, { useCallback, useMemo } from 'react';
4
4
  import PropTypes from 'prop-types';
5
- import { AutoSizer, List } from '../Picker/VirtualizedList';
5
+ import { AutoSizer, FixedSizeList } from '../Windowing';
6
6
  import { DateUtils, useClassNames } from '../utils';
7
7
  import MonthDropdownItem from './MonthDropdownItem';
8
8
  import { useCalendarContext } from './CalendarContext';
9
9
  var monthMap = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];
10
- /**
11
- * Set the row height.
12
- * Add 1px to the first and last lines.
13
- */
14
-
15
- function getRowHeight(count) {
16
- return function (_ref) {
17
- var index = _ref.index;
18
-
19
- if (index === 0 || count - 1 === index) {
20
- return 75 + 1;
21
- }
22
-
23
- return 75;
24
- };
25
- }
26
-
27
10
  var MonthDropdown = /*#__PURE__*/React.forwardRef(function (props, ref) {
28
11
  var _props$as = props.as,
29
12
  Component = _props$as === void 0 ? 'div' : _props$as,
30
13
  className = props.className,
31
14
  _props$classPrefix = props.classPrefix,
32
15
  classPrefix = _props$classPrefix === void 0 ? 'calendar-month-dropdown' : _props$classPrefix,
16
+ limitStartYear = props.limitStartYear,
33
17
  _props$limitEndYear = props.limitEndYear,
34
18
  limitEndYear = _props$limitEndYear === void 0 ? 5 : _props$limitEndYear,
35
19
  show = props.show,
@@ -38,7 +22,7 @@ var MonthDropdown = /*#__PURE__*/React.forwardRef(function (props, ref) {
38
22
  _props$width = props.width,
39
23
  defaultWidth = _props$width === void 0 ? 256 : _props$width,
40
24
  disabledMonth = props.disabledMonth,
41
- rest = _objectWithoutPropertiesLoose(props, ["as", "className", "classPrefix", "limitEndYear", "show", "height", "width", "disabledMonth"]);
25
+ rest = _objectWithoutPropertiesLoose(props, ["as", "className", "classPrefix", "limitStartYear", "limitEndYear", "show", "height", "width", "disabledMonth"]);
42
26
 
43
27
  var _useCalendarContext = useCalendarContext(),
44
28
  _useCalendarContext$d = _useCalendarContext.date,
@@ -49,9 +33,12 @@ var MonthDropdown = /*#__PURE__*/React.forwardRef(function (props, ref) {
49
33
  merge = _useClassNames.merge,
50
34
  withClassPrefix = _useClassNames.withClassPrefix;
51
35
 
52
- var getRowCount = useCallback(function () {
53
- return DateUtils.getYear(new Date()) + limitEndYear;
54
- }, [limitEndYear]);
36
+ var thisYear = DateUtils.getYear(new Date());
37
+ var startYear = limitStartYear ? thisYear - limitStartYear : 1900;
38
+ var rowCount = useMemo(function () {
39
+ var endYear = thisYear + limitEndYear;
40
+ return endYear - startYear;
41
+ }, [limitEndYear, startYear, thisYear]);
55
42
  var isMonthDisabled = useCallback(function (year, month) {
56
43
  if (disabledMonth) {
57
44
  var days = DateUtils.getDaysInMonth(new Date(year, month)); // If all dates in a month are disabled, disable the current month
@@ -68,26 +55,23 @@ var MonthDropdown = /*#__PURE__*/React.forwardRef(function (props, ref) {
68
55
  return false;
69
56
  }, [disabledMonth]);
70
57
 
71
- var rowRenderer = function rowRenderer(_ref2) {
72
- var index = _ref2.index,
73
- key = _ref2.key,
74
- style = _ref2.style;
58
+ var rowRenderer = function rowRenderer(_ref) {
59
+ var index = _ref.index,
60
+ style = _ref.style;
75
61
  var selectedMonth = DateUtils.getMonth(date);
76
62
  var selectedYear = DateUtils.getYear(date);
77
- var year = index + 1;
63
+ var year = startYear + index;
78
64
  var isSelectedYear = year === selectedYear;
79
- var count = getRowCount();
80
65
  var titleClassName = prefix('year', {
81
66
  'year-active': isSelectedYear
82
67
  });
83
68
  var rowClassName = merge(prefix('row'), {
84
69
  'first-row': index === 0,
85
- 'last-row': index === count - 1
70
+ 'last-row': index === rowCount - 1
86
71
  });
87
72
  return /*#__PURE__*/React.createElement("div", {
88
73
  className: rowClassName,
89
74
  role: "row",
90
- key: key,
91
75
  style: style
92
76
  }, /*#__PURE__*/React.createElement("div", {
93
77
  className: titleClassName,
@@ -106,10 +90,12 @@ var MonthDropdown = /*#__PURE__*/React.forwardRef(function (props, ref) {
106
90
  })));
107
91
  };
108
92
 
109
- var count = getRowCount();
110
93
  var classes = merge(className, withClassPrefix(), {
111
94
  show: show
112
95
  });
96
+ var itemSize = 75;
97
+ var initialItemIndex = DateUtils.getYear(date) - startYear;
98
+ var initialScrollOffset = itemSize * initialItemIndex;
113
99
  return /*#__PURE__*/React.createElement(Component, _extends({
114
100
  role: "menu"
115
101
  }, rest, {
@@ -122,18 +108,17 @@ var MonthDropdown = /*#__PURE__*/React.forwardRef(function (props, ref) {
122
108
  }, show && /*#__PURE__*/React.createElement(AutoSizer, {
123
109
  defaultHeight: defaultHeight,
124
110
  defaultWidth: defaultWidth
125
- }, function (_ref3) {
126
- var height = _ref3.height,
127
- width = _ref3.width;
128
- return /*#__PURE__*/React.createElement(List, {
111
+ }, function (_ref2) {
112
+ var height = _ref2.height,
113
+ width = _ref2.width;
114
+ return /*#__PURE__*/React.createElement(FixedSizeList, {
129
115
  className: prefix('row-wrapper'),
130
116
  width: width || defaultWidth,
131
117
  height: height || defaultHeight,
132
- rowHeight: getRowHeight(count),
133
- rowCount: count,
134
- scrollToIndex: DateUtils.getYear(date),
135
- rowRenderer: rowRenderer
136
- });
118
+ itemSize: itemSize,
119
+ itemCount: rowCount,
120
+ initialScrollOffset: initialScrollOffset
121
+ }, rowRenderer);
137
122
  }))));
138
123
  });
139
124
  MonthDropdown.displayName = 'MonthDropdown';
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { PickerLocale } from '../locales';
3
- import { PickerInstance } from '../Picker';
3
+ import { PickerHandle } from '../Picker';
4
4
  import { ItemDataType, FormControlPickerProps } from '../@types/common';
5
5
  export declare type ValueType = number | string;
6
6
  export interface CascaderProps<T = ValueType> extends FormControlPickerProps<T | null, PickerLocale, ItemDataType<T>> {
@@ -33,7 +33,7 @@ export interface CascaderProps<T = ValueType> extends FormControlPickerProps<T |
33
33
  }
34
34
  export interface CascaderComponent {
35
35
  <T>(props: CascaderProps<T> & {
36
- ref?: React.Ref<PickerInstance>;
36
+ ref?: React.Ref<PickerHandle>;
37
37
  }): JSX.Element | null;
38
38
  displayName?: string;
39
39
  propTypes?: React.WeakValidationMap<CascaderProps<any>>;
@@ -45,7 +45,10 @@ var DropdownMenu = /*#__PURE__*/React.forwardRef(function (props, ref) {
45
45
 
46
46
  var classes = merge(className, prefix('items'));
47
47
  var rootRef = useRef();
48
- var rtl = useCustom('DropdownMenu');
48
+
49
+ var _useCustom = useCustom('DropdownMenu'),
50
+ rtl = _useCustom.rtl;
51
+
49
52
  useEffect(function () {
50
53
  var _rootRef$current;
51
54
 
@@ -96,7 +99,7 @@ var DropdownMenu = /*#__PURE__*/React.forwardRef(function (props, ref) {
96
99
  }); // Use `value` in keys when If `value` is string or number
97
100
 
98
101
  var onlyKey = typeof value === 'number' || typeof value === 'string' ? value : index;
99
- var Icon = node.loading ? SpinnerIcon : rtl ? AngleRightIcon : AngleLeftIcon;
102
+ var Icon = node.loading ? SpinnerIcon : rtl ? AngleLeftIcon : AngleRightIcon;
100
103
  return /*#__PURE__*/React.createElement(DropdownMenuItem, {
101
104
  classPrefix: "picker-cascader-menu-item",
102
105
  as: 'li',
@@ -1,6 +1,6 @@
1
1
  import React, { Ref } from 'react';
2
2
  import { PickerLocale } from '../locales';
3
- import { PickerInstance, PickerToggleProps } from '../Picker';
3
+ import { PickerHandle, PickerToggleProps } from '../Picker';
4
4
  import { ItemDataType, FormControlPickerProps } from '../@types/common';
5
5
  import type { MultipleSelectProps } from '../SelectPicker';
6
6
  export declare type ValueType = (number | string)[];
@@ -12,7 +12,7 @@ export interface CheckPickerProps<T> extends FormControlPickerProps<T[], PickerL
12
12
  }
13
13
  export interface CheckPickerComponent {
14
14
  <T>(props: CheckPickerProps<T> & {
15
- ref?: Ref<PickerInstance>;
15
+ ref?: Ref<PickerHandle>;
16
16
  }): JSX.Element | null;
17
17
  displayName?: string;
18
18
  propTypes?: React.WeakValidationMap<CheckPickerProps<any>>;
@@ -81,6 +81,7 @@ var CheckPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
81
81
  var targetRef = useRef(null);
82
82
  var overlayRef = useRef(null);
83
83
  var searchInputRef = useRef(null);
84
+ var listRef = useRef(null);
84
85
 
85
86
  var _useCustom = useCustom('Picker', overrideLocale),
86
87
  locale = _useCustom.locale;
@@ -235,7 +236,8 @@ var CheckPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
235
236
  usePublicMethods(ref, {
236
237
  triggerRef: triggerRef,
237
238
  overlayRef: overlayRef,
238
- targetRef: targetRef
239
+ targetRef: targetRef,
240
+ listRef: listRef
239
241
  });
240
242
  var selectedItems = data.filter(function (item) {
241
243
  return value === null || value === void 0 ? void 0 : value.some(function (val) {
@@ -308,6 +310,7 @@ var CheckPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
308
310
  var menu = items.length || filteredStickyItems.length ? /*#__PURE__*/React.createElement(DropdownMenu, {
309
311
  id: id ? id + "-listbox" : undefined,
310
312
  listProps: listProps,
313
+ listRef: listRef,
311
314
  disabledItemValues: disabledItemValues,
312
315
  valueKey: valueKey,
313
316
  labelKey: labelKey,
@@ -9,7 +9,7 @@ import _isNil from "lodash/isNil";
9
9
  import React, { useState, useRef, useEffect, useCallback, useContext, useMemo } from 'react';
10
10
  import PropTypes from 'prop-types';
11
11
  import classNames from 'classnames';
12
- import { List, AutoSizer } from '../Picker/VirtualizedList';
12
+ import { List, AutoSizer } from '../Windowing';
13
13
  import CheckTreeNode from './CheckTreeNode';
14
14
  import TreeContext from '../Tree/TreeContext';
15
15
  import { getTreeNodeIndent } from '../utils/treeUtils';
@@ -18,6 +18,11 @@ import { PickerToggle, onMenuKeyDown as _onMenuKeyDown, PickerOverlay, SearchBar
18
18
  import { isEveryChildChecked, isSomeNodeHasChildren, isAllSiblingNodeUncheckable, isEveryFirstLevelNodeUncheckable, getFormattedTree, getDisabledState, getCheckTreePickerDefaultValue, getSelectedItems, isNodeUncheckable } from './utils';
19
19
  import { hasVisibleChildren, getExpandWhenSearching, useTreeSearch, useTreeNodeRefs, getDefaultExpandItemValues, useFlattenTreeData, focusNextItem, getFocusableItems, focusPreviousItem, toggleExpand, getActiveItem, useGetTreeNodeChildren, focusToActiveTreeNode, focusTreeNode, leftArrowHandler, rightArrowHandler, isSearching } from '../utils/treeUtils';
20
20
  var emptyArray = [];
21
+
22
+ var itemSize = function itemSize() {
23
+ return 36;
24
+ };
25
+
21
26
  var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
22
27
  var _props$as = props.as,
23
28
  Component = _props$as === void 0 ? 'div' : _props$as,
@@ -601,36 +606,33 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
601
606
  }, nodeProps));
602
607
  };
603
608
 
604
- var renderVirtualListNode = function renderVirtualListNode(nodes) {
605
- return function (_ref3) {
606
- var key = _ref3.key,
607
- index = _ref3.index,
608
- style = _ref3.style;
609
- var node = nodes[index];
610
- var layer = node.layer,
611
- refKey = node.refKey,
612
- visible = node.visible;
613
- var expand = getExpandWhenSearching(searchKeywordState, expandItemValues.includes(node[valueKey]));
614
-
615
- var nodeProps = _extends({}, getTreeNodeProps(_extends({}, node, {
616
- /**
617
- * spread operator don't copy unenumerable properties
618
- * so we need to copy them manually
619
- */
620
- parent: node.parent,
621
- expand: expand
622
- }), layer), {
623
- hasChildren: node.hasChildren
624
- });
609
+ var renderVirtualListNode = function renderVirtualListNode(_ref3) {
610
+ var index = _ref3.index,
611
+ style = _ref3.style,
612
+ data = _ref3.data;
613
+ var node = data[index];
614
+ var layer = node.layer,
615
+ refKey = node.refKey,
616
+ visible = node.visible;
617
+ var expand = getExpandWhenSearching(searchKeywordState, expandItemValues.includes(node[valueKey]));
625
618
 
626
- return visible && /*#__PURE__*/React.createElement(CheckTreeNode, _extends({
627
- style: style,
628
- key: key,
629
- ref: function ref(_ref4) {
630
- return saveTreeNodeRef(_ref4, refKey);
631
- }
632
- }, nodeProps));
633
- };
619
+ var nodeProps = _extends({}, getTreeNodeProps(_extends({}, node, {
620
+ /**
621
+ * spread operator don't copy unenumerable properties
622
+ * so we need to copy them manually
623
+ */
624
+ parent: node.parent,
625
+ expand: expand
626
+ }), layer), {
627
+ hasChildren: node.hasChildren
628
+ });
629
+
630
+ return visible && /*#__PURE__*/React.createElement(CheckTreeNode, _extends({
631
+ style: style,
632
+ ref: function ref(_ref4) {
633
+ return saveTreeNodeRef(_ref4, refKey);
634
+ }
635
+ }, nodeProps));
634
636
  };
635
637
 
636
638
  var renderCheckTree = function renderCheckTree() {
@@ -669,17 +671,14 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
669
671
  height: 'auto'
670
672
  }
671
673
  }, function (_ref5) {
672
- var height = _ref5.height,
673
- width = _ref5.width;
674
+ var height = _ref5.height;
674
675
  return /*#__PURE__*/React.createElement(List, _extends({
675
676
  ref: listRef,
676
- width: width,
677
677
  height: height,
678
- rowHeight: 36,
679
- rowCount: formattedNodes.length,
680
- rowRenderer: renderVirtualListNode(formattedNodes),
681
- scrollToAlignment: "center"
682
- }, listProps));
678
+ itemSize: itemSize,
679
+ itemCount: formattedNodes.length,
680
+ itemData: formattedNodes
681
+ }, listProps), renderVirtualListNode);
683
682
  }) : formattedNodes));
684
683
  };
685
684
 
@@ -156,113 +156,6 @@ declare const CustomContext: React.Context<CustomProviderProps<{
156
156
  off: string;
157
157
  } | undefined;
158
158
  }>>;
159
- declare const Consumer: React.Consumer<CustomProviderProps<{
160
- common?: {
161
- loading: string;
162
- emptyMessage: string;
163
- } | undefined;
164
- Plaintext?: {
165
- unfilled: string;
166
- notSelected: string;
167
- notUploaded: string;
168
- } | undefined;
169
- Pagination?: {
170
- more: string;
171
- prev: string;
172
- next: string;
173
- first: string;
174
- last: string;
175
- limit: string;
176
- total: string;
177
- skip: string;
178
- } | undefined;
179
- Calendar?: {
180
- sunday: string;
181
- monday: string;
182
- tuesday: string;
183
- wednesday: string;
184
- thursday: string;
185
- friday: string;
186
- saturday: string;
187
- ok: string;
188
- today: string;
189
- yesterday: string;
190
- hours: string;
191
- minutes: string;
192
- seconds: string;
193
- formattedMonthPattern: string;
194
- formattedDayPattern: string;
195
- dateLocale: any;
196
- } | undefined;
197
- DatePicker?: {
198
- sunday: string;
199
- monday: string;
200
- tuesday: string;
201
- wednesday: string;
202
- thursday: string;
203
- friday: string;
204
- saturday: string;
205
- ok: string;
206
- today: string;
207
- yesterday: string;
208
- hours: string;
209
- minutes: string;
210
- seconds: string;
211
- formattedMonthPattern: string;
212
- formattedDayPattern: string;
213
- dateLocale: any;
214
- } | undefined;
215
- DateRangePicker?: {
216
- last7Days: string;
217
- sunday: string;
218
- monday: string;
219
- tuesday: string;
220
- wednesday: string;
221
- thursday: string;
222
- friday: string;
223
- saturday: string;
224
- ok: string;
225
- today: string;
226
- yesterday: string;
227
- hours: string;
228
- minutes: string;
229
- seconds: string;
230
- formattedMonthPattern: string;
231
- formattedDayPattern: string;
232
- dateLocale: any;
233
- } | undefined;
234
- Picker?: {
235
- noResultsText: string;
236
- placeholder: string;
237
- searchPlaceholder: string;
238
- checkAll: string;
239
- } | undefined;
240
- InputPicker?: {
241
- newItem: string;
242
- /**
243
- * A Map of toast containers
244
- */
245
- createOption: string;
246
- } | undefined;
247
- Uploader?: {
248
- inited: string;
249
- progress: string;
250
- error: string;
251
- complete: string;
252
- emptyFile: string;
253
- upload: string;
254
- } | undefined;
255
- CloseButton?: {
256
- closeLabel: string;
257
- } | undefined;
258
- Breadcrumb?: {
259
- expandText: string;
260
- } | undefined;
261
- Toggle?: {
262
- on: string;
263
- off: string;
264
- } | undefined;
265
- }>>;
266
159
  declare const CustomProvider: (props: Omit<CustomProviderProps, 'toasters'>) => JSX.Element;
267
- export { CustomContext, Consumer as CustomConsumer };
160
+ export { CustomContext };
268
161
  export default CustomProvider;
@@ -6,8 +6,6 @@ import { addClass, removeClass, canUseDOM } from '../DOMHelper';
6
6
  import ToastContainer, { toastPlacements } from '../toaster/ToastContainer';
7
7
  import { usePortal } from '../utils';
8
8
  var CustomContext = /*#__PURE__*/React.createContext({});
9
- var Consumer = CustomContext.Consumer,
10
- Provider = CustomContext.Provider;
11
9
  var themes = ['light', 'dark', 'high-contrast'];
12
10
 
13
11
  var CustomProvider = function CustomProvider(props) {
@@ -44,7 +42,7 @@ var CustomProvider = function CustomProvider(props) {
44
42
  });
45
43
  }
46
44
  }, [classPrefix, theme]);
47
- return /*#__PURE__*/React.createElement(Provider, {
45
+ return /*#__PURE__*/React.createElement(CustomContext.Provider, {
48
46
  value: value
49
47
  }, children, /*#__PURE__*/React.createElement(Portal, null, /*#__PURE__*/React.createElement("div", {
50
48
  className: "rs-toast-provider"
@@ -59,5 +57,5 @@ var CustomProvider = function CustomProvider(props) {
59
57
  }))));
60
58
  };
61
59
 
62
- export { CustomContext, Consumer as CustomConsumer };
60
+ export { CustomContext };
63
61
  export default CustomProvider;
@@ -1,5 +1,5 @@
1
- import CustomProvider, { CustomContext, CustomConsumer } from './CustomProvider';
1
+ import CustomProvider, { CustomContext } from './CustomProvider';
2
2
  import FormattedDate from './FormattedDate';
3
- export { CustomContext, CustomConsumer, FormattedDate };
3
+ export { CustomContext, FormattedDate };
4
4
  export type { CustomProviderProps } from './CustomProvider';
5
5
  export default CustomProvider;
@@ -1,4 +1,4 @@
1
- import CustomProvider, { CustomContext, CustomConsumer } from './CustomProvider';
1
+ import CustomProvider, { CustomContext } from './CustomProvider';
2
2
  import FormattedDate from './FormattedDate';
3
- export { CustomContext, CustomConsumer, FormattedDate };
3
+ export { CustomContext, FormattedDate };
4
4
  export default CustomProvider;
@@ -138,17 +138,17 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
138
138
  * If params `value` is not passed, it defaults to [new Date(), addMonth(new Date(), 1)].
139
139
  */
140
140
 
141
- var updateCalendarDateRange = useCallback(function (value, calendarKey) {
142
- var nextValue = value;
141
+ var updateCalendarDateRange = useCallback(function (selectedDate, calendarKey) {
142
+ var nextValue = selectedDate;
143
143
  var shouldRenderTime = DateUtils.shouldRenderTime,
144
144
  getHours = DateUtils.getHours,
145
145
  getMinutes = DateUtils.getMinutes,
146
146
  getSeconds = DateUtils.getSeconds,
147
147
  set = DateUtils.set;
148
148
 
149
- if (shouldRenderTime(formatStr) && calendarKey === undefined && (value === null || value === void 0 ? void 0 : value.length) === 1 && (defaultCalendarValue === null || defaultCalendarValue === void 0 ? void 0 : defaultCalendarValue.length) === 2) {
150
- var calendarEndDate = (calendarDate === null || calendarDate === void 0 ? void 0 : calendarDate[1]) || defaultCalendarValue[1];
151
- var _startDate = value[0]; // When updating the start date, the time of the end date should keep the time set by the user by default.
149
+ if (shouldRenderTime(formatStr) && calendarKey === undefined && (selectedDate === null || selectedDate === void 0 ? void 0 : selectedDate.length) === 1) {
150
+ var calendarEndDate = (calendarDate === null || calendarDate === void 0 ? void 0 : calendarDate[1]) || (defaultCalendarValue === null || defaultCalendarValue === void 0 ? void 0 : defaultCalendarValue[1]);
151
+ var _startDate = selectedDate[0]; // When updating the start date, the time of the end date should keep the time set by the user by default.
152
152
 
153
153
  var _endDate = set(addMonths(_startDate, 1), {
154
154
  hours: getHours(calendarEndDate),
@@ -1,8 +1,8 @@
1
1
  import React from 'react';
2
2
  import DisclosureButton from './DisclosureButton';
3
3
  import DisclosureContent from './DisclosureContent';
4
- export declare type DisclosureTrigger = 'click' | 'mouseover';
5
- export interface DisclosureRenderProps extends Pick<React.HTMLAttributes<HTMLElement>, 'onMouseOver' | 'onMouseOut'> {
4
+ export declare type DisclosureTrigger = 'click' | 'hover';
5
+ export interface DisclosureRenderProps extends Pick<React.HTMLAttributes<HTMLElement>, 'onMouseEnter' | 'onMouseLeave'> {
6
6
  open: boolean;
7
7
  }
8
8
  export interface DisclosureProps {
@@ -59,7 +59,7 @@ var Disclosure = /*#__PURE__*/React.memo(function (props) {
59
59
  });
60
60
  }
61
61
  });
62
- var onMouseOver = useCallback(function (event) {
62
+ var onMouseEnter = useCallback(function (event) {
63
63
  if (!open) {
64
64
  dispatch({
65
65
  type: DisclosureActionTypes.Show
@@ -67,7 +67,7 @@ var Disclosure = /*#__PURE__*/React.memo(function (props) {
67
67
  onToggle === null || onToggle === void 0 ? void 0 : onToggle(true, event);
68
68
  }
69
69
  }, [open, dispatch, onToggle]);
70
- var onMouseOut = useCallback(function (event) {
70
+ var onMouseLeave = useCallback(function (event) {
71
71
  if (open) {
72
72
  dispatch({
73
73
  type: DisclosureActionTypes.Hide
@@ -98,13 +98,13 @@ var Disclosure = /*#__PURE__*/React.memo(function (props) {
98
98
  open: open
99
99
  };
100
100
 
101
- if (trigger.includes('mouseover')) {
102
- renderProps.onMouseOver = onMouseOver;
103
- renderProps.onMouseOut = onMouseOut;
101
+ if (trigger.includes('hover')) {
102
+ renderProps.onMouseEnter = onMouseEnter;
103
+ renderProps.onMouseLeave = onMouseLeave;
104
104
  }
105
105
 
106
106
  return renderProps;
107
- }, [open, trigger, onMouseOver, onMouseOut]);
107
+ }, [open, trigger, onMouseEnter, onMouseLeave]);
108
108
  return /*#__PURE__*/React.createElement(DisclosureContext.Provider, {
109
109
  value: contextValue
110
110
  }, children(renderProps, containerElementRef));
@@ -112,6 +112,7 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
112
112
  var targetRef = useRef(null);
113
113
  var triggerRef = useRef(null);
114
114
  var inputRef = useRef();
115
+ var listRef = useRef(null);
115
116
 
116
117
  var _useCustom = useCustom(['Picker', 'InputPicker'], overrideLocale),
117
118
  locale = _useCustom.locale;
@@ -403,7 +404,8 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
403
404
  usePublicMethods(ref, {
404
405
  triggerRef: triggerRef,
405
406
  overlayRef: overlayRef,
406
- targetRef: targetRef
407
+ targetRef: targetRef,
408
+ listRef: listRef
407
409
  });
408
410
  /**
409
411
  * Remove the last item, after pressing the back key on the keyboard.
@@ -605,6 +607,7 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
605
607
  var menu = items.length ? /*#__PURE__*/React.createElement(DropdownMenu, {
606
608
  id: id ? id + "-listbox" : undefined,
607
609
  listProps: listProps,
610
+ listRef: listRef,
608
611
  disabledItemValues: disabledItemValues,
609
612
  valueKey: valueKey,
610
613
  labelKey: labelKey,
@@ -1,12 +1,14 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
- import React from 'react';
3
+ import React, { useContext } from 'react';
4
4
  import PropTypes from 'prop-types';
5
5
  import { useClassNames } from '../utils';
6
6
  import { ModalContext } from './ModalContext';
7
7
  import IconButton from '../IconButton';
8
8
  import Close from '@rsuite/icons/Close';
9
9
  var ModalBody = /*#__PURE__*/React.forwardRef(function (props, ref) {
10
+ var _context$getBodyStyle;
11
+
10
12
  var _props$as = props.as,
11
13
  Component = _props$as === void 0 ? 'div' : _props$as,
12
14
  _props$classPrefix = props.classPrefix,
@@ -22,22 +24,19 @@ var ModalBody = /*#__PURE__*/React.forwardRef(function (props, ref) {
22
24
  prefix = _useClassNames.prefix;
23
25
 
24
26
  var classes = merge(className, withClassPrefix());
25
- return /*#__PURE__*/React.createElement(ModalContext.Consumer, null, function (context) {
26
- var _context$getBodyStyle;
27
-
28
- var bodyStyles = context === null || context === void 0 ? void 0 : (_context$getBodyStyle = context.getBodyStyles) === null || _context$getBodyStyle === void 0 ? void 0 : _context$getBodyStyle.call(context);
29
- return /*#__PURE__*/React.createElement(Component, _extends({}, rest, {
30
- ref: ref,
31
- style: _extends({}, bodyStyles, style),
32
- className: classes
33
- }), (context === null || context === void 0 ? void 0 : context.isDrawer) && /*#__PURE__*/React.createElement(IconButton, {
34
- icon: /*#__PURE__*/React.createElement(Close, null),
35
- appearance: "subtle",
36
- size: "sm",
37
- className: prefix('close'),
38
- onClick: context === null || context === void 0 ? void 0 : context.onModalClose
39
- }), children);
40
- });
27
+ var context = useContext(ModalContext);
28
+ var bodyStyles = context === null || context === void 0 ? void 0 : (_context$getBodyStyle = context.getBodyStyles) === null || _context$getBodyStyle === void 0 ? void 0 : _context$getBodyStyle.call(context);
29
+ return /*#__PURE__*/React.createElement(Component, _extends({}, rest, {
30
+ ref: ref,
31
+ style: _extends({}, bodyStyles, style),
32
+ className: classes
33
+ }), (context === null || context === void 0 ? void 0 : context.isDrawer) && /*#__PURE__*/React.createElement(IconButton, {
34
+ icon: /*#__PURE__*/React.createElement(Close, null),
35
+ appearance: "subtle",
36
+ size: "sm",
37
+ className: prefix('close'),
38
+ onClick: context === null || context === void 0 ? void 0 : context.onModalClose
39
+ }), children);
41
40
  });
42
41
  ModalBody.displayName = 'ModalBody';
43
42
  ModalBody.propTypes = {