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,37 @@
1
+ 'use client';
2
+ import { useState } from 'react';
3
+ import { useEventCallback } from '../../utils';
4
+ function useFocusState(props) {
5
+ var target = props.target;
6
+ var _useState = useState(false),
7
+ active = _useState[0],
8
+ setActive = _useState[1];
9
+ var _useState2 = useState(null),
10
+ focusItemValue = _useState2[0],
11
+ setFocusItemValue = _useState2[1];
12
+ var focusTarget = useEventCallback(function () {
13
+ var _target$current;
14
+ (_target$current = target.current) === null || _target$current === void 0 ? void 0 : _target$current.focus();
15
+ });
16
+ var onEnter = useEventCallback(function (node) {
17
+ var _props$onEnter;
18
+ setActive(true);
19
+ (_props$onEnter = props.onEnter) === null || _props$onEnter === void 0 ? void 0 : _props$onEnter.call(props, node);
20
+ });
21
+ var onExit = useEventCallback(function (node) {
22
+ var _props$onExit;
23
+ setActive(false);
24
+ focusTarget();
25
+ (_props$onExit = props.onExit) === null || _props$onExit === void 0 ? void 0 : _props$onExit.call(props, node);
26
+ });
27
+ return {
28
+ active: active,
29
+ focusItemValue: focusItemValue,
30
+ setFocusItemValue: setFocusItemValue,
31
+ triggerProps: {
32
+ onEnter: onEnter,
33
+ onExit: onExit
34
+ }
35
+ };
36
+ }
37
+ export default useFocusState;
@@ -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
  *
