rsuite 5.60.2 → 5.61.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (438) hide show
  1. package/Accordion/styles/index.css +4 -4
  2. package/AutoComplete/styles/index.css +58 -22
  3. package/Button/styles/index.css +12 -8
  4. package/Button/styles/mixin.less +1 -1
  5. package/CHANGELOG.md +25 -0
  6. package/Calendar/styles/index.css +16 -15
  7. package/CascadeTree/styles/index.css +11 -9
  8. package/CascadeTree/styles/index.less +7 -0
  9. package/CascadeTree/styles/search.less +0 -10
  10. package/Cascader/styles/index.css +60 -31
  11. package/CheckPicker/styles/index.css +59 -27
  12. package/CheckPicker/styles/index.less +3 -3
  13. package/CheckTree/styles/index.css +160 -134
  14. package/CheckTree/styles/index.less +141 -1
  15. package/CheckTreePicker/styles/index.css +170 -126
  16. package/CheckTreePicker/styles/index.less +8 -181
  17. package/Checkbox/styles/index.css +7 -8
  18. package/Checkbox/styles/index.less +1 -5
  19. package/DateInput/styles/index.css +4 -4
  20. package/DatePicker/styles/index.css +62 -26
  21. package/DateRangeInput/styles/index.css +4 -4
  22. package/DateRangePicker/styles/index.css +67 -26
  23. package/DateRangePicker/styles/index.less +2 -0
  24. package/Dropdown/styles/index.css +14 -13
  25. package/Highlight/package.json +7 -0
  26. package/Highlight/styles/index.css +8 -0
  27. package/Highlight/styles/index.less +6 -0
  28. package/IconButton/styles/index.css +11 -10
  29. package/Input/styles/index.css +4 -4
  30. package/InputGroup/styles/index.css +18 -17
  31. package/InputGroup/styles/index.less +1 -1
  32. package/InputNumber/styles/index.css +19 -18
  33. package/InputPicker/styles/index.css +58 -22
  34. package/MultiCascadeTree/styles/index.css +61 -36
  35. package/MultiCascadeTree/styles/index.less +1 -1
  36. package/MultiCascader/styles/index.css +704 -679
  37. package/MultiCascader/styles/index.less +0 -1
  38. package/Nav/styles/index.css +15 -14
  39. package/Navbar/styles/index.css +14 -13
  40. package/Pagination/styles/index.css +62 -26
  41. package/Panel/styles/index.css +4 -4
  42. package/Placeholder/styles/index.css +2 -3
  43. package/Placeholder/styles/index.less +2 -3
  44. package/README.md +21 -39
  45. package/Radio/styles/index.css +7 -7
  46. package/Radio/styles/index.less +1 -5
  47. package/RangeSlider/styles/index.css +1 -1
  48. package/Rate/styles/index.css +1 -1
  49. package/Rate/styles/index.less +1 -1
  50. package/SelectPicker/styles/index.css +58 -22
  51. package/Slider/styles/index.css +1 -1
  52. package/Slider/styles/index.less +1 -1
  53. package/Steps/styles/index.css +6 -1
  54. package/Steps/styles/index.less +2 -1
  55. package/Tabs/styles/index.css +15 -14
  56. package/TagInput/styles/index.css +59 -27
  57. package/TagPicker/styles/index.css +59 -27
  58. package/Toggle/styles/index.css +10 -7
  59. package/Tree/styles/indent-line.less +8 -0
  60. package/Tree/styles/index.css +140 -141
  61. package/Tree/styles/index.less +188 -1
  62. package/Tree/styles/toggle.less +36 -0
  63. package/TreePicker/styles/index.css +142 -134
  64. package/TreePicker/styles/index.less +4 -234
  65. package/Uploader/styles/index.css +12 -11
  66. package/cjs/@types/common.d.ts +41 -4
  67. package/cjs/AutoComplete/AutoComplete.js +2 -1
  68. package/cjs/CascadeTree/CascadeTree.js +8 -7
  69. package/cjs/CascadeTree/SearchView.js +7 -14
  70. package/cjs/CascadeTree/hooks/usePaths.js +4 -4
  71. package/cjs/CascadeTree/hooks/useSearch.js +2 -1
  72. package/cjs/CascadeTree/utils.d.ts +0 -11
  73. package/cjs/CascadeTree/utils.js +0 -23
  74. package/cjs/Cascader/Cascader.js +17 -16
  75. package/cjs/CheckPicker/CheckPicker.js +26 -29
  76. package/cjs/CheckTree/CheckTree.d.ts +16 -0
  77. package/cjs/CheckTree/CheckTree.js +112 -0
  78. package/cjs/CheckTree/CheckTreeNode.d.ts +72 -0
  79. package/cjs/CheckTree/CheckTreeNode.js +117 -0
  80. package/cjs/CheckTree/CheckTreeView.d.ts +70 -0
  81. package/cjs/CheckTree/CheckTreeView.js +310 -0
  82. package/cjs/CheckTree/hooks/useTreeCheckState.d.ts +10 -0
  83. package/cjs/CheckTree/hooks/useTreeCheckState.js +93 -0
  84. package/cjs/CheckTree/hooks/useTreeNodeProps.d.ts +22 -0
  85. package/cjs/CheckTree/hooks/useTreeNodeProps.js +59 -0
  86. package/cjs/CheckTree/hooks/useTreeValue.d.ts +5 -0
  87. package/cjs/CheckTree/hooks/useTreeValue.js +21 -0
  88. package/cjs/CheckTree/index.d.ts +2 -14
  89. package/cjs/CheckTree/index.js +2 -23
  90. package/cjs/CheckTree/utils.d.ts +53 -0
  91. package/cjs/{CheckTreePicker → CheckTree}/utils.js +76 -26
  92. package/cjs/CheckTreePicker/CheckTreePicker.d.ts +30 -12
  93. package/cjs/CheckTreePicker/CheckTreePicker.js +153 -603
  94. package/cjs/CheckTreePicker/hooks/useFocusState.d.ts +16 -0
  95. package/cjs/CheckTreePicker/hooks/useFocusState.js +42 -0
  96. package/cjs/DatePicker/DatePicker.d.ts +4 -0
  97. package/cjs/DatePicker/DatePicker.js +20 -5
  98. package/cjs/DatePicker/types.d.ts +0 -4
  99. package/cjs/DateRangePicker/DateRangePicker.d.ts +51 -23
  100. package/cjs/DateRangePicker/DateRangePicker.js +71 -51
  101. package/cjs/DateRangePicker/hooks/useDateDisabled.d.ts +16 -0
  102. package/cjs/DateRangePicker/hooks/useDateDisabled.js +31 -0
  103. package/cjs/DateRangePicker/types.d.ts +1 -0
  104. package/cjs/Highlight/Highlight.d.ts +14 -0
  105. package/cjs/Highlight/Highlight.js +58 -0
  106. package/cjs/Highlight/index.d.ts +3 -0
  107. package/cjs/Highlight/index.js +9 -0
  108. package/cjs/Highlight/utils/highlightText.d.ts +5 -0
  109. package/cjs/Highlight/utils/highlightText.js +29 -0
  110. package/cjs/InputPicker/InputPicker.js +37 -41
  111. package/cjs/MultiCascadeTree/SearchView.js +6 -14
  112. package/cjs/MultiCascadeTree/hooks/useCascadeValue.js +15 -1
  113. package/cjs/MultiCascadeTree/hooks/useColumnData.js +2 -2
  114. package/cjs/MultiCascadeTree/hooks/useFlattenData.js +3 -3
  115. package/cjs/MultiCascadeTree/hooks/useSearch.js +2 -1
  116. package/cjs/MultiCascadeTree/utils.d.ts +4 -4
  117. package/cjs/MultiCascadeTree/utils.js +20 -11
  118. package/cjs/MultiCascader/MultiCascader.js +12 -12
  119. package/cjs/SelectPicker/SelectPicker.js +2 -6
  120. package/cjs/Tree/IndentLine.d.ts +3 -0
  121. package/cjs/Tree/IndentLine.js +18 -0
  122. package/cjs/Tree/Tree.d.ts +4 -92
  123. package/cjs/Tree/Tree.js +79 -20
  124. package/cjs/Tree/TreeNode.d.ts +101 -0
  125. package/cjs/Tree/TreeNode.js +147 -0
  126. package/cjs/Tree/TreeNodeToggle.d.ts +9 -0
  127. package/cjs/Tree/TreeNodeToggle.js +56 -0
  128. package/cjs/Tree/TreeProvider.d.ts +52 -0
  129. package/cjs/Tree/TreeProvider.js +84 -0
  130. package/cjs/Tree/TreeView.d.ts +68 -0
  131. package/cjs/Tree/TreeView.js +305 -0
  132. package/cjs/Tree/hooks/useExpandTree.d.ts +60 -0
  133. package/cjs/Tree/hooks/useExpandTree.js +77 -0
  134. package/cjs/Tree/hooks/useFlattenTree.d.ts +42 -0
  135. package/cjs/Tree/hooks/useFlattenTree.js +98 -0
  136. package/cjs/Tree/hooks/useFocusTree.d.ts +24 -0
  137. package/cjs/Tree/hooks/useFocusTree.js +158 -0
  138. package/cjs/Tree/hooks/useForceUpdate.d.ts +2 -0
  139. package/cjs/Tree/hooks/useForceUpdate.js +16 -0
  140. package/cjs/Tree/hooks/useTreeDrag.d.ts +32 -0
  141. package/cjs/Tree/hooks/useTreeDrag.js +268 -0
  142. package/cjs/Tree/hooks/useTreeNodeProps.d.ts +29 -0
  143. package/cjs/Tree/hooks/useTreeNodeProps.js +83 -0
  144. package/cjs/Tree/hooks/useTreeNodeRefs.d.ts +6 -0
  145. package/cjs/Tree/hooks/useTreeNodeRefs.js +22 -0
  146. package/cjs/Tree/hooks/useTreeSearch.d.ts +18 -0
  147. package/cjs/Tree/hooks/useTreeSearch.js +74 -0
  148. package/cjs/Tree/hooks/useTreeWithChildren.d.ts +14 -0
  149. package/cjs/Tree/hooks/useTreeWithChildren.js +64 -0
  150. package/cjs/Tree/hooks/useVirtualizedTreeData.d.ts +7 -0
  151. package/cjs/Tree/hooks/useVirtualizedTreeData.js +82 -0
  152. package/cjs/Tree/types.d.ts +257 -0
  153. package/cjs/Tree/types.js +33 -0
  154. package/cjs/Tree/utils/flattenTree.d.ts +25 -0
  155. package/cjs/Tree/utils/flattenTree.js +95 -0
  156. package/cjs/Tree/utils/focusableTree.d.ts +55 -0
  157. package/cjs/Tree/utils/focusableTree.js +157 -0
  158. package/cjs/Tree/utils/formatNodeRefKey.d.ts +4 -0
  159. package/cjs/Tree/utils/formatNodeRefKey.js +11 -0
  160. package/cjs/Tree/utils/getExpandItemValues.d.ts +11 -0
  161. package/cjs/Tree/utils/getExpandItemValues.js +21 -0
  162. package/cjs/Tree/utils/getNodeParentKeys.d.ts +5 -0
  163. package/cjs/Tree/utils/getNodeParentKeys.js +21 -0
  164. package/cjs/Tree/utils/getTreeActiveNode.d.ts +5 -0
  165. package/cjs/Tree/utils/getTreeActiveNode.js +21 -0
  166. package/cjs/Tree/utils/hasVisibleChildren.d.ts +5 -0
  167. package/cjs/Tree/utils/hasVisibleChildren.js +16 -0
  168. package/cjs/Tree/utils/indentTreeNode.d.ts +3 -0
  169. package/cjs/Tree/utils/indentTreeNode.js +18 -0
  170. package/cjs/Tree/utils/index.d.ts +11 -0
  171. package/cjs/Tree/utils/index.js +35 -0
  172. package/cjs/Tree/utils/isExpand.d.ts +6 -0
  173. package/cjs/Tree/utils/isExpand.js +14 -0
  174. package/cjs/Tree/utils/isSearching.d.ts +1 -0
  175. package/cjs/Tree/utils/isSearching.js +10 -0
  176. package/cjs/Tree/utils/treeKeyboardInteractions.d.ts +21 -0
  177. package/cjs/Tree/utils/treeKeyboardInteractions.js +49 -0
  178. package/cjs/TreePicker/TreePicker.d.ts +27 -21
  179. package/cjs/TreePicker/TreePicker.js +155 -575
  180. package/cjs/TreePicker/hooks/useFocusState.d.ts +20 -0
  181. package/cjs/TreePicker/hooks/useFocusState.js +53 -0
  182. package/cjs/index.d.ts +2 -0
  183. package/cjs/index.js +3 -1
  184. package/cjs/internals/Picker/Listbox.d.ts +40 -10
  185. package/cjs/internals/Picker/Listbox.js +21 -16
  186. package/cjs/internals/Picker/PickerIndicator.d.ts +2 -1
  187. package/cjs/internals/Picker/PickerIndicator.js +7 -3
  188. package/cjs/internals/Picker/hooks/useFocusItemValue.js +4 -4
  189. package/cjs/internals/Picker/hooks/usePickerRef.d.ts +1 -4
  190. package/cjs/internals/Picker/hooks/usePickerRef.js +3 -20
  191. package/cjs/internals/Picker/index.d.ts +0 -1
  192. package/cjs/internals/Picker/index.js +1 -4
  193. package/cjs/internals/Picker/utils.js +12 -12
  194. package/cjs/internals/{Picker → Tree}/TreeView.js +1 -1
  195. package/cjs/internals/Tree/index.d.ts +1 -0
  196. package/cjs/internals/Tree/index.js +8 -0
  197. package/cjs/internals/Tree/utils/filterNodesOfTree.d.ts +5 -0
  198. package/cjs/internals/Tree/utils/filterNodesOfTree.js +31 -0
  199. package/cjs/internals/Tree/utils/findNodeOfTree.d.ts +1 -0
  200. package/cjs/internals/Tree/utils/findNodeOfTree.js +26 -0
  201. package/cjs/internals/Tree/utils/getParentMap.d.ts +15 -0
  202. package/cjs/internals/Tree/utils/getParentMap.js +52 -0
  203. package/cjs/internals/Tree/utils/getPathTowardsItem.d.ts +4 -0
  204. package/cjs/internals/Tree/utils/getPathTowardsItem.js +16 -0
  205. package/cjs/internals/Tree/utils/index.d.ts +4 -0
  206. package/cjs/internals/Tree/utils/index.js +14 -0
  207. package/cjs/internals/Windowing/List.d.ts +1 -0
  208. package/cjs/internals/Windowing/List.js +5 -1
  209. package/cjs/internals/Windowing/index.d.ts +1 -1
  210. package/cjs/internals/Windowing/index.js +4 -2
  211. package/cjs/internals/hooks/index.d.ts +1 -0
  212. package/cjs/internals/hooks/index.js +8 -0
  213. package/cjs/internals/hooks/useFoucsVirtualListItem.d.ts +7 -0
  214. package/cjs/internals/hooks/useFoucsVirtualListItem.js +26 -0
  215. package/cjs/{utils → internals/utils}/getSafeRegExpString.d.ts +1 -1
  216. package/cjs/{utils → internals/utils}/getSafeRegExpString.js +1 -1
  217. package/cjs/internals/utils/index.d.ts +2 -0
  218. package/cjs/internals/utils/index.js +9 -0
  219. package/cjs/internals/utils/stringifyReactNode.d.ts +2 -0
  220. package/cjs/internals/utils/stringifyReactNode.js +17 -0
  221. package/cjs/utils/constants.d.ts +0 -2
  222. package/cjs/utils/constants.js +1 -6
  223. package/cjs/utils/getDataGroupBy.js +3 -3
  224. package/cjs/utils/index.d.ts +0 -3
  225. package/cjs/utils/index.js +1 -10
  226. package/cjs/utils/useIsomorphicLayoutEffect.d.ts +2 -2
  227. package/dist/rsuite-no-reset-rtl.css +292 -300
  228. package/dist/rsuite-no-reset-rtl.min.css +1 -1
  229. package/dist/rsuite-no-reset-rtl.min.css.map +1 -1
  230. package/dist/rsuite-no-reset.css +294 -304
  231. package/dist/rsuite-no-reset.min.css +1 -1
  232. package/dist/rsuite-no-reset.min.css.map +1 -1
  233. package/dist/rsuite-rtl.css +293 -301
  234. package/dist/rsuite-rtl.min.css +1 -1
  235. package/dist/rsuite-rtl.min.css.map +1 -1
  236. package/dist/rsuite.css +295 -305
  237. package/dist/rsuite.js +611 -116
  238. package/dist/rsuite.js.map +1 -1
  239. package/dist/rsuite.min.css +1 -1
  240. package/dist/rsuite.min.css.map +1 -1
  241. package/dist/rsuite.min.js +1 -1
  242. package/dist/rsuite.min.js.map +1 -1
  243. package/esm/@types/common.d.ts +41 -4
  244. package/esm/AutoComplete/AutoComplete.js +2 -1
  245. package/esm/CascadeTree/CascadeTree.js +2 -1
  246. package/esm/CascadeTree/SearchView.js +6 -13
  247. package/esm/CascadeTree/hooks/usePaths.js +1 -1
  248. package/esm/CascadeTree/hooks/useSearch.js +2 -1
  249. package/esm/CascadeTree/utils.d.ts +0 -11
  250. package/esm/CascadeTree/utils.js +0 -22
  251. package/esm/Cascader/Cascader.js +2 -1
  252. package/esm/CheckPicker/CheckPicker.js +4 -7
  253. package/esm/CheckTree/CheckTree.d.ts +16 -0
  254. package/esm/CheckTree/CheckTree.js +105 -0
  255. package/esm/CheckTree/CheckTreeNode.d.ts +72 -0
  256. package/esm/CheckTree/CheckTreeNode.js +110 -0
  257. package/esm/CheckTree/CheckTreeView.d.ts +70 -0
  258. package/esm/CheckTree/CheckTreeView.js +304 -0
  259. package/esm/CheckTree/hooks/useTreeCheckState.d.ts +10 -0
  260. package/esm/CheckTree/hooks/useTreeCheckState.js +87 -0
  261. package/esm/CheckTree/hooks/useTreeNodeProps.d.ts +22 -0
  262. package/esm/CheckTree/hooks/useTreeNodeProps.js +52 -0
  263. package/esm/CheckTree/hooks/useTreeValue.d.ts +5 -0
  264. package/esm/CheckTree/hooks/useTreeValue.js +16 -0
  265. package/esm/CheckTree/index.d.ts +2 -14
  266. package/esm/CheckTree/index.js +1 -21
  267. package/esm/CheckTree/utils.d.ts +53 -0
  268. package/esm/{CheckTreePicker → CheckTree}/utils.js +72 -22
  269. package/esm/CheckTreePicker/CheckTreePicker.d.ts +30 -12
  270. package/esm/CheckTreePicker/CheckTreePicker.js +156 -607
  271. package/esm/CheckTreePicker/hooks/useFocusState.d.ts +16 -0
  272. package/esm/CheckTreePicker/hooks/useFocusState.js +37 -0
  273. package/esm/DatePicker/DatePicker.d.ts +4 -0
  274. package/esm/DatePicker/DatePicker.js +20 -5
  275. package/esm/DatePicker/types.d.ts +0 -4
  276. package/esm/DateRangePicker/DateRangePicker.d.ts +51 -23
  277. package/esm/DateRangePicker/DateRangePicker.js +71 -51
  278. package/esm/DateRangePicker/hooks/useDateDisabled.d.ts +16 -0
  279. package/esm/DateRangePicker/hooks/useDateDisabled.js +26 -0
  280. package/esm/DateRangePicker/types.d.ts +1 -0
  281. package/esm/Highlight/Highlight.d.ts +14 -0
  282. package/esm/Highlight/Highlight.js +52 -0
  283. package/esm/Highlight/index.d.ts +3 -0
  284. package/esm/Highlight/index.js +3 -0
  285. package/esm/Highlight/utils/highlightText.d.ts +5 -0
  286. package/esm/Highlight/utils/highlightText.js +25 -0
  287. package/esm/InputPicker/InputPicker.js +3 -7
  288. package/esm/MultiCascadeTree/SearchView.js +6 -14
  289. package/esm/MultiCascadeTree/hooks/useCascadeValue.js +15 -1
  290. package/esm/MultiCascadeTree/hooks/useColumnData.js +1 -1
  291. package/esm/MultiCascadeTree/hooks/useFlattenData.js +1 -1
  292. package/esm/MultiCascadeTree/hooks/useSearch.js +2 -1
  293. package/esm/MultiCascadeTree/utils.d.ts +4 -4
  294. package/esm/MultiCascadeTree/utils.js +18 -9
  295. package/esm/MultiCascader/MultiCascader.js +1 -1
  296. package/esm/SelectPicker/SelectPicker.js +2 -6
  297. package/esm/Tree/IndentLine.d.ts +3 -0
  298. package/esm/Tree/IndentLine.js +12 -0
  299. package/esm/Tree/Tree.d.ts +4 -92
  300. package/esm/Tree/Tree.js +78 -18
  301. package/esm/Tree/TreeNode.d.ts +101 -0
  302. package/esm/Tree/TreeNode.js +141 -0
  303. package/esm/Tree/TreeNodeToggle.d.ts +9 -0
  304. package/esm/Tree/TreeNodeToggle.js +50 -0
  305. package/esm/Tree/TreeProvider.d.ts +52 -0
  306. package/esm/Tree/TreeProvider.js +74 -0
  307. package/esm/Tree/TreeView.d.ts +68 -0
  308. package/esm/Tree/TreeView.js +299 -0
  309. package/esm/Tree/hooks/useExpandTree.d.ts +60 -0
  310. package/esm/Tree/hooks/useExpandTree.js +70 -0
  311. package/esm/Tree/hooks/useFlattenTree.d.ts +42 -0
  312. package/esm/Tree/hooks/useFlattenTree.js +92 -0
  313. package/esm/Tree/hooks/useFocusTree.d.ts +24 -0
  314. package/esm/Tree/hooks/useFocusTree.js +153 -0
  315. package/esm/Tree/hooks/useForceUpdate.d.ts +2 -0
  316. package/esm/Tree/hooks/useForceUpdate.js +11 -0
  317. package/esm/Tree/hooks/useTreeDrag.d.ts +32 -0
  318. package/esm/Tree/hooks/useTreeDrag.js +264 -0
  319. package/esm/Tree/hooks/useTreeNodeProps.d.ts +29 -0
  320. package/esm/Tree/hooks/useTreeNodeProps.js +76 -0
  321. package/esm/Tree/hooks/useTreeNodeRefs.d.ts +6 -0
  322. package/esm/Tree/hooks/useTreeNodeRefs.js +18 -0
  323. package/esm/Tree/hooks/useTreeSearch.d.ts +18 -0
  324. package/esm/Tree/hooks/useTreeSearch.js +69 -0
  325. package/esm/Tree/hooks/useTreeWithChildren.d.ts +14 -0
  326. package/esm/Tree/hooks/useTreeWithChildren.js +59 -0
  327. package/esm/Tree/hooks/useVirtualizedTreeData.d.ts +7 -0
  328. package/esm/Tree/hooks/useVirtualizedTreeData.js +77 -0
  329. package/esm/Tree/types.d.ts +257 -0
  330. package/esm/Tree/types.js +30 -0
  331. package/esm/Tree/utils/flattenTree.d.ts +25 -0
  332. package/esm/Tree/utils/flattenTree.js +88 -0
  333. package/esm/Tree/utils/focusableTree.d.ts +55 -0
  334. package/esm/Tree/utils/focusableTree.js +146 -0
  335. package/esm/Tree/utils/formatNodeRefKey.d.ts +4 -0
  336. package/esm/Tree/utils/formatNodeRefKey.js +7 -0
  337. package/esm/Tree/utils/getExpandItemValues.d.ts +11 -0
  338. package/esm/Tree/utils/getExpandItemValues.js +17 -0
  339. package/esm/Tree/utils/getNodeParentKeys.d.ts +5 -0
  340. package/esm/Tree/utils/getNodeParentKeys.js +17 -0
  341. package/esm/Tree/utils/getTreeActiveNode.d.ts +5 -0
  342. package/esm/Tree/utils/getTreeActiveNode.js +16 -0
  343. package/esm/Tree/utils/hasVisibleChildren.d.ts +5 -0
  344. package/esm/Tree/utils/hasVisibleChildren.js +12 -0
  345. package/esm/Tree/utils/indentTreeNode.d.ts +3 -0
  346. package/esm/Tree/utils/indentTreeNode.js +14 -0
  347. package/esm/Tree/utils/index.d.ts +11 -0
  348. package/esm/Tree/utils/index.js +14 -0
  349. package/esm/Tree/utils/isExpand.d.ts +6 -0
  350. package/esm/Tree/utils/isExpand.js +11 -0
  351. package/esm/Tree/utils/isSearching.d.ts +1 -0
  352. package/esm/Tree/utils/isSearching.js +5 -0
  353. package/esm/Tree/utils/treeKeyboardInteractions.d.ts +21 -0
  354. package/esm/Tree/utils/treeKeyboardInteractions.js +43 -0
  355. package/esm/TreePicker/TreePicker.d.ts +27 -21
  356. package/esm/TreePicker/TreePicker.js +158 -579
  357. package/esm/TreePicker/hooks/useFocusState.d.ts +20 -0
  358. package/esm/TreePicker/hooks/useFocusState.js +48 -0
  359. package/esm/index.d.ts +2 -0
  360. package/esm/index.js +1 -0
  361. package/esm/internals/Picker/Listbox.d.ts +40 -10
  362. package/esm/internals/Picker/Listbox.js +22 -16
  363. package/esm/internals/Picker/PickerIndicator.d.ts +2 -1
  364. package/esm/internals/Picker/PickerIndicator.js +7 -3
  365. package/esm/internals/Picker/hooks/useFocusItemValue.js +1 -1
  366. package/esm/internals/Picker/hooks/usePickerRef.d.ts +1 -4
  367. package/esm/internals/Picker/hooks/usePickerRef.js +3 -20
  368. package/esm/internals/Picker/index.d.ts +0 -1
  369. package/esm/internals/Picker/index.js +0 -1
  370. package/esm/internals/Picker/utils.js +1 -1
  371. package/esm/internals/{Picker → Tree}/TreeView.js +1 -1
  372. package/esm/internals/Tree/index.d.ts +1 -0
  373. package/esm/internals/Tree/index.js +2 -0
  374. package/esm/internals/Tree/utils/filterNodesOfTree.d.ts +5 -0
  375. package/esm/internals/Tree/utils/filterNodesOfTree.js +26 -0
  376. package/esm/internals/Tree/utils/findNodeOfTree.d.ts +1 -0
  377. package/esm/internals/Tree/utils/findNodeOfTree.js +22 -0
  378. package/esm/internals/Tree/utils/getParentMap.d.ts +15 -0
  379. package/esm/internals/Tree/utils/getParentMap.js +47 -0
  380. package/esm/internals/Tree/utils/getPathTowardsItem.d.ts +4 -0
  381. package/esm/internals/Tree/utils/getPathTowardsItem.js +12 -0
  382. package/esm/internals/Tree/utils/index.d.ts +4 -0
  383. package/esm/internals/Tree/utils/index.js +5 -0
  384. package/esm/internals/Windowing/List.d.ts +1 -0
  385. package/esm/internals/Windowing/List.js +3 -0
  386. package/esm/internals/Windowing/index.d.ts +1 -1
  387. package/esm/internals/Windowing/index.js +1 -1
  388. package/esm/internals/hooks/index.d.ts +1 -0
  389. package/esm/internals/hooks/index.js +2 -0
  390. package/esm/internals/hooks/useFoucsVirtualListItem.d.ts +7 -0
  391. package/esm/internals/hooks/useFoucsVirtualListItem.js +22 -0
  392. package/esm/{utils → internals/utils}/getSafeRegExpString.d.ts +1 -1
  393. package/esm/{utils → internals/utils}/getSafeRegExpString.js +1 -1
  394. package/esm/internals/utils/index.d.ts +2 -0
  395. package/esm/internals/utils/index.js +3 -0
  396. package/esm/internals/utils/stringifyReactNode.d.ts +2 -0
  397. package/esm/internals/utils/stringifyReactNode.js +12 -0
  398. package/esm/utils/constants.d.ts +0 -2
  399. package/esm/utils/constants.js +0 -3
  400. package/esm/utils/getDataGroupBy.js +1 -1
  401. package/esm/utils/index.d.ts +0 -3
  402. package/esm/utils/index.js +0 -3
  403. package/esm/utils/useIsomorphicLayoutEffect.d.ts +2 -2
  404. package/internals/Picker/styles/index.less +27 -1
  405. package/package.json +1 -1
  406. package/styles/color-modes/dark.less +5 -1
  407. package/styles/color-modes/high-contrast.less +8 -2
  408. package/styles/color-modes/light.less +10 -5
  409. package/styles/index.less +1 -0
  410. package/TreePicker/styles/mixin.less +0 -7
  411. package/cjs/CheckTreePicker/CheckTreeNode.d.ts +0 -28
  412. package/cjs/CheckTreePicker/CheckTreeNode.js +0 -140
  413. package/cjs/CheckTreePicker/utils.d.ts +0 -44
  414. package/cjs/Tree/TreeContext.d.ts +0 -6
  415. package/cjs/Tree/TreeContext.js +0 -10
  416. package/cjs/TreePicker/TreeNode.d.ts +0 -36
  417. package/cjs/TreePicker/TreeNode.js +0 -174
  418. package/cjs/utils/appendTooltip.d.ts +0 -10
  419. package/cjs/utils/appendTooltip.js +0 -20
  420. package/cjs/utils/stringToObject.d.ts +0 -2
  421. package/cjs/utils/stringToObject.js +0 -19
  422. package/cjs/utils/treeUtils.d.ts +0 -304
  423. package/cjs/utils/treeUtils.js +0 -1095
  424. package/esm/CheckTreePicker/CheckTreeNode.d.ts +0 -28
  425. package/esm/CheckTreePicker/CheckTreeNode.js +0 -133
  426. package/esm/CheckTreePicker/utils.d.ts +0 -44
  427. package/esm/Tree/TreeContext.d.ts +0 -6
  428. package/esm/Tree/TreeContext.js +0 -4
  429. package/esm/TreePicker/TreeNode.d.ts +0 -36
  430. package/esm/TreePicker/TreeNode.js +0 -167
  431. package/esm/utils/appendTooltip.d.ts +0 -10
  432. package/esm/utils/appendTooltip.js +0 -15
  433. package/esm/utils/stringToObject.d.ts +0 -2
  434. package/esm/utils/stringToObject.js +0 -14
  435. package/esm/utils/treeUtils.d.ts +0 -304
  436. package/esm/utils/treeUtils.js +0 -1043
  437. /package/cjs/internals/{Picker → Tree}/TreeView.d.ts +0 -0
  438. /package/esm/internals/{Picker → Tree}/TreeView.d.ts +0 -0
