rsuite 5.60.1 → 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 (475) 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 +37 -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 +63 -26
  21. package/DatePicker/styles/index.less +1 -0
  22. package/DateRangeInput/styles/index.css +4 -4
  23. package/DateRangePicker/styles/index.css +69 -26
  24. package/DateRangePicker/styles/index.less +3 -0
  25. package/Dropdown/styles/index.css +14 -13
  26. package/Highlight/package.json +7 -0
  27. package/Highlight/styles/index.css +8 -0
  28. package/Highlight/styles/index.less +6 -0
  29. package/IconButton/styles/index.css +11 -10
  30. package/Input/styles/index.css +4 -4
  31. package/InputGroup/styles/index.css +18 -17
  32. package/InputGroup/styles/index.less +1 -1
  33. package/InputNumber/styles/index.css +19 -18
  34. package/InputPicker/styles/index.css +58 -22
  35. package/LICENSE +1 -1
  36. package/MultiCascadeTree/styles/index.css +61 -36
  37. package/MultiCascadeTree/styles/index.less +1 -1
  38. package/MultiCascader/styles/index.css +704 -679
  39. package/MultiCascader/styles/index.less +0 -1
  40. package/Nav/styles/index.css +15 -14
  41. package/Navbar/styles/index.css +14 -13
  42. package/Pagination/styles/index.css +62 -26
  43. package/Panel/styles/index.css +4 -4
  44. package/Placeholder/styles/index.css +2 -3
  45. package/Placeholder/styles/index.less +2 -3
  46. package/README.md +53 -90
  47. package/Radio/styles/index.css +7 -7
  48. package/Radio/styles/index.less +1 -5
  49. package/RangeSlider/styles/index.css +2 -2
  50. package/Rate/styles/index.css +1 -1
  51. package/Rate/styles/index.less +1 -1
  52. package/SelectPicker/styles/index.css +58 -22
  53. package/Slider/styles/index.css +2 -2
  54. package/Slider/styles/index.less +2 -2
  55. package/Steps/styles/index.css +6 -1
  56. package/Steps/styles/index.less +2 -1
  57. package/Tabs/styles/index.css +15 -14
  58. package/TagInput/styles/index.css +59 -27
  59. package/TagPicker/styles/index.css +59 -27
  60. package/Toggle/styles/index.css +16 -8
  61. package/Toggle/styles/index.less +2 -1
  62. package/Tree/styles/indent-line.less +8 -0
  63. package/Tree/styles/index.css +140 -141
  64. package/Tree/styles/index.less +188 -1
  65. package/Tree/styles/toggle.less +36 -0
  66. package/TreePicker/styles/index.css +142 -134
  67. package/TreePicker/styles/index.less +4 -234
  68. package/Uploader/styles/index.css +12 -11
  69. package/cjs/@types/common.d.ts +41 -4
  70. package/cjs/AutoComplete/AutoComplete.js +2 -1
  71. package/cjs/CascadeTree/CascadeTree.js +8 -7
  72. package/cjs/CascadeTree/SearchView.js +7 -14
  73. package/cjs/CascadeTree/hooks/usePaths.js +4 -4
  74. package/cjs/CascadeTree/hooks/useSearch.js +2 -1
  75. package/cjs/CascadeTree/utils.d.ts +0 -11
  76. package/cjs/CascadeTree/utils.js +0 -23
  77. package/cjs/Cascader/Cascader.js +17 -16
  78. package/cjs/CheckPicker/CheckPicker.js +26 -29
  79. package/cjs/CheckTree/CheckTree.d.ts +16 -0
  80. package/cjs/CheckTree/CheckTree.js +112 -0
  81. package/cjs/CheckTree/CheckTreeNode.d.ts +72 -0
  82. package/cjs/CheckTree/CheckTreeNode.js +117 -0
  83. package/cjs/CheckTree/CheckTreeView.d.ts +70 -0
  84. package/cjs/CheckTree/CheckTreeView.js +310 -0
  85. package/cjs/CheckTree/hooks/useTreeCheckState.d.ts +10 -0
  86. package/cjs/CheckTree/hooks/useTreeCheckState.js +93 -0
  87. package/cjs/CheckTree/hooks/useTreeNodeProps.d.ts +22 -0
  88. package/cjs/CheckTree/hooks/useTreeNodeProps.js +59 -0
  89. package/cjs/CheckTree/hooks/useTreeValue.d.ts +5 -0
  90. package/cjs/CheckTree/hooks/useTreeValue.js +21 -0
  91. package/cjs/CheckTree/index.d.ts +2 -14
  92. package/cjs/CheckTree/index.js +2 -23
  93. package/cjs/CheckTree/utils.d.ts +53 -0
  94. package/cjs/{CheckTreePicker → CheckTree}/utils.js +76 -26
  95. package/cjs/CheckTreePicker/CheckTreePicker.d.ts +30 -12
  96. package/cjs/CheckTreePicker/CheckTreePicker.js +153 -603
  97. package/cjs/CheckTreePicker/hooks/useFocusState.d.ts +16 -0
  98. package/cjs/CheckTreePicker/hooks/useFocusState.js +42 -0
  99. package/cjs/DateInput/DateField.js +3 -1
  100. package/cjs/DateInput/DateInput.js +17 -16
  101. package/{esm/DateInput → cjs/DateInput/hooks}/useDateInputState.d.ts +1 -1
  102. package/cjs/DateInput/{useDateInputState.js → hooks/useDateInputState.js} +2 -2
  103. package/cjs/DateInput/hooks/useFieldCursor.d.ts +6 -0
  104. package/cjs/DateInput/hooks/useFieldCursor.js +56 -0
  105. package/cjs/DateInput/hooks/useSelectedState.d.ts +14 -0
  106. package/cjs/DateInput/hooks/useSelectedState.js +23 -0
  107. package/cjs/DateInput/index.d.ts +5 -3
  108. package/cjs/DateInput/index.js +11 -5
  109. package/cjs/DateInput/utils.d.ts +0 -1
  110. package/cjs/DateInput/utils.js +2 -24
  111. package/cjs/DatePicker/DatePicker.d.ts +4 -0
  112. package/cjs/DatePicker/DatePicker.js +20 -5
  113. package/cjs/DatePicker/types.d.ts +0 -4
  114. package/cjs/DateRangeInput/DateRangeInput.js +16 -17
  115. package/cjs/DateRangePicker/DateRangePicker.d.ts +51 -23
  116. package/cjs/DateRangePicker/DateRangePicker.js +71 -51
  117. package/cjs/DateRangePicker/hooks/useDateDisabled.d.ts +16 -0
  118. package/cjs/DateRangePicker/hooks/useDateDisabled.js +31 -0
  119. package/cjs/DateRangePicker/types.d.ts +1 -0
  120. package/cjs/Highlight/Highlight.d.ts +14 -0
  121. package/cjs/Highlight/Highlight.js +58 -0
  122. package/cjs/Highlight/index.d.ts +3 -0
  123. package/cjs/Highlight/index.js +9 -0
  124. package/cjs/Highlight/utils/highlightText.d.ts +5 -0
  125. package/cjs/Highlight/utils/highlightText.js +29 -0
  126. package/cjs/InputPicker/InputPicker.js +37 -41
  127. package/cjs/MultiCascadeTree/SearchView.js +6 -14
  128. package/cjs/MultiCascadeTree/hooks/useCascadeValue.js +15 -1
  129. package/cjs/MultiCascadeTree/hooks/useColumnData.js +2 -2
  130. package/cjs/MultiCascadeTree/hooks/useFlattenData.js +3 -3
  131. package/cjs/MultiCascadeTree/hooks/useSearch.js +2 -1
  132. package/cjs/MultiCascadeTree/utils.d.ts +4 -4
  133. package/cjs/MultiCascadeTree/utils.js +20 -11
  134. package/cjs/MultiCascader/MultiCascader.js +12 -12
  135. package/cjs/SelectPicker/SelectPicker.js +2 -6
  136. package/cjs/Tree/IndentLine.d.ts +3 -0
  137. package/cjs/Tree/IndentLine.js +18 -0
  138. package/cjs/Tree/Tree.d.ts +4 -92
  139. package/cjs/Tree/Tree.js +79 -20
  140. package/cjs/Tree/TreeNode.d.ts +101 -0
  141. package/cjs/Tree/TreeNode.js +147 -0
  142. package/cjs/Tree/TreeNodeToggle.d.ts +9 -0
  143. package/cjs/Tree/TreeNodeToggle.js +56 -0
  144. package/cjs/Tree/TreeProvider.d.ts +52 -0
  145. package/cjs/Tree/TreeProvider.js +84 -0
  146. package/cjs/Tree/TreeView.d.ts +68 -0
  147. package/cjs/Tree/TreeView.js +305 -0
  148. package/cjs/Tree/hooks/useExpandTree.d.ts +60 -0
  149. package/cjs/Tree/hooks/useExpandTree.js +77 -0
  150. package/cjs/Tree/hooks/useFlattenTree.d.ts +42 -0
  151. package/cjs/Tree/hooks/useFlattenTree.js +98 -0
  152. package/cjs/Tree/hooks/useFocusTree.d.ts +24 -0
  153. package/cjs/Tree/hooks/useFocusTree.js +158 -0
  154. package/cjs/Tree/hooks/useForceUpdate.d.ts +2 -0
  155. package/cjs/Tree/hooks/useForceUpdate.js +16 -0
  156. package/cjs/Tree/hooks/useTreeDrag.d.ts +32 -0
  157. package/cjs/Tree/hooks/useTreeDrag.js +268 -0
  158. package/cjs/Tree/hooks/useTreeNodeProps.d.ts +29 -0
  159. package/cjs/Tree/hooks/useTreeNodeProps.js +83 -0
  160. package/cjs/Tree/hooks/useTreeNodeRefs.d.ts +6 -0
  161. package/cjs/Tree/hooks/useTreeNodeRefs.js +22 -0
  162. package/cjs/Tree/hooks/useTreeSearch.d.ts +18 -0
  163. package/cjs/Tree/hooks/useTreeSearch.js +74 -0
  164. package/cjs/Tree/hooks/useTreeWithChildren.d.ts +14 -0
  165. package/cjs/Tree/hooks/useTreeWithChildren.js +64 -0
  166. package/cjs/Tree/hooks/useVirtualizedTreeData.d.ts +7 -0
  167. package/cjs/Tree/hooks/useVirtualizedTreeData.js +82 -0
  168. package/cjs/Tree/types.d.ts +257 -0
  169. package/cjs/Tree/types.js +33 -0
  170. package/cjs/Tree/utils/flattenTree.d.ts +25 -0
  171. package/cjs/Tree/utils/flattenTree.js +95 -0
  172. package/cjs/Tree/utils/focusableTree.d.ts +55 -0
  173. package/cjs/Tree/utils/focusableTree.js +157 -0
  174. package/cjs/Tree/utils/formatNodeRefKey.d.ts +4 -0
  175. package/cjs/Tree/utils/formatNodeRefKey.js +11 -0
  176. package/cjs/Tree/utils/getExpandItemValues.d.ts +11 -0
  177. package/cjs/Tree/utils/getExpandItemValues.js +21 -0
  178. package/cjs/Tree/utils/getNodeParentKeys.d.ts +5 -0
  179. package/cjs/Tree/utils/getNodeParentKeys.js +21 -0
  180. package/cjs/Tree/utils/getTreeActiveNode.d.ts +5 -0
  181. package/cjs/Tree/utils/getTreeActiveNode.js +21 -0
  182. package/cjs/Tree/utils/hasVisibleChildren.d.ts +5 -0
  183. package/cjs/Tree/utils/hasVisibleChildren.js +16 -0
  184. package/cjs/Tree/utils/indentTreeNode.d.ts +3 -0
  185. package/cjs/Tree/utils/indentTreeNode.js +18 -0
  186. package/cjs/Tree/utils/index.d.ts +11 -0
  187. package/cjs/Tree/utils/index.js +35 -0
  188. package/cjs/Tree/utils/isExpand.d.ts +6 -0
  189. package/cjs/Tree/utils/isExpand.js +14 -0
  190. package/cjs/Tree/utils/isSearching.d.ts +1 -0
  191. package/cjs/Tree/utils/isSearching.js +10 -0
  192. package/cjs/Tree/utils/treeKeyboardInteractions.d.ts +21 -0
  193. package/cjs/Tree/utils/treeKeyboardInteractions.js +49 -0
  194. package/cjs/TreePicker/TreePicker.d.ts +27 -21
  195. package/cjs/TreePicker/TreePicker.js +155 -575
  196. package/cjs/TreePicker/hooks/useFocusState.d.ts +20 -0
  197. package/cjs/TreePicker/hooks/useFocusState.js +53 -0
  198. package/cjs/index.d.ts +2 -0
  199. package/cjs/index.js +3 -1
  200. package/cjs/internals/Picker/Listbox.d.ts +40 -10
  201. package/cjs/internals/Picker/Listbox.js +21 -16
  202. package/cjs/internals/Picker/PickerIndicator.d.ts +2 -1
  203. package/cjs/internals/Picker/PickerIndicator.js +7 -3
  204. package/cjs/internals/Picker/hooks/useFocusItemValue.js +4 -4
  205. package/cjs/internals/Picker/hooks/usePickerRef.d.ts +1 -4
  206. package/cjs/internals/Picker/hooks/usePickerRef.js +3 -20
  207. package/cjs/internals/Picker/index.d.ts +0 -1
  208. package/cjs/internals/Picker/index.js +1 -4
  209. package/cjs/internals/Picker/utils.js +12 -12
  210. package/cjs/internals/{Picker → Tree}/TreeView.js +1 -1
  211. package/cjs/internals/Tree/index.d.ts +1 -0
  212. package/cjs/internals/Tree/index.js +8 -0
  213. package/cjs/internals/Tree/utils/filterNodesOfTree.d.ts +5 -0
  214. package/cjs/internals/Tree/utils/filterNodesOfTree.js +31 -0
  215. package/cjs/internals/Tree/utils/findNodeOfTree.d.ts +1 -0
  216. package/cjs/internals/Tree/utils/findNodeOfTree.js +26 -0
  217. package/cjs/internals/Tree/utils/getParentMap.d.ts +15 -0
  218. package/cjs/internals/Tree/utils/getParentMap.js +52 -0
  219. package/cjs/internals/Tree/utils/getPathTowardsItem.d.ts +4 -0
  220. package/cjs/internals/Tree/utils/getPathTowardsItem.js +16 -0
  221. package/cjs/internals/Tree/utils/index.d.ts +4 -0
  222. package/cjs/internals/Tree/utils/index.js +14 -0
  223. package/cjs/internals/Windowing/List.d.ts +1 -0
  224. package/cjs/internals/Windowing/List.js +5 -1
  225. package/cjs/internals/Windowing/index.d.ts +1 -1
  226. package/cjs/internals/Windowing/index.js +4 -2
  227. package/cjs/internals/hooks/index.d.ts +1 -0
  228. package/cjs/internals/hooks/index.js +8 -0
  229. package/cjs/internals/hooks/useFoucsVirtualListItem.d.ts +7 -0
  230. package/cjs/internals/hooks/useFoucsVirtualListItem.js +26 -0
  231. package/cjs/{utils → internals/utils}/getSafeRegExpString.d.ts +1 -1
  232. package/cjs/{utils → internals/utils}/getSafeRegExpString.js +1 -1
  233. package/cjs/internals/utils/index.d.ts +2 -0
  234. package/cjs/internals/utils/index.js +9 -0
  235. package/cjs/internals/utils/stringifyReactNode.d.ts +2 -0
  236. package/cjs/internals/utils/stringifyReactNode.js +17 -0
  237. package/cjs/utils/constants.d.ts +0 -2
  238. package/cjs/utils/constants.js +1 -6
  239. package/cjs/utils/getDataGroupBy.js +3 -3
  240. package/cjs/utils/index.d.ts +0 -3
  241. package/cjs/utils/index.js +1 -10
  242. package/cjs/utils/useIsomorphicLayoutEffect.d.ts +2 -2
  243. package/dist/rsuite-no-reset-rtl.css +301 -302
  244. package/dist/rsuite-no-reset-rtl.min.css +1 -1
  245. package/dist/rsuite-no-reset-rtl.min.css.map +1 -1
  246. package/dist/rsuite-no-reset.css +303 -306
  247. package/dist/rsuite-no-reset.min.css +1 -1
  248. package/dist/rsuite-no-reset.min.css.map +1 -1
  249. package/dist/rsuite-rtl.css +302 -303
  250. package/dist/rsuite-rtl.min.css +1 -1
  251. package/dist/rsuite-rtl.min.css.map +1 -1
  252. package/dist/rsuite.css +304 -307
  253. package/dist/rsuite.js +657 -140
  254. package/dist/rsuite.js.map +1 -1
  255. package/dist/rsuite.min.css +1 -1
  256. package/dist/rsuite.min.css.map +1 -1
  257. package/dist/rsuite.min.js +1 -1
  258. package/dist/rsuite.min.js.map +1 -1
  259. package/esm/@types/common.d.ts +41 -4
  260. package/esm/AutoComplete/AutoComplete.js +2 -1
  261. package/esm/CascadeTree/CascadeTree.js +2 -1
  262. package/esm/CascadeTree/SearchView.js +6 -13
  263. package/esm/CascadeTree/hooks/usePaths.js +1 -1
  264. package/esm/CascadeTree/hooks/useSearch.js +2 -1
  265. package/esm/CascadeTree/utils.d.ts +0 -11
  266. package/esm/CascadeTree/utils.js +0 -22
  267. package/esm/Cascader/Cascader.js +2 -1
  268. package/esm/CheckPicker/CheckPicker.js +4 -7
  269. package/esm/CheckTree/CheckTree.d.ts +16 -0
  270. package/esm/CheckTree/CheckTree.js +105 -0
  271. package/esm/CheckTree/CheckTreeNode.d.ts +72 -0
  272. package/esm/CheckTree/CheckTreeNode.js +110 -0
  273. package/esm/CheckTree/CheckTreeView.d.ts +70 -0
  274. package/esm/CheckTree/CheckTreeView.js +304 -0
  275. package/esm/CheckTree/hooks/useTreeCheckState.d.ts +10 -0
  276. package/esm/CheckTree/hooks/useTreeCheckState.js +87 -0
  277. package/esm/CheckTree/hooks/useTreeNodeProps.d.ts +22 -0
  278. package/esm/CheckTree/hooks/useTreeNodeProps.js +52 -0
  279. package/esm/CheckTree/hooks/useTreeValue.d.ts +5 -0
  280. package/esm/CheckTree/hooks/useTreeValue.js +16 -0
  281. package/esm/CheckTree/index.d.ts +2 -14
  282. package/esm/CheckTree/index.js +1 -21
  283. package/esm/CheckTree/utils.d.ts +53 -0
  284. package/esm/{CheckTreePicker → CheckTree}/utils.js +72 -22
  285. package/esm/CheckTreePicker/CheckTreePicker.d.ts +30 -12
  286. package/esm/CheckTreePicker/CheckTreePicker.js +156 -607
  287. package/esm/CheckTreePicker/hooks/useFocusState.d.ts +16 -0
  288. package/esm/CheckTreePicker/hooks/useFocusState.js +37 -0
  289. package/esm/DateInput/DateField.js +3 -1
  290. package/esm/DateInput/DateInput.js +19 -18
  291. package/{cjs/DateInput → esm/DateInput/hooks}/useDateInputState.d.ts +1 -1
  292. package/esm/DateInput/{useDateInputState.js → hooks/useDateInputState.js} +2 -2
  293. package/esm/DateInput/hooks/useFieldCursor.d.ts +6 -0
  294. package/esm/DateInput/hooks/useFieldCursor.js +49 -0
  295. package/esm/DateInput/hooks/useSelectedState.d.ts +14 -0
  296. package/esm/DateInput/hooks/useSelectedState.js +17 -0
  297. package/esm/DateInput/index.d.ts +5 -3
  298. package/esm/DateInput/index.js +5 -3
  299. package/esm/DateInput/utils.d.ts +0 -1
  300. package/esm/DateInput/utils.js +2 -23
  301. package/esm/DatePicker/DatePicker.d.ts +4 -0
  302. package/esm/DatePicker/DatePicker.js +20 -5
  303. package/esm/DatePicker/types.d.ts +0 -4
  304. package/esm/DateRangeInput/DateRangeInput.js +17 -18
  305. package/esm/DateRangePicker/DateRangePicker.d.ts +51 -23
  306. package/esm/DateRangePicker/DateRangePicker.js +71 -51
  307. package/esm/DateRangePicker/hooks/useDateDisabled.d.ts +16 -0
  308. package/esm/DateRangePicker/hooks/useDateDisabled.js +26 -0
  309. package/esm/DateRangePicker/types.d.ts +1 -0
  310. package/esm/Highlight/Highlight.d.ts +14 -0
  311. package/esm/Highlight/Highlight.js +52 -0
  312. package/esm/Highlight/index.d.ts +3 -0
  313. package/esm/Highlight/index.js +3 -0
  314. package/esm/Highlight/utils/highlightText.d.ts +5 -0
  315. package/esm/Highlight/utils/highlightText.js +25 -0
  316. package/esm/InputPicker/InputPicker.js +3 -7
  317. package/esm/MultiCascadeTree/SearchView.js +6 -14
  318. package/esm/MultiCascadeTree/hooks/useCascadeValue.js +15 -1
  319. package/esm/MultiCascadeTree/hooks/useColumnData.js +1 -1
  320. package/esm/MultiCascadeTree/hooks/useFlattenData.js +1 -1
  321. package/esm/MultiCascadeTree/hooks/useSearch.js +2 -1
  322. package/esm/MultiCascadeTree/utils.d.ts +4 -4
  323. package/esm/MultiCascadeTree/utils.js +18 -9
  324. package/esm/MultiCascader/MultiCascader.js +1 -1
  325. package/esm/SelectPicker/SelectPicker.js +2 -6
  326. package/esm/Tree/IndentLine.d.ts +3 -0
  327. package/esm/Tree/IndentLine.js +12 -0
  328. package/esm/Tree/Tree.d.ts +4 -92
  329. package/esm/Tree/Tree.js +78 -18
  330. package/esm/Tree/TreeNode.d.ts +101 -0
  331. package/esm/Tree/TreeNode.js +141 -0
  332. package/esm/Tree/TreeNodeToggle.d.ts +9 -0
  333. package/esm/Tree/TreeNodeToggle.js +50 -0
  334. package/esm/Tree/TreeProvider.d.ts +52 -0
  335. package/esm/Tree/TreeProvider.js +74 -0
  336. package/esm/Tree/TreeView.d.ts +68 -0
  337. package/esm/Tree/TreeView.js +299 -0
  338. package/esm/Tree/hooks/useExpandTree.d.ts +60 -0
  339. package/esm/Tree/hooks/useExpandTree.js +70 -0
  340. package/esm/Tree/hooks/useFlattenTree.d.ts +42 -0
  341. package/esm/Tree/hooks/useFlattenTree.js +92 -0
  342. package/esm/Tree/hooks/useFocusTree.d.ts +24 -0
  343. package/esm/Tree/hooks/useFocusTree.js +153 -0
  344. package/esm/Tree/hooks/useForceUpdate.d.ts +2 -0
  345. package/esm/Tree/hooks/useForceUpdate.js +11 -0
  346. package/esm/Tree/hooks/useTreeDrag.d.ts +32 -0
  347. package/esm/Tree/hooks/useTreeDrag.js +264 -0
  348. package/esm/Tree/hooks/useTreeNodeProps.d.ts +29 -0
  349. package/esm/Tree/hooks/useTreeNodeProps.js +76 -0
  350. package/esm/Tree/hooks/useTreeNodeRefs.d.ts +6 -0
  351. package/esm/Tree/hooks/useTreeNodeRefs.js +18 -0
  352. package/esm/Tree/hooks/useTreeSearch.d.ts +18 -0
  353. package/esm/Tree/hooks/useTreeSearch.js +69 -0
  354. package/esm/Tree/hooks/useTreeWithChildren.d.ts +14 -0
  355. package/esm/Tree/hooks/useTreeWithChildren.js +59 -0
  356. package/esm/Tree/hooks/useVirtualizedTreeData.d.ts +7 -0
  357. package/esm/Tree/hooks/useVirtualizedTreeData.js +77 -0
  358. package/esm/Tree/types.d.ts +257 -0
  359. package/esm/Tree/types.js +30 -0
  360. package/esm/Tree/utils/flattenTree.d.ts +25 -0
  361. package/esm/Tree/utils/flattenTree.js +88 -0
  362. package/esm/Tree/utils/focusableTree.d.ts +55 -0
  363. package/esm/Tree/utils/focusableTree.js +146 -0
  364. package/esm/Tree/utils/formatNodeRefKey.d.ts +4 -0
  365. package/esm/Tree/utils/formatNodeRefKey.js +7 -0
  366. package/esm/Tree/utils/getExpandItemValues.d.ts +11 -0
  367. package/esm/Tree/utils/getExpandItemValues.js +17 -0
  368. package/esm/Tree/utils/getNodeParentKeys.d.ts +5 -0
  369. package/esm/Tree/utils/getNodeParentKeys.js +17 -0
  370. package/esm/Tree/utils/getTreeActiveNode.d.ts +5 -0
  371. package/esm/Tree/utils/getTreeActiveNode.js +16 -0
  372. package/esm/Tree/utils/hasVisibleChildren.d.ts +5 -0
  373. package/esm/Tree/utils/hasVisibleChildren.js +12 -0
  374. package/esm/Tree/utils/indentTreeNode.d.ts +3 -0
  375. package/esm/Tree/utils/indentTreeNode.js +14 -0
  376. package/esm/Tree/utils/index.d.ts +11 -0
  377. package/esm/Tree/utils/index.js +14 -0
  378. package/esm/Tree/utils/isExpand.d.ts +6 -0
  379. package/esm/Tree/utils/isExpand.js +11 -0
  380. package/esm/Tree/utils/isSearching.d.ts +1 -0
  381. package/esm/Tree/utils/isSearching.js +5 -0
  382. package/esm/Tree/utils/treeKeyboardInteractions.d.ts +21 -0
  383. package/esm/Tree/utils/treeKeyboardInteractions.js +43 -0
  384. package/esm/TreePicker/TreePicker.d.ts +27 -21
  385. package/esm/TreePicker/TreePicker.js +158 -579
  386. package/esm/TreePicker/hooks/useFocusState.d.ts +20 -0
  387. package/esm/TreePicker/hooks/useFocusState.js +48 -0
  388. package/esm/index.d.ts +2 -0
  389. package/esm/index.js +1 -0
  390. package/esm/internals/Picker/Listbox.d.ts +40 -10
  391. package/esm/internals/Picker/Listbox.js +22 -16
  392. package/esm/internals/Picker/PickerIndicator.d.ts +2 -1
  393. package/esm/internals/Picker/PickerIndicator.js +7 -3
  394. package/esm/internals/Picker/hooks/useFocusItemValue.js +1 -1
  395. package/esm/internals/Picker/hooks/usePickerRef.d.ts +1 -4
  396. package/esm/internals/Picker/hooks/usePickerRef.js +3 -20
  397. package/esm/internals/Picker/index.d.ts +0 -1
  398. package/esm/internals/Picker/index.js +0 -1
  399. package/esm/internals/Picker/utils.js +1 -1
  400. package/esm/internals/{Picker → Tree}/TreeView.js +1 -1
  401. package/esm/internals/Tree/index.d.ts +1 -0
  402. package/esm/internals/Tree/index.js +2 -0
  403. package/esm/internals/Tree/utils/filterNodesOfTree.d.ts +5 -0
  404. package/esm/internals/Tree/utils/filterNodesOfTree.js +26 -0
  405. package/esm/internals/Tree/utils/findNodeOfTree.d.ts +1 -0
  406. package/esm/internals/Tree/utils/findNodeOfTree.js +22 -0
  407. package/esm/internals/Tree/utils/getParentMap.d.ts +15 -0
  408. package/esm/internals/Tree/utils/getParentMap.js +47 -0
  409. package/esm/internals/Tree/utils/getPathTowardsItem.d.ts +4 -0
  410. package/esm/internals/Tree/utils/getPathTowardsItem.js +12 -0
  411. package/esm/internals/Tree/utils/index.d.ts +4 -0
  412. package/esm/internals/Tree/utils/index.js +5 -0
  413. package/esm/internals/Windowing/List.d.ts +1 -0
  414. package/esm/internals/Windowing/List.js +3 -0
  415. package/esm/internals/Windowing/index.d.ts +1 -1
  416. package/esm/internals/Windowing/index.js +1 -1
  417. package/esm/internals/hooks/index.d.ts +1 -0
  418. package/esm/internals/hooks/index.js +2 -0
  419. package/esm/internals/hooks/useFoucsVirtualListItem.d.ts +7 -0
  420. package/esm/internals/hooks/useFoucsVirtualListItem.js +22 -0
  421. package/esm/{utils → internals/utils}/getSafeRegExpString.d.ts +1 -1
  422. package/esm/{utils → internals/utils}/getSafeRegExpString.js +1 -1
  423. package/esm/internals/utils/index.d.ts +2 -0
  424. package/esm/internals/utils/index.js +3 -0
  425. package/esm/internals/utils/stringifyReactNode.d.ts +2 -0
  426. package/esm/internals/utils/stringifyReactNode.js +12 -0
  427. package/esm/utils/constants.d.ts +0 -2
  428. package/esm/utils/constants.js +0 -3
  429. package/esm/utils/getDataGroupBy.js +1 -1
  430. package/esm/utils/index.d.ts +0 -3
  431. package/esm/utils/index.js +0 -3
  432. package/esm/utils/useIsomorphicLayoutEffect.d.ts +2 -2
  433. package/internals/Picker/styles/index.less +27 -1
  434. package/package.json +2 -2
  435. package/styles/color-modes/dark.less +5 -1
  436. package/styles/color-modes/high-contrast.less +8 -2
  437. package/styles/color-modes/light.less +10 -5
  438. package/styles/index.less +1 -0
  439. package/TreePicker/styles/mixin.less +0 -7
  440. package/cjs/CheckTreePicker/CheckTreeNode.d.ts +0 -28
  441. package/cjs/CheckTreePicker/CheckTreeNode.js +0 -140
  442. package/cjs/CheckTreePicker/utils.d.ts +0 -44
  443. package/cjs/Tree/TreeContext.d.ts +0 -6
  444. package/cjs/Tree/TreeContext.js +0 -10
  445. package/cjs/TreePicker/TreeNode.d.ts +0 -36
  446. package/cjs/TreePicker/TreeNode.js +0 -174
  447. package/cjs/utils/appendTooltip.d.ts +0 -10
  448. package/cjs/utils/appendTooltip.js +0 -20
  449. package/cjs/utils/stringToObject.d.ts +0 -2
  450. package/cjs/utils/stringToObject.js +0 -19
  451. package/cjs/utils/treeUtils.d.ts +0 -304
  452. package/cjs/utils/treeUtils.js +0 -1095
  453. package/esm/CheckTreePicker/CheckTreeNode.d.ts +0 -28
  454. package/esm/CheckTreePicker/CheckTreeNode.js +0 -133
  455. package/esm/CheckTreePicker/utils.d.ts +0 -44
  456. package/esm/Tree/TreeContext.d.ts +0 -6
  457. package/esm/Tree/TreeContext.js +0 -4
  458. package/esm/TreePicker/TreeNode.d.ts +0 -36
  459. package/esm/TreePicker/TreeNode.js +0 -167
  460. package/esm/utils/appendTooltip.d.ts +0 -10
  461. package/esm/utils/appendTooltip.js +0 -15
  462. package/esm/utils/stringToObject.d.ts +0 -2
  463. package/esm/utils/stringToObject.js +0 -14
  464. package/esm/utils/treeUtils.d.ts +0 -304
  465. package/esm/utils/treeUtils.js +0 -1043
  466. /package/cjs/DateInput/{useIsFocused.d.ts → hooks/useIsFocused.d.ts} +0 -0
  467. /package/cjs/DateInput/{useIsFocused.js → hooks/useIsFocused.js} +0 -0
  468. /package/cjs/DateInput/{useKeyboardInputEvent.d.ts → hooks/useKeyboardInputEvent.d.ts} +0 -0
  469. /package/cjs/DateInput/{useKeyboardInputEvent.js → hooks/useKeyboardInputEvent.js} +0 -0
  470. /package/cjs/internals/{Picker → Tree}/TreeView.d.ts +0 -0
  471. /package/esm/DateInput/{useIsFocused.d.ts → hooks/useIsFocused.d.ts} +0 -0
  472. /package/esm/DateInput/{useIsFocused.js → hooks/useIsFocused.js} +0 -0
  473. /package/esm/DateInput/{useKeyboardInputEvent.d.ts → hooks/useKeyboardInputEvent.d.ts} +0 -0
  474. /package/esm/DateInput/{useKeyboardInputEvent.js → hooks/useKeyboardInputEvent.js} +0 -0
  475. /package/esm/internals/{Picker → Tree}/TreeView.d.ts +0 -0
