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
@@ -3,16 +3,16 @@ import _taggedTemplateLiteralLoose from "@babel/runtime/helpers/esm/taggedTempla
3
3
  import _extends from "@babel/runtime/helpers/esm/extends";
4
4
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
5
5
  var _templateObject;
6
- import React, { useRef, useState, useCallback } from 'react';
6
+ import React, { useState } from 'react';
7
7
  import PropTypes from 'prop-types';
8
8
  import pick from 'lodash/pick';
9
9
  import isUndefined from 'lodash/isUndefined';
10
10
  import isNil from 'lodash/isNil';
11
11
  import isFunction from 'lodash/isFunction';
12
12
  import omit from 'lodash/omit';
13
- import { createChainedFunction, useCustom, useClassNames, useControlled, mergeRefs, shallowEqual } from '../utils';
13
+ import { createChainedFunction, useCustom, useClassNames, useControlled, useEventCallback, mergeRefs, shallowEqual } from '../utils';
14
14
  import { getDataGroupBy } from '../utils/getDataGroupBy';
15
- import { DropdownMenu, DropdownMenuItem, PickerToggle, PickerToggleTrigger, PickerOverlay, SearchBar, useFocusItemValue, usePickerClassName, useSearch, usePublicMethods, useToggleKeyDownEvent, pickTriggerPropKeys, omitTriggerPropKeys, listPickerPropTypes } from '../Picker';
15
+ import { Listbox, ListItem, PickerToggle, PickerToggleTrigger, PickerPopup, SearchBar, useFocusItemValue, usePickerClassName, useSearch, useToggleKeyDownEvent, usePickerRef, pickTriggerPropKeys, omitTriggerPropKeys, listPickerPropTypes } from '../Picker';
16
16
  var emptyArray = [];
