rsuite 5.3.0 → 5.4.3

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 (167) hide show
  1. package/Button/styles/index.less +1 -5
  2. package/CHANGELOG.md +53 -0
  3. package/Drawer/styles/index.less +3 -0
  4. package/Dropdown/styles/index.less +5 -3
  5. package/Dropdown/styles/mixin.less +0 -2
  6. package/Modal/styles/index.less +23 -22
  7. package/Nav/styles/index.less +1 -0
  8. package/Navbar/styles/index.less +27 -8
  9. package/Radio/styles/index.less +6 -0
  10. package/Sidenav/styles/index.less +8 -2
  11. package/Stack/package.json +7 -0
  12. package/Stack/styles/index.less +5 -0
  13. package/TreePicker/styles/index.less +0 -14
  14. package/cjs/@types/common.d.ts +4 -4
  15. package/cjs/Affix/Affix.js +3 -1
  16. package/cjs/AvatarGroup/AvatarGroup.js +9 -4
  17. package/cjs/ButtonGroup/ButtonGroup.js +9 -4
  18. package/cjs/Calendar/Calendar.js +21 -20
  19. package/cjs/Calendar/Header.js +1 -3
  20. package/cjs/Calendar/Table.js +1 -1
  21. package/cjs/Calendar/TableRow.js +12 -7
  22. package/cjs/Calendar/View.js +9 -5
  23. package/cjs/Cascader/utils.d.ts +7 -7
  24. package/cjs/CheckPicker/CheckPicker.d.ts +12 -4
  25. package/cjs/CheckPicker/test/CheckPicker.test.d.ts +1 -0
  26. package/cjs/CheckPicker/test/CheckPicker.test.js +84 -0
  27. package/cjs/CheckTree/index.js +6 -5
  28. package/cjs/Container/Container.js +6 -3
  29. package/cjs/DatePicker/DatePicker.js +4 -2
  30. package/cjs/DateRangePicker/DateRangePicker.js +9 -5
  31. package/cjs/Disclosure/Disclosure.d.ts +8 -5
  32. package/cjs/Disclosure/Disclosure.js +51 -11
  33. package/cjs/Disclosure/DisclosureButton.d.ts +2 -2
  34. package/cjs/Disclosure/DisclosureContext.d.ts +6 -1
  35. package/cjs/Dropdown/Dropdown.js +1 -1
  36. package/cjs/Dropdown/DropdownItem.js +9 -10
  37. package/cjs/Dropdown/DropdownMenu.js +81 -23
  38. package/cjs/Dropdown/DropdownToggle.js +8 -1
  39. package/cjs/FormGroup/FormGroup.js +9 -4
  40. package/cjs/Menu/MenuItem.js +1 -1
  41. package/cjs/Modal/Modal.js +34 -22
  42. package/cjs/MultiCascader/utils.d.ts +3 -3
  43. package/cjs/Nav/Nav.js +10 -12
  44. package/cjs/Nav/NavContext.d.ts +6 -0
  45. package/cjs/Nav/NavContext.js +1 -0
  46. package/cjs/Navbar/index.d.ts +1 -0
  47. package/cjs/Navbar/index.js +4 -3
  48. package/cjs/Overlay/Modal.js +43 -45
  49. package/cjs/Overlay/Overlay.d.ts +1 -1
  50. package/cjs/Overlay/Overlay.js +7 -1
  51. package/cjs/Overlay/OverlayContext.d.ts +6 -0
  52. package/cjs/Overlay/OverlayContext.js +14 -0
  53. package/cjs/Overlay/OverlayTrigger.js +7 -1
  54. package/cjs/Overlay/Position.d.ts +1 -1
  55. package/cjs/PanelGroup/PanelGroup.js +8 -5
  56. package/cjs/Picker/propTypes.d.ts +3 -5
  57. package/cjs/Picker/propTypes.js +4 -3
  58. package/cjs/Picker/utils.d.ts +3 -3
  59. package/cjs/SelectPicker/SelectPicker.d.ts +16 -6
  60. package/cjs/SelectPicker/SelectPicker.js +4 -4
  61. package/cjs/SelectPicker/index.d.ts +1 -1
  62. package/cjs/SelectPicker/test/SelectPicker.test.d.ts +1 -0
  63. package/cjs/SelectPicker/test/SelectPicker.test.js +70 -0
  64. package/cjs/Stack/Stack.d.ts +26 -0
  65. package/cjs/Stack/Stack.js +86 -0
  66. package/cjs/Stack/index.d.ts +3 -0
  67. package/cjs/Stack/index.js +11 -0
  68. package/cjs/Steps/StepItem.js +2 -2
  69. package/cjs/Toggle/Toggle.js +4 -3
  70. package/cjs/Tree/Tree.d.ts +0 -1
  71. package/cjs/Tree/Tree.js +6 -5
  72. package/cjs/Tree/TreeContext.d.ts +0 -1
  73. package/cjs/TreePicker/TreeNode.js +1 -14
  74. package/cjs/TreePicker/TreePicker.js +3 -29
  75. package/cjs/index.d.ts +4 -2
  76. package/cjs/index.js +9 -5
  77. package/cjs/utils/index.d.ts +1 -0
  78. package/cjs/utils/index.js +7 -2
  79. package/cjs/utils/treeUtils.d.ts +5 -5
  80. package/cjs/utils/useMount.d.ts +2 -0
  81. package/cjs/utils/useMount.js +19 -0
  82. package/cjs/utils/usePortal.d.ts +1 -1
  83. package/dist/rsuite-rtl.css +351 -188
  84. package/dist/rsuite-rtl.min.css +1 -1
  85. package/dist/rsuite-rtl.min.css.map +1 -1
  86. package/dist/rsuite.css +351 -188
  87. package/dist/rsuite.js +94 -39
  88. package/dist/rsuite.js.map +1 -1
  89. package/dist/rsuite.min.css +1 -1
  90. package/dist/rsuite.min.css.map +1 -1
  91. package/dist/rsuite.min.js +1 -1
  92. package/dist/rsuite.min.js.map +1 -1
  93. package/esm/@types/common.d.ts +4 -4
  94. package/esm/Affix/Affix.js +4 -2
  95. package/esm/AvatarGroup/AvatarGroup.js +7 -4
  96. package/esm/ButtonGroup/ButtonGroup.js +7 -4
  97. package/esm/Calendar/Calendar.js +22 -21
  98. package/esm/Calendar/Header.js +1 -3
  99. package/esm/Calendar/Table.js +1 -1
  100. package/esm/Calendar/TableRow.js +13 -8
  101. package/esm/Calendar/View.js +10 -6
  102. package/esm/Cascader/utils.d.ts +7 -7
  103. package/esm/CheckPicker/CheckPicker.d.ts +12 -4
  104. package/esm/CheckPicker/test/CheckPicker.test.d.ts +1 -0
  105. package/esm/CheckPicker/test/CheckPicker.test.js +71 -0
  106. package/esm/CheckTree/index.js +7 -6
  107. package/esm/Container/Container.js +7 -4
  108. package/esm/DatePicker/DatePicker.js +4 -2
  109. package/esm/DateRangePicker/DateRangePicker.js +9 -5
  110. package/esm/Disclosure/Disclosure.d.ts +8 -5
  111. package/esm/Disclosure/Disclosure.js +52 -13
  112. package/esm/Disclosure/DisclosureButton.d.ts +2 -2
  113. package/esm/Disclosure/DisclosureContext.d.ts +6 -1
  114. package/esm/Dropdown/Dropdown.js +1 -1
  115. package/esm/Dropdown/DropdownItem.js +9 -9
  116. package/esm/Dropdown/DropdownMenu.js +82 -24
  117. package/esm/Dropdown/DropdownToggle.js +7 -1
  118. package/esm/FormGroup/FormGroup.js +7 -4
  119. package/esm/Menu/MenuItem.js +1 -1
  120. package/esm/Modal/Modal.js +36 -24
  121. package/esm/MultiCascader/utils.d.ts +3 -3
  122. package/esm/Nav/Nav.js +11 -13
  123. package/esm/Nav/NavContext.d.ts +6 -0
  124. package/esm/Nav/NavContext.js +1 -0
  125. package/esm/Navbar/index.d.ts +1 -0
  126. package/esm/Navbar/index.js +1 -0
  127. package/esm/Overlay/Modal.js +44 -46
  128. package/esm/Overlay/Overlay.d.ts +1 -1
  129. package/esm/Overlay/Overlay.js +7 -2
  130. package/esm/Overlay/OverlayContext.d.ts +6 -0
  131. package/esm/Overlay/OverlayContext.js +4 -0
  132. package/esm/Overlay/OverlayTrigger.js +7 -2
  133. package/esm/Overlay/Position.d.ts +1 -1
  134. package/esm/PanelGroup/PanelGroup.js +9 -6
  135. package/esm/Picker/propTypes.d.ts +3 -5
  136. package/esm/Picker/propTypes.js +4 -3
  137. package/esm/Picker/utils.d.ts +3 -3
  138. package/esm/SelectPicker/SelectPicker.d.ts +16 -6
  139. package/esm/SelectPicker/SelectPicker.js +4 -4
  140. package/esm/SelectPicker/index.d.ts +1 -1
  141. package/esm/SelectPicker/test/SelectPicker.test.d.ts +1 -0
  142. package/esm/SelectPicker/test/SelectPicker.test.js +59 -0
  143. package/esm/Stack/Stack.d.ts +26 -0
  144. package/esm/Stack/Stack.js +71 -0
  145. package/esm/Stack/index.d.ts +3 -0
  146. package/esm/Stack/index.js +2 -0
  147. package/esm/Steps/StepItem.js +2 -2
  148. package/esm/Toggle/Toggle.js +4 -3
  149. package/esm/Tree/Tree.d.ts +0 -1
  150. package/esm/Tree/Tree.js +7 -6
  151. package/esm/Tree/TreeContext.d.ts +0 -1
  152. package/esm/TreePicker/TreeNode.js +2 -14
  153. package/esm/TreePicker/TreePicker.js +3 -29
  154. package/esm/index.d.ts +4 -2
  155. package/esm/index.js +2 -1
  156. package/esm/utils/index.d.ts +1 -0
  157. package/esm/utils/index.js +2 -1
  158. package/esm/utils/treeUtils.d.ts +5 -5
  159. package/esm/utils/useMount.d.ts +2 -0
  160. package/esm/utils/useMount.js +13 -0
  161. package/esm/utils/usePortal.d.ts +1 -1
  162. package/package.json +2 -2
  163. package/styles/color-modes/dark.less +1 -0
  164. package/styles/color-modes/high-contrast.less +1 -0
  165. package/styles/color-modes/light.less +1 -0
  166. package/styles/index.less +1 -0
  167. package/styles/mixins/utilities.less +17 -5
