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
@@ -13,7 +13,7 @@ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runt
13
13
 
14
14
  var _Calendar = _interopRequireDefault(require("@rsuite/icons/legacy/Calendar"));
15
15
 
16
- var _isUndefined = _interopRequireDefault(require("lodash/isUndefined"));
16
+ var _isNil = _interopRequireDefault(require("lodash/isNil"));
17
17
 
18
18
  var _omit = _interopRequireDefault(require("lodash/omit"));
19
19
 
@@ -42,7 +42,7 @@ var disabledDateUtils = _interopRequireWildcard(require("./disabledDateUtils"));
42
42
  var _utils2 = require("./utils");
43
43
 
44
44
  var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
45
- var _ref, _merge;
45
+ var _ref, _ref2, _merge;
46
46
 
47
47
  var _props$as = props.as,
48
48
  Component = _props$as === void 0 ? 'div' : _props$as,
@@ -62,7 +62,8 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
62
62
  _props$format = props.format,
63
63
  formatStr = _props$format === void 0 ? 'yyyy-MM-dd' : _props$format,
64
64
  hoverRange = props.hoverRange,
65
- isoWeek = props.isoWeek,
65
+ _props$isoWeek = props.isoWeek,
66
+ isoWeek = _props$isoWeek === void 0 ? false : _props$isoWeek,
66
67
  _props$limitEndYear = props.limitEndYear,
67
68
  limitEndYear = _props$limitEndYear === void 0 ? 1000 : _props$limitEndYear,
68
69
  overrideLocale = props.locale,
@@ -104,7 +105,7 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
104
105
 
105
106
  var rangeFormatStr = "" + formatStr + character + formatStr;
106
107
 
107
- var _useControlled = (0, _utils.useControlled)(valueProp, defaultValue !== null && defaultValue !== void 0 ? defaultValue : []),
108
+ var _useControlled = (0, _utils.useControlled)(valueProp, defaultValue !== null && defaultValue !== void 0 ? defaultValue : null),
108
109
  value = _useControlled[0],
109
110
  setValue = _useControlled[1];
110
111
  /**
@@ -126,17 +127,17 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
126
127
  */
127
128
 
128
129
  var _useState = (0, _react.useState)((_ref = valueProp !== null && valueProp !== void 0 ? valueProp : defaultValue) !== null && _ref !== void 0 ? _ref : []),
129
- selectValue = _useState[0],
130
- setSelectValue = _useState[1]; // The date of the current hover, used to reduce the calculation of `handleMouseMove`
130
+ selectedDates = _useState[0],
131
+ setSelectedDates = _useState[1]; // The date of the current hover, used to reduce the calculation of `handleMouseMove`
131
132
 
132
133
 
133
- var _useState2 = (0, _react.useState)([]),
134
- hoverValue = _useState2[0],
135
- setHoverValue = _useState2[1]; // The displayed calendar panel is rendered based on this value.
134
+ var _useState2 = (0, _react.useState)(null),
135
+ hoverDateRange = _useState2[0],
136
+ setHoverDateRange = _useState2[1]; // The displayed calendar panel is rendered based on this value.
136
137
 
137
138
 
138
139
  var _useState3 = (0, _react.useState)((0, _utils2.getCalendarDate)({
139
- value: valueProp !== null && valueProp !== void 0 ? valueProp : defaultCalendarValue
140
+ value: (_ref2 = valueProp !== null && valueProp !== void 0 ? valueProp : defaultCalendarValue) !== null && _ref2 !== void 0 ? _ref2 : null
140
141
  })),
141
142
  calendarDate = _useState3[0],
142
143
  setCalendarDate = _useState3[1];
@@ -164,18 +165,18 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
164
165
  }, []); // if valueProp changed then update selectValue/hoverValue
165
166
 
166
167
  (0, _react.useEffect)(function () {
167
- setSelectValue(valueProp !== null && valueProp !== void 0 ? valueProp : []);
168
- setHoverValue(valueProp !== null && valueProp !== void 0 ? valueProp : []);
168
+ setSelectedDates(valueProp !== null && valueProp !== void 0 ? valueProp : []);
169
+ setHoverDateRange(valueProp !== null && valueProp !== void 0 ? valueProp : null);
169
170
  }, [valueProp]);
