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> {
@@ -27,8 +27,10 @@ var _utils2 = require("./utils");
27
27
  var _propTypes2 = require("../internals/propTypes");
28
28
  var _DateRangePickerContext = _interopRequireDefault(require("./DateRangePickerContext"));
29
29
  var _DateRangeInput = _interopRequireDefault(require("../DateRangeInput"));
30
+ var _Input = _interopRequireDefault(require("../Input"));
30
31
  var _InputGroup = _interopRequireDefault(require("../InputGroup"));
31
32
  var _Header = _interopRequireDefault(require("./Header"));
33
+ var _useDateDisabled = _interopRequireDefault(require("./hooks/useDateDisabled"));
32
34
  var _templateObject;
33
35
  /**
34
36
  * A date range picker allows you to select a date range from a calendar.
@@ -54,7 +56,7 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
54
56
  defaultValue = props.defaultValue,
55
57
  plaintext = props.plaintext,
56
58
  disabled = props.disabled,
57
- DEPRECATED_disabledDateProp = props.disabledDate,
59
+ DEPRECATED_disabledDate = props.disabledDate,
58
60
  shouldDisableDate = props.shouldDisableDate,
59
61
  _props$format = props.format,
60
62
  formatStr = _props$format === void 0 ? 'yyyy-MM-dd' : _props$format,
@@ -96,7 +98,8 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
96
98
  onSelect = props.onSelect,
97
99
  onShortcutClick = props.onShortcutClick,
98
100
  renderTitle = props.renderTitle,
99
- restProps = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "classPrefix", "className", "appearance", "editable", "cleanable", "character", "defaultCalendarValue", "defaultValue", "plaintext", "disabled", "disabledDate", "shouldDisableDate", "format", "hoverRange", "id", "isoWeek", "limitEndYear", "limitStartYear", "locale", "loading", "label", "menuClassName", "menuStyle", "oneTap", "placeholder", "placement", "ranges", "readOnly", "showOneCalendar", "showWeekNumbers", "showMeridian", "showHeader", "style", "size", "caretAs", "value", "onChange", "onClean", "onEnter", "onEntered", "onExited", "onOk", "onSelect", "onShortcutClick", "renderTitle"]);
101
+ renderValue = props.renderValue,
102
+ restProps = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "classPrefix", "className", "appearance", "editable", "cleanable", "character", "defaultCalendarValue", "defaultValue", "plaintext", "disabled", "disabledDate", "shouldDisableDate", "format", "hoverRange", "id", "isoWeek", "limitEndYear", "limitStartYear", "locale", "loading", "label", "menuClassName", "menuStyle", "oneTap", "placeholder", "placement", "ranges", "readOnly", "showOneCalendar", "showWeekNumbers", "showMeridian", "showHeader", "style", "size", "caretAs", "value", "onChange", "onClean", "onEnter", "onEntered", "onExited", "onOk", "onSelect", "onShortcutClick", "renderTitle", "renderValue"]);
100
103
  var id = (0, _utils.useUniqueId)('rs-', idProp);
101
104
  var _usePickerRef = (0, _Picker.usePickerRef)(ref),
102
105
  trigger = _usePickerRef.trigger,
@@ -150,6 +153,12 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
150
153
  * so declare a Ref to temporarily store the `selectValue` of the first click.
151
154
  */
152
155
  var selectRangeValueRef = (0, _react.useRef)(null);
156
+
157
+ /**
158
+ *
159
+ * The key of the currently active calendar panel.
160
+ * Used to switch when only one calendar panel is displayed.
161
+ */
153
162
  var _useState5 = (0, _react.useState)(),
154
163
  activeCalendarKey = _useState5[0],
155
164
  setActiveCalendarKey = _useState5[1];
@@ -198,9 +207,8 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
198
207
  setSelectedDates(nextCalendarDate);
199
208
  }
200
209
  };
201
-
202
- // if valueProp changed then update selectValue/hoverValue
203
210
  (0, _react.useEffect)(function () {
211
+ // If value changes, update the selected and hover date values on the calendar panel.
204
212
  setSelectedDates(valueProp !== null && valueProp !== void 0 ? valueProp : []);
205
213
  setHoverDateRange(valueProp !== null && valueProp !== void 0 ? valueProp : null);
206
214
  }, [valueProp]);
@@ -481,41 +489,39 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
481
489
  });
