rsuite 5.2.4 → 5.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (511) hide show
  1. package/Avatar/styles/index.less +2 -2
  2. package/AvatarGroup/package.json +7 -0
  3. package/AvatarGroup/styles/index.less +19 -0
  4. package/ButtonGroup/styles/index.less +0 -18
  5. package/CHANGELOG.md +61 -0
  6. package/CheckTreePicker/styles/index.less +14 -1
  7. package/Dropdown/styles/index.less +4 -3
  8. package/Modal/styles/index.less +23 -22
  9. package/Nav/styles/index.less +1 -0
  10. package/Navbar/styles/index.less +19 -5
  11. package/Radio/styles/index.less +6 -0
  12. package/Sidenav/styles/index.less +2 -2
  13. package/Stack/package.json +7 -0
  14. package/Stack/styles/index.less +5 -0
  15. package/TreePicker/styles/index.less +10 -14
  16. package/cjs/@types/common.d.ts +13 -12
  17. package/cjs/@types/utils.d.ts +12 -0
  18. package/cjs/Affix/Affix.js +8 -6
  19. package/cjs/Animation/Transition.d.ts +21 -12
  20. package/cjs/Animation/Transition.js +4 -1
  21. package/cjs/AutoComplete/AutoComplete.js +1 -1
  22. package/cjs/AutoComplete/utils.d.ts +1 -1
  23. package/cjs/Avatar/Avatar.js +10 -3
  24. package/cjs/AvatarGroup/AvatarGroup.d.ts +15 -0
  25. package/cjs/AvatarGroup/AvatarGroup.js +76 -0
  26. package/cjs/AvatarGroup/index.d.ts +3 -0
  27. package/cjs/AvatarGroup/index.js +11 -0
  28. package/cjs/Breadcrumb/Breadcrumb.js +1 -1
  29. package/cjs/Button/Button.js +8 -2
  30. package/cjs/ButtonGroup/ButtonGroup.js +14 -3
  31. package/cjs/ButtonGroup/ButtonGroupContext.d.ts +7 -0
  32. package/cjs/ButtonGroup/ButtonGroupContext.js +13 -0
  33. package/cjs/ButtonGroup/index.d.ts +2 -0
  34. package/cjs/ButtonGroup/index.js +3 -0
  35. package/cjs/Calendar/Calendar.d.ts +4 -4
  36. package/cjs/Calendar/Calendar.js +26 -22
  37. package/cjs/Calendar/CalendarContext.js +1 -1
  38. package/cjs/Calendar/Header.js +1 -3
  39. package/cjs/Calendar/Table.js +1 -1
  40. package/cjs/Calendar/TableRow.js +13 -8
  41. package/cjs/Calendar/TimeDropdown.js +6 -5
  42. package/cjs/Calendar/View.js +9 -5
  43. package/cjs/Calendar/types.d.ts +2 -2
  44. package/cjs/Calendar/useCalendarDate.d.ts +2 -2
  45. package/cjs/Carousel/Carousel.d.ts +1 -1
  46. package/cjs/Carousel/Carousel.js +1 -1
  47. package/cjs/Cascader/Cascader.d.ts +1 -1
  48. package/cjs/Cascader/Cascader.js +10 -10
  49. package/cjs/Cascader/DropdownMenu.d.ts +5 -4
  50. package/cjs/Cascader/utils.d.ts +10 -10
  51. package/cjs/CheckPicker/CheckPicker.d.ts +9 -4
  52. package/cjs/CheckPicker/CheckPicker.js +4 -4
  53. package/cjs/CheckPicker/test/CheckPicker.test.d.ts +1 -0
  54. package/cjs/CheckPicker/test/CheckPicker.test.js +76 -0
  55. package/cjs/CheckTree/index.js +6 -5
  56. package/cjs/CheckTreePicker/CheckTreeNode.d.ts +1 -1
  57. package/cjs/CheckTreePicker/CheckTreeNode.js +7 -9
  58. package/cjs/CheckTreePicker/CheckTreePicker.js +29 -25
  59. package/cjs/CheckTreePicker/utils.d.ts +3 -1
  60. package/cjs/CheckTreePicker/utils.js +12 -10
  61. package/cjs/Checkbox/Checkbox.d.ts +1 -1
  62. package/cjs/Container/Container.js +6 -3
  63. package/cjs/CustomProvider/CustomProvider.d.ts +31 -57
  64. package/cjs/DOMHelper/index.d.ts +12 -12
  65. package/cjs/DatePicker/DatePicker.d.ts +1 -1
  66. package/cjs/DatePicker/DatePicker.js +19 -11
  67. package/cjs/DatePicker/Toolbar.d.ts +12 -9
  68. package/cjs/DatePicker/Toolbar.js +6 -8
  69. package/cjs/DatePicker/types.d.ts +4 -4
  70. package/cjs/DatePicker/utils.d.ts +4 -3
  71. package/cjs/DateRangePicker/Calendar.d.ts +8 -7
  72. package/cjs/DateRangePicker/Calendar.js +1 -1
  73. package/cjs/DateRangePicker/DateRangePicker.d.ts +6 -6
  74. package/cjs/DateRangePicker/DateRangePicker.js +112 -111
  75. package/cjs/DateRangePicker/types.d.ts +2 -1
  76. package/cjs/DateRangePicker/utils.d.ts +6 -6
  77. package/cjs/DateRangePicker/utils.js +7 -2
  78. package/cjs/Disclosure/Disclosure.d.ts +8 -5
  79. package/cjs/Disclosure/Disclosure.js +55 -13
  80. package/cjs/Disclosure/DisclosureButton.d.ts +2 -2
  81. package/cjs/Disclosure/DisclosureButton.js +9 -7
  82. package/cjs/Disclosure/DisclosureContent.js +4 -6
  83. package/cjs/Disclosure/DisclosureContext.d.ts +8 -3
  84. package/cjs/Disclosure/useDisclosureContext.d.ts +2 -0
  85. package/cjs/Disclosure/useDisclosureContext.js +20 -0
  86. package/cjs/Dropdown/Dropdown.d.ts +1 -1
  87. package/cjs/Dropdown/Dropdown.js +1 -1
  88. package/cjs/Dropdown/DropdownContext.d.ts +2 -2
  89. package/cjs/Dropdown/DropdownItem.js +10 -11
  90. package/cjs/Dropdown/DropdownMenu.d.ts +3 -3
  91. package/cjs/Dropdown/DropdownMenu.js +81 -23
  92. package/cjs/Dropdown/DropdownState.d.ts +1 -1
  93. package/cjs/Dropdown/DropdownToggle.js +10 -2
  94. package/cjs/Dropdown/useRenderDropdownItem.d.ts +1 -1
  95. package/cjs/Form/Form.js +1 -1
  96. package/cjs/Form/FormContext.d.ts +1 -1
  97. package/cjs/FormControl/FormControl.d.ts +1 -1
  98. package/cjs/FormControl/FormControl.js +5 -4
  99. package/cjs/FormGroup/FormGroup.d.ts +1 -1
  100. package/cjs/FormGroup/FormGroup.js +9 -4
  101. package/cjs/Input/Input.d.ts +3 -2
  102. package/cjs/InputGroup/InputGroup.d.ts +1 -1
  103. package/cjs/InputNumber/InputNumber.js +6 -2
  104. package/cjs/InputPicker/InputAutosize.js +4 -4
  105. package/cjs/InputPicker/InputPicker.d.ts +2 -2
  106. package/cjs/InputPicker/InputPicker.js +15 -10
  107. package/cjs/List/ListContext.d.ts +1 -1
  108. package/cjs/List/ListContext.js +8 -1
  109. package/cjs/List/helper/AutoScroller.js +4 -2
  110. package/cjs/List/helper/useManager.d.ts +3 -3
  111. package/cjs/List/helper/useManager.js +1 -1
  112. package/cjs/List/helper/useSortHelper.d.ts +3 -3
  113. package/cjs/List/helper/useSortHelper.js +6 -4
  114. package/cjs/List/helper/utils.d.ts +2 -2
  115. package/cjs/MaskedInput/TextMask.d.ts +5 -5
  116. package/cjs/MaskedInput/adjustCaretPosition.d.ts +6 -6
  117. package/cjs/MaskedInput/conformToMask.js +5 -4
  118. package/cjs/MaskedInput/createTextMaskInputElement.d.ts +2 -2
  119. package/cjs/MaskedInput/utilities.d.ts +1 -1
  120. package/cjs/Menu/Menu.js +14 -7
  121. package/cjs/Menu/MenuContext.d.ts +1 -1
  122. package/cjs/Menu/MenuItem.d.ts +1 -1
  123. package/cjs/Menu/MenuItem.js +19 -15
  124. package/cjs/Menu/Menubar.js +8 -8
  125. package/cjs/Menu/useMenu.js +17 -7
  126. package/cjs/Modal/Modal.js +39 -21
  127. package/cjs/Modal/ModalContext.d.ts +2 -2
  128. package/cjs/Modal/utils.d.ts +1 -1
  129. package/cjs/Modal/utils.js +3 -5
  130. package/cjs/MultiCascader/DropdownMenu.d.ts +4 -4
  131. package/cjs/MultiCascader/MultiCascader.js +6 -6
  132. package/cjs/MultiCascader/utils.d.ts +17 -17
  133. package/cjs/Nav/Nav.d.ts +1 -1
  134. package/cjs/Nav/Nav.js +10 -12
  135. package/cjs/Nav/NavContext.d.ts +7 -1
  136. package/cjs/Nav/NavContext.js +1 -0
  137. package/cjs/Nav/NavItem.d.ts +1 -1
  138. package/cjs/Navbar/Navbar.js +1 -1
  139. package/cjs/Navbar/NavbarItem.d.ts +1 -1
  140. package/cjs/Navbar/index.d.ts +1 -0
  141. package/cjs/Navbar/index.js +4 -3
  142. package/cjs/Overlay/Modal.d.ts +2 -2
  143. package/cjs/Overlay/Modal.js +71 -63
  144. package/cjs/Overlay/ModalManager.d.ts +17 -8
  145. package/cjs/Overlay/ModalManager.js +11 -20
  146. package/cjs/Overlay/Overlay.d.ts +3 -3
  147. package/cjs/Overlay/Overlay.js +8 -2
  148. package/cjs/Overlay/OverlayContext.d.ts +6 -0
  149. package/cjs/Overlay/OverlayContext.js +14 -0
  150. package/cjs/Overlay/OverlayTrigger.d.ts +11 -11
  151. package/cjs/Overlay/OverlayTrigger.js +21 -7
  152. package/cjs/Overlay/Position.d.ts +4 -4
  153. package/cjs/Overlay/Position.js +14 -8
  154. package/cjs/Overlay/positionUtils.d.ts +1 -1
  155. package/cjs/Overlay/positionUtils.js +8 -8
  156. package/cjs/Pagination/Pagination.d.ts +1 -1
  157. package/cjs/Pagination/PaginationButton.d.ts +3 -3
  158. package/cjs/Pagination/PaginationGroup.js +5 -3
  159. package/cjs/Panel/Panel.d.ts +1 -1
  160. package/cjs/Panel/Panel.js +2 -2
  161. package/cjs/PanelGroup/PanelGroup.d.ts +2 -2
  162. package/cjs/PanelGroup/PanelGroup.js +8 -5
  163. package/cjs/Picker/DropdownMenu.d.ts +8 -5
  164. package/cjs/Picker/DropdownMenu.js +5 -5
  165. package/cjs/Picker/PickerOverlay.js +4 -3
  166. package/cjs/Picker/PickerToggle.js +4 -3
  167. package/cjs/Picker/PickerToggleTrigger.d.ts +2 -6
  168. package/cjs/Picker/SearchBar.d.ts +1 -1
  169. package/cjs/Picker/SelectedElement.js +2 -1
  170. package/cjs/Picker/propTypes.d.ts +5 -7
  171. package/cjs/Picker/propTypes.js +4 -3
  172. package/cjs/Picker/utils.d.ts +11 -11
  173. package/cjs/Picker/utils.js +22 -18
  174. package/cjs/Placeholder/PlaceholderGrid.js +1 -1
  175. package/cjs/Plaintext/Plaintext.js +2 -1
  176. package/cjs/Radio/Radio.d.ts +1 -1
  177. package/cjs/RadioGroup/RadioGroup.d.ts +2 -2
  178. package/cjs/RadioGroup/RadioGroup.js +1 -1
  179. package/cjs/RangeSlider/RangeSlider.d.ts +2 -2
  180. package/cjs/RangeSlider/RangeSlider.js +6 -4
  181. package/cjs/Rate/Character.js +4 -2
  182. package/cjs/Rate/Rate.js +2 -1
  183. package/cjs/Ripple/Ripple.js +1 -1
  184. package/cjs/SelectPicker/SelectPicker.d.ts +12 -5
  185. package/cjs/SelectPicker/SelectPicker.js +8 -8
  186. package/cjs/SelectPicker/index.d.ts +1 -1
  187. package/cjs/SelectPicker/test/SelectPicker.test.d.ts +1 -0
  188. package/cjs/SelectPicker/test/SelectPicker.test.js +62 -0
  189. package/cjs/Sidenav/Node.d.ts +1 -1
  190. package/cjs/Sidenav/Sidenav.d.ts +4 -4
  191. package/cjs/Sidenav/Sidenav.js +5 -2
  192. package/cjs/Sidenav/SidenavDropdown.js +11 -8
  193. package/cjs/Sidenav/SidenavDropdownItem.js +10 -5
  194. package/cjs/Sidenav/SidenavDropdownMenu.js +9 -5
  195. package/cjs/Sidenav/SidenavItem.d.ts +1 -1
  196. package/cjs/Sidenav/SidenavItem.js +4 -0
  197. package/cjs/Slider/Graduated.d.ts +5 -5
  198. package/cjs/Slider/Handle.d.ts +1 -1
  199. package/cjs/Slider/Handle.js +10 -6
  200. package/cjs/Slider/Mark.d.ts +1 -1
  201. package/cjs/Slider/Slider.d.ts +1 -1
  202. package/cjs/Slider/Slider.js +2 -2
  203. package/cjs/Slider/utils.d.ts +2 -1
  204. package/cjs/Slider/utils.js +4 -5
  205. package/cjs/Stack/Stack.d.ts +26 -0
  206. package/cjs/Stack/Stack.js +86 -0
  207. package/cjs/Stack/index.d.ts +3 -0
  208. package/cjs/Stack/index.js +11 -0
  209. package/cjs/Steps/StepItem.js +1 -1
  210. package/cjs/TagInput/index.js +1 -1
  211. package/cjs/Toggle/Toggle.js +5 -4
  212. package/cjs/Tree/Tree.d.ts +3 -2
  213. package/cjs/Tree/Tree.js +6 -5
  214. package/cjs/Tree/TreeContext.d.ts +0 -1
  215. package/cjs/TreePicker/TreeNode.js +7 -22
  216. package/cjs/TreePicker/TreePicker.js +32 -52
  217. package/cjs/Uploader/UploadFileItem.d.ts +1 -1
  218. package/cjs/Uploader/UploadFileItem.js +2 -2
  219. package/cjs/Uploader/UploadTrigger.d.ts +1 -1
  220. package/cjs/Uploader/UploadTrigger.js +2 -3
  221. package/cjs/Uploader/Uploader.d.ts +5 -5
  222. package/cjs/Uploader/Uploader.js +1 -2
  223. package/cjs/index.d.ts +6 -2
  224. package/cjs/index.js +13 -5
  225. package/cjs/locales/index.d.ts +3 -3
  226. package/cjs/toaster/ToastContainer.d.ts +1 -1
  227. package/cjs/toaster/ToastContainer.js +1 -1
  228. package/cjs/toaster/toaster.js +3 -1
  229. package/cjs/utils/BrowserDetection.js +1 -1
  230. package/cjs/utils/ReactChildren.d.ts +2 -2
  231. package/cjs/utils/ajaxUpload.d.ts +1 -1
  232. package/cjs/utils/ajaxUpload.js +5 -4
  233. package/cjs/utils/appendTooltip.d.ts +1 -1
  234. package/cjs/utils/constants.d.ts +4 -4
  235. package/cjs/utils/createChainedFunction.d.ts +1 -1
  236. package/cjs/utils/getDataGroupBy.d.ts +1 -1
  237. package/cjs/utils/index.d.ts +1 -0
  238. package/cjs/utils/index.js +7 -2
  239. package/cjs/utils/mergeRefs.d.ts +2 -2
  240. package/cjs/utils/previewFile.d.ts +1 -1
  241. package/cjs/utils/propTypeChecker.d.ts +6 -2
  242. package/cjs/utils/propTypeChecker.js +7 -6
  243. package/cjs/utils/reactToString.d.ts +2 -1
  244. package/cjs/utils/statusIcons.d.ts +1 -1
  245. package/cjs/utils/stringToObject.d.ts +1 -1
  246. package/cjs/utils/treeUtils.d.ts +35 -32
  247. package/cjs/utils/treeUtils.js +46 -23
  248. package/cjs/utils/useControlled.d.ts +6 -1
  249. package/cjs/utils/useControlled.js +0 -8
  250. package/cjs/utils/useCustom.js +6 -4
  251. package/cjs/utils/useFocus.d.ts +2 -2
  252. package/cjs/utils/useMount.d.ts +2 -0
  253. package/cjs/utils/useMount.js +19 -0
  254. package/cjs/utils/usePortal.d.ts +2 -2
  255. package/cjs/utils/useRootClose.d.ts +2 -2
  256. package/cjs/utils/useTimeout.d.ts +1 -1
  257. package/cjs/utils/useTimeout.js +5 -3
  258. package/dist/rsuite-rtl.css +95 -210
  259. package/dist/rsuite-rtl.min.css +1 -1
  260. package/dist/rsuite-rtl.min.css.map +1 -1
  261. package/dist/rsuite.css +95 -210
  262. package/dist/rsuite.js +214 -115
  263. package/dist/rsuite.js.map +1 -1
  264. package/dist/rsuite.min.css +1 -1
  265. package/dist/rsuite.min.css.map +1 -1
  266. package/dist/rsuite.min.js +1 -1
  267. package/dist/rsuite.min.js.map +1 -1
  268. package/esm/@types/common.d.ts +13 -12
  269. package/esm/@types/utils.d.ts +12 -0
  270. package/esm/Affix/Affix.js +9 -7
  271. package/esm/Animation/Transition.d.ts +21 -12
  272. package/esm/Animation/Transition.js +4 -1
  273. package/esm/AutoComplete/AutoComplete.js +1 -1
  274. package/esm/AutoComplete/utils.d.ts +1 -1
  275. package/esm/Avatar/Avatar.js +7 -3
  276. package/esm/AvatarGroup/AvatarGroup.d.ts +15 -0
  277. package/esm/AvatarGroup/AvatarGroup.js +57 -0
  278. package/esm/AvatarGroup/index.d.ts +3 -0
  279. package/esm/AvatarGroup/index.js +2 -0
  280. package/esm/Breadcrumb/Breadcrumb.js +1 -1
  281. package/esm/Button/Button.js +6 -2
  282. package/esm/ButtonGroup/ButtonGroup.js +11 -3
  283. package/esm/ButtonGroup/ButtonGroupContext.d.ts +7 -0
  284. package/esm/ButtonGroup/ButtonGroupContext.js +3 -0
  285. package/esm/ButtonGroup/index.d.ts +2 -0
  286. package/esm/ButtonGroup/index.js +2 -0
  287. package/esm/Calendar/Calendar.d.ts +4 -4
  288. package/esm/Calendar/Calendar.js +27 -23
  289. package/esm/Calendar/CalendarContext.js +1 -1
  290. package/esm/Calendar/Header.js +1 -3
  291. package/esm/Calendar/Table.js +1 -1
  292. package/esm/Calendar/TableRow.js +14 -9
  293. package/esm/Calendar/TimeDropdown.js +5 -4
  294. package/esm/Calendar/View.js +10 -6
  295. package/esm/Calendar/types.d.ts +2 -2
  296. package/esm/Calendar/useCalendarDate.d.ts +2 -2
  297. package/esm/Carousel/Carousel.d.ts +1 -1
  298. package/esm/Carousel/Carousel.js +1 -1
  299. package/esm/Cascader/Cascader.d.ts +1 -1
  300. package/esm/Cascader/Cascader.js +10 -10
  301. package/esm/Cascader/DropdownMenu.d.ts +5 -4
  302. package/esm/Cascader/utils.d.ts +10 -10
  303. package/esm/CheckPicker/CheckPicker.d.ts +9 -4
  304. package/esm/CheckPicker/CheckPicker.js +4 -4
  305. package/esm/CheckPicker/test/CheckPicker.test.d.ts +1 -0
  306. package/esm/CheckPicker/test/CheckPicker.test.js +64 -0
  307. package/esm/CheckTree/index.js +7 -6
  308. package/esm/CheckTreePicker/CheckTreeNode.d.ts +1 -1
  309. package/esm/CheckTreePicker/CheckTreeNode.js +4 -7
  310. package/esm/CheckTreePicker/CheckTreePicker.js +28 -23
  311. package/esm/CheckTreePicker/utils.d.ts +3 -1
  312. package/esm/CheckTreePicker/utils.js +12 -10
  313. package/esm/Checkbox/Checkbox.d.ts +1 -1
  314. package/esm/Container/Container.js +7 -4
  315. package/esm/CustomProvider/CustomProvider.d.ts +31 -57
  316. package/esm/DOMHelper/index.d.ts +12 -12
  317. package/esm/DatePicker/DatePicker.d.ts +1 -1
  318. package/esm/DatePicker/DatePicker.js +18 -11
  319. package/esm/DatePicker/Toolbar.d.ts +12 -9
  320. package/esm/DatePicker/Toolbar.js +6 -8
  321. package/esm/DatePicker/types.d.ts +4 -4
  322. package/esm/DatePicker/utils.d.ts +4 -3
  323. package/esm/DateRangePicker/Calendar.d.ts +8 -7
  324. package/esm/DateRangePicker/Calendar.js +1 -1
  325. package/esm/DateRangePicker/DateRangePicker.d.ts +6 -6
  326. package/esm/DateRangePicker/DateRangePicker.js +112 -111
  327. package/esm/DateRangePicker/types.d.ts +2 -1
  328. package/esm/DateRangePicker/utils.d.ts +6 -6
  329. package/esm/DateRangePicker/utils.js +6 -2
  330. package/esm/Disclosure/Disclosure.d.ts +8 -5
  331. package/esm/Disclosure/Disclosure.js +56 -15
  332. package/esm/Disclosure/DisclosureButton.d.ts +2 -2
  333. package/esm/Disclosure/DisclosureButton.js +8 -7
  334. package/esm/Disclosure/DisclosureContent.js +5 -7
  335. package/esm/Disclosure/DisclosureContext.d.ts +8 -3
  336. package/esm/Disclosure/useDisclosureContext.d.ts +2 -0
  337. package/esm/Disclosure/useDisclosureContext.js +11 -0
  338. package/esm/Dropdown/Dropdown.d.ts +1 -1
  339. package/esm/Dropdown/Dropdown.js +1 -1
  340. package/esm/Dropdown/DropdownContext.d.ts +2 -2
  341. package/esm/Dropdown/DropdownItem.js +10 -10
  342. package/esm/Dropdown/DropdownMenu.d.ts +3 -3
  343. package/esm/Dropdown/DropdownMenu.js +82 -24
  344. package/esm/Dropdown/DropdownState.d.ts +1 -1
  345. package/esm/Dropdown/DropdownToggle.js +9 -2
  346. package/esm/Dropdown/useRenderDropdownItem.d.ts +1 -1
  347. package/esm/Form/Form.js +1 -1
  348. package/esm/Form/FormContext.d.ts +1 -1
  349. package/esm/FormControl/FormControl.d.ts +1 -1
  350. package/esm/FormControl/FormControl.js +5 -4
  351. package/esm/FormGroup/FormGroup.d.ts +1 -1
  352. package/esm/FormGroup/FormGroup.js +7 -4
  353. package/esm/Input/Input.d.ts +3 -2
  354. package/esm/InputGroup/InputGroup.d.ts +1 -1
  355. package/esm/InputNumber/InputNumber.js +6 -2
  356. package/esm/InputPicker/InputAutosize.js +4 -4
  357. package/esm/InputPicker/InputPicker.d.ts +2 -2
  358. package/esm/InputPicker/InputPicker.js +15 -10
  359. package/esm/List/ListContext.d.ts +1 -1
  360. package/esm/List/ListContext.js +7 -1
  361. package/esm/List/helper/AutoScroller.js +4 -2
  362. package/esm/List/helper/useManager.d.ts +3 -3
  363. package/esm/List/helper/useManager.js +1 -1
  364. package/esm/List/helper/useSortHelper.d.ts +3 -3
  365. package/esm/List/helper/useSortHelper.js +6 -4
  366. package/esm/List/helper/utils.d.ts +2 -2
  367. package/esm/MaskedInput/TextMask.d.ts +5 -5
  368. package/esm/MaskedInput/adjustCaretPosition.d.ts +6 -6
  369. package/esm/MaskedInput/conformToMask.js +5 -4
  370. package/esm/MaskedInput/createTextMaskInputElement.d.ts +2 -2
  371. package/esm/MaskedInput/utilities.d.ts +1 -1
  372. package/esm/Menu/Menu.js +13 -7
  373. package/esm/Menu/MenuContext.d.ts +1 -1
  374. package/esm/Menu/MenuItem.d.ts +1 -1
  375. package/esm/Menu/MenuItem.js +18 -15
  376. package/esm/Menu/Menubar.js +7 -8
  377. package/esm/Menu/useMenu.js +17 -7
  378. package/esm/Modal/Modal.js +41 -23
  379. package/esm/Modal/ModalContext.d.ts +2 -2
  380. package/esm/Modal/utils.d.ts +1 -1
  381. package/esm/Modal/utils.js +3 -5
  382. package/esm/MultiCascader/DropdownMenu.d.ts +4 -4
  383. package/esm/MultiCascader/MultiCascader.js +6 -6
  384. package/esm/MultiCascader/utils.d.ts +17 -17
  385. package/esm/Nav/Nav.d.ts +1 -1
  386. package/esm/Nav/Nav.js +11 -13
  387. package/esm/Nav/NavContext.d.ts +7 -1
  388. package/esm/Nav/NavContext.js +1 -0
  389. package/esm/Nav/NavItem.d.ts +1 -1
  390. package/esm/Navbar/Navbar.js +1 -1
  391. package/esm/Navbar/NavbarItem.d.ts +1 -1
  392. package/esm/Navbar/index.d.ts +1 -0
  393. package/esm/Navbar/index.js +1 -0
  394. package/esm/Overlay/Modal.d.ts +2 -2
  395. package/esm/Overlay/Modal.js +72 -64
  396. package/esm/Overlay/ModalManager.d.ts +17 -8
  397. package/esm/Overlay/ModalManager.js +11 -20
  398. package/esm/Overlay/Overlay.d.ts +3 -3
  399. package/esm/Overlay/Overlay.js +8 -3
  400. package/esm/Overlay/OverlayContext.d.ts +6 -0
  401. package/esm/Overlay/OverlayContext.js +4 -0
  402. package/esm/Overlay/OverlayTrigger.d.ts +11 -11
  403. package/esm/Overlay/OverlayTrigger.js +21 -8
  404. package/esm/Overlay/Position.d.ts +4 -4
  405. package/esm/Overlay/Position.js +14 -8
  406. package/esm/Overlay/positionUtils.d.ts +1 -1
  407. package/esm/Overlay/positionUtils.js +6 -6
  408. package/esm/Pagination/Pagination.d.ts +1 -1
  409. package/esm/Pagination/PaginationButton.d.ts +3 -3
  410. package/esm/Pagination/PaginationGroup.js +5 -3
  411. package/esm/Panel/Panel.d.ts +1 -1
  412. package/esm/Panel/Panel.js +2 -2
  413. package/esm/PanelGroup/PanelGroup.d.ts +2 -2
  414. package/esm/PanelGroup/PanelGroup.js +9 -6
  415. package/esm/Picker/DropdownMenu.d.ts +8 -5
  416. package/esm/Picker/DropdownMenu.js +5 -5
  417. package/esm/Picker/PickerOverlay.js +4 -3
  418. package/esm/Picker/PickerToggle.js +4 -3
  419. package/esm/Picker/PickerToggleTrigger.d.ts +2 -6
  420. package/esm/Picker/SearchBar.d.ts +1 -1
  421. package/esm/Picker/SelectedElement.js +2 -1
  422. package/esm/Picker/propTypes.d.ts +5 -7
  423. package/esm/Picker/propTypes.js +4 -3
  424. package/esm/Picker/utils.d.ts +11 -11
  425. package/esm/Picker/utils.js +21 -18
  426. package/esm/Placeholder/PlaceholderGrid.js +1 -1
  427. package/esm/Plaintext/Plaintext.js +2 -1
  428. package/esm/Radio/Radio.d.ts +1 -1
  429. package/esm/RadioGroup/RadioGroup.d.ts +2 -2
  430. package/esm/RadioGroup/RadioGroup.js +1 -1
  431. package/esm/RangeSlider/RangeSlider.d.ts +2 -2
  432. package/esm/RangeSlider/RangeSlider.js +5 -4
  433. package/esm/Rate/Character.js +3 -2
  434. package/esm/Rate/Rate.js +2 -1
  435. package/esm/Ripple/Ripple.js +1 -1
  436. package/esm/SelectPicker/SelectPicker.d.ts +12 -5
  437. package/esm/SelectPicker/SelectPicker.js +8 -8
  438. package/esm/SelectPicker/index.d.ts +1 -1
  439. package/esm/SelectPicker/test/SelectPicker.test.d.ts +1 -0
  440. package/esm/SelectPicker/test/SelectPicker.test.js +52 -0
  441. package/esm/Sidenav/Node.d.ts +1 -1
  442. package/esm/Sidenav/Sidenav.d.ts +4 -4
  443. package/esm/Sidenav/Sidenav.js +5 -2
  444. package/esm/Sidenav/SidenavDropdown.js +11 -7
  445. package/esm/Sidenav/SidenavDropdownItem.js +11 -5
  446. package/esm/Sidenav/SidenavDropdownMenu.js +9 -5
  447. package/esm/Sidenav/SidenavItem.d.ts +1 -1
  448. package/esm/Sidenav/SidenavItem.js +4 -0
  449. package/esm/Slider/Graduated.d.ts +5 -5
  450. package/esm/Slider/Handle.d.ts +1 -1
  451. package/esm/Slider/Handle.js +10 -6
  452. package/esm/Slider/Mark.d.ts +1 -1
  453. package/esm/Slider/Slider.d.ts +1 -1
  454. package/esm/Slider/Slider.js +2 -2
  455. package/esm/Slider/utils.d.ts +2 -1
  456. package/esm/Slider/utils.js +5 -2
  457. package/esm/Stack/Stack.d.ts +26 -0
  458. package/esm/Stack/Stack.js +71 -0
  459. package/esm/Stack/index.d.ts +3 -0
  460. package/esm/Stack/index.js +2 -0
  461. package/esm/Steps/StepItem.js +1 -1
  462. package/esm/TagInput/index.js +1 -1
  463. package/esm/Toggle/Toggle.js +5 -4
  464. package/esm/Tree/Tree.d.ts +3 -2
  465. package/esm/Tree/Tree.js +7 -6
  466. package/esm/Tree/TreeContext.d.ts +0 -1
  467. package/esm/TreePicker/TreeNode.js +6 -21
  468. package/esm/TreePicker/TreePicker.js +31 -50
  469. package/esm/Uploader/UploadFileItem.d.ts +1 -1
  470. package/esm/Uploader/UploadFileItem.js +2 -2
  471. package/esm/Uploader/UploadTrigger.d.ts +1 -1
  472. package/esm/Uploader/UploadTrigger.js +2 -3
  473. package/esm/Uploader/Uploader.d.ts +5 -5
  474. package/esm/Uploader/Uploader.js +1 -2
  475. package/esm/index.d.ts +6 -2
  476. package/esm/index.js +3 -1
  477. package/esm/locales/index.d.ts +3 -3
  478. package/esm/toaster/ToastContainer.d.ts +1 -1
  479. package/esm/toaster/ToastContainer.js +1 -1
  480. package/esm/toaster/toaster.js +3 -1
  481. package/esm/utils/BrowserDetection.js +1 -1
  482. package/esm/utils/ReactChildren.d.ts +2 -2
  483. package/esm/utils/ajaxUpload.d.ts +1 -1
  484. package/esm/utils/ajaxUpload.js +5 -4
  485. package/esm/utils/appendTooltip.d.ts +1 -1
  486. package/esm/utils/constants.d.ts +4 -4
  487. package/esm/utils/createChainedFunction.d.ts +1 -1
  488. package/esm/utils/getDataGroupBy.d.ts +1 -1
  489. package/esm/utils/index.d.ts +1 -0
  490. package/esm/utils/index.js +2 -1
  491. package/esm/utils/mergeRefs.d.ts +2 -2
  492. package/esm/utils/previewFile.d.ts +1 -1
  493. package/esm/utils/propTypeChecker.d.ts +6 -2
  494. package/esm/utils/propTypeChecker.js +7 -6
  495. package/esm/utils/reactToString.d.ts +2 -1
  496. package/esm/utils/statusIcons.d.ts +1 -1
  497. package/esm/utils/stringToObject.d.ts +1 -1
  498. package/esm/utils/treeUtils.d.ts +35 -32
  499. package/esm/utils/treeUtils.js +45 -21
  500. package/esm/utils/useControlled.d.ts +6 -1
  501. package/esm/utils/useControlled.js +0 -8
  502. package/esm/utils/useCustom.js +6 -4
  503. package/esm/utils/useFocus.d.ts +2 -2
  504. package/esm/utils/useMount.d.ts +2 -0
  505. package/esm/utils/useMount.js +13 -0
  506. package/esm/utils/usePortal.d.ts +2 -2
  507. package/esm/utils/useRootClose.d.ts +2 -2
  508. package/esm/utils/useTimeout.d.ts +1 -1
  509. package/esm/utils/useTimeout.js +5 -3
  510. package/package.json +2 -2
  511. package/styles/index.less +2 -0
