rsuite 5.40.0 → 5.41.0

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 (886) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/Navbar/styles/index.less +1 -1
  3. package/SelectPicker/styles/index.less +4 -8
  4. package/cjs/@types/common.js +1 -0
  5. package/cjs/@types/utils.js +12 -2
  6. package/cjs/Affix/Affix.js +39 -59
  7. package/cjs/Affix/index.js +1 -3
  8. package/cjs/Animation/Bounce.js +4 -13
  9. package/cjs/Animation/Collapse.js +19 -40
  10. package/cjs/Animation/Fade.js +6 -15
  11. package/cjs/Animation/Slide.js +6 -15
  12. package/cjs/Animation/Transition.js +16 -83
  13. package/cjs/Animation/index.js +1 -7
  14. package/cjs/Animation/utils.js +1 -6
  15. package/cjs/AutoComplete/AutoComplete.js +55 -90
  16. package/cjs/AutoComplete/index.js +1 -3
  17. package/cjs/AutoComplete/utils.js +1 -9
  18. package/cjs/Avatar/Avatar.js +18 -32
  19. package/cjs/Avatar/index.js +1 -3
  20. package/cjs/AvatarGroup/AvatarGroup.js +13 -27
  21. package/cjs/AvatarGroup/index.js +1 -3
  22. package/cjs/Badge/Badge.js +14 -27
  23. package/cjs/Badge/index.js +1 -3
  24. package/cjs/Breadcrumb/Breadcrumb.js +19 -41
  25. package/cjs/Breadcrumb/BreadcrumbItem.js +14 -26
  26. package/cjs/Breadcrumb/index.js +1 -3
  27. package/cjs/Button/Button.js +22 -40
  28. package/cjs/Button/index.js +1 -3
  29. package/cjs/ButtonGroup/ButtonGroup.js +15 -26
  30. package/cjs/ButtonGroup/ButtonGroupContext.js +1 -4
  31. package/cjs/ButtonGroup/index.js +1 -4
  32. package/cjs/ButtonToolbar/ButtonToolbar.js +10 -20
  33. package/cjs/ButtonToolbar/index.js +1 -3
  34. package/cjs/Calendar/Calendar.js +24 -43
  35. package/cjs/Calendar/CalendarBody.js +14 -28
  36. package/cjs/Calendar/CalendarContainer.js +46 -69
  37. package/cjs/Calendar/CalendarContext.js +1 -6
  38. package/cjs/Calendar/CalendarHeader.js +32 -59
  39. package/cjs/Calendar/MonthDropdown.js +22 -45
  40. package/cjs/Calendar/MonthDropdownItem.js +16 -31
  41. package/cjs/Calendar/Table.js +10 -21
  42. package/cjs/Calendar/TableHeaderRow.js +11 -25
  43. package/cjs/Calendar/TableRow.js +35 -66
  44. package/cjs/Calendar/TimeDropdown.js +24 -64
  45. package/cjs/Calendar/index.js +1 -8
  46. package/cjs/Calendar/types.js +1 -0
  47. package/cjs/Calendar/useCalendarDate.js +3 -13
  48. package/cjs/Calendar/useCalendarState.js +3 -8
  49. package/cjs/Carousel/Carousel.js +40 -65
  50. package/cjs/Carousel/index.js +1 -3
  51. package/cjs/Cascader/Cascader.js +126 -197
  52. package/cjs/Cascader/DropdownMenu.js +33 -65
  53. package/cjs/Cascader/index.js +1 -3
  54. package/cjs/Cascader/utils.js +13 -24
  55. package/cjs/CheckPicker/CheckPicker.js +105 -156
  56. package/cjs/CheckPicker/index.js +1 -3
  57. package/cjs/CheckTree/index.js +1 -8
  58. package/cjs/CheckTreePicker/CheckTreeNode.js +28 -54
  59. package/cjs/CheckTreePicker/CheckTreePicker.js +165 -247
  60. package/cjs/CheckTreePicker/index.js +1 -3
  61. package/cjs/CheckTreePicker/utils.js +12 -52
  62. package/cjs/Checkbox/Checkbox.js +48 -77
  63. package/cjs/Checkbox/index.js +1 -3
  64. package/cjs/CheckboxGroup/CheckboxGroup.js +20 -38
  65. package/cjs/CheckboxGroup/CheckboxGroupContext.js +1 -4
  66. package/cjs/CheckboxGroup/index.js +1 -4
  67. package/cjs/CloseButton/CloseButton.js +10 -20
  68. package/cjs/CloseButton/index.js +1 -3
  69. package/cjs/Col/Col.js +10 -23
  70. package/cjs/Col/index.js +1 -3
  71. package/cjs/Container/Container.js +11 -24
  72. package/cjs/Container/index.js +1 -3
  73. package/cjs/Content/Content.js +1 -3
  74. package/cjs/Content/index.js +1 -3
  75. package/cjs/CustomProvider/CustomProvider.js +13 -28
  76. package/cjs/CustomProvider/FormattedDate.js +3 -9
  77. package/cjs/CustomProvider/index.js +1 -6
  78. package/cjs/DOMHelper/index.js +1 -7
  79. package/cjs/DOMHelper/isElement.js +1 -2
  80. package/cjs/DatePicker/DatePicker.js +108 -161
  81. package/cjs/DatePicker/PredefinedRanges.js +12 -29
  82. package/cjs/DatePicker/Toolbar.js +20 -36
  83. package/cjs/DatePicker/index.js +1 -3
  84. package/cjs/DatePicker/types.js +1 -0
  85. package/cjs/DatePicker/utils.js +5 -13
  86. package/cjs/DateRangePicker/Calendar.js +18 -28
  87. package/cjs/DateRangePicker/DateRangePicker.js +128 -207
  88. package/cjs/DateRangePicker/DateRangePickerContext.js +1 -6
  89. package/cjs/DateRangePicker/disabledDateUtils.js +9 -32
  90. package/cjs/DateRangePicker/index.js +1 -3
  91. package/cjs/DateRangePicker/types.js +1 -0
  92. package/cjs/DateRangePicker/utils.js +7 -20
  93. package/cjs/Disclosure/Disclosure.js +14 -34
  94. package/cjs/Disclosure/DisclosureButton.js +4 -12
  95. package/cjs/Disclosure/DisclosureContent.js +1 -5
  96. package/cjs/Disclosure/DisclosureContext.js +1 -6
  97. package/cjs/Disclosure/index.js +1 -3
  98. package/cjs/Disclosure/useDisclosureContext.js +1 -6
  99. package/cjs/Divider/Divider.js +11 -20
  100. package/cjs/Divider/index.js +1 -3
  101. package/cjs/Drawer/Drawer.js +10 -27
  102. package/cjs/Drawer/index.js +1 -3
  103. package/cjs/Dropdown/Dropdown.js +35 -68
  104. package/cjs/Dropdown/DropdownContext.js +1 -4
  105. package/cjs/Dropdown/DropdownItem.js +22 -49
  106. package/cjs/Dropdown/DropdownMenu.js +36 -63
  107. package/cjs/Dropdown/DropdownSeparator.js +8 -17
  108. package/cjs/Dropdown/DropdownState.js +1 -10
  109. package/cjs/Dropdown/DropdownToggle.js +17 -29
  110. package/cjs/Dropdown/index.js +1 -3
  111. package/cjs/Dropdown/useRenderDropdownItem.js +1 -5
  112. package/cjs/FlexboxGrid/FlexboxGrid.js +12 -22
  113. package/cjs/FlexboxGrid/FlexboxGridItem.js +12 -22
  114. package/cjs/FlexboxGrid/index.js +1 -3
  115. package/cjs/Footer/Footer.js +1 -3
  116. package/cjs/Footer/index.js +1 -3
  117. package/cjs/Form/Form.js +36 -76
  118. package/cjs/Form/FormContext.js +1 -8
  119. package/cjs/Form/index.js +1 -4
  120. package/cjs/Form/useFormClassNames.js +11 -14
  121. package/cjs/Form/useSchemaModel.js +2 -6
  122. package/cjs/FormControl/FormControl.js +50 -82
  123. package/cjs/FormControl/index.js +1 -3
  124. package/cjs/FormControl/useRegisterModel.js +1 -3
  125. package/cjs/FormControlLabel/FormControlLabel.js +10 -22
  126. package/cjs/FormControlLabel/index.js +1 -3
  127. package/cjs/FormErrorMessage/FormErrorMessage.js +12 -27
  128. package/cjs/FormErrorMessage/index.js +1 -3
  129. package/cjs/FormGroup/FormGroup.js +9 -21
  130. package/cjs/FormGroup/index.js +1 -3
  131. package/cjs/FormHelpText/FormHelpText.js +11 -28
  132. package/cjs/FormHelpText/index.js +1 -3
  133. package/cjs/Grid/Grid.js +10 -19
  134. package/cjs/Grid/index.js +1 -3
  135. package/cjs/Header/Header.js +1 -3
  136. package/cjs/Header/index.js +1 -3
  137. package/cjs/IconButton/IconButton.js +11 -21
  138. package/cjs/IconButton/index.js +1 -3
  139. package/cjs/Input/Input.js +26 -43
  140. package/cjs/Input/index.js +1 -3
  141. package/cjs/InputGroup/InputGroup.js +23 -39
  142. package/cjs/InputGroup/InputGroupAddon.js +9 -18
  143. package/cjs/InputGroup/InputGroupButton.js +7 -17
  144. package/cjs/InputGroup/index.js +1 -3
  145. package/cjs/InputNumber/InputNumber.js +42 -88
  146. package/cjs/InputNumber/index.js +1 -3
  147. package/cjs/InputPicker/InputAutosize.js +17 -42
  148. package/cjs/InputPicker/InputPicker.js +149 -250
  149. package/cjs/InputPicker/InputSearch.js +15 -28
  150. package/cjs/InputPicker/index.js +1 -3
  151. package/cjs/List/List.js +37 -51
  152. package/cjs/List/ListContext.js +1 -5
  153. package/cjs/List/ListItem.js +26 -40
  154. package/cjs/List/helper/AutoScroller.js +11 -21
  155. package/cjs/List/helper/useManager.js +1 -8
  156. package/cjs/List/helper/useSortHelper.js +58 -82
  157. package/cjs/List/helper/utils.js +6 -19
  158. package/cjs/List/index.js +1 -3
  159. package/cjs/Loader/Loader.js +17 -26
  160. package/cjs/Loader/index.js +1 -3
  161. package/cjs/MaskedInput/MaskedInput.js +2 -8
  162. package/cjs/MaskedInput/TextMask.js +14 -23
  163. package/cjs/MaskedInput/adjustCaretPosition.js +99 -70
  164. package/cjs/MaskedInput/conformToMask.js +79 -73
  165. package/cjs/MaskedInput/createTextMaskInputElement.js +65 -71
  166. package/cjs/MaskedInput/index.js +1 -3
  167. package/cjs/MaskedInput/types.js +1 -0
  168. package/cjs/MaskedInput/utilities.js +1 -8
  169. package/cjs/Menu/Menu.js +35 -79
  170. package/cjs/Menu/MenuContext.js +1 -8
  171. package/cjs/Menu/MenuItem.js +15 -26
  172. package/cjs/Menu/Menubar.js +13 -32
  173. package/cjs/Menu/index.js +1 -3
  174. package/cjs/Menu/useMenu.js +5 -34
  175. package/cjs/Message/Message.js +23 -45
  176. package/cjs/Message/index.js +1 -3
  177. package/cjs/Modal/Modal.js +70 -91
  178. package/cjs/Modal/ModalBody.js +11 -25
  179. package/cjs/Modal/ModalContext.js +1 -4
  180. package/cjs/Modal/ModalDialog.js +14 -26
  181. package/cjs/Modal/ModalFooter.js +1 -3
  182. package/cjs/Modal/ModalHeader.js +14 -29
  183. package/cjs/Modal/ModalTitle.js +9 -20
  184. package/cjs/Modal/index.js +1 -3
  185. package/cjs/Modal/utils.js +8 -19
  186. package/cjs/MultiCascader/DropdownMenu.js +38 -64
  187. package/cjs/MultiCascader/MultiCascader.js +129 -192
  188. package/cjs/MultiCascader/index.js +1 -3
  189. package/cjs/MultiCascader/utils.js +44 -106
  190. package/cjs/Nav/Nav.js +27 -69
  191. package/cjs/Nav/NavContext.js +1 -4
  192. package/cjs/Nav/NavDropdown.js +28 -60
  193. package/cjs/Nav/NavDropdownItem.js +20 -42
  194. package/cjs/Nav/NavDropdownMenu.js +26 -54
  195. package/cjs/Nav/NavDropdownToggle.js +12 -26
  196. package/cjs/Nav/NavItem.js +20 -39
  197. package/cjs/Nav/NavMenu.js +2 -28
  198. package/cjs/Nav/index.js +1 -3
  199. package/cjs/Navbar/Navbar.js +10 -23
  200. package/cjs/Navbar/NavbarBody.js +1 -6
  201. package/cjs/Navbar/NavbarBrand.js +1 -3
  202. package/cjs/Navbar/NavbarDropdown.js +25 -49
  203. package/cjs/Navbar/NavbarDropdownItem.js +18 -44
  204. package/cjs/Navbar/NavbarDropdownMenu.js +22 -51
  205. package/cjs/Navbar/NavbarDropdownToggle.js +12 -25
  206. package/cjs/Navbar/NavbarHeader.js +1 -6
  207. package/cjs/Navbar/NavbarItem.js +19 -35
  208. package/cjs/Navbar/index.js +1 -3
  209. package/cjs/Notification/Notification.js +20 -43
  210. package/cjs/Notification/index.js +1 -3
  211. package/cjs/Overlay/Modal.js +40 -79
  212. package/cjs/Overlay/ModalManager.js +1 -26
  213. package/cjs/Overlay/Overlay.js +28 -50
  214. package/cjs/Overlay/OverlayContext.js +1 -4
  215. package/cjs/Overlay/OverlayTrigger.js +67 -116
  216. package/cjs/Overlay/Position.js +25 -64
  217. package/cjs/Overlay/index.js +1 -3
  218. package/cjs/Overlay/positionUtils.js +25 -86
  219. package/cjs/Pagination/Pagination.js +30 -70
  220. package/cjs/Pagination/PaginationButton.js +15 -29
  221. package/cjs/Pagination/PaginationGroup.js +38 -63
  222. package/cjs/Pagination/index.js +1 -3
  223. package/cjs/Panel/Panel.js +37 -61
  224. package/cjs/Panel/index.js +1 -3
  225. package/cjs/PanelGroup/PanelGroup.js +16 -29
  226. package/cjs/PanelGroup/index.js +1 -3
  227. package/cjs/Picker/DropdownMenu.js +50 -93
  228. package/cjs/Picker/DropdownMenuCheckItem.js +22 -33
  229. package/cjs/Picker/DropdownMenuGroup.js +10 -22
  230. package/cjs/Picker/DropdownMenuItem.js +15 -26
  231. package/cjs/Picker/PickerOverlay.js +12 -28
  232. package/cjs/Picker/PickerToggle.js +57 -89
  233. package/cjs/Picker/PickerToggleTrigger.js +8 -19
  234. package/cjs/Picker/SearchBar.js +14 -26
  235. package/cjs/Picker/SelectedElement.js +9 -17
  236. package/cjs/Picker/ToggleButton.js +1 -6
  237. package/cjs/Picker/index.js +1 -24
  238. package/cjs/Picker/propTypes.js +1 -7
  239. package/cjs/Picker/types.js +1 -0
  240. package/cjs/Picker/utils.js +94 -200
  241. package/cjs/Placeholder/Placeholder.js +1 -5
  242. package/cjs/Placeholder/PlaceholderGraph.js +13 -22
  243. package/cjs/Placeholder/PlaceholderGrid.js +18 -34
  244. package/cjs/Placeholder/PlaceholderParagraph.js +17 -29
  245. package/cjs/Placeholder/index.js +1 -3
  246. package/cjs/Plaintext/Plaintext.js +14 -23
  247. package/cjs/Plaintext/index.js +1 -3
  248. package/cjs/Popover/Popover.js +16 -27
  249. package/cjs/Popover/index.js +1 -3
  250. package/cjs/Progress/Progress.js +1 -4
  251. package/cjs/Progress/ProgressCircle.js +30 -47
  252. package/cjs/Progress/ProgressLine.js +19 -29
  253. package/cjs/Progress/index.js +1 -3
  254. package/cjs/Radio/Radio.js +42 -62
  255. package/cjs/Radio/index.js +1 -3
  256. package/cjs/RadioGroup/RadioGroup.js +22 -37
  257. package/cjs/RadioGroup/index.js +1 -3
  258. package/cjs/RadioTile/RadioTile.js +30 -47
  259. package/cjs/RadioTile/index.js +1 -3
  260. package/cjs/RadioTileGroup/RadioTileGroup.js +17 -32
  261. package/cjs/RadioTileGroup/index.js +1 -3
  262. package/cjs/RangeSlider/RangeSlider.js +63 -104
  263. package/cjs/RangeSlider/index.js +1 -3
  264. package/cjs/Rate/Character.js +16 -31
  265. package/cjs/Rate/Rate.js +35 -62
  266. package/cjs/Rate/index.js +1 -3
  267. package/cjs/Rate/utils.js +1 -6
  268. package/cjs/Ripple/Ripple.js +16 -40
  269. package/cjs/Ripple/index.js +1 -3
  270. package/cjs/Row/Row.js +11 -22
  271. package/cjs/Row/index.js +1 -3
  272. package/cjs/SafeAnchor/SafeAnchor.js +8 -19
  273. package/cjs/SafeAnchor/index.js +1 -3
  274. package/cjs/Schema/Schema.js +1 -2
  275. package/cjs/Schema/index.js +1 -3
  276. package/cjs/SelectPicker/SelectPicker.js +136 -170
  277. package/cjs/SelectPicker/index.js +1 -3
  278. package/cjs/Sidebar/Sidebar.js +13 -26
  279. package/cjs/Sidebar/index.js +1 -3
  280. package/cjs/Sidenav/ExpandedSidenavDropdown.js +32 -54
  281. package/cjs/Sidenav/ExpandedSidenavDropdownItem.js +19 -41
  282. package/cjs/Sidenav/ExpandedSidenavDropdownMenu.js +22 -46
  283. package/cjs/Sidenav/Node.js +1 -12
  284. package/cjs/Sidenav/Sidenav.js +22 -45
  285. package/cjs/Sidenav/SidenavBody.js +1 -3
  286. package/cjs/Sidenav/SidenavDropdown.js +39 -70
  287. package/cjs/Sidenav/SidenavDropdownCollapse.js +9 -22
  288. package/cjs/Sidenav/SidenavDropdownItem.js +19 -45
  289. package/cjs/Sidenav/SidenavDropdownMenu.js +26 -54
  290. package/cjs/Sidenav/SidenavDropdownToggle.js +12 -25
  291. package/cjs/Sidenav/SidenavHeader.js +1 -3
  292. package/cjs/Sidenav/SidenavItem.js +27 -55
  293. package/cjs/Sidenav/SidenavToggle.js +11 -31
  294. package/cjs/Sidenav/index.js +1 -3
  295. package/cjs/Slider/Graduated.js +14 -29
  296. package/cjs/Slider/Handle.js +27 -52
  297. package/cjs/Slider/Input.js +2 -8
  298. package/cjs/Slider/Mark.js +11 -20
  299. package/cjs/Slider/ProgressBar.js +14 -23
  300. package/cjs/Slider/Slider.js +51 -84
  301. package/cjs/Slider/index.js +1 -3
  302. package/cjs/Slider/utils.js +1 -6
  303. package/cjs/Stack/Stack.js +22 -35
  304. package/cjs/Stack/StackItem.js +11 -17
  305. package/cjs/Stack/index.js +1 -3
  306. package/cjs/Steps/StepItem.js +16 -32
  307. package/cjs/Steps/Steps.js +18 -32
  308. package/cjs/Steps/index.js +1 -3
  309. package/cjs/Table/Table.js +6 -16
  310. package/cjs/Table/index.js +1 -3
  311. package/cjs/Tag/Tag.js +16 -28
  312. package/cjs/Tag/index.js +1 -3
  313. package/cjs/TagGroup/TagGroup.js +1 -3
  314. package/cjs/TagGroup/index.js +1 -3
  315. package/cjs/TagInput/index.js +7 -14
  316. package/cjs/TagPicker/index.js +5 -12
  317. package/cjs/Timeline/Timeline.js +14 -29
  318. package/cjs/Timeline/TimelineItem.js +14 -23
  319. package/cjs/Timeline/index.js +1 -3
  320. package/cjs/Toggle/Toggle.js +26 -45
  321. package/cjs/Toggle/index.js +1 -3
  322. package/cjs/Tooltip/Tooltip.js +13 -22
  323. package/cjs/Tooltip/index.js +1 -3
  324. package/cjs/Tree/Tree.js +1 -10
  325. package/cjs/Tree/TreeContext.js +1 -4
  326. package/cjs/Tree/index.js +1 -3
  327. package/cjs/TreePicker/TreeNode.js +37 -60
  328. package/cjs/TreePicker/TreePicker.js +155 -231
  329. package/cjs/TreePicker/index.js +1 -3
  330. package/cjs/Uploader/UploadFileItem.js +37 -82
  331. package/cjs/Uploader/UploadTrigger.js +24 -46
  332. package/cjs/Uploader/Uploader.js +89 -141
  333. package/cjs/Uploader/index.js +1 -3
  334. package/cjs/Whisper/Whisper.js +8 -20
  335. package/cjs/Whisper/index.js +1 -3
  336. package/cjs/Windowing/AutoSizer.js +13 -33
  337. package/cjs/Windowing/List.d.ts +2 -2
  338. package/cjs/Windowing/List.js +6 -22
  339. package/cjs/Windowing/index.js +1 -7
  340. package/cjs/index.js +1 -164
  341. package/cjs/locales/ar_EG.js +1 -4
  342. package/cjs/locales/da_DK.js +1 -5
  343. package/cjs/locales/de_DE.js +1 -5
  344. package/cjs/locales/default.js +1 -5
  345. package/cjs/locales/en_GB.js +1 -3
  346. package/cjs/locales/en_US.js +1 -4
  347. package/cjs/locales/es_AR.js +1 -5
  348. package/cjs/locales/es_ES.js +1 -5
  349. package/cjs/locales/fa_IR.js +1 -4
  350. package/cjs/locales/fi_FI.js +1 -5
  351. package/cjs/locales/fr_FR.js +1 -4
  352. package/cjs/locales/hu_HU.js +1 -5
  353. package/cjs/locales/index.js +1 -47
  354. package/cjs/locales/it_IT.js +1 -5
  355. package/cjs/locales/ja_JP.js +1 -5
  356. package/cjs/locales/kk_KZ.js +1 -4
  357. package/cjs/locales/ko_KR.js +1 -5
  358. package/cjs/locales/ne_NP.js +1 -5
  359. package/cjs/locales/nl_NL.js +1 -4
  360. package/cjs/locales/pt_BR.js +1 -4
  361. package/cjs/locales/ru_RU.js +1 -4
  362. package/cjs/locales/sv_SE.js +1 -5
  363. package/cjs/locales/tr_TR.js +1 -4
  364. package/cjs/locales/zh_CN.js +1 -4
  365. package/cjs/locales/zh_TW.js +1 -4
  366. package/cjs/toaster/ToastContainer.js +29 -52
  367. package/cjs/toaster/ToastContext.js +1 -4
  368. package/cjs/toaster/index.js +1 -4
  369. package/cjs/toaster/toaster.js +4 -27
  370. package/cjs/toaster/useToaster.js +2 -8
  371. package/cjs/utils/BrowserDetection.js +7 -24
  372. package/cjs/utils/ReactChildren.js +2 -19
  373. package/cjs/utils/ajaxUpload.js +15 -33
  374. package/cjs/utils/appendTooltip.js +3 -9
  375. package/cjs/utils/attachParent.js +1 -1
  376. package/cjs/utils/clone.js +1 -2
  377. package/cjs/utils/composeFunctions.js +1 -3
  378. package/cjs/utils/constants.js +3 -8
  379. package/cjs/utils/createChainedFunction.js +2 -6
  380. package/cjs/utils/createComponent.js +12 -24
  381. package/cjs/utils/dateUtils.js +7 -121
  382. package/cjs/utils/deprecateComponent.js +1 -8
  383. package/cjs/utils/deprecatePropType.js +2 -9
  384. package/cjs/utils/dom.js +3 -2
  385. package/cjs/utils/events.js +2 -3
  386. package/cjs/utils/getDOMNode.js +16 -9
  387. package/cjs/utils/getDataGroupBy.d.ts +0 -23
  388. package/cjs/utils/getDataGroupBy.js +5 -44
  389. package/cjs/utils/getSafeRegExpString.js +1 -1
  390. package/cjs/utils/guid.js +1 -1
  391. package/cjs/utils/htmlPropsUtils.js +23 -20
  392. package/cjs/utils/index.js +1 -86
  393. package/cjs/utils/isOneOf.js +1 -2
  394. package/cjs/utils/mergeRefs.js +1 -2
  395. package/cjs/utils/placementPolyfill.js +2 -5
  396. package/cjs/utils/prefix.js +4 -15
  397. package/cjs/utils/previewFile.js +1 -6
  398. package/cjs/utils/propTypeChecker.js +1 -8
  399. package/cjs/utils/reactToString.js +1 -5
  400. package/cjs/utils/render.js +3 -10
  401. package/cjs/utils/scrollTopAnimation.js +1 -9
  402. package/cjs/utils/shallowEqual.js +8 -14
  403. package/cjs/utils/shallowEqualArray.js +1 -7
  404. package/cjs/utils/statusIcons.js +1 -9
  405. package/cjs/utils/stringToObject.js +1 -7
  406. package/cjs/utils/tplTransform.js +2 -7
  407. package/cjs/utils/treeUtils.js +112 -327
  408. package/cjs/utils/useClassNames.js +9 -15
  409. package/cjs/utils/useClickOutside.js +4 -8
  410. package/cjs/utils/useControlled.js +11 -7
  411. package/cjs/utils/useCustom.js +12 -25
  412. package/cjs/utils/useElementResize.js +1 -6
  413. package/cjs/utils/useEnsuredRef.js +1 -4
  414. package/cjs/utils/useEventCallback.js +1 -4
  415. package/cjs/utils/useEventListener.js +1 -5
  416. package/cjs/utils/useFocus.js +5 -6
  417. package/cjs/utils/useInternalId.js +1 -6
  418. package/cjs/utils/useIsMounted.js +1 -3
  419. package/cjs/utils/useMap.js +5 -7
  420. package/cjs/utils/useMount.js +1 -4
  421. package/cjs/utils/usePortal.js +7 -20
  422. package/cjs/utils/useRootClose.js +9 -19
  423. package/cjs/utils/useTimeout.js +3 -8
  424. package/cjs/utils/useToggleCaret.js +2 -14
  425. package/cjs/utils/useUniqueId.js +2 -9
  426. package/cjs/utils/useUpdateEffect.js +3 -5
  427. package/cjs/utils/useUpdatedRef.js +1 -2
  428. package/cjs/utils/useWillUnmount.js +3 -5
  429. package/cjs/utils/warnOnce.js +2 -2
  430. package/dist/rsuite-no-reset-rtl.css +23 -25
  431. package/dist/rsuite-no-reset-rtl.min.css +1 -1
  432. package/dist/rsuite-no-reset-rtl.min.css.map +1 -1
  433. package/dist/rsuite-no-reset.css +23 -25
  434. package/dist/rsuite-no-reset.min.css +1 -1
  435. package/dist/rsuite-no-reset.min.css.map +1 -1
  436. package/dist/rsuite-rtl.css +23 -25
  437. package/dist/rsuite-rtl.min.css +1 -1
  438. package/dist/rsuite-rtl.min.css.map +1 -1
  439. package/dist/rsuite.css +23 -25
  440. package/dist/rsuite.js +394 -427
  441. package/dist/rsuite.js.map +1 -1
  442. package/dist/rsuite.min.css +1 -1
  443. package/dist/rsuite.min.css.map +1 -1
  444. package/dist/rsuite.min.js +1 -1
  445. package/dist/rsuite.min.js.map +1 -1
  446. package/esm/@types/common.js +1 -0
  447. package/esm/@types/utils.js +14 -2
  448. package/esm/Affix/Affix.js +39 -50
  449. package/esm/Affix/index.js +1 -0
  450. package/esm/Animation/Bounce.js +4 -5
  451. package/esm/Animation/Collapse.js +19 -26
  452. package/esm/Animation/Fade.js +6 -7
  453. package/esm/Animation/Slide.js +6 -7
  454. package/esm/Animation/Transition.js +16 -69
  455. package/esm/Animation/index.js +1 -0
  456. package/esm/Animation/utils.js +1 -2
  457. package/esm/AutoComplete/AutoComplete.js +55 -75
  458. package/esm/AutoComplete/index.js +1 -0
  459. package/esm/AutoComplete/utils.js +1 -4
  460. package/esm/Avatar/Avatar.js +18 -22
  461. package/esm/Avatar/index.js +1 -0
  462. package/esm/AvatarGroup/AvatarGroup.js +13 -16
  463. package/esm/AvatarGroup/index.js +1 -0
  464. package/esm/Badge/Badge.js +14 -19
  465. package/esm/Badge/index.js +1 -0
  466. package/esm/Breadcrumb/Breadcrumb.js +19 -30
  467. package/esm/Breadcrumb/BreadcrumbItem.js +14 -17
  468. package/esm/Breadcrumb/index.js +1 -0
  469. package/esm/Button/Button.js +22 -28
  470. package/esm/Button/index.js +1 -0
  471. package/esm/ButtonGroup/ButtonGroup.js +15 -16
  472. package/esm/ButtonGroup/ButtonGroupContext.js +1 -0
  473. package/esm/ButtonGroup/index.js +1 -0
  474. package/esm/ButtonToolbar/ButtonToolbar.js +10 -12
  475. package/esm/ButtonToolbar/index.js +1 -0
  476. package/esm/Calendar/Calendar.js +24 -29
  477. package/esm/Calendar/CalendarBody.js +14 -18
  478. package/esm/Calendar/CalendarContainer.js +46 -51
  479. package/esm/Calendar/CalendarContext.js +1 -0
  480. package/esm/Calendar/CalendarHeader.js +32 -41
  481. package/esm/Calendar/MonthDropdown.js +22 -27
  482. package/esm/Calendar/MonthDropdownItem.js +16 -20
  483. package/esm/Calendar/Table.js +10 -11
  484. package/esm/Calendar/TableHeaderRow.js +11 -15
  485. package/esm/Calendar/TableRow.js +36 -50
  486. package/esm/Calendar/TimeDropdown.js +24 -48
  487. package/esm/Calendar/index.js +1 -0
  488. package/esm/Calendar/types.js +1 -0
  489. package/esm/Calendar/useCalendarDate.js +3 -11
  490. package/esm/Calendar/useCalendarState.js +3 -6
  491. package/esm/Carousel/Carousel.js +40 -52
  492. package/esm/Carousel/index.js +1 -0
  493. package/esm/Cascader/Cascader.js +126 -178
  494. package/esm/Cascader/DropdownMenu.js +33 -45
  495. package/esm/Cascader/index.js +1 -0
  496. package/esm/Cascader/utils.js +13 -22
  497. package/esm/CheckPicker/CheckPicker.js +105 -139
  498. package/esm/CheckPicker/index.js +1 -0
  499. package/esm/CheckTree/index.js +1 -0
  500. package/esm/CheckTreePicker/CheckTreeNode.js +28 -44
  501. package/esm/CheckTreePicker/CheckTreePicker.js +165 -232
  502. package/esm/CheckTreePicker/index.js +1 -0
  503. package/esm/CheckTreePicker/utils.js +12 -35
  504. package/esm/Checkbox/Checkbox.js +48 -66
  505. package/esm/Checkbox/index.js +1 -0
  506. package/esm/CheckboxGroup/CheckboxGroup.js +20 -25
  507. package/esm/CheckboxGroup/CheckboxGroupContext.js +1 -0
  508. package/esm/CheckboxGroup/index.js +1 -0
  509. package/esm/CloseButton/CloseButton.js +10 -13
  510. package/esm/CloseButton/index.js +1 -0
  511. package/esm/Col/Col.js +10 -13
  512. package/esm/Col/index.js +1 -0
  513. package/esm/Container/Container.js +11 -13
  514. package/esm/Container/index.js +1 -0
  515. package/esm/Content/Content.js +1 -1
  516. package/esm/Content/index.js +1 -0
  517. package/esm/CustomProvider/CustomProvider.js +13 -16
  518. package/esm/CustomProvider/FormattedDate.js +3 -6
  519. package/esm/CustomProvider/index.js +1 -0
  520. package/esm/DOMHelper/index.js +1 -2
  521. package/esm/DOMHelper/isElement.js +1 -1
  522. package/esm/DatePicker/DatePicker.js +108 -131
  523. package/esm/DatePicker/PredefinedRanges.js +12 -19
  524. package/esm/DatePicker/Toolbar.js +20 -26
  525. package/esm/DatePicker/index.js +1 -0
  526. package/esm/DatePicker/types.js +1 -0
  527. package/esm/DatePicker/utils.js +5 -8
  528. package/esm/DateRangePicker/Calendar.js +18 -18
  529. package/esm/DateRangePicker/DateRangePicker.js +128 -184
  530. package/esm/DateRangePicker/DateRangePickerContext.js +1 -0
  531. package/esm/DateRangePicker/disabledDateUtils.js +9 -24
  532. package/esm/DateRangePicker/index.js +1 -0
  533. package/esm/DateRangePicker/types.js +1 -0
  534. package/esm/DateRangePicker/utils.js +7 -12
  535. package/esm/Disclosure/Disclosure.js +13 -24
  536. package/esm/Disclosure/DisclosureButton.js +4 -7
  537. package/esm/Disclosure/DisclosureContent.js +1 -2
  538. package/esm/Disclosure/DisclosureContext.js +1 -2
  539. package/esm/Disclosure/index.js +1 -0
  540. package/esm/Disclosure/useDisclosureContext.js +1 -2
  541. package/esm/Divider/Divider.js +11 -12
  542. package/esm/Divider/index.js +1 -0
  543. package/esm/Drawer/Drawer.js +10 -11
  544. package/esm/Drawer/index.js +1 -0
  545. package/esm/Dropdown/Dropdown.js +35 -50
  546. package/esm/Dropdown/DropdownContext.js +1 -0
  547. package/esm/Dropdown/DropdownItem.js +22 -31
  548. package/esm/Dropdown/DropdownMenu.js +36 -49
  549. package/esm/Dropdown/DropdownSeparator.js +8 -10
  550. package/esm/Dropdown/DropdownState.js +1 -7
  551. package/esm/Dropdown/DropdownToggle.js +17 -17
  552. package/esm/Dropdown/index.js +1 -0
  553. package/esm/Dropdown/useRenderDropdownItem.js +1 -2
  554. package/esm/FlexboxGrid/FlexboxGrid.js +12 -13
  555. package/esm/FlexboxGrid/FlexboxGridItem.js +12 -14
  556. package/esm/FlexboxGrid/index.js +1 -0
  557. package/esm/Footer/Footer.js +1 -0
  558. package/esm/Footer/index.js +1 -0
  559. package/esm/Form/Form.js +36 -63
  560. package/esm/Form/FormContext.js +1 -0
  561. package/esm/Form/index.js +1 -0
  562. package/esm/Form/useFormClassNames.js +11 -13
  563. package/esm/Form/useSchemaModel.js +2 -4
  564. package/esm/FormControl/FormControl.js +48 -68
  565. package/esm/FormControl/index.js +1 -0
  566. package/esm/FormControl/useRegisterModel.js +1 -2
  567. package/esm/FormControlLabel/FormControlLabel.js +10 -12
  568. package/esm/FormControlLabel/index.js +1 -0
  569. package/esm/FormErrorMessage/FormErrorMessage.js +12 -18
  570. package/esm/FormErrorMessage/index.js +1 -0
  571. package/esm/FormGroup/FormGroup.js +9 -10
  572. package/esm/FormGroup/index.js +1 -0
  573. package/esm/FormHelpText/FormHelpText.js +11 -15
  574. package/esm/FormHelpText/index.js +1 -0
  575. package/esm/Grid/Grid.js +10 -11
  576. package/esm/Grid/index.js +1 -0
  577. package/esm/Header/Header.js +1 -0
  578. package/esm/Header/index.js +1 -0
  579. package/esm/IconButton/IconButton.js +11 -12
  580. package/esm/IconButton/index.js +1 -0
  581. package/esm/Input/Input.js +26 -32
  582. package/esm/Input/index.js +1 -0
  583. package/esm/InputGroup/InputGroup.js +23 -26
  584. package/esm/InputGroup/InputGroupAddon.js +9 -10
  585. package/esm/InputGroup/InputGroupButton.js +7 -9
  586. package/esm/InputGroup/index.js +1 -0
  587. package/esm/InputNumber/InputNumber.js +42 -72
  588. package/esm/InputNumber/index.js +1 -0
  589. package/esm/InputPicker/InputAutosize.js +17 -37
  590. package/esm/InputPicker/InputPicker.js +149 -225
  591. package/esm/InputPicker/InputSearch.js +15 -20
  592. package/esm/InputPicker/index.js +1 -0
  593. package/esm/List/List.js +37 -39
  594. package/esm/List/ListContext.js +1 -0
  595. package/esm/List/ListItem.js +26 -30
  596. package/esm/List/helper/AutoScroller.js +11 -21
  597. package/esm/List/helper/useManager.js +1 -6
  598. package/esm/List/helper/useSortHelper.js +58 -74
  599. package/esm/List/helper/utils.js +6 -11
  600. package/esm/List/index.js +1 -0
  601. package/esm/Loader/Loader.js +17 -19
  602. package/esm/Loader/index.js +1 -0
  603. package/esm/MaskedInput/MaskedInput.js +2 -1
  604. package/esm/MaskedInput/TextMask.js +12 -14
  605. package/esm/MaskedInput/adjustCaretPosition.js +99 -69
  606. package/esm/MaskedInput/conformToMask.js +79 -70
  607. package/esm/MaskedInput/createTextMaskInputElement.js +65 -62
  608. package/esm/MaskedInput/index.js +1 -0
  609. package/esm/MaskedInput/types.js +1 -0
  610. package/esm/MaskedInput/utilities.js +1 -6
  611. package/esm/Menu/Menu.js +35 -66
  612. package/esm/Menu/MenuContext.js +1 -4
  613. package/esm/Menu/MenuItem.js +15 -19
  614. package/esm/Menu/Menubar.js +13 -23
  615. package/esm/Menu/index.js +1 -0
  616. package/esm/Menu/useMenu.js +4 -27
  617. package/esm/Message/Message.js +23 -34
  618. package/esm/Message/index.js +1 -0
  619. package/esm/Modal/Modal.js +70 -69
  620. package/esm/Modal/ModalBody.js +11 -13
  621. package/esm/Modal/ModalContext.js +1 -0
  622. package/esm/Modal/ModalDialog.js +14 -18
  623. package/esm/Modal/ModalFooter.js +1 -0
  624. package/esm/Modal/ModalHeader.js +14 -16
  625. package/esm/Modal/ModalTitle.js +9 -10
  626. package/esm/Modal/index.js +1 -0
  627. package/esm/Modal/utils.js +8 -12
  628. package/esm/MultiCascader/DropdownMenu.js +38 -48
  629. package/esm/MultiCascader/MultiCascader.js +129 -174
  630. package/esm/MultiCascader/index.js +1 -0
  631. package/esm/MultiCascader/utils.js +44 -87
  632. package/esm/Nav/Nav.js +27 -45
  633. package/esm/Nav/NavContext.js +1 -0
  634. package/esm/Nav/NavDropdown.js +28 -44
  635. package/esm/Nav/NavDropdownItem.js +20 -31
  636. package/esm/Nav/NavDropdownMenu.js +26 -42
  637. package/esm/Nav/NavDropdownToggle.js +12 -15
  638. package/esm/Nav/NavItem.js +20 -28
  639. package/esm/Nav/NavMenu.js +2 -13
  640. package/esm/Nav/index.js +1 -0
  641. package/esm/Navbar/Navbar.js +10 -11
  642. package/esm/Navbar/NavbarBody.js +1 -0
  643. package/esm/Navbar/NavbarBrand.js +1 -0
  644. package/esm/Navbar/NavbarDropdown.js +25 -33
  645. package/esm/Navbar/NavbarDropdownItem.js +18 -30
  646. package/esm/Navbar/NavbarDropdownMenu.js +22 -37
  647. package/esm/Navbar/NavbarDropdownToggle.js +12 -14
  648. package/esm/Navbar/NavbarHeader.js +1 -0
  649. package/esm/Navbar/NavbarItem.js +19 -23
  650. package/esm/Navbar/index.js +1 -0
  651. package/esm/Notification/Notification.js +20 -32
  652. package/esm/Notification/index.js +1 -0
  653. package/esm/Overlay/Modal.js +40 -64
  654. package/esm/Overlay/ModalManager.js +1 -19
  655. package/esm/Overlay/Overlay.js +28 -37
  656. package/esm/Overlay/OverlayContext.js +1 -0
  657. package/esm/Overlay/OverlayTrigger.js +68 -101
  658. package/esm/Overlay/Position.js +25 -47
  659. package/esm/Overlay/index.js +1 -0
  660. package/esm/Overlay/positionUtils.js +25 -73
  661. package/esm/Pagination/Pagination.js +30 -55
  662. package/esm/Pagination/PaginationButton.js +15 -19
  663. package/esm/Pagination/PaginationGroup.js +38 -49
  664. package/esm/Pagination/index.js +1 -0
  665. package/esm/Panel/Panel.js +37 -49
  666. package/esm/Panel/index.js +1 -0
  667. package/esm/PanelGroup/PanelGroup.js +16 -18
  668. package/esm/PanelGroup/index.js +1 -0
  669. package/esm/Picker/DropdownMenu.js +50 -72
  670. package/esm/Picker/DropdownMenuCheckItem.js +22 -24
  671. package/esm/Picker/DropdownMenuGroup.js +10 -13
  672. package/esm/Picker/DropdownMenuItem.js +15 -18
  673. package/esm/Picker/PickerOverlay.js +12 -17
  674. package/esm/Picker/PickerToggle.js +57 -71
  675. package/esm/Picker/PickerToggleTrigger.js +8 -10
  676. package/esm/Picker/SearchBar.js +14 -15
  677. package/esm/Picker/SelectedElement.js +9 -14
  678. package/esm/Picker/ToggleButton.js +1 -0
  679. package/esm/Picker/index.js +1 -0
  680. package/esm/Picker/propTypes.js +1 -1
  681. package/esm/Picker/types.js +1 -0
  682. package/esm/Picker/utils.js +94 -182
  683. package/esm/Placeholder/Placeholder.js +1 -0
  684. package/esm/Placeholder/PlaceholderGraph.js +13 -16
  685. package/esm/Placeholder/PlaceholderGrid.js +18 -25
  686. package/esm/Placeholder/PlaceholderParagraph.js +17 -20
  687. package/esm/Placeholder/index.js +1 -0
  688. package/esm/Plaintext/Plaintext.js +14 -17
  689. package/esm/Plaintext/index.js +1 -0
  690. package/esm/Popover/Popover.js +16 -21
  691. package/esm/Popover/index.js +1 -0
  692. package/esm/Progress/Progress.js +1 -0
  693. package/esm/Progress/ProgressCircle.js +30 -39
  694. package/esm/Progress/ProgressLine.js +19 -21
  695. package/esm/Progress/index.js +1 -0
  696. package/esm/Radio/Radio.js +42 -52
  697. package/esm/Radio/index.js +1 -0
  698. package/esm/RadioGroup/RadioGroup.js +22 -25
  699. package/esm/RadioGroup/index.js +1 -0
  700. package/esm/RadioTile/RadioTile.js +30 -34
  701. package/esm/RadioTile/index.js +1 -0
  702. package/esm/RadioTileGroup/RadioTileGroup.js +17 -20
  703. package/esm/RadioTileGroup/index.js +1 -0
  704. package/esm/RangeSlider/RangeSlider.js +63 -86
  705. package/esm/RangeSlider/index.js +1 -0
  706. package/esm/Rate/Character.js +16 -21
  707. package/esm/Rate/Rate.js +35 -48
  708. package/esm/Rate/index.js +1 -0
  709. package/esm/Rate/utils.js +1 -2
  710. package/esm/Ripple/Ripple.js +16 -30
  711. package/esm/Ripple/index.js +1 -0
  712. package/esm/Row/Row.js +11 -14
  713. package/esm/Row/index.js +1 -0
  714. package/esm/SafeAnchor/SafeAnchor.js +8 -13
  715. package/esm/SafeAnchor/index.js +1 -0
  716. package/esm/Schema/Schema.js +1 -0
  717. package/esm/Schema/index.js +1 -0
  718. package/esm/SelectPicker/SelectPicker.js +137 -157
  719. package/esm/SelectPicker/index.js +1 -0
  720. package/esm/Sidebar/Sidebar.js +13 -18
  721. package/esm/Sidebar/index.js +1 -0
  722. package/esm/Sidenav/ExpandedSidenavDropdown.js +32 -35
  723. package/esm/Sidenav/ExpandedSidenavDropdownItem.js +19 -27
  724. package/esm/Sidenav/ExpandedSidenavDropdownMenu.js +22 -29
  725. package/esm/Sidenav/Node.js +1 -10
  726. package/esm/Sidenav/Sidenav.js +22 -28
  727. package/esm/Sidenav/SidenavBody.js +1 -0
  728. package/esm/Sidenav/SidenavDropdown.js +39 -52
  729. package/esm/Sidenav/SidenavDropdownCollapse.js +9 -13
  730. package/esm/Sidenav/SidenavDropdownItem.js +19 -31
  731. package/esm/Sidenav/SidenavDropdownMenu.js +26 -41
  732. package/esm/Sidenav/SidenavDropdownToggle.js +12 -14
  733. package/esm/Sidenav/SidenavHeader.js +1 -0
  734. package/esm/Sidenav/SidenavItem.js +27 -37
  735. package/esm/Sidenav/SidenavToggle.js +11 -18
  736. package/esm/Sidenav/index.js +1 -0
  737. package/esm/Slider/Graduated.js +14 -21
  738. package/esm/Slider/Handle.js +27 -39
  739. package/esm/Slider/Input.js +2 -2
  740. package/esm/Slider/Mark.js +11 -14
  741. package/esm/Slider/ProgressBar.js +14 -18
  742. package/esm/Slider/Slider.js +51 -67
  743. package/esm/Slider/index.js +1 -0
  744. package/esm/Slider/utils.js +1 -5
  745. package/esm/Stack/Stack.js +22 -27
  746. package/esm/Stack/StackItem.js +11 -11
  747. package/esm/Stack/index.js +1 -0
  748. package/esm/Steps/StepItem.js +16 -22
  749. package/esm/Steps/Steps.js +18 -22
  750. package/esm/Steps/index.js +1 -0
  751. package/esm/Table/Table.js +6 -7
  752. package/esm/Table/index.js +1 -0
  753. package/esm/Tag/Tag.js +16 -19
  754. package/esm/Tag/index.js +1 -0
  755. package/esm/TagGroup/TagGroup.js +1 -0
  756. package/esm/TagGroup/index.js +1 -0
  757. package/esm/TagInput/index.js +7 -7
  758. package/esm/TagPicker/index.js +5 -5
  759. package/esm/Timeline/Timeline.js +14 -19
  760. package/esm/Timeline/TimelineItem.js +14 -15
  761. package/esm/Timeline/index.js +1 -0
  762. package/esm/Toggle/Toggle.js +26 -35
  763. package/esm/Toggle/index.js +1 -0
  764. package/esm/Tooltip/Tooltip.js +13 -16
  765. package/esm/Tooltip/index.js +1 -0
  766. package/esm/Tree/Tree.js +1 -3
  767. package/esm/Tree/TreeContext.js +1 -0
  768. package/esm/Tree/index.js +1 -0
  769. package/esm/TreePicker/TreeNode.js +37 -49
  770. package/esm/TreePicker/TreePicker.js +155 -218
  771. package/esm/TreePicker/index.js +1 -0
  772. package/esm/Uploader/UploadFileItem.js +37 -68
  773. package/esm/Uploader/UploadTrigger.js +24 -38
  774. package/esm/Uploader/Uploader.js +90 -132
  775. package/esm/Uploader/index.js +1 -0
  776. package/esm/Whisper/Whisper.js +8 -10
  777. package/esm/Whisper/index.js +1 -0
  778. package/esm/Windowing/AutoSizer.js +13 -24
  779. package/esm/Windowing/List.d.ts +2 -2
  780. package/esm/Windowing/List.js +6 -15
  781. package/esm/Windowing/index.js +1 -0
  782. package/esm/index.js +3 -0
  783. package/esm/locales/ar_EG.js +1 -0
  784. package/esm/locales/da_DK.js +1 -1
  785. package/esm/locales/de_DE.js +1 -1
  786. package/esm/locales/default.js +1 -1
  787. package/esm/locales/en_GB.js +1 -0
  788. package/esm/locales/en_US.js +1 -0
  789. package/esm/locales/es_AR.js +1 -1
  790. package/esm/locales/es_ES.js +1 -1
  791. package/esm/locales/fa_IR.js +1 -0
  792. package/esm/locales/fi_FI.js +1 -1
  793. package/esm/locales/fr_FR.js +1 -0
  794. package/esm/locales/hu_HU.js +1 -1
  795. package/esm/locales/index.js +1 -0
  796. package/esm/locales/it_IT.js +1 -1
  797. package/esm/locales/ja_JP.js +1 -1
  798. package/esm/locales/kk_KZ.js +1 -0
  799. package/esm/locales/ko_KR.js +1 -1
  800. package/esm/locales/ne_NP.js +1 -1
  801. package/esm/locales/nl_NL.js +1 -0
  802. package/esm/locales/pt_BR.js +1 -0
  803. package/esm/locales/ru_RU.js +1 -0
  804. package/esm/locales/sv_SE.js +1 -1
  805. package/esm/locales/tr_TR.js +1 -0
  806. package/esm/locales/zh_CN.js +1 -0
  807. package/esm/locales/zh_TW.js +1 -0
  808. package/esm/toaster/ToastContainer.js +29 -42
  809. package/esm/toaster/ToastContext.js +1 -0
  810. package/esm/toaster/index.js +1 -0
  811. package/esm/toaster/toaster.js +4 -22
  812. package/esm/toaster/useToaster.js +3 -5
  813. package/esm/utils/BrowserDetection.js +9 -9
  814. package/esm/utils/ReactChildren.js +2 -8
  815. package/esm/utils/ajaxUpload.js +15 -32
  816. package/esm/utils/appendTooltip.js +3 -3
  817. package/esm/utils/attachParent.js +1 -0
  818. package/esm/utils/clone.js +1 -1
  819. package/esm/utils/composeFunctions.js +1 -1
  820. package/esm/utils/constants.js +4 -7
  821. package/esm/utils/createChainedFunction.js +2 -5
  822. package/esm/utils/createComponent.js +12 -16
  823. package/esm/utils/dateUtils.js +7 -23
  824. package/esm/utils/deprecateComponent.js +2 -2
  825. package/esm/utils/deprecatePropType.js +4 -6
  826. package/esm/utils/dom.js +3 -1
  827. package/esm/utils/events.js +2 -1
  828. package/esm/utils/getDOMNode.js +15 -8
  829. package/esm/utils/getDataGroupBy.d.ts +0 -23
  830. package/esm/utils/getDataGroupBy.js +5 -39
  831. package/esm/utils/getSafeRegExpString.js +1 -0
  832. package/esm/utils/guid.js +1 -0
  833. package/esm/utils/htmlPropsUtils.js +23 -14
  834. package/esm/utils/index.js +2 -1
  835. package/esm/utils/isOneOf.js +1 -1
  836. package/esm/utils/mergeRefs.js +1 -1
  837. package/esm/utils/placementPolyfill.js +2 -4
  838. package/esm/utils/prefix.js +4 -4
  839. package/esm/utils/previewFile.js +1 -3
  840. package/esm/utils/propTypeChecker.js +1 -3
  841. package/esm/utils/reactToString.js +1 -2
  842. package/esm/utils/render.js +3 -5
  843. package/esm/utils/scrollTopAnimation.js +1 -5
  844. package/esm/utils/shallowEqual.js +8 -13
  845. package/esm/utils/shallowEqualArray.js +1 -5
  846. package/esm/utils/statusIcons.js +1 -0
  847. package/esm/utils/stringToObject.js +3 -4
  848. package/esm/utils/tplTransform.js +2 -4
  849. package/esm/utils/treeUtils.js +113 -265
  850. package/esm/utils/useClassNames.js +9 -9
  851. package/esm/utils/useClickOutside.js +4 -6
  852. package/esm/utils/useControlled.js +12 -6
  853. package/esm/utils/useCustom.js +12 -20
  854. package/esm/utils/useElementResize.js +2 -4
  855. package/esm/utils/useEnsuredRef.js +2 -3
  856. package/esm/utils/useEventCallback.js +2 -3
  857. package/esm/utils/useEventListener.js +2 -2
  858. package/esm/utils/useFocus.js +5 -4
  859. package/esm/utils/useInternalId.js +2 -3
  860. package/esm/utils/useIsMounted.js +1 -2
  861. package/esm/utils/useMap.js +5 -5
  862. package/esm/utils/useMount.js +1 -3
  863. package/esm/utils/usePortal.js +7 -13
  864. package/esm/utils/useRootClose.js +9 -13
  865. package/esm/utils/useTimeout.js +3 -7
  866. package/esm/utils/useToggleCaret.js +2 -7
  867. package/esm/utils/useUniqueId.js +2 -4
  868. package/esm/utils/useUpdateEffect.js +3 -4
  869. package/esm/utils/useUpdatedRef.js +2 -1
  870. package/esm/utils/useWillUnmount.js +4 -2
  871. package/esm/utils/warnOnce.js +2 -2
  872. package/package.json +2 -2
  873. package/styles/color-modes/light.less +4 -4
  874. package/styles/mixins/listbox.less +0 -2
  875. package/cjs/SelectPicker/Listbox.d.ts +0 -34
  876. package/cjs/SelectPicker/Listbox.js +0 -263
  877. package/cjs/SelectPicker/ListboxOption.d.ts +0 -11
  878. package/cjs/SelectPicker/ListboxOption.js +0 -50
  879. package/cjs/SelectPicker/ListboxOptionGroup.d.ts +0 -9
  880. package/cjs/SelectPicker/ListboxOptionGroup.js +0 -69
  881. package/esm/SelectPicker/Listbox.d.ts +0 -34
  882. package/esm/SelectPicker/Listbox.js +0 -240
  883. package/esm/SelectPicker/ListboxOption.d.ts +0 -11
  884. package/esm/SelectPicker/ListboxOption.js +0 -37
  885. package/esm/SelectPicker/ListboxOptionGroup.d.ts +0 -9
  886. package/esm/SelectPicker/ListboxOptionGroup.js +0 -53
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  import _extends from "@babel/runtime/helpers/esm/extends";
2
3
  import isString from 'lodash/isString';
