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
@@ -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", {
@@ -33,7 +33,7 @@ var TagInput = /*#__PURE__*/React.forwardRef(function (props, ref) {
33
33
  value: value,
34
34
  defaultValue: defaultValue,
35
35
  data: data,
36
- placement: null,
36
+ placement: undefined,
37
37
  creatable: true,
38
38
  ref: ref
39
39
  })));
@@ -25,7 +25,7 @@ var Toggle = /*#__PURE__*/React.forwardRef(function (props, ref) {
25
25
  onChange = props.onChange,
26
26
  rest = _objectWithoutPropertiesLoose(props, ["as", "disabled", "readOnly", "loading", "plaintext", "className", "checkedChildren", "unCheckedChildren", "classPrefix", "checked", "defaultChecked", "size", "locale", "onChange"]);
27
27
 
28
- var inputRef = useRef();
28
+ var inputRef = useRef(null);
29
29
 
30
30
  var _useControlled = useControlled(checkedProp, defaultChecked),
31
31
  checked = _useControlled[0],
@@ -47,14 +47,14 @@ var Toggle = /*#__PURE__*/React.forwardRef(function (props, ref) {
47
47
  var inner = checked ? checkedChildren : unCheckedChildren;
48
48
  var label = checked ? locale.on : locale.off;
49
49
  var handleInputChange = useCallback(function (e) {
50
- if (disabled || readOnly) {
50
+ if (disabled || readOnly || loading) {
51
51
  return;
52
52
  }
53
53
 
54
54
  var checked = e.target.checked;
55
55
  setChecked(checked);
56
56
  onChange === null || onChange === void 0 ? void 0 : onChange(checked, e);
57
- }, [disabled, readOnly, setChecked, onChange]);
57
+ }, [disabled, readOnly, loading, setChecked, onChange]);
58
58
 
59
59
  if (plaintext) {
60
60
  return /*#__PURE__*/React.createElement(Plaintext, null, inner || label);
@@ -66,7 +66,8 @@ var Toggle = /*#__PURE__*/React.forwardRef(function (props, ref) {
66
66
  }, rest), /*#__PURE__*/React.createElement("input", {
67
67
  ref: inputRef,
68
68
  type: "checkbox",
69
- checked: checked,
69
+ checked: checkedProp,
70
+ defaultChecked: defaultChecked,
70
71
  disabled: disabled,
71
72
  readOnly: readOnly,
72
73
  onChange: handleInputChange,
@@ -36,13 +36,14 @@ export interface TreeDragProps<ItemDataType = Record<string, any>> {
36
36
  onDragEnd?: (nodeData: ItemDataType, e: React.DragEvent) => void;
37
37
  /** Called when node drop */
38
38
  onDrop?: (dropData: DropData<ItemDataType>, e: React.DragEvent) => void;
39
- renderDragNode?: (dragNode: ItemDataType) => React.ReactNode;
40
39
  }
41
40
  export interface TreeBaseProps<ValueType = string | number, ItemDataType = Record<string, any>> extends StandardProps {
42
41
  /** The height of Dropdown */
43
42
  height?: number;
44
43
  /** Whether display search input box */
45
44
  searchable?: boolean;
45
+ /** Display an auxiliary line when the tree node is indented. */
46
+ showIndentLine?: boolean;
46
47
  /** Whether using virtualized list */
47
48
  virtualized?: boolean;
48
49
  /**
@@ -59,7 +60,7 @@ export interface TreeBaseProps<ValueType = string | number, ItemDataType = Recor
59
60
  /** Set the option value for the expand node with controlled*/
60
61
  expandItemValues?: any[];
61
62
  /** Callback function for data change */
62
- onExpand?: (expandItemValues: ItemDataType[], activeNode: ItemDataType, concat: (data: ItemDataType[], children: React.ReactNode) => ItemDataType[]) => void;
63
+ onExpand?: (expandItemValues: ItemDataType[], activeNode: ItemDataType, concat: (data: ItemDataType[], children: ItemDataType[]) => ItemDataType[]) => void;
63
64
  /** Callback function after selecting tree node */
64
65
  onSelect?: (activeNode: ItemDataType, value: ValueType, event: React.SyntheticEvent) => void;
65
66
  /** Custom Render tree Node */
package/esm/Tree/Tree.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
- import React, { useRef } from 'react';
2
+ import React, { useMemo } from 'react';
3
3
  import TreePicker from '../TreePicker';
4
4
  import TreeContext from './TreeContext';
5
5
 
@@ -15,12 +15,13 @@ export var TREE_NODE_DROP_POSITION;
15
15
  })(TREE_NODE_DROP_POSITION || (TREE_NODE_DROP_POSITION = {}));
16
16
 
17
17
  var Tree = /*#__PURE__*/React.forwardRef(function (props, ref) {
18
- var dragNodeRef = useRef();
18
+ var contextValue = useMemo(function () {
19
+ return {
20
+ inline: true
21
+ };
22
+ }, []);
19
23
  return /*#__PURE__*/React.createElement(TreeContext.Provider, {
20
- value: {
21
- inline: true,
22
- dragNodeRef: dragNodeRef
23
- }
24
+ value: contextValue
24
25
  }, /*#__PURE__*/React.createElement(TreePicker, _extends({
25
26
  ref: ref
26
27
  }, props)));
@@ -1,7 +1,6 @@
1
1
  import React from 'react';
2
2
  export interface TreeContextProps {
3
3
  inline?: boolean;
4
- dragNodeRef?: React.MutableRefObject<any>;
5
4
  }
6
5
  declare const TreeContext: React.Context<TreeContextProps>;
7
6
  export default TreeContext;
@@ -1,16 +1,14 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
- import React, { forwardRef, useCallback, useContext } from 'react';
3
+ import React, { forwardRef, useCallback } from 'react';
4
4
  import PropTypes from 'prop-types';
5
5
  import hasClass from 'dom-lib/hasClass';
6
6
  import ArrowDown from '@rsuite/icons/legacy/ArrowDown';
7
7
  import Spinner from '@rsuite/icons/legacy/Spinner';
8
- import TreeContext from '../Tree/TreeContext';
9
8
  import reactToString from '../utils/reactToString';
10
- import { useClassNames, TREE_NODE_PADDING, TREE_NODE_ROOT_PADDING } from '../utils';
9
+ import { useClassNames } from '../utils';
10
+ import { getTreeNodeIndent } from '../utils/treeUtils';
11
11
  var TreeNode = /*#__PURE__*/forwardRef(function (_ref, ref) {
12
- var _extends2;
13
-
14
12
  var _ref$as = _ref.as,
15
13
  Component = _ref$as === void 0 ? 'div' : _ref$as,
16
14
  rtl = _ref.rtl,
@@ -51,9 +49,6 @@ var TreeNode = /*#__PURE__*/forwardRef(function (_ref, ref) {
51
49
  merge = _useClassNames.merge,
52
50
  withClassPrefix = _useClassNames.withClassPrefix;
53
51
 
54
- var _useContext = useContext(TreeContext),
55
- dragNodeRef = _useContext.dragNodeRef;
56
-
57
52
  var getTitle = useCallback(function () {
58
53
  if (typeof label === 'string') {
59
54
  return label;
@@ -83,16 +78,8 @@ var TreeNode = /*#__PURE__*/forwardRef(function (_ref, ref) {
83
78
  onSelect === null || onSelect === void 0 ? void 0 : onSelect(nodeData, event);
84
79
  }, [nodeData, disabled, prefix, onSelect]);
85
80
  var handleDragStart = useCallback(function (event) {
86
- var dragNode = dragNodeRef === null || dragNodeRef === void 0 ? void 0 : dragNodeRef.current;
87
-
88
- if (dragNode) {
89
- var _event$dataTransfer;
90
-
91
- (_event$dataTransfer = event.dataTransfer) === null || _event$dataTransfer === void 0 ? void 0 : _event$dataTransfer.setDragImage(dragNode, 0, 0);
92
- }
93
-
94
81
  onDragStart === null || onDragStart === void 0 ? void 0 : onDragStart(nodeData, event);
95
- }, [dragNodeRef, nodeData, onDragStart]);
82
+ }, [nodeData, onDragStart]);
96
83
  var handleDragEnter = useCallback(function (event) {
97
84
  event.preventDefault();
98
85
  event.stopPropagation();
@@ -174,11 +161,9 @@ var TreeNode = /*#__PURE__*/forwardRef(function (_ref, ref) {
174
161
  active: active,
175
162
  'text-muted': disabled,
176
163
  focus: focus
177
- })); // layer start from 1
178
-
179
- var padding = (layer - 1) * TREE_NODE_PADDING + TREE_NODE_ROOT_PADDING;
164
+ }));
180
165
 
181
- var styles = _extends({}, style, (_extends2 = {}, _extends2[rtl ? 'paddingRight' : 'paddingLeft'] = padding, _extends2));
166
+ var styles = _extends({}, style, getTreeNodeIndent(rtl, layer - 1));
182
167
 
183
168
  return visible ? /*#__PURE__*/React.createElement(Component, _extends({
184
169
  role: "treeitem"
@@ -9,6 +9,7 @@ import React, { useState, useRef, useEffect, useCallback, useContext } from 'rea
9
9
  import PropTypes from 'prop-types';
10
10
  import { List, AutoSizer } from '../Picker/VirtualizedList';
11
11
  import TreeNode from './TreeNode';
12
+ import { getTreeNodeIndent } from '../utils/treeUtils';
12
13
  import { createChainedFunction, useClassNames, useCustom, useControlled, TREE_NODE_DROP_POSITION, KEY_VALUES, mergeRefs, shallowEqual } from '../utils';
13
14
  import { getExpandWhenSearching, hasVisibleChildren, getDragNodeKeys, calDropNodePosition, createUpdateTreeDataFunction, useTreeDrag, useFlattenTreeData, getTreeActiveNode, getDefaultExpandItemValues, useTreeNodeRefs, useTreeSearch, focusPreviousItem, getFocusableItems, focusNextItem, getActiveItem, toggleExpand, useGetTreeNodeChildren, focusToActiveTreeNode, leftArrowHandler, focusTreeNode, rightArrowHandler, isSearching } from '../utils/treeUtils';
14
15
  import { PickerToggle, PickerOverlay, SearchBar, PickerToggleTrigger, createConcatChildrenFunction, usePickerClassName, onMenuKeyDown as _onMenuKeyDown, usePublicMethods, listPickerPropTypes, pickTriggerPropKeys, omitTriggerPropKeys, useToggleKeyDownEvent } from '../Picker';
@@ -24,6 +25,7 @@ var TreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
24
25
  _props$appearance = props.appearance,
25
26
  appearance = _props$appearance === void 0 ? 'default' : _props$appearance,
26
27
  style = props.style,
28
+ showIndentLine = props.showIndentLine,
27
29
  controlledValue = props.value,
28
30
  overrideLocale = props.locale,
29
31
  _props$height = props.height,
@@ -37,7 +39,8 @@ var TreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
37
39
  menuStyle = props.menuStyle,
38
40
  _props$searchable = props.searchable,
39
41
  searchable = _props$searchable === void 0 ? true : _props$searchable,
40
- virtualized = props.virtualized,
42
+ _props$virtualized = props.virtualized,
43
+ virtualized = _props$virtualized === void 0 ? false : _props$virtualized,
41
44
  _props$classPrefix = props.classPrefix,
42
45
  classPrefix = _props$classPrefix === void 0 ? 'picker' : _props$classPrefix,
43
46
  defaultValue = props.defaultValue,
@@ -84,23 +87,21 @@ var TreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
84
87
  renderExtraFooter = props.renderExtraFooter,
85
88
  renderMenu = props.renderMenu,
86
89
  renderValue = props.renderValue,
87
- renderDragNode = props.renderDragNode,
88
- rest = _objectWithoutPropertiesLoose(props, ["as", "data", "appearance", "style", "value", "locale", "height", "className", "disabled", "placement", "cleanable", "menuStyle", "searchable", "virtualized", "classPrefix", "defaultValue", "placeholder", "searchKeyword", "menuClassName", "menuAutoWidth", "searchBy", "toggleAs", "labelKey", "valueKey", "childrenKey", "draggable", "defaultExpandAll", "disabledItemValues", "expandItemValues", "defaultExpandItemValues", "id", "listProps", "getChildren", "renderTreeIcon", "renderTreeNode", "onExit", "onExited", "onClean", "onOpen", "onSearch", "onSelect", "onChange", "onEntered", "onClose", "onDragEnd", "onDragStart", "onDragEnter", "onDragLeave", "onDragOver", "onDrop", "onExpand", "renderExtraFooter", "renderMenu", "renderValue", "renderDragNode"]);
90
+ rest = _objectWithoutPropertiesLoose(props, ["as", "data", "appearance", "style", "showIndentLine", "value", "locale", "height", "className", "disabled", "placement", "cleanable", "menuStyle", "searchable", "virtualized", "classPrefix", "defaultValue", "placeholder", "searchKeyword", "menuClassName", "menuAutoWidth", "searchBy", "toggleAs", "labelKey", "valueKey", "childrenKey", "draggable", "defaultExpandAll", "disabledItemValues", "expandItemValues", "defaultExpandItemValues", "id", "listProps", "getChildren", "renderTreeIcon", "renderTreeNode", "onExit", "onExited", "onClean", "onOpen", "onSearch", "onSelect", "onChange", "onEntered", "onClose", "onDragEnd", "onDragStart", "onDragEnter", "onDragLeave", "onDragOver", "onDrop", "onExpand", "renderExtraFooter", "renderMenu", "renderValue"]);
89
91
 
90
- var triggerRef = useRef();
91
- var targetRef = useRef();
92
- var listRef = useRef();
93
- var overlayRef = useRef();
94
- var searchInputRef = useRef();
95
- var treeViewRef = useRef();
92
+ var triggerRef = useRef(null);
93
+ var targetRef = useRef(null);
94
+ var listRef = useRef(null);
95
+ var overlayRef = useRef(null);
96
+ var searchInputRef = useRef(null);
97
+ var treeViewRef = useRef(null);
96
98
 
97
99
  var _useCustom = useCustom('Picker', overrideLocale),
98
100
  rtl = _useCustom.rtl,
99
101
  locale = _useCustom.locale;
100
102
 
101
103
  var _useContext = useContext(TreeContext),
102
- inline = _useContext.inline,
103
- dragNodeRef = _useContext.dragNodeRef;
104
+ inline = _useContext.inline;
104
105
 
105
106
  var _useControlled = useControlled(controlledValue, defaultValue),
106
107
  value = _useControlled[0],
@@ -184,21 +185,17 @@ var TreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
184
185
 
185
186
  var activeNode = getTreeActiveNode(flattenNodes, value, valueKey);
186
187
  var getFormattedNodes = useCallback(function (render) {
187
- var formattedNodes = [];
188
-
189
188
  if (virtualized) {
190
- formattedNodes = formatVirtualizedTreeData(flattenNodes, filteredData, expandItemValues, {
189
+ return formatVirtualizedTreeData(flattenNodes, filteredData, expandItemValues, {
191
190
  searchKeyword: searchKeywordState
192
191
  }).filter(function (n) {
193
192
  return n.visible;
194
193
  });
195
- } else {
196
- formattedNodes = filteredData.map(function (dataItem, index) {
197
- return render === null || render === void 0 ? void 0 : render(dataItem, index, 1);
198
- });
199
194
  }
200
195
 
201
- return formattedNodes;
196
+ return filteredData.map(function (dataItem, index) {
197
+ return render === null || render === void 0 ? void 0 : render(dataItem, index, 1);
198
+ });
202
199
  }, [searchKeywordState, expandItemValues, filteredData, flattenNodes, formatVirtualizedTreeData, virtualized]);
203
200
  var focusActiveNode = useCallback(function () {
204
201
  focusToActiveTreeNode({
@@ -226,14 +223,6 @@ var TreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
226
223
  useEffect(function () {
227
224
  setSearchKeyword(searchKeyword !== null && searchKeyword !== void 0 ? searchKeyword : '');
228
225
  }, [searchKeyword, setSearchKeyword]);
229
- useEffect(function () {
230
- if (dragNodeRef) {
231
- var _treeViewRef$current;
232
-
233
- dragNodeRef.current = (_treeViewRef$current = treeViewRef.current) === null || _treeViewRef$current === void 0 ? void 0 : _treeViewRef$current.querySelector("." + treePrefix('drag-node-mover'));
234
- } // eslint-disable-next-line react-hooks/exhaustive-deps
235
-
236
- }, []);
237
226
  var getDropData = useCallback(function (nodeData) {
238
227
  var options = {
239
228
  valueKey: valueKey,
@@ -412,10 +401,13 @@ var TreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
412
401
  (_targetRef$current2 = targetRef.current) === null || _targetRef$current2 === void 0 ? void 0 : _targetRef$current2.focus();
413
402
  }, [activeNode, setSearchKeyword, valueKey]);
414
403
  usePublicMethods(ref, {
404
+ rootRef: inline ? treeViewRef : undefined,
415
405
  triggerRef: triggerRef,
416
406
  overlayRef: overlayRef,
417
- targetRef: targetRef
418
- }, inline);
407
+ targetRef: targetRef,
408
+ listRef: listRef,
409
+ inline: inline
410
+ });
419
411
  var handleFocusItem = useCallback(function (key) {
420
412
  var focusableItems = getFocusableItems(filteredData, {
421
413
  disabledItemValues: disabledItemValues,
@@ -445,11 +437,13 @@ var TreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
445
437
  }
446
438
  }, [searchKeywordState, expandItemValues, filteredData, focusItemValue, treeNodesRefs, treePrefix, valueKey, childrenKey, disabledItemValues]);
447
439
  var handleLeftArrow = useCallback(function () {
440
+ if (_isNil(focusItemValue)) return;
448
441
  var focusItem = getActiveItem(focusItemValue, flattenNodes, valueKey);
449
442
  leftArrowHandler({
450
443
  focusItem: focusItem,
451
444
  expand: expandItemValues.includes(focusItem === null || focusItem === void 0 ? void 0 : focusItem[valueKey]),
452
445
  onExpand: handleExpand,
446
+ childrenKey: childrenKey,
453
447
  onFocusItem: function onFocusItem() {
454
448
  var _focusItem$parent, _focusItem$parent2;
455
449
 
@@ -457,8 +451,9 @@ var TreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
457
451
  focusTreeNode(focusItem === null || focusItem === void 0 ? void 0 : (_focusItem$parent2 = focusItem.parent) === null || _focusItem$parent2 === void 0 ? void 0 : _focusItem$parent2.refKey, treeNodesRefs, "." + treePrefix('node-label'));
458
452
  }
459
453
  });
460
- }, [expandItemValues, flattenNodes, focusItemValue, handleExpand, treeNodesRefs, treePrefix, valueKey]);
454
+ }, [expandItemValues, flattenNodes, focusItemValue, handleExpand, treeNodesRefs, treePrefix, valueKey, childrenKey]);
461
455
  var handleRightArrow = useCallback(function () {
456
+ if (_isNil(focusItemValue)) return;
462
457
  var focusItem = getActiveItem(focusItemValue, flattenNodes, valueKey);
463
458
  rightArrowHandler({
464
459
  focusItem: focusItem,
@@ -471,10 +466,12 @@ var TreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
471
466
  });
472
467
  }, [focusItemValue, flattenNodes, valueKey, expandItemValues, childrenKey, handleExpand, handleFocusItem]);
473
468
  var selectActiveItem = useCallback(function (event) {
469
+ if (_isNil(focusItemValue)) return;
474
470
  var activeItem = getActiveItem(focusItemValue, flattenNodes, valueKey);
475
471
  handleSelect(activeItem, event);
476
472
  }, [flattenNodes, valueKey, focusItemValue, handleSelect]);
477
473
  var handleClean = useCallback(function (event) {
474
+ var nullValue = null;
478
475
  var target = event.target; // exclude searchBar
479
476
 
480
477
  if (target.matches('div[role="searchbox"] > input')) {
@@ -482,7 +479,7 @@ var TreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
482
479
  }
483
480
 
484
481
  setValue(null);
485
- onChange === null || onChange === void 0 ? void 0 : onChange(null, event);
482
+ onChange === null || onChange === void 0 ? void 0 : onChange(nullValue, event);
486
483
  }, [onChange, setValue]);
487
484
  var onPickerKeydown = useToggleKeyDownEvent(_extends({
488
485
  toggle: !activeNode || !active,
@@ -553,18 +550,21 @@ var TreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
553
550
  key: node[valueKey]
554
551
  }, /*#__PURE__*/React.createElement(TreeNode, _extends({}, nodeProps, {
555
552
  ref: function ref(_ref) {
556
- return saveTreeNodeRef(node.refKey, _ref);
553
+ return saveTreeNodeRef(_ref, node.refKey);
557
554
  }
558
555
  })), /*#__PURE__*/React.createElement("div", {
559
556
  className: treePrefix('children')
560
557
  }, nodes.map(function (child, i) {
561
558
  return renderNode(child, i, layer);
559
+ }), showIndentLine && /*#__PURE__*/React.createElement("span", {
560
+ className: treePrefix('indent-line'),
561
+ style: getTreeNodeIndent(rtl, layer - 1, true)
562
562
  })));
563
563
  }
564
564
 
565
565
  return /*#__PURE__*/React.createElement(TreeNode, _extends({
566
566
  ref: function ref(_ref2) {
567
- return saveTreeNodeRef(node.refKey, _ref2);
567
+ return saveTreeNodeRef(_ref2, node.refKey);
568
568
  },
569
569
  key: node[valueKey]
570
570
  }, nodeProps));
@@ -593,29 +593,13 @@ var TreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
593
593
 
594
594
  return visible && /*#__PURE__*/React.createElement(TreeNode, _extends({
595
595
  ref: function ref(_ref4) {
596
- return saveTreeNodeRef(node.refKey, _ref4);
596
+ return saveTreeNodeRef(_ref4, node.refKey);
597
597
  },
598
598
  key: key
599
599
  }, nodeProps));
600
600
  };
601
601
  };
602
602
 
603
- var renderDefaultDragNode = function renderDefaultDragNode() {
604
- if (draggable) {
605
- var dragNodeContent = dragNode === null || dragNode === void 0 ? void 0 : dragNode[labelKey];
606
-
607
- if (_isFunction(renderDragNode)) {
608
- dragNodeContent = renderDragNode(dragNode);
609
- }
610
-
611
- return /*#__PURE__*/React.createElement("span", {
612
- className: treePrefix('drag-node-mover')
613
- }, dragNodeContent);
614
- }
615
-
616
- return null;
617
- };
618
-
619
603
  var renderTree = function renderTree() {
620
604
  var _withTreeClassPrefix;
621
605
 
@@ -627,7 +611,7 @@ var TreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
627
611
  return /*#__PURE__*/React.createElement("div", {
628
612
  role: "tree",
629
613
  id: id ? id + "-listbox" : undefined,
630
- ref: inline ? mergeRefs(treeViewRef, ref) : treeViewRef,
614
+ ref: treeViewRef,
631
615
  className: classes,
632
616
  style: styles,
633
617
  onKeyDown: inline ? handleTreeKeyDown : undefined
@@ -651,7 +635,7 @@ var TreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
651
635
  rowRenderer: renderVirtualListNode(formattedNodes),
652
636
  scrollToAlignment: "center"
653
637
  }, listProps));
654
- }) : formattedNodes), renderDefaultDragNode());
638
+ }) : formattedNodes));
655
639
  };
656
640
 
657
641
  var renderDropdownMenu = function renderDropdownMenu(positionProps, speakerRef) {
@@ -7,7 +7,7 @@ export interface UploadFileItemProps extends WithAsProps {
7
7
  listType: 'text' | 'picture-text' | 'picture';
8
8
  disabled?: boolean;
9
9
  className?: string;
10
- maxPreviewFileSize: number;
10
+ maxPreviewFileSize?: number;
11
11
  classPrefix?: string;
12
12
  removable?: boolean;
13
13
  allowReupload?: boolean;