rsuite 5.19.1 → 5.20.0-beta.6

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 (482) hide show
  1. package/Animation/styles/animation.less +0 -0
  2. package/Animation/styles/index.less +0 -0
  3. package/Animation/styles/mixin.less +0 -0
  4. package/AutoComplete/styles/index.less +0 -0
  5. package/Avatar/styles/mixin.less +0 -0
  6. package/Badge/styles/index.less +0 -0
  7. package/Breadcrumb/styles/index.less +0 -0
  8. package/Button/styles/mixin.less +0 -0
  9. package/CHANGELOG.md +11 -0
  10. package/Cascader/styles/index.less +0 -0
  11. package/CheckPicker/styles/index.less +0 -0
  12. package/Checkbox/styles/index.less +0 -0
  13. package/Checkbox/styles/mixin.less +0 -0
  14. package/CheckboxGroup/styles/index.less +0 -0
  15. package/CloseButton/styles/index.less +0 -0
  16. package/Container/styles/index.less +0 -0
  17. package/Content/styles/index.less +0 -0
  18. package/Divider/styles/index.less +0 -0
  19. package/Drawer/styles/mixin.less +0 -0
  20. package/FlexboxGrid/styles/index.less +0 -0
  21. package/Footer/styles/index.less +0 -0
  22. package/Form/styles/index.less +0 -0
  23. package/FormControlLabel/styles/index.less +0 -0
  24. package/FormErrorMessage/styles/animation.less +0 -0
  25. package/FormErrorMessage/styles/index.less +0 -0
  26. package/FormGroup/styles/index.less +0 -0
  27. package/FormHelpText/styles/index.less +0 -0
  28. package/Grid/styles/grid-framework.less +0 -0
  29. package/Grid/styles/mixin.less +0 -0
  30. package/Header/styles/index.less +0 -0
  31. package/Input/styles/index.less +0 -0
  32. package/InputNumber/styles/index.less +0 -0
  33. package/InputNumber/styles/mixin.less +0 -0
  34. package/InputPicker/styles/index.less +0 -0
  35. package/LICENSE +0 -0
  36. package/List/styles/index.less +0 -0
  37. package/Loader/styles/index.less +0 -0
  38. package/Loader/styles/mixin.less +0 -0
  39. package/Message/styles/index.less +0 -0
  40. package/Message/styles/mixin.less +0 -0
  41. package/Modal/styles/animation.less +0 -0
  42. package/Notification/styles/index.less +0 -0
  43. package/Notification/styles/mixin.less +0 -0
  44. package/Pagination/styles/index.less +0 -0
  45. package/Pagination/styles/mixin.less +0 -0
  46. package/Pagination/styles/pagination-group.less +0 -0
  47. package/Panel/styles/index.less +0 -0
  48. package/Picker/styles/index.less +4 -0
  49. package/Placeholder/styles/index.less +0 -0
  50. package/Popover/styles/index.less +0 -0
  51. package/Popover/styles/mixins.less +0 -0
  52. package/Progress/styles/animation.less +0 -0
  53. package/Progress/styles/index.less +0 -0
  54. package/Radio/styles/mixin.less +0 -0
  55. package/RadioGroup/styles/index.less +0 -0
  56. package/Rate/styles/index.less +0 -0
  57. package/Ripple/styles/index.less +0 -0
  58. package/Ripple/styles/mixins.less +0 -0
  59. package/Row/styles/index.less +0 -0
  60. package/SelectPicker/styles/index.less +0 -0
  61. package/Sidebar/styles/index.less +0 -0
  62. package/Sidenav/styles/mixin.less +0 -0
  63. package/Steps/styles/index.less +0 -0
  64. package/Table/styles/mixin.less +0 -0
  65. package/Tag/styles/index.less +0 -0
  66. package/TagInput/styles/index.less +0 -0
  67. package/TagPicker/styles/index.less +0 -0
  68. package/Timeline/styles/index.less +0 -0
  69. package/Timeline/styles/mixin.less +0 -0
  70. package/Tooltip/styles/mixins.less +0 -0
  71. package/TreePicker/styles/mixin.less +0 -0
  72. package/Uploader/styles/mixin.less +0 -0
  73. package/Windowing/package.json +7 -0
  74. package/cjs/@types/global.d.ts +0 -0
  75. package/cjs/Affix/index.js +0 -0
  76. package/cjs/Animation/Bounce.js +0 -0
  77. package/cjs/Animation/Fade.js +0 -0
  78. package/cjs/Animation/Slide.js +0 -0
  79. package/cjs/Animation/index.js +0 -0
  80. package/cjs/Animation/utils.js +0 -0
  81. package/cjs/AutoComplete/index.js +0 -0
  82. package/cjs/Avatar/index.js +0 -0
  83. package/cjs/Badge/index.js +0 -0
  84. package/cjs/Breadcrumb/index.js +0 -0
  85. package/cjs/Button/index.js +0 -0
  86. package/cjs/ButtonToolbar/ButtonToolbar.js +0 -0
  87. package/cjs/ButtonToolbar/index.js +0 -0
  88. package/cjs/Calendar/MonthDropdown.d.ts +1 -0
  89. package/cjs/Calendar/MonthDropdown.js +27 -40
  90. package/cjs/Carousel/index.js +0 -0
  91. package/cjs/Cascader/Cascader.d.ts +2 -2
  92. package/cjs/Cascader/DropdownMenu.js +5 -2
  93. package/cjs/Cascader/index.js +0 -0
  94. package/cjs/CheckPicker/CheckPicker.d.ts +2 -2
  95. package/cjs/CheckPicker/CheckPicker.js +4 -1
  96. package/cjs/CheckPicker/index.js +0 -0
  97. package/cjs/CheckTreePicker/CheckTreePicker.js +36 -36
  98. package/cjs/CheckTreePicker/index.js +0 -0
  99. package/cjs/Checkbox/index.js +0 -0
  100. package/cjs/CloseButton/CloseButton.js +0 -0
  101. package/cjs/CloseButton/index.js +0 -0
  102. package/cjs/Col/index.js +0 -0
  103. package/cjs/Container/index.js +0 -0
  104. package/cjs/Content/Content.js +0 -0
  105. package/cjs/Content/index.js +0 -0
  106. package/cjs/CustomProvider/FormattedDate.js +0 -0
  107. package/cjs/CustomProvider/index.js +0 -0
  108. package/cjs/DatePicker/DatePicker.js +9 -0
  109. package/cjs/DatePicker/index.js +0 -0
  110. package/cjs/DateRangePicker/disabledDateUtils.js +0 -0
  111. package/cjs/Disclosure/Disclosure.d.ts +2 -2
  112. package/cjs/Disclosure/Disclosure.js +6 -6
  113. package/cjs/Disclosure/index.js +0 -0
  114. package/cjs/Divider/index.js +0 -0
  115. package/cjs/Drawer/index.js +0 -0
  116. package/cjs/Dropdown/DropdownState.js +0 -0
  117. package/cjs/Dropdown/index.js +0 -0
  118. package/cjs/FlexboxGrid/index.js +0 -0
  119. package/cjs/Footer/Footer.js +0 -0
  120. package/cjs/Footer/index.js +0 -0
  121. package/cjs/Form/Form.js +44 -38
  122. package/cjs/FormControl/index.js +0 -0
  123. package/cjs/FormControlLabel/FormControlLabel.js +0 -0
  124. package/cjs/FormControlLabel/index.js +0 -0
  125. package/cjs/FormErrorMessage/FormErrorMessage.js +0 -0
  126. package/cjs/FormErrorMessage/index.js +0 -0
  127. package/cjs/FormGroup/index.js +0 -0
  128. package/cjs/FormHelpText/index.js +0 -0
  129. package/cjs/Grid/Grid.js +0 -0
  130. package/cjs/Grid/index.js +0 -0
  131. package/cjs/Header/Header.js +0 -0
  132. package/cjs/Header/index.js +0 -0
  133. package/cjs/IconButton/index.js +0 -0
  134. package/cjs/Input/index.js +0 -0
  135. package/cjs/InputGroup/InputGroupButton.js +0 -0
  136. package/cjs/InputGroup/index.js +0 -0
  137. package/cjs/InputNumber/index.js +0 -0
  138. package/cjs/InputPicker/InputPicker.js +4 -1
  139. package/cjs/InputPicker/index.js +0 -0
  140. package/cjs/List/index.js +0 -0
  141. package/cjs/Loader/index.js +0 -0
  142. package/cjs/Menu/MenuContext.js +0 -0
  143. package/cjs/Menu/index.js +0 -0
  144. package/cjs/Message/index.js +0 -0
  145. package/cjs/Modal/ModalFooter.js +0 -0
  146. package/cjs/Modal/index.js +0 -0
  147. package/cjs/MultiCascader/DropdownMenu.js +5 -2
  148. package/cjs/MultiCascader/index.js +0 -0
  149. package/cjs/Nav/index.js +0 -0
  150. package/cjs/Navbar/NavbarBody.js +0 -0
  151. package/cjs/Navbar/NavbarBrand.js +0 -0
  152. package/cjs/Navbar/NavbarDropdownMenu.js +16 -10
  153. package/cjs/Navbar/NavbarHeader.js +0 -0
  154. package/cjs/Notification/index.js +0 -0
  155. package/cjs/Overlay/OverlayTrigger.d.ts +12 -3
  156. package/cjs/Overlay/OverlayTrigger.js +26 -4
  157. package/cjs/Overlay/index.js +0 -0
  158. package/cjs/Pagination/index.js +0 -0
  159. package/cjs/Panel/index.js +0 -0
  160. package/cjs/PanelGroup/index.js +0 -0
  161. package/cjs/Picker/DropdownMenu.d.ts +2 -1
  162. package/cjs/Picker/DropdownMenu.js +39 -33
  163. package/cjs/Picker/PickerOverlay.d.ts +2 -2
  164. package/cjs/Picker/PickerToggle.d.ts +1 -0
  165. package/cjs/Picker/PickerToggle.js +27 -8
  166. package/cjs/Picker/PickerToggleTrigger.d.ts +3 -3
  167. package/cjs/Picker/PickerToggleTrigger.js +4 -2
  168. package/cjs/Picker/index.d.ts +3 -3
  169. package/cjs/Picker/types.d.ts +7 -5
  170. package/cjs/Picker/utils.d.ts +11 -12
  171. package/cjs/Picker/utils.js +4 -0
  172. package/cjs/Placeholder/Placeholder.js +0 -0
  173. package/cjs/Placeholder/index.js +0 -0
  174. package/cjs/Plaintext/index.js +0 -0
  175. package/cjs/Popover/index.js +0 -0
  176. package/cjs/Progress/Progress.js +0 -0
  177. package/cjs/Progress/index.js +0 -0
  178. package/cjs/Radio/index.js +0 -0
  179. package/cjs/RadioGroup/index.js +0 -0
  180. package/cjs/RangeSlider/index.js +0 -0
  181. package/cjs/Rate/index.js +0 -0
  182. package/cjs/Ripple/index.js +0 -0
  183. package/cjs/Row/Row.js +0 -0
  184. package/cjs/Row/index.js +0 -0
  185. package/cjs/SafeAnchor/index.js +0 -0
  186. package/cjs/Schema/Schema.js +0 -0
  187. package/cjs/Schema/index.js +0 -0
  188. package/cjs/SelectPicker/SelectPicker.d.ts +6 -5
  189. package/cjs/SelectPicker/SelectPicker.js +4 -1
  190. package/cjs/Sidebar/index.js +0 -0
  191. package/cjs/Sidenav/SidenavBody.js +0 -0
  192. package/cjs/Sidenav/SidenavHeader.js +0 -0
  193. package/cjs/Sidenav/index.js +0 -0
  194. package/cjs/Slider/index.js +0 -0
  195. package/cjs/Steps/index.js +0 -0
  196. package/cjs/Table/index.js +0 -0
  197. package/cjs/Tag/Tag.js +0 -0
  198. package/cjs/Tag/index.js +0 -0
  199. package/cjs/TagGroup/TagGroup.js +0 -0
  200. package/cjs/TagGroup/index.js +0 -0
  201. package/cjs/Timeline/index.js +0 -0
  202. package/cjs/Toggle/index.js +0 -0
  203. package/cjs/Tooltip/index.js +0 -0
  204. package/cjs/Tree/Tree.d.ts +2 -5
  205. package/cjs/Tree/index.js +0 -0
  206. package/cjs/TreePicker/TreePicker.js +34 -34
  207. package/cjs/TreePicker/index.js +0 -0
  208. package/cjs/TreePicker/test/TreePicker.test.js +14 -0
  209. package/cjs/Whisper/Whisper.d.ts +3 -3
  210. package/cjs/Whisper/index.js +0 -0
  211. package/cjs/Windowing/AutoSizer.d.ts +25 -0
  212. package/cjs/Windowing/AutoSizer.js +103 -0
  213. package/cjs/Windowing/List.d.ts +45 -0
  214. package/cjs/Windowing/List.js +72 -0
  215. package/cjs/Windowing/index.d.ts +5 -0
  216. package/cjs/Windowing/index.js +19 -0
  217. package/cjs/index.d.ts +1 -0
  218. package/cjs/locales/ar_EG.js +0 -0
  219. package/cjs/locales/da_DK.js +0 -0
  220. package/cjs/locales/de_DE.js +0 -0
  221. package/cjs/locales/default.js +0 -0
  222. package/cjs/locales/en_GB.js +0 -0
  223. package/cjs/locales/en_US.js +0 -0
  224. package/cjs/locales/es_AR.js +0 -0
  225. package/cjs/locales/es_ES.js +0 -0
  226. package/cjs/locales/fi_FI.js +0 -0
  227. package/cjs/locales/it_IT.js +0 -0
  228. package/cjs/locales/ko_KR.js +0 -0
  229. package/cjs/locales/pt_BR.js +0 -0
  230. package/cjs/locales/ru_RU.js +0 -0
  231. package/cjs/locales/sv_SE.js +0 -0
  232. package/cjs/locales/zh_CN.js +0 -0
  233. package/cjs/locales/zh_TW.js +0 -0
  234. package/cjs/toaster/ToastContainer.d.ts +2 -1
  235. package/cjs/toaster/ToastContainer.js +27 -26
  236. package/cjs/toaster/toaster.d.ts +1 -1
  237. package/cjs/toaster/toaster.js +43 -13
  238. package/cjs/toaster/useToaster.d.ts +1 -1
  239. package/cjs/utils/clone.js +0 -0
  240. package/cjs/utils/events.js +0 -0
  241. package/cjs/utils/getDOMNode.js +0 -0
  242. package/cjs/utils/getSafeRegExpString.js +0 -0
  243. package/cjs/utils/guid.js +0 -0
  244. package/cjs/utils/htmlPropsUtils.js +0 -0
  245. package/cjs/utils/index.d.ts +1 -0
  246. package/cjs/utils/index.js +6 -1
  247. package/cjs/utils/isOneOf.js +0 -0
  248. package/cjs/utils/prefix.js +0 -0
  249. package/cjs/utils/render.d.ts +3 -0
  250. package/cjs/utils/render.js +49 -0
  251. package/cjs/utils/shallowEqual.js +0 -0
  252. package/cjs/utils/shallowEqualArray.js +0 -0
  253. package/cjs/utils/statusIcons.js +0 -0
  254. package/cjs/utils/stringToObject.js +0 -0
  255. package/cjs/utils/tplTransform.js +0 -0
  256. package/cjs/utils/treeUtils.d.ts +2 -2
  257. package/cjs/utils/useClassNames.js +0 -0
  258. package/cjs/utils/useEnsuredRef.js +0 -0
  259. package/cjs/utils/useEventCallback.js +0 -0
  260. package/cjs/utils/useToggleCaret.js +0 -0
  261. package/cjs/utils/useUniqueId.js +10 -2
  262. package/cjs/utils/useUpdateEffect.js +0 -0
  263. package/cjs/utils/useUpdatedRef.js +0 -0
  264. package/cjs/utils/useWillUnmount.js +0 -0
  265. package/dist/rsuite-rtl.css +3 -0
  266. package/dist/rsuite-rtl.min.css +1 -1
  267. package/dist/rsuite-rtl.min.css.map +1 -1
  268. package/dist/rsuite.css +3 -0
  269. package/dist/rsuite.js +303 -562
  270. package/dist/rsuite.js.map +1 -1
  271. package/dist/rsuite.min.css +1 -1
  272. package/dist/rsuite.min.css.map +1 -1
  273. package/dist/rsuite.min.js +1 -1
  274. package/dist/rsuite.min.js.LICENSE.txt +2 -0
  275. package/dist/rsuite.min.js.map +1 -1
  276. package/esm/@types/global.d.ts +0 -0
  277. package/esm/Affix/index.js +0 -0
  278. package/esm/Animation/Bounce.js +0 -0
  279. package/esm/Animation/Fade.js +0 -0
  280. package/esm/Animation/Slide.js +0 -0
  281. package/esm/Animation/index.js +0 -0
  282. package/esm/Animation/utils.js +0 -0
  283. package/esm/AutoComplete/index.js +0 -0
  284. package/esm/Avatar/index.js +0 -0
  285. package/esm/Badge/index.js +0 -0
  286. package/esm/Breadcrumb/index.js +0 -0
  287. package/esm/Button/index.js +0 -0
  288. package/esm/ButtonToolbar/ButtonToolbar.js +0 -0
  289. package/esm/ButtonToolbar/index.js +0 -0
  290. package/esm/Calendar/MonthDropdown.d.ts +1 -0
  291. package/esm/Calendar/MonthDropdown.js +26 -41
  292. package/esm/Carousel/index.js +0 -0
  293. package/esm/Cascader/Cascader.d.ts +2 -2
  294. package/esm/Cascader/DropdownMenu.js +5 -2
  295. package/esm/Cascader/index.js +0 -0
  296. package/esm/CheckPicker/CheckPicker.d.ts +2 -2
  297. package/esm/CheckPicker/CheckPicker.js +4 -1
  298. package/esm/CheckPicker/index.js +0 -0
  299. package/esm/CheckTreePicker/CheckTreePicker.js +36 -35
  300. package/esm/CheckTreePicker/index.js +0 -0
  301. package/esm/Checkbox/index.js +0 -0
  302. package/esm/CloseButton/CloseButton.js +0 -0
  303. package/esm/CloseButton/index.js +0 -0
  304. package/esm/Col/index.js +0 -0
  305. package/esm/Container/index.js +0 -0
  306. package/esm/Content/Content.js +0 -0
  307. package/esm/Content/index.js +0 -0
  308. package/esm/CustomProvider/FormattedDate.js +0 -0
  309. package/esm/CustomProvider/index.js +0 -0
  310. package/esm/DatePicker/DatePicker.js +8 -0
  311. package/esm/DatePicker/index.js +0 -0
  312. package/esm/DateRangePicker/disabledDateUtils.js +0 -0
  313. package/esm/Disclosure/Disclosure.d.ts +2 -2
  314. package/esm/Disclosure/Disclosure.js +6 -6
  315. package/esm/Disclosure/index.js +0 -0
  316. package/esm/Divider/index.js +0 -0
  317. package/esm/Drawer/index.js +0 -0
  318. package/esm/Dropdown/DropdownState.js +0 -0
  319. package/esm/Dropdown/index.js +0 -0
  320. package/esm/FlexboxGrid/index.js +0 -0
  321. package/esm/Footer/Footer.js +0 -0
  322. package/esm/Footer/index.js +0 -0
  323. package/esm/Form/Form.js +44 -38
  324. package/esm/FormControl/index.js +0 -0
  325. package/esm/FormControlLabel/FormControlLabel.js +0 -0
  326. package/esm/FormControlLabel/index.js +0 -0
  327. package/esm/FormErrorMessage/FormErrorMessage.js +0 -0
  328. package/esm/FormErrorMessage/index.js +0 -0
  329. package/esm/FormGroup/index.js +0 -0
  330. package/esm/FormHelpText/index.js +0 -0
  331. package/esm/Grid/Grid.js +0 -0
  332. package/esm/Grid/index.js +0 -0
  333. package/esm/Header/Header.js +0 -0
  334. package/esm/Header/index.js +0 -0
  335. package/esm/IconButton/index.js +0 -0
  336. package/esm/Input/index.js +0 -0
  337. package/esm/InputGroup/InputGroupButton.js +0 -0
  338. package/esm/InputGroup/index.js +0 -0
  339. package/esm/InputNumber/index.js +0 -0
  340. package/esm/InputPicker/InputPicker.js +4 -1
  341. package/esm/InputPicker/index.js +0 -0
  342. package/esm/List/index.js +0 -0
  343. package/esm/Loader/index.js +0 -0
  344. package/esm/Menu/MenuContext.js +0 -0
  345. package/esm/Menu/index.js +0 -0
  346. package/esm/Message/index.js +0 -0
  347. package/esm/Modal/ModalFooter.js +0 -0
  348. package/esm/Modal/index.js +0 -0
  349. package/esm/MultiCascader/DropdownMenu.js +5 -2
  350. package/esm/MultiCascader/index.js +0 -0
  351. package/esm/Nav/index.js +0 -0
  352. package/esm/Navbar/NavbarBody.js +0 -0
  353. package/esm/Navbar/NavbarBrand.js +0 -0
  354. package/esm/Navbar/NavbarDropdownMenu.js +14 -8
  355. package/esm/Navbar/NavbarHeader.js +0 -0
  356. package/esm/Notification/index.js +0 -0
  357. package/esm/Overlay/OverlayTrigger.d.ts +12 -3
  358. package/esm/Overlay/OverlayTrigger.js +23 -3
  359. package/esm/Overlay/index.js +0 -0
  360. package/esm/Pagination/index.js +0 -0
  361. package/esm/Panel/index.js +0 -0
  362. package/esm/PanelGroup/index.js +0 -0
  363. package/esm/Picker/DropdownMenu.d.ts +2 -1
  364. package/esm/Picker/DropdownMenu.js +39 -35
  365. package/esm/Picker/PickerOverlay.d.ts +2 -2
  366. package/esm/Picker/PickerToggle.d.ts +1 -0
  367. package/esm/Picker/PickerToggle.js +25 -8
  368. package/esm/Picker/PickerToggleTrigger.d.ts +3 -3
  369. package/esm/Picker/PickerToggleTrigger.js +4 -2
  370. package/esm/Picker/index.d.ts +3 -3
  371. package/esm/Picker/types.d.ts +7 -5
  372. package/esm/Picker/utils.d.ts +11 -12
  373. package/esm/Picker/utils.js +4 -0
  374. package/esm/Placeholder/Placeholder.js +0 -0
  375. package/esm/Placeholder/index.js +0 -0
  376. package/esm/Plaintext/index.js +0 -0
  377. package/esm/Popover/index.js +0 -0
  378. package/esm/Progress/Progress.js +0 -0
  379. package/esm/Progress/index.js +0 -0
  380. package/esm/Radio/index.js +0 -0
  381. package/esm/RadioGroup/index.js +0 -0
  382. package/esm/RangeSlider/index.js +0 -0
  383. package/esm/Rate/index.js +0 -0
  384. package/esm/Ripple/index.js +0 -0
  385. package/esm/Row/Row.js +0 -0
  386. package/esm/Row/index.js +0 -0
  387. package/esm/SafeAnchor/index.js +0 -0
  388. package/esm/Schema/Schema.js +0 -0
  389. package/esm/Schema/index.js +0 -0
  390. package/esm/SelectPicker/SelectPicker.d.ts +6 -5
  391. package/esm/SelectPicker/SelectPicker.js +4 -1
  392. package/esm/Sidebar/index.js +0 -0
  393. package/esm/Sidenav/SidenavBody.js +0 -0
  394. package/esm/Sidenav/SidenavHeader.js +0 -0
  395. package/esm/Sidenav/index.js +0 -0
  396. package/esm/Slider/index.js +0 -0
  397. package/esm/Steps/index.js +0 -0
  398. package/esm/Table/index.js +0 -0
  399. package/esm/Tag/Tag.js +0 -0
  400. package/esm/Tag/index.js +0 -0
  401. package/esm/TagGroup/TagGroup.js +0 -0
  402. package/esm/TagGroup/index.js +0 -0
  403. package/esm/Timeline/index.js +0 -0
  404. package/esm/Toggle/index.js +0 -0
  405. package/esm/Tooltip/index.js +0 -0
  406. package/esm/Tree/Tree.d.ts +2 -5
  407. package/esm/Tree/index.js +0 -0
  408. package/esm/TreePicker/TreePicker.js +33 -32
  409. package/esm/TreePicker/index.js +0 -0
  410. package/esm/TreePicker/test/TreePicker.test.js +14 -0
  411. package/esm/Whisper/Whisper.d.ts +3 -3
  412. package/esm/Whisper/index.js +0 -0
  413. package/esm/Windowing/AutoSizer.d.ts +25 -0
  414. package/esm/Windowing/AutoSizer.js +88 -0
  415. package/esm/Windowing/List.d.ts +45 -0
  416. package/esm/Windowing/List.js +58 -0
  417. package/esm/Windowing/index.d.ts +5 -0
  418. package/esm/Windowing/index.js +3 -0
  419. package/esm/index.d.ts +1 -0
  420. package/esm/locales/ar_EG.js +0 -0
  421. package/esm/locales/da_DK.js +0 -0
  422. package/esm/locales/de_DE.js +0 -0
  423. package/esm/locales/default.js +0 -0
  424. package/esm/locales/en_GB.js +0 -0
  425. package/esm/locales/en_US.js +0 -0
  426. package/esm/locales/es_AR.js +0 -0
  427. package/esm/locales/es_ES.js +0 -0
  428. package/esm/locales/fi_FI.js +0 -0
  429. package/esm/locales/it_IT.js +0 -0
  430. package/esm/locales/ko_KR.js +0 -0
  431. package/esm/locales/pt_BR.js +0 -0
  432. package/esm/locales/ru_RU.js +0 -0
  433. package/esm/locales/sv_SE.js +0 -0
  434. package/esm/locales/zh_CN.js +0 -0
  435. package/esm/locales/zh_TW.js +0 -0
  436. package/esm/toaster/ToastContainer.d.ts +2 -1
  437. package/esm/toaster/ToastContainer.js +28 -26
  438. package/esm/toaster/toaster.d.ts +1 -1
  439. package/esm/toaster/toaster.js +41 -13
  440. package/esm/toaster/useToaster.d.ts +1 -1
  441. package/esm/utils/clone.js +0 -0
  442. package/esm/utils/events.js +0 -0
  443. package/esm/utils/getDOMNode.js +0 -0
  444. package/esm/utils/getSafeRegExpString.js +0 -0
  445. package/esm/utils/guid.js +0 -0
  446. package/esm/utils/htmlPropsUtils.js +0 -0
  447. package/esm/utils/index.d.ts +1 -0
  448. package/esm/utils/index.js +1 -0
  449. package/esm/utils/isOneOf.js +0 -0
  450. package/esm/utils/prefix.js +0 -0
  451. package/esm/utils/render.d.ts +3 -0
  452. package/esm/utils/render.js +37 -0
  453. package/esm/utils/shallowEqual.js +0 -0
  454. package/esm/utils/shallowEqualArray.js +0 -0
  455. package/esm/utils/statusIcons.js +0 -0
  456. package/esm/utils/stringToObject.js +0 -0
  457. package/esm/utils/tplTransform.js +0 -0
  458. package/esm/utils/treeUtils.d.ts +2 -2
  459. package/esm/utils/useClassNames.js +0 -0
  460. package/esm/utils/useEnsuredRef.js +0 -0
  461. package/esm/utils/useEventCallback.js +0 -0
  462. package/esm/utils/useToggleCaret.js +0 -0
  463. package/esm/utils/useUniqueId.js +7 -2
  464. package/esm/utils/useUpdateEffect.js +0 -0
  465. package/esm/utils/useUpdatedRef.js +0 -0
  466. package/esm/utils/useWillUnmount.js +0 -0
  467. package/package.json +5 -5
  468. package/styles/color-modes.less +0 -0
  469. package/styles/colors/light.less +0 -0
  470. package/styles/common.less +0 -0
  471. package/styles/mixins/color-modes.less +0 -0
  472. package/styles/mixins/hacks.less +0 -0
  473. package/styles/mixins/menu.less +0 -0
  474. package/styles/normalize.less +0 -0
  475. package/styles/scaffolding.less +0 -0
  476. package/styles/typography.less +0 -0
  477. package/toaster/styles/animation.less +0 -0
  478. package/toaster/styles/index.less +0 -0
  479. package/cjs/Picker/VirtualizedList.d.ts +0 -37
  480. package/cjs/Picker/VirtualizedList.js +0 -15
  481. package/esm/Picker/VirtualizedList.d.ts +0 -37
  482. package/esm/Picker/VirtualizedList.js +0 -4
