rsuite 5.2.2 → 5.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (485) 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 +1 -0
  8. package/Nav/styles/index.less +1 -0
  9. package/Navbar/styles/index.less +7 -0
  10. package/Radio/styles/index.less +6 -0
  11. package/Stack/package.json +7 -0
  12. package/Stack/styles/index.less +5 -0
  13. package/Table/styles/index.less +0 -4
  14. package/TreePicker/styles/index.less +10 -14
  15. package/cjs/@types/common.d.ts +13 -12
  16. package/cjs/@types/utils.d.ts +12 -0
  17. package/cjs/Affix/Affix.js +5 -5
  18. package/cjs/Animation/Transition.d.ts +21 -12
  19. package/cjs/Animation/Transition.js +4 -1
  20. package/cjs/AutoComplete/AutoComplete.js +1 -1
  21. package/cjs/AutoComplete/utils.d.ts +1 -1
  22. package/cjs/Avatar/Avatar.js +10 -3
  23. package/cjs/AvatarGroup/AvatarGroup.d.ts +15 -0
  24. package/cjs/AvatarGroup/AvatarGroup.js +71 -0
  25. package/cjs/AvatarGroup/index.d.ts +3 -0
  26. package/cjs/AvatarGroup/index.js +11 -0
  27. package/cjs/Breadcrumb/Breadcrumb.js +1 -1
  28. package/cjs/Button/Button.js +8 -2
  29. package/cjs/ButtonGroup/ButtonGroup.js +8 -2
  30. package/cjs/ButtonGroup/ButtonGroupContext.d.ts +7 -0
  31. package/cjs/ButtonGroup/ButtonGroupContext.js +13 -0
  32. package/cjs/ButtonGroup/index.d.ts +2 -0
  33. package/cjs/ButtonGroup/index.js +3 -0
  34. package/cjs/Calendar/Calendar.d.ts +4 -4
  35. package/cjs/Calendar/Calendar.js +5 -2
  36. package/cjs/Calendar/CalendarContext.js +1 -1
  37. package/cjs/Calendar/TableRow.js +1 -1
  38. package/cjs/Calendar/TimeDropdown.js +6 -5
  39. package/cjs/Calendar/types.d.ts +2 -2
  40. package/cjs/Calendar/useCalendarDate.d.ts +2 -2
  41. package/cjs/Carousel/Carousel.d.ts +2 -2
  42. package/cjs/Carousel/Carousel.js +1 -1
  43. package/cjs/Cascader/Cascader.d.ts +1 -1
  44. package/cjs/Cascader/Cascader.js +10 -10
  45. package/cjs/Cascader/DropdownMenu.d.ts +5 -4
  46. package/cjs/Cascader/utils.d.ts +10 -10
  47. package/cjs/CheckPicker/CheckPicker.d.ts +9 -4
  48. package/cjs/CheckPicker/CheckPicker.js +4 -4
  49. package/cjs/CheckPicker/test/CheckPicker.test.d.ts +1 -0
  50. package/cjs/CheckPicker/test/CheckPicker.test.js +76 -0
  51. package/cjs/CheckTree/index.js +2 -6
  52. package/cjs/CheckTreePicker/CheckTreeNode.d.ts +1 -1
  53. package/cjs/CheckTreePicker/CheckTreeNode.js +7 -9
  54. package/cjs/CheckTreePicker/CheckTreePicker.js +34 -27
  55. package/cjs/CheckTreePicker/utils.d.ts +3 -1
  56. package/cjs/CheckTreePicker/utils.js +12 -10
  57. package/cjs/Checkbox/Checkbox.d.ts +1 -1
  58. package/cjs/CheckboxGroup/CheckboxGroup.js +2 -2
  59. package/cjs/CustomProvider/CustomProvider.d.ts +31 -57
  60. package/cjs/DOMHelper/index.d.ts +12 -12
  61. package/cjs/DatePicker/DatePicker.d.ts +1 -1
  62. package/cjs/DatePicker/DatePicker.js +17 -11
  63. package/cjs/DatePicker/Toolbar.d.ts +12 -9
  64. package/cjs/DatePicker/Toolbar.js +6 -8
  65. package/cjs/DatePicker/types.d.ts +4 -4
  66. package/cjs/DatePicker/utils.d.ts +4 -3
  67. package/cjs/DateRangePicker/Calendar.d.ts +9 -7
  68. package/cjs/DateRangePicker/Calendar.js +27 -6
  69. package/cjs/DateRangePicker/DateRangePicker.d.ts +8 -6
  70. package/cjs/DateRangePicker/DateRangePicker.js +131 -108
  71. package/cjs/DateRangePicker/types.d.ts +2 -1
  72. package/cjs/DateRangePicker/utils.d.ts +6 -6
  73. package/cjs/DateRangePicker/utils.js +7 -2
  74. package/cjs/Disclosure/Disclosure.js +4 -2
  75. package/cjs/Disclosure/DisclosureButton.js +9 -7
  76. package/cjs/Disclosure/DisclosureContent.js +4 -6
  77. package/cjs/Disclosure/DisclosureContext.d.ts +2 -2
  78. package/cjs/Disclosure/useDisclosureContext.d.ts +2 -0
  79. package/cjs/Disclosure/useDisclosureContext.js +20 -0
  80. package/cjs/Dropdown/Dropdown.d.ts +1 -1
  81. package/cjs/Dropdown/DropdownContext.d.ts +2 -2
  82. package/cjs/Dropdown/DropdownItem.js +1 -1
  83. package/cjs/Dropdown/DropdownMenu.d.ts +3 -3
  84. package/cjs/Dropdown/DropdownState.d.ts +1 -1
  85. package/cjs/Dropdown/DropdownToggle.js +10 -2
  86. package/cjs/Dropdown/useRenderDropdownItem.d.ts +1 -1
  87. package/cjs/Form/Form.js +1 -1
  88. package/cjs/Form/FormContext.d.ts +1 -1
  89. package/cjs/FormControl/FormControl.d.ts +1 -1
  90. package/cjs/FormControl/FormControl.js +5 -4
  91. package/cjs/FormGroup/FormGroup.d.ts +1 -1
  92. package/cjs/Input/Input.d.ts +3 -2
  93. package/cjs/InputGroup/InputGroup.d.ts +1 -1
  94. package/cjs/InputNumber/InputNumber.js +6 -2
  95. package/cjs/InputPicker/InputAutosize.js +4 -4
  96. package/cjs/InputPicker/InputPicker.d.ts +2 -2
  97. package/cjs/InputPicker/InputPicker.js +16 -11
  98. package/cjs/List/ListContext.d.ts +1 -1
  99. package/cjs/List/ListContext.js +8 -1
  100. package/cjs/List/helper/AutoScroller.js +4 -2
  101. package/cjs/List/helper/useManager.d.ts +3 -3
  102. package/cjs/List/helper/useManager.js +1 -1
  103. package/cjs/List/helper/useSortHelper.d.ts +3 -3
  104. package/cjs/List/helper/useSortHelper.js +6 -4
  105. package/cjs/List/helper/utils.d.ts +2 -2
  106. package/cjs/MaskedInput/TextMask.d.ts +5 -5
  107. package/cjs/MaskedInput/adjustCaretPosition.d.ts +6 -6
  108. package/cjs/MaskedInput/conformToMask.js +5 -4
  109. package/cjs/MaskedInput/createTextMaskInputElement.d.ts +2 -2
  110. package/cjs/MaskedInput/utilities.d.ts +1 -1
  111. package/cjs/Menu/Menu.js +60 -41
  112. package/cjs/Menu/MenuContext.d.ts +1 -1
  113. package/cjs/Menu/MenuItem.d.ts +1 -1
  114. package/cjs/Menu/MenuItem.js +31 -23
  115. package/cjs/Menu/Menubar.js +8 -8
  116. package/cjs/Menu/useMenu.js +17 -7
  117. package/cjs/Modal/Modal.js +12 -6
  118. package/cjs/Modal/ModalContext.d.ts +2 -2
  119. package/cjs/Modal/utils.d.ts +1 -1
  120. package/cjs/Modal/utils.js +3 -5
  121. package/cjs/MultiCascader/DropdownMenu.d.ts +4 -4
  122. package/cjs/MultiCascader/MultiCascader.js +6 -6
  123. package/cjs/MultiCascader/utils.d.ts +17 -17
  124. package/cjs/Nav/Nav.d.ts +1 -1
  125. package/cjs/Nav/Nav.js +3 -0
  126. package/cjs/Nav/NavContext.d.ts +7 -1
  127. package/cjs/Nav/NavContext.js +1 -0
  128. package/cjs/Nav/NavItem.d.ts +1 -1
  129. package/cjs/Navbar/Navbar.js +1 -1
  130. package/cjs/Navbar/NavbarItem.d.ts +1 -1
  131. package/cjs/Overlay/Modal.d.ts +2 -2
  132. package/cjs/Overlay/Modal.js +67 -45
  133. package/cjs/Overlay/ModalManager.d.ts +17 -8
  134. package/cjs/Overlay/ModalManager.js +11 -20
  135. package/cjs/Overlay/Overlay.d.ts +3 -3
  136. package/cjs/Overlay/Overlay.js +8 -2
  137. package/cjs/Overlay/OverlayContext.d.ts +6 -0
  138. package/cjs/Overlay/OverlayContext.js +14 -0
  139. package/cjs/Overlay/OverlayTrigger.d.ts +11 -11
  140. package/cjs/Overlay/OverlayTrigger.js +21 -7
  141. package/cjs/Overlay/Position.d.ts +4 -4
  142. package/cjs/Overlay/Position.js +14 -8
  143. package/cjs/Overlay/positionUtils.d.ts +1 -1
  144. package/cjs/Overlay/positionUtils.js +8 -8
  145. package/cjs/Pagination/Pagination.d.ts +1 -1
  146. package/cjs/Pagination/PaginationButton.d.ts +3 -3
  147. package/cjs/Pagination/PaginationGroup.js +5 -3
  148. package/cjs/Panel/Panel.d.ts +1 -1
  149. package/cjs/Panel/Panel.js +2 -2
  150. package/cjs/PanelGroup/PanelGroup.d.ts +2 -2
  151. package/cjs/Picker/DropdownMenu.d.ts +8 -5
  152. package/cjs/Picker/DropdownMenu.js +5 -5
  153. package/cjs/Picker/PickerOverlay.js +4 -3
  154. package/cjs/Picker/PickerToggle.js +9 -6
  155. package/cjs/Picker/PickerToggleTrigger.d.ts +2 -6
  156. package/cjs/Picker/SearchBar.d.ts +1 -1
  157. package/cjs/Picker/SelectedElement.js +2 -1
  158. package/cjs/Picker/VirtualizedList.d.ts +29 -2
  159. package/cjs/Picker/propTypes.d.ts +5 -7
  160. package/cjs/Picker/propTypes.js +4 -3
  161. package/cjs/Picker/utils.d.ts +15 -23
  162. package/cjs/Picker/utils.js +71 -46
  163. package/cjs/Placeholder/PlaceholderGrid.js +1 -1
  164. package/cjs/Plaintext/Plaintext.js +2 -1
  165. package/cjs/Radio/Radio.d.ts +1 -1
  166. package/cjs/RadioGroup/RadioGroup.d.ts +2 -2
  167. package/cjs/RadioGroup/RadioGroup.js +3 -3
  168. package/cjs/RangeSlider/RangeSlider.d.ts +2 -2
  169. package/cjs/RangeSlider/RangeSlider.js +6 -4
  170. package/cjs/Rate/Character.js +4 -2
  171. package/cjs/Rate/Rate.js +5 -2
  172. package/cjs/Ripple/Ripple.js +1 -1
  173. package/cjs/SelectPicker/SelectPicker.d.ts +12 -5
  174. package/cjs/SelectPicker/SelectPicker.js +8 -8
  175. package/cjs/SelectPicker/index.d.ts +1 -1
  176. package/cjs/SelectPicker/test/SelectPicker.test.d.ts +1 -0
  177. package/cjs/SelectPicker/test/SelectPicker.test.js +62 -0
  178. package/cjs/Sidenav/Node.d.ts +1 -1
  179. package/cjs/Sidenav/Sidenav.d.ts +4 -4
  180. package/cjs/Sidenav/Sidenav.js +5 -2
  181. package/cjs/Sidenav/SidenavDropdown.js +11 -8
  182. package/cjs/Sidenav/SidenavDropdownItem.js +10 -5
  183. package/cjs/Sidenav/SidenavDropdownMenu.js +9 -5
  184. package/cjs/Sidenav/SidenavItem.d.ts +1 -1
  185. package/cjs/Sidenav/SidenavItem.js +4 -0
  186. package/cjs/Slider/Graduated.d.ts +5 -5
  187. package/cjs/Slider/Handle.d.ts +1 -1
  188. package/cjs/Slider/Handle.js +10 -6
  189. package/cjs/Slider/Mark.d.ts +1 -1
  190. package/cjs/Slider/Slider.d.ts +1 -1
  191. package/cjs/Slider/Slider.js +2 -2
  192. package/cjs/Slider/utils.d.ts +2 -1
  193. package/cjs/Slider/utils.js +4 -5
  194. package/cjs/Stack/Stack.d.ts +26 -0
  195. package/cjs/Stack/Stack.js +86 -0
  196. package/cjs/Stack/index.d.ts +3 -0
  197. package/cjs/Stack/index.js +11 -0
  198. package/cjs/Steps/StepItem.js +1 -1
  199. package/cjs/TagInput/index.js +1 -1
  200. package/cjs/Toggle/Toggle.js +3 -3
  201. package/cjs/Tree/Tree.d.ts +3 -2
  202. package/cjs/Tree/Tree.js +2 -6
  203. package/cjs/Tree/TreeContext.d.ts +0 -1
  204. package/cjs/TreePicker/TreeNode.js +7 -22
  205. package/cjs/TreePicker/TreePicker.js +37 -54
  206. package/cjs/Uploader/UploadFileItem.d.ts +1 -1
  207. package/cjs/Uploader/UploadFileItem.js +2 -2
  208. package/cjs/Uploader/UploadTrigger.d.ts +1 -1
  209. package/cjs/Uploader/UploadTrigger.js +2 -3
  210. package/cjs/Uploader/Uploader.d.ts +5 -5
  211. package/cjs/Uploader/Uploader.js +1 -2
  212. package/cjs/index.d.ts +6 -2
  213. package/cjs/index.js +13 -5
  214. package/cjs/locales/index.d.ts +3 -3
  215. package/cjs/toaster/ToastContainer.d.ts +1 -1
  216. package/cjs/toaster/ToastContainer.js +1 -1
  217. package/cjs/toaster/toaster.js +3 -1
  218. package/cjs/utils/BrowserDetection.js +1 -1
  219. package/cjs/utils/ReactChildren.d.ts +2 -2
  220. package/cjs/utils/ajaxUpload.d.ts +1 -1
  221. package/cjs/utils/ajaxUpload.js +5 -4
  222. package/cjs/utils/appendTooltip.d.ts +1 -1
  223. package/cjs/utils/constants.d.ts +4 -4
  224. package/cjs/utils/createChainedFunction.d.ts +1 -1
  225. package/cjs/utils/getDataGroupBy.d.ts +1 -1
  226. package/cjs/utils/mergeRefs.d.ts +2 -2
  227. package/cjs/utils/previewFile.d.ts +1 -1
  228. package/cjs/utils/propTypeChecker.d.ts +6 -2
  229. package/cjs/utils/propTypeChecker.js +7 -6
  230. package/cjs/utils/reactToString.d.ts +2 -1
  231. package/cjs/utils/statusIcons.d.ts +1 -1
  232. package/cjs/utils/stringToObject.d.ts +1 -1
  233. package/cjs/utils/treeUtils.d.ts +35 -32
  234. package/cjs/utils/treeUtils.js +46 -23
  235. package/cjs/utils/useControlled.d.ts +6 -1
  236. package/cjs/utils/useControlled.js +0 -8
  237. package/cjs/utils/useCustom.js +6 -4
  238. package/cjs/utils/useElementResize.js +6 -3
  239. package/cjs/utils/useFocus.d.ts +2 -2
  240. package/cjs/utils/usePortal.d.ts +2 -2
  241. package/cjs/utils/useRootClose.d.ts +2 -2
  242. package/cjs/utils/useTimeout.d.ts +1 -1
  243. package/cjs/utils/useTimeout.js +5 -3
  244. package/dist/rsuite-rtl.css +60 -178
  245. package/dist/rsuite-rtl.min.css +1 -1
  246. package/dist/rsuite-rtl.min.css.map +1 -1
  247. package/dist/rsuite.css +60 -178
  248. package/dist/rsuite.js +216 -117
  249. package/dist/rsuite.js.map +1 -1
  250. package/dist/rsuite.min.css +1 -1
  251. package/dist/rsuite.min.css.map +1 -1
  252. package/dist/rsuite.min.js +1 -1
  253. package/dist/rsuite.min.js.LICENSE.txt +9 -0
  254. package/dist/rsuite.min.js.map +1 -1
  255. package/esm/@types/common.d.ts +13 -12
  256. package/esm/@types/utils.d.ts +12 -0
  257. package/esm/Affix/Affix.js +5 -5
  258. package/esm/Animation/Transition.d.ts +21 -12
  259. package/esm/Animation/Transition.js +4 -1
  260. package/esm/AutoComplete/AutoComplete.js +1 -1
  261. package/esm/AutoComplete/utils.d.ts +1 -1
  262. package/esm/Avatar/Avatar.js +7 -3
  263. package/esm/AvatarGroup/AvatarGroup.d.ts +15 -0
  264. package/esm/AvatarGroup/AvatarGroup.js +54 -0
  265. package/esm/AvatarGroup/index.d.ts +3 -0
  266. package/esm/AvatarGroup/index.js +2 -0
  267. package/esm/Breadcrumb/Breadcrumb.js +1 -1
  268. package/esm/Button/Button.js +6 -2
  269. package/esm/ButtonGroup/ButtonGroup.js +7 -2
  270. package/esm/ButtonGroup/ButtonGroupContext.d.ts +7 -0
  271. package/esm/ButtonGroup/ButtonGroupContext.js +3 -0
  272. package/esm/ButtonGroup/index.d.ts +2 -0
  273. package/esm/ButtonGroup/index.js +2 -0
  274. package/esm/Calendar/Calendar.d.ts +4 -4
  275. package/esm/Calendar/Calendar.js +5 -2
  276. package/esm/Calendar/CalendarContext.js +1 -1
  277. package/esm/Calendar/TableRow.js +1 -1
  278. package/esm/Calendar/TimeDropdown.js +5 -4
  279. package/esm/Calendar/types.d.ts +2 -2
  280. package/esm/Calendar/useCalendarDate.d.ts +2 -2
  281. package/esm/Carousel/Carousel.d.ts +2 -2
  282. package/esm/Carousel/Carousel.js +1 -1
  283. package/esm/Cascader/Cascader.d.ts +1 -1
  284. package/esm/Cascader/Cascader.js +10 -10
  285. package/esm/Cascader/DropdownMenu.d.ts +5 -4
  286. package/esm/Cascader/utils.d.ts +10 -10
  287. package/esm/CheckPicker/CheckPicker.d.ts +9 -4
  288. package/esm/CheckPicker/CheckPicker.js +4 -4
  289. package/esm/CheckPicker/test/CheckPicker.test.d.ts +1 -0
  290. package/esm/CheckPicker/test/CheckPicker.test.js +64 -0
  291. package/esm/CheckTree/index.js +2 -4
  292. package/esm/CheckTreePicker/CheckTreeNode.d.ts +1 -1
  293. package/esm/CheckTreePicker/CheckTreeNode.js +4 -7
  294. package/esm/CheckTreePicker/CheckTreePicker.js +33 -25
  295. package/esm/CheckTreePicker/utils.d.ts +3 -1
  296. package/esm/CheckTreePicker/utils.js +12 -10
  297. package/esm/Checkbox/Checkbox.d.ts +1 -1
  298. package/esm/CheckboxGroup/CheckboxGroup.js +2 -2
  299. package/esm/CustomProvider/CustomProvider.d.ts +31 -57
  300. package/esm/DOMHelper/index.d.ts +12 -12
  301. package/esm/DatePicker/DatePicker.d.ts +1 -1
  302. package/esm/DatePicker/DatePicker.js +16 -11
  303. package/esm/DatePicker/Toolbar.d.ts +12 -9
  304. package/esm/DatePicker/Toolbar.js +6 -8
  305. package/esm/DatePicker/types.d.ts +4 -4
  306. package/esm/DatePicker/utils.d.ts +4 -3
  307. package/esm/DateRangePicker/Calendar.d.ts +9 -7
  308. package/esm/DateRangePicker/Calendar.js +28 -6
  309. package/esm/DateRangePicker/DateRangePicker.d.ts +8 -6
  310. package/esm/DateRangePicker/DateRangePicker.js +129 -108
  311. package/esm/DateRangePicker/types.d.ts +2 -1
  312. package/esm/DateRangePicker/utils.d.ts +6 -6
  313. package/esm/DateRangePicker/utils.js +6 -2
  314. package/esm/Disclosure/Disclosure.js +4 -2
  315. package/esm/Disclosure/DisclosureButton.js +8 -7
  316. package/esm/Disclosure/DisclosureContent.js +5 -7
  317. package/esm/Disclosure/DisclosureContext.d.ts +2 -2
  318. package/esm/Disclosure/useDisclosureContext.d.ts +2 -0
  319. package/esm/Disclosure/useDisclosureContext.js +11 -0
  320. package/esm/Dropdown/Dropdown.d.ts +1 -1
  321. package/esm/Dropdown/DropdownContext.d.ts +2 -2
  322. package/esm/Dropdown/DropdownItem.js +1 -1
  323. package/esm/Dropdown/DropdownMenu.d.ts +3 -3
  324. package/esm/Dropdown/DropdownState.d.ts +1 -1
  325. package/esm/Dropdown/DropdownToggle.js +9 -2
  326. package/esm/Dropdown/useRenderDropdownItem.d.ts +1 -1
  327. package/esm/Form/Form.js +1 -1
  328. package/esm/Form/FormContext.d.ts +1 -1
  329. package/esm/FormControl/FormControl.d.ts +1 -1
  330. package/esm/FormControl/FormControl.js +5 -4
  331. package/esm/FormGroup/FormGroup.d.ts +1 -1
  332. package/esm/Input/Input.d.ts +3 -2
  333. package/esm/InputGroup/InputGroup.d.ts +1 -1
  334. package/esm/InputNumber/InputNumber.js +6 -2
  335. package/esm/InputPicker/InputAutosize.js +4 -4
  336. package/esm/InputPicker/InputPicker.d.ts +2 -2
  337. package/esm/InputPicker/InputPicker.js +16 -11
  338. package/esm/List/ListContext.d.ts +1 -1
  339. package/esm/List/ListContext.js +7 -1
  340. package/esm/List/helper/AutoScroller.js +4 -2
  341. package/esm/List/helper/useManager.d.ts +3 -3
  342. package/esm/List/helper/useManager.js +1 -1
  343. package/esm/List/helper/useSortHelper.d.ts +3 -3
  344. package/esm/List/helper/useSortHelper.js +6 -4
  345. package/esm/List/helper/utils.d.ts +2 -2
  346. package/esm/MaskedInput/TextMask.d.ts +5 -5
  347. package/esm/MaskedInput/adjustCaretPosition.d.ts +6 -6
  348. package/esm/MaskedInput/conformToMask.js +5 -4
  349. package/esm/MaskedInput/createTextMaskInputElement.d.ts +2 -2
  350. package/esm/MaskedInput/utilities.d.ts +1 -1
  351. package/esm/Menu/Menu.js +59 -43
  352. package/esm/Menu/MenuContext.d.ts +1 -1
  353. package/esm/Menu/MenuItem.d.ts +1 -1
  354. package/esm/Menu/MenuItem.js +30 -23
  355. package/esm/Menu/Menubar.js +7 -8
  356. package/esm/Menu/useMenu.js +17 -7
  357. package/esm/Modal/Modal.js +12 -6
  358. package/esm/Modal/ModalContext.d.ts +2 -2
  359. package/esm/Modal/utils.d.ts +1 -1
  360. package/esm/Modal/utils.js +3 -5
  361. package/esm/MultiCascader/DropdownMenu.d.ts +4 -4
  362. package/esm/MultiCascader/MultiCascader.js +6 -6
  363. package/esm/MultiCascader/utils.d.ts +17 -17
  364. package/esm/Nav/Nav.d.ts +1 -1
  365. package/esm/Nav/Nav.js +3 -0
  366. package/esm/Nav/NavContext.d.ts +7 -1
  367. package/esm/Nav/NavContext.js +1 -0
  368. package/esm/Nav/NavItem.d.ts +1 -1
  369. package/esm/Navbar/Navbar.js +1 -1
  370. package/esm/Navbar/NavbarItem.d.ts +1 -1
  371. package/esm/Overlay/Modal.d.ts +2 -2
  372. package/esm/Overlay/Modal.js +67 -45
  373. package/esm/Overlay/ModalManager.d.ts +17 -8
  374. package/esm/Overlay/ModalManager.js +11 -20
  375. package/esm/Overlay/Overlay.d.ts +3 -3
  376. package/esm/Overlay/Overlay.js +8 -3
  377. package/esm/Overlay/OverlayContext.d.ts +6 -0
  378. package/esm/Overlay/OverlayContext.js +4 -0
  379. package/esm/Overlay/OverlayTrigger.d.ts +11 -11
  380. package/esm/Overlay/OverlayTrigger.js +21 -8
  381. package/esm/Overlay/Position.d.ts +4 -4
  382. package/esm/Overlay/Position.js +14 -8
  383. package/esm/Overlay/positionUtils.d.ts +1 -1
  384. package/esm/Overlay/positionUtils.js +6 -6
  385. package/esm/Pagination/Pagination.d.ts +1 -1
  386. package/esm/Pagination/PaginationButton.d.ts +3 -3
  387. package/esm/Pagination/PaginationGroup.js +5 -3
  388. package/esm/Panel/Panel.d.ts +1 -1
  389. package/esm/Panel/Panel.js +2 -2
  390. package/esm/PanelGroup/PanelGroup.d.ts +2 -2
  391. package/esm/Picker/DropdownMenu.d.ts +8 -5
  392. package/esm/Picker/DropdownMenu.js +5 -5
  393. package/esm/Picker/PickerOverlay.js +4 -3
  394. package/esm/Picker/PickerToggle.js +9 -6
  395. package/esm/Picker/PickerToggleTrigger.d.ts +2 -6
  396. package/esm/Picker/SearchBar.d.ts +1 -1
  397. package/esm/Picker/SelectedElement.js +2 -1
  398. package/esm/Picker/VirtualizedList.d.ts +29 -2
  399. package/esm/Picker/propTypes.d.ts +5 -7
  400. package/esm/Picker/propTypes.js +4 -3
  401. package/esm/Picker/utils.d.ts +15 -23
  402. package/esm/Picker/utils.js +70 -46
  403. package/esm/Placeholder/PlaceholderGrid.js +1 -1
  404. package/esm/Plaintext/Plaintext.js +2 -1
  405. package/esm/Radio/Radio.d.ts +1 -1
  406. package/esm/RadioGroup/RadioGroup.d.ts +2 -2
  407. package/esm/RadioGroup/RadioGroup.js +3 -3
  408. package/esm/RangeSlider/RangeSlider.d.ts +2 -2
  409. package/esm/RangeSlider/RangeSlider.js +5 -4
  410. package/esm/Rate/Character.js +3 -2
  411. package/esm/Rate/Rate.js +4 -2
  412. package/esm/Ripple/Ripple.js +1 -1
  413. package/esm/SelectPicker/SelectPicker.d.ts +12 -5
  414. package/esm/SelectPicker/SelectPicker.js +8 -8
  415. package/esm/SelectPicker/index.d.ts +1 -1
  416. package/esm/SelectPicker/test/SelectPicker.test.d.ts +1 -0
  417. package/esm/SelectPicker/test/SelectPicker.test.js +52 -0
  418. package/esm/Sidenav/Node.d.ts +1 -1
  419. package/esm/Sidenav/Sidenav.d.ts +4 -4
  420. package/esm/Sidenav/Sidenav.js +5 -2
  421. package/esm/Sidenav/SidenavDropdown.js +11 -7
  422. package/esm/Sidenav/SidenavDropdownItem.js +11 -5
  423. package/esm/Sidenav/SidenavDropdownMenu.js +9 -5
  424. package/esm/Sidenav/SidenavItem.d.ts +1 -1
  425. package/esm/Sidenav/SidenavItem.js +4 -0
  426. package/esm/Slider/Graduated.d.ts +5 -5
  427. package/esm/Slider/Handle.d.ts +1 -1
  428. package/esm/Slider/Handle.js +10 -6
  429. package/esm/Slider/Mark.d.ts +1 -1
  430. package/esm/Slider/Slider.d.ts +1 -1
  431. package/esm/Slider/Slider.js +2 -2
  432. package/esm/Slider/utils.d.ts +2 -1
  433. package/esm/Slider/utils.js +5 -2
  434. package/esm/Stack/Stack.d.ts +26 -0
  435. package/esm/Stack/Stack.js +71 -0
  436. package/esm/Stack/index.d.ts +3 -0
  437. package/esm/Stack/index.js +2 -0
  438. package/esm/Steps/StepItem.js +1 -1
  439. package/esm/TagInput/index.js +1 -1
  440. package/esm/Toggle/Toggle.js +3 -3
  441. package/esm/Tree/Tree.d.ts +3 -2
  442. package/esm/Tree/Tree.js +2 -4
  443. package/esm/Tree/TreeContext.d.ts +0 -1
  444. package/esm/TreePicker/TreeNode.js +6 -21
  445. package/esm/TreePicker/TreePicker.js +36 -52
  446. package/esm/Uploader/UploadFileItem.d.ts +1 -1
  447. package/esm/Uploader/UploadFileItem.js +2 -2
  448. package/esm/Uploader/UploadTrigger.d.ts +1 -1
  449. package/esm/Uploader/UploadTrigger.js +2 -3
  450. package/esm/Uploader/Uploader.d.ts +5 -5
  451. package/esm/Uploader/Uploader.js +1 -2
  452. package/esm/index.d.ts +6 -2
  453. package/esm/index.js +3 -1
  454. package/esm/locales/index.d.ts +3 -3
  455. package/esm/toaster/ToastContainer.d.ts +1 -1
  456. package/esm/toaster/ToastContainer.js +1 -1
  457. package/esm/toaster/toaster.js +3 -1
  458. package/esm/utils/BrowserDetection.js +1 -1
  459. package/esm/utils/ReactChildren.d.ts +2 -2
  460. package/esm/utils/ajaxUpload.d.ts +1 -1
  461. package/esm/utils/ajaxUpload.js +5 -4
  462. package/esm/utils/appendTooltip.d.ts +1 -1
  463. package/esm/utils/constants.d.ts +4 -4
  464. package/esm/utils/createChainedFunction.d.ts +1 -1
  465. package/esm/utils/getDataGroupBy.d.ts +1 -1
  466. package/esm/utils/mergeRefs.d.ts +2 -2
  467. package/esm/utils/previewFile.d.ts +1 -1
  468. package/esm/utils/propTypeChecker.d.ts +6 -2
  469. package/esm/utils/propTypeChecker.js +7 -6
  470. package/esm/utils/reactToString.d.ts +2 -1
  471. package/esm/utils/statusIcons.d.ts +1 -1
  472. package/esm/utils/stringToObject.d.ts +1 -1
  473. package/esm/utils/treeUtils.d.ts +35 -32
  474. package/esm/utils/treeUtils.js +45 -21
  475. package/esm/utils/useControlled.d.ts +6 -1
  476. package/esm/utils/useControlled.js +0 -8
  477. package/esm/utils/useCustom.js +6 -4
  478. package/esm/utils/useElementResize.js +6 -3
  479. package/esm/utils/useFocus.d.ts +2 -2
  480. package/esm/utils/usePortal.d.ts +2 -2
  481. package/esm/utils/useRootClose.d.ts +2 -2
  482. package/esm/utils/useTimeout.d.ts +1 -1
  483. package/esm/utils/useTimeout.js +5 -3
  484. package/package.json +3 -3
  485. package/styles/index.less +2 -0
