rsuite 5.49.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 (233) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/Cascader/styles/index.less +4 -4
  3. package/CheckTreePicker/styles/index.less +3 -3
  4. package/DatePicker/styles/index.less +1 -1
  5. package/DateRangePicker/styles/index.less +15 -5
  6. package/Dropdown/styles/index.less +5 -4
  7. package/Dropdown/styles/mixin.less +0 -11
  8. package/Form/styles/mixin.less +1 -2
  9. package/InputGroup/styles/index.less +0 -14
  10. package/InputPicker/styles/index.less +1 -1
  11. package/Picker/styles/index.less +33 -26
  12. package/Picker/styles/mixin.less +20 -16
  13. package/README.md +4 -4
  14. package/TagInput/styles/index.less +2 -2
  15. package/TagPicker/styles/index.less +5 -1
  16. package/TreePicker/styles/index.less +2 -2
  17. package/cjs/@types/common.d.ts +8 -0
  18. package/cjs/AutoComplete/AutoComplete.js +39 -37
  19. package/cjs/AutoComplete/Combobox.d.ts +8 -0
  20. package/cjs/AutoComplete/Combobox.js +31 -0
  21. package/cjs/Calendar/Calendar.d.ts +5 -1
  22. package/cjs/Calendar/CalendarContainer.d.ts +5 -1
  23. package/cjs/Calendar/CalendarContainer.js +35 -37
  24. package/cjs/Cascader/Cascader.js +58 -59
  25. package/cjs/Cascader/DropdownMenu.d.ts +3 -20
  26. package/cjs/Cascader/DropdownMenu.js +48 -48
  27. package/cjs/Cascader/TreeView.d.ts +24 -0
  28. package/cjs/Cascader/TreeView.js +174 -0
  29. package/cjs/CheckPicker/CheckPicker.d.ts +2 -2
  30. package/cjs/CheckPicker/CheckPicker.js +42 -44
  31. package/cjs/CheckTreePicker/CheckTreeNode.d.ts +2 -2
  32. package/cjs/CheckTreePicker/CheckTreeNode.js +31 -59
  33. package/cjs/CheckTreePicker/CheckTreePicker.js +81 -84
  34. package/cjs/DatePicker/DatePicker.d.ts +5 -1
  35. package/cjs/DatePicker/DatePicker.js +7 -10
  36. package/cjs/DatePicker/Toolbar.js +2 -1
  37. package/cjs/DateRangeInput/DateRangeInput.js +2 -2
  38. package/cjs/DateRangePicker/Calendar.js +24 -23
  39. package/cjs/DateRangePicker/DateRangePicker.d.ts +18 -4
  40. package/cjs/DateRangePicker/DateRangePicker.js +239 -202
  41. package/cjs/DateRangePicker/types.d.ts +11 -3
  42. package/cjs/DateRangePicker/utils.d.ts +2 -1
  43. package/cjs/DateRangePicker/utils.js +7 -5
  44. package/cjs/Form/Form.d.ts +14 -0
  45. package/cjs/Form/Form.js +39 -30
  46. package/cjs/Form/FormContext.d.ts +1 -0
  47. package/cjs/FormControl/FormControl.d.ts +11 -1
  48. package/cjs/FormControl/FormControl.js +40 -17
  49. package/cjs/FormGroup/FormGroup.js +2 -1
  50. package/cjs/InputPicker/InputPicker.js +108 -92
  51. package/cjs/InputPicker/InputSearch.js +3 -15
  52. package/cjs/InputPicker/TagList.d.ts +3 -0
  53. package/cjs/InputPicker/TagList.js +29 -0
  54. package/cjs/InputPicker/TextBox.d.ts +18 -0
  55. package/cjs/InputPicker/TextBox.js +48 -0
  56. package/cjs/MultiCascader/MultiCascader.js +53 -52
  57. package/cjs/MultiCascader/{DropdownMenu.d.ts → TreeView.d.ts} +3 -3
  58. package/cjs/MultiCascader/{DropdownMenu.js → TreeView.js} +77 -74
  59. package/{esm/Picker/DropdownMenuCheckItem.d.ts → cjs/Picker/ListCheckItem.d.ts} +3 -3
  60. package/cjs/Picker/{DropdownMenuCheckItem.js → ListCheckItem.js} +14 -30
  61. package/cjs/Picker/{DropdownMenuItem.d.ts → ListItem.d.ts} +4 -4
  62. package/cjs/Picker/{DropdownMenuItem.js → ListItem.js} +15 -24
  63. package/cjs/Picker/ListItemGroup.d.ts +6 -0
  64. package/cjs/Picker/{DropdownMenuGroup.js → ListItemGroup.js} +3 -9
  65. package/cjs/Picker/Listbox.d.ts +35 -0
  66. package/cjs/Picker/{DropdownMenu.js → Listbox.js} +49 -64
  67. package/cjs/{DatePicker → Picker}/PickerIndicator.d.ts +1 -1
  68. package/cjs/{DatePicker → Picker}/PickerIndicator.js +2 -1
  69. package/cjs/{DatePicker → Picker}/PickerLabel.d.ts +1 -1
  70. package/cjs/Picker/{PickerOverlay.d.ts → PickerPopup.d.ts} +3 -3
  71. package/cjs/Picker/{PickerOverlay.js → PickerPopup.js} +9 -7
  72. package/cjs/Picker/PickerToggle.d.ts +17 -22
  73. package/cjs/Picker/PickerToggle.js +63 -181
  74. package/cjs/Picker/PickerToggleTrigger.d.ts +15 -0
  75. package/cjs/Picker/PickerToggleTrigger.js +21 -5
  76. package/cjs/Picker/SearchBar.js +7 -9
  77. package/cjs/Picker/TreeView.d.ts +7 -0
  78. package/cjs/Picker/TreeView.js +31 -0
  79. package/cjs/Picker/hooks/index.d.ts +6 -0
  80. package/cjs/Picker/hooks/index.js +18 -0
  81. package/cjs/Picker/hooks/useCombobox.d.ts +7 -0
  82. package/cjs/Picker/hooks/useCombobox.js +22 -0
  83. package/cjs/Picker/hooks/useFocusItemValue.d.ts +30 -0
  84. package/cjs/Picker/hooks/useFocusItemValue.js +246 -0
  85. package/cjs/Picker/hooks/usePickerClassName.d.ts +21 -0
  86. package/cjs/Picker/hooks/usePickerClassName.js +39 -0
  87. package/cjs/Picker/{usePickerRef.d.ts → hooks/usePickerRef.d.ts} +5 -3
  88. package/cjs/Picker/{usePickerRef.js → hooks/usePickerRef.js} +13 -7
  89. package/cjs/Picker/hooks/useSearch.d.ts +18 -0
  90. package/cjs/Picker/hooks/useSearch.js +57 -0
  91. package/cjs/Picker/hooks/useToggleKeyDownEvent.d.ts +25 -0
  92. package/cjs/Picker/hooks/useToggleKeyDownEvent.js +101 -0
  93. package/cjs/Picker/index.d.ts +9 -5
  94. package/cjs/Picker/index.js +32 -16
  95. package/cjs/Picker/propTypes.d.ts +0 -6
  96. package/cjs/Picker/propTypes.js +0 -5
  97. package/cjs/Picker/utils.d.ts +2 -100
  98. package/cjs/Picker/utils.js +1 -473
  99. package/cjs/SelectPicker/SelectPicker.d.ts +2 -2
  100. package/cjs/SelectPicker/SelectPicker.js +47 -50
  101. package/cjs/TagInput/index.js +4 -0
  102. package/cjs/TreePicker/TreeNode.d.ts +2 -2
  103. package/cjs/TreePicker/TreeNode.js +22 -56
  104. package/cjs/TreePicker/TreePicker.js +91 -95
  105. package/cjs/utils/constants.d.ts +2 -1
  106. package/cjs/utils/constants.js +1 -0
  107. package/cjs/utils/dateUtils.d.ts +0 -1
  108. package/cjs/utils/dateUtils.js +0 -6
  109. package/cjs/utils/getStringLength.d.ts +2 -0
  110. package/cjs/utils/getStringLength.js +18 -0
  111. package/cjs/utils/index.d.ts +1 -0
  112. package/cjs/utils/index.js +4 -1
  113. package/dist/rsuite-no-reset-rtl.css +201 -186
  114. package/dist/rsuite-no-reset-rtl.min.css +1 -1
  115. package/dist/rsuite-no-reset-rtl.min.css.map +1 -1
  116. package/dist/rsuite-no-reset.css +201 -186
  117. package/dist/rsuite-no-reset.min.css +1 -1
  118. package/dist/rsuite-no-reset.min.css.map +1 -1
  119. package/dist/rsuite-rtl.css +201 -186
  120. package/dist/rsuite-rtl.min.css +1 -1
  121. package/dist/rsuite-rtl.min.css.map +1 -1
  122. package/dist/rsuite.css +201 -186
  123. package/dist/rsuite.js +235 -104
  124. package/dist/rsuite.js.map +1 -1
  125. package/dist/rsuite.min.css +1 -1
  126. package/dist/rsuite.min.css.map +1 -1
  127. package/dist/rsuite.min.js +1 -1
  128. package/dist/rsuite.min.js.map +1 -1
  129. package/esm/@types/common.d.ts +8 -0
  130. package/esm/AutoComplete/AutoComplete.js +42 -40
  131. package/esm/AutoComplete/Combobox.d.ts +8 -0
  132. package/esm/AutoComplete/Combobox.js +25 -0
  133. package/esm/Calendar/Calendar.d.ts +5 -1
  134. package/esm/Calendar/CalendarContainer.d.ts +5 -1
  135. package/esm/Calendar/CalendarContainer.js +37 -39
  136. package/esm/Cascader/Cascader.js +61 -62
  137. package/esm/Cascader/DropdownMenu.d.ts +3 -20
  138. package/esm/Cascader/DropdownMenu.js +50 -49
  139. package/esm/Cascader/TreeView.d.ts +24 -0
  140. package/esm/Cascader/TreeView.js +167 -0
  141. package/esm/CheckPicker/CheckPicker.d.ts +2 -2
  142. package/esm/CheckPicker/CheckPicker.js +45 -47
  143. package/esm/CheckTreePicker/CheckTreeNode.d.ts +2 -2
  144. package/esm/CheckTreePicker/CheckTreeNode.js +33 -61
  145. package/esm/CheckTreePicker/CheckTreePicker.js +84 -87
  146. package/esm/DatePicker/DatePicker.d.ts +5 -1
  147. package/esm/DatePicker/DatePicker.js +5 -8
  148. package/esm/DatePicker/Toolbar.js +2 -1
  149. package/esm/DateRangeInput/DateRangeInput.js +2 -2
  150. package/esm/DateRangePicker/Calendar.js +25 -23
  151. package/esm/DateRangePicker/DateRangePicker.d.ts +18 -4
  152. package/esm/DateRangePicker/DateRangePicker.js +241 -204
  153. package/esm/DateRangePicker/types.d.ts +11 -3
  154. package/esm/DateRangePicker/utils.d.ts +2 -1
  155. package/esm/DateRangePicker/utils.js +7 -5
  156. package/esm/Form/Form.d.ts +14 -0
  157. package/esm/Form/Form.js +41 -32
  158. package/esm/Form/FormContext.d.ts +1 -0
  159. package/esm/FormControl/FormControl.d.ts +11 -1
  160. package/esm/FormControl/FormControl.js +41 -18
  161. package/esm/FormGroup/FormGroup.js +3 -2
  162. package/esm/InputPicker/InputPicker.js +110 -94
  163. package/esm/InputPicker/InputSearch.js +4 -15
  164. package/esm/InputPicker/TagList.d.ts +3 -0
  165. package/esm/InputPicker/TagList.js +23 -0
  166. package/esm/InputPicker/TextBox.d.ts +18 -0
  167. package/esm/InputPicker/TextBox.js +42 -0
  168. package/esm/MultiCascader/MultiCascader.js +56 -55
  169. package/esm/MultiCascader/{DropdownMenu.d.ts → TreeView.d.ts} +3 -3
  170. package/esm/MultiCascader/{DropdownMenu.js → TreeView.js} +79 -75
  171. package/{cjs/Picker/DropdownMenuCheckItem.d.ts → esm/Picker/ListCheckItem.d.ts} +3 -3
  172. package/esm/Picker/{DropdownMenuCheckItem.js → ListCheckItem.js} +15 -30
  173. package/esm/Picker/{DropdownMenuItem.d.ts → ListItem.d.ts} +4 -4
  174. package/esm/Picker/{DropdownMenuItem.js → ListItem.js} +16 -24
  175. package/esm/Picker/ListItemGroup.d.ts +6 -0
  176. package/esm/Picker/{DropdownMenuGroup.js → ListItemGroup.js} +3 -9
  177. package/esm/Picker/Listbox.d.ts +35 -0
  178. package/esm/Picker/{DropdownMenu.js → Listbox.js} +50 -64
  179. package/esm/{DatePicker → Picker}/PickerIndicator.d.ts +1 -1
  180. package/esm/{DatePicker → Picker}/PickerIndicator.js +2 -1
  181. package/esm/{DatePicker → Picker}/PickerLabel.d.ts +1 -1
  182. package/esm/Picker/{PickerOverlay.d.ts → PickerPopup.d.ts} +3 -3
  183. package/esm/Picker/{PickerOverlay.js → PickerPopup.js} +10 -8
  184. package/esm/Picker/PickerToggle.d.ts +17 -22
  185. package/esm/Picker/PickerToggle.js +65 -183
  186. package/esm/Picker/PickerToggleTrigger.d.ts +15 -0
  187. package/esm/Picker/PickerToggleTrigger.js +20 -5
  188. package/esm/Picker/SearchBar.js +8 -9
  189. package/esm/Picker/TreeView.d.ts +7 -0
  190. package/esm/Picker/TreeView.js +25 -0
  191. package/esm/Picker/hooks/index.d.ts +6 -0
  192. package/esm/Picker/hooks/index.js +7 -0
  193. package/esm/Picker/hooks/useCombobox.d.ts +7 -0
  194. package/esm/Picker/hooks/useCombobox.js +17 -0
  195. package/esm/Picker/hooks/useFocusItemValue.d.ts +30 -0
  196. package/esm/Picker/hooks/useFocusItemValue.js +240 -0
  197. package/esm/Picker/hooks/usePickerClassName.d.ts +21 -0
  198. package/esm/Picker/hooks/usePickerClassName.js +33 -0
  199. package/esm/Picker/{usePickerRef.d.ts → hooks/usePickerRef.d.ts} +5 -3
  200. package/esm/Picker/{usePickerRef.js → hooks/usePickerRef.js} +13 -8
  201. package/esm/Picker/hooks/useSearch.d.ts +18 -0
  202. package/esm/Picker/hooks/useSearch.js +51 -0
  203. package/esm/Picker/hooks/useToggleKeyDownEvent.d.ts +25 -0
  204. package/esm/Picker/hooks/useToggleKeyDownEvent.js +96 -0
  205. package/esm/Picker/index.d.ts +9 -5
  206. package/esm/Picker/index.js +9 -5
  207. package/esm/Picker/propTypes.d.ts +0 -6
  208. package/esm/Picker/propTypes.js +0 -5
  209. package/esm/Picker/utils.d.ts +2 -100
  210. package/esm/Picker/utils.js +2 -467
  211. package/esm/SelectPicker/SelectPicker.d.ts +2 -2
  212. package/esm/SelectPicker/SelectPicker.js +50 -53
  213. package/esm/TagInput/index.js +4 -0
  214. package/esm/TreePicker/TreeNode.d.ts +2 -2
  215. package/esm/TreePicker/TreeNode.js +24 -58
  216. package/esm/TreePicker/TreePicker.js +94 -98
  217. package/esm/utils/constants.d.ts +2 -1
  218. package/esm/utils/constants.js +1 -0
  219. package/esm/utils/dateUtils.d.ts +0 -1
  220. package/esm/utils/dateUtils.js +0 -5
  221. package/esm/utils/getStringLength.d.ts +2 -0
  222. package/esm/utils/getStringLength.js +13 -0
  223. package/esm/utils/index.d.ts +1 -0
  224. package/esm/utils/index.js +1 -0
  225. package/package.json +1 -1
  226. package/styles/mixins/combobox.less +10 -0
  227. package/styles/variables.less +1 -3
  228. package/cjs/Picker/DropdownMenu.d.ts +0 -59
  229. package/cjs/Picker/DropdownMenuGroup.d.ts +0 -6
  230. package/esm/Picker/DropdownMenu.d.ts +0 -59
  231. package/esm/Picker/DropdownMenuGroup.d.ts +0 -6
  232. /package/cjs/{DatePicker → Picker}/PickerLabel.js +0 -0
  233. /package/esm/{DatePicker → Picker}/PickerLabel.js +0 -0