482
490
  setDateRange(event, selectValue);
483
491
  });
484
- var isDateDisabled = function isDateDisabled(date, options) {
485
- var selectDate = options.selectDate,
486
- selectedDone = options.selectedDone,
487
- target = options.target;
488
- if (typeof shouldDisableDate === 'function') {
489
- return shouldDisableDate(date, selectDate, selectedDone, target);
490
- }
491
- if (typeof DEPRECATED_disabledDateProp === 'function') {
492
- return DEPRECATED_disabledDateProp(date, selectDate, selectedDone, target);
492
+ var isDateDisabled = (0, _useDateDisabled.default)({
493
+ shouldDisableDate: shouldDisableDate,
494
+ DEPRECATED_disabledDate: DEPRECATED_disabledDate
495
+ });
496
+ var disableByRange = function disableByRange(start, end, target) {
497
+ if (isDateDisabled) {
498
+ // If the date is between the start and the end the button is disabled
499
+ while ((0, _dateUtils.isBefore)(start, end) || (0, _dateUtils.isSameDay)(start, end)) {
500
+ if (isDateDisabled(start, {
501
+ selectDate: selectedDates,
502
+ selectedDone: isSelectedIdle,
503
+ target: target
504
+ })) {
505
+ return true;
506
+ }
507
+ start = (0, _dateUtils.addDays)(start, 1);
508
+ }
493
509
  }
494
510
  return false;
495
511
  };
496
- var disableByBetween = function disableByBetween(start, end, type) {
497
- // If the date is between the start and the end
498
- // the button is disabled
499
- while ((0, _dateUtils.isBefore)(start, end) || (0, _dateUtils.isSameDay)(start, end)) {
500
- if (isDateDisabled(start, {
501
- selectDate: selectedDates,
502
- selectedDone: isSelectedIdle,
503
- target: type
504
- })) {
512
+ var disableOkButton = function disableOkButton() {
513
+ var _trigger$current;
514
+ var _ref4 = ((_trigger$current = trigger.current) === null || _trigger$current === void 0 ? void 0 : _trigger$current.getState()) || {},
515
+ open = _ref4.open;
516
+ if (open) {
517
+ var start = selectedDates[0],
518
+ end = selectedDates[1];
519
+ if (!start || !end || !isSelectedIdle) {
505
520
  return true;
506
521
  }
507
- start = (0, _dateUtils.addDays)(start, 1);
508
522
  }
509
523
  return false;
510
524
  };
511
- var disableOkButton = function disableOkButton() {
512
- var start = selectedDates[0],
513
- end = selectedDates[1];
514
- if (!start || !end || !isSelectedIdle) {
515
- return true;
516
- }
517
- return disableByBetween(start, end, _utils.DATERANGE_DISABLED_TARGET.TOOLBAR_BUTTON_OK);
518
- };
519
525
  var disableShortcut = function disableShortcut(value) {
520
526
  if (value === void 0) {
521
527
  value = [];
@@ -526,26 +532,33 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
526
532
  if (!start || !end) {
527
533
  return true;
528
534
  }
529
- return disableByBetween(start, end, _utils.DATERANGE_DISABLED_TARGET.TOOLBAR_SHORTCUT);
535
+ return disableByRange(start, end, _utils.DATERANGE_DISABLED_TARGET.TOOLBAR_SHORTCUT);
530
536
  };
531
537
  var handleClose = (0, _utils.useEventCallback)(function () {
532
- var _trigger$current, _trigger$current$clos;
533
- (_trigger$current = trigger.current) === null || _trigger$current === void 0 ? void 0 : (_trigger$current$clos = _trigger$current.close) === null || _trigger$current$clos === void 0 ? void 0 : _trigger$current$clos.call(_trigger$current);
538
+ var _trigger$current2, _trigger$current2$clo;
539
+ (_trigger$current2 = trigger.current) === null || _trigger$current2 === void 0 ? void 0 : (_trigger$current2$clo = _trigger$current2.close) === null || _trigger$current2$clo === void 0 ? void 0 : _trigger$current2$clo.call(_trigger$current2);
534
540
  });
535
541
  var handleInputKeyDown = (0, _utils.useEventCallback)(function (event) {
536
542
  (0, _Picker.onMenuKeyDown)(event, {
537
543
  esc: handleClose,
538
544
  enter: function enter() {
539
- var _trigger$current2;
540
- var _ref4 = ((_trigger$current2 = trigger.current) === null || _trigger$current2 === void 0 ? void 0 : _trigger$current2.getState()) || {},
541
- open = _ref4.open;
545
+ var _trigger$current3;
546
+ var _ref5 = ((_trigger$current3 = trigger.current) === null || _trigger$current3 === void 0 ? void 0 : _trigger$current3.getState()) || {},
547
+ open = _ref5.open;
542
548
  if (!open) {
543
- var _trigger$current3;
544
- (_trigger$current3 = trigger.current) === null || _trigger$current3 === void 0 ? void 0 : _trigger$current3.open();
549
+ var _trigger$current4;
550
+ (_trigger$current4 = trigger.current) === null || _trigger$current4 === void 0 ? void 0 : _trigger$current4.open();
545
551
  }
546
552
  }
547
553
  });
548
554
  });
555
+ var disableCalendarDate = isDateDisabled ? function (date, values, type) {
556
+ return isDateDisabled(date, {
557
+ selectDate: values,
558
+ selectedDone: isSelectedIdle,
559
+ target: type
560
+ });
561
+ } : undefined;
549
562
  var renderCalendarOverlay = function renderCalendarOverlay(positionProps, speakerRef) {
550
563
  var left = positionProps.left,
551
564
  top = positionProps.top,
@@ -566,13 +579,6 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
566
579
  left: left,
567
580
  top: top
568
581
  });
569
- var disabledDate = function disabledDate(date, values, type) {
570
- return isDateDisabled(date, {
571
- selectDate: values,
572
- selectedDone: isSelectedIdle,
573
- target: type
574
- });
575
- };
576
582
  var calendarProps = {
577
583
  locale: locale,
578
584
  isoWeek: isoWeek,
@@ -584,12 +590,12 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
584
590
  format: formatStr,
585
591
  value: selectedDates,
586
592
  hoverRangeValue: hoverDateRange !== null && hoverDateRange !== void 0 ? hoverDateRange : undefined,
593
+ disabledDate: disableCalendarDate,
587
594
  onSelect: handleSelectDate,
588
595
  onChangeCalendarMonth: onChangeCalendarMonth,
589
596
  onChangeCalendarTime: onChangeCalendarTime,
590
597
  onToggleMeridian: onToggleMeridian,
591
598
  onMouseMove: onMouseMove,
592
- disabledDate: disabledDate,
593
599
  renderTitle: renderTitle
594
600
  };
595
601
  var getCalendars = function getCalendars() {
@@ -697,7 +703,7 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
697
703
  selectedDone: isSelectedIdle,
698
704
  target: _utils.DATERANGE_DISABLED_TARGET.INPUT
699
705
  };
700
- if (isDateDisabled(startDate, disabledOptions) || isDateDisabled(endDate, disabledOptions)) {
706
+ if (isDateDisabled !== null && isDateDisabled !== void 0 && isDateDisabled(startDate, disabledOptions) || isDateDisabled !== null && isDateDisabled !== void 0 && isDateDisabled(endDate, disabledOptions)) {
701
707
  return true;
702
708
  }
703
709
  return false;
@@ -710,6 +716,19 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
710
716
  rest = _partitionHTMLProps[1];
711
717
  var showCleanButton = cleanable && hasValue && !readOnly;
712
718
  var invalidValue = value && isErrorValue(value);
719
+
720
+ // Custom rendering of the selected value
721
+ var customValue = null;
722
+
723
+ // Input box is read-only when the component is uneditable or loading state
724
+ var inputReadOnly = readOnly || !editable || loading || false;
725
+ if (typeof renderValue === 'function' && value) {
726
+ customValue = renderValue(value, formatStr);
727
+
728
+ // If the custom rendering value, the input box is read-only
729
+ inputReadOnly = true;
730
+ }
731
+ var TargetInput = customValue ? _Input.default : _DateRangeInput.default;
713
732
  return /*#__PURE__*/_react.default.createElement(_Picker.PickerToggleTrigger, {
714
733
  trigger: "active",
715
734
  ref: trigger,
@@ -729,23 +748,24 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
729
748
  plaintext: plaintext
730
749
  }) : /*#__PURE__*/_react.default.createElement(_InputGroup.default, (0, _extends2.default)({}, (0, _omit.default)(rest, [].concat(_Picker.omitTriggerPropKeys, usedClassNamePropKeys, _dateUtils.calendarOnlyProps)), {
731
750
  inside: true,
751
+ disabled: disabled,
732
752
  size: size
733
753
  }), /*#__PURE__*/_react.default.createElement(_Picker.PickerLabel, {
734
754
  className: prefix(_templateObject || (_templateObject = (0, _taggedTemplateLiteralLoose2.default)(["label"]))),
735
755
  id: id + "-label"
736
- }, label), /*#__PURE__*/_react.default.createElement(_DateRangeInput.default, (0, _extends2.default)({
756
+ }, label), /*#__PURE__*/_react.default.createElement(TargetInput, (0, _extends2.default)({
737
757
  "aria-haspopup": "dialog",
738
758
  "aria-invalid": invalidValue,
739
759
  "aria-labelledby": label ? id + "-label" : undefined
740
760
  }, ariaProps, {
741
761
  ref: target,
742
762
  id: id,
743
- value: value,
763
+ value: customValue || value,
744
764
  character: character,
745
765
  format: formatStr,
746
766
  placeholder: placeholder ? placeholder : rangeFormatStr,
747
767
  disabled: disabled,
748
- readOnly: readOnly || !editable || loading,
768
+ readOnly: inputReadOnly,
749
769
  plaintext: plaintext,
750
770
  htmlSize: getInputHtmlSize(),
751
771
  onChange: handleInputChange,
@@ -0,0 +1,16 @@
1
+ import { DATERANGE_DISABLED_TARGET as TARGET } from '../../utils';
2
+ import { DisabledDateFunction, SelectedDatesState } from '../types';
3
+ interface UseDateDisabledProps {
4
+ shouldDisableDate?: DisabledDateFunction;
5
+ DEPRECATED_disabledDate?: DisabledDateFunction;
6
+ }
7
+ interface DateDisabledOptions {
8
+ selectDate?: SelectedDatesState;
9
+ selectedDone?: boolean;
10
+ target?: TARGET;
11
+ }
12
+ /**
13
+ * Returns a function that determines whether a date is disabled and is compatible with the deprecated `disabledDate` prop.
14
+ */
15
+ declare function useDateDisabled(props: UseDateDisabledProps): ((date: Date, options: DateDisabledOptions) => boolean) | undefined;
16
+ export default useDateDisabled;
@@ -0,0 +1,31 @@
1
+ 'use client';
2
+ "use strict";
3
+
4
+ exports.__esModule = true;
5
+ exports.default = void 0;
6
+ var _react = require("react");
7
+ /**
8
+ * Returns a function that determines whether a date is disabled and is compatible with the deprecated `disabledDate` prop.
9
+ */
10
+ function useDateDisabled(props) {
11
+ var shouldDisableDate = props.shouldDisableDate,
12
+ DEPRECATED_disabledDate = props.DEPRECATED_disabledDate;
13
+ var isDateDisabled = (0, _react.useCallback)(function (date, options) {
14
+ var selectDate = options.selectDate,
15
+ selectedDone = options.selectedDone,
16
+ target = options.target;
17
+ if (typeof shouldDisableDate === 'function') {
18
+ return shouldDisableDate(date, selectDate, selectedDone, target);
19
+ }
20
+ if (typeof DEPRECATED_disabledDate === 'function') {
21
+ return DEPRECATED_disabledDate(date, selectDate, selectedDone, target);
22
+ }
23
+ return false;
24
+ }, [shouldDisableDate, DEPRECATED_disabledDate]);
25
+ if (shouldDisableDate || DEPRECATED_disabledDate) {
26
+ return isDateDisabled;
27
+ }
28
+ return undefined;
29
+ }
30
+ var _default = useDateDisabled;
31
+ exports.default = _default;
@@ -26,3 +26,4 @@ selectedDone?: boolean,
26
26
  * Call the target of the `shouldDisableDate` function.
27
27
  */
28
28
  target?: DATERANGE_DISABLED_TARGET) => boolean;
29
+ export declare type SelectedDatesState = [] | [Date] | [Date, Date];
@@ -0,0 +1,14 @@
1
+ import React from 'react';
2
+ import { WithAsProps, RsRefForwardingComponent } from '../@types/common';
3
+ export interface HighlightProps extends WithAsProps {
4
+ query?: string | string[];
5
+ renderMark?: (match: string, index: number) => React.ReactNode;
6
+ }
7
+ /**
8
+ *
9
+ * Highlight the matching text in the content.
10
+ *
11
+ * @see https://rsuitejs.com/components/highlight
12
+ */
13
+ declare const Highlight: RsRefForwardingComponent<'div', HighlightProps>;
14
+ export default Highlight;
@@ -0,0 +1,58 @@
1
+ 'use client';
2
+ "use strict";
3
+
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
+ exports.__esModule = true;
6
+ exports.default = void 0;
7
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
8
+ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+ var _utils = require("../utils");
12
+ var _highlightText = require("./utils/highlightText");
13
+ var _utils2 = require("../internals/utils");
14
+ function defaultRenderMark(match, index) {
15
+ return /*#__PURE__*/_react.default.createElement("mark", {
16
+ key: index,
17
+ className: "rs-highlight-mark"
18
+ }, match);
19
+ }
20
+
21
+ /**
22
+ *
23
+ * Highlight the matching text in the content.
24
+ *
25
+ * @see https://rsuitejs.com/components/highlight
26
+ */
27
+ var Highlight = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
28
+ var _props$as = props.as,
29
+ Component = _props$as === void 0 ? 'div' : _props$as,
30
+ _props$classPrefix = props.classPrefix,
31
+ classPrefix = _props$classPrefix === void 0 ? 'highlight' : _props$classPrefix,
32
+ className = props.className,
33
+ children = props.children,
34
+ query = props.query,
35
+ _props$renderMark = props.renderMark,
36
+ renderMark = _props$renderMark === void 0 ? defaultRenderMark : _props$renderMark,
37
+ rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "classPrefix", "className", "children", "query", "renderMark"]);
38
+ var _useClassNames = (0, _utils.useClassNames)(classPrefix),
39
+ withClassPrefix = _useClassNames.withClassPrefix,
40
+ merge = _useClassNames.merge;
41
+ var classes = merge(className, withClassPrefix());
42
+ var text = (0, _utils2.stringifyReactNode)(children);
43
+ return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({
44
+ ref: ref,
45
+ className: classes
46
+ }, rest), (0, _highlightText.highlightText)(text, {
47
+ query: query,
48
+ renderMark: renderMark
49
+ }));
50
+ });
51
+ Highlight.displayName = 'Highlight';
52
+ Highlight.propTypes = {
53
+ className: _propTypes.default.string,
54
+ classPrefix: _propTypes.default.string,
55
+ as: _propTypes.default.elementType
56
+ };
57
+ var _default = Highlight;
58
+ exports.default = _default;
@@ -0,0 +1,3 @@
1
+ import Highlight from './Highlight';
2
+ export type { HighlightProps } from './Highlight';
3
+ export default Highlight;
@@ -0,0 +1,9 @@
1
+ 'use client';
2
+ "use strict";
3
+
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
+ exports.__esModule = true;
6
+ exports.default = void 0;
7
+ var _Highlight = _interopRequireDefault(require("./Highlight"));
8
+ var _default = _Highlight.default;
9
+ exports.default = _default;
@@ -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,29 @@
1
+ 'use client';
2
+ "use strict";
3
+
4
+ exports.__esModule = true;
5
+ exports.highlightText = highlightText;
6
+ var _utils = require("../../internals/utils");
7
+ function highlightText(text, props) {
8
+ var query = props.query,
9
+ renderMark = props.renderMark;
10
+ if (!query || !text) {
11
+ return text;
12
+ }
13
+ var queries = Array.isArray(query) ? query : [query];
14
+ var regx = new RegExp(queries.map(function (q) {
15
+ return (0, _utils.getSafeRegExpString)(q);
16
+ }).join('|'), 'ig');
17
+ var texts = [];
18
+ var strArr = text.split(regx);
19
+ var highStrArr = text.match(regx);
20
+ for (var i = 0; i < strArr.length; i++) {
21
+ if (strArr[i]) {
22
+ texts.push(strArr[i]);
23
+ }
24
+ if (highStrArr !== null && highStrArr !== void 0 && highStrArr[i]) {
25
+ texts.push(renderMark(highStrArr[i], i));
26
+ }
27
+ }
28
+ return texts;
29
+ }