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
@@ -41,14 +41,17 @@ function disclosureReducer(state, action) {
41
41
  return state;
42
42
  }
43
43
 
44
- function Disclosure(props) {
44
+ var Disclosure = /*#__PURE__*/_react.default.memo(function (props) {
45
45
  var children = props.children,
46
46
  openProp = props.open,
47
47
  _props$defaultOpen = props.defaultOpen,
48
48
  defaultOpen = _props$defaultOpen === void 0 ? false : _props$defaultOpen,
49
49
  _props$hideOnClickOut = props.hideOnClickOutside,
50
50
  hideOnClickOutside = _props$hideOnClickOut === void 0 ? false : _props$hideOnClickOut,
51
- onToggle = props.onToggle;
51
+ onToggle = props.onToggle,
52
+ _props$trigger = props.trigger,
53
+ trigger = _props$trigger === void 0 ? ['click'] : _props$trigger;
54
+ var parentDisclosure = (0, _react.useContext)(_DisclosureContext.default);
52
55
 
53
56
  var _useReducer = (0, _react.useReducer)(disclosureReducer, (0, _extends2.default)({}, initialDisclosureState, {
54
57
  open: defaultOpen
@@ -56,12 +59,14 @@ function Disclosure(props) {
56
59
  openState = _useReducer[0].open,
57
60
  dispatch = _useReducer[1];
58
61
 
59
- var containerElementRef = (0, _react.useRef)();
62
+ var containerElementRef = (0, _react.useRef)(null);
60
63
  var open = openProp !== null && openProp !== void 0 ? openProp : openState;
61
64
  (0, _useClickOutside.default)({
62
65
  enabled: hideOnClickOutside,
63
66
  isOutside: function isOutside(event) {
64
- return !containerElementRef.current.contains(event.target);
67
+ var _containerElementRef$;
68
+
69
+ return !((_containerElementRef$ = containerElementRef.current) !== null && _containerElementRef$ !== void 0 && _containerElementRef$.contains(event.target));
65
70
  },
66
71
  handle: function handle() {
67
72
  return dispatch({
@@ -69,19 +74,56 @@ function Disclosure(props) {
69
74
  });
70
75
  }
71
76
  });
72
- var context = (0, _react.useMemo)(function () {
77
+ var onMouseOver = (0, _react.useCallback)(function (event) {
78
+ if (!open) {
79
+ dispatch({
80
+ type: _DisclosureContext.DisclosureActionTypes.Show
81
+ });
82
+ onToggle === null || onToggle === void 0 ? void 0 : onToggle(true, event);
83
+ }
84
+ }, [open, dispatch, onToggle]);
85
+ var onMouseOut = (0, _react.useCallback)(function (event) {
86
+ if (open) {
87
+ dispatch({
88
+ type: _DisclosureContext.DisclosureActionTypes.Hide
89
+ });
90
+ onToggle === null || onToggle === void 0 ? void 0 : onToggle(false, event);
91
+ }
92
+ }, [open, dispatch, onToggle]);
93
+ var contextValue = (0, _react.useMemo)(function () {
94
+ var cascadeDispatch = function cascadeDispatch(action) {
95
+ var result = dispatch(action);
96
+
97
+ if ('cascade' in action) {
98
+ parentDisclosure === null || parentDisclosure === void 0 ? void 0 : parentDisclosure[1](action);
99
+ }
100
+
101
+ return result;
102
+ };
103
+
73
104
  return [{
74
105
  open: open
75
- }, dispatch, {
76
- onToggle: onToggle
106
+ }, cascadeDispatch, {
107
+ onToggle: onToggle,
108
+ trigger: trigger
77
109
  }];
78
- }, [open, dispatch, onToggle]);
110
+ }, [parentDisclosure, open, dispatch, onToggle, trigger]);
111
+ var renderProps = (0, _react.useMemo)(function () {
112
+ var renderProps = {
113
+ open: open
114
+ };
115
+
116
+ if (trigger.includes('mouseover')) {
117
+ renderProps.onMouseOver = onMouseOver;
118
+ renderProps.onMouseOut = onMouseOut;
119
+ }
120
+
121
+ return renderProps;
122
+ }, [open, trigger, onMouseOver, onMouseOut]);
79
123
  return /*#__PURE__*/_react.default.createElement(_DisclosureContext.default.Provider, {
80
- value: context
81
- }, children({
82
- open: open
83
- }, containerElementRef));
84
- }
124
+ value: contextValue
125
+ }, children(renderProps, containerElementRef));
126
+ });
85
127
 
86
128
  Disclosure.Button = _DisclosureButton.default;
87
129
  Disclosure.Content = _DisclosureContent.default;
@@ -3,9 +3,9 @@ export interface DisclosureButtonRenderProps {
3
3
  open: boolean;
4
4
  }
5
5
  export interface DisclosureButtonProps {
6
- children: (props: React.ButtonHTMLAttributes<HTMLButtonElement> & DisclosureButtonRenderProps, ref: React.Ref<HTMLButtonElement>) => React.ReactElement<React.HTMLAttributes<HTMLButtonElement>>;
6
+ children: (props: React.HTMLAttributes<HTMLElement> & DisclosureButtonRenderProps, ref: React.Ref<HTMLElement>) => React.ReactElement<React.HTMLAttributes<HTMLElement>>;
7
7
  }
8
- declare function DisclosureButton(props: DisclosureButtonProps): React.ReactElement<React.HTMLAttributes<HTMLButtonElement>, string | React.JSXElementConstructor<any>>;
8
+ declare function DisclosureButton(props: DisclosureButtonProps): React.ReactElement<React.HTMLAttributes<HTMLElement>, string | React.JSXElementConstructor<any>>;
9
9
  declare namespace DisclosureButton {
10
10
  var displayName: string;
11
11
  }
@@ -1,24 +1,26 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
5
  exports.__esModule = true;
6
6
  exports.default = void 0;
7
7
 
8
8
  var _react = require("react");
9
9
 
10
- var _DisclosureContext = _interopRequireWildcard(require("./DisclosureContext"));
10
+ var _DisclosureContext = require("./DisclosureContext");
11
11
 
12
12
  var _utils = require("../utils");
13
13
 
14
+ var _useDisclosureContext2 = _interopRequireDefault(require("./useDisclosureContext"));
15
+
14
16
  function DisclosureButton(props) {
15
17
  var children = props.children;
16
- var buttonRef = (0, _react.useRef)();
18
+ var buttonRef = (0, _react.useRef)(null);
17
19
 
18
- var _useContext = (0, _react.useContext)(_DisclosureContext.default),
19
- open = _useContext[0].open,
20
- dispatch = _useContext[1],
21
- onToggle = _useContext[2].onToggle;
20
+ var _useDisclosureContext = (0, _useDisclosureContext2.default)(DisclosureButton.displayName),
21
+ open = _useDisclosureContext[0].open,
22
+ dispatch = _useDisclosureContext[1],
23
+ onToggle = _useDisclosureContext[2].onToggle;
22
24
 
23
25
  var toggle = (0, _react.useCallback)(function (event) {
24
26
  if (!open) {
@@ -7,15 +7,13 @@ exports.default = void 0;
7
7
 
8
8
  var _react = require("react");
9
9
 
10
- var _DisclosureContext = _interopRequireDefault(require("./DisclosureContext"));
10
+ var _useDisclosureContext = _interopRequireDefault(require("./useDisclosureContext"));
11
11
 
12
12
  function DisclosureContent(props) {
13
13
  var children = props.children;
14
- var elementRef = (0, _react.useRef)();
15
-
16
- var _useContext = (0, _react.useContext)(_DisclosureContext.default),
17
- open = _useContext[0].open;
18
-
14
+ var elementRef = (0, _react.useRef)(null);
15
+ var disclosure = (0, _useDisclosureContext.default)(DisclosureContent.displayName);
16
+ var open = disclosure[0].open;
19
17
  return children({
20
18
  open: open
21
19
  }, elementRef);
@@ -1,4 +1,5 @@
1
1
  import React, { Dispatch } from 'react';
2
+ import type { DisclosureTrigger } from './Disclosure';
2
3
  export interface DisclosureState {
3
4
  open: boolean;
4
5
  }
@@ -7,14 +8,18 @@ export declare enum DisclosureActionTypes {
7
8
  Hide = 1
8
9
  }
9
10
  export declare type DisclosureAction = {
10
- type: DisclosureActionTypes;
11
+ type: DisclosureActionTypes.Show;
12
+ } | {
13
+ type: DisclosureActionTypes.Hide;
14
+ cascade?: boolean;
11
15
  };
12
16
  export declare type DisclosureContextProps = [
13
17
  DisclosureState,
14
18
  Dispatch<DisclosureAction>,
15
19
  {
16
- onToggle: (open: boolean, event?: React.SyntheticEvent) => void;
20
+ trigger: DisclosureTrigger[];
21
+ onToggle?: (open: boolean, event: React.SyntheticEvent) => void;
17
22
  }
18
23
  ];
19
- declare const DisclosureContext: React.Context<DisclosureContextProps>;
24
+ declare const DisclosureContext: React.Context<DisclosureContextProps | null>;
20
25
  export default DisclosureContext;
@@ -0,0 +1,2 @@
1
+ import { DisclosureContextProps } from './DisclosureContext';
2
+ export default function useDisclosureContext(component: string): DisclosureContextProps;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ exports.__esModule = true;
6
+ exports.default = useDisclosureContext;
7
+
8
+ var _react = require("react");
9
+
10
+ var _DisclosureContext = _interopRequireDefault(require("./DisclosureContext"));
11
+
12
+ function useDisclosureContext(component) {
13
+ var context = (0, _react.useContext)(_DisclosureContext.default);
14
+
15
+ if (!context) {
16
+ throw new Error("<" + component + "> component must be rendered within a <Disclosure>");
17
+ }
18
+
19
+ return context;
20
+ }
@@ -45,7 +45,7 @@ export interface DropdownProps<T = any> extends WithAsProps, Omit<React.HTMLAttr
45
45
  /** Callback function for menu state switching */
46
46
  onToggle?: (open?: boolean) => void;
47
47
  /** Selected callback function */
48
- onSelect?: (eventKey: T, event: React.SyntheticEvent) => void;
48
+ onSelect?: (eventKey: T | undefined, event: React.SyntheticEvent) => void;
49
49
  }
50
50
  export interface DropdownComponent extends RsRefForwardingComponent<'div', DropdownProps> {
51
51
  Item: typeof DropdownItem;
@@ -41,7 +41,7 @@ var _MenuItem = _interopRequireDefault(require("../Menu/MenuItem"));
41
41
 
42
42
  var _kebabCase = _interopRequireDefault(require("lodash/kebabCase"));
43
43
 
44
- var _Navbar = require("../Navbar/Navbar");
44
+ var _Navbar = require("../Navbar");
45
45
 
46
46
  var _Disclosure = _interopRequireDefault(require("../Disclosure/Disclosure"));
47
47
 
@@ -2,9 +2,9 @@ import React, { Dispatch } from 'react';
2
2
  import { DropdownAction } from './DropdownState';
3
3
  export interface DropdownContextProps {
4
4
  activeKey?: string;
5
- onSelect: (eventKey: string, event: React.SyntheticEvent) => void;
5
+ onSelect?: (eventKey: string | undefined, event: React.SyntheticEvent) => void;
6
6
  hasSelectedItem?: boolean;
7
7
  dispatch?: Dispatch<DropdownAction>;
8
8
  }
9
- declare const DropdownContext: React.Context<DropdownContextProps>;
9
+ declare const DropdownContext: React.Context<DropdownContextProps | null>;
10
10
  export default DropdownContext;
@@ -33,8 +33,6 @@ var _SidenavDropdownItem = _interopRequireDefault(require("../Sidenav/SidenavDro
33
33
 
34
34
  var _DisclosureContext = _interopRequireWildcard(require("../Disclosure/DisclosureContext"));
35
35
 
36
- var _SafeAnchor = _interopRequireDefault(require("../SafeAnchor"));
37
-
38
36
  var _NavContext = _interopRequireDefault(require("../Nav/NavContext"));
39
37
 
40
38
  var _useInternalId = _interopRequireDefault(require("../utils/useInternalId"));
@@ -86,8 +84,9 @@ var DropdownItem = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
86
84
  dispatchDisclosure = _ref[1];
87
85
 
88
86
  var handleClickNavbarDropdownItem = (0, _react.useCallback)(function (event) {
89
- dispatchDisclosure({
90
- type: _DisclosureContext.DisclosureActionTypes.Hide
87
+ dispatchDisclosure === null || dispatchDisclosure === void 0 ? void 0 : dispatchDisclosure({
88
+ type: _DisclosureContext.DisclosureActionTypes.Hide,
89
+ cascade: true
91
90
  });
92
91
  handleSelectItem === null || handleSelectItem === void 0 ? void 0 : handleSelectItem(event);
93
92
  }, [dispatchDisclosure, handleSelectItem]);
@@ -154,16 +153,16 @@ var DropdownItem = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
154
153
  dataAttributes['data-event-key-type'] = typeof eventKey;
155
154
  }
156
155
 
157
- return /*#__PURE__*/_react.default.createElement("li", null, /*#__PURE__*/_react.default.createElement(_SafeAnchor.default, (0, _extends2.default)({
156
+ return renderDropdownItem((0, _extends2.default)({
158
157
  ref: ref,
159
158
  className: classes,
160
- "aria-current": selected || undefined
159
+ 'aria-current': selected || undefined
161
160
  }, dataAttributes, restProps, {
162
- as: Component,
163
- onClick: (0, _utils.createChainedFunction)(handleClickNavbarDropdownItem, restProps.onClick)
164
- }), icon && /*#__PURE__*/_react.default.cloneElement(icon, {
165
- className: prefix('menu-icon')
166
- }), children));
161
+ onClick: (0, _utils.createChainedFunction)(handleClickNavbarDropdownItem, restProps.onClick),
162
+ children: /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, icon && /*#__PURE__*/_react.default.cloneElement(icon, {
163
+ className: prefix('menu-icon')
164
+ }), children)
165
+ }));
167
166
  }
168
167
 
169
168
  return /*#__PURE__*/_react.default.createElement(_MenuItem.default, {
@@ -19,8 +19,8 @@ export interface DropdownMenuProps<T = string> extends StandardProps {
19
19
  disabled?: boolean;
20
20
  activeKey?: T;
21
21
  trigger?: 'hover' | 'click';
22
- onSelect?: (eventKey: T, event: React.SyntheticEvent) => void;
23
- onToggle?: (eventKey: T, event: React.SyntheticEvent) => void;
22
+ onSelect?: (eventKey: T | undefined, event: React.SyntheticEvent) => void;
23
+ onToggle?: (eventKey: T | undefined, event: React.SyntheticEvent) => void;
24
24
  }
25
25
  /**
26
26
  * The <Dropdown.Menu> API
@@ -40,5 +40,5 @@ export interface DropdownMenuProps<T = string> extends StandardProps {
40
40
  * </Dropdown.Menu>
41
41
  * </Dropdown>
42
42
  */
43
- declare const DropdownMenu: React.ForwardRefExoticComponent<DropdownMenuProps<string> & Omit<React.HTMLAttributes<HTMLUListElement>, "title" | "onSelect"> & React.RefAttributes<unknown>>;
43
+ declare const DropdownMenu: React.ForwardRefExoticComponent<DropdownMenuProps<string> & Omit<React.HTMLAttributes<HTMLUListElement>, "title" | "onSelect"> & React.RefAttributes<HTMLElement>>;
44
44
  export default DropdownMenu;
@@ -35,11 +35,15 @@ var _useCustom2 = _interopRequireDefault(require("../utils/useCustom"));
35
35
 
36
36
  var _DropdownContext = _interopRequireDefault(require("./DropdownContext"));
37
37
 
38
+ var _Navbar = require("../Navbar");
39
+
38
40
  var _Menubar = _interopRequireDefault(require("../Menu/Menubar"));
39
41
 
40
42
  var _SidenavDropdownMenu = _interopRequireDefault(require("../Sidenav/SidenavDropdownMenu"));
41
43
 
42
- var _templateObject, _templateObject2;
44
+ var _Disclosure = _interopRequireDefault(require("../Disclosure"));
45
+
46
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4;
43
47
 
44
48
  /**
45
49
  * The <Dropdown.Menu> API
@@ -71,6 +75,7 @@ var DropdownMenu = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
71
75
  rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["onToggle", "eventKey", "title", "activeKey", "onSelect", "classPrefix", "children"]);
72
76
  var dropdown = (0, _react.useContext)(_DropdownContext.default);
73
77
  var sidenav = (0, _react.useContext)(_Sidenav.SidenavContext);
78
+ var withinNavbar = Boolean((0, _react.useContext)(_Navbar.NavbarContext));
74
79
 
75
80
  var _useCustom = (0, _useCustom2.default)('DropdownMenu'),
76
81
  rtl = _useCustom.rtl;
@@ -91,17 +96,20 @@ var DropdownMenu = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
91
96
  var _useClassNames3 = (0, _utils.useClassNames)('dropdown-item'),
92
97
  mergeItemClassNames = _useClassNames3.merge,
93
98
  withItemClassPrefix = _useClassNames3.withClassPrefix,
94
- prefixItemClassName = _useClassNames3.prefix; // <Dropdown.Menu> is used outside of <Dropdown>
99
+ prefixItemClassName = _useClassNames3.prefix;
100
+
101
+ var contextValue = (0, _react.useMemo)(function () {
102
+ return {
103
+ activeKey: activeKey,
104
+ onSelect: onSelect
105
+ };
106
+ }, [activeKey, onSelect]); // <Dropdown.Menu> is used outside of <Dropdown>
95
107
  // renders a vertical `menubar`
96
108
 
97
-
98
109
  if (!dropdown) {
99
110
  var classes = merge(props.className, withClassPrefix());
100
111
  return /*#__PURE__*/_react.default.createElement(_DropdownContext.default.Provider, {
101
- value: {
102
- activeKey: activeKey,
103
- onSelect: onSelect
104
- }
112
+ value: contextValue
105
113
  }, /*#__PURE__*/_react.default.createElement(_Menubar.default, {
106
114
  vertical: true,
107
115
  onActivateItem: function onActivateItem(event) {
@@ -132,19 +140,69 @@ var DropdownMenu = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
132
140
  disabled = _omit.disabled,
133
141
  menuProps = (0, _objectWithoutPropertiesLoose2.default)(_omit, ["icon", "className", "disabled"]);
134
142
 
135
- var Icon = rtl ? _AngleLeft.default : _AngleRight.default;
143
+ var Icon = rtl ? _AngleLeft.default : _AngleRight.default; // Renders a disclosure when used within <Navbar>
144
+
145
+ if (withinNavbar) {
146
+ return /*#__PURE__*/_react.default.createElement(_Disclosure.default, {
147
+ hideOnClickOutside: true,
148
+ trigger: ['click', 'mouseover']
149
+ }, function (_ref, containerRef) {
150
+ var open = _ref.open,
151
+ props = (0, _objectWithoutPropertiesLoose2.default)(_ref, ["open"]);
152
+ var classes = mergeItemClassNames(className, withItemClassPrefix({
153
+ disabled: disabled,
154
+ open: open,
155
+ submenu: true // focus: hasFocus
156
+
157
+ }));
158
+ return /*#__PURE__*/_react.default.createElement("li", (0, _extends2.default)({
159
+ ref: (0, _utils.mergeRefs)(ref, containerRef),
160
+ className: classes
161
+ }, props), /*#__PURE__*/_react.default.createElement(_Disclosure.default.Button, null, function (_ref2, buttonRef) {
162
+ var open = _ref2.open,
163
+ buttonProps = (0, _objectWithoutPropertiesLoose2.default)(_ref2, ["open"]);
164
+ var classes = mergeItemClassNames(className, prefixItemClassName("pull-" + (rtl ? 'left' : 'right')), prefixItemClassName(_templateObject || (_templateObject = (0, _taggedTemplateLiteralLoose2.default)(["toggle"]))), // prefixItemClassName`submenu`,
165
+ withItemClassPrefix({
166
+ 'with-icon': icon,
167
+ open: open,
168
+ // active: selected,
169
+ disabled: disabled // focus: active
170
+
171
+ }));
172
+ return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({
173
+ ref: (0, _utils.mergeRefs)(buttonRef, buttonRef),
174
+ className: classes,
175
+ "data-event-key": eventKey,
176
+ "data-event-key-type": typeof eventKey
177
+ }, buttonProps), icon && /*#__PURE__*/_react.default.cloneElement(icon, {
178
+ className: prefix('menu-icon')
179
+ }), title, /*#__PURE__*/_react.default.createElement(Icon, {
180
+ className: prefix(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteralLoose2.default)(["toggle-icon"])))
181
+ }));
182
+ }), /*#__PURE__*/_react.default.createElement(_Disclosure.default.Content, null, function (_ref3, elementRef) {
183
+ var open = _ref3.open;
184
+ var menuClassName = mergeMenuClassName(className, withMenuClassPrefix());
185
+ return /*#__PURE__*/_react.default.createElement("ul", (0, _extends2.default)({
186
+ ref: elementRef,
187
+ className: menuClassName,
188
+ hidden: !open
189
+ }, menuProps), children);
190
+ }));
191
+ });
192
+ }
193
+
136
194
  return /*#__PURE__*/_react.default.createElement(_Menu.default, {
137
195
  openMenuOn: ['mouseover', 'click'],
138
- renderMenuButton: function renderMenuButton(_ref, buttonRef) {
139
- var open = _ref.open,
140
- menuButtonProps = (0, _objectWithoutPropertiesLoose2.default)(_ref, ["open"]);
196
+ renderMenuButton: function renderMenuButton(_ref4, buttonRef) {
197
+ var open = _ref4.open,
198
+ menuButtonProps = (0, _objectWithoutPropertiesLoose2.default)(_ref4, ["open"]);
141
199
  return /*#__PURE__*/_react.default.createElement(_MenuItem.default, {
142
200
  disabled: disabled
143
- }, function (_ref2, menuitemRef) {
144
- var selected = _ref2.selected,
145
- active = _ref2.active,
146
- menuitem = (0, _objectWithoutPropertiesLoose2.default)(_ref2, ["selected", "active"]);
147
- var classes = mergeItemClassNames(className, prefixItemClassName("pull-" + (rtl ? 'left' : 'right')), prefixItemClassName(_templateObject || (_templateObject = (0, _taggedTemplateLiteralLoose2.default)(["toggle"]))), // prefixItemClassName`submenu`,
201
+ }, function (_ref5, menuitemRef) {
202
+ var selected = _ref5.selected,
203
+ active = _ref5.active,
204
+ menuitem = (0, _objectWithoutPropertiesLoose2.default)(_ref5, ["selected", "active"]);
205
+ var classes = mergeItemClassNames(className, prefixItemClassName("pull-" + (rtl ? 'left' : 'right')), prefixItemClassName(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteralLoose2.default)(["toggle"]))), // prefixItemClassName`submenu`,
148
206
  withItemClassPrefix({
149
207
  'with-icon': icon,
150
208
  open: open,
@@ -160,13 +218,13 @@ var DropdownMenu = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
160
218
  }, menuitem, (0, _omit2.default)(menuButtonProps, ['role'])), icon && /*#__PURE__*/_react.default.cloneElement(icon, {
161
219
  className: prefix('menu-icon')
162
220
  }), title, /*#__PURE__*/_react.default.createElement(Icon, {
163
- className: prefix(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteralLoose2.default)(["toggle-icon"])))
221
+ className: prefix(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteralLoose2.default)(["toggle-icon"])))
164
222
  }));
165
223
  });
166
224
  },
167
- renderMenuPopup: function renderMenuPopup(_ref3, popupRef) {
168
- var open = _ref3.open,
169
- popupProps = (0, _objectWithoutPropertiesLoose2.default)(_ref3, ["open"]);
225
+ renderMenuPopup: function renderMenuPopup(_ref6, popupRef) {
226
+ var open = _ref6.open,
227
+ popupProps = (0, _objectWithoutPropertiesLoose2.default)(_ref6, ["open"]);
170
228
  var menuClassName = mergeMenuClassName(className, withMenuClassPrefix());
171
229
  return /*#__PURE__*/_react.default.createElement("ul", (0, _extends2.default)({
172
230
  ref: popupRef,
@@ -175,9 +233,9 @@ var DropdownMenu = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
175
233
  }, popupProps, menuProps), children);
176
234
  },
177
235
  onToggleMenu: handleToggleSubmenu
178
- }, function (_ref4, menuContainerRef) {
179
- var open = _ref4.open,
180
- menuContainer = (0, _objectWithoutPropertiesLoose2.default)(_ref4, ["open"]);
236
+ }, function (_ref7, menuContainerRef) {
237
+ var open = _ref7.open,
238
+ menuContainer = (0, _objectWithoutPropertiesLoose2.default)(_ref7, ["open"]);
181
239
  var classes = mergeItemClassNames(className, withItemClassPrefix({
182
240
  disabled: disabled,
183
241
  open: open,
@@ -33,5 +33,5 @@ export declare type DropdownAction = {
33
33
  id: string;
34
34
  };
35
35
  };
36
- export declare function reducer(state: DropdownState, action: DropdownAction): DropdownState;
36
+ export declare function reducer(state: DropdownState | undefined, action: DropdownAction): DropdownState;
37
37
  export {};
@@ -23,6 +23,8 @@ var _useToggleCaret = _interopRequireDefault(require("../utils/useToggleCaret"))
23
23
 
24
24
  var _Sidenav = require("../Sidenav/Sidenav");
25
25
 
26
+ var _NavContext = _interopRequireDefault(require("../Nav/NavContext"));
27
+
26
28
  var DropdownToggle = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
27
29
  var _props$as = props.as,
28
30
  Component = _props$as === void 0 ? _Button.default : _props$as,
@@ -33,10 +35,14 @@ var DropdownToggle = /*#__PURE__*/_react.default.forwardRef(function (props, ref
33
35
  children = props.children,
34
36
  icon = props.icon,
35
37
  noCaret = props.noCaret,
36
- placement = props.placement,
38
+ _props$placement = props.placement,
39
+ placement = _props$placement === void 0 ? 'bottomStart' : _props$placement,
37
40
  rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "className", "classPrefix", "renderToggle", "children", "icon", "noCaret", "placement"]);
38
41
  var sidenav = (0, _react.useContext)(_Sidenav.SidenavContext);
39
42
 
43
+ var _useContext = (0, _react.useContext)(_NavContext.default),
44
+ withinNav = _useContext.withinNav;
45
+
40
46
  var _useClassNames = (0, _utils.useClassNames)(classPrefix),
41
47
  prefix = _useClassNames.prefix,
42
48
  withClassPrefix = _useClassNames.withClassPrefix,
@@ -49,7 +55,9 @@ var DropdownToggle = /*#__PURE__*/_react.default.forwardRef(function (props, ref
49
55
 
50
56
  var Caret = (0, _useToggleCaret.default)(inSidenav ? 'bottomStart' : placement);
51
57
 
52
- var toggle = /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({}, rest, {
58
+ var toggle = /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({
59
+ appearance: withinNav ? 'subtle' : undefined
60
+ }, rest, {
53
61
  ref: ref,
54
62
  className: classes
55
63
  }), icon && /*#__PURE__*/_react.default.cloneElement(icon, {
@@ -1,2 +1,2 @@
1
1
  import React from 'react';
2
- export declare function useRenderDropdownItem(Component: React.ElementType): (props: any, OverrideComponent?: React.ElementType) => JSX.Element;
2
+ export declare function useRenderDropdownItem(Component: React.ElementType): (props: any, OverrideComponent?: React.ElementType<any> | undefined) => JSX.Element;
package/cjs/Form/Form.js CHANGED
@@ -250,7 +250,7 @@ var Form = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
250
250
  setFormValue(nextFormValue);
251
251
  onChange === null || onChange === void 0 ? void 0 : onChange(nextFormValue, event);
252
252
  }, [onChange, getFormValue]);
253
- var rootRef = (0, _react.useRef)();
253
+ var rootRef = (0, _react.useRef)(null);
254
254
  var formContextValue = (0, _react.useMemo)(function () {
255
255
  return {
256
256
  model: model,
@@ -19,6 +19,6 @@ export interface FormContextValue<T = Record<string, any>, errorMsgType = any, E
19
19
  export declare const FormContext: React.Context<FormContextValue<Record<string, any>, any, {
20
20
  [x: string]: any;
21
21
  }>>;
22
- export declare const FormValueContext: React.Context<Record<string, any>>;
22
+ export declare const FormValueContext: React.Context<Record<string, any> | undefined>;
23
23
  export declare const FormPlaintextContext: React.Context<boolean>;
24
24
  export default FormContext;
@@ -32,7 +32,7 @@ export interface FormControlProps<P = any, ValueType = any> extends WithAsProps,
32
32
  interface FormControlComponent extends React.FC<FormControlProps> {
33
33
  <Accepter extends React.ElementType = typeof Input>(props: FormControlProps & {
34
34
  accepter?: Accepter;
35
- } & React.ComponentPropsWithRef<Accepter>): React.ReactElement;
35
+ } & React.ComponentPropsWithRef<Accepter>): React.ReactElement | null;
36
36
  }
37
37
  declare const FormControl: FormControlComponent;
38
38
  export default FormControl;
@@ -68,7 +68,8 @@ var FormControl = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
68
68
  disabled = _props$disabled === void 0 ? disabledContext : _props$disabled,
69
69
  onChange = props.onChange,
70
70
  onBlur = props.onBlur,
71
- rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "accepter", "classPrefix", "className", "checkAsync", "checkTrigger", "errorPlacement", "errorMessage", "name", "value", "readOnly", "plaintext", "disabled", "onChange", "onBlur"]);
71
+ defaultValue = props.defaultValue,
72
+ rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "accepter", "classPrefix", "className", "checkAsync", "checkTrigger", "errorPlacement", "errorMessage", "name", "value", "readOnly", "plaintext", "disabled", "onChange", "onBlur", "defaultValue"]);
72
73
 
73
74
  var _useContext2 = (0, _react.useContext)(_FormGroup.FormGroupContext),
74
75
  controlId = _useContext2.controlId;
@@ -118,12 +119,12 @@ var FormControl = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
118
119
  var nextFormValue = (0, _extends3.default)({}, formValue, (_extends2 = {}, _extends2[name] = value, _extends2));
119
120
 
120
121
  if (checkAsync) {
121
- return model.checkForFieldAsync(name, nextFormValue).then(function (checkResult) {
122
+ return model === null || model === void 0 ? void 0 : model.checkForFieldAsync(name, nextFormValue).then(function (checkResult) {
122
123
  return callbackEvents(checkResult);
123
124
  });
124
125
  }
125
126
 
126
- return Promise.resolve(callbackEvents(model.checkForField(name, nextFormValue)));
127
+ return Promise.resolve(callbackEvents(model === null || model === void 0 ? void 0 : model.checkForField(name, nextFormValue)));
127
128
  };
128
129
 
129
130
  var messageNode = null;
@@ -157,7 +158,7 @@ var FormControl = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
157
158
  name: name,
158
159
  onChange: handleFieldChange,
159
160
  onBlur: handleFieldBlur,
160
- defaultValue: formDefaultValue[name],
161
+ defaultValue: defaultValue !== null && defaultValue !== void 0 ? defaultValue : formDefaultValue[name],
161
162
  value: val
162
163
  })), /*#__PURE__*/_react.default.createElement(_FormErrorMessage.default, {
163
164
  id: controlId + "-error-message",
@@ -8,7 +8,7 @@ export interface FormGroupProps extends WithAsProps {
8
8
  controlId?: string;
9
9
  }
10
10
  export declare const FormGroupContext: React.Context<{
11
- controlId?: string;
11
+ controlId?: string | undefined;
12
12
  }>;
13
13
  declare const FormGroup: RsRefForwardingComponent<'div', FormGroupProps>;
14
14
  export default FormGroup;
@@ -1,5 +1,7 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
4
+
3
5
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
6
 
5
7
  exports.__esModule = true;
@@ -9,7 +11,7 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
9
11
 
10
12
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
11
13
 
12
- var _react = _interopRequireDefault(require("react"));
14
+ var _react = _interopRequireWildcard(require("react"));
13
15
 
14
16
  var _propTypes = _interopRequireDefault(require("prop-types"));
15
17
 
@@ -33,10 +35,13 @@ var FormGroup = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
33
35
  merge = _useClassNames.merge;
34
36
 
35
37
  var classes = merge(className, withClassPrefix());
36
- return /*#__PURE__*/_react.default.createElement(FormGroupContext.Provider, {
37
- value: {
38
+ var contextValue = (0, _react.useMemo)(function () {
39
+ return {
38
40
  controlId: controlId
39
- }
41
+ };
42
+ }, [controlId]);
43
+ return /*#__PURE__*/_react.default.createElement(FormGroupContext.Provider, {
44
+ value: contextValue
40
45
  }, /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({}, rest, {
41
46
  ref: ref,
42
47
  className: classes,