rsuite 5.58.1 → 5.59.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.
Files changed (105) hide show
  1. package/Avatar/styles/index.css +74 -3
  2. package/Avatar/styles/index.less +25 -1
  3. package/Avatar/styles/mixin.less +8 -0
  4. package/AvatarGroup/styles/index.css +2 -0
  5. package/AvatarGroup/styles/index.less +2 -0
  6. package/CHANGELOG.md +29 -0
  7. package/CheckPicker/styles/index.css +2 -0
  8. package/CheckTree/styles/index.css +2 -0
  9. package/CheckTreePicker/styles/index.css +2 -0
  10. package/Checkbox/styles/index.css +2 -0
  11. package/Checkbox/styles/index.less +2 -0
  12. package/Drawer/styles/index.css +4 -0
  13. package/Drawer/styles/index.less +5 -0
  14. package/MultiCascadeTree/styles/index.css +2 -0
  15. package/MultiCascader/styles/index.css +2 -0
  16. package/Placeholder/styles/index.css +42 -6
  17. package/Placeholder/styles/index.less +18 -9
  18. package/Placeholder/styles/mixin.less +7 -0
  19. package/Sidenav/styles/index.css +3 -0
  20. package/Sidenav/styles/index.less +4 -0
  21. package/TagInput/styles/index.css +2 -0
  22. package/TagPicker/styles/index.css +2 -0
  23. package/cjs/Avatar/Avatar.d.ts +30 -5
  24. package/cjs/Avatar/Avatar.js +56 -22
  25. package/cjs/Avatar/AvatarIcon.d.ts +3 -0
  26. package/cjs/Avatar/AvatarIcon.js +24 -0
  27. package/cjs/Avatar/useImage.d.ts +39 -0
  28. package/cjs/Avatar/useImage.js +74 -0
  29. package/cjs/AvatarGroup/AvatarGroup.d.ts +15 -6
  30. package/cjs/AvatarGroup/AvatarGroup.js +12 -12
  31. package/cjs/Checkbox/Checkbox.js +1 -1
  32. package/cjs/DateInput/DateField.js +5 -0
  33. package/cjs/Form/Form.js +40 -56
  34. package/cjs/Form/FormContext.d.ts +1 -1
  35. package/cjs/Form/{useFormClassNames.d.ts → hooks/useFormClassNames.d.ts} +2 -2
  36. package/cjs/Form/{useFormClassNames.js → hooks/useFormClassNames.js} +2 -2
  37. package/cjs/Form/hooks/useFormError.d.ts +6 -0
  38. package/cjs/Form/hooks/useFormError.js +31 -0
  39. package/cjs/Form/hooks/useFormValue.d.ts +6 -0
  40. package/cjs/Form/hooks/useFormValue.js +31 -0
  41. package/cjs/Form/index.d.ts +1 -1
  42. package/cjs/Form/index.js +3 -9
  43. package/cjs/FormControl/FormControl.js +1 -1
  44. package/cjs/FormControl/useRegisterModel.d.ts +1 -1
  45. package/cjs/Modal/Modal.js +36 -21
  46. package/cjs/Placeholder/PlaceholderGraph.d.ts +13 -1
  47. package/cjs/Placeholder/PlaceholderGrid.d.ts +27 -1
  48. package/cjs/Placeholder/PlaceholderGrid.js +10 -13
  49. package/cjs/Placeholder/PlaceholderParagraph.d.ts +24 -1
  50. package/cjs/Placeholder/PlaceholderParagraph.js +13 -9
  51. package/cjs/internals/Overlay/Modal.js +2 -1
  52. package/dist/rsuite-no-reset-rtl.css +124 -9
  53. package/dist/rsuite-no-reset-rtl.min.css +1 -1
  54. package/dist/rsuite-no-reset-rtl.min.css.map +1 -1
  55. package/dist/rsuite-no-reset.css +124 -9
  56. package/dist/rsuite-no-reset.min.css +1 -1
  57. package/dist/rsuite-no-reset.min.css.map +1 -1
  58. package/dist/rsuite-rtl.css +124 -9
  59. package/dist/rsuite-rtl.min.css +1 -1
  60. package/dist/rsuite-rtl.min.css.map +1 -1
  61. package/dist/rsuite.css +124 -9
  62. package/dist/rsuite.js +122 -36
  63. package/dist/rsuite.js.map +1 -1
  64. package/dist/rsuite.min.css +1 -1
  65. package/dist/rsuite.min.css.map +1 -1
  66. package/dist/rsuite.min.js +1 -1
  67. package/dist/rsuite.min.js.map +1 -1
  68. package/esm/Avatar/Avatar.d.ts +30 -5
  69. package/esm/Avatar/Avatar.js +58 -24
  70. package/esm/Avatar/AvatarIcon.d.ts +3 -0
  71. package/esm/Avatar/AvatarIcon.js +18 -0
  72. package/esm/Avatar/useImage.d.ts +39 -0
  73. package/esm/Avatar/useImage.js +69 -0
  74. package/esm/AvatarGroup/AvatarGroup.d.ts +15 -6
  75. package/esm/AvatarGroup/AvatarGroup.js +12 -12
  76. package/esm/Checkbox/Checkbox.js +1 -1
  77. package/esm/DateInput/DateField.js +5 -0
  78. package/esm/Form/Form.js +40 -56
  79. package/esm/Form/FormContext.d.ts +1 -1
  80. package/esm/Form/{useFormClassNames.d.ts → hooks/useFormClassNames.d.ts} +2 -2
  81. package/esm/Form/{useFormClassNames.js → hooks/useFormClassNames.js} +2 -2
  82. package/esm/Form/hooks/useFormError.d.ts +6 -0
  83. package/esm/Form/hooks/useFormError.js +26 -0
  84. package/esm/Form/hooks/useFormValue.d.ts +6 -0
  85. package/esm/Form/hooks/useFormValue.js +26 -0
  86. package/esm/Form/index.d.ts +1 -1
  87. package/esm/Form/index.js +1 -1
  88. package/esm/FormControl/FormControl.js +1 -1
  89. package/esm/FormControl/useRegisterModel.d.ts +1 -1
  90. package/esm/Modal/Modal.js +36 -21
  91. package/esm/Placeholder/PlaceholderGraph.d.ts +13 -1
  92. package/esm/Placeholder/PlaceholderGrid.d.ts +27 -1
  93. package/esm/Placeholder/PlaceholderGrid.js +10 -13
  94. package/esm/Placeholder/PlaceholderParagraph.d.ts +24 -1
  95. package/esm/Placeholder/PlaceholderParagraph.js +12 -8
  96. package/esm/internals/Overlay/Modal.js +2 -1
  97. package/package.json +2 -2
  98. package/styles/color-modes/dark.less +2 -0
  99. package/styles/color-modes/high-contrast.less +2 -0
  100. package/styles/color-modes/light.less +2 -0
  101. package/styles/variables.less +12 -20
  102. /package/cjs/Form/{useSchemaModel.d.ts → hooks/useSchemaModel.d.ts} +0 -0
  103. /package/cjs/Form/{useSchemaModel.js → hooks/useSchemaModel.js} +0 -0
  104. /package/esm/Form/{useSchemaModel.d.ts → hooks/useSchemaModel.d.ts} +0 -0
  105. /package/esm/Form/{useSchemaModel.js → hooks/useSchemaModel.js} +0 -0
