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,22 @@
1
+ 'use client';
2
+ import { useRef, useEffect } from 'react';
3
+
4
+ /**
5
+ * Virtualized list loses focus when scrolling or clicking options, causing the component to re-render.
6
+ * To solve this problem, we need to refocus on the selected option after the component is re-rendered.
7
+ */
8
+ function useFoucsVirtualListItem(focused) {
9
+ var itemRef = useRef(null);
10
+ useEffect(function () {
11
+ if (!focused) {
12
+ return;
13
+ }
14
+ if (document.activeElement !== itemRef.current) {
15
+ var _itemRef$current;
16
+ // Focus on the selected option.
17
+ (_itemRef$current = itemRef.current) === null || _itemRef$current === void 0 ? void 0 : _itemRef$current.focus();
18
+ }
19
+ }, [focused]);
20
+ return itemRef;
21
+ }
22
+ export default useFoucsVirtualListItem;
@@ -1,4 +1,4 @@
1
1
  /**
2
2
  * @description escape Regular_Expressions special_characters '^$.|*+?{\\[()'
3
3
  */
4
- export default function getSafeRegExpString(str: string): string;
4
+ export declare function getSafeRegExpString(str: string): string;
@@ -2,6 +2,6 @@
2
2
  /**
3
3
  * @description escape Regular_Expressions special_characters '^$.|*+?{\\[()'
4
4
  */
