rsuite 6.0.0-canary-20250507 → 6.0.0-canary-2025062016

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 (936) hide show
  1. package/Accordion/styles/index.css +645 -325
  2. package/Animation/styles/index.css +153 -141
  3. package/AutoComplete/styles/index.css +2408 -2061
  4. package/Avatar/styles/index.css +227 -76
  5. package/AvatarGroup/styles/index.css +280 -107
  6. package/Badge/styles/index.css +335 -174
  7. package/Box/styles/index.css +132 -94
  8. package/Breadcrumb/styles/index.css +225 -71
  9. package/Button/styles/index.css +1199 -1016
  10. package/ButtonGroup/styles/index.css +221 -54
  11. package/ButtonToolbar/styles/index.css +274 -98
  12. package/CHANGELOG.md +66 -0
  13. package/Calendar/styles/index.css +1866 -1737
  14. package/Card/styles/index.css +242 -92
  15. package/CardGroup/styles/index.css +185 -6
  16. package/Carousel/styles/index.css +369 -213
  17. package/CascadeTree/styles/index.css +376 -237
  18. package/Cascader/styles/index.css +2494 -2146
  19. package/Center/styles/index.css +185 -6
  20. package/CheckPicker/styles/index.css +2555 -2193
  21. package/CheckTree/styles/index.css +2640 -2276
  22. package/CheckTreePicker/styles/index.css +2652 -2286
  23. package/Checkbox/styles/index.css +409 -251
  24. package/CheckboxGroup/styles/index.css +189 -25
  25. package/Container/styles/index.css +186 -20
  26. package/Content/styles/index.css +181 -15
  27. package/DateInput/styles/index.css +317 -164
  28. package/DatePicker/styles/index.css +3108 -2800
  29. package/DateRangeInput/styles/index.css +317 -164
  30. package/DateRangePicker/styles/index.css +3200 -2884
  31. package/Divider/styles/index.css +251 -96
  32. package/Drawer/styles/index.css +461 -312
  33. package/Dropdown/styles/index.css +1497 -1329
  34. package/FlexboxGrid/styles/index.css +498 -284
  35. package/Footer/styles/index.css +181 -23
  36. package/Form/styles/index.css +178 -12
  37. package/FormControl/styles/index.css +210 -44
  38. package/FormControlLabel/styles/index.css +190 -31
  39. package/FormErrorMessage/styles/index.css +332 -208
  40. package/FormGroup/styles/index.css +216 -48
  41. package/FormHelpText/styles/index.css +203 -44
  42. package/FormStack/styles/index.css +191 -26
  43. package/Grid/styles/index.css +2042 -1743
  44. package/Header/styles/index.css +181 -23
  45. package/Heading/styles/index.css +238 -73
  46. package/HeadingGroup/styles/index.css +181 -2
  47. package/Highlight/styles/index.css +190 -5
  48. package/IconButton/styles/index.css +1343 -1163
  49. package/Image/styles/index.css +216 -22
  50. package/InlineEdit/styles/index.css +378 -84
  51. package/Input/styles/index.css +317 -164
  52. package/InputGroup/styles/index.css +446 -1219
  53. package/InputNumber/styles/index.css +1565 -1366
  54. package/InputPicker/styles/index.css +2497 -2156
  55. package/Kbd/styles/index.css +258 -107
  56. package/Link/styles/index.css +203 -23
  57. package/List/styles/index.css +311 -158
  58. package/Loader/styles/index.css +354 -206
  59. package/Menu/styles/index.css +325 -186
  60. package/Message/styles/index.css +494 -408
  61. package/Modal/styles/index.css +394 -224
  62. package/MultiCascadeTree/styles/index.css +2694 -2331
  63. package/MultiCascader/styles/index.css +2710 -2346
  64. package/Nav/styles/index.css +1801 -1636
  65. package/Navbar/styles/index.css +1751 -1564
  66. package/Notification/styles/index.css +369 -221
  67. package/NumberInput/styles/index.css +1565 -1366
  68. package/Pagination/styles/index.css +2625 -2390
  69. package/Panel/styles/index.css +624 -305
  70. package/PanelGroup/styles/index.css +212 -55
  71. package/PasswordInput/styles/index.css +559 -164
  72. package/PasswordStrengthMeter/styles/index.css +224 -32
  73. package/PinInput/styles/index.css +381 -207
  74. package/Placeholder/styles/index.css +364 -200
  75. package/Popover/styles/index.css +468 -298
  76. package/Progress/styles/index.css +517 -236
  77. package/ProgressCircle/package.json +3 -3
  78. package/ProgressCircle/styles/index.css +248 -0
  79. package/README.md +1 -1
  80. package/Radio/styles/index.css +406 -242
  81. package/RadioGroup/styles/index.css +277 -124
  82. package/RadioTile/styles/index.css +286 -133
  83. package/RadioTileGroup/styles/index.css +0 -0
  84. package/RangeSlider/styles/index.css +599 -458
  85. package/Rate/styles/index.css +318 -179
  86. package/SegmentedControl/package.json +7 -0
  87. package/SegmentedControl/styles/index.css +157 -0
  88. package/SelectPicker/styles/index.css +2430 -2088
  89. package/Sidebar/styles/index.css +188 -28
  90. package/Sidenav/styles/index.css +764 -591
  91. package/Slider/styles/index.css +599 -458
  92. package/Stack/styles/index.css +268 -93
  93. package/Stat/styles/index.css +1620 -1454
  94. package/StatGroup/styles/index.css +185 -6
  95. package/Steps/styles/index.css +384 -234
  96. package/Table/styles/index.css +626 -497
  97. package/Tabs/styles/index.css +1815 -1649
  98. package/Tag/styles/index.css +1487 -139
  99. package/TagGroup/styles/index.css +185 -19
  100. package/TagInput/styles/index.css +2831 -2469
  101. package/TagPicker/styles/index.css +2827 -2466
  102. package/Text/styles/index.css +398 -224
  103. package/Textarea/styles/index.css +184 -5
  104. package/TimePicker/styles/index.css +3108 -2800
  105. package/TimeRangePicker/styles/index.css +3200 -2884
  106. package/Timeline/styles/index.css +305 -148
  107. package/Toggle/styles/index.css +606 -429
  108. package/Tooltip/styles/index.css +347 -214
  109. package/Tree/styles/index.css +2538 -2197
  110. package/TreePicker/styles/index.css +2548 -2206
  111. package/Uploader/styles/index.css +1680 -1612
  112. package/VisuallyHidden/styles/index.css +11 -11
  113. package/cjs/Affix/Affix.js +1 -2
  114. package/cjs/Animation/Bounce.js +4 -5
  115. package/cjs/Animation/Collapse.js +1 -2
  116. package/cjs/Animation/Fade.js +5 -6
  117. package/cjs/Animation/Slide.js +5 -6
  118. package/cjs/AutoComplete/AutoComplete.js +1 -2
  119. package/cjs/Avatar/Avatar.js +1 -2
  120. package/cjs/AvatarGroup/AvatarGroup.js +1 -2
  121. package/cjs/Badge/Badge.js +1 -2
  122. package/cjs/Breadcrumb/Breadcrumb.js +1 -2
  123. package/cjs/Button/Button.js +1 -2
  124. package/cjs/ButtonGroup/ButtonGroup.js +1 -2
  125. package/cjs/Calendar/CalendarContainer.js +1 -2
  126. package/cjs/Calendar/CalendarHeader.js +1 -2
  127. package/cjs/Calendar/Grid/GridRow.js +1 -2
  128. package/cjs/Calendar/MonthDropdown/MonthDropdown.js +17 -22
  129. package/cjs/Calendar/MonthDropdown/MonthDropdownItem.js +1 -2
  130. package/cjs/Calendar/TimeDropdown/TimeDropdown.js +1 -2
  131. package/cjs/Calendar/TimeDropdown/utils/scrollToTime.js +1 -2
  132. package/cjs/Calendar/hooks/useCalendarDate.js +3 -6
  133. package/cjs/Carousel/Carousel.js +1 -2
  134. package/cjs/CascadeTree/CascadeTree.js +1 -2
  135. package/cjs/CascadeTree/TreeView.js +1 -2
  136. package/cjs/CascadeTree/hooks/usePaths.js +7 -8
  137. package/cjs/Cascader/Cascader.js +1 -2
  138. package/cjs/CheckPicker/CheckPicker.js +1 -2
  139. package/cjs/CheckTree/CheckTree.js +1 -2
  140. package/cjs/CheckTree/CheckTreeNode.js +1 -2
  141. package/cjs/CheckTree/CheckTreeView.js +17 -22
  142. package/cjs/CheckTree/hooks/useTreeNodeProps.js +1 -2
  143. package/cjs/CheckTree/hooks/useTreeValue.js +4 -5
  144. package/cjs/CheckTreePicker/CheckTreePicker.d.ts +4 -0
  145. package/cjs/CheckTreePicker/CheckTreePicker.js +29 -2
  146. package/cjs/Checkbox/Checkbox.js +1 -2
  147. package/cjs/CheckboxGroup/CheckboxGroup.js +1 -2
  148. package/cjs/Container/Container.js +1 -2
  149. package/cjs/CustomProvider/CustomProvider.js +14 -4
  150. package/cjs/DOMHelper/index.js +1 -2
  151. package/cjs/DateInput/DateInput.js +5 -2
  152. package/cjs/DateInput/hooks/useDateInputState.js +6 -7
  153. package/cjs/DateInput/hooks/useIsFocused.js +4 -5
  154. package/cjs/DateInput/hooks/useKeyboardInputEvent.js +7 -8
  155. package/cjs/DateInput/test/types/TestKeyPressProps.d.ts +6 -0
  156. package/cjs/DateInput/test/types/TestKeyPressProps.js +4 -0
  157. package/cjs/DatePicker/DatePicker.js +3 -10
  158. package/cjs/DatePicker/PredefinedRanges.js +1 -2
  159. package/cjs/DatePicker/Toolbar.js +6 -7
  160. package/cjs/DatePicker/utils.js +14 -24
  161. package/cjs/DateRangeInput/DateRangeInput.js +6 -6
  162. package/cjs/DateRangePicker/Calendar.d.ts +2 -1
  163. package/cjs/DateRangePicker/Calendar.js +8 -3
  164. package/cjs/DateRangePicker/DateRangePicker.d.ts +3 -1
  165. package/cjs/DateRangePicker/DateRangePicker.js +9 -20
  166. package/cjs/DateRangePicker/DateRangePickerProvider.js +1 -2
  167. package/cjs/DateRangePicker/disabledDateUtils.js +5 -18
  168. package/cjs/DateRangePicker/hooks/useCalendarHandlers.js +7 -8
  169. package/cjs/DateRangePicker/utils.js +5 -6
  170. package/cjs/Dropdown/Dropdown.js +9 -12
  171. package/cjs/Dropdown/DropdownItem.js +6 -8
  172. package/cjs/Dropdown/DropdownMenu.js +36 -43
  173. package/cjs/Dropdown/DropdownState.js +1 -4
  174. package/cjs/Form/Form.js +1 -2
  175. package/cjs/Form/FormContext.js +1 -2
  176. package/cjs/Form/hooks/useFormValidate.js +3 -8
  177. package/cjs/Form/hooks/useSchemaModel.js +6 -9
  178. package/cjs/FormControl/FormControl.d.ts +2 -2
  179. package/cjs/FormControl/FormControl.js +1 -1
  180. package/cjs/FormErrorMessage/FormErrorMessage.d.ts +2 -2
  181. package/cjs/FormGroup/FormGroup.d.ts +0 -18
  182. package/cjs/FormGroup/FormGroup.js +4 -33
  183. package/cjs/FormGroup/FormGroupContext.d.ts +4 -0
  184. package/cjs/FormGroup/FormGroupContext.js +8 -0
  185. package/cjs/FormGroup/index.d.ts +1 -1
  186. package/cjs/FormGroup/index.js +4 -4
  187. package/cjs/FormGroup/useFormGroup.d.ts +18 -0
  188. package/cjs/FormGroup/useFormGroup.js +35 -0
  189. package/cjs/Grid/Col.js +1 -2
  190. package/cjs/Grid/utils/styles.d.ts +1 -1
  191. package/cjs/Grid/utils/styles.js +1 -4
  192. package/cjs/InlineEdit/useEditState.js +1 -1
  193. package/cjs/InlineEdit/useFocusEvent.js +6 -7
  194. package/cjs/Input/Input.js +2 -3
  195. package/cjs/InputGroup/InputGroup.d.ts +0 -5
  196. package/cjs/InputGroup/InputGroup.js +4 -5
  197. package/cjs/InputGroup/InputGroupContext.d.ts +6 -0
  198. package/cjs/InputGroup/InputGroupContext.js +8 -0
  199. package/cjs/InputGroup/index.d.ts +1 -0
  200. package/cjs/InputGroup/index.js +3 -1
  201. package/cjs/InputPicker/InputAutosize.js +1 -2
  202. package/cjs/InputPicker/InputPicker.js +1 -2
  203. package/cjs/List/List.js +1 -2
  204. package/cjs/List/ListItem.js +1 -2
  205. package/cjs/List/helper/AutoScroller.js +7 -8
  206. package/cjs/List/helper/useSortHelper.js +1 -1
  207. package/cjs/List/helper/utils.js +4 -7
  208. package/cjs/MaskedInput/TextMask.js +1 -2
  209. package/cjs/MaskedInput/adjustCaretPosition.js +11 -12
  210. package/cjs/MaskedInput/conformToMask.js +1 -10
  211. package/cjs/MaskedInput/createTextMaskInputElement.js +9 -10
  212. package/cjs/MaskedInput/utilities.js +1 -7
  213. package/cjs/Menu/Menu.js +1 -2
  214. package/cjs/Menu/MenuItem.js +6 -8
  215. package/cjs/Message/Message.js +1 -2
  216. package/cjs/Modal/Modal.js +1 -2
  217. package/cjs/Modal/ModalBody.js +1 -2
  218. package/cjs/Modal/ModalHeader.js +1 -2
  219. package/cjs/Modal/ModalTitle.js +1 -2
  220. package/cjs/MultiCascadeTree/hooks/useCascadeValue.js +1 -4
  221. package/cjs/MultiCascadeTree/utils.js +1 -4
  222. package/cjs/MultiCascader/MultiCascader.js +1 -2
  223. package/cjs/Nav/AdaptiveNavItem.js +3 -4
  224. package/cjs/Nav/Nav.js +3 -4
  225. package/cjs/Nav/NavDropdown.js +9 -12
  226. package/cjs/Nav/NavDropdownItem.js +6 -8
  227. package/cjs/Nav/NavDropdownMenu.js +36 -43
  228. package/cjs/Nav/NavItem.js +1 -2
  229. package/cjs/Nav/NavMegaMenu.js +1 -2
  230. package/cjs/Nav/NavMenu.js +3 -4
  231. package/cjs/Navbar/Navbar.js +1 -2
  232. package/cjs/Navbar/NavbarDrawer.js +1 -2
  233. package/cjs/Navbar/NavbarDropdown.js +8 -11
  234. package/cjs/Navbar/NavbarDropdownItem.js +1 -2
  235. package/cjs/Navbar/NavbarDropdownMenu.js +12 -16
  236. package/cjs/Navbar/NavbarItem.js +1 -2
  237. package/cjs/Navbar/NavbarMegaMenu.js +1 -2
  238. package/cjs/Navbar/NavbarToggle.js +1 -2
  239. package/cjs/Notification/Notification.js +1 -2
  240. package/cjs/NumberInput/utils/number.js +1 -4
  241. package/cjs/Pagination/LimitPicker.js +1 -2
  242. package/cjs/Pagination/PaginationButton.js +1 -2
  243. package/cjs/Panel/Panel.js +1 -2
  244. package/cjs/Panel/PanelHeader.js +1 -2
  245. package/cjs/PanelGroup/PanelGroup.js +1 -2
  246. package/cjs/PanelGroup/index.js +1 -2
  247. package/cjs/Placeholder/PlaceholderGrid.js +1 -2
  248. package/cjs/Placeholder/PlaceholderParagraph.js +1 -2
  249. package/cjs/Popover/Popover.js +1 -2
  250. package/cjs/Progress/Progress.d.ts +1 -1
  251. package/cjs/Progress/Progress.js +1 -1
  252. package/cjs/Progress/ProgressInfo.d.ts +17 -0
  253. package/cjs/Progress/ProgressInfo.js +29 -0
  254. package/cjs/Progress/ProgressLine.d.ts +20 -6
  255. package/cjs/Progress/ProgressLine.js +48 -37
  256. package/cjs/Progress/ProgressSections.d.ts +15 -0
  257. package/cjs/Progress/ProgressSections.js +43 -0
  258. package/cjs/Progress/ProgressStroke.d.ts +24 -0
  259. package/cjs/Progress/ProgressStroke.js +51 -0
  260. package/cjs/Progress/index.d.ts +3 -3
  261. package/cjs/Progress/index.js +1 -1
  262. package/cjs/Progress/types.d.ts +11 -0
  263. package/cjs/Progress/types.js +4 -0
  264. package/cjs/{Progress → ProgressCircle}/ProgressCircle.d.ts +20 -14
  265. package/cjs/ProgressCircle/ProgressCircle.js +113 -0
  266. package/cjs/ProgressCircle/ProgressCircleSections.d.ts +23 -0
  267. package/cjs/ProgressCircle/ProgressCircleSections.js +52 -0
  268. package/cjs/ProgressCircle/hooks/useProgressCirclePath.d.ts +28 -0
  269. package/cjs/ProgressCircle/hooks/useProgressCirclePath.js +66 -0
  270. package/cjs/ProgressCircle/index.d.ts +4 -0
  271. package/cjs/ProgressCircle/index.js +11 -0
  272. package/cjs/Radio/Radio.js +1 -2
  273. package/cjs/RadioGroup/RadioGroup.d.ts +4 -1
  274. package/cjs/RadioGroup/RadioGroup.js +1 -2
  275. package/cjs/RadioTile/RadioTile.js +1 -2
  276. package/cjs/RadioTileGroup/RadioTileGroup.js +1 -2
  277. package/cjs/RangeSlider/RangeSlider.js +1 -3
  278. package/cjs/Rate/Character.js +1 -2
  279. package/cjs/Rate/useRatingStates.js +6 -7
  280. package/cjs/SegmentedControl/Indicator.d.ts +10 -0
  281. package/cjs/SegmentedControl/Indicator.js +22 -0
  282. package/cjs/SegmentedControl/SegmentedControl.d.ts +27 -0
  283. package/cjs/SegmentedControl/SegmentedControl.js +87 -0
  284. package/cjs/SegmentedControl/SegmentedItem.d.ts +16 -0
  285. package/cjs/SegmentedControl/SegmentedItem.js +44 -0
  286. package/cjs/SegmentedControl/hooks/useIndicatorPosition.d.ts +17 -0
  287. package/cjs/SegmentedControl/hooks/useIndicatorPosition.js +55 -0
  288. package/cjs/SegmentedControl/index.d.ts +4 -0
  289. package/cjs/SegmentedControl/index.js +11 -0
  290. package/cjs/SelectPicker/SelectPicker.js +1 -2
  291. package/cjs/Sidebar/Sidebar.js +1 -2
  292. package/cjs/Sidenav/ExpandedSidenavDropdown.js +12 -17
  293. package/cjs/Sidenav/ExpandedSidenavDropdownItem.js +3 -4
  294. package/cjs/Sidenav/ExpandedSidenavDropdownMenu.js +9 -12
  295. package/cjs/Sidenav/Sidenav.d.ts +0 -15
  296. package/cjs/Sidenav/Sidenav.js +4 -5
  297. package/cjs/Sidenav/SidenavContext.d.ts +16 -0
  298. package/cjs/Sidenav/SidenavContext.js +8 -0
  299. package/cjs/Sidenav/SidenavDropdown.js +15 -19
  300. package/cjs/Sidenav/SidenavDropdownItem.js +8 -10
  301. package/cjs/Sidenav/SidenavDropdownMenu.js +38 -45
  302. package/cjs/Sidenav/SidenavItem.js +8 -10
  303. package/cjs/Sidenav/SidenavToggle.js +3 -4
  304. package/cjs/Slider/ProgressBar.d.ts +0 -1
  305. package/cjs/Slider/ProgressBar.js +1 -3
  306. package/cjs/Slider/Slider.js +14 -6
  307. package/cjs/Stack/Stack.js +4 -2
  308. package/cjs/Stack/VStack.js +1 -3
  309. package/cjs/Tag/Tag.js +1 -2
  310. package/cjs/TagInput/TagInput.js +1 -2
  311. package/cjs/TagPicker/TagPicker.js +1 -2
  312. package/cjs/TimePicker/TimePicker.js +1 -2
  313. package/cjs/Toggle/Toggle.js +1 -2
  314. package/cjs/Tooltip/Tooltip.js +1 -2
  315. package/cjs/Tree/Tree.js +1 -2
  316. package/cjs/Tree/TreeNode.js +1 -2
  317. package/cjs/Tree/TreeView.js +17 -22
  318. package/cjs/Tree/hooks/useFlattenTree.js +2 -8
  319. package/cjs/Tree/hooks/useTreeNodeProps.js +1 -2
  320. package/cjs/Tree/hooks/useVirtualizedTreeData.js +1 -7
  321. package/cjs/Tree/utils/flattenTree.js +2 -8
  322. package/cjs/Tree/utils/getExpandItemValues.js +6 -7
  323. package/cjs/Tree/utils/indentTreeNode.js +1 -4
  324. package/cjs/TreePicker/TreePicker.js +1 -2
  325. package/cjs/Uploader/UploadFileItem.js +2 -6
  326. package/cjs/Uploader/UploadTrigger.js +1 -2
  327. package/cjs/Uploader/Uploader.js +2 -6
  328. package/cjs/global.d.ts +0 -6
  329. package/cjs/index.d.ts +3 -0
  330. package/cjs/index.js +18 -0
  331. package/cjs/internals/Disclosure/Disclosure.js +1 -2
  332. package/cjs/internals/InputBase/InputBase.js +2 -3
  333. package/cjs/internals/Menu/Menu.js +13 -18
  334. package/cjs/internals/Menu/MenuItem.js +1 -2
  335. package/cjs/internals/Menu/Menubar.js +6 -8
  336. package/cjs/internals/Menu/useRenderMenuItem.js +1 -2
  337. package/cjs/internals/Overlay/Modal.js +1 -2
  338. package/cjs/internals/Overlay/Overlay.js +1 -2
  339. package/cjs/internals/Overlay/OverlayProvider.js +1 -2
  340. package/cjs/internals/Overlay/OverlayTrigger.js +3 -11
  341. package/cjs/internals/Overlay/Position.js +4 -8
  342. package/cjs/internals/Overlay/types.d.ts +1 -1
  343. package/cjs/internals/Overlay/utils/position.d.ts +24 -0
  344. package/cjs/internals/Overlay/{positionUtils.js → utils/position.js} +136 -50
  345. package/cjs/internals/Picker/Listbox.js +18 -23
  346. package/cjs/internals/Picker/PickerIndicator.js +9 -10
  347. package/cjs/internals/Picker/PickerLabel.js +6 -7
  348. package/cjs/internals/Picker/PickerPopup.js +1 -2
  349. package/cjs/internals/Picker/PickerToggle.js +1 -2
  350. package/cjs/internals/Picker/PickerToggleTrigger.js +1 -2
  351. package/cjs/internals/Picker/utils.js +1 -4
  352. package/cjs/internals/Provider/CustomContext.d.ts +20 -1
  353. package/cjs/internals/Provider/types.d.ts +8 -3
  354. package/cjs/internals/Ripple/Ripple.js +1 -2
  355. package/cjs/internals/SafeAnchor/SafeAnchor.js +1 -2
  356. package/cjs/internals/Tree/TreeProvider.js +4 -5
  357. package/cjs/internals/Tree/utils/filterNodesOfTree.js +1 -4
  358. package/cjs/internals/Tree/utils/findNodeOfTree.js +1 -4
  359. package/cjs/internals/Windowing/AutoSizer.js +1 -2
  360. package/cjs/internals/Windowing/List.js +1 -2
  361. package/cjs/internals/Windowing/index.js +1 -2
  362. package/cjs/internals/hooks/useClickOutside.js +5 -6
  363. package/cjs/internals/hooks/useElementResize.d.ts +2 -1
  364. package/cjs/internals/hooks/useElementResize.js +50 -7
  365. package/cjs/internals/hooks/useEventCallback.js +1 -4
  366. package/cjs/internals/hooks/useEventListener.js +1 -4
  367. package/cjs/internals/hooks/usePortal.js +9 -15
  368. package/cjs/internals/hooks/useRootClose.js +6 -7
  369. package/cjs/internals/hooks/useStyles.js +5 -8
  370. package/cjs/internals/hooks/useTimeout.js +1 -7
  371. package/cjs/internals/hooks/useToggleCaret.d.ts +1 -1
  372. package/cjs/internals/intl/FormattedDate.js +4 -5
  373. package/cjs/internals/intl/FormattedNumber.js +5 -7
  374. package/cjs/internals/types/placement.d.ts +5 -0
  375. package/cjs/internals/utils/colours.js +1 -4
  376. package/cjs/internals/utils/composeFunctions.js +1 -4
  377. package/cjs/internals/utils/createChainedFunction.js +2 -8
  378. package/cjs/internals/utils/date/copyTime.js +4 -5
  379. package/cjs/internals/utils/getDataGroupBy.js +5 -8
  380. package/cjs/internals/utils/html/htmlPropsUtils.js +1 -4
  381. package/cjs/internals/utils/placement.js +1 -4
  382. package/cjs/internals/utils/react/createComponent.js +6 -7
  383. package/cjs/internals/utils/string/tplTransform.js +1 -4
  384. package/cjs/internals/utils/style-sheet/css.d.ts +1 -1
  385. package/cjs/internals/utils/style-sheet/css.js +4 -13
  386. package/cjs/internals/utils/style-sheet/styles.js +2 -8
  387. package/cjs/locales/ar_EG.d.ts +6 -0
  388. package/cjs/locales/ar_EG.js +6 -0
  389. package/cjs/locales/ca_ES.d.ts +6 -0
  390. package/cjs/locales/ca_ES.js +6 -0
  391. package/cjs/locales/cs_CZ.d.ts +6 -0
  392. package/cjs/locales/cs_CZ.js +6 -0
  393. package/cjs/locales/da_DK.d.ts +6 -0
  394. package/cjs/locales/da_DK.js +6 -0
  395. package/cjs/locales/de_DE.d.ts +6 -0
  396. package/cjs/locales/de_DE.js +6 -0
  397. package/cjs/locales/en_GB.d.ts +6 -0
  398. package/cjs/locales/en_GB.js +6 -0
  399. package/cjs/locales/en_US.d.ts +6 -0
  400. package/cjs/locales/en_US.js +6 -0
  401. package/cjs/locales/es_AR.d.ts +6 -0
  402. package/cjs/locales/es_AR.js +6 -0
  403. package/cjs/locales/es_ES.d.ts +6 -0
  404. package/cjs/locales/es_ES.js +7 -1
  405. package/cjs/locales/fa_IR.d.ts +6 -0
  406. package/cjs/locales/fa_IR.js +6 -0
  407. package/cjs/locales/fi_FI.d.ts +6 -0
  408. package/cjs/locales/fi_FI.js +6 -0
  409. package/cjs/locales/fr_FR.d.ts +6 -0
  410. package/cjs/locales/fr_FR.js +6 -0
  411. package/cjs/locales/gu_IN.d.ts +157 -0
  412. package/cjs/locales/gu_IN.js +97 -0
  413. package/cjs/locales/hu_HU.d.ts +6 -0
  414. package/cjs/locales/hu_HU.js +6 -0
  415. package/cjs/locales/index.d.ts +3 -0
  416. package/cjs/locales/index.js +8 -2
  417. package/cjs/locales/it_IT.d.ts +6 -0
  418. package/cjs/locales/it_IT.js +6 -0
  419. package/cjs/locales/ja_JP.d.ts +6 -0
  420. package/cjs/locales/ja_JP.js +6 -0
  421. package/cjs/locales/kk_KZ.d.ts +6 -0
  422. package/cjs/locales/kk_KZ.js +6 -0
  423. package/cjs/locales/ko_KR.d.ts +6 -0
  424. package/cjs/locales/ko_KR.js +6 -0
  425. package/cjs/locales/ne_NP.d.ts +6 -0
  426. package/cjs/locales/ne_NP.js +6 -0
  427. package/cjs/locales/nl_NL.d.ts +6 -0
  428. package/cjs/locales/nl_NL.js +8 -2
  429. package/cjs/locales/pl_PL.d.ts +6 -0
  430. package/cjs/locales/pl_PL.js +6 -0
  431. package/cjs/locales/pt_BR.d.ts +6 -0
  432. package/cjs/locales/pt_BR.js +6 -0
  433. package/cjs/locales/ru_RU.d.ts +6 -0
  434. package/cjs/locales/ru_RU.js +6 -0
  435. package/cjs/locales/sv_SE.d.ts +6 -0
  436. package/cjs/locales/sv_SE.js +6 -0
  437. package/cjs/locales/th_TH.d.ts +169 -0
  438. package/cjs/locales/th_TH.js +100 -0
  439. package/cjs/locales/tr_TR.d.ts +6 -0
  440. package/cjs/locales/tr_TR.js +6 -0
  441. package/cjs/locales/uk_UA.d.ts +157 -0
  442. package/cjs/locales/uk_UA.js +97 -0
  443. package/cjs/locales/zh_CN.d.ts +6 -0
  444. package/cjs/locales/zh_CN.js +6 -0
  445. package/cjs/locales/zh_TW.d.ts +6 -0
  446. package/cjs/locales/zh_TW.js +6 -0
  447. package/cjs/toaster/ToastContainer.js +3 -4
  448. package/cjs/toaster/toaster.js +2 -6
  449. package/cjs/useDialog/Dialog.d.ts +15 -0
  450. package/cjs/useDialog/Dialog.js +109 -0
  451. package/cjs/useDialog/DialogContainer.d.ts +11 -0
  452. package/cjs/useDialog/DialogContainer.js +57 -0
  453. package/cjs/useDialog/index.d.ts +3 -0
  454. package/cjs/useDialog/index.js +15 -0
  455. package/cjs/useDialog/types.d.ts +33 -0
  456. package/cjs/useDialog/types.js +4 -0
  457. package/cjs/useDialog/useDialog.d.ts +15 -0
  458. package/cjs/useDialog/useDialog.js +126 -0
  459. package/cjs/useFormControl/useFormControl.js +1 -4
  460. package/cjs/useMediaQuery/breakpoints.js +4 -10
  461. package/cjs/useMediaQuery/useMediaQuery.js +1 -4
  462. package/cjs/useToaster/useToaster.d.ts +1 -1
  463. package/cjs/useToaster/useToaster.js +9 -9
  464. package/dist/rsuite-no-reset.css +14549 -13982
  465. package/dist/rsuite-no-reset.min.css +1 -2
  466. package/dist/rsuite.css +14778 -14187
  467. package/dist/rsuite.js +508 -229
  468. package/dist/rsuite.js.map +1 -1
  469. package/dist/rsuite.min.css +1 -2
  470. package/dist/rsuite.min.js +1 -1
  471. package/dist/rsuite.min.js.map +1 -1
  472. package/esm/Animation/Bounce.js +4 -5
  473. package/esm/Animation/Fade.js +5 -6
  474. package/esm/Animation/Slide.js +5 -6
  475. package/esm/Calendar/MonthDropdown/MonthDropdown.js +16 -20
  476. package/esm/Calendar/TimeDropdown/utils/scrollToTime.js +1 -2
  477. package/esm/Calendar/hooks/useCalendarDate.js +3 -6
  478. package/esm/CascadeTree/hooks/usePaths.js +7 -8
  479. package/esm/CheckTree/CheckTreeView.js +16 -20
  480. package/esm/CheckTree/hooks/useTreeValue.js +4 -5
  481. package/esm/CheckTreePicker/CheckTreePicker.d.ts +4 -0
  482. package/esm/CheckTreePicker/CheckTreePicker.js +28 -0
  483. package/esm/CustomProvider/CustomProvider.js +13 -2
  484. package/esm/DateInput/DateInput.js +4 -0
  485. package/esm/DateInput/hooks/useDateInputState.js +6 -7
  486. package/esm/DateInput/hooks/useIsFocused.js +4 -5
  487. package/esm/DateInput/hooks/useKeyboardInputEvent.js +7 -8
  488. package/esm/DateInput/test/types/TestKeyPressProps.d.ts +6 -0
  489. package/esm/DateInput/test/types/TestKeyPressProps.js +2 -0
  490. package/esm/DatePicker/DatePicker.js +2 -8
  491. package/esm/DatePicker/Toolbar.js +6 -7
  492. package/esm/DatePicker/utils.js +14 -24
  493. package/esm/DateRangeInput/DateRangeInput.js +5 -4
  494. package/esm/DateRangePicker/Calendar.d.ts +2 -1
  495. package/esm/DateRangePicker/Calendar.js +7 -1
  496. package/esm/DateRangePicker/DateRangePicker.d.ts +3 -1
  497. package/esm/DateRangePicker/DateRangePicker.js +8 -18
  498. package/esm/DateRangePicker/disabledDateUtils.js +4 -16
  499. package/esm/DateRangePicker/hooks/useCalendarHandlers.js +7 -8
  500. package/esm/DateRangePicker/utils.js +5 -6
  501. package/esm/Dropdown/Dropdown.js +8 -10
  502. package/esm/Dropdown/DropdownItem.js +5 -6
  503. package/esm/Dropdown/DropdownMenu.js +35 -41
  504. package/esm/Dropdown/DropdownState.js +1 -4
  505. package/esm/Form/hooks/useFormValidate.js +3 -8
  506. package/esm/Form/hooks/useSchemaModel.js +6 -9
  507. package/esm/FormControl/FormControl.d.ts +2 -2
  508. package/esm/FormControl/FormControl.js +1 -1
  509. package/esm/FormErrorMessage/FormErrorMessage.d.ts +2 -2
  510. package/esm/FormGroup/FormGroup.d.ts +0 -18
  511. package/esm/FormGroup/FormGroup.js +1 -28
  512. package/esm/FormGroup/FormGroupContext.d.ts +4 -0
  513. package/esm/FormGroup/FormGroupContext.js +3 -0
  514. package/esm/FormGroup/index.d.ts +1 -1
  515. package/esm/FormGroup/index.js +1 -1
  516. package/esm/FormGroup/useFormGroup.d.ts +18 -0
  517. package/esm/FormGroup/useFormGroup.js +30 -0
  518. package/esm/Grid/utils/styles.d.ts +1 -1
  519. package/esm/Grid/utils/styles.js +1 -4
  520. package/esm/InlineEdit/useEditState.js +1 -1
  521. package/esm/InlineEdit/useFocusEvent.js +6 -7
  522. package/esm/Input/Input.js +1 -1
  523. package/esm/InputGroup/InputGroup.d.ts +0 -5
  524. package/esm/InputGroup/InputGroup.js +1 -1
  525. package/esm/InputGroup/InputGroupContext.d.ts +6 -0
  526. package/esm/InputGroup/InputGroupContext.js +3 -0
  527. package/esm/InputGroup/index.d.ts +1 -0
  528. package/esm/InputGroup/index.js +1 -0
  529. package/esm/List/helper/AutoScroller.js +7 -8
  530. package/esm/List/helper/useSortHelper.js +1 -1
  531. package/esm/List/helper/utils.js +4 -7
  532. package/esm/MaskedInput/adjustCaretPosition.js +11 -12
  533. package/esm/MaskedInput/conformToMask.js +1 -10
  534. package/esm/MaskedInput/createTextMaskInputElement.js +9 -10
  535. package/esm/MaskedInput/utilities.js +1 -7
  536. package/esm/Menu/MenuItem.js +5 -6
  537. package/esm/MultiCascadeTree/hooks/useCascadeValue.js +1 -4
  538. package/esm/MultiCascadeTree/utils.js +1 -4
  539. package/esm/Nav/AdaptiveNavItem.js +1 -1
  540. package/esm/Nav/Nav.js +1 -1
  541. package/esm/Nav/NavDropdown.js +8 -10
  542. package/esm/Nav/NavDropdownItem.js +5 -6
  543. package/esm/Nav/NavDropdownMenu.js +35 -41
  544. package/esm/Nav/NavMenu.js +1 -1
  545. package/esm/Navbar/NavbarDropdown.js +7 -9
  546. package/esm/Navbar/NavbarDropdownMenu.js +11 -14
  547. package/esm/NumberInput/utils/number.js +1 -4
  548. package/esm/Progress/Progress.d.ts +1 -1
  549. package/esm/Progress/Progress.js +1 -1
  550. package/esm/Progress/ProgressInfo.d.ts +17 -0
  551. package/esm/Progress/ProgressInfo.js +24 -0
  552. package/esm/Progress/ProgressLine.d.ts +20 -6
  553. package/esm/Progress/ProgressLine.js +49 -38
  554. package/esm/Progress/ProgressSections.d.ts +15 -0
  555. package/esm/Progress/ProgressSections.js +38 -0
  556. package/esm/Progress/ProgressStroke.d.ts +24 -0
  557. package/esm/Progress/ProgressStroke.js +46 -0
  558. package/esm/Progress/index.d.ts +3 -3
  559. package/esm/Progress/index.js +1 -1
  560. package/esm/Progress/types.d.ts +11 -0
  561. package/esm/Progress/types.js +2 -0
  562. package/esm/{Progress → ProgressCircle}/ProgressCircle.d.ts +20 -14
  563. package/esm/ProgressCircle/ProgressCircle.js +107 -0
  564. package/esm/ProgressCircle/ProgressCircleSections.d.ts +23 -0
  565. package/esm/ProgressCircle/ProgressCircleSections.js +47 -0
  566. package/esm/ProgressCircle/hooks/useProgressCirclePath.d.ts +28 -0
  567. package/esm/ProgressCircle/hooks/useProgressCirclePath.js +62 -0
  568. package/esm/ProgressCircle/index.d.ts +4 -0
  569. package/esm/ProgressCircle/index.js +8 -0
  570. package/esm/RadioGroup/RadioGroup.d.ts +4 -1
  571. package/esm/RangeSlider/RangeSlider.js +0 -1
  572. package/esm/Rate/useRatingStates.js +6 -7
  573. package/esm/SegmentedControl/Indicator.d.ts +10 -0
  574. package/esm/SegmentedControl/Indicator.js +17 -0
  575. package/esm/SegmentedControl/SegmentedControl.d.ts +27 -0
  576. package/esm/SegmentedControl/SegmentedControl.js +81 -0
  577. package/esm/SegmentedControl/SegmentedItem.d.ts +16 -0
  578. package/esm/SegmentedControl/SegmentedItem.js +39 -0
  579. package/esm/SegmentedControl/hooks/useIndicatorPosition.d.ts +17 -0
  580. package/esm/SegmentedControl/hooks/useIndicatorPosition.js +50 -0
  581. package/esm/SegmentedControl/index.d.ts +4 -0
  582. package/esm/SegmentedControl/index.js +8 -0
  583. package/esm/Sidenav/ExpandedSidenavDropdown.js +10 -14
  584. package/esm/Sidenav/ExpandedSidenavDropdownItem.js +1 -1
  585. package/esm/Sidenav/ExpandedSidenavDropdownMenu.js +7 -9
  586. package/esm/Sidenav/Sidenav.d.ts +0 -15
  587. package/esm/Sidenav/Sidenav.js +1 -1
  588. package/esm/Sidenav/SidenavContext.d.ts +16 -0
  589. package/esm/Sidenav/SidenavContext.js +3 -0
  590. package/esm/Sidenav/SidenavDropdown.js +13 -16
  591. package/esm/Sidenav/SidenavDropdownItem.js +6 -7
  592. package/esm/Sidenav/SidenavDropdownMenu.js +36 -42
  593. package/esm/Sidenav/SidenavItem.js +6 -7
  594. package/esm/Sidenav/SidenavToggle.js +1 -1
  595. package/esm/Slider/ProgressBar.d.ts +0 -1
  596. package/esm/Slider/ProgressBar.js +1 -3
  597. package/esm/Slider/Slider.js +13 -4
  598. package/esm/Stack/Stack.js +4 -2
  599. package/esm/Stack/VStack.js +1 -3
  600. package/esm/Tree/TreeView.js +16 -20
  601. package/esm/Tree/hooks/useFlattenTree.js +2 -8
  602. package/esm/Tree/hooks/useVirtualizedTreeData.js +1 -7
  603. package/esm/Tree/utils/flattenTree.js +2 -8
  604. package/esm/Tree/utils/getExpandItemValues.js +6 -7
  605. package/esm/Tree/utils/indentTreeNode.js +1 -4
  606. package/esm/Uploader/UploadFileItem.js +1 -4
  607. package/esm/Uploader/Uploader.js +1 -4
  608. package/esm/global.d.ts +0 -6
  609. package/esm/index.d.ts +3 -0
  610. package/esm/index.js +3 -0
  611. package/esm/internals/InputBase/InputBase.js +1 -1
  612. package/esm/internals/Menu/Menu.js +12 -16
  613. package/esm/internals/Menu/Menubar.js +5 -6
  614. package/esm/internals/Overlay/OverlayTrigger.js +2 -9
  615. package/esm/internals/Overlay/Position.js +3 -6
  616. package/esm/internals/Overlay/types.d.ts +1 -1
  617. package/esm/internals/Overlay/utils/position.d.ts +24 -0
  618. package/esm/internals/Overlay/{positionUtils.js → utils/position.js} +134 -48
  619. package/esm/internals/Picker/Listbox.js +17 -21
  620. package/esm/internals/Picker/PickerIndicator.js +9 -10
  621. package/esm/internals/Picker/PickerLabel.js +6 -7
  622. package/esm/internals/Picker/utils.js +1 -4
  623. package/esm/internals/Provider/CustomContext.d.ts +20 -1
  624. package/esm/internals/Provider/types.d.ts +8 -3
  625. package/esm/internals/Tree/TreeProvider.js +4 -5
  626. package/esm/internals/Tree/utils/filterNodesOfTree.js +1 -4
  627. package/esm/internals/Tree/utils/findNodeOfTree.js +1 -4
  628. package/esm/internals/hooks/useClickOutside.js +5 -6
  629. package/esm/internals/hooks/useElementResize.d.ts +2 -1
  630. package/esm/internals/hooks/useElementResize.js +50 -7
  631. package/esm/internals/hooks/useEventCallback.js +1 -4
  632. package/esm/internals/hooks/useEventListener.js +1 -4
  633. package/esm/internals/hooks/usePortal.js +8 -13
  634. package/esm/internals/hooks/useRootClose.js +6 -7
  635. package/esm/internals/hooks/useStyles.js +5 -8
  636. package/esm/internals/hooks/useTimeout.js +1 -7
  637. package/esm/internals/hooks/useToggleCaret.d.ts +1 -1
  638. package/esm/internals/intl/FormattedDate.js +4 -5
  639. package/esm/internals/intl/FormattedNumber.js +4 -5
  640. package/esm/internals/types/placement.d.ts +5 -0
  641. package/esm/internals/utils/colours.js +1 -4
  642. package/esm/internals/utils/composeFunctions.js +1 -4
  643. package/esm/internals/utils/createChainedFunction.js +2 -8
  644. package/esm/internals/utils/date/copyTime.js +4 -5
  645. package/esm/internals/utils/getDataGroupBy.js +5 -8
  646. package/esm/internals/utils/html/htmlPropsUtils.js +1 -4
  647. package/esm/internals/utils/placement.js +1 -4
  648. package/esm/internals/utils/react/createComponent.js +6 -7
  649. package/esm/internals/utils/string/tplTransform.js +1 -4
  650. package/esm/internals/utils/style-sheet/css.d.ts +1 -1
  651. package/esm/internals/utils/style-sheet/css.js +4 -13
  652. package/esm/internals/utils/style-sheet/styles.js +2 -8
  653. package/esm/locales/ar_EG.d.ts +6 -0
  654. package/esm/locales/ar_EG.js +6 -0
  655. package/esm/locales/ca_ES.d.ts +6 -0
  656. package/esm/locales/ca_ES.js +6 -0
  657. package/esm/locales/cs_CZ.d.ts +6 -0
  658. package/esm/locales/cs_CZ.js +6 -0
  659. package/esm/locales/da_DK.d.ts +6 -0
  660. package/esm/locales/da_DK.js +6 -0
  661. package/esm/locales/de_DE.d.ts +6 -0
  662. package/esm/locales/de_DE.js +6 -0
  663. package/esm/locales/en_GB.d.ts +6 -0
  664. package/esm/locales/en_GB.js +6 -0
  665. package/esm/locales/en_US.d.ts +6 -0
  666. package/esm/locales/en_US.js +6 -0
  667. package/esm/locales/es_AR.d.ts +6 -0
  668. package/esm/locales/es_AR.js +6 -0
  669. package/esm/locales/es_ES.d.ts +6 -0
  670. package/esm/locales/es_ES.js +7 -1
  671. package/esm/locales/fa_IR.d.ts +6 -0
  672. package/esm/locales/fa_IR.js +6 -0
  673. package/esm/locales/fi_FI.d.ts +6 -0
  674. package/esm/locales/fi_FI.js +6 -0
  675. package/esm/locales/fr_FR.d.ts +6 -0
  676. package/esm/locales/fr_FR.js +6 -0
  677. package/esm/locales/gu_IN.d.ts +157 -0
  678. package/esm/locales/gu_IN.js +93 -0
  679. package/esm/locales/hu_HU.d.ts +6 -0
  680. package/esm/locales/hu_HU.js +6 -0
  681. package/esm/locales/index.d.ts +3 -0
  682. package/esm/locales/index.js +4 -1
  683. package/esm/locales/it_IT.d.ts +6 -0
  684. package/esm/locales/it_IT.js +6 -0
  685. package/esm/locales/ja_JP.d.ts +6 -0
  686. package/esm/locales/ja_JP.js +6 -0
  687. package/esm/locales/kk_KZ.d.ts +6 -0
  688. package/esm/locales/kk_KZ.js +6 -0
  689. package/esm/locales/ko_KR.d.ts +6 -0
  690. package/esm/locales/ko_KR.js +6 -0
  691. package/esm/locales/ne_NP.d.ts +6 -0
  692. package/esm/locales/ne_NP.js +6 -0
  693. package/esm/locales/nl_NL.d.ts +6 -0
  694. package/esm/locales/nl_NL.js +8 -2
  695. package/esm/locales/pl_PL.d.ts +6 -0
  696. package/esm/locales/pl_PL.js +6 -0
  697. package/esm/locales/pt_BR.d.ts +6 -0
  698. package/esm/locales/pt_BR.js +6 -0
  699. package/esm/locales/ru_RU.d.ts +6 -0
  700. package/esm/locales/ru_RU.js +6 -0
  701. package/esm/locales/sv_SE.d.ts +6 -0
  702. package/esm/locales/sv_SE.js +6 -0
  703. package/esm/locales/th_TH.d.ts +169 -0
  704. package/esm/locales/th_TH.js +96 -0
  705. package/esm/locales/tr_TR.d.ts +6 -0
  706. package/esm/locales/tr_TR.js +6 -0
  707. package/esm/locales/uk_UA.d.ts +157 -0
  708. package/esm/locales/uk_UA.js +93 -0
  709. package/esm/locales/zh_CN.d.ts +6 -0
  710. package/esm/locales/zh_CN.js +6 -0
  711. package/esm/locales/zh_TW.d.ts +6 -0
  712. package/esm/locales/zh_TW.js +6 -0
  713. package/esm/toaster/ToastContainer.js +2 -2
  714. package/esm/toaster/toaster.js +1 -4
  715. package/esm/useDialog/Dialog.d.ts +15 -0
  716. package/esm/useDialog/Dialog.js +103 -0
  717. package/esm/useDialog/DialogContainer.d.ts +11 -0
  718. package/esm/useDialog/DialogContainer.js +52 -0
  719. package/esm/useDialog/index.d.ts +3 -0
  720. package/esm/useDialog/index.js +4 -0
  721. package/esm/useDialog/types.d.ts +33 -0
  722. package/esm/useDialog/types.js +2 -0
  723. package/esm/useDialog/useDialog.d.ts +15 -0
  724. package/esm/useDialog/useDialog.js +120 -0
  725. package/esm/useFormControl/useFormControl.js +1 -4
  726. package/esm/useMediaQuery/breakpoints.js +4 -10
  727. package/esm/useMediaQuery/useMediaQuery.js +1 -4
  728. package/esm/useToaster/useToaster.d.ts +1 -1
  729. package/esm/useToaster/useToaster.js +11 -10
  730. package/locales/gu_IN/package.json +7 -0
  731. package/locales/th_TH/package.json +7 -0
  732. package/locales/uk_UA/package.json +7 -0
  733. package/package.json +5 -6
  734. package/toaster/styles/index.css +107 -121
  735. package/useDialog/package.json +7 -0
  736. package/useToaster/styles/index.css +107 -121
  737. package/Accordion/styles/index.less +0 -2
  738. package/Animation/styles/animation.less +0 -95
  739. package/Animation/styles/bounce.less +0 -34
  740. package/Animation/styles/collapse.less +0 -23
  741. package/Animation/styles/fade.less +0 -10
  742. package/Animation/styles/index.less +0 -8
  743. package/Animation/styles/mixin.less +0 -15
  744. package/Animation/styles/slide.less +0 -24
  745. package/Animation/styles/variables.less +0 -4
  746. package/AutoComplete/styles/index.less +0 -37
  747. package/Avatar/styles/index.less +0 -48
  748. package/AvatarGroup/styles/index.less +0 -25
  749. package/Badge/styles/index.less +0 -101
  750. package/Badge/styles/variables.less +0 -19
  751. package/Box/styles/index.less +0 -1
  752. package/Breadcrumb/styles/index.less +0 -49
  753. package/Button/styles/index.less +0 -364
  754. package/Button/styles/mixin.less +0 -62
  755. package/Button/styles/variables.less +0 -30
  756. package/ButtonGroup/styles/index.less +0 -91
  757. package/ButtonToolbar/styles/index.less +0 -17
  758. package/Calendar/styles/index.less +0 -678
  759. package/Card/styles/index.less +0 -63
  760. package/CardGroup/styles/index.less +0 -8
  761. package/Carousel/styles/index.less +0 -192
  762. package/CascadeTree/styles/index.less +0 -88
  763. package/CascadeTree/styles/search.less +0 -35
  764. package/Cascader/styles/index.less +0 -5
  765. package/Center/styles/index.less +0 -9
  766. package/CheckPicker/styles/index.less +0 -21
  767. package/CheckTree/styles/index.less +0 -120
  768. package/CheckTreePicker/styles/index.less +0 -17
  769. package/Checkbox/styles/index.less +0 -153
  770. package/Checkbox/styles/mixin.less +0 -37
  771. package/CheckboxGroup/styles/index.less +0 -14
  772. package/Col/styles/index.less +0 -2
  773. package/Container/stories/styles.less +0 -23
  774. package/Container/styles/index.less +0 -16
  775. package/Content/styles/index.less +0 -6
  776. package/DateInput/styles/index.less +0 -1
  777. package/DatePicker/styles/index.less +0 -167
  778. package/DatePicker/styles/mixin.less +0 -8
  779. package/DateRangeInput/styles/index.less +0 -1
  780. package/DateRangePicker/styles/index.less +0 -145
  781. package/Divider/styles/index.less +0 -85
  782. package/Drawer/styles/index.less +0 -255
  783. package/Drawer/styles/mixin.less +0 -23
  784. package/Dropdown/styles/index.less +0 -341
  785. package/Dropdown/styles/mixin.less +0 -4
  786. package/FlexboxGrid/styles/index.less +0 -79
  787. package/Footer/styles/index.less +0 -5
  788. package/Form/styles/index.less +0 -1
  789. package/FormControl/styles/index.less +0 -79
  790. package/FormControlLabel/styles/index.less +0 -7
  791. package/FormErrorMessage/styles/animation.less +0 -43
  792. package/FormErrorMessage/styles/index.less +0 -179
  793. package/FormGroup/styles/index.less +0 -75
  794. package/FormHelpText/styles/index.less +0 -21
  795. package/FormStack/styles/index.less +0 -15
  796. package/Grid/styles/columns.less +0 -21
  797. package/Grid/styles/grid-framework.less +0 -92
  798. package/Grid/styles/index.less +0 -107
  799. package/Grid/styles/mixin.less +0 -12
  800. package/Grid/styles/row.less +0 -42
  801. package/Grid/styles/variables.less +0 -5
  802. package/Header/styles/index.less +0 -5
  803. package/Heading/styles/index.less +0 -42
  804. package/Heading/styles/variables.less +0 -19
  805. package/HeadingGroup/styles/index.less +0 -3
  806. package/Highlight/styles/index.less +0 -6
  807. package/IconButton/styles/index.less +0 -90
  808. package/Image/styles/index.less +0 -34
  809. package/InlineEdit/styles/index.less +0 -50
  810. package/Input/styles/index.less +0 -23
  811. package/Input/styles/mixin.less +0 -38
  812. package/Input/styles/variables.less +0 -22
  813. package/InputGroup/styles/index.less +0 -237
  814. package/InputNumber/styles/index.less +0 -1
  815. package/InputPicker/styles/index.less +0 -64
  816. package/InputPicker/styles/mixin.less +0 -7
  817. package/Kbd/styles/index.less +0 -20
  818. package/Kbd/styles/mixin.less +0 -24
  819. package/Kbd/styles/variables.less +0 -13
  820. package/Link/styles/index.less +0 -39
  821. package/List/styles/index.less +0 -113
  822. package/Loader/styles/index.less +0 -114
  823. package/Loader/styles/mixin.less +0 -33
  824. package/Loader/styles/variables.less +0 -16
  825. package/Menu/styles/index.less +0 -108
  826. package/Message/styles/index.less +0 -188
  827. package/Modal/styles/animation.less +0 -15
  828. package/Modal/styles/index.less +0 -189
  829. package/MultiCascadeTree/styles/index.less +0 -46
  830. package/MultiCascader/styles/index.less +0 -15
  831. package/Nav/styles/index.less +0 -366
  832. package/Navbar/styles/index.less +0 -236
  833. package/Notification/styles/index.less +0 -114
  834. package/NumberInput/styles/index.less +0 -74
  835. package/NumberInput/styles/mixin.less +0 -11
  836. package/Pagination/styles/index.less +0 -101
  837. package/Pagination/styles/mixin.less +0 -14
  838. package/Pagination/styles/pagination-group.less +0 -31
  839. package/Panel/styles/index.less +0 -121
  840. package/PanelGroup/styles/index.less +0 -34
  841. package/PasswordInput/styles/index.less +0 -1
  842. package/PasswordStrengthMeter/styles/index.less +0 -39
  843. package/PinInput/styles/index.less +0 -66
  844. package/Placeholder/styles/index.less +0 -148
  845. package/Placeholder/styles/mixin.less +0 -7
  846. package/Popover/styles/index.less +0 -202
  847. package/Popover/styles/mixins.less +0 -60
  848. package/Progress/styles/animation.less +0 -34
  849. package/Progress/styles/index.less +0 -187
  850. package/ProgressLine/package.json +0 -7
  851. package/Radio/styles/index.less +0 -144
  852. package/Radio/styles/mixin.less +0 -5
  853. package/RadioGroup/styles/index.less +0 -87
  854. package/RadioTile/styles/index.less +0 -79
  855. package/RadioTileGroup/styles/index.less +0 -1
  856. package/RangeSlider/styles/index.less +0 -4
  857. package/Rate/styles/index.less +0 -139
  858. package/Row/styles/index.less +0 -2
  859. package/SelectPicker/styles/index.less +0 -47
  860. package/Sidebar/styles/index.less +0 -15
  861. package/Sidenav/styles/index.less +0 -655
  862. package/Sidenav/styles/mixin.less +0 -23
  863. package/Slider/styles/index.less +0 -296
  864. package/Stack/styles/index.less +0 -83
  865. package/Stat/styles/index.less +0 -113
  866. package/StatGroup/styles/index.less +0 -8
  867. package/Steps/styles/index.less +0 -222
  868. package/Table/styles/index.less +0 -433
  869. package/Table/styles/mixin.less +0 -8
  870. package/Tabs/styles/index.less +0 -24
  871. package/Tag/styles/index.less +0 -55
  872. package/TagGroup/styles/index.less +0 -14
  873. package/TagInput/styles/index.less +0 -5
  874. package/TagPicker/styles/index.less +0 -136
  875. package/Text/styles/index.less +0 -122
  876. package/Text/styles/variables.less +0 -9
  877. package/Textarea/styles/index.less +0 -7
  878. package/TimePicker/styles/index.less +0 -1
  879. package/TimeRangePicker/styles/index.less +0 -1
  880. package/Timeline/stories/styles.less +0 -29
  881. package/Timeline/styles/index.less +0 -174
  882. package/Timeline/styles/mixin.less +0 -13
  883. package/Toggle/styles/index.less +0 -278
  884. package/Tooltip/styles/index.less +0 -161
  885. package/Tooltip/styles/mixins.less +0 -60
  886. package/Tree/styles/indent-line.less +0 -8
  887. package/Tree/styles/index.less +0 -186
  888. package/Tree/styles/toggle.less +0 -32
  889. package/TreePicker/styles/index.less +0 -16
  890. package/Uploader/styles/index.less +0 -468
  891. package/Uploader/styles/mixin.less +0 -11
  892. package/VisuallyHidden/styles/index.less +0 -11
  893. package/cjs/Progress/ProgressCircle.js +0 -132
  894. package/cjs/internals/Overlay/positionUtils.d.ts +0 -15
  895. package/dist/rsuite-no-reset-rtl.css +0 -15243
  896. package/dist/rsuite-no-reset-rtl.min.css +0 -2
  897. package/dist/rsuite-no-reset-rtl.min.css.map +0 -1
  898. package/dist/rsuite-no-reset.min.css.map +0 -1
  899. package/dist/rsuite-rtl.css +0 -15494
  900. package/dist/rsuite-rtl.min.css +0 -2
  901. package/dist/rsuite-rtl.min.css.map +0 -1
  902. package/dist/rsuite.min.css.map +0 -1
  903. package/esm/Progress/ProgressCircle.js +0 -125
  904. package/esm/internals/Overlay/positionUtils.d.ts +0 -15
  905. package/internals/Box/styles/index.less +0 -82
  906. package/internals/Burger/styles/index.less +0 -67
  907. package/internals/CloseButton/styles/index.less +0 -15
  908. package/internals/Picker/styles/index.less +0 -477
  909. package/internals/Picker/styles/mixin.less +0 -131
  910. package/internals/Ripple/styles/index.less +0 -36
  911. package/internals/Ripple/styles/mixins.less +0 -6
  912. package/internals/ScrollView/styles/index.less +0 -69
  913. package/internals/SearchBox/styles/index.less +0 -11
  914. package/styles/color-modes/dark.less +0 -441
  915. package/styles/color-modes/high-contrast.less +0 -452
  916. package/styles/color-modes/light.less +0 -464
  917. package/styles/colors/dark.less +0 -105
  918. package/styles/colors/high-contrast.less +0 -105
  919. package/styles/colors/light.less +0 -105
  920. package/styles/common.less +0 -13
  921. package/styles/index.less +0 -106
  922. package/styles/mixins/color-modes.less +0 -16
  923. package/styles/mixins/combobox.less +0 -6
  924. package/styles/mixins/hacks.less +0 -32
  925. package/styles/mixins/listbox.less +0 -68
  926. package/styles/mixins/menu.less +0 -12
  927. package/styles/mixins/utilities.less +0 -183
  928. package/styles/normalize.less +0 -247
  929. package/styles/plugins/palette.js +0 -1407
  930. package/styles/root.less +0 -83
  931. package/styles/scaffolding.less +0 -54
  932. package/styles/typography.less +0 -123
  933. package/styles/variables.less +0 -638
  934. package/toaster/styles/animation.less +0 -54
  935. package/toaster/styles/index.less +0 -100
  936. package/useToaster/styles/index.less +0 -1