@@ -0,0 +1,26 @@
1
+ 'use client';
2
+ import { useRef, useCallback } from 'react';
3
+ import omit from 'lodash/omit';
4
+ import { useControlled } from '../../utils';
5
+ export default function useFormError(formError) {
6
+ var _useControlled = useControlled(formError, {}),
7
+ realFormError = _useControlled[0],
8
+ setFormError = _useControlled[1];
9
+ var realFormErrorRef = useRef(realFormError);
10
+ realFormErrorRef.current = realFormError;
11
+ var onRemoveError = useCallback(function (name) {
12
+ /**
13
+ * when this function is called when the children component is unmount,
14
+ * it's an old render frame so use Ref to get future error
15
+ */
16
+ var formError = omit(realFormErrorRef.current, [name]);
17
+ realFormErrorRef.current = formError;
18
+ setFormError(formError);
19
+ return formError;
20
+ }, [setFormError]);
21
+ return {
22
+ formError: realFormError,
23
+ setFormError: setFormError,
24
+ onRemoveError: onRemoveError
25
+ };
26
+ }
@@ -0,0 +1,6 @@
1
+ /// <reference types="lodash" />
2
+ export default function useFormValue(controlledValue: any, formDefaultValue: any): {
3
+ formValue: any;
4
+ setFormValue: (value: any) => void;
5
+ onRemoveValue: (name: string) => import("lodash").Omit<any, string>;
6
+ };
@@ -0,0 +1,26 @@
1
+ 'use client';
2
+ import { useRef, useCallback } from 'react';
3
+ import omit from 'lodash/omit';
4
+ import { useControlled } from '../../utils';
5
+ export default function useFormValue(controlledValue, formDefaultValue) {
6
+ var _useControlled = useControlled(controlledValue, formDefaultValue),
7
+ formValue = _useControlled[0],
8
+ setFormValue = _useControlled[1];
9
+ var realFormValueRef = useRef(formValue);
10
+ realFormValueRef.current = formValue;
11
+ var onRemoveValue = useCallback(function (name) {
12
+ /**
13
+ * when this function is called when the children component is unmount,
14
+ * it's an old render frame so use Ref to get future value
15
+ */
16
+ var formValue = omit(realFormValueRef.current, [name]);
17
+ realFormValueRef.current = formValue;
18
+ setFormValue(formValue);
19
+ return formValue;
20
+ }, [setFormValue]);
21
+ return {
22
+ formValue: formValue,
23
+ setFormValue: setFormValue,
24
+ onRemoveValue: onRemoveValue
25
+ };
26
+ }
@@ -5,5 +5,5 @@ export type { FormErrorMessageProps } from '../FormErrorMessage';
5
5
  export type { FormControlLabelProps } from '../FormControlLabel';