17
17
  /**
18
18
  * The `SelectPicker` component is used to select an item from a list of data.
@@ -73,11 +73,13 @@ var SelectPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
73
73
  renderMenuItem = props.renderMenuItem,
74
74
  renderExtraFooter = props.renderExtraFooter,
75
75
  rest = _objectWithoutPropertiesLoose(props, ["as", "appearance", "data", "valueKey", "labelKey", "value", "classPrefix", "placeholder", "defaultValue", "disabled", "cleanable", "placement", "menuClassName", "menuAutoWidth", "menuMaxHeight", "menuStyle", "groupBy", "locale", "toggleAs", "style", "searchable", "disabledItemValues", "virtualized", "listProps", "id", "onGroupTitleClick", "searchBy", "onEntered", "onExited", "onClean", "onChange", "onSelect", "onSearch", "onClose", "onOpen", "sort", "renderValue", "renderMenu", "renderMenuGroup", "renderMenuItem", "renderExtraFooter"]);
76
- var triggerRef = useRef(null);
77
- var targetRef = useRef(null);
78
- var overlayRef = useRef(null);
79
- var searchInputRef = useRef(null);
80
- var listRef = useRef(null);
76
+ var _usePickerRef = usePickerRef(ref),
77
+ trigger = _usePickerRef.trigger,
78
+ root = _usePickerRef.root,
79
+ target = _usePickerRef.target,
80
+ overlay = _usePickerRef.overlay,
81
+ list = _usePickerRef.list,
82
+ searchInput = _usePickerRef.searchInput;
81
83
  var _useCustom = useCustom('Picker', overrideLocale),
82
84
  locale = _useCustom.locale;
83
85
  var _ref = useControlled(valueProp, defaultValue),
@@ -87,7 +89,7 @@ var SelectPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
87
89
  data: data,
88
90
  valueKey: valueKey,
89
91
  target: function target() {
90
- return overlayRef.current;
92
+ return overlay.current;
91
93
  }
92
94
  }),
93
95
  focusItemValue = _useFocusItemValue.focusItemValue,
@@ -110,19 +112,19 @@ var SelectPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
110
112
  var _useState = useState(false),
111
113
  active = _useState[0],
112
114
  setActive = _useState[1];
113
- var handleClose = useCallback(function () {
114
- var _triggerRef$current, _triggerRef$current$c;
115
- (_triggerRef$current = triggerRef.current) === null || _triggerRef$current === void 0 ? void 0 : (_triggerRef$current$c = _triggerRef$current.close) === null || _triggerRef$current$c === void 0 ? void 0 : _triggerRef$current$c.call(_triggerRef$current);
116
- }, []);
117
- var handleSelect = useCallback(function (value, item, event) {
118
- var _targetRef$current;
115
+ var handleClose = useEventCallback(function () {
116
+ var _trigger$current, _trigger$current$clos;
117
+ (_trigger$current = trigger.current) === null || _trigger$current === void 0 ? void 0 : (_trigger$current$clos = _trigger$current.close) === null || _trigger$current$clos === void 0 ? void 0 : _trigger$current$clos.call(_trigger$current);
118
+ });
119
+ var handleSelect = useEventCallback(function (value, item, event) {
120
+ var _target$current;
119
121
  onSelect === null || onSelect === void 0 ? void 0 : onSelect(value, item, event);
120
- (_targetRef$current = targetRef.current) === null || _targetRef$current === void 0 ? void 0 : _targetRef$current.focus();
121
- }, [onSelect]);
122
- var handleChangeValue = useCallback(function (value, event) {
122
+ (_target$current = target.current) === null || _target$current === void 0 ? void 0 : _target$current.focus();
123
+ });
124
+ var handleChangeValue = useEventCallback(function (value, event) {
123
125
  onChange === null || onChange === void 0 ? void 0 : onChange(value, event);
124
- }, [onChange]);
125
- var handleMenuPressEnter = useCallback(function (event) {
126
+ });
127
+ var handleMenuPressEnter = useEventCallback(function (event) {
126
128
  if (!focusItemValue) {
127
129
  return;
128
130
  }
@@ -135,28 +137,28 @@ var SelectPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
135
137
  handleSelect(focusItemValue, focusItem, event);
136
138
  handleChangeValue(focusItemValue, event);
137
139
  handleClose();
138
- }, [data, focusItemValue, handleChangeValue, handleClose, handleSelect, setValue, valueKey]);
139
- var handleItemSelect = useCallback(function (value, item, event) {
140
+ });
141
+ var handleItemSelect = useEventCallback(function (value, item, event) {
140
142
  setValue(value);
141
143
  setFocusItemValue(value);
142
144
  handleSelect(value, item, event);
143
145
  handleChangeValue(value, event);
144
146
  handleClose();
145
- }, [setValue, setFocusItemValue, handleSelect, handleChangeValue, handleClose]);
146
- var handleClean = useCallback(function (event) {
147
+ });
148
+ var handleClean = useEventCallback(function (event) {
147
149
  if (disabled || !cleanable) {
148
150
  return;
149
151
  }
150
152
  setValue(null);
151
153
  setFocusItemValue(value);
152
154
  handleChangeValue(null, event);
153
- }, [value, disabled, cleanable, setValue, handleChangeValue, setFocusItemValue]);
155
+ });
154
156
  var onPickerKeyDown = useToggleKeyDownEvent(_extends({
155
157
  toggle: !focusItemValue || !active,
156
- triggerRef: triggerRef,
157
- targetRef: targetRef,
158
- overlayRef: overlayRef,
159
- searchInputRef: searchInputRef,
158
+ trigger: trigger,
159
+ target: target,
160
+ overlay: overlay,
161
+ searchInput: searchInput,
160
162
  active: active,
161
163
  onExit: handleClean,
162
164
  onMenuKeyDown: onFocusItem,
@@ -165,22 +167,16 @@ var SelectPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
165
167
  setFocusItemValue(null);
166
168
  }
167
169
  }, rest));
168
- var handleExited = useCallback(function () {
170
+ var handleExited = useEventCallback(function () {
169
171
  resetSearch();
170
172
  setActive(false);
171
173
  onSearch === null || onSearch === void 0 ? void 0 : onSearch('');
172
174
  onClose === null || onClose === void 0 ? void 0 : onClose();
173
- }, [onClose, resetSearch, onSearch]);
174
- var handleEntered = useCallback(function () {
175
+ });
176
+ var handleEntered = useEventCallback(function () {
175
177
  setActive(true);
176
178
  setFocusItemValue(value);
177
179
  onOpen === null || onOpen === void 0 ? void 0 : onOpen();
178
- }, [onOpen, setFocusItemValue, value]);
179
- usePublicMethods(ref, {
180
- triggerRef: triggerRef,
181
- overlayRef: overlayRef,
182
- targetRef: targetRef,
183
- listRef: listRef
184
180
  });
185
181
 
186
182
  // Find active `MenuItem` by `value`
@@ -207,7 +203,7 @@ var SelectPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
207
203
  hasValue = false;
208
204
  }
209
205
  }
210
- var renderDropdownMenu = function renderDropdownMenu(positionProps, speakerRef) {
206
+ var renderPopup = function renderPopup(positionProps, speakerRef) {
211
207
  var left = positionProps.left,
212
208
  top = positionProps.top,
213
209
  className = positionProps.className;
@@ -224,10 +220,9 @@ var SelectPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
224
220
  } else if (typeof sort === 'function') {
225
221
  items = items.sort(sort(false));
226
222
  }
227
- var menu = items.length ? /*#__PURE__*/React.createElement(DropdownMenu, {
228
- id: id ? id + "-listbox" : undefined,
223
+ var menu = items.length ? /*#__PURE__*/React.createElement(Listbox, {
229
224
  listProps: listProps,
230
- listRef: listRef,
225
+ listRef: list,
231
226
  disabledItemValues: disabledItemValues,
232
227
  valueKey: valueKey,
233
228
  labelKey: labelKey,
@@ -235,8 +230,8 @@ var SelectPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
235
230
  renderMenuItem: renderMenuItem,
236
231
  maxHeight: menuMaxHeight,
237
232
  classPrefix: 'picker-select-menu',
238
- dropdownMenuItemClassPrefix: 'picker-select-menu-item',
239
- dropdownMenuItemAs: DropdownMenuItem,
233
+ listItemClassPrefix: 'picker-select-menu-item',
234
+ listItemAs: ListItem,
240
235
  activeItemValues: [value],
241
236
  focusItemValue: focusItemValue,
242
237
  data: items
@@ -251,18 +246,18 @@ var SelectPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
251
246
  }) : /*#__PURE__*/React.createElement("div", {
252
247
  className: prefix(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["none"])))
253
248
  }, locale === null || locale === void 0 ? void 0 : locale.noResultsText);
