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
@@ -1,9 +1,10 @@
1
1
  import React from 'react';
2
2
  import { WithAsProps, RsRefForwardingComponent, TypeAttributes, FormControlBaseProps } from '../@types/common';
3
+ import { PrependParameters } from '../@types/utils';
3
4
  export interface LocaleType {
4
5
  unfilled: string;
5
6
  }
6
- export interface InputProps extends WithAsProps, Omit<React.InputHTMLAttributes<HTMLInputElement>, 'onChange' | 'size'>, FormControlBaseProps {
7
+ export interface InputProps extends WithAsProps, Omit<React.InputHTMLAttributes<HTMLInputElement>, 'onChange' | 'size'>, Omit<FormControlBaseProps, 'onChange'> {
7
8
  /** The HTML input type */
8
9
  type?: string;
9
10
  /** The HTML input id */
@@ -12,7 +13,7 @@ export interface InputProps extends WithAsProps, Omit<React.InputHTMLAttributes<
12
13
  size?: TypeAttributes.Size;
13
14
  /** Ref of input element */
14
15
  inputRef?: React.Ref<any>;
15
- onChange?: (value: string, event: React.ChangeEvent<HTMLInputElement>) => void;
16
+ onChange?: PrependParameters<React.ChangeEventHandler<HTMLInputElement>, [value: string]>;
16
17
  /** Called on press enter */
17
18
  onPressEnter?: React.KeyboardEventHandler<HTMLInputElement>;
18
19
  }
@@ -5,7 +5,7 @@ import { WithAsProps, TypeAttributes, RsRefForwardingComponent } from '../@types
5
5
  export declare const InputGroupContext: React.Context<{
6
6
  onFocus: () => void;
7
7
  onBlur: () => void;
8
- }>;
8
+ } | null>;
9
9
  export interface InputGroupProps extends WithAsProps {
10
10
  /** Sets the composition content internally */
11
11
  inside?: boolean;
@@ -107,11 +107,15 @@ var InputNumber = /*#__PURE__*/React.forwardRef(function (props, ref) {
107
107
  value = _useControlled[0],
108
108
  setValue = _useControlled[1];
109
109
 
110
- var _useState = useState(disableMaxValue(value, max)),
110
+ var _useState = useState(function () {
111
+ return disableMaxValue(value, max);
112
+ }),
111
113
  disabledUpButton = _useState[0],
112
114
  setDisabledUpButton = _useState[1];
113
115
 
114
- var _useState2 = useState(disableMinValue(value, min)),
116
+ var _useState2 = useState(function () {
117
+ return disableMinValue(value, min);
118
+ }),
115
119
  disabledDownButton = _useState2[0],
116
120
  setDisabledDownButton = _useState2[1];
117
121
 
@@ -78,10 +78,10 @@ var InputAutosize = /*#__PURE__*/React.forwardRef(function (props, ref) {
78
78
  _props$inputId = props.inputId,
79
79
  inputId = _props$inputId === void 0 ? uniqueId : _props$inputId,
80
80
  tabIndex = props.tabIndex;
81
- var rootRef = useRef();
82
- var inputRef = useRef();
83
- var sizerRef = useRef();
84
- var placeholderRef = useRef();
81
+ var rootRef = useRef(null);
82
+ var inputRef = useRef(null);
83
+ var sizerRef = useRef(null);
84
+ var placeholderRef = useRef(null);
85
85
  useImperativeHandle(ref, function () {
86
86
  return {
87
87
  root: rootRef.current,
@@ -9,11 +9,11 @@ export interface InputPickerContextProps {
9
9
  /** Multiple selections are allowed */
10
10
  multi?: boolean;
11
11
  /** Tag related props. */
12
- tagProps?: TagProps;
12
+ tagProps: TagProps;
13
13
  /**
14
14
  * Set the trigger for creating tags. only valid when creatable
15
15
  */
16
- trigger?: TriggerType | TriggerType[];
16
+ trigger: TriggerType | TriggerType[];
17
17
  /**
18
18
  * No overlay provides options
19
19
  */
@@ -23,7 +23,10 @@ import { DropdownMenu, DropdownMenuItem, DropdownMenuCheckItem, PickerToggle, Pi
23
23
  import Tag from '../Tag';
24
24
  import InputAutosize from './InputAutosize';
25
25
  import InputSearch from './InputSearch';
26
- export var InputPickerContext = /*#__PURE__*/React.createContext({});
26
+ export var InputPickerContext = /*#__PURE__*/React.createContext({
27
+ tagProps: {},
28
+ trigger: 'Enter'
29
+ });
27
30
  var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
28
31
  var _merge;
29
32
 
@@ -43,7 +46,8 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
43
46
  readOnly = props.readOnly,
44
47
  plaintext = props.plaintext,
45
48
  defaultValue = props.defaultValue,
46
- defaultOpen = props.defaultOpen,
49
+ _props$defaultOpen = props.defaultOpen,
50
+ defaultOpen = _props$defaultOpen === void 0 ? false : _props$defaultOpen,
47
51
  _props$disabledItemVa = props.disabledItemValues,
48
52
  disabledItemValues = _props$disabledItemVa === void 0 ? [] : _props$disabledItemVa,
49
53
  overrideLocale = props.locale,
@@ -104,9 +108,9 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
104
108
  throw Error('`groupBy` can not be equal to `valueKey` and `labelKey`');
105
109
  }
106
110
 
107
- var overlayRef = useRef();
108
- var targetRef = useRef();
109
- var triggerRef = useRef();
111
+ var overlayRef = useRef(null);
112
+ var targetRef = useRef(null);
113
+ var triggerRef = useRef(null);
110
114
  var inputRef = useRef();
111
115
 
112
116
  var _useCustom = useCustom(['Picker', 'InputPicker'], overrideLocale),
@@ -433,8 +437,8 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
433
437
  var events = {
434
438
  onMenuPressBackspace: multi ? removeLastItem : handleClean,
435
439
  onMenuKeyDown: onKeyDown,
436
- onMenuPressEnter: null,
437
- onKeyDown: null
440
+ onMenuPressEnter: undefined,
441
+ onKeyDown: undefined
438
442
  };
439
443
  var handleKeyPress = useCallback(function (event) {
440
444
  // When typing a space, create a tag.
@@ -494,7 +498,7 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
494
498
 
495
499
  var renderDropdownMenuItem = function renderDropdownMenuItem(label, item) {
496
500
  // 'Create option "{0}"' => Create option "xxxxx"
497
- var newLabel = item.create ? /*#__PURE__*/React.createElement("span", null, tplTransform(locale === null || locale === void 0 ? void 0 : locale.createOption, label)) : label;
501
+ var newLabel = item.create ? /*#__PURE__*/React.createElement("span", null, tplTransform(locale.createOption, label)) : label;
498
502
  return renderMenuItem ? renderMenuItem(newLabel, item) : newLabel;
499
503
  };
500
504
 
@@ -608,7 +612,8 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
608
612
  maxHeight: menuMaxHeight,
609
613
  data: items,
610
614
  group: !isUndefined(groupBy),
611
- onSelect: multi ? handleCheckTag : handleSelectItem,
615
+ onSelect: multi ? handleCheckTag : handleSelectItem // fixme don't use any
616
+ ,
612
617
  renderMenuGroup: renderMenuGroup,
613
618
  renderMenuItem: renderDropdownMenuItem,
614
619
  virtualized: virtualized
@@ -701,7 +706,7 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
701
706
  plaintext: plaintext,
702
707
  ref: targetRef,
703
708
  as: toggleAs,
704
- tabIndex: null,
709
+ tabIndex: undefined,
705
710
  onClean: handleClean,
706
711
  cleanable: cleanable && !disabled,
707
712
  hasValue: hasValue,
@@ -4,7 +4,7 @@ import useManager from './helper/useManager';
4
4
  export declare type ListContextType = {
5
5
  bordered?: boolean;
6
6
  size?: ListProps['size'];
7
- register?: ReturnType<typeof useManager>['listItemRegister'];
7
+ register: ReturnType<typeof useManager>['listItemRegister'];
8
8
  };
9
9
  declare const ListContext: React.Context<ListContextType>;
10
10
  export default ListContext;
@@ -1,6 +1,12 @@
1
1
  import React from 'react';
2
+ import noop from 'lodash/noop';
2
3
  var ListContext = /*#__PURE__*/React.createContext({
3
4
  bordered: false,
4
- size: 'md'
5
+ size: 'md',
6
+ register: function register() {
7
+ return {
8
+ unregister: noop
9
+ };
10
+ }
5
11
  });
6
12
  export default ListContext;
@@ -17,8 +17,10 @@ var AutoScroller = /*#__PURE__*/function () {
17
17
  var _proto = AutoScroller.prototype;
18
18
 
19
19
  _proto.clear = function clear() {
20
- clearInterval(this.interval);
21
- this.interval = null;
20
+ if (this.interval !== null) {
21
+ clearInterval(this.interval);
22
+ this.interval = null;
23
+ }
22
24
  };
23
25
 
24
26
  _proto.update = function update(_ref) {
@@ -2,10 +2,10 @@ import { Offset } from '../../@types/common';
2
2
  export declare type Collection = string | number;
3
3
  export interface ManagedItem {
4
4
  node: HTMLElement;
5
- edgeOffset: Offset;
5
+ edgeOffset: Offset | null;
6
6
  info: {
7
7
  collection: Collection;
8
- index: number;
8
+ index?: number;
9
9
  disabled?: boolean;
10
10
  };
11
11
  }
@@ -13,7 +13,7 @@ declare const useManager: () => {
13
13
  listItemRegister: (item: ManagedItem) => {
14
14
  unregister: () => void;
15
15
  };
16
- getManagedItem: (node: HTMLElement) => ManagedItem;
16
+ getManagedItem: (node: HTMLElement) => ManagedItem | undefined;
17
17
  getOrderedItems: (collection: any) => ManagedItem[];
18
18
  };
19
19
  export default useManager;
@@ -31,7 +31,7 @@ var useManager = function useManager() {
31
31
  }, []);
32
32
  var getOrderedItems = useCallback(function (collection) {
33
33
  return collection != null ? [].concat(collectionMapRef.current[collection]).sort(function (nodeInfo1, nodeInfo2) {
34
- return nodeInfo1.info.index - nodeInfo2.info.index;
34
+ return Number(nodeInfo1.info.index) - Number(nodeInfo2.info.index);
35
35
  }) : [];
36
36
  }, []);
37
37
  return {
@@ -1,5 +1,5 @@
1
1
  import { MouseEventHandler } from 'react';
2
- import { Collection } from './useManager';
2
+ import { Collection, ManagedItem } from './useManager';
3
3
  interface MovedItemInfo {
4
4
  collection: Collection;
5
5
  node: HTMLElement;
@@ -18,9 +18,9 @@ export declare type SortConfig = {
18
18
  declare const useSortHelper: (config: SortConfig) => {
19
19
  handleStart: MouseEventHandler<Element>;
20
20
  handleEnd: MouseEventHandler<Element>;
21
- containerRef: import("react").MutableRefObject<HTMLDivElement>;
21
+ containerRef: import("react").RefObject<HTMLDivElement>;
22
22
  sorting: boolean;
23
- register: (item: import("./useManager").ManagedItem) => {
23
+ register: (item: ManagedItem) => {
24
24
  unregister: () => void;
25
25
  };
26
26
  };
@@ -38,7 +38,7 @@ var useSortHelper = function useSortHelper(config) {
38
38
  * */
39
39
 
40
40
  var handlePress = useCallback(function (mouseDownEvent, targetNode, curManagedItem) {
41
- var _activeNodeHelper;
41
+ var _curManagedItem$info$, _curManagedItem$info$2, _activeNodeHelper;
42
42
 
43
43
  if (!isMounted()) return;
44
44
  var listItemBaseClassName = targetNode.classList[0]; // get list item base className
@@ -48,8 +48,8 @@ var useSortHelper = function useSortHelper(config) {
48
48
 
49
49
  var containerElement = containerRef.current;
50
50
  var activeNode = curManagedItem.node;
51
- var activeNodeOldIndex = curManagedItem.info.index;
52
- var activeNodeNextIndex = curManagedItem.info.index;
51
+ var activeNodeOldIndex = (_curManagedItem$info$ = curManagedItem.info.index) !== null && _curManagedItem$info$ !== void 0 ? _curManagedItem$info$ : 0;
52
+ var activeNodeNextIndex = (_curManagedItem$info$2 = curManagedItem.info.index) !== null && _curManagedItem$info$2 !== void 0 ? _curManagedItem$info$2 : 0;
53
53
  var activeNodeHolderTranslate = {
54
54
  x: 0,
55
55
  y: 0
@@ -120,8 +120,10 @@ var useSortHelper = function useSortHelper(config) {
120
120
  var activeNodeHeight = parseFloat(activeNodeStyle.height) || 0;
121
121
 
122
122
  for (var i = 0, len = listItemManagerRefs.length; i < len; i++) {
123
+ var _listItemManagerRefs$;
124
+
123
125
  var currentNode = listItemManagerRefs[i].node;
124
- var currentNodeIndex = listItemManagerRefs[i].info.index;
126
+ var currentNodeIndex = (_listItemManagerRefs$ = listItemManagerRefs[i].info.index) !== null && _listItemManagerRefs$ !== void 0 ? _listItemManagerRefs$ : 0;
125
127
  var offsetY = activeNodeBoundingClientRect.height > currentNode.offsetHeight ? currentNode.offsetHeight / 2 : activeNodeBoundingClientRect.height / 2;
126
128
  var translate = {
127
129
  x: 0,
@@ -11,6 +11,6 @@ export declare function setTransitionDuration(node: HTMLElement, duration?: numb
11
11
  /**
12
12
  * find closest target node from source node
13
13
  * */
14
- export declare function closestNode(sourceNode: HTMLElement, judge: (target: HTMLElement) => boolean): HTMLElement;
14
+ export declare function closestNode(sourceNode: HTMLElement, judge: (target: HTMLElement) => boolean): HTMLElement | null;
15
15
  export declare function getEdgeOffset(node: HTMLElement, parent: HTMLElement, offset?: Offset): Offset;
16
- export declare function getScrollingParent(el: HTMLElement): HTMLElement;
16
+ export declare function getScrollingParent(el: HTMLElement): HTMLElement | null;
@@ -34,10 +34,10 @@ export declare type TextMaskProps = TextMaskBaseProps & React.HTMLAttributes<HTM
34
34
  };
35
35
  declare const TextMask: React.ForwardRefExoticComponent<TextMaskBaseProps & React.HTMLAttributes<HTMLInputElement> & {
36
36
  /** Custom rendering DOM */
37
- render?: (ref: React.Ref<HTMLInputElement>, props: React.HTMLAttributes<HTMLInputElement>) => any;
38
- onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;
39
- value?: string | number;
40
- readOnly?: boolean;
41
- disabled?: boolean;
37
+ render?: ((ref: React.Ref<HTMLInputElement>, props: React.HTMLAttributes<HTMLInputElement>) => any) | undefined;
38
+ onChange?: ((event: React.ChangeEvent<HTMLInputElement>) => void) | undefined;
39
+ value?: string | number | undefined;
40
+ readOnly?: boolean | undefined;
41
+ disabled?: boolean | undefined;
42
42
  } & React.RefAttributes<HTMLInputElement>>;
43
43
  export default TextMask;
@@ -1,11 +1,11 @@
1
1
  export default function adjustCaretPosition({ previousConformedValue, previousPlaceholder, currentCaretPosition, conformedValue, rawValue, placeholderChar, placeholder, indexesOfPipedChars, caretTrapIndexes }: {
2
- previousConformedValue?: string;
3
- previousPlaceholder?: string;
4
- currentCaretPosition?: number;
2
+ previousConformedValue?: string | undefined;
3
+ previousPlaceholder?: string | undefined;
4
+ currentCaretPosition?: number | undefined;
5
5
  conformedValue: any;
6
6
  rawValue: any;
7
7
  placeholderChar: any;
8
8
  placeholder: any;
9
- indexesOfPipedChars?: any[];
10
- caretTrapIndexes?: any[];
11
- }): number;
9
+ indexesOfPipedChars?: string[] | undefined;
10
+ caretTrapIndexes?: number[] | undefined;
11
+ }): number | undefined;
@@ -41,7 +41,8 @@ export default function conformToMask(rawValue, mask, config) {
41
41
  placeholderChar = _config$placeholderCh === void 0 ? defaultPlaceholderChar : _config$placeholderCh,
42
42
  _config$placeholder = _config.placeholder,
43
43
  placeholder = _config$placeholder === void 0 ? convertMaskToPlaceholder(mask, placeholderChar) : _config$placeholder,
44
- currentCaretPosition = _config.currentCaretPosition,
44
+ _config$currentCaretP = _config.currentCaretPosition,
45
+ currentCaretPosition = _config$currentCaretP === void 0 ? 0 : _config$currentCaretP,
45
46
  keepCharPositions = _config.keepCharPositions; // The configs below indicate that the user wants the algorithm to work in *no guide* mode
46
47
 
47
48
  var suppressGuide = guide === false && previousConformedValue !== undefined; // Calculate lengths once for performance
@@ -122,9 +123,9 @@ export default function conformToMask(rawValue, mask, config) {
122
123
  // or we find at least one character that we can map.
123
124
  while (rawValueArr.length > 0) {
124
125
  // Let's retrieve the first user character in the queue of characters we have left
125
- var _rawValueArr$shift = rawValueArr.shift(),
126
- rawValueChar = _rawValueArr$shift.char,
127
- isNew = _rawValueArr$shift.isNew; // If the character we got from the user input is a placeholder character (which happens
126
+ var _ref = rawValueArr.shift(),
127
+ rawValueChar = _ref.char,
128
+ isNew = _ref.isNew; // If the character we got from the user input is a placeholder character (which happens
128
129
  // regularly because user input could be something like (540) 90_-____, which includes
129
130
  // a bunch of `_` which are placeholder characters) and we are not in *no guide* mode,
130
131
  // then we map this placeholder character to the current spot in the placeholder
@@ -1,7 +1,7 @@
1
1
  export default function createTextMaskInputElement(config: any): {
2
2
  state: {
3
- previousConformedValue: any;
4
- previousPlaceholder: any;
3
+ previousConformedValue: undefined;
4
+ previousPlaceholder: undefined;
5
5
  };
6
6
  update(rawValue: any, { inputElement, mask: providedMask, guide, pipe, placeholderChar, keepCharPositions, showMask }?: any): void;
7
7
  };
@@ -3,5 +3,5 @@ export declare const defaultPlaceholderChar = "_";
3
3
  export declare function convertMaskToPlaceholder(mask?: MaskType | MaskFunctionType, placeholderChar?: string): string;
4
4
  export declare function processCaretTraps(mask: any): {
5
5
  maskWithoutCaretTraps: any;
6
- indexes: any[];
6
+ indexes: number[];
7
7
  };
package/esm/Menu/Menu.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import React, { useCallback, useContext, useRef, useMemo } from 'react';
3
3
  import PropTypes from 'prop-types';
4
+ import isNil from 'lodash/isNil';
4
5
  import MenuContext, { MenuActionTypes, MoveFocusTo } from './MenuContext';
5
6
  import { KEY_VALUES, useCustom } from '../utils';
6
7
  import useUniqueId from '../utils/useUniqueId';
@@ -25,8 +26,8 @@ function Menu(props) {
25
26
  renderMenuButton = props.renderMenuButton,
26
27
  renderMenuPopup = props.renderMenuPopup,
27
28
  onToggleMenu = props.onToggleMenu;
28
- var buttonElementRef = useRef();
29
- var menuElementRef = useRef();
29
+ var buttonElementRef = useRef(null);
30
+ var menuElementRef = useRef(null);
30
31
  var parentMenu = useContext(MenuContext);
31
32
  var isSubmenu = !!parentMenu;
32
33
  var menu = useMenu();
@@ -39,7 +40,7 @@ function Menu(props) {
39
40
  var _useCustom = useCustom('Menu'),
40
41
  rtl = _useCustom.rtl;
41
42
 
42
- var activeItem = (_items$activeItemInde = items[activeItemIndex]) === null || _items$activeItemInde === void 0 ? void 0 : _items$activeItemInde.element;
43
+ var activeItem = isNil(activeItemIndex) ? null : (_items$activeItemInde = items[activeItemIndex]) === null || _items$activeItemInde === void 0 ? void 0 : _items$activeItemInde.element;
43
44
 
44
45
  var _useFocus = useFocus(menuElementRef),
45
46
  grabFocus = _useFocus.grab;
@@ -74,7 +75,9 @@ function Menu(props) {
74
75
  onToggleMenu === null || onToggleMenu === void 0 ? void 0 : onToggleMenu(false, event);
75
76
 
76
77
  if (returnFocusToButton) {
77
- buttonElementRef.current.focus({
78
+ var _buttonElementRef$cur;
79
+
80
+ (_buttonElementRef$cur = buttonElementRef.current) === null || _buttonElementRef$cur === void 0 ? void 0 : _buttonElementRef$cur.focus({
78
81
  preventScroll: true
79
82
  });
80
83
  }
@@ -89,7 +92,9 @@ function Menu(props) {
89
92
  useClickOutside({
90
93
  enabled: open,
91
94
  isOutside: function isOutside(event) {
92
- return !buttonElementRef.current.contains(event.target) && !menuElementRef.current.contains(event.target);
95
+ var _buttonElementRef$cur2, _menuElementRef$curre;
96
+
97
+ return !((_buttonElementRef$cur2 = buttonElementRef.current) !== null && _buttonElementRef$cur2 !== void 0 && _buttonElementRef$cur2.contains(event.target)) && !((_menuElementRef$curre = menuElementRef.current) !== null && _menuElementRef$curre !== void 0 && _menuElementRef$curre.contains(event.target));
93
98
  },
94
99
  // fixme if clicking on a focusable element, don't move focus to menu button
95
100
  handle: function handle(event) {
@@ -330,7 +335,8 @@ function Menu(props) {
330
335
 
331
336
  var customMenuPopup = renderMenuPopup === null || renderMenuPopup === void 0 ? void 0 : renderMenuPopup(_extends({}, menuProps, {
332
337
  open: open
333
- }), menuElementRef);
338
+ }), menuElementRef); // fixme Wrong children here
339
+
334
340
  var menuElement = customMenuPopup !== null && customMenuPopup !== void 0 ? customMenuPopup : /*#__PURE__*/React.createElement("ul", _extends({
335
341
  ref: menuElementRef
336
342
  }, menuProps, {
@@ -346,7 +352,7 @@ function Menu(props) {
346
352
  closeMenu(e);
347
353
  }
348
354
  }, [disabled, closeMenu]);
349
- var rootElementRef = useRef();
355
+ var rootElementRef = useRef(null);
350
356
  var handleContainerBlur = useCallback(function (event) {
351
357
  if (isFocusLeaving(event)) {
352
358
  closeMenu(event, false);
@@ -47,5 +47,5 @@ export declare type MenuAction = {
47
47
  to: MoveFocusTo.Specific;
48
48
  id: string;
49
49
  };
50
- declare const MenuContext: React.Context<MenuContextProps>;
50
+ declare const MenuContext: React.Context<MenuContextProps | null>;
51
51
  export default MenuContext;
@@ -8,7 +8,7 @@ export interface MenuItemProps {
8
8
  /** Render prop */
9
9
  children: (menuitem: React.LiHTMLAttributes<HTMLLIElement> & MenuitemRenderProps, ref: React.Ref<HTMLLIElement>) => React.ReactElement;
10
10
  /** Callback when menuitem is being activated */
11
- onActivate?: (event: React.SyntheticEvent) => void;
11
+ onActivate?: React.MouseEventHandler;
12
12
  }
13
13
  export interface MenuitemRenderProps {
14
14
  selected: boolean;
@@ -1,5 +1,6 @@
1
1
  import { useCallback, useContext, useEffect, useRef } from 'react';
2
2
  import PropTypes from 'prop-types';
3
+ import isNil from 'lodash/isNil';
3
4
  import useUniqueId from '../utils/useUniqueId';
4
5
  import MenuContext, { MenuActionTypes, MoveFocusTo } from './MenuContext';
5
6
 
@@ -7,22 +8,24 @@ import MenuContext, { MenuActionTypes, MoveFocusTo } from './MenuContext';
7
8
  * Headless ARIA `menuitem`
8
9
  */
9
10
  function MenuItem(props) {
10
- var _menuState$items$menu;
11
-
12
11
  var children = props.children,
13
- selected = props.selected,
14
- disabled = props.disabled,
12
+ _props$selected = props.selected,
13
+ selected = _props$selected === void 0 ? false : _props$selected,
14
+ _props$disabled = props.disabled,
15
+ disabled = _props$disabled === void 0 ? false : _props$disabled,
15
16
  onActivate = props.onActivate;
16
- var menuitemRef = useRef();
17
+ var menuitemRef = useRef(null);
17
18
  var menuitemId = useUniqueId('menuitem-');
18
- var menu = useContext(MenuContext); // fixme make sure <MenuItem> is used inside a <Menu>
19
+ var menu = useContext(MenuContext);
19
20
 
20
- var _ref = menu !== null && menu !== void 0 ? menu : [],
21
- menuState = _ref[0],
22
- dispatch = _ref[1]; // Whether this menuitem has focus (indicated by `aria-activedescendant` from parent menu)
21
+ if (!menu) {
22
+ throw new Error('<MenuItem> must be rendered within a <Menu>');
23
+ }
23
24
 
25
+ var menuState = menu[0],
26
+ dispatch = menu[1]; // Whether this menuitem has focus (indicated by `aria-activedescendant` from parent menu)
24
27
 
25
- var hasFocus = (menuState === null || menuState === void 0 ? void 0 : (_menuState$items$menu = menuState.items[menuState === null || menuState === void 0 ? void 0 : menuState.activeItemIndex]) === null || _menuState$items$menu === void 0 ? void 0 : _menuState$items$menu.element) === menuitemRef.current && !!menuitemRef.current;
28
+ var hasFocus = !isNil(menuitemRef.current) && !isNil(menuState.activeItemIndex) && menuState.items[menuState.activeItemIndex].element === menuitemRef.current;
26
29
  var handleClick = useCallback(function (event) {
27
30
  if (disabled) {
28
31
  return;
@@ -32,17 +35,17 @@ function MenuItem(props) {
32
35
  }, [disabled, onActivate]); // Gain/release focus on mousedown in `menubar`
33
36
 
34
37
  var handleMouseDown = useCallback(function () {
35
- if (!hasFocus) {
38
+ if (!isNil(menuitemRef.current) && !hasFocus) {
36
39
  dispatch({
37
40
  type: MenuActionTypes.MoveFocus,
38
41
  to: MoveFocusTo.Specific,
39
42
  id: menuitemRef.current.id
40
43
  });
41
44
  }
42
- }, [hasFocus, dispatch]); // Gain/release focus on mouseenter/mouseleave in `menu`
45
+ }, [dispatch, hasFocus]); // Gain/release focus on mouseenter/mouseleave in `menu`
43
46
 
44
47
  var handleMouseMove = useCallback(function () {
45
- if (!hasFocus) {
48
+ if (!isNil(menuitemRef.current) && !hasFocus) {
46
49
  dispatch({
47
50
  type: MenuActionTypes.MoveFocus,
48
51
  to: MoveFocusTo.Specific,
@@ -58,7 +61,7 @@ function MenuItem(props) {
58
61
  }, [dispatch]);
59
62
  useEffect(function () {
60
63
  var menuitemElement = menuitemRef.current;
61
- dispatch === null || dispatch === void 0 ? void 0 : dispatch({
64
+ dispatch({
62
65
  type: MenuActionTypes.RegisterItem,
63
66
  element: menuitemElement,
64
67
  props: {
@@ -66,7 +69,7 @@ function MenuItem(props) {
66
69
  }
67
70
  });
68
71
  return function () {
69
- dispatch === null || dispatch === void 0 ? void 0 : dispatch({
72
+ dispatch({
70
73
  type: MenuActionTypes.UnregisterItem,
71
74
  id: menuitemElement.id
72
75
  });
@@ -1,12 +1,11 @@
1
1
  // Headless ARIA `menubar`
2
2
  import React, { useCallback, useRef } from 'react';
3
+ import isNil from 'lodash/isNil';
3
4
  import MenuContext, { MenuActionTypes, MoveFocusTo } from './MenuContext';
4
5
  import { KEY_VALUES, useCustom } from '../utils';
5
6
  import { isFocusEntering, isFocusLeaving } from '../utils/events';
6
7
  import useMenu from './useMenu';
7
8
  export default function Menubar(_ref) {
8
- var _items$activeItemInde;
9
-
10
9
  var _ref$vertical = _ref.vertical,
11
10
  vertical = _ref$vertical === void 0 ? false : _ref$vertical,
12
11
  children = _ref.children,
@@ -18,7 +17,7 @@ export default function Menubar(_ref) {
18
17
  items = _menubar$.items,
19
18
  activeItemIndex = _menubar$.activeItemIndex,
20
19
  dispatch = menubar[1];
21
- var menubarElementRef = useRef();
20
+ var menubarElementRef = useRef(null);
22
21
  var onFocus = useCallback(function (event) {
23
22
  // Focus moves inside Menubar
24
23
  if (isFocusEntering(event)) {
@@ -44,7 +43,7 @@ export default function Menubar(_ref) {
44
43
  rtl = _useCustom.rtl;
45
44
 
46
45
  var onKeyDown = useCallback(function (event) {
47
- var activeItem = items[activeItemIndex];
46
+ var activeItemElement = isNil(activeItemIndex) ? null : items[activeItemIndex].element;
48
47
 
49
48
  switch (true) {
50
49
  case !vertical && !rtl && event.key === KEY_VALUES.RIGHT:
@@ -90,10 +89,10 @@ export default function Menubar(_ref) {
90
89
  case !vertical && event.key === KEY_VALUES.DOWN:
91
90
  case vertical && !rtl && event.key === KEY_VALUES.RIGHT:
92
91
  case vertical && rtl && event.key === KEY_VALUES.LEFT:
93
- if ((activeItem === null || activeItem === void 0 ? void 0 : activeItem.element.getAttribute('aria-haspopup')) === 'menu') {
92
+ if ((activeItemElement === null || activeItemElement === void 0 ? void 0 : activeItemElement.getAttribute('aria-haspopup')) === 'menu') {
94
93
  event.preventDefault();
95
94
  event.stopPropagation();
96
- activeItem.element.click();
95
+ activeItemElement.click();
97
96
  }
98
97
 
99
98
  break;
@@ -102,7 +101,7 @@ export default function Menubar(_ref) {
102
101
  case event.key === KEY_VALUES.SPACE:
103
102
  event.preventDefault();
104
103
  event.stopPropagation();
105
- activeItem === null || activeItem === void 0 ? void 0 : activeItem.element.click();
104
+ activeItemElement === null || activeItemElement === void 0 ? void 0 : activeItemElement.click();
106
105
  break;
107
106
  }
108
107
  }, [rtl, items, activeItemIndex, dispatch, vertical]); // Only used for handling click events bubbling from children
@@ -124,7 +123,7 @@ export default function Menubar(_ref) {
124
123
  onBlur: onBlur,
125
124
  onKeyDown: onKeyDown,
126
125
  onClick: onClick,
127
- 'aria-activedescendant': (_items$activeItemInde = items[activeItemIndex]) === null || _items$activeItemInde === void 0 ? void 0 : _items$activeItemInde.element.id,
126
+ 'aria-activedescendant': isNil(activeItemIndex) ? undefined : items[activeItemIndex].element.id,
128
127
  'aria-orientation': vertical ? 'vertical' : undefined // implicitly set 'horizontal'
129
128
 
130
129
  }, menubarElementRef));