170
171
 
171
172
  var _useState5 = (0, _react.useState)(false),
172
173
  isPickerToggleActive = _useState5[0],
173
174
  setPickerToggleActive = _useState5[1];
174
175
 
175
- var rootRef = (0, _react.useRef)();
176
- var overlayRef = (0, _react.useRef)();
177
- var targetRef = (0, _react.useRef)();
178
- var triggerRef = (0, _react.useRef)();
176
+ var rootRef = (0, _react.useRef)(null);
177
+ var overlayRef = (0, _react.useRef)(null);
178
+ var targetRef = (0, _react.useRef)(null);
179
+ var triggerRef = (0, _react.useRef)(null);
179
180
  var handleCloseDropdown = (0, _react.useCallback)(function () {
180
181
  var _triggerRef$current, _triggerRef$current$c;
181
182
 
@@ -188,14 +189,10 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
188
189
  rootRef: rootRef
189
190
  });
190
191
  var getDisplayString = (0, _react.useCallback)(function (nextValue, isPlaintext) {
191
- var _nextValue, _nextValue2;
192
+ var _nextValue$, _nextValue$2;
192
193
 
193
- if (nextValue === void 0) {
194
- nextValue = value;
195
- }
196
-
197
- var startDate = (_nextValue = nextValue) === null || _nextValue === void 0 ? void 0 : _nextValue[0];
198
- var endDate = (_nextValue2 = nextValue) === null || _nextValue2 === void 0 ? void 0 : _nextValue2[1];
194
+ var startDate = (_nextValue$ = nextValue === null || nextValue === void 0 ? void 0 : nextValue[0]) !== null && _nextValue$ !== void 0 ? _nextValue$ : null;
195
+ var endDate = (_nextValue$2 = nextValue === null || nextValue === void 0 ? void 0 : nextValue[1]) !== null && _nextValue$2 !== void 0 ? _nextValue$2 : null;
199
196
 
200
197
  if (startDate && endDate) {
201
198
  var displayValue = [startDate, endDate].sort(_dateUtils.compareAsc);
@@ -214,35 +211,33 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
214
211
  }
215
212
 
216
213
  return isPlaintext ? '' : placeholder || rangeFormatStr;
217
- }, [character, formatDate, formatStr, placeholder, rangeFormatStr, renderValue, value]);
214
+ }, [character, formatDate, formatStr, placeholder, rangeFormatStr, renderValue]);
218
215
  /**
219
216
  * preset hover range
220
217
  */
221
218
 
