rsuite 5.56.0 → 5.58.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 (272) hide show
  1. package/Accordion/styles/index.css +30 -0
  2. package/AutoComplete/styles/index.css +0 -137
  3. package/CHANGELOG.md +32 -0
  4. package/CascadeTree/package.json +7 -0
  5. package/CascadeTree/styles/index.css +273 -0
  6. package/CascadeTree/styles/index.less +77 -0
  7. package/CascadeTree/styles/search.less +45 -0
  8. package/Cascader/styles/index.css +187 -329
  9. package/Cascader/styles/index.less +1 -122
  10. package/CheckPicker/styles/index.css +0 -137
  11. package/CheckTree/styles/index.css +0 -137
  12. package/CheckTreePicker/styles/index.css +0 -137
  13. package/DatePicker/styles/index.css +0 -137
  14. package/DateRangePicker/styles/index.css +0 -137
  15. package/Dropdown/styles/index.css +35 -8
  16. package/Dropdown/styles/index.less +24 -13
  17. package/Heading/package.json +7 -0
  18. package/Heading/styles/index.css +42 -0
  19. package/Heading/styles/index.less +41 -0
  20. package/HeadingGroup/package.json +7 -0
  21. package/HeadingGroup/styles/index.css +5 -0
  22. package/HeadingGroup/styles/index.less +3 -0
  23. package/InputPicker/styles/index.css +29 -146
  24. package/InputPicker/styles/index.less +28 -12
  25. package/InputPicker/styles/mixin.less +7 -0
  26. package/MultiCascadeTree/package.json +7 -0
  27. package/MultiCascadeTree/styles/index.css +3564 -0
  28. package/MultiCascadeTree/styles/index.less +37 -0
  29. package/MultiCascader/styles/index.css +72 -206
  30. package/MultiCascader/styles/index.less +11 -31
  31. package/Nav/styles/index.css +35 -8
  32. package/Navbar/styles/index.css +35 -8
  33. package/Pagination/styles/index.css +0 -137
  34. package/Panel/styles/index.css +30 -0
  35. package/Panel/styles/index.less +1 -0
  36. package/Popover/styles/index.css +30 -0
  37. package/Popover/styles/index.less +3 -2
  38. package/SelectPicker/styles/index.css +0 -137
  39. package/Tabs/styles/index.css +35 -8
  40. package/TagInput/styles/index.css +132 -150
  41. package/TagPicker/styles/index.css +132 -150
  42. package/TagPicker/styles/index.less +57 -5
  43. package/TagPicker/styles/mixin.less +21 -0
  44. package/Text/package.json +7 -0
  45. package/Text/styles/index.css +192 -0
  46. package/Text/styles/index.less +117 -0
  47. package/cjs/@types/common.d.ts +12 -14
  48. package/cjs/CascadeTree/CascadeTree.d.ts +16 -0
  49. package/cjs/CascadeTree/CascadeTree.js +174 -0
  50. package/cjs/CascadeTree/SearchView.d.ts +17 -0
  51. package/cjs/CascadeTree/SearchView.js +106 -0
  52. package/cjs/CascadeTree/TreeView.d.ts +20 -0
  53. package/cjs/{Cascader → CascadeTree}/TreeView.js +42 -33
  54. package/cjs/CascadeTree/hooks/index.d.ts +3 -0
  55. package/cjs/CascadeTree/hooks/index.js +12 -0
  56. package/cjs/{Cascader/utils.d.ts → CascadeTree/hooks/usePaths.d.ts} +3 -25
  57. package/cjs/CascadeTree/hooks/usePaths.js +42 -0
  58. package/cjs/CascadeTree/hooks/useSearch.d.ts +17 -0
  59. package/cjs/CascadeTree/hooks/useSearch.js +59 -0
  60. package/cjs/CascadeTree/hooks/useSelect.d.ts +23 -0
  61. package/cjs/CascadeTree/hooks/useSelect.js +64 -0
  62. package/cjs/CascadeTree/index.d.ts +4 -0
  63. package/cjs/CascadeTree/index.js +9 -0
  64. package/cjs/CascadeTree/types.d.ts +66 -0
  65. package/cjs/CascadeTree/types.js +2 -0
  66. package/cjs/CascadeTree/utils.d.ts +32 -0
  67. package/cjs/CascadeTree/utils.js +66 -0
  68. package/cjs/Cascader/Cascader.d.ts +57 -26
  69. package/cjs/Cascader/Cascader.js +178 -249
  70. package/cjs/Cascader/useActive.d.ts +15 -0
  71. package/cjs/Cascader/useActive.js +43 -0
  72. package/cjs/CheckPicker/CheckPicker.js +2 -9
  73. package/cjs/CheckTreePicker/CheckTreePicker.js +2 -10
  74. package/cjs/DatePicker/DatePicker.js +5 -5
  75. package/cjs/DateRangePicker/DateRangePicker.js +3 -5
  76. package/cjs/Dropdown/DropdownItem.d.ts +10 -2
  77. package/cjs/Dropdown/DropdownItem.js +12 -3
  78. package/cjs/Heading/Heading.d.ts +16 -0
  79. package/cjs/Heading/Heading.js +44 -0
  80. package/cjs/Heading/index.d.ts +3 -0
  81. package/cjs/Heading/index.js +10 -0
  82. package/cjs/HeadingGroup/HeadingGroup.d.ts +8 -0
  83. package/cjs/HeadingGroup/HeadingGroup.js +17 -0
  84. package/cjs/HeadingGroup/index.d.ts +3 -0
  85. package/cjs/HeadingGroup/index.js +9 -0
  86. package/cjs/InlineEdit/InlineEdit.d.ts +1 -1
  87. package/cjs/InputPicker/InputPicker.js +7 -8
  88. package/cjs/Loader/Loader.js +5 -4
  89. package/cjs/MultiCascadeTree/MultiCascadeTree.d.ts +9 -0
  90. package/cjs/MultiCascadeTree/MultiCascadeTree.js +131 -0
  91. package/cjs/MultiCascadeTree/SearchView.d.ts +17 -0
  92. package/cjs/MultiCascadeTree/SearchView.js +117 -0
  93. package/cjs/MultiCascadeTree/TreeView.d.ts +22 -0
  94. package/cjs/{MultiCascader → MultiCascadeTree}/TreeView.js +20 -20
  95. package/cjs/MultiCascadeTree/hooks/index.d.ts +5 -0
  96. package/cjs/MultiCascadeTree/hooks/index.js +16 -0
  97. package/cjs/MultiCascadeTree/hooks/useCascadeValue.d.ts +18 -0
  98. package/cjs/MultiCascadeTree/hooks/useCascadeValue.js +202 -0
  99. package/cjs/MultiCascadeTree/hooks/useColumnData.d.ts +16 -0
  100. package/cjs/MultiCascadeTree/hooks/useColumnData.js +52 -0
  101. package/cjs/MultiCascadeTree/hooks/useFlattenData.d.ts +9 -0
  102. package/cjs/MultiCascadeTree/hooks/useFlattenData.js +33 -0
  103. package/cjs/MultiCascadeTree/hooks/useSearch.d.ts +17 -0
  104. package/cjs/MultiCascadeTree/hooks/useSearch.js +52 -0
  105. package/cjs/MultiCascadeTree/hooks/useSelect.d.ts +19 -0
  106. package/cjs/MultiCascadeTree/hooks/useSelect.js +83 -0
  107. package/cjs/MultiCascadeTree/index.d.ts +4 -0
  108. package/cjs/MultiCascadeTree/index.js +9 -0
  109. package/cjs/MultiCascadeTree/types.d.ts +26 -0
  110. package/cjs/MultiCascadeTree/types.js +2 -0
  111. package/cjs/MultiCascadeTree/utils.d.ts +37 -0
  112. package/cjs/MultiCascadeTree/utils.js +140 -0
  113. package/cjs/MultiCascader/MultiCascader.d.ts +57 -29
  114. package/cjs/MultiCascader/MultiCascader.js +173 -289
  115. package/cjs/Panel/Panel.js +3 -1
  116. package/cjs/Popover/Popover.js +3 -1
  117. package/cjs/SelectPicker/SelectPicker.js +3 -9
  118. package/cjs/Text/Text.d.ts +47 -0
  119. package/cjs/Text/Text.js +72 -0
  120. package/cjs/Text/index.d.ts +3 -0
  121. package/cjs/Text/index.js +10 -0
  122. package/cjs/Tree/Tree.d.ts +4 -4
  123. package/cjs/TreePicker/TreePicker.js +3 -10
  124. package/cjs/index.d.ts +27 -16
  125. package/cjs/index.js +30 -19
  126. package/cjs/internals/Overlay/OverlayTrigger.js +24 -17
  127. package/cjs/internals/Picker/PickerToggle.d.ts +4 -5
  128. package/cjs/internals/Picker/PickerToggleTrigger.d.ts +1 -1
  129. package/cjs/internals/Picker/PickerToggleTrigger.js +1 -1
  130. package/cjs/internals/Picker/hooks/useToggleKeyDownEvent.d.ts +0 -2
  131. package/cjs/internals/Picker/hooks/useToggleKeyDownEvent.js +0 -4
  132. package/cjs/toaster/ToastContainer.d.ts +9 -2
  133. package/cjs/toaster/index.d.ts +0 -1
  134. package/cjs/toaster/index.js +1 -3
  135. package/cjs/useToaster/index.d.ts +2 -0
  136. package/cjs/useToaster/index.js +9 -0
  137. package/cjs/{toaster → useToaster}/useToaster.d.ts +4 -4
  138. package/cjs/{toaster → useToaster}/useToaster.js +4 -4
  139. package/cjs/utils/index.d.ts +1 -0
  140. package/cjs/utils/index.js +5 -2
  141. package/dist/rsuite-no-reset-rtl.css +393 -219
  142. package/dist/rsuite-no-reset-rtl.min.css +1 -1
  143. package/dist/rsuite-no-reset-rtl.min.css.map +1 -1
  144. package/dist/rsuite-no-reset.css +393 -219
  145. package/dist/rsuite-no-reset.min.css +1 -1
  146. package/dist/rsuite-no-reset.min.css.map +1 -1
  147. package/dist/rsuite-rtl.css +393 -219
  148. package/dist/rsuite-rtl.min.css +1 -1
  149. package/dist/rsuite-rtl.min.css.map +1 -1
  150. package/dist/rsuite.css +393 -219
  151. package/dist/rsuite.js +321 -57
  152. package/dist/rsuite.js.map +1 -1
  153. package/dist/rsuite.min.css +1 -1
  154. package/dist/rsuite.min.css.map +1 -1
  155. package/dist/rsuite.min.js +1 -1
  156. package/dist/rsuite.min.js.map +1 -1
  157. package/esm/@types/common.d.ts +12 -14
  158. package/esm/CascadeTree/CascadeTree.d.ts +16 -0
  159. package/esm/CascadeTree/CascadeTree.js +167 -0
  160. package/esm/CascadeTree/SearchView.d.ts +17 -0
  161. package/esm/CascadeTree/SearchView.js +100 -0
  162. package/esm/CascadeTree/TreeView.d.ts +20 -0
  163. package/esm/{Cascader → CascadeTree}/TreeView.js +42 -33
  164. package/esm/CascadeTree/hooks/index.d.ts +3 -0
  165. package/esm/CascadeTree/hooks/index.js +4 -0
  166. package/esm/{Cascader/utils.d.ts → CascadeTree/hooks/usePaths.d.ts} +3 -25
  167. package/esm/CascadeTree/hooks/usePaths.js +36 -0
  168. package/esm/CascadeTree/hooks/useSearch.d.ts +17 -0
  169. package/esm/CascadeTree/hooks/useSearch.js +54 -0
  170. package/esm/CascadeTree/hooks/useSelect.d.ts +23 -0
  171. package/esm/CascadeTree/hooks/useSelect.js +59 -0
  172. package/esm/CascadeTree/index.d.ts +4 -0
  173. package/esm/CascadeTree/index.js +3 -0
  174. package/esm/CascadeTree/types.d.ts +66 -0
  175. package/esm/CascadeTree/types.js +1 -0
  176. package/esm/CascadeTree/utils.d.ts +32 -0
  177. package/esm/CascadeTree/utils.js +61 -0
  178. package/esm/Cascader/Cascader.d.ts +57 -26
  179. package/esm/Cascader/Cascader.js +165 -235
  180. package/esm/Cascader/useActive.d.ts +15 -0
  181. package/esm/Cascader/useActive.js +37 -0
  182. package/esm/CheckPicker/CheckPicker.js +2 -9
  183. package/esm/CheckTreePicker/CheckTreePicker.js +2 -10
  184. package/esm/DatePicker/DatePicker.js +6 -6
  185. package/esm/DateRangePicker/DateRangePicker.js +3 -5
  186. package/esm/Dropdown/DropdownItem.d.ts +10 -2
  187. package/esm/Dropdown/DropdownItem.js +12 -3
  188. package/esm/Heading/Heading.d.ts +16 -0
  189. package/esm/Heading/Heading.js +38 -0
  190. package/esm/Heading/index.d.ts +3 -0
  191. package/esm/Heading/index.js +4 -0
  192. package/esm/HeadingGroup/HeadingGroup.d.ts +8 -0
  193. package/esm/HeadingGroup/HeadingGroup.js +11 -0
  194. package/esm/HeadingGroup/index.d.ts +3 -0
  195. package/esm/HeadingGroup/index.js +3 -0
  196. package/esm/InlineEdit/InlineEdit.d.ts +1 -1
  197. package/esm/InputPicker/InputPicker.js +7 -8
  198. package/esm/Loader/Loader.js +6 -5
  199. package/esm/MultiCascadeTree/MultiCascadeTree.d.ts +9 -0
  200. package/esm/MultiCascadeTree/MultiCascadeTree.js +125 -0
  201. package/esm/MultiCascadeTree/SearchView.d.ts +17 -0
  202. package/esm/MultiCascadeTree/SearchView.js +111 -0
  203. package/esm/MultiCascadeTree/TreeView.d.ts +22 -0
  204. package/esm/{MultiCascader → MultiCascadeTree}/TreeView.js +20 -20
  205. package/esm/MultiCascadeTree/hooks/index.d.ts +5 -0
  206. package/esm/MultiCascadeTree/hooks/index.js +6 -0
  207. package/esm/MultiCascadeTree/hooks/useCascadeValue.d.ts +18 -0
  208. package/esm/MultiCascadeTree/hooks/useCascadeValue.js +197 -0
  209. package/esm/MultiCascadeTree/hooks/useColumnData.d.ts +16 -0
  210. package/esm/MultiCascadeTree/hooks/useColumnData.js +46 -0
  211. package/esm/MultiCascadeTree/hooks/useFlattenData.d.ts +9 -0
  212. package/esm/MultiCascadeTree/hooks/useFlattenData.js +28 -0
  213. package/esm/MultiCascadeTree/hooks/useSearch.d.ts +17 -0
  214. package/esm/MultiCascadeTree/hooks/useSearch.js +47 -0
  215. package/esm/MultiCascadeTree/hooks/useSelect.d.ts +19 -0
  216. package/esm/MultiCascadeTree/hooks/useSelect.js +77 -0
  217. package/esm/MultiCascadeTree/index.d.ts +4 -0
  218. package/esm/MultiCascadeTree/index.js +3 -0
  219. package/esm/MultiCascadeTree/types.d.ts +26 -0
  220. package/esm/MultiCascadeTree/types.js +1 -0
  221. package/esm/MultiCascadeTree/utils.d.ts +37 -0
  222. package/esm/MultiCascadeTree/utils.js +130 -0
  223. package/esm/MultiCascader/MultiCascader.d.ts +57 -29
  224. package/esm/MultiCascader/MultiCascader.js +166 -281
  225. package/esm/Panel/Panel.js +3 -1
  226. package/esm/Popover/Popover.js +3 -1
  227. package/esm/SelectPicker/SelectPicker.js +3 -9
  228. package/esm/Text/Text.d.ts +47 -0
  229. package/esm/Text/Text.js +66 -0
  230. package/esm/Text/index.d.ts +3 -0
  231. package/esm/Text/index.js +4 -0
  232. package/esm/Tree/Tree.d.ts +4 -4
  233. package/esm/TreePicker/TreePicker.js +3 -10
  234. package/esm/index.d.ts +27 -16
  235. package/esm/index.js +38 -15
  236. package/esm/internals/Overlay/OverlayTrigger.js +24 -17
  237. package/esm/internals/Picker/PickerToggle.d.ts +4 -5
  238. package/esm/internals/Picker/PickerToggleTrigger.d.ts +1 -1
  239. package/esm/internals/Picker/PickerToggleTrigger.js +1 -1
  240. package/esm/internals/Picker/hooks/useToggleKeyDownEvent.d.ts +0 -2
  241. package/esm/internals/Picker/hooks/useToggleKeyDownEvent.js +0 -4
  242. package/esm/toaster/ToastContainer.d.ts +9 -2
  243. package/esm/toaster/index.d.ts +0 -1
  244. package/esm/toaster/index.js +0 -1
  245. package/esm/useToaster/index.d.ts +2 -0
  246. package/esm/useToaster/index.js +3 -0
  247. package/esm/{toaster → useToaster}/useToaster.d.ts +4 -4
  248. package/esm/{toaster → useToaster}/useToaster.js +4 -4
  249. package/esm/utils/index.d.ts +1 -0
  250. package/esm/utils/index.js +2 -1
  251. package/internals/Picker/styles/index.less +0 -5
  252. package/internals/Picker/styles/mixin.less +0 -73
  253. package/package.json +1 -1
  254. package/styles/color-modes/light.less +7 -0
  255. package/styles/index.less +5 -0
  256. package/useToaster/package.json +7 -0
  257. package/useToaster/styles/index.css +239 -0
  258. package/useToaster/styles/index.less +1 -0
  259. package/cjs/Cascader/DropdownMenu.d.ts +0 -24
  260. package/cjs/Cascader/DropdownMenu.js +0 -175
  261. package/cjs/Cascader/TreeView.d.ts +0 -24
  262. package/cjs/Cascader/utils.js +0 -79
  263. package/cjs/MultiCascader/TreeView.d.ts +0 -25
  264. package/cjs/MultiCascader/utils.d.ts +0 -71
  265. package/cjs/MultiCascader/utils.js +0 -382
  266. package/esm/Cascader/DropdownMenu.d.ts +0 -24
  267. package/esm/Cascader/DropdownMenu.js +0 -168
  268. package/esm/Cascader/TreeView.d.ts +0 -24
  269. package/esm/Cascader/utils.js +0 -74
  270. package/esm/MultiCascader/TreeView.d.ts +0 -25
  271. package/esm/MultiCascader/utils.d.ts +0 -71
  272. package/esm/MultiCascader/utils.js +0 -369