3
4
  import isNumber from 'lodash/isNumber';
@@ -22,95 +23,97 @@ export default function createTextMaskInputElement(config) {
22
23
  // is for this to be read from the `inputElement` directly.
23
24
  update: function update(rawValue, _temp) {
24
25
  var _pipeResults, _pipeResults2;
25
-
26
26
  var _ref = _temp === void 0 ? config : _temp,
27
- inputElement = _ref.inputElement,
28
- providedMask = _ref.mask,
29
- guide = _ref.guide,
30
- pipe = _ref.pipe,
31
- _ref$placeholderChar = _ref.placeholderChar,
32
- placeholderChar = _ref$placeholderChar === void 0 ? defaultPlaceholderChar : _ref$placeholderChar,
33
- _ref$keepCharPosition = _ref.keepCharPositions,
34
- keepCharPositions = _ref$keepCharPosition === void 0 ? false : _ref$keepCharPosition,
35
- _ref$showMask = _ref.showMask,
36
- showMask = _ref$showMask === void 0 ? false : _ref$showMask;
37
-
27
+ inputElement = _ref.inputElement,
28
+ providedMask = _ref.mask,
29
+ guide = _ref.guide,
30
+ pipe = _ref.pipe,
31
+ _ref$placeholderChar = _ref.placeholderChar,
32
+ placeholderChar = _ref$placeholderChar === void 0 ? defaultPlaceholderChar : _ref$placeholderChar,
33
+ _ref$keepCharPosition = _ref.keepCharPositions,
34
+ keepCharPositions = _ref$keepCharPosition === void 0 ? false : _ref$keepCharPosition,
35
+ _ref$showMask = _ref.showMask,
36
+ showMask = _ref$showMask === void 0 ? false : _ref$showMask;
38
37
  // if `rawValue` is `undefined`, read from the `inputElement`
39
38
  if (typeof rawValue === 'undefined') {
40
39
  rawValue = inputElement.value;
41
- } // If `rawValue` equals `state.previousConformedValue`, we don't need to change anything. So, we return.
42
- // This check is here to handle controlled framework components that repeat the `update` call on every render.
43
-
40
+ }
44
41
 
42
+ // If `rawValue` equals `state.previousConformedValue`, we don't need to change anything. So, we return.
43
+ // This check is here to handle controlled framework components that repeat the `update` call on every render.
45
44
  if (rawValue === state.previousConformedValue) {
46
45
  return;
47
- } // Text Mask accepts masks that are a combination of a `mask` and a `pipe` that work together. If such a `mask` is
46
+ }
47
+
48
+ // Text Mask accepts masks that are a combination of a `mask` and a `pipe` that work together. If such a `mask` is
48
49
  // passed, we destructure it below, so the rest of the code can work normally as if a separate `mask` and a `pipe`
