rsuite 5.2.4 → 5.4.2

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 (511) 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 +61 -0
  6. package/CheckTreePicker/styles/index.less +14 -1
  7. package/Dropdown/styles/index.less +4 -3
  8. package/Modal/styles/index.less +23 -22
  9. package/Nav/styles/index.less +1 -0
  10. package/Navbar/styles/index.less +19 -5
  11. package/Radio/styles/index.less +6 -0
  12. package/Sidenav/styles/index.less +2 -2
  13. package/Stack/package.json +7 -0
  14. package/Stack/styles/index.less +5 -0
  15. package/TreePicker/styles/index.less +10 -14
  16. package/cjs/@types/common.d.ts +13 -12
  17. package/cjs/@types/utils.d.ts +12 -0
  18. package/cjs/Affix/Affix.js +8 -6
  19. package/cjs/Animation/Transition.d.ts +21 -12
  20. package/cjs/Animation/Transition.js +4 -1
  21. package/cjs/AutoComplete/AutoComplete.js +1 -1
  22. package/cjs/AutoComplete/utils.d.ts +1 -1
  23. package/cjs/Avatar/Avatar.js +10 -3
  24. package/cjs/AvatarGroup/AvatarGroup.d.ts +15 -0
  25. package/cjs/AvatarGroup/AvatarGroup.js +76 -0
  26. package/cjs/AvatarGroup/index.d.ts +3 -0
  27. package/cjs/AvatarGroup/index.js +11 -0
  28. package/cjs/Breadcrumb/Breadcrumb.js +1 -1
  29. package/cjs/Button/Button.js +8 -2
  30. package/cjs/ButtonGroup/ButtonGroup.js +14 -3
  31. package/cjs/ButtonGroup/ButtonGroupContext.d.ts +7 -0
  32. package/cjs/ButtonGroup/ButtonGroupContext.js +13 -0
  33. package/cjs/ButtonGroup/index.d.ts +2 -0
  34. package/cjs/ButtonGroup/index.js +3 -0
  35. package/cjs/Calendar/Calendar.d.ts +4 -4
  36. package/cjs/Calendar/Calendar.js +26 -22
  37. package/cjs/Calendar/CalendarContext.js +1 -1
  38. package/cjs/Calendar/Header.js +1 -3
  39. package/cjs/Calendar/Table.js +1 -1
  40. package/cjs/Calendar/TableRow.js +13 -8
  41. package/cjs/Calendar/TimeDropdown.js +6 -5
  42. package/cjs/Calendar/View.js +9 -5
  43. package/cjs/Calendar/types.d.ts +2 -2
  44. package/cjs/Calendar/useCalendarDate.d.ts +2 -2
  45. package/cjs/Carousel/Carousel.d.ts +1 -1
  46. package/cjs/Carousel/Carousel.js +1 -1
  47. package/cjs/Cascader/Cascader.d.ts +1 -1
  48. package/cjs/Cascader/Cascader.js +10 -10
  49. package/cjs/Cascader/DropdownMenu.d.ts +5 -4
  50. package/cjs/Cascader/utils.d.ts +10 -10
  51. package/cjs/CheckPicker/CheckPicker.d.ts +9 -4
  52. package/cjs/CheckPicker/CheckPicker.js +4 -4
  53. package/cjs/CheckPicker/test/CheckPicker.test.d.ts +1 -0
  54. package/cjs/CheckPicker/test/CheckPicker.test.js +76 -0
  55. package/cjs/CheckTree/index.js +6 -5
  56. package/cjs/CheckTreePicker/CheckTreeNode.d.ts +1 -1
  57. package/cjs/CheckTreePicker/CheckTreeNode.js +7 -9
  58. package/cjs/CheckTreePicker/CheckTreePicker.js +29 -25
  59. package/cjs/CheckTreePicker/utils.d.ts +3 -1
  60. package/cjs/CheckTreePicker/utils.js +12 -10
  61. package/cjs/Checkbox/Checkbox.d.ts +1 -1
  62. package/cjs/Container/Container.js +6 -3
  63. package/cjs/CustomProvider/CustomProvider.d.ts +31 -57
  64. package/cjs/DOMHelper/index.d.ts +12 -12
  65. package/cjs/DatePicker/DatePicker.d.ts +1 -1
  66. package/cjs/DatePicker/DatePicker.js +19 -11
  67. package/cjs/DatePicker/Toolbar.d.ts +12 -9
  68. package/cjs/DatePicker/Toolbar.js +6 -8
  69. package/cjs/DatePicker/types.d.ts +4 -4
  70. package/cjs/DatePicker/utils.d.ts +4 -3
  71. package/cjs/DateRangePicker/Calendar.d.ts +8 -7
  72. package/cjs/DateRangePicker/Calendar.js +1 -1
  73. package/cjs/DateRangePicker/DateRangePicker.d.ts +6 -6
  74. package/cjs/DateRangePicker/DateRangePicker.js +112 -111
  75. package/cjs/DateRangePicker/types.d.ts +2 -1
  76. package/cjs/DateRangePicker/utils.d.ts +6 -6
  77. package/cjs/DateRangePicker/utils.js +7 -2
  78. package/cjs/Disclosure/Disclosure.d.ts +8 -5
  79. package/cjs/Disclosure/Disclosure.js +55 -13
  80. package/cjs/Disclosure/DisclosureButton.d.ts +2 -2
  81. package/cjs/Disclosure/DisclosureButton.js +9 -7
  82. package/cjs/Disclosure/DisclosureContent.js +4 -6
  83. package/cjs/Disclosure/DisclosureContext.d.ts +8 -3
  84. package/cjs/Disclosure/useDisclosureContext.d.ts +2 -0
  85. package/cjs/Disclosure/useDisclosureContext.js +20 -0
  86. package/cjs/Dropdown/Dropdown.d.ts +1 -1
  87. package/cjs/Dropdown/Dropdown.js +1 -1
  88. package/cjs/Dropdown/DropdownContext.d.ts +2 -2
  89. package/cjs/Dropdown/DropdownItem.js +10 -11
  90. package/cjs/Dropdown/DropdownMenu.d.ts +3 -3
  91. package/cjs/Dropdown/DropdownMenu.js +81 -23
  92. package/cjs/Dropdown/DropdownState.d.ts +1 -1
  93. package/cjs/Dropdown/DropdownToggle.js +10 -2
  94. package/cjs/Dropdown/useRenderDropdownItem.d.ts +1 -1
  95. package/cjs/Form/Form.js +1 -1
  96. package/cjs/Form/FormContext.d.ts +1 -1
  97. package/cjs/FormControl/FormControl.d.ts +1 -1
  98. package/cjs/FormControl/FormControl.js +5 -4
  99. package/cjs/FormGroup/FormGroup.d.ts +1 -1
  100. package/cjs/FormGroup/FormGroup.js +9 -4
  101. package/cjs/Input/Input.d.ts +3 -2
  102. package/cjs/InputGroup/InputGroup.d.ts +1 -1
  103. package/cjs/InputNumber/InputNumber.js +6 -2
  104. package/cjs/InputPicker/InputAutosize.js +4 -4
  105. package/cjs/InputPicker/InputPicker.d.ts +2 -2
  106. package/cjs/InputPicker/InputPicker.js +15 -10
  107. package/cjs/List/ListContext.d.ts +1 -1
  108. package/cjs/List/ListContext.js +8 -1
  109. package/cjs/List/helper/AutoScroller.js +4 -2
  110. package/cjs/List/helper/useManager.d.ts +3 -3
  111. package/cjs/List/helper/useManager.js +1 -1
  112. package/cjs/List/helper/useSortHelper.d.ts +3 -3
  113. package/cjs/List/helper/useSortHelper.js +6 -4
  114. package/cjs/List/helper/utils.d.ts +2 -2
  115. package/cjs/MaskedInput/TextMask.d.ts +5 -5
  116. package/cjs/MaskedInput/adjustCaretPosition.d.ts +6 -6
  117. package/cjs/MaskedInput/conformToMask.js +5 -4
  118. package/cjs/MaskedInput/createTextMaskInputElement.d.ts +2 -2
  119. package/cjs/MaskedInput/utilities.d.ts +1 -1
  120. package/cjs/Menu/Menu.js +14 -7
  121. package/cjs/Menu/MenuContext.d.ts +1 -1
  122. package/cjs/Menu/MenuItem.d.ts +1 -1
  123. package/cjs/Menu/MenuItem.js +19 -15
  124. package/cjs/Menu/Menubar.js +8 -8
  125. package/cjs/Menu/useMenu.js +17 -7
  126. package/cjs/Modal/Modal.js +39 -21
  127. package/cjs/Modal/ModalContext.d.ts +2 -2
  128. package/cjs/Modal/utils.d.ts +1 -1
  129. package/cjs/Modal/utils.js +3 -5
  130. package/cjs/MultiCascader/DropdownMenu.d.ts +4 -4
  131. package/cjs/MultiCascader/MultiCascader.js +6 -6
  132. package/cjs/MultiCascader/utils.d.ts +17 -17
  133. package/cjs/Nav/Nav.d.ts +1 -1
  134. package/cjs/Nav/Nav.js +10 -12
  135. package/cjs/Nav/NavContext.d.ts +7 -1
  136. package/cjs/Nav/NavContext.js +1 -0
  137. package/cjs/Nav/NavItem.d.ts +1 -1
  138. package/cjs/Navbar/Navbar.js +1 -1
  139. package/cjs/Navbar/NavbarItem.d.ts +1 -1
  140. package/cjs/Navbar/index.d.ts +1 -0
  141. package/cjs/Navbar/index.js +4 -3
  142. package/cjs/Overlay/Modal.d.ts +2 -2
  143. package/cjs/Overlay/Modal.js +71 -63
  144. package/cjs/Overlay/ModalManager.d.ts +17 -8
  145. package/cjs/Overlay/ModalManager.js +11 -20
  146. package/cjs/Overlay/Overlay.d.ts +3 -3
  147. package/cjs/Overlay/Overlay.js +8 -2
  148. package/cjs/Overlay/OverlayContext.d.ts +6 -0
  149. package/cjs/Overlay/OverlayContext.js +14 -0
  150. package/cjs/Overlay/OverlayTrigger.d.ts +11 -11
  151. package/cjs/Overlay/OverlayTrigger.js +21 -7
  152. package/cjs/Overlay/Position.d.ts +4 -4
  153. package/cjs/Overlay/Position.js +14 -8
  154. package/cjs/Overlay/positionUtils.d.ts +1 -1
  155. package/cjs/Overlay/positionUtils.js +8 -8
  156. package/cjs/Pagination/Pagination.d.ts +1 -1
  157. package/cjs/Pagination/PaginationButton.d.ts +3 -3
  158. package/cjs/Pagination/PaginationGroup.js +5 -3
  159. package/cjs/Panel/Panel.d.ts +1 -1
  160. package/cjs/Panel/Panel.js +2 -2
  161. package/cjs/PanelGroup/PanelGroup.d.ts +2 -2
  162. package/cjs/PanelGroup/PanelGroup.js +8 -5
  163. package/cjs/Picker/DropdownMenu.d.ts +8 -5
  164. package/cjs/Picker/DropdownMenu.js +5 -5
  165. package/cjs/Picker/PickerOverlay.js +4 -3
  166. package/cjs/Picker/PickerToggle.js +4 -3
  167. package/cjs/Picker/PickerToggleTrigger.d.ts +2 -6
  168. package/cjs/Picker/SearchBar.d.ts +1 -1
  169. package/cjs/Picker/SelectedElement.js +2 -1
  170. package/cjs/Picker/propTypes.d.ts +5 -7
  171. package/cjs/Picker/propTypes.js +4 -3
  172. package/cjs/Picker/utils.d.ts +11 -11
  173. package/cjs/Picker/utils.js +22 -18
  174. package/cjs/Placeholder/PlaceholderGrid.js +1 -1
  175. package/cjs/Plaintext/Plaintext.js +2 -1
  176. package/cjs/Radio/Radio.d.ts +1 -1
  177. package/cjs/RadioGroup/RadioGroup.d.ts +2 -2
  178. package/cjs/RadioGroup/RadioGroup.js +1 -1
  179. package/cjs/RangeSlider/RangeSlider.d.ts +2 -2
  180. package/cjs/RangeSlider/RangeSlider.js +6 -4
  181. package/cjs/Rate/Character.js +4 -2
  182. package/cjs/Rate/Rate.js +2 -1
  183. package/cjs/Ripple/Ripple.js +1 -1
  184. package/cjs/SelectPicker/SelectPicker.d.ts +12 -5
  185. package/cjs/SelectPicker/SelectPicker.js +8 -8
  186. package/cjs/SelectPicker/index.d.ts +1 -1
  187. package/cjs/SelectPicker/test/SelectPicker.test.d.ts +1 -0
  188. package/cjs/SelectPicker/test/SelectPicker.test.js +62 -0
  189. package/cjs/Sidenav/Node.d.ts +1 -1
  190. package/cjs/Sidenav/Sidenav.d.ts +4 -4
  191. package/cjs/Sidenav/Sidenav.js +5 -2
  192. package/cjs/Sidenav/SidenavDropdown.js +11 -8
  193. package/cjs/Sidenav/SidenavDropdownItem.js +10 -5
  194. package/cjs/Sidenav/SidenavDropdownMenu.js +9 -5
  195. package/cjs/Sidenav/SidenavItem.d.ts +1 -1
  196. package/cjs/Sidenav/SidenavItem.js +4 -0
  197. package/cjs/Slider/Graduated.d.ts +5 -5
  198. package/cjs/Slider/Handle.d.ts +1 -1
  199. package/cjs/Slider/Handle.js +10 -6
  200. package/cjs/Slider/Mark.d.ts +1 -1
  201. package/cjs/Slider/Slider.d.ts +1 -1
  202. package/cjs/Slider/Slider.js +2 -2
  203. package/cjs/Slider/utils.d.ts +2 -1
  204. package/cjs/Slider/utils.js +4 -5
  205. package/cjs/Stack/Stack.d.ts +26 -0
  206. package/cjs/Stack/Stack.js +86 -0
  207. package/cjs/Stack/index.d.ts +3 -0
  208. package/cjs/Stack/index.js +11 -0
  209. package/cjs/Steps/StepItem.js +1 -1
  210. package/cjs/TagInput/index.js +1 -1
  211. package/cjs/Toggle/Toggle.js +5 -4
  212. package/cjs/Tree/Tree.d.ts +3 -2
  213. package/cjs/Tree/Tree.js +6 -5
  214. package/cjs/Tree/TreeContext.d.ts +0 -1
  215. package/cjs/TreePicker/TreeNode.js +7 -22
  216. package/cjs/TreePicker/TreePicker.js +32 -52
  217. package/cjs/Uploader/UploadFileItem.d.ts +1 -1
  218. package/cjs/Uploader/UploadFileItem.js +2 -2
  219. package/cjs/Uploader/UploadTrigger.d.ts +1 -1
  220. package/cjs/Uploader/UploadTrigger.js +2 -3
  221. package/cjs/Uploader/Uploader.d.ts +5 -5
  222. package/cjs/Uploader/Uploader.js +1 -2
  223. package/cjs/index.d.ts +6 -2
  224. package/cjs/index.js +13 -5
  225. package/cjs/locales/index.d.ts +3 -3
  226. package/cjs/toaster/ToastContainer.d.ts +1 -1
  227. package/cjs/toaster/ToastContainer.js +1 -1
  228. package/cjs/toaster/toaster.js +3 -1
  229. package/cjs/utils/BrowserDetection.js +1 -1
  230. package/cjs/utils/ReactChildren.d.ts +2 -2
  231. package/cjs/utils/ajaxUpload.d.ts +1 -1
  232. package/cjs/utils/ajaxUpload.js +5 -4
  233. package/cjs/utils/appendTooltip.d.ts +1 -1
  234. package/cjs/utils/constants.d.ts +4 -4
  235. package/cjs/utils/createChainedFunction.d.ts +1 -1
  236. package/cjs/utils/getDataGroupBy.d.ts +1 -1
  237. package/cjs/utils/index.d.ts +1 -0
  238. package/cjs/utils/index.js +7 -2
  239. package/cjs/utils/mergeRefs.d.ts +2 -2
  240. package/cjs/utils/previewFile.d.ts +1 -1
  241. package/cjs/utils/propTypeChecker.d.ts +6 -2
  242. package/cjs/utils/propTypeChecker.js +7 -6
  243. package/cjs/utils/reactToString.d.ts +2 -1
  244. package/cjs/utils/statusIcons.d.ts +1 -1
  245. package/cjs/utils/stringToObject.d.ts +1 -1
  246. package/cjs/utils/treeUtils.d.ts +35 -32
  247. package/cjs/utils/treeUtils.js +46 -23
  248. package/cjs/utils/useControlled.d.ts +6 -1
  249. package/cjs/utils/useControlled.js +0 -8
  250. package/cjs/utils/useCustom.js +6 -4
  251. package/cjs/utils/useFocus.d.ts +2 -2
  252. package/cjs/utils/useMount.d.ts +2 -0
  253. package/cjs/utils/useMount.js +19 -0
  254. package/cjs/utils/usePortal.d.ts +2 -2
  255. package/cjs/utils/useRootClose.d.ts +2 -2
  256. package/cjs/utils/useTimeout.d.ts +1 -1
  257. package/cjs/utils/useTimeout.js +5 -3
  258. package/dist/rsuite-rtl.css +95 -210
  259. package/dist/rsuite-rtl.min.css +1 -1
  260. package/dist/rsuite-rtl.min.css.map +1 -1
  261. package/dist/rsuite.css +95 -210
  262. package/dist/rsuite.js +214 -115
  263. package/dist/rsuite.js.map +1 -1
  264. package/dist/rsuite.min.css +1 -1
  265. package/dist/rsuite.min.css.map +1 -1
  266. package/dist/rsuite.min.js +1 -1
  267. package/dist/rsuite.min.js.map +1 -1
  268. package/esm/@types/common.d.ts +13 -12
  269. package/esm/@types/utils.d.ts +12 -0
  270. package/esm/Affix/Affix.js +9 -7
  271. package/esm/Animation/Transition.d.ts +21 -12
  272. package/esm/Animation/Transition.js +4 -1
  273. package/esm/AutoComplete/AutoComplete.js +1 -1
  274. package/esm/AutoComplete/utils.d.ts +1 -1
  275. package/esm/Avatar/Avatar.js +7 -3
  276. package/esm/AvatarGroup/AvatarGroup.d.ts +15 -0
  277. package/esm/AvatarGroup/AvatarGroup.js +57 -0
  278. package/esm/AvatarGroup/index.d.ts +3 -0
  279. package/esm/AvatarGroup/index.js +2 -0
  280. package/esm/Breadcrumb/Breadcrumb.js +1 -1
  281. package/esm/Button/Button.js +6 -2
  282. package/esm/ButtonGroup/ButtonGroup.js +11 -3
  283. package/esm/ButtonGroup/ButtonGroupContext.d.ts +7 -0
  284. package/esm/ButtonGroup/ButtonGroupContext.js +3 -0
  285. package/esm/ButtonGroup/index.d.ts +2 -0
  286. package/esm/ButtonGroup/index.js +2 -0
  287. package/esm/Calendar/Calendar.d.ts +4 -4
  288. package/esm/Calendar/Calendar.js +27 -23
  289. package/esm/Calendar/CalendarContext.js +1 -1
  290. package/esm/Calendar/Header.js +1 -3
  291. package/esm/Calendar/Table.js +1 -1
  292. package/esm/Calendar/TableRow.js +14 -9
  293. package/esm/Calendar/TimeDropdown.js +5 -4
  294. package/esm/Calendar/View.js +10 -6
  295. package/esm/Calendar/types.d.ts +2 -2
  296. package/esm/Calendar/useCalendarDate.d.ts +2 -2
  297. package/esm/Carousel/Carousel.d.ts +1 -1
  298. package/esm/Carousel/Carousel.js +1 -1
  299. package/esm/Cascader/Cascader.d.ts +1 -1
  300. package/esm/Cascader/Cascader.js +10 -10
  301. package/esm/Cascader/DropdownMenu.d.ts +5 -4
  302. package/esm/Cascader/utils.d.ts +10 -10
  303. package/esm/CheckPicker/CheckPicker.d.ts +9 -4
  304. package/esm/CheckPicker/CheckPicker.js +4 -4
  305. package/esm/CheckPicker/test/CheckPicker.test.d.ts +1 -0
  306. package/esm/CheckPicker/test/CheckPicker.test.js +64 -0
  307. package/esm/CheckTree/index.js +7 -6
  308. package/esm/CheckTreePicker/CheckTreeNode.d.ts +1 -1
  309. package/esm/CheckTreePicker/CheckTreeNode.js +4 -7
  310. package/esm/CheckTreePicker/CheckTreePicker.js +28 -23
  311. package/esm/CheckTreePicker/utils.d.ts +3 -1
  312. package/esm/CheckTreePicker/utils.js +12 -10
  313. package/esm/Checkbox/Checkbox.d.ts +1 -1
  314. package/esm/Container/Container.js +7 -4
  315. package/esm/CustomProvider/CustomProvider.d.ts +31 -57
  316. package/esm/DOMHelper/index.d.ts +12 -12
  317. package/esm/DatePicker/DatePicker.d.ts +1 -1
  318. package/esm/DatePicker/DatePicker.js +18 -11
  319. package/esm/DatePicker/Toolbar.d.ts +12 -9
  320. package/esm/DatePicker/Toolbar.js +6 -8
  321. package/esm/DatePicker/types.d.ts +4 -4
  322. package/esm/DatePicker/utils.d.ts +4 -3
  323. package/esm/DateRangePicker/Calendar.d.ts +8 -7
  324. package/esm/DateRangePicker/Calendar.js +1 -1
  325. package/esm/DateRangePicker/DateRangePicker.d.ts +6 -6
  326. package/esm/DateRangePicker/DateRangePicker.js +112 -111
  327. package/esm/DateRangePicker/types.d.ts +2 -1
  328. package/esm/DateRangePicker/utils.d.ts +6 -6
  329. package/esm/DateRangePicker/utils.js +6 -2
  330. package/esm/Disclosure/Disclosure.d.ts +8 -5
  331. package/esm/Disclosure/Disclosure.js +56 -15
  332. package/esm/Disclosure/DisclosureButton.d.ts +2 -2
  333. package/esm/Disclosure/DisclosureButton.js +8 -7
  334. package/esm/Disclosure/DisclosureContent.js +5 -7
  335. package/esm/Disclosure/DisclosureContext.d.ts +8 -3
  336. package/esm/Disclosure/useDisclosureContext.d.ts +2 -0
  337. package/esm/Disclosure/useDisclosureContext.js +11 -0
  338. package/esm/Dropdown/Dropdown.d.ts +1 -1
  339. package/esm/Dropdown/Dropdown.js +1 -1
  340. package/esm/Dropdown/DropdownContext.d.ts +2 -2
  341. package/esm/Dropdown/DropdownItem.js +10 -10
  342. package/esm/Dropdown/DropdownMenu.d.ts +3 -3
  343. package/esm/Dropdown/DropdownMenu.js +82 -24
  344. package/esm/Dropdown/DropdownState.d.ts +1 -1
  345. package/esm/Dropdown/DropdownToggle.js +9 -2
  346. package/esm/Dropdown/useRenderDropdownItem.d.ts +1 -1
  347. package/esm/Form/Form.js +1 -1
  348. package/esm/Form/FormContext.d.ts +1 -1
  349. package/esm/FormControl/FormControl.d.ts +1 -1
  350. package/esm/FormControl/FormControl.js +5 -4
  351. package/esm/FormGroup/FormGroup.d.ts +1 -1
  352. package/esm/FormGroup/FormGroup.js +7 -4
  353. package/esm/Input/Input.d.ts +3 -2
  354. package/esm/InputGroup/InputGroup.d.ts +1 -1
  355. package/esm/InputNumber/InputNumber.js +6 -2
  356. package/esm/InputPicker/InputAutosize.js +4 -4
  357. package/esm/InputPicker/InputPicker.d.ts +2 -2
  358. package/esm/InputPicker/InputPicker.js +15 -10
  359. package/esm/List/ListContext.d.ts +1 -1
  360. package/esm/List/ListContext.js +7 -1
  361. package/esm/List/helper/AutoScroller.js +4 -2
  362. package/esm/List/helper/useManager.d.ts +3 -3
  363. package/esm/List/helper/useManager.js +1 -1
  364. package/esm/List/helper/useSortHelper.d.ts +3 -3
  365. package/esm/List/helper/useSortHelper.js +6 -4
  366. package/esm/List/helper/utils.d.ts +2 -2
  367. package/esm/MaskedInput/TextMask.d.ts +5 -5
  368. package/esm/MaskedInput/adjustCaretPosition.d.ts +6 -6
  369. package/esm/MaskedInput/conformToMask.js +5 -4
  370. package/esm/MaskedInput/createTextMaskInputElement.d.ts +2 -2
  371. package/esm/MaskedInput/utilities.d.ts +1 -1
  372. package/esm/Menu/Menu.js +13 -7
  373. package/esm/Menu/MenuContext.d.ts +1 -1
  374. package/esm/Menu/MenuItem.d.ts +1 -1
  375. package/esm/Menu/MenuItem.js +18 -15
  376. package/esm/Menu/Menubar.js +7 -8
  377. package/esm/Menu/useMenu.js +17 -7
  378. package/esm/Modal/Modal.js +41 -23
  379. package/esm/Modal/ModalContext.d.ts +2 -2
  380. package/esm/Modal/utils.d.ts +1 -1
  381. package/esm/Modal/utils.js +3 -5
  382. package/esm/MultiCascader/DropdownMenu.d.ts +4 -4
  383. package/esm/MultiCascader/MultiCascader.js +6 -6
  384. package/esm/MultiCascader/utils.d.ts +17 -17
  385. package/esm/Nav/Nav.d.ts +1 -1
  386. package/esm/Nav/Nav.js +11 -13
  387. package/esm/Nav/NavContext.d.ts +7 -1
  388. package/esm/Nav/NavContext.js +1 -0
  389. package/esm/Nav/NavItem.d.ts +1 -1
  390. package/esm/Navbar/Navbar.js +1 -1
  391. package/esm/Navbar/NavbarItem.d.ts +1 -1
  392. package/esm/Navbar/index.d.ts +1 -0
  393. package/esm/Navbar/index.js +1 -0
  394. package/esm/Overlay/Modal.d.ts +2 -2
  395. package/esm/Overlay/Modal.js +72 -64
  396. package/esm/Overlay/ModalManager.d.ts +17 -8
  397. package/esm/Overlay/ModalManager.js +11 -20
  398. package/esm/Overlay/Overlay.d.ts +3 -3
  399. package/esm/Overlay/Overlay.js +8 -3
  400. package/esm/Overlay/OverlayContext.d.ts +6 -0
  401. package/esm/Overlay/OverlayContext.js +4 -0
  402. package/esm/Overlay/OverlayTrigger.d.ts +11 -11
  403. package/esm/Overlay/OverlayTrigger.js +21 -8
  404. package/esm/Overlay/Position.d.ts +4 -4
  405. package/esm/Overlay/Position.js +14 -8
  406. package/esm/Overlay/positionUtils.d.ts +1 -1
  407. package/esm/Overlay/positionUtils.js +6 -6
  408. package/esm/Pagination/Pagination.d.ts +1 -1
  409. package/esm/Pagination/PaginationButton.d.ts +3 -3
  410. package/esm/Pagination/PaginationGroup.js +5 -3
  411. package/esm/Panel/Panel.d.ts +1 -1
  412. package/esm/Panel/Panel.js +2 -2
  413. package/esm/PanelGroup/PanelGroup.d.ts +2 -2
  414. package/esm/PanelGroup/PanelGroup.js +9 -6
  415. package/esm/Picker/DropdownMenu.d.ts +8 -5
  416. package/esm/Picker/DropdownMenu.js +5 -5
  417. package/esm/Picker/PickerOverlay.js +4 -3
  418. package/esm/Picker/PickerToggle.js +4 -3
  419. package/esm/Picker/PickerToggleTrigger.d.ts +2 -6
  420. package/esm/Picker/SearchBar.d.ts +1 -1
  421. package/esm/Picker/SelectedElement.js +2 -1
  422. package/esm/Picker/propTypes.d.ts +5 -7
  423. package/esm/Picker/propTypes.js +4 -3
  424. package/esm/Picker/utils.d.ts +11 -11
  425. package/esm/Picker/utils.js +21 -18
  426. package/esm/Placeholder/PlaceholderGrid.js +1 -1
  427. package/esm/Plaintext/Plaintext.js +2 -1
  428. package/esm/Radio/Radio.d.ts +1 -1
  429. package/esm/RadioGroup/RadioGroup.d.ts +2 -2
  430. package/esm/RadioGroup/RadioGroup.js +1 -1
  431. package/esm/RangeSlider/RangeSlider.d.ts +2 -2
  432. package/esm/RangeSlider/RangeSlider.js +5 -4
  433. package/esm/Rate/Character.js +3 -2
  434. package/esm/Rate/Rate.js +2 -1
  435. package/esm/Ripple/Ripple.js +1 -1
  436. package/esm/SelectPicker/SelectPicker.d.ts +12 -5
  437. package/esm/SelectPicker/SelectPicker.js +8 -8
  438. package/esm/SelectPicker/index.d.ts +1 -1
  439. package/esm/SelectPicker/test/SelectPicker.test.d.ts +1 -0
  440. package/esm/SelectPicker/test/SelectPicker.test.js +52 -0
  441. package/esm/Sidenav/Node.d.ts +1 -1
  442. package/esm/Sidenav/Sidenav.d.ts +4 -4
  443. package/esm/Sidenav/Sidenav.js +5 -2
  444. package/esm/Sidenav/SidenavDropdown.js +11 -7
  445. package/esm/Sidenav/SidenavDropdownItem.js +11 -5
  446. package/esm/Sidenav/SidenavDropdownMenu.js +9 -5
  447. package/esm/Sidenav/SidenavItem.d.ts +1 -1
  448. package/esm/Sidenav/SidenavItem.js +4 -0
  449. package/esm/Slider/Graduated.d.ts +5 -5
  450. package/esm/Slider/Handle.d.ts +1 -1
  451. package/esm/Slider/Handle.js +10 -6
  452. package/esm/Slider/Mark.d.ts +1 -1
  453. package/esm/Slider/Slider.d.ts +1 -1
  454. package/esm/Slider/Slider.js +2 -2
  455. package/esm/Slider/utils.d.ts +2 -1
  456. package/esm/Slider/utils.js +5 -2
  457. package/esm/Stack/Stack.d.ts +26 -0
  458. package/esm/Stack/Stack.js +71 -0
  459. package/esm/Stack/index.d.ts +3 -0
  460. package/esm/Stack/index.js +2 -0
  461. package/esm/Steps/StepItem.js +1 -1
  462. package/esm/TagInput/index.js +1 -1
  463. package/esm/Toggle/Toggle.js +5 -4
  464. package/esm/Tree/Tree.d.ts +3 -2
  465. package/esm/Tree/Tree.js +7 -6
  466. package/esm/Tree/TreeContext.d.ts +0 -1
  467. package/esm/TreePicker/TreeNode.js +6 -21
  468. package/esm/TreePicker/TreePicker.js +31 -50
  469. package/esm/Uploader/UploadFileItem.d.ts +1 -1
  470. package/esm/Uploader/UploadFileItem.js +2 -2
  471. package/esm/Uploader/UploadTrigger.d.ts +1 -1
  472. package/esm/Uploader/UploadTrigger.js +2 -3
  473. package/esm/Uploader/Uploader.d.ts +5 -5
  474. package/esm/Uploader/Uploader.js +1 -2
  475. package/esm/index.d.ts +6 -2
  476. package/esm/index.js +3 -1
  477. package/esm/locales/index.d.ts +3 -3
  478. package/esm/toaster/ToastContainer.d.ts +1 -1
  479. package/esm/toaster/ToastContainer.js +1 -1
  480. package/esm/toaster/toaster.js +3 -1
  481. package/esm/utils/BrowserDetection.js +1 -1
  482. package/esm/utils/ReactChildren.d.ts +2 -2
  483. package/esm/utils/ajaxUpload.d.ts +1 -1
  484. package/esm/utils/ajaxUpload.js +5 -4
  485. package/esm/utils/appendTooltip.d.ts +1 -1
  486. package/esm/utils/constants.d.ts +4 -4
  487. package/esm/utils/createChainedFunction.d.ts +1 -1
  488. package/esm/utils/getDataGroupBy.d.ts +1 -1
  489. package/esm/utils/index.d.ts +1 -0
  490. package/esm/utils/index.js +2 -1
  491. package/esm/utils/mergeRefs.d.ts +2 -2
  492. package/esm/utils/previewFile.d.ts +1 -1
  493. package/esm/utils/propTypeChecker.d.ts +6 -2
  494. package/esm/utils/propTypeChecker.js +7 -6
  495. package/esm/utils/reactToString.d.ts +2 -1
  496. package/esm/utils/statusIcons.d.ts +1 -1
  497. package/esm/utils/stringToObject.d.ts +1 -1
  498. package/esm/utils/treeUtils.d.ts +35 -32
  499. package/esm/utils/treeUtils.js +45 -21
  500. package/esm/utils/useControlled.d.ts +6 -1
  501. package/esm/utils/useControlled.js +0 -8
  502. package/esm/utils/useCustom.js +6 -4
  503. package/esm/utils/useFocus.d.ts +2 -2
  504. package/esm/utils/useMount.d.ts +2 -0
  505. package/esm/utils/useMount.js +13 -0
  506. package/esm/utils/usePortal.d.ts +2 -2
  507. package/esm/utils/useRootClose.d.ts +2 -2
  508. package/esm/utils/useTimeout.d.ts +1 -1
  509. package/esm/utils/useTimeout.js +5 -3
  510. package/package.json +2 -2
  511. package/styles/index.less +2 -0
