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
@@ -3,7 +3,7 @@ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWith
3
3
  import React, { useCallback } from 'react';
4
4
  import PropTypes from 'prop-types';
5
5
  import partial from 'lodash/partial';
6
- import { DateUtils, useClassNames, DATERANGE_DISABLED_TARGET } from '../utils';
6
+ import { DateUtils, useClassNames, DATERANGE_DISABLED_TARGET, useCustom } from '../utils';
7
7
  import { useCalendarContext } from './CalendarContext';
8
8
  var TableRow = /*#__PURE__*/React.forwardRef(function (props, ref) {
9
9
  var _props$as = props.as,
@@ -20,16 +20,19 @@ var TableRow = /*#__PURE__*/React.forwardRef(function (props, ref) {
20
20
  selected = _useCalendarContext$d === void 0 ? new Date() : _useCalendarContext$d,
21
21
  dateRange = _useCalendarContext.dateRange,
22
22
  disabledDate = _useCalendarContext.disabledDate,
23
- formatDate = _useCalendarContext.formatDate,
24
23
  hoverRangeValue = _useCalendarContext.hoverRangeValue,
25
24
  inSameMonth = _useCalendarContext.inSameMonth,
26
25
  isoWeek = _useCalendarContext.isoWeek,
27
26
  onMouseMove = _useCalendarContext.onMouseMove,
28
27
  onSelect = _useCalendarContext.onSelect,
29
28
  renderCell = _useCalendarContext.renderCell,
30
- locale = _useCalendarContext.locale,
29
+ overrideLocale = _useCalendarContext.locale,
31
30
  showWeekNumbers = _useCalendarContext.showWeekNumbers;
32
31
 
32
+ var _useCustom = useCustom('Calendar', overrideLocale),
33
+ locale = _useCustom.locale,
34
+ formatDate = _useCustom.formatDate;
35
+
33
36
  var _useClassNames = useClassNames(classPrefix),
34
37
  prefix = _useClassNames.prefix,
35
38
  merge = _useClassNames.merge;
@@ -43,14 +46,14 @@ var TableRow = /*#__PURE__*/React.forwardRef(function (props, ref) {
43
46
  }, [onSelect]);
44
47
 
45
48
  var renderDays = function renderDays() {
46
- var formatStr = (locale === null || locale === void 0 ? void 0 : locale.formattedDayPattern) || 'yyyy-MM-dd';
49
+ var formatStr = locale.formattedDayPattern;
47
50
  var days = [];
48
51
 
49
52
  var _ref = dateRange || [],
50
53
  selectedStartDate = _ref[0],
51
54
  selectedEndDate = _ref[1];
52
55
 
53
- var _ref2 = hoverRangeValue || [],
56
+ var _ref2 = hoverRangeValue !== null && hoverRangeValue !== void 0 ? hoverRangeValue : [],
54
57
  hoverStartDate = _ref2[0],
55
58
  hoverEndDate = _ref2[1];
56
59
 
@@ -64,7 +67,7 @@ var TableRow = /*#__PURE__*/React.forwardRef(function (props, ref) {
64
67
  var unSameMonth = !(inSameMonth !== null && inSameMonth !== void 0 && inSameMonth(thisDate));
65
68
  var isStartSelected = !unSameMonth && selectedStartDate && DateUtils.isSameDay(thisDate, selectedStartDate);
66
69
  var isEndSelected = !unSameMonth && selectedEndDate && DateUtils.isSameDay(thisDate, selectedEndDate);
67
- var isSelected = isStartSelected || isEndSelected;
70
+ var isSelected = isRangeSelectionMode ? isStartSelected || isEndSelected : DateUtils.isSameDay(thisDate, selected);
68
71
  var inRange = false; // for Selected
69
72
 
70
73
  if (selectedStartDate && selectedEndDate) {
@@ -91,7 +94,7 @@ var TableRow = /*#__PURE__*/React.forwardRef(function (props, ref) {
91
94
  var _classes = prefix('cell', {
92
95
  'cell-un-same-month': unSameMonth,
93
96
  'cell-is-today': isToday,
94
- 'cell-selected': isRangeSelectionMode ? isSelected : DateUtils.isSameDay(thisDate, selected),
97
+ 'cell-selected': isSelected,
95
98
  'cell-selected-start': isStartSelected,
96
99
  'cell-selected-end': isEndSelected,
97
100
  'cell-in-range': !unSameMonth && inRange,
@@ -100,8 +103,10 @@ var TableRow = /*#__PURE__*/React.forwardRef(function (props, ref) {
100
103
 
101
104
  var title = formatDate ? formatDate(thisDate, formatStr) : DateUtils.format(thisDate, formatStr);
102
105
  days.push( /*#__PURE__*/React.createElement("div", {
103
- role: "cell",
106
+ role: "gridcell",
104
107
  key: title,
108
+ "aria-label": title,
109
+ "aria-selected": isSelected || undefined,
105
110
  className: _classes
106
111
  }, /*#__PURE__*/React.createElement("div", {
107
112
  role: "button",
@@ -125,7 +130,7 @@ var TableRow = /*#__PURE__*/React.forwardRef(function (props, ref) {
125
130
  className: classes
126
131
  }), showWeekNumbers && /*#__PURE__*/React.createElement("div", {
127
132
  className: prefix('cell-week-number'),
128
- role: "cell"
133
+ role: "rowheader"
129
134
  }, DateUtils.format(weekendDate, isoWeek ? 'I' : 'w')), renderDays());
130
135
  });
131
136
  TableRow.displayName = 'TableRow';
@@ -78,8 +78,8 @@ var scrollTo = function scrollTo(time, row) {
78
78
  var node = container === null || container === void 0 ? void 0 : container.querySelector("[data-key=\"" + type + "-" + value + "\"]");
79
79
 
80
80
  if (node && container) {
81
- var _getPosition = getPosition(node, container),
82
- top = _getPosition.top;
81
+ var _ref2 = getPosition(node, container),
82
+ top = _ref2.top;
83
83
 
84
84
  scrollTopAnimation(container, top, scrollTop(container) !== 0);
85
85
  }
@@ -93,7 +93,8 @@ var TimeDropdown = /*#__PURE__*/React.forwardRef(function (props, ref) {
93
93
  _props$classPrefix = props.classPrefix,
94
94
  classPrefix = _props$classPrefix === void 0 ? 'calendar-time-dropdown' : _props$classPrefix,
95
95
  show = props.show,
96
- showMeridian = props.showMeridian,
96
+ _props$showMeridian = props.showMeridian,
97
+ showMeridian = _props$showMeridian === void 0 ? false : _props$showMeridian,
97
98
  rest = _objectWithoutPropertiesLoose(props, ["as", "className", "classPrefix", "show", "showMeridian"]);
98
99
 
99
100
  var _useCalendarContext = useCalendarContext(),
@@ -165,7 +166,7 @@ var TimeDropdown = /*#__PURE__*/React.forwardRef(function (props, ref) {
165
166
  className: itemClasses,
166
167
  tabIndex: -1,
167
168
  "data-key": type + "-" + i,
168
- onClick: !disabled ? partial(handleClick, type, i) : null
169
+ onClick: !disabled ? partial(handleClick, type, i) : undefined
169
170
  }, showMeridian && type === 'hours' && i === 0 ? '12' : i)));
170
171
  }
171
172
  }
@@ -2,7 +2,7 @@ import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
3
  import React from 'react';
4
4
  import PropTypes from 'prop-types';
5
- import { DateUtils, useClassNames } from '../utils';
5
+ import { DateUtils, useClassNames, useCustom } from '../utils';
6
6
  import Table from './Table';
7
7
  import { useCalendarContext } from './CalendarContext';
8
8
  var View = /*#__PURE__*/React.forwardRef(function (props, ref) {
@@ -16,7 +16,12 @@ var View = /*#__PURE__*/React.forwardRef(function (props, ref) {
16
16
  var _useCalendarContext = useCalendarContext(),
17
17
  _useCalendarContext$d = _useCalendarContext.date,
18
18
  date = _useCalendarContext$d === void 0 ? new Date() : _useCalendarContext$d,
19
- isoWeek = _useCalendarContext.isoWeek;
19
+ isoWeek = _useCalendarContext.isoWeek,
20
+ overrideLocale = _useCalendarContext.locale;
21
+
22
+ var _useCustom = useCustom('Calendar', overrideLocale),
23
+ locale = _useCustom.locale,
24
+ formatDate = _useCustom.formatDate;
20
25
 
21
26
  var thisMonthDate = DateUtils.setDate(date, 1);
22
27
 
@@ -25,13 +30,12 @@ var View = /*#__PURE__*/React.forwardRef(function (props, ref) {
25
30
  withClassPrefix = _useClassNames.withClassPrefix;
26
31
 
27
32
  var classes = merge(className, withClassPrefix());
28
- return /*#__PURE__*/React.createElement(Component, _extends({
29
- role: "row"
30
- }, rest, {
33
+ return /*#__PURE__*/React.createElement(Component, _extends({}, rest, {
31
34
  ref: ref,
32
35
  className: classes
33
36
  }), /*#__PURE__*/React.createElement(Table, {
34
- rows: DateUtils.getMonthView(thisMonthDate, isoWeek)
37
+ rows: DateUtils.getMonthView(thisMonthDate, isoWeek),
38
+ "aria-label": formatDate(thisMonthDate, locale.formattedMonthPattern)
35
39
  }));
36
40
  });
37
41
  View.displayName = 'View';
@@ -5,9 +5,9 @@ export interface CalendarInnerContextValue {
5
5
  dateRange?: Date[];
6
6
  disabledDate?: (date: Date, selectRangeValue?: Date[], type?: string) => boolean;
7
7
  format?: string;
8
- hoverRangeValue?: Date[];
8
+ hoverRangeValue?: [Date, Date];
9
9
  inSameMonth?: (date: Date) => boolean;
10
- isoWeek?: boolean;
10
+ isoWeek: boolean;
11
11
  onChangePageDate?: (nextPageDate: Date, event: React.MouseEvent) => void;
12
12
  onChangePageTime?: (nextPageTime: Date, event: React.MouseEvent) => void;
13
13
  onMouseMove?: (date: Date) => void;
@@ -1,5 +1,5 @@
1
- declare const useCalendarDate: (value: Date, defaultDate: Date) => {
1
+ declare const useCalendarDate: (value: Date | undefined, defaultDate: Date | undefined) => {
2
2
  calendarDate: Date;
3
- setCalendarDate: (date: Date) => void;
3
+ setCalendarDate: (date: Date | undefined) => void;
4
4
  };
5
5
  export default useCalendarDate;
@@ -12,7 +12,7 @@ export interface CarouselProps extends WithAsProps {
12
12
  /** Callback fired when the active item changes */
13
13
  onSelect?: (index: number, event: React.ChangeEvent<HTMLInputElement>) => void;
14
14
  /** Callback fired when a slide transition starts */
15
- onSlideStart?: (index: number, event: React.ChangeEvent<HTMLInputElement>) => void;
15
+ onSlideStart?: (index: number, event?: React.ChangeEvent<HTMLInputElement>) => void;
16
16
  /** Callback fired when a slide transition ends */
17
17
  onSlideEnd?: (index: number, event: React.TransitionEvent<HTMLDivElement>) => void;
18
18
  }
@@ -59,7 +59,7 @@ var Carousel = /*#__PURE__*/React.forwardRef(function (props, ref) {
59
59
 
60
60
  var handleChange = function handleChange(event) {
61
61
  var activeIndex = +event.target.value;
62
- handleSlide(activeIndex);
62
+ handleSlide(activeIndex, event);
63
63
  onSelect === null || onSelect === void 0 ? void 0 : onSelect(activeIndex, event);
64
64
  };
65
65
 
@@ -3,7 +3,7 @@ import { PickerLocale } from '../locales';
3
3
  import { PickerComponent } from '../Picker';
4
4
  import { ItemDataType, FormControlPickerProps } from '../@types/common';
5
5
  export declare type ValueType = number | string;
6
- export interface CascaderProps<T = ValueType> extends FormControlPickerProps<T, PickerLocale, ItemDataType> {
6
+ export interface CascaderProps<T = ValueType> extends FormControlPickerProps<T | null, PickerLocale, ItemDataType> {
7
7
  /** Sets the width of the menu */
8
8
  menuWidth?: number;
9
9
  /** Sets the height of the menu */
@@ -74,10 +74,10 @@ var Cascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
74
74
  flattenData = _useState2[0],
75
75
  setFlattenData = _useState2[1];
76
76
 
77
- var triggerRef = useRef();
78
- var overlayRef = useRef();
79
- var targetRef = useRef();
80
- var searchInputRef = useRef();
77
+ var triggerRef = useRef(null);
78
+ var overlayRef = useRef(null);
79
+ var targetRef = useRef(null);
80
+ var searchInputRef = useRef(null);
81
81
 
82
82
  var _useControlled = useControlled(valueProp, defaultValue),
83
83
  value = _useControlled[0],
@@ -181,12 +181,12 @@ var Cascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
181
181
  setSearchKeyword(value);
182
182
  onSearch === null || onSearch === void 0 ? void 0 : onSearch(value, event);
183
183
 
184
- if (items !== null && items !== void 0 && items[0]) {
185
- setFocusItemValue(items === null || items === void 0 ? void 0 : items[0]);
184
+ if (items.length > 0) {
185
+ setFocusItemValue(items[0][valueKey]);
186
186
  setLayer(0);
187
187
  setKeys([]);
188
188
  }
189
- }, [getSearchResult, onSearch, setFocusItemValue, setKeys, setLayer]);
189
+ }, [getSearchResult, onSearch, setFocusItemValue, setKeys, setLayer, valueKey]);
190
190
  var handleEntered = useCallback(function () {
191
191
  onOpen === null || onOpen === void 0 ? void 0 : onOpen();
192
192
  setActive(true);
@@ -227,7 +227,7 @@ var Cascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
227
227
  }
228
228
 
229
229
  if (!shallowEqual(value, focusItemValue)) {
230
- onChange === null || onChange === void 0 ? void 0 : onChange(focusItemValue, event);
230
+ onChange === null || onChange === void 0 ? void 0 : onChange(focusItemValue !== null && focusItemValue !== void 0 ? focusItemValue : null, event);
231
231
  }
232
232
 
233
233
  handleClose();
@@ -309,7 +309,7 @@ var Cascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
309
309
  setValue(nextValue);
310
310
  setValueToPaths(nodes);
311
311
  enforceUpdate(nextValue);
312
- onSelect === null || onSelect === void 0 ? void 0 : onSelect(node, null, event);
312
+ onSelect === null || onSelect === void 0 ? void 0 : onSelect(node, nodes, event);
313
313
  onChange === null || onChange === void 0 ? void 0 : onChange(nextValue, event);
314
314
  };
315
315
 
@@ -486,7 +486,7 @@ var Cascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
486
486
  hasValue: hasValue,
487
487
  active: active,
488
488
  placement: placement,
489
- inputValue: value
489
+ inputValue: value !== null && value !== void 0 ? value : ''
490
490
  }), selectedElement || (locale === null || locale === void 0 ? void 0 : locale.placeholder))));
491
491
  });
492
492
  Cascader.displayName = 'Cascader';
@@ -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;
@@ -77,10 +77,10 @@ var CheckPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
77
77
  onOpen = props.onOpen,
78
78
  rest = _objectWithoutPropertiesLoose(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"]);
79
79
 
80
- var triggerRef = useRef();
81
- var targetRef = useRef();
82
- var overlayRef = useRef();
83
- var searchInputRef = useRef();
80
+ var triggerRef = useRef(null);
81
+ var targetRef = useRef(null);
82
+ var overlayRef = useRef(null);
83
+ var searchInputRef = useRef(null);
84
84
 
85
85
  var _useCustom = useCustom('Picker', overrideLocale),
86
86
  locale = _useCustom.locale;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,64 @@
1
+ import React from 'react';
2
+ import { expectType } from 'ts-expect';
3
+ import CheckPicker from '../CheckPicker'; // Infer value and onChange types from data
4
+
5
+ var numberValuedData = [{
6
+ label: 'One',
7
+ value: 1
8
+ }];
9
+
10
+ /*#__PURE__*/
11
+ React.createElement(CheckPicker, {
12
+ data: numberValuedData,
13
+ value: [1]
14
+ }); // @ts-expect-error should not accept single value
15
+
16
+ /*#__PURE__*/
17
+ React.createElement(CheckPicker, {
18
+ data: numberValuedData,
19
+ value: 1
20
+ }); // @ts-expect-error should not accept string value
21
+
22
+ /*#__PURE__*/
23
+ React.createElement(CheckPicker, {
24
+ data: numberValuedData,
25
+ value: ['1']
26
+ });
27
+
28
+ /*#__PURE__*/
29
+ React.createElement(CheckPicker, {
30
+ data: numberValuedData,
31
+ onChange: function onChange(newValue) {
32
+ expectType(newValue);
33
+ }
34
+ });
35
+ var stringValuedData = [{
36
+ label: 'One',
37
+ value: 'One'
38
+ }];
39
+
40
+ /*#__PURE__*/
41
+ React.createElement(CheckPicker, {
42
+ data: stringValuedData,
43
+ value: ['1']
44
+ }); // @ts-expect-error should not accept single value
45
+
46
+ /*#__PURE__*/
47
+ React.createElement(CheckPicker, {
48
+ data: numberValuedData,
49
+ value: "1"
50
+ }); // @ts-expect-error should not accept number value
51
+
52
+ /*#__PURE__*/
53
+ React.createElement(CheckPicker, {
54
+ data: stringValuedData,
55
+ value: [1]
56
+ });
57
+
58
+ /*#__PURE__*/
59
+ React.createElement(CheckPicker, {
60
+ data: stringValuedData,
61
+ onChange: function onChange(newValue) {
62
+ expectType(newValue);
63
+ }
64
+ });
@@ -1,14 +1,15 @@
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 CheckTreePicker from '../CheckTreePicker';
4
4
  import TreeContext from '../Tree/TreeContext';
5
5
  var CheckTree = /*#__PURE__*/React.forwardRef(function (props, ref) {
6
- var dragNodeRef = useRef();
6
+ var contextValue = useMemo(function () {
7
+ return {
8
+ inline: true
9
+ };
10
+ }, []);
7
11
  return /*#__PURE__*/React.createElement(TreeContext.Provider, {
8
- value: {
9
- inline: true,
10
- dragNodeRef: dragNodeRef
11
- }
12
+ value: contextValue
12
13
  }, /*#__PURE__*/React.createElement(CheckTreePicker, _extends({
13
14
  ref: ref
14
15
  }, 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;
@@ -5,10 +5,9 @@ import PropTypes from 'prop-types';
5
5
  import ArrowDown from '@rsuite/icons/legacy/ArrowDown';
6
6
  import Spinner from '@rsuite/icons/legacy/Spinner';
7
7
  import DropdownMenuCheckItem from '../Picker/DropdownMenuCheckItem';
8
- import { useClassNames, CHECK_STATE, TREE_NODE_PADDING, TREE_NODE_ROOT_PADDING, reactToString } from '../utils';
8
+ import { getTreeNodeIndent } from '../utils/treeUtils';
9
+ import { useClassNames, CHECK_STATE, reactToString } from '../utils';
9
10
  var CheckTreeNode = /*#__PURE__*/forwardRef(function (_ref, ref) {
10
- var _extends2;
11
-
12
11
  var _ref$as = _ref.as,
13
12
  Component = _ref$as === void 0 ? 'div' : _ref$as,
14
13
  style = _ref.style,
@@ -133,11 +132,9 @@ var CheckTreeNode = /*#__PURE__*/forwardRef(function (_ref, ref) {
133
132
  'all-uncheckable': !!allUncheckable,
134
133
  'text-muted': disabled,
135
134
  focus: focus
136
- })); // layer start from 1
137
-
138
- var padding = (layer - 1) * TREE_NODE_PADDING + TREE_NODE_ROOT_PADDING;
135
+ }));
139
136
 
140
- var styles = _extends({}, style, (_extends2 = {}, _extends2[rtl ? 'paddingRight' : 'paddingLeft'] = padding, _extends2));
137
+ var styles = _extends({}, style, getTreeNodeIndent(rtl, layer - 1));
141
138
 
142
139
  return visible ? /*#__PURE__*/React.createElement(Component, _extends({
143
140
  role: "treeitem",
@@ -12,6 +12,7 @@ import classNames from 'classnames';
12
12
  import { List, AutoSizer } from '../Picker/VirtualizedList';
13
13
  import CheckTreeNode from './CheckTreeNode';
14
14
  import TreeContext from '../Tree/TreeContext';
15
+ import { getTreeNodeIndent } from '../utils/treeUtils';
15
16
  import { createChainedFunction, useCustom, useClassNames, useControlled, KEY_VALUES, mergeRefs, shallowEqual } from '../utils';
16
17
  import { PickerToggle, onMenuKeyDown as _onMenuKeyDown, PickerOverlay, SearchBar, SelectedElement, PickerToggleTrigger, createConcatChildrenFunction, usePickerClassName, usePublicMethods, pickTriggerPropKeys, omitTriggerPropKeys, listPickerPropTypes, useToggleKeyDownEvent } from '../Picker';
17
18
  import { isEveryChildChecked, isSomeNodeHasChildren, isAllSiblingNodeUncheckable, isEveryFirstLevelNodeUncheckable, getFormattedTree, getDisabledState, getCheckTreePickerDefaultValue, getSelectedItems, isNodeUncheckable } from './utils';
@@ -33,6 +34,7 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
33
34
  searchBy = props.searchBy,
34
35
  toggleAs = props.toggleAs,
35
36
  searchKeyword = props.searchKeyword,
37
+ showIndentLine = props.showIndentLine,
36
38
  overrideLocale = props.locale,
37
39
  _props$cascade = props.cascade,
38
40
  cascade = _props$cascade === void 0 ? true : _props$cascade,
@@ -86,17 +88,17 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
86
88
  renderValue = props.renderValue,
87
89
  renderTreeIcon = props.renderTreeIcon,
88
90
  renderTreeNode = props.renderTreeNode,
89
- rest = _objectWithoutPropertiesLoose(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"]);
91
+ rest = _objectWithoutPropertiesLoose(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"]);
90
92
 
91
93
  var _useContext = useContext(TreeContext),
92
94
  inline = _useContext.inline;
93
95
 
94
- var triggerRef = useRef();
95
- var targetRef = useRef();
96
- var listRef = useRef();
97
- var overlayRef = useRef();
98
- var searchInputRef = useRef();
99
- var treeViewRef = useRef();
96
+ var triggerRef = useRef(null);
97
+ var targetRef = useRef(null);
98
+ var listRef = useRef(null);
99
+ var overlayRef = useRef(null);
100
+ var searchInputRef = useRef(null);
101
+ var treeViewRef = useRef(null);
100
102
 
101
103
  var _useCustom = useCustom('Picker', overrideLocale),
102
104
  rtl = _useCustom.rtl,
@@ -192,25 +194,21 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
192
194
 
193
195
 
194
196
  var getFormattedNodes = useCallback(function (render) {
195
- var formattedNodes = [];
196
-
197
197
  if (virtualized) {
198
- formattedNodes = formatVirtualizedTreeData(flattenNodes, filteredData, expandItemValues, {
198
+ return formatVirtualizedTreeData(flattenNodes, filteredData, expandItemValues, {
199
199
  cascade: cascade,
200
200
  searchKeyword: searchKeywordState
201
201
  }).filter(function (item) {
202
202
  return item.visible;
203
203
  });
204
- } else {
205
- formattedNodes = getFormattedTree(filteredData, flattenNodes, {
206
- childrenKey: childrenKey,
207
- cascade: cascade
208
- }).map(function (node) {
209
- return render === null || render === void 0 ? void 0 : render(node, 1);
210
- });
211
204
  }
212
205
 
213
- return formattedNodes;
206
+ return getFormattedTree(filteredData, flattenNodes, {
207
+ childrenKey: childrenKey,
208
+ cascade: cascade
209
+ }).map(function (node) {
210
+ return render === null || render === void 0 ? void 0 : render(node, 1);
211
+ });
214
212
  }, [searchKeywordState, expandItemValues, filteredData, flattenNodes, formatVirtualizedTreeData, virtualized, childrenKey, cascade]);
215
213
 
216
214
  var getTreeNodeProps = function getTreeNodeProps(node, layer) {
@@ -406,7 +404,7 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
406
404
  }
407
405
  }, [childrenKey, expandItemValues, getChildren, loadChildren, onExpand, setExpandItemValues, valueKey]);
408
406
  usePublicMethods(ref, {
409
- rootRef: inline ? treeViewRef : null,
407
+ rootRef: inline ? treeViewRef : undefined,
410
408
  triggerRef: triggerRef,
411
409
  overlayRef: overlayRef,
412
410
  targetRef: targetRef,
@@ -461,11 +459,13 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
461
459
  }
462
460
  }, [searchKeywordState, checkTreePrefix, expandItemValues, filteredData, focusItemValue, treeNodesRefs, childrenKey, valueKey, disabledItemValues]);
463
461
  var handleLeftArrow = useCallback(function () {
462
+ if (_isNil(focusItemValue)) return;
464
463
  var focusItem = getActiveItem(focusItemValue, flattenNodes, valueKey);
465
464
  leftArrowHandler({
466
465
  focusItem: focusItem,
467
466
  expand: expandItemValues.includes(focusItem === null || focusItem === void 0 ? void 0 : focusItem[valueKey]),
468
467
  onExpand: handleExpand,
468
+ childrenKey: childrenKey,
469
469
  onFocusItem: function onFocusItem() {
470
470
  var _focusItem$parent, _focusItem$parent2;
471
471
 
@@ -473,8 +473,9 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
473
473
  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'));
474
474
  }
475
475
  });
476
- }, [checkTreePrefix, expandItemValues, flattenNodes, focusItemValue, handleExpand, treeNodesRefs, valueKey]);
476
+ }, [checkTreePrefix, expandItemValues, flattenNodes, focusItemValue, handleExpand, treeNodesRefs, valueKey, childrenKey]);
477
477
  var handleRightArrow = useCallback(function () {
478
+ if (_isNil(focusItemValue)) return;
478
479
  var focusItem = getActiveItem(focusItemValue, flattenNodes, valueKey);
479
480
  rightArrowHandler({
480
481
  focusItem: focusItem,
@@ -487,6 +488,7 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
487
488
  });
488
489
  }, [focusItemValue, flattenNodes, valueKey, expandItemValues, childrenKey, handleExpand, handleFocusItem]);
489
490
  var selectActiveItem = useCallback(function (event) {
491
+ if (_isNil(focusItemValue)) return;
490
492
  var activeItem = getActiveItem(focusItemValue, flattenNodes, valueKey);
491
493
 
492
494
  if (!isNodeUncheckable(activeItem, {
@@ -569,19 +571,22 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
569
571
  key: node[valueKey]
570
572
  }, /*#__PURE__*/React.createElement(CheckTreeNode, _extends({}, nodeProps, {
571
573
  ref: function ref(_ref) {
572
- return saveTreeNodeRef(refKey, _ref);
574
+ return saveTreeNodeRef(_ref, refKey);
573
575
  }
574
576
  })), /*#__PURE__*/React.createElement("div", {
575
577
  className: checkTreePrefix('children')
576
578
  }, nodes.map(function (child) {
577
579
  return renderNode(child, layer);
580
+ }), showIndentLine && /*#__PURE__*/React.createElement("span", {
581
+ className: checkTreePrefix('indent-line'),
582
+ style: getTreeNodeIndent(rtl, layer - 1, true)
578
583
  })));
579
584
  }
580
585
 
581
586
  return /*#__PURE__*/React.createElement(CheckTreeNode, _extends({
582
587
  key: node[valueKey],
583
588
  ref: function ref(_ref2) {
584
- return saveTreeNodeRef(refKey, _ref2);
589
+ return saveTreeNodeRef(_ref2, refKey);
585
590
  }
586
591
  }, nodeProps));
587
592
  };
@@ -607,7 +612,7 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
607
612
  style: style,
608
613
  key: key,
609
614
  ref: function ref(_ref4) {
610
- return saveTreeNodeRef(refKey, _ref4);
615
+ return saveTreeNodeRef(_ref4, refKey);
611
616
  }
612
617
  }, nodeProps));
613
618
  };