49
50
  // were passed.
50
-
51
-
52
51
  if (typeof providedMask === strObject && providedMask.pipe !== undefined && providedMask.mask !== undefined) {
53
52
  pipe = providedMask.pipe;
54
53
  providedMask = providedMask.mask;
55
- } // The `placeholder` is an essential piece of how Text Mask works. For a mask like `(111)`, the placeholder would
56
- // be `(___)` if the `placeholderChar` is set to `_`.
54
+ }
57
55
 
56
+ // The `placeholder` is an essential piece of how Text Mask works. For a mask like `(111)`, the placeholder would
57
+ // be `(___)` if the `placeholderChar` is set to `_`.
58
+ var placeholder;
58
59
 
59
- var placeholder; // We don't know what the mask would be yet. If it is an array, we take it as is, but if it's a function, we will
60
+ // We don't know what the mask would be yet. If it is an array, we take it as is, but if it's a function, we will
60
61
  // have to call that function to get the mask array.
62
+ var mask;
61
63
 
62
- var mask; // If the provided mask is an array, we can call `convertMaskToPlaceholder` here once and we'll always have the
64
+ // If the provided mask is an array, we can call `convertMaskToPlaceholder` here once and we'll always have the
63
65
  // correct `placeholder`.
64
-
65
66
  if (providedMask instanceof Array) {
66
67
  placeholder = convertMaskToPlaceholder(providedMask, placeholderChar);
67
- } // In framework components that support reactivity, it's possible to turn off masking by passing
68
- // `false` for `mask` after initialization. See https://github.com/text-mask/text-mask/pull/359
69
-
68
+ }
70
69
 
