rsuite 5.59.0 → 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 (82) hide show
  1. package/AvatarGroup/styles/index.css +2 -0
  2. package/AvatarGroup/styles/index.less +2 -0
  3. package/CHANGELOG.md +14 -0
  4. package/CheckPicker/styles/index.css +2 -0
  5. package/CheckTree/styles/index.css +2 -0
  6. package/CheckTreePicker/styles/index.css +2 -0
  7. package/Checkbox/styles/index.css +2 -0
  8. package/Checkbox/styles/index.less +2 -0
  9. package/MultiCascadeTree/styles/index.css +2 -0
  10. package/MultiCascader/styles/index.css +2 -0
  11. package/Placeholder/styles/index.css +42 -6
  12. package/Placeholder/styles/index.less +18 -9
  13. package/Placeholder/styles/mixin.less +7 -0
  14. package/Sidenav/styles/index.css +3 -0
  15. package/Sidenav/styles/index.less +4 -0
  16. package/TagInput/styles/index.css +2 -0
  17. package/TagPicker/styles/index.css +2 -0
  18. package/cjs/Avatar/Avatar.js +16 -8
  19. package/cjs/Avatar/useImage.js +0 -1
  20. package/cjs/AvatarGroup/AvatarGroup.d.ts +1 -0
  21. package/cjs/AvatarGroup/AvatarGroup.js +12 -12
  22. package/cjs/Checkbox/Checkbox.js +1 -1
  23. package/cjs/Form/Form.js +40 -56
  24. package/cjs/Form/FormContext.d.ts +1 -1
  25. package/cjs/Form/{useFormClassNames.d.ts → hooks/useFormClassNames.d.ts} +2 -2
  26. package/cjs/Form/{useFormClassNames.js → hooks/useFormClassNames.js} +2 -2
  27. package/cjs/Form/hooks/useFormError.d.ts +6 -0
  28. package/cjs/Form/hooks/useFormError.js +31 -0
  29. package/cjs/Form/hooks/useFormValue.d.ts +6 -0
  30. package/cjs/Form/hooks/useFormValue.js +31 -0
  31. package/cjs/Form/index.d.ts +1 -1
  32. package/cjs/Form/index.js +3 -9
  33. package/cjs/FormControl/FormControl.js +1 -1
  34. package/cjs/FormControl/useRegisterModel.d.ts +1 -1
  35. package/cjs/Placeholder/PlaceholderGraph.d.ts +13 -1
  36. package/cjs/Placeholder/PlaceholderGrid.d.ts +27 -1
  37. package/cjs/Placeholder/PlaceholderGrid.js +10 -13
  38. package/cjs/Placeholder/PlaceholderParagraph.d.ts +24 -1
  39. package/cjs/Placeholder/PlaceholderParagraph.js +13 -9
  40. package/dist/rsuite-no-reset-rtl.css +49 -6
  41. package/dist/rsuite-no-reset-rtl.min.css +1 -1
  42. package/dist/rsuite-no-reset-rtl.min.css.map +1 -1
  43. package/dist/rsuite-no-reset.css +49 -6
  44. package/dist/rsuite-no-reset.min.css +1 -1
  45. package/dist/rsuite-no-reset.min.css.map +1 -1
  46. package/dist/rsuite-rtl.css +49 -6
  47. package/dist/rsuite-rtl.min.css +1 -1
  48. package/dist/rsuite-rtl.min.css.map +1 -1
  49. package/dist/rsuite.css +49 -6
  50. package/dist/rsuite.js +98 -34
  51. package/dist/rsuite.js.map +1 -1
  52. package/dist/rsuite.min.css +1 -1
  53. package/dist/rsuite.min.css.map +1 -1
  54. package/dist/rsuite.min.js +1 -1
  55. package/dist/rsuite.min.js.map +1 -1
  56. package/esm/Avatar/Avatar.js +12 -4
  57. package/esm/Avatar/useImage.js +0 -1
  58. package/esm/AvatarGroup/AvatarGroup.d.ts +1 -0
  59. package/esm/AvatarGroup/AvatarGroup.js +12 -12
  60. package/esm/Checkbox/Checkbox.js +1 -1
  61. package/esm/Form/Form.js +40 -56
  62. package/esm/Form/FormContext.d.ts +1 -1
  63. package/esm/Form/{useFormClassNames.d.ts → hooks/useFormClassNames.d.ts} +2 -2
  64. package/esm/Form/{useFormClassNames.js → hooks/useFormClassNames.js} +2 -2
  65. package/esm/Form/hooks/useFormError.d.ts +6 -0
  66. package/esm/Form/hooks/useFormError.js +26 -0
  67. package/esm/Form/hooks/useFormValue.d.ts +6 -0
  68. package/esm/Form/hooks/useFormValue.js +26 -0
  69. package/esm/Form/index.d.ts +1 -1
  70. package/esm/Form/index.js +1 -1
  71. package/esm/FormControl/FormControl.js +1 -1
  72. package/esm/FormControl/useRegisterModel.d.ts +1 -1
  73. package/esm/Placeholder/PlaceholderGraph.d.ts +13 -1
  74. package/esm/Placeholder/PlaceholderGrid.d.ts +27 -1
  75. package/esm/Placeholder/PlaceholderGrid.js +10 -13
  76. package/esm/Placeholder/PlaceholderParagraph.d.ts +24 -1
  77. package/esm/Placeholder/PlaceholderParagraph.js +12 -8
  78. package/package.json +2 -2
  79. /package/cjs/Form/{useSchemaModel.d.ts → hooks/useSchemaModel.d.ts} +0 -0
  80. /package/cjs/Form/{useSchemaModel.js → hooks/useSchemaModel.js} +0 -0
  81. /package/esm/Form/{useSchemaModel.d.ts → hooks/useSchemaModel.d.ts} +0 -0
  82. /package/esm/Form/{useSchemaModel.js → hooks/useSchemaModel.js} +0 -0
