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
@@ -12,7 +12,7 @@ var STEP_STATUS_ICON = {
12
12
  error: /*#__PURE__*/React.createElement(Close, null)
13
13
  };
14
14
  var StepItem = /*#__PURE__*/React.forwardRef(function (props, ref) {
15
- var _withClassPrefix;
15
+ var _withClassPrefix, _STEP_STATUS_ICON$sta;
16
16
 
17
17
  var _props$as = props.as,
18
18
  Component = _props$as === void 0 ? 'div' : _props$as,
@@ -43,7 +43,7 @@ var StepItem = /*#__PURE__*/React.forwardRef(function (props, ref) {
43
43
 
44
44
  var iconNode = /*#__PURE__*/React.createElement("span", {
45
45
  className: prefix('icon', "icon-" + status)
46
- }, status ? STEP_STATUS_ICON[status] : stepNumber);
46
+ }, status ? (_STEP_STATUS_ICON$sta = STEP_STATUS_ICON[status]) !== null && _STEP_STATUS_ICON$sta !== void 0 ? _STEP_STATUS_ICON$sta : stepNumber : stepNumber);
47
47
 
48
48
  if (icon) {
49
49
  iconNode = /*#__PURE__*/React.createElement("span", {
@@ -47,14 +47,14 @@ var Toggle = /*#__PURE__*/React.forwardRef(function (props, ref) {
47
47
  var inner = checked ? checkedChildren : unCheckedChildren;
48
48
  var label = checked ? locale.on : locale.off;
49
49
  var handleInputChange = useCallback(function (e) {
50
- if (disabled || readOnly) {
50
+ if (disabled || readOnly || loading) {
51
51
  return;
52
52
  }
53
53
 
54
54
  var checked = e.target.checked;
55
55
  setChecked(checked);
56
56
  onChange === null || onChange === void 0 ? void 0 : onChange(checked, e);
57
- }, [disabled, readOnly, setChecked, onChange]);
57
+ }, [disabled, readOnly, loading, setChecked, onChange]);
58
58
 
59
59
  if (plaintext) {
60
60
  return /*#__PURE__*/React.createElement(Plaintext, null, inner || label);
@@ -66,7 +66,8 @@ var Toggle = /*#__PURE__*/React.forwardRef(function (props, ref) {
66
66
  }, rest), /*#__PURE__*/React.createElement("input", {
67
67
  ref: inputRef,
68
68
  type: "checkbox",
69
- checked: checked,
69
+ checked: checkedProp,
70
+ defaultChecked: defaultChecked,
70
71
  disabled: disabled,
71
72
  readOnly: readOnly,
72
73
  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/esm/Tree/Tree.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
- import React, { useRef } from 'react';
2
+ import React, { useMemo } from 'react';
3
3
  import TreePicker from '../TreePicker';
4
4
  import TreeContext from './TreeContext';
5
5
 
@@ -15,12 +15,13 @@ export var TREE_NODE_DROP_POSITION;
15
15
  })(TREE_NODE_DROP_POSITION || (TREE_NODE_DROP_POSITION = {}));
16
16
 
17
17
  var Tree = /*#__PURE__*/React.forwardRef(function (props, ref) {
18
- var dragNodeRef = useRef();
18
+ var contextValue = useMemo(function () {
19
+ return {
20
+ inline: true
21
+ };
22
+ }, []);
19
23
  return /*#__PURE__*/React.createElement(TreeContext.Provider, {
20
- value: {
21
- inline: true,
22
- dragNodeRef: dragNodeRef
23
- }
24
+ value: contextValue
24
25
  }, /*#__PURE__*/React.createElement(TreePicker, _extends({
25
26
  ref: ref
26
27
  }, 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;
@@ -1,11 +1,10 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
- import React, { forwardRef, useCallback, useContext } from 'react';
3
+ import React, { forwardRef, useCallback } from 'react';
4
4
  import PropTypes from 'prop-types';
5
5
  import hasClass from 'dom-lib/hasClass';
6
6
  import ArrowDown from '@rsuite/icons/legacy/ArrowDown';
7
7
  import Spinner from '@rsuite/icons/legacy/Spinner';
8
- import TreeContext from '../Tree/TreeContext';
9
8
  import reactToString from '../utils/reactToString';
10
9
  import { useClassNames } from '../utils';
11
10
  import { getTreeNodeIndent } from '../utils/treeUtils';
@@ -50,9 +49,6 @@ var TreeNode = /*#__PURE__*/forwardRef(function (_ref, ref) {
50
49
  merge = _useClassNames.merge,
51
50
  withClassPrefix = _useClassNames.withClassPrefix;
52
51
 
53
- var _useContext = useContext(TreeContext),
54
- dragNodeRef = _useContext.dragNodeRef;
55
-
56
52
  var getTitle = useCallback(function () {
57
53
  if (typeof label === 'string') {
58
54
  return label;
@@ -82,16 +78,8 @@ var TreeNode = /*#__PURE__*/forwardRef(function (_ref, ref) {
82
78
  onSelect === null || onSelect === void 0 ? void 0 : onSelect(nodeData, event);
83
79
  }, [nodeData, disabled, prefix, onSelect]);
84
80
  var handleDragStart = useCallback(function (event) {
85
- var dragNode = dragNodeRef === null || dragNodeRef === void 0 ? void 0 : dragNodeRef.current;
86
-
87
- if (dragNode) {
88
- var _event$dataTransfer;
89
-
90
- (_event$dataTransfer = event.dataTransfer) === null || _event$dataTransfer === void 0 ? void 0 : _event$dataTransfer.setDragImage(dragNode, 0, 0);
91
- }
92
-
93
81
  onDragStart === null || onDragStart === void 0 ? void 0 : onDragStart(nodeData, event);
94
- }, [dragNodeRef, nodeData, onDragStart]);
82
+ }, [nodeData, onDragStart]);
95
83
  var handleDragEnter = useCallback(function (event) {
96
84
  event.preventDefault();
97
85
  event.stopPropagation();
@@ -87,8 +87,7 @@ var TreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
87
87
  renderExtraFooter = props.renderExtraFooter,
88
88
  renderMenu = props.renderMenu,
89
89
  renderValue = props.renderValue,
90
- renderDragNode = props.renderDragNode,
91
- rest = _objectWithoutPropertiesLoose(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"]);
90
+ rest = _objectWithoutPropertiesLoose(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"]);
92
91
 
93
92
  var triggerRef = useRef(null);
94
93
  var targetRef = useRef(null);
@@ -102,8 +101,7 @@ var TreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
102
101
  locale = _useCustom.locale;
103
102
 
104
103
  var _useContext = useContext(TreeContext),
105
- inline = _useContext.inline,
106
- dragNodeRef = _useContext.dragNodeRef;
104
+ inline = _useContext.inline;
107
105
 
108
106
  var _useControlled = useControlled(controlledValue, defaultValue),
109
107
  value = _useControlled[0],
@@ -225,14 +223,6 @@ var TreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
225
223
  useEffect(function () {
226
224
  setSearchKeyword(searchKeyword !== null && searchKeyword !== void 0 ? searchKeyword : '');
227
225
  }, [searchKeyword, setSearchKeyword]);
228
- useEffect(function () {
229
- if (dragNodeRef) {
230
- var _treeViewRef$current;
231
-
232
- dragNodeRef.current = (_treeViewRef$current = treeViewRef.current) === null || _treeViewRef$current === void 0 ? void 0 : _treeViewRef$current.querySelector("." + treePrefix('drag-node-mover'));
233
- } // eslint-disable-next-line react-hooks/exhaustive-deps
234
-
235
- }, []);
236
226
  var getDropData = useCallback(function (nodeData) {
237
227
  var options = {
238
228
  valueKey: valueKey,
@@ -610,22 +600,6 @@ var TreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
610
600
  };
611
601
  };
612
602
 
613
- var renderDefaultDragNode = function renderDefaultDragNode() {
614
- if (draggable && !_isNil(dragNode)) {
615
- var dragNodeContent = dragNode === null || dragNode === void 0 ? void 0 : dragNode[labelKey];
616
-
617
- if (_isFunction(renderDragNode)) {
618
- dragNodeContent = renderDragNode(dragNode);
619
- }
620
-
621
- return /*#__PURE__*/React.createElement("span", {
622
- className: treePrefix('drag-node-mover')
623
- }, dragNodeContent);
624
- }
625
-
626
- return null;
627
- };
628
-
629
603
  var renderTree = function renderTree() {
630
604
  var _withTreeClassPrefix;
631
605
 
@@ -661,7 +635,7 @@ var TreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
661
635
  rowRenderer: renderVirtualListNode(formattedNodes),
662
636
  scrollToAlignment: "center"
663
637
  }, listProps));
664
- }) : formattedNodes), renderDefaultDragNode());
638
+ }) : formattedNodes));
665
639
  };
666
640
 
667
641
  var renderDropdownMenu = function renderDropdownMenu(positionProps, speakerRef) {
package/esm/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/esm/index.js CHANGED
@@ -12,7 +12,6 @@ export { default as Message } from './Message';
12
12
  export { default as Drawer } from './Drawer';
13
13
  export { default as Loader } from './Loader';
14
14
  export { default as SafeAnchor } from './SafeAnchor';
15
- export { default as Divider } from './Divider';
16
15
  export { default as Placeholder } from './Placeholder';
17
16
  export { default as Badge } from './Badge';
18
17
  export { default as Avatar } from './Avatar';
@@ -76,6 +75,8 @@ export { default as Content } from './Content';
76
75
  export { default as Header } from './Header';
77
76
  export { default as Sidebar } from './Sidebar';
78
77
  export { default as Footer } from './Footer';
78
+ export { default as Divider } from './Divider';
79
+ export { default as Stack } from './Stack';
79
80
  // Utils
80
81
  export { default as Schema } from './Schema';
81
82
  export { default as Animation } from './Animation';
@@ -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';
@@ -42,4 +42,5 @@ export { default as useEventCallback } from './useEventCallback';
42
42
  export { default as useUpdatedRef } from './useUpdatedRef';
43
43
  export { default as useWillUnmount } from './useWillUnmount';
44
44
  export { default as useUpdateEffect } from './useUpdateEffect';
45
- export { default as useIsMounted } from './useIsMounted';
45
+ export { default as useIsMounted } from './useIsMounted';
46
+ export { default as useMount } from './useMount';
@@ -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,13 @@
1
+ import { useEffect, useRef } from 'react';
2
+
3
+ var useMount = function useMount(callback) {
4
+ var mountRef = useRef(callback);
5
+ mountRef.current = callback;
6
+ useEffect(function () {
7
+ var _mountRef$current;
8
+
9
+ (_mountRef$current = mountRef.current) === null || _mountRef$current === void 0 ? void 0 : _mountRef$current.call(mountRef);
10
+ }, []);
11
+ };
12
+
13
+ export default useMount;
@@ -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;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rsuite",
3
- "version": "5.3.0",
3
+ "version": "5.4.3",
4
4
  "description": "A suite of react components",
5
5
  "main": "cjs/index.js",
6
6
  "module": "esm/index.js",
@@ -37,7 +37,7 @@
37
37
  "lodash": "^4.17.11",
38
38
  "prop-types": "^15.7.2",
39
39
  "react-virtualized": "^9.22.3",
40
- "rsuite-table": "^5.2.2",
40
+ "rsuite-table": "^5.3.0",
41
41
  "schema-typed": "^2.0.2"
42
42
  },
43
43
  "peerDependencies": {
@@ -27,6 +27,7 @@
27
27
  --rs-bg-active: @H700;
28
28
  --rs-bg-backdrop: fade(@B900, 80%);
29
29
  --rs-state-hover-bg: @B600;
30
+ --rs-color-focus-ring: 0 0 0 3px fade(@H500, 25%);
30
31
  --rs-state-focus-shadow: 0 0 0 3px fade(@H500, 25%);
31
32
  --rs-state-focus-outline: 3px solid fade(@H500, 25%);
32
33
  --rs-shadow-overlay: 0 4px 4px rgba(0, 0, 0, 0.12), 0 0 10px rgba(0, 0, 0, 0.06);
@@ -27,6 +27,7 @@
27
27
  --rs-bg-active: @H500;
28
28
  --rs-bg-backdrop: fade(@B900, 80%);
29
29
  --rs-state-hover-bg: @B600;
30
+ --rs-color-focus-ring: @B000;
30
31
  --rs-state-focus-shadow: 0 0 0 3px @B900, 0 0 0 5px @B000;
31
32
  --rs-state-focus-shadow-slim: 0 0 0 2px @B000;
32
33
  --rs-state-focus-outline: 3px solid fade(@H500, 25%);
@@ -34,6 +34,7 @@
34
34
  --rs-bg-active: @H500;
35
35
  --rs-bg-backdrop: fade(@B900, 30%);
36
36
  --rs-state-hover-bg: @H050;
37
+ --rs-color-focus-ring: fade(@H500, 25%);
37
38
  --rs-state-focus-shadow: 0 0 0 3px fade(@H500, 25%);
38
39
  --rs-state-focus-outline: 3px solid fade(@H500, 25%);
39
40
  --rs-shadow-overlay: 0 4px 4px rgba(0, 0, 0, 0.12), 0 0 10px rgba(0, 0, 0, 0.06);
package/styles/index.less CHANGED
@@ -75,3 +75,4 @@
75
75
  @import '../Rate/styles/index';
76
76
  @import '../toaster/styles/index';
77
77
  @import '../CloseButton/styles/index';
78
+ @import '../Stack/styles/index';
@@ -122,26 +122,38 @@
122
122
 
123
123
  // Useful when adding focus ring to an element
124
124
  .with-focus-ring() {
125
- &:focus {
125
+ &:focus-visible {
126
126
  .focus-ring();
127
127
  }
128
128
  }
129
129
 
130
130
  // Useful when appending the ring into an existing :focus rule
131
131
  .focus-ring() {
132
- box-shadow: var(--rs-state-focus-shadow);
132
+ outline: 3px solid var(--rs-color-focus-ring);
133
+ // box-shadow: var(--rs-state-focus-shadow);
134
+
135
+ .high-contrast-mode({
136
+ outline-offset: 2px;
137
+ });
133
138
  }
134
139
 
135
140
  .focus-ring(slim) {
136
- box-shadow: var(--rs-state-focus-shadow-slim);
141
+ .focus-ring();
142
+
143
+ outline-width: 2px;
144
+ outline-offset: 0;
137
145
  }
138
146
 
139
147
  .focus-ring(inset) {
140
- box-shadow: inset var(--rs-state-focus-shadow);
148
+ .focus-ring();
149
+
150
+ outline-offset: -3px;
141
151
  }
142
152
 
143
153
  .focus-ring(slim-inset) {
144
- box-shadow: inset var(--rs-state-focus-shadow-slim);
154
+ .focus-ring(inset);
155
+
156
+ outline-width: 2px;
145
157
  }
146
158
 
147
159
  .focus-ring(outline) {