70
+ // In framework components that support reactivity, it's possible to turn off masking by passing
71
+ // `false` for `mask` after initialization. See https://github.com/text-mask/text-mask/pull/359
71
72
  if (providedMask === false) {
72
73
  return;
73
- } // We check the provided `rawValue` before moving further.
74
- // If it's something we can't work with `getSafeRawValue` will throw.
75
-
74
+ }
76
75
 
77
- var safeRawValue = getSafeRawValue(rawValue); // `selectionEnd` indicates to us where the caret position is after the user has typed into the input
76
+ // We check the provided `rawValue` before moving further.
77
+ // If it's something we can't work with `getSafeRawValue` will throw.
78
+ var safeRawValue = getSafeRawValue(rawValue);
78
79
 
80
+ // `selectionEnd` indicates to us where the caret position is after the user has typed into the input
79
81
  var currentCaretPosition = inputElement.selectionEnd; // We need to know what the `previousConformedValue` and `previousPlaceholder` is from the previous `update` call
80
-
81
82
  var previousConformedValue = state.previousConformedValue,
82
- previousPlaceholder = state.previousPlaceholder;
83
- var caretTrapIndexes; // If the `providedMask` is a function. We need to call it at every `update` to get the `mask` array.
84
- // Then we also need to get the `placeholder`
83
+ previousPlaceholder = state.previousPlaceholder;
84
+ var caretTrapIndexes;
85
85
 