6
6
  export type { FormHelpTextProps } from '../FormHelpText';
7
7
  export type { FormControlProps } from '../FormControl';
8
- export * from './useFormClassNames';
8
+ export { default as useFormClassNames } from './hooks/useFormClassNames';
9
9
  export default Form;
package/esm/Form/index.js CHANGED
@@ -1,4 +1,4 @@
1
1
  'use client';
2
2
  import Form from './Form';
3
- export * from './useFormClassNames';
3
+ export { default as useFormClassNames } from './hooks/useFormClassNames';
4
4
  export default Form;
@@ -180,7 +180,7 @@ var FormControl = /*#__PURE__*/React.forwardRef(function (props, ref) {
180
180
  id: controlId ? controlId + "-error-message" : undefined,
181
181
  role: "alert",
182
182
  "aria-relevant": "all",
183
- show: !!messageNode,
183
+ show: fieldHasError,
184
184
  className: prefix(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["message-wrapper"]))),
185
185
  placement: errorPlacement
186
186
  }, messageNode));
@@ -1,4 +1,4 @@
1
- import type { FieldRuleType } from '../Form/useSchemaModel';
1
+ import type { FieldRuleType } from '../Form/hooks/useSchemaModel';
2
2
  import type { CheckType } from 'schema-typed';
3
3
  declare function useRegisterModel(name: string, pushFieldRule: (n: string, r: FieldRuleType) => void, removeFieldRule: (n: string) => void, rule?: CheckType<unknown, any>): void;
4
4
  export default useRegisterModel;
@@ -2,7 +2,7 @@
2
2
  import _extends from "@babel/runtime/helpers/esm/extends";
3
3
  import _taggedTemplateLiteralLoose from "@babel/runtime/helpers/esm/taggedTemplateLiteralLoose";
4
4
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
5
- var _templateObject, _templateObject2;
5
+ var _templateObject, _templateObject2, _templateObject3;
6
6
  import React, { useRef, useMemo, useState, useCallback, useContext } from 'react';
7
7
  import PropTypes from 'prop-types';
8
8
  import pick from 'lodash/pick';
@@ -27,39 +27,40 @@ var modalSizes = ['xs', 'sm', 'md', 'lg', 'full'];
27
27
  * @see https://rsuitejs.com/components/modal
