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,53 @@
1
+ 'use client';
2
+ "use strict";
3
+
4
+ exports.__esModule = true;
5
+ exports.default = void 0;
6
+ var _react = require("react");
7
+ var _utils = require("../../utils");
8
+ function useFocusState(props) {
9
+ var target = props.target,
10
+ value = props.value,
11
+ focusActiveNode = props.focusActiveNode;
12
+ var _useState = (0, _react.useState)(false),
13
+ active = _useState[0],
14
+ setActive = _useState[1];
15
+ var _useState2 = (0, _react.useState)(null),
16
+ focusItemValue = _useState2[0],
17
+ setFocusItemValue = _useState2[1];
18
+ var focusTarget = (0, _utils.useEventCallback)(function () {
19
+ var _target$current;
20
+ (_target$current = target.current) === null || _target$current === void 0 ? void 0 : _target$current.focus();
21
+ });
22
+ var onEnter = (0, _utils.useEventCallback)(function (node) {
23
+ var _props$onEnter;
24
+ setActive(true);
25
+ (_props$onEnter = props.onEnter) === null || _props$onEnter === void 0 ? void 0 : _props$onEnter.call(props, node);
26
+ });
27
+ var onExit = (0, _utils.useEventCallback)(function (node) {
28
+ var _props$onExit;
29
+ setActive(false);
30
+ focusTarget();
31
+ (_props$onExit = props.onExit) === null || _props$onExit === void 0 ? void 0 : _props$onExit.call(props, node);
32
+ });
33
+ var onEntered = (0, _utils.useEventCallback)(function (node) {
34
+ var _props$onEntered;
35
+ if (value) {
36
+ setFocusItemValue(value);
37
+ focusActiveNode();
38
+ }
39
+ (_props$onEntered = props.onEntered) === null || _props$onEntered === void 0 ? void 0 : _props$onEntered.call(props, node);
40
+ });
41
+ return {
42
+ active: active,
43
+ focusItemValue: focusItemValue,
44
+ setFocusItemValue: setFocusItemValue,
45
+ triggerProps: {
46
+ onEnter: onEnter,
47
+ onExit: onExit,
48
+ onEntered: onEntered
49
+ }
50
+ };
51
+ }
52
+ var _default = useFocusState;
53
+ exports.default = _default;
package/cjs/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/cjs/index.js CHANGED
@@ -4,13 +4,15 @@
4
4
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
5
5
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
6
6
  exports.__esModule = true;