86
+ // If the `providedMask` is a function. We need to call it at every `update` to get the `mask` array.
87
+ // Then we also need to get the `placeholder`
86
88
  if (typeof providedMask === 'function') {
87
89
  mask = providedMask(safeRawValue, {
88
90
  currentCaretPosition: currentCaretPosition,
89
91
  previousConformedValue: previousConformedValue,
90
92
  placeholderChar: placeholderChar
91
- }); // disable masking if `mask` is `false`
93
+ });
92
94
 
95
+ // disable masking if `mask` is `false`
93
96
  if (mask === false) {
94
97
  return;
95
- } // mask functions can setup caret traps to have some control over how the caret moves. We need to process
98
+ }
99
+
100
+ // mask functions can setup caret traps to have some control over how the caret moves. We need to process
96
101
  // the mask for any caret traps. `processCaretTraps` will remove the caret traps from the mask and return
97
102
  // the indexes of the caret traps.
98
-
99
-
100
103
  var _processCaretTraps = processCaretTraps(mask),
101
- maskWithoutCaretTraps = _processCaretTraps.maskWithoutCaretTraps,
102
- indexes = _processCaretTraps.indexes;
103
-
104
+ maskWithoutCaretTraps = _processCaretTraps.maskWithoutCaretTraps,
105
+ indexes = _processCaretTraps.indexes;
104
106
  mask = maskWithoutCaretTraps; // The processed mask is what we're interested in
