rsuite 5.50.0 → 5.51.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 (177) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/CheckTreePicker/styles/index.less +3 -3
  3. package/DatePicker/styles/index.less +1 -1
  4. package/Form/styles/mixin.less +1 -2
  5. package/InputGroup/styles/index.less +0 -14
  6. package/InputPicker/styles/index.less +1 -1
  7. package/Picker/styles/index.less +2 -2
  8. package/Picker/styles/mixin.less +3 -3
  9. package/TagInput/styles/index.less +1 -1
  10. package/TagPicker/styles/index.less +5 -1
  11. package/TreePicker/styles/index.less +2 -2
  12. package/cjs/@types/common.d.ts +8 -0
  13. package/cjs/AutoComplete/AutoComplete.js +14 -11
  14. package/cjs/AutoComplete/Combobox.d.ts +8 -0
  15. package/cjs/AutoComplete/Combobox.js +31 -0
  16. package/cjs/Calendar/CalendarContainer.js +35 -37
  17. package/cjs/Cascader/Cascader.js +12 -11
  18. package/cjs/Cascader/DropdownMenu.d.ts +3 -20
  19. package/cjs/Cascader/DropdownMenu.js +48 -48
  20. package/cjs/Cascader/TreeView.d.ts +24 -0
  21. package/cjs/Cascader/TreeView.js +174 -0
  22. package/cjs/CheckPicker/CheckPicker.js +9 -8
  23. package/cjs/CheckTreePicker/CheckTreeNode.d.ts +2 -2
  24. package/cjs/CheckTreePicker/CheckTreeNode.js +31 -59
  25. package/cjs/CheckTreePicker/CheckTreePicker.js +20 -20
  26. package/cjs/DatePicker/DatePicker.js +5 -6
  27. package/cjs/DateRangePicker/DateRangePicker.js +3 -4
  28. package/cjs/Form/Form.d.ts +14 -0
  29. package/cjs/Form/Form.js +39 -30
  30. package/cjs/Form/FormContext.d.ts +1 -0
  31. package/cjs/FormControl/FormControl.js +40 -18
  32. package/cjs/FormGroup/FormGroup.js +2 -1
  33. package/cjs/InputPicker/InputPicker.js +46 -29
  34. package/cjs/InputPicker/InputSearch.js +3 -15
  35. package/cjs/InputPicker/TagList.d.ts +3 -0
  36. package/cjs/InputPicker/TagList.js +29 -0
  37. package/cjs/InputPicker/TextBox.d.ts +18 -0
  38. package/cjs/InputPicker/TextBox.js +48 -0
  39. package/cjs/MultiCascader/MultiCascader.js +13 -10
  40. package/cjs/MultiCascader/{DropdownMenu.d.ts → TreeView.d.ts} +3 -3
  41. package/cjs/MultiCascader/{DropdownMenu.js → TreeView.js} +77 -74
  42. package/{esm/Picker/DropdownMenuCheckItem.d.ts → cjs/Picker/ListCheckItem.d.ts} +3 -3
  43. package/cjs/Picker/{DropdownMenuCheckItem.js → ListCheckItem.js} +14 -30
  44. package/{esm/Picker/DropdownMenuItem.d.ts → cjs/Picker/ListItem.d.ts} +4 -4
  45. package/cjs/Picker/{DropdownMenuItem.js → ListItem.js} +15 -24
  46. package/cjs/Picker/ListItemGroup.d.ts +6 -0
  47. package/cjs/Picker/{DropdownMenuGroup.js → ListItemGroup.js} +3 -9
  48. package/cjs/Picker/Listbox.d.ts +35 -0
  49. package/cjs/Picker/{DropdownMenu.js → Listbox.js} +49 -64
  50. package/cjs/Picker/{PickerOverlay.d.ts → PickerPopup.d.ts} +3 -3
  51. package/cjs/Picker/{PickerOverlay.js → PickerPopup.js} +9 -7
  52. package/cjs/Picker/PickerToggle.d.ts +1 -1
  53. package/cjs/Picker/PickerToggle.js +16 -9
  54. package/cjs/Picker/PickerToggleTrigger.d.ts +15 -0
  55. package/cjs/Picker/PickerToggleTrigger.js +21 -5
  56. package/cjs/Picker/SearchBar.js +7 -9
  57. package/cjs/Picker/TreeView.d.ts +7 -0
  58. package/cjs/Picker/TreeView.js +31 -0
  59. package/cjs/Picker/hooks/index.d.ts +6 -0
  60. package/cjs/Picker/hooks/index.js +18 -0
  61. package/cjs/Picker/hooks/useCombobox.d.ts +7 -0
  62. package/cjs/Picker/hooks/useCombobox.js +22 -0
  63. package/cjs/Picker/hooks/useFocusItemValue.d.ts +30 -0
  64. package/cjs/Picker/hooks/useFocusItemValue.js +246 -0
  65. package/cjs/Picker/hooks/usePickerClassName.d.ts +21 -0
  66. package/cjs/Picker/hooks/usePickerClassName.js +39 -0
  67. package/cjs/Picker/{usePickerRef.d.ts → hooks/usePickerRef.d.ts} +2 -2
  68. package/cjs/Picker/{usePickerRef.js → hooks/usePickerRef.js} +1 -1
  69. package/cjs/Picker/hooks/useSearch.d.ts +18 -0
  70. package/cjs/Picker/hooks/useSearch.js +57 -0
  71. package/cjs/Picker/hooks/useToggleKeyDownEvent.d.ts +25 -0
  72. package/cjs/Picker/hooks/useToggleKeyDownEvent.js +101 -0
  73. package/cjs/Picker/index.d.ts +7 -6
  74. package/cjs/Picker/index.js +26 -19
  75. package/cjs/Picker/propTypes.d.ts +0 -6
  76. package/cjs/Picker/propTypes.js +0 -5
  77. package/cjs/Picker/utils.d.ts +2 -96
  78. package/cjs/Picker/utils.js +1 -406
  79. package/cjs/SelectPicker/SelectPicker.js +8 -8
  80. package/cjs/TagInput/index.js +4 -0
  81. package/cjs/TreePicker/TreeNode.d.ts +2 -2
  82. package/cjs/TreePicker/TreeNode.js +22 -56
  83. package/cjs/TreePicker/TreePicker.js +19 -20
  84. package/dist/rsuite-no-reset-rtl.css +109 -117
  85. package/dist/rsuite-no-reset-rtl.min.css +1 -1
  86. package/dist/rsuite-no-reset-rtl.min.css.map +1 -1
  87. package/dist/rsuite-no-reset.css +109 -117
  88. package/dist/rsuite-no-reset.min.css +1 -1
  89. package/dist/rsuite-no-reset.min.css.map +1 -1
  90. package/dist/rsuite-rtl.css +109 -117
  91. package/dist/rsuite-rtl.min.css +1 -1
  92. package/dist/rsuite-rtl.min.css.map +1 -1
  93. package/dist/rsuite.css +109 -117
  94. package/dist/rsuite.js +184 -74
  95. package/dist/rsuite.js.map +1 -1
  96. package/dist/rsuite.min.css +1 -1
  97. package/dist/rsuite.min.css.map +1 -1
  98. package/dist/rsuite.min.js +1 -1
  99. package/dist/rsuite.min.js.map +1 -1
  100. package/esm/@types/common.d.ts +8 -0
  101. package/esm/AutoComplete/AutoComplete.js +15 -12
  102. package/esm/AutoComplete/Combobox.d.ts +8 -0
  103. package/esm/AutoComplete/Combobox.js +25 -0
  104. package/esm/Calendar/CalendarContainer.js +37 -39
  105. package/esm/Cascader/Cascader.js +13 -12
  106. package/esm/Cascader/DropdownMenu.d.ts +3 -20
  107. package/esm/Cascader/DropdownMenu.js +50 -49
  108. package/esm/Cascader/TreeView.d.ts +24 -0
  109. package/esm/Cascader/TreeView.js +167 -0
  110. package/esm/CheckPicker/CheckPicker.js +10 -9
  111. package/esm/CheckTreePicker/CheckTreeNode.d.ts +2 -2
  112. package/esm/CheckTreePicker/CheckTreeNode.js +33 -61
  113. package/esm/CheckTreePicker/CheckTreePicker.js +21 -21
  114. package/esm/DatePicker/DatePicker.js +5 -6
  115. package/esm/DateRangePicker/DateRangePicker.js +3 -4
  116. package/esm/Form/Form.d.ts +14 -0
  117. package/esm/Form/Form.js +41 -32
  118. package/esm/Form/FormContext.d.ts +1 -0
  119. package/esm/FormControl/FormControl.js +39 -17
  120. package/esm/FormGroup/FormGroup.js +3 -2
  121. package/esm/InputPicker/InputPicker.js +47 -30
  122. package/esm/InputPicker/InputSearch.js +4 -15
  123. package/esm/InputPicker/TagList.d.ts +3 -0
  124. package/esm/InputPicker/TagList.js +23 -0
  125. package/esm/InputPicker/TextBox.d.ts +18 -0
  126. package/esm/InputPicker/TextBox.js +42 -0
  127. package/esm/MultiCascader/MultiCascader.js +14 -11
  128. package/esm/MultiCascader/{DropdownMenu.d.ts → TreeView.d.ts} +3 -3
  129. package/esm/MultiCascader/{DropdownMenu.js → TreeView.js} +79 -75
  130. package/{cjs/Picker/DropdownMenuCheckItem.d.ts → esm/Picker/ListCheckItem.d.ts} +3 -3
  131. package/esm/Picker/{DropdownMenuCheckItem.js → ListCheckItem.js} +15 -30
  132. package/{cjs/Picker/DropdownMenuItem.d.ts → esm/Picker/ListItem.d.ts} +4 -4
  133. package/esm/Picker/{DropdownMenuItem.js → ListItem.js} +16 -24
  134. package/esm/Picker/ListItemGroup.d.ts +6 -0
  135. package/esm/Picker/{DropdownMenuGroup.js → ListItemGroup.js} +3 -9
  136. package/esm/Picker/Listbox.d.ts +35 -0
  137. package/esm/Picker/{DropdownMenu.js → Listbox.js} +50 -64
  138. package/esm/Picker/{PickerOverlay.d.ts → PickerPopup.d.ts} +3 -3
  139. package/esm/Picker/{PickerOverlay.js → PickerPopup.js} +10 -8
  140. package/esm/Picker/PickerToggle.d.ts +1 -1
  141. package/esm/Picker/PickerToggle.js +16 -9
  142. package/esm/Picker/PickerToggleTrigger.d.ts +15 -0
  143. package/esm/Picker/PickerToggleTrigger.js +20 -5
  144. package/esm/Picker/SearchBar.js +8 -9
  145. package/esm/Picker/TreeView.d.ts +7 -0
  146. package/esm/Picker/TreeView.js +25 -0
  147. package/esm/Picker/hooks/index.d.ts +6 -0
  148. package/esm/Picker/hooks/index.js +7 -0
  149. package/esm/Picker/hooks/useCombobox.d.ts +7 -0
  150. package/esm/Picker/hooks/useCombobox.js +17 -0
  151. package/esm/Picker/hooks/useFocusItemValue.d.ts +30 -0
  152. package/esm/Picker/hooks/useFocusItemValue.js +240 -0
  153. package/esm/Picker/hooks/usePickerClassName.d.ts +21 -0
  154. package/esm/Picker/hooks/usePickerClassName.js +33 -0
  155. package/esm/Picker/{usePickerRef.d.ts → hooks/usePickerRef.d.ts} +2 -2
  156. package/esm/Picker/{usePickerRef.js → hooks/usePickerRef.js} +1 -1
  157. package/esm/Picker/hooks/useSearch.d.ts +18 -0
  158. package/esm/Picker/hooks/useSearch.js +51 -0
  159. package/esm/Picker/hooks/useToggleKeyDownEvent.d.ts +25 -0
  160. package/esm/Picker/hooks/useToggleKeyDownEvent.js +96 -0
  161. package/esm/Picker/index.d.ts +7 -6
  162. package/esm/Picker/index.js +7 -6
  163. package/esm/Picker/propTypes.d.ts +0 -6
  164. package/esm/Picker/propTypes.js +0 -5
  165. package/esm/Picker/utils.d.ts +2 -96
  166. package/esm/Picker/utils.js +2 -401
  167. package/esm/SelectPicker/SelectPicker.js +9 -9
  168. package/esm/TagInput/index.js +4 -0
  169. package/esm/TreePicker/TreeNode.d.ts +2 -2
  170. package/esm/TreePicker/TreeNode.js +24 -58
  171. package/esm/TreePicker/TreePicker.js +20 -21
  172. package/package.json +1 -1
  173. package/styles/variables.less +1 -3
  174. package/cjs/Picker/DropdownMenu.d.ts +0 -59
  175. package/cjs/Picker/DropdownMenuGroup.d.ts +0 -6
  176. package/esm/Picker/DropdownMenu.d.ts +0 -59
  177. package/esm/Picker/DropdownMenuGroup.d.ts +0 -6
