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
@@ -97,10 +97,10 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
97
97
  flattenData = _useState2[0],
98
98
  setFlattenData = _useState2[1];
99
99
 
100
- var triggerRef = (0, _react.useRef)();
101
- var overlayRef = (0, _react.useRef)();
102
- var targetRef = (0, _react.useRef)();
103
- var searchInputRef = (0, _react.useRef)();
100
+ var triggerRef = (0, _react.useRef)(null);
101
+ var overlayRef = (0, _react.useRef)(null);
102
+ var targetRef = (0, _react.useRef)(null);
103
+ var searchInputRef = (0, _react.useRef)(null);
104
104
 
105
105
  var _useControlled = (0, _utils2.useControlled)(valueProp, defaultValue),
106
106
  value = _useControlled[0],
@@ -204,12 +204,12 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
204
204
  setSearchKeyword(value);
205
205
  onSearch === null || onSearch === void 0 ? void 0 : onSearch(value, event);
206
206
 
207
- if (items !== null && items !== void 0 && items[0]) {
208
- setFocusItemValue(items === null || items === void 0 ? void 0 : items[0]);
207
+ if (items.length > 0) {
208
+ setFocusItemValue(items[0][valueKey]);
209
209
  setLayer(0);
210
210
  setKeys([]);
211
211
  }
212
- }, [getSearchResult, onSearch, setFocusItemValue, setKeys, setLayer]);
212
+ }, [getSearchResult, onSearch, setFocusItemValue, setKeys, setLayer, valueKey]);
213
213
  var handleEntered = (0, _react.useCallback)(function () {
214
214
  onOpen === null || onOpen === void 0 ? void 0 : onOpen();
215
215
  setActive(true);
@@ -250,7 +250,7 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
250
250
  }
251
251
 
252
252
  if (!(0, _shallowEqual.default)(value, focusItemValue)) {
253
- onChange === null || onChange === void 0 ? void 0 : onChange(focusItemValue, event);
253
+ onChange === null || onChange === void 0 ? void 0 : onChange(focusItemValue !== null && focusItemValue !== void 0 ? focusItemValue : null, event);
254
254
  }
255
255
 
256
256
  handleClose();
@@ -332,7 +332,7 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
332
332
  setValue(nextValue);
333
333
  setValueToPaths(nodes);
334
334
  enforceUpdate(nextValue);
335
- onSelect === null || onSelect === void 0 ? void 0 : onSelect(node, null, event);
335
+ onSelect === null || onSelect === void 0 ? void 0 : onSelect(node, nodes, event);
336
336
  onChange === null || onChange === void 0 ? void 0 : onChange(nextValue, event);
337
337
  };
338
338
 
@@ -508,7 +508,7 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
508
508
  hasValue: hasValue,
509
509
  active: active,
510
510
  placement: placement,
511
- inputValue: value
511
+ inputValue: value !== null && value !== void 0 ? value : ''
512
512
  }), selectedElement || (locale === null || locale === void 0 ? void 0 : locale.placeholder))));
513
513
  });
514
514
 
@@ -2,16 +2,17 @@ import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import { ItemDataType, WithAsProps, RsRefForwardingComponent } from '../@types/common';
4
4
  import { ValueType } from './Cascader';