@@ -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;
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ export declare function highlightText(text: string, props: {
3
+ query?: string | string[];
4
+ renderMark: (patch: string, index: number) => React.ReactNode;
5
+ }): string | React.ReactNode[];
@@ -0,0 +1,25 @@
1
+ 'use client';
2
+ import { getSafeRegExpString } from '../../internals/utils';
3
+ export function highlightText(text, props) {
4
+ var query = props.query,
5
+ renderMark = props.renderMark;
6
+ if (!query || !text) {
7
+ return text;
8
+ }
9
+ var queries = Array.isArray(query) ? query : [query];
10
+ var regx = new RegExp(queries.map(function (q) {
11
+ return getSafeRegExpString(q);
12
+ }).join('|'), 'ig');
13
+ var texts = [];
14
+ var strArr = text.split(regx);
15
+ var highStrArr = text.match(regx);
16
+ for (var i = 0; i < strArr.length; i++) {
17
+ if (strArr[i]) {
18
+ texts.push(strArr[i]);
19
+ }
20
+ if (highStrArr !== null && highStrArr !== void 0 && highStrArr[i]) {
21
+ texts.push(renderMark(highStrArr[i], i));
22
+ }
23
+ }
24
+ return texts;
25
+ }
@@ -5,7 +5,6 @@ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWith
5
5
  var _templateObject, _templateObject2, _templateObject3, _templateObject4;
