rsuite 6.0.0-canary-20250416 → 6.0.0-canary-20250507

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 (547) hide show
  1. package/AutoComplete/styles/index.css +32 -71
  2. package/Button/styles/index.css +4 -6
  3. package/CHANGELOG.md +15 -0
  4. package/Calendar/styles/index.css +8 -16
  5. package/CascadeTree/styles/index.css +8 -16
  6. package/Cascader/styles/index.css +36 -79
  7. package/CheckPicker/styles/index.css +32 -66
  8. package/CheckTree/styles/index.css +34 -70
  9. package/CheckTreePicker/styles/index.css +34 -70
  10. package/Checkbox/styles/index.css +7 -9
  11. package/Checkbox/styles/index.less +1 -1
  12. package/DateInput/styles/index.css +6 -9
  13. package/DatePicker/styles/index.css +38 -81
  14. package/DateRangeInput/styles/index.css +6 -9
  15. package/DateRangePicker/styles/index.css +38 -81
  16. package/Dropdown/styles/index.css +6 -10
  17. package/FormControl/styles/index.css +2 -2
  18. package/FormControl/styles/index.less +2 -2
  19. package/IconButton/styles/index.css +4 -6
  20. package/Input/styles/index.css +6 -9
  21. package/Input/styles/mixin.less +2 -3
  22. package/InputGroup/styles/index.css +7 -13
  23. package/InputGroup/styles/index.less +3 -4
  24. package/InputNumber/styles/index.css +36 -35
  25. package/InputNumber/styles/index.less +1 -67
  26. package/InputPicker/styles/index.css +32 -71
  27. package/Message/styles/index.css +5 -15
  28. package/Message/styles/index.less +4 -3
  29. package/MultiCascadeTree/styles/index.css +38 -80
  30. package/MultiCascader/styles/index.css +38 -80
  31. package/Nav/styles/index.css +8 -14
  32. package/Navbar/styles/index.css +16 -40
  33. package/NumberInput/package.json +7 -0
  34. package/NumberInput/styles/index.css +1402 -0
  35. package/NumberInput/styles/index.less +74 -0
  36. package/{InputNumber → NumberInput}/styles/mixin.less +0 -0
  37. package/Pagination/styles/index.css +34 -75
  38. package/PasswordInput/styles/index.css +6 -9
  39. package/PinInput/package.json +7 -0
  40. package/PinInput/styles/index.css +212 -0
  41. package/PinInput/styles/index.less +66 -0
  42. package/Radio/styles/index.css +7 -9
  43. package/Radio/styles/index.less +1 -1
  44. package/RangeSlider/styles/index.css +2 -0
  45. package/SelectPicker/styles/index.css +32 -71
  46. package/Sidenav/styles/index.css +30 -67
  47. package/Slider/styles/index.css +2 -0
  48. package/Slider/styles/index.less +2 -0
  49. package/Stat/styles/index.css +4 -6
  50. package/Tabs/styles/index.css +8 -14
  51. package/Tag/styles/index.css +0 -15
  52. package/TagInput/styles/index.css +34 -72
  53. package/TagPicker/styles/index.css +34 -72
  54. package/TimePicker/styles/index.css +38 -81
  55. package/TimeRangePicker/styles/index.css +38 -81
  56. package/Toggle/styles/index.css +9 -13
  57. package/Toggle/styles/index.less +3 -4
  58. package/Tree/styles/index.css +34 -75
  59. package/TreePicker/styles/index.css +34 -75
  60. package/Uploader/styles/index.css +6 -10
  61. package/cjs/Accordion/Accordion.js +2 -2
  62. package/cjs/Affix/Affix.js +1 -2
  63. package/cjs/Animation/Bounce.js +1 -2
  64. package/cjs/Animation/Collapse.js +1 -2
  65. package/cjs/Animation/Fade.js +1 -2
  66. package/cjs/Animation/Slide.js +1 -2
  67. package/cjs/AutoComplete/AutoComplete.d.ts +2 -2
  68. package/cjs/AutoComplete/AutoComplete.js +1 -2
  69. package/cjs/Avatar/Avatar.js +1 -2
  70. package/cjs/AvatarGroup/AvatarGroup.js +1 -2
  71. package/cjs/Badge/Badge.js +1 -2
  72. package/cjs/Breadcrumb/Breadcrumb.js +1 -2
  73. package/cjs/Button/Button.d.ts +2 -2
  74. package/cjs/Button/Button.js +1 -2
  75. package/cjs/ButtonGroup/ButtonGroup.d.ts +2 -2
  76. package/cjs/ButtonGroup/ButtonGroup.js +1 -2
  77. package/cjs/ButtonToolbar/ButtonToolbar.js +1 -2
  78. package/cjs/Calendar/Calendar.js +4 -4
  79. package/cjs/Calendar/CalendarBody.js +1 -4
  80. package/cjs/Calendar/CalendarContainer.js +1 -1
  81. package/cjs/Calendar/CalendarHeader.js +3 -3
  82. package/cjs/Calendar/CalendarProvider.d.ts +1 -1
  83. package/cjs/Calendar/Grid/GridCell.js +1 -2
  84. package/cjs/Calendar/Grid/GridHeaderRow.js +1 -2
  85. package/cjs/Calendar/Grid/GridRow.d.ts +2 -0
  86. package/cjs/Calendar/Grid/GridRow.js +5 -4
  87. package/cjs/Calendar/MonthDropdown/MonthDropdownItem.js +1 -2
  88. package/cjs/Calendar/hooks/useCalendar.d.ts +24 -2
  89. package/cjs/Calendar/hooks/useCalendar.js +34 -1
  90. package/cjs/Card/Card.js +1 -2
  91. package/cjs/CardGroup/CardGroup.js +1 -2
  92. package/cjs/Carousel/Carousel.js +1 -2
  93. package/cjs/CascadeTree/CascadeTree.js +1 -2
  94. package/cjs/CascadeTree/SearchView.js +1 -2
  95. package/cjs/CascadeTree/TreeView.js +1 -2
  96. package/cjs/Cascader/Cascader.js +1 -2
  97. package/cjs/CheckPicker/CheckPicker.js +1 -2
  98. package/cjs/CheckTree/CheckTree.js +1 -2
  99. package/cjs/CheckTree/CheckTreeNode.js +1 -2
  100. package/cjs/CheckTree/CheckTreeView.js +1 -2
  101. package/cjs/CheckTreePicker/CheckTreePicker.js +1 -2
  102. package/cjs/Checkbox/Checkbox.js +1 -2
  103. package/cjs/CheckboxGroup/CheckboxGroup.js +1 -2
  104. package/cjs/Container/Container.js +1 -2
  105. package/cjs/CustomProvider/CustomProvider.d.ts +1 -271
  106. package/cjs/CustomProvider/CustomProvider.js +2 -3
  107. package/cjs/CustomProvider/index.d.ts +1 -6
  108. package/cjs/CustomProvider/index.js +3 -12
  109. package/cjs/DateInput/DateInput.js +1 -2
  110. package/cjs/DateInput/hooks/useDateInputState.js +2 -2
  111. package/cjs/DatePicker/DatePicker.js +2 -3
  112. package/cjs/DatePicker/hooks/useFocus.js +1 -2
  113. package/cjs/DateRangeInput/DateRangeInput.js +1 -2
  114. package/cjs/DateRangePicker/DateRangePicker.js +2 -3
  115. package/cjs/DateRangePicker/Header.js +3 -3
  116. package/cjs/DateRangePicker/utils.d.ts +1 -1
  117. package/cjs/DateRangePicker/utils.js +1 -1
  118. package/cjs/Divider/Divider.js +1 -2
  119. package/cjs/Drawer/Drawer.js +1 -2
  120. package/cjs/Dropdown/Dropdown.js +1 -2
  121. package/cjs/Dropdown/DropdownMenu.js +1 -2
  122. package/cjs/FlexboxGrid/FlexboxGrid.js +1 -2
  123. package/cjs/Form/Form.js +1 -2
  124. package/cjs/Form/FormContext.d.ts +1 -1
  125. package/cjs/Form/hooks/useFormValidate.js +5 -5
  126. package/cjs/FormControl/FormControl.js +54 -86
  127. package/cjs/FormControlLabel/FormControlLabel.js +1 -2
  128. package/cjs/FormErrorMessage/FormErrorMessage.js +1 -2
  129. package/cjs/FormGroup/FormGroup.js +1 -2
  130. package/cjs/FormHelpText/FormHelpText.js +1 -2
  131. package/cjs/FormStack/FormStack.js +1 -2
  132. package/cjs/Grid/Col.js +1 -2
  133. package/cjs/Grid/Grid.js +1 -2
  134. package/cjs/Grid/Row.js +1 -2
  135. package/cjs/Heading/Heading.js +1 -2
  136. package/cjs/Highlight/Highlight.js +2 -3
  137. package/cjs/IconButton/IconButton.js +1 -2
  138. package/cjs/Image/Image.js +2 -3
  139. package/cjs/InlineEdit/InlineEdit.js +1 -2
  140. package/cjs/Input/Input.js +3 -3
  141. package/cjs/InputGroup/InputGroup.js +1 -2
  142. package/cjs/InputNumber/index.d.ts +12 -2
  143. package/cjs/InputNumber/index.js +11 -4
  144. package/cjs/InputPicker/InputPicker.js +1 -2
  145. package/cjs/InputPicker/utils.d.ts +1 -1
  146. package/cjs/Kbd/Kbd.js +1 -2
  147. package/cjs/Link/Link.js +1 -2
  148. package/cjs/List/List.js +1 -2
  149. package/cjs/Loader/Loader.js +1 -2
  150. package/cjs/MaskedInput/MaskedInput.js +2 -2
  151. package/cjs/Message/Message.js +1 -2
  152. package/cjs/Modal/Modal.js +1 -2
  153. package/cjs/Modal/ModalHeader.js +1 -2
  154. package/cjs/MultiCascadeTree/MultiCascadeTree.js +1 -2
  155. package/cjs/MultiCascadeTree/SearchView.js +1 -2
  156. package/cjs/MultiCascadeTree/TreeView.js +1 -2
  157. package/cjs/MultiCascader/MultiCascader.js +1 -2
  158. package/cjs/Nav/Nav.js +1 -2
  159. package/cjs/Nav/NavDropdownMenu.js +1 -2
  160. package/cjs/Navbar/Navbar.d.ts +1 -1
  161. package/cjs/Navbar/Navbar.js +1 -2
  162. package/cjs/Navbar/NavbarDropdownMenu.js +1 -2
  163. package/cjs/Navbar/NavbarToggle.d.ts +8 -3
  164. package/cjs/Navbar/NavbarToggle.js +9 -14
  165. package/cjs/Notification/Notification.js +1 -2
  166. package/{esm/InputNumber/InputNumber.d.ts → cjs/NumberInput/NumberInput.d.ts} +20 -8
  167. package/cjs/NumberInput/NumberInput.js +162 -0
  168. package/cjs/NumberInput/hooks/useEvents.d.ts +22 -0
  169. package/cjs/NumberInput/hooks/useEvents.js +114 -0
  170. package/cjs/NumberInput/hooks/useNumberInputValue.d.ts +7 -0
  171. package/cjs/NumberInput/hooks/useNumberInputValue.js +34 -0
  172. package/cjs/NumberInput/hooks/useWheelHandler.d.ts +5 -0
  173. package/cjs/NumberInput/hooks/useWheelHandler.js +25 -0
  174. package/cjs/NumberInput/index.d.ts +4 -0
  175. package/cjs/NumberInput/index.js +11 -0
  176. package/cjs/NumberInput/utils/number.d.ts +17 -0
  177. package/cjs/NumberInput/utils/number.js +67 -0
  178. package/cjs/Pagination/LimitPicker.d.ts +2 -2
  179. package/cjs/Pagination/Pagination.d.ts +2 -2
  180. package/cjs/Pagination/Pagination.js +1 -2
  181. package/cjs/Pagination/PaginationGroup.js +1 -2
  182. package/cjs/Panel/Panel.js +1 -2
  183. package/cjs/PanelGroup/PanelGroup.js +1 -2
  184. package/cjs/PasswordInput/PasswordInput.d.ts +4 -0
  185. package/cjs/PasswordInput/PasswordInput.js +5 -4
  186. package/cjs/PasswordStrengthMeter/PasswordStrengthMeter.js +1 -2
  187. package/cjs/PinInput/PinInput.d.ts +36 -0
  188. package/cjs/PinInput/PinInput.js +224 -0
  189. package/cjs/PinInput/hooks/usePinInputRefs.d.ts +12 -0
  190. package/cjs/PinInput/hooks/usePinInputRefs.js +62 -0
  191. package/cjs/PinInput/hooks/usePinValue.d.ts +14 -0
  192. package/cjs/PinInput/hooks/usePinValue.js +73 -0
  193. package/cjs/PinInput/index.d.ts +4 -0
  194. package/cjs/PinInput/index.js +9 -0
  195. package/cjs/Placeholder/PlaceholderGraph.js +1 -2
  196. package/cjs/Placeholder/PlaceholderGrid.js +1 -2
  197. package/cjs/Placeholder/PlaceholderParagraph.js +1 -2
  198. package/cjs/Popover/Popover.js +1 -2
  199. package/cjs/Progress/ProgressCircle.js +1 -2
  200. package/cjs/Progress/ProgressLine.js +1 -2
  201. package/cjs/Radio/Radio.js +1 -2
  202. package/cjs/RadioGroup/RadioGroup.js +1 -2
  203. package/cjs/RadioTile/RadioTile.js +1 -2
  204. package/cjs/RadioTileGroup/RadioTileGroup.js +1 -2
  205. package/cjs/RangeSlider/RangeSlider.js +2 -3
  206. package/cjs/Rate/Rate.js +1 -2
  207. package/cjs/SelectPicker/SelectPicker.js +1 -2
  208. package/cjs/Sidebar/Sidebar.js +1 -2
  209. package/cjs/Sidenav/ExpandedSidenavDropdownMenu.js +1 -2
  210. package/cjs/Sidenav/Sidenav.js +1 -2
  211. package/cjs/Sidenav/SidenavDropdownMenu.js +1 -2
  212. package/cjs/Slider/Slider.d.ts +5 -1
  213. package/cjs/Slider/Slider.js +13 -14
  214. package/cjs/Stack/Stack.js +1 -2
  215. package/cjs/Stat/Stat.js +1 -2
  216. package/cjs/Stat/StatValue.js +2 -2
  217. package/cjs/StatGroup/StatGroup.js +1 -2
  218. package/cjs/Steps/Steps.js +1 -2
  219. package/cjs/Table/Table.js +2 -2
  220. package/cjs/Tabs/Tabs.js +1 -2
  221. package/cjs/Tag/Tag.js +1 -2
  222. package/cjs/TagInput/TagInput.js +2 -2
  223. package/cjs/TagPicker/TagPicker.js +2 -2
  224. package/cjs/Text/Text.js +1 -2
  225. package/cjs/Textarea/Textarea.js +1 -2
  226. package/cjs/TimePicker/TimePicker.d.ts +1 -2
  227. package/cjs/TimePicker/TimePicker.js +2 -2
  228. package/cjs/TimeRangePicker/TimeRangePicker.js +2 -2
  229. package/cjs/Timeline/Timeline.js +1 -2
  230. package/cjs/Toggle/Toggle.js +1 -2
  231. package/cjs/Tooltip/Tooltip.js +1 -2
  232. package/cjs/Tree/Tree.js +1 -2
  233. package/cjs/Tree/TreeNode.js +1 -2
  234. package/cjs/Tree/TreeNodeToggle.js +1 -2
  235. package/cjs/Tree/TreeView.js +1 -2
  236. package/cjs/Tree/hooks/useFocusTree.js +1 -2
  237. package/cjs/TreePicker/TreePicker.js +1 -2
  238. package/cjs/Uploader/Uploader.js +1 -2
  239. package/cjs/Whisper/Whisper.js +2 -2
  240. package/cjs/index.d.ts +3 -0
  241. package/cjs/index.js +18 -0
  242. package/cjs/internals/Box/index.d.ts +1 -0
  243. package/cjs/internals/Box/index.js +1 -0
  244. package/cjs/internals/Burger/Burger.d.ts +16 -0
  245. package/cjs/internals/Burger/Burger.js +46 -0
  246. package/cjs/internals/Burger/index.d.ts +4 -0
  247. package/cjs/internals/Burger/index.js +11 -0
  248. package/cjs/internals/CloseButton/CloseButton.js +1 -2
  249. package/cjs/internals/Menu/Menu.js +1 -2
  250. package/cjs/internals/Menu/Menubar.js +2 -2
  251. package/cjs/internals/Picker/PickerIndicator.js +1 -2
  252. package/cjs/internals/Picker/hooks/useCombobox.d.ts +1 -1
  253. package/cjs/internals/Plaintext/Plaintext.js +1 -2
  254. package/cjs/internals/Provider/CustomContext.d.ts +253 -0
  255. package/cjs/internals/Provider/CustomContext.js +8 -0
  256. package/cjs/internals/Provider/types.d.ts +236 -0
  257. package/cjs/internals/Ripple/Ripple.js +1 -2
  258. package/cjs/internals/SafeAnchor/SafeAnchor.js +2 -2
  259. package/cjs/internals/Windowing/List.js +2 -2
  260. package/cjs/internals/hooks/index.d.ts +1 -0
  261. package/cjs/internals/hooks/index.js +3 -1
  262. package/cjs/{CustomProvider → internals/hooks}/useCustom.d.ts +4 -4
  263. package/cjs/{CustomProvider → internals/hooks}/useCustom.js +5 -5
  264. package/cjs/internals/hooks/useStyles.js +2 -2
  265. package/cjs/internals/hooks/useToggleCaret.js +2 -2
  266. package/cjs/{CustomProvider → internals/intl}/FormattedDate.js +2 -2
  267. package/cjs/{CustomProvider → internals/intl}/FormattedNumber.js +2 -2
  268. package/cjs/internals/types/picker.d.ts +2 -2
  269. package/cjs/internals/types/sizes.d.ts +2 -0
  270. package/cjs/internals/types/sizes.js +2 -1
  271. package/cjs/internals/utils/date/getWeekStartDates.d.ts +0 -1
  272. package/cjs/internals/utils/date/getWeekStartDates.js +2 -4
  273. package/cjs/internals/utils/react/createComponent.js +15 -4
  274. package/cjs/{FormControl → useFormControl}/hooks/useField.d.ts +3 -3
  275. package/cjs/{FormControl → useFormControl}/hooks/useField.js +5 -6
  276. package/cjs/useFormControl/hooks/useRegisterModel.d.ts +2 -0
  277. package/cjs/{FormControl → useFormControl}/hooks/useRegisterModel.js +2 -3
  278. package/cjs/useFormControl/index.d.ts +4 -0
  279. package/cjs/useFormControl/index.js +11 -0
  280. package/cjs/useFormControl/useFormControl.d.ts +38 -0
  281. package/cjs/useFormControl/useFormControl.js +138 -0
  282. package/cjs/{FormControl/utils.js → useFormControl/utils/nameToPath.js} +0 -0
  283. package/cjs/useToaster/useToaster.js +2 -5
  284. package/dist/rsuite-no-reset-rtl.css +246 -265
  285. package/dist/rsuite-no-reset-rtl.min.css +1 -1
  286. package/dist/rsuite-no-reset-rtl.min.css.map +1 -1
  287. package/dist/rsuite-no-reset.css +246 -265
  288. package/dist/rsuite-no-reset.min.css +1 -1
  289. package/dist/rsuite-no-reset.min.css.map +1 -1
  290. package/dist/rsuite-rtl.css +246 -265
  291. package/dist/rsuite-rtl.min.css +1 -1
  292. package/dist/rsuite-rtl.min.css.map +1 -1
  293. package/dist/rsuite.css +246 -265
  294. package/dist/rsuite.js +389 -257
  295. package/dist/rsuite.js.map +1 -1
  296. package/dist/rsuite.min.css +1 -1
  297. package/dist/rsuite.min.css.map +1 -1
  298. package/dist/rsuite.min.js +1 -1
  299. package/dist/rsuite.min.js.map +1 -1
  300. package/esm/Accordion/Accordion.js +1 -1
  301. package/esm/Affix/Affix.js +1 -2
  302. package/esm/Animation/Bounce.js +1 -2
  303. package/esm/Animation/Collapse.js +1 -2
  304. package/esm/Animation/Fade.js +1 -2
  305. package/esm/Animation/Slide.js +1 -2
  306. package/esm/AutoComplete/AutoComplete.d.ts +2 -2
  307. package/esm/AutoComplete/AutoComplete.js +1 -2
  308. package/esm/Avatar/Avatar.js +1 -2
  309. package/esm/AvatarGroup/AvatarGroup.js +1 -2
  310. package/esm/Badge/Badge.js +1 -2
  311. package/esm/Breadcrumb/Breadcrumb.js +1 -2
  312. package/esm/Button/Button.d.ts +2 -2
  313. package/esm/Button/Button.js +1 -2
  314. package/esm/ButtonGroup/ButtonGroup.d.ts +2 -2
  315. package/esm/ButtonGroup/ButtonGroup.js +1 -2
  316. package/esm/ButtonToolbar/ButtonToolbar.js +1 -2
  317. package/esm/Calendar/Calendar.js +3 -4
  318. package/esm/Calendar/CalendarBody.js +1 -4
  319. package/esm/Calendar/CalendarContainer.js +1 -1
  320. package/esm/Calendar/CalendarHeader.js +1 -1
  321. package/esm/Calendar/CalendarProvider.d.ts +1 -1
  322. package/esm/Calendar/Grid/GridCell.js +1 -2
  323. package/esm/Calendar/Grid/GridHeaderRow.js +1 -2
  324. package/esm/Calendar/Grid/GridRow.d.ts +2 -0
  325. package/esm/Calendar/Grid/GridRow.js +5 -4
  326. package/esm/Calendar/MonthDropdown/MonthDropdownItem.js +1 -2
  327. package/esm/Calendar/hooks/useCalendar.d.ts +24 -2
  328. package/esm/Calendar/hooks/useCalendar.js +35 -2
  329. package/esm/Card/Card.js +1 -2
  330. package/esm/CardGroup/CardGroup.js +1 -2
  331. package/esm/Carousel/Carousel.js +1 -2
  332. package/esm/CascadeTree/CascadeTree.js +1 -2
  333. package/esm/CascadeTree/SearchView.js +1 -2
  334. package/esm/CascadeTree/TreeView.js +1 -2
  335. package/esm/Cascader/Cascader.js +1 -2
  336. package/esm/CheckPicker/CheckPicker.js +1 -2
  337. package/esm/CheckTree/CheckTree.js +1 -2
  338. package/esm/CheckTree/CheckTreeNode.js +1 -2
  339. package/esm/CheckTree/CheckTreeView.js +1 -2
  340. package/esm/CheckTreePicker/CheckTreePicker.js +1 -2
  341. package/esm/Checkbox/Checkbox.js +1 -2
  342. package/esm/CheckboxGroup/CheckboxGroup.js +1 -2
  343. package/esm/Container/Container.js +1 -2
  344. package/esm/CustomProvider/CustomProvider.d.ts +1 -271
  345. package/esm/CustomProvider/CustomProvider.js +1 -1
  346. package/esm/CustomProvider/index.d.ts +1 -6
  347. package/esm/CustomProvider/index.js +0 -6
  348. package/esm/DateInput/DateInput.js +1 -2
  349. package/esm/DateInput/hooks/useDateInputState.js +1 -1
  350. package/esm/DatePicker/DatePicker.js +2 -3
  351. package/esm/DatePicker/hooks/useFocus.js +1 -2
  352. package/esm/DateRangeInput/DateRangeInput.js +1 -2
  353. package/esm/DateRangePicker/DateRangePicker.js +2 -3
  354. package/esm/DateRangePicker/Header.js +1 -1
  355. package/esm/DateRangePicker/utils.d.ts +1 -1
  356. package/esm/DateRangePicker/utils.js +1 -1
  357. package/esm/Divider/Divider.js +1 -2
  358. package/esm/Drawer/Drawer.js +1 -2
  359. package/esm/Dropdown/Dropdown.js +1 -2
  360. package/esm/Dropdown/DropdownMenu.js +1 -2
  361. package/esm/FlexboxGrid/FlexboxGrid.js +1 -2
  362. package/esm/Form/Form.js +1 -2
  363. package/esm/Form/FormContext.d.ts +1 -1
  364. package/esm/Form/hooks/useFormValidate.js +1 -1
  365. package/esm/FormControl/FormControl.js +54 -85
  366. package/esm/FormControlLabel/FormControlLabel.js +1 -2
  367. package/esm/FormErrorMessage/FormErrorMessage.js +1 -2
  368. package/esm/FormGroup/FormGroup.js +1 -2
  369. package/esm/FormHelpText/FormHelpText.js +1 -2
  370. package/esm/FormStack/FormStack.js +1 -2
  371. package/esm/Grid/Col.js +1 -2
  372. package/esm/Grid/Grid.js +1 -2
  373. package/esm/Grid/Row.js +1 -2
  374. package/esm/Heading/Heading.js +1 -2
  375. package/esm/Highlight/Highlight.js +2 -3
  376. package/esm/IconButton/IconButton.js +1 -2
  377. package/esm/Image/Image.js +2 -3
  378. package/esm/InlineEdit/InlineEdit.js +1 -2
  379. package/esm/Input/Input.js +2 -2
  380. package/esm/InputGroup/InputGroup.js +1 -2
  381. package/esm/InputNumber/index.d.ts +12 -2
  382. package/esm/InputNumber/index.js +8 -1
  383. package/esm/InputPicker/InputPicker.js +1 -2
  384. package/esm/InputPicker/utils.d.ts +1 -1
  385. package/esm/Kbd/Kbd.js +1 -2
  386. package/esm/Link/Link.js +1 -2
  387. package/esm/List/List.js +1 -2
  388. package/esm/Loader/Loader.js +1 -2
  389. package/esm/MaskedInput/MaskedInput.js +1 -1
  390. package/esm/Message/Message.js +1 -2
  391. package/esm/Modal/Modal.js +1 -2
  392. package/esm/Modal/ModalHeader.js +1 -2
  393. package/esm/MultiCascadeTree/MultiCascadeTree.js +1 -2
  394. package/esm/MultiCascadeTree/SearchView.js +1 -2
  395. package/esm/MultiCascadeTree/TreeView.js +1 -2
  396. package/esm/MultiCascader/MultiCascader.js +1 -2
  397. package/esm/Nav/Nav.js +1 -2
  398. package/esm/Nav/NavDropdownMenu.js +1 -2
  399. package/esm/Navbar/Navbar.d.ts +1 -1
  400. package/esm/Navbar/Navbar.js +1 -2
  401. package/esm/Navbar/NavbarDropdownMenu.js +1 -2
  402. package/esm/Navbar/NavbarToggle.d.ts +8 -3
  403. package/esm/Navbar/NavbarToggle.js +10 -15
  404. package/esm/Notification/Notification.js +1 -2
  405. package/{cjs/InputNumber/InputNumber.d.ts → esm/NumberInput/NumberInput.d.ts} +20 -8
  406. package/esm/NumberInput/NumberInput.js +157 -0
  407. package/esm/NumberInput/hooks/useEvents.d.ts +22 -0
  408. package/esm/NumberInput/hooks/useEvents.js +110 -0
  409. package/esm/NumberInput/hooks/useNumberInputValue.d.ts +7 -0
  410. package/esm/NumberInput/hooks/useNumberInputValue.js +29 -0
  411. package/esm/NumberInput/hooks/useWheelHandler.d.ts +5 -0
  412. package/esm/NumberInput/hooks/useWheelHandler.js +21 -0
  413. package/esm/NumberInput/index.d.ts +4 -0
  414. package/esm/NumberInput/index.js +8 -0
  415. package/esm/NumberInput/utils/number.d.ts +17 -0
  416. package/esm/NumberInput/utils/number.js +59 -0
  417. package/esm/Pagination/LimitPicker.d.ts +2 -2
  418. package/esm/Pagination/Pagination.d.ts +2 -2
  419. package/esm/Pagination/Pagination.js +1 -2
  420. package/esm/Pagination/PaginationGroup.js +1 -2
  421. package/esm/Panel/Panel.js +1 -2
  422. package/esm/PanelGroup/PanelGroup.js +1 -2
  423. package/esm/PasswordInput/PasswordInput.d.ts +4 -0
  424. package/esm/PasswordInput/PasswordInput.js +5 -4
  425. package/esm/PasswordStrengthMeter/PasswordStrengthMeter.js +1 -2
  426. package/esm/PinInput/PinInput.d.ts +36 -0
  427. package/esm/PinInput/PinInput.js +219 -0
  428. package/esm/PinInput/hooks/usePinInputRefs.d.ts +12 -0
  429. package/esm/PinInput/hooks/usePinInputRefs.js +58 -0
  430. package/esm/PinInput/hooks/usePinValue.d.ts +14 -0
  431. package/esm/PinInput/hooks/usePinValue.js +69 -0
  432. package/esm/PinInput/index.d.ts +4 -0
  433. package/esm/PinInput/index.js +4 -0
  434. package/esm/Placeholder/PlaceholderGraph.js +1 -2
  435. package/esm/Placeholder/PlaceholderGrid.js +1 -2
  436. package/esm/Placeholder/PlaceholderParagraph.js +1 -2
  437. package/esm/Popover/Popover.js +1 -2
  438. package/esm/Progress/ProgressCircle.js +1 -2
  439. package/esm/Progress/ProgressLine.js +1 -2
  440. package/esm/Radio/Radio.js +1 -2
  441. package/esm/RadioGroup/RadioGroup.js +1 -2
  442. package/esm/RadioTile/RadioTile.js +1 -2
  443. package/esm/RadioTileGroup/RadioTileGroup.js +1 -2
  444. package/esm/RangeSlider/RangeSlider.js +1 -2
  445. package/esm/Rate/Rate.js +1 -2
  446. package/esm/SelectPicker/SelectPicker.js +1 -2
  447. package/esm/Sidebar/Sidebar.js +1 -2
  448. package/esm/Sidenav/ExpandedSidenavDropdownMenu.js +1 -2
  449. package/esm/Sidenav/Sidenav.js +1 -2
  450. package/esm/Sidenav/SidenavDropdownMenu.js +1 -2
  451. package/esm/Slider/Slider.d.ts +5 -1
  452. package/esm/Slider/Slider.js +12 -13
  453. package/esm/Stack/Stack.js +1 -2
  454. package/esm/Stat/Stat.js +1 -2
  455. package/esm/Stat/StatValue.js +1 -1
  456. package/esm/StatGroup/StatGroup.js +1 -2
  457. package/esm/Steps/Steps.js +1 -2
  458. package/esm/Table/Table.js +1 -1
  459. package/esm/Tabs/Tabs.js +1 -2
  460. package/esm/Tag/Tag.js +1 -2
  461. package/esm/TagInput/TagInput.js +1 -1
  462. package/esm/TagPicker/TagPicker.js +1 -1
  463. package/esm/Text/Text.js +1 -2
  464. package/esm/Textarea/Textarea.js +1 -2
  465. package/esm/TimePicker/TimePicker.d.ts +1 -2
  466. package/esm/TimePicker/TimePicker.js +1 -1
  467. package/esm/TimeRangePicker/TimeRangePicker.js +1 -1
  468. package/esm/Timeline/Timeline.js +1 -2
  469. package/esm/Toggle/Toggle.js +1 -2
  470. package/esm/Tooltip/Tooltip.js +1 -2
  471. package/esm/Tree/Tree.js +1 -2
  472. package/esm/Tree/TreeNode.js +1 -2
  473. package/esm/Tree/TreeNodeToggle.js +1 -2
  474. package/esm/Tree/TreeView.js +1 -2
  475. package/esm/Tree/hooks/useFocusTree.js +1 -2
  476. package/esm/TreePicker/TreePicker.js +1 -2
  477. package/esm/Uploader/Uploader.js +1 -2
  478. package/esm/Whisper/Whisper.js +1 -1
  479. package/esm/index.d.ts +3 -0
  480. package/esm/index.js +3 -0
  481. package/esm/internals/Box/index.d.ts +1 -0
  482. package/esm/internals/Box/index.js +1 -0
  483. package/esm/internals/Burger/Burger.d.ts +16 -0
  484. package/esm/internals/Burger/Burger.js +41 -0
  485. package/esm/internals/Burger/index.d.ts +4 -0
  486. package/esm/internals/Burger/index.js +8 -0
  487. package/esm/internals/CloseButton/CloseButton.js +1 -2
  488. package/esm/internals/Menu/Menu.js +1 -1
  489. package/esm/internals/Menu/Menubar.js +1 -1
  490. package/esm/internals/Picker/PickerIndicator.js +1 -2
  491. package/esm/internals/Picker/hooks/useCombobox.d.ts +1 -1
  492. package/esm/internals/Plaintext/Plaintext.js +1 -2
  493. package/esm/internals/Provider/CustomContext.d.ts +253 -0
  494. package/esm/internals/Provider/CustomContext.js +3 -0
  495. package/esm/internals/Provider/types.d.ts +236 -0
  496. package/esm/internals/Ripple/Ripple.js +1 -2
  497. package/esm/internals/SafeAnchor/SafeAnchor.js +1 -1
  498. package/esm/internals/Windowing/List.js +1 -1
  499. package/esm/internals/hooks/index.d.ts +1 -0
  500. package/esm/internals/hooks/index.js +1 -0
  501. package/esm/{CustomProvider → internals/hooks}/useCustom.d.ts +4 -4
  502. package/esm/{CustomProvider → internals/hooks}/useCustom.js +4 -4
  503. package/esm/internals/hooks/useStyles.js +1 -1
  504. package/esm/internals/hooks/useToggleCaret.js +1 -1
  505. package/esm/{CustomProvider → internals/intl}/FormattedDate.js +1 -1
  506. package/esm/{CustomProvider → internals/intl}/FormattedNumber.js +1 -1
  507. package/esm/internals/types/picker.d.ts +2 -2
  508. package/esm/internals/types/sizes.d.ts +2 -0
  509. package/esm/internals/types/sizes.js +3 -1
  510. package/esm/internals/utils/date/getWeekStartDates.d.ts +0 -1
  511. package/esm/internals/utils/date/getWeekStartDates.js +2 -4
  512. package/esm/internals/utils/react/createComponent.js +12 -2
  513. package/esm/{FormControl → useFormControl}/hooks/useField.d.ts +3 -3
  514. package/esm/{FormControl → useFormControl}/hooks/useField.js +4 -5
  515. package/esm/useFormControl/hooks/useRegisterModel.d.ts +2 -0
  516. package/esm/{FormControl → useFormControl}/hooks/useRegisterModel.js +2 -3
  517. package/esm/useFormControl/index.d.ts +4 -0
  518. package/esm/useFormControl/index.js +8 -0
  519. package/esm/useFormControl/useFormControl.d.ts +38 -0
  520. package/esm/useFormControl/useFormControl.js +133 -0
  521. package/esm/{FormControl/utils.js → useFormControl/utils/nameToPath.js} +0 -0
  522. package/esm/useToaster/useToaster.js +1 -3
  523. package/internals/Burger/styles/index.less +67 -0
  524. package/internals/CloseButton/styles/index.less +0 -10
  525. package/internals/Picker/styles/index.less +13 -10
  526. package/internals/Picker/styles/mixin.less +3 -3
  527. package/package.json +3 -3
  528. package/styles/color-modes/dark.less +7 -10
  529. package/styles/color-modes/high-contrast.less +3 -6
  530. package/styles/color-modes/light.less +5 -8
  531. package/styles/index.less +3 -1
  532. package/styles/mixins/utilities.less +2 -5
  533. package/useFormControl/package.json +7 -0
  534. package/cjs/CustomProvider/types.d.ts +0 -234
  535. package/cjs/FormControl/hooks/useRegisterModel.d.ts +0 -3
  536. package/cjs/InputNumber/InputNumber.js +0 -300
  537. package/esm/CustomProvider/types.d.ts +0 -234
  538. package/esm/FormControl/hooks/useRegisterModel.d.ts +0 -3
  539. package/esm/InputNumber/InputNumber.js +0 -293
  540. /package/cjs/{CustomProvider → internals/Provider}/types.js +0 -0
  541. /package/cjs/{CustomProvider → internals/intl}/FormattedDate.d.ts +0 -0
  542. /package/cjs/{CustomProvider → internals/intl}/FormattedNumber.d.ts +0 -0
  543. /package/cjs/{FormControl/utils.d.ts → useFormControl/utils/nameToPath.d.ts} +0 -0
  544. /package/esm/{CustomProvider → internals/Provider}/types.js +0 -0
  545. /package/esm/{CustomProvider → internals/intl}/FormattedDate.d.ts +0 -0
  546. /package/esm/{CustomProvider → internals/intl}/FormattedNumber.d.ts +0 -0
  547. /package/esm/{FormControl/utils.d.ts → useFormControl/utils/nameToPath.d.ts} +0 -0