5
- export default function getSafeRegExpString(str) {
5
+ export function getSafeRegExpString(str) {
6
6
  return str.replace(/([\^\$\.\|\*\+\?\{\\\[\(\)])/g, '\\$1');
7
7
  }
@@ -0,0 +1,2 @@
1
+ export { stringifyReactNode } from './stringifyReactNode';
2
+ export { getSafeRegExpString } from './getSafeRegExpString';
@@ -0,0 +1,3 @@
1
+ 'use client';
2
+ export { stringifyReactNode } from './stringifyReactNode';
3
+ export { getSafeRegExpString } from './getSafeRegExpString';
@@ -0,0 +1,2 @@
1
+ import React from 'react';
2
+ export declare function stringifyReactNode(node: React.ReactNode): string;
@@ -0,0 +1,12 @@
1
+ 'use client';
2
+ import React from 'react';
3
+ import reactToString from '../../utils/reactToString';
4
+ export function stringifyReactNode(node) {
5
+ if (typeof node === 'string') {
6
+ return node;
7
+ } else if ( /*#__PURE__*/React.isValidElement(node)) {
8
+ var nodes = reactToString(node);
9
+ return nodes.join('');
10
+ }
11
+ return '';
12
+ }
@@ -15,8 +15,6 @@ export declare enum CHECK_STATE {
15
15
  INDETERMINATE = 2
16
16
  }
17
17
  export declare type CheckStateType = CHECK_STATE.UNCHECK | CHECK_STATE.CHECK | CHECK_STATE.INDETERMINATE;
18
- export declare const TREE_NODE_PADDING = 16;
19
- export declare const TREE_NODE_ROOT_PADDING = 12;
20
18
  /**
21
19
  * Tree Node Drag Type
22
20
  */
@@ -17,9 +17,6 @@ export var CHECK_STATE;
17
17
  CHECK_STATE[CHECK_STATE["CHECK"] = 1] = "CHECK";
18
18
  CHECK_STATE[CHECK_STATE["INDETERMINATE"] = 2] = "INDETERMINATE";
19
19
  })(CHECK_STATE || (CHECK_STATE = {}));
20
- export var TREE_NODE_PADDING = 16;
21
- export var TREE_NODE_ROOT_PADDING = 12;
22
-
23
20
  /**
24
21
  * Tree Node Drag Type
25
22
  */
@@ -1,6 +1,6 @@
1
1
  'use client';
2
2
  import _groupBy from "lodash/groupBy";
3
- import { WalkTreeStrategy, flattenTree } from '../utils/treeUtils';
3
+ import { WalkTreeStrategy, flattenTree } from '../Tree/utils';
4
4
  import { RSUITE_PICKER_GROUP_KEY } from '../internals/symbols';
5
5
  export var KEY_GROUP_TITLE = 'groupTitle';
6
6
  export function getDataGroupBy(data, key, sort) {
@@ -20,7 +20,6 @@ export { default as shallowEqualArray } from './shallowEqualArray';
20
20
  export { default as composeFunctions } from './composeFunctions';
21
21
  export { default as reactToString } from './reactToString';
22
22
  export { default as scrollTopAnimation } from './scrollTopAnimation';
23
- export { default as appendTooltip } from './appendTooltip';
24
23
  export { default as render } from './render';
25
24
  export { default as safeSetSelection } from './safeSetSelection';
26
25
  export { default as getStringLength } from './getStringLength';
@@ -34,8 +33,6 @@ export { default as createComponent } from './createComponent';
34
33
  export { default as useTimeout } from './useTimeout';
35
34
  export { default as useControlled } from './useControlled';
36
35
  export { default as useRootClose } from './useRootClose';
37
- export { default as getSafeRegExpString } from './getSafeRegExpString';
38
- export { default as stringToObject } from './stringToObject';
39
36
  export { default as useEventCallback } from './useEventCallback';
40
37
  export { default as useUpdatedRef } from './useUpdatedRef';
41
38
  export { default as useWillUnmount } from './useWillUnmount';
@@ -22,7 +22,6 @@ export { default as shallowEqualArray } from './shallowEqualArray';
22
22
  export { default as composeFunctions } from './composeFunctions';
23
23
  export { default as reactToString } from './reactToString';
24
24
  export { default as scrollTopAnimation } from './scrollTopAnimation';
25
- export { default as appendTooltip } from './appendTooltip';
26
25
  export { default as render } from './render';
27
26
  export { default as safeSetSelection } from './safeSetSelection';
28
27
  export { default as getStringLength } from './getStringLength';
@@ -37,8 +36,6 @@ export { default as createComponent } from './createComponent';
37
36
  export { default as useTimeout } from './useTimeout';
38
37
  export { default as useControlled } from './useControlled';
39
38
  export { default as useRootClose } from './useRootClose';
40
- export { default as getSafeRegExpString } from './getSafeRegExpString';
41
- export { default as stringToObject } from './stringToObject';
42
39
  export { default as useEventCallback } from './useEventCallback';
43
40
  export { default as useUpdatedRef } from './useUpdatedRef';
44
41
  export { default as useWillUnmount } from './useWillUnmount';
@@ -1,3 +1,3 @@
1
- import { useEffect } from 'react';
2
- declare const useIsomorphicLayoutEffect: typeof useEffect;
1
+ import { useLayoutEffect } from 'react';
2
+ declare const useIsomorphicLayoutEffect: typeof useLayoutEffect;
3
3
  export default useIsomorphicLayoutEffect;
@@ -8,6 +8,7 @@
8
8
  @import '../../../Loader/styles/index.less';
9
9
  @import '../../../Input/styles/index.less';
10
10
  @import '../../../InputGroup/styles/index.less';
11
+ @import '../../../Highlight/styles/index.less';
11
12
  @import './mixin.less';
12
13
 
13
14
  //
@@ -35,7 +36,17 @@
35
36
  }
36
37
 
37
38
  &-disabled {
38
- opacity: @btn-disabled-opacity;
39
+ cursor: not-allowed;
40
+
41
+ .rs-picker-toggle-value,
42
+ .rs-picker-toggle-indicator,
43
+ .rs-picker-tag-list .rs-tag {
44
+ color: var(--rs-text-disabled) !important;
45
+ }
46
+
47
+ .rs-picker-value-count{
48
+ opacity: 0.5;
49
+ }
39
50
  }
40
51
 
41
52
  &-toggle &-toggle-placeholder {
@@ -326,6 +337,10 @@
326
337
  padding: (@picker-menu-padding - @border-radius) @picker-menu-padding
327
338
  (@picker-menu-padding - @border-radius);
328
339
  }
340
+
341
+ .rs-highlight .rs-highlight-mark {
342
+ padding: 0;
343
+ }
329
344
  }