@@ -0,0 +1,16 @@
1
+ /// <reference types="react" />
2
+ interface FocusStateProps {
3
+ target: React.RefObject<HTMLElement>;
4
+ onEnter?: (node: HTMLElement) => void;
5
+ onExit?: (node: HTMLElement) => void;
6
+ }
7
+ declare function useFocusState(props: FocusStateProps): {
8
+ active: boolean;
9
+ focusItemValue: string | number | null | undefined;
10
+ setFocusItemValue: import("react").Dispatch<import("react").SetStateAction<string | number | null | undefined>>;
11
+ triggerProps: {
12
+ onEnter: (...args: any[]) => any;
13
+ onExit: (...args: any[]) => any;
14
+ };
15
+ };
16
+ export default useFocusState;
@@ -0,0 +1,42 @@
1
+ 'use client';
2
+ "use strict";
3
+
4
+ exports.__esModule = true;
5
+ exports.default = void 0;
6
+ var _react = require("react");
7
+ var _utils = require("../../utils");
8
+ function useFocusState(props) {
9
+ var target = props.target;
10
+ var _useState = (0, _react.useState)(false),
11
+ active = _useState[0],
12
+ setActive = _useState[1];
13
+ var _useState2 = (0, _react.useState)(null),
14
+ focusItemValue = _useState2[0],
15
+ setFocusItemValue = _useState2[1];
16
+ var focusTarget = (0, _utils.useEventCallback)(function () {
17
+ var _target$current;
18
+ (_target$current = target.current) === null || _target$current === void 0 ? void 0 : _target$current.focus();
19
+ });
20
+ var onEnter = (0, _utils.useEventCallback)(function (node) {
21
+ var _props$onEnter;
22
+ setActive(true);
23
+ (_props$onEnter = props.onEnter) === null || _props$onEnter === void 0 ? void 0 : _props$onEnter.call(props, node);
24
+ });
25
+ var onExit = (0, _utils.useEventCallback)(function (node) {
26
+ var _props$onExit;
27
+ setActive(false);
28
+ focusTarget();
29
+ (_props$onExit = props.onExit) === null || _props$onExit === void 0 ? void 0 : _props$onExit.call(props, node);
30
+ });
31
+ return {
32
+ active: active,
33
+ focusItemValue: focusItemValue,
34
+ setFocusItemValue: setFocusItemValue,
35
+ triggerProps: {
36
+ onEnter: onEnter,
37
+ onExit: onExit
38
+ }
39
+ };
40
+ }
41
+ var _default = useFocusState;
42
+ exports.default = _default;
@@ -82,6 +82,10 @@ export interface DatePickerProps extends PickerBaseProps<DatePickerLocale>, Form
82
82
  onShortcutClick?: (range: RangeType<Date>, event: React.MouseEvent) => void;