@@ -20,6 +20,8 @@
20
20
  -webkit-box-align: end;
21
21
  -ms-flex-align: end;
22
22
  align-items: flex-end;
23
+ -ms-flex-wrap: wrap;
24
+ flex-wrap: wrap;
23
25
  }
24
26
  .rs-avatar-group-stack .rs-avatar {
25
27
  -webkit-box-sizing: content-box;
@@ -4,6 +4,8 @@
4
4
  .rs-avatar-group {
5
5
  display: flex;
6
6
  align-items: flex-end;
7
+ flex-wrap: wrap;
8
+
7
9
  &-stack {
8
10
  .rs-avatar {
9
11
  box-sizing: content-box;
package/CHANGELOG.md CHANGED
@@ -1,3 +1,17 @@
1
+ ## [5.59.1](https://github.com/rsuite/rsuite/compare/v5.59.0...v5.59.1) (2024-04-12)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * **AvatarGroup:** fix avatar deformation in group ([#3727](https://github.com/rsuite/rsuite/issues/3727)) ([466e428](https://github.com/rsuite/rsuite/commit/466e4285d794f081f90e79fc28e8f57783c438c1))
7
+ * **Checkbox:** fix Checkbox not clickable in Firefox ([#3728](https://github.com/rsuite/rsuite/issues/3728)) ([2fc23aa](https://github.com/rsuite/rsuite/commit/2fc23aa841532f4340f5bef9a7a70009b912a4b9))
8
+ * **docs:** typo on Form name ([#3723](https://github.com/rsuite/rsuite/issues/3723)) ([8f328e1](https://github.com/rsuite/rsuite/commit/8f328e10e16cbe978aa6737baefa67ca2b4f6867))
9
+ * **Placeholder:** fix Placeholder SSR and CSR mismatch ([#3735](https://github.com/rsuite/rsuite/issues/3735)) ([8a9c8bd](https://github.com/rsuite/rsuite/commit/8a9c8bd81003b54f930e3dfd4f99356db44f125f))
10
+ * **Sidenav:** fix secondary menu cannot expand ([#3732](https://github.com/rsuite/rsuite/issues/3732)) ([d680fa3](https://github.com/rsuite/rsuite/commit/d680fa3b7b498c72148ccff95b5ea1ad10ad7382))
11
+ * remove debug code ([#3720](https://github.com/rsuite/rsuite/issues/3720)) ([637b8dc](https://github.com/rsuite/rsuite/commit/637b8dc6bb19a6775eda692534282a0dce1ebfbc))
12
+
13
+
14
+
1
15
  # [5.59.0](https://github.com/rsuite/rsuite/compare/v5.58.1...v5.59.0) (2024-04-03)
2
16
 
3
17
 
@@ -456,6 +456,8 @@
456
456
  right: -10px;
457
457
  bottom: -10px;
458
458
  left: -10px;
459
+ min-width: 36px;
460
+ min-height: 36px;
459
461
  }
460
462
  .rs-checkbox-control::before,
461
463
  .rs-checkbox-control .rs-checkbox-inner::before,
@@ -3173,6 +3173,8 @@ textarea.rs-input-group-inside.rs-input-group-xs > .rs-input-group-btn {
3173
3173
  right: -10px;
3174
3174
  bottom: -10px;
3175
3175
  left: -10px;
3176
+ min-width: 36px;
3177
+ min-height: 36px;
3176
3178
  }
3177
3179
  .rs-checkbox-control::before,
3178
3180
  .rs-checkbox-control .rs-checkbox-inner::before,
@@ -3173,6 +3173,8 @@ textarea.rs-input-group-inside.rs-input-group-xs > .rs-input-group-btn {
3173
3173
  right: -10px;
3174
3174
  bottom: -10px;
3175
3175
  left: -10px;
3176
+ min-width: 36px;
3177
+ min-height: 36px;
3176
3178
  }
3177
3179
  .rs-checkbox-control::before,
3178
3180
  .rs-checkbox-control .rs-checkbox-inner::before,
@@ -207,6 +207,8 @@
207
207
  right: -10px;
208
208
  bottom: -10px;
209
209
  left: -10px;
210
+ min-width: 36px;
211
+ min-height: 36px;
210
212
  }
211
213
  .rs-checkbox-control::before,
212
214
  .rs-checkbox-control .rs-checkbox-inner::before,
@@ -86,6 +86,8 @@
86
86
  right: -@checkbox-sense-width;
87
87
  bottom: -@checkbox-sense-width;
88
88
  left: -@checkbox-sense-width;
89
+ min-width: 36px;
90
+ min-height: 36px;
89
91
  }
90
92
 
91
93
  &::before,
@@ -3367,6 +3367,8 @@ textarea.rs-input-group-inside.rs-input-group-xs > .rs-input-group-btn {
3367
3367
  right: -10px;
3368
3368
  bottom: -10px;
3369
3369
  left: -10px;
3370
+ min-width: 36px;
3371
+ min-height: 36px;
3370
3372
  }
3371
3373
  .rs-checkbox-control::before,
3372
3374
  .rs-checkbox-control .rs-checkbox-inner::before,
@@ -3385,6 +3385,8 @@ textarea.rs-input-group-inside.rs-input-group-xs > .rs-input-group-btn {
3385
3385
  right: -10px;
3386
3386
  bottom: -10px;
3387
3387
  left: -10px;
3388
+ min-width: 36px;
3389
+ min-height: 36px;
3388
3390
  }
3389
3391
  .rs-checkbox-control::before,
3390
3392
  .rs-checkbox-control .rs-checkbox-inner::before,
@@ -119,12 +119,40 @@
119
119
  background: var(--rs-bg-card);
120
120
  position: absolute;
121
121
  }
122
- .rs-placeholder-paragraph-rows {
122
+ .rs-placeholder-paragraph-group {
123
123
  width: 100%;
124
124
  }
125
- .rs-placeholder-paragraph-rows > p {
125
+ .rs-placeholder-paragraph .rs-placeholder-row:nth-child(9) {
126
+ width: 75%;
127
+ }
128
+ .rs-placeholder-paragraph .rs-placeholder-row:nth-child(8) {
129
+ width: 60%;
130
+ }
131
+ .rs-placeholder-paragraph .rs-placeholder-row:nth-child(7) {
132
+ width: 85%;
133
+ }
134
+ .rs-placeholder-paragraph .rs-placeholder-row:nth-child(6) {
135
+ width: 70%;
136
+ }
137
+ .rs-placeholder-paragraph .rs-placeholder-row:nth-child(5) {
138
+ width: 90%;
139
+ }
140
+ .rs-placeholder-paragraph .rs-placeholder-row:nth-child(4) {
141
+ width: 65%;
142
+ }
143
+ .rs-placeholder-paragraph .rs-placeholder-row:nth-child(3) {
144
+ width: 80%;
145
+ }
146
+ .rs-placeholder-paragraph .rs-placeholder-row:nth-child(2) {
147
+ width: 50%;
148
+ }
149
+ .rs-placeholder-paragraph .rs-placeholder-row:nth-child(1) {
150
+ width: 100%;
151
+ }
152
+ .rs-placeholder-row {
126
153
  background-color: #f2f2f5;
127
154
  background-color: var(--rs-placeholder);
155
+ width: 100%;
128
156
  }
129
157
  .rs-placeholder-grid-col {
130
158
  -webkit-box-flex: 1;
@@ -141,15 +169,23 @@
141
169
  -ms-flex-align: end;
142
170
  align-items: flex-end;
143
171
  }
144
- .rs-placeholder-grid-col > p {
145
- background-color: #f2f2f5;
146
- background-color: var(--rs-placeholder);
147
- }
148
172
  .rs-placeholder-grid-col:first-child {
149
173
  -webkit-box-align: start;
150
174
  -ms-flex-align: start;
151
175
  align-items: flex-start;
152
176
  }
177
+ .rs-placeholder-grid-col .rs-placeholder-row {
178
+ width: 30%;
179
+ }
180
+ .rs-placeholder-grid-col .rs-placeholder-row:nth-child(3) {
181
+ width: 35%;
182
+ }
183
+ .rs-placeholder-grid-col .rs-placeholder-row:nth-child(2) {
184
+ width: 25%;
185
+ }
186
+ .rs-placeholder-grid-col .rs-placeholder-row:nth-child(1) {
187
+ width: 50%;
188
+ }
153
189
  .rs-placeholder-graph {
154
190
  display: inline-block;
155
191
  width: 100%;
@@ -1,4 +1,5 @@
1
- @import '../../styles/common';
1
+ @import '../../styles/common.less';
2
+ @import './mixin.less';
2
3
 
3
4
  //
4
5
  // Placeholder
@@ -67,15 +68,21 @@
67
68
  }
68
69
  }
69
70
 
70
- &-rows {
71
+ &-group {
71
72
  width: 100%;
73
+ }
72
74
 
73
- & > p {
74
- background-color: var(--rs-placeholder);
75
- }
75
+ .rs-placeholder-row {
76
+ @widths: 100% 50% 80% 65% 90% 70% 85% 60% 75%;
77
+ .generate-row-width(@widths, length(@widths));
76
78
  }
77
79
  }
78
80
 
81
+ &-row {
82
+ background-color: var(--rs-placeholder);
83
+ width: 100%;
84
+ }
85
+
79
86
  &-grid {
80
87
  &-col {
81
88
  flex: 1;
@@ -83,13 +90,15 @@
83
90
  flex-direction: column;
84
91
  align-items: flex-end;
85
92
 
86
- & > p {
87
- background-color: var(--rs-placeholder);
88
- }
89
-
90
93
  &:first-child {
91
94
  align-items: flex-start; //first col align left
92
95
  }
96
+
97
+ .rs-placeholder-row {
98
+ width: 30%;
99
+ @widths: 50% 25% 35%;
100
+ .generate-row-width(@widths, length(@widths));
101
+ }
93
102
  }
94
103
  }
95
104
 
@@ -0,0 +1,7 @@
1
+ .generate-row-width(@widths, @n) when (@n > 0) {
2
+ &:nth-child(@{n}) {
3
+ width: extract(@widths, @n);
4
+ }
5
+
6
+ .generate-row-width(@widths, @n - 1);
7
+ }
@@ -154,6 +154,9 @@
154
154
  -webkit-transition: none;
155
155
  transition: none;
156
156
  }
157
+ .rs-sidenav-nav .rs-dropdown-item {
158
+ display: block;
159
+ }
157
160
  .rs-sidenav-nav > .rs-sidenav-item,
158
161
  .rs-sidenav-nav > .rs-dropdown {
159
162
  margin: 0 !important;
@@ -34,6 +34,10 @@
34
34
  });
35
35
  }
36
36
 
37
+ .rs-dropdown-item {
38
+ display: block;
39
+ }
40
+
37
41
  > .rs-sidenav-item,
38
42
  > .rs-dropdown {
39
43
  margin: 0 !important;
@@ -469,6 +469,8 @@
469
469
  right: -10px;
470
470
  bottom: -10px;
471
471
  left: -10px;
472
+ min-width: 36px;
473
+ min-height: 36px;
472
474
  }
473
475
  .rs-checkbox-control::before,
474
476
  .rs-checkbox-control .rs-checkbox-inner::before,
@@ -469,6 +469,8 @@
469
469
  right: -10px;
470
470
  bottom: -10px;
471
471
  left: -10px;
472
+ min-width: 36px;
473
+ min-height: 36px;
472
474
  }
473
475
  .rs-checkbox-control::before,
474
476
  .rs-checkbox-control .rs-checkbox-inner::before,
@@ -6,7 +6,7 @@ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWild
6
6
  exports.__esModule = true;
7
7
  exports.default = void 0;
8
8
  var _taggedTemplateLiteralLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteralLoose"));
9
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ var _extends3 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
10
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
11
11
  var _react = _interopRequireWildcard(require("react"));
12
12
  var _propTypes = _interopRequireDefault(require("prop-types"));
@@ -21,8 +21,10 @@ var _templateObject, _templateObject2;
21
21
  * @see https://rsuitejs.com/components/avatar
22
22
  */
23
23
  var Avatar = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
24
+ var _extends2;
24
25
  var _useContext = (0, _react.useContext)(_AvatarGroup.AvatarGroupContext),
25
- groupSize = _useContext.size;
26
+ groupSize = _useContext.size,
27
+ spacing = _useContext.spacing;
26
28
  var _props$as = props.as,
27
29
  Component = _props$as === void 0 ? 'div' : _props$as,
28
30
  bordered = props.bordered,
@@ -38,9 +40,10 @@ var Avatar = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
38
40
  src = props.src,
39
41
  srcSet = props.srcSet,
40
42
  sizes = props.sizes,
43
+ style = props.style,
41
44
  imgProps = props.imgProps,
42
45
  onError = props.onError,
43
- rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "bordered", "alt", "className", "children", "circle", "color", "classPrefix", "size", "src", "srcSet", "sizes", "imgProps", "onError"]);
46
+ rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "bordered", "alt", "className", "children", "circle", "color", "classPrefix", "size", "src", "srcSet", "sizes", "style", "imgProps", "onError"]);
44
47
  var _useClassNames = (0, _utils.useClassNames)(classPrefix),
45
48
  withClassPrefix = _useClassNames.withClassPrefix,
46
49
  prefix = _useClassNames.prefix,
@@ -49,16 +52,18 @@ var Avatar = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
49
52
  circle: circle,
50
53
  bordered: bordered
51
54
  }));
