rsuite 5.2.3 → 5.4.1

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