5
- export interface DropdownMenuProps extends WithAsProps {
5
+ export interface DropdownMenuProps extends Omit<WithAsProps, 'classPrefix'> {
6
+ classPrefix: string;
6
7
  disabledItemValues: ValueType[];
7
- activeItemValue?: ValueType;
8
+ activeItemValue?: ValueType | null;
8
9
  childrenKey: string;
9
10
  cascadeData: ItemDataType[][];
10
11
  cascadePaths: ItemDataType[];
11
12
  valueKey: string;
12
13
  labelKey: string;
13
- menuWidth: number;
14
- menuHeight: number | string;
14
+ menuWidth?: number;
15
+ menuHeight?: number | string;
15
16
  renderMenuItem?: (itemLabel: React.ReactNode, item: ItemDataType) => React.ReactNode;
16
17
  renderMenu?: (items: ItemDataType[], menu: React.ReactNode, parentNode?: ItemDataType, layer?: number) => React.ReactNode;
17
18
  onSelect?: (node: ItemDataType, cascadePaths: ItemDataType[], isLeafNode: boolean, event: React.MouseEvent) => void;
@@ -1,17 +1,17 @@
1
1
  /// <reference types="react" />
2
2
  import { CascaderProps } from './Cascader';
3
3
  import { ItemDataType } from '../@types/common';
4
- export declare function getColumnsAndPaths(data: any, value: any, options: any): {
5
- columns: ItemDataType[][];
6
- paths: any[];
4
+ export declare function getColumnsAndPaths<T extends ItemDataType>(data: T[], value: any, options: any): {
5
+ columns: ItemDataType<string | number>[][];
6
+ paths: T[];
7
7
  };
8
8
  export declare function usePaths(props: CascaderProps): {
9
- enforceUpdate: (nextValue: any, isAttachChildren?: boolean) => void;
10
- columnData: ItemDataType[][];
11
- valueToPaths: ItemDataType[];
12
- selectedPaths: ItemDataType[];
13
- setValueToPaths: import("react").Dispatch<import("react").SetStateAction<ItemDataType[]>>;
14
- setColumnData: import("react").Dispatch<import("react").SetStateAction<ItemDataType[][]>>;
15
- setSelectedPaths: import("react").Dispatch<import("react").SetStateAction<ItemDataType[]>>;
9
+ enforceUpdate: (nextValue: any, isAttachChildren?: boolean | undefined) => void;
10
+ columnData: ItemDataType<string | number>[][];
11
+ valueToPaths: ItemDataType<string | number>[];
12
+ selectedPaths: ItemDataType<string | number>[];
13
+ setValueToPaths: import("react").Dispatch<import("react").SetStateAction<ItemDataType<string | number>[]>>;
14
+ setColumnData: import("react").Dispatch<import("react").SetStateAction<ItemDataType<string | number>[][]>>;
15
+ setSelectedPaths: import("react").Dispatch<import("react").SetStateAction<ItemDataType<string | number>[]>>;
16
16
  addColumn: (column: ItemDataType[], index: number) => void;
17
17
  };
@@ -1,13 +1,18 @@
1
+ import React from 'react';
1
2
  import { PickerLocale } from '../locales';
2
- import { PickerComponent } from '../Picker';
3
3
  import { ItemDataType, FormControlPickerProps } from '../@types/common';
4
- import { SelectProps } from '../SelectPicker';
4
+ import type { MultipleSelectProps } from '../SelectPicker';
5
5
  export declare type ValueType = (number | string)[];
6
- export interface CheckPickerProps<T = ValueType> extends FormControlPickerProps<T, PickerLocale, ItemDataType>, SelectProps<T> {
6
+ export interface CheckPickerProps<T> extends FormControlPickerProps<T[], PickerLocale, ItemDataType<T>>, MultipleSelectProps<T> {
7
7
  /** Top the selected option in the options */
8
8
  sticky?: boolean;
9
9
  /** A picker that can be counted */
10
10
  countable?: boolean;
11
11
  }
12
- declare const CheckPicker: PickerComponent<CheckPickerProps>;
12
+ export interface CheckPickerComponent {
13
+ <T>(props: CheckPickerProps<T>): JSX.Element | null;
14
+ displayName?: string;
15
+ propTypes?: React.WeakValidationMap<CheckPickerProps<any>>;
16
+ }
17
+ declare const CheckPicker: CheckPickerComponent;
13
18
  export default CheckPicker;
@@ -100,10 +100,10 @@ var CheckPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
100
100
  onClose = props.onClose,
101
101
  onOpen = props.onOpen,
102
102
  rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "appearance", "classPrefix", "countable", "data", "disabledItemValues", "valueKey", "labelKey", "searchable", "virtualized", "cleanable", "placement", "menuAutoWidth", "menuMaxHeight", "menuClassName", "menuStyle", "locale", "placeholder", "disabled", "toggleAs", "style", "sticky", "value", "defaultValue", "groupBy", "listProps", "id", "sort", "searchBy", "renderMenuItem", "renderMenuGroup", "renderValue", "renderExtraFooter", "renderMenu", "onGroupTitleClick", "onSearch", "onEnter", "onEntered", "onExited", "onClean", "onChange", "onSelect", "onClose", "onOpen"]);
103
- var triggerRef = (0, _react.useRef)();
104
- var targetRef = (0, _react.useRef)();
105
- var overlayRef = (0, _react.useRef)();
106
- var searchInputRef = (0, _react.useRef)();
103
+ var triggerRef = (0, _react.useRef)(null);
104
+ var targetRef = (0, _react.useRef)(null);
105
+ var overlayRef = (0, _react.useRef)(null);
106
+ var searchInputRef = (0, _react.useRef)(null);
107
107
 
108
108
  var _useCustom = (0, _utils.useCustom)('Picker', overrideLocale),
109
109
  locale = _useCustom.locale;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _react = _interopRequireDefault(require("react"));
6
+
7
+ var _tsExpect = require("ts-expect");
8
+
9
+ var _CheckPicker = _interopRequireDefault(require("../CheckPicker"));
10
+
11
+ // Infer value and onChange types from data
12
+ var numberValuedData = [{
13
+ label: 'One',
14
+ value: 1
15
+ }];
16
+
17
+ /*#__PURE__*/
18
+ _react.default.createElement(_CheckPicker.default, {
19
+ data: numberValuedData,
20
+ value: [1]
21
+ }); // @ts-expect-error should not accept single value
22
+
23
+
24
+ /*#__PURE__*/
25
+ _react.default.createElement(_CheckPicker.default, {
26
+ data: numberValuedData,
27
+ value: 1
28
+ }); // @ts-expect-error should not accept string value
29
+
30
+
31
+ /*#__PURE__*/
32
+ _react.default.createElement(_CheckPicker.default, {
33
+ data: numberValuedData,
34
+ value: ['1']
35
+ });
36
+
37
+ /*#__PURE__*/
38
+ _react.default.createElement(_CheckPicker.default, {
39
+ data: numberValuedData,
40
+ onChange: function onChange(newValue) {
41
+ (0, _tsExpect.expectType)(newValue);
42
+ }
43
+ });
44
+
45
+ var stringValuedData = [{
46
+ label: 'One',
47
+ value: 'One'
48
+ }];
49
+
50
+ /*#__PURE__*/
51
+ _react.default.createElement(_CheckPicker.default, {
52
+ data: stringValuedData,
53
+ value: ['1']
54
+ }); // @ts-expect-error should not accept single value
55
+
56
+
57
+ /*#__PURE__*/
58
+ _react.default.createElement(_CheckPicker.default, {
59
+ data: numberValuedData,
60
+ value: "1"
61
+ }); // @ts-expect-error should not accept number value
62
+
63
+
64
+ /*#__PURE__*/
65
+ _react.default.createElement(_CheckPicker.default, {
66
+ data: stringValuedData,
67
+ value: [1]
68
+ });
69
+
70
+ /*#__PURE__*/
71
+ _react.default.createElement(_CheckPicker.default, {
72
+ data: stringValuedData,
73
+ onChange: function onChange(newValue) {
74
+ (0, _tsExpect.expectType)(newValue);
75
+ }
76
+ });
@@ -16,12 +16,13 @@ var _CheckTreePicker = _interopRequireDefault(require("../CheckTreePicker"));
16
16
  var _TreeContext = _interopRequireDefault(require("../Tree/TreeContext"));
17
17
 
18
18
  var CheckTree = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
19
- var dragNodeRef = (0, _react.useRef)();
19
+ var contextValue = (0, _react.useMemo)(function () {
20
+ return {
21
+ inline: true
22
+ };
23
+ }, []);
20
24
  return /*#__PURE__*/_react.default.createElement(_TreeContext.default.Provider, {
21
- value: {
22
- inline: true,
23
- dragNodeRef: dragNodeRef
24
- }
25
+ value: contextValue
25
26
  }, /*#__PURE__*/_react.default.createElement(_CheckTreePicker.default, (0, _extends2.default)({
26
27
  ref: ref
27
28
  }, props)));
@@ -4,7 +4,7 @@ import { CheckStateType } from '../utils';
4
4
  export interface CheckTreeNodeProps extends WithAsProps {
5
5
  rtl?: boolean;
6
6
  label?: any;
7
- layer?: number;
7
+ layer: number;
8
8
  value?: any;
9
9
  focus?: boolean;
10
10
  style?: React.CSSProperties;
@@ -7,7 +7,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
7
7
  exports.__esModule = true;
8
8
  exports.default = void 0;
9
9
 
10
- var _extends3 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
11
 
12
12
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
13
13
 
@@ -21,11 +21,11 @@ var _Spinner = _interopRequireDefault(require("@rsuite/icons/legacy/Spinner"));
21
21
 
22
22
  var _DropdownMenuCheckItem = _interopRequireDefault(require("../Picker/DropdownMenuCheckItem"));
23
23
 
24
+ var _treeUtils = require("../utils/treeUtils");
25
+
24
26
  var _utils = require("../utils");
25
27
 
26
28
  var CheckTreeNode = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
27
- var _extends2;
28
-
29
29
  var _ref$as = _ref.as,
30
30
  Component = _ref$as === void 0 ? 'div' : _ref$as,
31
31
  style = _ref.style,
@@ -88,7 +88,7 @@ var CheckTreeNode = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
88
88
  isChecked = false;
89
89
  }
90
90
 
91
- var nextNodeData = (0, _extends3.default)({}, nodeData, {
91
+ var nextNodeData = (0, _extends2.default)({}, nodeData, {
92
92
  check: isChecked
93
93
  });
94
94
  onSelect === null || onSelect === void 0 ? void 0 : onSelect(nextNodeData, event);
@@ -150,11 +150,9 @@ var CheckTreeNode = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
150
150
  'all-uncheckable': !!allUncheckable,
151
151
  'text-muted': disabled,
152
152
  focus: focus
153
- })); // layer start from 1
154
-
155
- var padding = (layer - 1) * _utils.TREE_NODE_PADDING + _utils.TREE_NODE_ROOT_PADDING;
156
- var styles = (0, _extends3.default)({}, style, (_extends2 = {}, _extends2[rtl ? 'paddingRight' : 'paddingLeft'] = padding, _extends2));
157
- return visible ? /*#__PURE__*/_react.default.createElement(Component, (0, _extends3.default)({
153
+ }));
154
+ var styles = (0, _extends2.default)({}, style, (0, _treeUtils.getTreeNodeIndent)(rtl, layer - 1));
155
+ return visible ? /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({
158
156
  role: "treeitem",
159
157
  "aria-label": label,
160
158
  "aria-expanded": expand,
@@ -35,14 +35,14 @@ var _CheckTreeNode = _interopRequireDefault(require("./CheckTreeNode"));
35
35
 
36
36
  var _TreeContext = _interopRequireDefault(require("../Tree/TreeContext"));
37
37
 
38
+ var _treeUtils = require("../utils/treeUtils");
39
+
38
40
  var _utils = require("../utils");
39
41
 
40
42
  var _Picker = require("../Picker");
41
43
 
42
44
  var _utils2 = require("./utils");
43
45
 
44
- var _treeUtils = require("../utils/treeUtils");
45
-
46
46
  var _TreePicker = require("../TreePicker/TreePicker");
47
47
 
48
48
  var emptyArray = [];
@@ -62,6 +62,7 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
62
62
  searchBy = props.searchBy,
63
63
  toggleAs = props.toggleAs,
64
64
  searchKeyword = props.searchKeyword,
65
+ showIndentLine = props.showIndentLine,
65
66
  overrideLocale = props.locale,
66
67
  _props$cascade = props.cascade,
67
68
  cascade = _props$cascade === void 0 ? true : _props$cascade,
@@ -115,17 +116,17 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
115
116
  renderValue = props.renderValue,
116
117
  renderTreeIcon = props.renderTreeIcon,
117
118
  renderTreeNode = props.renderTreeNode,
118
- rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "data", "style", "appearance", "cleanable", "countable", "searchBy", "toggleAs", "searchKeyword", "locale", "cascade", "disabled", "valueKey", "labelKey", "placement", "childrenKey", "placeholder", "value", "defaultValue", "defaultExpandAll", "disabledItemValues", "expandItemValues", "defaultExpandItemValues", "height", "menuStyle", "searchable", "virtualized", "className", "classPrefix", "menuClassName", "menuAutoWidth", "uncheckableItemValues", "id", "listProps", "renderMenu", "getChildren", "renderExtraFooter", "onEntered", "onChange", "onClean", "onClose", "onExited", "onSearch", "onSelect", "onOpen", "onScroll", "onExpand", "renderValue", "renderTreeIcon", "renderTreeNode"]);
119
+ rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "data", "style", "appearance", "cleanable", "countable", "searchBy", "toggleAs", "searchKeyword", "showIndentLine", "locale", "cascade", "disabled", "valueKey", "labelKey", "placement", "childrenKey", "placeholder", "value", "defaultValue", "defaultExpandAll", "disabledItemValues", "expandItemValues", "defaultExpandItemValues", "height", "menuStyle", "searchable", "virtualized", "className", "classPrefix", "menuClassName", "menuAutoWidth", "uncheckableItemValues", "id", "listProps", "renderMenu", "getChildren", "renderExtraFooter", "onEntered", "onChange", "onClean", "onClose", "onExited", "onSearch", "onSelect", "onOpen", "onScroll", "onExpand", "renderValue", "renderTreeIcon", "renderTreeNode"]);
119
120
 