@@ -1,10 +1,9 @@
1
- import React from 'react';
1
+ import React, { Ref } from 'react';
2
2
  import { PickerLocale } from '../locales';
3
- import { PickerComponent } from '../Picker';
3
+ import { PickerInstance } from '../Picker';
4
4
  import { FormControlPickerProps, ItemDataType } from '../@types/common';
5
5
  import { ListProps } from 'react-virtualized/dist/commonjs/List';
6
- export declare type ValueType = number | string;
7
- export interface SelectProps<T = ValueType> {
6
+ export interface SelectProps<T> {
8
7
  /** Set group condition key in data */
9
8
  groupBy?: string;
10
9
  /** Whether dispaly search input box */
@@ -37,7 +36,18 @@ export interface SelectProps<T = ValueType> {
37
36
  /** Called when clean */
38
37
  onClean?: (event: React.SyntheticEvent) => void;
39
38
  }
40
- export interface SelectPickerProps<T = ValueType> extends FormControlPickerProps<T, PickerLocale, ItemDataType>, SelectProps<T> {
39
+ export interface MultipleSelectProps<T> extends Omit<SelectProps<T>, 'renderValue'> {
40
+ /** Custom render selected items */
41
+ renderValue?: (value: T[], item: ItemDataType<T>[], selectedElement: React.ReactNode) => React.ReactNode;
42
+ }
43
+ export interface SelectPickerProps<T> extends FormControlPickerProps<T, PickerLocale, ItemDataType<T>>, SelectProps<T> {
44
+ }
45
+ export interface SelectPickerComponent {
46
+ <T>(props: SelectPickerProps<T> & {
47
+ ref?: Ref<PickerInstance>;
48
+ }): JSX.Element | null;
49
+ displayName?: string;
50
+ propTypes?: React.WeakValidationMap<SelectPickerProps<any>>;
41
51
  }
42
- declare const SelectPicker: PickerComponent<SelectPickerProps>;
52
+ declare const SelectPicker: SelectPickerComponent;
43
53
  export default SelectPicker;
@@ -98,9 +98,9 @@ var SelectPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
98
98
  var _useCustom = (0, _utils.useCustom)('Picker', overrideLocale),
99
99
  locale = _useCustom.locale;
100
100
 
101
- var _useControlled = (0, _utils.useControlled)(valueProp, defaultValue),
102
- value = _useControlled[0],
103
- setValue = _useControlled[1]; // Used to hover the focus item when trigger `onKeydown`
101
+ var _ref = (0, _utils.useControlled)(valueProp, defaultValue),
102
+ value = _ref[0],
103
+ setValue = _ref[1]; // Used to hover the focus item when trigger `onKeydown`
104
104
 
105
105
 
106
106
  var _useFocusItemValue = (0, _Picker.useFocusItemValue)(value, {
@@ -327,7 +327,7 @@ var SelectPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
327
327
  disabled: disabled,
328
328
  cleanable: cleanable && !disabled,
329
329
  hasValue: hasValue,
330
- inputValue: value,
330
+ inputValue: value !== null && value !== void 0 ? value : '',
331
331
  active: active,
332
332
  placement: placement
333
333
  }), selectedElement || (locale === null || locale === void 0 ? void 0 : locale.placeholder))));
