rsuite 5.2.4 → 5.3.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 (433) hide show
  1. package/Avatar/styles/index.less +2 -2
  2. package/AvatarGroup/package.json +7 -0
  3. package/AvatarGroup/styles/index.less +19 -0
  4. package/ButtonGroup/styles/index.less +0 -18
  5. package/CHANGELOG.md +15 -0
  6. package/CheckTreePicker/styles/index.less +14 -1
  7. package/TreePicker/styles/index.less +10 -0
  8. package/cjs/@types/common.d.ts +9 -8
  9. package/cjs/@types/utils.d.ts +12 -0
  10. package/cjs/Affix/Affix.js +5 -5
  11. package/cjs/Animation/Transition.d.ts +21 -12
  12. package/cjs/Animation/Transition.js +4 -1
  13. package/cjs/AutoComplete/AutoComplete.js +1 -1
  14. package/cjs/AutoComplete/utils.d.ts +1 -1
  15. package/cjs/Avatar/Avatar.js +10 -3
  16. package/cjs/AvatarGroup/AvatarGroup.d.ts +15 -0
  17. package/cjs/AvatarGroup/AvatarGroup.js +71 -0
  18. package/cjs/AvatarGroup/index.d.ts +3 -0
  19. package/cjs/AvatarGroup/index.js +11 -0
  20. package/cjs/Breadcrumb/Breadcrumb.js +1 -1
  21. package/cjs/Button/Button.js +8 -2
  22. package/cjs/ButtonGroup/ButtonGroup.js +8 -2
  23. package/cjs/ButtonGroup/ButtonGroupContext.d.ts +7 -0
  24. package/cjs/ButtonGroup/ButtonGroupContext.js +13 -0
  25. package/cjs/ButtonGroup/index.d.ts +2 -0
  26. package/cjs/ButtonGroup/index.js +3 -0
  27. package/cjs/Calendar/Calendar.d.ts +4 -4
  28. package/cjs/Calendar/Calendar.js +5 -2
  29. package/cjs/Calendar/CalendarContext.js +1 -1
  30. package/cjs/Calendar/TableRow.js +1 -1
  31. package/cjs/Calendar/TimeDropdown.js +6 -5
  32. package/cjs/Calendar/types.d.ts +2 -2
  33. package/cjs/Calendar/useCalendarDate.d.ts +2 -2
  34. package/cjs/Carousel/Carousel.d.ts +1 -1
  35. package/cjs/Carousel/Carousel.js +1 -1
  36. package/cjs/Cascader/Cascader.d.ts +1 -1
  37. package/cjs/Cascader/Cascader.js +10 -10
  38. package/cjs/Cascader/DropdownMenu.d.ts +5 -4
  39. package/cjs/Cascader/utils.d.ts +3 -3
  40. package/cjs/CheckPicker/CheckPicker.js +4 -4
  41. package/cjs/CheckTreePicker/CheckTreeNode.d.ts +1 -1
  42. package/cjs/CheckTreePicker/CheckTreeNode.js +7 -9
  43. package/cjs/CheckTreePicker/CheckTreePicker.js +29 -25
  44. package/cjs/CheckTreePicker/utils.d.ts +3 -1
  45. package/cjs/CheckTreePicker/utils.js +12 -10
  46. package/cjs/Checkbox/Checkbox.d.ts +1 -1
  47. package/cjs/CustomProvider/CustomProvider.d.ts +31 -57
  48. package/cjs/DOMHelper/index.d.ts +12 -12
  49. package/cjs/DatePicker/DatePicker.d.ts +1 -1
  50. package/cjs/DatePicker/DatePicker.js +15 -9
  51. package/cjs/DatePicker/Toolbar.d.ts +12 -9
  52. package/cjs/DatePicker/Toolbar.js +6 -8
  53. package/cjs/DatePicker/types.d.ts +4 -4
  54. package/cjs/DatePicker/utils.d.ts +4 -3
  55. package/cjs/DateRangePicker/Calendar.d.ts +8 -7
  56. package/cjs/DateRangePicker/Calendar.js +1 -1
  57. package/cjs/DateRangePicker/DateRangePicker.d.ts +6 -6
  58. package/cjs/DateRangePicker/DateRangePicker.js +105 -108
  59. package/cjs/DateRangePicker/types.d.ts +2 -1
  60. package/cjs/DateRangePicker/utils.d.ts +6 -6
  61. package/cjs/DateRangePicker/utils.js +7 -2
  62. package/cjs/Disclosure/Disclosure.js +4 -2
  63. package/cjs/Disclosure/DisclosureButton.js +9 -7
  64. package/cjs/Disclosure/DisclosureContent.js +4 -6
  65. package/cjs/Disclosure/DisclosureContext.d.ts +2 -2
  66. package/cjs/Disclosure/useDisclosureContext.d.ts +2 -0
  67. package/cjs/Disclosure/useDisclosureContext.js +20 -0
  68. package/cjs/Dropdown/Dropdown.d.ts +1 -1
  69. package/cjs/Dropdown/DropdownContext.d.ts +2 -2
  70. package/cjs/Dropdown/DropdownItem.js +1 -1
  71. package/cjs/Dropdown/DropdownMenu.d.ts +3 -3
  72. package/cjs/Dropdown/DropdownState.d.ts +1 -1
  73. package/cjs/Dropdown/DropdownToggle.js +2 -1
  74. package/cjs/Dropdown/useRenderDropdownItem.d.ts +1 -1
  75. package/cjs/Form/Form.js +1 -1
  76. package/cjs/Form/FormContext.d.ts +1 -1
  77. package/cjs/FormControl/FormControl.d.ts +1 -1
  78. package/cjs/FormControl/FormControl.js +5 -4
  79. package/cjs/FormGroup/FormGroup.d.ts +1 -1
  80. package/cjs/Input/Input.d.ts +3 -2
  81. package/cjs/InputGroup/InputGroup.d.ts +1 -1
  82. package/cjs/InputNumber/InputNumber.js +6 -2
  83. package/cjs/InputPicker/InputAutosize.js +4 -4
  84. package/cjs/InputPicker/InputPicker.d.ts +2 -2
  85. package/cjs/InputPicker/InputPicker.js +15 -10
  86. package/cjs/List/ListContext.d.ts +1 -1
  87. package/cjs/List/ListContext.js +8 -1
  88. package/cjs/List/helper/AutoScroller.js +4 -2
  89. package/cjs/List/helper/useManager.d.ts +3 -3
  90. package/cjs/List/helper/useManager.js +1 -1
  91. package/cjs/List/helper/useSortHelper.d.ts +3 -3
  92. package/cjs/List/helper/useSortHelper.js +6 -4
  93. package/cjs/List/helper/utils.d.ts +2 -2
  94. package/cjs/MaskedInput/TextMask.d.ts +5 -5
  95. package/cjs/MaskedInput/adjustCaretPosition.d.ts +6 -6
  96. package/cjs/MaskedInput/conformToMask.js +5 -4
  97. package/cjs/MaskedInput/createTextMaskInputElement.d.ts +2 -2
  98. package/cjs/MaskedInput/utilities.d.ts +1 -1
  99. package/cjs/Menu/Menu.js +14 -7
  100. package/cjs/Menu/MenuContext.d.ts +1 -1
  101. package/cjs/Menu/MenuItem.d.ts +1 -1
  102. package/cjs/Menu/MenuItem.js +19 -15
  103. package/cjs/Menu/Menubar.js +8 -8
  104. package/cjs/Menu/useMenu.js +17 -7
  105. package/cjs/Modal/Modal.js +12 -6
  106. package/cjs/Modal/ModalContext.d.ts +2 -2
  107. package/cjs/Modal/utils.d.ts +1 -1
  108. package/cjs/Modal/utils.js +3 -5
  109. package/cjs/MultiCascader/DropdownMenu.d.ts +4 -4
  110. package/cjs/MultiCascader/MultiCascader.js +6 -6
  111. package/cjs/MultiCascader/utils.d.ts +14 -14
  112. package/cjs/Nav/Nav.d.ts +1 -1
  113. package/cjs/Nav/NavContext.d.ts +1 -1
  114. package/cjs/Nav/NavItem.d.ts +1 -1
  115. package/cjs/Navbar/Navbar.js +1 -1
  116. package/cjs/Navbar/NavbarItem.d.ts +1 -1
  117. package/cjs/Overlay/Modal.d.ts +2 -2
  118. package/cjs/Overlay/Modal.js +41 -31
  119. package/cjs/Overlay/ModalManager.d.ts +17 -8
  120. package/cjs/Overlay/ModalManager.js +11 -20
  121. package/cjs/Overlay/Overlay.d.ts +2 -2
  122. package/cjs/Overlay/Overlay.js +1 -1
  123. package/cjs/Overlay/OverlayTrigger.d.ts +11 -11
  124. package/cjs/Overlay/OverlayTrigger.js +14 -6
  125. package/cjs/Overlay/Position.d.ts +3 -3
  126. package/cjs/Overlay/Position.js +14 -8
  127. package/cjs/Overlay/positionUtils.d.ts +1 -1
  128. package/cjs/Overlay/positionUtils.js +8 -8
  129. package/cjs/Pagination/Pagination.d.ts +1 -1
  130. package/cjs/Pagination/PaginationButton.d.ts +3 -3
  131. package/cjs/Pagination/PaginationGroup.js +5 -3
  132. package/cjs/Panel/Panel.d.ts +1 -1
  133. package/cjs/Panel/Panel.js +2 -2
  134. package/cjs/PanelGroup/PanelGroup.d.ts +2 -2
  135. package/cjs/Picker/DropdownMenu.d.ts +8 -5
  136. package/cjs/Picker/DropdownMenu.js +5 -5
  137. package/cjs/Picker/PickerOverlay.js +4 -3
  138. package/cjs/Picker/PickerToggle.js +4 -3
  139. package/cjs/Picker/PickerToggleTrigger.d.ts +2 -6
  140. package/cjs/Picker/SearchBar.d.ts +1 -1
  141. package/cjs/Picker/SelectedElement.js +2 -1
  142. package/cjs/Picker/propTypes.d.ts +2 -2
  143. package/cjs/Picker/utils.d.ts +13 -13
  144. package/cjs/Picker/utils.js +22 -18
  145. package/cjs/Placeholder/PlaceholderGrid.js +1 -1
  146. package/cjs/Plaintext/Plaintext.js +2 -1
  147. package/cjs/Radio/Radio.d.ts +1 -1
  148. package/cjs/RadioGroup/RadioGroup.d.ts +2 -2
  149. package/cjs/RadioGroup/RadioGroup.js +1 -1
  150. package/cjs/RangeSlider/RangeSlider.d.ts +2 -2
  151. package/cjs/RangeSlider/RangeSlider.js +6 -4
  152. package/cjs/Rate/Character.js +4 -2
  153. package/cjs/Rate/Rate.js +2 -1
  154. package/cjs/Ripple/Ripple.js +1 -1
  155. package/cjs/SelectPicker/SelectPicker.js +4 -4
  156. package/cjs/Sidenav/Node.d.ts +1 -1
  157. package/cjs/Sidenav/Sidenav.d.ts +4 -4
  158. package/cjs/Sidenav/Sidenav.js +5 -2
  159. package/cjs/Sidenav/SidenavDropdown.js +11 -8
  160. package/cjs/Sidenav/SidenavDropdownItem.js +10 -5
  161. package/cjs/Sidenav/SidenavDropdownMenu.js +9 -5
  162. package/cjs/Sidenav/SidenavItem.d.ts +1 -1
  163. package/cjs/Sidenav/SidenavItem.js +4 -0
  164. package/cjs/Slider/Graduated.d.ts +5 -5
  165. package/cjs/Slider/Handle.d.ts +1 -1
  166. package/cjs/Slider/Handle.js +10 -6
  167. package/cjs/Slider/Mark.d.ts +1 -1
  168. package/cjs/Slider/Slider.d.ts +1 -1
  169. package/cjs/Slider/Slider.js +2 -2
  170. package/cjs/Slider/utils.d.ts +2 -1
  171. package/cjs/Slider/utils.js +4 -5
  172. package/cjs/Steps/StepItem.js +2 -2
  173. package/cjs/TagInput/index.js +1 -1
  174. package/cjs/Toggle/Toggle.js +1 -1
  175. package/cjs/Tree/Tree.d.ts +3 -1
  176. package/cjs/TreePicker/TreeNode.js +6 -8
  177. package/cjs/TreePicker/TreePicker.js +31 -25
  178. package/cjs/Uploader/UploadFileItem.d.ts +1 -1
  179. package/cjs/Uploader/UploadFileItem.js +2 -2
  180. package/cjs/Uploader/UploadTrigger.d.ts +1 -1
  181. package/cjs/Uploader/UploadTrigger.js +2 -3
  182. package/cjs/Uploader/Uploader.d.ts +5 -5
  183. package/cjs/Uploader/Uploader.js +1 -2
  184. package/cjs/index.d.ts +2 -0
  185. package/cjs/index.js +5 -1
  186. package/cjs/locales/index.d.ts +3 -3
  187. package/cjs/toaster/ToastContainer.d.ts +1 -1
  188. package/cjs/toaster/ToastContainer.js +1 -1
  189. package/cjs/toaster/toaster.js +3 -1
  190. package/cjs/utils/BrowserDetection.js +1 -1
  191. package/cjs/utils/ReactChildren.d.ts +2 -2
  192. package/cjs/utils/ajaxUpload.d.ts +1 -1
  193. package/cjs/utils/ajaxUpload.js +5 -4
  194. package/cjs/utils/appendTooltip.d.ts +1 -1
  195. package/cjs/utils/constants.d.ts +4 -4
  196. package/cjs/utils/createChainedFunction.d.ts +1 -1
  197. package/cjs/utils/getDataGroupBy.d.ts +1 -1
  198. package/cjs/utils/mergeRefs.d.ts +2 -2
  199. package/cjs/utils/previewFile.d.ts +1 -1
  200. package/cjs/utils/propTypeChecker.d.ts +6 -2
  201. package/cjs/utils/propTypeChecker.js +7 -6
  202. package/cjs/utils/reactToString.d.ts +2 -1
  203. package/cjs/utils/statusIcons.d.ts +1 -1
  204. package/cjs/utils/stringToObject.d.ts +1 -1
  205. package/cjs/utils/treeUtils.d.ts +32 -29
  206. package/cjs/utils/treeUtils.js +46 -23
  207. package/cjs/utils/useControlled.d.ts +6 -1
  208. package/cjs/utils/useControlled.js +0 -8
  209. package/cjs/utils/useCustom.js +6 -4
  210. package/cjs/utils/useFocus.d.ts +2 -2
  211. package/cjs/utils/usePortal.d.ts +1 -1
  212. package/cjs/utils/useRootClose.d.ts +2 -2
  213. package/cjs/utils/useTimeout.d.ts +1 -1
  214. package/cjs/utils/useTimeout.js +5 -3
  215. package/dist/rsuite-rtl.css +40 -159
  216. package/dist/rsuite-rtl.min.css +1 -1
  217. package/dist/rsuite-rtl.min.css.map +1 -1
  218. package/dist/rsuite.css +40 -159
  219. package/dist/rsuite.js +146 -102
  220. package/dist/rsuite.js.map +1 -1
  221. package/dist/rsuite.min.css +1 -1
  222. package/dist/rsuite.min.css.map +1 -1
  223. package/dist/rsuite.min.js +1 -1
  224. package/dist/rsuite.min.js.map +1 -1
  225. package/esm/@types/common.d.ts +9 -8
  226. package/esm/@types/utils.d.ts +12 -0
  227. package/esm/Affix/Affix.js +5 -5
  228. package/esm/Animation/Transition.d.ts +21 -12
  229. package/esm/Animation/Transition.js +4 -1
  230. package/esm/AutoComplete/AutoComplete.js +1 -1
  231. package/esm/AutoComplete/utils.d.ts +1 -1
  232. package/esm/Avatar/Avatar.js +7 -3
  233. package/esm/AvatarGroup/AvatarGroup.d.ts +15 -0
  234. package/esm/AvatarGroup/AvatarGroup.js +54 -0
  235. package/esm/AvatarGroup/index.d.ts +3 -0
  236. package/esm/AvatarGroup/index.js +2 -0
  237. package/esm/Breadcrumb/Breadcrumb.js +1 -1
  238. package/esm/Button/Button.js +6 -2
  239. package/esm/ButtonGroup/ButtonGroup.js +7 -2
  240. package/esm/ButtonGroup/ButtonGroupContext.d.ts +7 -0
  241. package/esm/ButtonGroup/ButtonGroupContext.js +3 -0
  242. package/esm/ButtonGroup/index.d.ts +2 -0
  243. package/esm/ButtonGroup/index.js +2 -0
  244. package/esm/Calendar/Calendar.d.ts +4 -4
  245. package/esm/Calendar/Calendar.js +5 -2
  246. package/esm/Calendar/CalendarContext.js +1 -1
  247. package/esm/Calendar/TableRow.js +1 -1
  248. package/esm/Calendar/TimeDropdown.js +5 -4
  249. package/esm/Calendar/types.d.ts +2 -2
  250. package/esm/Calendar/useCalendarDate.d.ts +2 -2
  251. package/esm/Carousel/Carousel.d.ts +1 -1
  252. package/esm/Carousel/Carousel.js +1 -1
  253. package/esm/Cascader/Cascader.d.ts +1 -1
  254. package/esm/Cascader/Cascader.js +10 -10
  255. package/esm/Cascader/DropdownMenu.d.ts +5 -4
  256. package/esm/Cascader/utils.d.ts +3 -3
  257. package/esm/CheckPicker/CheckPicker.js +4 -4
  258. package/esm/CheckTreePicker/CheckTreeNode.d.ts +1 -1
  259. package/esm/CheckTreePicker/CheckTreeNode.js +4 -7
  260. package/esm/CheckTreePicker/CheckTreePicker.js +28 -23
  261. package/esm/CheckTreePicker/utils.d.ts +3 -1
  262. package/esm/CheckTreePicker/utils.js +12 -10
  263. package/esm/Checkbox/Checkbox.d.ts +1 -1
  264. package/esm/CustomProvider/CustomProvider.d.ts +31 -57
  265. package/esm/DOMHelper/index.d.ts +12 -12
  266. package/esm/DatePicker/DatePicker.d.ts +1 -1
  267. package/esm/DatePicker/DatePicker.js +14 -9
  268. package/esm/DatePicker/Toolbar.d.ts +12 -9
  269. package/esm/DatePicker/Toolbar.js +6 -8
  270. package/esm/DatePicker/types.d.ts +4 -4
  271. package/esm/DatePicker/utils.d.ts +4 -3
  272. package/esm/DateRangePicker/Calendar.d.ts +8 -7
  273. package/esm/DateRangePicker/Calendar.js +1 -1
  274. package/esm/DateRangePicker/DateRangePicker.d.ts +6 -6
  275. package/esm/DateRangePicker/DateRangePicker.js +105 -108
  276. package/esm/DateRangePicker/types.d.ts +2 -1
  277. package/esm/DateRangePicker/utils.d.ts +6 -6
  278. package/esm/DateRangePicker/utils.js +6 -2
  279. package/esm/Disclosure/Disclosure.js +4 -2
  280. package/esm/Disclosure/DisclosureButton.js +8 -7
  281. package/esm/Disclosure/DisclosureContent.js +5 -7
  282. package/esm/Disclosure/DisclosureContext.d.ts +2 -2
  283. package/esm/Disclosure/useDisclosureContext.d.ts +2 -0
  284. package/esm/Disclosure/useDisclosureContext.js +11 -0
  285. package/esm/Dropdown/Dropdown.d.ts +1 -1
  286. package/esm/Dropdown/DropdownContext.d.ts +2 -2
  287. package/esm/Dropdown/DropdownItem.js +1 -1
  288. package/esm/Dropdown/DropdownMenu.d.ts +3 -3
  289. package/esm/Dropdown/DropdownState.d.ts +1 -1
  290. package/esm/Dropdown/DropdownToggle.js +2 -1
  291. package/esm/Dropdown/useRenderDropdownItem.d.ts +1 -1
  292. package/esm/Form/Form.js +1 -1
  293. package/esm/Form/FormContext.d.ts +1 -1
  294. package/esm/FormControl/FormControl.d.ts +1 -1
  295. package/esm/FormControl/FormControl.js +5 -4
  296. package/esm/FormGroup/FormGroup.d.ts +1 -1
  297. package/esm/Input/Input.d.ts +3 -2
  298. package/esm/InputGroup/InputGroup.d.ts +1 -1
  299. package/esm/InputNumber/InputNumber.js +6 -2
  300. package/esm/InputPicker/InputAutosize.js +4 -4
  301. package/esm/InputPicker/InputPicker.d.ts +2 -2
  302. package/esm/InputPicker/InputPicker.js +15 -10
  303. package/esm/List/ListContext.d.ts +1 -1
  304. package/esm/List/ListContext.js +7 -1
  305. package/esm/List/helper/AutoScroller.js +4 -2
  306. package/esm/List/helper/useManager.d.ts +3 -3
  307. package/esm/List/helper/useManager.js +1 -1
  308. package/esm/List/helper/useSortHelper.d.ts +3 -3
  309. package/esm/List/helper/useSortHelper.js +6 -4
  310. package/esm/List/helper/utils.d.ts +2 -2
  311. package/esm/MaskedInput/TextMask.d.ts +5 -5
  312. package/esm/MaskedInput/adjustCaretPosition.d.ts +6 -6
  313. package/esm/MaskedInput/conformToMask.js +5 -4
  314. package/esm/MaskedInput/createTextMaskInputElement.d.ts +2 -2
  315. package/esm/MaskedInput/utilities.d.ts +1 -1
  316. package/esm/Menu/Menu.js +13 -7
  317. package/esm/Menu/MenuContext.d.ts +1 -1
  318. package/esm/Menu/MenuItem.d.ts +1 -1
  319. package/esm/Menu/MenuItem.js +18 -15
  320. package/esm/Menu/Menubar.js +7 -8
  321. package/esm/Menu/useMenu.js +17 -7
  322. package/esm/Modal/Modal.js +12 -6
  323. package/esm/Modal/ModalContext.d.ts +2 -2
  324. package/esm/Modal/utils.d.ts +1 -1
  325. package/esm/Modal/utils.js +3 -5
  326. package/esm/MultiCascader/DropdownMenu.d.ts +4 -4
  327. package/esm/MultiCascader/MultiCascader.js +6 -6
  328. package/esm/MultiCascader/utils.d.ts +14 -14
  329. package/esm/Nav/Nav.d.ts +1 -1
  330. package/esm/Nav/NavContext.d.ts +1 -1
  331. package/esm/Nav/NavItem.d.ts +1 -1
  332. package/esm/Navbar/Navbar.js +1 -1
  333. package/esm/Navbar/NavbarItem.d.ts +1 -1
  334. package/esm/Overlay/Modal.d.ts +2 -2
  335. package/esm/Overlay/Modal.js +42 -32
  336. package/esm/Overlay/ModalManager.d.ts +17 -8
  337. package/esm/Overlay/ModalManager.js +11 -20
  338. package/esm/Overlay/Overlay.d.ts +2 -2
  339. package/esm/Overlay/Overlay.js +1 -1
  340. package/esm/Overlay/OverlayTrigger.d.ts +11 -11
  341. package/esm/Overlay/OverlayTrigger.js +14 -6
  342. package/esm/Overlay/Position.d.ts +3 -3
  343. package/esm/Overlay/Position.js +14 -8
  344. package/esm/Overlay/positionUtils.d.ts +1 -1
  345. package/esm/Overlay/positionUtils.js +6 -6
  346. package/esm/Pagination/Pagination.d.ts +1 -1
  347. package/esm/Pagination/PaginationButton.d.ts +3 -3
  348. package/esm/Pagination/PaginationGroup.js +5 -3
  349. package/esm/Panel/Panel.d.ts +1 -1
  350. package/esm/Panel/Panel.js +2 -2
  351. package/esm/PanelGroup/PanelGroup.d.ts +2 -2
  352. package/esm/Picker/DropdownMenu.d.ts +8 -5
  353. package/esm/Picker/DropdownMenu.js +5 -5
  354. package/esm/Picker/PickerOverlay.js +4 -3
  355. package/esm/Picker/PickerToggle.js +4 -3
  356. package/esm/Picker/PickerToggleTrigger.d.ts +2 -6
  357. package/esm/Picker/SearchBar.d.ts +1 -1
  358. package/esm/Picker/SelectedElement.js +2 -1
  359. package/esm/Picker/propTypes.d.ts +2 -2
  360. package/esm/Picker/utils.d.ts +13 -13
  361. package/esm/Picker/utils.js +21 -18
  362. package/esm/Placeholder/PlaceholderGrid.js +1 -1
  363. package/esm/Plaintext/Plaintext.js +2 -1
  364. package/esm/Radio/Radio.d.ts +1 -1
  365. package/esm/RadioGroup/RadioGroup.d.ts +2 -2
  366. package/esm/RadioGroup/RadioGroup.js +1 -1
  367. package/esm/RangeSlider/RangeSlider.d.ts +2 -2
  368. package/esm/RangeSlider/RangeSlider.js +5 -4
  369. package/esm/Rate/Character.js +3 -2
  370. package/esm/Rate/Rate.js +2 -1
  371. package/esm/Ripple/Ripple.js +1 -1
  372. package/esm/SelectPicker/SelectPicker.js +4 -4
  373. package/esm/Sidenav/Node.d.ts +1 -1
  374. package/esm/Sidenav/Sidenav.d.ts +4 -4
  375. package/esm/Sidenav/Sidenav.js +5 -2
  376. package/esm/Sidenav/SidenavDropdown.js +11 -7
  377. package/esm/Sidenav/SidenavDropdownItem.js +11 -5
  378. package/esm/Sidenav/SidenavDropdownMenu.js +9 -5
  379. package/esm/Sidenav/SidenavItem.d.ts +1 -1
  380. package/esm/Sidenav/SidenavItem.js +4 -0
  381. package/esm/Slider/Graduated.d.ts +5 -5
  382. package/esm/Slider/Handle.d.ts +1 -1
  383. package/esm/Slider/Handle.js +10 -6
  384. package/esm/Slider/Mark.d.ts +1 -1
  385. package/esm/Slider/Slider.d.ts +1 -1
  386. package/esm/Slider/Slider.js +2 -2
  387. package/esm/Slider/utils.d.ts +2 -1
  388. package/esm/Slider/utils.js +5 -2
  389. package/esm/Steps/StepItem.js +2 -2
  390. package/esm/TagInput/index.js +1 -1
  391. package/esm/Toggle/Toggle.js +1 -1
  392. package/esm/Tree/Tree.d.ts +3 -1
  393. package/esm/TreePicker/TreeNode.js +4 -7
  394. package/esm/TreePicker/TreePicker.js +30 -23
  395. package/esm/Uploader/UploadFileItem.d.ts +1 -1
  396. package/esm/Uploader/UploadFileItem.js +2 -2
  397. package/esm/Uploader/UploadTrigger.d.ts +1 -1
  398. package/esm/Uploader/UploadTrigger.js +2 -3
  399. package/esm/Uploader/Uploader.d.ts +5 -5
  400. package/esm/Uploader/Uploader.js +1 -2
  401. package/esm/index.d.ts +2 -0
  402. package/esm/index.js +1 -0
  403. package/esm/locales/index.d.ts +3 -3
  404. package/esm/toaster/ToastContainer.d.ts +1 -1
  405. package/esm/toaster/ToastContainer.js +1 -1
  406. package/esm/toaster/toaster.js +3 -1
  407. package/esm/utils/BrowserDetection.js +1 -1
  408. package/esm/utils/ReactChildren.d.ts +2 -2
  409. package/esm/utils/ajaxUpload.d.ts +1 -1
  410. package/esm/utils/ajaxUpload.js +5 -4
  411. package/esm/utils/appendTooltip.d.ts +1 -1
  412. package/esm/utils/constants.d.ts +4 -4
  413. package/esm/utils/createChainedFunction.d.ts +1 -1
  414. package/esm/utils/getDataGroupBy.d.ts +1 -1
  415. package/esm/utils/mergeRefs.d.ts +2 -2
  416. package/esm/utils/previewFile.d.ts +1 -1
  417. package/esm/utils/propTypeChecker.d.ts +6 -2
  418. package/esm/utils/propTypeChecker.js +7 -6
  419. package/esm/utils/reactToString.d.ts +2 -1
  420. package/esm/utils/statusIcons.d.ts +1 -1
  421. package/esm/utils/stringToObject.d.ts +1 -1
  422. package/esm/utils/treeUtils.d.ts +32 -29
  423. package/esm/utils/treeUtils.js +45 -21
  424. package/esm/utils/useControlled.d.ts +6 -1
  425. package/esm/utils/useControlled.js +0 -8
  426. package/esm/utils/useCustom.js +6 -4
  427. package/esm/utils/useFocus.d.ts +2 -2
  428. package/esm/utils/usePortal.d.ts +1 -1
  429. package/esm/utils/useRootClose.d.ts +2 -2
  430. package/esm/utils/useTimeout.d.ts +1 -1
  431. package/esm/utils/useTimeout.js +5 -3
  432. package/package.json +2 -2
  433. package/styles/index.less +1 -0