@@ -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,
@@ -89,10 +90,14 @@ var Modal = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
89
90
  merge = _useClassNames.merge,
90
91
  prefix = _useClassNames.prefix;
91
92
 
93
+ var _useState = (0, _react.useState)(false),
94
+ shake = _useState[0],
95
+ setShake = _useState[1];
96
+
92
97
  var classes = merge(className, prefix(size, {
93
98
  full: full
94
99
  }));
95
- var dialogRef = (0, _react.useRef)();
100
+ var dialogRef = (0, _react.useRef)(null);
96
101
  var transitionEndListener = (0, _react.useRef)(); // The style of the Modal body will be updated with the size of the window or container.
97
102
 
98
103
  var _useBodyStyles = (0, _utils2.useBodyStyles)(dialogRef, {
@@ -115,26 +120,13 @@ var Modal = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
115
120
  isDrawer: drawer
116
121
  };
117
122
  }, [dialogId, onClose, bodyStyles, drawer]);
118
-
119
- var _useState = (0, _react.useState)(false),
120
- shake = _useState[0],
121
- setShake = _useState[1];
122
-
123
- var handleBackdropClick = (0, _react.useCallback)(function () {
124
- // When the value of `backdrop` is `static`, a jitter animation will be added to the dialog when clicked.
125
- if (backdrop === 'static') {
126
- setShake(true);
127
- transitionEndListener.current = (0, _on.default)(dialogRef.current, (0, _getTransitionEnd.default)(), function () {
128
- setShake(false);
129
- });
130
- }
131
- }, [backdrop]);
132
123
  var handleExited = (0, _react.useCallback)(function (node) {
133
124
  var _transitionEndListene;
134
125
 
135
126
  onExited === null || onExited === void 0 ? void 0 : onExited(node);
136
127
  onDestroyEvents();
137
128
  (_transitionEndListene = transitionEndListener.current) === null || _transitionEndListene === void 0 ? void 0 : _transitionEndListene.off();
129
+ transitionEndListener.current = null;
138
130
  }, [onDestroyEvents, onExited]);