52
- var imageProps = (0, _extends2.default)({}, imgProps, {
55
+ var imageProps = (0, _extends3.default)({}, imgProps, {
53
56
  alt: alt,
54
57
  src: src,
55
58
  srcSet: srcSet,
56
59
  sizes: sizes
57
60
  });
58
- var _useImage = (0, _useImage2.default)((0, _extends2.default)({}, imageProps, {
61
+ var _useImage = (0, _useImage2.default)((0, _extends3.default)({}, imageProps, {
59
62
  onError: onError
60
63
  })),
61
64
  loaded = _useImage.loaded;
65
+ var _useCustom = (0, _utils.useCustom)('Avatar'),
66
+ rtl = _useCustom.rtl;
62
67
  var altComponent = (0, _react.useMemo)(function () {
63
68
  if (alt) {
64
69
  return /*#__PURE__*/_react.default.createElement("span", {
@@ -71,12 +76,15 @@ var Avatar = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
71
76
  var placeholder = children || altComponent || /*#__PURE__*/_react.default.createElement(_AvatarIcon.default, {
72
77
  className: prefix(_templateObject || (_templateObject = (0, _taggedTemplateLiteralLoose2.default)(["icon"])))
73
78
  });
74
- var image = loaded ? /*#__PURE__*/_react.default.createElement("img", (0, _extends2.default)({}, imageProps, {
79
+ var image = loaded ? /*#__PURE__*/_react.default.createElement("img", (0, _extends3.default)({}, imageProps, {
75
80
  className: prefix(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteralLoose2.default)(["image"])))
76
81
  })) : placeholder;
77
- return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({}, rest, {
82
+ var margin = rtl ? 'marginLeft' : 'marginRight';
83
+ var insertStyles = (0, _utils.isIE)() && spacing ? (0, _extends3.default)((_extends2 = {}, _extends2[margin] = spacing, _extends2), style) : style;
84
+ return /*#__PURE__*/_react.default.createElement(Component, (0, _extends3.default)({}, rest, {
78
85
  ref: ref,
79
- className: classes
86
+ className: classes,
87
+ style: insertStyles
80
88
  }), src ? image : placeholder);
81
89
  });
82
90
  Avatar.displayName = 'Avatar';
@@ -65,7 +65,6 @@ var useImage = function useImage(props) {
65
65
  (0, _react.useEffect)(function () {
66
66
  return flush;
67
67
  }, []);
68
- console.log('status', status);
69
68
  return {
70
69
  loaded: status === 'loaded',
71
70
  status: status
@@ -18,6 +18,7 @@ export interface AvatarGroupProps extends WithAsProps {
18
18
  }
19
19
  export declare const AvatarGroupContext: React.Context<{
20
20
  size?: Size | undefined;
21
+ spacing?: number | undefined;
21
22
  }>;
22
23
  /**
23
24
  * The AvatarGroup component is used to represent a collection of avatars.
@@ -5,7 +5,7 @@ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWild
5
5
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
6
6
  exports.__esModule = true;
7
7
  exports.default = exports.AvatarGroupContext = void 0;
8
- var _extends3 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
9
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
10
10
  var _react = _interopRequireWildcard(require("react"));
11
11
  var _propTypes = _interopRequireDefault(require("prop-types"));
@@ -28,9 +28,8 @@ var AvatarGroup = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
28
28
  children = props.children,
29
29
  stack = props.stack,
30
30
  size = props.size,
31
- rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "classPrefix", "spacing", "className", "children", "stack", "size"]);
32
- var _useCustom = (0, _utils.useCustom)('AvatarGroup'),
33
- rtl = _useCustom.rtl;
31
+ style = props.style,
32
+ rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "classPrefix", "spacing", "className", "children", "stack", "size", "style"]);
34
33
  var _useClassNames = (0, _utils.useClassNames)(classPrefix),
35
34
  withClassPrefix = _useClassNames.withClassPrefix,
36
35
  merge = _useClassNames.merge;
@@ -42,17 +41,18 @@ var AvatarGroup = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
42
41
  size: size
43
42
  };
44
43
  }, [size]);
45
- return /*#__PURE__*/_react.default.createElement(Component, (0, _extends3.default)({}, rest, {
44
+ var styles = (0, _utils.isIE)() ? style : (0, _extends2.default)({}, style, {
45
+ gap: spacing
46
+ });
47
+ return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({
48
+ role: "group"
49
+ }, rest, {
46
50
  ref: ref,
47
- className: classes
51
+ className: classes,
52
+ style: styles
48
53
  }), /*#__PURE__*/_react.default.createElement(AvatarGroupContext.Provider, {
49
54
  value: contextValue
50
- }, spacing ? _react.default.Children.map(children, function (child) {
51
- var _extends2;
52
- return /*#__PURE__*/_react.default.cloneElement(child, {
53
- style: (0, _extends3.default)((_extends2 = {}, _extends2[rtl ? 'marginLeft' : 'marginRight'] = spacing, _extends2), child.props.style)
54
- });
55
- }) : children));
55
+ }, children));
56
56
  });
57
57
  AvatarGroup.displayName = 'AvatarGroup';
58
58
  AvatarGroup.propTypes = {
@@ -137,7 +137,7 @@ var Checkbox = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
137
137
  })), /*#__PURE__*/_react.default.createElement("span", {
138
138
  className: prefix(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteralLoose2.default)(["inner"]))),
139
139
  "aria-hidden": true,
140
- role: "presentation"
140
+ "data-testid": "checkbox-control-inner"
141
141
  }));
142
142
  return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({}, restProps, {
143
143
  ref: ref,
package/cjs/Form/Form.js CHANGED
@@ -18,10 +18,12 @@ var _FormControlLabel = _interopRequireDefault(require("../FormControlLabel"));
18
18
  var _FormErrorMessage = _interopRequireDefault(require("../FormErrorMessage"));
19
19
  var _FormGroup = _interopRequireDefault(require("../FormGroup"));
20
20
  var _FormHelpText = _interopRequireDefault(require("../FormHelpText"));
21
- var _useFormClassNames = require("./useFormClassNames");
22
- var _useSchemaModel2 = _interopRequireDefault(require("./useSchemaModel"));
23
21
  var _utils = require("../utils");
24
22
  var _propTypes2 = require("../internals/propTypes");
23
+ var _useSchemaModel2 = _interopRequireDefault(require("./hooks/useSchemaModel"));
24
+ var _useFormError2 = _interopRequireDefault(require("./hooks/useFormError"));
25
+ var _useFormValue2 = _interopRequireDefault(require("./hooks/useFormValue"));
26
+ var _useFormClassNames = _interopRequireDefault(require("./hooks/useFormClassNames"));
25
27
  /**
26
28
  * The `Form` component is a form interface for collecting and validating user input.
27
29
  * @see https://rsuitejs.com/components/form
@@ -35,8 +37,8 @@ var Form = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
35
37
  errorFromContext = _props$errorFromConte === void 0 ? true : _props$errorFromConte,
36
38
  _props$formDefaultVal = props.formDefaultValue,
37
39
  formDefaultValue = _props$formDefaultVal === void 0 ? {} : _props$formDefaultVal,
38
- formValue = props.formValue,
39
- formError = props.formError,
40
+ formValueProp = props.formValue,
41
+ formErrorProp = props.formError,
40
42
  fluid = props.fluid,
41
43
  _props$nestedField = props.nestedField,
42
44
  nestedField = _props$nestedField === void 0 ? false : _props$nestedField,
@@ -58,7 +60,7 @@ var Form = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
58
60
  getCombinedModel = _useSchemaModel.getCombinedModel,
59
61
  pushFieldRule = _useSchemaModel.pushFieldRule,
60
62
  removeFieldRule = _useSchemaModel.removeFieldRule;
61
- var classes = (0, _useFormClassNames.useFormClassNames)({
63
+ var classes = (0, _useFormClassNames.default)({
62
64
  classPrefix: classPrefix,
63
65
  className: className,
64
66
  fluid: fluid,
@@ -67,29 +69,25 @@ var Form = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
67
69
  plaintext: plaintext,
68
70
  disabled: disabled
69
71
  });
70
- var _useControlled = (0, _utils.useControlled)(formValue, formDefaultValue),
71
- realFormValue = _useControlled[0],
72
- setFormValue = _useControlled[1];
73
- var _useControlled2 = (0, _utils.useControlled)(formError, {}),
74
- realFormError = _useControlled2[0],
75
- setFormError = _useControlled2[1];
76
- var realFormValueRef = (0, _react.useRef)(realFormValue);
77
- realFormValueRef.current = realFormValue;
78
- var realFormErrorRef = (0, _react.useRef)(realFormError);
79
- realFormErrorRef.current = realFormError;
80
-
72
+ var _useFormValue = (0, _useFormValue2.default)(formValueProp, formDefaultValue),
73
+ formValue = _useFormValue.formValue,
74
+ setFormValue = _useFormValue.setFormValue,
75
+ onRemoveValue = _useFormValue.onRemoveValue;
76
+ var _useFormError = (0, _useFormError2.default)(formErrorProp),
77
+ formError = _useFormError.formError,
78
+ setFormError = _useFormError.setFormError,
79
+ onRemoveError = _useFormError.onRemoveError;
81
80
  /**
82
81
  * Validate the form data and return a boolean.
83
82
  * The error message after verification is returned in the callback.
84
83
  * @param callback
85
84
  */
86
85
  var check = (0, _utils.useEventCallback)(function (callback) {
87
- var formValue = realFormValue || {};
88
86
  var formError = {};
89
87
  var errorCount = 0;
90
88
  var model = getCombinedModel();
91
- Object.keys(model.spec).forEach(function (key) {
92
- var checkResult = model.checkForField(key, formValue);
89
+ Object.keys(model.getSchemaSpec()).forEach(function (key) {
90
+ var checkResult = model.checkForField(key, formValue || {});
93
91
  if (checkResult.hasError === true) {
94
92
  errorCount += 1;
95
93
  formError[key] = (checkResult === null || checkResult === void 0 ? void 0 : checkResult.errorMessage) || checkResult;
@@ -112,15 +110,14 @@ var Form = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
112
110
  */
113
111
  var checkForField = (0, _utils.useEventCallback)(function (fieldName, callback) {
114
112
  var _extends2;
115
- var formValue = realFormValue || {};
116
113
  var model = getCombinedModel();
117
- var checkResult = model.checkForField(fieldName, formValue);
118
- var formError = (0, _extends6.default)({}, realFormError, (_extends2 = {}, _extends2[fieldName] = (checkResult === null || checkResult === void 0 ? void 0 : checkResult.errorMessage) || checkResult, _extends2));
119
- setFormError(formError);
120
- onCheck === null || onCheck === void 0 ? void 0 : onCheck(formError);
114
+ var checkResult = model.checkForField(fieldName, formValue || {});
115
+ var nextFormError = (0, _extends6.default)({}, formError, (_extends2 = {}, _extends2[fieldName] = (checkResult === null || checkResult === void 0 ? void 0 : checkResult.errorMessage) || checkResult, _extends2));
116
+ setFormError(nextFormError);
117
+ onCheck === null || onCheck === void 0 ? void 0 : onCheck(nextFormError);
121
118
  callback === null || callback === void 0 ? void 0 : callback(checkResult);
122
119
  if (checkResult.hasError) {
123
- onError === null || onError === void 0 ? void 0 : onError(formError);
120
+ onError === null || onError === void 0 ? void 0 : onError(nextFormError);
124
121
  }
125
122
  return !checkResult.hasError;
126
123
  });
@@ -129,13 +126,12 @@ var Form = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
129
126
  * Check form data asynchronously and return a Promise
130
127
  */
131
128
  var checkAsync = (0, _utils.useEventCallback)(function () {
132
- var formValue = realFormValue || {};
133
129
  var promises = [];
134
130
  var keys = [];
135
131
  var model = getCombinedModel();
136
- Object.keys(model.spec).forEach(function (key) {
132
+ Object.keys(model.getSchemaSpec()).forEach(function (key) {
137
133
  keys.push(key);
138
- promises.push(model.checkForFieldAsync(key, formValue));
134
+ promises.push(model.checkForFieldAsync(key, formValue || {}));
139
135
  });
140
136
  return Promise.all(promises).then(function (values) {
141
137
  var formError = {};
@@ -163,15 +159,14 @@ var Form = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
163
159
  * @param fieldName
164
160
  */
165
161
  var checkForFieldAsync = (0, _utils.useEventCallback)(function (fieldName) {
166
- var formValue = realFormValue || {};
167
162
  var model = getCombinedModel();
168
- return model.checkForFieldAsync(fieldName, formValue).then(function (checkResult) {
163
+ return model.checkForFieldAsync(fieldName, formValue || {}).then(function (checkResult) {
169
164
  var _extends3;
170
- var formError = (0, _extends6.default)({}, realFormError, (_extends3 = {}, _extends3[fieldName] = checkResult.errorMessage, _extends3));
171
- onCheck === null || onCheck === void 0 ? void 0 : onCheck(formError);
172
- setFormError(formError);
165
+ var nextFormError = (0, _extends6.default)({}, formError, (_extends3 = {}, _extends3[fieldName] = checkResult.errorMessage, _extends3));
166
+ onCheck === null || onCheck === void 0 ? void 0 : onCheck(nextFormError);
167
+ setFormError(nextFormError);
173
168
  if (checkResult.hasError) {
174
- onError === null || onError === void 0 ? void 0 : onError(formError);
169
+ onError === null || onError === void 0 ? void 0 : onError(nextFormError);
175
170
  }
176
171
  return checkResult;
177
172
  });
@@ -180,7 +175,7 @@ var Form = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
180
175
  setFormError({});
181
176
  });
182
177
  var cleanErrorForField = (0, _utils.useEventCallback)(function (fieldName) {
183
- setFormError((0, _omit.default)(realFormError, [fieldName]));
178
+ setFormError((0, _omit.default)(formError, [fieldName]));
184
179
  });
185
180
  var resetErrors = (0, _utils.useEventCallback)(function (formError) {
186
181
  if (formError === void 0) {
@@ -201,23 +196,12 @@ var Form = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
201
196
  };
202
197
  });
203
198
  var removeFieldError = (0, _utils.useEventCallback)(function (name) {
204
- /**
205
- * when this function is called when the children component is unmount, it's an old render frame
206
- * so use Ref to get future error
207
- */
208
- var formError = (0, _omit.default)(realFormErrorRef.current, [name]);
209
- realFormErrorRef.current = formError;
199
+ var formError = onRemoveError(name);
210
200
  setFormError(formError);
211
201
  onCheck === null || onCheck === void 0 ? void 0 : onCheck(formError);
212
202
  });
213
203
  var removeFieldValue = (0, _utils.useEventCallback)(function (name) {
214
- /**
215
- * when this function is called when the children component is unmount, it's an old render frame
216
- * so use Ref to get future value
217
- */
218
- var formValue = (0, _omit.default)(realFormValueRef.current, [name]);
219
- realFormValueRef.current = formValue;
220
- setFormValue(formValue);
204
+ var formValue = onRemoveValue(name);
221
205
  onChange === null || onChange === void 0 ? void 0 : onChange(formValue);
222
206
  });
223
207
  var handleSubmit = (0, _utils.useEventCallback)(function (event) {
@@ -231,10 +215,10 @@ var Form = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
231
215
  });
232
216
  var handleFieldError = (0, _utils.useEventCallback)(function (name, errorMessage) {
233
217
  var _extends4;
234
- var formError = (0, _extends6.default)({}, realFormError, (_extends4 = {}, _extends4[name] = errorMessage, _extends4));
235
- setFormError(formError);
236
- onError === null || onError === void 0 ? void 0 : onError(formError);
237
- onCheck === null || onCheck === void 0 ? void 0 : onCheck(formError);
218
+ var nextFormError = (0, _extends6.default)({}, formError, (_extends4 = {}, _extends4[name] = errorMessage, _extends4));
219
+ setFormError(nextFormError);
220
+ onError === null || onError === void 0 ? void 0 : onError(nextFormError);
221
+ onCheck === null || onCheck === void 0 ? void 0 : onCheck(nextFormError);
238
222
  });
239
223
  var handleFieldSuccess = (0, _utils.useEventCallback)(function (name) {
240
224
  removeFieldError(name);
@@ -247,7 +231,7 @@ var Form = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
247
231
  return (0, _extends6.default)({}, formValue, (_extends5 = {}, _extends5[fieldName] = fieldValue, _extends5));
248
232
  };
249
233
  var handleFieldChange = (0, _utils.useEventCallback)(function (name, value, event) {
250
- var nextFormValue = setFieldValue(realFormValue, name, value);
234
+ var nextFormValue = setFieldValue(formValue, name, value);
251
235
  setFormValue(nextFormValue);
252
236
  onChange === null || onChange === void 0 ? void 0 : onChange(nextFormValue, event);
253
237
  });
@@ -260,7 +244,7 @@ var Form = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
260
244
  readOnly: readOnly,
261
245
  plaintext: plaintext,
262
246
  disabled: disabled,
263
- formError: realFormError,
247
+ formError: formError,
264
248
  nestedField: nestedField,
265
249
  removeFieldValue: removeFieldValue,
266
250
  removeFieldError: removeFieldError,
@@ -270,7 +254,7 @@ var Form = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
270
254
  onFieldError: handleFieldError,
271
255
  onFieldSuccess: handleFieldSuccess
272
256
  };
273
- }, [getCombinedModel, checkTrigger, errorFromContext, readOnly, plaintext, disabled, realFormError, nestedField, removeFieldValue, removeFieldError, pushFieldRule, removeFieldRule, handleFieldChange, handleFieldError, handleFieldSuccess]);
257
+ }, [getCombinedModel, checkTrigger, errorFromContext, readOnly, plaintext, disabled, formError, nestedField, removeFieldValue, removeFieldError, pushFieldRule, removeFieldRule, handleFieldChange, handleFieldError, handleFieldSuccess]);
274
258
  return /*#__PURE__*/_react.default.createElement("form", (0, _extends6.default)({}, rest, {
275
259
  ref: rootRef,
276
260
  onSubmit: handleSubmit,
@@ -278,7 +262,7 @@ var Form = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
278
262
  }), /*#__PURE__*/_react.default.createElement(_FormContext.default.Provider, {
279
263
  value: formContextValue
280
264
  }, /*#__PURE__*/_react.default.createElement(_FormContext.FormValueContext.Provider, {
281
- value: realFormValue
265
+ value: formValue
282
266
  }, children)));
283
267
  });
284
268
  Form.Control = _FormControl.default;