6
6
  import React, { useEffect } from 'react';
7
7
  import PropTypes from 'prop-types';
8
- import isUndefined from 'lodash/isUndefined';
9
8
  import isNil from 'lodash/isNil';
10
9
  import isFunction from 'lodash/isFunction';
11
10
  import remove from 'lodash/remove';
@@ -14,7 +13,7 @@ import isArray from 'lodash/isArray';
14
13
  import omit from 'lodash/omit';
15
14
  import pick from 'lodash/pick';
16
15
  import shallowEqual from '../utils/shallowEqual';
17
- import { filterNodesOfTree } from '../utils/treeUtils';
16
+ import { filterNodesOfTree } from '../internals/Tree/utils';
18
17
  import Plaintext from '../internals/Plaintext';
19
18
  import { createChainedFunction, tplTransform, useClassNames, useCustom, useControlled, useEventCallback, mergeRefs, isOneOf, KEY_VALUES } from '../utils';
20
19
  import { oneOf } from '../internals/propTypes';
@@ -553,11 +552,8 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
553
552
  activeItemValues: multi ? value : [value],
554
553
  focusItemValue: focusItemValue,
555
554
  maxHeight: menuMaxHeight,
556
- data: items
557
- // FIXME-Doma
558
- // `group` is redundant so long as `groupBy` exists
559
- ,
560
- group: !isUndefined(groupBy),
555
+ data: items,
556
+ query: searchKeyword,
561
557
  groupBy: groupBy,