222
219
  var getHoverRangeValue = (0, _react.useCallback)(function (date) {
223
- if (!hoverRange) {
224
- return [];
225
- }
226
-
227
- var hoverRangeFunc = hoverRange;
220
+ function getHoverRangeFunc() {
221
+ if (hoverRange === 'week') {
222
+ return (0, _partial.default)(_utils2.getWeekHoverRange, isoWeek);
223
+ } else if (hoverRange === 'month') {
224
+ return _utils2.getMonthHoverRange;
225
+ }
228
226
 
229
- if (hoverRange === 'week') {
230
- hoverRangeFunc = (0, _partial.default)(_utils2.getWeekHoverRange, isoWeek);
227
+ return hoverRange;
231
228
  }
232
229
 
233
- if (hoverRangeFunc === 'month') {
234
- hoverRangeFunc = _utils2.getMonthHoverRange;
235
- }
230
+ var hoverRangeFunc = getHoverRangeFunc();
236
231
 
237
- if (typeof hoverRangeFunc !== 'function') {
238
- return [];
232
+ if ((0, _isNil.default)(hoverRangeFunc)) {
233
+ return null;
239
234
  }
240
235
 
241
236
  var hoverValues = hoverRangeFunc(date);
242
237
  var isHoverRangeValid = hoverValues instanceof Array && hoverValues.length === 2;
243
238
 
244
239
  if (!isHoverRangeValid) {
245
- return [];
240
+ return null;
246
241
  }
247
242
 
248
243
  if (_utils.DateUtils.isAfter(hoverValues[0], hoverValues[1])) {
@@ -251,13 +246,13 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
251
246
 
252
247
  return hoverValues;
253
248
  }, [hoverRange, isoWeek]);
254
- var handleValueUpdate = (0, _react.useCallback)(function (event, nextSelectValue, closeOverlay) {
249
+ var handleValueUpdate = (0, _react.useCallback)(function (event, nextValue, closeOverlay) {
255
250
  if (closeOverlay === void 0) {
256
251
  closeOverlay = true;
257
252
  }
258
253
 
259
- var nextValue = !(0, _isUndefined.default)(nextSelectValue) ? nextSelectValue : selectValue;
260
- setSelectValue(nextValue || []);
254
+ // If nextValue is null, it means that the user is erasing the selected dates.
255
+ setSelectedDates(nextValue !== null && nextValue !== void 0 ? nextValue : []);
261
256
 
262
257
  if (!(0, _utils2.isSameRange)(nextValue, value, formatStr)) {
263
258
  setValue(nextValue);
@@ -268,40 +263,45 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
268
263
  if (closeOverlay !== false) {
269
264
  handleCloseDropdown();
270
265
  }
271
- }, [formatStr, handleCloseDropdown, onChange, selectValue, setValue, value]);
266
+ }, [formatStr, handleCloseDropdown, onChange, setValue, value]);
272
267
  /**
273
268
  * Select the date range. If oneTap is not set, you need to click twice to select the start time and end time.
274
269
  * The MouseMove event is called between the first click and the second click to update the selection state.
275
270
  */
276
271
 
277
272
  var handleMouseMove = (0, _react.useCallback)(function (date) {
278
- var hoverRangeValue = getHoverRangeValue(date); // After the first click
273
+ var nextHoverDateRange = getHoverRangeValue(date); // If hasDoneSelect is false,
274
+ // it means there's already one selected date
275
+ // and waiting for user to select the second date to complete the selection.
279
276
 
280
277
  if (!hasDoneSelect.current) {
281
- // If hoverRange is set, you need to change the value of hoverValue according to the rules
282
- if (hoverRange) {
283
- var nextHoverValue = [selectRangeValueRef.current[0], hoverRangeValue[1]];
278
+ // If `hoverRange` is set, you need to change the value of hoverDateRange according to the rules
279
+ if (!(0, _isNil.default)(nextHoverDateRange)) {
280
+ var nextSelectedDates = [selectRangeValueRef.current[0], nextHoverDateRange[1]];
284
281
 
285
- if (_utils.DateUtils.isBefore(hoverRangeValue[0], selectRangeValueRef.current[0])) {
286
- nextHoverValue[0] = hoverRangeValue[0];
287
- nextHoverValue[1] = selectRangeValueRef.current[1];
282
+ if (_utils.DateUtils.isBefore(nextHoverDateRange[0], selectRangeValueRef.current[0])) {
283
+ nextSelectedDates = [nextHoverDateRange[0], selectRangeValueRef.current[1]];
288
284
  }
289
285
 
290
- setSelectValue(nextHoverValue);
286
+ setSelectedDates(nextSelectedDates);
291
287
  } else {
292
- setHoverValue(function (prevHoverValue) {
293
- return [prevHoverValue[0], date];
288
+ setHoverDateRange(function (prevHoverValue) {
289
+ return (0, _isNil.default)(prevHoverValue) ? null : [prevHoverValue[0], date];
294
290
  });
295
- } // Before the first click, if hoverRangeValue has a value, hoverValue needs to be updated
291
+ } // Before the first click, if nextHoverDateRange has a value, hoverDateRange needs to be updated
296
292
 
297
- } else if (hoverRange && hoverRangeValue.length) {
298
- setHoverValue(hoverRangeValue);
293
+ } else if (!(0, _isNil.default)(nextHoverDateRange)) {
294
+ setHoverDateRange(nextHoverDateRange);
299
295
  }
300
- }, [getHoverRangeValue, hoverRange]);
301
- var handleSelectValueChange = (0, _react.useCallback)(function (date, event) {
302
- var nextSelectValue = Array.from(hoverValue);
296
+ }, [getHoverRangeValue]);
297
+ /**
298
+ * Callback for selecting a date cell in the calendar grid
299
+ */
300
+
301
+ var handleSelectDate = (0, _react.useCallback)(function (date, event) {
302
+ var nextSelectDates = hoverDateRange !== null && hoverDateRange !== void 0 ? hoverDateRange : [];
303
303
  var hoverRangeValue = getHoverRangeValue(date);
304
- var noHoverRangeValid = hoverRangeValue.length !== 2; // in `oneTap` mode
304
+ var noHoverRangeValid = (0, _isNil.default)(hoverRangeValue); // in `oneTap` mode
305
305
 
306
306
  if (hasDoneSelect.current && oneTap) {
307
307
  handleValueUpdate(event, noHoverRangeValid ? [(0, _utils2.setTimingMargin)(date), (0, _utils2.setTimingMargin)(date, 'right')] : hoverRangeValue);
@@ -313,32 +313,32 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
313
313
  if (noHoverRangeValid) {
314
314
  // start select
315
315
  if (hasDoneSelect.current) {
316
- nextSelectValue = [date];
316
+ nextSelectDates = [date];
317
317
  } else {
318
318
  // finish select
319
- nextSelectValue[1] = date;
319
+ nextSelectDates[1] = date;
320
320
  }
321
321
  } else {
322
322
  if (!hasDoneSelect.current) {
323
- nextSelectValue = selectValue;
323
+ nextSelectDates = selectedDates;
324
324
  selectRangeValueRef.current = null;
325
325
  } else {
326
- nextSelectValue = hoverRangeValue;
326
+ nextSelectDates = hoverRangeValue;
327
327
  selectRangeValueRef.current = hoverRangeValue;
328
328
  }
329
329
  } // If user have completed the selection, then sort
330
330
 
331
331
 
332
- if (nextSelectValue.length === 2 && _utils.DateUtils.isAfter(nextSelectValue[0], nextSelectValue[1])) {
333
- nextSelectValue.reverse();
332
+ if (nextSelectDates.length === 2 && _utils.DateUtils.isAfter(nextSelectDates[0], nextSelectDates[1])) {
333
+ nextSelectDates.reverse();
334
334
  }
335
335
 
336
- setHoverValue(nextSelectValue);
337
- setSelectValue(nextSelectValue);
338
- updateCalendarDate(nextSelectValue);
336
+ setHoverDateRange(nextSelectDates.length === 2 ? nextSelectDates : [nextSelectDates[0], nextSelectDates[0]]);
337
+ setSelectedDates(nextSelectDates);
338
+ updateCalendarDate(nextSelectDates);
339
339
  onSelect === null || onSelect === void 0 ? void 0 : onSelect(date, event);
340
340
  hasDoneSelect.current = !hasDoneSelect.current;
341
- }, [getHoverRangeValue, handleValueUpdate, hoverValue, onSelect, oneTap, selectValue, updateCalendarDate]);
341
+ }, [getHoverRangeValue, handleValueUpdate, hoverDateRange, onSelect, oneTap, selectedDates, updateCalendarDate]);
342
342
  /**
343
343
  * If `selectValue` changed, there will be the following effects.
344
344
  * 1. Check if the selection is completed.
@@ -346,19 +346,17 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
346
346
  */
347
347
 
348
348
  (0, _react.useEffect)(function () {
349
- var _selectValue$length;
350
-
351
- var selectValueLength = (_selectValue$length = selectValue === null || selectValue === void 0 ? void 0 : selectValue.length) !== null && _selectValue$length !== void 0 ? _selectValue$length : 0;
349
+ var selectValueLength = selectedDates.length;
352
350
  var doneSelected = selectValueLength === 0 || selectValueLength === 2;
353
- doneSelected && setHoverValue([]);
354
- }, [selectValue]);
351
+ doneSelected && setHoverDateRange(null);
352
+ }, [selectedDates]);
355
353
  var handleChangeCalendarDate = (0, _react.useCallback)(function (index, date) {
356
354
  var nextCalendarDate = Array.from(calendarDate);
357
355
  nextCalendarDate[index] = date;
358
356
  updateCalendarDate(nextCalendarDate);
359
357
  }, [calendarDate, updateCalendarDate]);
360
358
  var handleChangeCalendarTime = (0, _react.useCallback)(function (index, date) {
361
- setSelectValue(function (prev) {
359
+ setSelectedDates(function (prev) {
362
360
  var next = [].concat(prev);
363
361
  var clonedDate = new Date(date.valueOf()); // if next[index] is not empty, only update the time after aligning the year, month and day
364
362
 
@@ -385,24 +383,28 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
385
383
  next[index] = _utils.DateUtils.setHours(clonedDate, nextHours);
386
384
  setCalendarDate(next); // If the value already exists, update the value again.
387
385
 
388
- if (selectValue.length === 2) {
389
- setSelectValue(next);
386
+ if (selectedDates.length === 2) {
387
+ setSelectedDates(next);
390
388
  }
391
- }, [calendarDate, selectValue]);
389
+ }, [calendarDate, selectedDates]);
392
390
  /**
393
391
  * Toolbar operation callback function
394
392
  */
395
393
 
396
394
  var handleShortcutPageDate = (0, _react.useCallback)(function (value, closeOverlay, event) {
395
+ if (closeOverlay === void 0) {
396
+ closeOverlay = false;
397
+ }
398
+
397
399
  handleValueUpdate(event, value, closeOverlay);
398
400
  }, [handleValueUpdate]);
399
401
  var handleOK = (0, _react.useCallback)(function (event) {
400
- handleValueUpdate(event);
401
- onOk === null || onOk === void 0 ? void 0 : onOk(selectValue, event);
402
- }, [handleValueUpdate, onOk, selectValue]);
402
+ handleValueUpdate(event, selectedDates);
403
+ onOk === null || onOk === void 0 ? void 0 : onOk(selectedDates, event);
404
+ }, [handleValueUpdate, onOk, selectedDates]);
403
405
  var handleClean = (0, _react.useCallback)(function (event) {
404
- updateCalendarDate();
405
- handleValueUpdate(event, []);
406
+ updateCalendarDate(null);
407
+ handleValueUpdate(event, null);
406
408
  }, [handleValueUpdate, updateCalendarDate]);
407
409
  /**
408
410
  * Callback after the input box value is changed.
@@ -431,13 +433,13 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
431
433
  return;
432
434
  }
433
435
 
434
- if (disabledDate(startDate, selectValue, true, _utils.DATERANGE_DISABLED_TARGET.CALENDAR)) {
436
+ if (isDateDisabled(startDate, selectValue, true, _utils.DATERANGE_DISABLED_TARGET.CALENDAR)) {
435
437
  setInputState('Error');
436
438
  return;
437
439
  }
438
440
 
439
- setHoverValue(selectValue);
440
- setSelectValue(selectValue);
441
+ setHoverDateRange(selectValue);
442
+ setSelectedDates(selectValue);
441
443
  updateCalendarDate(selectValue);
442
444
  }, // eslint-disable-next-line react-hooks/exhaustive-deps
443
445
  [character, rangeFormatStr, updateCalendarDate]);
@@ -447,11 +449,11 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
447
449
 
448
450
  var handleInputPressEnd = (0, _react.useCallback)(function (event) {
449
451
  if (inputState === 'Typing') {
450
- handleValueUpdate(event, selectValue);
452
+ handleValueUpdate(event, selectedDates.length === 2 ? selectedDates : null);
451
453
  }
452
454
 
453
455
  setInputState('Initial');
454
- }, [handleValueUpdate, selectValue, inputState]);
456
+ }, [handleValueUpdate, selectedDates, inputState]);
455
457
  var handleEnter = (0, _react.useCallback)(function () {
456
458
  var nextCalendarDate;
457
459
 
@@ -461,13 +463,13 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
461
463
  nextCalendarDate = [_startDate, (0, _dateUtils.isSameMonth)(_startDate, endData) ? (0, _dateUtils.addMonths)(endData, 1) : endData];
462
464
  } else {
463
465
  nextCalendarDate = (0, _utils2.getCalendarDate)({
464
- value: defaultCalendarValue
466
+ value: defaultCalendarValue !== null && defaultCalendarValue !== void 0 ? defaultCalendarValue : null
465
467
  });
466
468
  }
467
469
 
468
- setSelectValue(value);
470
+ setSelectedDates(value !== null && value !== void 0 ? value : []);
469
471
  updateCalendarDate(nextCalendarDate);
470
- }, [defaultCalendarValue, updateCalendarDate, setSelectValue, value]);
472
+ }, [defaultCalendarValue, updateCalendarDate, setSelectedDates, value]);
471
473
  var handleEntered = (0, _react.useCallback)(function () {
472
474
  onOpen === null || onOpen === void 0 ? void 0 : onOpen();
473
475
  setPickerToggleActive(true);
@@ -477,17 +479,16 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
477
479
  hasDoneSelect.current = true;
478
480
  onClose === null || onClose === void 0 ? void 0 : onClose();
479
481
  }, [onClose]);
480
- var disabledDate = (0, _react.useCallback)(function (date, selectDate, selectedDone, target) {
481
- return disabledDateProp === null || disabledDateProp === void 0 ? void 0 : disabledDateProp(date, selectDate, selectedDone, target);
482
+ var isDateDisabled = (0, _react.useCallback)(function (date, selectDate, selectedDone, target) {
483
+ var _disabledDateProp;
484
+
485
+ return (_disabledDateProp = disabledDateProp === null || disabledDateProp === void 0 ? void 0 : disabledDateProp(date, selectDate, selectedDone, target)) !== null && _disabledDateProp !== void 0 ? _disabledDateProp : false;
482
486
  }, [disabledDateProp]);
483
487
  var disabledByBetween = (0, _react.useCallback)(function (start, end, type) {
484
- var selectStartDate = selectValue[0],
485
- selectEndDate = selectValue[1];
486
- var nextSelectValue = [selectStartDate, selectEndDate]; // If the date is between the start and the end
488
+ // If the date is between the start and the end
487
489
  // the button is disabled
488
-
489
490
  while (_utils.DateUtils.isBefore(start, end) || _utils.DateUtils.isSameDay(start, end)) {
490
- if (disabledDate(start, nextSelectValue, hasDoneSelect.current, type)) {
491
+ if (isDateDisabled(start, selectedDates, hasDoneSelect.current, type)) {
491
492
  return true;
492
493
  }
493
494
 
@@ -495,17 +496,17 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
495
496
  }
496
497
 
497
498
  return false;
498
- }, [disabledDate, selectValue]);
499
+ }, [isDateDisabled, selectedDates]);
499
500
  var disabledOkButton = (0, _react.useCallback)(function () {
500
- var start = selectValue[0],
501
- end = selectValue[1];
501
+ var start = selectedDates[0],
502
+ end = selectedDates[1];
502
503
 
503
504
  if (!start || !end || !hasDoneSelect.current) {
504
505
  return true;
505
506
  }
506
507
 
507
508
  return disabledByBetween(start, end, _utils.DATERANGE_DISABLED_TARGET.TOOLBAR_BUTTON_OK);
508
- }, [disabledByBetween, selectValue]);
509
+ }, [disabledByBetween, selectedDates]);
509
510
  var disabledShortcutButton = (0, _react.useCallback)(function (value) {
510
511
  if (value === void 0) {
511
512
  value = [];
@@ -522,8 +523,8 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
522
523
  return disabledByBetween(start, end, _utils.DATERANGE_DISABLED_TARGET.TOOLBAR_SHORTCUT);
523
524
  }, [disabledByBetween]);
524
525
  var handleDisabledDate = (0, _react.useCallback)(function (date, values, type) {
525
- return disabledDate(date, values, hasDoneSelect.current, type);
526
- }, [disabledDate]);
526
+ return isDateDisabled(date, values, hasDoneSelect.current, type);
527
+ }, [isDateDisabled]);
527
528
  var onPickerKeyDown = (0, _Picker.useToggleKeyDownEvent)((0, _extends2.default)({
528
529
  triggerRef: triggerRef,
529
530
  targetRef: targetRef,
@@ -547,18 +548,18 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
547
548
  calendarDate: calendarDate,
548
549
  disabledDate: handleDisabledDate,
549
550
  format: formatStr,
550
- hoverRangeValue: hoverValue,
551
+ hoverRangeValue: hoverDateRange !== null && hoverDateRange !== void 0 ? hoverDateRange : undefined,
551
552
  isoWeek: isoWeek,
552
553
  limitEndYear: limitEndYear,
553
554
  locale: locale,
554
555
  showOneCalendar: showOneCalendar,
555
556
  showWeekNumbers: showWeekNumbers,
556
- value: selectValue,
557
+ value: selectedDates,
557
558
  showMeridian: showMeridian,
558
559
  onChangeCalendarDate: handleChangeCalendarDate,
559
560
  onChangeCalendarTime: handleChangeCalendarTime,
560
561
  onMouseMove: handleMouseMove,
561
- onSelect: handleSelectValueChange,
562
+ onSelect: handleSelectDate,
562
563
  onToggleMeridian: handleToggleMeridian
563
564
  };
564
565
  return /*#__PURE__*/_react.default.createElement(_Picker.PickerOverlay, {
@@ -572,7 +573,7 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
572
573
  className: prefix('daterange-content')
573
574
  }, /*#__PURE__*/_react.default.createElement("div", {
574
575
  className: prefix('daterange-header')
575
- }, getDisplayString(selectValue)), /*#__PURE__*/_react.default.createElement("div", {
576
+ }, getDisplayString(selectedDates)), /*#__PURE__*/_react.default.createElement("div", {
576
577
  className: prefix("daterange-calendar-" + (showOneCalendar ? 'single' : 'group'))
577
578
  }, /*#__PURE__*/_react.default.createElement(_Calendar2.default, (0, _extends2.default)({
578
579
  index: 0
@@ -580,7 +581,7 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
580
581
  index: 1
581
582
  }, panelProps)))), /*#__PURE__*/_react.default.createElement(_Toolbar.default, {
582
583
  locale: locale,
583
- calendarDate: selectValue,
584
+ calendarDate: selectedDates,
584
585
  disabledOkBtn: disabledOkButton,
585
586
  disabledShortcut: disabledShortcutButton,
586
587
  hideOkBtn: oneTap,
@@ -590,7 +591,7 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
590
591
  })));
591
592
  };
592
593
 
593
- var hasValue = value && value.length > 1;
594
+ var hasValue = !(0, _isNil.default)(value) && value.length > 1;
594
595
 
595
596
  var _usePickerClassName = (0, _Picker.usePickerClassName)((0, _extends2.default)({}, props, {
596
597
  classPrefix: classPrefix,
@@ -631,9 +632,9 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
631
632
  hasValue: hasValue,
632
633
  active: isPickerToggleActive,
633
634
  placement: placement,
634
- caretComponent: _Calendar.default,
635
+ caretAs: _Calendar.default,
635
636
  disabled: disabled
636
- }), getDisplayString())));
637
+ }), getDisplayString(value))));
637
638
  });