120
121
  var _useContext = (0, _react.useContext)(_TreeContext.default),
121
122
  inline = _useContext.inline;
122
123
 
123
- var triggerRef = (0, _react.useRef)();
124
- var targetRef = (0, _react.useRef)();
125
- var listRef = (0, _react.useRef)();
126
- var overlayRef = (0, _react.useRef)();
127
- var searchInputRef = (0, _react.useRef)();
128
- var treeViewRef = (0, _react.useRef)();
124
+ var triggerRef = (0, _react.useRef)(null);
125
+ var targetRef = (0, _react.useRef)(null);
126
+ var listRef = (0, _react.useRef)(null);
127
+ var overlayRef = (0, _react.useRef)(null);
128
+ var searchInputRef = (0, _react.useRef)(null);
129
+ var treeViewRef = (0, _react.useRef)(null);
129
130
 
130
131
  var _useCustom = (0, _utils.useCustom)('Picker', overrideLocale),
131
132
  rtl = _useCustom.rtl,
@@ -221,25 +222,21 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
221
222
 
222
223
 
223
224
  var getFormattedNodes = (0, _react.useCallback)(function (render) {
224
- var formattedNodes = [];
225
-
226
225
  if (virtualized) {
227
- formattedNodes = formatVirtualizedTreeData(flattenNodes, filteredData, expandItemValues, {
226
+ return formatVirtualizedTreeData(flattenNodes, filteredData, expandItemValues, {
228
227
  cascade: cascade,
229
228
  searchKeyword: searchKeywordState
230
229
  }).filter(function (item) {
231
230
  return item.visible;
232
231
  });
233
- } else {
234
- formattedNodes = (0, _utils2.getFormattedTree)(filteredData, flattenNodes, {
235
- childrenKey: childrenKey,
236
- cascade: cascade
237
- }).map(function (node) {
238
- return render === null || render === void 0 ? void 0 : render(node, 1);
239
- });
240
232
  }
241
233
 
242
- return formattedNodes;
234
+ return (0, _utils2.getFormattedTree)(filteredData, flattenNodes, {
235
+ childrenKey: childrenKey,
236
+ cascade: cascade
237
+ }).map(function (node) {
238
+ return render === null || render === void 0 ? void 0 : render(node, 1);
239
+ });
243
240
  }, [searchKeywordState, expandItemValues, filteredData, flattenNodes, formatVirtualizedTreeData, virtualized, childrenKey, cascade]);
244
241
 
245
242
  var getTreeNodeProps = function getTreeNodeProps(node, layer) {
@@ -434,7 +431,7 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
434
431
  }
435
432
  }, [childrenKey, expandItemValues, getChildren, loadChildren, onExpand, setExpandItemValues, valueKey]);
