rsuite 6.0.0-canary-2025032014 → 6.0.0-canary-20250416

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 (484) hide show
  1. package/AutoComplete/styles/index.css +112 -62
  2. package/AutoComplete/styles/index.less +1 -1
  3. package/Box/styles/index.css +12 -0
  4. package/CHANGELOG.md +24 -0
  5. package/Calendar/styles/index.css +11 -9
  6. package/Calendar/styles/index.less +3 -1
  7. package/Cascader/styles/index.css +112 -62
  8. package/CheckPicker/styles/index.css +112 -62
  9. package/CheckPicker/styles/index.less +1 -1
  10. package/CheckTree/styles/index.css +113 -63
  11. package/CheckTree/styles/index.less +1 -1
  12. package/CheckTreePicker/styles/index.css +113 -63
  13. package/DateInput/styles/index.css +0 -7
  14. package/DatePicker/styles/index.css +122 -74
  15. package/DatePicker/styles/index.less +5 -11
  16. package/DateRangeInput/styles/index.css +0 -7
  17. package/DateRangePicker/styles/index.css +132 -78
  18. package/DateRangePicker/styles/index.less +10 -4
  19. package/Divider/styles/index.css +2 -2
  20. package/Divider/styles/index.less +2 -2
  21. package/Grid/styles/columns.less +1 -2
  22. package/Grid/styles/grid-framework.less +1 -0
  23. package/Grid/styles/index.css +9 -4
  24. package/Grid/styles/row.less +2 -2
  25. package/Input/styles/index.css +0 -7
  26. package/Input/styles/index.less +0 -6
  27. package/Input/styles/mixin.less +0 -4
  28. package/InputGroup/styles/index.css +1 -1
  29. package/InputGroup/styles/index.less +1 -1
  30. package/InputNumber/styles/index.css +1 -8
  31. package/InputPicker/styles/index.css +121 -70
  32. package/InputPicker/styles/index.less +4 -4
  33. package/Link/package.json +7 -0
  34. package/Link/styles/index.css +32 -0
  35. package/Link/styles/index.less +39 -0
  36. package/Message/styles/index.css +9 -0
  37. package/Message/styles/index.less +11 -0
  38. package/MultiCascadeTree/styles/index.css +112 -62
  39. package/MultiCascader/styles/index.css +112 -62
  40. package/Nav/styles/index.css +1 -0
  41. package/Nav/styles/index.less +1 -0
  42. package/Pagination/styles/index.css +114 -64
  43. package/PasswordInput/package.json +7 -0
  44. package/PasswordInput/styles/index.css +172 -0
  45. package/PasswordInput/styles/index.less +1 -0
  46. package/PasswordStrengthMeter/package.json +7 -0
  47. package/PasswordStrengthMeter/styles/index.css +33 -0
  48. package/PasswordStrengthMeter/styles/index.less +39 -0
  49. package/README.md +3 -3
  50. package/RadioGroup/styles/index.css +1 -0
  51. package/RadioGroup/styles/index.less +1 -0
  52. package/RangeSlider/styles/index.css +76 -43
  53. package/Rate/styles/index.css +48 -34
  54. package/Rate/styles/index.less +32 -21
  55. package/SelectPicker/styles/index.css +112 -62
  56. package/SelectPicker/styles/index.less +1 -1
  57. package/Slider/styles/index.css +76 -43
  58. package/Slider/styles/index.less +95 -48
  59. package/Tabs/styles/index.css +1 -0
  60. package/TagInput/styles/index.css +152 -91
  61. package/TagInput/styles/index.less +1 -1
  62. package/TagPicker/styles/index.css +151 -90
  63. package/TagPicker/styles/index.less +52 -41
  64. package/Textarea/package.json +7 -0
  65. package/Textarea/styles/index.css +6 -0
  66. package/Textarea/styles/index.less +7 -0
  67. package/TimePicker/styles/index.css +122 -74
  68. package/TimeRangePicker/styles/index.css +132 -78
  69. package/Toggle/styles/index.css +146 -87
  70. package/Toggle/styles/index.less +66 -38
  71. package/Tree/styles/index.css +113 -63
  72. package/Tree/styles/index.less +1 -1
  73. package/TreePicker/styles/index.css +113 -63
  74. package/cjs/AutoComplete/AutoComplete.d.ts +1 -1
  75. package/cjs/AutoComplete/AutoComplete.js +13 -11
  76. package/cjs/Avatar/Avatar.d.ts +3 -4
  77. package/cjs/Breadcrumb/Breadcrumb.js +2 -2
  78. package/cjs/Breadcrumb/BreadcrumbItem.js +1 -1
  79. package/cjs/Button/Button.js +9 -10
  80. package/cjs/Calendar/CalendarProvider.js +0 -0
  81. package/cjs/Calendar/hooks/useCalendar.js +0 -0
  82. package/cjs/Carousel/Carousel.js +2 -2
  83. package/cjs/Cascader/Cascader.js +42 -45
  84. package/cjs/Cascader/useActive.d.ts +6 -4
  85. package/cjs/Cascader/useActive.js +10 -8
  86. package/cjs/CheckPicker/CheckPicker.js +38 -41
  87. package/cjs/CheckTreePicker/CheckTreePicker.js +20 -22
  88. package/cjs/CustomProvider/CustomProvider.d.ts +1 -4
  89. package/cjs/CustomProvider/types.d.ts +10 -2
  90. package/cjs/DatePicker/DatePicker.d.ts +1 -1
  91. package/cjs/DatePicker/DatePicker.js +28 -25
  92. package/cjs/DatePicker/utils.d.ts +3 -3
  93. package/cjs/DatePicker/utils.js +3 -3
  94. package/cjs/DateRangePicker/DateRangePicker.js +39 -33
  95. package/cjs/DateRangePicker/utils.js +0 -0
  96. package/cjs/Divider/Divider.d.ts +3 -2
  97. package/cjs/Divider/Divider.js +2 -2
  98. package/cjs/Form/hooks/useFormValidate.js +0 -0
  99. package/cjs/Form/hooks/useSchemaModel.js +2 -54
  100. package/cjs/Form/utils/constructFlatSchema.d.ts +4 -0
  101. package/cjs/Form/utils/constructFlatSchema.js +41 -0
  102. package/cjs/FormControl/hooks/useField.js +0 -0
  103. package/cjs/FormControl/utils.js +0 -0
  104. package/cjs/Grid/Row.d.ts +2 -2
  105. package/cjs/Grid/Row.js +2 -20
  106. package/cjs/Grid/types.d.ts +1 -0
  107. package/cjs/Grid/utils/styles.d.ts +6 -0
  108. package/cjs/Grid/utils/styles.js +43 -0
  109. package/cjs/Image/Image.js +12 -11
  110. package/cjs/Image/hooks/useImage.d.ts +2 -0
  111. package/cjs/Image/hooks/useImage.js +19 -43
  112. package/cjs/InlineEdit/InlineEdit.js +3 -1
  113. package/cjs/InlineEdit/useEditState.d.ts +2 -0
  114. package/cjs/InlineEdit/useEditState.js +8 -0
  115. package/cjs/Input/Input.d.ts +3 -12
  116. package/cjs/Input/Input.js +12 -73
  117. package/cjs/InputPicker/InputPicker.js +27 -28
  118. package/cjs/Link/ExternalLinkIcon.d.ts +3 -0
  119. package/cjs/Link/ExternalLinkIcon.js +23 -0
  120. package/cjs/Link/Link.d.ts +14 -0
  121. package/cjs/Link/Link.js +52 -0
  122. package/cjs/Link/index.d.ts +4 -0
  123. package/cjs/Link/index.js +11 -0
  124. package/cjs/List/List.js +6 -2
  125. package/cjs/List/helper/useSortHelper.d.ts +7 -5
  126. package/cjs/List/helper/useSortHelper.js +109 -16
  127. package/cjs/List/helper/utils.js +14 -6
  128. package/cjs/MultiCascader/MultiCascader.js +40 -43
  129. package/cjs/Nav/NavItem.js +1 -1
  130. package/cjs/Nav/NavMegaMenu.d.ts +5 -0
  131. package/cjs/Nav/NavMegaMenu.js +5 -0
  132. package/cjs/Navbar/NavbarItem.js +1 -1
  133. package/cjs/Navbar/NavbarMegaMenu.js +1 -1
  134. package/cjs/PasswordInput/PasswordInput.d.ts +14 -0
  135. package/cjs/PasswordInput/PasswordInput.js +71 -0
  136. package/cjs/PasswordInput/index.d.ts +4 -0
  137. package/cjs/PasswordInput/index.js +11 -0
  138. package/cjs/PasswordStrengthMeter/PasswordStrengthMeter.d.ts +12 -0
  139. package/cjs/PasswordStrengthMeter/PasswordStrengthMeter.js +50 -0
  140. package/cjs/PasswordStrengthMeter/index.d.ts +4 -0
  141. package/cjs/PasswordStrengthMeter/index.js +11 -0
  142. package/cjs/RangeSlider/RangeSlider.js +18 -3
  143. package/cjs/Rate/Character.d.ts +4 -3
  144. package/cjs/Rate/Character.js +19 -15
  145. package/cjs/Rate/Rate.d.ts +10 -2
  146. package/cjs/Rate/Rate.js +47 -42
  147. package/cjs/Rate/types.d.ts +8 -0
  148. package/cjs/Rate/types.js +4 -0
  149. package/cjs/Rate/useRatingStates.d.ts +20 -0
  150. package/cjs/Rate/useRatingStates.js +48 -0
  151. package/cjs/Rate/utils.d.ts +14 -3
  152. package/cjs/Rate/utils.js +50 -9
  153. package/cjs/SelectPicker/SelectPicker.js +45 -46
  154. package/cjs/Sidenav/ExpandedSidenavDropdownItem.js +1 -1
  155. package/cjs/Sidenav/SidenavItem.js +1 -1
  156. package/cjs/Slider/Graduated.d.ts +4 -0
  157. package/cjs/Slider/Graduated.js +43 -20
  158. package/cjs/Slider/Handle.d.ts +1 -1
  159. package/cjs/Slider/Handle.js +12 -12
  160. package/cjs/Slider/Slider.d.ts +16 -1
  161. package/cjs/Slider/Slider.js +7 -2
  162. package/cjs/Slider/useDrag.d.ts +1 -0
  163. package/cjs/Slider/useDrag.js +8 -3
  164. package/cjs/Steps/Steps.js +2 -2
  165. package/cjs/Tabs/Tabs.js +2 -2
  166. package/cjs/Textarea/Textarea.d.ts +32 -0
  167. package/cjs/Textarea/Textarea.js +51 -0
  168. package/cjs/Textarea/index.d.ts +4 -0
  169. package/cjs/Textarea/index.js +11 -0
  170. package/cjs/Timeline/Timeline.js +2 -2
  171. package/cjs/Toggle/Toggle.d.ts +10 -1
  172. package/cjs/Toggle/Toggle.js +12 -9
  173. package/cjs/TreePicker/TreePicker.js +18 -19
  174. package/cjs/index.d.ts +4 -1
  175. package/cjs/index.js +24 -6
  176. package/cjs/internals/Box/Box.d.ts +4 -0
  177. package/cjs/internals/Box/Box.js +1 -1
  178. package/cjs/internals/Box/utils.js +5 -1
  179. package/cjs/internals/InputBase/InputBase.d.ts +45 -0
  180. package/cjs/internals/InputBase/InputBase.js +96 -0
  181. package/cjs/internals/InputBase/index.d.ts +3 -0
  182. package/cjs/internals/InputBase/index.js +8 -0
  183. package/cjs/internals/Overlay/Modal.d.ts +1 -1
  184. package/cjs/internals/Overlay/OverlayTrigger.d.ts +4 -3
  185. package/cjs/internals/Overlay/OverlayTrigger.js +8 -3
  186. package/cjs/internals/Picker/Listbox.js +7 -9
  187. package/cjs/internals/Picker/PickerDrawer.d.ts +8 -0
  188. package/cjs/internals/Picker/PickerDrawer.js +31 -0
  189. package/cjs/internals/Picker/PickerPopup.js +5 -3
  190. package/cjs/internals/Picker/PickerToggle.d.ts +1 -0
  191. package/cjs/internals/Picker/PickerToggle.js +10 -3
  192. package/cjs/internals/Picker/PickerToggleTrigger.d.ts +51 -11
  193. package/cjs/internals/Picker/PickerToggleTrigger.js +59 -13
  194. package/cjs/internals/Picker/hooks/index.d.ts +0 -1
  195. package/cjs/internals/Picker/hooks/index.js +2 -4
  196. package/cjs/internals/Picker/hooks/useCombobox.d.ts +1 -0
  197. package/cjs/internals/Picker/hooks/useCombobox.js +3 -1
  198. package/cjs/internals/Picker/index.d.ts +1 -2
  199. package/cjs/internals/Picker/index.js +10 -12
  200. package/{esm → cjs/internals}/SafeAnchor/SafeAnchor.d.ts +2 -2
  201. package/cjs/{SafeAnchor → internals/SafeAnchor}/SafeAnchor.js +3 -3
  202. package/cjs/internals/Tree/TreeView.js +3 -4
  203. package/cjs/internals/hooks/useRootClose.js +4 -4
  204. package/cjs/internals/index.d.ts +4 -0
  205. package/cjs/internals/index.js +13 -1
  206. package/cjs/internals/types/html.d.ts +2 -0
  207. package/cjs/internals/utils/{dom.d.ts → html/dom.d.ts} +1 -0
  208. package/cjs/internals/utils/{dom.js → html/dom.js} +8 -0
  209. package/cjs/internals/utils/{events.js → html/events.js} +0 -0
  210. package/cjs/internals/utils/{htmlPropsUtils.js → html/htmlPropsUtils.js} +0 -0
  211. package/cjs/internals/utils/html/index.d.ts +4 -0
  212. package/cjs/internals/utils/html/index.js +28 -0
  213. package/cjs/internals/utils/{safeSetSelection.js → html/safeSetSelection.js} +1 -1
  214. package/cjs/internals/utils/index.d.ts +3 -15
  215. package/cjs/internals/utils/index.js +20 -49
  216. package/cjs/internals/utils/{ReactChildren.d.ts → react/ReactChildren.d.ts} +2 -8
  217. package/cjs/internals/utils/{ReactChildren.js → react/ReactChildren.js} +5 -25
  218. package/cjs/internals/utils/react/ReactIs.d.ts +7 -0
  219. package/cjs/internals/utils/react/ReactIs.js +26 -0
  220. package/{esm/internals/utils → cjs/internals/utils/react}/createComponent.d.ts +2 -2
  221. package/cjs/internals/utils/{createComponent.js → react/createComponent.js} +3 -3
  222. package/cjs/internals/utils/{deprecateComponent.js → react/deprecateComponent.js} +1 -1
  223. package/cjs/internals/utils/{forwardRef.d.ts → react/forwardRef.d.ts} +1 -1
  224. package/cjs/internals/utils/react/index.d.ts +7 -0
  225. package/cjs/internals/utils/react/index.js +46 -0
  226. package/cjs/internals/utils/{mergeRefs.js → react/mergeRefs.js} +0 -0
  227. package/cjs/internals/utils/{getStringLength.d.ts → string/getStringLength.d.ts} +0 -1
  228. package/cjs/internals/utils/{getStringLength.js → string/getStringLength.js} +1 -3
  229. package/cjs/internals/utils/string/index.d.ts +4 -0
  230. package/cjs/internals/utils/string/index.js +28 -0
  231. package/cjs/internals/utils/{stringifyReactNode.js → string/stringifyReactNode.js} +0 -0
  232. package/cjs/internals/utils/{tplTransform.js → string/tplTransform.js} +0 -0
  233. package/cjs/locales/en_GB.js +2 -2
  234. package/cjs/locales/en_US.js +2 -2
  235. package/cjs/locales/index.js +0 -0
  236. package/cjs/locales/pl_PL.js +2 -3
  237. package/cjs/useBreakpointValue/useBreakpointValue.d.ts +6 -2
  238. package/cjs/useBreakpointValue/useBreakpointValue.js +9 -4
  239. package/cjs/useMediaQuery/breakpoints.d.ts +24 -0
  240. package/cjs/useMediaQuery/breakpoints.js +248 -0
  241. package/cjs/useMediaQuery/index.d.ts +1 -1
  242. package/cjs/useMediaQuery/types.d.ts +45 -0
  243. package/cjs/useMediaQuery/types.js +4 -0
  244. package/cjs/useMediaQuery/useMediaQuery.d.ts +4 -13
  245. package/cjs/useMediaQuery/useMediaQuery.js +30 -12
  246. package/cjs/useToaster/useToaster.d.ts +1 -1
  247. package/cjs/useToaster/useToaster.js +1 -1
  248. package/dist/rsuite-no-reset-rtl.css +565 -276
  249. package/dist/rsuite-no-reset-rtl.min.css +1 -1
  250. package/dist/rsuite-no-reset-rtl.min.css.map +1 -1
  251. package/dist/rsuite-no-reset.css +565 -276
  252. package/dist/rsuite-no-reset.min.css +1 -1
  253. package/dist/rsuite-no-reset.min.css.map +1 -1
  254. package/dist/rsuite-rtl.css +565 -276
  255. package/dist/rsuite-rtl.min.css +1 -1
  256. package/dist/rsuite-rtl.min.css.map +1 -1
  257. package/dist/rsuite.css +565 -276
  258. package/dist/rsuite.js +508 -211
  259. package/dist/rsuite.js.map +1 -1
  260. package/dist/rsuite.min.css +1 -1
  261. package/dist/rsuite.min.css.map +1 -1
  262. package/dist/rsuite.min.js +1 -1
  263. package/dist/rsuite.min.js.map +1 -1
  264. package/esm/AutoComplete/AutoComplete.d.ts +1 -1
  265. package/esm/AutoComplete/AutoComplete.js +13 -11
  266. package/esm/Avatar/Avatar.d.ts +3 -4
  267. package/esm/Breadcrumb/Breadcrumb.js +3 -3
  268. package/esm/Breadcrumb/BreadcrumbItem.js +1 -1
  269. package/esm/Button/Button.js +10 -11
  270. package/esm/Calendar/CalendarProvider.js +0 -0
  271. package/esm/Calendar/hooks/useCalendar.js +0 -0
  272. package/esm/Carousel/Carousel.js +3 -3
  273. package/esm/Cascader/Cascader.js +43 -46
  274. package/esm/Cascader/useActive.d.ts +6 -4
  275. package/esm/Cascader/useActive.js +10 -8
  276. package/esm/CheckPicker/CheckPicker.js +39 -42
  277. package/esm/CheckTreePicker/CheckTreePicker.js +21 -23
  278. package/esm/CustomProvider/CustomProvider.d.ts +1 -4
  279. package/esm/CustomProvider/types.d.ts +10 -2
  280. package/esm/DatePicker/DatePicker.d.ts +1 -1
  281. package/esm/DatePicker/DatePicker.js +29 -26
  282. package/esm/DatePicker/utils.d.ts +3 -3
  283. package/esm/DatePicker/utils.js +4 -4
  284. package/esm/DateRangePicker/DateRangePicker.js +35 -29
  285. package/esm/DateRangePicker/utils.js +0 -0
  286. package/esm/Divider/Divider.d.ts +3 -2
  287. package/esm/Divider/Divider.js +2 -2
  288. package/esm/Form/hooks/useFormValidate.js +0 -0
  289. package/esm/Form/hooks/useSchemaModel.js +3 -55
  290. package/esm/Form/utils/constructFlatSchema.d.ts +4 -0
  291. package/esm/Form/utils/constructFlatSchema.js +37 -0
  292. package/esm/FormControl/hooks/useField.js +0 -0
  293. package/esm/FormControl/utils.js +0 -0
  294. package/esm/Grid/Row.d.ts +2 -2
  295. package/esm/Grid/Row.js +2 -20
  296. package/esm/Grid/types.d.ts +1 -0
  297. package/esm/Grid/utils/styles.d.ts +6 -0
  298. package/esm/Grid/utils/styles.js +37 -0
  299. package/esm/Image/Image.js +12 -11
  300. package/esm/Image/hooks/useImage.d.ts +2 -0
  301. package/esm/Image/hooks/useImage.js +20 -43
  302. package/esm/InlineEdit/InlineEdit.js +3 -1
  303. package/esm/InlineEdit/useEditState.d.ts +2 -0
  304. package/esm/InlineEdit/useEditState.js +8 -0
  305. package/esm/Input/Input.d.ts +3 -12
  306. package/esm/Input/Input.js +12 -74
  307. package/esm/InputPicker/InputPicker.js +28 -29
  308. package/esm/Link/ExternalLinkIcon.d.ts +3 -0
  309. package/esm/Link/ExternalLinkIcon.js +18 -0
  310. package/esm/Link/Link.d.ts +14 -0
  311. package/esm/Link/Link.js +47 -0
  312. package/esm/Link/index.d.ts +4 -0
  313. package/esm/Link/index.js +8 -0
  314. package/esm/List/List.js +6 -2
  315. package/esm/List/helper/useSortHelper.d.ts +7 -5
  316. package/esm/List/helper/useSortHelper.js +109 -16
  317. package/esm/List/helper/utils.js +14 -6
  318. package/esm/MultiCascader/MultiCascader.js +41 -44
  319. package/esm/Nav/NavItem.js +1 -1
  320. package/esm/Nav/NavMegaMenu.d.ts +5 -0
  321. package/esm/Nav/NavMegaMenu.js +5 -0
  322. package/esm/Navbar/NavbarItem.js +1 -1
  323. package/esm/Navbar/NavbarMegaMenu.js +1 -1
  324. package/esm/PasswordInput/PasswordInput.d.ts +14 -0
  325. package/esm/PasswordInput/PasswordInput.js +66 -0
  326. package/esm/PasswordInput/index.d.ts +4 -0
  327. package/esm/PasswordInput/index.js +8 -0
  328. package/esm/PasswordStrengthMeter/PasswordStrengthMeter.d.ts +12 -0
  329. package/esm/PasswordStrengthMeter/PasswordStrengthMeter.js +45 -0
  330. package/esm/PasswordStrengthMeter/index.d.ts +4 -0
  331. package/esm/PasswordStrengthMeter/index.js +8 -0
  332. package/esm/RangeSlider/RangeSlider.js +18 -3
  333. package/esm/Rate/Character.d.ts +4 -3
  334. package/esm/Rate/Character.js +20 -16
  335. package/esm/Rate/Rate.d.ts +10 -2
  336. package/esm/Rate/Rate.js +49 -42
  337. package/esm/Rate/types.d.ts +8 -0
  338. package/esm/Rate/types.js +2 -0
  339. package/esm/Rate/useRatingStates.d.ts +20 -0
  340. package/esm/Rate/useRatingStates.js +43 -0
  341. package/esm/Rate/utils.d.ts +14 -3
  342. package/esm/Rate/utils.js +46 -7
  343. package/esm/SelectPicker/SelectPicker.js +46 -47
  344. package/esm/Sidenav/ExpandedSidenavDropdownItem.js +1 -1
  345. package/esm/Sidenav/SidenavItem.js +1 -1
  346. package/esm/Slider/Graduated.d.ts +4 -0
  347. package/esm/Slider/Graduated.js +43 -20
  348. package/esm/Slider/Handle.d.ts +1 -1
  349. package/esm/Slider/Handle.js +12 -12
  350. package/esm/Slider/Slider.d.ts +16 -1
  351. package/esm/Slider/Slider.js +7 -2
  352. package/esm/Slider/useDrag.d.ts +1 -0
  353. package/esm/Slider/useDrag.js +8 -3
  354. package/esm/Steps/Steps.js +3 -3
  355. package/esm/Tabs/Tabs.js +3 -3
  356. package/esm/Textarea/Textarea.d.ts +32 -0
  357. package/esm/Textarea/Textarea.js +46 -0
  358. package/esm/Textarea/index.d.ts +4 -0
  359. package/esm/Textarea/index.js +8 -0
  360. package/esm/Timeline/Timeline.js +3 -3
  361. package/esm/Toggle/Toggle.d.ts +10 -1
  362. package/esm/Toggle/Toggle.js +12 -9
  363. package/esm/TreePicker/TreePicker.js +19 -20
  364. package/esm/index.d.ts +4 -1
  365. package/esm/index.js +4 -1
  366. package/esm/internals/Box/Box.d.ts +4 -0
  367. package/esm/internals/Box/Box.js +1 -1
  368. package/esm/internals/Box/utils.js +5 -1
  369. package/esm/internals/InputBase/InputBase.d.ts +45 -0
  370. package/esm/internals/InputBase/InputBase.js +89 -0
  371. package/esm/internals/InputBase/index.d.ts +3 -0
  372. package/esm/internals/InputBase/index.js +3 -0
  373. package/esm/internals/Overlay/Modal.d.ts +1 -1
  374. package/esm/internals/Overlay/OverlayTrigger.d.ts +4 -3
  375. package/esm/internals/Overlay/OverlayTrigger.js +8 -2
  376. package/esm/internals/Picker/Listbox.js +8 -10
  377. package/esm/internals/Picker/PickerDrawer.d.ts +8 -0
  378. package/esm/internals/Picker/PickerDrawer.js +26 -0
  379. package/esm/internals/Picker/PickerPopup.js +5 -3
  380. package/esm/internals/Picker/PickerToggle.d.ts +1 -0
  381. package/esm/internals/Picker/PickerToggle.js +10 -3
  382. package/esm/internals/Picker/PickerToggleTrigger.d.ts +51 -11
  383. package/esm/internals/Picker/PickerToggleTrigger.js +59 -12
  384. package/esm/internals/Picker/hooks/index.d.ts +0 -1
  385. package/esm/internals/Picker/hooks/index.js +1 -2
  386. package/esm/internals/Picker/hooks/useCombobox.d.ts +1 -0
  387. package/esm/internals/Picker/hooks/useCombobox.js +3 -1
  388. package/esm/internals/Picker/index.d.ts +1 -2
  389. package/esm/internals/Picker/index.js +1 -2
  390. package/{cjs → esm/internals}/SafeAnchor/SafeAnchor.d.ts +2 -2
  391. package/esm/{SafeAnchor → internals/SafeAnchor}/SafeAnchor.js +3 -3
  392. package/esm/internals/Tree/TreeView.js +4 -5
  393. package/esm/internals/hooks/useRootClose.js +1 -1
  394. package/esm/internals/index.d.ts +4 -0
  395. package/esm/internals/index.js +5 -0
  396. package/esm/internals/types/html.d.ts +2 -0
  397. package/esm/internals/utils/{dom.d.ts → html/dom.d.ts} +1 -0
  398. package/esm/internals/utils/{dom.js → html/dom.js} +7 -0
  399. package/esm/internals/utils/{events.js → html/events.js} +0 -0
  400. package/esm/internals/utils/{htmlPropsUtils.js → html/htmlPropsUtils.js} +0 -0
  401. package/esm/internals/utils/html/index.d.ts +4 -0
  402. package/esm/internals/utils/html/index.js +5 -0
  403. package/esm/internals/utils/{safeSetSelection.js → html/safeSetSelection.js} +1 -1
  404. package/esm/internals/utils/index.d.ts +3 -15
  405. package/esm/internals/utils/index.js +3 -14
  406. package/esm/internals/utils/{ReactChildren.d.ts → react/ReactChildren.d.ts} +2 -8
  407. package/esm/internals/utils/{ReactChildren.js → react/ReactChildren.js} +3 -21
  408. package/esm/internals/utils/react/ReactIs.d.ts +7 -0
  409. package/esm/internals/utils/react/ReactIs.js +22 -0
  410. package/{cjs/internals/utils → esm/internals/utils/react}/createComponent.d.ts +2 -2
  411. package/esm/internals/utils/{createComponent.js → react/createComponent.js} +3 -3
  412. package/esm/internals/utils/{deprecateComponent.js → react/deprecateComponent.js} +1 -1
  413. package/esm/internals/utils/{forwardRef.d.ts → react/forwardRef.d.ts} +1 -1
  414. package/esm/internals/utils/react/index.d.ts +7 -0
  415. package/esm/internals/utils/react/index.js +8 -0
  416. package/esm/internals/utils/{mergeRefs.js → react/mergeRefs.js} +0 -0
  417. package/esm/internals/utils/{getStringLength.d.ts → string/getStringLength.d.ts} +0 -1
  418. package/esm/internals/utils/{getStringLength.js → string/getStringLength.js} +1 -2
  419. package/esm/internals/utils/string/index.d.ts +4 -0
  420. package/esm/internals/utils/string/index.js +5 -0
  421. package/esm/internals/utils/{stringifyReactNode.js → string/stringifyReactNode.js} +0 -0
  422. package/esm/internals/utils/{tplTransform.js → string/tplTransform.js} +0 -0
  423. package/esm/locales/en_GB.js +2 -2
  424. package/esm/locales/en_US.js +2 -2
  425. package/esm/locales/index.js +0 -0
  426. package/esm/locales/pl_PL.js +1 -1
  427. package/esm/useBreakpointValue/useBreakpointValue.d.ts +6 -2
  428. package/esm/useBreakpointValue/useBreakpointValue.js +9 -4
  429. package/esm/useMediaQuery/breakpoints.d.ts +24 -0
  430. package/esm/useMediaQuery/breakpoints.js +244 -0
  431. package/esm/useMediaQuery/index.d.ts +1 -1
  432. package/esm/useMediaQuery/types.d.ts +45 -0
  433. package/esm/useMediaQuery/types.js +2 -0
  434. package/esm/useMediaQuery/useMediaQuery.d.ts +4 -13
  435. package/esm/useMediaQuery/useMediaQuery.js +29 -11
  436. package/esm/useToaster/useToaster.d.ts +1 -1
  437. package/esm/useToaster/useToaster.js +1 -1
  438. package/internals/Box/styles/index.less +4 -0
  439. package/internals/Picker/styles/index.less +105 -23
  440. package/internals/Picker/styles/mixin.less +6 -6
  441. package/package.json +3 -2
  442. package/styles/color-modes/dark.less +2 -2
  443. package/styles/color-modes/high-contrast.less +2 -2
  444. package/styles/color-modes/light.less +2 -2
  445. package/styles/index.less +3 -0
  446. package/styles/root.less +2 -0
  447. package/styles/variables.less +0 -24
  448. package/SafeAnchor/package.json +0 -7
  449. package/cjs/Form/hooks/useFormClassNames.d.ts +0 -5
  450. package/cjs/Form/hooks/useFormClassNames.js +0 -29
  451. package/cjs/internals/Picker/hooks/usePickerClassName.d.ts +0 -19
  452. package/cjs/internals/Picker/hooks/usePickerClassName.js +0 -45
  453. package/esm/Form/hooks/useFormClassNames.d.ts +0 -5
  454. package/esm/Form/hooks/useFormClassNames.js +0 -25
  455. package/esm/internals/Picker/hooks/usePickerClassName.d.ts +0 -19
  456. package/esm/internals/Picker/hooks/usePickerClassName.js +0 -40
  457. /package/cjs/{SafeAnchor → internals/SafeAnchor}/index.d.ts +0 -0
  458. /package/cjs/{SafeAnchor → internals/SafeAnchor}/index.js +0 -0
  459. /package/cjs/internals/utils/{events.d.ts → html/events.d.ts} +0 -0
  460. /package/cjs/internals/utils/{htmlPropsUtils.d.ts → html/htmlPropsUtils.d.ts} +0 -0
  461. /package/cjs/internals/utils/{safeSetSelection.d.ts → html/safeSetSelection.d.ts} +0 -0
  462. /package/cjs/internals/utils/{deprecateComponent.d.ts → react/deprecateComponent.d.ts} +0 -0
  463. /package/cjs/internals/utils/{forwardRef.js → react/forwardRef.js} +0 -0
  464. /package/cjs/internals/utils/{getDOMNode.d.ts → react/getDOMNode.d.ts} +0 -0
  465. /package/cjs/internals/utils/{getDOMNode.js → react/getDOMNode.js} +0 -0
  466. /package/cjs/internals/utils/{mergeRefs.d.ts → react/mergeRefs.d.ts} +0 -0
  467. /package/cjs/internals/utils/{getSafeRegExpString.d.ts → string/getSafeRegExpString.d.ts} +0 -0
  468. /package/cjs/internals/utils/{getSafeRegExpString.js → string/getSafeRegExpString.js} +0 -0
  469. /package/cjs/internals/utils/{stringifyReactNode.d.ts → string/stringifyReactNode.d.ts} +0 -0
  470. /package/cjs/internals/utils/{tplTransform.d.ts → string/tplTransform.d.ts} +0 -0
  471. /package/esm/{SafeAnchor → internals/SafeAnchor}/index.d.ts +0 -0
  472. /package/esm/{SafeAnchor → internals/SafeAnchor}/index.js +0 -0
  473. /package/esm/internals/utils/{events.d.ts → html/events.d.ts} +0 -0
  474. /package/esm/internals/utils/{htmlPropsUtils.d.ts → html/htmlPropsUtils.d.ts} +0 -0
  475. /package/esm/internals/utils/{safeSetSelection.d.ts → html/safeSetSelection.d.ts} +0 -0
  476. /package/esm/internals/utils/{deprecateComponent.d.ts → react/deprecateComponent.d.ts} +0 -0
  477. /package/esm/internals/utils/{forwardRef.js → react/forwardRef.js} +0 -0
  478. /package/esm/internals/utils/{getDOMNode.d.ts → react/getDOMNode.d.ts} +0 -0
  479. /package/esm/internals/utils/{getDOMNode.js → react/getDOMNode.js} +0 -0
  480. /package/esm/internals/utils/{mergeRefs.d.ts → react/mergeRefs.d.ts} +0 -0
  481. /package/esm/internals/utils/{getSafeRegExpString.d.ts → string/getSafeRegExpString.d.ts} +0 -0
  482. /package/esm/internals/utils/{getSafeRegExpString.js → string/getSafeRegExpString.js} +0 -0
  483. /package/esm/internals/utils/{stringifyReactNode.d.ts → string/stringifyReactNode.d.ts} +0 -0
  484. /package/esm/internals/utils/{tplTransform.d.ts → string/tplTransform.d.ts} +0 -0
