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 CHANGED
@@ -1,3 +1,17 @@
1
+ ## [5.13.1](https://github.com/rsuite/rsuite/compare/v5.13.0...v5.13.1) (2022-05-27)
2
+
3
+ ### Bug Fixes
4
+
5
+ - **CheckTreePicker:** fix duplicated key when data changed ([#2486](https://github.com/rsuite/rsuite/issues/2486)) ([#2500](https://github.com/rsuite/rsuite/issues/2500)) ([d155719](https://github.com/rsuite/rsuite/commit/d155719a9ae9d9cec119a0c33281c628379b4a78))
6
+ - **Sidenav:** correct Sidenav.Toggle styles ([#2497](https://github.com/rsuite/rsuite/issues/2497)) ([b3168e4](https://github.com/rsuite/rsuite/commit/b3168e426c3a2caad1689e9e9d3babf1d76022b8))
7
+ - **Sidenav:** correct subtle Sidenav item hover styles ([#2498](https://github.com/rsuite/rsuite/issues/2498)) ([2d853ee](https://github.com/rsuite/rsuite/commit/2d853ee8419a3283683bbf897442b9bc789b5a2a))
8
+ - **Sidenav:** fix Sidenav.Toggle icon direction ([#2495](https://github.com/rsuite/rsuite/issues/2495)) ([c490632](https://github.com/rsuite/rsuite/commit/c490632cc613807ff27124140b4250fc132aa8b2))
9
+ - **Whisper:** correct type declarations for ref ([856877a](https://github.com/rsuite/rsuite/commit/856877aec5a20710b94f6ddf241be76ecd34c88d))
10
+
11
+ ### Features
12
+
13
+ - export WhisperInstance ([1c4eb5f](https://github.com/rsuite/rsuite/commit/1c4eb5ffbb6b5e69987436c03cc133f39c245866))
14
+
1
15
  # [5.13.0](https://github.com/rsuite/rsuite/compare/v5.12.0...v5.13.0) (2022-05-19)
2
16
 
3
17
  ### Bug Fixes
@@ -12,6 +12,8 @@
12
12
  .rs-sidenav {
13
13
  transition: width @sidenav-collapse-transition-config;
14
14
  width: @sidenav-default-width;
15
+ display: flex;
16
+ flex-direction: column;
15
17
  }
16
18
 
17
19
  .rs-sidenav-nav {
@@ -185,6 +187,22 @@
185
187
  }
186
188
  }
187
189
 
190
+ // TODO Consider rename as sidenav-footer
191
+ .rs-sidenav-toggle {
192
+ height: @sidenav-footer-height;
193
+ border-top: 1px solid;
194
+ margin-top: auto;
195
+
196
+ &-button {
197
+ float: right;
198
+ width: @sidenav-compact-width;
199
+ height: 100%;
200
+ border: none;
201
+ border-radius: 0;
202
+ color: inherit;
203
+ }
204
+ }
205
+
188
206
  // Expanded styles
189
207
  .rs-sidenav-collapse-in {
190
208
  width: @sidenav-collapse-in-width;
@@ -414,12 +432,14 @@
414
432
  color: var(--rs-sidenav-default-text);
415
433
 
416
434
  .rs-sidenav-item,
417
- .rs-dropdown-toggle {
435
+ .rs-dropdown-toggle,
436
+ .rs-sidenav-toggle-button {
418
437
  background-color: var(--rs-sidenav-default-bg);
419
438
  }
420
439
 
421
440
  .rs-sidenav-item:hover,
422
441
  .rs-dropdown .rs-dropdown-toggle:hover,
442
+ .rs-sidenav-toggle-button:hover,
423
443
  .rs-dropdown.rs-dropdown-open .rs-dropdown-toggle {
424
444
  background-color: var(--rs-sidenav-default-hover-bg);
425
445
  color: var(--rs-sidenav-default-hover-text);
@@ -431,6 +451,10 @@
431
451
  color: var(--rs-sidenav-default-selected-text);
432
452
  }
433
453
 
454
+ .rs-sidenav-toggle {
455
+ border-top-color: var(--rs-sidenav-default-footer-border);
456
+ }
457
+
434
458
  // Collapsed
435
459
  &.rs-sidenav-collapse-out {
436
460
  .rs-dropdown-item.rs-dropdown-item-active {
@@ -480,6 +504,7 @@
480
504
 
481
505
  .rs-sidenav-item,
482
506
  .rs-dropdown .rs-dropdown-toggle,
507
+ .rs-sidenav-toggle-button,
483
508
  .rs-dropdown-item-submenu:hover > .rs-dropdown-item-toggle {
484
509
  background-color: var(--rs-sidenav-inverse-bg);
485
510
 
@@ -491,7 +516,8 @@
491
516
 
492
517
  .rs-dropdown-item,
493
518
  .rs-dropdown-item > .rs-dropdown-menu-toggle,
494
- .rs-dropdown-item > .rs-dropdown-item-toggle {
519
+ .rs-dropdown-item > .rs-dropdown-item-toggle,
520
+ .rs-sidenav-toggle-button {
495
521
  color: var(--rs-sidenav-inverse-text);
496
522
 
497
523
  &:hover,
@@ -527,6 +553,10 @@
527
553
  .rs-dropdown-item.rs-dropdown-item-active {
528
554
  background-color: var(--rs-sidenav-inverse-selected-bg);
529
555
  }
556
+
557
+ .rs-sidenav-toggle {
558
+ border-top-color: var(--rs-sidenav-inverse-footer-border);
559
+ }
530
560
  }
531
561
 
532
562
  // Subtle Sidenav
@@ -535,12 +565,14 @@
535
565
  color: var(--rs-sidenav-subtle-text);
536
566
 
537
567
  .rs-sidenav-item,
538
- .rs-dropdown .rs-dropdown-toggle {
568
+ .rs-dropdown .rs-dropdown-toggle,
569
+ .rs-dropdown .rs-dropdown-item:not(.rs-dropdown-item-submenu),
570
+ .rs-sidenav-toggle-button {
539
571
  background-color: transparent;
540
572
 
541
573
  &:hover,
542
574
  &:focus {
543
- background-color: transparent;
575
+ background-color: var(--rs-sidenav-subtle-hover-bg);
544
576
  color: var(--rs-sidenav-subtle-hover-text);
545
577
  }
546
578
  }
@@ -560,6 +592,10 @@
560
592
  background-color: var(--rs-sidenav-subtle-hover-bg);
561
593
  }
562
594
  }
595
+
596
+ .rs-sidenav-toggle {
597
+ border-top-color: var(--rs-sidenav-subtle-footer-border);
598
+ }
563
599
  }
564
600
 
565
601
  .rs-sidenav-subtle.rs-sidenav-collapse-in,
@@ -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<unknown>>;
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
- /** Expand then nav */
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,5 +1,7 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
4
+
3
5
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
6
 
5
7
  exports.__esModule = true;
@@ -9,7 +11,7 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
9
11
 
10
12
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
11
13
 
12
- var _react = _interopRequireDefault(require("react"));
14
+ var _react = _interopRequireWildcard(require("react"));
13
15
 
14
16
  var _propTypes = _interopRequireDefault(require("prop-types"));
15
17
 
@@ -21,24 +23,37 @@ var _AngleLeft = _interopRequireDefault(require("@rsuite/icons/legacy/AngleLeft"
21
23
 
22
24
  var _AngleRight = _interopRequireDefault(require("@rsuite/icons/legacy/AngleRight"));
23
25
 
26
+ var _deprecatePropType = _interopRequireDefault(require("../utils/deprecatePropType"));
27
+
28
+ var _Sidenav = require("./Sidenav");
29
+
24
30
  var SidenavToggle = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
31
+ var sidenav = (0, _react.useContext)(_Sidenav.SidenavContext);
32
+
33
+ if (!sidenav) {
34
+ throw new Error('<Sidenav.Toggle> must be rendered within a <Sidenav>');
35
+ }
36
+
25
37
  var _props$as = props.as,
26
38
  Component = _props$as === void 0 ? 'div' : _props$as,
27
- expanded = props.expanded,
39
+ DEPRECATED_expanded = props.expanded,
28
40
  className = props.className,
29
41
  _props$classPrefix = props.classPrefix,
30
42
  classPrefix = _props$classPrefix === void 0 ? 'sidenav-toggle' : _props$classPrefix,
31
43
  onToggle = props.onToggle,
32
- rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "expanded", "className", "classPrefix", "onToggle"]);
44
+ rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "expanded", "className", "classPrefix", "onToggle"]); // if `expanded` prop is provided, it takes priority
45
+
46
+ var expanded = DEPRECATED_expanded !== null && DEPRECATED_expanded !== void 0 ? DEPRECATED_expanded : sidenav.expanded;
33
47
 
34
48
  var _useClassNames = (0, _utils.useClassNames)(classPrefix),
35
49
  merge = _useClassNames.merge,
36
- withClassPrefix = _useClassNames.withClassPrefix;
50
+ withClassPrefix = _useClassNames.withClassPrefix,
51
+ prefix = _useClassNames.prefix;
37
52
 
38
53
  var classes = merge(className, withClassPrefix({
39
54
  collapsed: !expanded
40
55
  }));
41
- var Icon = expanded ? _AngleRight.default : _AngleLeft.default;
56
+ var Icon = expanded ? _AngleLeft.default : _AngleRight.default;
42
57
 
43
58
  var handleToggle = function handleToggle(event) {
44
59
  onToggle === null || onToggle === void 0 ? void 0 : onToggle(!expanded, event);
@@ -48,17 +63,18 @@ var SidenavToggle = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
48
63
  ref: ref,
49
64
  className: classes
50
65
  }), /*#__PURE__*/_react.default.createElement(_IconButton.default, {
51
- appearance: "default",
52
66
  icon: /*#__PURE__*/_react.default.createElement(Icon, null),
53
- onClick: handleToggle
67
+ className: prefix('button'),
68
+ onClick: handleToggle,
69
+ "aria-label": expanded ? 'Collapse' : 'Expand'
54
70
  }));
55
71
  });
56
72
 
57
- SidenavToggle.displayName = 'SidenavToggle';
73
+ SidenavToggle.displayName = 'Sidenav.Toggle';
58
74
  SidenavToggle.propTypes = {
59
75
  classPrefix: _propTypes.default.string,
60
76
  className: _propTypes.default.string,
61
- expanded: _propTypes.default.bool,
77
+ expanded: (0, _deprecatePropType.default)(_propTypes.default.bool, 'Use <Sidenav expanded> instead.'),
62
78
  onToggle: _propTypes.default.func
63
79
  };
64
80
  var _default = SidenavToggle;
@@ -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 interface WhisperInstance extends React.Component<WhisperProps> {
5
- open: (delay?: number) => void;
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,23 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _react = _interopRequireDefault(require("react"));
6
+
7
+ var _Whisper = _interopRequireDefault(require("../Whisper"));
8
+
9
+ var _whisperRef$current, _whisperRef$current2, _whisperRef$current3, _whisperRef$current4, _whisperRef$current5;
10
+
11
+ var whisperRef = /*#__PURE__*/_react.default.createRef();
12
+
13
+ /*#__PURE__*/
14
+ _react.default.createElement(_Whisper.default, {
15
+ ref: whisperRef,
16
+ speaker: /*#__PURE__*/_react.default.createElement("div", null)
17
+ }, /*#__PURE__*/_react.default.createElement("div", null));
18
+
19
+ (_whisperRef$current = whisperRef.current) === null || _whisperRef$current === void 0 ? void 0 : _whisperRef$current.open();
20
+ (_whisperRef$current2 = whisperRef.current) === null || _whisperRef$current2 === void 0 ? void 0 : _whisperRef$current2.open(300);
21
+ (_whisperRef$current3 = whisperRef.current) === null || _whisperRef$current3 === void 0 ? void 0 : _whisperRef$current3.close();
22
+ (_whisperRef$current4 = whisperRef.current) === null || _whisperRef$current4 === void 0 ? void 0 : _whisperRef$current4.close(300);
23
+ (_whisperRef$current5 = whisperRef.current) === null || _whisperRef$current5 === void 0 ? void 0 : _whisperRef$current5.updatePosition();
package/cjs/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';
@@ -776,11 +776,7 @@ function useFlattenTreeData(_ref8) {
776
776
  var forceUpdate = (0, _react.useCallback)(function () {
777
777
  dispatch(Object.create(null));
778
778
  }, [dispatch]);
779
-
780
- var _useRef = (0, _react.useRef)({}),
781
- _useRef$current = _useRef.current,
782
- flattenNodes = _useRef$current === void 0 ? {} : _useRef$current;
783
-
779
+ var flattenNodes = (0, _react.useRef)({});
784
780
  var flattenTreeData = (0, _react.useCallback)(function (treeData, ref, parent, layer) {
785
781
  if (layer === void 0) {
786
782
  layer = 1;
@@ -795,20 +791,20 @@ function useFlattenTreeData(_ref8) {
795
791
 
796
792
  var refKey = ref + "-" + index;
797
793
  node.refKey = refKey;
798
- flattenNodes[refKey] = (0, _extends3.default)((_extends2 = {
794
+ flattenNodes.current[refKey] = (0, _extends3.default)((_extends2 = {
799
795
  layer: layer
800
796
  }, _extends2[labelKey] = node[labelKey], _extends2[valueKey] = node[valueKey], _extends2.uncheckable = uncheckableItemValues.some(function (value) {
801
797
  return (0, _utils2.shallowEqual)(node[valueKey], value);
802
798
  }), _extends2), node);
803
799
 
804
800
  if (parent) {
805
- flattenNodes[refKey].parent = (0, _omit2.default)(parent, 'parent', 'children');
801
+ flattenNodes.current[refKey].parent = (0, _omit2.default)(parent, 'parent', 'children');
806
802
  }
807
803
 
808
804
  flattenTreeData(node[childrenKey], refKey, node, layer + 1);
809
805
  });
810
- callback === null || callback === void 0 ? void 0 : callback(flattenNodes);
811
- }, [childrenKey, valueKey, labelKey, callback, uncheckableItemValues, flattenNodes]);
806
+ callback === null || callback === void 0 ? void 0 : callback(flattenNodes.current);
807
+ }, [childrenKey, valueKey, labelKey, callback, uncheckableItemValues]);
812
808
  var serializeListOnlyParent = (0, _react.useCallback)(function (nodes, key) {
813
809
  var list = [];
814
810
  Object.keys(nodes).forEach(function (refKey) {
@@ -909,12 +905,14 @@ function useFlattenTreeData(_ref8) {
909
905
  };
910
906
 
911
907
  (0, _react.useEffect)(function () {
908
+ // when data is changed, should clear the flattenNodes, avoid duplicate keys
909
+ flattenNodes.current = {};
912
910
  flattenTreeData(data, '0');
913
911
  }, [data]); // eslint-disable-line react-hooks/exhaustive-deps
914
912
 
915
913
  return {
916
914
  forceUpdate: forceUpdate,
917
- flattenNodes: flattenNodes,
915
+ flattenNodes: flattenNodes.current,
918
916
  flattenTreeData: flattenTreeData,
919
917
  serializeListOnlyParent: serializeListOnlyParent,
920
918
  unSerializeList: unSerializeList,
@@ -231,15 +231,18 @@
231
231
  --rs-sidenav-default-selected-text: #1675e0;
232
232
  --rs-sidenav-default-hover-bg: #e5e5ea;
233
233
  --rs-sidenav-default-hover-text: #575757;
234
+ --rs-sidenav-default-footer-border: #e5e5ea;
234
235
  --rs-sidenav-inverse-bg: #3498ff;
235
236
  --rs-sidenav-inverse-text: #fff;
236
237
  --rs-sidenav-inverse-selected-bg: #1675e0;
237
238
  --rs-sidenav-inverse-hover-bg: #2589f5;
239
+ --rs-sidenav-inverse-footer-border: #2589f5;
238
240
  --rs-sidenav-subtle-bg: #fff;
239
241
  --rs-sidenav-subtle-text: #8e8e93;
240
242
  --rs-sidenav-subtle-selected-text: #1675e0;
241
243
  --rs-sidenav-subtle-hover-bg: #f7f7fa;
242
244
  --rs-sidenav-subtle-hover-text: #575757;
245
+ --rs-sidenav-subtle-footer-border: #e5e5ea;
243
246
  --rs-input-bg: #fff;
244
247
  --rs-input-focus-border: #3498ff;
245
248
  --rs-input-disabled-bg: #f7f7fa;
@@ -550,15 +553,18 @@
550
553
  --rs-sidenav-default-selected-text: #34c3ff;
551
554
  --rs-sidenav-default-hover-bg: #292d33;
552
555
  --rs-sidenav-default-hover-text: #e9ebf0;
556
+ --rs-sidenav-default-footer-border: #3c3f43;
553
557
  --rs-sidenav-inverse-bg: #169de0;
554
558
  --rs-sidenav-inverse-text: #fff;
555
559
  --rs-sidenav-inverse-selected-bg: #59d0ff;
556
560
  --rs-sidenav-inverse-hover-bg: #25b3f5;
561
+ --rs-sidenav-inverse-footer-border: #25b3f5;
557
562
  --rs-sidenav-subtle-bg: transparent;
558
563
  --rs-sidenav-subtle-text: #a4a9b3;
559
564
  --rs-sidenav-subtle-selected-text: #34c3ff;
560
565
  --rs-sidenav-subtle-hover-bg: #292d33;
561
566
  --rs-sidenav-subtle-hover-text: #e9ebf0;
567
+ --rs-sidenav-subtle-footer-border: #3c3f43;
562
568
  --rs-input-bg: #1a1d24;
563
569
  --rs-input-focus-border: #34c3ff;
564
570
  --rs-input-disabled-bg: #292d33;
@@ -875,16 +881,19 @@
875
881
  --rs-sidenav-default-selected-text: #ffff00;
876
882
  --rs-sidenav-default-hover-bg: transparent;
877
883
  --rs-sidenav-default-hover-text: #ffff00;
884
+ --rs-sidenav-default-footer-border: #e9ebf0;
878
885
  --rs-sidenav-inverse-bg: #1a1d24;
879
886
  --rs-sidenav-inverse-text: #e9ebf0;
880
887
  --rs-sidenav-inverse-selected-bg: transparent;
881
888
  --rs-sidenav-inverse-selected-text: #ffff00;
882
889
  --rs-sidenav-inverse-hover-bg: transparent;
890
+ --rs-sidenav-inverse-footer-border: #e9ebf0;
883
891
  --rs-sidenav-subtle-bg: #1a1d24;
884
892
  --rs-sidenav-subtle-text: #e9ebf0;
885
893
  --rs-sidenav-subtle-selected-text: #ffff00;
886
894
  --rs-sidenav-subtle-hover-bg: transparent;
887
895
  --rs-sidenav-subtle-hover-text: #ffff00;
896
+ --rs-sidenav-subtle-footer-border: #e9ebf0;
888
897
  --rs-input-bg: #1a1d24;
889
898
  --rs-input-focus-border: #ffff00;
890
899
  --rs-input-disabled-bg: #292d33;
@@ -12488,6 +12497,13 @@ textarea.rs-picker-menu .rs-picker-search-bar .rs-picker-search-bar-input {
12488
12497
  -webkit-transition: width 0.2s ease-in;
12489
12498
  transition: width 0.2s ease-in;
12490
12499
  width: 56px;
12500
+ display: -webkit-box;
12501
+ display: -ms-flexbox;
12502
+ display: flex;
12503
+ -webkit-box-orient: vertical;
12504
+ -webkit-box-direction: normal;
12505
+ -ms-flex-direction: column;
12506
+ flex-direction: column;
12491
12507
  }
12492
12508
  .rs-sidenav-nav {
12493
12509
  list-style: none;
@@ -12673,6 +12689,19 @@ textarea.rs-picker-menu .rs-picker-search-bar .rs-picker-search-bar-input {
12673
12689
  .rs-theme-high-contrast .rs-sidenav-item.rs-sidenav-item-focus {
12674
12690
  outline-offset: 2px;
12675
12691
  }
12692
+ .rs-sidenav-toggle {
12693
+ height: 50px;
12694
+ border-top: 1px solid;
12695
+ margin-top: auto;
12696
+ }
12697
+ .rs-sidenav-toggle-button {
12698
+ float: left;
12699
+ width: 56px;
12700
+ height: 100%;
12701
+ border: none;
12702
+ border-radius: 0;
12703
+ color: inherit;
12704
+ }
12676
12705
  .rs-sidenav-collapse-in {
12677
12706
  width: 100%;
12678
12707
  }
@@ -12902,12 +12931,14 @@ textarea.rs-picker-menu .rs-picker-search-bar .rs-picker-search-bar-input {
12902
12931
  color: var(--rs-sidenav-default-text);
12903
12932
  }
12904
12933
  .rs-sidenav-default .rs-sidenav-item,
12905
- .rs-sidenav-default .rs-dropdown-toggle {
12934
+ .rs-sidenav-default .rs-dropdown-toggle,
12935
+ .rs-sidenav-default .rs-sidenav-toggle-button {
12906
12936
  background-color: #f7f7fa;
12907
12937
  background-color: var(--rs-sidenav-default-bg);
12908
12938
  }
12909
12939
  .rs-sidenav-default .rs-sidenav-item:hover,
12910
12940
  .rs-sidenav-default .rs-dropdown .rs-dropdown-toggle:hover,
12941
+ .rs-sidenav-default .rs-sidenav-toggle-button:hover,
12911
12942
  .rs-sidenav-default .rs-dropdown.rs-dropdown-open .rs-dropdown-toggle {
12912
12943
  background-color: #e5e5ea;
12913
12944
  background-color: var(--rs-sidenav-default-hover-bg);
@@ -12920,6 +12951,10 @@ textarea.rs-picker-menu .rs-picker-search-bar .rs-picker-search-bar-input {
12920
12951
  color: #1675e0;
12921
12952
  color: var(--rs-sidenav-default-selected-text);
12922
12953
  }
12954
+ .rs-sidenav-default .rs-sidenav-toggle {
12955
+ border-top-color: #e5e5ea;
12956
+ border-top-color: var(--rs-sidenav-default-footer-border);
12957
+ }
12923
12958
  .rs-sidenav-default.rs-sidenav-collapse-out .rs-dropdown-item.rs-dropdown-item-active {
12924
12959
  background-color: rgba(204, 233, 255, 0.5);
12925
12960
  background-color: var(--rs-menuitem-active-bg);
@@ -12982,34 +13017,41 @@ textarea.rs-picker-menu .rs-picker-search-bar .rs-picker-search-bar-input {
12982
13017
  }
12983
13018
  .rs-sidenav-inverse .rs-sidenav-item,
12984
13019
  .rs-sidenav-inverse .rs-dropdown .rs-dropdown-toggle,
13020
+ .rs-sidenav-inverse .rs-sidenav-toggle-button,
12985
13021
  .rs-sidenav-inverse .rs-dropdown-item-submenu:hover > .rs-dropdown-item-toggle {
12986
13022
  background-color: #3498ff;
12987
13023
  background-color: var(--rs-sidenav-inverse-bg);
12988
13024
  }
12989
13025
  .rs-sidenav-inverse .rs-sidenav-item:hover,
12990
13026
  .rs-sidenav-inverse .rs-dropdown .rs-dropdown-toggle:hover,
13027
+ .rs-sidenav-inverse .rs-sidenav-toggle-button:hover,
12991
13028
  .rs-sidenav-inverse .rs-dropdown-item-submenu:hover > .rs-dropdown-item-toggle:hover,
12992
13029
  .rs-sidenav-inverse .rs-sidenav-item:focus,
12993
13030
  .rs-sidenav-inverse .rs-dropdown .rs-dropdown-toggle:focus,
13031
+ .rs-sidenav-inverse .rs-sidenav-toggle-button:focus,
12994
13032
  .rs-sidenav-inverse .rs-dropdown-item-submenu:hover > .rs-dropdown-item-toggle:focus {
12995
13033
  background-color: #2589f5;
12996
13034
  background-color: var(--rs-sidenav-inverse-hover-bg);
12997
13035
  }
12998
13036
  .rs-sidenav-inverse .rs-dropdown-item,
12999
13037
  .rs-sidenav-inverse .rs-dropdown-item > .rs-dropdown-menu-toggle,
13000
- .rs-sidenav-inverse .rs-dropdown-item > .rs-dropdown-item-toggle {
13038
+ .rs-sidenav-inverse .rs-dropdown-item > .rs-dropdown-item-toggle,
13039
+ .rs-sidenav-inverse .rs-sidenav-toggle-button {
13001
13040
  color: #fff;
13002
13041
  color: var(--rs-sidenav-inverse-text);
13003
13042
  }
13004
13043
  .rs-sidenav-inverse .rs-dropdown-item:hover,
13005
13044
  .rs-sidenav-inverse .rs-dropdown-item > .rs-dropdown-menu-toggle:hover,
13006
13045
  .rs-sidenav-inverse .rs-dropdown-item > .rs-dropdown-item-toggle:hover,
13046
+ .rs-sidenav-inverse .rs-sidenav-toggle-button:hover,
13007
13047
  .rs-sidenav-inverse .rs-dropdown-item:focus,
13008
13048
  .rs-sidenav-inverse .rs-dropdown-item > .rs-dropdown-menu-toggle:focus,
13009
13049
  .rs-sidenav-inverse .rs-dropdown-item > .rs-dropdown-item-toggle:focus,
13050
+ .rs-sidenav-inverse .rs-sidenav-toggle-button:focus,
13010
13051
  .rs-sidenav-inverse .rs-dropdown-item.rs-dropdown-item-focus,
13011
13052
  .rs-sidenav-inverse .rs-dropdown-item > .rs-dropdown-menu-toggle.rs-dropdown-item-focus,
13012
- .rs-sidenav-inverse .rs-dropdown-item > .rs-dropdown-item-toggle.rs-dropdown-item-focus {
13053
+ .rs-sidenav-inverse .rs-dropdown-item > .rs-dropdown-item-toggle.rs-dropdown-item-focus,
13054
+ .rs-sidenav-inverse .rs-sidenav-toggle-button.rs-dropdown-item-focus {
13013
13055
  background-color: #2589f5;
13014
13056
  background-color: var(--rs-sidenav-inverse-hover-bg);
13015
13057
  color: #fff;
@@ -13042,20 +13084,31 @@ textarea.rs-picker-menu .rs-picker-search-bar .rs-picker-search-bar-input {
13042
13084
  background-color: #1675e0;
13043
13085
  background-color: var(--rs-sidenav-inverse-selected-bg);
13044
13086
  }
13087
+ .rs-sidenav-inverse .rs-sidenav-toggle {
13088
+ border-top-color: #2589f5;
13089
+ border-top-color: var(--rs-sidenav-inverse-footer-border);
13090
+ }
13045
13091
  .rs-sidenav-subtle {
13046
13092
  background-color: transparent;
13047
13093
  color: #8e8e93;
13048
13094
  color: var(--rs-sidenav-subtle-text);
13049
13095
  }
13050
13096
  .rs-sidenav-subtle .rs-sidenav-item,
13051
- .rs-sidenav-subtle .rs-dropdown .rs-dropdown-toggle {
13097
+ .rs-sidenav-subtle .rs-dropdown .rs-dropdown-toggle,
13098
+ .rs-sidenav-subtle .rs-dropdown .rs-dropdown-item:not(.rs-dropdown-item-submenu),
13099
+ .rs-sidenav-subtle .rs-sidenav-toggle-button {
13052
13100
  background-color: transparent;
13053
13101
  }
13054
13102
  .rs-sidenav-subtle .rs-sidenav-item:hover,
13055
13103
  .rs-sidenav-subtle .rs-dropdown .rs-dropdown-toggle:hover,
13104
+ .rs-sidenav-subtle .rs-dropdown .rs-dropdown-item:not(.rs-dropdown-item-submenu):hover,
13105
+ .rs-sidenav-subtle .rs-sidenav-toggle-button:hover,
13056
13106
  .rs-sidenav-subtle .rs-sidenav-item:focus,
13057
- .rs-sidenav-subtle .rs-dropdown .rs-dropdown-toggle:focus {
13058
- background-color: transparent;
13107
+ .rs-sidenav-subtle .rs-dropdown .rs-dropdown-toggle:focus,
13108
+ .rs-sidenav-subtle .rs-dropdown .rs-dropdown-item:not(.rs-dropdown-item-submenu):focus,
13109
+ .rs-sidenav-subtle .rs-sidenav-toggle-button:focus {
13110
+ background-color: #f7f7fa;
13111
+ background-color: var(--rs-sidenav-subtle-hover-bg);
13059
13112
  color: #575757;
13060
13113
  color: var(--rs-sidenav-subtle-hover-text);
13061
13114
  }
@@ -13073,6 +13126,10 @@ textarea.rs-picker-menu .rs-picker-search-bar .rs-picker-search-bar-input {
13073
13126
  background-color: #f7f7fa;
13074
13127
  background-color: var(--rs-sidenav-subtle-hover-bg);
13075
13128
  }
13129
+ .rs-sidenav-subtle .rs-sidenav-toggle {
13130
+ border-top-color: #e5e5ea;
13131
+ border-top-color: var(--rs-sidenav-subtle-footer-border);
13132
+ }
13076
13133
  .rs-sidenav-subtle.rs-sidenav-collapse-in .rs-dropdown-item > .rs-dropdown-menu-toggle,
13077
13134
  .rs-sidenav-subtle.rs-sidenav-collapsing .rs-dropdown-item > .rs-dropdown-menu-toggle,
13078
13135
  .rs-sidenav-subtle.rs-sidenav-collapse-in .rs-dropdown-item > .rs-dropdown-item-toggle,