28
28
  */
29
29
  var Modal = /*#__PURE__*/React.forwardRef(function (props, ref) {
30
- var _prefix;
31
- var className = props.className,
30
+ var _prefix, _merge;
31
+ var _props$animation = props.animation,
32
+ animation = _props$animation === void 0 ? Bounce : _props$animation,
33
+ animationProps = props.animationProps,
34
+ _props$animationTimeo = props.animationTimeout,
35
+ animationTimeout = _props$animationTimeo === void 0 ? 300 : _props$animationTimeo,
36
+ ariaLabelledby = props['aria-labelledby'],
37
+ ariaDescribedby = props['aria-describedby'],
38
+ backdropClassName = props.backdropClassName,
39
+ _props$backdrop = props.backdrop,
40
+ backdrop = _props$backdrop === void 0 ? true : _props$backdrop,
41
+ className = props.className,
32
42
  children = props.children,
33
43
  _props$classPrefix = props.classPrefix,
34
44
  classPrefix = _props$classPrefix === void 0 ? 'modal' : _props$classPrefix,
35
45
  dialogClassName = props.dialogClassName,
36
- backdropClassName = props.backdropClassName,
37
- _props$backdrop = props.backdrop,
38
- backdrop = _props$backdrop === void 0 ? true : _props$backdrop,
39
46
  dialogStyle = props.dialogStyle,
40
- _props$animation = props.animation,
41
- animation = _props$animation === void 0 ? Bounce : _props$animation,
42
- open = props.open,
43
- _props$size = props.size,
44
- size = _props$size === void 0 ? 'sm' : _props$size,
45
- full = props.full,
46
47
  _props$dialogAs = props.dialogAs,
47
48
  Dialog = _props$dialogAs === void 0 ? ModalDialog : _props$dialogAs,
48
- animationProps = props.animationProps,
49
- _props$animationTimeo = props.animationTimeout,
50
- animationTimeout = _props$animationTimeo === void 0 ? 300 : _props$animationTimeo,
49
+ enforceFocusProp = props.enforceFocus,
50
+ full = props.full,
51
51
  _props$overflow = props.overflow,
52
52
  overflow = _props$overflow === void 0 ? true : _props$overflow,
53
+ open = props.open,
53
54
  onClose = props.onClose,
54
55
  onEntered = props.onEntered,
55
56
  onEntering = props.onEntering,
56
57
  onExited = props.onExited,
57
58
  _props$role = props.role,
58
59
  role = _props$role === void 0 ? 'dialog' : _props$role,
60
+ _props$size = props.size,
61
+ size = _props$size === void 0 ? 'sm' : _props$size,
59
62
  idProp = props.id,
60
- ariaLabelledby = props['aria-labelledby'],
61
- ariaDescribedby = props['aria-describedby'],
62
- rest = _objectWithoutPropertiesLoose(props, ["className", "children", "classPrefix", "dialogClassName", "backdropClassName", "backdrop", "dialogStyle", "animation", "open", "size", "full", "dialogAs", "animationProps", "animationTimeout", "overflow", "onClose", "onEntered", "onEntering", "onExited", "role", "id", "aria-labelledby", "aria-describedby"]);
63
+ rest = _objectWithoutPropertiesLoose(props, ["animation", "animationProps", "animationTimeout", "aria-labelledby", "aria-describedby", "backdropClassName", "backdrop", "className", "children", "classPrefix", "dialogClassName", "dialogStyle", "dialogAs", "enforceFocus", "full", "overflow", "open", "onClose", "onEntered", "onEntering", "onExited", "role", "size", "id"]);
63
64
  var inClass = {
64
65
  in: open && !animation
65
66
  };
@@ -157,18 +158,32 @@ var Modal = /*#__PURE__*/React.forwardRef(function (props, ref) {
157
158
  placement = _ref2.placement; // The width or height of the drawer depends on the placement.
158
159
  sizeKey = placement === 'top' || placement === 'bottom' ? 'height' : 'width';
159
160
  }
161
+ var enforceFocus = useMemo(function () {
162
+ if (typeof enforceFocusProp === 'boolean') {
163
+ return enforceFocusProp;
164
+ }
165
+
166
+ // When the Drawer is displayed and the backdrop is not displayed, the focus is not restricted.
167
+ if (isDrawer && backdrop === false) {
168
+ return false;
169
+ }
170
+ }, [backdrop, enforceFocusProp, isDrawer]);
171
+ var wrapperClassName = merge(prefix(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["wrapper"]))), (_merge = {}, _merge[prefix(_templateObject2 || (_templateObject2 = _taggedTemplateLiteralLoose(["no-backdrop"])))] = backdrop === false, _merge));
160
172
  return /*#__PURE__*/React.createElement(ModalContext.Provider, {
161
173
  value: modalContextValue
162
- }, /*#__PURE__*/React.createElement(BaseModal, _extends({}, rest, {
174
+ }, /*#__PURE__*/React.createElement(BaseModal, _extends({
175
+ "data-testid": isDrawer ? 'drawer-wrapper' : 'modal-wrapper'
176
+ }, rest, {
163
177
  ref: ref,
164
178
  backdrop: backdrop,
179
+ enforceFocus: enforceFocus,
165
180
  open: open,
166
181
  onClose: onClose,
167
- className: prefix(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["wrapper"]))),
182
+ className: wrapperClassName,
168
183
  onEntered: handleEntered,
169
184
  onEntering: handleEntering,
170
185
  onExited: handleExited,
171
- backdropClassName: merge(prefix(_templateObject2 || (_templateObject2 = _taggedTemplateLiteralLoose(["backdrop"]))), backdropClassName, inClass),
186
+ backdropClassName: merge(prefix(_templateObject3 || (_templateObject3 = _taggedTemplateLiteralLoose(["backdrop"]))), backdropClassName, inClass),
172
187
  containerClassName: prefix({
173
188
  open: open,
174
189
  'has-backdrop': backdrop
@@ -1,8 +1,20 @@
1
1
  import { WithAsProps, RsRefForwardingComponent } from '../@types/common';
2
2
  export interface PlaceholderGraphProps extends WithAsProps {
3
+ /**
4
+ * The height of the graph.
5
+ *
6
+ * @default 200
7
+ */
3
8
  height?: number;
9
+ /**
10
+ * The width of the graph.
11
+ *
12
+ * @default 100%
13
+ */
4
14
  width?: number;
5
- /** Placeholder status */
15
+ /**
16
+ * Placeholder status, display the loading state.
17
+ */
6
18
  active?: boolean;
7
19
  }
8
20
  /**
@@ -1,10 +1,36 @@
1
1
  import { WithAsProps, RsRefForwardingComponent } from '../@types/common';
2
2
  export interface PlaceholderGridProps extends WithAsProps {
3
+ /**
4
+ * The number of rows.
5
+ *
6
+ * @default 5
7
+ */
3
8
  rows?: number;
9
+ /**
10
+ * The height of the row.
11
+ *
12
+ * @default 10
13
+ */
4
14
  rowHeight?: number;
15
+ /**
16
+ * @deprecated Use `rowSpacing` instead.
17
+ */
5
18
  rowMargin?: number;
19
+ /**
20
+ * The spacing between rows.
21
+ *
22
+ * @default 20
23
+ * @version 5.59.1
24
+ */
25
+ rowSpacing?: number;
26
+ /**
27
+ * The number of columns.
28
+ * @default 5
29
+ */
6
30
  columns?: number;
7
- /** Placeholder status */
31
+ /**
32
+ * Placeholder status, display the loading state.
33
+ */
8
34
  active?: boolean;
9
35
  }
10
36
  /**
@@ -1,6 +1,8 @@
1
1
  'use client';
2
2
  import _extends from "@babel/runtime/helpers/esm/extends";
3
+ import _taggedTemplateLiteralLoose from "@babel/runtime/helpers/esm/taggedTemplateLiteralLoose";
3
4
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
5
+ var _templateObject;
4
6
  import React from 'react';
5
7
  import PropTypes from 'prop-types';
6
8
  import classNames from 'classnames';
@@ -23,8 +25,10 @@ var PlaceholderGrid = /*#__PURE__*/React.forwardRef(function (props, ref) {
23
25
  rowHeight = _props$rowHeight === void 0 ? 10 : _props$rowHeight,
24
26
  _props$rowMargin = props.rowMargin,
25
27
  rowMargin = _props$rowMargin === void 0 ? 20 : _props$rowMargin,
28
+ _props$rowSpacing = props.rowSpacing,
29
+ rowSpacing = _props$rowSpacing === void 0 ? rowMargin : _props$rowSpacing,
26
30
  active = props.active,
27
- rest = _objectWithoutPropertiesLoose(props, ["as", "className", "classPrefix", "rows", "columns", "rowHeight", "rowMargin", "active"]);
31
+ rest = _objectWithoutPropertiesLoose(props, ["as", "className", "classPrefix", "rows", "columns", "rowHeight", "rowMargin", "rowSpacing", "active"]);
28
32
  var _useClassNames = useClassNames(classPrefix),
29
33
  merge = _useClassNames.merge,
30
34
  prefix = _useClassNames.prefix,
@@ -33,23 +37,16 @@ var PlaceholderGrid = /*#__PURE__*/React.forwardRef(function (props, ref) {
33
37
  active: active
34
38
  }));
35
39
  var colItems = [];
36
- var firstRowItemWidth = Math.random() * 30 + 30;
37
- var itemWidth = firstRowItemWidth / 2;
38
40
  for (var i = 0; i < columns; i++) {
39
41
  var rowItems = [];
40
42
  for (var j = 0; j < rows; j++) {
41
- var widthPercent = Math.random() * 50 + 10; // when first column
42
- if (i > 0) {
43
- // when other columns
44
- widthPercent = j > 0 ? itemWidth : firstRowItemWidth;
45
- }
46
- rowItems.push( /*#__PURE__*/React.createElement("p", {
43
+ rowItems.push( /*#__PURE__*/React.createElement("div", {
47
44
  key: j,
48
45
  style: {
49
- width: widthPercent + "%",
50
46
  height: rowHeight,
51
- marginTop: j > 0 ? rowMargin : undefined
52
- }
47
+ marginTop: j > 0 ? rowSpacing : undefined
48
+ },
49
+ className: prefix(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["row"])))
53
50
  }));
54
51
  }
55
52
  colItems.push( /*#__PURE__*/React.createElement("div", {
@@ -69,7 +66,7 @@ PlaceholderGrid.propTypes = {
69
66
  rows: PropTypes.number,
70
67
  columns: PropTypes.number,
71
68
  rowHeight: PropTypes.number,
72
- rowMargin: PropTypes.number,
69
+ rowSpacing: PropTypes.number,
73
70
  active: PropTypes.bool
74
71
  };
75
72
  export default PlaceholderGrid;
@@ -1,10 +1,33 @@
1
1
  import { WithAsProps, RsRefForwardingComponent } from '../@types/common';
2
2
  export interface PlaceholderParagraphProps extends WithAsProps {
3
+ /**
4
+ * The number of rows.
5
+ * @default 2
6
+ */
3
7
  rows?: number;
8
+ /**
9
+ * The height of the row.
10
+ * @default 10
11
+ */
4
12
  rowHeight?: number;
13
+ /**
14
+ * @deprecated Use `rowSpacing` instead.
15
+ */
5
16
  rowMargin?: number;
17
+ /**
18
+ * The spacing between rows.
19
+ * @default 20
20
+ * @version 5.59.1
21
+ */
22
+ rowSpacing?: number;
23
+ /**
24
+ * The shape of the graph.
25
+ * @default false
26
+ */
6
27
  graph?: boolean | 'circle' | 'square' | 'image';
7
- /** Placeholder status */
28
+ /**
29
+ * Placeholder status, display the loading state.
30
+ */
8
31
  active?: boolean;
9
32
  }
10
33
  /**
@@ -1,6 +1,8 @@
1
1
  'use client';
2
2
  import _extends from "@babel/runtime/helpers/esm/extends";
3
+ import _taggedTemplateLiteralLoose from "@babel/runtime/helpers/esm/taggedTemplateLiteralLoose";
3
4
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
5
+ var _templateObject;
4
6
  import React, { useMemo } from 'react';
5
7
  import PropTypes from 'prop-types';
6
8
  import { useClassNames } from '../utils';
@@ -19,11 +21,13 @@ var PlaceholderParagraph = /*#__PURE__*/React.forwardRef(function (props, ref) {
19
21
  rowHeight = _props$rowHeight === void 0 ? 10 : _props$rowHeight,
20
22
  _props$rowMargin = props.rowMargin,
21
23
  rowMargin = _props$rowMargin === void 0 ? 20 : _props$rowMargin,
24
+ _props$rowSpacing = props.rowSpacing,
25
+ rowSpacing = _props$rowSpacing === void 0 ? rowMargin : _props$rowSpacing,
22
26
  graph = props.graph,
23
27
  active = props.active,
24
28
  _props$classPrefix = props.classPrefix,
25
29
  classPrefix = _props$classPrefix === void 0 ? 'placeholder' : _props$classPrefix,
26
- rest = _objectWithoutPropertiesLoose(props, ["as", "className", "rows", "rowHeight", "rowMargin", "graph", "active", "classPrefix"]);
30
+ rest = _objectWithoutPropertiesLoose(props, ["as", "className", "rows", "rowHeight", "rowMargin", "rowSpacing", "graph", "active", "classPrefix"]);
27
31
  var _useClassNames = useClassNames(classPrefix),
28
32
  merge = _useClassNames.merge,
29
33
  prefix = _useClassNames.prefix,
@@ -33,17 +37,17 @@ var PlaceholderParagraph = /*#__PURE__*/React.forwardRef(function (props, ref) {
33
37
  var rowArr = [];
34
38
  for (var i = 0; i < rows; i++) {
35
39
  var styles = {
36
- width: Math.random() * 75 + 25 + "%",
37
40
  height: rowHeight,
38
- marginTop: i > 0 ? rowMargin : Number(rowMargin) / 2
41
+ marginTop: i > 0 ? rowSpacing : Number(rowSpacing) / 2
39
42
  };
40
- rowArr.push( /*#__PURE__*/React.createElement("p", {
43
+ rowArr.push( /*#__PURE__*/React.createElement("div", {
41
44
  key: i,
42
- style: styles
45
+ style: styles,
46
+ className: prefix(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["row"])))
43
47
  }));
44
48
  }
45
49
  return rowArr;
46
- }, [rowHeight, rowMargin, rows]);
50
+ }, [prefix, rowHeight, rowSpacing, rows]);
47
51
  var classes = merge(className, withClassPrefix('paragraph', {
48
52
  active: active
49
53
  }));
@@ -56,7 +60,7 @@ var PlaceholderParagraph = /*#__PURE__*/React.forwardRef(function (props, ref) {
56
60
  }, /*#__PURE__*/React.createElement("span", {
57
61
  className: prefix('paragraph-graph-inner')
58
62
  })), /*#__PURE__*/React.createElement("div", {
59
- className: prefix('paragraph-rows')
63
+ className: prefix('paragraph-group')
60
64
  }, rowElements));
61
65
  });
62
66
  PlaceholderParagraph.displayName = 'PlaceholderParagraph';
@@ -65,7 +69,7 @@ PlaceholderParagraph.propTypes = {
65
69
  classPrefix: PropTypes.string,
66
70
  rows: PropTypes.number,
67
71
  rowHeight: PropTypes.number,
68
- rowMargin: PropTypes.number,
72
+ rowSpacing: PropTypes.number,
69
73
  graph: PropTypes.oneOfType([PropTypes.bool, oneOf(['circle', 'square', 'image'])]),
70
74
  active: PropTypes.bool
71
75
  };
@@ -192,7 +192,8 @@ var Modal = /*#__PURE__*/React.forwardRef(function (props, ref) {
192
192
  var className = fadeProps.className,
193
193
  rest = _objectWithoutPropertiesLoose(fadeProps, ["className"]);
194
194
  return /*#__PURE__*/React.createElement("div", _extends({
195
- "aria-hidden": true
195
+ "aria-hidden": true,
196
+ "data-testid": "backdrop"
196
197
  }, rest, {
197
198
  style: backdropStyle,
198
199
  ref: mergeRefs(modal.setBackdropRef, ref),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rsuite",
3
- "version": "5.58.1",
3
+ "version": "5.59.1",
4
4
  "description": "A suite of react components",
5
5
  "main": "cjs/index.js",
6
6
  "module": "esm/index.js",
@@ -39,7 +39,7 @@
39
39
  "react-use-set": "^1.0.0",
40
40
  "react-window": "^1.8.8",
41
41
  "rsuite-table": "^5.18.2",
42
- "schema-typed": "^2.1.3"
42
+ "schema-typed": "^2.2.1"
43
43
  },
44
44
  "peerDependencies": {
45
45
  "react": ">=16.8.0",
@@ -307,6 +307,8 @@
307
307
  // Avatar
308
308
  --rs-avatar-bg: var(--rs-gray-400);
309
309
  --rs-avatar-text: var(--rs-gray-0);
310
+ --rs-avatar-offset-color: var(--rs-gray-900);
311
+ --rs-avatar-ring-color: var(--rs-avatar-bg);
310
312
 
311
313
  // Badge
312
314
  --rs-badge-bg: var(--rs-color-red);
@@ -313,6 +313,8 @@
313
313
  // Avatar
314
314
  --rs-avatar-bg: var(--rs-gray-400);
315
315
  --rs-avatar-text: var(--rs-gray-0);
316
+ --rs-avatar-offset-color: var(--rs-gray-900);
317
+ --rs-avatar-ring-color: var(--rs-avatar-bg);
316
318
 
317
319
  // Badge
318
320
  --rs-badge-bg: var(--rs-red-500);
@@ -328,6 +328,8 @@
328
328
  // Avatar
329
329
  --rs-avatar-bg: var(--rs-gray-300);
330
330
  --rs-avatar-text: var(--rs-gray-0);
331
+ --rs-avatar-offset-color: var(--rs-gray-0);
332
+ --rs-avatar-ring-color: var(--rs-avatar-bg);
331
333
 
332
334
  // Badge
333
335
  --rs-badge-bg: var(--rs-color-red);
@@ -268,26 +268,18 @@
268
268
  @badge-dot-size: @badge-dot-side-length;
269
269
 
270
270
  // Avatar
271
-
272
- @avatar-md-side-length: 40px; // @deprecated use @avatar-size instead
273
- @avatar-md-font-size: 18px; // @deprecated use @avatar-font-size instead
274
- @avatar-size: @avatar-md-side-length;
275
- @avatar-font-size: @avatar-md-font-size;
276
-
277
- @avatar-lg-side-length: 60px; // @deprecated use @avatar-size-lg instead
278
- @avatar-lg-font-size: 26px; // @deprecated use @avatar-font-size-lg instead
279
- @avatar-size-lg: @avatar-lg-side-length;
280
- @avatar-font-size-lg: @avatar-lg-font-size;
281
-
282
- @avatar-sm-side-length: 30px; // @deprecated use @avatar-size-sm instead
283
- @avatar-sm-font-size: 14px; // @deprecated use @avatar-sm-font-size instead
284
- @avatar-size-sm: @avatar-sm-side-length;
285
- @avatar-font-size-sm: @avatar-sm-font-size;
286
-
287
- @avatar-xs-side-length: 20px; // @deprecated use @avatar-size-xs instead
288
- @avatar-xs-font-size: 12px; // @deprecated use @avatar-font-size-xs instead
289
- @avatar-size-xs: @avatar-xs-side-length;
290
- @avatar-font-size-xs: @avatar-xs-font-size;
271
+ @avatar-size-xxl: 120px;
272
+ @avatar-font-size-xxl: 48px;
273
+ @avatar-size-xl: 90px;
274
+ @avatar-font-size-xl: 36px;
275
+ @avatar-size-lg: 60px;
276
+ @avatar-font-size-lg: 26px;
277
+ @avatar-size: 40px;
278
+ @avatar-font-size: 18px;
279
+ @avatar-size-sm: 30px;
280
+ @avatar-font-size-sm: 14px;
281
+ @avatar-size-xs: 20px;
282
+ @avatar-font-size-xs: 12px;
291
283
 
292
284
  // Forms
293
285