@@ -11,6 +11,8 @@ var _react = require("react");
11
11
 
12
12
  var _propTypes = _interopRequireDefault(require("prop-types"));
13
13
 
14
+ var _isNil = _interopRequireDefault(require("lodash/isNil"));
15
+
14
16
  var _useUniqueId = _interopRequireDefault(require("../utils/useUniqueId"));
15
17
 
16
18
  var _MenuContext = _interopRequireWildcard(require("./MenuContext"));
@@ -19,22 +21,24 @@ var _MenuContext = _interopRequireWildcard(require("./MenuContext"));
19
21
  * Headless ARIA `menuitem`
20
22
  */
21
23
  function MenuItem(props) {
22
- var _menuState$items$menu;
23
-
24
24
  var children = props.children,
25
- selected = props.selected,
26
- disabled = props.disabled,
25
+ _props$selected = props.selected,
26
+ selected = _props$selected === void 0 ? false : _props$selected,
27
+ _props$disabled = props.disabled,
28
+ disabled = _props$disabled === void 0 ? false : _props$disabled,
27
29
  onActivate = props.onActivate;
28
- var menuitemRef = (0, _react.useRef)();
30
+ var menuitemRef = (0, _react.useRef)(null);
29
31
  var menuitemId = (0, _useUniqueId.default)('menuitem-');
30
- var menu = (0, _react.useContext)(_MenuContext.default); // fixme make sure <MenuItem> is used inside a <Menu>
32
+ var menu = (0, _react.useContext)(_MenuContext.default);
31
33
 
32
- var _ref = menu !== null && menu !== void 0 ? menu : [],
33
- menuState = _ref[0],
34
- dispatch = _ref[1]; // Whether this menuitem has focus (indicated by `aria-activedescendant` from parent menu)
34
+ if (!menu) {
35
+ throw new Error('<MenuItem> must be rendered within a <Menu>');
36
+ }
35
37
 
38
+ var menuState = menu[0],
39
+ dispatch = menu[1]; // Whether this menuitem has focus (indicated by `aria-activedescendant` from parent menu)
36
40
 
37
- var hasFocus = (menuState === null || menuState === void 0 ? void 0 : (_menuState$items$menu = menuState.items[menuState === null || menuState === void 0 ? void 0 : menuState.activeItemIndex]) === null || _menuState$items$menu === void 0 ? void 0 : _menuState$items$menu.element) === menuitemRef.current && !!menuitemRef.current;
41
+ var hasFocus = !(0, _isNil.default)(menuitemRef.current) && !(0, _isNil.default)(menuState.activeItemIndex) && menuState.items[menuState.activeItemIndex].element === menuitemRef.current;
38
42
  var handleClick = (0, _react.useCallback)(function (event) {
39
43
  if (disabled) {
40
44
  return;
@@ -44,17 +48,17 @@ function MenuItem(props) {
44
48
  }, [disabled, onActivate]); // Gain/release focus on mousedown in `menubar`
45
49
 
46
50
  var handleMouseDown = (0, _react.useCallback)(function () {
47
- if (!hasFocus) {
51
+ if (!(0, _isNil.default)(menuitemRef.current) && !hasFocus) {
48
52
  dispatch({
49
53
  type: _MenuContext.MenuActionTypes.MoveFocus,
50
54
  to: _MenuContext.MoveFocusTo.Specific,
51
55
  id: menuitemRef.current.id
52
56
  });
53
57
  }
54
- }, [hasFocus, dispatch]); // Gain/release focus on mouseenter/mouseleave in `menu`
58
+ }, [dispatch]); // Gain/release focus on mouseenter/mouseleave in `menu`
55
59
 
56
60
  var handleMouseMove = (0, _react.useCallback)(function () {
57
- if (!hasFocus) {
61
+ if (!(0, _isNil.default)(menuitemRef.current) && !hasFocus) {
58
62
  dispatch({
59
63
  type: _MenuContext.MenuActionTypes.MoveFocus,
60
64
  to: _MenuContext.MoveFocusTo.Specific,
@@ -70,7 +74,7 @@ function MenuItem(props) {
70
74
  }, [dispatch]);
71
75
  (0, _react.useEffect)(function () {
72
76
  var menuitemElement = menuitemRef.current;
73
- dispatch === null || dispatch === void 0 ? void 0 : dispatch({
77
+ dispatch({
74
78
  type: _MenuContext.MenuActionTypes.RegisterItem,
75
79
  element: menuitemElement,
76
80
  props: {
@@ -78,7 +82,7 @@ function MenuItem(props) {
78
82
  }
79
83
  });
80
84
  return function () {
81
- dispatch === null || dispatch === void 0 ? void 0 : dispatch({
85
+ dispatch({
82
86
  type: _MenuContext.MenuActionTypes.UnregisterItem,
83
87
  id: menuitemElement.id
84
88
  });
@@ -9,6 +9,8 @@ exports.default = Menubar;
9
9
 
10
10
  var _react = _interopRequireWildcard(require("react"));
11
11
 
12
+ var _isNil = _interopRequireDefault(require("lodash/isNil"));
13
+
12
14
  var _MenuContext = _interopRequireWildcard(require("./MenuContext"));
13
15
 
14
16
  var _utils = require("../utils");
@@ -19,8 +21,6 @@ var _useMenu = _interopRequireDefault(require("./useMenu"));
19
21
 
20
22
  // Headless ARIA `menubar`
21
23
  function Menubar(_ref) {
22
- var _items$activeItemInde;
23
-
24
24
  var _ref$vertical = _ref.vertical,
25
25
  vertical = _ref$vertical === void 0 ? false : _ref$vertical,
26
26
  children = _ref.children,
@@ -32,7 +32,7 @@ function Menubar(_ref) {
32
32
  items = _menubar$.items,
33
33
  activeItemIndex = _menubar$.activeItemIndex,
34
34
  dispatch = menubar[1];
35
- var menubarElementRef = (0, _react.useRef)();
35
+ var menubarElementRef = (0, _react.useRef)(null);
36
36
  var onFocus = (0, _react.useCallback)(function (event) {
37
37
  // Focus moves inside Menubar
38
38
  if ((0, _events.isFocusEntering)(event)) {
@@ -58,7 +58,7 @@ function Menubar(_ref) {
58
58
  rtl = _useCustom.rtl;
59
59
 
60
60
  var onKeyDown = (0, _react.useCallback)(function (event) {
61
- var activeItem = items[activeItemIndex];
61
+ var activeItemElement = (0, _isNil.default)(activeItemIndex) ? null : items[activeItemIndex].element;
62
62
 
63
63
  switch (true) {
64
64
  case !vertical && !rtl && event.key === _utils.KEY_VALUES.RIGHT:
@@ -104,10 +104,10 @@ function Menubar(_ref) {
104
104
  case !vertical && event.key === _utils.KEY_VALUES.DOWN:
105
105
  case vertical && !rtl && event.key === _utils.KEY_VALUES.RIGHT:
106
106
  case vertical && rtl && event.key === _utils.KEY_VALUES.LEFT:
107
- if ((activeItem === null || activeItem === void 0 ? void 0 : activeItem.element.getAttribute('aria-haspopup')) === 'menu') {
107
+ if ((activeItemElement === null || activeItemElement === void 0 ? void 0 : activeItemElement.getAttribute('aria-haspopup')) === 'menu') {
108
108
  event.preventDefault();
109
109
  event.stopPropagation();
110
- activeItem.element.click();
110
+ activeItemElement.click();
111
111
  }
112
112
 
113
113
  break;
@@ -116,7 +116,7 @@ function Menubar(_ref) {
116
116
  case event.key === _utils.KEY_VALUES.SPACE:
117
117
  event.preventDefault();
118
118
  event.stopPropagation();
119
- activeItem === null || activeItem === void 0 ? void 0 : activeItem.element.click();
119
+ activeItemElement === null || activeItemElement === void 0 ? void 0 : activeItemElement.click();
120
120
  break;
121
121
  }
122
122
  }, [rtl, items, activeItemIndex, dispatch, vertical]); // Only used for handling click events bubbling from children
@@ -138,7 +138,7 @@ function Menubar(_ref) {
138
138
  onBlur: onBlur,
139
139
  onKeyDown: onKeyDown,
140
140
  onClick: onClick,
141
- 'aria-activedescendant': (_items$activeItemInde = items[activeItemIndex]) === null || _items$activeItemInde === void 0 ? void 0 : _items$activeItemInde.element.id,
141
+ 'aria-activedescendant': (0, _isNil.default)(activeItemIndex) ? undefined : items[activeItemIndex].element.id,
142
142
  'aria-orientation': vertical ? 'vertical' : undefined // implicitly set 'horizontal'
143
143
 
144
144
  }, menubarElementRef));
@@ -57,8 +57,10 @@ function menuReducer(state, action) {
57
57
 
58
58
  switch (action.to) {
59
59
  case _MenuContext.MoveFocusTo.Next:
60
- for (var i = nextActiveItemIndex === null ? 0 : activeItemIndex + 1; i < items.length; i++) {
61
- if (!items[i].props.disabled) {
60
+ for (var i = activeItemIndex === null ? 0 : activeItemIndex + 1; i < items.length; i++) {
61
+ var _items$i$props;
62
+
63
+ if (!((_items$i$props = items[i].props) !== null && _items$i$props !== void 0 && _items$i$props.disabled)) {
62
64
  nextActiveItemIndex = i;
63
65
  break;
64
66
  }
@@ -67,8 +69,10 @@ function menuReducer(state, action) {
67
69
  break;
68
70
 
69
71
  case _MenuContext.MoveFocusTo.Prev:
70
- for (var _i = nextActiveItemIndex === null ? items.length - 1 : activeItemIndex - 1; _i >= 0; _i--) {
71
- if (!items[_i].props.disabled) {
72
+ for (var _i = activeItemIndex === null ? items.length - 1 : activeItemIndex - 1; _i >= 0; _i--) {
73
+ var _items$_i$props;
74
+
75
+ if (!((_items$_i$props = items[_i].props) !== null && _items$_i$props !== void 0 && _items$_i$props.disabled)) {
72
76
  nextActiveItemIndex = _i;
73
77
  break;
74
78
  }
@@ -78,7 +82,9 @@ function menuReducer(state, action) {
78
82
 
79
83
  case _MenuContext.MoveFocusTo.First:
80
84
  for (var _i2 = 0; _i2 < items.length; _i2++) {
81
- if (!items[_i2].props.disabled) {
85
+ var _items$_i2$props;
86
+
87
+ if (!((_items$_i2$props = items[_i2].props) !== null && _items$_i2$props !== void 0 && _items$_i2$props.disabled)) {
82
88
  nextActiveItemIndex = _i2;
83
89
  break;
84
90
  }
@@ -88,7 +94,9 @@ function menuReducer(state, action) {
88
94
 
89
95
  case _MenuContext.MoveFocusTo.Last:
90
96
  for (var _i3 = items.length - 1; _i3 >= 0; _i3--) {
91
- if (!items[_i3].props.disabled) {
97
+ var _items$_i3$props;
98
+
99
+ if (!((_items$_i3$props = items[_i3].props) !== null && _items$_i3$props !== void 0 && _items$_i3$props.disabled)) {
92
100
  nextActiveItemIndex = _i3;
93
101
  break;
94
102
  }
@@ -98,7 +106,9 @@ function menuReducer(state, action) {
98
106
 
99
107
  case _MenuContext.MoveFocusTo.Specific:
100
108
  for (var _i4 = 0; _i4 < items.length; _i4++) {
101
- if (items[_i4].element.id === action.id && !items[_i4].props.disabled) {
109
+ var _items$_i4$props;
110
+
111
+ if (items[_i4].element.id === action.id && !((_items$_i4$props = items[_i4].props) !== null && _items$_i4$props !== void 0 && _items$_i4$props.disabled)) {
102
112
  nextActiveItemIndex = _i4;
103
113
  break;
104
114
  }
@@ -21,7 +21,7 @@ var _pick = _interopRequireDefault(require("lodash/pick"));
21
21
 
22
22
  var _on = _interopRequireDefault(require("dom-lib/on"));
23
23
 
24
- var _getTransitionEnd = _interopRequireDefault(require("dom-lib/getTransitionEnd"));
24
+ var _getAnimationEnd = _interopRequireDefault(require("dom-lib/getAnimationEnd"));
25
25
 
26
26
  var _Modal = _interopRequireWildcard(require("../Overlay/Modal"));
27
27
 
@@ -70,7 +70,8 @@ var Modal = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
70
70
  animationTimeout = _props$animationTimeo === void 0 ? 300 : _props$animationTimeo,
71
71
  _props$overflow = props.overflow,
72
72
  overflow = _props$overflow === void 0 ? true : _props$overflow,
73
- drawer = props.drawer,
73
+ _props$drawer = props.drawer,
74
+ drawer = _props$drawer === void 0 ? false : _props$drawer,
74
75
  onClose = props.onClose,
75
76
  onEntered = props.onEntered,
76
77
  onEntering = props.onEntering,
@@ -92,7 +93,7 @@ var Modal = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
92
93
  var classes = merge(className, prefix(size, {
93
94
  full: full
94
95
  }));
95
- var dialogRef = (0, _react.useRef)();
96
+ var dialogRef = (0, _react.useRef)(null);
96
97
  var transitionEndListener = (0, _react.useRef)(); // The style of the Modal body will be updated with the size of the window or container.
97
98
 
98
99
  var _useBodyStyles = (0, _utils2.useBodyStyles)(dialogRef, {
@@ -124,9 +125,13 @@ var Modal = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
124
125
  // When the value of `backdrop` is `static`, a jitter animation will be added to the dialog when clicked.
125
126
  if (backdrop === 'static') {
126
127
  setShake(true);
127
- transitionEndListener.current = (0, _on.default)(dialogRef.current, (0, _getTransitionEnd.default)(), function () {
128
- setShake(false);
129
- });
128
+
129
+ if (!transitionEndListener.current && dialogRef.current) {
130
+ //fix: https://github.com/rsuite/rsuite/blob/a93d13c14fb20cc58204babe3331d3c3da3fe1fd/src/Modal/styles/index.less#L59
131
+ transitionEndListener.current = (0, _on.default)(dialogRef.current, (0, _getAnimationEnd.default)(), function () {
132
+ setShake(false);
133
+ });
134
+ }
130
135
  }
131
136
  }, [backdrop]);
132
137
  var handleExited = (0, _react.useCallback)(function (node) {
@@ -135,6 +140,7 @@ var Modal = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
135
140
  onExited === null || onExited === void 0 ? void 0 : onExited(node);
136
141
  onDestroyEvents();
137
142
  (_transitionEndListene = transitionEndListener.current) === null || _transitionEndListene === void 0 ? void 0 : _transitionEndListene.off();
143
+ transitionEndListener.current = null;
138
144
  }, [onDestroyEvents, onExited]);
139
145
  var handleEntered = (0, _react.useCallback)(function (node) {
140
146
  onEntered === null || onEntered === void 0 ? void 0 : onEntered(node);
@@ -3,10 +3,10 @@ export interface ModalContextProps {
3
3
  /** ID of the dialog element */
4
4
  dialogId: string;
5
5
  /** Pass the close event callback to the header close button. */
6
- onModalClose: (event: React.MouseEvent<Element, MouseEvent>) => void;
6
+ onModalClose?: (event: React.MouseEvent<Element, MouseEvent>) => void;
7
7
  /** Pass the latest style to body. */
8
8
  getBodyStyles?: () => React.CSSProperties;
9
9
  /** Whether this Modal is a Drawer */
10
10
  isDrawer: boolean;
11
11
  }
12
- export declare const ModalContext: React.Context<ModalContextProps>;
12
+ export declare const ModalContext: React.Context<ModalContextProps | null>;
@@ -3,4 +3,4 @@ export declare const useBodyStyles: (ref: React.RefObject<HTMLElement>, options:
3
3
  overflow: boolean;
4
4
  drawer: boolean;
5
5
  prefix: (...classes: any) => string;
6
- }) => [import("react").CSSProperties, (entering?: boolean) => void, () => void];
6
+ }) => [import("react").CSSProperties, (entering?: boolean | undefined) => void, () => void];
@@ -22,7 +22,7 @@ var useBodyStyles = function useBodyStyles(ref, options) {
22
22
  drawer = options.drawer,
23
23
  prefix = options.prefix;
24
24
  var windowResizeListener = (0, _react.useRef)();
25
- var contentElement = (0, _react.useRef)();
25
+ var contentElement = (0, _react.useRef)(null);
26
26
  var contentElementResizeObserver = (0, _react.useRef)();
27
27
  var updateBodyStyles = (0, _react.useCallback)(function (_event, entering) {
28
28
  var dialog = ref.current;
@@ -59,10 +59,8 @@ var useBodyStyles = function useBodyStyles(ref, options) {
59
59
  }, []);
60
60
  var onChangeBodyStyles = (0, _react.useCallback)(function (entering) {
61
61
  if (overflow && !drawer) {
62
- var _ref$current;
63
-
64
- updateBodyStyles(null, entering);
65
- contentElement.current = (_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : _ref$current.querySelector("." + prefix('content'));
62
+ updateBodyStyles(undefined, entering);
63
+ contentElement.current = ref.current.querySelector("." + prefix('content'));
66
64
  windowResizeListener.current = (0, _on.default)(window, 'resize', updateBodyStyles);
67
65
  contentElementResizeObserver.current = new _resizeObserver.ResizeObserver(function () {
68
66
  return updateBodyStyles();
@@ -3,15 +3,15 @@ import { ItemDataType, WithAsProps, RsRefForwardingComponent } from '../@types/c
3
3
  import { ValueType } from './MultiCascader';
4
4
  export interface DropdownMenuProps extends WithAsProps {
5
5
  disabledItemValues: ValueType;
6
- value?: ValueType;
6
+ value: ValueType;
7
7
  childrenKey: string;
8
8
  valueKey: string;
9
9
  labelKey: string;
10
- menuWidth: number;
11
- menuHeight: number | string;
10
+ menuWidth?: number;
11
+ menuHeight?: number | string;
12
12
  cascade?: boolean;
13
13
  cascadeData: ItemDataType[][];
14
- cascadePaths: ItemDataType[];
14
+ cascadePaths?: ItemDataType[];
15
15
  uncheckableItemValues: ValueType;
16
16
  renderMenuItem?: (itemLabel: React.MouseEventHandler, item: ItemDataType) => React.ReactNode;
17
17
  renderMenu?: (children: ItemDataType[], menu: React.ReactNode, parentNode?: ItemDataType, layer?: number) => React.ReactNode;
@@ -137,10 +137,10 @@ var MultiCascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
137
137
  selectedPaths = _useState2[0],
138
138
  setSelectedPaths = _useState2[1];
139
139
 
140
- var triggerRef = (0, _react.useRef)();
141
- var overlayRef = (0, _react.useRef)();
142
- var targetRef = (0, _react.useRef)();
143
- var searchInputRef = (0, _react.useRef)();
140
+ var triggerRef = (0, _react.useRef)(null);
141
+ var overlayRef = (0, _react.useRef)(null);
142
+ var targetRef = (0, _react.useRef)(null);
143
+ var searchInputRef = (0, _react.useRef)(null);
144
144
  (0, _Picker.usePublicMethods)(ref, {
145
145
  triggerRef: triggerRef,
146
146
  overlayRef: overlayRef,
@@ -188,7 +188,7 @@ var MultiCascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
188
188
  */
189
189
 
190
190
 
191
- var hasValue = selectedItems.length > 0 || (valueProp === null || valueProp === void 0 ? void 0 : valueProp.length) > 0 && (0, _isFunction.default)(renderValue);
191
+ var hasValue = selectedItems.length > 0 || Number(valueProp === null || valueProp === void 0 ? void 0 : valueProp.length) > 0 && (0, _isFunction.default)(renderValue);
192
192
 
193
193
  var _useClassNames = (0, _utils3.useClassNames)(classPrefix),
194
194
  prefix = _useClassNames.prefix,
@@ -469,7 +469,7 @@ var MultiCascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
469
469
  }
470
470
 
471
471
  if (hasValue && (0, _isFunction.default)(renderValue)) {
472
- selectedElement = renderValue(value.length ? value : valueProp, selectedItems, selectedElement); // If renderValue returns null or undefined, hasValue is false.
472
+ selectedElement = renderValue(value.length ? value : valueProp !== null && valueProp !== void 0 ? valueProp : [], selectedItems, selectedElement); // If renderValue returns null or undefined, hasValue is false.
473
473
 
474
474
  if ((0, _isNil.default)(selectedElement)) {
475
475
  hasValue = false;
@@ -5,34 +5,34 @@ export interface ItemType extends ItemDataType {
5
5
  parent?: ItemType;
6
6
  }
7
7
  interface ItemKeys {
8
- valueKey?: string;
9
- labelKey?: string;
10
- childrenKey?: string;
8
+ valueKey: string;
9
+ labelKey: string;
10
+ childrenKey: string;
11
11
  }
12
12
  /**
13
13
  * Get all parents of a node
14
14
  * @param node
15
15
  */
16
- export declare const getParents: (node: ItemType) => any[];
16
+ export declare const getParents: (node: ItemType) => ItemType[];
17
17
  /**
18
18
  * Check if any child nodes are selected.
19
19
  * @param node
20
20
  * @param value
21
21
  * @param itemKeys
22
22
  */
23
- export declare const isSomeChildChecked: (node: ItemDataType, value: ValueType, itemKeys: ItemKeys) => any;
23
+ export declare const isSomeChildChecked: (node: ItemDataType, value: ValueType, itemKeys: Omit<ItemKeys, 'labelKey'>) => any;
24
24
  /**
25
25
  * Check if the parent is selected.
26
26
  * @param node
27
27
  * @param value
28
28
  * @param itemKeys
29
29
  */
30
- export declare const isSomeParentChecked: (node: ItemDataType, value: ValueType, itemKeys: ItemKeys) => any;
31
- export declare const getOtherItemValuesByUnselectChild: (itemNode: ItemType, value: any, itemKeys: ItemKeys) => any[];
30
+ export declare const isSomeParentChecked: (node: ItemDataType, value: ValueType, itemKeys: Pick<ItemKeys, 'valueKey'>) => any;
31
+ export declare const getOtherItemValuesByUnselectChild: <T>(itemNode: ItemType, value: any, itemKeys: Omit<ItemKeys, 'labelKey'>) => T[];
32
32
  /**
33
33
  * Remove the values of all children.
34
34
  */
35
- export declare const removeAllChildrenValue: (value: ValueType, item: ItemType, itemKeys: ItemKeys) => any[];
35
+ export declare const removeAllChildrenValue: <T>(value: T[], item: ItemType, itemKeys: Omit<ItemKeys, 'labelKey'>) => T[] | undefined;
36
36
  /**
37
37
  * A hook to flatten tree structure data
38
38
  * @param data
@@ -56,12 +56,12 @@ export declare function useColumnData(flattenData: ItemType[]): {
56
56
  * @param props
57
57
  * @param flattenData
58
58
  */
59
- export declare function useCascadeValue(props: Partial<MultiCascaderProps>, flattenData: ItemType[]): {
60
- value: ValueType;
61
- setValue: import("react").Dispatch<import("react").SetStateAction<ValueType>>;
62
- splitValue: (item: ItemType, checked: boolean, value: ValueType) => {
63
- value: ValueType;
64
- removedValue: ValueType;
59
+ export declare function useCascadeValue<T>(props: Partial<MultiCascaderProps<T[]>> & ItemKeys, flattenData: ItemType[]): {
60
+ value: T[];
61
+ setValue: import("react").Dispatch<import("react").SetStateAction<T[]>>;
62
+ splitValue: (item: ItemType, checked: boolean, value: T[]) => {
63
+ value: T[];
64
+ removedValue: T[];
65
65
  };
66
66
  };
67
67
  export {};
package/cjs/Nav/Nav.d.ts CHANGED
@@ -16,7 +16,7 @@ export interface NavProps<T = any> extends WithAsProps, Omit<React.HTMLAttribute
16
16
  /** Active key, corresponding to eventkey in <Nav.item>. */
17
17
  activeKey?: T;
18
18
  /** Callback function triggered after selection */
19
- onSelect?: (eventKey: T, event: React.SyntheticEvent) => void;
19
+ onSelect?: (eventKey: T | undefined, event: React.SyntheticEvent) => void;
20
20
  }
21
21
  interface NavComponent extends RsRefForwardingComponent<'div', NavProps> {
22
22
  Dropdown: typeof Dropdown;
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  export interface NavContextProps {
3
3
  activeKey: string | null;
4
- onSelect: (eventKey: string, event: React.SyntheticEvent) => void;
4
+ onSelect?: (eventKey: string | undefined, event: React.SyntheticEvent) => void;
5
5
  }
6
6
  declare const NavContext: React.Context<NavContextProps>;
7
7
  export default NavContext;
@@ -17,7 +17,7 @@ export interface NavItemProps<T = string> extends WithAsProps, Omit<React.HTMLAt
17
17
  /** Providing a `href` will render an `<a>` element */
18
18
  href?: string;
19
19
  /** Select the callback function that the event triggers. */
20
- onSelect?: (eventKey: T, event: React.SyntheticEvent) => void;
20
+ onSelect?: (eventKey: T | undefined, event: React.SyntheticEvent) => void;
21
21
  }
22
22
  /**
23
23
  * The <Nav.Item> API
@@ -19,7 +19,7 @@ var _NavbarBrand = _interopRequireDefault(require("./NavbarBrand"));
19
19
 
20
20
  var _utils = require("../utils");
21
21
 
22
- var NavbarContext = /*#__PURE__*/_react.default.createContext(null);
22
+ var NavbarContext = /*#__PURE__*/_react.default.createContext(false);
23
23
 
24
24
  exports.NavbarContext = NavbarContext;
25
25
 
@@ -13,7 +13,7 @@ export interface NavItemProps<T = string> extends WithAsProps, Omit<React.HTMLAt
13
13
  /** Providing a `href` will render an `<a>` element */
14
14
  href?: string;
15
15
  /** Select the callback function that the event triggers. */
16
- onSelect?: (eventKey: T, event: React.SyntheticEvent) => void;
16
+ onSelect?: (eventKey: T | undefined, event: React.SyntheticEvent) => void;
17
17
  }
18
18
  declare const NavbarItem: RsRefForwardingComponent<'a', NavItemProps>;
19
19
  export default NavbarItem;
@@ -44,8 +44,8 @@ interface ModalProps extends BaseModalProps {
44
44
  containerClassName?: string;
45
45
  backdropTransitionTimeout?: number;
46
46
  dialogTransitionTimeout?: number;
47
- transition: React.ElementType;
48
- onEscapeKeyUp?: React.KeyboardEventHandler;
47
+ transition?: React.ElementType;
48
+ onEsc?: React.KeyboardEventHandler;
49
49
  onBackdropClick?: React.MouseEventHandler;
50
50
  }
51
51
  declare const Modal: RsRefForwardingComponent<'div', ModalProps>;
@@ -47,6 +47,12 @@ var useModalManager = function useModalManager() {
47
47
  backdrop: null
48
48
  });
49
49
  return {
50
+ get dialog() {
51
+ var _modal$current;
52
+
53
+ return (_modal$current = modal.current) === null || _modal$current === void 0 ? void 0 : _modal$current.dialog;
54
+ },
55
+
50
56
  add: function add(containerElement, containerClassName) {
51
57
  return modalManager.add(modal.current, containerElement, containerClassName);
52
58
  },
@@ -89,7 +95,7 @@ var Modal = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
89
95
  _props$autoFocus = props.autoFocus,
90
96
  autoFocus = _props$autoFocus === void 0 ? true : _props$autoFocus,
91
97
  onBackdropClick = props.onBackdropClick,
92
- onEscapeKeyUp = props.onEscapeKeyUp,
98
+ onEsc = props.onEsc,
93
99
  onExit = props.onExit,
94
100
  onExiting = props.onExiting,
95
101
  onExited = props.onExited,
@@ -98,7 +104,7 @@ var Modal = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
98
104
  onEntered = props.onEntered,
99
105
  onClose = props.onClose,
100
106
  onOpen = props.onOpen,
101
- rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "children", "transition", "dialogTransitionTimeout", "style", "className", "container", "animationProps", "containerClassName", "keyboard", "enforceFocus", "backdrop", "backdropTransitionTimeout", "backdropStyle", "backdropClassName", "open", "autoFocus", "onBackdropClick", "onEscapeKeyUp", "onExit", "onExiting", "onExited", "onEnter", "onEntering", "onEntered", "onClose", "onOpen"]);
107
+ rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "children", "transition", "dialogTransitionTimeout", "style", "className", "container", "animationProps", "containerClassName", "keyboard", "enforceFocus", "backdrop", "backdropTransitionTimeout", "backdropStyle", "backdropClassName", "open", "autoFocus", "onBackdropClick", "onEsc", "onExit", "onExiting", "onExited", "onEnter", "onEntering", "onEntered", "onClose", "onOpen"]);
102
108
 
103
109
  var _useState = (0, _react.useState)(!open),
104
110
  exited = _useState[0],
@@ -118,19 +124,13 @@ var Modal = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
118
124
  }
119
125
 
120
126
  var mountModal = open || Transition && !exited;
121
- var rootRef = (0, _react.useRef)();
122
- var lastFocus = (0, _react.useRef)();
123
- var handleDocumentKeyUp = (0, _react.useCallback)(function (event) {
124
- if (keyboard && event.keyCode === 27 && modal.isTopModal()) {
125
- onEscapeKeyUp === null || onEscapeKeyUp === void 0 ? void 0 : onEscapeKeyUp(event);
127
+ var lastFocus = (0, _react.useRef)(null);
128
+ var handleDocumentKeyDown = (0, _react.useCallback)(function (event) {
129
+ if (keyboard && event.key === _utils2.KEY_VALUES.ESC && modal.isTopModal()) {
130
+ onEsc === null || onEsc === void 0 ? void 0 : onEsc(event);
126
131
  onClose === null || onClose === void 0 ? void 0 : onClose(event);
127
132
  }
128
- }, [keyboard, modal, onEscapeKeyUp, onClose]);
129
- var checkForFocus = (0, _react.useCallback)(function () {
130
- if (_canUseDOM.default) {
131
- lastFocus.current = document.activeElement;
132
- }
133
- }, []);
133
+ }, [keyboard, modal, onEsc, onClose]);
134
134
  var restoreLastFocus = (0, _react.useCallback)(function () {
135
135
  if (lastFocus.current) {
136
136
  var _lastFocus$current$fo, _lastFocus$current;
@@ -139,21 +139,18 @@ var Modal = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
139
139
  lastFocus.current = null;
140
140
  }
141
141
  }, []);
142
- var getDialogElement = (0, _react.useCallback)(function () {
143
- return (0, _utils2.getDOMNode)(rootRef.current);
144
- }, []);
145
142
  var handleEnforceFocus = (0, _react.useCallback)(function () {
146
143
  if (!enforceFocus || !modal.isTopModal()) {
147
144
  return;
148
145
  }
149
146
 
150
147
  var currentActiveElement = document.activeElement;
151
- var dialog = getDialogElement();
148
+ var dialog = modal.dialog;
152
149
 
153
150
  if (dialog && dialog !== currentActiveElement && !(0, _contains.default)(dialog, currentActiveElement)) {
154
151
  dialog.focus();
155
152
  }
156
- }, [enforceFocus, getDialogElement, modal]);
153
+ }, [enforceFocus, modal]);
157
154
  var handleBackdropClick = (0, _react.useCallback)(function (event) {
158
155
  if (event.target !== event.currentTarget) {
159
156
  return;
@@ -165,27 +162,40 @@ var Modal = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
165
162
  onClose === null || onClose === void 0 ? void 0 : onClose(event);
166
163
  }
167
164
  }, [backdrop, onBackdropClick, onClose]);
168
- var documentKeyupListener = (0, _react.useRef)();
169
- var docusinListener = (0, _react.useRef)();
165
+ var documentKeyDownListener = (0, _react.useRef)();
166
+ var documentFocusListener = (0, _react.useRef)();
170
167
  var handleOpen = (0, _react.useCallback)(function () {
171
- var dialog = getDialogElement();
172
168
  var containerElement = (0, _getContainer.default)(container, document.body);
173
169
  modal.add(containerElement, containerClassName);
174
- documentKeyupListener.current = (0, _on.default)(document, 'keydown', handleDocumentKeyUp);
175
- docusinListener.current = (0, _on.default)(document, 'focus', handleEnforceFocus, true);
176
- onOpen === null || onOpen === void 0 ? void 0 : onOpen();
177
- checkForFocus();
170
+
171
+ if (!documentKeyDownListener.current) {
172
+ documentKeyDownListener.current = (0, _on.default)(document, 'keydown', handleDocumentKeyDown);
173
+ }
174
+
175
+ if (!documentFocusListener.current) {
176
+ documentFocusListener.current = (0, _on.default)(document, 'focus', handleEnforceFocus, true);
177
+ }
178
+
179
+ if (_canUseDOM.default) {
180
+ lastFocus.current = document.activeElement;
181
+ }
178
182
 
179
183
  if (autoFocus) {
180
- dialog === null || dialog === void 0 ? void 0 : dialog.focus();
184
+ var _modal$dialog;
185
+
186
+ (_modal$dialog = modal.dialog) === null || _modal$dialog === void 0 ? void 0 : _modal$dialog.focus();
181
187
  }
182
- }, [autoFocus, checkForFocus, container, containerClassName, getDialogElement, handleDocumentKeyUp, handleEnforceFocus, modal, onOpen]);
188
+
189
+ onOpen === null || onOpen === void 0 ? void 0 : onOpen();
190
+ }, [autoFocus, container, containerClassName, handleDocumentKeyDown, handleEnforceFocus, modal, onOpen]);
183
191
  var handleClose = (0, _react.useCallback)(function () {
184
- var _documentKeyupListene, _docusinListener$curr;
192
+ var _documentKeyDownListe, _documentFocusListene;
185
193
 
186
194
  modal.remove();
187
- (_documentKeyupListene = documentKeyupListener.current) === null || _documentKeyupListene === void 0 ? void 0 : _documentKeyupListene.off();
188
- (_docusinListener$curr = docusinListener.current) === null || _docusinListener$curr === void 0 ? void 0 : _docusinListener$curr.off();
195
+ (_documentKeyDownListe = documentKeyDownListener.current) === null || _documentKeyDownListe === void 0 ? void 0 : _documentKeyDownListe.off();
196
+ documentKeyDownListener.current = null;
197
+ (_documentFocusListene = documentFocusListener.current) === null || _documentFocusListene === void 0 ? void 0 : _documentFocusListene.off();
198
+ documentFocusListener.current = null;
189
199
  restoreLastFocus();
190
200
  }, [modal, restoreLastFocus]);
191
201
  (0, _react.useEffect)(function () {
@@ -287,7 +297,7 @@ Modal.propTypes = (0, _extends2.default)({}, _utils.animationPropTypes, modalPro
287
297
  dialogTransitionTimeout: _propTypes.default.number,
288
298
  backdropTransitionTimeout: _propTypes.default.number,
289
299
  transition: _propTypes.default.any,
290
- onEscapeKeyUp: _propTypes.default.func,
300
+ onEsc: _propTypes.default.func,
291
301
  onBackdropClick: _propTypes.default.func
292
302
  });
293
303
  var _default = Modal;