rsuite 5.18.1 → 5.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,16 @@
1
+ # [5.19.0](https://github.com/rsuite/rsuite/compare/v5.18.1...v5.19.0) (2022-09-23)
2
+
3
+ ### Bug Fixes
4
+
5
+ - **CheckPicker,SelectPicker:** fix inconsistent label spacing ([#2739](https://github.com/rsuite/rsuite/issues/2739)) ([2441d7e](https://github.com/rsuite/rsuite/commit/2441d7efa20e92f11b3266ca2434a9529b31ecb4))
6
+ - **Dropdown:** fix `disabled` not working when trigger is set to hover or contextMenu ([#2740](https://github.com/rsuite/rsuite/issues/2740)) ([147821c](https://github.com/rsuite/rsuite/commit/147821c54ef7814820a91edb79e0923c99ab6d0b))
7
+ - **Sidenav:** fix tooltip blocking menu items ([#2747](https://github.com/rsuite/rsuite/issues/2747)) ([d3568e1](https://github.com/rsuite/rsuite/commit/d3568e18fc5951340951a49c2ac121a786763dd9))
8
+ - **Stack:** filter children that should not be rendered ([#2732](https://github.com/rsuite/rsuite/issues/2732)) ([23c283f](https://github.com/rsuite/rsuite/commit/23c283f26da8ed9db4f4975c79b7cfe916f82903))
9
+
10
+ ### Features
11
+
12
+ - **Stack:** add `Item` to adjust single child ([#2730](https://github.com/rsuite/rsuite/issues/2730)) ([5af6256](https://github.com/rsuite/rsuite/commit/5af625690be33c54def844db3bcf6aa47cc72eed))
13
+
1
14
  ## [5.18.1](https://github.com/rsuite/rsuite/compare/v5.18.0...v5.18.1) (2022-09-15)
2
15
 
3
16
  ### Bug Fixes
@@ -215,6 +215,11 @@
215
215
 
216
216
  &-label {
217
217
  color: var(--rs-text-primary);
218
+
219
+ &::after {
220
+ content: ':';
221
+ margin: 0 4px 0 2px;
222
+ }
218
223
  }
219
224
 
220
225
  &-value {
@@ -147,6 +147,7 @@ var Dropdown = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
147
147
  defaultOpen: defaultOpen,
148
148
  menuButtonText: title,
149
149
  renderMenuButton: renderMenuButton,
150
+ disabled: disabled,
150
151
  openMenuOn: menuButtonTriggers,
151
152
  renderMenuPopup: function renderMenuPopup(_ref, popupRef) {
152
153
  var open = _ref.open,
@@ -221,7 +221,7 @@ var PickerToggle = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
221
221
  "aria-placeholder": typeof children === 'string' ? children : undefined
222
222
  }, label && /*#__PURE__*/_react.default.createElement("span", {
223
223
  className: prefix('label')
224
- }, label, ": "), children) : null, showCleanButton && /*#__PURE__*/_react.default.createElement(_CloseButton.default, {
224
+ }, label), children) : null, showCleanButton && /*#__PURE__*/_react.default.createElement(_CloseButton.default, {
225
225
  className: prefix(_templateObject || (_templateObject = (0, _taggedTemplateLiteralLoose2.default)(["clean"]))),
226
226
  tabIndex: -1,
227
227
  locale: {
@@ -74,8 +74,14 @@ var SidenavItem = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
74
74
  prefix = _useClassNames.prefix;
75
75
 
76
76
  var selected = activeProp !== null && activeProp !== void 0 ? activeProp : !(0, _isNil.default)(eventKey) && (0, _utils.shallowEqual)(activeKey, eventKey);
77
+
78
+ var whisperRef = _react.default.useRef(null);
79
+
77
80
  var handleClick = (0, _react.useCallback)(function (event) {
81
+ var _whisperRef$current;
82
+
78
83
  if (disabled) return;
84
+ (_whisperRef$current = whisperRef.current) === null || _whisperRef$current === void 0 ? void 0 : _whisperRef$current.close();
79
85
  onSelect === null || onSelect === void 0 ? void 0 : onSelect(eventKey, event);
80
86
  onSelectFromNav === null || onSelectFromNav === void 0 ? void 0 : onSelectFromNav(eventKey, event);
81
87
  onClick === null || onClick === void 0 ? void 0 : onClick(event);
@@ -85,7 +91,8 @@ var SidenavItem = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
85
91
  return /*#__PURE__*/_react.default.createElement(_Whisper.default, {
86
92
  trigger: "hover",
87
93
  speaker: /*#__PURE__*/_react.default.createElement(_Tooltip.default, null, tooltip),
88
- placement: "right"
94
+ placement: "right",
95
+ ref: whisperRef
89
96
  }, function (triggerProps, triggerRef) {
90
97
  return /*#__PURE__*/_react.default.createElement(_MenuItem.default, {
91
98
  selected: selected,
@@ -1,5 +1,6 @@
1
1
  import React from 'react';
2
- import { WithAsProps } from '../@types/common';
2
+ import { RsRefForwardingComponent, WithAsProps } from '../@types/common';
3
+ import StackItem from './StackItem';
3
4
  export interface StackProps extends WithAsProps {
4
5
  /**
5
6
  * The direction of the children in the stack.
@@ -22,5 +23,8 @@ export interface StackProps extends WithAsProps {
22
23
  */
23
24
  wrap?: boolean;
24
25
  }
25
- declare const Stack: React.ForwardRefExoticComponent<StackProps & React.RefAttributes<HTMLDivElement>>;
26
+ export interface StackComponent extends RsRefForwardingComponent<'div', StackProps> {
27
+ Item: typeof StackItem;
28
+ }
29
+ declare const Stack: StackComponent;
26
30
  export default Stack;
@@ -15,6 +15,8 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
15
15
 
16
16
  var _utils = require("../utils");
17
17
 
18
+ var _StackItem = _interopRequireDefault(require("./StackItem"));
19
+
18
20
  var Stack = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
19
21
  var _itemStyles;
20
22
 
@@ -44,9 +46,6 @@ var Stack = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
44
46
 
45
47
  var classes = merge(className, withClassPrefix());
46
48
  var isSupportGridGap = (0, _utils.isSupportFlexGap)();
47
-
48
- var count = _react.default.Children.count(children);
49
-
50
49
  var gridGap = Array.isArray(spacing) ? spacing : [spacing, 0];
51
50
  var itemStyles = (_itemStyles = {}, _itemStyles[rtl ? 'marginLeft' : 'marginRight'] = gridGap[0], _itemStyles.marginBottom = gridGap[1], _itemStyles);
52
51
  var styles = (0, _extends2.default)({
@@ -56,20 +55,31 @@ var Stack = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
56
55
  flexWrap: wrap ? 'wrap' : undefined,
57
56
  gap: isSupportGridGap ? spacing : undefined
58
57
  }, style);
58
+ /*
59
+ * toArray remove undefined, null and boolean
60
+ */
61
+
62
+ var filterChildren = _react.default.Children.toArray(children);
63
+
64
+ var count = filterChildren.length;
59
65
  return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({}, rest, {
60
66
  ref: ref,
61
67
  className: classes,
62
68
  style: styles
63
- }), _react.default.Children.map(children, function (child, index) {
64
- var childNode = /*#__PURE__*/_react.default.createElement("div", {
69
+ }), _react.default.Children.map(filterChildren, function (child, index) {
70
+ var childNode = child.type !== _StackItem.default ? /*#__PURE__*/_react.default.createElement(_StackItem.default, {
71
+ key: index,
65
72
  className: prefix('item'),
66
73
  style: !isSupportGridGap ? itemStyles : undefined
67
- }, child);
68
-
74
+ }, child) : /*#__PURE__*/_react.default.cloneElement(child, {
75
+ className: merge(prefix('item'), child.props.className),
76
+ style: !isSupportGridGap ? (0, _extends2.default)({}, itemStyles, child.props.style) : child.props.style
77
+ });
69
78
  return [childNode, index < count - 1 ? divider : null];
70
79
  }));
71
80
  });
72
81
 
82
+ Stack.Item = _StackItem.default;
73
83
  Stack.displayName = 'Stack';
74
84
  Stack.propTypes = {
75
85
  className: _propTypes.default.string,
@@ -0,0 +1,26 @@
1
+ import React from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import { WithAsProps } from '../@types/common';
4
+ export interface StackItemProps extends WithAsProps {
5
+ alignSelf?: 'flex-start' | 'flex-end' | 'center' | 'baseline' | 'stretch';
6
+ flex?: React.CSSProperties['flex'];
7
+ grow?: React.CSSProperties['flexGrow'];
8
+ shrink?: React.CSSProperties['flexShrink'];
9
+ basis?: React.CSSProperties['flexBasis'];
10
+ order?: React.CSSProperties['order'];
11
+ }
12
+ declare function StackItem(props: StackItemProps): JSX.Element;
13
+ declare namespace StackItem {
14
+ var displayName: string;
15
+ var propTypes: {
16
+ className: PropTypes.Requireable<string>;
17
+ children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
18
+ alignSelf: PropTypes.Requireable<string>;
19
+ flex: PropTypes.Requireable<string | number>;
20
+ grow: PropTypes.Requireable<number>;
21
+ shrink: PropTypes.Requireable<number>;
22
+ order: PropTypes.Requireable<number>;
23
+ basis: PropTypes.Requireable<string>;
24
+ };
25
+ }
26
+ export default StackItem;
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ exports.__esModule = true;
6
+ exports.default = StackItem;
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
+ function StackItem(props) {
17
+ var _props$as = props.as,
18
+ Component = _props$as === void 0 ? 'div' : _props$as,
19
+ style = props.style,
20
+ className = props.className,
21
+ alignSelf = props.alignSelf,
22
+ flex = props.flex,
23
+ grow = props.grow,
24
+ shrink = props.shrink,
25
+ order = props.order,
26
+ basis = props.basis,
27
+ rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "style", "className", "alignSelf", "flex", "grow", "shrink", "order", "basis"]);
28
+ return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({
29
+ className: className,
30
+ style: (0, _extends2.default)({
31
+ alignSelf: alignSelf,
32
+ order: order
33
+ }, flex ? {
34
+ flex: flex
35
+ } : {
36
+ flexGrow: grow,
37
+ flexShrink: shrink,
38
+ flexBasis: basis
39
+ }, style)
40
+ }, rest));
41
+ }
42
+
43
+ StackItem.displayName = 'StackItem';
44
+ StackItem.propTypes = {
45
+ className: _propTypes.default.string,
46
+ children: _propTypes.default.node,
47
+ alignSelf: _propTypes.default.oneOf(['flex-start', 'flex-end', 'center', 'baseline', 'stretch']),
48
+ flex: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]),
49
+ grow: _propTypes.default.number,
50
+ shrink: _propTypes.default.number,
51
+ order: _propTypes.default.number,
52
+ basis: _propTypes.default.string
53
+ };
@@ -11604,6 +11604,10 @@ textarea.rs-picker-search-input {
11604
11604
  color: #575757;
11605
11605
  color: var(--rs-text-primary);
11606
11606
  }
11607
+ .rs-picker-toggle-label::after {
11608
+ content: ':';
11609
+ margin: 0 2px 0 4px;
11610
+ }
11607
11611
  .rs-picker-toggle-value {
11608
11612
  display: block;
11609
11613
  overflow: hidden;