105
-
106
107
  caretTrapIndexes = indexes; // And we need to store these indexes because they're needed by `adjustCaretPosition`
107
108
 
108
- placeholder = convertMaskToPlaceholder(mask, placeholderChar); // If the `providedMask` is not a function, we just use it as-is.
109
+ placeholder = convertMaskToPlaceholder(mask, placeholderChar);
110
+
111
+ // If the `providedMask` is not a function, we just use it as-is.
109
112
  } else {
110
113
  mask = providedMask;
111
- } // The following object will be passed to `conformToMask` to determine how the `rawValue` will be conformed
112
-
114
+ }
113
115
 
116
+ // The following object will be passed to `conformToMask` to determine how the `rawValue` will be conformed
114
117
  var conformToMaskConfig = {
115
118
  previousConformedValue: previousConformedValue,
116
119
  guide: guide,
@@ -119,24 +122,25 @@ export default function createTextMaskInputElement(config) {
119
122
  placeholder: placeholder,
120
123
  currentCaretPosition: currentCaretPosition,
121
124
  keepCharPositions: keepCharPositions
122
- }; // `conformToMask` returns `conformedValue` as part of an object for future API flexibility
125
+ };
123
126
 
127
+ // `conformToMask` returns `conformedValue` as part of an object for future API flexibility
124
128
  var _conformToMask = conformToMask(safeRawValue, mask, conformToMaskConfig),
125
- conformedValue = _conformToMask.conformedValue; // The following few lines are to support the `pipe` feature.
126
-
127
-
129
+ conformedValue = _conformToMask.conformedValue; // The following few lines are to support the `pipe` feature.
128
130
  var piped = typeof pipe === 'function';
129
- var pipeResults = {}; // If `pipe` is a function, we call it.
131
+ var pipeResults = {};
130
132
 
133
+ // If `pipe` is a function, we call it.
131
134
  if (piped) {
132
135
  // `pipe` receives the `conformedValue` and the configurations with which `conformToMask` was called.
133
136
  pipeResults = pipe(conformedValue, _extends({
134
137
  rawValue: safeRawValue
135
- }, conformToMaskConfig)); // `pipeResults` should be an object. But as a convenience, we allow the pipe author to just return `false` to
138
+ }, conformToMaskConfig));
139
+
140
+ // `pipeResults` should be an object. But as a convenience, we allow the pipe author to just return `false` to
136
141
  // indicate rejection. Or return just a string when there are no piped characters.
137
142
  // If the `pipe` returns `false` or a string, the block below turns it into an object that the rest
138
143
  // of the code can work with.
139
-
140
144
  if (pipeResults === false) {
141
145
  // If the `pipe` rejects `conformedValue`, we use the `previousConformedValue`, and set `rejected` to `true`.
142
146
  pipeResults = {
@@ -148,13 +152,14 @@ export default function createTextMaskInputElement(config) {
148
152
  value: pipeResults
149
153
  };
150
154
  }
151
- } // Before we proceed, we need to know which conformed value to use, the one returned by the pipe or the one
152
- // returned by `conformToMask`.
155
+ }
153
156
 
157
+ // Before we proceed, we need to know which conformed value to use, the one returned by the pipe or the one
158
+ // returned by `conformToMask`.
159
+ var finalConformedValue = piped ? (_pipeResults = pipeResults) === null || _pipeResults === void 0 ? void 0 : _pipeResults.value : conformedValue;
154
160
 