436
433
  (0, _Picker.usePublicMethods)(ref, {
437
- rootRef: inline ? treeViewRef : null,
434
+ rootRef: inline ? treeViewRef : undefined,
438
435
  triggerRef: triggerRef,
439
436
  overlayRef: overlayRef,
440
437
  targetRef: targetRef,
@@ -489,11 +486,13 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
489
486
  }
490
487
  }, [searchKeywordState, checkTreePrefix, expandItemValues, filteredData, focusItemValue, treeNodesRefs, childrenKey, valueKey, disabledItemValues]);
491
488
  var handleLeftArrow = (0, _react.useCallback)(function () {
489
+ if ((0, _isNil2.default)(focusItemValue)) return;
492
490
  var focusItem = (0, _treeUtils.getActiveItem)(focusItemValue, flattenNodes, valueKey);
493
491
  (0, _treeUtils.leftArrowHandler)({
494
492
  focusItem: focusItem,
495
493
  expand: expandItemValues.includes(focusItem === null || focusItem === void 0 ? void 0 : focusItem[valueKey]),
496
494
  onExpand: handleExpand,
495
+ childrenKey: childrenKey,
497
496
  onFocusItem: function onFocusItem() {
498
497
  var _focusItem$parent, _focusItem$parent2;
499
498
 
@@ -501,8 +500,9 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
501
500
  (0, _treeUtils.focusTreeNode)(focusItem === null || focusItem === void 0 ? void 0 : (_focusItem$parent2 = focusItem.parent) === null || _focusItem$parent2 === void 0 ? void 0 : _focusItem$parent2.refKey, treeNodesRefs, "." + checkTreePrefix('node-label'));
502
501
  }
503
502
  });
504
- }, [checkTreePrefix, expandItemValues, flattenNodes, focusItemValue, handleExpand, treeNodesRefs, valueKey]);
503
+ }, [checkTreePrefix, expandItemValues, flattenNodes, focusItemValue, handleExpand, treeNodesRefs, valueKey, childrenKey]);
505
504
  var handleRightArrow = (0, _react.useCallback)(function () {
505
+ if ((0, _isNil2.default)(focusItemValue)) return;
506
506
  var focusItem = (0, _treeUtils.getActiveItem)(focusItemValue, flattenNodes, valueKey);
507
507
  (0, _treeUtils.rightArrowHandler)({
508
508
  focusItem: focusItem,
@@ -515,6 +515,7 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
515
515
  });
516
516
  }, [focusItemValue, flattenNodes, valueKey, expandItemValues, childrenKey, handleExpand, handleFocusItem]);