package/esm/Form/Form.js CHANGED
@@ -1,8 +1,7 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
- import React, { useMemo, useCallback, useState, useImperativeHandle, useRef } from 'react';
3
+ import React, { useMemo, useCallback, useImperativeHandle, useRef } from 'react';
4
4
  import PropTypes from 'prop-types';
5
- import isUndefined from 'lodash/isUndefined';
6
5
  import omit from 'lodash/omit';
7
6
  import { SchemaModel } from 'schema-typed';
8
7
  import FormContext, { FormValueContext } from './FormContext';
@@ -13,6 +12,7 @@ import FormGroup from '../FormGroup';
13
12
  import FormHelpText from '../FormHelpText';
14
13
  import { useFormClassNames } from './useFormClassNames';
15
14
  import useSchemaModel from './useSchemaModel';
15
+ import { useControlled } from '../utils';
16
16
  var Form = /*#__PURE__*/React.forwardRef(function (props, ref) {
17
17
  var _props$checkTrigger = props.checkTrigger,
18
18
  checkTrigger = _props$checkTrigger === void 0 ? 'change' : _props$checkTrigger,
@@ -55,20 +55,18 @@ var Form = /*#__PURE__*/React.forwardRef(function (props, ref) {
55
55
  disabled: disabled
56
56
  });
57
57
 
58
- var _useState = useState(formDefaultValue),
59
- _formValue = _useState[0],
60
- setFormValue = _useState[1];
58
+ var _useControlled = useControlled(formValue, formDefaultValue),
59
+ realFormValue = _useControlled[0],
60
+ setFormValue = _useControlled[1];
61
61
 
62
- var _useState2 = useState(formError || {}),
63
- _formError = _useState2[0],
64
- setFormError = _useState2[1];
62
+ var _useControlled2 = useControlled(formError, {}),
63
+ realFormError = _useControlled2[0],
64
+ setFormError = _useControlled2[1];
65
65
 
66
- var getFormValue = useCallback(function () {
67
- return isUndefined(formValue) ? _formValue : formValue;
68
- }, [_formValue, formValue]);
69
- var getFormError = useCallback(function () {
70
- return isUndefined(formError) ? _formError : formError;
71
- }, [formError, _formError]);
66
+ var realFormValueRef = useRef(realFormValue);
67
+ realFormValueRef.current = realFormValue;
68
+ var realFormErrorRef = useRef(realFormError);
69
+ realFormErrorRef.current = realFormError;
72
70
  /**
73
71
  * Validate the form data and return a boolean.
74
72
  * The error message after verification is returned in the callback.
@@ -76,7 +74,7 @@ var Form = /*#__PURE__*/React.forwardRef(function (props, ref) {
76
74
  */
77
75
 
78
76
  var check = useCallback(function (callback) {
79
- var formValue = getFormValue() || {};
77
+ var formValue = realFormValue || {};
80
78
  var formError = {};
81
79
  var errorCount = 0;
82
80
  var model = getCombinedModel();
@@ -98,7 +96,7 @@ var Form = /*#__PURE__*/React.forwardRef(function (props, ref) {
98
96
  }
99
97
 
100
98
  return true;
101
- }, [getFormValue, getCombinedModel, onCheck, onError]);
99
+ }, [realFormValue, getCombinedModel, setFormError, onCheck, onError]);
102
100
  /**
103
101
  * Check the data field
104
102
  * @param fieldName
@@ -108,11 +106,11 @@ var Form = /*#__PURE__*/React.forwardRef(function (props, ref) {
108
106
  var checkForField = useCallback(function (fieldName, callback) {
109
107
  var _extends2;
110
108
 
111
- var formValue = getFormValue() || {};
109
+ var formValue = realFormValue || {};
112
110
  var model = getCombinedModel();
113
111
  var checkResult = model.checkForField(fieldName, formValue);
114
112
 
115
- var formError = _extends({}, getFormError(), (_extends2 = {}, _extends2[fieldName] = (checkResult === null || checkResult === void 0 ? void 0 : checkResult.errorMessage) || checkResult, _extends2));
113
+ var formError = _extends({}, realFormError, (_extends2 = {}, _extends2[fieldName] = (checkResult === null || checkResult === void 0 ? void 0 : checkResult.errorMessage) || checkResult, _extends2));
116
114
 
117
115
  setFormError(formError);
118
116
  onCheck === null || onCheck === void 0 ? void 0 : onCheck(formError);
@@ -123,13 +121,13 @@ var Form = /*#__PURE__*/React.forwardRef(function (props, ref) {
123
121
  }
124
122
 
125
123
  return !checkResult.hasError;
126
- }, [getFormValue, getCombinedModel, getFormError, onCheck, onError]);
124
+ }, [realFormValue, getCombinedModel, realFormError, setFormError, onCheck, onError]);
127
125
  /**
128
126
  * Check form data asynchronously and return a Promise
129
127
  */
130
128
 
131
129
  var checkAsync = useCallback(function () {
132
- var formValue = getFormValue() || {};
130
+ var formValue = realFormValue || {};
133
131
  var promises = [];
134
132
  var keys = [];
135
133
  var model = getCombinedModel();
@@ -160,19 +158,19 @@ var Form = /*#__PURE__*/React.forwardRef(function (props, ref) {
160
158
  formError: formError
161
159
  };
162
160
  });
163
- }, [getFormValue, getCombinedModel, onCheck, onError]);
161
+ }, [realFormValue, getCombinedModel, onCheck, setFormError, onError]);
164
162
  /**
165
163
  * Asynchronously check form fields and return Promise
166
164
  * @param fieldName
167
165
  */
168
166
 
169
167
  var checkForFieldAsync = useCallback(function (fieldName) {
170
- var formValue = getFormValue() || {};
168
+ var formValue = realFormValue || {};
171
169
  var model = getCombinedModel();
172
170
  return model.checkForFieldAsync(fieldName, formValue).then(function (checkResult) {
173
171
  var _extends3;
174
172
 
175
- var formError = _extends({}, getFormError(), (_extends3 = {}, _extends3[fieldName] = checkResult.errorMessage, _extends3));
173
+ var formError = _extends({}, realFormError, (_extends3 = {}, _extends3[fieldName] = checkResult.errorMessage, _extends3));
176
174
 
177
175
  onCheck === null || onCheck === void 0 ? void 0 : onCheck(formError);
178
176
  setFormError(formError);
@@ -183,20 +181,20 @@ var Form = /*#__PURE__*/React.forwardRef(function (props, ref) {
183
181
 
184
182
  return checkResult;
185
183
  });
186
- }, [getFormValue, getCombinedModel, getFormError, onCheck, onError]);
184
+ }, [realFormValue, getCombinedModel, realFormError, onCheck, setFormError, onError]);
187
185
  var cleanErrors = useCallback(function () {
188
186
  setFormError({});
189
- }, []);
187
+ }, [setFormError]);
190
188
  var cleanErrorForField = useCallback(function (fieldName) {
191
- setFormError(omit(_formError, [fieldName]));
192
- }, [_formError]);
189
+ setFormError(omit(realFormError, [fieldName]));
190
+ }, [realFormError, setFormError]);
193
191
  var resetErrors = useCallback(function (formError) {
194
192
  if (formError === void 0) {
195
193
  formError = {};
196
194
  }
197
195
 
198
196
  setFormError(formError);
199
- }, []);
197
+ }, [setFormError]);
200
198
  useImperativeHandle(ref, function () {
201
199
  return {
202
200
  root: rootRef.current,
@@ -210,15 +208,23 @@ var Form = /*#__PURE__*/React.forwardRef(function (props, ref) {
210
208
  };
211
209
  });
212
210
  var removeFieldError = useCallback(function (name) {
213
- var formError = omit(getFormError(), [name]);
211
+ /**
212
+ * when this function is called when the children component is unmount, it's an old render frame
213
+ * so use Ref to get future error
214
+ */
215
+ var formError = omit(realFormErrorRef.current, [name]);
214
216
  setFormError(formError);
215
217
  onCheck === null || onCheck === void 0 ? void 0 : onCheck(formError);
216
- }, [getFormError, onCheck]);
218
+ }, [onCheck, setFormError]);
217
219
  var removeFieldValue = useCallback(function (name) {
218
- var formValue = omit(getFormValue(), [name]);
220
+ /**
221
+ * when this function is called when the children component is unmount, it's an old render frame
222
+ * so use Ref to get future value
223
+ */
224
+ var formValue = omit(realFormValueRef.current, [name]);
219
225
  setFormValue(formValue);
220
226
  onChange === null || onChange === void 0 ? void 0 : onChange(formValue);
221
- }, [getFormValue, onChange]);
227
+ }, [onChange, setFormValue]);
222
228
  var handleSubmit = useCallback(function (event) {
223
229
  if (disabled || readOnly || plaintext) {
224
230
  return;
@@ -232,25 +238,25 @@ var Form = /*#__PURE__*/React.forwardRef(function (props, ref) {
232
238
  var handleFieldError = useCallback(function (name, errorMessage) {
233
239
  var _extends4;
234
240
 
235
- var formError = _extends({}, getFormError(), (_extends4 = {}, _extends4[name] = errorMessage, _extends4));
241
+ var formError = _extends({}, realFormError, (_extends4 = {}, _extends4[name] = errorMessage, _extends4));
236
242
 
237
243
  setFormError(formError);
238
244
  onError === null || onError === void 0 ? void 0 : onError(formError);
239
245
  onCheck === null || onCheck === void 0 ? void 0 : onCheck(formError);
240
- }, [onError, onCheck, getFormError]);
246
+ }, [realFormError, setFormError, onError, onCheck]);
241
247
  var handleFieldSuccess = useCallback(function (name) {
242
248
  removeFieldError(name);
243
249
  }, [removeFieldError]);
244
250
  var handleFieldChange = useCallback(function (name, value, event) {
245
251
  var _extends5;
246
252
 
247
- var formValue = getFormValue();
253
+ var formValue = realFormValue;
248
254
 
249
255
  var nextFormValue = _extends({}, formValue, (_extends5 = {}, _extends5[name] = value, _extends5));
250
256
 
251
257
  setFormValue(nextFormValue);
252
258
  onChange === null || onChange === void 0 ? void 0 : onChange(nextFormValue, event);
253
- }, [onChange, getFormValue]);
259
+ }, [realFormValue, setFormValue, onChange]);
254
260
  var rootRef = useRef(null);
255
261
  var formContextValue = useMemo(function () {
256
262
  return {
@@ -261,7 +267,7 @@ var Form = /*#__PURE__*/React.forwardRef(function (props, ref) {
261
267
  readOnly: readOnly,
262
268
  plaintext: plaintext,
263
269
  disabled: disabled,
264
- formError: getFormError(),
270
+ formError: realFormError,
265
271
  removeFieldValue: removeFieldValue,
266
272
  removeFieldError: removeFieldError,
267
273
  pushFieldRule: pushFieldRule,
@@ -270,7 +276,7 @@ var Form = /*#__PURE__*/React.forwardRef(function (props, ref) {
270
276
  onFieldError: handleFieldError,
271
277
  onFieldSuccess: handleFieldSuccess
272
278
  };
273
- }, [getCombinedModel, checkTrigger, formDefaultValue, errorFromContext, readOnly, plaintext, disabled, getFormError, removeFieldValue, removeFieldError, pushFieldRule, removeFieldRule, handleFieldChange, handleFieldError, handleFieldSuccess]);
279
+ }, [getCombinedModel, checkTrigger, formDefaultValue, errorFromContext, readOnly, plaintext, disabled, realFormError, removeFieldValue, removeFieldError, pushFieldRule, removeFieldRule, handleFieldChange, handleFieldError, handleFieldSuccess]);
274
280
  return /*#__PURE__*/React.createElement("form", _extends({}, rest, {
275
281
  ref: rootRef,
276
282
  onSubmit: handleSubmit,
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
package/esm/Grid/Grid.js CHANGED
File without changes
package/esm/Grid/index.js CHANGED
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -112,6 +112,7 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
112
112
  var targetRef = useRef(null);
113
113
  var triggerRef = useRef(null);
114
114
  var inputRef = useRef();
115
+ var listRef = useRef(null);
115
116
 
116
117
  var _useCustom = useCustom(['Picker', 'InputPicker'], overrideLocale),
117
118
  locale = _useCustom.locale;
@@ -403,7 +404,8 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
403
404
  usePublicMethods(ref, {
404
405
  triggerRef: triggerRef,
405
406
  overlayRef: overlayRef,
406
- targetRef: targetRef
407
+ targetRef: targetRef,
408
+ listRef: listRef
407
409
  });
408
410
  /**
409
411
  * Remove the last item, after pressing the back key on the keyboard.
@@ -605,6 +607,7 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
605
607
  var menu = items.length ? /*#__PURE__*/React.createElement(DropdownMenu, {
606
608
  id: id ? id + "-listbox" : undefined,
607
609
  listProps: listProps,
610
+ listRef: listRef,
608
611
  disabledItemValues: disabledItemValues,
609
612
  valueKey: valueKey,
610
613
  labelKey: labelKey,
File without changes
package/esm/List/index.js CHANGED
File without changes
File without changes
File without changes
package/esm/Menu/index.js CHANGED
File without changes
File without changes
File without changes
File without changes
@@ -50,7 +50,10 @@ var DropdownMenu = /*#__PURE__*/React.forwardRef(function (props, ref) {
50
50
  prefix = _useClassNames.prefix;
51
51
 
52
52
  var classes = merge(className, prefix('items'));
53
- var rtl = useCustom('DropdownMenu');
53
+
54
+ var _useCustom = useCustom('DropdownMenu'),
55
+ rtl = _useCustom.rtl;
56
+
54
57
  var getCascadePaths = useCallback(function (layer, node) {
55
58
  var paths = [];
56
59
 
@@ -77,7 +80,7 @@ var DropdownMenu = /*#__PURE__*/React.forwardRef(function (props, ref) {
77
80
  }); // Use `value` in keys when If `value` is string or number
78
81
 
79
82
  var onlyKey = typeof value === 'number' || typeof value === 'string' ? value : index;
80
- var Icon = node.loading ? SpinnerIcon : rtl ? AngleRightIcon : AngleLeftIcon;
83
+ var Icon = node.loading ? SpinnerIcon : rtl ? AngleLeftIcon : AngleRightIcon;
81
84
  var active = value.some(function (v) {
82
85
  return v === nodeValue;
83
86
  });
File without changes
package/esm/Nav/index.js CHANGED
File without changes
File without changes
File without changes
@@ -5,12 +5,12 @@ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWith
5
5
  var _templateObject, _templateObject2;
6
6
 
7
7
  import React, { useContext } from 'react';
8
- import omit from 'lodash/omit';
9
- import { mergeRefs, useClassNames } from '../utils';
10
8
  import PropTypes from 'prop-types';
9
+ import omit from 'lodash/omit';
10
+ import isNil from 'lodash/isNil';
11
11
  import AngleLeft from '@rsuite/icons/legacy/AngleLeft';
12
12
  import AngleRight from '@rsuite/icons/legacy/AngleRight';
13
- import useCustom from '../utils/useCustom';
13
+ import { mergeRefs, useClassNames, useCustom } from '../utils';
14
14
  import { NavbarContext } from '.';
15
15
  import Disclosure from '../Disclosure';
16
16
  import NavContext from '../Nav/NavContext';
@@ -73,7 +73,7 @@ var NavbarDropdownMenu = /*#__PURE__*/React.forwardRef(function (props, ref) {
73
73
  var Icon = rtl ? AngleLeft : AngleRight;
74
74
  return /*#__PURE__*/React.createElement(Disclosure, {
75
75
  hideOnClickOutside: true,
76
- trigger: ['click', 'mouseover'],
76
+ trigger: ['click', 'hover'],
77
77
  onToggle: function onToggle(open, event) {
78
78
  return _onToggle === null || _onToggle === void 0 ? void 0 : _onToggle(open, undefined, event);
79
79
  }
@@ -98,12 +98,18 @@ var NavbarDropdownMenu = /*#__PURE__*/React.forwardRef(function (props, ref) {
98
98
  open: open,
99
99
  disabled: disabled
100
100
  }));
101
+ var dataAttributes = {
102
+ 'data-event-key': eventKey
103
+ };
104
+
105
+ if (!isNil(eventKey) && typeof eventKey !== 'string') {
106
+ dataAttributes['data-event-key-type'] = typeof eventKey;
107
+ }
108
+
101
109
  return /*#__PURE__*/React.createElement("div", _extends({
102
110
  ref: mergeRefs(buttonRef, buttonRef),
103
- className: classes,
104
- "data-event-key": eventKey,
105
- "data-event-key-type": typeof eventKey
106
- }, buttonProps), icon && /*#__PURE__*/React.cloneElement(icon, {
111
+ className: classes
112
+ }, dataAttributes, buttonProps), icon && /*#__PURE__*/React.cloneElement(icon, {
107
113
  className: prefix('menu-icon')
108
114
  }), title, /*#__PURE__*/React.createElement(Icon, {
109
115
  className: prefix(_templateObject2 || (_templateObject2 = _taggedTemplateLiteralLoose(["toggle-icon"])))
File without changes
File without changes
@@ -59,15 +59,24 @@ export interface OverlayTriggerProps extends StandardProps, AnimationEventProps
59
59
  /** Callback fired when open component */
60
60
  onOpen?: () => void;
61
61
  /** Callback fired when close component */
62
- onClose?: () => void;
62
+ onClose?: (cause?: OverlayCloseCause) => void;
63
63
  /** Whether speaker to follow the cursor */
64
64
  followCursor?: boolean;
65
65
  }
66
- export interface OverlayTriggerInstance {
66
+ /**
67
+ * The reason that triggers closing of an overlay
68
+ * - Clicking outside of the overlay
69
+ * - Direct invocation of triggerRef.current.close()
70
+ */
71
+ export declare enum OverlayCloseCause {
72
+ ClickOutside = 0,
73
+ ImperativeHandle = 1
74
+ }
75
+ export interface OverlayTriggerHandle {
67
76
  root: HTMLElement | undefined;
68
77
  updatePosition: () => void;
69
78
  open: (delay?: number) => void;
70
79
  close: (delay?: number) => void;
71
80
  }
72
- declare const OverlayTrigger: React.ForwardRefExoticComponent<OverlayTriggerProps & React.RefAttributes<OverlayTriggerInstance>>;
81
+ declare const OverlayTrigger: React.ForwardRefExoticComponent<OverlayTriggerProps & React.RefAttributes<OverlayTriggerHandle>>;
73
82
  export default OverlayTrigger;
@@ -30,6 +30,12 @@ function mergeEvents(events, props) {
30
30
  return nextEvents;
31
31
  }
32
32
 
33
+ /**
34
+ * The reason that triggers closing of an overlay
35
+ * - Clicking outside of the overlay
36
+ * - Direct invocation of triggerRef.current.close()
37
+ */
38
+ export var OverlayCloseCause;
33
39
  /**
34
40
  * Useful for mouseover and mouseout.
35
41
  * In order to resolve the node entering the mouseover element, a mouseout event and a mouseover event will be triggered.
@@ -37,6 +43,12 @@ function mergeEvents(events, props) {
37
43
  * @param handler
38
44
  * @param event
39
45
  */
46
+
47
+ (function (OverlayCloseCause) {
48
+ OverlayCloseCause[OverlayCloseCause["ClickOutside"] = 0] = "ClickOutside";
49
+ OverlayCloseCause[OverlayCloseCause["ImperativeHandle"] = 1] = "ImperativeHandle";
50
+ })(OverlayCloseCause || (OverlayCloseCause = {}));
51
+
40
52
  function onMouseEventHandler(handler, event, delay) {
41
53
  var target = event.currentTarget;
42
54
  var related = event.relatedTarget || get(event, ['nativeEvent', 'toElement']);
@@ -133,17 +145,19 @@ var OverlayTrigger = /*#__PURE__*/React.forwardRef(function (props, ref) {
133
145
 
134
146
  setOpen(true);
135
147
  }, [delayOpen, setOpen]);
136
- var handleClose = useCallback(function (delay) {
148
+ var handleClose = useCallback(function (delay, callback) {
137
149
  var ms = _isUndefined(delay) ? delayClose : delay;
138
150
 
139
151
  if (ms && typeof ms === 'number') {
140
152
  return delayCloseTimer.current = setTimeout(function () {
141
153
  delayCloseTimer.current = null;
142
154
  setOpen(false);
155
+ callback === null || callback === void 0 ? void 0 : callback();
143
156
  }, ms);
144
157
  }
145
158
 
146
159
  setOpen(false);
160
+ callback === null || callback === void 0 ? void 0 : callback();
147
161
  }, [delayClose, setOpen]);
148
162
  var handleExited = useCallback(function () {
149
163
  setCursorPosition(null);
@@ -161,7 +175,11 @@ var OverlayTrigger = /*#__PURE__*/React.forwardRef(function (props, ref) {
161
175
  },
162
176
 
163
177
  open: handleOpen,
164
- close: handleClose,
178
+ close: function close(delay) {
179
+ return handleClose(delay, function () {
180
+ return onClose === null || onClose === void 0 ? void 0 : onClose(OverlayCloseCause.ImperativeHandle);
181
+ });
182
+ },
165
183
  updatePosition: function updatePosition() {
166
184
  var _overlayRef$current2, _overlayRef$current2$;
167
185
 
@@ -322,7 +340,9 @@ var OverlayTrigger = /*#__PURE__*/React.forwardRef(function (props, ref) {
322
340
  var overlayProps = _extends({}, rest, {
323
341
  rootClose: rootClose,
324
342
  triggerTarget: triggerRef,
325
- onClose: trigger !== 'none' ? createChainedFunction(handleClose, onClose) : undefined,
343
+ onClose: trigger !== 'none' ? createChainedFunction(handleClose, function () {
344
+ return onClose === null || onClose === void 0 ? void 0 : onClose(OverlayCloseCause.ClickOutside);
345
+ }) : undefined,
326
346
  onExited: createChainedFunction(followCursor ? handleExited : undefined, onExited),
327
347
  placement: placement,
328
348
  container: container,
File without changes
File without changes
File without changes
File without changes
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
- import { ListProps } from './VirtualizedList';
3
+ import { ListProps, ListHandle } from '../Windowing';
4
4
  import { StandardProps, ItemDataType } from '../@types/common';
5
5
  export interface DropdownMenuProps<Multiple = false> extends StandardProps, Omit<React.HTMLAttributes<HTMLDivElement>, 'onSelect'> {
6
6
  classPrefix: string;
@@ -20,6 +20,7 @@ export interface DropdownMenuProps<Multiple = false> extends StandardProps, Omit
20
20
  rowGroupHeight?: number;
21
21
  virtualized?: boolean;
22
22
  listProps?: Partial<ListProps>;
23
+ listRef?: React.Ref<ListHandle>;
23
24
  /** Custom selected option */
24
25
  renderMenuItem?: (itemLabel: React.ReactNode, item: any) => React.ReactNode;
25
26
  renderMenuGroup?: (title: React.ReactNode, item: any) => React.ReactNode;
@@ -13,9 +13,9 @@ import getPosition from 'dom-lib/getPosition';
13
13
  import scrollTop from 'dom-lib/scrollTop';
14
14
  import getHeight from 'dom-lib/getHeight';
15
15
  import classNames from 'classnames';
16
- import { List, AutoSizer } from './VirtualizedList';
16
+ import { List, AutoSizer, VariableSizeList } from '../Windowing';
17
17
  import shallowEqual from '../utils/shallowEqual';
18
- import { mergeRefs, useClassNames } from '../utils';
18
+ import { mergeRefs, useClassNames, useMount } from '../utils';
19
19
  import DropdownMenuGroup from './DropdownMenuGroup';
20
20
  import { KEY_GROUP, KEY_GROUP_TITLE } from '../utils/getDataGroupBy';
21
21
  var DropdownMenu = /*#__PURE__*/React.forwardRef(function (props, ref) {
@@ -36,6 +36,7 @@ var DropdownMenu = /*#__PURE__*/React.forwardRef(function (props, ref) {
36
36
  labelKey = _props$labelKey === void 0 ? 'label' : _props$labelKey,
37
37
  virtualized = props.virtualized,
38
38
  listProps = props.listProps,
39
+ virtualizedListRef = props.listRef,
39
40
  className = props.className,
40
41
  style = props.style,
41
42
  focusItemValue = props.focusItemValue,
@@ -49,7 +50,7 @@ var DropdownMenu = /*#__PURE__*/React.forwardRef(function (props, ref) {
49
50
  renderMenuItem = props.renderMenuItem,
50
51
  onGroupTitleClick = props.onGroupTitleClick,
51
52
  onSelect = props.onSelect,
52
- rest = _objectWithoutPropertiesLoose(props, ["data", "group", "maxHeight", "activeItemValues", "disabledItemValues", "classPrefix", "valueKey", "labelKey", "virtualized", "listProps", "className", "style", "focusItemValue", "dropdownMenuItemClassPrefix", "dropdownMenuItemAs", "rowHeight", "rowGroupHeight", "renderMenuGroup", "renderMenuItem", "onGroupTitleClick", "onSelect"]);
53
+ rest = _objectWithoutPropertiesLoose(props, ["data", "group", "maxHeight", "activeItemValues", "disabledItemValues", "classPrefix", "valueKey", "labelKey", "virtualized", "listProps", "listRef", "className", "style", "focusItemValue", "dropdownMenuItemClassPrefix", "dropdownMenuItemAs", "rowHeight", "rowGroupHeight", "renderMenuGroup", "renderMenuItem", "onGroupTitleClick", "onSelect"]);
53
54
 
54
55
  var _useClassNames = useClassNames(classPrefix),
55
56
  withClassPrefix = _useClassNames.withClassPrefix,
@@ -59,12 +60,8 @@ var DropdownMenu = /*#__PURE__*/React.forwardRef(function (props, ref) {
59
60
  var classes = merge(className, withClassPrefix('items', {
60
61
  grouped: group
61
62
  }));
62
-
63
- var styles = _extends({}, style, {
64
- maxHeight: maxHeight
65
- });
66
-
67
63
  var menuBodyContainerRef = useRef(null);
64
+ var listRef = useRef(null);
68
65
 
69
66
  var _useState = useState([]),
70
67
  foldedGroupKeys = _useState[0],
@@ -86,8 +83,7 @@ var DropdownMenu = /*#__PURE__*/React.forwardRef(function (props, ref) {
86
83
  onSelect === null || onSelect === void 0 ? void 0 : onSelect(value, item, event, checked);
87
84
  }, [onSelect]);
88
85
 
89
- var getRowHeight = function getRowHeight(list, _ref) {
90
- var index = _ref.index;
86
+ var getRowHeight = function getRowHeight(list, index) {
91
87
  var item = list[index];
92
88
 
93
89
  if (group && item[KEY_GROUP] && index !== 0) {
@@ -125,10 +121,13 @@ var DropdownMenu = /*#__PURE__*/React.forwardRef(function (props, ref) {
125
121
  }
126
122
  }, [focusItemValue, menuBodyContainerRef, prefix]);
127
123
 
128
- var renderItem = function renderItem(list, _ref2) {
129
- var index = _ref2.index,
130
- style = _ref2.style;
131
- var item = list[index];
124
+ var renderItem = function renderItem(_ref) {
125
+ var _ref$index = _ref.index,
126
+ index = _ref$index === void 0 ? 0 : _ref$index,
127
+ style = _ref.style,
128
+ data = _ref.data,
129
+ itemData = _ref.item;
130
+ var item = itemData || data[index];
132
131
  var value = item[valueKey];
133
132
  var label = item[labelKey];
134
133
 
@@ -187,40 +186,45 @@ var DropdownMenu = /*#__PURE__*/React.forwardRef(function (props, ref) {
187
186
  return key === ((_item$parent = item.parent) === null || _item$parent === void 0 ? void 0 : _item$parent[KEY_GROUP_TITLE]);
188
187
  }));
189
188
  }) : data;
190
- var rowCount = filteredItems.length; // Check whether the height of the data exceeds the height of the container.
189
+ var rowCount = filteredItems.length;
190
+ useMount(function () {
191
+ var _listRef$current, _listRef$current$scro;
191
192
 
192
- var useVirtualized = virtualized && rowCount * rowHeight > maxHeight;
193
+ var itemIndex = findIndex(filteredItems, function (item) {
194
+ return item[valueKey] === (activeItemValues === null || activeItemValues === void 0 ? void 0 : activeItemValues[0]);
195
+ });
196
+ (_listRef$current = listRef.current) === null || _listRef$current === void 0 ? void 0 : (_listRef$current$scro = _listRef$current.scrollToItem) === null || _listRef$current$scro === void 0 ? void 0 : _listRef$current$scro.call(_listRef$current, itemIndex);
197
+ });
193
198
  return /*#__PURE__*/React.createElement("div", _extends({
194
- role: !useVirtualized ? 'listbox' : undefined
199
+ role: "listbox"
195
200
  }, rest, {
196
201
  className: classes,
197
202
  ref: mergeRefs(menuBodyContainerRef, ref),
198
- style: styles
199
- }), useVirtualized ? /*#__PURE__*/React.createElement(AutoSizer, {
203
+ style: _extends({}, style, {
204
+ maxHeight: maxHeight
205
+ })
206
+ }), virtualized ? /*#__PURE__*/React.createElement(AutoSizer, {
200
207
  defaultHeight: maxHeight,
201
208
  style: {
202
209
  width: 'auto',
203
210
  height: 'auto'
204
211
  }
205
- }, function (_ref3) {
206
- var height = _ref3.height,
207
- width = _ref3.width;
212
+ }, function (_ref2) {
213
+ var height = _ref2.height,
214
+ width = _ref2.width;
208
215
  return /*#__PURE__*/React.createElement(List, _extends({
209
- role: "listbox",
210
- containerRole: '',
211
- "aria-readonly": undefined,
216
+ as: VariableSizeList,
217
+ ref: mergeRefs(listRef, virtualizedListRef),
212
218
  width: width,
213
219
  height: height || maxHeight,
214
- scrollToIndex: findIndex(data, function (item) {
215
- return item[valueKey] === (activeItemValues === null || activeItemValues === void 0 ? void 0 : activeItemValues[0]);
216
- }),
217
- rowCount: rowCount,
218
- rowHeight: getRowHeight.bind(_this, filteredItems),
219
- rowRenderer: renderItem.bind(null, filteredItems)
220
- }, listProps));
221
- }) : filteredItems.map(function (_item, index) {
222
- return renderItem(filteredItems, {
223
- index: index
220
+ itemCount: rowCount,
221
+ itemData: filteredItems,
222
+ itemSize: getRowHeight.bind(_this, filteredItems)
223
+ }, listProps), renderItem);
224
+ }) : filteredItems.map(function (item, index) {
225
+ return renderItem({
226
+ index: index,
227
+ item: item
224
228
  });
225
229
  }));
226
230
  });