155
- var finalConformedValue = piped ? (_pipeResults = pipeResults) === null || _pipeResults === void 0 ? void 0 : _pipeResults.value : conformedValue; // After determining the conformed value, we will need to know where to set
161
+ // After determining the conformed value, we will need to know where to set
156
162
  // the caret position. `adjustCaretPosition` will tell us.
157
-
158
163
  var adjustedCaretPosition = adjustCaretPosition({
159
164
  previousConformedValue: previousConformedValue,
160
165
  previousPlaceholder: previousPlaceholder,
@@ -165,23 +170,22 @@ export default function createTextMaskInputElement(config) {
165
170
  placeholderChar: placeholderChar,
166
171
  indexesOfPipedChars: (_pipeResults2 = pipeResults) === null || _pipeResults2 === void 0 ? void 0 : _pipeResults2.indexesOfPipedChars,
167
172
  caretTrapIndexes: caretTrapIndexes
168
- }); // Text Mask sets the input value to an empty string when the condition below is set. It provides a better UX.
173
+ });
169
174
 
175
+ // Text Mask sets the input value to an empty string when the condition below is set. It provides a better UX.
170
176
  var inputValueShouldBeEmpty = finalConformedValue === placeholder && adjustedCaretPosition === 0;
171
177
  var emptyValue = showMask ? placeholder : emptyString;
172
178
  var inputElementValue = inputValueShouldBeEmpty ? emptyValue : finalConformedValue;
173
179
  state.previousConformedValue = inputElementValue; // store value for access for next time
180
+ state.previousPlaceholder = placeholder;
174
181
 
175
- state.previousPlaceholder = placeholder; // In some cases, this `update` method will be repeatedly called with a raw value that has already been conformed
182
+ // In some cases, this `update` method will be repeatedly called with a raw value that has already been conformed
176
183
  // and set to `inputElement.value`. The below check guards against needlessly readjusting the input state.
177
184
  // See https://github.com/text-mask/text-mask/issues/231
178
-
179
185
  if (inputElement.value === inputElementValue) {
180
186
  return;
181
187
  }
182
-
183
188
  inputElement.value = inputElementValue; // set the input value
184
-
185
189
  safeSetSelection(inputElement, adjustedCaretPosition); // adjust caret position
186
190
  }
187
191
  };
@@ -198,7 +202,6 @@ function safeSetSelection(element, selectionPosition) {
198
202
  }
199
203
  }
200
204
  }