@@ -19,6 +19,7 @@ import { mergeRefs, useClassNames, useControlled, useCustom, useUniqueId, useEve
19
19
  import { shouldRenderMonth, shouldRenderDate, shouldRenderTime, shouldOnlyRenderTime, setHours, getHours, isValid, disableTime, copyTime, calendarOnlyProps } from '../utils/dateUtils';
20
20
  import { PickerPopup, PickerLabel, PickerIndicator, PickerToggleTrigger, pickerPropTypes, pickTriggerPropKeys, usePickerClassName, usePickerRef, onMenuKeyDown } from '../internals/Picker';
21
21
  import { OverlayCloseCause } from '../internals/Overlay/OverlayTrigger';
22
+ import Input from '../Input';
22
23
  import DateInput from '../DateInput';
23
24
  import InputGroup from '../InputGroup';
24
25
  import { splitRanges, deprecatedPropTypes, getRestProps } from './utils';
@@ -88,11 +89,12 @@ var DatePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
88
89
  onToggleTimeDropdown = props.onToggleTimeDropdown,
89
90
  onShortcutClick = props.onShortcutClick,
90
91
  renderCell = props.renderCell,
92
+ renderValue = props.renderValue,
91
93
  DEPRECATED_disabledDate = props.disabledDate,
92
94
  DEPRECATED_disabledHours = props.disabledHours,
93
95
  DEPRECATED_disabledMinutes = props.disabledMinutes,
94
96
  DEPRECATED_disabledSeconds = props.disabledSeconds,
95
- restProps = _objectWithoutPropertiesLoose(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"]);
97
+ restProps = _objectWithoutPropertiesLoose(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"]);
96
98
  var id = useUniqueId('rs-', idProp);
97
99
  var _usePickerRef = usePickerRef(ref),
98
100
  trigger = _usePickerRef.trigger,
@@ -457,6 +459,19 @@ var DatePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
457
459
  ariaProps = _partitionHTMLProps[0],
458
460
  rest = _partitionHTMLProps[1];
459
461
  var invalidValue = value && isErrorValue(value);
462
+
463
+ // Custom rendering of the selected value
464
+ var customValue = null;
465
+
466
+ // Input box is read-only when the component is uneditable or loading state
467
+ var inputReadOnly = readOnly || !editable || loading || false;
468
+ if (typeof renderValue === 'function' && value) {
469
+ customValue = renderValue(value, formatStr);
470
+
471
+ // If the custom rendering value, the input box is read-only
472
+ inputReadOnly = true;
473
+ }
474
+ var TargetInput = customValue ? Input : DateInput;
460
475
  return /*#__PURE__*/React.createElement(PickerToggleTrigger, {
461
476
  trigger: "active",
462
477
  pickerProps: pick(props, pickTriggerPropKeys),
@@ -477,24 +492,24 @@ var DatePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
477
492
  }) : /*#__PURE__*/React.createElement(InputGroup, _extends({}, getRestProps(rest, usedClassNamePropKeys), {
478
493
  inside: true,
479
494
  size: size,
495
+ disabled: disabled,
480
496
  onClick: handleClick
481
497
  }), /*#__PURE__*/React.createElement(PickerLabel, {
482
498
  className: prefix(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["label"]))),
483
499
  id: id + "-label"
484
- }, label), /*#__PURE__*/React.createElement(DateInput, _extends({
500
+ }, label), /*#__PURE__*/React.createElement(TargetInput, _extends({
485
501
  "aria-haspopup": "dialog",
486
502
  "aria-invalid": invalidValue,
487
503
  "aria-labelledby": label ? id + "-label" : undefined
488
504
  }, ariaProps, {
489
505
  ref: target,
490
506
  id: id,
491
- value: value,
507
+ value: customValue || value,
492
508
  format: formatStr,
493
509
  placeholder: placeholder ? placeholder : formatStr,
494
510
  disabled: disabled,
495
511
  onChange: handleInputChange,
496
- readOnly: readOnly || !editable || loading,
497
- plaintext: plaintext,
512
+ readOnly: inputReadOnly,
498
513
  onKeyDown: handleInputKeyDown
499
514
  })), /*#__PURE__*/React.createElement(PickerIndicator, {
500
515
  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> {
@@ -22,8 +22,10 @@ import { getSafeCalendarDate, getMonthHoverRange, getWeekHoverRange, isSameRange
22
22
  import { deprecatePropTypeNew, oneOf } from '../internals/propTypes';
23
23
  import DateRangePickerContext from './DateRangePickerContext';
24
24
  import DateRangeInput from '../DateRangeInput';
25
+ import Input from '../Input';
25
26
  import InputGroup from '../InputGroup';
26
27
  import Header from './Header';
28
+ import useDateDisabled from './hooks/useDateDisabled';
27
29
  /**
28
30
  * A date range picker allows you to select a date range from a calendar.
29
31
  *
@@ -48,7 +50,7 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
48
50
  defaultValue = props.defaultValue,
49
51
  plaintext = props.plaintext,
50
52
  disabled = props.disabled,
51
- DEPRECATED_disabledDateProp = props.disabledDate,
53
+ DEPRECATED_disabledDate = props.disabledDate,
52
54
  shouldDisableDate = props.shouldDisableDate,
53
55
  _props$format = props.format,
54
56
  formatStr = _props$format === void 0 ? 'yyyy-MM-dd' : _props$format,
@@ -90,7 +92,8 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
90
92
  onSelect = props.onSelect,
91
93
  onShortcutClick = props.onShortcutClick,
92
94
  renderTitle = props.renderTitle,
93
- restProps = _objectWithoutPropertiesLoose(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"]);
95
+ renderValue = props.renderValue,
96
+ restProps = _objectWithoutPropertiesLoose(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"]);
94
97
  var id = useUniqueId('rs-', idProp);
95
98
  var _usePickerRef = usePickerRef(ref),
96
99
  trigger = _usePickerRef.trigger,
@@ -144,6 +147,12 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
144
147
  * so declare a Ref to temporarily store the `selectValue` of the first click.
145
148
  */
146
149
  var selectRangeValueRef = useRef(null);
150
+
151
+ /**
152
+ *
153
+ * The key of the currently active calendar panel.
154
+ * Used to switch when only one calendar panel is displayed.
155
+ */
147
156
  var _useState5 = useState(),
148
157
  activeCalendarKey = _useState5[0],
149
158
  setActiveCalendarKey = _useState5[1];
@@ -192,9 +201,8 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
192
201
  setSelectedDates(nextCalendarDate);
193
202
  }
194
203
  };
195
-
196
- // if valueProp changed then update selectValue/hoverValue
197
204
  useEffect(function () {
205
+ // If value changes, update the selected and hover date values on the calendar panel.
198
206
  setSelectedDates(valueProp !== null && valueProp !== void 0 ? valueProp : []);
199
207
  setHoverDateRange(valueProp !== null && valueProp !== void 0 ? valueProp : null);
200
208
  }, [valueProp]);
@@ -475,41 +483,39 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
475
483
  });
476
484
  setDateRange(event, selectValue);
477
485
  });
478
- var isDateDisabled = function isDateDisabled(date, options) {
479
- var selectDate = options.selectDate,
480
- selectedDone = options.selectedDone,
481
- target = options.target;
482
- if (typeof shouldDisableDate === 'function') {
483
- return shouldDisableDate(date, selectDate, selectedDone, target);
484
- }
485
- if (typeof DEPRECATED_disabledDateProp === 'function') {
486
- return DEPRECATED_disabledDateProp(date, selectDate, selectedDone, target);
486
+ var isDateDisabled = useDateDisabled({
487
+ shouldDisableDate: shouldDisableDate,
488
+ DEPRECATED_disabledDate: DEPRECATED_disabledDate
489
+ });
490
+ var disableByRange = function disableByRange(start, end, target) {
491
+ if (isDateDisabled) {
492
+ // If the date is between the start and the end the button is disabled
493
+ while (isBefore(start, end) || isSameDay(start, end)) {
494
+ if (isDateDisabled(start, {
495
+ selectDate: selectedDates,
496
+ selectedDone: isSelectedIdle,
497
+ target: target
498
+ })) {
499
+ return true;
500
+ }
501
+ start = addDays(start, 1);
502
+ }
487
503
  }
488
504
  return false;
489
505
  };
490
- var disableByBetween = function disableByBetween(start, end, type) {
491
- // If the date is between the start and the end
492
- // the button is disabled
493
- while (isBefore(start, end) || isSameDay(start, end)) {
494
- if (isDateDisabled(start, {
495
- selectDate: selectedDates,
496
- selectedDone: isSelectedIdle,
497
- target: type
498
- })) {
506
+ var disableOkButton = function disableOkButton() {
507
+ var _trigger$current;
508
+ var _ref4 = ((_trigger$current = trigger.current) === null || _trigger$current === void 0 ? void 0 : _trigger$current.getState()) || {},
509
+ open = _ref4.open;
510
+ if (open) {
511
+ var start = selectedDates[0],
512
+ end = selectedDates[1];
513
+ if (!start || !end || !isSelectedIdle) {
499
514
  return true;
500
515
  }
501
- start = addDays(start, 1);
502
516
  }
503
517
  return false;
504
518
  };
505
- var disableOkButton = function disableOkButton() {
506
- var start = selectedDates[0],
507
- end = selectedDates[1];
508
- if (!start || !end || !isSelectedIdle) {
509
- return true;
510
- }
511
- return disableByBetween(start, end, TARGET.TOOLBAR_BUTTON_OK);
512
- };
513
519
  var disableShortcut = function disableShortcut(value) {
514
520
  if (value === void 0) {
515
521
  value = [];
@@ -520,26 +526,33 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
520
526
  if (!start || !end) {
521
527
  return true;
522
528
  }
523
- return disableByBetween(start, end, TARGET.TOOLBAR_SHORTCUT);
529
+ return disableByRange(start, end, TARGET.TOOLBAR_SHORTCUT);
524
530
  };
525
531
  var handleClose = useEventCallback(function () {
526
- var _trigger$current, _trigger$current$clos;
527
- (_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);
532
+ var _trigger$current2, _trigger$current2$clo;
533
+ (_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);
528
534
  });
529
535
  var handleInputKeyDown = useEventCallback(function (event) {
530
536
  onMenuKeyDown(event, {
531
537
  esc: handleClose,
532
538
  enter: function enter() {
533
- var _trigger$current2;
534
- var _ref4 = ((_trigger$current2 = trigger.current) === null || _trigger$current2 === void 0 ? void 0 : _trigger$current2.getState()) || {},
535
- open = _ref4.open;
539
+ var _trigger$current3;
540
+ var _ref5 = ((_trigger$current3 = trigger.current) === null || _trigger$current3 === void 0 ? void 0 : _trigger$current3.getState()) || {},
541
+ open = _ref5.open;
536
542
  if (!open) {
537
- var _trigger$current3;
538
- (_trigger$current3 = trigger.current) === null || _trigger$current3 === void 0 ? void 0 : _trigger$current3.open();
543
+ var _trigger$current4;
544
+ (_trigger$current4 = trigger.current) === null || _trigger$current4 === void 0 ? void 0 : _trigger$current4.open();
539
545
  }
540
546
  }
541
547
  });
542
548
  });
549
+ var disableCalendarDate = isDateDisabled ? function (date, values, type) {
550
+ return isDateDisabled(date, {
551
+ selectDate: values,
552
+ selectedDone: isSelectedIdle,
553
+ target: type
554
+ });
555
+ } : undefined;
543
556
  var renderCalendarOverlay = function renderCalendarOverlay(positionProps, speakerRef) {
544
557
  var left = positionProps.left,
545
558
  top = positionProps.top,
@@ -560,13 +573,6 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
560
573
  left: left,
561
574
  top: top
562
575
  });
563
- var disabledDate = function disabledDate(date, values, type) {
564
- return isDateDisabled(date, {
565
- selectDate: values,
566
- selectedDone: isSelectedIdle,
567
- target: type
568
- });
569
- };
570
576
  var calendarProps = {
571
577
  locale: locale,
572
578
  isoWeek: isoWeek,
@@ -578,12 +584,12 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
578
584
  format: formatStr,
579
585
  value: selectedDates,
580
586
  hoverRangeValue: hoverDateRange !== null && hoverDateRange !== void 0 ? hoverDateRange : undefined,
587
+ disabledDate: disableCalendarDate,
581
588
  onSelect: handleSelectDate,
582
589
  onChangeCalendarMonth: onChangeCalendarMonth,
583
590
  onChangeCalendarTime: onChangeCalendarTime,
584
591
  onToggleMeridian: onToggleMeridian,
585
592
  onMouseMove: onMouseMove,
586
- disabledDate: disabledDate,
587
593
  renderTitle: renderTitle
588
594
  };
589
595
  var getCalendars = function getCalendars() {
@@ -691,7 +697,7 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
691
697
  selectedDone: isSelectedIdle,
692
698
  target: TARGET.INPUT
693
699
  };
694
- if (isDateDisabled(startDate, disabledOptions) || isDateDisabled(endDate, disabledOptions)) {
700
+ if (isDateDisabled !== null && isDateDisabled !== void 0 && isDateDisabled(startDate, disabledOptions) || isDateDisabled !== null && isDateDisabled !== void 0 && isDateDisabled(endDate, disabledOptions)) {
695
701
  return true;
696
702
  }
697
703
  return false;
@@ -704,6 +710,19 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
704
710
  rest = _partitionHTMLProps[1];
705
711
  var showCleanButton = cleanable && hasValue && !readOnly;
706
712
  var invalidValue = value && isErrorValue(value);
713
+
714
+ // Custom rendering of the selected value
715
+ var customValue = null;
716
+
717
+ // Input box is read-only when the component is uneditable or loading state
718
+ var inputReadOnly = readOnly || !editable || loading || false;
719
+ if (typeof renderValue === 'function' && value) {
720
+ customValue = renderValue(value, formatStr);
721
+
722
+ // If the custom rendering value, the input box is read-only
723
+ inputReadOnly = true;
724
+ }
725
+ var TargetInput = customValue ? Input : DateRangeInput;
707
726
  return /*#__PURE__*/React.createElement(PickerToggleTrigger, {
708
727
  trigger: "active",
709
728
  ref: trigger,
@@ -723,23 +742,24 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
723
742
  plaintext: plaintext
724
743
  }) : /*#__PURE__*/React.createElement(InputGroup, _extends({}, omit(rest, [].concat(omitTriggerPropKeys, usedClassNamePropKeys, calendarOnlyProps)), {
725
744
  inside: true,
745
+ disabled: disabled,
726
746
  size: size
727
747
  }), /*#__PURE__*/React.createElement(PickerLabel, {
728
748
  className: prefix(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["label"]))),
729
749
  id: id + "-label"
730
- }, label), /*#__PURE__*/React.createElement(DateRangeInput, _extends({
750
+ }, label), /*#__PURE__*/React.createElement(TargetInput, _extends({
731
751
  "aria-haspopup": "dialog",
732
752
  "aria-invalid": invalidValue,
733
753
  "aria-labelledby": label ? id + "-label" : undefined
734
754
  }, ariaProps, {
735
755
  ref: target,
736
756
  id: id,
737
- value: value,
757
+ value: customValue || value,
738
758
  character: character,
739
759
  format: formatStr,
740
760
  placeholder: placeholder ? placeholder : rangeFormatStr,
741
761
  disabled: disabled,
742
- readOnly: readOnly || !editable || loading,
762
+ readOnly: inputReadOnly,
743
763
  plaintext: plaintext,
744
764
  htmlSize: getInputHtmlSize(),
745
765
  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,26 @@
1
+ 'use client';
2
+ import { useCallback } from 'react';
3
+ /**
4
+ * Returns a function that determines whether a date is disabled and is compatible with the deprecated `disabledDate` prop.
5
+ */
6
+ function useDateDisabled(props) {
7
+ var shouldDisableDate = props.shouldDisableDate,
8
+ DEPRECATED_disabledDate = props.DEPRECATED_disabledDate;
9
+ var isDateDisabled = useCallback(function (date, options) {
10
+ var selectDate = options.selectDate,
11
+ selectedDone = options.selectedDone,
12
+ target = options.target;
13
+ if (typeof shouldDisableDate === 'function') {
14
+ return shouldDisableDate(date, selectDate, selectedDone, target);
15
+ }
16
+ if (typeof DEPRECATED_disabledDate === 'function') {
17
+ return DEPRECATED_disabledDate(date, selectDate, selectedDone, target);
18
+ }
19
+ return false;
20
+ }, [shouldDisableDate, DEPRECATED_disabledDate]);
21
+ if (shouldDisableDate || DEPRECATED_disabledDate) {
22
+ return isDateDisabled;
23
+ }
24
+ return undefined;
25
+ }
26
+ export default useDateDisabled;
@@ -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;
@@ -0,0 +1,52 @@
1
+ 'use client';
2
+ import _extends from "@babel/runtime/helpers/esm/extends";
3
+ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
4
+ import React from 'react';
5
+ import PropTypes from 'prop-types';
6
+ import { useClassNames } from '../utils';
7
+ import { highlightText } from './utils/highlightText';
8
+ import { stringifyReactNode } from '../internals/utils';
9
+ function defaultRenderMark(match, index) {
10
+ return /*#__PURE__*/React.createElement("mark", {
11
+ key: index,
12
+ className: "rs-highlight-mark"
13
+ }, match);
14
+ }
15
+
16
+ /**
17
+ *
18
+ * Highlight the matching text in the content.
19
+ *
20
+ * @see https://rsuitejs.com/components/highlight
21
+ */
22
+ var Highlight = /*#__PURE__*/React.forwardRef(function (props, ref) {
23
+ var _props$as = props.as,
24
+ Component = _props$as === void 0 ? 'div' : _props$as,
25
+ _props$classPrefix = props.classPrefix,
26
+ classPrefix = _props$classPrefix === void 0 ? 'highlight' : _props$classPrefix,
27
+ className = props.className,
28
+ children = props.children,
29
+ query = props.query,
30
+ _props$renderMark = props.renderMark,
31
+ renderMark = _props$renderMark === void 0 ? defaultRenderMark : _props$renderMark,
32
+ rest = _objectWithoutPropertiesLoose(props, ["as", "classPrefix", "className", "children", "query", "renderMark"]);
33
+ var _useClassNames = useClassNames(classPrefix),
34
+ withClassPrefix = _useClassNames.withClassPrefix,
35
+ merge = _useClassNames.merge;
36
+ var classes = merge(className, withClassPrefix());
37
+ var text = stringifyReactNode(children);
38
+ return /*#__PURE__*/React.createElement(Component, _extends({
39
+ ref: ref,
40
+ className: classes
41
+ }, rest), highlightText(text, {
42
+ query: query,
43
+ renderMark: renderMark
44
+ }));
45
+ });
46
+ Highlight.displayName = 'Highlight';
47
+ Highlight.propTypes = {
48
+ className: PropTypes.string,
49
+ classPrefix: PropTypes.string,
50
+ as: PropTypes.elementType
51
+ };
52
+ export default Highlight;
@@ -0,0 +1,3 @@
1
+ import Highlight from './Highlight';
2
+ export type { HighlightProps } from './Highlight';
3
+ export default Highlight;
@@ -0,0 +1,3 @@
1
+ 'use client';
2
+ import Highlight from './Highlight';
3
+ export default Highlight;