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
@@ -0,0 +1,20 @@
1
+ /// <reference types="react" />
2
+ interface FocusStateProps {
3
+ target: React.RefObject<HTMLElement>;
4
+ value?: number | string | null | undefined;
5
+ focusActiveNode: () => void;
6
+ onEnter?: (node: HTMLElement) => void;
7
+ onExit?: (node: HTMLElement) => void;
8
+ onEntered?: (node: HTMLElement) => void;
9
+ }
10
+ declare function useFocusState(props: FocusStateProps): {
11
+ active: boolean;
12
+ focusItemValue: string | number | null | undefined;
13
+ setFocusItemValue: import("react").Dispatch<import("react").SetStateAction<string | number | null | undefined>>;
14
+ triggerProps: {
15
+ onEnter: (...args: any[]) => any;
16
+ onExit: (...args: any[]) => any;
17
+ onEntered: (...args: any[]) => any;
18
+ };
19
+ };
20
+ export default useFocusState;
@@ -0,0 +1,48 @@
1
+ 'use client';
2
+ import { useState } from 'react';
3
+ import { useEventCallback } from '../../utils';
4
+ function useFocusState(props) {
5
+ var target = props.target,
6
+ value = props.value,
7
+ focusActiveNode = props.focusActiveNode;
8
+ var _useState = useState(false),
9
+ active = _useState[0],
10
+ setActive = _useState[1];
11
+ var _useState2 = useState(null),
12
+ focusItemValue = _useState2[0],
13
+ setFocusItemValue = _useState2[1];
14
+ var focusTarget = useEventCallback(function () {
15
+ var _target$current;
16
+ (_target$current = target.current) === null || _target$current === void 0 ? void 0 : _target$current.focus();
17
+ });
18
+ var onEnter = useEventCallback(function (node) {
19
+ var _props$onEnter;
20
+ setActive(true);
21
+ (_props$onEnter = props.onEnter) === null || _props$onEnter === void 0 ? void 0 : _props$onEnter.call(props, node);
22
+ });
23
+ var onExit = useEventCallback(function (node) {
24
+ var _props$onExit;
25
+ setActive(false);
26
+ focusTarget();
27
+ (_props$onExit = props.onExit) === null || _props$onExit === void 0 ? void 0 : _props$onExit.call(props, node);
28
+ });
29
+ var onEntered = useEventCallback(function (node) {
30
+ var _props$onEntered;
31
+ if (value) {
32
+ setFocusItemValue(value);
33
+ focusActiveNode();
34
+ }
35
+ (_props$onEntered = props.onEntered) === null || _props$onEntered === void 0 ? void 0 : _props$onEntered.call(props, node);
36
+ });
37
+ return {
38
+ active: active,
39
+ focusItemValue: focusItemValue,
40
+ setFocusItemValue: setFocusItemValue,
41
+ triggerProps: {
42
+ onEnter: onEnter,
43
+ onExit: onExit,
44
+ onEntered: onEntered
45
+ }
46
+ };
47
+ }
48
+ export default useFocusState;
package/esm/index.d.ts CHANGED
@@ -4,6 +4,8 @@ export { default as Heading } from './Heading';
4
4
  export type { HeadingProps } from './Heading';
5
5
  export { default as HeadingGroup } from './HeadingGroup';
6
6
  export type { HeadingGroupProps } from './HeadingGroup';
7
+ export { default as Highlight } from './Highlight';
8
+ export type { HighlightProps } from './Highlight';
7
9
  export { default as SafeAnchor } from './SafeAnchor';
8
10
  export type { SafeAnchorProps } from './SafeAnchor';
9
11
  export { default as Button } from './Button';
package/esm/index.js CHANGED
@@ -4,6 +4,7 @@
4
4
  export { default as Text } from './Text';
5
5
  export { default as Heading } from './Heading';
6
6
  export { default as HeadingGroup } from './HeadingGroup';
