rsuite 6.0.0-canary-20250416 → 6.0.0-canary-20250424

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 (520) 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/FormControl/FormControl.js +1 -2
  125. package/cjs/FormControlLabel/FormControlLabel.js +1 -2
  126. package/cjs/FormErrorMessage/FormErrorMessage.js +1 -2
  127. package/cjs/FormGroup/FormGroup.js +1 -2
  128. package/cjs/FormHelpText/FormHelpText.js +1 -2
  129. package/cjs/FormStack/FormStack.js +1 -2
  130. package/cjs/Grid/Col.js +1 -2
  131. package/cjs/Grid/Grid.js +1 -2
  132. package/cjs/Grid/Row.js +1 -2
  133. package/cjs/Heading/Heading.js +1 -2
  134. package/cjs/Highlight/Highlight.js +2 -3
  135. package/cjs/IconButton/IconButton.js +1 -2
  136. package/cjs/Image/Image.js +2 -3
  137. package/cjs/InlineEdit/InlineEdit.js +1 -2
  138. package/cjs/Input/Input.js +3 -3
  139. package/cjs/InputGroup/InputGroup.js +1 -2
  140. package/cjs/InputNumber/index.d.ts +12 -2
  141. package/cjs/InputNumber/index.js +11 -4
  142. package/cjs/InputPicker/InputPicker.js +1 -2
  143. package/cjs/InputPicker/utils.d.ts +1 -1
  144. package/cjs/Kbd/Kbd.js +1 -2
  145. package/cjs/Link/Link.js +1 -2
  146. package/cjs/List/List.js +1 -2
  147. package/cjs/Loader/Loader.js +1 -2
  148. package/cjs/MaskedInput/MaskedInput.js +2 -2
  149. package/cjs/Message/Message.js +1 -2
  150. package/cjs/Modal/Modal.js +1 -2
  151. package/cjs/Modal/ModalHeader.js +1 -2
  152. package/cjs/MultiCascadeTree/MultiCascadeTree.js +1 -2
  153. package/cjs/MultiCascadeTree/SearchView.js +1 -2
  154. package/cjs/MultiCascadeTree/TreeView.js +1 -2
  155. package/cjs/MultiCascader/MultiCascader.js +1 -2
  156. package/cjs/Nav/Nav.js +1 -2
  157. package/cjs/Nav/NavDropdownMenu.js +1 -2
  158. package/cjs/Navbar/Navbar.d.ts +1 -1
  159. package/cjs/Navbar/Navbar.js +1 -2
  160. package/cjs/Navbar/NavbarDropdownMenu.js +1 -2
  161. package/cjs/Navbar/NavbarToggle.d.ts +8 -3
  162. package/cjs/Navbar/NavbarToggle.js +9 -14
  163. package/cjs/Notification/Notification.js +1 -2
  164. package/cjs/{InputNumber/InputNumber.d.ts → NumberInput/NumberInput.d.ts} +20 -8
  165. package/cjs/NumberInput/NumberInput.js +162 -0
  166. package/cjs/NumberInput/hooks/useEvents.d.ts +22 -0
  167. package/cjs/NumberInput/hooks/useEvents.js +114 -0
  168. package/cjs/NumberInput/hooks/useNumberInputValue.d.ts +7 -0
  169. package/cjs/NumberInput/hooks/useNumberInputValue.js +34 -0
  170. package/cjs/NumberInput/hooks/useWheelHandler.d.ts +5 -0
  171. package/cjs/NumberInput/hooks/useWheelHandler.js +25 -0
  172. package/cjs/NumberInput/index.d.ts +4 -0
  173. package/cjs/NumberInput/index.js +11 -0
  174. package/cjs/NumberInput/utils/number.d.ts +17 -0
  175. package/cjs/NumberInput/utils/number.js +67 -0
  176. package/cjs/Pagination/LimitPicker.d.ts +2 -2
  177. package/cjs/Pagination/Pagination.d.ts +2 -2
  178. package/cjs/Pagination/Pagination.js +1 -2
  179. package/cjs/Pagination/PaginationGroup.js +1 -2
  180. package/cjs/Panel/Panel.js +1 -2
  181. package/cjs/PanelGroup/PanelGroup.js +1 -2
  182. package/cjs/PasswordInput/PasswordInput.d.ts +4 -0
  183. package/cjs/PasswordInput/PasswordInput.js +5 -4
  184. package/cjs/PasswordStrengthMeter/PasswordStrengthMeter.js +1 -2
  185. package/cjs/PinInput/PinInput.d.ts +36 -0
  186. package/cjs/PinInput/PinInput.js +224 -0
  187. package/cjs/PinInput/hooks/usePinInputRefs.d.ts +12 -0
  188. package/cjs/PinInput/hooks/usePinInputRefs.js +62 -0
  189. package/cjs/PinInput/hooks/usePinValue.d.ts +14 -0
  190. package/cjs/PinInput/hooks/usePinValue.js +73 -0
  191. package/cjs/PinInput/index.d.ts +4 -0
  192. package/cjs/PinInput/index.js +9 -0
  193. package/cjs/Placeholder/PlaceholderGraph.js +1 -2
  194. package/cjs/Placeholder/PlaceholderGrid.js +1 -2
  195. package/cjs/Placeholder/PlaceholderParagraph.js +1 -2
  196. package/cjs/Popover/Popover.js +1 -2
  197. package/cjs/Progress/ProgressCircle.js +1 -2
  198. package/cjs/Progress/ProgressLine.js +1 -2
  199. package/cjs/Radio/Radio.js +1 -2
  200. package/cjs/RadioGroup/RadioGroup.js +1 -2
  201. package/cjs/RadioTile/RadioTile.js +1 -2
  202. package/cjs/RadioTileGroup/RadioTileGroup.js +1 -2
  203. package/cjs/RangeSlider/RangeSlider.js +2 -3
  204. package/cjs/Rate/Rate.js +1 -2
  205. package/cjs/SelectPicker/SelectPicker.js +1 -2
  206. package/cjs/Sidebar/Sidebar.js +1 -2
  207. package/cjs/Sidenav/ExpandedSidenavDropdownMenu.js +1 -2
  208. package/cjs/Sidenav/Sidenav.js +1 -2
  209. package/cjs/Sidenav/SidenavDropdownMenu.js +1 -2
  210. package/cjs/Slider/Slider.d.ts +5 -1
  211. package/cjs/Slider/Slider.js +13 -14
  212. package/cjs/Stack/Stack.js +1 -2
  213. package/cjs/Stat/Stat.js +1 -2
  214. package/cjs/Stat/StatValue.js +2 -2
  215. package/cjs/StatGroup/StatGroup.js +1 -2
  216. package/cjs/Steps/Steps.js +1 -2
  217. package/cjs/Table/Table.js +2 -2
  218. package/cjs/Tabs/Tabs.js +1 -2
  219. package/cjs/Tag/Tag.js +1 -2
  220. package/cjs/TagInput/TagInput.js +2 -2
  221. package/cjs/TagPicker/TagPicker.js +2 -2
  222. package/cjs/Text/Text.js +1 -2
  223. package/cjs/Textarea/Textarea.js +1 -2
  224. package/cjs/TimePicker/TimePicker.d.ts +1 -2
  225. package/cjs/TimePicker/TimePicker.js +2 -2
  226. package/cjs/TimeRangePicker/TimeRangePicker.js +2 -2
  227. package/cjs/Timeline/Timeline.js +1 -2
  228. package/cjs/Toggle/Toggle.js +1 -2
  229. package/cjs/Tooltip/Tooltip.js +1 -2
  230. package/cjs/Tree/Tree.js +1 -2
  231. package/cjs/Tree/TreeNode.js +1 -2
  232. package/cjs/Tree/TreeNodeToggle.js +1 -2
  233. package/cjs/Tree/TreeView.js +1 -2
  234. package/cjs/Tree/hooks/useFocusTree.js +1 -2
  235. package/cjs/TreePicker/TreePicker.js +1 -2
  236. package/cjs/Uploader/Uploader.js +1 -2
  237. package/cjs/Whisper/Whisper.js +2 -2
  238. package/cjs/index.d.ts +2 -0
  239. package/cjs/index.js +12 -0
  240. package/cjs/internals/Box/index.d.ts +1 -0
  241. package/cjs/internals/Box/index.js +1 -0
  242. package/cjs/internals/Burger/Burger.d.ts +16 -0
  243. package/cjs/internals/Burger/Burger.js +46 -0
  244. package/cjs/internals/Burger/index.d.ts +4 -0
  245. package/cjs/internals/Burger/index.js +11 -0
  246. package/cjs/internals/CloseButton/CloseButton.js +1 -2
  247. package/cjs/internals/Menu/Menu.js +1 -2
  248. package/cjs/internals/Menu/Menubar.js +2 -2
  249. package/cjs/internals/Picker/PickerIndicator.js +1 -2
  250. package/cjs/internals/Picker/hooks/useCombobox.d.ts +1 -1
  251. package/cjs/internals/Plaintext/Plaintext.js +1 -2
  252. package/cjs/internals/Provider/CustomContext.d.ts +253 -0
  253. package/cjs/internals/Provider/CustomContext.js +8 -0
  254. package/cjs/internals/Provider/types.d.ts +236 -0
  255. package/cjs/internals/Ripple/Ripple.js +1 -2
  256. package/cjs/internals/SafeAnchor/SafeAnchor.js +2 -2
  257. package/cjs/internals/Windowing/List.js +2 -2
  258. package/cjs/internals/hooks/index.d.ts +1 -0
  259. package/cjs/internals/hooks/index.js +3 -1
  260. package/cjs/{CustomProvider → internals/hooks}/useCustom.d.ts +4 -4
  261. package/cjs/{CustomProvider → internals/hooks}/useCustom.js +5 -5
  262. package/cjs/internals/hooks/useStyles.js +2 -2
  263. package/cjs/internals/hooks/useToggleCaret.js +2 -2
  264. package/cjs/{CustomProvider → internals/intl}/FormattedDate.js +2 -2
  265. package/cjs/{CustomProvider → internals/intl}/FormattedNumber.js +2 -2
  266. package/cjs/internals/types/picker.d.ts +2 -2
  267. package/cjs/internals/types/sizes.d.ts +2 -0
  268. package/cjs/internals/types/sizes.js +2 -1
  269. package/cjs/internals/utils/date/getWeekStartDates.d.ts +0 -1
  270. package/cjs/internals/utils/date/getWeekStartDates.js +2 -4
  271. package/cjs/internals/utils/react/createComponent.js +15 -4
  272. package/cjs/useToaster/useToaster.js +2 -5
  273. package/dist/rsuite-no-reset-rtl.css +246 -265
  274. package/dist/rsuite-no-reset-rtl.min.css +1 -1
  275. package/dist/rsuite-no-reset-rtl.min.css.map +1 -1
  276. package/dist/rsuite-no-reset.css +246 -265
  277. package/dist/rsuite-no-reset.min.css +1 -1
  278. package/dist/rsuite-no-reset.min.css.map +1 -1
  279. package/dist/rsuite-rtl.css +246 -265
  280. package/dist/rsuite-rtl.min.css +1 -1
  281. package/dist/rsuite-rtl.min.css.map +1 -1
  282. package/dist/rsuite.css +246 -265
  283. package/dist/rsuite.js +333 -223
  284. package/dist/rsuite.js.map +1 -1
  285. package/dist/rsuite.min.css +1 -1
  286. package/dist/rsuite.min.css.map +1 -1
  287. package/dist/rsuite.min.js +1 -1
  288. package/dist/rsuite.min.js.map +1 -1
  289. package/esm/Accordion/Accordion.js +1 -1
  290. package/esm/Affix/Affix.js +1 -2
  291. package/esm/Animation/Bounce.js +1 -2
  292. package/esm/Animation/Collapse.js +1 -2
  293. package/esm/Animation/Fade.js +1 -2
  294. package/esm/Animation/Slide.js +1 -2
  295. package/esm/AutoComplete/AutoComplete.d.ts +2 -2
  296. package/esm/AutoComplete/AutoComplete.js +1 -2
  297. package/esm/Avatar/Avatar.js +1 -2
  298. package/esm/AvatarGroup/AvatarGroup.js +1 -2
  299. package/esm/Badge/Badge.js +1 -2
  300. package/esm/Breadcrumb/Breadcrumb.js +1 -2
  301. package/esm/Button/Button.d.ts +2 -2
  302. package/esm/Button/Button.js +1 -2
  303. package/esm/ButtonGroup/ButtonGroup.d.ts +2 -2
  304. package/esm/ButtonGroup/ButtonGroup.js +1 -2
  305. package/esm/ButtonToolbar/ButtonToolbar.js +1 -2
  306. package/esm/Calendar/Calendar.js +3 -4
  307. package/esm/Calendar/CalendarBody.js +1 -4
  308. package/esm/Calendar/CalendarContainer.js +1 -1
  309. package/esm/Calendar/CalendarHeader.js +1 -1
  310. package/esm/Calendar/CalendarProvider.d.ts +1 -1
  311. package/esm/Calendar/Grid/GridCell.js +1 -2
  312. package/esm/Calendar/Grid/GridHeaderRow.js +1 -2
  313. package/esm/Calendar/Grid/GridRow.d.ts +2 -0
  314. package/esm/Calendar/Grid/GridRow.js +5 -4
  315. package/esm/Calendar/MonthDropdown/MonthDropdownItem.js +1 -2
  316. package/esm/Calendar/hooks/useCalendar.d.ts +24 -2
  317. package/esm/Calendar/hooks/useCalendar.js +35 -2
  318. package/esm/Card/Card.js +1 -2
  319. package/esm/CardGroup/CardGroup.js +1 -2
  320. package/esm/Carousel/Carousel.js +1 -2
  321. package/esm/CascadeTree/CascadeTree.js +1 -2
  322. package/esm/CascadeTree/SearchView.js +1 -2
  323. package/esm/CascadeTree/TreeView.js +1 -2
  324. package/esm/Cascader/Cascader.js +1 -2
  325. package/esm/CheckPicker/CheckPicker.js +1 -2
  326. package/esm/CheckTree/CheckTree.js +1 -2
  327. package/esm/CheckTree/CheckTreeNode.js +1 -2
  328. package/esm/CheckTree/CheckTreeView.js +1 -2
  329. package/esm/CheckTreePicker/CheckTreePicker.js +1 -2
  330. package/esm/Checkbox/Checkbox.js +1 -2
  331. package/esm/CheckboxGroup/CheckboxGroup.js +1 -2
  332. package/esm/Container/Container.js +1 -2
  333. package/esm/CustomProvider/CustomProvider.d.ts +1 -271
  334. package/esm/CustomProvider/CustomProvider.js +1 -1
  335. package/esm/CustomProvider/index.d.ts +1 -6
  336. package/esm/CustomProvider/index.js +0 -6
  337. package/esm/DateInput/DateInput.js +1 -2
  338. package/esm/DateInput/hooks/useDateInputState.js +1 -1
  339. package/esm/DatePicker/DatePicker.js +2 -3
  340. package/esm/DatePicker/hooks/useFocus.js +1 -2
  341. package/esm/DateRangeInput/DateRangeInput.js +1 -2
  342. package/esm/DateRangePicker/DateRangePicker.js +2 -3
  343. package/esm/DateRangePicker/Header.js +1 -1
  344. package/esm/DateRangePicker/utils.d.ts +1 -1
  345. package/esm/DateRangePicker/utils.js +1 -1
  346. package/esm/Divider/Divider.js +1 -2
  347. package/esm/Drawer/Drawer.js +1 -2
  348. package/esm/Dropdown/Dropdown.js +1 -2
  349. package/esm/Dropdown/DropdownMenu.js +1 -2
  350. package/esm/FlexboxGrid/FlexboxGrid.js +1 -2
  351. package/esm/Form/Form.js +1 -2
  352. package/esm/FormControl/FormControl.js +1 -2
  353. package/esm/FormControlLabel/FormControlLabel.js +1 -2
  354. package/esm/FormErrorMessage/FormErrorMessage.js +1 -2
  355. package/esm/FormGroup/FormGroup.js +1 -2
  356. package/esm/FormHelpText/FormHelpText.js +1 -2
  357. package/esm/FormStack/FormStack.js +1 -2
  358. package/esm/Grid/Col.js +1 -2
  359. package/esm/Grid/Grid.js +1 -2
  360. package/esm/Grid/Row.js +1 -2
  361. package/esm/Heading/Heading.js +1 -2
  362. package/esm/Highlight/Highlight.js +2 -3
  363. package/esm/IconButton/IconButton.js +1 -2
  364. package/esm/Image/Image.js +2 -3
  365. package/esm/InlineEdit/InlineEdit.js +1 -2
  366. package/esm/Input/Input.js +2 -2
  367. package/esm/InputGroup/InputGroup.js +1 -2
  368. package/esm/InputNumber/index.d.ts +12 -2
  369. package/esm/InputNumber/index.js +8 -1
  370. package/esm/InputPicker/InputPicker.js +1 -2
  371. package/esm/InputPicker/utils.d.ts +1 -1
  372. package/esm/Kbd/Kbd.js +1 -2
  373. package/esm/Link/Link.js +1 -2
  374. package/esm/List/List.js +1 -2
  375. package/esm/Loader/Loader.js +1 -2
  376. package/esm/MaskedInput/MaskedInput.js +1 -1
  377. package/esm/Message/Message.js +1 -2
  378. package/esm/Modal/Modal.js +1 -2
  379. package/esm/Modal/ModalHeader.js +1 -2
  380. package/esm/MultiCascadeTree/MultiCascadeTree.js +1 -2
  381. package/esm/MultiCascadeTree/SearchView.js +1 -2
  382. package/esm/MultiCascadeTree/TreeView.js +1 -2
  383. package/esm/MultiCascader/MultiCascader.js +1 -2
  384. package/esm/Nav/Nav.js +1 -2
  385. package/esm/Nav/NavDropdownMenu.js +1 -2
  386. package/esm/Navbar/Navbar.d.ts +1 -1
  387. package/esm/Navbar/Navbar.js +1 -2
  388. package/esm/Navbar/NavbarDropdownMenu.js +1 -2
  389. package/esm/Navbar/NavbarToggle.d.ts +8 -3
  390. package/esm/Navbar/NavbarToggle.js +10 -15
  391. package/esm/Notification/Notification.js +1 -2
  392. package/esm/{InputNumber/InputNumber.d.ts → NumberInput/NumberInput.d.ts} +20 -8
  393. package/esm/NumberInput/NumberInput.js +157 -0
  394. package/esm/NumberInput/hooks/useEvents.d.ts +22 -0
  395. package/esm/NumberInput/hooks/useEvents.js +110 -0
  396. package/esm/NumberInput/hooks/useNumberInputValue.d.ts +7 -0
  397. package/esm/NumberInput/hooks/useNumberInputValue.js +29 -0
  398. package/esm/NumberInput/hooks/useWheelHandler.d.ts +5 -0
  399. package/esm/NumberInput/hooks/useWheelHandler.js +21 -0
  400. package/esm/NumberInput/index.d.ts +4 -0
  401. package/esm/NumberInput/index.js +8 -0
  402. package/esm/NumberInput/utils/number.d.ts +17 -0
  403. package/esm/NumberInput/utils/number.js +59 -0
  404. package/esm/Pagination/LimitPicker.d.ts +2 -2
  405. package/esm/Pagination/Pagination.d.ts +2 -2
  406. package/esm/Pagination/Pagination.js +1 -2
  407. package/esm/Pagination/PaginationGroup.js +1 -2
  408. package/esm/Panel/Panel.js +1 -2
  409. package/esm/PanelGroup/PanelGroup.js +1 -2
  410. package/esm/PasswordInput/PasswordInput.d.ts +4 -0
  411. package/esm/PasswordInput/PasswordInput.js +5 -4
  412. package/esm/PasswordStrengthMeter/PasswordStrengthMeter.js +1 -2
  413. package/esm/PinInput/PinInput.d.ts +36 -0
  414. package/esm/PinInput/PinInput.js +219 -0
  415. package/esm/PinInput/hooks/usePinInputRefs.d.ts +12 -0
  416. package/esm/PinInput/hooks/usePinInputRefs.js +58 -0
  417. package/esm/PinInput/hooks/usePinValue.d.ts +14 -0
  418. package/esm/PinInput/hooks/usePinValue.js +69 -0
  419. package/esm/PinInput/index.d.ts +4 -0
  420. package/esm/PinInput/index.js +4 -0
  421. package/esm/Placeholder/PlaceholderGraph.js +1 -2
  422. package/esm/Placeholder/PlaceholderGrid.js +1 -2
  423. package/esm/Placeholder/PlaceholderParagraph.js +1 -2
  424. package/esm/Popover/Popover.js +1 -2
  425. package/esm/Progress/ProgressCircle.js +1 -2
  426. package/esm/Progress/ProgressLine.js +1 -2
  427. package/esm/Radio/Radio.js +1 -2
  428. package/esm/RadioGroup/RadioGroup.js +1 -2
  429. package/esm/RadioTile/RadioTile.js +1 -2
  430. package/esm/RadioTileGroup/RadioTileGroup.js +1 -2
  431. package/esm/RangeSlider/RangeSlider.js +1 -2
  432. package/esm/Rate/Rate.js +1 -2
  433. package/esm/SelectPicker/SelectPicker.js +1 -2
  434. package/esm/Sidebar/Sidebar.js +1 -2
  435. package/esm/Sidenav/ExpandedSidenavDropdownMenu.js +1 -2
  436. package/esm/Sidenav/Sidenav.js +1 -2
  437. package/esm/Sidenav/SidenavDropdownMenu.js +1 -2
  438. package/esm/Slider/Slider.d.ts +5 -1
  439. package/esm/Slider/Slider.js +12 -13
  440. package/esm/Stack/Stack.js +1 -2
  441. package/esm/Stat/Stat.js +1 -2
  442. package/esm/Stat/StatValue.js +1 -1
  443. package/esm/StatGroup/StatGroup.js +1 -2
  444. package/esm/Steps/Steps.js +1 -2
  445. package/esm/Table/Table.js +1 -1
  446. package/esm/Tabs/Tabs.js +1 -2
  447. package/esm/Tag/Tag.js +1 -2
  448. package/esm/TagInput/TagInput.js +1 -1
  449. package/esm/TagPicker/TagPicker.js +1 -1
  450. package/esm/Text/Text.js +1 -2
  451. package/esm/Textarea/Textarea.js +1 -2
  452. package/esm/TimePicker/TimePicker.d.ts +1 -2
  453. package/esm/TimePicker/TimePicker.js +1 -1
  454. package/esm/TimeRangePicker/TimeRangePicker.js +1 -1
  455. package/esm/Timeline/Timeline.js +1 -2
  456. package/esm/Toggle/Toggle.js +1 -2
  457. package/esm/Tooltip/Tooltip.js +1 -2
  458. package/esm/Tree/Tree.js +1 -2
  459. package/esm/Tree/TreeNode.js +1 -2
  460. package/esm/Tree/TreeNodeToggle.js +1 -2
  461. package/esm/Tree/TreeView.js +1 -2
  462. package/esm/Tree/hooks/useFocusTree.js +1 -2
  463. package/esm/TreePicker/TreePicker.js +1 -2
  464. package/esm/Uploader/Uploader.js +1 -2
  465. package/esm/Whisper/Whisper.js +1 -1
  466. package/esm/index.d.ts +2 -0
  467. package/esm/index.js +2 -0
  468. package/esm/internals/Box/index.d.ts +1 -0
  469. package/esm/internals/Box/index.js +1 -0
  470. package/esm/internals/Burger/Burger.d.ts +16 -0
  471. package/esm/internals/Burger/Burger.js +41 -0
  472. package/esm/internals/Burger/index.d.ts +4 -0
  473. package/esm/internals/Burger/index.js +8 -0
  474. package/esm/internals/CloseButton/CloseButton.js +1 -2
  475. package/esm/internals/Menu/Menu.js +1 -1
  476. package/esm/internals/Menu/Menubar.js +1 -1
  477. package/esm/internals/Picker/PickerIndicator.js +1 -2
  478. package/esm/internals/Picker/hooks/useCombobox.d.ts +1 -1
  479. package/esm/internals/Plaintext/Plaintext.js +1 -2
  480. package/esm/internals/Provider/CustomContext.d.ts +253 -0
  481. package/esm/internals/Provider/CustomContext.js +3 -0
  482. package/esm/internals/Provider/types.d.ts +236 -0
  483. package/esm/internals/Ripple/Ripple.js +1 -2
  484. package/esm/internals/SafeAnchor/SafeAnchor.js +1 -1
  485. package/esm/internals/Windowing/List.js +1 -1
  486. package/esm/internals/hooks/index.d.ts +1 -0
  487. package/esm/internals/hooks/index.js +1 -0
  488. package/esm/{CustomProvider → internals/hooks}/useCustom.d.ts +4 -4
  489. package/esm/{CustomProvider → internals/hooks}/useCustom.js +4 -4
  490. package/esm/internals/hooks/useStyles.js +1 -1
  491. package/esm/internals/hooks/useToggleCaret.js +1 -1
  492. package/esm/{CustomProvider → internals/intl}/FormattedDate.js +1 -1
  493. package/esm/{CustomProvider → internals/intl}/FormattedNumber.js +1 -1
  494. package/esm/internals/types/picker.d.ts +2 -2
  495. package/esm/internals/types/sizes.d.ts +2 -0
  496. package/esm/internals/types/sizes.js +3 -1
  497. package/esm/internals/utils/date/getWeekStartDates.d.ts +0 -1
  498. package/esm/internals/utils/date/getWeekStartDates.js +2 -4
  499. package/esm/internals/utils/react/createComponent.js +12 -2
  500. package/esm/useToaster/useToaster.js +1 -3
  501. package/internals/Burger/styles/index.less +67 -0
  502. package/internals/CloseButton/styles/index.less +0 -10
  503. package/internals/Picker/styles/index.less +13 -10
  504. package/internals/Picker/styles/mixin.less +3 -3
  505. package/package.json +3 -3
  506. package/styles/color-modes/dark.less +7 -10
  507. package/styles/color-modes/high-contrast.less +3 -6
  508. package/styles/color-modes/light.less +5 -8
  509. package/styles/index.less +3 -1
  510. package/styles/mixins/utilities.less +2 -5
  511. package/cjs/CustomProvider/types.d.ts +0 -234
  512. package/cjs/InputNumber/InputNumber.js +0 -300
  513. package/esm/CustomProvider/types.d.ts +0 -234
  514. package/esm/InputNumber/InputNumber.js +0 -293
  515. /package/cjs/{CustomProvider → internals/Provider}/types.js +0 -0
  516. /package/cjs/{CustomProvider → internals/intl}/FormattedDate.d.ts +0 -0
  517. /package/cjs/{CustomProvider → internals/intl}/FormattedNumber.d.ts +0 -0
  518. /package/esm/{CustomProvider → internals/Provider}/types.js +0 -0
  519. /package/esm/{CustomProvider → internals/intl}/FormattedDate.d.ts +0 -0
  520. /package/esm/{CustomProvider → internals/intl}/FormattedNumber.d.ts +0 -0