638
639
 
639
640
  DateRangePicker.after = disabledDateUtils.after;
@@ -1,10 +1,11 @@
1
1
  import React from 'react';
2
2
  import { DATERANGE_DISABLED_TARGET } from '../utils/constants';
3
3
  export declare type ValueType = [Date?, Date?];
4
+ export declare type DateRange = [Date, Date];
4
5
  export interface RangeType {
5
6
  label: React.ReactNode;
6
7
  closeOverlay?: boolean;
7
- value: ValueType | ((value?: ValueType) => ValueType);
8
+ value: DateRange | ((value?: ValueType) => DateRange);
8
9
  }
9
10
  export declare type DisabledDateFunction = (
10
11
  /** Date used to determine if disabling is required. */
@@ -1,9 +1,9 @@
1
- import { RangeType, ValueType } from './types';
1
+ import { DateRange, RangeType } from './types';
2
2
  export declare const setTimingMargin: (date: any, way?: string) => Date;
3
3
  export declare function getCalendarDate({ value }: {
4
- value?: ValueType;
5
- }): ValueType;
4
+ value: [] | [Date] | [Date, Date] | null;
5
+ }): DateRange;
6
6
  export declare const getDefaultRanges: () => RangeType[];
7
- export declare const isSameRange: (source: ValueType, dest: ValueType, format: string) => boolean;
8
- export declare const getMonthHoverRange: (date: Date) => ValueType;
9
- export declare const getWeekHoverRange: (isoWeek: boolean, date: Date) => ValueType;
7
+ export declare const isSameRange: (source: DateRange | null, dest: DateRange | null, format: string) => boolean;
8
+ export declare const getMonthHoverRange: (date: Date) => DateRange;
9
+ export declare const getWeekHoverRange: (isoWeek: boolean, date: Date) => DateRange;
@@ -52,10 +52,15 @@ var getDefaultRanges = function getDefaultRanges() {
52
52
  exports.getDefaultRanges = getDefaultRanges;
53
53
 
54
54
  var isSameRange = function isSameRange(source, dest, format) {
55
- var result = _utils.DateUtils.isSameDay(source === null || source === void 0 ? void 0 : source[0], dest === null || dest === void 0 ? void 0 : dest[0]) && _utils.DateUtils.isSameDay(source === null || source === void 0 ? void 0 : source[1], dest === null || dest === void 0 ? void 0 : dest[1]);
55
+ // If both are null, reguard as same
56
+ if (null === source && null === dest) return true; // If only one is null, regard as different
57
+
58
+ if (null === source || null === dest) return false;
59
+
60
+ var result = _utils.DateUtils.isSameDay(source[0], dest[0]) && _utils.DateUtils.isSameDay(source[1], dest[1]);
56
61
 
57
62
  if (_utils.DateUtils.shouldTime(format)) {
58
- result && (result = _utils.DateUtils.isSameSecond(source === null || source === void 0 ? void 0 : source[0], dest === null || dest === void 0 ? void 0 : dest[0]) && _utils.DateUtils.isSameSecond(source === null || source === void 0 ? void 0 : source[1], dest === null || dest === void 0 ? void 0 : dest[1]));
63
+ result && (result = _utils.DateUtils.isSameSecond(source[0], dest[0]) && _utils.DateUtils.isSameSecond(source[1], dest[1]));
59
64
  }
60
65
 
61
66
  return result;
@@ -1,7 +1,8 @@
1
1
  import React from 'react';
2
2
  import DisclosureButton from './DisclosureButton';
3
3
  import DisclosureContent from './DisclosureContent';
4
- export interface DisclosureRenderProps {
4
+ export declare type DisclosureTrigger = 'click' | 'mouseover';
5
+ export interface DisclosureRenderProps extends Pick<React.HTMLAttributes<HTMLElement>, 'onMouseOver' | 'onMouseOut'> {
5
6
  open: boolean;
6
7
  }
7
8
  export interface DisclosureProps {
@@ -13,10 +14,12 @@ export interface DisclosureProps {
13
14
  hideOnClickOutside?: boolean;
14
15
  /** Callback when disclosure button is being activated to update the open state */
15
16
  onToggle?: (open: boolean, event: React.SyntheticEvent) => void;
17
+ /** What mouse events should disclosure reacts to */
18
+ trigger?: DisclosureTrigger[];
16
19
  }
17
- declare function Disclosure(props: DisclosureProps): JSX.Element;
18
- declare namespace Disclosure {
19
- var Button: typeof DisclosureButton;
20
- var Content: typeof DisclosureContent;
20
+ export interface DisclosureComponent extends React.FC<DisclosureProps> {
21
+ Button: typeof DisclosureButton;
22
+ Content: typeof DisclosureContent;
21
23
  }
24
+ declare const Disclosure: DisclosureComponent;
22
25
  export default Disclosure;