517
517
  var selectActiveItem = (0, _react.useCallback)(function (event) {
518
+ if ((0, _isNil2.default)(focusItemValue)) return;
518
519
  var activeItem = (0, _treeUtils.getActiveItem)(focusItemValue, flattenNodes, valueKey);
519
520
 
520
521
  if (!(0, _utils2.isNodeUncheckable)(activeItem, {
@@ -596,19 +597,22 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
596
597
  key: node[valueKey]
597
598
  }, /*#__PURE__*/_react.default.createElement(_CheckTreeNode.default, (0, _extends2.default)({}, nodeProps, {
598
599
  ref: function ref(_ref) {
599
- return saveTreeNodeRef(refKey, _ref);
600
+ return saveTreeNodeRef(_ref, refKey);
600
601
  }
601
602
  })), /*#__PURE__*/_react.default.createElement("div", {
602
603
  className: checkTreePrefix('children')
603
604
  }, nodes.map(function (child) {
604
605
  return renderNode(child, layer);
606
+ }), showIndentLine && /*#__PURE__*/_react.default.createElement("span", {
607
+ className: checkTreePrefix('indent-line'),
608
+ style: (0, _treeUtils.getTreeNodeIndent)(rtl, layer - 1, true)
605
609
  })));
606
610
  }
607
611
 
608
612
  return /*#__PURE__*/_react.default.createElement(_CheckTreeNode.default, (0, _extends2.default)({
609
613
  key: node[valueKey],
610
614
  ref: function ref(_ref2) {
611
- return saveTreeNodeRef(refKey, _ref2);
615
+ return saveTreeNodeRef(_ref2, refKey);
612
616
  }
613
617
  }, nodeProps));
614
618
  };
@@ -632,7 +636,7 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
632
636
  style: style,
633
637
  key: key,
634
638
  ref: function ref(_ref4) {
635
- return saveTreeNodeRef(refKey, _ref4);
639
+ return saveTreeNodeRef(_ref4, refKey);
636
640
  }
637
641
  }, nodeProps));