@@ -21,6 +21,8 @@ var _kebabCase = _interopRequireDefault(require("lodash/kebabCase"));
21
21
 
22
22
  var _trim = _interopRequireDefault(require("lodash/trim"));
23
23
 
24
+ var _isNil = _interopRequireDefault(require("lodash/isNil"));
25
+
24
26
  var _isFunction = _interopRequireDefault(require("lodash/isFunction"));
25
27
 
26
28
  var _isUndefined = _interopRequireDefault(require("lodash/isUndefined"));
@@ -203,13 +205,11 @@ var useFocusItemValue = function useFocusItemValue(defaultFocusItemValue, props)
203
205
  var menu = (0, _isFunction.default)(target) ? target() : target;
204
206
  var currentKeys = keys;
205
207
 
206
- if (currentKeys.length === 0) {
207
- var _Array$from;
208
-
209
- currentKeys = (_Array$from = Array.from(menu === null || menu === void 0 ? void 0 : menu.querySelectorAll(focusableQueryKey))) === null || _Array$from === void 0 ? void 0 : _Array$from.map(function (item) {
208
+ if (currentKeys.length === 0 && !(0, _isNil.default)(menu)) {
209
+ currentKeys = Array.from(menu.querySelectorAll(focusableQueryKey)).map(function (item) {
210
210
  var _item$dataset;
211
211
 
212
- return item === null || item === void 0 ? void 0 : (_item$dataset = item.dataset) === null || _item$dataset === void 0 ? void 0 : _item$dataset.key;
212
+ return (_item$dataset = item.dataset) === null || _item$dataset === void 0 ? void 0 : _item$dataset.key;
213
213
  });
214
214
  setKeys(currentKeys);
215
215
  }
@@ -271,12 +271,12 @@ var useFocusItemValue = function useFocusItemValue(defaultFocusItemValue, props)
271
271
  var subMenu = menu === null || menu === void 0 ? void 0 : menu.querySelector("[data-layer=\"" + nextLayer + "\"]");
272
272
 
273
273
  if (subMenu) {
274
- var _Array$from2;
274
+ var _Array$from;
275
275
 
276
- return (_Array$from2 = Array.from(subMenu.querySelectorAll(focusableQueryKey))) === null || _Array$from2 === void 0 ? void 0 : _Array$from2.map(function (item) {
276
+ return (_Array$from = Array.from(subMenu.querySelectorAll(focusableQueryKey))) === null || _Array$from === void 0 ? void 0 : _Array$from.map(function (item) {
277
277
  var _item$dataset2;
278
278
 
279
- return item === null || item === void 0 ? void 0 : (_item$dataset2 = item.dataset) === null || _item$dataset2 === void 0 ? void 0 : _item$dataset2.key;
279
+ return (_item$dataset2 = item.dataset) === null || _item$dataset2 === void 0 ? void 0 : _item$dataset2.key;
280
280
  });
281
281
  }
282
282
 
@@ -405,9 +405,15 @@ var useToggleKeyDownEvent = function useToggleKeyDownEvent(props) {
405
405
 
406
406
 
407
407
  if (event.key.length === 1 && /\w/.test(event.key)) {
408
- var _searchInputRef$curre;
408
+ var _event$target;
409
+
410
+ // Exclude Input
411
+ // eg: <SelectPicker renderExtraFooter={() => <Input />} />
412
+ if (((_event$target = event.target) === null || _event$target === void 0 ? void 0 : _event$target.tagName) !== 'INPUT') {
413
+ var _searchInputRef$curre;
409
414
 
410
- searchInputRef === null || searchInputRef === void 0 ? void 0 : (_searchInputRef$curre = searchInputRef.current) === null || _searchInputRef$curre === void 0 ? void 0 : _searchInputRef$curre.focus();
415
+ searchInputRef === null || searchInputRef === void 0 ? void 0 : (_searchInputRef$curre = searchInputRef.current) === null || _searchInputRef$curre === void 0 ? void 0 : _searchInputRef$curre.focus();
416
+ }
411
417
  }
412
418
  }
413
419
 
@@ -486,61 +492,80 @@ function useSearch(props) {
486
492
 
487
493
  /**
488
494
  * A hook of the exposed method of Picker
489
- *
490
- * {
491
- * root: Element;
492
- * overlay: Element;
493
- * target?: Element;
494
- * updatePosition:() => void;
495
- * open:() => void;
496
- * close:() => void;
497
- * }
498
- * @param ref
499
- * @param params
500
495
  */
501
- function usePublicMethods(ref, _ref, disabled) {
502
- var triggerRef = _ref.triggerRef,
503
- overlayRef = _ref.overlayRef,
504
- targetRef = _ref.targetRef,
505
- rootRef = _ref.rootRef;
496
+ function usePublicMethods(ref, parmas) {
497
+ var triggerRef = parmas.triggerRef,
498
+ overlayRef = parmas.overlayRef,
499
+ targetRef = parmas.targetRef,
500
+ rootRef = parmas.rootRef,
501
+ listRef = parmas.listRef,
502
+ inline = parmas.inline;
506
503
  var handleOpen = (0, _react.useCallback)(function () {
507
504
  var _triggerRef$current3;
508
505
 
509
- (_triggerRef$current3 = triggerRef.current) === null || _triggerRef$current3 === void 0 ? void 0 : _triggerRef$current3.open();
506
+ triggerRef === null || triggerRef === void 0 ? void 0 : (_triggerRef$current3 = triggerRef.current) === null || _triggerRef$current3 === void 0 ? void 0 : _triggerRef$current3.open();
510
507
  }, [triggerRef]);
511
508
  var handleClose = (0, _react.useCallback)(function () {
512
509
  var _triggerRef$current4;
513
510
 
514
- (_triggerRef$current4 = triggerRef.current) === null || _triggerRef$current4 === void 0 ? void 0 : _triggerRef$current4.close();
511
+ triggerRef === null || triggerRef === void 0 ? void 0 : (_triggerRef$current4 = triggerRef.current) === null || _triggerRef$current4 === void 0 ? void 0 : _triggerRef$current4.close();
515
512
  }, [triggerRef]);
516
513
  var handleUpdatePosition = (0, _react.useCallback)(function () {
517
514
  var _triggerRef$current5;
518
515
 
519
- (_triggerRef$current5 = triggerRef.current) === null || _triggerRef$current5 === void 0 ? void 0 : _triggerRef$current5.updatePosition();
516
+ triggerRef === null || triggerRef === void 0 ? void 0 : (_triggerRef$current5 = triggerRef.current) === null || _triggerRef$current5 === void 0 ? void 0 : _triggerRef$current5.updatePosition();
520
517
  }, [triggerRef]);
521
-
522
- if (!disabled) {
523
- // eslint-disable-next-line react-hooks/rules-of-hooks
524
- (0, _react.useImperativeHandle)(ref, function () {
518
+ (0, _react.useImperativeHandle)(ref, function () {
519
+ // Tree and CheckTree
520
+ if (inline) {
525
521
  return {
526
522
  get root() {
527
- var _triggerRef$current6;
523
+ var _triggerRef$current$r, _triggerRef$current6;
528
524
 
529
- return rootRef !== null && rootRef !== void 0 && rootRef.current ? rootRef === null || rootRef === void 0 ? void 0 : rootRef.current : (_triggerRef$current6 = triggerRef.current) === null || _triggerRef$current6 === void 0 ? void 0 : _triggerRef$current6.root;
525
+ return rootRef !== null && rootRef !== void 0 && rootRef.current ? rootRef === null || rootRef === void 0 ? void 0 : rootRef.current : (_triggerRef$current$r = triggerRef === null || triggerRef === void 0 ? void 0 : (_triggerRef$current6 = triggerRef.current) === null || _triggerRef$current6 === void 0 ? void 0 : _triggerRef$current6.root) !== null && _triggerRef$current$r !== void 0 ? _triggerRef$current$r : null;
530
526
  },
531
527
 
532
- get overlay() {
533
- return overlayRef.current;
534
- },
528
+ get list() {
529
+ if (!(listRef !== null && listRef !== void 0 && listRef.current)) {
530
+ throw new Error('The list is not found, please set `virtualized` for the component.');
531
+ }
535
532
 
536
- get target() {
537
- return targetRef === null || targetRef === void 0 ? void 0 : targetRef.current;
538
- },
533
+ return listRef === null || listRef === void 0 ? void 0 : listRef.current;
534
+ }
539
535
 
540
- updatePosition: handleUpdatePosition,
541
- open: handleOpen,
542
- close: handleClose
543
536
  };
544
- });
545
- }
537
+ }
538
+
539
+ return {
540
+ get root() {
541
+ var _ref, _triggerRef$current7;
542
+
543
+ return (_ref = (rootRef === null || rootRef === void 0 ? void 0 : rootRef.current) || (triggerRef === null || triggerRef === void 0 ? void 0 : (_triggerRef$current7 = triggerRef.current) === null || _triggerRef$current7 === void 0 ? void 0 : _triggerRef$current7.root)) !== null && _ref !== void 0 ? _ref : null;
544
+ },
545
+
546
+ get overlay() {
547
+ var _overlayRef$current;
548
+
549
+ return (_overlayRef$current = overlayRef === null || overlayRef === void 0 ? void 0 : overlayRef.current) !== null && _overlayRef$current !== void 0 ? _overlayRef$current : null;
550
+ },
551
+
552
+ get target() {
553
+ var _targetRef$current;
554
+
555
+ return (_targetRef$current = targetRef === null || targetRef === void 0 ? void 0 : targetRef.current) !== null && _targetRef$current !== void 0 ? _targetRef$current : null;
556
+ },
557
+
558
+ get list() {
559
+ if (!(listRef !== null && listRef !== void 0 && listRef.current)) {
560
+ throw new Error("\n The list is not found.\n 1.Please set virtualized for the component.\n 2.Please confirm whether the picker is open.\n ");
561
+ }
562
+
563
+ return listRef === null || listRef === void 0 ? void 0 : listRef.current;
564
+ },
565
+
566
+ updatePosition: handleUpdatePosition,
567
+ open: handleOpen,
568
+ close: handleClose
569
+ };
570
+ });
546
571
  }
@@ -62,7 +62,7 @@ var PlaceholderGrid = /*#__PURE__*/_react.default.forwardRef(function (props, re
62
62
  style: {
63
63
  width: widthPercent + "%",
64
64
  height: rowHeight,
65
- marginTop: j > 0 ? rowMargin : null
65
+ marginTop: j > 0 ? rowMargin : undefined
66
66
  }
67
67
  }));
68
68
  }
@@ -26,7 +26,8 @@ var Plaintext = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
26
26
  classPrefix = _props$classPrefix === void 0 ? 'plaintext' : _props$classPrefix,
27
27
  className = props.className,
28
28
  children = props.children,
29
- localeKey = props.localeKey,
29
+ _props$localeKey = props.localeKey,
30
+ localeKey = _props$localeKey === void 0 ? '' : _props$localeKey,
30
31
  _props$placeholder = props.placeholder,
31
32
  placeholder = _props$placeholder === void 0 ? locale[localeKey] : _props$placeholder,
32
33
  rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "classPrefix", "className", "children", "localeKey", "placeholder"]);
@@ -27,7 +27,7 @@ export interface RadioProps<T = ValueType> extends WithAsProps, Omit<React.HTMLA
27
27
  /** Primary content */
28
28
  children?: React.ReactNode;
29
29
  /** Callback function with value changed */
30
- onChange?: (value: T, checked: boolean, event: React.ChangeEvent<HTMLInputElement>) => void;
30
+ onChange?: (value: T | undefined, checked: boolean, event: React.ChangeEvent<HTMLInputElement>) => void;
31
31
  }
32
32
  declare const Radio: React.ForwardRefExoticComponent<RadioProps<ValueType> & React.RefAttributes<unknown>>;
33
33
  export default Radio;
@@ -4,12 +4,12 @@ import { ValueType } from '../Radio';
4
4
  export interface RadioContextProps {
5
5
  inline?: boolean;
6
6
  name?: string;
7
- value?: ValueType;
7
+ value?: ValueType | null;
8
8
  controlled?: boolean;
9
9
  disabled?: boolean;
10
10
  readOnly?: boolean;
11
11
  plaintext?: boolean;
12
- onChange?: (value: ValueType, event: React.ChangeEvent<HTMLInputElement>) => void;
12
+ onChange?: (value: ValueType | undefined, event: React.ChangeEvent<HTMLInputElement>) => void;
13
13
  }
14
14
  export interface RadioGroupProps<T = ValueType> extends WithAsProps, FormControlBaseProps<T> {
15
15
  /** A radio group can have different appearances */
@@ -57,7 +57,7 @@ var RadioGroup = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
57
57
 
58
58
  var handleChange = (0, _react.useCallback)(function (nextValue, event) {
59
59
  setValue(nextValue);
60
- onChange === null || onChange === void 0 ? void 0 : onChange(nextValue, event);
60
+ onChange === null || onChange === void 0 ? void 0 : onChange(nextValue !== null && nextValue !== void 0 ? nextValue : '', event);
61
61
  }, [onChange, setValue]);
62
62
  var contextValue = (0, _react.useMemo)(function () {
63
63
  return {
@@ -73,10 +73,10 @@ var RadioGroup = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
73
73
  }, [disabled, handleChange, inline, isControlled, name, plaintext, readOnly, value]);
74
74
  return /*#__PURE__*/_react.default.createElement(RadioContext.Provider, {
75
75
  value: contextValue
76
- }, plaintext ? /*#__PURE__*/_react.default.createElement(_Plaintext.default, {
76
+ }, plaintext ? /*#__PURE__*/_react.default.createElement(_Plaintext.default, (0, _extends2.default)({
77
77
  ref: ref,
78
78
  localeKey: "notSelected"
79
- }, value ? children : null) : /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({
79
+ }, rest), value ? children : null) : /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({
80
80
  role: "radiogroup"
81
81
  }, rest, {
82
82
  ref: ref,
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { SliderProps } from '../Slider';
3
- export declare type ValueType = number[];
4
- export declare type RangeSliderProps = SliderProps<ValueType>;
3
+ export declare type Range = [number, number];
4
+ export declare type RangeSliderProps = SliderProps<Range>;
5
5
  declare const RangeSlider: React.ForwardRefExoticComponent<RangeSliderProps & React.RefAttributes<unknown>>;
6
6
  export default RangeSlider;
@@ -33,6 +33,8 @@ var _Graduated = _interopRequireDefault(require("../Slider/Graduated"));
33
33
 
34
34
  var _utils2 = require("../Slider/utils");
35
35
 
36
+ var _propTypeChecker = require("../utils/propTypeChecker");
37
+
36
38
  var defaultDefaultValue = [0, 0];
37
39
 
38
40
  var RangeSlider = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
@@ -70,7 +72,7 @@ var RangeSlider = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
70
72
  onChange = props.onChange,
71
73
  onChangeCommitted = props.onChangeCommitted,
72
74
  rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["aria-label", "aria-labelledby", "aria-valuetext", "as", "barClassName", "className", "defaultValue", "graduated", "progress", "vertical", "disabled", "classPrefix", "min", "max", "step", "value", "handleClassName", "handleStyle", "handleTitle", "tooltip", "getAriaValueText", "renderTooltip", "renderMark", "onChange", "onChangeCommitted"]);
73
- var barRef = (0, _react.useRef)(); // Define the parameter position of the handle
75
+ var barRef = (0, _react.useRef)(null); // Define the parameter position of the handle
74
76
 
75
77
  var handleIndexs = (0, _react.useRef)([0, 1]);
76
78
 
@@ -286,7 +288,7 @@ var RangeSlider = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
286
288
  onDragMove: handleDragMove,
287
289
  onDragEnd: handleChangeCommitted,
288
290
  onKeyDown: handleKeyDown,
289
- tabIndex: disabled ? null : 0,
291
+ tabIndex: disabled ? undefined : 0,
290
292
  'aria-orientation': vertical ? 'vertical' : 'horizontal',
291
293
  'aria-disabled': disabled,
292
294
  'aria-valuemax': max,
@@ -322,8 +324,8 @@ var RangeSlider = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
322
324
 
323
325
  RangeSlider.displayName = 'RangeSlider';
324
326
  RangeSlider.propTypes = (0, _extends2.default)({}, _Slider.sliderPropTypes, {
325
- value: _propTypes.default.arrayOf(_propTypes.default.number),
326
- defaultValue: _propTypes.default.arrayOf(_propTypes.default.number)
327
+ value: (0, _propTypeChecker.tupleType)(_propTypes.default.number.isRequired, _propTypes.default.number.isRequired),
328
+ defaultValue: (0, _propTypeChecker.tupleType)(_propTypes.default.number.isRequired, _propTypes.default.number.isRequired)
327
329
  });
328
330
  var _default = RangeSlider;
329
331
  exports.default = _default;
@@ -11,6 +11,8 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
11
11
 
12
12
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
13
13
 
14
+ var _isNil2 = _interopRequireDefault(require("lodash/isNil"));
15
+
14
16
  var _react = _interopRequireWildcard(require("react"));
15
17
 
16
18
  var _propTypes = _interopRequireDefault(require("prop-types"));
@@ -47,8 +49,8 @@ var Character = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
47
49
  prefix = _useClassNames.prefix,
48
50
  withClassPrefix = _useClassNames.withClassPrefix;
49
51
 
50
- var beforeRef = (0, _react.useRef)();
51
- var classes = merge(className, withClassPrefix(characterStatus[status]));
52
+ var beforeRef = (0, _react.useRef)(null);
53
+ var classes = merge(className, withClassPrefix(!(0, _isNil2.default)(status) && characterStatus[status]));
52
54
  var handleMouseMove = (0, _react.useCallback)(function (event) {
53
55
  onMouseMove === null || onMouseMove === void 0 ? void 0 : onMouseMove(getKey(beforeRef.current, event.target), event);
54
56
  }, [onMouseMove]);
package/cjs/Rate/Rate.js CHANGED
@@ -15,6 +15,8 @@ var _react = _interopRequireWildcard(require("react"));
15
15
 
16
16
  var _propTypes = _interopRequireDefault(require("prop-types"));
17
17
 
18
+ var _isNil = _interopRequireDefault(require("lodash/isNil"));
19
+
18
20
  var _Star = _interopRequireDefault(require("@rsuite/icons/legacy/Star"));
19
21
 
20
22
  var _utils = require("../utils");
@@ -41,7 +43,8 @@ var Rate = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
41
43
  _props$size = props.size,
42
44
  size = _props$size === void 0 ? 'md' : _props$size,
43
45
  color = props.color,
44
- allowHalf = props.allowHalf,
46
+ _props$allowHalf = props.allowHalf,
47
+ allowHalf = _props$allowHalf === void 0 ? false : _props$allowHalf,
45
48
  valueProp = props.value,
46
49
  _props$defaultValue = props.defaultValue,
47
50
  defaultValue = _props$defaultValue === void 0 ? 0 : _props$defaultValue,
@@ -138,7 +141,7 @@ var Rate = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
138
141
  return /*#__PURE__*/_react.default.createElement(_Plaintext.default, {
139
142
  localeKey: "notSelected",
140
143
  className: className
141
- }, value + "(" + max + ")");
144
+ }, !(0, _isNil.default)(value) ? value + "(" + max + ")" : null);
142
145
  }
143
146
 
144
147
  return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({
@@ -53,7 +53,7 @@ var Ripple = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
53
53
  withClassPrefix = _useClassNames.withClassPrefix;
54
54
 
55
55
  var classes = merge(className, prefix('pond'));
56
- var triggerRef = (0, _react.useRef)();
56
+ var triggerRef = (0, _react.useRef)(null);
57
57
 
58
58
  var _useState = (0, _react.useState)(false),
59
59
  rippling = _useState[0],
@@ -1,10 +1,8 @@
1
1
  import React from 'react';
2
2
  import { PickerLocale } from '../locales';
3
- import { PickerComponent } from '../Picker';
4
3
  import { FormControlPickerProps, ItemDataType } from '../@types/common';
5
4
  import { ListProps } from 'react-virtualized/dist/commonjs/List';
6
- export declare type ValueType = number | string;
7
- export interface SelectProps<T = ValueType> {
5
+ export interface SelectProps<T> {
8
6
  /** Set group condition key in data */
9
7
  groupBy?: string;
10
8
  /** Whether dispaly search input box */
@@ -37,7 +35,16 @@ export interface SelectProps<T = ValueType> {
37
35
  /** Called when clean */
38
36
  onClean?: (event: React.SyntheticEvent) => void;
39
37
  }
40
- export interface SelectPickerProps<T = ValueType> extends FormControlPickerProps<T, PickerLocale, ItemDataType>, SelectProps<T> {
38
+ export interface MultipleSelectProps<T> extends Omit<SelectProps<T>, 'renderValue'> {
39
+ /** Custom render selected items */
40
+ renderValue?: (value: T[], item: ItemDataType<T>[], selectedElement: React.ReactNode) => React.ReactNode;
41
+ }
42
+ export interface SelectPickerProps<T> extends FormControlPickerProps<T, PickerLocale, ItemDataType<T>>, SelectProps<T> {
43
+ }
44
+ export interface SelectPickerComponent {
45
+ <T>(props: SelectPickerProps<T>): JSX.Element | null;
46
+ displayName?: string;
47
+ propTypes?: React.WeakValidationMap<SelectPickerProps<any>>;
41
48
  }
42
- declare const SelectPicker: PickerComponent<SelectPickerProps>;
49
+ declare const SelectPicker: SelectPickerComponent;
43
50
  export default SelectPicker;
@@ -90,17 +90,17 @@ var SelectPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
90
90
  renderMenuItem = props.renderMenuItem,
91
91
  renderExtraFooter = props.renderExtraFooter,
92
92
  rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "appearance", "data", "valueKey", "labelKey", "value", "classPrefix", "placeholder", "defaultValue", "disabled", "cleanable", "placement", "menuClassName", "menuAutoWidth", "menuMaxHeight", "menuStyle", "groupBy", "locale", "toggleAs", "style", "searchable", "disabledItemValues", "virtualized", "listProps", "id", "onGroupTitleClick", "searchBy", "onEntered", "onExited", "onClean", "onChange", "onSelect", "onSearch", "onClose", "onOpen", "sort", "renderValue", "renderMenu", "renderMenuGroup", "renderMenuItem", "renderExtraFooter"]);
93
- var triggerRef = (0, _react.useRef)();
94
- var targetRef = (0, _react.useRef)();
95
- var overlayRef = (0, _react.useRef)();
96
- var searchInputRef = (0, _react.useRef)();
93
+ var triggerRef = (0, _react.useRef)(null);
94
+ var targetRef = (0, _react.useRef)(null);
95
+ var overlayRef = (0, _react.useRef)(null);
96
+ var searchInputRef = (0, _react.useRef)(null);
97
97
 
98
98
  var _useCustom = (0, _utils.useCustom)('Picker', overrideLocale),
99
99
  locale = _useCustom.locale;
100
100
 
101
- var _useControlled = (0, _utils.useControlled)(valueProp, defaultValue),
102
- value = _useControlled[0],
103
- setValue = _useControlled[1]; // Used to hover the focus item when trigger `onKeydown`
101
+ var _ref = (0, _utils.useControlled)(valueProp, defaultValue),
102
+ value = _ref[0],
103
+ setValue = _ref[1]; // Used to hover the focus item when trigger `onKeydown`
104
104
 
105
105
 
106
106
  var _useFocusItemValue = (0, _Picker.useFocusItemValue)(value, {
@@ -327,7 +327,7 @@ var SelectPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
327
327
  disabled: disabled,
328
328
  cleanable: cleanable && !disabled,
329
329
  hasValue: hasValue,
330
- inputValue: value,
330
+ inputValue: value !== null && value !== void 0 ? value : '',
331
331
  active: active,
332
332
  placement: placement
333
333
  }), selectedElement || (locale === null || locale === void 0 ? void 0 : locale.placeholder))));
@@ -1,3 +1,3 @@
1
1
  import SelectPicker from './SelectPicker';
2
- export type { SelectProps, SelectPickerProps } from './SelectPicker';
2
+ export type { SelectProps, MultipleSelectProps, SelectPickerProps } from './SelectPicker';
3
3
  export default SelectPicker;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _react = _interopRequireDefault(require("react"));
6
+
7
+ var _tsExpect = require("ts-expect");
8
+
9
+ var _SelectPicker = _interopRequireDefault(require("../SelectPicker"));
10
+
11
+ // Infer value and onChange types from data
12
+ var numberValuedData = [{
13
+ label: 'One',
14
+ value: 1
15
+ }];
16
+
17
+ /*#__PURE__*/
18
+ _react.default.createElement(_SelectPicker.default, {
19
+ data: numberValuedData,
20
+ value: 1
21
+ }); // @ts-expect-error should not accept string value
22
+
23
+
24
+ /*#__PURE__*/
25
+ _react.default.createElement(_SelectPicker.default, {
26
+ data: numberValuedData,
27
+ value: "1"
28
+ });
29
+
30
+ /*#__PURE__*/
31
+ _react.default.createElement(_SelectPicker.default, {
32
+ data: numberValuedData,
33
+ onChange: function onChange(newValue) {
34
+ (0, _tsExpect.expectType)(newValue);
35
+ }
36
+ });
37
+
38
+ var stringValuedData = [{
39
+ label: 'One',
40
+ value: 'One'
41
+ }];
42
+
43
+ /*#__PURE__*/
44
+ _react.default.createElement(_SelectPicker.default, {
45
+ data: stringValuedData,
46
+ value: "1"
47
+ }); // @ts-expect-error should not accept number value
48
+
49
+
50
+ /*#__PURE__*/
51
+ _react.default.createElement(_SelectPicker.default, {
52
+ data: stringValuedData,
53
+ value: 1
54
+ });
55
+
56
+ /*#__PURE__*/
57
+ _react.default.createElement(_SelectPicker.default, {
58
+ data: stringValuedData,
59
+ onChange: function onChange(newValue) {
60
+ (0, _tsExpect.expectType)(newValue);
61
+ }
62
+ });
@@ -4,7 +4,7 @@
4
4
  * Ref: https://developer.mozilla.org/zh-CN/docs/Web/API/Node
5
5
  */
6
6
  export declare class Node {
7
- id: string;
7
+ id: string | null;
8
8
  nodeValue: string | null;
9
9
  parent: string | null;
10
10
  parentNode: Node | null;
@@ -23,16 +23,16 @@ export interface SidenavProps<T = string> extends WithAsProps {
23
23
  * Select the callback function for the menu
24
24
  * @deprecated Use <Sidenav onSelect> instead
25
25
  */
26
- onSelect?: (eventKey: T, event: React.SyntheticEvent) => void;
26
+ onSelect?: (eventKey: T | undefined, event: React.SyntheticEvent) => void;
27
27
  }
28
- export declare const SidenavContext: React.Context<SidenavContextType<string>>;
28
+ export declare const SidenavContext: React.Context<SidenavContextType<string> | null>;
29
29
  export interface SidenavContextType<T = string> {
30
30
  openKeys: T[];
31
- activeKey: T;
31
+ activeKey: T | null;
32
32
  sidenav: boolean;
33
33
  expanded: boolean;
34
34
  onOpenChange: (eventKey: T, event: React.SyntheticEvent) => void;
35
- onSelect?: (eventKey: T, event: React.SyntheticEvent) => void;
35
+ onSelect?: (eventKey: T | undefined, event: React.SyntheticEvent) => void;
36
36
  }
37
37
  export interface SidenavComponent extends RsRefForwardingComponent<'div', SidenavProps> {
38
38
  Header: typeof SidenavHeader;
@@ -34,6 +34,7 @@ var _deprecatePropType = _interopRequireDefault(require("../utils/deprecatePropT
34
34
  var SidenavContext = /*#__PURE__*/_react.default.createContext(null);
35
35
 
36
36
  exports.SidenavContext = SidenavContext;
37
+ var emptyArray = [];
37
38
 
38
39
  var Sidenav = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
39
40
  var _props$as = props.as,
@@ -45,8 +46,10 @@ var Sidenav = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
45
46
  appearance = _props$appearance === void 0 ? 'default' : _props$appearance,
46
47
  _props$expanded = props.expanded,
47
48
  expanded = _props$expanded === void 0 ? true : _props$expanded,
48
- activeKey = props.activeKey,
49
- defaultOpenKeys = props.defaultOpenKeys,
49
+ _props$activeKey = props.activeKey,
50
+ activeKey = _props$activeKey === void 0 ? null : _props$activeKey,
51
+ _props$defaultOpenKey = props.defaultOpenKeys,
52
+ defaultOpenKeys = _props$defaultOpenKey === void 0 ? emptyArray : _props$defaultOpenKey,
50
53
  openKeysProp = props.openKeys,
51
54
  onSelect = props.onSelect,
52
55
  onOpenChange = props.onOpenChange,
@@ -60,14 +60,8 @@ var SidenavDropdown = /*#__PURE__*/_react.default.forwardRef(function (props, re
60
60
  openProp = props.open,
61
61
  onToggle = props.onToggle,
62
62
  rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "title", "children", "className", "menuStyle", "disabled", "renderTitle", "renderToggle", "classPrefix", "placement", "toggleClassName", "icon", "eventKey", "toggleAs", "noCaret", "style", "onOpen", "onClose", "open", "onToggle"]);
63
-
64
- var _useContext = (0, _react.useContext)(_Sidenav.SidenavContext),
65
- _useContext$openKeys = _useContext.openKeys,
66
- openKeys = _useContext$openKeys === void 0 ? [] : _useContext$openKeys,
67
- onOpenChange = _useContext.onOpenChange;
68
-
69
- var _useContext2 = (0, _react.useContext)(_DropdownContext.default),
70
- hasSelectedItem = _useContext2.hasSelectedItem;
63
+ var sidenavContext = (0, _react.useContext)(_Sidenav.SidenavContext);
64
+ var dropdownContext = (0, _react.useContext)(_DropdownContext.default);
71
65
 
72
66
  var _useClassNames = (0, _utils.useClassNames)(classPrefix),
73
67
  merge = _useClassNames.merge,
@@ -75,6 +69,15 @@ var SidenavDropdown = /*#__PURE__*/_react.default.forwardRef(function (props, re
75
69
 
76
70
  var internalId = (0, _useInternalId.default)('SidenavDropdown');
77
71
  var uniqueKey = eventKey !== null && eventKey !== void 0 ? eventKey : internalId;
72
+
73
+ if (!sidenavContext || !dropdownContext) {
74
+ throw new Error('<SidenavDropdown> component is not supposed to be used standalone. Use <Dropdown> inside <Sidenav> instead.');
75
+ }
76
+
77
+ var _sidenavContext$openK = sidenavContext.openKeys,
78
+ openKeys = _sidenavContext$openK === void 0 ? [] : _sidenavContext$openK,
79
+ onOpenChange = sidenavContext.onOpenChange;
80
+ var hasSelectedItem = dropdownContext.hasSelectedItem;
78
81
  var handleToggleDisclosure = (0, _react.useCallback)(function (open, event) {
79
82
  if (open) {
80
83
  onClose === null || onClose === void 0 ? void 0 : onClose();
@@ -52,13 +52,16 @@ var SidenavDropdownItem = /*#__PURE__*/_react.default.forwardRef(function (props
52
52
  onClick = props.onClick,
53
53
  onSelect = props.onSelect,
54
54
  rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "active", "children", "disabled", "divider", "panel", "className", "style", "classPrefix", "icon", "eventKey", "onClick", "onSelect"]);
55
+ var sidenavContext = (0, _react.useContext)(_Sidenav.SidenavContext);
56
+ var dropdown = (0, _react.useContext)(_DropdownContext.default);
55
57
 
56
- var _useContext = (0, _react.useContext)(_Sidenav.SidenavContext),
57
- activeKey = _useContext.activeKey,
58
- onSidenavSelect = _useContext.onSelect;
58
+ if (!sidenavContext || !dropdown) {
59
+ throw new Error('<SidenavDropdownItem> component is not supposed to be used standalone. Use <Dropdown.Item> within <Sidenav> instead.');
60
+ }
59
61
 
62
+ var activeKey = sidenavContext.activeKey,
63
+ onSidenavSelect = sidenavContext.onSelect;
60
64
  var nav = (0, _react.useContext)(_NavContext.default);
61
- var dropdown = (0, _react.useContext)(_DropdownContext.default);
62
65
 
63
66
  var _useClassNames = (0, _utils.useClassNames)(classPrefix),
64
67
  merge = _useClassNames.merge,
@@ -72,9 +75,11 @@ var SidenavDropdownItem = /*#__PURE__*/_react.default.forwardRef(function (props
72
75
  disabled: disabled
73
76
  }));
74
77
  var handleClick = (0, _react.useCallback)(function (event) {
78
+ var _dropdown$onSelect;
79
+
75
80
  if (disabled) return;
76
81
  onSelect === null || onSelect === void 0 ? void 0 : onSelect(eventKey, event);
77
- dropdown === null || dropdown === void 0 ? void 0 : dropdown.onSelect(eventKey, event);
82
+ (_dropdown$onSelect = dropdown.onSelect) === null || _dropdown$onSelect === void 0 ? void 0 : _dropdown$onSelect.call(dropdown, eventKey, event);
78
83
  onSidenavSelect === null || onSidenavSelect === void 0 ? void 0 : onSidenavSelect(eventKey, event);
79
84
  }, [disabled, onSelect, onSidenavSelect, eventKey, dropdown]);
80
85
  var menuitemEventHandlers = {
@@ -68,12 +68,16 @@ var SidenavDropdownMenu = /*#__PURE__*/_react.default.forwardRef(function (props
68
68
  withClassPrefix = _useClassNames.withClassPrefix,
69
69
  prefix = _useClassNames.prefix;
70
70
 
71
- var _useContext = (0, _react.useContext)(_Sidenav.SidenavContext),
72
- _useContext$openKeys = _useContext.openKeys,
73
- openKeys = _useContext$openKeys === void 0 ? [] : _useContext$openKeys,
74
- onOpenChange = _useContext.onOpenChange,
75
- onSidenavSelect = _useContext.onSelect;
71
+ var sidenavContext = (0, _react.useContext)(_Sidenav.SidenavContext);
76
72
 
73
+ if (!sidenavContext) {
74
+ throw new Error('<SidenavDropdownMenu> component is not supposed to be used standalone. Use <Dropdown.Item> inside <Sidenav> instead.');
75
+ }
76
+
77
+ var _sidenavContext$openK = sidenavContext.openKeys,
78
+ openKeys = _sidenavContext$openK === void 0 ? [] : _sidenavContext$openK,
79
+ onOpenChange = sidenavContext.onOpenChange,
80
+ onSidenavSelect = sidenavContext.onSelect;
77
81
  var handleClick = (0, _react.useCallback)(function (event) {
78
82
  if (disabled) return;
79
83
  onSelect === null || onSelect === void 0 ? void 0 : onSelect(eventKey, event);