rsuite 5.13.0 → 5.13.1
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.
- package/CHANGELOG.md +14 -0
- package/Sidenav/styles/index.less +40 -4
- package/cjs/Overlay/OverlayTrigger.d.ts +4 -4
- package/cjs/Sidenav/SidenavToggle.d.ts +5 -1
- package/cjs/Sidenav/SidenavToggle.js +25 -9
- package/cjs/Whisper/Whisper.d.ts +3 -5
- package/cjs/Whisper/test/Whisper.test.d.ts +1 -0
- package/cjs/Whisper/test/Whisper.test.js +23 -0
- package/cjs/index.d.ts +1 -1
- package/cjs/utils/treeUtils.js +8 -10
- package/dist/rsuite-rtl.css +63 -6
- package/dist/rsuite-rtl.min.css +1 -1
- package/dist/rsuite-rtl.min.css.map +1 -1
- package/dist/rsuite.css +63 -6
- package/dist/rsuite.js +4 -4
- package/dist/rsuite.min.css +1 -1
- package/dist/rsuite.min.css.map +1 -1
- package/dist/rsuite.min.js +1 -1
- package/dist/rsuite.min.js.map +1 -1
- package/esm/Overlay/OverlayTrigger.d.ts +4 -4
- package/esm/Sidenav/SidenavToggle.d.ts +5 -1
- package/esm/Sidenav/SidenavToggle.js +22 -9
- package/esm/Whisper/Whisper.d.ts +3 -5
- package/esm/Whisper/test/Whisper.test.d.ts +1 -0
- package/esm/Whisper/test/Whisper.test.js +16 -0
- package/esm/index.d.ts +1 -1
- package/esm/utils/treeUtils.js +8 -10
- package/package.json +1 -1
- package/styles/color-modes/dark.less +3 -0
- package/styles/color-modes/high-contrast.less +3 -0
- package/styles/color-modes/light.less +3 -0
- package/styles/variables.less +2 -0
|
@@ -56,10 +56,10 @@ export interface OverlayTriggerProps extends StandardProps, AnimationEventProps
|
|
|
56
56
|
onClose?: () => void;
|
|
57
57
|
}
|
|
58
58
|
export interface OverlayTriggerInstance {
|
|
59
|
-
root: HTMLElement;
|
|
59
|
+
root: HTMLElement | undefined;
|
|
60
60
|
updatePosition: () => void;
|
|
61
|
-
open: () => void;
|
|
62
|
-
close: () => void;
|
|
61
|
+
open: (delay?: number) => void;
|
|
62
|
+
close: (delay?: number) => void;
|
|
63
63
|
}
|
|
64
|
-
declare const OverlayTrigger: React.ForwardRefExoticComponent<OverlayTriggerProps & React.RefAttributes<
|
|
64
|
+
declare const OverlayTrigger: React.ForwardRefExoticComponent<OverlayTriggerProps & React.RefAttributes<OverlayTriggerInstance>>;
|
|
65
65
|
export default OverlayTrigger;
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { WithAsProps, RsRefForwardingComponent } from '../@types/common';
|
|
3
3
|
export interface SidenavToggleProps extends WithAsProps {
|
|
4
|
-
/**
|
|
4
|
+
/**
|
|
5
|
+
* Expand then nav
|
|
6
|
+
*
|
|
7
|
+
* @deprecated Use <Sidenav expanded> instead.
|
|
8
|
+
*/
|
|
5
9
|
expanded?: boolean;
|
|
6
10
|
/** Callback function for menu state switching */
|
|
7
11
|
onToggle?: (expanded: boolean, event: React.MouseEvent) => void;
|
|
@@ -1,29 +1,41 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
|
-
import React from 'react';
|
|
3
|
+
import React, { useContext } from 'react';
|
|
4
4
|
import PropTypes from 'prop-types';
|
|
5
5
|
import IconButton from '../IconButton';
|
|
6
6
|
import { useClassNames } from '../utils';
|
|
7
7
|
import AngleLeft from '@rsuite/icons/legacy/AngleLeft';
|
|
8
8
|
import AngleRight from '@rsuite/icons/legacy/AngleRight';
|
|
9
|
+
import deprecatePropType from '../utils/deprecatePropType';
|
|
10
|
+
import { SidenavContext } from './Sidenav';
|
|
9
11
|
var SidenavToggle = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
12
|
+
var sidenav = useContext(SidenavContext);
|
|
13
|
+
|
|
14
|
+
if (!sidenav) {
|
|
15
|
+
throw new Error('<Sidenav.Toggle> must be rendered within a <Sidenav>');
|
|
16
|
+
}
|
|
17
|
+
|
|
10
18
|
var _props$as = props.as,
|
|
11
19
|
Component = _props$as === void 0 ? 'div' : _props$as,
|
|
12
|
-
|
|
20
|
+
DEPRECATED_expanded = props.expanded,
|
|
13
21
|
className = props.className,
|
|
14
22
|
_props$classPrefix = props.classPrefix,
|
|
15
23
|
classPrefix = _props$classPrefix === void 0 ? 'sidenav-toggle' : _props$classPrefix,
|
|
16
24
|
onToggle = props.onToggle,
|
|
17
|
-
rest = _objectWithoutPropertiesLoose(props, ["as", "expanded", "className", "classPrefix", "onToggle"]);
|
|
25
|
+
rest = _objectWithoutPropertiesLoose(props, ["as", "expanded", "className", "classPrefix", "onToggle"]); // if `expanded` prop is provided, it takes priority
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
var expanded = DEPRECATED_expanded !== null && DEPRECATED_expanded !== void 0 ? DEPRECATED_expanded : sidenav.expanded;
|
|
18
29
|
|
|
19
30
|
var _useClassNames = useClassNames(classPrefix),
|
|
20
31
|
merge = _useClassNames.merge,
|
|
21
|
-
withClassPrefix = _useClassNames.withClassPrefix
|
|
32
|
+
withClassPrefix = _useClassNames.withClassPrefix,
|
|
33
|
+
prefix = _useClassNames.prefix;
|
|
22
34
|
|
|
23
35
|
var classes = merge(className, withClassPrefix({
|
|
24
36
|
collapsed: !expanded
|
|
25
37
|
}));
|
|
26
|
-
var Icon = expanded ?
|
|
38
|
+
var Icon = expanded ? AngleLeft : AngleRight;
|
|
27
39
|
|
|
28
40
|
var handleToggle = function handleToggle(event) {
|
|
29
41
|
onToggle === null || onToggle === void 0 ? void 0 : onToggle(!expanded, event);
|
|
@@ -33,16 +45,17 @@ var SidenavToggle = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
33
45
|
ref: ref,
|
|
34
46
|
className: classes
|
|
35
47
|
}), /*#__PURE__*/React.createElement(IconButton, {
|
|
36
|
-
appearance: "default",
|
|
37
48
|
icon: /*#__PURE__*/React.createElement(Icon, null),
|
|
38
|
-
|
|
49
|
+
className: prefix('button'),
|
|
50
|
+
onClick: handleToggle,
|
|
51
|
+
"aria-label": expanded ? 'Collapse' : 'Expand'
|
|
39
52
|
}));
|
|
40
53
|
});
|
|
41
|
-
SidenavToggle.displayName = '
|
|
54
|
+
SidenavToggle.displayName = 'Sidenav.Toggle';
|
|
42
55
|
SidenavToggle.propTypes = {
|
|
43
56
|
classPrefix: PropTypes.string,
|
|
44
57
|
className: PropTypes.string,
|
|
45
|
-
expanded: PropTypes.bool,
|
|
58
|
+
expanded: deprecatePropType(PropTypes.bool, 'Use <Sidenav expanded> instead.'),
|
|
46
59
|
onToggle: PropTypes.func
|
|
47
60
|
};
|
|
48
61
|
export default SidenavToggle;
|
package/esm/Whisper/Whisper.d.ts
CHANGED
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
import { OverlayTriggerInstance } from '../Overlay/OverlayTrigger';
|
|
2
3
|
import { OverlayTriggerProps } from '../Overlay/OverlayTrigger';
|
|
3
4
|
export declare type WhisperProps = OverlayTriggerProps;
|
|
4
|
-
export
|
|
5
|
-
|
|
6
|
-
close: (delay?: number) => void;
|
|
7
|
-
}
|
|
8
|
-
declare const Whisper: React.ForwardRefExoticComponent<OverlayTriggerProps & React.RefAttributes<unknown>>;
|
|
5
|
+
export declare type WhisperInstance = OverlayTriggerInstance;
|
|
6
|
+
declare const Whisper: React.ForwardRefExoticComponent<OverlayTriggerProps & React.RefAttributes<OverlayTriggerInstance>>;
|
|
9
7
|
export default Whisper;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
var _whisperRef$current, _whisperRef$current2, _whisperRef$current3, _whisperRef$current4, _whisperRef$current5;
|
|
2
|
+
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import Whisper from '../Whisper';
|
|
5
|
+
var whisperRef = /*#__PURE__*/React.createRef();
|
|
6
|
+
|
|
7
|
+
/*#__PURE__*/
|
|
8
|
+
React.createElement(Whisper, {
|
|
9
|
+
ref: whisperRef,
|
|
10
|
+
speaker: /*#__PURE__*/React.createElement("div", null)
|
|
11
|
+
}, /*#__PURE__*/React.createElement("div", null));
|
|
12
|
+
(_whisperRef$current = whisperRef.current) === null || _whisperRef$current === void 0 ? void 0 : _whisperRef$current.open();
|
|
13
|
+
(_whisperRef$current2 = whisperRef.current) === null || _whisperRef$current2 === void 0 ? void 0 : _whisperRef$current2.open(300);
|
|
14
|
+
(_whisperRef$current3 = whisperRef.current) === null || _whisperRef$current3 === void 0 ? void 0 : _whisperRef$current3.close();
|
|
15
|
+
(_whisperRef$current4 = whisperRef.current) === null || _whisperRef$current4 === void 0 ? void 0 : _whisperRef$current4.close(300);
|
|
16
|
+
(_whisperRef$current5 = whisperRef.current) === null || _whisperRef$current5 === void 0 ? void 0 : _whisperRef$current5.updatePosition();
|
package/esm/index.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ export type { ButtonToolbarProps } from './ButtonToolbar';
|
|
|
7
7
|
export { default as ButtonGroup } from './ButtonGroup';
|
|
8
8
|
export type { ButtonGroupProps } from './ButtonGroup';
|
|
9
9
|
export { default as Whisper } from './Whisper';
|
|
10
|
-
export type { WhisperProps } from './Whisper';
|
|
10
|
+
export type { WhisperProps, WhisperInstance } from './Whisper';
|
|
11
11
|
export { default as Tooltip } from './Tooltip';
|
|
12
12
|
export type { TooltipProps } from './Tooltip';
|
|
13
13
|
export { default as Popover } from './Popover';
|
package/esm/utils/treeUtils.js
CHANGED
|
@@ -686,11 +686,7 @@ export function useFlattenTreeData(_ref8) {
|
|
|
686
686
|
var forceUpdate = useCallback(function () {
|
|
687
687
|
dispatch(Object.create(null));
|
|
688
688
|
}, [dispatch]);
|
|
689
|
-
|
|
690
|
-
var _useRef = useRef({}),
|
|
691
|
-
_useRef$current = _useRef.current,
|
|
692
|
-
flattenNodes = _useRef$current === void 0 ? {} : _useRef$current;
|
|
693
|
-
|
|
689
|
+
var flattenNodes = useRef({});
|
|
694
690
|
var flattenTreeData = useCallback(function (treeData, ref, parent, layer) {
|
|
695
691
|
if (layer === void 0) {
|
|
696
692
|
layer = 1;
|
|
@@ -705,20 +701,20 @@ export function useFlattenTreeData(_ref8) {
|
|
|
705
701
|
|
|
706
702
|
var refKey = ref + "-" + index;
|
|
707
703
|
node.refKey = refKey;
|
|
708
|
-
flattenNodes[refKey] = _extends((_extends2 = {
|
|
704
|
+
flattenNodes.current[refKey] = _extends((_extends2 = {
|
|
709
705
|
layer: layer
|
|
710
706
|
}, _extends2[labelKey] = node[labelKey], _extends2[valueKey] = node[valueKey], _extends2.uncheckable = uncheckableItemValues.some(function (value) {
|
|
711
707
|
return shallowEqual(node[valueKey], value);
|
|
712
708
|
}), _extends2), node);
|
|
713
709
|
|
|
714
710
|
if (parent) {
|
|
715
|
-
flattenNodes[refKey].parent = _omit(parent, 'parent', 'children');
|
|
711
|
+
flattenNodes.current[refKey].parent = _omit(parent, 'parent', 'children');
|
|
716
712
|
}
|
|
717
713
|
|
|
718
714
|
flattenTreeData(node[childrenKey], refKey, node, layer + 1);
|
|
719
715
|
});
|
|
720
|
-
callback === null || callback === void 0 ? void 0 : callback(flattenNodes);
|
|
721
|
-
}, [childrenKey, valueKey, labelKey, callback, uncheckableItemValues
|
|
716
|
+
callback === null || callback === void 0 ? void 0 : callback(flattenNodes.current);
|
|
717
|
+
}, [childrenKey, valueKey, labelKey, callback, uncheckableItemValues]);
|
|
722
718
|
var serializeListOnlyParent = useCallback(function (nodes, key) {
|
|
723
719
|
var list = [];
|
|
724
720
|
Object.keys(nodes).forEach(function (refKey) {
|
|
@@ -819,12 +815,14 @@ export function useFlattenTreeData(_ref8) {
|
|
|
819
815
|
};
|
|
820
816
|
|
|
821
817
|
useEffect(function () {
|
|
818
|
+
// when data is changed, should clear the flattenNodes, avoid duplicate keys
|
|
819
|
+
flattenNodes.current = {};
|
|
822
820
|
flattenTreeData(data, '0');
|
|
823
821
|
}, [data]); // eslint-disable-line react-hooks/exhaustive-deps
|
|
824
822
|
|
|
825
823
|
return {
|
|
826
824
|
forceUpdate: forceUpdate,
|
|
827
|
-
flattenNodes: flattenNodes,
|
|
825
|
+
flattenNodes: flattenNodes.current,
|
|
828
826
|
flattenTreeData: flattenTreeData,
|
|
829
827
|
serializeListOnlyParent: serializeListOnlyParent,
|
|
830
828
|
unSerializeList: unSerializeList,
|
package/package.json
CHANGED
|
@@ -167,15 +167,18 @@
|
|
|
167
167
|
--rs-sidenav-default-selected-text: @H500;
|
|
168
168
|
--rs-sidenav-default-hover-bg: @B700;
|
|
169
169
|
--rs-sidenav-default-hover-text: @B050;
|
|
170
|
+
--rs-sidenav-default-footer-border: @B600;
|
|
170
171
|
--rs-sidenav-inverse-bg: @H700;
|
|
171
172
|
--rs-sidenav-inverse-text: #fff;
|
|
172
173
|
--rs-sidenav-inverse-selected-bg: @H400;
|
|
173
174
|
--rs-sidenav-inverse-hover-bg: @H600;
|
|
175
|
+
--rs-sidenav-inverse-footer-border: @H600;
|
|
174
176
|
--rs-sidenav-subtle-bg: transparent;
|
|
175
177
|
--rs-sidenav-subtle-text: @B200;
|
|
176
178
|
--rs-sidenav-subtle-selected-text: @H500;
|
|
177
179
|
--rs-sidenav-subtle-hover-bg: @B700;
|
|
178
180
|
--rs-sidenav-subtle-hover-text: @B050;
|
|
181
|
+
--rs-sidenav-subtle-footer-border: @B600;
|
|
179
182
|
|
|
180
183
|
// Input
|
|
181
184
|
--rs-input-bg: @B800;
|
|
@@ -175,16 +175,19 @@
|
|
|
175
175
|
--rs-sidenav-default-selected-text: @H500;
|
|
176
176
|
--rs-sidenav-default-hover-bg: transparent;
|
|
177
177
|
--rs-sidenav-default-hover-text: @H500;
|
|
178
|
+
--rs-sidenav-default-footer-border: @B050;
|
|
178
179
|
--rs-sidenav-inverse-bg: @B800;
|
|
179
180
|
--rs-sidenav-inverse-text: @B050;
|
|
180
181
|
--rs-sidenav-inverse-selected-bg: transparent;
|
|
181
182
|
--rs-sidenav-inverse-selected-text: @H500;
|
|
182
183
|
--rs-sidenav-inverse-hover-bg: transparent;
|
|
184
|
+
--rs-sidenav-inverse-footer-border: @B050;
|
|
183
185
|
--rs-sidenav-subtle-bg: @B800;
|
|
184
186
|
--rs-sidenav-subtle-text: @B050;
|
|
185
187
|
--rs-sidenav-subtle-selected-text: @H500;
|
|
186
188
|
--rs-sidenav-subtle-hover-bg: transparent;
|
|
187
189
|
--rs-sidenav-subtle-hover-text: @H500;
|
|
190
|
+
--rs-sidenav-subtle-footer-border: @B050;
|
|
188
191
|
|
|
189
192
|
// Input
|
|
190
193
|
--rs-input-bg: @B800;
|
|
@@ -174,15 +174,18 @@
|
|
|
174
174
|
--rs-sidenav-default-selected-text: @H700;
|
|
175
175
|
--rs-sidenav-default-hover-bg: @B200;
|
|
176
176
|
--rs-sidenav-default-hover-text: @B800;
|
|
177
|
+
--rs-sidenav-default-footer-border: @B200;
|
|
177
178
|
--rs-sidenav-inverse-bg: @H500;
|
|
178
179
|
--rs-sidenav-inverse-text: #fff;
|
|
179
180
|
--rs-sidenav-inverse-selected-bg: @H700;
|
|
180
181
|
--rs-sidenav-inverse-hover-bg: @H600;
|
|
182
|
+
--rs-sidenav-inverse-footer-border: @H600;
|
|
181
183
|
--rs-sidenav-subtle-bg: #fff;
|
|
182
184
|
--rs-sidenav-subtle-text: @B600;
|
|
183
185
|
--rs-sidenav-subtle-selected-text: @H700;
|
|
184
186
|
--rs-sidenav-subtle-hover-bg: @B050;
|
|
185
187
|
--rs-sidenav-subtle-hover-text: @B800;
|
|
188
|
+
--rs-sidenav-subtle-footer-border: @B200;
|
|
186
189
|
|
|
187
190
|
// Input
|
|
188
191
|
--rs-input-bg: @B000;
|
package/styles/variables.less
CHANGED
|
@@ -400,9 +400,11 @@
|
|
|
400
400
|
@sidenav-padding-horizontal: 20px;
|
|
401
401
|
@sidenav-collapse-in-width: 100%;
|
|
402
402
|
@sidenav-default-width: 56px;
|
|
403
|
+
@sidenav-compact-width: @sidenav-default-width; // TODO Replace sidenav-default-width
|
|
403
404
|
@sidenav-item-height: (@sidenav-padding-vertical * 2 + @line-height-computed);
|
|
404
405
|
@sidenav-menu-max-height: (@sidenav-item-height * 40);
|
|
405
406
|
@sidenav-menu-animation-time: 1.5s;
|
|
407
|
+
@sidenav-footer-height: @sidenav-item-height; // Footer is same height as a sidenav item
|
|
406
408
|
@sidenav-level1-item-font-size: @font-size-large;
|
|
407
409
|
@sidenav-level1-item-line-height: unit((@line-height-computed / @font-size-large));
|
|
408
410
|
@sidenav-icon-spacing: 20px;
|