@@ -94,18 +94,16 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
94
94
  onEntered = props.onEntered,
95
95
  onChange = props.onChange,
96
96
  onClean = props.onClean,
97
- onClose = props.onClose,
98
97
  onExited = props.onExited,
99
98
  onSearch = props.onSearch,
100
99
  onSelect = props.onSelect,
101
100
  onSelectItem = props.onSelectItem,
102
- onOpen = props.onOpen,
103
101
  onScroll = props.onScroll,
104
102
  onExpand = props.onExpand,
105
103
  renderValue = props.renderValue,
106
104
  renderTreeIcon = props.renderTreeIcon,
107
105
  renderTreeNode = props.renderTreeNode,
108
- rest = _objectWithoutPropertiesLoose(props, ["as", "data", "style", "appearance", "cleanable", "countable", "searchBy", "toggleAs", "searchKeyword", "showIndentLine", "locale", "cascade", "disabled", "valueKey", "labelKey", "placement", "childrenKey", "placeholder", "value", "defaultValue", "defaultExpandAll", "disabledItemValues", "expandItemValues", "defaultExpandItemValues", "height", "menuMaxHeight", "menuStyle", "searchable", "virtualized", "className", "classPrefix", "menuClassName", "menuAutoWidth", "uncheckableItemValues", "id", "listProps", "renderMenu", "getChildren", "renderExtraFooter", "onEntered", "onChange", "onClean", "onClose", "onExited", "onSearch", "onSelect", "onSelectItem", "onOpen", "onScroll", "onExpand", "renderValue", "renderTreeIcon", "renderTreeNode"]);
106
+ rest = _objectWithoutPropertiesLoose(props, ["as", "data", "style", "appearance", "cleanable", "countable", "searchBy", "toggleAs", "searchKeyword", "showIndentLine", "locale", "cascade", "disabled", "valueKey", "labelKey", "placement", "childrenKey", "placeholder", "value", "defaultValue", "defaultExpandAll", "disabledItemValues", "expandItemValues", "defaultExpandItemValues", "height", "menuMaxHeight", "menuStyle", "searchable", "virtualized", "className", "classPrefix", "menuClassName", "menuAutoWidth", "uncheckableItemValues", "id", "listProps", "renderMenu", "getChildren", "renderExtraFooter", "onEntered", "onChange", "onClean", "onExited", "onSearch", "onSelect", "onSelectItem", "onScroll", "onExpand", "renderValue", "renderTreeIcon", "renderTreeNode"]);
109
107
  var _useContext = useContext(TreeContext),