562
558
  onSelect: multi ? handleCheckTag : handleSelectItem,
563
559
  renderMenuGroup: renderMenuGroup,
@@ -3,11 +3,10 @@ import _extends from "@babel/runtime/helpers/esm/extends";
3
3
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
4
4
  import React from 'react';
5
5
  import { useClassNames, useCustom } from '../utils';
6
- import { getNodeParents } from '../utils/treeUtils';
7
6
  import SearchBox from '../internals/SearchBox';
8
7
  import Checkbox from '../Checkbox';
9
- import { isSomeChildChecked } from './utils';
10
- import { highlightLabel } from '../CascadeTree/utils';
8
+ import Highlight from '../Highlight';
9
+ import { isSomeChildChecked, getNodeParents } from './utils';
11
10
  function SearchView(props) {
12
11
  var _props$as = props.as,
13
12
  Component = _props$as === void 0 ? 'div' : _props$as,
@@ -37,17 +36,10 @@ function SearchView(props) {
37
36
  var renderSearchRow = function renderSearchRow(item, key) {
38
37
  var _extends2;
39
38
  var nodes = getNodeParents(item);
40
- var label = highlightLabel({
41
- item: item,
42
- labelKey: labelKey,
43
- searchKeyword: searchKeyword,
44
- render: function render(patch, index) {
45
- return /*#__PURE__*/React.createElement("span", {
46
- key: index,
47
- className: prefix('match')
48
- }, patch);
49
- }
50
- });
39
+ var label = /*#__PURE__*/React.createElement(Highlight, {
40
+ as: "span",
41
+ query: searchKeyword
42
+ }, item[labelKey]);
51
43
  nodes.push(_extends({}, item, (_extends2 = {}, _extends2[labelKey] = label, _extends2)));
52
44
  var active = value.some(function (value) {
53
45
  if (cascade) {
@@ -3,7 +3,21 @@ import { useState, useEffect, useCallback } from 'react';
3
3
  import uniq from 'lodash/uniq';
4
4
  import remove from 'lodash/remove';
5
5
  import { useEventCallback } from '../../utils';
6
- import { getParents, removeAllChildrenValue, getOtherItemValuesByUnselectChild } from '../utils';
6
+ import { removeAllChildrenValue, getOtherItemValuesByUnselectChild } from '../utils';
7
+
8
+ /**
9
+ * Get all parents of a node
10
+ * @param node
11
+ */
12
+ var getParents = function getParents(node) {
13
+ var parents = [];
14
+ if (!node.parent) {
15
+ return parents;
16
+ }
17
+ parents.push(node.parent);
18
+ parents = parents.concat(getParents(node.parent));
19
+ return parents;
20
+ };
7
21
 
8
22
  /**
9
23
  * A hook that converts the value into a cascading value
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
  import { useState } from 'react';
3
3
  import slice from 'lodash/slice';
4
- import { UNSAFE_flattenTree } from '../../utils/treeUtils';
4
+ import { UNSAFE_flattenTree } from '../../Tree/utils';
5
5
  /**
6
6
  * A hook for column data
7
7
  * @param flattenData
@@ -1,6 +1,6 @@
1
1
  'use client';
2
2
  import { useState, useCallback, useEffect } from 'react';
3
- import { UNSAFE_flattenTree } from '../../utils/treeUtils';
3
+ import { UNSAFE_flattenTree } from '../../Tree/utils';
4
4
  import { attachParent } from '../../utils/attachParent';
5
5
  /**
6
6
  * A hook to flatten tree structure data