@@ -0,0 +1,162 @@
1
+ 'use client';
2
+ "use strict";
3
+
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
+ exports.__esModule = true;
6
+ exports.default = void 0;
7
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _ArrowUpLine = _interopRequireDefault(require("@rsuite/icons/ArrowUpLine"));
10
+ var _ArrowDownLine = _interopRequireDefault(require("@rsuite/icons/ArrowDownLine"));
11
+ var _InputGroup = _interopRequireDefault(require("../InputGroup/InputGroup"));
12
+ var _InputGroupAddon = _interopRequireDefault(require("../InputGroup/InputGroupAddon"));
13
+ var _Input = _interopRequireDefault(require("../Input"));
14
+ var _Button = _interopRequireDefault(require("../Button"));
15
+ var _hooks = require("../internals/hooks");
16
+ var _utils = require("../internals/utils");
17
+ var _useNumberInputValue = require("./hooks/useNumberInputValue");
18
+ var _useEvents = require("./hooks/useEvents");
19
+ var _number = require("./utils/number");
20
+ /**
21
+ * The `NumberInput` component is used to enter a numerical value.
22
+ * @see https://rsuitejs.com/components/number-input
23
+ */
24
+ const NumberInput = (0, _utils.forwardRef)((props, ref) => {
25
+ const {
26
+ propsWithDefaults
27
+ } = (0, _hooks.useCustom)('NumberInput', props);
28
+ const {
29
+ as,
30
+ className,
31
+ classPrefix = 'number-input',
32
+ controls = true,
33
+ disabled,
34
+ decimalSeparator,
35
+ formatter,
36
+ readOnly,
37
+ plaintext,
38
+ value: valueProp,
39
+ defaultValue,
40
+ size,
41
+ prefix: prefixElement,
42
+ postfix,
43
+ suffix = postfix,
44
+ step = 1,
45
+ buttonAppearance = 'subtle',
46
+ min: minProp,
47
+ max: maxProp,
48
+ scrollable = true,
49
+ onChange,
50
+ onWheel,
51
+ onBlur: onBlurProp,
52
+ onFocus: onFocusProp,
53
+ ...rest
54
+ } = propsWithDefaults;
55
+ const min = minProp !== null && minProp !== void 0 ? minProp : -Infinity;
56
+ const max = maxProp !== null && maxProp !== void 0 ? maxProp : Infinity;
57
+ const [value, setValue] = (0, _hooks.useControlled)(valueProp, defaultValue);
58
+ const {
59
+ withPrefix,
60
+ merge,
61
+ prefix
62
+ } = (0, _hooks.useStyles)(classPrefix);
63
+ const classes = merge(className, withPrefix());
64
+ const [htmlInputProps, restProps] = (0, _utils.partitionHTMLProps)(rest);
65
+ const onChangeValue = (currentValue, event) => {
66
+ if (currentValue !== value) {
67
+ setValue(currentValue);
68
+ onChange === null || onChange === void 0 || onChange(currentValue, event);
69
+ }
70
+ };
71
+ const {
72
+ inputRef,
73
+ isFocused,
74
+ onStepUp,
75
+ onStepDown,
76
+ onKeyDown,
77
+ onFocus,
78
+ onBlur
79
+ } = (0, _useEvents.useEvents)({
80
+ min: minProp,
81
+ max: maxProp,
82
+ step,
83
+ value,
84
+ scrollable,
85
+ disabled,
86
+ readOnly,
87
+ decimalSeparator,
88
+ onWheel,
89
+ onChangeValue
90
+ });
91
+ const handleChange = (0, _hooks.useEventCallback)((value, event) => {
92
+ const separator = decimalSeparator || '.';
93
+ const escapedSeparator = separator.replace(/[-/\\^$*+?.()|[\]{}]/g, '\\$&');
94
+
95
+ // Support both custom decimalSeparator and standard decimal point '.'
96
+ let regex;
97
+ if (separator !== '.') {
98
+ // Allow both the custom separator and the standard decimal point
99
+ regex = new RegExp(`^-?(?:\\d+)?([.${escapedSeparator}])?\\d*$`);
100
+ } else {
101
+ regex = new RegExp(`^-?(?:\\d+)?(${escapedSeparator})?\\d*$`);
102
+ }
103
+ if (!regex.test(value) && value !== '') {
104
+ return;
105
+ }
106
+ onChangeValue(value, event);
107
+ });
108
+ const inputValue = (0, _useNumberInputValue.useNumberInputValue)({
109
+ value,
110
+ isFocused,
111
+ formatter,
112
+ decimalSeparator
113
+ });
114
+ const input = /*#__PURE__*/_react.default.createElement(_Input.default, (0, _extends2.default)({}, htmlInputProps, {
115
+ ref: plaintext ? ref : undefined,
116
+ inputRef: inputRef,
117
+ autoComplete: "off",
118
+ inputMode: "numeric",
119
+ step: step,
120
+ value: inputValue,
121
+ disabled: disabled,
122
+ readOnly: readOnly,
123
+ plaintext: plaintext,
124
+ onKeyDown: onKeyDown,
125
+ onChange: handleChange,
126
+ onBlur: (0, _utils.createChainedFunction)(onBlur, onBlurProp),
127
+ onFocus: (0, _utils.createChainedFunction)(onFocus, onFocusProp)
128
+ }));
129
+ if (plaintext) {
130
+ return input;
131
+ }
132
+ const stepUpDisabled = disabled || readOnly || (0, _number.valueReachesMax)(value, max);
133
+ const stepDownDisabled = disabled || readOnly || (0, _number.valueReachesMin)(value, min);
134
+ return /*#__PURE__*/_react.default.createElement(_InputGroup.default, (0, _extends2.default)({
135
+ as: as,
136
+ ref: ref,
137
+ className: classes,
138
+ disabled: disabled,
139
+ size: size,
140
+ inside: true
141
+ }, restProps), prefixElement && /*#__PURE__*/_react.default.createElement(_InputGroupAddon.default, null, prefixElement), input, suffix && /*#__PURE__*/_react.default.createElement(_InputGroupAddon.default, null, suffix), controls && /*#__PURE__*/_react.default.createElement("span", {
142
+ className: prefix('btn-group-vertical')
143
+ }, /*#__PURE__*/_react.default.createElement(_Button.default, {
144
+ tabIndex: -1,
145
+ appearance: buttonAppearance,
146
+ className: prefix('touchspin-up'),
147
+ onClick: onStepUp,
148
+ disabled: stepUpDisabled,
149
+ "aria-label": "Increment",
150
+ size: size
151
+ }, typeof controls === 'function' ? controls('up') : /*#__PURE__*/_react.default.createElement(_ArrowUpLine.default, null)), /*#__PURE__*/_react.default.createElement(_Button.default, {
152
+ tabIndex: -1,
153
+ appearance: buttonAppearance,
154
+ className: prefix('touchspin-down'),
155
+ onClick: onStepDown,
156
+ disabled: stepDownDisabled,
157
+ "aria-label": "Decrement",
158
+ size: size
159
+ }, typeof controls === 'function' ? controls('down') : /*#__PURE__*/_react.default.createElement(_ArrowDownLine.default, null))));
160
+ });
161
+ NumberInput.displayName = 'NumberInput';
162
+ var _default = exports.default = NumberInput;
@@ -0,0 +1,22 @@
1
+ /// <reference types="react" />
2
+ export interface UseEventsParams {
3
+ value?: number | string | null;
4
+ scrollable: boolean;
5
+ disabled?: boolean;
6
+ readOnly?: boolean;
7
+ min?: number;
8
+ max?: number;
9
+ step?: number;
10
+ decimalSeparator?: string;
11
+ onChangeValue: (currentValue: number | string, event: React.SyntheticEvent) => void;
12
+ onWheel?: (event: React.WheelEvent<HTMLInputElement>) => void;
13
+ }
14
+ export declare function useEvents(params: UseEventsParams): {
15
+ inputRef: import("react").RefObject<HTMLInputElement | null>;
16
+ isFocused: boolean;
17
+ onStepUp: (...args: any[]) => any;
18
+ onStepDown: (...args: any[]) => any;
19
+ onKeyDown: (...args: any[]) => any;
20
+ onBlur: (event: React.FocusEvent<HTMLInputElement>) => void;
21
+ onFocus: () => void;
22
+ };
@@ -0,0 +1,114 @@
1
+ 'use client';
2
+ "use strict";
3
+
4
+ exports.__esModule = true;
5
+ exports.useEvents = useEvents;
6
+ var _react = require("react");
7
+ var _hooks = require("../../internals/hooks");
8
+ var _constants = require("../../internals/constants");
9
+ var _number = require("../utils/number");
10
+ var _useWheelHandler = require("./useWheelHandler");
11
+ function useEvents(params) {
12
+ const inputRef = (0, _react.useRef)(null);
13
+ const [isFocused, setIsFocused] = (0, _react.useState)(false);
14
+ const {
15
+ value,
16
+ onChangeValue,
17
+ scrollable,
18
+ disabled,
19
+ readOnly,
20
+ onWheel: onWheelProp,
21
+ min,
22
+ max,
23
+ step = 1,
24
+ decimalSeparator
25
+ } = params;
26
+ const getSafeValue = value => (0, _number.clampValue)(value, min, max);
27
+ const onStepUp = (0, _hooks.useEventCallback)(event => {
28
+ const val = +(value || 0);
29
+ const bit = (0, _number.decimals)(val, step);
30
+ onChangeValue(getSafeValue((val + step).toFixed(bit)), event);
31
+ });
32
+ const onStepDown = (0, _hooks.useEventCallback)(event => {
33
+ const val = +(value || 0);
34
+ const bit = (0, _number.decimals)(val, step);
35
+ onChangeValue(getSafeValue((val - step).toFixed(bit)), event);
36
+ });
37
+ const onKeyDown = (0, _hooks.useEventCallback)(event => {
38
+ switch (event.key) {
39
+ case _constants.KEY_VALUES.UP:
40
+ event.preventDefault();
41
+ onStepUp(event);
42
+ break;
43
+ case _constants.KEY_VALUES.DOWN:
44
+ event.preventDefault();
45
+ onStepDown(event);
46
+ break;
47
+ case _constants.KEY_VALUES.HOME:
48
+ if (typeof min !== 'undefined') {
49
+ event.preventDefault();
50
+ onChangeValue(getSafeValue(min), event);
51
+ }
52
+ break;
53
+ case _constants.KEY_VALUES.END:
54
+ if (typeof max !== 'undefined') {
55
+ event.preventDefault();
56
+ onChangeValue(getSafeValue(max), event);
57
+ }
58
+ break;
59
+ default:
60
+ break;
61
+ }
62
+ });
63
+ const handleWheel = (0, _hooks.useEventCallback)(event => {
64
+ if (!scrollable) {
65
+ event.preventDefault();
66
+ return;
67
+ }
68
+ if (!disabled && !readOnly && event.target === document.activeElement) {
69
+ event.preventDefault();
70
+ const delta = event.wheelDelta || -event.deltaY || -event.detail;
71
+ if (delta > 0) {
72
+ onStepDown(event);
73
+ }
74
+ if (delta < 0) {
75
+ onStepUp(event);
76
+ }
77
+ }
78
+ onWheelProp === null || onWheelProp === void 0 || onWheelProp(event);
79
+ });
80
+ const restoreDecimalSeparator = (0, _react.useCallback)(value => {
81
+ if (decimalSeparator && value) {
82
+ // Handle both custom decimalSeparator and standard decimal point '.'
83
+ if (decimalSeparator !== '.') {
84
+ // Create a regex that matches both the custom separator and '.'
85
+ const separatorRegex = new RegExp(`[${decimalSeparator.replace(/[-/\\^$*+?.()|[\]{}]/g, '\\$&')}.]`, 'g');
86
+ return value.replace(separatorRegex, '.');
87
+ }
88
+ return value;
89
+ }
90
+ return value;
91
+ }, [decimalSeparator]);
92
+ const onBlur = event => {
93
+ var _event$target;
94
+ const value = restoreDecimalSeparator((_event$target = event.target) === null || _event$target === void 0 ? void 0 : _event$target.value);
95
+ const targetValue = Number.parseFloat(value);
96
+ onChangeValue(getSafeValue(targetValue), event);
97
+ setIsFocused(false);
98
+ };
99
+ const onFocus = () => {
100
+ setIsFocused(true);
101
+ };
102
+
103
+ // wheel events
104
+ (0, _useWheelHandler.useWheelHandler)(inputRef, handleWheel, scrollable);
105
+ return {
106
+ inputRef,
107
+ isFocused,
108
+ onStepUp,
109
+ onStepDown,
110
+ onKeyDown,
111
+ onBlur,
112
+ onFocus
113
+ };
114
+ }
@@ -0,0 +1,7 @@
1
+ export interface UseNumberInputValueParams {
2
+ value?: number | string | null;
3
+ isFocused: boolean;
4
+ formatter?: (value: number | string) => string;
5
+ decimalSeparator?: string;
6
+ }
7
+ export declare function useNumberInputValue(params: UseNumberInputValueParams): string | number;
@@ -0,0 +1,34 @@
1
+ 'use client';
2
+ "use strict";
3
+
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
+ exports.__esModule = true;
6
+ exports.useNumberInputValue = useNumberInputValue;
7
+ var _react = require("react");
8
+ var _isNil = _interopRequireDefault(require("lodash/isNil"));
9
+ function useNumberInputValue(params) {
10
+ const {
11
+ value,
12
+ isFocused,
13
+ formatter,
14
+ decimalSeparator
15
+ } = params;
16
+ const replaceDecimalSeparator = (0, _react.useCallback)(val => {
17
+ if (decimalSeparator && val != null) {
18
+ return val.toString().replace('.', decimalSeparator);
19
+ }
20
+ return val;
21
+ }, [decimalSeparator]);
22
+ return (0, _react.useMemo)(() => {
23
+ if ((0, _isNil.default)(value)) {
24
+ return '';
25
+ }
26
+ if (isFocused) {
27
+ return replaceDecimalSeparator(value);
28
+ }
29
+ if (formatter) {
30
+ return formatter(value);
31
+ }
32
+ return replaceDecimalSeparator(value);
33
+ }, [formatter, isFocused, replaceDecimalSeparator, value]);
34
+ }
@@ -0,0 +1,5 @@
1
+ import { type RefObject } from 'react';
2
+ /**
3
+ * Attach wheel listener to inputRef.
4
+ */
5
+ export declare function useWheelHandler(inputRef: RefObject<HTMLInputElement | null>, handleWheel: (event: React.WheelEvent<HTMLInputElement>) => void, scrollable: boolean): void;
@@ -0,0 +1,25 @@
1
+ 'use client';
2
+ "use strict";
3
+
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
+ exports.__esModule = true;
6
+ exports.useWheelHandler = useWheelHandler;
7
+ var _react = require("react");
8
+ var _on = _interopRequireDefault(require("dom-lib/on"));
9
+ /**
10
+ * Attach wheel listener to inputRef.
11
+ */
12
+ function useWheelHandler(inputRef, handleWheel, scrollable) {
13
+ (0, _react.useEffect)(() => {
14
+ let wheelListener;
15
+ if (inputRef.current) {
16
+ wheelListener = (0, _on.default)(inputRef.current, 'wheel', handleWheel, {
17
+ passive: false
18
+ });
19
+ }
20
+ return () => {
21
+ var _wheelListener;
22
+ (_wheelListener = wheelListener) === null || _wheelListener === void 0 || _wheelListener.off();
23
+ };
24
+ }, [inputRef, handleWheel, scrollable]);
25
+ }
@@ -0,0 +1,4 @@
1
+ import NumberInput from './NumberInput';
2
+ export type { NumberInputProps } from './NumberInput';
3
+ export { NumberInput };
4
+ export default NumberInput;
@@ -0,0 +1,11 @@
1
+ 'use client';
2
+ "use strict";
3
+
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
+ exports.__esModule = true;
6
+ exports.default = void 0;
7
+ var _NumberInput = _interopRequireDefault(require("./NumberInput"));
8
+ exports.NumberInput = _NumberInput.default;
9
+ // export types
10
+ // export components
11
+ var _default = exports.default = _NumberInput.default;
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Clamp a value within min/max and handle NaN as empty string.
3
+ */
4
+ export declare function clampValue(value: number | string, min?: number, max?: number): string;
5
+ export declare function decimals(...values: number[]): number;
6
+ /**
7
+ * Disable the upper limit of the number.
8
+ * @param value
9
+ * @param max
10
+ */
11
+ export declare function valueReachesMax(value: number | string | null | undefined, max: number): boolean;
12
+ /**
13
+ * Disable the lower limit of the number.
14
+ * @param value
15
+ * @param min
16
+ */
17
+ export declare function valueReachesMin(value: number | string | null | undefined, min: number): boolean;
@@ -0,0 +1,67 @@
1
+ 'use client';
2
+ "use strict";
3
+
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
+ exports.__esModule = true;
6
+ exports.clampValue = clampValue;
7
+ exports.decimals = decimals;
8
+ exports.valueReachesMax = valueReachesMax;
9
+ exports.valueReachesMin = valueReachesMin;
10
+ var _isNil = _interopRequireDefault(require("lodash/isNil"));
11
+ /**
12
+ * Clamp a value within min/max and handle NaN as empty string.
13
+ */
14
+ function clampValue(value, min, max) {
15
+ const num = typeof value === 'string' ? parseFloat(value) : value;
16
+ if (Number.isNaN(num)) {
17
+ return '';
18
+ }
19
+ let result = num;
20
+ if (typeof max !== 'undefined' && result > max) {
21
+ result = max;
22
+ }
23
+ if (typeof min !== 'undefined' && result < min) {
24
+ result = min;
25
+ }
26
+ return result.toString();
27
+ }
28
+ function isNumber(value) {
29
+ return /(^-?|^\+?|^\d?)\d*\.\d+$/.test(value + '');
30
+ }
31
+ function getDecimalLength(value) {
32
+ if (isNumber(value)) {
33
+ return value.toString().split('.')[1].length;
34
+ }
35
+ return 0;
36
+ }
37
+ function decimals() {
38
+ for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {
39
+ values[_key] = arguments[_key];
40
+ }
41
+ const lengths = values.map(getDecimalLength);
42
+ return Math.max(...lengths);
43
+ }
44
+
45
+ /**
46
+ * Disable the upper limit of the number.
47
+ * @param value
48
+ * @param max
49
+ */
50
+ function valueReachesMax(value, max) {
51
+ if (!(0, _isNil.default)(value)) {
52
+ return +value >= max;
53
+ }
54
+ return false;
55
+ }
56
+
57
+ /**
58
+ * Disable the lower limit of the number.
59
+ * @param value
60
+ * @param min
61
+ */
62
+ function valueReachesMin(value, min) {
63
+ if (!(0, _isNil.default)(value)) {
64
+ return +value <= min;
65
+ }
66
+ return false;
67
+ }
@@ -1,12 +1,12 @@
1
1
  import { type SelectPickerProps } from '../SelectPicker';