139
131
  var handleEntered = (0, _react.useCallback)(function (node) {
140
132
  onEntered === null || onEntered === void 0 ? void 0 : onEntered(node);
@@ -144,11 +136,37 @@ var Modal = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
144
136
  onEntering === null || onEntering === void 0 ? void 0 : onEntering(node);
145
137
  onChangeBodyStyles(true);
146
138
  }, [onChangeBodyStyles, onEntering]);
147
- (0, _react.useEffect)(function () {
139
+ var handleBackdropClick = (0, _react.useCallback)(function (e) {
140
+ if (e.target !== e.currentTarget) {
141
+ return;
142
+ } // When the value of `backdrop` is `static`, a jitter animation will be added to the dialog when clicked.
143
+
144
+
145
+ if (backdrop === 'static') {
146
+ setShake(true);
147
+
148
+ if (!transitionEndListener.current && dialogRef.current) {
149
+ //fix: https://github.com/rsuite/rsuite/blob/a93d13c14fb20cc58204babe3331d3c3da3fe1fd/src/Modal/styles/index.less#L59
150
+ transitionEndListener.current = (0, _on.default)(dialogRef.current, (0, _getAnimationEnd.default)(), function () {
151
+ setShake(false);
152
+ });
153
+ }
154
+
155
+ return;
156
+ }
157
+
158
+ onClose === null || onClose === void 0 ? void 0 : onClose(e);
159
+ }, [backdrop, onClose]);
160
+ var handleClick = (0, _react.useCallback)(function (e) {
161
+ if (dialogRef.current && e.target !== dialogRef.current) {
162
+ handleBackdropClick(e);
163
+ }
164
+ }, [handleBackdropClick]);
165
+ (0, _utils.useWillUnmount)(function () {
148
166
  var _transitionEndListene2;
149
167
 
150
168
  (_transitionEndListene2 = transitionEndListener.current) === null || _transitionEndListene2 === void 0 ? void 0 : _transitionEndListene2.off();
151
- }, []);
169
+ });
152
170
  return /*#__PURE__*/_react.default.createElement(_ModalContext.ModalContext.Provider, {
153
171
  value: modalContextValue
154
172
  }, /*#__PURE__*/_react.default.createElement(_Modal.default, (0, _extends2.default)({}, rest, {
@@ -156,7 +174,6 @@ var Modal = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
156
174
  backdrop: backdrop,
157
175
  open: open,
158
176
  onClose: onClose,
159
- onBackdropClick: handleBackdropClick,
160
177
  className: prefix(_templateObject || (_templateObject = (0, _taggedTemplateLiteralLoose2.default)(["wrapper"]))),
161
178
  onEntered: handleEntered,
162
179
  onEntering: handleEntering,
@@ -169,7 +186,8 @@ var Modal = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
169
186
  transition: animation ? animation : undefined,
170
187
  animationProps: animationProps,
171
188
  dialogTransitionTimeout: animationTimeout,
172
- backdropTransitionTimeout: 150
189
+ backdropTransitionTimeout: 150,
190
+ onClick: backdrop ? handleClick : undefined
173
191
  }), function (transitionProps, transitionRef) {
174
192
  var transitionClassName = transitionProps.className,
175
193
  transitionRest = (0, _objectWithoutPropertiesLoose2.default)(transitionProps, ["className"]);
@@ -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,50 +5,50 @@ 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
39
39
  */
40
40
  export declare function useFlattenData(data: ItemDataType[], itemKeys: ItemKeys): {
41
41
  addFlattenData: (children: ItemDataType[], parent: ItemDataType) => void;
42
- flattenData: ItemDataType[];
42
+ flattenData: ItemDataType<string | number>[];
43
43
  };
44
44
  /**
45
45
  * A hook for column data
46
46
  * @param flattenData
47
47
  */
48
48
  export declare function useColumnData(flattenData: ItemType[]): {
49
- columnData: ItemDataType[][];
49
+ columnData: ItemDataType<string | number>[][];
50
50
  addColumn: (column: ItemDataType[], index: number) => void;
51
- setColumnData: import("react").Dispatch<import("react").SetStateAction<ItemDataType[][]>>;
51
+ setColumnData: import("react").Dispatch<import("react").SetStateAction<ItemDataType<string | number>[][]>>;
52
52
  enforceUpdateColumnData: (nextData: ItemDataType[]) => void;
53
53
  };
54
54
  /**
@@ -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;
package/cjs/Nav/Nav.js CHANGED
@@ -75,13 +75,17 @@ var Nav = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
75
75
  onSelectFromSidenav = _ref$onSelect === void 0 ? onSelectProp : _ref$onSelect;
76
76
 
77
77
  var activeKey = activeKeyProp !== null && activeKeyProp !== void 0 ? activeKeyProp : activeKeyFromSidenav;
78
+ var contextValue = (0, _react.useMemo)(function () {
79
+ return {
80
+ withinNav: true,
81
+ activeKey: activeKey,
82
+ onSelect: onSelectProp !== null && onSelectProp !== void 0 ? onSelectProp : onSelectFromSidenav
83
+ };
84
+ }, [activeKey, onSelectFromSidenav, onSelectProp]);
78
85
 
79
86
  if (sidenav !== null && sidenav !== void 0 && sidenav.expanded) {
80
87
  return /*#__PURE__*/_react.default.createElement(_NavContext.default.Provider, {
81
- value: {
82
- activeKey: activeKey,
83
- onSelect: onSelectProp !== null && onSelectProp !== void 0 ? onSelectProp : onSelectFromSidenav
84
- }
88
+ value: contextValue
85
89
  }, /*#__PURE__*/_react.default.createElement("ul", (0, _extends2.default)({
86
90
  ref: ref,
87
91
  className: classes
@@ -92,10 +96,7 @@ var Nav = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
92
96
 
93
97
  if (sidenav) {
94
98
  return /*#__PURE__*/_react.default.createElement(_NavContext.default.Provider, {
95
- value: {
96
- activeKey: activeKey,
97
- onSelect: onSelectProp !== null && onSelectProp !== void 0 ? onSelectProp : onSelectFromSidenav
98
- }
99
+ value: contextValue
99
100
  }, /*#__PURE__*/_react.default.createElement(_Menubar.default, {
100
101
  vertical: !!sidenav
101
102
  }, function (menubar, ref) {
@@ -108,10 +109,7 @@ var Nav = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
108
109
  }
109
110
 
110
111
  return /*#__PURE__*/_react.default.createElement(_NavContext.default.Provider, {
111
- value: {
112
- activeKey: activeKey,
113
- onSelect: onSelectProp !== null && onSelectProp !== void 0 ? onSelectProp : onSelectFromSidenav
114
- }
112
+ value: contextValue
115
113
  }, /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({}, rest, {
116
114
  ref: menubarRef,
117
115
  className: classes
@@ -1,7 +1,13 @@
1
1
  import React from 'react';
2
2
  export interface NavContextProps {
3
+ /**
4
+ * Whether component is rendered within a <Nav>
5
+ *
6
+ * FIXME: Bad design. Should use NavContextProps | null to determin whether within a <Nav>
7
+ */
8
+ withinNav: boolean;
3
9
  activeKey: string | null;
4
- onSelect: (eventKey: string, event: React.SyntheticEvent) => void;
10
+ onSelect?: (eventKey: string | undefined, event: React.SyntheticEvent) => void;
5
11
  }
6
12
  declare const NavContext: React.Context<NavContextProps>;
7
13
  export default NavContext;
@@ -10,6 +10,7 @@ var _react = _interopRequireDefault(require("react"));
10
10
  var _noop = _interopRequireDefault(require("lodash/noop"));
11
11
 
12
12
  var NavContext = /*#__PURE__*/_react.default.createContext({
13
+ withinNav: false,
13
14
  activeKey: null,
14
15
  onSelect: _noop.default
15
16
  });
@@ -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;
@@ -3,4 +3,5 @@ export type { NavbarProps } from './Navbar';
3
3
  export type { NavbarBodyProps } from './NavbarBody';
4
4
  export type { NavbarHeaderProps } from './NavbarHeader';
5
5
  export type { NavbarBrandProps } from './NavbarBrand';
6
+ export { NavbarContext } from './Navbar';
6
7
  export default Navbar;
@@ -1,11 +1,12 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
4
4
 
5
5
  exports.__esModule = true;
6
- exports.default = void 0;
6
+ exports.default = exports.NavbarContext = void 0;
7
7
 
8
- var _Navbar = _interopRequireDefault(require("./Navbar"));
8
+ var _Navbar = _interopRequireWildcard(require("./Navbar"));
9
9
 
10
+ exports.NavbarContext = _Navbar.NavbarContext;
10
11
  var _default = _Navbar.default;
11
12
  exports.default = _default;
@@ -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>;