110
108
  inline = _useContext.inline;
111
109
  var _usePickerRef = usePickerRef(ref, {
@@ -366,18 +364,13 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
366
364
  }));
367
365
  });
368
366
  var handleOpen = useEventCallback(function () {
369
- var _trigger$current, _trigger$current$open;
370
- (_trigger$current = trigger.current) === null || _trigger$current === void 0 ? void 0 : (_trigger$current$open = _trigger$current.open) === null || _trigger$current$open === void 0 ? void 0 : _trigger$current$open.call(_trigger$current);
371
367
  setFocusItemValue(activeNode === null || activeNode === void 0 ? void 0 : activeNode[valueKey]);
372
368
  focusActiveNode();
373
- onOpen === null || onOpen === void 0 ? void 0 : onOpen();
374
369
  setActive(true);
375
370
  });
376
371
  var handleClose = useEventCallback(function () {
377
- var _trigger$current2, _trigger$current2$clo, _target$current;
378
- (_trigger$current2 = trigger.current) === null || _trigger$current2 === void 0 ? void 0 : (_trigger$current2$clo = _trigger$current2.close) === null || _trigger$current2$clo === void 0 ? void 0 : _trigger$current2$clo.call(_trigger$current2);
372
+ var _target$current;
379
373
  setSearchKeyword('');
380
- onClose === null || onClose === void 0 ? void 0 : onClose();
381
374
  setFocusItemValue(null);
382
375
  setActive(false);
383
376
 
@@ -494,7 +487,6 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
494
487
  searchInput: searchInput,
495
488
  active: active,
496
489
  onExit: handleClean,
497
- onClose: handleClose,
498
490
  onMenuKeyDown: function onMenuKeyDown(event) {
499
491
  _onMenuKeyDown(event, {
500
492
  down: function down() {
@@ -17,7 +17,7 @@ import { isEveryDateInMonth } from '../Calendar/MonthDropdown';
17
17
  import Toolbar from './Toolbar';
18
18
  import Stack from '../Stack';
19
19
  import PredefinedRanges from './PredefinedRanges';
20
- import { createChainedFunction, mergeRefs, useClassNames, useControlled, useCustom, useUniqueId, useEventCallback, partitionHTMLProps } from '../utils';
20
+ import { mergeRefs, useClassNames, useControlled, useCustom, useUniqueId, useEventCallback, partitionHTMLProps } from '../utils';
21
21
  import { shouldRenderMonth, shouldRenderDate, shouldRenderTime, shouldOnlyRenderTime, setHours, getHours, addMonths, addDays, isValid, disabledTime, copyTime, calendarOnlyProps } from '../utils/dateUtils';
22
22
  import { PickerPopup, PickerLabel, PickerIndicator, PickerToggleTrigger, pickerPropTypes, pickTriggerPropKeys, omitTriggerPropKeys, usePickerClassName, usePickerRef, onMenuKeyDown } from '../internals/Picker';
23
23
  import { OverlayCloseCause } from '../internals/Overlay/OverlayTrigger';
@@ -84,19 +84,17 @@ var DatePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
84
84
  onChange = props.onChange,
85
85
  onChangeCalendarDate = props.onChangeCalendarDate,
86
86
  onClean = props.onClean,
87
- onClose = props.onClose,
88
87
  onEntered = props.onEntered,
89
88
  onExited = props.onExited,
90
89
  onNextMonth = props.onNextMonth,
91
90
  onOk = props.onOk,
92
- onOpen = props.onOpen,
93
91
  onPrevMonth = props.onPrevMonth,
94
92
  onSelect = props.onSelect,
95
93
  onToggleMonthDropdown = props.onToggleMonthDropdown,
96
94
  onToggleTimeDropdown = props.onToggleTimeDropdown,
97
95
  onShortcutClick = props.onShortcutClick,
98
96
  renderCell = props.renderCell,
99
- restProps = _objectWithoutPropertiesLoose(props, ["as", "className", "classPrefix", "calendarDefaultDate", "cleanable", "editable", "defaultValue", "disabled", "readOnly", "plaintext", "format", "id", "isoWeek", "limitEndYear", "limitStartYear", "locale", "loading", "label", "menuClassName", "menuStyle", "appearance", "placement", "oneTap", "placeholder", "ranges", "value", "showMeridian", "showWeekNumbers", "style", "size", "caretAs", "disabledDate", "disabledHours", "disabledMinutes", "disabledSeconds", "shouldDisableDate", "shouldDisableHour", "shouldDisableMinute", "shouldDisableSecond", "onChange", "onChangeCalendarDate", "onClean", "onClose", "onEntered", "onExited", "onNextMonth", "onOk", "onOpen", "onPrevMonth", "onSelect", "onToggleMonthDropdown", "onToggleTimeDropdown", "onShortcutClick", "renderCell"]);
97
+ restProps = _objectWithoutPropertiesLoose(props, ["as", "className", "classPrefix", "calendarDefaultDate", "cleanable", "editable", "defaultValue", "disabled", "readOnly", "plaintext", "format", "id", "isoWeek", "limitEndYear", "limitStartYear", "locale", "loading", "label", "menuClassName", "menuStyle", "appearance", "placement", "oneTap", "placeholder", "ranges", "value", "showMeridian", "showWeekNumbers", "style", "size", "caretAs", "disabledDate", "disabledHours", "disabledMinutes", "disabledSeconds", "shouldDisableDate", "shouldDisableHour", "shouldDisableMinute", "shouldDisableSecond", "onChange", "onChangeCalendarDate", "onClean", "onEntered", "onExited", "onNextMonth", "onOk", "onPrevMonth", "onSelect", "onToggleMonthDropdown", "onToggleTimeDropdown", "onShortcutClick", "renderCell"]);
100
98
  var id = useUniqueId('rs-', idProp);
101
99
  var _usePickerRef = usePickerRef(ref),
102
100
  trigger = _usePickerRef.trigger,
@@ -489,12 +487,14 @@ var DatePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
489
487
  return caretAsProp || (shouldOnlyRenderTime(formatStr) ? IconClockO : IconCalendar);
490
488
  }, [caretAsProp, formatStr]);
491
489
  var handleTriggerClose = useEventCallback(function (cause) {
490
+ var _props$onClose;
492
491
  // Unless overlay is closing on user clicking "OK" button,
493
492
  // reset the selected date on calendar panel
494
493
  if (cause !== OverlayCloseCause.ImperativeHandle) {
495
494
  resetCalendarDate();
496
495
  }
497
496
  setShowMonthDropdown(false);
497
+ (_props$onClose = props.onClose) === null || _props$onClose === void 0 ? void 0 : _props$onClose.call(props);
498
498
  });
499
499
  var showCleanButton = cleanable && hasValue && !readOnly;
500
500
  var _partitionHTMLProps = partitionHTMLProps(restProps, {
@@ -510,8 +510,8 @@ var DatePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
510
510
  ref: trigger,
511
511
  placement: placement,
512
512
  onClose: handleTriggerClose,
513
- onEntered: createChainedFunction(onOpen, onEntered),
514
- onExited: createChainedFunction(onClose, onExited),
513
+ onEntered: onEntered,
514
+ onExited: onExited,
515
515
  speaker: renderCalendarOverlay
516
516
  }, /*#__PURE__*/React.createElement(Component, {
517
517
  className: merge(className, classes, (_merge = {}, _merge[prefix('error')] = invalidValue, _merge)),
@@ -84,16 +84,14 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
84
84
  valueProp = props.value,
85
85
  onChange = props.onChange,
86
86
  onClean = props.onClean,
87
- onClose = props.onClose,
88
87
  onEnter = props.onEnter,
89
88
  onEntered = props.onEntered,
90
89
  onExited = props.onExited,
91
90
  onOk = props.onOk,
92
- onOpen = props.onOpen,
93
91
  onSelect = props.onSelect,
94
92
  onShortcutClick = props.onShortcutClick,
95
93
  renderTitle = props.renderTitle,
96
- restProps = _objectWithoutPropertiesLoose(props, ["as", "classPrefix", "className", "appearance", "editable", "cleanable", "character", "defaultCalendarValue", "defaultValue", "plaintext", "disabled", "disabledDate", "shouldDisableDate", "format", "hoverRange", "id", "isoWeek", "limitEndYear", "limitStartYear", "locale", "loading", "label", "menuClassName", "menuStyle", "oneTap", "placeholder", "placement", "ranges", "readOnly", "showOneCalendar", "showWeekNumbers", "showMeridian", "showHeader", "style", "size", "caretAs", "value", "onChange", "onClean", "onClose", "onEnter", "onEntered", "onExited", "onOk", "onOpen", "onSelect", "onShortcutClick", "renderTitle"]);
94
+ restProps = _objectWithoutPropertiesLoose(props, ["as", "classPrefix", "className", "appearance", "editable", "cleanable", "character", "defaultCalendarValue", "defaultValue", "plaintext", "disabled", "disabledDate", "shouldDisableDate", "format", "hoverRange", "id", "isoWeek", "limitEndYear", "limitStartYear", "locale", "loading", "label", "menuClassName", "menuStyle", "oneTap", "placeholder", "placement", "ranges", "readOnly", "showOneCalendar", "showWeekNumbers", "showMeridian", "showHeader", "style", "size", "caretAs", "value", "onChange", "onClean", "onEnter", "onEntered", "onExited", "onOk", "onSelect", "onShortcutClick", "renderTitle"]);
97
95
  var id = useUniqueId('rs-', idProp);
98
96
  var _usePickerRef = usePickerRef(ref),
99
97
  trigger = _usePickerRef.trigger,
@@ -706,8 +704,8 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
706
704
  pickerProps: pick(props, pickTriggerPropKeys),
707
705
  placement: placement,
708
706
  onEnter: createChainedFunction(handleEnter, onEnter),
709
- onEntered: createChainedFunction(onOpen, onEntered),
710
- onExited: createChainedFunction(onClose, onExited),
707
+ onEntered: onEntered,
708
+ onExited: onExited,
711
709
  speaker: renderCalendarOverlay
712
710
  }, /*#__PURE__*/React.createElement(Component, {
713
711
  ref: root,
@@ -1,6 +1,6 @@
1
- import { RsRefForwardingComponent, WithAsProps } from '../@types/common';
2
1
  import React from 'react';
3
2
  import { IconProps } from '@rsuite/icons/lib/Icon';
3
+ import type { RsRefForwardingComponent, WithAsProps } from '../@types/common';
4
4
  export interface DropdownMenuItemProps<T = any> extends WithAsProps, Omit<React.HTMLAttributes<HTMLElement>, 'onSelect'> {
5
5
  /** Active the current option */
6
6
  active?: boolean;
@@ -35,7 +35,15 @@ export interface DropdownMenuItemProps<T = any> extends WithAsProps, Omit<React.
35
35
  * @internal
36
36
  */
37
37
  open?: boolean;
38
- /** Select the callback function for the current option */
38
+ /**
39
+ * The dropdown item keyboard shortcut.
40
+ *
41
+ * @version 5.58.0
42
+ */
43
+ shortcut?: React.ReactNode;
44
+ /**
45
+ * Select the callback function for the current option
46
+ */
39
47
  onSelect?: (eventKey: T, event: React.SyntheticEvent) => void;
40
48
  }
41
49
  /**
@@ -3,6 +3,7 @@ import _extends from "@babel/runtime/helpers/esm/extends";
3
3
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
4
4
  import React, { useCallback, useContext, useEffect } from 'react';
5
5
  import PropTypes from 'prop-types';
6
+ import classNames from 'classnames';
6
7
  import { deprecatePropType, deprecatePropTypeNew, oneOf } from '../internals/propTypes';
7
8
  import MenuItem from '../internals/Menu/MenuItem';
8
9
  import DropdownContext from './DropdownContext';
@@ -15,8 +16,8 @@ import { DropdownActionType } from './DropdownState';
15
16
  import { useRenderDropdownItem } from './useRenderDropdownItem';
16
17
  import warnOnce from '../utils/warnOnce';
17
18
  import Nav from '../Nav';
19
+ import Text from '../Text';
18
20
  import DropdownSeparator from './DropdownSeparator';
19
- import classNames from 'classnames';
20
21
  /**
21
22
  * The `<Dropdown.Item>` API
22
23
  * - When used inside `<Sidenav>`, renders a `<TreeviewItem>`
@@ -26,6 +27,7 @@ var DropdownItem = /*#__PURE__*/React.forwardRef(function (props, ref) {
26
27
  var _props$classPrefix = props.classPrefix,
27
28
  classPrefix = _props$classPrefix === void 0 ? 'dropdown-item' : _props$classPrefix,
28
29
  className = props.className,
30
+ shortcut = props.shortcut,
29
31
  activeProp = props.active,
30
32
  eventKey = props.eventKey,
31
33
  onSelect = props.onSelect,
@@ -36,7 +38,7 @@ var DropdownItem = /*#__PURE__*/React.forwardRef(function (props, ref) {
36
38
  panel = props.panel,
37
39
  children = props.children,
38
40
  disabled = props.disabled,
39
- restProps = _objectWithoutPropertiesLoose(props, ["classPrefix", "className", "active", "eventKey", "onSelect", "icon", "as", "divider", "panel", "children", "disabled"]);
41
+ restProps = _objectWithoutPropertiesLoose(props, ["classPrefix", "className", "shortcut", "active", "eventKey", "onSelect", "icon", "as", "divider", "panel", "children", "disabled"]);
40
42
  var internalId = useInternalId('DropdownItem');
41
43
  var nav = useContext(NavContext);
42
44
  var dropdown = useContext(DropdownContext);
@@ -122,7 +124,14 @@ var DropdownItem = /*#__PURE__*/React.forwardRef(function (props, ref) {
122
124
  }, menuitem, dataAttributes, restProps, {
123
125
  children: /*#__PURE__*/React.createElement(React.Fragment, null, icon && /*#__PURE__*/React.cloneElement(icon, {
124
126
  className: classNames(prefix('menu-icon'), icon.props.className)
125
- }), children)
127
+ }), /*#__PURE__*/React.createElement(Text, {
128
+ as: "span",
129
+ className: prefix('content')
130
+ }, children), shortcut && /*#__PURE__*/React.createElement(Text, {
131
+ as: "kbd",
132
+ className: prefix('shortcut'),
133
+ muted: true
134
+ }, shortcut))
126
135
  }));
127
136
  });
128
137
  });
@@ -0,0 +1,16 @@
1
+ import { WithAsProps, RsRefForwardingComponent } from '../@types/common';
2
+ export interface HeadingProps extends WithAsProps {
3
+ /**
4
+ * Sets heading level, h1 through h6.
5
+ * @default 3
6
+ */
7
+ level?: 1 | 2 | 3 | 4 | 5 | 6;
8
+ }
9
+ /**
10
+ *
11
+ * The `Heading` component is used to display a heading.
12
+ *
13
+ * @see https://rsuitejs.com/components/heading
14
+ */
15
+ declare const Heading: RsRefForwardingComponent<'h3', HeadingProps>;
16
+ export default Heading;
@@ -0,0 +1,38 @@
1
+ 'use client';
2
+ import _extends from "@babel/runtime/helpers/esm/extends";
3
+ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
4
+ import React from 'react';
5
+ import PropTypes from 'prop-types';
6
+ import { useClassNames } from '../utils';
7
+ /**
8
+ *
9
+ * The `Heading` component is used to display a heading.
10
+ *
11
+ * @see https://rsuitejs.com/components/heading
12
+ */
13
+ var Heading = /*#__PURE__*/React.forwardRef(function (props, ref) {
14
+ var as = props.as,
15
+ _props$classPrefix = props.classPrefix,
16
+ classPrefix = _props$classPrefix === void 0 ? 'heading' : _props$classPrefix,
17
+ className = props.className,
18
+ _props$level = props.level,
19
+ level = _props$level === void 0 ? 3 : _props$level,
20
+ rest = _objectWithoutPropertiesLoose(props, ["as", "classPrefix", "className", "level"]);
21
+ var _useClassNames = useClassNames(classPrefix),
22
+ withClassPrefix = _useClassNames.withClassPrefix,
23
+ merge = _useClassNames.merge;
24
+ var classes = merge(className, withClassPrefix());
25
+ var Component = as || "h" + level;
26
+ return /*#__PURE__*/React.createElement(Component, _extends({}, rest, {
27
+ ref: ref,
28
+ className: classes
29
+ }));
30
+ });
31
+ Heading.displayName = 'Heading';
32
+ Heading.propTypes = {
33
+ className: PropTypes.string,
34
+ classPrefix: PropTypes.string,
35
+ as: PropTypes.elementType,
36
+ level: PropTypes.oneOf([1, 2, 3, 4, 5, 6])
37
+ };
38
+ export default Heading;
@@ -0,0 +1,3 @@
1
+ import Heading from './Heading';
2
+ export { type HeadingProps } from './Heading';
3
+ export default Heading;
@@ -0,0 +1,4 @@
1
+ 'use client';
2
+ import Heading from './Heading';
3
+ export { type HeadingProps } from './Heading';
4
+ export default Heading;
@@ -0,0 +1,8 @@
1
+ import { ComponentProps } from '../utils/createComponent';
2
+ export declare type HeadingGroupProps = ComponentProps;
3
+ /**
4
+ * HeadingGroup is a group of headings.
5
+ * @see https://rsuitejs.com/components/heading
6
+ */
7
+ declare const HeadingGroup: import("../@types/common").RsRefForwardingComponent<"hgroup", ComponentProps>;
8
+ export default HeadingGroup;
@@ -0,0 +1,11 @@
1
+ 'use client';
2
+ import createComponent from '../utils/createComponent';
3
+ /**
4
+ * HeadingGroup is a group of headings.
5
+ * @see https://rsuitejs.com/components/heading
6
+ */
7
+ var HeadingGroup = createComponent({
8
+ name: 'HeadingGroup',
9
+ componentAs: 'hgroup'
10
+ });
11
+ export default HeadingGroup;
@@ -0,0 +1,3 @@
1
+ import HeadingGroup from './HeadingGroup';
2
+ export type { HeadingGroupProps } from './HeadingGroup';
3
+ export default HeadingGroup;
@@ -0,0 +1,3 @@
1
+ 'use client';
2
+ import HeadingGroup from './HeadingGroup';
3
+ export default HeadingGroup;
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import { WithAsProps, RsRefForwardingComponent } from '../@types/common';
3
3
  import { type ChildrenProps } from './renderChildren';
4
- export interface InlineEditProps extends WithAsProps {
4
+ export interface InlineEditProps extends Omit<WithAsProps, 'children'> {
5
5
  /**
6
6
  * If true, the InlineEdit will be disabled.
7
7
  */
@@ -104,14 +104,13 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
104
104
  onCreate = props.onCreate,
105
105
  onSearch = props.onSearch,
106
106
  onSelect = props.onSelect,
107
- onOpen = props.onOpen,
108
- onClose = props.onClose,
109
107
  onBlur = props.onBlur,
110
108
  onFocus = props.onFocus,
111
109
  searchBy = props.searchBy,
110
+ size = props.size,
112
111
  _props$placement = props.placement,
113
112
  placement = _props$placement === void 0 ? 'bottomStart' : _props$placement,
114
- rest = _objectWithoutPropertiesLoose(props, ["as", "appearance", "cleanable", "cacheData", "classPrefix", "data", "disabled", "readOnly", "plaintext", "defaultValue", "defaultOpen", "disabledItemValues", "locale", "toggleAs", "style", "searchable", "open", "placeholder", "groupBy", "menuClassName", "menuStyle", "menuAutoWidth", "menuMaxHeight", "creatable", "shouldDisplayCreateOption", "value", "valueKey", "virtualized", "labelKey", "listProps", "id", "tabIndex", "sort", "renderMenu", "renderExtraFooter", "renderValue", "renderMenuItem", "renderMenuGroup", "onEnter", "onEntered", "onExit", "onExited", "onChange", "onClean", "onCreate", "onSearch", "onSelect", "onOpen", "onClose", "onBlur", "onFocus", "searchBy", "placement"]);
113
+ rest = _objectWithoutPropertiesLoose(props, ["as", "appearance", "cleanable", "cacheData", "classPrefix", "data", "disabled", "readOnly", "plaintext", "defaultValue", "defaultOpen", "disabledItemValues", "locale", "toggleAs", "style", "searchable", "open", "placeholder", "groupBy", "menuClassName", "menuStyle", "menuAutoWidth", "menuMaxHeight", "creatable", "shouldDisplayCreateOption", "value", "valueKey", "virtualized", "labelKey", "listProps", "id", "tabIndex", "sort", "renderMenu", "renderExtraFooter", "renderValue", "renderMenuItem", "renderMenuGroup", "onEnter", "onEntered", "onExit", "onExited", "onChange", "onClean", "onCreate", "onSearch", "onSelect", "onBlur", "onFocus", "searchBy", "size", "placement"]);
115
114
  var _useContext = useContext(InputPickerContext),
116
115
  multi = _useContext.multi,
117
116
  tagProps = _useContext.tagProps,
@@ -460,7 +459,6 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
460
459
  var handleExited = useEventCallback(function () {
461
460
  setFocusItemValue(multi ? value === null || value === void 0 ? void 0 : value[0] : value);
462
461
  resetSearch();
463
- onClose === null || onClose === void 0 ? void 0 : onClose();
464
462
  });
465
463
  var handleFocus = useEventCallback(function () {
466
464
  if (!readOnly) {
@@ -522,7 +520,7 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
522
520
  role: "option"
523
521
  }, tagRest, {
524
522
  key: tag,
525
- size: convertSize(rest.size),
523
+ size: convertSize(size),
526
524
  closable: !disabled && closable && !readOnly && !plaintext,
527
525
  title: typeof itemNode === 'string' ? itemNode : undefined,
528
526
  onClose: createChainedFunction(handleRemoveItemByTag.bind(null, tag), onClose)
@@ -623,7 +621,7 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
623
621
  })),
624
622
  pickerClasses = _usePickerClassName[0],
625
623
  usedClassNamePropKeys = _usePickerClassName[1];
626
- var classes = merge(pickerClasses, (_merge = {}, _merge[prefix(_templateObject2 || (_templateObject2 = _taggedTemplateLiteralLoose(["tag"])))] = multi, _merge[prefix(_templateObject3 || (_templateObject3 = _taggedTemplateLiteralLoose(["focused"])))] = open, _merge[prefix(_templateObject4 || (_templateObject4 = _taggedTemplateLiteralLoose(["disabled-options"])))] = disabledOptions, _merge));
624
+ var classes = merge(pickerClasses, (_merge = {}, _merge[prefix(_templateObject2 || (_templateObject2 = _taggedTemplateLiteralLoose(["tag"])))] = multi, _merge[prefix((multi ? 'tag' : 'input') + "-" + size)] = size, _merge[prefix(_templateObject3 || (_templateObject3 = _taggedTemplateLiteralLoose(["focused"])))] = open, _merge[prefix(_templateObject4 || (_templateObject4 = _taggedTemplateLiteralLoose(["disabled-options"])))] = disabledOptions, _merge));
627
625
  var searching = !!searchKeyword && open;
628
626
  var editable = searchable && !disabled && !rest.loading;
629
627
  var inputProps = multi ? {
@@ -657,7 +655,7 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
657
655
  ref: triggerRef,
658
656
  trigger: "active",
659
657
  onEnter: createChainedFunction(handleEnter, onEnter),
660
- onEntered: createChainedFunction(onEntered, onOpen),
658
+ onEntered: onEntered,
661
659
  onExit: createChainedFunction(handleExit, onExit),
662
660
  onExited: createChainedFunction(handleExited, onExited),
663
661
  speaker: renderPopup,
@@ -683,7 +681,8 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
683
681
  placement: placement,
684
682
  inputValue: value,
685
683
  focusItemValue: focusItemValue,
686
- caret: !disabledOptions
684
+ caret: !disabledOptions,
685
+ size: size
687
686
  }), searching || multi && hasValue ? null : itemNode || placeholderNode), /*#__PURE__*/React.createElement(TextBox, {
688
687
  showTagList: hasValue && multi,
689
688
  tags: tagElements,
@@ -3,7 +3,7 @@ import _extends from "@babel/runtime/helpers/esm/extends";
3
3
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
4
4
  import React from 'react';
5
5
  import PropTypes from 'prop-types';
6
- import { useClassNames } from '../utils';
6
+ import { useClassNames, useUniqueId } from '../utils';
7
7
  import { oneOf } from '../internals/propTypes';
8
8
  /**
9
9
  * The `Loader` component is used to indicate the loading state of a page or a section.
@@ -24,20 +24,20 @@ var Loader = /*#__PURE__*/React.forwardRef(function (props, ref) {
24
24
  content = props.content,
25
25
  size = props.size,
26
26
  rest = _objectWithoutPropertiesLoose(props, ["as", "classPrefix", "className", "inverse", "backdrop", "speed", "center", "vertical", "content", "size"]);
27
- var hasContent = !!content;
28
27
  var _useClassNames = useClassNames(classPrefix),
29
28
  merge = _useClassNames.merge,
30
29
  withClassPrefix = _useClassNames.withClassPrefix,
31
30
  prefix = _useClassNames.prefix;
31
+ var labelId = useUniqueId('loader-label-');
32
32
  var classes = merge(className, prefix('wrapper', "speed-" + speed, size, {
33
33
  'backdrop-wrapper': backdrop,
34
- 'has-content': hasContent,
35
34
  vertical: vertical,
36
35
  inverse: inverse,
37
36
  center: center
38
37
  }));
39
38
  return /*#__PURE__*/React.createElement(Component, _extends({
40
- role: "progressbar"
39
+ role: "status",
40
+ "aria-labelledby": content ? labelId : undefined
41
41
  }, rest, {
42
42
  ref: ref,
43
43
  className: classes
@@ -47,7 +47,8 @@ var Loader = /*#__PURE__*/React.forwardRef(function (props, ref) {
47
47
  className: withClassPrefix()
48
48
  }, /*#__PURE__*/React.createElement("span", {
49
49
  className: prefix('spin')
50
- }), hasContent && /*#__PURE__*/React.createElement("span", {
50
+ }), content && /*#__PURE__*/React.createElement("span", {
51
+ id: labelId,
51
52
  className: prefix('content')
52
53
  }, content)));
53
54
  });
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import type { DataItemValue } from '../@types/common';
3
+ import type { MultiCascadeTreeProps } from './types';
4
+ /**
5
+ * The `MultiCascadeTree` component is used to select multiple values from cascading options.
6
+ * @see https://rsuitejs.com/components/multi-cascade-tree/
7
+ */
8
+ declare const MultiCascadeTree: React.ForwardRefExoticComponent<MultiCascadeTreeProps<DataItemValue, DataItemValue[]> & React.RefAttributes<unknown>>;
9
+ export default MultiCascadeTree;
@@ -0,0 +1,125 @@
1
+ 'use client';
2
+ import _extends from "@babel/runtime/helpers/esm/extends";
3
+ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
4
+ import React from 'react';
5
+ import TreeView from './TreeView';
6
+ import { useCascadeValue, useSelect, useSearch } from './hooks';
7
+ import { useClassNames, useControlled } from '../utils';
8
+ import SearchView from './SearchView';
9
+ var emptyArray = [];
10
+
11
+ /**
12
+ * The `MultiCascadeTree` component is used to select multiple values from cascading options.
13
+ * @see https://rsuitejs.com/components/multi-cascade-tree/
14
+ */
15
+ var MultiCascadeTree = /*#__PURE__*/React.forwardRef(function (props, ref) {
16
+ var _props$as = props.as,
17
+ Component = _props$as === void 0 ? 'div' : _props$as,
18
+ _props$data = props.data,
19
+ data = _props$data === void 0 ? emptyArray : _props$data,
20
+ defaultValue = props.defaultValue,
21
+ className = props.className,
22
+ _props$classPrefix = props.classPrefix,
23
+ classPrefix = _props$classPrefix === void 0 ? 'cascade-tree' : _props$classPrefix,
24
+ valueProp = props.value,
25
+ _props$valueKey = props.valueKey,
26
+ valueKey = _props$valueKey === void 0 ? 'value' : _props$valueKey,
27
+ _props$labelKey = props.labelKey,
28
+ labelKey = _props$labelKey === void 0 ? 'label' : _props$labelKey,
29
+ _props$childrenKey = props.childrenKey,
30
+ childrenKey = _props$childrenKey === void 0 ? 'children' : _props$childrenKey,
31
+ _props$disabledItemVa = props.disabledItemValues,
32
+ disabledItemValues = _props$disabledItemVa === void 0 ? emptyArray : _props$disabledItemVa,
33
+ _props$cascade = props.cascade,
34
+ cascade = _props$cascade === void 0 ? true : _props$cascade,
35
+ columnWidth = props.columnWidth,
36
+ columnHeight = props.columnHeight,
37
+ searchable = props.searchable,
38
+ _props$uncheckableIte = props.uncheckableItemValues,
39
+ uncheckableItemValues = _props$uncheckableIte === void 0 ? emptyArray : _props$uncheckableIte,
40
+ getChildren = props.getChildren,
41
+ renderColumn = props.renderColumn,
42
+ renderTreeNode = props.renderTreeNode,
43
+ onSelect = props.onSelect,
44
+ onCheck = props.onCheck,
45
+ onChange = props.onChange,
46
+ onSearch = props.onSearch,
47
+ rest = _objectWithoutPropertiesLoose(props, ["as", "data", "defaultValue", "className", "classPrefix", "value", "valueKey", "labelKey", "childrenKey", "disabledItemValues", "cascade", "columnWidth", "columnHeight", "searchable", "uncheckableItemValues", "getChildren", "renderColumn", "renderTreeNode", "onSelect", "onCheck", "onChange", "onSearch"]);
48
+ var itemKeys = {
49
+ childrenKey: childrenKey,
50
+ labelKey: labelKey,
51
+ valueKey: valueKey
52
+ };
53
+ var _useSelect = useSelect({
54
+ data: data,
55
+ childrenKey: childrenKey,
56
+ labelKey: labelKey,
57
+ valueKey: valueKey,
58
+ onSelect: onSelect,
59
+ getChildren: getChildren
60
+ }),
61
+ selectedPaths = _useSelect.selectedPaths,
62
+ flattenData = _useSelect.flattenData,
63
+ columnData = _useSelect.columnData,
64
+ handleSelect = _useSelect.handleSelect;
65
+ var _useControlled = useControlled(valueProp, defaultValue),
66
+ controlledValue = _useControlled[0];
67
+ var cascadeValueProps = _extends({}, itemKeys, {
68
+ uncheckableItemValues: uncheckableItemValues,
69
+ cascade: cascade,
70
+ value: controlledValue,
71
+ onCheck: onCheck,
72
+ onChange: onChange
73
+ });
74
+ var _useCascadeValue = useCascadeValue(cascadeValueProps, flattenData),
75
+ value = _useCascadeValue.value,
76
+ handleCheck = _useCascadeValue.handleCheck;
77
+ var _useSearch = useSearch({
78
+ labelKey: labelKey,
79
+ valueKey: valueKey,
80
+ childrenKey: childrenKey,
81
+ flattenedData: flattenData,
82
+ uncheckableItemValues: uncheckableItemValues,
83
+ onSearch: onSearch
84
+ }),
85
+ items = _useSearch.items,
86
+ searchKeyword = _useSearch.searchKeyword,
87
+ handleSearch = _useSearch.handleSearch;
88
+ var _useClassNames = useClassNames(classPrefix),
89
+ withClassPrefix = _useClassNames.withClassPrefix,
90
+ merge = _useClassNames.merge;
91
+ var classes = merge(className, withClassPrefix('multi'));
92
+ return /*#__PURE__*/React.createElement(Component, _extends({
93
+ ref: ref,
94
+ className: classes
95
+ }, rest), searchable && /*#__PURE__*/React.createElement(SearchView, {
96
+ data: items,
97
+ value: value,
98
+ searchKeyword: searchKeyword,
99
+ valueKey: valueKey,
100
+ labelKey: labelKey,
101
+ childrenKey: childrenKey,
102
+ disabledItemValues: disabledItemValues,
103
+ onCheck: handleCheck,
104
+ onSearch: handleSearch
105
+ }), !searchKeyword && /*#__PURE__*/React.createElement(TreeView, {
106
+ cascade: cascade,
107
+ columnWidth: columnWidth,
108
+ columnHeight: columnHeight,
109
+ uncheckableItemValues: uncheckableItemValues,
110
+ disabledItemValues: disabledItemValues,
111
+ valueKey: valueKey,
112
+ labelKey: labelKey,
113
+ childrenKey: childrenKey,
114
+ classPrefix: classPrefix,
115
+ cascadeData: columnData,
116
+ cascadePaths: selectedPaths,
117
+ value: value,
118
+ onSelect: handleSelect,
119
+ onCheck: handleCheck,
120
+ renderColumn: renderColumn,
121
+ renderTreeNode: renderTreeNode
122
+ }));
123
+ });
124
+ MultiCascadeTree.displayName = 'MultiCascadeTree';
125
+ export default MultiCascadeTree;
@@ -0,0 +1,17 @@
1
+ import React from 'react';
2
+ import { ItemDataType, WithAsProps } from '../@types/common';
3
+ interface SearchViewProps<T> extends WithAsProps {
4
+ searchKeyword: string;
5
+ labelKey: string;
6
+ valueKey: string;
7
+ childrenKey: string;
8
+ value: T[];
9
+ data: ItemDataType<T>[];
10
+ disabledItemValues: any[];
11
+ cascade?: boolean;
12
+ onSearch: (value: string, event: React.ChangeEvent<HTMLInputElement>) => void;
13
+ onCheck: (item: ItemDataType<T>, event: React.SyntheticEvent, checked: boolean) => void;
14
+ inputRef?: React.RefObject<HTMLInputElement>;
15
+ }
16
+ declare function SearchView<T>(props: SearchViewProps<T>): JSX.Element;
17
+ export default SearchView;