@@ -1,19 +1,19 @@
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, { useState, useRef, useCallback } from 'react';
4
+ import React, { useState, useCallback } from 'react';
5
5
  import PropTypes from 'prop-types';
6
6
  import pick from 'lodash/pick';
7
7
  import omit from 'lodash/omit';
8
8
  import isFunction from 'lodash/isFunction';
9
9
  import isNil from 'lodash/isNil';
10
- import DropdownMenu from './DropdownMenu';
10
+ import TreeView from './TreeView';
11
11
  import Checkbox from '../Checkbox';
12
12
  import { useCascadeValue, useColumnData, useFlattenData, isSomeChildChecked } from './utils';
13
13
  import { getNodeParents, findNodeOfTree } from '../utils/treeUtils';
14
14
  import { getColumnsAndPaths } from '../Cascader/utils';
15
- import { createChainedFunction, mergeRefs, getSafeRegExpString, useClassNames, useCustom, useUpdateEffect, useControlled } from '../utils';
16
- import { PickerToggle, PickerOverlay, SearchBar, SelectedElement, PickerToggleTrigger, usePickerClassName, usePublicMethods, useToggleKeyDownEvent, useFocusItemValue, pickTriggerPropKeys, omitTriggerPropKeys, listPickerPropTypes } from '../Picker';
15
+ import { createChainedFunction, mergeRefs, getSafeRegExpString, useClassNames, useCustom, useUpdateEffect, useControlled, useEventCallback } from '../utils';
16
+ import { PickerToggle, PickerPopup, SearchBar, SelectedElement, PickerToggleTrigger, usePickerClassName, usePickerRef, useToggleKeyDownEvent, useFocusItemValue, pickTriggerPropKeys, omitTriggerPropKeys, listPickerPropTypes } from '../Picker';
17
17
  var emptyArray = [];