@@ -1,12 +1,11 @@
1
1
  'use client';
2
2
  import _extends from "@babel/runtime/helpers/esm/extends";
3
3
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
4
- import React, { forwardRef, useCallback } from 'react';
5
- import PropTypes from 'prop-types';
4
+ import React, { forwardRef } from 'react';
6
5
  import hasClass from 'dom-lib/hasClass';
7
6
  import ArrowDown from '@rsuite/icons/legacy/ArrowDown';
8
7
  import Spinner from '@rsuite/icons/legacy/Spinner';
9
- import { useClassNames } from '../utils';
8
+ import { useClassNames, useEventCallback } from '../utils';
10
9
  import { getTreeNodeIndent, stringifyTreeNodeLabel } from '../utils/treeUtils';
11
10
  var TreeNode = /*#__PURE__*/forwardRef(function (_ref, ref) {
12
11
  var _ref$as = _ref.as,
@@ -40,20 +39,20 @@ var TreeNode = /*#__PURE__*/forwardRef(function (_ref, ref) {
40
39
  onDragEnd = _ref.onDragEnd,
41
40
  onDrop = _ref.onDrop,
42
41
  onExpand = _ref.onExpand,
43
- onRenderTreeIcon = _ref.onRenderTreeIcon,
44
- onRenderTreeNode = _ref.onRenderTreeNode,
45
- rest = _objectWithoutPropertiesLoose(_ref, ["as", "rtl", "label", "layer", "style", "active", "loading", "nodeData", "className", "classPrefix", "disabled", "visible", "draggable", "expand", "focus", "hasChildren", "dragging", "dragOver", "dragOverTop", "dragOverBottom", "onSelect", "onDragStart", "onDragOver", "onDragEnter", "onDragLeave", "onDragEnd", "onDrop", "onExpand", "onRenderTreeIcon", "onRenderTreeNode"]);
42
+ renderTreeIcon = _ref.renderTreeIcon,
43
+ renderTreeNode = _ref.renderTreeNode,
44
+ rest = _objectWithoutPropertiesLoose(_ref, ["as", "rtl", "label", "layer", "style", "active", "loading", "nodeData", "className", "classPrefix", "disabled", "visible", "draggable", "expand", "focus", "hasChildren", "dragging", "dragOver", "dragOverTop", "dragOverBottom", "onSelect", "onDragStart", "onDragOver", "onDragEnter", "onDragLeave", "onDragEnd", "onDrop", "onExpand", "renderTreeIcon", "renderTreeNode"]);
46
45
  var _useClassNames = useClassNames(classPrefix),
47
46
  prefix = _useClassNames.prefix,
48
47
  merge = _useClassNames.merge,
49
48
  withClassPrefix = _useClassNames.withClassPrefix;
50
- var handleExpand = useCallback(function (event) {
49
+ var handleExpand = useEventCallback(function (event) {
51
50
  var _event$nativeEvent, _event$nativeEvent$st;
52
51
  // stop propagation when using custom loading icon
53
52
  event === null || event === void 0 ? void 0 : (_event$nativeEvent = event.nativeEvent) === null || _event$nativeEvent === void 0 ? void 0 : (_event$nativeEvent$st = _event$nativeEvent.stopImmediatePropagation) === null || _event$nativeEvent$st === void 0 ? void 0 : _event$nativeEvent$st.call(_event$nativeEvent);
54
53
  onExpand === null || onExpand === void 0 ? void 0 : onExpand(nodeData);
55
- }, [nodeData, onExpand]);
56
- var handleSelect = useCallback(function (event) {
54
+ });
55
+ var handleSelect = useEventCallback(function (event) {
57
56
  if (disabled) {
58
57
  return;
59
58
  }
@@ -63,33 +62,33 @@ var TreeNode = /*#__PURE__*/forwardRef(function (_ref, ref) {
63
62
  }
64
63
  }
65
64
  onSelect === null || onSelect === void 0 ? void 0 : onSelect(nodeData, event);
66
- }, [nodeData, disabled, prefix, onSelect]);
67
- var handleDragStart = useCallback(function (event) {
65
+ });
66
+ var handleDragStart = useEventCallback(function (event) {
68
67
  onDragStart === null || onDragStart === void 0 ? void 0 : onDragStart(nodeData, event);
69
- }, [nodeData, onDragStart]);
70
- var handleDragEnter = useCallback(function (event) {
68
+ });
69
+ var handleDragEnter = useEventCallback(function (event) {
71
70
  event.preventDefault();
72
71
  event.stopPropagation();
73
72
  onDragEnter === null || onDragEnter === void 0 ? void 0 : onDragEnter(nodeData, event);
74
- }, [nodeData, onDragEnter]);
75
- var handleDragOver = useCallback(function (event) {
73
+ });
74
+ var handleDragOver = useEventCallback(function (event) {
76
75
  event.preventDefault();
77
76
  event.stopPropagation();
78
77
  onDragOver === null || onDragOver === void 0 ? void 0 : onDragOver(nodeData, event);
79
- }, [nodeData, onDragOver]);
80
- var handleDragLeave = useCallback(function (event) {
78
+ });
79
+ var handleDragLeave = useEventCallback(function (event) {
81
80
  event.stopPropagation();
82
81
  onDragLeave === null || onDragLeave === void 0 ? void 0 : onDragLeave(nodeData, event);
83
- }, [nodeData, onDragLeave]);
84
- var handleDragEnd = useCallback(function (event) {
82
+ });
83
+ var handleDragEnd = useEventCallback(function (event) {
85
84
  event.stopPropagation();
86
85
  onDragEnd === null || onDragEnd === void 0 ? void 0 : onDragEnd(nodeData, event);
87
- }, [nodeData, onDragEnd]);
88
- var handleDrop = useCallback(function (event) {
86
+ });
87
+ var handleDrop = useEventCallback(function (event) {
89
88
  event.preventDefault();
90
89
  event.stopPropagation();
91
90
  onDrop === null || onDrop === void 0 ? void 0 : onDrop(nodeData, event);
92
- }, [nodeData, onDrop]);
91
+ });
93
92
  var renderIcon = function renderIcon() {
94
93
  var classes = prefix('expand-icon', 'icon', {
95
94
  expanded: expand
@@ -104,8 +103,8 @@ var TreeNode = /*#__PURE__*/forwardRef(function (_ref, ref) {
104
103
  spin: true
105
104
  }));
106
105
  }
107
- if (nodeData !== undefined && typeof onRenderTreeIcon === 'function') {
108
- var customIcon = onRenderTreeIcon(nodeData);
106
+ if (nodeData !== undefined && typeof renderTreeIcon === 'function') {
107
+ var customIcon = renderTreeIcon(nodeData);
109
108
  expandIcon = customIcon !== null ? /*#__PURE__*/React.createElement("div", {
110
109
  className: prefix('custom-icon')
111
110
  }, customIcon) : expandIcon;
@@ -135,7 +134,7 @@ var TreeNode = /*#__PURE__*/forwardRef(function (_ref, ref) {
135
134
  onClick: handleSelect
136
135
  }, /*#__PURE__*/React.createElement("span", {
137
136
  className: contentClasses
138
- }, onRenderTreeNode ? onRenderTreeNode(nodeData) : label));
137
+ }, renderTreeNode ? renderTreeNode(nodeData) : label));
139
138
  };
140
139
  var classes = merge(className, withClassPrefix({
141
140
  disabled: disabled,
@@ -165,37 +164,4 @@ var TreeNode = /*#__PURE__*/forwardRef(function (_ref, ref) {
165
164
  }), renderIcon(), renderLabel()) : null;
166
165
  });
167
166
  TreeNode.displayName = 'TreePickerNode';
168
- TreeNode.propTypes = {
169
- as: PropTypes.elementType,
170
- rtl: PropTypes.bool,
171
- focus: PropTypes.bool,
172
- layer: PropTypes.number,
173
- value: PropTypes.any,
174
- label: PropTypes.any,
175
- expand: PropTypes.bool,
176
- active: PropTypes.bool,
177
- loading: PropTypes.bool,
178
- visible: PropTypes.bool,
179
- nodeData: PropTypes.any,
180
- disabled: PropTypes.bool,
181
- draggable: PropTypes.bool,
182
- dragging: PropTypes.bool,
183
- dragOver: PropTypes.bool,
184
- dragOverTop: PropTypes.bool,
185
- dragOverBottom: PropTypes.bool,
186
- hasChildren: PropTypes.bool,
187
- className: PropTypes.string,
188
- classPrefix: PropTypes.string,
189
- style: PropTypes.object,
190
- onExpand: PropTypes.func,
191
- onSelect: PropTypes.func,
192
- onRenderTreeIcon: PropTypes.func,
193
- onRenderTreeNode: PropTypes.func,
194
- onDragStart: PropTypes.func,
195
- onDragEnter: PropTypes.func,
196
- onDragOver: PropTypes.func,
197
- onDragLeave: PropTypes.func,
198
- onDragEnd: PropTypes.func,
199
- onDrop: PropTypes.func
200
- };
201
167
  export default TreeNode;
@@ -13,7 +13,7 @@ import TreeNode from './TreeNode';
13
13
  import { createDragPreview, getKeyParentMap, getPathTowardsItem, getTreeNodeIndent, removeDragPreview, stringifyTreeNodeLabel } from '../utils/treeUtils';
14
14
  import { createChainedFunction, useClassNames, useCustom, useControlled, useEventCallback, TREE_NODE_DROP_POSITION, KEY_VALUES, mergeRefs, shallowEqual } from '../utils';
15
15
  import { getExpandWhenSearching, hasVisibleChildren, getDragNodeKeys, calDropNodePosition, createUpdateTreeDataFunction, useTreeDrag, useFlattenTreeData, getTreeActiveNode, getDefaultExpandItemValues, useTreeNodeRefs, useTreeSearch, focusPreviousItem, getFocusableItems, focusNextItem, getActiveItem, toggleExpand, useGetTreeNodeChildren, focusToActiveTreeNode, leftArrowHandler, focusTreeNode, rightArrowHandler, isSearching } from '../utils/treeUtils';
16
- import { PickerToggle, PickerOverlay, SearchBar, PickerToggleTrigger, createConcatChildrenFunction, usePickerClassName, usePickerRef, onMenuKeyDown as _onMenuKeyDown, listPickerPropTypes, pickTriggerPropKeys, omitTriggerPropKeys, useToggleKeyDownEvent } from '../Picker';
16
+ import { PickerToggle, PickerPopup, TreeView, SearchBar, PickerToggleTrigger, createConcatChildrenFunction, usePickerClassName, usePickerRef, onMenuKeyDown as _onMenuKeyDown, listPickerPropTypes, pickTriggerPropKeys, omitTriggerPropKeys, useToggleKeyDownEvent } from '../Picker';
17
17
  import TreeContext from '../Tree/TreeContext';
18
18
  var emptyArray = [];
19
19
  var itemSize = function itemSize() {
@@ -279,8 +279,8 @@ var TreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
279
279
  onDragEnd: handleDragEnd,
280
280
  onDrop: handleDrop,
281
281
  onExpand: handleExpand,
282
- onRenderTreeNode: renderTreeNode,
283
- onRenderTreeIcon: renderTreeIcon
282
+ renderTreeNode: renderTreeNode,
283
+ renderTreeIcon: renderTreeIcon
284
284
  };
285
285
  };
286
286
 
@@ -467,8 +467,8 @@ var TreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
467
467
  var handleClean = useEventCallback(function (event) {
468
468
  var nullValue = null;
469
469
  var target = event.target;
470
- // exclude searchBar
471
- if (target.matches('div[role="searchbox"] > input') || disabled || !cleanable) {
470
+ // exclude searchbox
471
+ if (target.matches('input[role="searchbox"]') || disabled || !cleanable) {
472
472
  return;
473
473
  }
474
474
  if (!isControlled) {
@@ -542,7 +542,8 @@ var TreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
542
542
  return saveTreeNodeRef(_ref, node.refKey);
543
543
  }
544
544
  })), /*#__PURE__*/React.createElement("div", {
545
- className: treePrefix('children')
545
+ className: treePrefix('group'),
546
+ role: "group"
546
547
  }, nodes.map(function (child, i) {
547
548
  return renderNode(child, i, layer);
548
549
  }), showIndentLine && /*#__PURE__*/React.createElement("span", {
@@ -584,18 +585,14 @@ var TreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
584
585
  var _withTreeClassPrefix;
585
586
  var classes = withTreeClassPrefix((_withTreeClassPrefix = {}, _withTreeClassPrefix[className !== null && className !== void 0 ? className : ''] = inline, _withTreeClassPrefix.virtualized = virtualized, _withTreeClassPrefix));
586
587
  var formattedNodes = getFormattedNodes(renderNode);
587
- var styles = inline ? _extends({
588
- height: height
589
- }, style) : {};
590
- return /*#__PURE__*/React.createElement("div", {
591
- role: "tree",
592
- id: id ? id + "-listbox" : undefined,
588
+ return /*#__PURE__*/React.createElement(TreeView, {
589
+ treeRootClassName: treePrefix('root'),
593
590
  ref: inline ? root : treeView,
594
591
  className: classes,
595
- style: styles,
592
+ style: inline ? _extends({
593
+ height: height
594
+ }, style) : {},
596
595
  onKeyDown: inline ? handleTreeKeyDown : undefined
597
- }, /*#__PURE__*/React.createElement("div", {
598
- className: treePrefix('nodes')
599
596
  }, virtualized ? /*#__PURE__*/React.createElement(AutoSizer, {
600
597
  defaultHeight: inline ? height : menuMaxHeight,
601
598
  style: {
@@ -611,9 +608,9 @@ var TreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
611
608
  itemCount: formattedNodes.length,
612
609
  itemData: formattedNodes
613
610
  }, listProps), renderVirtualListNode);
614
- }) : formattedNodes));
611
+ }) : formattedNodes);
615
612
  };
616
- var renderDropdownMenu = function renderDropdownMenu(positionProps, speakerRef) {
613
+ var renderTreeView = function renderTreeView(positionProps, speakerRef) {
617
614
  var left = positionProps.left,
618
615
  top = positionProps.top,
619
616
  className = positionProps.className;
@@ -622,7 +619,7 @@ var TreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
622
619
  left: left,
623
620
  top: top
624
621
  });
625
- return /*#__PURE__*/React.createElement(PickerOverlay, {
622
+ return /*#__PURE__*/React.createElement(PickerPopup, {
626
623
  autoWidth: menuAutoWidth,
627
624
  className: classes,
628
625
  style: mergedMenuStyle,
@@ -666,6 +663,8 @@ var TreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
666
663
  return renderTree();
667
664
  }
668
665
  return /*#__PURE__*/React.createElement(PickerToggleTrigger, {
666
+ id: id,
667
+ popupType: "tree",
669
668
  pickerProps: _pick(props, pickTriggerPropKeys),
670
669
  ref: trigger,
671
670
  placement: placement,
@@ -673,13 +672,12 @@ var TreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
673
672
  onEntered: onEntered,
674
673
  onExit: createChainedFunction(onClose, onExit),
675
674
  onExited: createChainedFunction(handleClose, onExited),
676
- speaker: renderDropdownMenu
675
+ speaker: renderTreeView
677
676
  }, /*#__PURE__*/React.createElement(Component, {
678
677
  className: classes,
679
678
  style: style,
680
679
  ref: root
681
680
  }, /*#__PURE__*/React.createElement(PickerToggle, _extends({}, _omit(rest, [].concat(omitTriggerPropKeys, usedClassNamePropKeys, ['cascade'])), {
682
- id: id,
683
681
  ref: target,
684
682
  appearance: appearance,
685
683
  onKeyDown: onPickerKeydown,
@@ -690,7 +688,8 @@ var TreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
690
688
  hasValue: hasValidValue,
691
689
  active: active,
692
690
  placement: placement,
693
- inputValue: value
691
+ inputValue: value,
692
+ focusItemValue: focusItemValue
694
693
  }), selectedElement || locale.placeholder)));
695
694
  });
696
695
  TreePicker.displayName = 'TreePicker';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rsuite",
3
- "version": "5.50.0",
3
+ "version": "5.51.0",
4
4
  "description": "A suite of react components",
5
5
  "main": "cjs/index.js",
6
6
  "module": "esm/index.js",
@@ -849,12 +849,10 @@
849
849
  @zindex-date-range-picker-calendar-dropdown: 1;
850
850
  @zindex-date-range-picker-table-cell-content: 1;
851
851
  @zindex-badge-content: 1;
852
- @zindex-input: 2;
853
- @zindex-input-group-icon: 4;
854
852
  @zindex-dropdown: 5;
855
853
  @zindex-picker-toggle: 5; // The same with zindex-dropdown
856
854
  @zindex-picker-input: (@zindex-picker-toggle + 1); // Greater than picker toggle
857
- @zindex-picker-menu: (@zindex-picker-toggle + 2); // Greater than picker toggle and input
855
+ @zindex-picker-popup: (@zindex-picker-toggle + 2); // Greater than picker toggle and input
858
856
  @zindex-dropdown-a: 10;
859
857
  @zindex-list-helper: 99;
860
858
  @zindex-navbar: 1000;
@@ -1,59 +0,0 @@
1
- import React from 'react';
2
- import PropTypes from 'prop-types';
3
- import { ListProps, ListHandle } from '../Windowing';
4
- import { StandardProps, ItemDataType } from '../@types/common';
5
- export interface DropdownMenuProps<Multiple = false> extends StandardProps, Omit<React.HTMLAttributes<HTMLDivElement>, 'onSelect'> {
6
- classPrefix: string;
7
- data?: ItemDataType[];
8
- group?: boolean;
9
- groupBy?: string;
10
- disabledItemValues?: any[];
11
- activeItemValues?: any[];
12
- focusItemValue?: any;
13
- maxHeight?: number;
14
- valueKey?: string;
15
- labelKey?: string;
16
- className?: string;
17
- style?: React.CSSProperties;
18
- dropdownMenuItemAs: React.ElementType | string;
19
- dropdownMenuItemClassPrefix?: string;
20
- dropdownMenuItemProps?: any;
21
- rowHeight?: number;
22
- rowGroupHeight?: number;
23
- virtualized?: boolean;
24
- listProps?: Partial<ListProps>;
25
- listRef?: React.Ref<ListHandle>;
26
- /** Custom selected option */
27
- renderMenuItem?: (itemLabel: React.ReactNode, item: any) => React.ReactNode;
28
- renderMenuGroup?: (title: React.ReactNode, item: any) => React.ReactNode;
29
- onSelect?: Multiple extends true ? (value: any, item: any, event: React.MouseEvent, checked: boolean) => void : Multiple extends false ? (value: any, item: any, event: React.MouseEvent) => void : any;
30
- onGroupTitleClick?: (event: React.MouseEvent) => void;
31
- }
32
- export declare type DropdownMenuComponent = React.ForwardRefExoticComponent<DropdownMenuProps> & {
33
- <Multiple = false>(props: DropdownMenuProps<Multiple>): React.ReactElement | null;
34
- };
35
- declare const DropdownMenu: DropdownMenuComponent;
36
- export declare const dropdownMenuPropTypes: {
37
- classPrefix: PropTypes.Validator<string>;
38
- className: PropTypes.Requireable<string>;
39
- dropdownMenuItemAs: PropTypes.Validator<PropTypes.ReactComponentLike>;
40
- dropdownMenuItemClassPrefix: PropTypes.Requireable<string>;
41
- data: PropTypes.Requireable<any[]>;
42
- group: PropTypes.Requireable<boolean>;
43
- disabledItemValues: PropTypes.Requireable<any[]>;
44
- activeItemValues: PropTypes.Requireable<any[]>;
45
- focusItemValue: PropTypes.Requireable<any>;
46
- maxHeight: PropTypes.Requireable<number>;
47
- valueKey: PropTypes.Requireable<string>;
48
- labelKey: PropTypes.Requireable<string>;
49
- style: PropTypes.Requireable<object>;
50
- renderMenuItem: PropTypes.Requireable<(...args: any[]) => any>;
51
- renderMenuGroup: PropTypes.Requireable<(...args: any[]) => any>;
52
- onSelect: PropTypes.Requireable<(...args: any[]) => any>;
53
- onGroupTitleClick: PropTypes.Requireable<(...args: any[]) => any>;
54
- virtualized: PropTypes.Requireable<boolean>;
55
- listProps: PropTypes.Requireable<any>;
56
- rowHeight: PropTypes.Requireable<number>;
57
- rowGroupHeight: PropTypes.Requireable<number>;
58
- };
59
- export default DropdownMenu;
@@ -1,6 +0,0 @@
1
- import React from 'react';
2
- import { WithAsProps } from '../@types/common';
3
- export interface DropdownMenuGroupProps extends WithAsProps, React.HTMLAttributes<HTMLDivElement> {
4
- }
5
- declare const DropdownMenuGroup: React.ForwardRefExoticComponent<DropdownMenuGroupProps & React.RefAttributes<HTMLDivElement>>;
6
- export default DropdownMenuGroup;
@@ -1,59 +0,0 @@
1
- import React from 'react';
2
- import PropTypes from 'prop-types';
3
- import { ListProps, ListHandle } from '../Windowing';
4
- import { StandardProps, ItemDataType } from '../@types/common';
5
- export interface DropdownMenuProps<Multiple = false> extends StandardProps, Omit<React.HTMLAttributes<HTMLDivElement>, 'onSelect'> {
6
- classPrefix: string;
7
- data?: ItemDataType[];
8
- group?: boolean;
9
- groupBy?: string;
10
- disabledItemValues?: any[];
11
- activeItemValues?: any[];
12
- focusItemValue?: any;
13
- maxHeight?: number;
14
- valueKey?: string;
15
- labelKey?: string;
16
- className?: string;
17
- style?: React.CSSProperties;
18
- dropdownMenuItemAs: React.ElementType | string;
19
- dropdownMenuItemClassPrefix?: string;
20
- dropdownMenuItemProps?: any;
21
- rowHeight?: number;
22
- rowGroupHeight?: number;
23
- virtualized?: boolean;
24
- listProps?: Partial<ListProps>;
25
- listRef?: React.Ref<ListHandle>;
26
- /** Custom selected option */
27
- renderMenuItem?: (itemLabel: React.ReactNode, item: any) => React.ReactNode;
28
- renderMenuGroup?: (title: React.ReactNode, item: any) => React.ReactNode;
29
- onSelect?: Multiple extends true ? (value: any, item: any, event: React.MouseEvent, checked: boolean) => void : Multiple extends false ? (value: any, item: any, event: React.MouseEvent) => void : any;
30
- onGroupTitleClick?: (event: React.MouseEvent) => void;
31
- }
32
- export declare type DropdownMenuComponent = React.ForwardRefExoticComponent<DropdownMenuProps> & {
33
- <Multiple = false>(props: DropdownMenuProps<Multiple>): React.ReactElement | null;
34
- };
35
- declare const DropdownMenu: DropdownMenuComponent;
36
- export declare const dropdownMenuPropTypes: {
37
- classPrefix: PropTypes.Validator<string>;
38
- className: PropTypes.Requireable<string>;
39
- dropdownMenuItemAs: PropTypes.Validator<PropTypes.ReactComponentLike>;
40
- dropdownMenuItemClassPrefix: PropTypes.Requireable<string>;
41
- data: PropTypes.Requireable<any[]>;
42
- group: PropTypes.Requireable<boolean>;
43
- disabledItemValues: PropTypes.Requireable<any[]>;
44
- activeItemValues: PropTypes.Requireable<any[]>;
45
- focusItemValue: PropTypes.Requireable<any>;
46
- maxHeight: PropTypes.Requireable<number>;
47
- valueKey: PropTypes.Requireable<string>;
48
- labelKey: PropTypes.Requireable<string>;
49
- style: PropTypes.Requireable<object>;
50
- renderMenuItem: PropTypes.Requireable<(...args: any[]) => any>;
51
- renderMenuGroup: PropTypes.Requireable<(...args: any[]) => any>;
52
- onSelect: PropTypes.Requireable<(...args: any[]) => any>;
53
- onGroupTitleClick: PropTypes.Requireable<(...args: any[]) => any>;
54
- virtualized: PropTypes.Requireable<boolean>;
55
- listProps: PropTypes.Requireable<any>;
56
- rowHeight: PropTypes.Requireable<number>;
57
- rowGroupHeight: PropTypes.Requireable<number>;
58
- };
59
- export default DropdownMenu;
@@ -1,6 +0,0 @@
1
- import React from 'react';
2
- import { WithAsProps } from '../@types/common';
3
- export interface DropdownMenuGroupProps extends WithAsProps, React.HTMLAttributes<HTMLDivElement> {
4
- }
5
- declare const DropdownMenuGroup: React.ForwardRefExoticComponent<DropdownMenuGroupProps & React.RefAttributes<HTMLDivElement>>;
6
- export default DropdownMenuGroup;