2
2
  import { PaginationLocale } from '../locales';
3
- import type { OnChangeCallback, Size } from '../internals/types';
3
+ import type { OnChangeCallback, BasicSize } from '../internals/types';
4
4
  interface LimitPickerProps extends Omit<SelectPickerProps<any>, 'locale' | 'disabled' | 'data'> {
5
5
  disabled?: boolean | ((eventKey: number | string) => boolean);
6
6
  limitOptions: number[];
7
7
  locale: PaginationLocale;
8
8
  limit: number;
9
- size?: Size;
9
+ size?: BasicSize;
10
10
  prefix: (input: string) => string;
11
11
  onChangeLimit: OnChangeCallback<any>;
12
12
  }
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { BoxProps } from '../internals/Box';
3
- import type { Size } from '../internals/types';
3
+ import type { BasicSize } from '../internals/types';
4
4
  import type { PaginationLocale } from '../locales';
5
5
  export interface PaginationProps extends BoxProps {
6
6
  /** Current page number */
@@ -30,7 +30,7 @@ export interface PaginationProps extends BoxProps {
30
30
  /** Custom locale */
31
31
  locale?: PaginationLocale;
32
32
  /** A pagination can have different sizes */
33
- size?: Size;
33
+ size?: BasicSize;
34
34
  /** callback function for pagination clicked */
35
35
  onSelect?: (eventKey: string | number, event: React.MouseEvent) => void;
36
36
  }
@@ -15,7 +15,6 @@ var _PaginationButton = _interopRequireDefault(require("./PaginationButton"));
15
15
  var _Box = _interopRequireDefault(require("../internals/Box"));
16
16
  var _utils = require("../internals/utils");
17
17
  var _hooks = require("../internals/hooks");
18
- var _CustomProvider = require("../CustomProvider");
19
18
  const icons = {
20
19
  more: /*#__PURE__*/_react.default.createElement(_More.default, null),
21
20
  first: /*#__PURE__*/_react.default.createElement(_PageTop.default, null),
@@ -31,7 +30,7 @@ const icons = {
31
30
  const Pagination = (0, _utils.forwardRef)((props, ref) => {
32
31
  const {
33
32
  propsWithDefaults
34
- } = (0, _CustomProvider.useCustom)('Pagination', props);
33
+ } = (0, _hooks.useCustom)('Pagination', props);
35
34
  const {
36
35
  as,
37
36
  className,
@@ -14,7 +14,6 @@ var _LimitPicker = _interopRequireDefault(require("./LimitPicker"));
14
14
  var _Box = _interopRequireDefault(require("../internals/Box"));
15
15
  var _hooks = require("../internals/hooks");
16
16
  var _utils = require("../internals/utils");
17
- var _CustomProvider = require("../CustomProvider");
18
17
  /**
19
18
  * The layout of the paging component.
20
19
  */
@@ -61,7 +60,7 @@ const PaginationGroup = (0, _utils.forwardRef)((props, ref) => {
61
60
  const classes = merge(className, withPrefix(size));
62
61
  const {
63
62
  getLocale
64
- } = (0, _CustomProvider.useCustom)();
63
+ } = (0, _hooks.useCustom)();
65
64
  const locale = getLocale('Pagination', localeProp);
66
65
  const handleInputBlur = (0, _hooks.useEventCallback)(event => {
67
66
  const value = parseInt(event.target.value);
@@ -12,7 +12,6 @@ var _useExpanded = _interopRequireDefault(require("./hooks/useExpanded"));
12
12
  var _Box = _interopRequireDefault(require("../internals/Box"));
13
13
  var _utils = require("../internals/utils");
14
14
  var _hooks = require("../internals/hooks");
15
- var _CustomProvider = require("../CustomProvider");
16
15
  var _PanelGroup = require("../PanelGroup");
17
16
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
18
17
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
@@ -23,7 +22,7 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
23
22
  const Panel = (0, _utils.forwardRef)((props, ref) => {
24
23
  const {
25
24
  propsWithDefaults
26
- } = (0, _CustomProvider.useCustom)('Panel', props);
25
+ } = (0, _hooks.useCustom)('Panel', props);
27
26
  const {
28
27
  as,
29
28
  bodyFill,
@@ -9,7 +9,6 @@ var _react = _interopRequireWildcard(require("react"));
9
9
  var _Box = _interopRequireDefault(require("../internals/Box"));
10
10
  var _utils = require("../internals/utils");
11
11
  var _hooks = require("../internals/hooks");
12
- var _CustomProvider = require("../CustomProvider");
13
12
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
14
13
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
15
14
  const PanelGroupContext = exports.PanelGroupContext = /*#__PURE__*/_react.default.createContext({});
@@ -21,7 +20,7 @@ const PanelGroupContext = exports.PanelGroupContext = /*#__PURE__*/_react.defaul
21
20
  const PanelGroup = (0, _utils.forwardRef)((props, ref) => {
22
21
  const {
23
22
  propsWithDefaults
24
- } = (0, _CustomProvider.useCustom)('PanelGroup', props);
23
+ } = (0, _hooks.useCustom)('PanelGroup', props);
25
24
  const {
26
25
  as,
27
26
  accordion,
@@ -5,6 +5,10 @@ export interface PasswordInputProps extends Omit<InputProps, 'type' | 'plaintext
5
5
  visible?: boolean;
6
6
  /** Default visibility state of the password */
7
7
  defaultVisible?: boolean;
8
+ /** The icon element to display before the input field */
9
+ startIcon?: React.ReactNode;
10
+ /** The icon element to display after the input field */
11
+ endIcon?: React.ReactNode;
8
12
  /** Custom icon for visibility toggle */
9
13
  renderVisibilityIcon?: (visible: boolean) => React.ReactNode;
10
14
  /** Callback function triggered when the password visibility changes */
@@ -12,11 +12,10 @@ var _EyeClose = _interopRequireDefault(require("@rsuite/icons/EyeClose"));
12
12
  var _Visible = _interopRequireDefault(require("@rsuite/icons/Visible"));
13
13
  var _utils = require("../internals/utils");
14
14
  var _hooks = require("../internals/hooks");
15
- var _CustomProvider = require("../CustomProvider");
16
15
  const PasswordInput = (0, _utils.forwardRef)((props, ref) => {
17
16
  const {
18
17
  propsWithDefaults
19
- } = (0, _CustomProvider.useCustom)('PasswordInput', props);
18
+ } = (0, _hooks.useCustom)('PasswordInput', props);
20
19
  const {
21
20
  classPrefix = 'password-input',
22
21
  className,
@@ -30,6 +29,8 @@ const PasswordInput = (0, _utils.forwardRef)((props, ref) => {
30
29
  name,
31
30
  readOnly,
32
31
  inputRef,
32
+ startIcon,
33
+ endIcon,
33
34
  onChange,
34
35
  onVisibleChange,
35
36
  renderVisibilityIcon,
@@ -50,7 +51,7 @@ const PasswordInput = (0, _utils.forwardRef)((props, ref) => {
50
51
  ref: ref,
51
52
  size: size,
52
53
  className: classes
53
- }, rest), /*#__PURE__*/_react.default.createElement(_Input.default, {
54
+ }, rest), startIcon && /*#__PURE__*/_react.default.createElement(_InputGroup.default.Addon, null, startIcon), /*#__PURE__*/_react.default.createElement(_Input.default, {
54
55
  type: visible ? 'text' : 'password',
55
56
  value: value,
56
57
  defaultValue: defaultValue,
@@ -61,7 +62,7 @@ const PasswordInput = (0, _utils.forwardRef)((props, ref) => {
61
62
  name: name,
62
63
  id: id,
63
64
  inputRef: inputRef
64
- }), /*#__PURE__*/_react.default.createElement(_InputGroup.default.Button, {
65
+ }), endIcon ? /*#__PURE__*/_react.default.createElement(_InputGroup.default.Addon, null, endIcon) : /*#__PURE__*/_react.default.createElement(_InputGroup.default.Button, {
65
66
  tabIndex: -1,
66
67
  onClick: handleToggleVisibility,
67
68
  "aria-label": "Toggle password visibility"
@@ -10,11 +10,10 @@ var _Box = _interopRequireDefault(require("../internals/Box"));
10
10
  var _Text = _interopRequireDefault(require("../Text"));
11
11
  var _utils = require("../internals/utils");
12
12
  var _hooks = require("../internals/hooks");
13
- var _CustomProvider = require("../CustomProvider");
14
13
  const PasswordStrengthMeter = (0, _utils.forwardRef)((props, ref) => {
15
14
  const {
16
15
  propsWithDefaults
17
- } = (0, _CustomProvider.useCustom)('PasswordStrengthMeter', props);
16
+ } = (0, _hooks.useCustom)('PasswordStrengthMeter', props);
18
17
  const {
19
18
  classPrefix = 'password-strength-meter',
20
19
  className,