@@ -1,3 +1,3 @@
1
1
  import SelectPicker from './SelectPicker';
2
- export type { SelectProps, SelectPickerProps } from './SelectPicker';
2
+ export type { SelectProps, MultipleSelectProps, SelectPickerProps } from './SelectPicker';
3
3
  export default SelectPicker;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _react = _interopRequireDefault(require("react"));
6
+
7
+ var _tsExpect = require("ts-expect");
8
+
9
+ var _SelectPicker = _interopRequireDefault(require("../SelectPicker"));
10
+
11
+ // Infer value and onChange types from data
12
+ var numberValuedData = [{
13
+ label: 'One',
14
+ value: 1
15
+ }];
16
+
17
+ /*#__PURE__*/
18
+ _react.default.createElement(_SelectPicker.default, {
19
+ data: numberValuedData,
20
+ value: 1
21
+ }); // @ts-expect-error should not accept string value
22
+
23
+
24
+ /*#__PURE__*/
25
+ _react.default.createElement(_SelectPicker.default, {
26
+ data: numberValuedData,
27
+ value: "1"
28
+ });
29
+
30
+ /*#__PURE__*/
31
+ _react.default.createElement(_SelectPicker.default, {
32
+ data: numberValuedData,
33
+ onChange: function onChange(newValue) {
34
+ (0, _tsExpect.expectType)(newValue);
35
+ }
36
+ });
37
+
38
+ var stringValuedData = [{
39
+ label: 'One',
40
+ value: 'One'
41
+ }];
42
+
43
+ /*#__PURE__*/
44
+ _react.default.createElement(_SelectPicker.default, {
45
+ data: stringValuedData,
46
+ value: "1"
47
+ }); // @ts-expect-error should not accept number value
48
+
49
+
50
+ /*#__PURE__*/
51
+ _react.default.createElement(_SelectPicker.default, {
52
+ data: stringValuedData,
53
+ value: 1
54
+ });
55
+
56
+ /*#__PURE__*/
57
+ _react.default.createElement(_SelectPicker.default, {
58
+ data: stringValuedData,
59
+ onChange: function onChange(newValue) {
60
+ (0, _tsExpect.expectType)(newValue);
61
+ }
62
+ });
63
+
64
+ var pickerRef = /*#__PURE__*/_react.default.createRef();
65
+
66
+ /*#__PURE__*/
67
+ _react.default.createElement(_SelectPicker.default, {
68
+ ref: pickerRef,
69
+ data: []
70
+ });
@@ -0,0 +1,26 @@
1
+ import React from 'react';
2
+ import { WithAsProps } from '../@types/common';
3
+ export interface StackProps extends WithAsProps {
4
+ /**
5
+ * The direction of the children in the stack.
6
+ */
7
+ direction?: 'row' | 'row-reverse' | 'column' | 'column-reverse';
8
+ /**
9
+ * Define the alignment of the children in the stack on the cross axis
10
+ */
11
+ alignItems?: 'flex-start' | 'center' | 'flex-end' | 'stretch' | 'baseline';
12
+ /**
13
+ * Define the alignment of the children in the stack on the inline axis
14
+ */
15
+ justifyContent?: 'flex-start' | 'center' | 'flex-end' | 'space-between' | 'space-around';
16
+ /** Define the spacing between immediate children */
17
+ spacing?: number | string | (number | string)[];
18
+ /** Add an element between each child */
19
+ divider?: React.ReactNode;
20
+ /**
21
+ * Define whether the children in the stack are forced onto one line or can wrap onto multiple lines
22
+ */
23
+ wrap?: boolean;
24
+ }
25
+ declare const Stack: React.ForwardRefExoticComponent<StackProps & React.RefAttributes<HTMLDivElement>>;
26
+ export default Stack;
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ exports.__esModule = true;
6
+ exports.default = void 0;
7
+
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+
10
+ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
11
+
12
+ var _react = _interopRequireDefault(require("react"));
13
+
14
+ var _propTypes = _interopRequireDefault(require("prop-types"));
15
+
16
+ var _utils = require("../utils");
17
+
18
+ var Stack = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
19
+ var _itemStyles;
20
+
21
+ var _props$as = props.as,
22
+ Component = _props$as === void 0 ? 'div' : _props$as,
23
+ _props$alignItems = props.alignItems,
24
+ alignItems = _props$alignItems === void 0 ? 'center' : _props$alignItems,
25
+ _props$classPrefix = props.classPrefix,
26
+ classPrefix = _props$classPrefix === void 0 ? 'stack' : _props$classPrefix,
27
+ className = props.className,
28
+ children = props.children,
29
+ direction = props.direction,
30
+ justifyContent = props.justifyContent,
31
+ spacing = props.spacing,
32
+ divider = props.divider,
33
+ style = props.style,
34
+ wrap = props.wrap,
35
+ rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "alignItems", "classPrefix", "className", "children", "direction", "justifyContent", "spacing", "divider", "style", "wrap"]);
36
+
37
+ var _useCustom = (0, _utils.useCustom)('Stack'),
38
+ rtl = _useCustom.rtl;
39
+
40
+ var _useClassNames = (0, _utils.useClassNames)(classPrefix),
41
+ withClassPrefix = _useClassNames.withClassPrefix,
42
+ merge = _useClassNames.merge,
43
+ prefix = _useClassNames.prefix;
44
+
45
+ var classes = merge(className, withClassPrefix());
46
+ var isSupportGridGap = !(0, _utils.isIE)();
47
+
48
+ var count = _react.default.Children.count(children);
49
+
50
+ var gridGap = Array.isArray(spacing) ? spacing : [spacing, 0];
51
+ var itemStyles = (_itemStyles = {}, _itemStyles[rtl ? 'marginLeft' : 'marginRight'] = gridGap[0], _itemStyles.marginBottom = gridGap[1], _itemStyles);
52
+ var styles = (0, _extends2.default)({
53
+ alignItems: alignItems,
54
+ justifyContent: justifyContent,
55
+ flexDirection: direction,
56
+ flexWrap: wrap ? 'wrap' : undefined,
57
+ gap: isSupportGridGap ? spacing : undefined
58
+ }, style);
59
+ return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({}, rest, {
60
+ ref: ref,
61
+ className: classes,
62
+ style: styles
63
+ }), _react.default.Children.map(children, function (child, index) {
64
+ var childNode = /*#__PURE__*/_react.default.createElement("div", {
65
+ className: prefix('item'),
66
+ style: !isSupportGridGap ? itemStyles : undefined
67
+ }, child);
68
+
69
+ return [childNode, index < count - 1 ? divider : null];
70
+ }));
71
+ });
72
+
73
+ Stack.displayName = 'Stack';
74
+ Stack.propTypes = {
75
+ className: _propTypes.default.string,
76
+ children: _propTypes.default.node,
77
+ classPrefix: _propTypes.default.string,
78
+ direction: _propTypes.default.oneOf(['row', 'row-reverse', 'column', 'column-reverse']),
79
+ alignItems: _propTypes.default.oneOf(['flex-start', 'center', 'flex-end', 'stretch', 'baseline']),
80
+ justifyContent: _propTypes.default.oneOf(['flex-start', 'center', 'flex-end', 'space-between', 'space-around']),
81
+ spacing: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string, _propTypes.default.array]),
82
+ divider: _propTypes.default.node,
83
+ wrap: _propTypes.default.bool
84
+ };
85
+ var _default = Stack;
86
+ exports.default = _default;
@@ -0,0 +1,3 @@
1
+ import Stack from './Stack';
2
+ export type { StackProps } from './Stack';
3
+ export default Stack;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ exports.__esModule = true;
6
+ exports.default = void 0;
7
+
8
+ var _Stack = _interopRequireDefault(require("./Stack"));
9
+
10
+ var _default = _Stack.default;
11
+ exports.default = _default;
@@ -27,7 +27,7 @@ var STEP_STATUS_ICON = {
27
27
  };