@@ -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,110 @@
1
+ 'use client';
2
+ import { useRef, useState, useCallback } from 'react';
3
+ import { useEventCallback } from "../../internals/hooks/index.js";
4
+ import { KEY_VALUES } from "../../internals/constants/index.js";
5
+ import { clampValue, decimals } from "../utils/number.js";
6
+ import { useWheelHandler } from "./useWheelHandler.js";
7
+ export function useEvents(params) {
8
+ const inputRef = useRef(null);
9
+ const [isFocused, setIsFocused] = useState(false);
10
+ const {
11
+ value,
12
+ onChangeValue,
13
+ scrollable,
14
+ disabled,
15
+ readOnly,
16
+ onWheel: onWheelProp,
17
+ min,
18
+ max,
19
+ step = 1,
20
+ decimalSeparator
21
+ } = params;
22
+ const getSafeValue = value => clampValue(value, min, max);
23
+ const onStepUp = useEventCallback(event => {
24
+ const val = +(value || 0);
25
+ const bit = decimals(val, step);
26
+ onChangeValue(getSafeValue((val + step).toFixed(bit)), event);
27
+ });
28
+ const onStepDown = useEventCallback(event => {
29
+ const val = +(value || 0);
30
+ const bit = decimals(val, step);
31
+ onChangeValue(getSafeValue((val - step).toFixed(bit)), event);
32
+ });
33
+ const onKeyDown = useEventCallback(event => {
34
+ switch (event.key) {
35
+ case KEY_VALUES.UP:
36
+ event.preventDefault();
37
+ onStepUp(event);
38
+ break;
39
+ case KEY_VALUES.DOWN:
40
+ event.preventDefault();
41
+ onStepDown(event);
42
+ break;
43
+ case KEY_VALUES.HOME:
44
+ if (typeof min !== 'undefined') {
45
+ event.preventDefault();
46
+ onChangeValue(getSafeValue(min), event);
47
+ }
48
+ break;
49
+ case KEY_VALUES.END:
50
+ if (typeof max !== 'undefined') {
51
+ event.preventDefault();
52
+ onChangeValue(getSafeValue(max), event);
53
+ }
54
+ break;
55
+ default:
56
+ break;
57
+ }
58
+ });
59
+ const handleWheel = useEventCallback(event => {
60
+ if (!scrollable) {
61
+ event.preventDefault();
62
+ return;
63
+ }
64
+ if (!disabled && !readOnly && event.target === document.activeElement) {
65
+ event.preventDefault();
66
+ const delta = event.wheelDelta || -event.deltaY || -event.detail;
67
+ if (delta > 0) {
68
+ onStepDown(event);
69
+ }
70
+ if (delta < 0) {
71
+ onStepUp(event);
72
+ }
73
+ }
74
+ onWheelProp === null || onWheelProp === void 0 || onWheelProp(event);
75
+ });
76
+ const restoreDecimalSeparator = useCallback(value => {
77
+ if (decimalSeparator && value) {
78
+ // Handle both custom decimalSeparator and standard decimal point '.'
79
+ if (decimalSeparator !== '.') {
80
+ // Create a regex that matches both the custom separator and '.'
81
+ const separatorRegex = new RegExp(`[${decimalSeparator.replace(/[-/\\^$*+?.()|[\]{}]/g, '\\$&')}.]`, 'g');
82
+ return value.replace(separatorRegex, '.');
83
+ }
84
+ return value;
85
+ }
86
+ return value;
87
+ }, [decimalSeparator]);
88
+ const onBlur = event => {
89
+ var _event$target;
90
+ const value = restoreDecimalSeparator((_event$target = event.target) === null || _event$target === void 0 ? void 0 : _event$target.value);
91
+ const targetValue = Number.parseFloat(value);
92
+ onChangeValue(getSafeValue(targetValue), event);
93
+ setIsFocused(false);
94
+ };
95
+ const onFocus = () => {
96
+ setIsFocused(true);
97
+ };
98
+
99
+ // wheel events
100
+ useWheelHandler(inputRef, handleWheel, scrollable);
101
+ return {
102
+ inputRef,
103
+ isFocused,
104
+ onStepUp,
105
+ onStepDown,
106
+ onKeyDown,
107
+ onBlur,
108
+ onFocus
109
+ };
110
+ }
@@ -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,29 @@
1
+ 'use client';
2
+ import { useMemo, useCallback } from 'react';
3
+ import isNil from 'lodash/isNil';
4
+ export function useNumberInputValue(params) {
5
+ const {
6
+ value,
7
+ isFocused,
8
+ formatter,
9
+ decimalSeparator
10
+ } = params;
11
+ const replaceDecimalSeparator = useCallback(val => {
12
+ if (decimalSeparator && val != null) {
13
+ return val.toString().replace('.', decimalSeparator);
14
+ }
15
+ return val;
16
+ }, [decimalSeparator]);
17
+ return useMemo(() => {
18
+ if (isNil(value)) {
19
+ return '';
20
+ }
21
+ if (isFocused) {
22
+ return replaceDecimalSeparator(value);
23
+ }
24
+ if (formatter) {
25
+ return formatter(value);
26
+ }
27
+ return replaceDecimalSeparator(value);
28
+ }, [formatter, isFocused, replaceDecimalSeparator, value]);
29
+ }
@@ -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,21 @@
1
+ 'use client';
2
+ import { useEffect } from 'react';
3
+ import on from 'dom-lib/on';
4
+
5
+ /**
6
+ * Attach wheel listener to inputRef.
7
+ */
8
+ export function useWheelHandler(inputRef, handleWheel, scrollable) {
9
+ useEffect(() => {
10
+ let wheelListener;
11
+ if (inputRef.current) {
12
+ wheelListener = on(inputRef.current, 'wheel', handleWheel, {
13
+ passive: false
14
+ });
15
+ }
16
+ return () => {
17
+ var _wheelListener;
18
+ (_wheelListener = wheelListener) === null || _wheelListener === void 0 || _wheelListener.off();
19
+ };
20
+ }, [inputRef, handleWheel, scrollable]);
21
+ }
@@ -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,8 @@
1
+ 'use client';
2
+ import NumberInput from "./NumberInput.js";
3
+
4
+ // export types
5
+
6
+ // export components
7
+ export { NumberInput };
8
+ export default NumberInput;
@@ -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,59 @@
1
+ 'use client';
2
+ import isNil from 'lodash/isNil';
3
+ /**
4
+ * Clamp a value within min/max and handle NaN as empty string.
5
+ */
6
+ export function clampValue(value, min, max) {
7
+ const num = typeof value === 'string' ? parseFloat(value) : value;
8
+ if (Number.isNaN(num)) {
9
+ return '';
10
+ }
11
+ let result = num;
12
+ if (typeof max !== 'undefined' && result > max) {
13
+ result = max;
14
+ }
15
+ if (typeof min !== 'undefined' && result < min) {
16
+ result = min;
17
+ }
18
+ return result.toString();
19
+ }
20
+ function isNumber(value) {
21
+ return /(^-?|^\+?|^\d?)\d*\.\d+$/.test(value + '');
22
+ }
23
+ function getDecimalLength(value) {
24
+ if (isNumber(value)) {
25
+ return value.toString().split('.')[1].length;
26
+ }
27
+ return 0;
28
+ }
29
+ export function decimals() {
30
+ for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {
31
+ values[_key] = arguments[_key];
32
+ }
33
+ const lengths = values.map(getDecimalLength);
34
+ return Math.max(...lengths);
35
+ }
36
+
37
+ /**
38
+ * Disable the upper limit of the number.
39
+ * @param value
40
+ * @param max
41
+ */
42
+ export function valueReachesMax(value, max) {
43
+ if (!isNil(value)) {
44
+ return +value >= max;
45
+ }
46
+ return false;
47
+ }
48
+
49
+ /**
50
+ * Disable the lower limit of the number.
51
+ * @param value
52
+ * @param min
53
+ */
54
+ export function valueReachesMin(value, min) {
55
+ if (!isNil(value)) {
56
+ return +value <= min;
57
+ }
58
+ return false;
59
+ }
@@ -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
  }