7
- exports.useFormClassNames = exports.Accordion = exports.Tabs = exports.VisuallyHidden = exports.useMediaQuery = exports.CustomProvider = exports.Affix = exports.DOMHelper = exports.Animation = exports.Schema = exports.Stack = exports.Divider = exports.Footer = exports.Sidebar = exports.Header = exports.Content = exports.Container = exports.FlexboxGrid = exports.Col = exports.Row = exports.Grid = exports.Carousel = exports.Calendar = exports.List = exports.TagGroup = exports.Tag = exports.Timeline = exports.Table = exports.PanelGroup = exports.Panel = exports.MultiCascadeTree = exports.CascadeTree = exports.CheckTree = exports.Tree = exports.InlineEdit = exports.Rate = exports.RangeSlider = exports.Slider = exports.Uploader = exports.AutoComplete = exports.DateRangePicker = exports.DateRangeInput = exports.DatePicker = exports.DateInput = exports.MultiCascader = exports.Cascader = exports.CheckTreePicker = exports.TreePicker = exports.TagInput = exports.TagPicker = exports.InputPicker = exports.CheckPicker = exports.SelectPicker = exports.RadioTileGroup = exports.RadioTile = exports.RadioGroup = exports.Radio = exports.CheckboxGroup = exports.Checkbox = exports.InputGroup = exports.InputNumber = exports.MaskedInput = exports.Input = exports.Toggle = exports.Form = exports.Steps = exports.Pagination = exports.Breadcrumb = exports.Sidenav = exports.Navbar = exports.Nav = exports.AvatarGroup = exports.Avatar = exports.Progress = exports.useToaster = exports.toaster = exports.Badge = exports.Placeholder = exports.Loader = exports.Message = exports.Notification = exports.Dropdown = exports.Drawer = exports.Modal = exports.Popover = exports.Tooltip = exports.Whisper = exports.ButtonGroup = exports.ButtonToolbar = exports.IconButton = exports.Button = exports.SafeAnchor = exports.HeadingGroup = exports.Heading = exports.Text = void 0;
7
+ exports.useFormClassNames = exports.Accordion = exports.Tabs = exports.VisuallyHidden = exports.useMediaQuery = exports.CustomProvider = exports.Affix = exports.DOMHelper = exports.Animation = exports.Schema = exports.Stack = exports.Divider = exports.Footer = exports.Sidebar = exports.Header = exports.Content = exports.Container = exports.FlexboxGrid = exports.Col = exports.Row = exports.Grid = exports.Carousel = exports.Calendar = exports.List = exports.TagGroup = exports.Tag = exports.Timeline = exports.Table = exports.PanelGroup = exports.Panel = exports.MultiCascadeTree = exports.CascadeTree = exports.CheckTree = exports.Tree = exports.InlineEdit = exports.Rate = exports.RangeSlider = exports.Slider = exports.Uploader = exports.AutoComplete = exports.DateRangePicker = exports.DateRangeInput = exports.DatePicker = exports.DateInput = exports.MultiCascader = exports.Cascader = exports.CheckTreePicker = exports.TreePicker = exports.TagInput = exports.TagPicker = exports.InputPicker = exports.CheckPicker = exports.SelectPicker = exports.RadioTileGroup = exports.RadioTile = exports.RadioGroup = exports.Radio = exports.CheckboxGroup = exports.Checkbox = exports.InputGroup = exports.InputNumber = exports.MaskedInput = exports.Input = exports.Toggle = exports.Form = exports.Steps = exports.Pagination = exports.Breadcrumb = exports.Sidenav = exports.Navbar = exports.Nav = exports.AvatarGroup = exports.Avatar = exports.Progress = exports.useToaster = exports.toaster = exports.Badge = exports.Placeholder = exports.Loader = exports.Message = exports.Notification = exports.Dropdown = exports.Drawer = exports.Modal = exports.Popover = exports.Tooltip = exports.Whisper = exports.ButtonGroup = exports.ButtonToolbar = exports.IconButton = exports.Button = exports.SafeAnchor = exports.Highlight = exports.HeadingGroup = exports.Heading = exports.Text = void 0;
8
8
  var _Text = _interopRequireDefault(require("./Text"));
9
9
  exports.Text = _Text.default;
10
10
  var _Heading = _interopRequireDefault(require("./Heading"));
11
11
  exports.Heading = _Heading.default;
12
12
  var _HeadingGroup = _interopRequireDefault(require("./HeadingGroup"));
13
13
  exports.HeadingGroup = _HeadingGroup.default;
14
+ var _Highlight = _interopRequireDefault(require("./Highlight"));
15
+ exports.Highlight = _Highlight.default;
14
16
  var _SafeAnchor = _interopRequireDefault(require("./SafeAnchor"));
15
17
  exports.SafeAnchor = _SafeAnchor.default;
16
18
  var _Button = _interopRequireDefault(require("./Button"));