83
83
  /** Called when clean */
84
84
  onClean?: (event: React.MouseEvent) => void;
85
+ /**
86
+ * Custom rendering of the selected date.
87
+ */
88
+ renderValue?: (value: Date, format: string) => string;
85
89
  /**
86
90
  * Custom rendering calendar cell content.
87
91
  *
@@ -24,6 +24,7 @@ var _utils = require("../utils");
24
24
  var _dateUtils = require("../utils/dateUtils");
25
25
  var _Picker = require("../internals/Picker");
26
26
  var _OverlayTrigger = require("../internals/Overlay/OverlayTrigger");
27
+ var _Input = _interopRequireDefault(require("../Input"));
27
28
  var _DateInput = _interopRequireDefault(require("../DateInput"));
28
29
  var _InputGroup = _interopRequireDefault(require("../InputGroup"));
29
30
  var _utils2 = require("./utils");
@@ -94,11 +95,12 @@ var DatePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
94
95
  onToggleTimeDropdown = props.onToggleTimeDropdown,
95
96
  onShortcutClick = props.onShortcutClick,
96
97
  renderCell = props.renderCell,
98
+ renderValue = props.renderValue,
97
99
  DEPRECATED_disabledDate = props.disabledDate,
98
100
  DEPRECATED_disabledHours = props.disabledHours,
99
101
  DEPRECATED_disabledMinutes = props.disabledMinutes,
100
102
  DEPRECATED_disabledSeconds = props.disabledSeconds,
101
- restProps = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "className", "classPrefix", "calendarDefaultDate", "cleanable", "editable", "defaultValue", "disabled", "readOnly", "plaintext", "format", "id", "isoWeek", "limitEndYear", "limitStartYear", "locale", "loading", "label", "menuClassName", "menuStyle", "appearance", "placement", "oneTap", "placeholder", "ranges", "value", "showMeridian", "showWeekNumbers", "style", "size", "caretAs", "shouldDisableDate", "shouldDisableHour", "shouldDisableMinute", "shouldDisableSecond", "onChange", "onChangeCalendarDate", "onClean", "onEntered", "onExited", "onNextMonth", "onOk", "onPrevMonth", "onSelect", "onToggleMonthDropdown", "onToggleTimeDropdown", "onShortcutClick", "renderCell", "disabledDate", "disabledHours", "disabledMinutes", "disabledSeconds"]);
103
+ restProps = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "className", "classPrefix", "calendarDefaultDate", "cleanable", "editable", "defaultValue", "disabled", "readOnly", "plaintext", "format", "id", "isoWeek", "limitEndYear", "limitStartYear", "locale", "loading", "label", "menuClassName", "menuStyle", "appearance", "placement", "oneTap", "placeholder", "ranges", "value", "showMeridian", "showWeekNumbers", "style", "size", "caretAs", "shouldDisableDate", "shouldDisableHour", "shouldDisableMinute", "shouldDisableSecond", "onChange", "onChangeCalendarDate", "onClean", "onEntered", "onExited", "onNextMonth", "onOk", "onPrevMonth", "onSelect", "onToggleMonthDropdown", "onToggleTimeDropdown", "onShortcutClick", "renderCell", "renderValue", "disabledDate", "disabledHours", "disabledMinutes", "disabledSeconds"]);
102
104
  var id = (0, _utils.useUniqueId)('rs-', idProp);
103
105
  var _usePickerRef = (0, _Picker.usePickerRef)(ref),
104
106
  trigger = _usePickerRef.trigger,
@@ -463,6 +465,19 @@ var DatePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
463
465
  ariaProps = _partitionHTMLProps[0],
464
466
  rest = _partitionHTMLProps[1];
465
467
  var invalidValue = value && isErrorValue(value);
468
+
469
+ // Custom rendering of the selected value
470
+ var customValue = null;
471
+
472
+ // Input box is read-only when the component is uneditable or loading state
473
+ var inputReadOnly = readOnly || !editable || loading || false;
474
+ if (typeof renderValue === 'function' && value) {
475
+ customValue = renderValue(value, formatStr);
476
+
477
+ // If the custom rendering value, the input box is read-only
478
+ inputReadOnly = true;
479
+ }
480
+ var TargetInput = customValue ? _Input.default : _DateInput.default;
466
481
  return /*#__PURE__*/_react.default.createElement(_Picker.PickerToggleTrigger, {
467
482
  trigger: "active",
468
483
  pickerProps: (0, _pick.default)(props, _Picker.pickTriggerPropKeys),
@@ -483,24 +498,24 @@ var DatePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
483
498
  }) : /*#__PURE__*/_react.default.createElement(_InputGroup.default, (0, _extends2.default)({}, (0, _utils2.getRestProps)(rest, usedClassNamePropKeys), {
484
499
  inside: true,
485
500
  size: size,
501
+ disabled: disabled,
486
502
  onClick: handleClick
487
503
  }), /*#__PURE__*/_react.default.createElement(_Picker.PickerLabel, {
488
504
  className: prefix(_templateObject || (_templateObject = (0, _taggedTemplateLiteralLoose2.default)(["label"]))),
489
505
  id: id + "-label"
490
- }, label), /*#__PURE__*/_react.default.createElement(_DateInput.default, (0, _extends2.default)({
506
+ }, label), /*#__PURE__*/_react.default.createElement(TargetInput, (0, _extends2.default)({
491
507
  "aria-haspopup": "dialog",
492
508
  "aria-invalid": invalidValue,
493
509
  "aria-labelledby": label ? id + "-label" : undefined
494
510
  }, ariaProps, {
495
511
  ref: target,
496
512
  id: id,
497
- value: value,
513
+ value: customValue || value,
498
514
  format: formatStr,
499
515
  placeholder: placeholder ? placeholder : formatStr,
500
516
  disabled: disabled,
501
517
  onChange: handleInputChange,
502
- readOnly: readOnly || !editable || loading,
503
- plaintext: plaintext,
518
+ readOnly: inputReadOnly,
504
519
  onKeyDown: handleInputKeyDown
505
520
  })), /*#__PURE__*/_react.default.createElement(_Picker.PickerIndicator, {
506
521
  loading: loading,
@@ -41,8 +41,4 @@ export interface DeprecatedProps {
41
41
  * @deprecated Use {@link shouldDisableSecond} instead
42
42
  */
43
43
  disabledSeconds?: (second: number, date: Date) => boolean;
44
- /**
45
- * @deprecated
46
- */
47
- renderValue?: (value: Date, format: string) => string;
48
44
  }
@@ -4,33 +4,38 @@ import { DateRangePickerLocale } from '../locales';
4
4
  import { PickerComponent } from '../internals/Picker';
5
5
  import { DisabledDateFunction, RangeType, DateRange } from './types';
6
6
  export interface DateRangePickerProps extends PickerBaseProps<DateRangePickerLocale>, FormControlBaseProps<DateRange | null> {
7
- /** Custom caret component */
7
+ /**
8
+ * Custom caret component
9
+ */
8
10
  caretAs?: React.ElementType | null;
9
11
  /** Predefined date ranges */
10
12
  ranges?: RangeType[];
11
13
  /**
12
14
  * Format of the date displayed in the input box
13
- *
14
15
  * @default 'yyyy-MM-dd'
15
16
  */
16
17
  format?: string;
17
18
  /**
18
19
  * Rendered as an input, the date can be entered via the keyboard.
19
- *
20
20
  * @default true
21
21
  */
22
22
  editable?: boolean;
23
- /** The date range that will be selected when you click on the date */
23
+ /**
24
+ * The date range that will be selected when you click on the date
25
+ */
24
26
  hoverRange?: 'week' | 'month' | ((date: Date) => DateRange);
25
- /** Whether to click once on selected date range,Can be used with hoverRange */
27
+ /**
28
+ * Whether to click once on selected date range,Can be used with hoverRange
29
+ */
26
30
  oneTap?: boolean;
27
31
  /**
28
32
  * ISO 8601 standard, each calendar week begins on Monday and Sunday on the seventh day
29
- *
30
33
  * @see https://en.wikipedia.org/wiki/ISO_week_date
31
34
  */
32
35
  isoWeek?: boolean;
33
- /** A label displayed at the beginning of toggle button */
36
+ /**
37
+ * A label displayed at the beginning of toggle button
38
+ */
34
39
  label?: React.ReactNode;
35
40
  /**
36
41
  * Set the upper limit of the available year relative to the current selection date.
@@ -38,15 +43,25 @@ export interface DateRangePickerProps extends PickerBaseProps<DateRangePickerLoc
38
43
  * @default 1000
39
44
  */
40
45
  limitEndYear?: number;
41
- /** Set the lower limit of the available year relative to the current selection date */
46
+ /**
47
+ * Set the lower limit of the available year relative to the current selection date
48
+ */
42
49
  limitStartYear?: number;
43
- /** Whether to display a loading state indicator */
50
+ /**
51
+ * Whether to display a loading state indicator
52
+ */
44
53
  loading?: boolean;
45
- /** Whether to show week numbers */
54
+ /**
55
+ * to show week numbers
56
+ */
46
57
  showWeekNumbers?: boolean;
47
- /** Show only one calendar select */
58
+ /**
59
+ * Show only one calendar select
60
+ */
48
61
  showOneCalendar?: boolean;
49
- /** Meridian format */
62
+ /**
63
+ * Meridian format
64
+ */
50
65
  showMeridian?: boolean;
51
66
  /**
52
67
  * Whether to display the formatted date range at the header of the calendar
@@ -54,13 +69,17 @@ export interface DateRangePickerProps extends PickerBaseProps<DateRangePickerLoc
54
69
  * @version 5.52.0
55
70
  */
56
71
  showHeader?: boolean;
57
- /** Set default date for calendar */
72
+ /**
73
+ * Set default date for calendar
74
+ */
58
75
  defaultCalendarValue?: DateRange;
59
- /** The character that separates two dates */
76
+ /**
77
+ * The character that separates two dates
78
+ * @default ' ~ '
79
+ */
60
80
  character?: string;
61
81
  /**
62
82
  * Disabled date
63
- *
64
83
  * @deprecated Use {@link shouldDisableDate} instead
65
84
  */
66
85
  disabledDate?: DisabledDateFunction;
@@ -68,20 +87,29 @@ export interface DateRangePickerProps extends PickerBaseProps<DateRangePickerLoc
68
87
  * Whether a date cell is disabled
69
88
  */
70
89
  shouldDisableDate?: DisabledDateFunction;
71
- /** Called when the option is selected */
90
+ /**
91
+ * Called when the option is selected
92
+ */
72
93
  onSelect?: (date: Date, event?: React.SyntheticEvent) => void;
73
- /** Called after clicking the OK button */
94
+ /**
95
+ * Called after clicking the OK button
96
+ */
74
97
  onOk?: (date: DateRange, event: React.SyntheticEvent) => void;
75
- /** Called after clicking the shortcut button */
98
+ /**
99
+ * Called after clicking the shortcut button
100
+ */
76
101
  onShortcutClick?: (range: RangeType, event: React.MouseEvent) => void;
77
- /** Called when clean */
102
+ /**
103
+ * Called when the value is cleared
104
+ */
78
105
  onClean?: (event: React.MouseEvent) => void;
79
106
  /**
80
- * Custom render value
81
- * @deprecated
107
+ * Custom rendering of the selected date range.
108
+ */
109
+ renderValue?: (value: DateRange, format: string) => string;
110
+ /**
111
+ * Custom render for calendar title
82
112
  */
83
- renderValue?: (value: DateRange, format: string) => React.ReactNode;
84
- /** Custom render for calendar title */
85
113
  renderTitle?: (date: Date) => React.ReactNode;
86
114
  }
87
115
  export interface DateRangePickerComponent extends PickerComponent<DateRangePickerProps> {
@@ -27,8 +27,10 @@ var _utils2 = require("./utils");
27
27
  var _propTypes2 = require("../internals/propTypes");
28
28
  var _DateRangePickerContext = _interopRequireDefault(require("./DateRangePickerContext"));
29
29
  var _DateRangeInput = _interopRequireDefault(require("../DateRangeInput"));
30
+ var _Input = _interopRequireDefault(require("../Input"));
30
31
  var _InputGroup = _interopRequireDefault(require("../InputGroup"));
31
32
  var _Header = _interopRequireDefault(require("./Header"));
33
+ var _useDateDisabled = _interopRequireDefault(require("./hooks/useDateDisabled"));
32
34
  var _templateObject;
33
35
  /**
34
36
  * A date range picker allows you to select a date range from a calendar.
@@ -54,7 +56,7 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
54
56
  defaultValue = props.defaultValue,
55
57
  plaintext = props.plaintext,
56
58
  disabled = props.disabled,
57
- DEPRECATED_disabledDateProp = props.disabledDate,
59
+ DEPRECATED_disabledDate = props.disabledDate,
58
60
  shouldDisableDate = props.shouldDisableDate,
59
61
  _props$format = props.format,
60
62
  formatStr = _props$format === void 0 ? 'yyyy-MM-dd' : _props$format,
@@ -96,7 +98,8 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
96
98
  onSelect = props.onSelect,
97
99
  onShortcutClick = props.onShortcutClick,
98
100
  renderTitle = props.renderTitle,
99
- restProps = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "classPrefix", "className", "appearance", "editable", "cleanable", "character", "defaultCalendarValue", "defaultValue", "plaintext", "disabled", "disabledDate", "shouldDisableDate", "format", "hoverRange", "id", "isoWeek", "limitEndYear", "limitStartYear", "locale", "loading", "label", "menuClassName", "menuStyle", "oneTap", "placeholder", "placement", "ranges", "readOnly", "showOneCalendar", "showWeekNumbers", "showMeridian", "showHeader", "style", "size", "caretAs", "value", "onChange", "onClean", "onEnter", "onEntered", "onExited", "onOk", "onSelect", "onShortcutClick", "renderTitle"]);
101
+ renderValue = props.renderValue,
102
+ restProps = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "classPrefix", "className", "appearance", "editable", "cleanable", "character", "defaultCalendarValue", "defaultValue", "plaintext", "disabled", "disabledDate", "shouldDisableDate", "format", "hoverRange", "id", "isoWeek", "limitEndYear", "limitStartYear", "locale", "loading", "label", "menuClassName", "menuStyle", "oneTap", "placeholder", "placement", "ranges", "readOnly", "showOneCalendar", "showWeekNumbers", "showMeridian", "showHeader", "style", "size", "caretAs", "value", "onChange", "onClean", "onEnter", "onEntered", "onExited", "onOk", "onSelect", "onShortcutClick", "renderTitle", "renderValue"]);
100
103
  var id = (0, _utils.useUniqueId)('rs-', idProp);
101
104
  var _usePickerRef = (0, _Picker.usePickerRef)(ref),
102
105
  trigger = _usePickerRef.trigger,
@@ -150,6 +153,12 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
150
153
  * so declare a Ref to temporarily store the `selectValue` of the first click.
151
154
  */
152
155
  var selectRangeValueRef = (0, _react.useRef)(null);
156
+
157
+ /**
158
+ *
159
+ * The key of the currently active calendar panel.
160
+ * Used to switch when only one calendar panel is displayed.
161
+ */
153
162
  var _useState5 = (0, _react.useState)(),
154
163
  activeCalendarKey = _useState5[0],
155
164
  setActiveCalendarKey = _useState5[1];
@@ -198,9 +207,8 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
198
207
  setSelectedDates(nextCalendarDate);
199
208
  }
200
209
  };
201
-
202
- // if valueProp changed then update selectValue/hoverValue
203
210
  (0, _react.useEffect)(function () {
211
+ // If value changes, update the selected and hover date values on the calendar panel.
204
212
  setSelectedDates(valueProp !== null && valueProp !== void 0 ? valueProp : []);
205
213
  setHoverDateRange(valueProp !== null && valueProp !== void 0 ? valueProp : null);
206
214
  }, [valueProp]);
@@ -481,41 +489,39 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
481
489
  });
482
490
  setDateRange(event, selectValue);
483
491
  });