18
18
 
19
19
  /**
@@ -114,15 +114,12 @@ var MultiCascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
114
114
  var _useState2 = useState(),
115
115
  selectedPaths = _useState2[0],
116
116
  setSelectedPaths = _useState2[1];
117
- var triggerRef = useRef(null);
118
- var overlayRef = useRef(null);
119
- var targetRef = useRef(null);
120
- var searchInputRef = useRef(null);
121
- usePublicMethods(ref, {
122
- triggerRef: triggerRef,
123
- overlayRef: overlayRef,
124
- targetRef: targetRef
125
- });
117
+ var _usePickerRef = usePickerRef(ref),
118
+ trigger = _usePickerRef.trigger,
119
+ root = _usePickerRef.root,
120
+ target = _usePickerRef.target,
121
+ overlay = _usePickerRef.overlay,
122
+ searchInput = _usePickerRef.searchInput;
126
123
  var _useCustom = useCustom('Picker', overrideLocale),
127
124
  locale = _useCustom.locale,
128
125
  rtl = _useCustom.rtl;
@@ -139,7 +136,7 @@ var MultiCascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
139
136
  valueKey: valueKey,
140
137
  defaultLayer: selectedPaths !== null && selectedPaths !== void 0 && selectedPaths.length ? selectedPaths.length - 1 : 0,
141
138
  target: function target() {
142
- return overlayRef.current;
139
+ return overlay.current;
143
140
  },
144
141
  callback: useCallback(function (value) {
145
142
  var _getColumnsAndPaths = getColumnsAndPaths(data, flattenData.find(function (item) {
@@ -173,16 +170,16 @@ var MultiCascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
173
170
  var _useState3 = useState(''),
174
171
  searchKeyword = _useState3[0],
175
172
  setSearchKeyword = _useState3[1];
176
- var handleEntered = useCallback(function () {
173
+ var handleEntered = useEventCallback(function () {
177
174
  onOpen === null || onOpen === void 0 ? void 0 : onOpen();
178
175
  setActive(true);
179
- }, [onOpen]);
180
- var handleExited = useCallback(function () {
176
+ });
177
+ var handleExited = useEventCallback(function () {
181
178
  setActive(false);
182
179
  setSearchKeyword('');
183
- }, []);
184
- var handleSelect = useCallback(function (node, cascadePaths, event) {
185
- var _node$childrenKey, _node$childrenKey2, _triggerRef$current, _triggerRef$current$u;
180
+ });
181
+ var handleSelect = useEventCallback(function (node, cascadePaths, event) {
182
+ var _node$childrenKey, _node$childrenKey2, _trigger$current, _trigger$current$upda;
186
183
  setSelectedPaths(cascadePaths);
187
184
  onSelect === null || onSelect === void 0 ? void 0 : onSelect(node, cascadePaths, event);
188
185
  var columnIndex = cascadePaths.length;
@@ -195,7 +192,7 @@ var MultiCascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
195
192
  children.then(function (data) {
196
193
  node.loading = false;
197
194
  node[childrenKey] = data;
198
- if (targetRef.current || inline) {
195
+ if (target.current || inline) {
199
196
  addFlattenData(data, node);
200
197
  addColumn(data, columnIndex);
201
198
  }
@@ -212,9 +209,9 @@ var MultiCascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
212
209
  // Removes subsequent columns of the current column when the clicked node is a leaf node.
213
210
  removeColumnByIndex(columnIndex);
214
211
  }
215
- (_triggerRef$current = triggerRef.current) === null || _triggerRef$current === void 0 ? void 0 : (_triggerRef$current$u = _triggerRef$current.updatePosition) === null || _triggerRef$current$u === void 0 ? void 0 : _triggerRef$current$u.call(_triggerRef$current);
216
- }, [onSelect, getChildren, childrenKey, inline, addFlattenData, addColumn, removeColumnByIndex]);
217
- var handleCheck = useCallback(function (node, event, checked) {
212
+ (_trigger$current = trigger.current) === null || _trigger$current === void 0 ? void 0 : (_trigger$current$upda = _trigger$current.updatePosition) === null || _trigger$current$upda === void 0 ? void 0 : _trigger$current$upda.call(_trigger$current);
213
+ });
214
+ var handleCheck = useEventCallback(function (node, event, checked) {
218
215
  var nodeValue = node[valueKey];
219
216
  var nextValue = [];
220
217
  if (cascade) {
@@ -232,38 +229,38 @@ var MultiCascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
232
229
  setValue(nextValue);
233
230
  onChange === null || onChange === void 0 ? void 0 : onChange(nextValue, event);
234
231
  onCheck === null || onCheck === void 0 ? void 0 : onCheck(nextValue, node, checked, event);
235
- }, [cascade, onChange, onCheck, setValue, splitValue, value, valueKey]);
236
- var handleClean = useCallback(function (event) {
237
- if (disabled || !targetRef.current) {
232
+ });
233
+ var handleClean = useEventCallback(function (event) {
234
+ if (disabled || !target.current) {
238
235
  return;
239
236
  }
240
237
  setSelectedPaths([]);
241
238
  setValue([]);
242
239
  setColumnData([data]);
243
240
  onChange === null || onChange === void 0 ? void 0 : onChange([], event);
244
- }, [data, disabled, onChange, setColumnData, setValue]);
245
- var handleMenuPressEnter = useCallback(function (event) {
246
- var _overlayRef$current;
241
+ });
242
+ var handleMenuPressEnter = useEventCallback(function (event) {
243
+ var _overlay$current;
247
244
  var focusItem = findNodeOfTree(data, function (item) {
248
245
  return item[valueKey] === focusItemValue;
249
246
  });
250
- var checkbox = (_overlayRef$current = overlayRef.current) === null || _overlayRef$current === void 0 ? void 0 : _overlayRef$current.querySelector("[data-key=\"" + focusItemValue + "\"] [type=\"checkbox\"]");
247
+ var checkbox = (_overlay$current = overlay.current) === null || _overlay$current === void 0 ? void 0 : _overlay$current.querySelector("[data-key=\"" + focusItemValue + "\"] [type=\"checkbox\"]");
251
248
  if (checkbox) {
252
249
  handleCheck(focusItem, event, (checkbox === null || checkbox === void 0 ? void 0 : checkbox.getAttribute('aria-checked')) !== 'true');
253
250
  }
254
- }, [data, focusItemValue, handleCheck, valueKey]);
251
+ });
255
252
  var onPickerKeyDown = useToggleKeyDownEvent(_extends({
256
253
  toggle: !focusItemValue || !active,
257
- triggerRef: triggerRef,
258
- targetRef: targetRef,
259
- overlayRef: overlayRef,
260
- searchInputRef: searchInputRef,
254
+ trigger: trigger,
255
+ target: target,
256
+ overlay: overlay,
257
+ searchInput: searchInput,
261
258
  active: active,
262
259
  onExit: handleClean,
263
260
  onMenuKeyDown: onFocusItem,
264
261
  onMenuPressEnter: handleMenuPressEnter
265
262
  }, rest));
266
- var handleSearch = useCallback(function (value, event) {
263
+ var handleSearch = useEventCallback(function (value, event) {
267
264
  setSearchKeyword(value);
268
265
  onSearch === null || onSearch === void 0 ? void 0 : onSearch(value, event);
269
266
  if (value) {
@@ -272,8 +269,8 @@ var MultiCascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
272
269
  setLayer(selectedPaths.length - 1);
273
270
  }
274
271
  setKeys([]);
275
- }, [onSearch, selectedPaths, setKeys, setLayer]);
276
- var getSearchResult = useCallback(function () {
272
+ });
273
+ var getSearchResult = function getSearchResult() {
277
274
  var items = [];
278
275
  var result = flattenData.filter(function (item) {
279
276
  if (uncheckableItemValues.some(function (value) {
@@ -295,7 +292,7 @@ var MultiCascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
295
292
  }
296
293
  }
297
294
  return items;
298
- }, [flattenData, labelKey, searchKeyword, uncheckableItemValues, valueKey]);
295
+ };
299
296
  var renderSearchRow = function renderSearchRow(item, key) {
300
297
  var _extends2;
301
298
  var nodes = getNodeParents(item);
@@ -331,9 +328,10 @@ var MultiCascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
331
328
  'cascader-row-focus': item[valueKey] === focusItemValue
332
329
  });
333
330
  return /*#__PURE__*/React.createElement("div", {
331
+ role: "treeitem",
332
+ "aria-disabled": disabled,
334
333
  key: key,
335
334
  className: itemClasses,
336
- "aria-disabled": disabled,
337
335
  "data-key": item[valueKey]
338
336
  }, /*#__PURE__*/React.createElement(Checkbox, {
339
337
  disabled: disabled,
@@ -362,12 +360,13 @@ var MultiCascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
362
360
  var items = getSearchResult();
363
361
  return /*#__PURE__*/React.createElement("div", {
364
362
  className: prefix('cascader-search-panel'),
365
- "data-layer": 0
363
+ "data-layer": 0,
364
+ role: "tree"
366
365
  }, items.length ? items.map(renderSearchRow) : /*#__PURE__*/React.createElement("div", {
367
366
  className: prefix('none')
368
367
  }, locale.noResultsText));
369
368
  };
370
- var renderDropdownMenu = function renderDropdownMenu(positionProps, speakerRef) {
369
+ var renderTreeView = function renderTreeView(positionProps, speakerRef) {
371
370
  var _ref = positionProps || {},
372
371
  left = _ref.left,
373
372
  top = _ref.top,
@@ -379,19 +378,18 @@ var MultiCascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
379
378
  var classes = merge(className, menuClassName, prefix('cascader-menu', 'multi-cascader-menu', {
380
379
  inline: inline
381
380
  }));
382
- return /*#__PURE__*/React.createElement(PickerOverlay, {
383
- ref: mergeRefs(overlayRef, speakerRef),
381
+ return /*#__PURE__*/React.createElement(PickerPopup, {
382
+ ref: mergeRefs(overlay, speakerRef),
384
383
  className: classes,
385
384
  style: styles,
386
- target: triggerRef,
385
+ target: trigger,
387
386
  onKeyDown: onPickerKeyDown
388
387
  }, searchable && /*#__PURE__*/React.createElement(SearchBar, {
389
388
  placeholder: locale === null || locale === void 0 ? void 0 : locale.searchPlaceholder,
390
389
  onChange: handleSearch,
391
390
  value: searchKeyword,
392
- inputRef: searchInputRef
393
- }), renderSearchResultPanel(), searchKeyword === '' && /*#__PURE__*/React.createElement(DropdownMenu, {
394
- id: id ? id + "-listbox" : undefined,
391
+ inputRef: searchInput
392
+ }), renderSearchResultPanel(), searchKeyword === '' && /*#__PURE__*/React.createElement(TreeView, {
395
393
  cascade: cascade,
396
394
  menuWidth: menuWidth,
397
395
  menuHeight: menuHeight,
@@ -441,25 +439,28 @@ var MultiCascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
441
439
  classes = _usePickerClassName[0],
442
440
  usedClassNamePropKeys = _usePickerClassName[1];
443
441
  if (inline) {
444
- return renderDropdownMenu();
442
+ return renderTreeView();
445
443
  }
446
444
  return /*#__PURE__*/React.createElement(PickerToggleTrigger, {
445
+ id: id,
446
+ popupType: "tree",
447
+ multiple: true,
447
448
  pickerProps: pick(props, pickTriggerPropKeys),
448
- ref: triggerRef,
449
+ ref: trigger,
449
450
  placement: placement,
450
451
  onEnter: createChainedFunction(handleEntered, onEnter),
451
452
  onExited: createChainedFunction(handleExited, onExited),
452
453
  onExit: createChainedFunction(onClose, onExit),
453
- speaker: renderDropdownMenu
454
+ speaker: renderTreeView
454
455
  }, /*#__PURE__*/React.createElement(Component, {
455
456
  className: classes,
456
- style: style
457
+ style: style,
458
+ ref: root
457
459
  }, /*#__PURE__*/React.createElement(PickerToggle, _extends({}, omit(rest, [].concat(omitTriggerPropKeys, usedClassNamePropKeys)), {
458
- id: id,
459
460
  as: toggleAs,
460
461
  appearance: appearance,
461
462
  disabled: disabled,
462
- ref: targetRef,
463
+ ref: target,
463
464
  onClean: createChainedFunction(handleClean, onClean),
464
465
  onKeyDown: onPickerKeyDown,
465
466
  cleanable: cleanable && !disabled,
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import { ItemDataType, WithAsProps, RsRefForwardingComponent } from '../@types/common';
3
3
  import { ValueType } from './MultiCascader';
4
- export interface DropdownMenuProps extends WithAsProps {
4
+ export interface TreeViewProps extends WithAsProps {
5
5
  disabledItemValues: ValueType;
6
6
  value: ValueType;
7
7
  childrenKey: string;
@@ -21,5 +21,5 @@ export interface DropdownMenuProps extends WithAsProps {
21
21
  /**
22
22
  * TODO: reuse Menu from Cascader for consistent behavior
23
23
  */
24
- declare const DropdownMenu: RsRefForwardingComponent<'div', DropdownMenuProps>;
25
- export default DropdownMenu;
24
+ declare const TreeView: RsRefForwardingComponent<'div', TreeViewProps>;
25
+ export default TreeView;
@@ -1,20 +1,19 @@
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, { useCallback } from 'react';
5
- import PropTypes from 'prop-types';
4
+ import React from 'react';
6
5
  import SpinnerIcon from '@rsuite/icons/legacy/Spinner';
7
6
  import AngleLeftIcon from '@rsuite/icons/legacy/AngleLeft';
8
7
  import AngleRightIcon from '@rsuite/icons/legacy/AngleRight';
9
- import { useClassNames, shallowEqual, useCustom } from '../utils';
10
- import { DropdownMenuCheckItem } from '../Picker';
8
+ import { useClassNames, shallowEqual, useCustom, useEventCallback } from '../utils';
9
+ import { ListCheckItem, useCombobox } from '../Picker';
11
10
  import { isSomeParentChecked, isSomeChildChecked } from './utils';
12
11
  var emptyArray = [];
13
12
 
14
13
  /**
15
14
  * TODO: reuse Menu from Cascader for consistent behavior
16
15
  */
17
- var DropdownMenu = /*#__PURE__*/React.forwardRef(function (props, ref) {
16
+ var TreeView = /*#__PURE__*/React.forwardRef(function (props, ref) {
18
17
  var _props$as = props.as,
19
18
  Component = _props$as === void 0 ? 'div' : _props$as,
20
19
  _props$classPrefix = props.classPrefix,
@@ -40,18 +39,24 @@ var DropdownMenu = /*#__PURE__*/React.forwardRef(function (props, ref) {
40
39
  valueKey = _props$valueKey === void 0 ? 'value' : _props$valueKey,
41
40
  _props$labelKey = props.labelKey,
42
41
  labelKey = _props$labelKey === void 0 ? 'label' : _props$labelKey,
42
+ style = props.style,
43
43
  renderMenuItem = props.renderMenuItem,
44
44
  renderMenu = props.renderMenu,
45
45
  _onCheck = props.onCheck,
46
46
  onSelect = props.onSelect,
47
- rest = _objectWithoutPropertiesLoose(props, ["as", "classPrefix", "className", "cascade", "cascadeData", "cascadePaths", "childrenKey", "disabledItemValues", "menuWidth", "menuHeight", "uncheckableItemValues", "value", "valueKey", "labelKey", "renderMenuItem", "renderMenu", "onCheck", "onSelect"]);
47
+ rest = _objectWithoutPropertiesLoose(props, ["as", "classPrefix", "className", "cascade", "cascadeData", "cascadePaths", "childrenKey", "disabledItemValues", "menuWidth", "menuHeight", "uncheckableItemValues", "value", "valueKey", "labelKey", "style", "renderMenuItem", "renderMenu", "onCheck", "onSelect"]);
48
48
  var _useClassNames = useClassNames(classPrefix),
49
49
  merge = _useClassNames.merge,
50
50
  prefix = _useClassNames.prefix;
51
51
  var classes = merge(className, prefix('items'));
52
- var _useCustom = useCustom('DropdownMenu'),
52
+ var _useCustom = useCustom(),
53
53
  rtl = _useCustom.rtl;
54
- var getCascadePaths = useCallback(function (layer, node) {
54
+ var _useCombobox = useCombobox(),
55
+ id = _useCombobox.id,
56
+ labelId = _useCombobox.labelId,
57
+ popupType = _useCombobox.popupType,
58
+ multiple = _useCombobox.multiple;
59
+ var getCascadePaths = function getCascadePaths(layer, node) {
55
60
  var paths = [];
56
61
  for (var i = 0; i < cascadeData.length && i < layer; i += 1) {
57
62
  if (i < layer - 1 && cascadePaths) {
@@ -60,15 +65,21 @@ var DropdownMenu = /*#__PURE__*/React.forwardRef(function (props, ref) {
60
65
  }
61
66
  paths.push(node);
62
67
  return paths;
63
- }, [cascadeData, cascadePaths]);
64
- var handleSelect = useCallback(function (layer, node, event) {
68
+ };
69
+ var handleSelect = useEventCallback(function (layer, node, event) {
65
70
  var cascadePaths = getCascadePaths(layer + 1, node);
66
71
  onSelect === null || onSelect === void 0 ? void 0 : onSelect(node, cascadePaths, event);
67
- }, [getCascadePaths, onSelect]);
68
- var renderCascadeNode = function renderCascadeNode(node, index, layer, focus, uncheckable) {
72
+ });
73
+ var renderCascadeNode = function renderCascadeNode(nodeProps) {
74
+ var node = nodeProps.node,
75
+ index = nodeProps.index,
76
+ layer = nodeProps.layer,
77
+ focus = nodeProps.focus,
78
+ uncheckable = nodeProps.uncheckable,
79
+ size = nodeProps.size;
69
80
  var children = node[childrenKey];
70
81
  var nodeValue = node[valueKey];
71
- var nodeLabel = node[labelKey];
82
+ var label = node[labelKey];
72
83
  var disabled = disabledItemValues.some(function (disabledValue) {
73
84
  return shallowEqual(disabledValue, nodeValue);
74
85
  });
@@ -84,8 +95,13 @@ var DropdownMenu = /*#__PURE__*/React.forwardRef(function (props, ref) {
84
95
  valueKey: valueKey
85
96
  });
86
97
  }
87
- return /*#__PURE__*/React.createElement(DropdownMenuCheckItem, {
98
+ return /*#__PURE__*/React.createElement(ListCheckItem, {
88
99
  as: "li",
100
+ role: "treeitem",
101
+ "aria-level": layer + 1,
102
+ "aria-setsize": size,
103
+ "aria-posinset": index + 1,
104
+ "aria-label": typeof label === 'string' ? label : undefined,
89
105
  key: layer + "-" + onlyKey,
90
106
  disabled: disabled,
91
107
  active: active,
@@ -105,72 +121,60 @@ var DropdownMenu = /*#__PURE__*/React.forwardRef(function (props, ref) {
105
121
  return _onCheck === null || _onCheck === void 0 ? void 0 : _onCheck(node, event, checked);
106
122
  },
107
123
  checkable: !uncheckable
108
- }, renderMenuItem ? renderMenuItem(nodeLabel, node) : nodeLabel, children ? /*#__PURE__*/React.createElement(Icon, {
124
+ }, renderMenuItem ? renderMenuItem(label, node) : label, children ? /*#__PURE__*/React.createElement(Icon, {
109
125
  className: prefix('caret'),
110
126
  spin: node.loading
111
127
  }) : null);
112
128
  };
113
- var renderCascade = function renderCascade() {
114
- var styles = {
115
- width: cascadeData.length * menuWidth
116
- };
117
- var columnStyles = {
118
- height: menuHeight,
119
- width: menuWidth
120
- };
121
- var cascadeNodes = cascadeData.map(function (children, layer) {
122
- var uncheckableCount = 0;
123
- var onlyKey = layer + "_" + children.length;
124
- var menu = /*#__PURE__*/React.createElement("ul", {
125
- role: "listbox"
126
- }, children.map(function (item, index) {
127
- var uncheckable = uncheckableItemValues.some(function (uncheckableValue) {
128
- return shallowEqual(uncheckableValue, item[valueKey]);
129
- });
130
- if (uncheckable) {
131
- uncheckableCount++;
132
- }
133
- return renderCascadeNode(item, index, layer, cascadePaths[layer] && shallowEqual(cascadePaths[layer][valueKey], item[valueKey]), uncheckable);
134
- }));
135
- var parentNode = cascadePaths[layer - 1];
136
- var columnClasses = prefix('column', {
137
- 'column-uncheckable': uncheckableCount === children.length
129
+ var columnStyles = {
130
+ height: menuHeight,
131
+ width: menuWidth
132
+ };
133
+ var cascadeNodes = cascadeData.map(function (children, layer) {
134
+ var uncheckableCount = 0;
135
+ var onlyKey = layer + "_" + children.length;
136
+ var menu = /*#__PURE__*/React.createElement(React.Fragment, null, children.map(function (item, index) {
137
+ var uncheckable = uncheckableItemValues.some(function (uncheckableValue) {
138
+ return shallowEqual(uncheckableValue, item[valueKey]);
138
139
  });
139
- return /*#__PURE__*/React.createElement("div", {
140
- key: onlyKey,
141
- className: columnClasses,
142
- "data-layer": layer,
143
- style: columnStyles
144
- }, renderMenu ? renderMenu(children, menu, parentNode, layer) : menu);
140
+ if (uncheckable) {
141
+ uncheckableCount++;
142
+ }
143
+ var focus = cascadePaths[layer] && shallowEqual(cascadePaths[layer][valueKey], item[valueKey]);
144
+ return renderCascadeNode({
145
+ node: item,
146
+ index: index,
147
+ layer: layer,
148
+ focus: focus,
149
+ uncheckable: uncheckable,
150
+ size: children.length
151
+ });
152
+ }));
153
+ var parentNode = cascadePaths[layer - 1];
154
+ var columnClasses = prefix('column', {
155
+ 'column-uncheckable': uncheckableCount === children.length
145
156
  });
146
- return /*#__PURE__*/React.createElement("div", {
147
- style: styles
148
- }, cascadeNodes);
149
- };
150
- return /*#__PURE__*/React.createElement(Component, _extends({}, rest, {
157
+ return /*#__PURE__*/React.createElement("ul", {
158
+ role: "group",
159
+ key: onlyKey,
160
+ className: columnClasses,
161
+ "data-layer": layer,
162
+ style: columnStyles
163
+ }, renderMenu ? renderMenu(children, menu, parentNode, layer) : menu);
164
+ });
165
+ var styles = _extends({}, style, {
166
+ width: cascadeData.length * menuWidth
167
+ });
168
+ return /*#__PURE__*/React.createElement(Component, _extends({
169
+ role: "tree",
170
+ id: id + "-" + popupType,
171
+ "aria-labelledby": labelId,
172
+ "aria-multiselectable": multiple
173
+ }, rest, {
151
174
  ref: ref,
152
- className: classes
153
- }), renderCascade());
175
+ className: classes,
176
+ style: styles
177
+ }), cascadeNodes);
154
178
  });
155
- DropdownMenu.displayName = 'DropdownMenu';
156
- DropdownMenu.propTypes = {
157
- classPrefix: PropTypes.string,
158
- data: PropTypes.array,
159
- disabledItemValues: PropTypes.array,
160
- value: PropTypes.array,
161
- childrenKey: PropTypes.string,
162
- valueKey: PropTypes.string,
163
- labelKey: PropTypes.string,
164
- menuWidth: PropTypes.number,
165
- menuHeight: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
166
- className: PropTypes.string,
167
- cascade: PropTypes.bool,
168
- cascadeData: PropTypes.array,
169
- cascadePaths: PropTypes.array,
170
- uncheckableItemValues: PropTypes.array,
171
- renderMenuItem: PropTypes.func,
172
- renderMenu: PropTypes.func,
173
- onSelect: PropTypes.func,
174
- onCheck: PropTypes.func
175
- };
176
- export default DropdownMenu;
179
+ TreeView.displayName = 'TreeView';
180
+ export default TreeView;
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import { CheckboxProps } from '../Checkbox';
3
3
  import { WithAsProps, RsRefForwardingComponent } from '../@types/common';
4
- export interface DropdownMenuCheckItemProps extends WithAsProps {
4
+ export interface ListCheckItemProps extends WithAsProps {
5
5
  active?: boolean;
6
6
  checkboxAs?: React.ElementType | string;
7
7
  classPrefix?: string;
@@ -19,5 +19,5 @@ export interface DropdownMenuCheckItemProps extends WithAsProps {
19
19
  onKeyDown?: (event: React.KeyboardEvent) => void;
20
20
  renderMenuItemCheckbox?: (checkboxProps: CheckboxProps) => React.ReactNode;
21
21
  }
22
- declare const DropdownMenuCheckItem: RsRefForwardingComponent<'div', DropdownMenuCheckItemProps>;
23
- export default DropdownMenuCheckItem;
22
+ declare const ListCheckItem: RsRefForwardingComponent<'div', ListCheckItemProps>;
23
+ export default ListCheckItem;
@@ -1,11 +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, { useCallback } from 'react';
5
- import PropTypes from 'prop-types';
6
- import { useClassNames } from '../utils';
4
+ import React from 'react';
5
+ import { useClassNames, useEventCallback } from '../utils';
7
6
  import Checkbox from '../Checkbox';
8
- var DropdownMenuCheckItem = /*#__PURE__*/React.forwardRef(function (props, ref) {
7
+ import useCombobox from './hooks/useCombobox';
8
+ var ListCheckItem = /*#__PURE__*/React.forwardRef(function (props, ref) {
9
9
  var _props$active = props.active,
10
10
  active = _props$active === void 0 ? false : _props$active,
11
11
  _props$as = props.as,
@@ -28,19 +28,21 @@ var DropdownMenuCheckItem = /*#__PURE__*/React.forwardRef(function (props, ref)
28
28
  onSelectItem = props.onSelectItem,
29
29
  renderMenuItemCheckbox = props.renderMenuItemCheckbox,
30
30
  rest = _objectWithoutPropertiesLoose(props, ["active", "as", "checkboxAs", "classPrefix", "checkable", "disabled", "value", "focus", "children", "className", "indeterminate", "onKeyDown", "onSelect", "onCheck", "onSelectItem", "renderMenuItemCheckbox"]);
31
- var handleChange = useCallback(function (value, checked, event) {
31
+ var handleChange = useEventCallback(function (value, checked, event) {
32
32
  onSelect === null || onSelect === void 0 ? void 0 : onSelect(value, event, checked);
33
- }, [onSelect]);
34
- var handleCheck = useCallback(function (event) {
33
+ });
34
+ var handleCheck = useEventCallback(function (event) {
35
35
  if (!disabled) {
36
36
  onCheck === null || onCheck === void 0 ? void 0 : onCheck(value, event, !active);
37
37
  }
38
- }, [value, disabled, onCheck, active]);
39
- var handleSelectItem = useCallback(function (event) {
38
+ });
39
+ var handleSelectItem = useEventCallback(function (event) {
40
40
  if (!disabled) {
41
41
  onSelectItem === null || onSelectItem === void 0 ? void 0 : onSelectItem(value, event, !active);
42
42
  }
43
- }, [value, disabled, onSelectItem, active]);
43
+ });
44
+ var _useCombobox = useCombobox(),
45
+ id = _useCombobox.id;
44
46
  var _useClassNames = useClassNames(classPrefix),
45
47
  withClassPrefix = _useClassNames.withClassPrefix;
46
48
  var checkboxItemClasses = withClassPrefix({
@@ -63,6 +65,7 @@ var DropdownMenuCheckItem = /*#__PURE__*/React.forwardRef(function (props, ref)
63
65
  role: "option",
64
66
  "aria-selected": active,
65
67
  "aria-disabled": disabled,
68
+ id: id ? id + "-opt-" + value : undefined,
66
69
  "data-key": value
67
70
  }, rest, {
68
71
  ref: ref,
@@ -72,23 +75,5 @@ var DropdownMenuCheckItem = /*#__PURE__*/React.forwardRef(function (props, ref)
72
75
  role: "checkbox"
73
76
  }, checkboxProps)));
74
77
  });
75
- DropdownMenuCheckItem.displayName = 'DropdownMenuCheckItem';
76
- DropdownMenuCheckItem.propTypes = {
77
- classPrefix: PropTypes.string,
78
- active: PropTypes.bool,
79
- disabled: PropTypes.bool,
80
- checkable: PropTypes.bool,
81
- indeterminate: PropTypes.bool,
82
- value: PropTypes.any,
83
- onSelect: PropTypes.func,
84
- onCheck: PropTypes.func,
85
- onSelectItem: PropTypes.func,
86
- onKeyDown: PropTypes.func,
87
- focus: PropTypes.bool,
88
- title: PropTypes.string,
89
- className: PropTypes.string,
90
- children: PropTypes.node,
91
- as: PropTypes.elementType,
92
- checkboxAs: PropTypes.elementType
93
- };
94
- export default DropdownMenuCheckItem;
78
+ ListCheckItem.displayName = 'ListCheckItem';
79
+ export default ListCheckItem;
@@ -1,14 +1,14 @@
1
1
  import React from 'react';
2
2
  import { WithAsProps, RsRefForwardingComponent } from '../@types/common';
3
- export interface DropdownMenuItemProps extends WithAsProps {
3
+ export interface ListItemProps extends WithAsProps, Omit<React.HTMLAttributes<HTMLElement>, 'onSelect'> {
4
4
  active?: boolean;
5
5
  disabled?: boolean;
6
- value?: any;
6
+ value?: string | number;
7
7
  focus?: boolean;
8
8
  title?: string;
9
9
  onSelect?: (value: any, event: React.MouseEvent) => void;
10
10
  onKeyDown?: (event: React.KeyboardEvent) => void;
11
11
  renderItem?: (value: any) => React.ReactNode;
12
12
  }
13
- declare const DropdownMenuItem: RsRefForwardingComponent<'div', DropdownMenuItemProps>;
14
- export default DropdownMenuItem;
13
+ declare const ListItem: RsRefForwardingComponent<'div', ListItemProps>;
14
+ export default ListItem;