@@ -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> & {
@@ -24,12 +24,19 @@ var _utils = require("../../utils");
24
24
  var _ListItemGroup = _interopRequireDefault(require("./ListItemGroup"));
25
25
  var _getDataGroupBy = require("../../utils/getDataGroupBy");
26
26
  var _useCombobox2 = _interopRequireDefault(require("./hooks/useCombobox"));
27
+ var _Highlight = _interopRequireDefault(require("../../Highlight"));
27
28
  var _symbols = require("../../internals/symbols");
28
29
  var _this = void 0;
30
+ /**
31
+ * Props for the Listbox component.
32
+ */
33
+ /**
34
+ * Props for the Listbox component.
35
+ * @template Multiple - Whether multiple selection is enabled.
36
+ */
29
37
  var Listbox = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
30
38
  var _props$data = props.data,
31
39
  data = _props$data === void 0 ? [] : _props$data,
32
- group = props.group,
33
40
  groupBy = props.groupBy,
34
41
  _props$maxHeight = props.maxHeight,
35
42
  maxHeight = _props$maxHeight === void 0 ? 320 : _props$maxHeight,
@@ -56,17 +63,19 @@ var Listbox = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
56
63
  rowHeight = _props$rowHeight === void 0 ? 36 : _props$rowHeight,
57
64
  _props$rowGroupHeight = props.rowGroupHeight,
58
65
  rowGroupHeight = _props$rowGroupHeight === void 0 ? 48 : _props$rowGroupHeight,
66
+ query = props.query,
59
67
  renderMenuGroup = props.renderMenuGroup,
60
68
  renderMenuItem = props.renderMenuItem,
61
69
  onGroupTitleClick = props.onGroupTitleClick,
62
70
  onSelect = props.onSelect,
63
- rest = (0, _objectWithoutPropertiesLoose2.default)(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"]);
71
+ rest = (0, _objectWithoutPropertiesLoose2.default)(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"]);
64
72
  var _useClassNames = (0, _utils.useClassNames)(classPrefix),
65
73
  withClassPrefix = _useClassNames.withClassPrefix,
66
74
  prefix = _useClassNames.prefix,
67
75
  merge = _useClassNames.merge;
76
+ var groupable = typeof groupBy !== 'undefined';
68
77
  var classes = merge(className, withClassPrefix('items', {
69
- grouped: group
78
+ grouped: groupable
70
79
  }));
71
80
  var _useCombobox = (0, _useCombobox2.default)(),
72
81
  id = _useCombobox.id,
@@ -93,7 +102,7 @@ var Listbox = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
93
102
  });
94
103
  var getRowHeight = function getRowHeight(list, index) {
95
104
  var item = list[index];
96
- if (group && item[_symbols.RSUITE_PICKER_GROUP_KEY] && index !== 0) {
105
+ if (groupable && item[_symbols.RSUITE_PICKER_GROUP_KEY] && index !== 0) {
97
106
  return rowGroupHeight;
98
107
  }
99
108
  return rowHeight;
@@ -119,16 +128,12 @@ var Listbox = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
119
128
  (0, _scrollTop.default)(container, Math.max(0, position.top - sHeight + 32));
120
129
  }
121
130
  }, [focusItemValue, menuBodyContainerRef, prefix]);