254
- return /*#__PURE__*/React.createElement(PickerOverlay, {
255
- ref: mergeRefs(overlayRef, speakerRef),
249
+ return /*#__PURE__*/React.createElement(PickerPopup, {
250
+ ref: mergeRefs(overlay, speakerRef),
256
251
  autoWidth: menuAutoWidth,
257
252
  className: classes,
258
253
  style: styles,
259
254
  onKeyDown: onPickerKeyDown,
260
- target: triggerRef
255
+ target: trigger
261
256
  }, searchable && /*#__PURE__*/React.createElement(SearchBar, {
262
257
  placeholder: locale === null || locale === void 0 ? void 0 : locale.searchPlaceholder,
263
258
  onChange: handleSearch,
264
259
  value: searchKeyword,
265
- inputRef: searchInputRef
260
+ inputRef: searchInput
266
261
  }), renderMenu ? renderMenu(menu) : menu, renderExtraFooter === null || renderExtraFooter === void 0 ? void 0 : renderExtraFooter());
267
262
  };
268
263
  var _usePickerClassName = usePickerClassName(_extends({}, props, {
@@ -275,18 +270,19 @@ var SelectPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
275
270
  classes = _usePickerClassName[0],
276
271
  usedClassNamePropKeys = _usePickerClassName[1];
277
272
  return /*#__PURE__*/React.createElement(PickerToggleTrigger, {
273
+ id: id,
278
274
  pickerProps: pick(props, pickTriggerPropKeys),
279
- ref: triggerRef,
275
+ ref: trigger,
280
276
  placement: placement,
281
277
  onEntered: createChainedFunction(handleEntered, onEntered),
282
278
  onExited: createChainedFunction(handleExited, onExited),
283
- speaker: renderDropdownMenu
279
+ speaker: renderPopup
284
280
  }, /*#__PURE__*/React.createElement(Component, {
285
281
  className: classes,
286
- style: style
282
+ style: style,
283
+ ref: root
287
284
  }, /*#__PURE__*/React.createElement(PickerToggle, _extends({}, omit(rest, [].concat(omitTriggerPropKeys, usedClassNamePropKeys)), {
288
- id: id,
289
- ref: targetRef,
285
+ ref: target,
290
286
  appearance: appearance,
291
287
  onClean: createChainedFunction(handleClean, onClean),
292
288
  onKeyDown: onPickerKeyDown,
@@ -295,6 +291,7 @@ var SelectPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
295
291
  cleanable: cleanable && !disabled,
296
292
  hasValue: hasValue,
297
293
  inputValue: value !== null && value !== void 0 ? value : '',
294
+ focusItemValue: focusItemValue,
298
295
  active: active,
299
296
  placement: placement
300
297
  }), selectedElement || (locale === null || locale === void 0 ? void 0 : locale.placeholder))));
@@ -38,6 +38,10 @@ var TagInput = /*#__PURE__*/React.forwardRef(function (props, ref) {
38
38
  return /*#__PURE__*/React.createElement(InputPickerContext.Provider, {
39
39
  value: contextValue
40
40
  }, /*#__PURE__*/React.createElement(InputPicker, _extends({}, rest, {
41
+ "aria-haspopup": false,
42
+ "aria-expanded": undefined,
43
+ "aria-controls": undefined,
44
+ "aria-keyshortcuts": trigger,
41
45
  value: value,
42
46
  defaultValue: defaultValue,
43
47
  data: data,
@@ -23,8 +23,8 @@ export interface TreeNodeProps extends WithAsProps {
23
23
  style?: React.CSSProperties;
24
24
  onExpand?: (nodeData: any) => void;
25
25
  onSelect?: (nodeData: any, event: React.SyntheticEvent) => void;
26
- onRenderTreeIcon?: (nodeData: any) => React.ReactNode;
27
- onRenderTreeNode?: (nodeData: any) => React.ReactNode;
26
+ renderTreeIcon?: (nodeData: any) => React.ReactNode;
27
+ renderTreeNode?: (nodeData: any) => React.ReactNode;
28
28
  onDragStart?: (data: any, event: React.DragEvent<any>) => void;
29
29
  onDragEnter?: (data: any, event: React.DragEvent<any>) => void;
30
30
  onDragOver?: (data: any, event: React.DragEvent<any>) => void;
@@ -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;