201
-
202
205
  function getSafeRawValue(inputValue) {
203
206
  if (isString(inputValue)) {
204
207
  return inputValue;
@@ -1,2 +1,3 @@
1
+ 'use client';
1
2
  import MaskedInput from './MaskedInput';
2
3
  export default MaskedInput;
@@ -0,0 +1 @@
1
+ 'use client';
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  var emptyArray = [];
2
3
  var strCaretTrap = '[]';
3
4
  export var defaultPlaceholderChar = '_';
@@ -5,19 +6,15 @@ export function convertMaskToPlaceholder(mask, placeholderChar) {
5
6
  if (mask === void 0) {
6
7
  mask = emptyArray;
7
8
  }
8
-
9
9
  if (placeholderChar === void 0) {
10
10
  placeholderChar = defaultPlaceholderChar;
11
11
  }
12
-
13
12
  if (!Array.isArray(mask)) {
14
13
  throw new Error('Text-mask:convertMaskToPlaceholder; The mask property must be an array.');
15
14
  }
16
-
17
15
  if (mask.indexOf(placeholderChar) !== -1) {
18
16
  throw new Error('Placeholder character must not be used as part of the mask. Please specify a character ' + 'that is not present in your mask as your placeholder character.\n\n' + ("The placeholder character that was received is: " + JSON.stringify(placeholderChar) + "\n\n") + ("The mask that was received is: " + JSON.stringify(mask)));
19
17
  }
20
-
21
18
  return mask.map(function (char) {
22
19
  return char instanceof RegExp ? placeholderChar : char;
23
20
  }).join('');
@@ -25,12 +22,10 @@ export function convertMaskToPlaceholder(mask, placeholderChar) {
25
22
  export function processCaretTraps(mask) {
26
23
  var indexes = [];
27
24
  var indexOfCaretTrap;
28
-
29
25
  while (indexOfCaretTrap = mask.indexOf(strCaretTrap), indexOfCaretTrap !== -1) {
30
26
  indexes.push(indexOfCaretTrap);
31
27
  mask.splice(indexOfCaretTrap, 1);
32
28
  }
33
-
34
29
  return {
35
30
  maskWithoutCaretTraps: mask,
36
31
  indexes: indexes
package/esm/Menu/Menu.js CHANGED
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  import _extends from "@babel/runtime/helpers/esm/extends";
2
3
  import React, { useCallback, useContext, useRef, useMemo } from 'react';
3
4
  import PropTypes from 'prop-types';
@@ -11,25 +12,24 @@ import useClickOutside from '../utils/useClickOutside';
11
12
  import { isFocusLeaving } from '../utils/events';
12
13
  import { isFocusableElement } from '../utils/dom';
13
14
  var defaultOpenMenuOn = ['click'];
15
+
14
16
  /**
15
17
  * Headless ARIA `menu`
16
18
  * @private
17
19
  */
18
-
19
20
  function Menu(_ref) {
20
21
  var _items$activeItemInde;
21
-
22
22
  var disabled = _ref.disabled,
23
- children = _ref.children,
24
- _ref$openMenuOn = _ref.openMenuOn,
25
- openMenuOn = _ref$openMenuOn === void 0 ? defaultOpenMenuOn : _ref$openMenuOn,
26
- _ref$defaultOpen = _ref.defaultOpen,
27
- defaultOpen = _ref$defaultOpen === void 0 ? false : _ref$defaultOpen,
28
- openProp = _ref.open,
29
- menuButtonText = _ref.menuButtonText,
30
- renderMenuButton = _ref.renderMenuButton,
31
- renderMenuPopup = _ref.renderMenuPopup,
32
- onToggleMenu = _ref.onToggleMenu;
23
+ children = _ref.children,
24
+ _ref$openMenuOn = _ref.openMenuOn,
25
+ openMenuOn = _ref$openMenuOn === void 0 ? defaultOpenMenuOn : _ref$openMenuOn,
26
+ _ref$defaultOpen = _ref.defaultOpen,
27
+ defaultOpen = _ref$defaultOpen === void 0 ? false : _ref$defaultOpen,
28
+ openProp = _ref.open,
29
+ menuButtonText = _ref.menuButtonText,
30
+ renderMenuButton = _ref.renderMenuButton,
31
+ renderMenuPopup = _ref.renderMenuPopup,
32
+ onToggleMenu = _ref.onToggleMenu;
33
33
  var buttonElementRef = useRef(null);
34
34
  var menuElementRef = useRef(null);
35
35
  var parentMenu = useContext(MenuContext);
@@ -38,33 +38,27 @@ function Menu(_ref) {
38
38
  open: defaultOpen
39
39
  });
40
40
  var _menu$ = menu[0],
41
- openState = _menu$.open,
42
- items = _menu$.items,
43
- activeItemIndex = _menu$.activeItemIndex,
44
- dispatch = menu[1];
41
+ openState = _menu$.open,
42
+ items = _menu$.items,
43
+ activeItemIndex = _menu$.activeItemIndex,
44
+ dispatch = menu[1];
45
45
  var openControlled = typeof openProp !== 'undefined';
46
46
  var open = openControlled ? openProp : openState;
47
-
48
47
  var _useCustom = useCustom('Menu'),
49
- rtl = _useCustom.rtl;
50
-
48
+ rtl = _useCustom.rtl;
51
49
  var activeItem = isNil(activeItemIndex) ? null : (_items$activeItemInde = items[activeItemIndex]) === null || _items$activeItemInde === void 0 ? void 0 : _items$activeItemInde.element;
52
-
53
50
  var _useFocus = useFocus(menuElementRef),
54
- grabFocus = _useFocus.grab;
55
-
51
+ grabFocus = _useFocus.grab;
56
52
  var openMenu = useCallback(function (event) {
57
53
  dispatch({
58
54
  type: MenuActionTypes.OpenMenu
59
55
  });
60
-
61
56
  if (!event.isTrusted) {
62
57
  dispatch({
63
58
  type: MenuActionTypes.MoveFocus,
64
59
  to: MoveFocusTo.First
65
60
  });
66
61
  }
67
-
68
62
  onToggleMenu === null || onToggleMenu === void 0 ? void 0 : onToggleMenu(true, event);
69
63
  grabFocus();
70
64
  }, [dispatch, onToggleMenu, grabFocus]);
@@ -72,7 +66,6 @@ function Menu(_ref) {
72
66
  if (returnFocusToButton === void 0) {
73
67
  returnFocusToButton = true;
74
68
  }
75
-
76
69
  dispatch({
77
70
  type: MenuActionTypes.CloseMenu
78
71
  });
@@ -81,10 +74,8 @@ function Menu(_ref) {
81
74
  to: MoveFocusTo.None
82
75
  });
83
76
  onToggleMenu === null || onToggleMenu === void 0 ? void 0 : onToggleMenu(false, event);
84
-
85
77
  if (returnFocusToButton) {
86
78
  var _buttonElementRef$cur;
87
-
88
79
  (_buttonElementRef$cur = buttonElementRef.current) === null || _buttonElementRef$cur === void 0 ? void 0 : _buttonElementRef$cur.focus({
89
80
  preventScroll: true
90
81
  });
@@ -101,7 +92,6 @@ function Menu(_ref) {
101
92
  enabled: open,
102
93
  isOutside: function isOutside(event) {
103
94
  var _buttonElementRef$cur2, _menuElementRef$curre;
104
-
105
95
  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));
106
96
  },
107
97
  // fixme if clicking on a focusable element, don't move focus to menu button
@@ -109,11 +99,11 @@ function Menu(_ref) {
109
99
  return closeMenu(event, !isFocusableElement(event.target));
110
100
  }
111
101
  });
102
+
112
103
  /**
113
104
  * Keyboard interaction on menu button
114
105
  * @see https://www.w3.org/TR/wai-aria-practices-1.2/#keyboard-interaction-13
115
106
  */
116
-
117
107
  var handleButtonKeydown = useCallback(function (e) {
118
108
  switch (e.key) {
119
109
  // Open the menu
@@ -121,7 +111,6 @@ function Menu(_ref) {
121
111
  case KEY_VALUES.SPACE:
122
112
  e.preventDefault();
123
113
  e.stopPropagation();
124
-
125
114
  if (!open) {
126
115
  openMenu(e);
127
116
  dispatch({
@@ -131,19 +120,15 @@ function Menu(_ref) {
131
120
  } else {
132
121
  closeMenu(e);
133
122
  }
134
-
135
123
  break;
136
124
  // Open the menu (if closed) and move focus to first item
137
125
  // This is mostly useful after opening the menu with click
138
-
139
126
  case KEY_VALUES.DOWN:
140
127
  e.preventDefault();
141
128
  e.stopPropagation();
142
-
143
129
  if (!open) {
144
130
  openMenu(e);
145
131
  }
146
-
147
132
  dispatch({
148
133
  type: MenuActionTypes.MoveFocus,
149
134
  to: MoveFocusTo.First
@@ -155,13 +140,13 @@ function Menu(_ref) {
155
140
  if (disabled) {
156
141
  return;
157
142
  }
158
-
159
143
  toggleMenu(event);
160
144
  }, [disabled, toggleMenu]);
161
145
  var handleButtonContextMenu = useCallback(function (event) {
162
146
  // prevents default contextmenu
163
- event.preventDefault(); // Only opens menu on right click. Left click can close the menu opened by a right click
147
+ event.preventDefault();
164
148
 
149
+ // Only opens menu on right click. Left click can close the menu opened by a right click
165
150
  if (open) return;
166
151
  if (disabled) return;
167
152
  openMenu(event);
@@ -170,19 +155,17 @@ function Menu(_ref) {
170
155
  var buttonEventHandlers = {
171
156
  onKeyDown: handleButtonKeydown
172
157
  };
158
+
173
159
  /**
174
160
  * Bind event of trigger,
175
161
  * not used in in the expanded state of '<Sidenav>'
176
162
  */
177
-
178
163
  if (openMenuOn !== null && openMenuOn !== void 0 && openMenuOn.includes('click')) {
179
164
  buttonEventHandlers.onClick = handleButtonClick;
180
165
  }
181
-
182
166
  if (openMenuOn !== null && openMenuOn !== void 0 && openMenuOn.includes('contextmenu')) {
183
167
  buttonEventHandlers.onContextMenu = handleButtonContextMenu;
184
168
  }
185
-
186
169
  return buttonEventHandlers;
187
170
  }, [openMenuOn, handleButtonKeydown, handleButtonClick, handleButtonContextMenu]);
188
171
  var buttonId = useUniqueId('menubutton-');
@@ -211,11 +194,11 @@ function Menu(_ref) {
211
194
  var buttonElement = customMenuButton !== null && customMenuButton !== void 0 ? customMenuButton : /*#__PURE__*/React.createElement("button", _extends({
212
195
  ref: buttonElementRef
213
196
  }, buttonProps), menuButtonText);
197
+
214
198
  /**
215
199
  * Keyboard interaction on menu
216
200
  * @see https://www.w3.org/TR/wai-aria-practices-1.2/#keyboard-interaction-12
217
201
  */
218
-
219
202
  var handleMenuKeydown = useCallback(function (e) {
220
203
  switch (e.key) {
221
204
  // Move focus to previous item
@@ -228,7 +211,6 @@ function Menu(_ref) {
228
211
  });
229
212
  break;
230
213
  // Move focus to next item
231
-
232
214
  case KEY_VALUES.DOWN:
233
215
  e.preventDefault();
234
216
  e.stopPropagation();
@@ -238,11 +220,9 @@ function Menu(_ref) {
238
220
  });
239
221
  break;
240
222
  // When focus is in a menu and on a menuitem that has a submenu, opens the submenu and places focus on its first item.
241
-
242
223
  case KEY_VALUES.RIGHT:
243
224
  e.preventDefault();
244
225
  e.stopPropagation();
245
-
246
226
  if (!rtl) {
247
227
  if ((activeItem === null || activeItem === void 0 ? void 0 : activeItem.getAttribute('aria-haspopup')) === 'menu') {
248
228
  activeItem.click();
@@ -252,14 +232,11 @@ function Menu(_ref) {
252
232
  type: MenuActionTypes.CloseMenu
253
233
  });
254
234
  }
255
-
256
235
  break;
257
236
  // When focus is in a submenu of an item in a menu, closes the submenu and returns focus to the parent menuitem.
258
-
259
237
  case KEY_VALUES.LEFT:
260
238
  e.preventDefault();
261
239
  e.stopPropagation();
262
-
263
240
  if (!rtl) {
264
241
  if (isSubmenu) {
265
242
  closeMenu(e);
@@ -267,10 +244,8 @@ function Menu(_ref) {
267
244
  } else if ((activeItem === null || activeItem === void 0 ? void 0 : activeItem.getAttribute('aria-haspopup')) === 'menu') {
268
245
  activeItem.click();
269
246
  }
270
-
271
247
  break;
272
248
  // Move focus to the first item
273
-
274
249
  case KEY_VALUES.HOME:
275
250
  e.preventDefault();
276
251
  e.stopPropagation();
@@ -280,7 +255,6 @@ function Menu(_ref) {
280
255
  });
281
256
  break;
282
257
  // Move focus to the last item
283
-
284
258
  case KEY_VALUES.END:
285
259
  e.preventDefault();
286
260
  e.stopPropagation();
@@ -291,40 +265,41 @@ function Menu(_ref) {
291
265
  break;
292
266
  // - When focus is on a menuitem that has a submenu, opens the submenu and places focus on its first item.
293
267
  // - Otherwise, activates the item and closes the menu.
294
-
295
268
  case KEY_VALUES.ENTER:
296
269
  case KEY_VALUES.SPACE:
297
270
  if (activeItem) {
298
271
  e.preventDefault();
299
272
  e.stopPropagation();
300
273
  activeItem.click();
301
-
302
274
  if (!activeItem.getAttribute('aria-haspopup')) {
303
275
  closeMenu(e);
304
276
  }
305
277
  }
306
-
307
278
  break;
308
279
  // Close the menu that contains focus and return focus to the element or context,
309
280
  // e.g., menu button or parent menuitem, from which the menu was opened.
310
-
311
281
  case KEY_VALUES.ESC:
312
282
  closeMenu(e);
313
283
  break;
314
284
  }
315
- }, [dispatch, activeItem, isSubmenu, rtl, closeMenu]); // Only used for clicks bubbling from child `menuitem`s.
285
+ }, [dispatch, activeItem, isSubmenu, rtl, closeMenu]);
316
286
 
287
+ // Only used for clicks bubbling from child `menuitem`s.
317
288
  var handleMenuClick = useCallback(function (event) {
318
- var target = event.target; // Only handle clicks on `menuitem`s
289
+ var target = event.target;
319
290
 
320
- if (target.getAttribute('role') !== 'menuitem') return; // Ignore clicks on `menuitem`s that controls a submenu
291
+ // Only handle clicks on `menuitem`s
292
+ if (target.getAttribute('role') !== 'menuitem') return;
321
293
 
322
- if (target.getAttribute('aria-haspopup') === 'menu') return; // Ignore disabled `menuitem`s
294
+ // Ignore clicks on `menuitem`s that controls a submenu
295
+ if (target.getAttribute('aria-haspopup') === 'menu') return;
323
296
 
297
+ // Ignore disabled `menuitem`s
324
298
  if (target.getAttribute('aria-disabled') === 'true') return;
325
299
  closeMenu(event, !isSubmenu);
326
- }, [closeMenu, isSubmenu]); // Ref: https://www.w3.org/TR/wai-aria-practices-1.2/#wai-aria-roles-states-and-properties-13
300
+ }, [closeMenu, isSubmenu]);
327
301
 
302
+ // Ref: https://www.w3.org/TR/wai-aria-practices-1.2/#wai-aria-roles-states-and-properties-13
328
303
  var menuAriaAttributes = {
329
304
  role: 'menu',
330
305
  'aria-labelledby': buttonId,
@@ -334,17 +309,16 @@ function Menu(_ref) {
334
309
  onClick: handleMenuClick,
335
310
  onKeyDown: handleMenuKeydown
336
311
  };
337
-
338
312
  var menuProps = _extends({
339
313
  id: menuId
340
314
  }, menuAriaAttributes, menuEventHandlers, {
341
315
  tabIndex: 0
342
316
  });
343
-
344
317
  var customMenuPopup = renderMenuPopup === null || renderMenuPopup === void 0 ? void 0 : renderMenuPopup(_extends({}, menuProps, {
345
318
  open: open
346
- }), menuElementRef); // fixme Wrong children here
319
+ }), menuElementRef);
347
320
 
321
+ // fixme Wrong children here
348
322
  var menuElement = customMenuPopup !== null && customMenuPopup !== void 0 ? customMenuPopup : /*#__PURE__*/React.createElement("ul", _extends({
349
323
  ref: menuElementRef
350
324
  }, menuProps, {
@@ -370,12 +344,10 @@ function Menu(_ref) {
370
344
  var rootEventHandlers = {
371
345
  onBlur: handleContainerBlur
372
346
  };
373
-
374
347
  if (openMenuOn !== null && openMenuOn !== void 0 && openMenuOn.includes('mouseover')) {
375
348
  rootEventHandlers.onMouseEnter = handleMouseEnter;
376
349
  rootEventHandlers.onMouseLeave = handleMouseLeave;
377
350
  }
378
-
379
351
  var rootProps = _extends({}, rootEventHandlers, {
380
352
  children: /*#__PURE__*/React.createElement(React.Fragment, null, buttonElement, /*#__PURE__*/React.createElement(MenuContext.Provider, {
381
353
  value: menu
@@ -383,14 +355,11 @@ function Menu(_ref) {
383
355
  // render props
384
356
  open: open
385
357
  });
386
-
387
358
  if (isSubmenu) {
388
359
  rootProps.role = 'none presentation';
389
360
  }
390
-
391
361
  return children(rootProps, rootElementRef);
392
362
  }
393
-
394
363
  Menu.displayName = 'Menu';
395
364
  Menu.propTypes = {
396
365
  children: PropTypes.func.isRequired
@@ -1,6 +1,6 @@
1
+ 'use client';
1
2
  import React from 'react';
2
3
  export var MenuActionTypes;
3
-
4
4
  (function (MenuActionTypes) {
5
5
  MenuActionTypes[MenuActionTypes["RegisterItem"] = 0] = "RegisterItem";
6
6
  MenuActionTypes[MenuActionTypes["UnregisterItem"] = 1] = "UnregisterItem";
@@ -8,9 +8,7 @@ export var MenuActionTypes;
8
8
  MenuActionTypes[MenuActionTypes["CloseMenu"] = 3] = "CloseMenu";
9
9
  MenuActionTypes[MenuActionTypes["MoveFocus"] = 4] = "MoveFocus";
10
10
  })(MenuActionTypes || (MenuActionTypes = {}));
11
-
12
11
  export var MoveFocusTo;
13
-
14
12
  (function (MoveFocusTo) {
15
13
  MoveFocusTo[MoveFocusTo["Next"] = 0] = "Next";
16
14
  MoveFocusTo[MoveFocusTo["Prev"] = 1] = "Prev";
@@ -19,7 +17,6 @@ export var MoveFocusTo;
19
17
  MoveFocusTo[MoveFocusTo["Specific"] = 4] = "Specific";
20
18
  MoveFocusTo[MoveFocusTo["None"] = 5] = "None";
21
19
  })(MoveFocusTo || (MoveFocusTo = {}));
22
-
23
20
  // Defaults to null for checking whether a Menu is inside another menu
24
21
  var MenuContext = /*#__PURE__*/React.createContext(null);
25
22
  MenuContext.displayName = 'MenuContext';