@@ -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;
@@ -39,7 +39,7 @@ var Handle = /*#__PURE__*/React.forwardRef(function (props, ref) {
39
39
  active = _useState[0],
40
40
  setActive = _useState[1];
41
41
 
42
- var rootRef = useRef();
42
+ var rootRef = useRef(null);
43
43
  var horizontalKey = rtl ? 'right' : 'left';
44
44
  var direction = vertical ? 'bottom' : horizontalKey;
45
45
 
@@ -52,7 +52,7 @@ var Handle = /*#__PURE__*/React.forwardRef(function (props, ref) {
52
52
  var handleClasses = merge(className, prefix('handle'), {
53
53
  active: active
54
54
  });
55
- var tooltipRef = useRef();
55
+ var tooltipRef = useRef(null);
56
56
  var mouseMoveTracker = useRef();
57
57
  var releaseMouseMoves = useCallback(function () {
58
58
  var _mouseMoveTracker$cur;
@@ -72,20 +72,24 @@ var Handle = /*#__PURE__*/React.forwardRef(function (props, ref) {
72
72
  var _mouseMoveTracker$cur2;
73
73
 
74
74
  if ((_mouseMoveTracker$cur2 = mouseMoveTracker.current) !== null && _mouseMoveTracker$cur2 !== void 0 && _mouseMoveTracker$cur2.isDragging()) {
75
- onDragMove === null || onDragMove === void 0 ? void 0 : onDragMove(event, rootRef.current.dataset);
75
+ var _rootRef$current;
76
+
77
+ onDragMove === null || onDragMove === void 0 ? void 0 : onDragMove(event, (_rootRef$current = rootRef.current) === null || _rootRef$current === void 0 ? void 0 : _rootRef$current.dataset);
76
78
  setTooltipPosition();
77
79
  }
78
80
  }, [onDragMove, setTooltipPosition]);
79
81
  var handleDragEnd = useCallback(function (event) {
82
+ var _rootRef$current2;
83
+
80
84
  setActive(false);
81
85
  releaseMouseMoves();
82
- onDragEnd === null || onDragEnd === void 0 ? void 0 : onDragEnd(event, rootRef.current.dataset);
86
+ onDragEnd === null || onDragEnd === void 0 ? void 0 : onDragEnd(event, (_rootRef$current2 = rootRef.current) === null || _rootRef$current2 === void 0 ? void 0 : _rootRef$current2.dataset);
83
87
  }, [onDragEnd, releaseMouseMoves]);
84
88
  var getMouseMoveTracker = useCallback(function () {
85
89
  return mouseMoveTracker.current || new DOMMouseMoveTracker(handleDragMove, handleDragEnd, document.body);
86
90
  }, [handleDragEnd, handleDragMove]);
87
91
  var handleMouseDown = useCallback(function (event) {
88
- var _mouseMoveTracker$cur3, _rootRef$current;
92
+ var _mouseMoveTracker$cur3, _rootRef$current3;
89
93
 
90
94
  if (disabled) {
91
95
  return;
@@ -93,7 +97,7 @@ var Handle = /*#__PURE__*/React.forwardRef(function (props, ref) {
93
97
 
94
98
  mouseMoveTracker.current = getMouseMoveTracker();
95
99
  (_mouseMoveTracker$cur3 = mouseMoveTracker.current) === null || _mouseMoveTracker$cur3 === void 0 ? void 0 : _mouseMoveTracker$cur3.captureMouseMoves(event);
96
- (_rootRef$current = rootRef.current) === null || _rootRef$current === void 0 ? void 0 : _rootRef$current.focus();
100
+ (_rootRef$current3 = rootRef.current) === null || _rootRef$current3 === void 0 ? void 0 : _rootRef$current3.focus();
97
101
  setActive(true);
98
102
  onDragStart === null || onDragStart === void 0 ? void 0 : onDragStart(event);
99
103
  }, [disabled, getMouseMoveTracker, onDragStart]);
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import { WithAsProps, RsRefForwardingComponent } from '../@types/common';
3
3
  export interface MarkProps extends WithAsProps {
4
- mark?: number;
4
+ mark: number;
5
5
  last?: boolean;
6
6
  renderMark?: (mark: number) => React.ReactNode;
7
7
  }
@@ -45,7 +45,7 @@ export interface SliderProps<T = number> extends WithAsProps, FormControlBasePro
45
45
  /** Customize labels on the render ruler */
46
46
  renderMark?: (mark: number) => React.ReactNode;
47
47
  /** Customize the content of the rendered Tooltip. */
48
- renderTooltip?: (value: number) => React.ReactNode;
48
+ renderTooltip?: (value: number | undefined) => React.ReactNode;
49
49
  /** Accepts a function which returns a string value that provides a user-friendly name for the current value of the slider. */
50
50
  getAriaValueText?: (value: number, eventKey?: 'start' | 'end') => string;
51
51
  /** Callback function that is fired when the mouseup is triggered. */
@@ -73,7 +73,7 @@ var Slider = /*#__PURE__*/React.forwardRef(function (props, ref) {
73
73
  onChangeCommitted = props.onChangeCommitted,
74
74
  rest = _objectWithoutPropertiesLoose(props, ["aria-label", "aria-labelledby", "aria-valuetext", "as", "graduated", "className", "barClassName", "progress", "vertical", "disabled", "readOnly", "plaintext", "classPrefix", "min", "handleClassName", "handleStyle", "handleTitle", "tooltip", "step", "defaultValue", "value", "max", "getAriaValueText", "renderTooltip", "renderMark", "onChange", "onChangeCommitted"]);
75
75
 
76
- var barRef = useRef();
76
+ var barRef = useRef(null);
77
77
 
78
78
  var _useClassNames = useClassNames(classPrefix),
79
79
  merge = _useClassNames.merge,
@@ -242,7 +242,7 @@ var Slider = /*#__PURE__*/React.forwardRef(function (props, ref) {
242
242
  onDragMove: handleChangeValue,
243
243
  onKeyDown: handleKeyDown,
244
244
  onDragEnd: handleChangeCommitted,
245
- tabIndex: disabled || readOnly ? null : 0,
245
+ tabIndex: disabled || readOnly ? undefined : 0,
246
246
  "aria-orientation": vertical ? 'vertical' : 'horizontal',
247
247
  "aria-valuenow": value,
248
248
  "aria-disabled": disabled,
@@ -1,2 +1,3 @@
1
1
  export declare const precisionMath: (value: any) => number;
2
- export declare const checkValue: (value: number, min: number, max: number) => number;
2
+ declare function checkValue<T extends number | undefined>(value: T, min: number, max: number): T extends undefined ? undefined : number;
3
+ export { checkValue };
@@ -1,7 +1,8 @@
1
1
  export var precisionMath = function precisionMath(value) {
2
2
  return parseFloat(value.toFixed(10));
3
3
  };
4
- export var checkValue = function checkValue(value, min, max) {
4
+
5
+ function checkValue(value, min, max) {
5
6
  if (typeof value === 'undefined') {
6
7
  return value;
7
8
  }
@@ -15,4 +16,6 @@ export var checkValue = function checkValue(value, min, max) {
15
16
  }
16
17
 
17
18
  return value;
18
- };
19
+ }
20
+
21
+ export { checkValue };
@@ -0,0 +1,26 @@
1
+ import React from 'react';
2
+ import { WithAsProps } from '../@types/common';
3
+ export interface StackProps extends WithAsProps {
4
+ /**
5
+ * The direction of the children in the stack.
6
+ */
7
+ direction?: 'row' | 'row-reverse' | 'column' | 'column-reverse';
8
+ /**
9
+ * Define the alignment of the children in the stack on the cross axis
10
+ */
11
+ alignItems?: 'flex-start' | 'center' | 'flex-end' | 'stretch' | 'baseline';
12
+ /**
13
+ * Define the alignment of the children in the stack on the inline axis
14
+ */
15
+ justifyContent?: 'flex-start' | 'center' | 'flex-end' | 'space-between' | 'space-around';
16
+ /** Define the spacing between immediate children */
17
+ spacing?: number | string | (number | string)[];
18
+ /** Add an element between each child */
19
+ divider?: React.ReactNode;
20
+ /**
21
+ * Define whether the children in the stack are forced onto one line or can wrap onto multiple lines
22
+ */
23
+ wrap?: boolean;
24
+ }
25
+ declare const Stack: React.ForwardRefExoticComponent<StackProps & React.RefAttributes<HTMLDivElement>>;
26
+ export default Stack;
@@ -0,0 +1,71 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
+ import React from 'react';
4
+ import PropTypes from 'prop-types';
5
+ import { useClassNames, useCustom, isIE } from '../utils';
6
+ var Stack = /*#__PURE__*/React.forwardRef(function (props, ref) {
7
+ var _itemStyles;
8
+
9
+ var _props$as = props.as,
10
+ Component = _props$as === void 0 ? 'div' : _props$as,
11
+ _props$alignItems = props.alignItems,
12
+ alignItems = _props$alignItems === void 0 ? 'center' : _props$alignItems,
13
+ _props$classPrefix = props.classPrefix,
14
+ classPrefix = _props$classPrefix === void 0 ? 'stack' : _props$classPrefix,
15
+ className = props.className,
16
+ children = props.children,
17
+ direction = props.direction,
18
+ justifyContent = props.justifyContent,
19
+ spacing = props.spacing,
20
+ divider = props.divider,
21
+ style = props.style,
22
+ wrap = props.wrap,
23
+ rest = _objectWithoutPropertiesLoose(props, ["as", "alignItems", "classPrefix", "className", "children", "direction", "justifyContent", "spacing", "divider", "style", "wrap"]);
24
+
25
+ var _useCustom = useCustom('Stack'),
26
+ rtl = _useCustom.rtl;
27
+
28
+ var _useClassNames = useClassNames(classPrefix),
29
+ withClassPrefix = _useClassNames.withClassPrefix,
30
+ merge = _useClassNames.merge,
31
+ prefix = _useClassNames.prefix;
32
+
33
+ var classes = merge(className, withClassPrefix());
34
+ var isSupportGridGap = !isIE();
35
+ var count = React.Children.count(children);
36
+ var gridGap = Array.isArray(spacing) ? spacing : [spacing, 0];
37
+ var itemStyles = (_itemStyles = {}, _itemStyles[rtl ? 'marginLeft' : 'marginRight'] = gridGap[0], _itemStyles.marginBottom = gridGap[1], _itemStyles);
38
+
39
+ var styles = _extends({
40
+ alignItems: alignItems,
41
+ justifyContent: justifyContent,
42
+ flexDirection: direction,
43
+ flexWrap: wrap ? 'wrap' : undefined,
44
+ gap: isSupportGridGap ? spacing : undefined
45
+ }, style);
46
+
47
+ return /*#__PURE__*/React.createElement(Component, _extends({}, rest, {
48
+ ref: ref,
49
+ className: classes,
50
+ style: styles
51
+ }), React.Children.map(children, function (child, index) {
52
+ var childNode = /*#__PURE__*/React.createElement("div", {
53
+ className: prefix('item'),
54
+ style: !isSupportGridGap ? itemStyles : undefined
55
+ }, child);
56
+ return [childNode, index < count - 1 ? divider : null];
57
+ }));
58
+ });
59
+ Stack.displayName = 'Stack';
60
+ Stack.propTypes = {
61
+ className: PropTypes.string,
62
+ children: PropTypes.node,
63
+ classPrefix: PropTypes.string,
64
+ direction: PropTypes.oneOf(['row', 'row-reverse', 'column', 'column-reverse']),
65
+ alignItems: PropTypes.oneOf(['flex-start', 'center', 'flex-end', 'stretch', 'baseline']),
66
+ justifyContent: PropTypes.oneOf(['flex-start', 'center', 'flex-end', 'space-between', 'space-around']),
67
+ spacing: PropTypes.oneOfType([PropTypes.number, PropTypes.string, PropTypes.array]),
68
+ divider: PropTypes.node,
69
+ wrap: PropTypes.bool
70
+ };
71
+ export default Stack;
@@ -0,0 +1,3 @@
1
+ import Stack from './Stack';
2
+ export type { StackProps } from './Stack';
3
+ export default Stack;
@@ -0,0 +1,2 @@
1
+ import Stack from './Stack';
2
+ export default Stack;
@@ -43,7 +43,7 @@ var StepItem = /*#__PURE__*/React.forwardRef(function (props, ref) {
43
43
 
44
44
  var iconNode = /*#__PURE__*/React.createElement("span", {
45
45
  className: prefix('icon', "icon-" + status)
46
- }, (_STEP_STATUS_ICON$sta = STEP_STATUS_ICON[status]) !== null && _STEP_STATUS_ICON$sta !== void 0 ? _STEP_STATUS_ICON$sta : stepNumber);
46
+ }, status ? (_STEP_STATUS_ICON$sta = STEP_STATUS_ICON[status]) !== null && _STEP_STATUS_ICON$sta !== void 0 ? _STEP_STATUS_ICON$sta : stepNumber : stepNumber);
47
47
 
48
48
  if (icon) {
49
49
  iconNode = /*#__PURE__*/React.createElement("span", {