@@ -1,4 +1,4 @@
1
- import { MouseEventHandler } from 'react';
1
+ import { MouseEventHandler, TouchEventHandler } from 'react';
2
2
  import { Collection, ManagedItem } from './useManager';
3
3
  export interface MovedItemInfo {
4
4
  collection: Collection;
@@ -10,14 +10,16 @@ export type SortConfig = {
10
10
  autoScroll?: boolean;
11
11
  pressDelay?: number;
12
12
  transitionDuration?: number;
13
- onSortStart?(payload?: MovedItemInfo, event?: MouseEvent): void;
14
- onSortMove?(payload?: MovedItemInfo, event?: MouseEvent): void;
15
- onSortEnd?(payload?: MovedItemInfo, event?: MouseEvent): void;
16
- onSort?(payload?: MovedItemInfo, event?: MouseEvent): void;
13
+ onSortStart?(payload?: MovedItemInfo, event?: MouseEvent | TouchEvent): void;
14
+ onSortMove?(payload?: MovedItemInfo, event?: MouseEvent | TouchEvent): void;
15
+ onSortEnd?(payload?: MovedItemInfo, event?: MouseEvent | TouchEvent): void;
16
+ onSort?(payload?: MovedItemInfo, event?: MouseEvent | TouchEvent): void;
17
17
  };
18
18
  declare const useSortHelper: (config: SortConfig) => {
19
19
  handleStart: MouseEventHandler<Element>;
20
20
  handleEnd: MouseEventHandler<Element>;
21
+ handleTouchStart: TouchEventHandler<Element>;
22
+ handleTouchEnd: TouchEventHandler<Element>;
21
23
  containerRef: import("react").RefObject<HTMLDivElement | null>;
22
24
  sorting: boolean;
23
25
  register: (item: ManagedItem) => {
@@ -30,7 +30,7 @@ const useSortHelper = config => {
30
30
  /**
31
31
  * start dragging
32
32
  * */
33
- const handlePress = useCallback((mouseDownEvent, _targetNode, curManagedItem) => {
33
+ const handlePress = useCallback((event, _targetNode, curManagedItem) => {
34
34
  var _curManagedItem$info$, _curManagedItem$info$2, _activeNodeHelper;
35
35
  if (!isMounted()) return;
36
36
  // data
@@ -44,6 +44,13 @@ const useSortHelper = config => {
44
44
  };
45
45
  let animatedNodesOffset = []; // all list item offset
46
46
 
47
+ // Get initial position from event
48
+ const isTouchEvent = 'touches' in event;
49
+ const initialPosition = {
50
+ pageX: isTouchEvent ? event.touches[0].pageX : event.pageX,
51
+ pageY: isTouchEvent ? event.touches[0].pageY : event.pageY
52
+ };
53
+
47
54
  // init scroller
48
55
  const scrollContainer = getScrollingParent(containerElement) || containerElement;
49
56
  const initScroll = {
@@ -79,17 +86,31 @@ const useSortHelper = config => {
79
86
  x: 0,
80
87
  y: 0
81
88
  });
82
- const sortMouseMoveListener = on(window, 'mousemove', mouseOverEvent => {
89
+
90
+ // Common handler for both mouse and touch move events
91
+ const handleSortMove = moveEvent => {
92
+ // Prevent default to stop page scrolling during touch drag
93
+ if ('touches' in moveEvent) {
94
+ moveEvent.preventDefault();
95
+ }
96
+
97
+ // Get current position from event
98
+ const isTouchMoveEvent = 'touches' in moveEvent;
99
+ const currentPosition = {
100
+ pageX: isTouchMoveEvent ? moveEvent.touches[0].pageX : moveEvent.pageX,
101
+ pageY: isTouchMoveEvent ? moveEvent.touches[0].pageY : moveEvent.pageY
102
+ };
103
+
83
104
  // Update helper position
84
105
  const offset = {
85
- x: (mouseOverEvent === null || mouseOverEvent === void 0 ? void 0 : mouseOverEvent.pageX) || 0,
86
- y: (mouseOverEvent === null || mouseOverEvent === void 0 ? void 0 : mouseOverEvent.pageY) || 0
106
+ x: currentPosition.pageX,
107
+ y: currentPosition.pageY
87
108
  };
88
109
  const containerScrollDelta = getContainerScrollDelta();
89
110
  const containerBoundingRect = scrollContainer.getBoundingClientRect();
90
111
  activeNodeHolderTranslate = {
91
- x: offset.x - mouseDownEvent.pageX,
92
- y: offset.y - mouseDownEvent.pageY
112
+ x: offset.x - initialPosition.pageX,
113
+ y: offset.y - initialPosition.pageY
93
114
  };
94
115
  if (activeNodeHelper) {
95
116
  setTranslate3d(activeNodeHelper, activeNodeHolderTranslate);
@@ -189,14 +210,22 @@ const useSortHelper = config => {
189
210
  node: activeNode,
190
211
  oldIndex: activeNodeOldIndex,
191
212
  newIndex: activeNodeNextIndex
192
- }, mouseOverEvent);
193
- }, {
194
- passive: false
195
- });
196
- const sortMouseEndListener = on(window, 'mouseup', event => {
213
+ }, moveEvent);
214
+ };
215
+
216
+ // Common handler for both mouse and touch end events
217
+ const handleSortEnd = endEvent => {
218
+ var _sortTouchMoveListene, _sortTouchEndListener;
197
219
  // Remove the event listeners
198
220
  sortMouseMoveListener.off();
199
221
  sortMouseEndListener.off();
222
+ (_sortTouchMoveListene = sortTouchMoveListener) === null || _sortTouchMoveListene === void 0 || _sortTouchMoveListene.off();
223
+ (_sortTouchEndListener = sortTouchEndListener) === null || _sortTouchEndListener === void 0 || _sortTouchEndListener.off();
224
+
225
+ // Enable page scrolling again
226
+ if (document.body.style.overflow === 'hidden') {
227
+ document.body.style.overflow = '';
228
+ }
200
229
  const holderTranslate = getHolderTranslate();
201
230
  const containerScrollDelta = getContainerScrollDelta();
202
231
  if (activeNodeHelper) {
@@ -242,12 +271,33 @@ const useSortHelper = config => {
242
271
  newIndex: activeNodeNextIndex,
243
272
  oldIndex: activeNodeOldIndex
244
273
  };
245
- onSortEnd === null || onSortEnd === void 0 || onSortEnd(callbackPayload, event);
246
- onSort === null || onSort === void 0 || onSort(callbackPayload, event);
274
+ onSortEnd === null || onSortEnd === void 0 || onSortEnd(callbackPayload, endEvent);
275
+ onSort === null || onSort === void 0 || onSort(callbackPayload, endEvent);
247
276
  }, transitionDuration);
248
- }, {
277
+ };
278
+
279
+ // Set up mouse event listeners
280
+ const sortMouseMoveListener = on(window, 'mousemove', handleSortMove, {
249
281
  passive: false
250
282
  });
283
+ const sortMouseEndListener = on(window, 'mouseup', handleSortEnd, {
284
+ passive: false
285
+ });
286
+
287
+ // Set up touch event listeners
288
+ let sortTouchMoveListener;
289
+ let sortTouchEndListener;
290
+ if (isTouchEvent) {
291
+ // Disable page scrolling during touch drag
292
+ document.body.style.overflow = 'hidden';
293
+ sortTouchMoveListener = on(window, 'touchmove', handleSortMove, {
294
+ passive: false
295
+ } // Important: passive: false allows preventDefault() to work
296
+ );
297
+ sortTouchEndListener = on(window, 'touchend', handleSortEnd, {
298
+ passive: false
299
+ });
300
+ }
251
301
  setSorting(true);
252
302
  // start callback
253
303
  onSortStart === null || onSortStart === void 0 || onSortStart({
@@ -255,7 +305,7 @@ const useSortHelper = config => {
255
305
  node: activeNode,
256
306
  oldIndex: activeNodeOldIndex,
257
307
  newIndex: activeNodeNextIndex
258
- }, mouseDownEvent.nativeEvent);
308
+ }, event);
259
309
  }, [autoScroll, getOrderedItems, isMounted, onSort, onSortEnd, onSortMove, onSortStart, transitionDuration]);
260
310
 
261
311
  /**
@@ -281,13 +331,56 @@ const useSortHelper = config => {
281
331
  }
282
332
  }, [getManagedItem, handlePress, pressDelay, sorting]);
283
333
 
334
+ /**
335
+ * Handle touch start for mobile devices
336
+ */
337
+ const handleTouchStart = useCallback(touchStartEvent => {
338
+ const triggeredNode = touchStartEvent.target;
339
+ const targetNode = closestNode(triggeredNode, el => Boolean(getManagedItem(el)));
340
+ const curManagedItem = getManagedItem(targetNode);
341
+ if (
342
+ // is list item
343
+ Boolean(curManagedItem) && !curManagedItem.info.disabled &&
344
+ // is not sorting
345
+ !sorting &&
346
+ // is valid node
347
+ targetNode instanceof HTMLElement &&
348
+ // excludes interactive elements
349
+ !targetNode.contains(closestNode(triggeredNode, isContainInteractiveElement))) {
350
+ // Prevent scrolling while sorting
351
+ touchStartEvent.preventDefault();
352
+ pressTimer.current = setTimeout(handlePress, pressDelay, touchStartEvent, targetNode, curManagedItem);
353
+ }
354
+ }, [getManagedItem, handlePress, pressDelay, sorting]);
355
+
284
356
  /**
285
357
  * Clear timer after drag
286
358
  * */
287
- const handleEnd = useCallback(() => clearTimeout(pressTimer.current), []);
359
+ const handleEnd = useCallback(() => {
360
+ clearTimeout(pressTimer.current);
361
+
362
+ // Ensure page scrolling is re-enabled
363
+ if (document.body.style.overflow === 'hidden') {
364
+ document.body.style.overflow = '';
365
+ }
366
+ }, []);
367
+
368
+ /**
369
+ * Clear timer after touch end
370
+ */
371
+ const handleTouchEnd = useCallback(() => {
372
+ clearTimeout(pressTimer.current);
373
+
374
+ // Ensure page scrolling is re-enabled
375
+ if (document.body.style.overflow === 'hidden') {
376
+ document.body.style.overflow = '';
377
+ }
378
+ }, []);
288
379
  return {
289
380
  handleStart,
290
381
  handleEnd,
382
+ handleTouchStart,
383
+ handleTouchEnd,
291
384
  containerRef,
292
385
  sorting,
293
386
  register: listItemRegister
@@ -59,10 +59,18 @@ export function getEdgeOffset(node, parent, offset) {
59
59
  return getEdgeOffset(node.parentNode, parent, nodeOffset);
60
60
  }
61
61
  export function getScrollingParent(el) {
62
- return closestNode(el, el => {
63
- const computedStyle = window.getComputedStyle(el);
64
- const overflowRegex = /(auto|scroll)/;
65
- const properties = ['overflow', 'overflowX', 'overflowY'];
66
- return properties.some(property => overflowRegex.test(computedStyle[property]));
67
- });
62
+ if (!el || typeof window === 'undefined' || !window.getComputedStyle) {
63
+ return null;
64
+ }
65
+ try {
66
+ return closestNode(el, el => {
67
+ const computedStyle = window.getComputedStyle(el);
68
+ const overflowRegex = /(auto|scroll)/;
69
+ const properties = ['overflow', 'overflowX', 'overflowY'];
70
+ return properties.some(property => overflowRegex.test(computedStyle[property]));
71
+ });
72
+ } catch {
73
+ // In test environments, errors may occur, so return null
74
+ return null;
75
+ }
68
76
  }
@@ -2,12 +2,10 @@
2
2
  import _extends from "@babel/runtime/helpers/esm/extends";
3
3
  import React, { useCallback } from 'react';
4
4
  import pick from 'lodash/pick';
5
- import omit from 'lodash/omit';
6
5
  import isFunction from 'lodash/isFunction';
7
6
  import isNil from 'lodash/isNil';
8
7
  import TreeView from "../MultiCascadeTree/TreeView.js";
9
8
  import SearchView from "../MultiCascadeTree/SearchView.js";
10
- import Box from "../internals/Box/index.js";
11
9
  import useActive from "../Cascader/useActive.js";
12
10
  import { findNodeOfTree } from "../internals/Tree/utils/index.js";
13
11
  import { useStyles, useControlled, useEventCallback } from "../internals/hooks/index.js";
@@ -15,7 +13,7 @@ import { getColumnsAndPaths } from "../CascadeTree/utils.js";
15
13
  import { forwardRef, createChainedFunction, mergeRefs } from "../internals/utils/index.js";
16
14
  import { useCascadeValue, useSearch, useSelect } from "../MultiCascadeTree/hooks/index.js";
17
15
  import { useCustom } from "../CustomProvider/index.js";
18
- import { PickerToggle, PickerPopup, SelectedElement, PickerToggleTrigger, usePickerClassName, usePickerRef, useToggleKeyDownEvent, useFocusItemValue, pickTriggerPropKeys, omitTriggerPropKeys } from "../internals/Picker/index.js";
16
+ import { PickerToggle, PickerPopup, SelectedElement, PickerToggleTrigger, usePickerRef, useToggleKeyDownEvent, useFocusItemValue, triggerPropKeys } from "../internals/Picker/index.js";
19
17
  const emptyArray = [];
20
18
 
21
19
  /**
@@ -31,42 +29,44 @@ const MultiCascader = forwardRef((props, ref) => {
31
29
  const {
32
30
  as,
33
31
  appearance = 'default',
32
+ block,
33
+ className,
34
+ cleanable = true,
34
35
  classPrefix = 'picker',
35
- defaultValue,
36
36
  columnHeight,
37
37
  columnWidth,
38
38
  childrenKey = 'children',
39
- cleanable = true,
39
+ countable = true,
40
+ cascade = true,
40
41
  data = emptyArray,
42
+ defaultValue,
41
43
  disabled,
42
44
  disabledItemValues = emptyArray,
43
- value: valueProp,
44
- valueKey = 'value',
45
+ id,
45
46
  labelKey = 'label',
46
47
  locale,
47
- toggleAs,
48
- style,
49
- countable = true,
50
- cascade = true,
51
48
  placeholder,
52
49
  placement = 'bottomStart',
53
50
  popupClassName,
54
51
  popupStyle,
52
+ renderColumn,
53
+ renderExtraFooter,
54
+ renderTreeNode,
55
+ renderValue,
55
56
  searchable = true,
57
+ style,
58
+ toggleAs,
56
59
  uncheckableItemValues = emptyArray,
57
- id,
60
+ value: valueProp,
61
+ valueKey = 'value',
58
62
  getChildren,
59
- renderValue,
60
- renderExtraFooter,
61
- renderColumn,
62
- renderTreeNode,
63
- onEntered,
64
- onExited,
65
63
  onClean,
66
- onSearch,
67
- onSelect,
68
64
  onChange,
69
65
  onCheck,
66
+ onEnter,
67
+ onExit,
68
+ onSearch,
69
+ onSelect,
70
70
  ...rest
71
71
  } = propsWithDefaults;
72
72
  const {
@@ -170,11 +170,10 @@ const MultiCascader = forwardRef((props, ref) => {
170
170
  });
171
171
  const {
172
172
  active,
173
- handleEntered,
174
- handleExited
173
+ events
175
174
  } = useActive({
176
- onEntered,
177
- onExited,
175
+ onEnter,
176
+ onExit,
178
177
  target,
179
178
  setSearchKeyword
180
179
  });
@@ -288,43 +287,41 @@ const MultiCascader = forwardRef((props, ref) => {
288
287
  hasValue = false;
289
288
  }
290
289
  }
291
- const [classes, usedClassNamePropKeys] = usePickerClassName({
292
- ...props,
293
- classPrefix,
294
- hasValue,
295
- countable,
296
- name: 'cascader',
297
- appearance,
298
- cleanable
299
- });
290
+ const triggerProps = {
291
+ ...pick(props, triggerPropKeys),
292
+ ...events
293
+ };
300
294
  return /*#__PURE__*/React.createElement(PickerToggleTrigger, {
295
+ as: as,
301
296
  id: id,
297
+ name: "multi-cascader",
298
+ block: block,
299
+ disabled: disabled,
300
+ appearance: appearance,
302
301
  popupType: "tree",
303
302
  multiple: true,
304
- pickerProps: pick(props, pickTriggerPropKeys),
303
+ triggerProps: triggerProps,
305
304
  ref: trigger,
306
305
  placement: placement,
307
- onEnter: handleEntered,
308
- onExited: handleExited,
309
- speaker: renderTreeView
310
- }, /*#__PURE__*/React.createElement(Box, {
311
- as: as,
312
- className: classes,
306
+ speaker: renderTreeView,
307
+ rootRef: root,
313
308
  style: style,
314
- ref: root
315
- }, /*#__PURE__*/React.createElement(PickerToggle, _extends({}, omit(rest, [...omitTriggerPropKeys, ...usedClassNamePropKeys]), {
309
+ classPrefix: classPrefix,
310
+ className: className
311
+ }, /*#__PURE__*/React.createElement(PickerToggle, _extends({
312
+ ref: target,
316
313
  as: toggleAs,
317
314
  appearance: appearance,
318
315
  disabled: disabled,
319
- ref: target,
320
316
  onClean: createChainedFunction(handleClean, onClean),
321
317
  onKeyDown: onPickerKeyDown,
322
318
  cleanable: cleanable && !disabled,
319
+ countable: countable,
323
320
  hasValue: hasValue,
324
321
  active: active,
325
322
  placement: placement,
326
323
  inputValue: value
327
- }), selectedElement || (locale === null || locale === void 0 ? void 0 : locale.placeholder))));
324
+ }, rest), selectedElement || (locale === null || locale === void 0 ? void 0 : locale.placeholder)));
328
325
  });
329
326
  MultiCascader.displayName = 'MultiCascader';
330
327
  export default MultiCascader;
@@ -4,7 +4,7 @@ import React, { useCallback, useContext } from 'react';
4
4
  import classNames from 'classnames';
5
5
  import isNil from 'lodash/isNil';
6
6
  import Ripple from "../internals/Ripple/index.js";
7
- import SafeAnchor from "../SafeAnchor/index.js";
7
+ import SafeAnchor from "../internals/SafeAnchor/index.js";
8
8
  import NavContext from "./NavContext.js";
9
9
  import Box from "../internals/Box/index.js";
10
10
  import { useStyles } from "../internals/hooks/index.js";
@@ -1,5 +1,10 @@
1
1
  import React from 'react';
2
2
  import { NavbarMegaMenuProps } from '../Navbar/NavbarMegaMenu';
3
3
  export type NavMegaMenuProps = NavbarMegaMenuProps;
4
+ /**
5
+ * The `Nav.MegaMenu` component is used to create a mega menu.
6
+ * @see https://rsuitejs.com/components/navbar/#mega-menu
7
+ * @version 6.0.0
8
+ */
4
9
  declare const NavMegaMenu: React.ForwardRefExoticComponent<NavbarMegaMenuProps & React.RefAttributes<any>>;
5
10
  export default NavMegaMenu;
@@ -3,6 +3,11 @@ import _extends from "@babel/runtime/helpers/esm/extends";
3
3
  import React, { useContext } from 'react';
4
4
  import NavbarMegaMenu from "../Navbar/NavbarMegaMenu.js";
5
5
  import { NavbarContext } from "../Navbar/index.js";
6
+ /**
7
+ * The `Nav.MegaMenu` component is used to create a mega menu.
8
+ * @see https://rsuitejs.com/components/navbar/#mega-menu
9
+ * @version 6.0.0
10
+ */
6
11
  const NavMegaMenu = /*#__PURE__*/React.forwardRef((props, ref) => {
7
12
  const navbar = useContext(NavbarContext);
8
13
  if (!navbar) {
@@ -4,7 +4,7 @@ import React, { useCallback, useContext } from 'react';
4
4
  import classNames from 'classnames';
5
5
  import isNil from 'lodash/isNil';
6
6
  import NavContext from "../Nav/NavContext.js";
7
- import SafeAnchor from "../SafeAnchor/index.js";
7
+ import SafeAnchor from "../internals/SafeAnchor/index.js";
8
8
  import Ripple from "../internals/Ripple/index.js";
9
9
  import Box from "../internals/Box/index.js";
10
10
  import { useStyles } from "../internals/hooks/index.js";
@@ -27,7 +27,7 @@ const NavbarMegaMenu = /*#__PURE__*/React.forwardRef((props, ref) => {
27
27
  const {
28
28
  onClose,
29
29
  className
30
- } = menuProps;
30
+ } = menuProps || {};
31
31
  return /*#__PURE__*/React.createElement(Popover, {
32
32
  ref: ref,
33
33
  full: true,
@@ -0,0 +1,14 @@
1
+ import React from 'react';
2
+ import { InputProps } from '../Input';
3
+ export interface PasswordInputProps extends Omit<InputProps, 'type' | 'plaintext'> {
4
+ /** Controls whether the password is visible */
5
+ visible?: boolean;
6
+ /** Default visibility state of the password */
7
+ defaultVisible?: boolean;
8
+ /** Custom icon for visibility toggle */
9
+ renderVisibilityIcon?: (visible: boolean) => React.ReactNode;
10
+ /** Callback function triggered when the password visibility changes */
11
+ onVisibleChange?: (visible: boolean) => void;
12
+ }
13
+ declare const PasswordInput: import("../internals/types").InternalRefForwardingComponent<"input", PasswordInputProps, never> & Record<string, never>;
14
+ export default PasswordInput;
@@ -0,0 +1,66 @@
1
+ 'use client';
2
+ import _extends from "@babel/runtime/helpers/esm/extends";
3
+ import React from 'react';
4
+ import Input from "../Input/index.js";
5
+ import InputGroup from "../InputGroup/index.js";
6
+ import EyeCloseIcon from '@rsuite/icons/EyeClose';
7
+ import VisibleIcon from '@rsuite/icons/Visible';
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";
11
+ const PasswordInput = forwardRef((props, ref) => {
12
+ const {
13
+ propsWithDefaults
14
+ } = useCustom('PasswordInput', props);
15
+ const {
16
+ classPrefix = 'password-input',
17
+ className,
18
+ visible: controlVisible,
19
+ size,
20
+ defaultVisible,
21
+ value,
22
+ defaultValue,
23
+ placeholder,
24
+ id,
25
+ name,
26
+ readOnly,
27
+ inputRef,
28
+ onChange,
29
+ onVisibleChange,
30
+ renderVisibilityIcon,
31
+ ...rest
32
+ } = propsWithDefaults;
33
+ const {
34
+ withPrefix,
35
+ merge
36
+ } = useStyles(classPrefix);
37
+ const [visible, setVisible] = useControlled(controlVisible, defaultVisible);
38
+ const classes = merge(className, withPrefix());
39
+ const handleToggleVisibility = useEventCallback(() => {
40
+ setVisible(!visible);
41
+ onVisibleChange === null || onVisibleChange === void 0 || onVisibleChange(!visible);
42
+ });
43
+ return /*#__PURE__*/React.createElement(InputGroup, _extends({
44
+ inside: true,
45
+ ref: ref,
46
+ size: size,
47
+ className: classes
48
+ }, rest), /*#__PURE__*/React.createElement(Input, {
49
+ type: visible ? 'text' : 'password',
50
+ value: value,
51
+ defaultValue: defaultValue,
52
+ onChange: onChange,
53
+ autoComplete: "off",
54
+ placeholder: placeholder,
55
+ readOnly: readOnly,
56
+ name: name,
57
+ id: id,
58
+ inputRef: inputRef
59
+ }), /*#__PURE__*/React.createElement(InputGroup.Button, {
60
+ tabIndex: -1,
61
+ onClick: handleToggleVisibility,
62
+ "aria-label": "Toggle password visibility"
63
+ }, (renderVisibilityIcon === null || renderVisibilityIcon === void 0 ? void 0 : renderVisibilityIcon(visible !== null && visible !== void 0 ? visible : false)) || (visible ? /*#__PURE__*/React.createElement(EyeCloseIcon, null) : /*#__PURE__*/React.createElement(VisibleIcon, null))));
64
+ });
65
+ PasswordInput.displayName = 'PasswordInput';
66
+ export default PasswordInput;
@@ -0,0 +1,4 @@
1
+ import PasswordInput from './PasswordInput';
2
+ export type { PasswordInputProps } from './PasswordInput';
3
+ export { PasswordInput };
4
+ export default PasswordInput;
@@ -0,0 +1,8 @@
1
+ 'use client';
2
+ import PasswordInput from "./PasswordInput.js";
3
+
4
+ // export types
5
+
6
+ // export components
7
+ export { PasswordInput };
8
+ export default PasswordInput;
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ import { BoxProps } from '../internals/Box';
3
+ export interface PasswordStrengthMeterProps extends BoxProps {
4
+ /** The strength level of the password (0-3) */
5
+ level?: 0 | 1 | 2 | 3;
6
+ /** Label to display below the strength meter */
7
+ label?: React.ReactNode;
8
+ /** Maximum number of segments in the strength meter */
9
+ max?: number;
10
+ }
11
+ declare const PasswordStrengthMeter: import("../internals/types").InternalRefForwardingComponent<"div", PasswordStrengthMeterProps, never> & Record<string, never>;
12
+ export default PasswordStrengthMeter;
@@ -0,0 +1,45 @@
1
+ 'use client';
2
+ import _extends from "@babel/runtime/helpers/esm/extends";
3
+ import React from 'react';
4
+ import Box from "../internals/Box/index.js";
5
+ import Text from "../Text/index.js";
6
+ import { forwardRef } from "../internals/utils/index.js";
7
+ import { useStyles } from "../internals/hooks/index.js";
8
+ import { useCustom } from "../CustomProvider/index.js";
9
+ const PasswordStrengthMeter = forwardRef((props, ref) => {
10
+ const {
11
+ propsWithDefaults
12
+ } = useCustom('PasswordStrengthMeter', props);
13
+ const {
14
+ classPrefix = 'password-strength-meter',
15
+ className,
16
+ level = 0,
17
+ max = 4,
18
+ label,
19
+ ...rest
20
+ } = propsWithDefaults;
21
+ const {
22
+ withPrefix,
23
+ merge,
24
+ prefix
25
+ } = useStyles(classPrefix);
26
+ const classes = merge(className, withPrefix());
27
+ return /*#__PURE__*/React.createElement(Box, _extends({
28
+ ref: ref,
29
+ className: classes
30
+ }, rest), /*#__PURE__*/React.createElement("div", {
31
+ className: prefix('bar')
32
+ }, [...Array.from({
33
+ length: max
34
+ })].map((_, idx) => /*#__PURE__*/React.createElement("div", {
35
+ key: idx,
36
+ "data-active": idx <= level,
37
+ className: prefix('segment')
38
+ }))), label && /*#__PURE__*/React.createElement(Text, {
39
+ as: "span",
40
+ muted: true,
41
+ size: "xs"
42
+ }, label));
43
+ });
44
+ PasswordStrengthMeter.displayName = 'PasswordStrengthMeter';
45
+ export default PasswordStrengthMeter;
@@ -0,0 +1,4 @@
1
+ import PasswordStrengthMeter from './PasswordStrengthMeter';
2
+ export type { PasswordStrengthMeterProps } from './PasswordStrengthMeter';
3
+ export { PasswordStrengthMeter };
4
+ export default PasswordStrengthMeter;
@@ -0,0 +1,8 @@
1
+ 'use client';
2
+ import PasswordStrengthMeter from "./PasswordStrengthMeter.js";
3
+
4
+ // export types
5
+
6
+ // export components
7
+ export { PasswordStrengthMeter };
8
+ export default PasswordStrengthMeter;