122
- var filteredItems = group ? data.filter(function (item) {
131
+ var filteredItems = groupable ? data.filter(function (item) {
123
132
  var _item$parent;
124
133
  // Display group title items
125
134
  if (item[_symbols.RSUITE_PICKER_GROUP_KEY]) return true;
126
135
 
127
136
  // Display items under the unfolded group
128
- // FIXME-Doma
129
- // `groupBy` is bound to be string when `group` is true
130
- // because `group` is actually redundant as a prop
131
- // It could simply be derived from `groupBy` value
132
137
  var groupValue = (0, _get.default)(item, groupBy, '') || ( // FIXME-Doma
133
138
  // Usage of `item.parent` is strongly discouraged
134
139
  // It's only here for legacy support
@@ -145,7 +150,11 @@ var Listbox = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
145
150
  itemData = _ref.item;
146
151
  var item = itemData || data[index];
147
152
  var value = item[valueKey];
148
- var label = item[labelKey];
153
+ var itemLabel = item[labelKey];
154
+ var label = query ? /*#__PURE__*/_react.default.createElement(_Highlight.default, {
155
+ query: query,
156
+ as: "span"
157
+ }, itemLabel) : itemLabel;
149
158
  if ((0, _isUndefined.default)(label) && !item[_symbols.RSUITE_PICKER_GROUP_KEY]) {
150
159
  throw Error("labelKey \"" + labelKey + "\" is not defined in \"data\" : " + index);
151
160
  }
@@ -153,13 +162,9 @@ var Listbox = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
153
162
  // Use `value` in keys when If `value` is string or number
154
163
  var itemKey = (0, _isString.default)(value) || (0, _isNumber.default)(value) ? value : index;
155
164
 
156
- /**
157
- * Render <ListboxGroup>
158
- * when if `group` is enabled
159
- */
160
- if (group && item[_symbols.RSUITE_PICKER_GROUP_KEY]) {
165
+ // Render <ListboxGroup> component when `groupBy` is defined
166
+ if (groupable && item[_symbols.RSUITE_PICKER_GROUP_KEY]) {
161
167
  var groupValue = item[_getDataGroupBy.KEY_GROUP_TITLE];
162
- // TODO: grouped options should be owned by group
163
168
  return /*#__PURE__*/_react.default.createElement(_ListItemGroup.default, {
164
169
  style: style,
165
170
  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;
@@ -16,7 +16,8 @@ var PickerIndicator = function PickerIndicator(_ref) {
16
16
  onClose = _ref.onClose,
17
17
  showCleanButton = _ref.showCleanButton,
18
18
  _ref$as = _ref.as,
19
- Component = _ref$as === void 0 ? _InputGroup.default.Addon : _ref$as;
19
+ Component = _ref$as === void 0 ? _InputGroup.default.Addon : _ref$as,
20
+ disabled = _ref.disabled;
20
21
  var _useCustom = (0, _utils.useCustom)(),
21
22
  locale = _useCustom.locale;
22
23
  var _useClassNames = (0, _utils.useClassNames)('picker'),
@@ -28,7 +29,7 @@ var PickerIndicator = function PickerIndicator(_ref) {
28
29
  "data-testid": "spinner"
29
30
  });
30
31
  }
31
- if (showCleanButton) {
32
+ if (showCleanButton && !disabled) {
32
33
  return /*#__PURE__*/_react.default.createElement(_CloseButton.default, {
33
34
  className: prefix('clean'),
34
35
  tabIndex: -1,
@@ -43,7 +44,10 @@ var PickerIndicator = function PickerIndicator(_ref) {
43
44
  className: prefix('caret-icon')
44
45
  });
45
46
  };
46
- return /*#__PURE__*/_react.default.createElement(Component, null, addon());
47
+ var props = Component === _InputGroup.default.Addon ? {
48
+ disabled: disabled
49
+ } : undefined;
50
+ return /*#__PURE__*/_react.default.createElement(Component, props, addon());
47
51
  };
48
52
  var _default = PickerIndicator;
49
53
  exports.default = _default;
@@ -10,8 +10,8 @@ var _isUndefined = _interopRequireDefault(require("lodash/isUndefined"));
10
10
  var _find = _interopRequireDefault(require("lodash/find"));
11
11
  var _domLib = require("dom-lib");
12
12
  var _utils = require("../../../utils");
13
- var _treeUtils = require("../../../utils/treeUtils");
14
- var _utils2 = require("../utils");
13
+ var _utils2 = require("../../Tree/utils");
14
+ var _utils3 = require("../utils");
15
15
  /**
16
16
  * A hook that manages the focus state of the option.
17
17
  * @param defaultFocusItemValue
@@ -182,7 +182,7 @@ var useFocusItemValue = function useFocusItemValue(defaultFocusItemValue, props)
182
182
  var _getParent;
183
183
  setKeys(nextKeys);
184
184
  setLayer(nextLayer);
185
- var focusItem = (0, _treeUtils.findNodeOfTree)(data, function (item) {
185
+ var focusItem = (0, _utils2.findNodeOfTree)(data, function (item) {
186
186
  return item[valueKey] === focusItemValue;
187
187
  });
188
188
  var parentItemValue = (_getParent = getParent(focusItem)) === null || _getParent === void 0 ? void 0 : _getParent[valueKey];
@@ -194,7 +194,7 @@ var useFocusItemValue = function useFocusItemValue(defaultFocusItemValue, props)
194
194
  });
195
195
  var handleKeyDown = (0, _utils.useEventCallback)(function (event) {
196
196
  var _onMenuKeyDown;
197
- (0, _utils2.onMenuKeyDown)(event, (_onMenuKeyDown = {
197
+ (0, _utils3.onMenuKeyDown)(event, (_onMenuKeyDown = {
198
198
  down: focusNextMenuItem,
199
199
  up: focusPrevMenuItem
200
200
  }, _onMenuKeyDown[rtl ? 'left' : 'right'] = focusNextLevelMenu, _onMenuKeyDown[rtl ? 'right' : 'left'] = focusPrevLevelMenu, _onMenuKeyDown));
@@ -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>;
@@ -10,7 +10,7 @@ var _symbols = require("../../../internals/symbols");
10
10
  /**
11
11
  * A hook of the exposed method of Picker
12
12
  */
13
- function usePickerRef(ref, parmas) {
13
+ function usePickerRef(ref) {
14
14
  var trigger = (0, _react.useRef)(null);
15
15
  var root = (0, _react.useRef)(null);
16
16
  var target = (0, _react.useRef)(null);
@@ -18,8 +18,6 @@ function usePickerRef(ref, parmas) {
18
18
  var list = (0, _react.useRef)(null);
19
19
  var searchInput = (0, _react.useRef)(null);
20
20
  var treeView = (0, _react.useRef)(null);
21
- var _ref = parmas || {},
22
- inline = _ref.inline;
23
21
  var handleOpen = (0, _useEventCallback.default)(function () {
24
22
  var _trigger$current;
25
23
  trigger === null || trigger === void 0 ? void 0 : (_trigger$current = trigger.current) === null || _trigger$current === void 0 ? void 0 : _trigger$current.open();
@@ -33,25 +31,10 @@ function usePickerRef(ref, parmas) {
33
31
  trigger === null || trigger === void 0 ? void 0 : (_trigger$current3 = trigger.current) === null || _trigger$current3 === void 0 ? void 0 : _trigger$current3.updatePosition();
34
32
  });
35
33
  (0, _react.useImperativeHandle)(ref, function () {
36
- // Tree and CheckTree
37
- if (inline) {
38
- return {
39
- get root() {
40
- var _trigger$current$root, _trigger$current4;
41
- 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;
42
- },
43
- get list() {
44
- if (!(list !== null && list !== void 0 && list.current)) {
45
- throw new Error('The list is not found, please set `virtualized` for the component.');
46
- }
47
- return list === null || list === void 0 ? void 0 : list.current;
48
- }
49
- };
50
- }
51
34
  return {
52
35
  get root() {
53
- var _ref2, _trigger$current5;
54
- 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;
36
+ var _ref, _trigger$current4;
37
+ 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;
55
38
  },
56
39
  get overlay() {
57
40
  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';
@@ -5,7 +5,6 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
6
6
  exports.__esModule = true;
7
7
  var _exportNames = {
8
- TreeView: true,
9
8
  Listbox: true,
10
9
  ListItem: true,
11
10
  ListItemGroup: true,
@@ -19,13 +18,11 @@ var _exportNames = {
19
18
  pickTriggerPropKeys: true,
20
19
  omitTriggerPropKeys: true
21
20
  };
22
- exports.SelectedElement = exports.PickerToggleTrigger = exports.PickerIndicator = exports.PickerLabel = exports.PickerToggle = exports.PickerPopup = exports.ListCheckItem = exports.ListItemGroup = exports.ListItem = exports.Listbox = exports.TreeView = void 0;
21
+ exports.SelectedElement = exports.PickerToggleTrigger = exports.PickerIndicator = exports.PickerLabel = exports.PickerToggle = exports.PickerPopup = exports.ListCheckItem = exports.ListItemGroup = exports.ListItem = exports.Listbox = void 0;
23
22
  var _PickerToggleTrigger = _interopRequireWildcard(require("./PickerToggleTrigger"));
24
23
  exports.pickTriggerPropKeys = _PickerToggleTrigger.pickTriggerPropKeys;
25
24
  exports.omitTriggerPropKeys = _PickerToggleTrigger.omitTriggerPropKeys;
26
25
  exports.PickerToggleTrigger = _PickerToggleTrigger.default;
27
- var _TreeView = _interopRequireDefault(require("./TreeView"));
28
- exports.TreeView = _TreeView.default;
29
26
  var _Listbox = _interopRequireDefault(require("./Listbox"));
30
27
  exports.Listbox = _Listbox.default;
31
28
  var _ListItem = _interopRequireDefault(require("./ListItem"));
@@ -8,8 +8,8 @@ exports.shouldDisplay = shouldDisplay;
8
8
  exports.onMenuKeyDown = onMenuKeyDown;
9
9
  var _react = _interopRequireDefault(require("react"));
10
10
  var _trim = _interopRequireDefault(require("lodash/trim"));
11
- var _treeUtils = require("../../utils/treeUtils");
12
- var _utils = require("../../utils");
11
+ var _utils = require("../Tree/utils");
12
+ var _utils2 = require("../../utils");
13
13
  var defaultNodeKeys = {
14
14
  valueKey: 'value',
15
15
  childrenKey: 'children'
@@ -23,7 +23,7 @@ function createConcatChildrenFunction(node, nodeValue, nodeKeys) {
23
23
  childrenKey = _nodeKeys.childrenKey;
24
24
  return function (data, children) {
25
25
  if (nodeValue) {
26
- node = (0, _treeUtils.findNodeOfTree)(data, function (item) {
26
+ node = (0, _utils.findNodeOfTree)(data, function (item) {
27
27
  return nodeValue === item[valueKey];
28
28
  });
29
29
  }
@@ -39,7 +39,7 @@ function shouldDisplay(label, searchKeyword) {
39
39
  if (typeof label === 'string' || typeof label === 'number') {
40
40
  return ("" + label).toLocaleLowerCase().indexOf(keyword) >= 0;
41
41
  } else if ( /*#__PURE__*/_react.default.isValidElement(label)) {
42
- var nodes = (0, _utils.reactToString)(label);
42
+ var nodes = (0, _utils2.reactToString)(label);
43
43
  return nodes.join('').toLocaleLowerCase().indexOf(keyword) >= 0;
44
44
  }
45
45
  return false;
@@ -59,35 +59,35 @@ function onMenuKeyDown(event, events) {
59
59
  left = events.left;
60
60
  switch (event.key) {
61
61
  // down
62
- case _utils.KEY_VALUES.DOWN:
62
+ case _utils2.KEY_VALUES.DOWN:
63
63
  down === null || down === void 0 ? void 0 : down(event);
64
64
  event.preventDefault();
65
65
  break;
66
66
  // up
67
- case _utils.KEY_VALUES.UP:
67
+ case _utils2.KEY_VALUES.UP:
68
68
  up === null || up === void 0 ? void 0 : up(event);
69
69
  event.preventDefault();
70
70
  break;
71
71
  // enter
72
- case _utils.KEY_VALUES.ENTER:
72
+ case _utils2.KEY_VALUES.ENTER:
73
73
  enter === null || enter === void 0 ? void 0 : enter(event);
74
74
  event.preventDefault();
75
75
  break;
76
76
  // delete
77
- case _utils.KEY_VALUES.BACKSPACE:
77
+ case _utils2.KEY_VALUES.BACKSPACE:
78
78
  del === null || del === void 0 ? void 0 : del(event);
79
79
  break;
80
80
  // esc | tab
81
- case _utils.KEY_VALUES.ESC:
82
- case _utils.KEY_VALUES.TAB:
81
+ case _utils2.KEY_VALUES.ESC:
82
+ case _utils2.KEY_VALUES.TAB:
83
83
  esc === null || esc === void 0 ? void 0 : esc(event);
84
84
  break;
85
85
  // left arrow
86
- case _utils.KEY_VALUES.LEFT:
86
+ case _utils2.KEY_VALUES.LEFT:
87
87
  left === null || left === void 0 ? void 0 : left(event);
88
88
  break;
89
89
  // right arrow
90
- case _utils.KEY_VALUES.RIGHT:
90
+ case _utils2.KEY_VALUES.RIGHT:
91
91
  right === null || right === void 0 ? void 0 : right(event);
92
92
  break;
93
93
  default:
@@ -7,7 +7,7 @@ exports.default = void 0;
7
7
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
8
8
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
9
9
  var _react = _interopRequireDefault(require("react"));
10
- var _useCombobox2 = _interopRequireDefault(require("./hooks/useCombobox"));
10
+ var _useCombobox2 = _interopRequireDefault(require("../Picker/hooks/useCombobox"));
11
11
  var TreeView = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
12
12
  var children = props.children,
13
13
  treeRootClassName = props.treeRootClassName,
@@ -0,0 +1 @@
1
+ export { default as TreeView } from './TreeView';
@@ -0,0 +1,8 @@
1
+ 'use client';
2
+ "use strict";
3
+
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
+ exports.__esModule = true;
6
+ exports.TreeView = void 0;
7
+ var _TreeView = _interopRequireDefault(require("./TreeView"));
8
+ exports.TreeView = _TreeView.default;
@@ -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,31 @@
1
+ 'use client';
2
+ "use strict";
3
+
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
+ exports.__esModule = true;
6
+ exports.filterNodesOfTree = filterNodesOfTree;
7
+ var _clone = _interopRequireDefault(require("lodash/clone"));
8
+ function filterNodesOfTree(data, check) {
9
+ var findNodes = function findNodes(nodes) {
10
+ if (nodes === void 0) {
11
+ nodes = [];
12
+ }
13
+ var nextNodes = [];
14
+ for (var i = 0; i < nodes.length; i += 1) {
15
+ if (Array.isArray(nodes[i].children)) {
16
+ var nextChildren = findNodes(nodes[i].children);
17
+ if (nextChildren.length) {
18
+ var _item = (0, _clone.default)(nodes[i]);
19
+ _item.children = nextChildren;
20
+ nextNodes.push(_item);
21
+ continue;
22
+ }
23
+ }
24
+ if (check(nodes[i])) {
25
+ nextNodes.push(nodes[i]);
26
+ }
27
+ }
28
+ return nextNodes;
29
+ };
30
+ return findNodes(data);
31
+ }
@@ -0,0 +1 @@
1
+ export declare function findNodeOfTree(data: any, check: any): any;
@@ -0,0 +1,26 @@
1
+ 'use client';
2
+ "use strict";
3
+
4
+ exports.__esModule = true;
5
+ exports.findNodeOfTree = findNodeOfTree;
6
+ function findNodeOfTree(data, check) {
7
+ var findNode = function findNode(nodes) {
8
+ if (nodes === void 0) {
9
+ nodes = [];
10
+ }
11
+ for (var i = 0; i < nodes.length; i += 1) {
12
+ var item = nodes[i];
13
+ if (Array.isArray(item.children)) {
14
+ var node = findNode(item.children);
15
+ if (node) {
16
+ return node;
17
+ }
18
+ }
19
+ if (check(item)) {
20
+ return item;
21
+ }
22
+ }
23
+ return undefined;
24
+ };
25
+ return findNode(data);
26
+ }
@@ -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>;