@@ -9,8 +9,7 @@ import PageEndIcon from '@rsuite/icons/PageEnd';
9
9
  import PaginationButton from "./PaginationButton.js";
10
10
  import Box from "../internals/Box/index.js";
11
11
  import { forwardRef } from "../internals/utils/index.js";
12
- import { useStyles } from "../internals/hooks/index.js";
13
- import { useCustom } from "../CustomProvider/index.js";
12
+ import { useStyles, useCustom } from "../internals/hooks/index.js";
14
13
  const icons = {
15
14
  more: /*#__PURE__*/React.createElement(MoreIcon, null),
16
15
  first: /*#__PURE__*/React.createElement(PageTopIcon, null),
@@ -7,9 +7,8 @@ import Divider from "../Divider/index.js";
7
7
  import Input from "../Input/index.js";
8
8
  import LimitPicker from "./LimitPicker.js";
9
9
  import Box from "../internals/Box/index.js";
10
- import { useStyles, useControlled, useEventCallback } from "../internals/hooks/index.js";
10
+ import { useStyles, useCustom, useControlled, useEventCallback } from "../internals/hooks/index.js";
11
11
  import { forwardRef, tplTransform } from "../internals/utils/index.js";
12
- import { useCustom } from "../CustomProvider/index.js";
13
12
 
14
13
  /**
15
14
  * The layout of the paging component.
@@ -6,8 +6,7 @@ import PanelBody from "./PanelBody.js";
6
6
  import useExpanded from "./hooks/useExpanded.js";
7
7
  import Box from "../internals/Box/index.js";
8
8
  import { forwardRef } from "../internals/utils/index.js";
9
- import { useStyles, useUniqueId, useEventCallback } from "../internals/hooks/index.js";
10
- import { useCustom } from "../CustomProvider/index.js";
9
+ import { useStyles, useCustom, useUniqueId, useEventCallback } from "../internals/hooks/index.js";
11
10
  import { PanelGroupContext } from "../PanelGroup/index.js";
12
11
  /**
13
12
  * The `Panel` component is used to display content that can be collapsed.
@@ -3,8 +3,7 @@ import _extends from "@babel/runtime/helpers/esm/extends";
3
3
  import React, { useMemo } from 'react';
4
4
  import Box from "../internals/Box/index.js";
5
5
  import { forwardRef } from "../internals/utils/index.js";
6
- import { useStyles, useControlled, useEventCallback } from "../internals/hooks/index.js";
7
- import { useCustom } from "../CustomProvider/index.js";
6
+ import { useStyles, useCustom, useControlled, useEventCallback } from "../internals/hooks/index.js";
8
7
  export const PanelGroupContext = /*#__PURE__*/React.createContext({});
9
8
 
10
9
  /**
@@ -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 */
@@ -6,8 +6,7 @@ import InputGroup from "../InputGroup/index.js";
6
6
  import EyeCloseIcon from '@rsuite/icons/EyeClose';
7
7
  import VisibleIcon from '@rsuite/icons/Visible';
8
8
  import { forwardRef } from "../internals/utils/index.js";
9
- import { useStyles, useControlled, useEventCallback } from "../internals/hooks/index.js";
10
- import { useCustom } from "../CustomProvider/index.js";
9
+ import { useStyles, useCustom, useControlled, useEventCallback } from "../internals/hooks/index.js";
11
10
  const PasswordInput = forwardRef((props, ref) => {
12
11
  const {
13
12
  propsWithDefaults
@@ -25,6 +24,8 @@ const PasswordInput = forwardRef((props, ref) => {
25
24
  name,
26
25
  readOnly,
27
26
  inputRef,
27
+ startIcon,
28
+ endIcon,
28
29
  onChange,
29
30
  onVisibleChange,
30
31
  renderVisibilityIcon,
@@ -45,7 +46,7 @@ const PasswordInput = forwardRef((props, ref) => {
45
46
  ref: ref,
46
47
  size: size,
47
48
  className: classes
48
- }, rest), /*#__PURE__*/React.createElement(Input, {
49
+ }, rest), startIcon && /*#__PURE__*/React.createElement(InputGroup.Addon, null, startIcon), /*#__PURE__*/React.createElement(Input, {
49
50
  type: visible ? 'text' : 'password',
50
51
  value: value,
51
52
  defaultValue: defaultValue,
@@ -56,7 +57,7 @@ const PasswordInput = forwardRef((props, ref) => {
56
57
  name: name,
57
58
  id: id,
58
59
  inputRef: inputRef
59
- }), /*#__PURE__*/React.createElement(InputGroup.Button, {
60
+ }), endIcon ? /*#__PURE__*/React.createElement(InputGroup.Addon, null, endIcon) : /*#__PURE__*/React.createElement(InputGroup.Button, {
60
61
  tabIndex: -1,
61
62
  onClick: handleToggleVisibility,
62
63
  "aria-label": "Toggle password visibility"
@@ -4,8 +4,7 @@ import React from 'react';
4
4
  import Box from "../internals/Box/index.js";
5
5
  import Text from "../Text/index.js";
6
6
  import { forwardRef } from "../internals/utils/index.js";
7
- import { useStyles } from "../internals/hooks/index.js";
8
- import { useCustom } from "../CustomProvider/index.js";
7
+ import { useStyles, useCustom } from "../internals/hooks/index.js";
9
8
  const PasswordStrengthMeter = forwardRef((props, ref) => {
10
9
  const {
11
10
  propsWithDefaults
@@ -0,0 +1,36 @@
1
+ import { BoxProps } from '../internals/Box';
2
+ import type { BasicSize } from '../internals/types';
3
+ export interface PinInputProps extends BoxProps {
4
+ /** Whether input fields are attached (no gap between) */
5
+ attached?: boolean;
6
+ /** Whether to auto-focus the first input on mount */
7
+ autoFocus?: boolean;
8
+ /** Type of allowed input: number, alphabetic, alphanumeric, or custom regex */
9
+ type?: 'number' | 'alphabetic' | 'alphanumeric' | RegExp;
10
+ /** Default PIN value */
11
+ defaultValue?: string;
12
+ /** Whether to disable PIN input */
13
+ disabled?: boolean;
14
+ /** Number of PIN digits */
15
+ length?: number;
16
+ /** Whether to mask PIN input (like password) */
17
+ mask?: boolean;
18
+ /** Name for form submission */
19
+ name?: string;
20
+ /** Whether to optimize for one-time password (OTP) input */
21
+ otp?: boolean;
22
+ /** Placeholder for input fields */
23
+ placeholder?: string;
24
+ /** Whether the input is read-only */
25
+ readOnly?: boolean;
26
+ /** Input size */
27
+ size?: BasicSize;
28
+ /** PIN value */
29
+ value?: string;
30
+ /** Callback function when PIN input is completed */
31
+ onComplete?: (value: string) => void;
32
+ /** Callback function when PIN value changes */
33
+ onChange?: (value: string) => void;
34
+ }
35
+ declare const PinInput: import("../internals/types").InternalRefForwardingComponent<"div", PinInputProps, never> & Record<string, never>;
36
+ export default PinInput;