28
28
 
29
29
  var StepItem = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
30
- var _withClassPrefix;
30
+ var _withClassPrefix, _STEP_STATUS_ICON$sta;
31
31
 
32
32
  var _props$as = props.as,
33
33
  Component = _props$as === void 0 ? 'div' : _props$as,
@@ -57,7 +57,7 @@ var StepItem = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
57
57
 
58
58
  var iconNode = /*#__PURE__*/_react.default.createElement("span", {
59
59
  className: prefix('icon', "icon-" + status)
60
- }, status ? STEP_STATUS_ICON[status] : stepNumber);
60
+ }, status ? (_STEP_STATUS_ICON$sta = STEP_STATUS_ICON[status]) !== null && _STEP_STATUS_ICON$sta !== void 0 ? _STEP_STATUS_ICON$sta : stepNumber : stepNumber);
61
61
 
62
62
  if (icon) {
63
63
  iconNode = /*#__PURE__*/_react.default.createElement("span", {
@@ -62,14 +62,14 @@ var Toggle = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
62
62
  var inner = checked ? checkedChildren : unCheckedChildren;
63
63
  var label = checked ? locale.on : locale.off;
64
64
  var handleInputChange = (0, _react.useCallback)(function (e) {
65
- if (disabled || readOnly) {
65
+ if (disabled || readOnly || loading) {
66
66
  return;
67
67
  }
68
68
 
69
69
  var checked = e.target.checked;
70
70
  setChecked(checked);
71
71
  onChange === null || onChange === void 0 ? void 0 : onChange(checked, e);
72
- }, [disabled, readOnly, setChecked, onChange]);
72
+ }, [disabled, readOnly, loading, setChecked, onChange]);
73
73
 
74
74
  if (plaintext) {
75
75
  return /*#__PURE__*/_react.default.createElement(_Plaintext.default, null, inner || label);
@@ -81,7 +81,8 @@ var Toggle = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
81
81
  }, rest), /*#__PURE__*/_react.default.createElement("input", {
82
82
  ref: inputRef,
83
83
  type: "checkbox",
84
- checked: checked,
84
+ checked: checkedProp,
85
+ defaultChecked: defaultChecked,
85
86
  disabled: disabled,
86
87
  readOnly: readOnly,
87
88
  onChange: handleInputChange,
@@ -36,7 +36,6 @@ export interface TreeDragProps<ItemDataType = Record<string, any>> {
36
36
  onDragEnd?: (nodeData: ItemDataType, e: React.DragEvent) => void;
37
37
  /** Called when node drop */
38
38
  onDrop?: (dropData: DropData<ItemDataType>, e: React.DragEvent) => void;
39
- renderDragNode?: (dragNode: ItemDataType) => React.ReactNode;
40
39
  }
41
40
  export interface TreeBaseProps<ValueType = string | number, ItemDataType = Record<string, any>> extends StandardProps {
42
41
  /** The height of Dropdown */
package/cjs/Tree/Tree.js CHANGED
@@ -28,12 +28,13 @@ exports.TREE_NODE_DROP_POSITION = TREE_NODE_DROP_POSITION;
28
28
  })(TREE_NODE_DROP_POSITION || (exports.TREE_NODE_DROP_POSITION = TREE_NODE_DROP_POSITION = {}));
29
29
 
30
30
  var Tree = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
31
- var dragNodeRef = (0, _react.useRef)();
31
+ var contextValue = (0, _react.useMemo)(function () {
32
+ return {
33
+ inline: true
34
+ };
35
+ }, []);
32
36
  return /*#__PURE__*/_react.default.createElement(_TreeContext.default.Provider, {
33
- value: {
34
- inline: true,
35
- dragNodeRef: dragNodeRef
36
- }
37
+ value: contextValue
37
38
  }, /*#__PURE__*/_react.default.createElement(_TreePicker.default, (0, _extends2.default)({
38
39
  ref: ref
39
40
  }, props)));
@@ -1,7 +1,6 @@
1
1
  import React from 'react';
2
2
  export interface TreeContextProps {
3
3
  inline?: boolean;
4
- dragNodeRef?: React.MutableRefObject<any>;
5
4
  }
6
5
  declare const TreeContext: React.Context<TreeContextProps>;
7
6
  export default TreeContext;
@@ -21,8 +21,6 @@ var _ArrowDown = _interopRequireDefault(require("@rsuite/icons/legacy/ArrowDown"
21
21
 
22
22
  var _Spinner = _interopRequireDefault(require("@rsuite/icons/legacy/Spinner"));
23
23
 
24
- var _TreeContext = _interopRequireDefault(require("../Tree/TreeContext"));
25
-
26
24
  var _reactToString = _interopRequireDefault(require("../utils/reactToString"));
27
25
 
28
26
  var _utils = require("../utils");
@@ -70,9 +68,6 @@ var TreeNode = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
70
68
  merge = _useClassNames.merge,
71
69
  withClassPrefix = _useClassNames.withClassPrefix;
72
70
 
73
- var _useContext = (0, _react.useContext)(_TreeContext.default),
74
- dragNodeRef = _useContext.dragNodeRef;
75
-
76
71
  var getTitle = (0, _react.useCallback)(function () {
77
72
  if (typeof label === 'string') {
78
73
  return label;
@@ -102,16 +97,8 @@ var TreeNode = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
102
97
  onSelect === null || onSelect === void 0 ? void 0 : onSelect(nodeData, event);
103
98
  }, [nodeData, disabled, prefix, onSelect]);
104
99
  var handleDragStart = (0, _react.useCallback)(function (event) {
105
- var dragNode = dragNodeRef === null || dragNodeRef === void 0 ? void 0 : dragNodeRef.current;
106
-
107
- if (dragNode) {
108
- var _event$dataTransfer;
109
-
110
- (_event$dataTransfer = event.dataTransfer) === null || _event$dataTransfer === void 0 ? void 0 : _event$dataTransfer.setDragImage(dragNode, 0, 0);
111
- }
112
-
113
100
  onDragStart === null || onDragStart === void 0 ? void 0 : onDragStart(nodeData, event);
114
- }, [dragNodeRef, nodeData, onDragStart]);
101
+ }, [nodeData, onDragStart]);
115
102
  var handleDragEnter = (0, _react.useCallback)(function (event) {
116
103
  event.preventDefault();
117
104
  event.stopPropagation();
@@ -112,8 +112,7 @@ var TreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
112
112
  renderExtraFooter = props.renderExtraFooter,
113
113
  renderMenu = props.renderMenu,
114
114
  renderValue = props.renderValue,
115
- renderDragNode = props.renderDragNode,
116
- rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "data", "appearance", "style", "showIndentLine", "value", "locale", "height", "className", "disabled", "placement", "cleanable", "menuStyle", "searchable", "virtualized", "classPrefix", "defaultValue", "placeholder", "searchKeyword", "menuClassName", "menuAutoWidth", "searchBy", "toggleAs", "labelKey", "valueKey", "childrenKey", "draggable", "defaultExpandAll", "disabledItemValues", "expandItemValues", "defaultExpandItemValues", "id", "listProps", "getChildren", "renderTreeIcon", "renderTreeNode", "onExit", "onExited", "onClean", "onOpen", "onSearch", "onSelect", "onChange", "onEntered", "onClose", "onDragEnd", "onDragStart", "onDragEnter", "onDragLeave", "onDragOver", "onDrop", "onExpand", "renderExtraFooter", "renderMenu", "renderValue", "renderDragNode"]);
115
+ rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "data", "appearance", "style", "showIndentLine", "value", "locale", "height", "className", "disabled", "placement", "cleanable", "menuStyle", "searchable", "virtualized", "classPrefix", "defaultValue", "placeholder", "searchKeyword", "menuClassName", "menuAutoWidth", "searchBy", "toggleAs", "labelKey", "valueKey", "childrenKey", "draggable", "defaultExpandAll", "disabledItemValues", "expandItemValues", "defaultExpandItemValues", "id", "listProps", "getChildren", "renderTreeIcon", "renderTreeNode", "onExit", "onExited", "onClean", "onOpen", "onSearch", "onSelect", "onChange", "onEntered", "onClose", "onDragEnd", "onDragStart", "onDragEnter", "onDragLeave", "onDragOver", "onDrop", "onExpand", "renderExtraFooter", "renderMenu", "renderValue"]);
117
116
  var triggerRef = (0, _react.useRef)(null);
118
117
  var targetRef = (0, _react.useRef)(null);
119
118
  var listRef = (0, _react.useRef)(null);
@@ -126,8 +125,7 @@ var TreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
126
125
  locale = _useCustom.locale;
127
126
 
128
127
  var _useContext = (0, _react.useContext)(_TreeContext.default),
129
- inline = _useContext.inline,
130
- dragNodeRef = _useContext.dragNodeRef;
128
+ inline = _useContext.inline;
131
129
 
132
130
  var _useControlled = (0, _utils.useControlled)(controlledValue, defaultValue),
133
131
  value = _useControlled[0],
@@ -249,14 +247,6 @@ var TreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
249
247
  (0, _react.useEffect)(function () {
250
248
  setSearchKeyword(searchKeyword !== null && searchKeyword !== void 0 ? searchKeyword : '');
251
249
  }, [searchKeyword, setSearchKeyword]);
252
- (0, _react.useEffect)(function () {
253
- if (dragNodeRef) {
254
- var _treeViewRef$current;
255
-
256
- dragNodeRef.current = (_treeViewRef$current = treeViewRef.current) === null || _treeViewRef$current === void 0 ? void 0 : _treeViewRef$current.querySelector("." + treePrefix('drag-node-mover'));
257
- } // eslint-disable-next-line react-hooks/exhaustive-deps
258
-
259
- }, []);
260
250
  var getDropData = (0, _react.useCallback)(function (nodeData) {
261
251
  var options = {
262
252
  valueKey: valueKey,
@@ -632,22 +622,6 @@ var TreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
632
622
  };
633
623
  };
634
624
 
635
- var renderDefaultDragNode = function renderDefaultDragNode() {
636
- if (draggable && !(0, _isNil2.default)(dragNode)) {
637
- var dragNodeContent = dragNode === null || dragNode === void 0 ? void 0 : dragNode[labelKey];
638
-
639
- if ((0, _isFunction2.default)(renderDragNode)) {
640
- dragNodeContent = renderDragNode(dragNode);
641
- }
642
-
643
- return /*#__PURE__*/_react.default.createElement("span", {
644
- className: treePrefix('drag-node-mover')
645
- }, dragNodeContent);
646
- }
647
-
648
- return null;
649
- };
650
-
651
625
  var renderTree = function renderTree() {
652
626
  var _withTreeClassPrefix;
653
627
 
@@ -683,7 +657,7 @@ var TreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
683
657
  rowRenderer: renderVirtualListNode(formattedNodes),
684
658
  scrollToAlignment: "center"
685
659
  }, listProps));