7
+ export { default as Highlight } from './Highlight';
7
8
  export { default as SafeAnchor } from './SafeAnchor';
8
9
  // Buttons
9
10
  // --------------------------------------------------------
@@ -1,35 +1,65 @@
1
1
  import React from 'react';
2
2
  import { ListProps, ListHandle } from '../../internals/Windowing';
3
- import { StandardProps, ItemDataType } from '../../@types/common';
3
+ import { StandardProps, ItemDataType, DataProps } from '../../@types/common';
4
4
  import { RSUITE_PICKER_GROUP_KEY } from '../../internals/symbols';
5
5
  interface InnerItemDataType extends ItemDataType {
6
6
  [RSUITE_PICKER_GROUP_KEY]?: boolean;
7
7
  }
8
- export interface ListboxProps<Multiple = false> extends StandardProps, Omit<React.HTMLAttributes<HTMLDivElement>, 'onSelect'> {
9
- classPrefix: string;
10
- data?: InnerItemDataType[];
11
- group?: boolean;
8
+ /**
9
+ * Props for the Listbox component.
10
+ */
11
+ /**
12
+ * Props for the Listbox component.
13
+ * @template Multiple - Whether multiple selection is enabled.
14
+ */
15
+ export interface ListboxProps<Multiple = false> extends StandardProps, Partial<DataProps<InnerItemDataType>>, Omit<React.HTMLAttributes<HTMLDivElement>, 'onSelect'> {
12
16
  groupBy?: string;
13
17
  disabledItemValues?: any[];
14
18
  activeItemValues?: any[];
15
19
  focusItemValue?: any;
16
20
  maxHeight?: number;
17
- valueKey?: string;
18
- labelKey?: string;
19
- className?: string;
20
- style?: React.CSSProperties;
21
21
  listItemAs: React.ElementType | string;
22
22
  listItemClassPrefix?: string;
23
23
  listItemProps?: any;
24
24
  rowHeight?: number;
25
+ /** */
25
26
  rowGroupHeight?: number;
27
+ /** */
26
28
  virtualized?: boolean;
29
+ /** */
27
30
  listProps?: Partial<ListProps>;
31
+ /** */
28
32
  listRef?: React.Ref<ListHandle>;
29
- /** Custom selected option */
33
+ /**
34
+ * Query string for filtering.
35
+ */
36
+ query?: string;
37
+ /**
38
+ * Custom function to render a selected option.
39
+ * @param itemLabel - The label of the item.
40
+ * @param item - The selected item.
41
+ * @returns The rendered React node.
42
+ */
30
43
  renderMenuItem?: (itemLabel: React.ReactNode, item: any) => React.ReactNode;
44
+ /**
45
+ * Custom function to render a menu group.
46
+ * @param title - The title of the group.
47
+ * @param item - The group item.
48
+ * @returns The rendered React node.
49
+ */
31
50
  renderMenuGroup?: (title: React.ReactNode, item: any) => React.ReactNode;
51
+ /**
52
+ * Event handler for selecting an option.
53
+ * @param value - The selected value.
54
+ * @param item - The selected item.
55
+ * @param event - The mouse event.
56
+ * @param checked - The checked state (only applicable for multiple selection).
57
+ */
32
58
  onSelect?: Multiple extends true ? (value: any, item: any, event: React.MouseEvent, checked: boolean) => void : Multiple extends false ? (value: any, item: any, event: React.MouseEvent) => void : any;
59
+ /**
60
+ * Event handler for clicking on a group title.
61
+ * @param event - The mouse event.
62
+ */
33
63
  onGroupTitleClick?: (event: React.MouseEvent) => void;
34
64
  }
35
65
  export declare type ListboxComponent = React.ForwardRefExoticComponent<ListboxProps> & {
@@ -19,11 +19,19 @@ import { mergeRefs, useClassNames, useMount, useEventCallback } from '../../util
19
19
  import ListItemGroup from './ListItemGroup';
20
20
  import { KEY_GROUP_TITLE } from '../../utils/getDataGroupBy';
21
21
  import useCombobox from './hooks/useCombobox';
22
+ import Highlight from '../../Highlight';
22
23
  import { RSUITE_PICKER_GROUP_KEY } from '../../internals/symbols';
24
+
25
+ /**
26
+ * Props for the Listbox component.
27
+ */
28
+ /**
29
+ * Props for the Listbox component.
30
+ * @template Multiple - Whether multiple selection is enabled.
31
+ */
23
32
  var Listbox = /*#__PURE__*/React.forwardRef(function (props, ref) {
24
33
  var _props$data = props.data,
25
34
  data = _props$data === void 0 ? [] : _props$data,
26
- group = props.group,
27
35
  groupBy = props.groupBy,
28
36
  _props$maxHeight = props.maxHeight,
29
37
  maxHeight = _props$maxHeight === void 0 ? 320 : _props$maxHeight,
@@ -50,17 +58,19 @@ var Listbox = /*#__PURE__*/React.forwardRef(function (props, ref) {
50
58
  rowHeight = _props$rowHeight === void 0 ? 36 : _props$rowHeight,
51
59
  _props$rowGroupHeight = props.rowGroupHeight,
52
60
  rowGroupHeight = _props$rowGroupHeight === void 0 ? 48 : _props$rowGroupHeight,
61
+ query = props.query,
53
62
  renderMenuGroup = props.renderMenuGroup,
54
63
  renderMenuItem = props.renderMenuItem,
55
64
  onGroupTitleClick = props.onGroupTitleClick,
56
65
  onSelect = props.onSelect,
57
- rest = _objectWithoutPropertiesLoose(props, ["data", "group", "groupBy", "maxHeight", "activeItemValues", "disabledItemValues", "classPrefix", "valueKey", "labelKey", "virtualized", "listProps", "listRef", "className", "style", "focusItemValue", "listItemClassPrefix", "listItemAs", "listItemProps", "rowHeight", "rowGroupHeight", "renderMenuGroup", "renderMenuItem", "onGroupTitleClick", "onSelect"]);
66
+ rest = _objectWithoutPropertiesLoose(props, ["data", "groupBy", "maxHeight", "activeItemValues", "disabledItemValues", "classPrefix", "valueKey", "labelKey", "virtualized", "listProps", "listRef", "className", "style", "focusItemValue", "listItemClassPrefix", "listItemAs", "listItemProps", "rowHeight", "rowGroupHeight", "query", "renderMenuGroup", "renderMenuItem", "onGroupTitleClick", "onSelect"]);
58
67
  var _useClassNames = useClassNames(classPrefix),
59
68
  withClassPrefix = _useClassNames.withClassPrefix,
60
69
  prefix = _useClassNames.prefix,
61
70
  merge = _useClassNames.merge;
71
+ var groupable = typeof groupBy !== 'undefined';
62
72
  var classes = merge(className, withClassPrefix('items', {
63
- grouped: group
73
+ grouped: groupable
64
74
  }));
65
75
  var _useCombobox = useCombobox(),
66
76
  id = _useCombobox.id,
@@ -87,7 +97,7 @@ var Listbox = /*#__PURE__*/React.forwardRef(function (props, ref) {
87
97
  });
88
98
  var getRowHeight = function getRowHeight(list, index) {
89
99
  var item = list[index];
90
- if (group && item[RSUITE_PICKER_GROUP_KEY] && index !== 0) {
100
+ if (groupable && item[RSUITE_PICKER_GROUP_KEY] && index !== 0) {
91
101
  return rowGroupHeight;
92
102
  }
93
103
  return rowHeight;
@@ -113,16 +123,12 @@ var Listbox = /*#__PURE__*/React.forwardRef(function (props, ref) {
113
123
  scrollTop(container, Math.max(0, position.top - sHeight + 32));
114
124
  }
115
125
  }, [focusItemValue, menuBodyContainerRef, prefix]);
116
- var filteredItems = group ? data.filter(function (item) {
126
+ var filteredItems = groupable ? data.filter(function (item) {
117
127
  var _item$parent;
118
128
  // Display group title items
119
129
  if (item[RSUITE_PICKER_GROUP_KEY]) return true;
120
130
 
121
131
  // Display items under the unfolded group
122
- // FIXME-Doma
123
- // `groupBy` is bound to be string when `group` is true
124
- // because `group` is actually redundant as a prop
125
- // It could simply be derived from `groupBy` value
126
132
  var groupValue = get(item, groupBy, '') || ( // FIXME-Doma
127
133
  // Usage of `item.parent` is strongly discouraged
128
134
  // It's only here for legacy support
@@ -139,7 +145,11 @@ var Listbox = /*#__PURE__*/React.forwardRef(function (props, ref) {
139
145
  itemData = _ref.item;
140
146
  var item = itemData || data[index];
141
147
  var value = item[valueKey];
142
- var label = item[labelKey];
148
+ var itemLabel = item[labelKey];
149
+ var label = query ? /*#__PURE__*/React.createElement(Highlight, {
150
+ query: query,
151
+ as: "span"
152
+ }, itemLabel) : itemLabel;
143
153
  if (isUndefined(label) && !item[RSUITE_PICKER_GROUP_KEY]) {
144
154
  throw Error("labelKey \"" + labelKey + "\" is not defined in \"data\" : " + index);
145
155
  }
@@ -147,13 +157,9 @@ var Listbox = /*#__PURE__*/React.forwardRef(function (props, ref) {
147
157
  // Use `value` in keys when If `value` is string or number
148
158
  var itemKey = isString(value) || isNumber(value) ? value : index;
149
159
 
150
- /**
151
- * Render <ListboxGroup>
152
- * when if `group` is enabled
153
- */
154
- if (group && item[RSUITE_PICKER_GROUP_KEY]) {
160
+ // Render <ListboxGroup> component when `groupBy` is defined
161
+ if (groupable && item[RSUITE_PICKER_GROUP_KEY]) {
155
162
  var groupValue = item[KEY_GROUP_TITLE];
156
- // TODO: grouped options should be owned by group
157
163
  return /*#__PURE__*/React.createElement(ListItemGroup, {
158
164
  style: style,
159
165
  classPrefix: 'picker-menu-group',
@@ -4,7 +4,8 @@ interface PickerIndicatorProps {
4
4
  caretAs?: React.ElementType | null;
5
5
  onClose?: (event: React.MouseEvent<HTMLElement>) => void;
6
6
  showCleanButton?: boolean;
7
+ disabled?: boolean;
7
8
  as?: React.ElementType;
8
9
  }
9
- declare const PickerIndicator: ({ loading, caretAs, onClose, showCleanButton, as: Component }: PickerIndicatorProps) => JSX.Element;
10
+ declare const PickerIndicator: ({ loading, caretAs, onClose, showCleanButton, as: Component, disabled }: PickerIndicatorProps) => JSX.Element;
10
11
  export default PickerIndicator;
@@ -11,7 +11,8 @@ var PickerIndicator = function PickerIndicator(_ref) {
11
11
  onClose = _ref.onClose,
12
12
  showCleanButton = _ref.showCleanButton,
13
13
  _ref$as = _ref.as,
14
- Component = _ref$as === void 0 ? InputGroup.Addon : _ref$as;
14
+ Component = _ref$as === void 0 ? InputGroup.Addon : _ref$as,
15
+ disabled = _ref.disabled;
15
16
  var _useCustom = useCustom(),
16
17
  locale = _useCustom.locale;
17
18
  var _useClassNames = useClassNames('picker'),
@@ -23,7 +24,7 @@ var PickerIndicator = function PickerIndicator(_ref) {
23
24
  "data-testid": "spinner"
24
25
  });
25
26
  }
26
- if (showCleanButton) {
27
+ if (showCleanButton && !disabled) {
27
28
  return /*#__PURE__*/React.createElement(CloseButton, {
28
29
  className: prefix('clean'),
29
30
  tabIndex: -1,
@@ -38,6 +39,9 @@ var PickerIndicator = function PickerIndicator(_ref) {
38
39
  className: prefix('caret-icon')
39
40
  });
40
41
  };
41
- return /*#__PURE__*/React.createElement(Component, null, addon());
42
+ var props = Component === InputGroup.Addon ? {
43
+ disabled: disabled
44
+ } : undefined;
45
+ return /*#__PURE__*/React.createElement(Component, props, addon());
42
46
  };
43
47
  export default PickerIndicator;
@@ -5,7 +5,7 @@ import isUndefined from 'lodash/isUndefined';
5
5
  import find from 'lodash/find';
6
6
  import { getHeight } from 'dom-lib';
7
7
  import { useEventCallback, shallowEqual } from '../../../utils';
8
- import { findNodeOfTree } from '../../../utils/treeUtils';
8
+ import { findNodeOfTree } from '../../Tree/utils';
9
9
  import { onMenuKeyDown } from '../utils';
10
10
  /**
11
11
  * A hook that manages the focus state of the option.
@@ -1,13 +1,10 @@
1
1
  /// <reference types="react" />
2
2
  import type { OverlayTriggerHandle } from '../PickerToggleTrigger';
3
3
  import type { ListHandle } from '../../../internals/Windowing';
4
- export interface PickerDependentParameters {
5
- inline?: boolean;
6
- }
7
4
  /**
8
5
  * A hook of the exposed method of Picker
9
6
  */
10
- declare function usePickerRef(ref: any, parmas?: PickerDependentParameters): {
7
+ declare function usePickerRef(ref: any): {
11
8
  trigger: import("react").RefObject<OverlayTriggerHandle>;
12
9
  root: import("react").MutableRefObject<any>;
13
10
  overlay: import("react").RefObject<HTMLElement>;
@@ -5,7 +5,7 @@ import { RSUITE_PICKER_TYPE } from '../../../internals/symbols';
5
5
  /**
6
6
  * A hook of the exposed method of Picker
7
7
  */
8
- function usePickerRef(ref, parmas) {
8
+ function usePickerRef(ref) {
9
9
  var trigger = useRef(null);
10
10
  var root = useRef(null);
11
11
  var target = useRef(null);
@@ -13,8 +13,6 @@ function usePickerRef(ref, parmas) {
13
13
  var list = useRef(null);
14
14
  var searchInput = useRef(null);
15
15
  var treeView = useRef(null);
16
- var _ref = parmas || {},
17
- inline = _ref.inline;
18
16
  var handleOpen = useEventCallback(function () {
19
17
  var _trigger$current;
20
18
  trigger === null || trigger === void 0 ? void 0 : (_trigger$current = trigger.current) === null || _trigger$current === void 0 ? void 0 : _trigger$current.open();
@@ -28,25 +26,10 @@ function usePickerRef(ref, parmas) {
28
26
  trigger === null || trigger === void 0 ? void 0 : (_trigger$current3 = trigger.current) === null || _trigger$current3 === void 0 ? void 0 : _trigger$current3.updatePosition();
29
27
  });
30
28
  useImperativeHandle(ref, function () {
31
- // Tree and CheckTree
32
- if (inline) {
33
- return {
34
- get root() {
35
- var _trigger$current$root, _trigger$current4;
36
- return root !== null && root !== void 0 && root.current ? root === null || root === void 0 ? void 0 : root.current : (_trigger$current$root = trigger === null || trigger === void 0 ? void 0 : (_trigger$current4 = trigger.current) === null || _trigger$current4 === void 0 ? void 0 : _trigger$current4.root) !== null && _trigger$current$root !== void 0 ? _trigger$current$root : null;
37
- },
38
- get list() {
39
- if (!(list !== null && list !== void 0 && list.current)) {
40
- throw new Error('The list is not found, please set `virtualized` for the component.');
41
- }
42
- return list === null || list === void 0 ? void 0 : list.current;
43
- }
44
- };
45
- }
46
29
  return {
47
30
  get root() {
48
- var _ref2, _trigger$current5;
49
- return (_ref2 = (root === null || root === void 0 ? void 0 : root.current) || (trigger === null || trigger === void 0 ? void 0 : (_trigger$current5 = trigger.current) === null || _trigger$current5 === void 0 ? void 0 : _trigger$current5.root)) !== null && _ref2 !== void 0 ? _ref2 : null;
31
+ var _ref, _trigger$current4;
32
+ return (_ref = (root === null || root === void 0 ? void 0 : root.current) || (trigger === null || trigger === void 0 ? void 0 : (_trigger$current4 = trigger.current) === null || _trigger$current4 === void 0 ? void 0 : _trigger$current4.root)) !== null && _ref !== void 0 ? _ref : null;
50
33
  },
51
34
  get overlay() {
52
35
  var _overlay$current;
@@ -1,7 +1,6 @@
1
1
  import { pickTriggerPropKeys, omitTriggerPropKeys, OverlayTriggerHandle, PositionChildProps } from './PickerToggleTrigger';
2
2
  import { PickerToggleProps } from './PickerToggle';
3
3
  import { PickerHandle, PickerComponent } from './types';
4
- export { default as TreeView } from './TreeView';
5
4
  export { default as Listbox } from './Listbox';
6
5
  export { default as ListItem } from './ListItem';
7
6
  export { default as ListItemGroup } from './ListItemGroup';
@@ -1,6 +1,5 @@
1
1
  'use client';
2
2
  import { pickTriggerPropKeys, omitTriggerPropKeys } from './PickerToggleTrigger';
3
- export { default as TreeView } from './TreeView';
4
3
  export { default as Listbox } from './Listbox';
5
4
  export { default as ListItem } from './ListItem';
6
5
  export { default as ListItemGroup } from './ListItemGroup';
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
  import React from 'react';
3
3
  import trim from 'lodash/trim';
4
- import { findNodeOfTree } from '../../utils/treeUtils';
4
+ import { findNodeOfTree } from '../Tree/utils';
5
5
  import { KEY_VALUES, reactToString } from '../../utils';
6
6
  var defaultNodeKeys = {
7
7
  valueKey: 'value',
@@ -2,7 +2,7 @@
2
2
  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
- import useCombobox from './hooks/useCombobox';
5
+ import useCombobox from '../Picker/hooks/useCombobox';
6
6
  var TreeView = /*#__PURE__*/React.forwardRef(function (props, ref) {
7
7
  var children = props.children,
8
8
  treeRootClassName = props.treeRootClassName,
@@ -0,0 +1 @@
1
+ export { default as TreeView } from './TreeView';
@@ -0,0 +1,2 @@
1
+ 'use client';
2
+ export { default as TreeView } from './TreeView';
@@ -0,0 +1,5 @@
1
+ declare type HasChildren<T extends Record<string, unknown>> = T & {
2
+ children?: readonly HasChildren<T>[];
3
+ };
4
+ export declare function filterNodesOfTree<TItem extends HasChildren<Record<string, unknown>>>(data: readonly TItem[], check: (item: TItem) => boolean): TItem[];
5
+ export {};
@@ -0,0 +1,26 @@
1
+ 'use client';
2
+ import clone from 'lodash/clone';
3
+ export function filterNodesOfTree(data, check) {
4
+ var findNodes = function findNodes(nodes) {
5
+ if (nodes === void 0) {
6
+ nodes = [];
7
+ }
8
+ var nextNodes = [];
9
+ for (var i = 0; i < nodes.length; i += 1) {
10
+ if (Array.isArray(nodes[i].children)) {
11
+ var nextChildren = findNodes(nodes[i].children);
12
+ if (nextChildren.length) {
13
+ var _item = clone(nodes[i]);
14
+ _item.children = nextChildren;
15
+ nextNodes.push(_item);
16
+ continue;
17
+ }
18
+ }
19
+ if (check(nodes[i])) {
20
+ nextNodes.push(nodes[i]);
21
+ }
22
+ }
23
+ return nextNodes;
24
+ };
25
+ return findNodes(data);
26
+ }
@@ -0,0 +1 @@
1
+ export declare function findNodeOfTree(data: any, check: any): any;
@@ -0,0 +1,22 @@
1
+ 'use client';
2
+ export function findNodeOfTree(data, check) {
3
+ var findNode = function findNode(nodes) {
4
+ if (nodes === void 0) {
5
+ nodes = [];
6
+ }
7
+ for (var i = 0; i < nodes.length; i += 1) {
8
+ var item = nodes[i];
9
+ if (Array.isArray(item.children)) {
10
+ var node = findNode(item.children);
11
+ if (node) {
12
+ return node;
13
+ }
14
+ }
15
+ if (check(item)) {
16
+ return item;
17
+ }
18
+ }
19
+ return undefined;
20
+ };
21
+ return findNode(data);
22
+ }
@@ -0,0 +1,15 @@
1
+ /// <reference types="react" />
2
+ /**
3
+ * Returns a WeakMap that maps each item in `items` to its parent
4
+ * indicated by `getChildren` function
5
+ */
6
+ export declare function getParentMap<T extends Record<string, unknown>>(items: readonly T[], getChildren: (item: T) => readonly T[] | undefined): WeakMap<T, T>;
7
+ /**
8
+ * Returns a Map that maps each item's "key", indicated by `getKey` function,
9
+ * to its parent indicated by `getChildren` function
10
+ *
11
+ * NOTICE:
12
+ * Using this function is discouraged.
13
+ * Use {@link getParentMap} whenever possible.
14
+ */
15
+ export declare function getKeyParentMap<T = Record<string, unknown>, K = React.Key>(items: readonly T[], getKey: (item: T) => K, getChildren: (item: T) => readonly T[] | undefined): Map<K, T>;
@@ -0,0 +1,47 @@
1
+ 'use client';
2
+ function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
3
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
4
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
5
+ /**
6
+ * Returns a WeakMap that maps each item in `items` to its parent
7
+ * indicated by `getChildren` function
8
+ */
9
+ export function getParentMap(items, getChildren) {
10
+ var map = new WeakMap();
11
+ for (var queue = [].concat(items); queue.length > 0;) {
12
+ var _item = queue.shift();
13
+ var children = getChildren(_item);
14
+ if (children) {
15
+ for (var _iterator = _createForOfIteratorHelperLoose(children), _step; !(_step = _iterator()).done;) {
16
+ var child = _step.value;
17
+ map.set(child, _item);
18
+ queue.push(child);
19
+ }
20
+ }
21
+ }
22
+ return map;
23
+ }
24
+
25
+ /**
26
+ * Returns a Map that maps each item's "key", indicated by `getKey` function,
27
+ * to its parent indicated by `getChildren` function
28
+ *
29
+ * NOTICE:
30
+ * Using this function is discouraged.
31
+ * Use {@link getParentMap} whenever possible.
32
+ */
33
+ export function getKeyParentMap(items, getKey, getChildren) {
34
+ var map = new Map();
35
+ for (var queue = [].concat(items); queue.length > 0;) {
36
+ var _item2 = queue.shift();
37
+ var children = getChildren(_item2);
38
+ if (children) {
39
+ for (var _iterator2 = _createForOfIteratorHelperLoose(children), _step2; !(_step2 = _iterator2()).done;) {
40
+ var child = _step2.value;
41
+ map.set(getKey(child), _item2);
42
+ queue.push(child);
43
+ }
44
+ }
45
+ }
46
+ return map;
47
+ }
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Returns an array indicating the hierarchy path from root towards `target` item
3
+ */
4
+ export declare function getPathTowardsItem<T>(target: T | undefined, getParent: (item: T) => T | undefined): T[];
@@ -0,0 +1,12 @@
1
+ 'use client';
2
+ /**
3
+ * Returns an array indicating the hierarchy path from root towards `target` item
4
+ */
5
+ export function getPathTowardsItem(target, getParent) {
6
+ if (!target) return [];
7
+ var path = [target];
8
+ for (var parent = getParent(target); !!parent; parent = getParent(parent)) {
9
+ path.unshift(parent);
10
+ }
11
+ return path;
12
+ }
@@ -0,0 +1,4 @@
1
+ export { findNodeOfTree } from './findNodeOfTree';
2
+ export { filterNodesOfTree } from './filterNodesOfTree';
3
+ export { getPathTowardsItem } from './getPathTowardsItem';
4
+ export { getParentMap, getKeyParentMap } from './getParentMap';
@@ -0,0 +1,5 @@
1
+ 'use client';
2
+ export { findNodeOfTree } from './findNodeOfTree';
3
+ export { filterNodesOfTree } from './filterNodesOfTree';
4
+ export { getPathTowardsItem } from './getPathTowardsItem';
5
+ export { getParentMap, getKeyParentMap } from './getParentMap';
@@ -1,5 +1,6 @@
1
1
  import { VariableSizeList, ListItemKeySelector, ListOnScrollProps, ListOnItemsRenderedProps } from 'react-window';
2
2
  import { WithAsProps, RsRefForwardingComponent } from '../../@types/common';
3
+ export declare const defaultItemSize: () => number;
3
4
  export interface ListProps<T = any> extends WithAsProps {
4
5
  /**
5
6
  * @deprecated use itemSize instead
@@ -4,6 +4,9 @@ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWith
4
4
  import React, { useRef, useImperativeHandle, useCallback, useMemo } from 'react';
5
5
  import { VariableSizeList } from 'react-window';
6
6
  import { useCustom } from '../../utils';
7
+ export var defaultItemSize = function defaultItemSize() {
8
+ return 36;
9
+ };
7
10
  /**
8
11
  * This component renders a virtualized list of elements with either fixed or dynamic heights.
9
12
  *
@@ -1,5 +1,5 @@
1
1
  export { default as AutoSizer } from './AutoSizer';
2
- export { default as List } from './List';
2
+ export { default as List, defaultItemSize } from './List';
3
3
  export { FixedSizeList, VariableSizeList } from 'react-window';
4
4
  export type { ListChildComponentProps } from 'react-window';
5
5
  export type { ListProps, ListHandle } from './List';
@@ -1,4 +1,4 @@
1
1
  'use client';
2
2
  export { default as AutoSizer } from './AutoSizer';
3
- export { default as List } from './List';
3
+ export { default as List, defaultItemSize } from './List';
4
4
  export { FixedSizeList, VariableSizeList } from 'react-window';
@@ -0,0 +1 @@
1
+ export { default as useFoucsVirtualListItem } from './useFoucsVirtualListItem';
@@ -0,0 +1,2 @@
1
+ 'use client';
2
+ export { default as useFoucsVirtualListItem } from './useFoucsVirtualListItem';
@@ -0,0 +1,7 @@
1
+ /// <reference types="react" />
2
+ /**
3
+ * Virtualized list loses focus when scrolling or clicking options, causing the component to re-render.
4
+ * To solve this problem, we need to refocus on the selected option after the component is re-rendered.
5
+ */
6
+ declare function useFoucsVirtualListItem<T extends HTMLElement>(focused?: boolean): import("react").RefObject<T>;
7
+ export default useFoucsVirtualListItem;