@@ -23,10 +23,7 @@ function useFlattenTree(data, options) {
23
23
  const forceUpdate = useForceUpdate();
24
24
  const flattenedNodes = useRef({});
25
25
  const seenValues = useRef(new Set());
26
- const updateTreeNodeCheckState = useCallback(function (value) {
27
- if (value === void 0) {
28
- value = [];
29
- }
26
+ const updateTreeNodeCheckState = useCallback((value = []) => {
30
27
  // Reset values to false
31
28
  Object.keys(flattenedNodes.current).forEach(refKey => {
32
29
  const node = flattenedNodes.current[refKey];
@@ -42,10 +39,7 @@ function useFlattenTree(data, options) {
42
39
  });
43
40
  });
44
41
  }, [cascade, uncheckableItemValues, valueKey]);
45
- const flattenTreeData = useCallback(function (treeData, parent, layer) {
46
- if (layer === void 0) {
47
- layer = 1;
48
- }
42
+ const flattenTreeData = useCallback((treeData, parent, layer = 1) => {
49
43
  if (!Array.isArray(treeData) || treeData.length === 0) {
50
44
  return [];
51
45
  }
@@ -10,13 +10,7 @@ import { useItemDataKeys } from "../../internals/Tree/TreeProvider.js";
10
10
  /**
11
11
  * Determines whether a node should be shown based on the expanded state of its parent nodes.
12
12
  */
13
- function shouldShowNodeByParentExpanded(expandItemValues, parentKeys) {
14
- if (expandItemValues === void 0) {
15
- expandItemValues = [];
16
- }
17
- if (parentKeys === void 0) {
18
- parentKeys = [];
19
- }
13
+ function shouldShowNodeByParentExpanded(expandItemValues = [], parentKeys = []) {
20
14
  const intersectionKeys = intersection(expandItemValues, parentKeys);
21
15
  if (intersectionKeys.length === parentKeys.length) {
22
16
  return true;
@@ -13,10 +13,7 @@ export let WalkTreeStrategy = /*#__PURE__*/function (WalkTreeStrategy) {
13
13
  /**
14
14
  * Flattens a tree structure into an array.
15
15
  */
16
- export function flattenTree(rootNodes, getChildren, walkStrategy) {
17
- if (walkStrategy === void 0) {
18
- walkStrategy = WalkTreeStrategy.BFS;
19
- }
16
+ export function flattenTree(rootNodes, getChildren, walkStrategy = WalkTreeStrategy.BFS) {
20
17
  const result = [];
21
18
  if (walkStrategy === WalkTreeStrategy.BFS) {
22
19
  walkTreeBfs(rootNodes, getChildren, node => result.push(node));
@@ -58,10 +55,7 @@ export function walkTreeDfs(rootNodes, getChildren, callback) {
58
55
  * @deprecated This function is considered unsafe because it mutates the `tree` argument in-place.
59
56
  * Use the `flattenTree` function instead.
60
57
  */
61
- export function UNSAFE_flattenTree(tree, childrenKey, executor) {
62
- if (childrenKey === void 0) {
63
- childrenKey = 'children';
64
- }
58
+ export function UNSAFE_flattenTree(tree, childrenKey = 'children', executor) {
65
59
  const flattenData = [];
66
60
  const traverse = (data, parent) => {
67
61
  if (!Array.isArray(data)) {
@@ -2,13 +2,12 @@
2
2
  /**
3
3
  * Returns an array of expanded item values.
4
4
  */
5
- export function getExpandItemValues(_ref) {
6
- let {
7
- node,
8
- isExpand,
9
- expandItemValues,
10
- valueKey
11
- } = _ref;
5
+ export function getExpandItemValues({
6
+ node,
7
+ isExpand,
8
+ expandItemValues,
9
+ valueKey
10
+ }) {
12
11
  const newExpandItemValues = new Set(expandItemValues);
13
12
  if (isExpand) {
14
13
  newExpandItemValues.add(node[valueKey]);
@@ -1,8 +1,5 @@
1
1
  'use client';
2
- export function indentTreeNode(rtl, layer, absolute) {
3
- if (absolute === void 0) {
4
- absolute = false;
5
- }
2
+ export function indentTreeNode(rtl, layer, absolute = false) {
6
3
  // layer start from 1
7
4
  const offset = layer * 26;
8
5
  if (absolute) {
@@ -12,10 +12,7 @@ import { previewFile } from "./utils/previewFile.js";
12
12
  * Format display file size
13
13
  * @param size
14
14
  */
15
- export const formatSize = function (size) {
16
- if (size === void 0) {
17
- size = 0;
18
- }
15
+ export const formatSize = (size = 0) => {
19
16
  const K = 1024;
20
17
  const M = 1024 * 1024;
21
18
  const G = 1024 * 1024 * 1024;
@@ -59,10 +59,7 @@ function fileListReducer(files, action) {
59
59
  throw new Error();
60
60
  }
61
61
  }
62
- const useFileList = function (defaultFileList) {
63
- if (defaultFileList === void 0) {
64
- defaultFileList = [];
65
- }
62
+ const useFileList = (defaultFileList = []) => {
66
63
  const fileListRef = useRef(defaultFileList.map(createFile));
67
64
  const fileListUpdateCallback = useRef(null);
68
65
  const [fileList, dispatch] = useReducer(fileListReducer, fileListRef.current);
package/esm/global.d.ts CHANGED
@@ -1,7 +1 @@
1
1
  declare const __DEV__: boolean;
2
-
3
- declare namespace Chai {
4
- interface Assertion {
5
- toHaveError(expectedMessage?: string): Assertion;
6
- }
7
- }
package/esm/index.d.ts CHANGED
@@ -20,6 +20,7 @@ export * from './Badge';
20
20
  export * from './toaster';
21
21
  export * from './useToaster';
22
22
  export * from './Progress';
23
+ export * from './ProgressCircle';
23
24
  export * from './Avatar';
24
25
  export * from './AvatarGroup';
25
26
  export * from './Image';
@@ -56,6 +57,7 @@ export * from './RadioGroup';
56
57
  export * from './RadioTile';
57
58
  export * from './RadioTileGroup';
58
59
  export * from './SelectPicker';
60
+ export * from './SegmentedControl';
59
61
  export * from './CheckPicker';
60
62
  export * from './InputPicker';
61
63
  export * from './TagPicker';
@@ -112,6 +114,7 @@ export * from './CustomProvider';
112
114
  export * from './useMediaQuery';
113
115
  export * from './useBreakpointValue';
114
116
  export * from './useFormControl';
117
+ export * from './useDialog';
115
118
  export * from './VisuallyHidden';
116
119
  export * from './Tabs';
117
120
  export * from './Accordion';
package/esm/index.js CHANGED
@@ -32,6 +32,7 @@ export * from "./Badge/index.js";
32
32
  export * from "./toaster/index.js";
33
33
  export * from "./useToaster/index.js";
34
34
  export * from "./Progress/index.js";
35
+ export * from "./ProgressCircle/index.js";
35
36
 
36
37
  // Media
37
38
  // --------------------------------------------------------
@@ -80,6 +81,7 @@ export * from "./RadioGroup/index.js";
80
81
  export * from "./RadioTile/index.js";
81
82
  export * from "./RadioTileGroup/index.js";
82
83
  export * from "./SelectPicker/index.js";
84
+ export * from "./SegmentedControl/index.js";
83
85
  export * from "./CheckPicker/index.js";
84
86
  export * from "./InputPicker/index.js";
85
87
  export * from "./TagPicker/index.js";
@@ -148,6 +150,7 @@ export * from "./CustomProvider/index.js";
148
150
  export * from "./useMediaQuery/index.js";
149
151
  export * from "./useBreakpointValue/index.js";
150
152
  export * from "./useFormControl/index.js";
153
+ export * from "./useDialog/index.js";
151
154
 
152
155
  // Disclosure
153
156
  // --------------------------------------------------------
@@ -5,7 +5,7 @@ import Plaintext from "../Plaintext/index.js";
5
5
  import Box from "../Box/index.js";
6
6
  import { forwardRef, mergeRefs, createChainedFunction } from "../utils/index.js";
7
7
  import { useFormGroup } from "../../FormGroup/index.js";
8
- import { InputGroupContext } from "../../InputGroup/InputGroup.js";
8
+ import { InputGroupContext } from "../../InputGroup/index.js";
9
9
  import { KEY_VALUES } from "../constants/index.js";
10
10
  import { useStyles } from "../hooks/index.js";
11
11
  /**
@@ -24,19 +24,18 @@ function getMenuItemTarget(event) {
24
24
  * Headless ARIA `menu`
25
25
  * @private
26
26
  */
27
- function Menu(_ref) {
27
+ function Menu({
28
+ disabled,
29
+ children,
30
+ openMenuOn = defaultOpenMenuOn,
31
+ defaultOpen = false,
32
+ open: openProp,
33
+ menuButtonText,
34
+ renderMenuButton,
35
+ renderMenuPopup,
36
+ onToggleMenu
37
+ }) {
28
38
  var _items$activeItemInde;
29
- let {
30
- disabled,
31
- children,
32
- openMenuOn = defaultOpenMenuOn,
33
- defaultOpen = false,
34
- open: openProp,
35
- menuButtonText,
36
- renderMenuButton,
37
- renderMenuPopup,
38
- onToggleMenu
39
- } = _ref;
40
39
  const buttonElementRef = useRef(null);
41
40
  const menuElementRef = useRef(null);
42
41
  const parentMenu = useContext(MenuContext);
@@ -71,10 +70,7 @@ function Menu(_ref) {
71
70
  onToggleMenu === null || onToggleMenu === void 0 || onToggleMenu(true, event);
72
71
  grabFocus();
73
72
  }, [dispatch, onToggleMenu, grabFocus]);
74
- const closeMenu = useCallback(function (event, returnFocusToButton) {
75
- if (returnFocusToButton === void 0) {
76
- returnFocusToButton = true;
77
- }
73
+ const closeMenu = useCallback((event, returnFocusToButton = true) => {
78
74
  dispatch({
79
75
  type: MenuActionTypes.CloseMenu
80
76
  });
@@ -10,13 +10,12 @@ import { isFocusEntering, isFocusLeaving, isFocusableElement } from "../utils/in
10
10
  /**
11
11
  * @private
12
12
  */
13
- export default function Menubar(_ref) {
13
+ export default function Menubar({
14
+ vertical = false,
15
+ children,
16
+ onActivateItem
17
+ }) {
14
18
  var _items$activeItemInde3;
15
- let {
16
- vertical = false,
17
- children,
18
- onActivateItem
19
- } = _ref;
20
19
  const menubar = useMenu({
21
20
  role: 'menubar'
22
21
  });
@@ -10,18 +10,11 @@ import { useOverlay } from "./OverlayProvider.js";
10
10
  import { usePortal, useControlled } from "../hooks/index.js";
11
11
  import { createChainedFunction, isOneOf } from "../utils/index.js";
12
12
  import { isFragment } from "../utils/index.js";
13
- function mergeEvents(events, props) {
14
- if (events === void 0) {
15
- events = {};
16
- }
17
- if (props === void 0) {
18
- props = {};
19
- }
13
+ function mergeEvents(events = {}, props = {}) {
20
14
  const nextEvents = {};
21
15
  Object.keys(events).forEach(eventName => {
22
16
  if (events[eventName]) {
23
- var _props;
24
- nextEvents[eventName] = createChainedFunction(events[eventName], (_props = props) === null || _props === void 0 ? void 0 : _props[eventName]);
17
+ nextEvents[eventName] = createChainedFunction(events[eventName], props === null || props === void 0 ? void 0 : props[eventName]);
25
18
  }
26
19
  });
27
20
  return nextEvents;
@@ -5,7 +5,7 @@ import ownerDocument from 'dom-lib/ownerDocument';
5
5
  import on from 'dom-lib/on';
6
6
  import addStyle from 'dom-lib/addStyle';
7
7
  import isElement from "../../DOMHelper/isElement.js";
8
- import positionUtils from "./positionUtils.js";
8
+ import { calcPosition } from "./utils/position.js";
9
9
  import { ResizeObserver } from '@juggle/resize-observer';
10
10
  import { getDOMNode, kebabPlace } from "../utils/index.js";
11
11
  import { useUpdateEffect } from "../hooks/index.js";
@@ -38,7 +38,7 @@ const usePosition = (props, ref) => {
38
38
  arrowOffsetTop: undefined
39
39
  };
40
40
  const [position, setPosition] = useState(defaultPosition);
41
- const utils = useMemo(() => positionUtils({
41
+ const utils = useMemo(() => calcPosition({
42
42
  placement,
43
43
  preventOverflow,
44
44
  padding: containerPadding
@@ -49,10 +49,7 @@ const usePosition = (props, ref) => {
49
49
  * @param forceUpdateDOM Whether to update the DOM directly
50
50
  * @returns void
51
51
  */
52
- function (placementChanged, forceUpdateDOM) {
53
- if (placementChanged === void 0) {
54
- placementChanged = true;
55
- }
52
+ (placementChanged = true, forceUpdateDOM) => {
56
53
  if (!(triggerTarget !== null && triggerTarget !== void 0 && triggerTarget.current)) {
57
54
  return;
58
55
  }
@@ -12,7 +12,7 @@ export interface PositionType {
12
12
  arrowOffsetLeft?: number;
13
13
  arrowOffsetTop?: number;
14
14
  }
15
- export interface UtilProps {
15
+ export interface PositionOptions {
16
16
  placement: Placement;
17
17
  preventOverflow: boolean;
18
18
  padding: number;
@@ -0,0 +1,24 @@
1
+ import type { Offset, Placement } from '../../types';
2
+ import type { CursorPosition, PositionOptions, PositionType } from '../types';
3
+ export declare const AutoPlacement: {
4
+ readonly left: "Start";
5
+ readonly right: "End";
6
+ readonly top: "Start";
7
+ readonly bottom: "End";
8
+ };
9
+ export declare function calcPosition(options: PositionOptions): {
10
+ getPosition(target: HTMLElement, container: HTMLElement): import("dom-lib/getOffset").Offset | DOMRect | null;
11
+ getCursorOffsetPosition(target: HTMLElement, container: HTMLElement, cursorPosition: CursorPosition): Offset;
12
+ /**
13
+ * Calculate the optimal auto placement position
14
+ * @param targetOffset Target element offset
15
+ * @param container Container element
16
+ * @param overlay Overlay dimensions
17
+ * @returns Calculated optimal placement position
18
+ */
19
+ calcAutoPlacement(targetOffset: Offset, container: HTMLElement, overlay: {
20
+ width: number;
21
+ height: number;
22
+ }): Placement;
23
+ calcOverlayPosition(overlayNode: HTMLElement, target: HTMLElement, container: HTMLElement, cursorPosition?: CursorPosition | null): PositionType;
24
+ };
@@ -15,11 +15,26 @@ export const AutoPlacement = {
15
15
  bottom: 'End'
16
16
  };
17
17
 
18
+ // Cache for memoization
19
+ const dimensionsCache = new Map();
20
+
21
+ // Cache expiry time (milliseconds)
22
+ const CACHE_EXPIRY = 100;
23
+
18
24
  /**
19
- * Get the external dimensions of the container
20
- * @param containerNode
25
+ * Get the external dimensions of the container with memoization for performance
26
+ * @param containerNode Container element
27
+ * @returns Container dimensions information
21
28
  */
22
29
  function getContainerDimensions(containerNode) {
30
+ // Check cache
31
+ const cached = dimensionsCache.get(containerNode);
32
+ const now = Date.now();
33
+ if (cached && now - cached.timestamp < CACHE_EXPIRY) {
34
+ return cached.dimensions;
35
+ }
36
+
37
+ // Calculate new dimensions
23
38
  let width;
24
39
  let height;
25
40
  let scrollX;
@@ -37,19 +52,28 @@ function getContainerDimensions(containerNode) {
37
52
  scrollY = scrollTop(containerNode);
38
53
  scrollX = scrollLeft(containerNode);
39
54
  }
40
- return {
55
+ const dimensions = {
41
56
  width,
42
57
  height,
43
58
  scrollX,
44
59
  scrollY
45
60
  };
61
+
62
+ // Update cache
63
+ dimensionsCache.set(containerNode, {
64
+ dimensions,
65
+ timestamp: now
66
+ });
67
+ return dimensions;
46
68
  }
47
- export default props => {
69
+ export function calcPosition(options) {
48
70
  const {
49
71
  placement,
50
72
  preventOverflow,
51
73
  padding
52
- } = props;
74
+ } = options;
75
+ // Ensure placement is a valid type
76
+ const currentPlacement = placement;
53
77
  function getTopDelta(top, overlayHeight, container) {
54
78
  if (!preventOverflow) {
55
79
  return 0;
@@ -95,12 +119,12 @@ export default props => {
95
119
  height: containerHeight
96
120
  } = getContainerDimensions(container);
97
121
 
98
- // 判断 overlay 底部是否溢出,设置 top
122
+ // Check if the bottom of the overlay overflows, set top
99
123
  if (overlayHeight + top > containerHeight + scrollY) {
100
124
  return containerHeight - overlayHeight + scrollY;
101
125
  }
102
126
 
103
- // top 的最小值不能少于纵向滚动条 y 的值
127
+ // The minimum value of top should not be less than the vertical scroll bar y value
104
128
  return Math.max(scrollY, top);
105
129
  }
106
130
  function getPositionLeft(container, overlayWidth, left) {
@@ -115,7 +139,7 @@ export default props => {
115
139
  return containerWidth - overlayWidth + scrollX;
116
140
  }
117
141
 
118
- // left 的最小值不能少于横向滚动条 x 的值
142
+ // The minimum value of left should not be less than the horizontal scroll bar x value
119
143
  return Math.max(scrollX, left);
120
144
  }
121
145
  return {
@@ -161,57 +185,86 @@ export default props => {
161
185
  offset.top = top - containerOffset.top;
162
186
  return offset;
163
187
  },
188
+ /**
189
+ * Calculate the optimal auto placement position
190
+ * @param targetOffset Target element offset
191
+ * @param container Container element
192
+ * @param overlay Overlay dimensions
193
+ * @returns Calculated optimal placement position
194
+ */
164
195
  calcAutoPlacement(targetOffset, container, overlay) {
196
+ // Get container dimensions and scroll position
165
197
  const {
166
198
  width,
167
199
  height,
168
200
  scrollX,
169
201
  scrollY
170
202
  } = getContainerDimensions(container);
171
- const left = targetOffset.left - scrollX - overlay.width;
172
- const top = targetOffset.top - scrollY - overlay.height;
173
- const right = width - targetOffset.left - targetOffset.width + scrollX - overlay.width;
174
- const bottom = height - targetOffset.top - targetOffset.height + scrollY - overlay.height;
203
+
204
+ // Calculate available space in each direction
205
+ const availableSpace = {
206
+ left: targetOffset.left - scrollX - overlay.width,
207
+ top: targetOffset.top - scrollY - overlay.height,
208
+ right: width - targetOffset.left - targetOffset.width + scrollX - overlay.width,
209
+ bottom: height - targetOffset.top - targetOffset.height + scrollY - overlay.height
210
+ };
211
+
212
+ // Group available space into horizontal and vertical directions
175
213
  const horizontal = [{
176
214
  key: 'left',
177
- value: left
215
+ value: availableSpace.left
178
216
  }, {
179
217
  key: 'right',
180
- value: right
218
+ value: availableSpace.right
181
219
  }];
182
220
  const vertical = [{
183
221
  key: 'top',
184
- value: top
222
+ value: availableSpace.top
185
223
  }, {
186
224
  key: 'bottom',
187
- value: bottom
225
+ value: availableSpace.bottom
188
226
  }];
227
+
228
+ // Constants for auto placement
189
229
  const AV = 'autoVertical';
190
230
  const AH = 'autoHorizontal';
191
- let direction;
192
- let align;
193
- if (placement.indexOf(AV) !== -1) {
194
- direction = maxBy(vertical, o => o.value);
195
- return placement === AV ? direction.key : `${direction.key}${placement.replace(AV, '')}`;
196
- } else if (placement.indexOf(AH) !== -1) {
197
- direction = maxBy(horizontal, o => o.value);
198
- return placement === AH ? direction.key : `${direction.key}${placement.replace(AH, '')}`;
231
+
232
+ // Handle specific auto vertical placement
233
+ if (currentPlacement.indexOf(AV) !== -1) {
234
+ const bestDirection = maxBy(vertical, o => o.value);
235
+ if (!bestDirection) return 'bottom'; // Default value
236
+ return currentPlacement === AV ? bestDirection.key : `${bestDirection.key}${currentPlacement.replace(AV, '')}`;
199
237
  }
200
238
 
201
- /**
202
- * Precedence Vertical
203
- * [...vertical, ...horizontal]
204
- */
205
- direction = maxBy([...vertical, ...horizontal], o => o.value);
206
- if (direction.key === 'left' || direction.key === 'right') {
207
- align = minBy(vertical, o => o.value);
208
- } else {
209
- align = minBy(horizontal, o => o.value);
239
+ // Handle specific auto horizontal placement
240
+ if (currentPlacement.indexOf(AH) !== -1) {
241
+ const bestDirection = maxBy(horizontal, o => o.value);
242
+ if (!bestDirection) return 'right'; // Default value
243
+ return currentPlacement === AH ? bestDirection.key : `${bestDirection.key}${currentPlacement.replace(AH, '')}`;
210
244
  }
211
- return `${direction.key}${AutoPlacement[align.key]}`;
245
+
246
+ // By default, vertical direction takes precedence
247
+ // Find the direction with the most space to use as main direction
248
+ const bestDirection = maxBy([...vertical, ...horizontal], o => o.value);
249
+ if (!bestDirection) return 'bottom'; // 默认值
250
+
251
+ // Determine alignment based on main direction
252
+ const isHorizontal = bestDirection.key === 'left' || bestDirection.key === 'right';
253
+ const bestAlign = isHorizontal ? minBy(vertical, o => o.value) // If main direction is horizontal, align vertically
254
+ : minBy(horizontal, o => o.value); // If main direction is vertical, align horizontally
255
+
256
+ if (!bestAlign) return bestDirection.key; // If no alignment, return main direction
257
+
258
+ // Return final placement position
259
+ return `${bestDirection.key}${AutoPlacement[bestAlign.key]}`;
212
260
  },
213
261
  // Calculate the position of the overlay
214
262
  calcOverlayPosition(overlayNode, target, container, cursorPosition) {
263
+ // Cache commonly used values to avoid repeated calculations
264
+ const ARROW_OFFSET_FACTOR = 50; // Arrow offset calculation factor
265
+ const isRTL = document.dir === 'rtl';
266
+
267
+ // Get target element offset
215
268
  const childOffset = cursorPosition ? this.getCursorOffsetPosition(target, container, cursorPosition) : this.getPosition(target, container);
216
269
  const {
217
270
  height: overlayHeight,
@@ -221,45 +274,70 @@ export default props => {
221
274
  top,
222
275
  left
223
276
  } = childOffset;
224
- let nextPlacement = placement;
225
- if (placement && placement.indexOf('auto') >= 0) {
277
+
278
+ // Determine placement position
279
+ let nextPlacement = currentPlacement;
280
+ if (currentPlacement && currentPlacement.indexOf('auto') >= 0) {
226
281
  nextPlacement = this.calcAutoPlacement(childOffset, container, {
227
282
  height: overlayHeight,
228
283
  width: overlayWidth
229
284
  });
230
285
  }
286
+
287
+ // Initialize position and arrow offset values
231
288
  let positionLeft;
232
289
  let positionTop;
233
290
  let arrowOffsetLeft;
234
291
  let arrowOffsetTop;
292
+
293
+ // Handle basic left/right positions
235
294
  if (nextPlacement === 'left' || nextPlacement === 'right') {
295
+ // Vertical centering
236
296
  positionTop = childOffset.top + (childOffset.height - overlayHeight) / 2;
237
297
  const topDelta = getTopDelta(positionTop, overlayHeight, container);
238
298
  positionTop += topDelta;
239
- arrowOffsetTop = `${50 * (1 - 2 * topDelta / overlayHeight)}%`;
299
+ arrowOffsetTop = `${ARROW_OFFSET_FACTOR * (1 - 2 * topDelta / overlayHeight)}%`;
240
300
  arrowOffsetLeft = undefined;
241
- } else if (nextPlacement === 'top' || nextPlacement === 'bottom') {
301
+ }
302
+ // Handle basic top/bottom positions
303
+ else if (nextPlacement === 'top' || nextPlacement === 'bottom') {
304
+ // Horizontal centering
242
305
  positionLeft = left + (childOffset.width - overlayWidth) / 2;
243
306
  const leftDelta = getLeftDelta(positionLeft, overlayWidth, container);
244
307
  positionLeft += leftDelta;
245
- arrowOffsetLeft = `${50 * (1 - 2 * leftDelta / overlayWidth)}%`;
308
+ arrowOffsetLeft = `${ARROW_OFFSET_FACTOR * (1 - 2 * leftDelta / overlayWidth)}%`;
246
309
  arrowOffsetTop = undefined;
247
310
  }
248
- if (nextPlacement === 'top' || nextPlacement === 'topStart' || nextPlacement === 'topEnd') {
311
+
312
+ // Helper function: Check if placement matches specified prefix
313
+ const matchesPlacement = prefix => {
314
+ return nextPlacement === prefix || nextPlacement === `${prefix}Start` || nextPlacement === `${prefix}End`;
315
+ };
316
+
317
+ // Handle top position series
318
+ if (matchesPlacement('top')) {
249
319
  positionTop = getPositionTop(container, overlayHeight, childOffset.top - overlayHeight);
250
320
  }
251
- if (nextPlacement === 'bottom' || nextPlacement === 'bottomStart' || nextPlacement === 'bottomEnd') {
321
+
322
+ // Handle bottom position series
323
+ if (matchesPlacement('bottom')) {
252
324
  positionTop = getPositionTop(container, overlayHeight, childOffset.top + childOffset.height);
253
325
  }
254
- if (nextPlacement === 'left' || nextPlacement === 'leftStart' || nextPlacement === 'leftEnd') {
326
+
327
+ // Handle left position series
328
+ if (matchesPlacement('left')) {
255
329
  positionLeft = getPositionLeft(container, overlayWidth, childOffset.left - overlayWidth);
256
330
  }
257
- if (nextPlacement === 'right' || nextPlacement === 'rightStart' || nextPlacement === 'rightEnd') {
331
+
332
+ // Handle right position series
333
+ if (matchesPlacement('right')) {
258
334
  positionLeft = getPositionLeft(container, overlayWidth, childOffset.left + childOffset.width);
259
335
  }
260
- if (document.dir === 'rtl' && (nextPlacement === 'left' || nextPlacement === 'leftStart' || nextPlacement === 'leftEnd' || nextPlacement === 'right' || nextPlacement === 'rightStart' || nextPlacement === 'rightEnd')) {
336
+
337
+ // Handle horizontal position adjustment in RTL mode
338
+ if (isRTL && (matchesPlacement('left') || matchesPlacement('right'))) {
261
339
  /**
262
- * When laying out in rtl, if the width of the container
340
+ * When laying out in RTL, if the width of the container
263
341
  * is less than the width of the container scrolling,
264
342
  * you need to recalculate the left value.
265
343
  */
@@ -270,25 +348,33 @@ export default props => {
270
348
  positionLeft = containerWidth + positionLeft - container.scrollWidth;
271
349
  }
272
350
  }
351
+
352
+ // Handle Start variant positions
273
353
  if (nextPlacement === 'topStart' || nextPlacement === 'bottomStart') {
274
- if (document.dir === 'rtl') {
354
+ if (isRTL) {
275
355
  const nextLeft = left + (childOffset.width - overlayWidth);
276
356
  positionLeft = nextLeft + getLeftDelta(nextLeft, overlayWidth, container);
277
357
  } else {
278
358
  positionLeft = left + getLeftDelta(left, overlayWidth, container);
279
359
  }
280
360
  }
361
+
362
+ // Handle End variant positions
281
363
  if (nextPlacement === 'topEnd' || nextPlacement === 'bottomEnd') {
282
- if (document.dir === 'rtl') {
364
+ if (isRTL) {
283
365
  positionLeft = left + getLeftDelta(left, overlayWidth, container);
284
366
  } else {
285
367
  const nextLeft = left + (childOffset.width - overlayWidth);
286
368
  positionLeft = nextLeft + getLeftDelta(nextLeft, overlayWidth, container);
287
369
  }
288
370
  }
371
+
372
+ // Handle leftStart and rightStart
289
373
  if (nextPlacement === 'leftStart' || nextPlacement === 'rightStart') {
290
374
  positionTop = top + getTopDelta(top, overlayHeight, container);
291
375
  }
376
+
377
+ // Handle leftEnd and rightEnd
292
378
  if (nextPlacement === 'leftEnd' || nextPlacement === 'rightEnd') {
293
379
  const nextTop = top + (childOffset.height - overlayHeight);
294
380
  positionTop = nextTop + getTopDelta(nextTop, overlayHeight, container);
@@ -302,4 +388,4 @@ export default props => {
302
388
  };
303
389
  }
304
390
  };
305
- };
391
+ }