484
- var isDateDisabled = function isDateDisabled(date, options) {
485
- var selectDate = options.selectDate,
486
- selectedDone = options.selectedDone,
487
- target = options.target;
488
- if (typeof shouldDisableDate === 'function') {
489
- return shouldDisableDate(date, selectDate, selectedDone, target);
490
- }
491
- if (typeof DEPRECATED_disabledDateProp === 'function') {
492
- return DEPRECATED_disabledDateProp(date, selectDate, selectedDone, target);
492
+ var isDateDisabled = (0, _useDateDisabled.default)({
493
+ shouldDisableDate: shouldDisableDate,
494
+ DEPRECATED_disabledDate: DEPRECATED_disabledDate
495
+ });
496
+ var disableByRange = function disableByRange(start, end, target) {
497
+ if (isDateDisabled) {
498
+ // If the date is between the start and the end the button is disabled
499
+ while ((0, _dateUtils.isBefore)(start, end) || (0, _dateUtils.isSameDay)(start, end)) {
500
+ if (isDateDisabled(start, {
501
+ selectDate: selectedDates,
502
+ selectedDone: isSelectedIdle,
503
+ target: target
504
+ })) {
505
+ return true;
506
+ }
507
+ start = (0, _dateUtils.addDays)(start, 1);
508
+ }
493
509
  }
494
510
  return false;
495
511
  };
496
- var disableByBetween = function disableByBetween(start, end, type) {
497
- // If the date is between the start and the end
498
- // the button is disabled
499
- while ((0, _dateUtils.isBefore)(start, end) || (0, _dateUtils.isSameDay)(start, end)) {
500
- if (isDateDisabled(start, {
501
- selectDate: selectedDates,
502
- selectedDone: isSelectedIdle,
503
- target: type
504
- })) {
512
+ var disableOkButton = function disableOkButton() {
513
+ var _trigger$current;
514
+ var _ref4 = ((_trigger$current = trigger.current) === null || _trigger$current === void 0 ? void 0 : _trigger$current.getState()) || {},
515
+ open = _ref4.open;
516
+ if (open) {
517
+ var start = selectedDates[0],
518
+ end = selectedDates[1];
519
+ if (!start || !end || !isSelectedIdle) {
505
520
  return true;
506
521
  }
507
- start = (0, _dateUtils.addDays)(start, 1);
508
522
  }
509
523
  return false;
510
524
  };
511
- var disableOkButton = function disableOkButton() {
512
- var start = selectedDates[0],
513
- end = selectedDates[1];
514
- if (!start || !end || !isSelectedIdle) {
515
- return true;
516
- }
517
- return disableByBetween(start, end, _utils.DATERANGE_DISABLED_TARGET.TOOLBAR_BUTTON_OK);
518
- };
519
525
  var disableShortcut = function disableShortcut(value) {
520
526
  if (value === void 0) {
521
527
  value = [];
@@ -526,26 +532,33 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
526
532
  if (!start || !end) {
527
533
  return true;
528
534
  }
529
- return disableByBetween(start, end, _utils.DATERANGE_DISABLED_TARGET.TOOLBAR_SHORTCUT);
535
+ return disableByRange(start, end, _utils.DATERANGE_DISABLED_TARGET.TOOLBAR_SHORTCUT);
530
536
  };
531
537
  var handleClose = (0, _utils.useEventCallback)(function () {
532
- var _trigger$current, _trigger$current$clos;
533
- (_trigger$current = trigger.current) === null || _trigger$current === void 0 ? void 0 : (_trigger$current$clos = _trigger$current.close) === null || _trigger$current$clos === void 0 ? void 0 : _trigger$current$clos.call(_trigger$current);
538
+ var _trigger$current2, _trigger$current2$clo;
539
+ (_trigger$current2 = trigger.current) === null || _trigger$current2 === void 0 ? void 0 : (_trigger$current2$clo = _trigger$current2.close) === null || _trigger$current2$clo === void 0 ? void 0 : _trigger$current2$clo.call(_trigger$current2);
534
540
  });
535
541
  var handleInputKeyDown = (0, _utils.useEventCallback)(function (event) {
536
542
  (0, _Picker.onMenuKeyDown)(event, {
537
543
  esc: handleClose,
538
544
  enter: function enter() {
539
- var _trigger$current2;
540
- var _ref4 = ((_trigger$current2 = trigger.current) === null || _trigger$current2 === void 0 ? void 0 : _trigger$current2.getState()) || {},
541
- open = _ref4.open;
545
+ var _trigger$current3;
546
+ var _ref5 = ((_trigger$current3 = trigger.current) === null || _trigger$current3 === void 0 ? void 0 : _trigger$current3.getState()) || {},
547
+ open = _ref5.open;
542
548
  if (!open) {
543
- var _trigger$current3;
544
- (_trigger$current3 = trigger.current) === null || _trigger$current3 === void 0 ? void 0 : _trigger$current3.open();
549
+ var _trigger$current4;
550
+ (_trigger$current4 = trigger.current) === null || _trigger$current4 === void 0 ? void 0 : _trigger$current4.open();
545
551
  }
546
552
  }
547
553
  });
548
554
  });
555
+ var disableCalendarDate = isDateDisabled ? function (date, values, type) {
556
+ return isDateDisabled(date, {
557
+ selectDate: values,
558
+ selectedDone: isSelectedIdle,
559
+ target: type
560
+ });
561
+ } : undefined;
549
562
  var renderCalendarOverlay = function renderCalendarOverlay(positionProps, speakerRef) {
550
563
  var left = positionProps.left,
551
564
  top = positionProps.top,
@@ -566,13 +579,6 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
566
579
  left: left,
567
580
  top: top
568
581
  });
569
- var disabledDate = function disabledDate(date, values, type) {
570
- return isDateDisabled(date, {
571
- selectDate: values,
572
- selectedDone: isSelectedIdle,
573
- target: type
574
- });
575
- };
576
582
  var calendarProps = {
577
583
  locale: locale,
578
584
  isoWeek: isoWeek,
@@ -584,12 +590,12 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
584
590
  format: formatStr,
585
591
  value: selectedDates,
586
592
  hoverRangeValue: hoverDateRange !== null && hoverDateRange !== void 0 ? hoverDateRange : undefined,
593
+ disabledDate: disableCalendarDate,
587
594
  onSelect: handleSelectDate,
588
595
  onChangeCalendarMonth: onChangeCalendarMonth,
589
596
  onChangeCalendarTime: onChangeCalendarTime,
590
597
  onToggleMeridian: onToggleMeridian,
591
598
  onMouseMove: onMouseMove,
592
- disabledDate: disabledDate,
593
599
  renderTitle: renderTitle
594
600
  };
595
601
  var getCalendars = function getCalendars() {
@@ -697,7 +703,7 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
697
703
  selectedDone: isSelectedIdle,
698
704
  target: _utils.DATERANGE_DISABLED_TARGET.INPUT
699
705
  };
700
- if (isDateDisabled(startDate, disabledOptions) || isDateDisabled(endDate, disabledOptions)) {
706
+ if (isDateDisabled !== null && isDateDisabled !== void 0 && isDateDisabled(startDate, disabledOptions) || isDateDisabled !== null && isDateDisabled !== void 0 && isDateDisabled(endDate, disabledOptions)) {
701
707
  return true;
702
708
  }
703
709
  return false;
@@ -710,6 +716,19 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
710
716
  rest = _partitionHTMLProps[1];
711
717
  var showCleanButton = cleanable && hasValue && !readOnly;
712
718
  var invalidValue = value && isErrorValue(value);
719
+
720
+ // Custom rendering of the selected value
721
+ var customValue = null;
722
+
723
+ // Input box is read-only when the component is uneditable or loading state
724
+ var inputReadOnly = readOnly || !editable || loading || false;
725
+ if (typeof renderValue === 'function' && value) {
726
+ customValue = renderValue(value, formatStr);
727
+
728
+ // If the custom rendering value, the input box is read-only
729
+ inputReadOnly = true;
730
+ }
731
+ var TargetInput = customValue ? _Input.default : _DateRangeInput.default;
713
732
  return /*#__PURE__*/_react.default.createElement(_Picker.PickerToggleTrigger, {
714
733
  trigger: "active",
715
734
  ref: trigger,
@@ -729,23 +748,24 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
729
748
  plaintext: plaintext
730
749
  }) : /*#__PURE__*/_react.default.createElement(_InputGroup.default, (0, _extends2.default)({}, (0, _omit.default)(rest, [].concat(_Picker.omitTriggerPropKeys, usedClassNamePropKeys, _dateUtils.calendarOnlyProps)), {
731
750
  inside: true,
751
+ disabled: disabled,
732
752
  size: size
733
753
  }), /*#__PURE__*/_react.default.createElement(_Picker.PickerLabel, {
734
754
  className: prefix(_templateObject || (_templateObject = (0, _taggedTemplateLiteralLoose2.default)(["label"]))),
735
755
  id: id + "-label"
736
- }, label), /*#__PURE__*/_react.default.createElement(_DateRangeInput.default, (0, _extends2.default)({
756
+ }, label), /*#__PURE__*/_react.default.createElement(TargetInput, (0, _extends2.default)({
737
757
  "aria-haspopup": "dialog",
738
758
  "aria-invalid": invalidValue,
739
759
  "aria-labelledby": label ? id + "-label" : undefined
740
760
  }, ariaProps, {
741
761
  ref: target,
742
762
  id: id,
743
- value: value,
763
+ value: customValue || value,
744
764
  character: character,
745
765
  format: formatStr,
746
766
  placeholder: placeholder ? placeholder : rangeFormatStr,
747
767
  disabled: disabled,
748
- readOnly: readOnly || !editable || loading,
768
+ readOnly: inputReadOnly,
749
769
  plaintext: plaintext,
750
770
  htmlSize: getInputHtmlSize(),
751
771
  onChange: handleInputChange,
@@ -0,0 +1,16 @@
1
+ import { DATERANGE_DISABLED_TARGET as TARGET } from '../../utils';
2
+ import { DisabledDateFunction, SelectedDatesState } from '../types';
3
+ interface UseDateDisabledProps {
4
+ shouldDisableDate?: DisabledDateFunction;
5
+ DEPRECATED_disabledDate?: DisabledDateFunction;
6
+ }
7
+ interface DateDisabledOptions {
8
+ selectDate?: SelectedDatesState;
9
+ selectedDone?: boolean;
10
+ target?: TARGET;
11
+ }
12
+ /**
13
+ * Returns a function that determines whether a date is disabled and is compatible with the deprecated `disabledDate` prop.
14
+ */
15
+ declare function useDateDisabled(props: UseDateDisabledProps): ((date: Date, options: DateDisabledOptions) => boolean) | undefined;
16
+ export default useDateDisabled;
@@ -0,0 +1,31 @@
1
+ 'use client';
2
+ "use strict";
3
+
4
+ exports.__esModule = true;
5
+ exports.default = void 0;
6
+ var _react = require("react");
7
+ /**
8
+ * Returns a function that determines whether a date is disabled and is compatible with the deprecated `disabledDate` prop.
9
+ */
10
+ function useDateDisabled(props) {
11
+ var shouldDisableDate = props.shouldDisableDate,
12
+ DEPRECATED_disabledDate = props.DEPRECATED_disabledDate;
13
+ var isDateDisabled = (0, _react.useCallback)(function (date, options) {
14
+ var selectDate = options.selectDate,
15
+ selectedDone = options.selectedDone,
16
+ target = options.target;
17
+ if (typeof shouldDisableDate === 'function') {
18
+ return shouldDisableDate(date, selectDate, selectedDone, target);
19
+ }
20
+ if (typeof DEPRECATED_disabledDate === 'function') {
21
+ return DEPRECATED_disabledDate(date, selectDate, selectedDone, target);
22
+ }
23
+ return false;
24
+ }, [shouldDisableDate, DEPRECATED_disabledDate]);
25
+ if (shouldDisableDate || DEPRECATED_disabledDate) {
26
+ return isDateDisabled;
27
+ }
28
+ return undefined;
29
+ }
30
+ var _default = useDateDisabled;
31
+ exports.default = _default;
@@ -26,3 +26,4 @@ selectedDone?: boolean,
26
26
  * Call the target of the `shouldDisableDate` function.
27
27
  */
28
28
  target?: DATERANGE_DISABLED_TARGET) => boolean;
29
+ export declare type SelectedDatesState = [] | [Date] | [Date, Date];
@@ -0,0 +1,14 @@
1
+ import React from 'react';
2
+ import { WithAsProps, RsRefForwardingComponent } from '../@types/common';
3
+ export interface HighlightProps extends WithAsProps {
4
+ query?: string | string[];
5
+ renderMark?: (match: string, index: number) => React.ReactNode;
6
+ }
7
+ /**
8
+ *
9
+ * Highlight the matching text in the content.
10
+ *
11
+ * @see https://rsuitejs.com/components/highlight
12
+ */
13
+ declare const Highlight: RsRefForwardingComponent<'div', HighlightProps>;
14
+ export default Highlight;