638
642
  };
@@ -14,6 +14,8 @@ export interface TreeNodeType {
14
14
  value?: string | number;
15
15
  groupBy?: string;
16
16
  children?: TreeNodeType[];
17
+ hasChildren?: boolean;
18
+ checkState?: CheckStateType;
17
19
  }
18
20
  export interface TreeNodesType {
19
21
  [key: string]: TreeNodeType;
@@ -38,5 +40,5 @@ export declare function isNodeUncheckable(node: any, props: Partial<CheckTreePic
38
40
  export declare function getFormattedTree(data: any[], nodes: TreeNodesType, props: Partial<CheckTreePickerProps>): any[];
39
41
  export declare function getDisabledState(nodes: TreeNodesType, node: TreeNodeType, props: Partial<CheckTreePickerProps>): boolean;
40
42
  export declare function getCheckTreePickerDefaultValue(value: any[], uncheckableItemValues: any[]): any[];
41
- export declare function getSelectedItems(nodes: TreeNodesType, value: (string | number)[], valueKey: string): any[];
43
+ export declare function getSelectedItems(nodes: TreeNodesType, value: (string | number)[], valueKey: string): TreeNodeType[];
42
44
  export declare function getNodeCheckState({ nodes, node, cascade, childrenKey }: any): CheckStateType;
@@ -26,23 +26,25 @@ var _utils = require("../utils");
26
26
  var _treeUtils = require("../utils/treeUtils");
27
27
 
28
28
  function isEveryChildChecked(nodes, parent) {
29
- if ((0, _isNil2.default)(nodes[parent.refKey])) {
29
+ if ((0, _isNil2.default)(parent.refKey) || (0, _isNil2.default)(nodes[parent.refKey])) {
30
30
  return false;
31
31
  }
32
32
 
33
33
  var children = (0, _treeUtils.getChildrenByFlattenNodes)(nodes, parent);
34
34
 
35
35
  if (!children.length) {
36
- return nodes[parent.refKey].check;
36
+ var _nodes$parent$refKey$;
37
+
38
+ return (_nodes$parent$refKey$ = nodes[parent.refKey].check) !== null && _nodes$parent$refKey$ !== void 0 ? _nodes$parent$refKey$ : false;
37
39
  }
38
40
 
39
41
  return children.every(function (child) {
40
- return nodes[child.refKey].check;
42
+ return !(0, _isNil2.default)(child.refKey) && nodes[child.refKey].check;
41
43
  });
42
44
  }
43
45
 
44
46
  function isSomeChildChecked(nodes, parent, childrenKey) {
45
- if ((0, _isNil2.default)(nodes[parent.refKey])) {
47
+ if (!(0, _isNil2.default)(parent.refKey) && (0, _isNil2.default)(nodes[parent.refKey])) {
46
48
  return false;
47
49
  }
48
50
 
@@ -54,7 +56,7 @@ function isSomeChildChecked(nodes, parent, childrenKey) {
54
56
  return isSomeChildChecked(nodes, child, childrenKey);
55
57
  }
56
58
 
57
- return nodes[child.refKey].check;
59
+ return !(0, _isNil2.default)(child.refKey) && nodes[child.refKey].check;
58
60
  });
59
61
  }
60
62
 
@@ -71,7 +73,7 @@ function isSomeNodeHasChildren(data, childrenKey) {
71
73
 
72
74
  function isAllSiblingNodeUncheckable(node, nodes, uncheckableItemValues, valueKey) {
73
75
  var list = [];
74
- var parentNodeRefkey = node.parent ? node.parent.refKey : '';
76
+ var parentNodeRefKey = node.parent ? node.parent.refKey : '';
75
77
  Object.keys(nodes).forEach(function (refKey) {
76
78
  var _curNode$parent;
77
79
 
@@ -79,7 +81,7 @@ function isAllSiblingNodeUncheckable(node, nodes, uncheckableItemValues, valueKe
79
81
 
80
82
  if ((0, _isNil2.default)(node.parent) && (0, _isNil2.default)(curNode.parent)) {
81
83
  list.push(curNode);
82
- } else if (((_curNode$parent = curNode.parent) === null || _curNode$parent === void 0 ? void 0 : _curNode$parent.refKey) === parentNodeRefkey) {
84
+ } else if (((_curNode$parent = curNode.parent) === null || _curNode$parent === void 0 ? void 0 : _curNode$parent.refKey) === parentNodeRefKey) {
83
85
  list.push(curNode);
84
86
  }
85
87
  });
@@ -134,7 +136,7 @@ function getFormattedTree(data, nodes, props) {
134
136
  var curNode = nodes[node.refKey];
135
137
 
136
138
  if (curNode) {
137
- var _node$childrenKey;
139
+ var _node;
138
140
 
139
141
  var checkState = !(0, _isUndefined2.default)(cascade) ? getNodeCheckState({
140
142
  node: curNode,
@@ -148,7 +150,7 @@ function getFormattedTree(data, nodes, props) {
148
150
  formatted.parent = curNode.parent;
149
151
  formatted.checkState = checkState;
150
152
 
151
- if (((_node$childrenKey = node[childrenKey]) === null || _node$childrenKey === void 0 ? void 0 : _node$childrenKey.length) > 0) {
153
+ if (((_node = node[childrenKey]) === null || _node === void 0 ? void 0 : _node.length) > 0) {
152
154
  formatted[childrenKey] = getFormattedTree(formatted[childrenKey], nodes, props);
153
155
  }
154
156
  }
@@ -162,7 +164,7 @@ function getDisabledState(nodes, node, props) {
162
164
  disabledItemValues = _props$disabledItemVa === void 0 ? [] : _props$disabledItemVa,
163
165
  valueKey = props.valueKey;
164
166
 
165
- if ((0, _isNil2.default)(nodes[node.refKey])) {
167
+ if (!(0, _isNil2.default)(node.refKey) && (0, _isNil2.default)(nodes[node.refKey])) {
166
168
  return false;
167
169
  }
168
170
 
@@ -31,7 +31,7 @@ export interface CheckboxProps<V = ValueType> extends WithAsProps {
31
31
  /** Used for the name of the form */
32
32
  name?: string;
33
33
  /** Called when the user attempts to change the checked state. */
34
- onChange?: (value: V, checked: boolean, event: React.ChangeEvent<HTMLInputElement>) => void;
34
+ onChange?: (value: V | undefined, checked: boolean, event: React.ChangeEvent<HTMLInputElement>) => void;
35
35
  /** Called when the checkbox or label is clicked. */
36
36
  onClick?: (event: React.SyntheticEvent) => void;
37
37
  /** Called when the checkbox is clicked. */
@@ -41,10 +41,13 @@ var Container = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
41
41
  var classes = merge(className, withClassPrefix({
42
42
  'has-sidebar': hasSidebar
43
43
  }));
44
- return /*#__PURE__*/_react.default.createElement(ContainerContext.Provider, {
45
- value: {
44
+ var contextValue = (0, _react.useMemo)(function () {
45
+ return {
46
46
  setHasSidebar: setHasSidebar
47
- }
47
+ };
48
+ }, [setHasSidebar]);
49
+ return /*#__PURE__*/_react.default.createElement(ContainerContext.Provider, {
50
+ value: contextValue
48
51
  }, /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({}, rest, {
49
52
  ref: ref,
50
53
  className: classes