rsuite 5.8.1 → 5.9.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.
@@ -9,7 +9,7 @@ export interface ButtonProps extends WithAsProps, React.HTMLAttributes<HTMLEleme
9
9
  size?: TypeAttributes.Size;
10
10
  /** A button can have different colors */
11
11
  color?: TypeAttributes.Color;
12
- /** Format button to appear inside a content bloc */
12
+ /** Format button to appear inside a content block */
13
13
  block?: boolean;
14
14
  /** Providing a `href` will render an `<a>` element, _styled_ as a button */
15
15
  href?: string;
@@ -29,10 +29,13 @@ export interface DropdownProps<T = any> extends WithAsProps, Omit<React.HTMLAttr
29
29
  /** No caret variation */
30
30
  noCaret?: boolean;
31
31
  /**
32
- * Open the menu and control it
33
- * @deprecated
32
+ * Controlled open state
34
33
  */
35
34
  open?: boolean;
35
+ /**
36
+ * Whether dropdown is initially open
37
+ */
38
+ defaultOpen?: boolean;
36
39
  /**
37
40
  * @deprecated
38
41
  */
@@ -44,6 +44,8 @@ var Dropdown = /*#__PURE__*/React.forwardRef(function (props, ref) {
44
44
  placement = _rest$placement === void 0 ? 'bottomStart' : _rest$placement,
45
45
  toggleAs = rest.toggleAs,
46
46
  toggleClassName = rest.toggleClassName,
47
+ open = rest.open,
48
+ defaultOpen = rest.defaultOpen,
47
49
  _rest$classPrefix = rest.classPrefix,
48
50
  classPrefix = _rest$classPrefix === void 0 ? 'dropdown' : _rest$classPrefix,
49
51
  className = rest.className,
@@ -51,7 +53,7 @@ var Dropdown = /*#__PURE__*/React.forwardRef(function (props, ref) {
51
53
  children = rest.children,
52
54
  menuStyle = rest.menuStyle,
53
55
  style = rest.style,
54
- toggleProps = _objectWithoutPropertiesLoose(rest, ["as", "title", "onClose", "onOpen", "onToggle", "eventKey", "trigger", "placement", "toggleAs", "toggleClassName", "classPrefix", "className", "disabled", "children", "menuStyle", "style"]);
56
+ toggleProps = _objectWithoutPropertiesLoose(rest, ["as", "title", "onClose", "onOpen", "onToggle", "eventKey", "trigger", "placement", "toggleAs", "toggleClassName", "open", "defaultOpen", "classPrefix", "className", "disabled", "children", "menuStyle", "style"]);
55
57
 
56
58
  var _useContext = useContext(NavContext),
57
59
  onSelectFromNav = _useContext.onSelect;
@@ -192,6 +194,8 @@ var Dropdown = /*#__PURE__*/React.forwardRef(function (props, ref) {
192
194
  return /*#__PURE__*/React.createElement(DropdownContext.Provider, {
193
195
  value: dropdownContextValue
194
196
  }, /*#__PURE__*/React.createElement(Menu, {
197
+ open: open,
198
+ defaultOpen: defaultOpen,
195
199
  menuButtonText: title,
196
200
  renderMenuButton: renderMenuButton,
197
201
  openMenuOn: menuButtonTriggers,
@@ -2,12 +2,20 @@ import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import { MenuContextProps } from './MenuContext';
4
4
  export interface MenuProps {
5
+ /**
6
+ * Whether dropdown is initially open
7
+ */
8
+ defaultOpen?: boolean;
9
+ /**
10
+ * Controlled open state
11
+ */
12
+ open?: boolean;
5
13
  disabled?: boolean;
6
14
  children: (props: React.HTMLAttributes<HTMLDivElement> & MenuRenderProps, ref: React.Ref<HTMLDivElement>) => React.ReactElement<React.HTMLAttributes<HTMLDivElement>>;
7
15
  menuButtonText?: React.ReactNode;
8
16
  renderMenuButton?: (props: React.ButtonHTMLAttributes<HTMLButtonElement> & MenuButtonRenderProps, ref: React.Ref<HTMLButtonElement>) => React.ReactElement<React.ButtonHTMLAttributes<HTMLButtonElement>>;
9
17
  renderMenuPopup?: (props: React.HTMLAttributes<HTMLUListElement> & MenuPopupRenderProps, ref: React.Ref<HTMLUListElement>) => React.ReactElement<React.HTMLAttributes<HTMLUListElement>>;
10
- openMenuOn?: MenuButtonTrigger[];
18
+ openMenuOn?: readonly MenuButtonTrigger[];
11
19
  onToggleMenu?: (open: boolean, event: React.SyntheticEvent) => void;
12
20
  }
13
21
  export declare type MenuButtonTrigger = 'mouseover' | 'click' | 'contextmenu';
@@ -26,7 +34,7 @@ export interface MenuHandle {
26
34
  /**
27
35
  * Headless ARIA `menu`
28
36
  */
29
- declare function Menu(props: MenuProps & React.HTMLAttributes<HTMLUListElement>): React.ReactElement<React.HTMLAttributes<HTMLDivElement>, string | React.JSXElementConstructor<any>>;
37
+ declare function Menu({ disabled, children, openMenuOn, defaultOpen, open: openProp, menuButtonText, renderMenuButton, renderMenuPopup, onToggleMenu }: MenuProps & React.HTMLAttributes<HTMLUListElement>): React.ReactElement<React.HTMLAttributes<HTMLDivElement>, string | React.JSXElementConstructor<any>>;
30
38
  declare namespace Menu {
31
39
  var displayName: string;
32
40
  var propTypes: {
package/esm/Menu/Menu.js CHANGED
@@ -15,27 +15,34 @@ var defaultOpenMenuOn = ['click'];
15
15
  * Headless ARIA `menu`
16
16
  */
17
17
 
18
- function Menu(props) {
18
+ function Menu(_ref) {
19
19
  var _items$activeItemInde;
20
20
 
21
- var disabled = props.disabled,
22
- children = props.children,
23
- _props$openMenuOn = props.openMenuOn,
24
- openMenuOn = _props$openMenuOn === void 0 ? defaultOpenMenuOn : _props$openMenuOn,
25
- menuButtonText = props.menuButtonText,
26
- renderMenuButton = props.renderMenuButton,
27
- renderMenuPopup = props.renderMenuPopup,
28
- onToggleMenu = props.onToggleMenu;
21
+ var disabled = _ref.disabled,
22
+ children = _ref.children,
23
+ _ref$openMenuOn = _ref.openMenuOn,
24
+ openMenuOn = _ref$openMenuOn === void 0 ? defaultOpenMenuOn : _ref$openMenuOn,
25
+ _ref$defaultOpen = _ref.defaultOpen,
26
+ defaultOpen = _ref$defaultOpen === void 0 ? false : _ref$defaultOpen,
27
+ openProp = _ref.open,
28
+ menuButtonText = _ref.menuButtonText,
29
+ renderMenuButton = _ref.renderMenuButton,
30
+ renderMenuPopup = _ref.renderMenuPopup,
31
+ onToggleMenu = _ref.onToggleMenu;
29
32
  var buttonElementRef = useRef(null);
30
33
  var menuElementRef = useRef(null);
31
34
  var parentMenu = useContext(MenuContext);
32
35
  var isSubmenu = !!parentMenu;
33
- var menu = useMenu();
36
+ var menu = useMenu({
37
+ open: defaultOpen
38
+ });
34
39
  var _menu$ = menu[0],
35
- open = _menu$.open,
40
+ openState = _menu$.open,
36
41
  items = _menu$.items,
37
42
  activeItemIndex = _menu$.activeItemIndex,
38
43
  dispatch = menu[1];
44
+ var openControlled = typeof openProp !== 'undefined';
45
+ var open = openControlled ? openProp : openState;
39
46
 
40
47
  var _useCustom = useCustom('Menu'),
41
48
  rtl = _useCustom.rtl;
@@ -6,9 +6,10 @@ import ModalHeader from './ModalHeader';
6
6
  import ModalTitle from './ModalTitle';
7
7
  import ModalFooter from './ModalFooter';
8
8
  import { TypeAttributes, RsRefForwardingComponent } from '../@types/common';
9
+ export declare type ModalSize = TypeAttributes.Size | 'full';
9
10
  export interface ModalProps extends BaseModalProps, Pick<React.HTMLAttributes<HTMLElement>, 'role' | 'id' | 'aria-labelledby' | 'aria-describedby'> {
10
11
  /** A modal can have different sizes */
11
- size?: TypeAttributes.Size;
12
+ size?: ModalSize;
12
13
  /** Set the duration of the animation */
13
14
  animationTimeout?: number;
14
15
  /** Set an animation effect for Modal, the default is Bounce. */
@@ -17,7 +18,10 @@ export interface ModalProps extends BaseModalProps, Pick<React.HTMLAttributes<HT
17
18
  dialogClassName?: string;
18
19
  /** CSS style applied to dialog DOM nodes */
19
20
  dialogStyle?: React.CSSProperties;
20
- /** Full screen */
21
+ /**
22
+ * Full screen
23
+ * @deprecated Use size="full" instead.
24
+ */
21
25
  full?: boolean;
22
26
  /** You can use a custom element type for Dialog */
23
27
  dialogAs?: React.ElementType;
@@ -11,7 +11,7 @@ import on from 'dom-lib/on';
11
11
  import getAnimationEnd from 'dom-lib/getAnimationEnd';
12
12
  import BaseModal, { modalPropTypes } from '../Overlay/Modal';
13
13
  import Bounce from '../Animation/Bounce';
14
- import { useClassNames, mergeRefs, SIZE, useWillUnmount } from '../utils';
14
+ import { useClassNames, mergeRefs, useWillUnmount } from '../utils';
15
15
  import ModalDialog, { modalDialogPropTypes } from './ModalDialog';
16
16
  import { ModalContext } from './ModalContext';
17
17
  import ModalBody from './ModalBody';
@@ -20,6 +20,8 @@ import ModalTitle from './ModalTitle';
20
20
  import ModalFooter from './ModalFooter';
21
21
  import { useBodyStyles } from './utils';
22
22
  import useUniqueId from '../utils/useUniqueId';
23
+ import deprecatePropType from '../utils/deprecatePropType';
24
+ var modalSizes = ['xs', 'sm', 'md', 'lg', 'full'];
23
25
  var Modal = /*#__PURE__*/React.forwardRef(function (props, ref) {
24
26
  var className = props.className,
25
27
  children = props.children,
@@ -193,10 +195,10 @@ Modal.propTypes = _extends({}, modalPropTypes, {
193
195
  animationTimeout: PropTypes.number,
194
196
  classPrefix: PropTypes.string,
195
197
  dialogClassName: PropTypes.string,
196
- size: PropTypes.oneOf(SIZE),
198
+ size: PropTypes.oneOf(modalSizes),
197
199
  dialogStyle: PropTypes.object,
198
200
  dialogAs: PropTypes.elementType,
199
- full: PropTypes.bool,
201
+ full: deprecatePropType(PropTypes.bool, 'Use size="full" instead.'),
200
202
  overflow: PropTypes.bool,
201
203
  drawer: PropTypes.bool
202
204
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rsuite",
3
- "version": "5.8.1",
3
+ "version": "5.9.0",
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.3.6",
40
+ "rsuite-table": "^5.5.0",
41
41
  "schema-typed": "^2.0.2"
42
42
  },
43
43
  "peerDependencies": {