686
- }) : formattedNodes), renderDefaultDragNode());
660
+ }) : formattedNodes));
687
661
  };
688
662
 
689
663
  var renderDropdownMenu = function renderDropdownMenu(positionProps, speakerRef) {
package/cjs/index.d.ts CHANGED
@@ -24,8 +24,6 @@ export { default as Loader } from './Loader';
24
24
  export type { LoaderProps } from './Loader';
25
25
  export { default as SafeAnchor } from './SafeAnchor';
26
26
  export type { SafeAnchorProps } from './SafeAnchor';
27
- export { default as Divider } from './Divider';
28
- export type { DividerProps } from './Divider';
29
27
  export { default as Placeholder } from './Placeholder';
30
28
  export type { PlaceholderGraphProps, PlaceholderGridProps, PlaceholderParagraphProps } from './Placeholder';
31
29
  export { default as Badge } from './Badge';
@@ -144,6 +142,10 @@ export { default as Sidebar } from './Sidebar';
144
142
  export type { SidebarProps } from './Sidebar';
145
143
  export { default as Footer } from './Footer';
146
144
  export type { FooterProps } from './Footer';
145
+ export { default as Divider } from './Divider';
146
+ export type { DividerProps } from './Divider';
147
+ export { default as Stack } from './Stack';
148
+ export type { StackProps } from './Stack';
147
149
  export { default as Schema } from './Schema';
148
150
  export { default as Animation } from './Animation';
149
151
  export type { TransitionProps, SlideProps, CollapseProps, FadeProps, BounceProps } from './Animation';
package/cjs/index.js CHANGED
@@ -3,7 +3,7 @@
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
5
  exports.__esModule = true;
6
- exports.CustomProvider = exports.Affix = exports.DOMHelper = exports.Animation = exports.Schema = 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.Progress = exports.Table = exports.PanelGroup = exports.Panel = exports.CheckTree = exports.Tree = exports.Rate = exports.RangeSlider = exports.Slider = exports.Uploader = exports.AutoComplete = exports.DateRangePicker = exports.DatePicker = exports.MultiCascader = exports.Cascader = exports.CheckTreePicker = exports.TreePicker = exports.TagInput = exports.TagPicker = exports.InputPicker = exports.CheckPicker = exports.SelectPicker = exports.RadioGroup = exports.Radio = exports.CheckboxGroup = exports.Checkbox = exports.InputGroup = exports.InputNumber = exports.MaskedInput = exports.Input = exports.Form = exports.Toggle = exports.Steps = exports.Pagination = exports.Breadcrumb = exports.Sidenav = exports.Navbar = exports.Nav = exports.Dropdown = exports.toaster = exports.AvatarGroup = exports.Avatar = exports.Badge = exports.Placeholder = exports.Divider = exports.SafeAnchor = exports.Loader = exports.Drawer = exports.Message = exports.Notification = exports.Modal = exports.Popover = exports.Tooltip = exports.Whisper = exports.ButtonGroup = exports.ButtonToolbar = exports.IconButton = exports.Button = void 0;
6
+ 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.Progress = exports.Table = exports.PanelGroup = exports.Panel = exports.CheckTree = exports.Tree = exports.Rate = exports.RangeSlider = exports.Slider = exports.Uploader = exports.AutoComplete = exports.DateRangePicker = exports.DatePicker = exports.MultiCascader = exports.Cascader = exports.CheckTreePicker = exports.TreePicker = exports.TagInput = exports.TagPicker = exports.InputPicker = exports.CheckPicker = exports.SelectPicker = exports.RadioGroup = exports.Radio = exports.CheckboxGroup = exports.Checkbox = exports.InputGroup = exports.InputNumber = exports.MaskedInput = exports.Input = exports.Form = exports.Toggle = exports.Steps = exports.Pagination = exports.Breadcrumb = exports.Sidenav = exports.Navbar = exports.Nav = exports.Dropdown = exports.toaster = exports.AvatarGroup = exports.Avatar = exports.Badge = exports.Placeholder = exports.SafeAnchor = exports.Loader = exports.Drawer = exports.Message = exports.Notification = exports.Modal = exports.Popover = exports.Tooltip = exports.Whisper = exports.ButtonGroup = exports.ButtonToolbar = exports.IconButton = exports.Button = void 0;
7
7
 
8
8
  var _Button = _interopRequireDefault(require("./Button"));
9
9
 
@@ -57,10 +57,6 @@ var _SafeAnchor = _interopRequireDefault(require("./SafeAnchor"));
57
57
 
58
58
  exports.SafeAnchor = _SafeAnchor.default;
59
59
 
60
- var _Divider = _interopRequireDefault(require("./Divider"));
61
-
62
- exports.Divider = _Divider.default;
63
-
64
60
  var _Placeholder = _interopRequireDefault(require("./Placeholder"));
65
61
 
66
62
  exports.Placeholder = _Placeholder.default;
@@ -297,6 +293,14 @@ var _Footer = _interopRequireDefault(require("./Footer"));
297
293
 
298
294
  exports.Footer = _Footer.default;
299
295
 
296
+ var _Divider = _interopRequireDefault(require("./Divider"));
297
+
298
+ exports.Divider = _Divider.default;
299
+
300
+ var _Stack = _interopRequireDefault(require("./Stack"));
301
+
302
+ exports.Stack = _Stack.default;
303
+
300
304
  var _Schema = _interopRequireDefault(require("./Schema"));
301
305
 
302
306
  exports.Schema = _Schema.default;
@@ -40,3 +40,4 @@ export { default as useUpdatedRef } from './useUpdatedRef';
40
40
  export { default as useWillUnmount } from './useWillUnmount';
41
41
  export { default as useUpdateEffect } from './useUpdateEffect';
42
42
  export { default as useIsMounted } from './useIsMounted';
43
+ export { default as useMount } from './useMount';
@@ -41,13 +41,14 @@ var _exportNames = {
41
41
  useWillUnmount: true,
42
42
  useUpdateEffect: true,
43
43
  useIsMounted: true,
44
+ useMount: true,
44
45
  defaultClassPrefix: true,
45
46
  getClassNamePrefix: true,
46
47
  globalKey: true,
47
48
  DateUtils: true,
48
49
  TypeChecker: true
49
50
  };
50
- exports.TypeChecker = exports.DateUtils = exports.globalKey = exports.getClassNamePrefix = exports.defaultClassPrefix = exports.useIsMounted = exports.useUpdateEffect = exports.useWillUnmount = exports.useUpdatedRef = exports.useEventCallback = exports.stringToObject = exports.getSafeRegExpString = exports.useRootClose = exports.useControlled = exports.useTimeout = exports.createComponent = exports.usePortal = exports.useCustom = exports.useElementResize = exports.useEventListener = exports.useClassNames = exports.appendTooltip = exports.scrollTopAnimation = exports.reactToString = exports.composeFunctions = exports.shallowEqualArray = exports.shallowEqual = exports.mergeRefs = exports.getDOMNode = exports.placementPolyfill = exports.clone = exports.getDataGroupBy = exports.previewFile = exports.ajaxUpload = exports.tplTransform = exports.ReactChildren = exports.isOneOf = exports.createChainedFunction = exports.prefix = exports.guid = void 0;
51
+ exports.TypeChecker = exports.DateUtils = exports.globalKey = exports.getClassNamePrefix = exports.defaultClassPrefix = exports.useMount = exports.useIsMounted = exports.useUpdateEffect = exports.useWillUnmount = exports.useUpdatedRef = exports.useEventCallback = exports.stringToObject = exports.getSafeRegExpString = exports.useRootClose = exports.useControlled = exports.useTimeout = exports.createComponent = exports.usePortal = exports.useCustom = exports.useElementResize = exports.useEventListener = exports.useClassNames = exports.appendTooltip = exports.scrollTopAnimation = exports.reactToString = exports.composeFunctions = exports.shallowEqualArray = exports.shallowEqual = exports.mergeRefs = exports.getDOMNode = exports.placementPolyfill = exports.clone = exports.getDataGroupBy = exports.previewFile = exports.ajaxUpload = exports.tplTransform = exports.ReactChildren = exports.isOneOf = exports.createChainedFunction = exports.prefix = exports.guid = void 0;
51
52
 
52
53
  var _BrowserDetection = require("./BrowserDetection");
53
54
 
@@ -234,4 +235,8 @@ exports.useUpdateEffect = _useUpdateEffect.default;
234
235
 
235
236
  var _useIsMounted = _interopRequireDefault(require("./useIsMounted"));
236
237
 
237
- exports.useIsMounted = _useIsMounted.default;
238
+ exports.useIsMounted = _useIsMounted.default;
239
+
240
+ var _useMount = _interopRequireDefault(require("./useMount"));
241
+
242
+ exports.useMount = _useMount.default;
@@ -150,7 +150,7 @@ export { getTreeActiveNode };
150
150
  * toggle tree node
151
151
  * @param param0
152
152
  */
153
- export declare function toggleExpand({ node, isExpand, expandItemValues, valueKey }: any): ItemDataType[];
153
+ export declare function toggleExpand({ node, isExpand, expandItemValues, valueKey }: any): ItemDataType<string | number>[];
154
154
  export declare function getTreeNodeTitle(label: any): string | undefined;
155
155
  /**
156
156
  * get all children from flattenNodes object by given parent node
@@ -159,7 +159,7 @@ export declare function getTreeNodeTitle(label: any): string | undefined;
159
159
  */
160
160
  export declare function getChildrenByFlattenNodes(nodes: TreeNodesType, parent: TreeNodeType): TreeNodeType[];
161
161
  export declare function useTreeDrag(): {
162
- dragNode: ItemDataType | null;
162
+ dragNode: ItemDataType<string | number> | null;
163
163
  dragOverNodeKey: null;
164
164
  dragNodeKeys: (string | number)[];
165
165
  dropNodePosition: TREE_NODE_DROP_POSITION | null;
@@ -219,14 +219,14 @@ interface TreeSearchProps {
219
219
  */
220
220
  export declare function useTreeSearch<T extends HTMLElement = HTMLInputElement>(props: TreeSearchProps): {
221
221
  searchKeywordState: string;
222
- filteredData: ItemDataType[];
222
+ filteredData: ItemDataType<string | number>[];
223
223
  setFilteredData: (data: ItemDataType[], searchKeyword: string) => void;
224
224
  setSearchKeyword: React.Dispatch<React.SetStateAction<string>>;
225
225
  handleSearch: (searchKeyword: string, event: React.ChangeEvent<T>) => void;
226
226
  };
227
227
  export declare function useGetTreeNodeChildren(treeData: ItemDataType[], valueKey: string, childrenKey: string): {
228
- data: ItemDataType[];
229
- setData: React.Dispatch<React.SetStateAction<ItemDataType[]>>;
228
+ data: ItemDataType<string | number>[];
229
+ setData: React.Dispatch<React.SetStateAction<ItemDataType<string | number>[]>>;
230
230
  loadingNodeValues: never[];
231
231
  loadChildren: (node: any, getChildren: any) => void;
232
232
  };
@@ -0,0 +1,2 @@
1
+ declare const useMount: (callback: () => void) => void;
2
+ export default useMount;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.default = void 0;
5
+
6
+ var _react = require("react");
7
+
8
+ var useMount = function useMount(callback) {
9
+ var mountRef = (0, _react.useRef)(callback);
10
+ mountRef.current = callback;
11
+ (0, _react.useEffect)(function () {
12
+ var _mountRef$current;
13
+
14
+ (_mountRef$current = mountRef.current) === null || _mountRef$current === void 0 ? void 0 : _mountRef$current.call(mountRef);
15
+ }, []);
16
+ };
17
+
18
+ var _default = useMount;
19
+ exports.default = _default;
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  interface PortalProps {
3
3
  id?: string;
4
- container?: HTMLElement | (() => HTMLElement);
4
+ container?: HTMLElement | (() => HTMLElement | null) | null;
5
5
  }
6
6
  declare function usePortal(props?: PortalProps): {
7
7
  target: HTMLElement | null;