330
345
 
331
346
  // Make sure styles the same with <Input>
@@ -340,6 +355,10 @@
340
355
  &.rs-picker-disabled .rs-btn {
341
356
  background-color: var(--rs-input-disabled-bg) !important;
342
357
  }
358
+
359
+ &.rs-picker-disabled .rs-input-group {
360
+ pointer-events: none;
361
+ }
343
362
  }
344
363
 
345
364
  // Check Item
@@ -402,3 +421,10 @@
402
421
  }
403
422
  }
404
423
  }
424
+
425
+ .rs-picker-menu-group {
426
+ background-color: var(--rs-listbox-option-group-bg);
427
+ position: sticky;
428
+ top: -1px;
429
+ z-index: 1;
430
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rsuite",
3
- "version": "5.60.1",
3
+ "version": "5.61.0",
4
4
  "description": "A suite of react components",
5
5
  "main": "cjs/index.js",
6
6
  "module": "esm/index.js",
@@ -17,7 +17,7 @@
17
17
  "component",
18
18
  "react-component"
19
19
  ],
20
- "author": "HYPERS Team",
20
+ "author": "React Suite Team",
21
21
  "license": "MIT",
22
22
  "repository": {
23
23
  "type": "git",
@@ -67,7 +67,7 @@
67
67
  --rs-text-inverse: var(--rs-gray-800);
68
68
  --rs-text-heading-inverse: var(--rs-gray-900);
69
69
  --rs-text-active: var(--rs-primary-500);
70
- --rs-text-disabled: var(--rs-gray-500);
70
+ --rs-text-disabled: var(--rs-gray-400);
71
71
  --rs-border-primary: var(--rs-gray-600);
72
72
  --rs-border-secondary: var(--rs-gray-700);
73
73
  --rs-bg-card: var(--rs-gray-800);
@@ -246,6 +246,7 @@
246
246
  --rs-inline-edit-hover-bg: var(--rs-gray-500);
247
247
 
248
248
  // ARIA Listboxes
249
+ --rs-listbox-option-group-bg: var(--rs-gray-700);
249
250
  --rs-listbox-option-hover-bg: var(--rs-gray-600);
250
251
  --rs-listbox-option-hover-text: currentColor;
251
252
  --rs-listbox-option-selected-text: var(--rs-primary-500);
@@ -376,6 +377,9 @@
376
377
  // Popover
377
378
  --rs-popover-shadow: 0 4px 6px rgba(0, 0, 0, 0.3);
378
379
 
380
+ // Tree
381
+ --rs-tree-indent-line-color: rgba(255, 255, 255, 0.1);
382
+
379
383
  // CSS relative color syntax is not supported
380
384
  // https://developer.chrome.com/blog/css-relative-color-syntax/
381
385
  @supports not (color: rgb(from white r g b)) {
@@ -67,7 +67,8 @@
67
67
  --rs-text-inverse: var(--rs-gray-800);
68
68
  --rs-text-heading-inverse: var(--rs-gray-900);
69
69
  --rs-text-active: var(--rs-primary-500);
70
- --rs-text-disabled: var(--rs-gray-500);
70
+ --rs-text-disabled: var(--rs-gray-400);
71
+ --rs-text-highlight-bg: var(--rs-primary-500);
71
72
  --rs-border-primary: var(--rs-gray-100);
72
73
  --rs-border-secondary: var(--rs-gray-700);
73
74
  --rs-bg-card: var(--rs-gray-800);
@@ -92,7 +93,8 @@
92
93
  --rs-btn-default-active-bg: transparent;
93
94
  --rs-btn-default-active-text: var(--rs-primary-200);
94
95
  --rs-btn-default-disabled-bg: transparent;
95
- --rs-btn-default-disabled-text: var(--rs-primary-500);
96
+ --rs-btn-default-disabled-text: var(--rs-primary-900);
97
+ --rs-btn-default-disabled-boreder-color: var(--rs-gray-100);
96
98
  --rs-btn-primary-bg: var(--rs-primary-500);
97
99
  --rs-btn-primary-text: var(--rs-gray-900);
98
100
  --rs-btn-primary-hover-bg: var(--rs-primary-400);
@@ -251,6 +253,7 @@
251
253
  --rs-inline-edit-hover-bg: transparent;
252
254
 
253
255
  // ARIA Listboxes
256
+ --rs-listbox-option-group-bg: var(--rs-gray-800);
254
257
  --rs-listbox-option-hover-bg: transparent;
255
258
  --rs-listbox-option-hover-text: var(--rs-primary-500);
256
259
  --rs-listbox-option-selected-text: var(--rs-primary-500);
@@ -388,6 +391,9 @@
388
391
  // Popover
389
392
  --rs-popover-shadow: 0 4px 6px rgba(0, 0, 0, 0.3);
390
393
 
394
+ // Tree
395
+ --rs-tree-indent-line-color: rgba(255, 255, 255, 0.1);
396
+
391
397
  // CSS relative color syntax is not supported
392
398
  // https://developer.chrome.com/blog/css-relative-color-syntax/
393
399
  @supports not (color: rgb(from white r g b)) {
@@ -73,8 +73,9 @@
73
73
  --rs-text-inverse: var(--rs-gray-50);
74
74
  --rs-text-heading-inverse: var(--rs-gray-0);
75
75
  --rs-text-active: var(--rs-primary-700);
76
- --rs-text-disabled: var(--rs-gray-400);
76
+ --rs-text-disabled: var(--rs-gray-600);
77
77
  --rs-text-error: var(--rs-color-red);
78
+ --rs-text-highlight-bg: #fff6c9;
78
79
  --rs-text-weight-thin: 100;
79
80
  --rs-text-weight-light: 300;
80
81
  --rs-text-weight-regular: 400;
@@ -103,7 +104,7 @@
103
104
  --rs-btn-default-active-bg: var(--rs-gray-300);
104
105
  --rs-btn-default-active-text: var(--rs-gray-900);
105
106
  --rs-btn-default-disabled-bg: var(--rs-gray-50);
106
- --rs-btn-default-disabled-text: var(--rs-gray-400);
107
+ --rs-btn-default-disabled-text: var(--rs-gray-600);
107
108
  --rs-btn-primary-bg: var(--rs-primary-500);
108
109
  --rs-btn-primary-text: var(--rs-gray-0);
109
110
  --rs-btn-primary-hover-bg: var(--rs-primary-600);
@@ -264,6 +265,7 @@
264
265
  --rs-inline-edit-hover-bg: var(--rs-gray-200);
265
266
 
266
267
  // ARIA Listboxes
268
+ --rs-listbox-option-group-bg: var(--rs-gray-0);
267
269
  --rs-listbox-option-hover-bg: rgb(from var(--rs-primary-100) r g b / 50%);
268
270
  --rs-listbox-option-hover-text: var(--rs-primary-700);
269
271
  --rs-listbox-option-selected-text: var(--rs-primary-700);
@@ -288,7 +290,7 @@
288
290
  --rs-radio-tile-bg: var(--rs-gray-0);
289
291
  --rs-radio-tile-checked-color: var(--rs-primary-500);
290
292
  --rs-radio-tile-checked-mark-color: #fff;
291
- --rs-radio-tile-checked-disabled-color: var(--rs-primary-100);
293
+ --rs-radio-tile-checked-disabled-color: var(--rs-primary-200);
292
294
  --rs-radio-tile-icon-size: 32px;
293
295
 
294
296
  // Rate
@@ -301,12 +303,12 @@
301
303
  --rs-toggle-loader-ring: rgb(from var(--rs-gray-50) r g b / 30%);
302
304
  --rs-toggle-loader-rotor: var(--rs-gray-0);
303
305
  --rs-toggle-hover-bg: var(--rs-gray-400);
304
- --rs-toggle-disabled-bg: var(--rs-gray-50);
306
+ --rs-toggle-disabled-bg: var(--rs-gray-200);
305
307
  --rs-toggle-disabled-thumb: #fff;
306
308
  --rs-toggle-checked-bg: var(--rs-primary-500);
307
309
  --rs-toggle-checked-thumb: #fff;
308
310
  --rs-toggle-checked-hover-bg: var(--rs-primary-600);
309
- --rs-toggle-checked-disabled-bg: var(--rs-primary-100);
311
+ --rs-toggle-checked-disabled-bg: var(--rs-primary-200);
310
312
  --rs-toggle-checked-disabled-thumb: #fff;
311
313
 
312
314
  // Slider
@@ -397,6 +399,9 @@
397
399
  // Popover
398
400
  --rs-popover-shadow: 0 1px 8px rgba(0, 0, 0, 0.12);
399
401
 
402
+ // Tree
403
+ --rs-tree-indent-line-color: rgba(0, 0, 0, 0.1);
404
+
400
405
  // CSS relative color syntax is not supported
401
406
  // https://developer.chrome.com/blog/css-relative-color-syntax/
402
407
  @supports not (color: rgb(from white r g b)) {
package/styles/index.less CHANGED
@@ -84,6 +84,7 @@
84
84
  @import '../Text/styles/index';
85
85
  @import '../Heading/styles/index';
86
86
  @import '../HeadingGroup/styles/index';
87
+ @import '../Highlight/styles/index';
87
88
 
88
89
  // Internal Components
89
90
  @import '../internals/Ripple/styles/index';
@@ -1,7 +0,0 @@
1
- .node-item-prepend-icon() {
2
- width: 14px;
3
- height: 36px;
4
- display: flex;
5
- align-items: center;
6
- font-size: @font-size-base;
7
- }
@@ -1,28 +0,0 @@
1
- import React from 'react';
2
- import { RsRefForwardingComponent, WithAsProps } from '../@types/common';
3
- import { CheckStateType } from '../utils';
4
- export interface CheckTreeNodeProps extends WithAsProps {
5
- rtl?: boolean;
6
- label?: any;
7
- layer: number;
8
- value?: any;
9
- focus?: boolean;
10
- style?: React.CSSProperties;
11
- expand?: boolean;
12
- loading?: boolean;
13
- visible?: boolean;
14
- nodeData?: any;
15
- disabled?: boolean;
16
- className?: string;
17
- checkState?: CheckStateType;
18
- classPrefix?: string;
19
- hasChildren?: boolean;
20
- uncheckable?: boolean;
21
- allUncheckable?: boolean;
22
- onExpand?: (nodeData: any) => void;
23
- onSelect?: (nodeData: any, event: React.SyntheticEvent) => void;
24
- renderTreeIcon?: (nodeData: any, expandIcon?: React.ReactNode) => React.ReactNode;
25
- renderTreeNode?: (nodeData: any) => React.ReactNode;
26
- }
27
- declare const CheckTreeNode: RsRefForwardingComponent<'div', CheckTreeNodeProps>;
28
- export default CheckTreeNode;
@@ -1,140 +0,0 @@
1
- 'use client';
2
- "use strict";
3
-
4
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
5
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
6
- exports.__esModule = true;
7
- exports.default = void 0;
8
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
- var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
10
- var _react = _interopRequireWildcard(require("react"));
11
- var _ArrowDown = _interopRequireDefault(require("@rsuite/icons/legacy/ArrowDown"));
12
- var _Spinner = _interopRequireDefault(require("@rsuite/icons/legacy/Spinner"));
13
- var _ListCheckItem = _interopRequireDefault(require("../internals/Picker/ListCheckItem"));
14
- var _treeUtils = require("../utils/treeUtils");
15
- var _utils = require("../utils");
16
- var CheckTreeNode = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
17
- var _ref$as = _ref.as,
18
- Component = _ref$as === void 0 ? 'div' : _ref$as,
19
- style = _ref.style,
20
- className = _ref.className,
21
- _ref$classPrefix = _ref.classPrefix,
22
- classPrefix = _ref$classPrefix === void 0 ? 'check-tree-node' : _ref$classPrefix,
23
- _ref$visible = _ref.visible,
24
- visible = _ref$visible === void 0 ? true : _ref$visible,
25
- layer = _ref.layer,
26
- disabled = _ref.disabled,
27
- allUncheckable = _ref.allUncheckable,
28
- rtl = _ref.rtl,
29
- loading = _ref.loading,
30
- expand = _ref.expand,
31
- hasChildren = _ref.hasChildren,
32
- nodeData = _ref.nodeData,
33
- focus = _ref.focus,
34
- label = _ref.label,
35
- uncheckable = _ref.uncheckable,
36
- checkState = _ref.checkState,
37
- value = _ref.value,
38
- onExpand = _ref.onExpand,
39
- onSelect = _ref.onSelect,
40
- renderTreeIcon = _ref.renderTreeIcon,
41
- renderTreeNode = _ref.renderTreeNode,
42
- rest = (0, _objectWithoutPropertiesLoose2.default)(_ref, ["as", "style", "className", "classPrefix", "visible", "layer", "disabled", "allUncheckable", "rtl", "loading", "expand", "hasChildren", "nodeData", "focus", "label", "uncheckable", "checkState", "value", "onExpand", "onSelect", "renderTreeIcon", "renderTreeNode"]);
43
- var _useClassNames = (0, _utils.useClassNames)(classPrefix),
44
- prefix = _useClassNames.prefix,
45
- merge = _useClassNames.merge,
46
- withClassPrefix = _useClassNames.withClassPrefix;
47
- var getTitle = function getTitle() {
48
- if (typeof label === 'string') {
49
- return label;
50
- } else if ( /*#__PURE__*/_react.default.isValidElement(label)) {
51
- var nodes = (0, _utils.reactToString)(label);
52
- return nodes.join('');
53
- }
54
- };
55
- var handleExpand = (0, _utils.useEventCallback)(function (event) {
56
- var _event$nativeEvent, _event$nativeEvent$st;
57
- // stop propagation when using custom loading icon
58
- event === null || event === void 0 ? void 0 : (_event$nativeEvent = event.nativeEvent) === null || _event$nativeEvent === void 0 ? void 0 : (_event$nativeEvent$st = _event$nativeEvent.stopImmediatePropagation) === null || _event$nativeEvent$st === void 0 ? void 0 : _event$nativeEvent$st.call(_event$nativeEvent);
59
- onExpand === null || onExpand === void 0 ? void 0 : onExpand(nodeData);
60
- });
61
- var handleSelect = (0, _utils.useEventCallback)(function (_value, event) {
62
- if (disabled || uncheckable) {
63
- return;
64
- }
65
- var isChecked = false;
66
- if (checkState === _utils.CHECK_STATE.UNCHECK || checkState === _utils.CHECK_STATE.INDETERMINATE) {
67
- isChecked = true;
68
- }
69
- if (checkState === _utils.CHECK_STATE.CHECK) {
70
- isChecked = false;
71
- }
72
- var nextNodeData = (0, _extends2.default)({}, nodeData, {
73
- check: isChecked
74
- });
75
- onSelect === null || onSelect === void 0 ? void 0 : onSelect(nextNodeData, event);
76
- });
77
- var renderIcon = function renderIcon() {
78
- var expandIconClasses = prefix('expand-icon', 'icon', {
79
- expanded: expand
80
- });
81
- var expandIcon = /*#__PURE__*/_react.default.createElement(_ArrowDown.default, {
82
- className: expandIconClasses
83
- });
84
- if (loading) {
85
- expandIcon = /*#__PURE__*/_react.default.createElement("div", {
86
- className: prefix('loading-icon')
87
- }, /*#__PURE__*/_react.default.createElement(_Spinner.default, {
88
- spin: true
89
- }));
90
- }
91
- if (typeof renderTreeIcon === 'function') {
92
- var customIcon = renderTreeIcon(nodeData);
93
- expandIcon = customIcon !== null ? /*#__PURE__*/_react.default.createElement("div", {
94
- className: prefix('custom-icon')
95
- }, customIcon) : expandIcon;
96
- }
97
- return hasChildren ? /*#__PURE__*/_react.default.createElement("div", {
98
- role: "button",
99
- tabIndex: -1,
100
- "data-ref": nodeData.refKey,
101
- className: prefix('expand-icon-wrapper'),
102
- onClick: handleExpand
103
- }, expandIcon) : null;
104
- };
105
- var classes = merge(className, withClassPrefix({
106
- disabled: disabled,
107
- 'all-uncheckable': !!allUncheckable,
108
- 'text-muted': disabled,
109
- focus: focus
110
- }));
111
- var styles = (0, _extends2.default)({}, style, (0, _treeUtils.getTreeNodeIndent)(rtl, layer - 1));
112
- return visible ? /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({}, rest, {
113
- style: styles,
114
- className: classes,
115
- ref: ref
116
- }), renderIcon(), /*#__PURE__*/_react.default.createElement(_ListCheckItem.default, {
117
- as: "div",
118
- role: "treeitem",
119
- "aria-label": label,
120
- "aria-expanded": expand,
121
- "aria-selected": checkState === _utils.CHECK_STATE.CHECK,
122
- "aria-disabled": disabled,
123
- "aria-level": layer,
124
- active: checkState === _utils.CHECK_STATE.CHECK,
125
- indeterminate: checkState === _utils.CHECK_STATE.INDETERMINATE,
126
- focus: focus,
127
- checkable: !uncheckable,
128
- disabled: disabled,
129
- "data-layer": layer,
130
- value: nodeData.refKey || value,
131
- className: prefix('label'),
132
- title: getTitle(),
133
- onSelect: handleSelect
134
- }, /*#__PURE__*/_react.default.createElement("span", {
135
- className: prefix('label-content')
136
- }, typeof renderTreeNode === 'function' ? renderTreeNode(nodeData) : label))) : null;
137
- });
138
- CheckTreeNode.displayName = 'CheckTreeNode';
139
- var _default = CheckTreeNode;
140
- exports.default = _default;
@@ -1,44 +0,0 @@
1
- /// <reference types="react" />
2
- import { CheckTreePickerProps, ValueType } from './CheckTreePicker';
3
- import { CheckStateType } from '../utils';
4
- export interface TreeNodeType {
5
- uncheckable?: boolean;
6
- refKey?: string;
7
- check?: boolean;
8
- parent?: TreeNodeType;
9
- checkAll?: boolean;
10
- visible?: boolean;
11
- expand?: boolean;
12
- layer?: number;
13
- label?: string | React.ReactNode;
14
- value?: string | number;
15
- groupBy?: string;
16
- children?: TreeNodeType[];
17
- hasChildren?: boolean;
18
- checkState?: CheckStateType;
19
- }
20
- export interface TreeNodesType {
21
- [key: string]: TreeNodeType;
22
- }
23
- export declare function isEveryChildChecked(nodes: TreeNodesType, parent: TreeNodeType): boolean;
24
- export declare function isSomeChildChecked(nodes: TreeNodesType, parent: TreeNodeType, childrenKey: string): boolean;
25
- export declare function isSomeNodeHasChildren(data: any[], childrenKey: string): boolean;
26
- /**
27
- * is all siblings nodes is uncheckable
28
- * @param {*} node
29
- */
30
- export declare function isAllSiblingNodeUncheckable(node: TreeNodeType, nodes: TreeNodesType, uncheckableItemValues: (string | number)[], valueKey: string): boolean;
31
- /**
32
- * get each first level node uncheckable state
33
- */
34
- export declare function isEveryFirstLevelNodeUncheckable(nodes: TreeNodesType, uncheckableItemValues: (string | number)[], valueKey: string): boolean;
35
- /**
36
- * get node uncheckable state
37
- * @param {*} node
38
- */
39
- export declare function isNodeUncheckable(node: any, props: Required<Pick<CheckTreePickerProps, 'uncheckableItemValues' | 'valueKey'>>): boolean;
40
- export declare function getFormattedTree(nodes: TreeNodesType, data: any[], props: Required<Pick<CheckTreePickerProps, 'childrenKey' | 'cascade'>>): any[];
41
- export declare function getDisabledState(nodes: TreeNodesType, node: TreeNodeType, props: Required<Pick<CheckTreePickerProps, 'disabledItemValues' | 'valueKey'>>): boolean;
42
- export declare function getCheckTreePickerDefaultValue(value: any[], uncheckableItemValues: any[]): any[];
43
- export declare function getSelectedItems(nodes: TreeNodesType, values: ValueType): TreeNodeType[];
44
- export declare function getNodeCheckState({ nodes, node, cascade, childrenKey }: any): CheckStateType;
@@ -1,6 +0,0 @@
1
- import React from 'react';
2
- export interface TreeContextProps {
3
- inline?: boolean;
4
- }
5
- declare const TreeContext: React.Context<TreeContextProps>;
6
- export default TreeContext;
@@ -1,10 +0,0 @@
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 _react = _interopRequireDefault(require("react"));
8
- var TreeContext = /*#__PURE__*/_react.default.createContext({});
9
- var _default = TreeContext;
10
- exports.default = _default;
@@ -1,36 +0,0 @@
1
- import React from 'react';
2
- import { WithAsProps, RsRefForwardingComponent, ItemDataType } from '../@types/common';
3
- export interface TreeNodeProps extends WithAsProps {
4
- rtl?: boolean;
5
- layer: number;
6
- value?: ItemDataType['value'];
7
- label?: ItemDataType['label'];
8
- focus?: boolean;
9
- loading?: boolean;
10
- expand?: boolean;
11
- active?: boolean;
12
- visible: boolean;
13
- nodeData: any;
14
- disabled?: boolean;
15
- draggable?: boolean;
16
- dragging?: boolean;
17
- dragOver?: boolean;
18
- dragOverTop?: boolean;
19
- dragOverBottom?: boolean;
20
- hasChildren?: boolean;
21
- className?: string;
22
- classPrefix?: string;
23
- style?: React.CSSProperties;
24
- onExpand?: (nodeData: any) => void;
25
- onSelect?: (nodeData: any, event: React.SyntheticEvent) => void;
26
- renderTreeIcon?: (nodeData: any) => React.ReactNode;
27
- renderTreeNode?: (nodeData: any) => React.ReactNode;
28
- onDragStart?: (data: any, event: React.DragEvent<any>) => void;
29
- onDragEnter?: (data: any, event: React.DragEvent<any>) => void;
30
- onDragOver?: (data: any, event: React.DragEvent<any>) => void;
31
- onDragLeave?: (data: any, event: React.DragEvent<any>) => void;
32
- onDragEnd?: (data: any, event: React.DragEvent<any>) => void;
33
- onDrop?: (data: any, event: React.DragEvent<any>) => void;
34
- }
35
- declare const TreeNode: RsRefForwardingComponent<'div', TreeNodeProps>;
36
- export default TreeNode;