rsuite 5.58.0 → 5.59.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/Avatar/styles/index.css +74 -3
- package/Avatar/styles/index.less +25 -1
- package/Avatar/styles/mixin.less +8 -0
- package/CHANGELOG.md +24 -0
- package/Drawer/styles/index.css +4 -0
- package/Drawer/styles/index.less +5 -0
- package/cjs/Avatar/Avatar.d.ts +30 -5
- package/cjs/Avatar/Avatar.js +47 -21
- package/cjs/Avatar/AvatarIcon.d.ts +3 -0
- package/cjs/Avatar/AvatarIcon.js +24 -0
- package/cjs/Avatar/useImage.d.ts +39 -0
- package/cjs/Avatar/useImage.js +75 -0
- package/cjs/AvatarGroup/AvatarGroup.d.ts +14 -6
- package/cjs/DateInput/DateField.js +5 -0
- package/cjs/Heading/index.d.ts +1 -1
- package/cjs/Heading/index.js +3 -4
- package/cjs/Modal/Modal.js +36 -21
- package/cjs/Text/index.d.ts +1 -1
- package/cjs/Text/index.js +3 -4
- package/cjs/internals/Overlay/Modal.js +2 -1
- package/dist/rsuite-no-reset-rtl.css +75 -3
- package/dist/rsuite-no-reset-rtl.min.css +1 -1
- package/dist/rsuite-no-reset-rtl.min.css.map +1 -1
- package/dist/rsuite-no-reset.css +75 -3
- package/dist/rsuite-no-reset.min.css +1 -1
- package/dist/rsuite-no-reset.min.css.map +1 -1
- package/dist/rsuite-rtl.css +75 -3
- package/dist/rsuite-rtl.min.css +1 -1
- package/dist/rsuite-rtl.min.css.map +1 -1
- package/dist/rsuite.css +75 -3
- package/dist/rsuite.js +29 -7
- package/dist/rsuite.js.map +1 -1
- package/dist/rsuite.min.css +1 -1
- package/dist/rsuite.min.css.map +1 -1
- package/dist/rsuite.min.js +1 -1
- package/dist/rsuite.min.js.map +1 -1
- package/esm/Avatar/Avatar.d.ts +30 -5
- package/esm/Avatar/Avatar.js +48 -22
- package/esm/Avatar/AvatarIcon.d.ts +3 -0
- package/esm/Avatar/AvatarIcon.js +18 -0
- package/esm/Avatar/useImage.d.ts +39 -0
- package/esm/Avatar/useImage.js +70 -0
- package/esm/AvatarGroup/AvatarGroup.d.ts +14 -6
- package/esm/DateInput/DateField.js +5 -0
- package/esm/Heading/index.d.ts +1 -1
- package/esm/Heading/index.js +0 -1
- package/esm/Modal/Modal.js +36 -21
- package/esm/Text/index.d.ts +1 -1
- package/esm/Text/index.js +0 -1
- package/esm/internals/Overlay/Modal.js +2 -1
- package/package.json +1 -1
- package/styles/color-modes/dark.less +2 -0
- package/styles/color-modes/high-contrast.less +2 -0
- package/styles/color-modes/light.less +2 -0
- package/styles/variables.less +12 -20
package/Avatar/styles/index.css
CHANGED
|
@@ -3,22 +3,31 @@
|
|
|
3
3
|
--rs-gray-0: #fff;
|
|
4
4
|
--rs-gray-300: #d9d9d9;
|
|
5
5
|
--rs-gray-400: #c5c6c7;
|
|
6
|
+
--rs-gray-900: #272c36;
|
|
6
7
|
--rs-avatar-bg: var(--rs-gray-300);
|
|
7
8
|
--rs-avatar-text: var(--rs-gray-0);
|
|
9
|
+
--rs-avatar-offset-color: var(--rs-gray-0);
|
|
10
|
+
--rs-avatar-ring-color: var(--rs-avatar-bg);
|
|
8
11
|
}
|
|
9
12
|
.rs-theme-dark {
|
|
10
13
|
--rs-gray-0: #fff;
|
|
11
14
|
--rs-gray-300: #858b94;
|
|
12
15
|
--rs-gray-400: #6a6f76;
|
|
16
|
+
--rs-gray-900: #0f131a;
|
|
13
17
|
--rs-avatar-bg: var(--rs-gray-400);
|
|
14
18
|
--rs-avatar-text: var(--rs-gray-0);
|
|
19
|
+
--rs-avatar-offset-color: var(--rs-gray-900);
|
|
20
|
+
--rs-avatar-ring-color: var(--rs-avatar-bg);
|
|
15
21
|
}
|
|
16
22
|
.rs-theme-high-contrast {
|
|
17
23
|
--rs-gray-0: #fff;
|
|
18
24
|
--rs-gray-300: #858b94;
|
|
19
25
|
--rs-gray-400: #6a6f76;
|
|
26
|
+
--rs-gray-900: #0f131a;
|
|
20
27
|
--rs-avatar-bg: var(--rs-gray-400);
|
|
21
28
|
--rs-avatar-text: var(--rs-gray-0);
|
|
29
|
+
--rs-avatar-offset-color: var(--rs-gray-900);
|
|
30
|
+
--rs-avatar-ring-color: var(--rs-avatar-bg);
|
|
22
31
|
}
|
|
23
32
|
/* stylelint-disable */
|
|
24
33
|
*[class*='rs-'] {
|
|
@@ -74,13 +83,47 @@
|
|
|
74
83
|
background: var(--rs-avatar-bg);
|
|
75
84
|
text-align: center;
|
|
76
85
|
padding: 0 2px;
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
86
|
+
}
|
|
87
|
+
.rs-avatar-icon {
|
|
88
|
+
position: absolute;
|
|
89
|
+
}
|
|
90
|
+
.rs-avatar-bordered {
|
|
91
|
+
--rs-ring-offset-shadow: var(--rs-avatar-offset-color) 0 0 0 2px;
|
|
92
|
+
--rs-ring-shadow: var(--rs-avatar-ring-color) 0 0 0 4px;
|
|
93
|
+
-webkit-box-shadow: var(--rs-ring-offset-shadow), var(--rs-ring-shadow), 0 0 #0000;
|
|
94
|
+
box-shadow: var(--rs-ring-offset-shadow), var(--rs-ring-shadow), 0 0 #0000;
|
|
80
95
|
}
|
|
81
96
|
.rs-avatar-circle {
|
|
82
97
|
border-radius: 50%;
|
|
83
98
|
}
|
|
99
|
+
.rs-avatar-xxl {
|
|
100
|
+
width: 120px;
|
|
101
|
+
height: 120px;
|
|
102
|
+
font-size: 48px;
|
|
103
|
+
}
|
|
104
|
+
.rs-avatar-xxl > .rs-icon {
|
|
105
|
+
font-size: 84px;
|
|
106
|
+
height: 84px;
|
|
107
|
+
}
|
|
108
|
+
.rs-avatar-xxl > .rs-avatar-image {
|
|
109
|
+
width: 120px;
|
|
110
|
+
height: 120px;
|
|
111
|
+
line-height: 120px;
|
|
112
|
+
}
|
|
113
|
+
.rs-avatar-xl {
|
|
114
|
+
width: 90px;
|
|
115
|
+
height: 90px;
|
|
116
|
+
font-size: 36px;
|
|
117
|
+
}
|
|
118
|
+
.rs-avatar-xl > .rs-icon {
|
|
119
|
+
font-size: 63px;
|
|
120
|
+
height: 63px;
|
|
121
|
+
}
|
|
122
|
+
.rs-avatar-xl > .rs-avatar-image {
|
|
123
|
+
width: 90px;
|
|
124
|
+
height: 90px;
|
|
125
|
+
line-height: 90px;
|
|
126
|
+
}
|
|
84
127
|
.rs-avatar-lg {
|
|
85
128
|
width: 60px;
|
|
86
129
|
height: 60px;
|
|
@@ -123,5 +166,33 @@
|
|
|
123
166
|
height: 20px;
|
|
124
167
|
line-height: 20px;
|
|
125
168
|
}
|
|
169
|
+
.rs-avatar-red {
|
|
170
|
+
--rs-avatar-bg: var(--rs-red-500);
|
|
171
|
+
--rs-avatar-ring-color: var(--rs-red-500);
|
|
172
|
+
}
|
|
173
|
+
.rs-avatar-orange {
|
|
174
|
+
--rs-avatar-bg: var(--rs-orange-500);
|
|
175
|
+
--rs-avatar-ring-color: var(--rs-orange-500);
|
|
176
|
+
}
|
|
177
|
+
.rs-avatar-yellow {
|
|
178
|
+
--rs-avatar-bg: var(--rs-yellow-500);
|
|
179
|
+
--rs-avatar-ring-color: var(--rs-yellow-500);
|
|
180
|
+
}
|
|
181
|
+
.rs-avatar-green {
|
|
182
|
+
--rs-avatar-bg: var(--rs-green-500);
|
|
183
|
+
--rs-avatar-ring-color: var(--rs-green-500);
|
|
184
|
+
}
|
|
185
|
+
.rs-avatar-cyan {
|
|
186
|
+
--rs-avatar-bg: var(--rs-cyan-500);
|
|
187
|
+
--rs-avatar-ring-color: var(--rs-cyan-500);
|
|
188
|
+
}
|
|
189
|
+
.rs-avatar-blue {
|
|
190
|
+
--rs-avatar-bg: var(--rs-blue-500);
|
|
191
|
+
--rs-avatar-ring-color: var(--rs-blue-500);
|
|
192
|
+
}
|
|
193
|
+
.rs-avatar-violet {
|
|
194
|
+
--rs-avatar-bg: var(--rs-violet-500);
|
|
195
|
+
--rs-avatar-ring-color: var(--rs-violet-500);
|
|
196
|
+
}
|
|
126
197
|
|
|
127
198
|
/*# sourceMappingURL=index.css.map */
|
package/Avatar/styles/index.less
CHANGED
|
@@ -28,14 +28,31 @@
|
|
|
28
28
|
background: var(--rs-avatar-bg);
|
|
29
29
|
text-align: center;
|
|
30
30
|
padding: 0 2px;
|
|
31
|
-
.ellipsis-basic();
|
|
32
31
|
}
|
|
33
32
|
}
|
|
34
33
|
|
|
34
|
+
&-icon {
|
|
35
|
+
position: absolute;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
&-bordered {
|
|
39
|
+
--rs-ring-offset-shadow: var(--rs-avatar-offset-color) 0 0 0 2px;
|
|
40
|
+
--rs-ring-shadow: var(--rs-avatar-ring-color) 0 0 0 4px;
|
|
41
|
+
box-shadow: var(--rs-ring-offset-shadow), var(--rs-ring-shadow), 0 0 #0000;
|
|
42
|
+
}
|
|
43
|
+
|
|
35
44
|
&-circle {
|
|
36
45
|
border-radius: 50%;
|
|
37
46
|
}
|
|
38
47
|
|
|
48
|
+
&-xxl {
|
|
49
|
+
.avatar-xxl();
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
&-xl {
|
|
53
|
+
.avatar-xl();
|
|
54
|
+
}
|
|
55
|
+
|
|
39
56
|
&-lg {
|
|
40
57
|
.avatar-lg();
|
|
41
58
|
}
|
|
@@ -48,3 +65,10 @@
|
|
|
48
65
|
.avatar-xs();
|
|
49
66
|
}
|
|
50
67
|
}
|
|
68
|
+
|
|
69
|
+
each(@spectrum, .(@color) {
|
|
70
|
+
.rs-avatar-@{color} {
|
|
71
|
+
--rs-avatar-bg: var(~'--rs-@{color}-500');
|
|
72
|
+
--rs-avatar-ring-color: var(~'--rs-@{color}-500');
|
|
73
|
+
}
|
|
74
|
+
});
|
package/Avatar/styles/mixin.less
CHANGED
|
@@ -17,6 +17,14 @@
|
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
+
.avatar-xxl() {
|
|
21
|
+
.avatar-size(@avatar-size-xxl, @avatar-font-size-xxl);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.avatar-xl() {
|
|
25
|
+
.avatar-size(@avatar-size-xl, @avatar-font-size-xl);
|
|
26
|
+
}
|
|
27
|
+
|
|
20
28
|
.avatar-lg() {
|
|
21
29
|
.avatar-size(@avatar-size-lg, @avatar-font-size-lg);
|
|
22
30
|
}
|
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,27 @@
|
|
|
1
|
+
# [5.59.0](https://github.com/rsuite/rsuite/compare/v5.58.1...v5.59.0) (2024-04-03)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* **DatePicker,DateRangePicker:** fix the date change when the input date is incomplete ([#3719](https://github.com/rsuite/rsuite/issues/3719)) ([24f162f](https://github.com/rsuite/rsuite/commit/24f162f6ee403dbca0829159f3a099167b278bcf))
|
|
7
|
+
* **Drawer:** fix the focus cannot be moved to elements outside the Drawer when `backdrop=false` ([#3716](https://github.com/rsuite/rsuite/issues/3716)) ([f044445](https://github.com/rsuite/rsuite/commit/f044445e97d653debcb1772a70c51b4a30d44f6b))
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
### Features
|
|
11
|
+
|
|
12
|
+
* **Avatar:** add support for `bordered` and `color` props ([#3711](https://github.com/rsuite/rsuite/issues/3711)) ([3ca7dc1](https://github.com/rsuite/rsuite/commit/3ca7dc1eeaf46461fff107012dac972d4ef20c1b))
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
## [5.58.1](https://github.com/rsuite/rsuite/compare/v5.58.0...v5.58.1) (2024-03-28)
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
### Bug Fixes
|
|
20
|
+
|
|
21
|
+
* fix build errors caused by export type ([#3712](https://github.com/rsuite/rsuite/issues/3712)) ([94e9ef4](https://github.com/rsuite/rsuite/commit/94e9ef423c7722ecfa4ed3d72a320b38f13a0c6d))
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
1
25
|
# [5.58.0](https://github.com/rsuite/rsuite/compare/v5.57.0...v5.58.0) (2024-03-28)
|
|
2
26
|
|
|
3
27
|
|
package/Drawer/styles/index.css
CHANGED
|
@@ -108,6 +108,9 @@
|
|
|
108
108
|
width: 100%;
|
|
109
109
|
height: 100%;
|
|
110
110
|
}
|
|
111
|
+
.rs-drawer-wrapper.rs-drawer-no-backdrop {
|
|
112
|
+
pointer-events: none;
|
|
113
|
+
}
|
|
111
114
|
.rs-drawer {
|
|
112
115
|
display: none;
|
|
113
116
|
overflow: hidden;
|
|
@@ -117,6 +120,7 @@
|
|
|
117
120
|
-webkit-box-shadow: var(--rs-drawer-shadow);
|
|
118
121
|
box-shadow: 0 4px 4px rgba(0, 0, 0, 0.12), 0 0 10px rgba(0, 0, 0, 0.06);
|
|
119
122
|
box-shadow: var(--rs-drawer-shadow);
|
|
123
|
+
pointer-events: auto;
|
|
120
124
|
outline: 0;
|
|
121
125
|
}
|
|
122
126
|
.rs-drawer-open.rs-drawer-has-backdrop {
|
package/Drawer/styles/index.less
CHANGED
|
@@ -9,6 +9,10 @@
|
|
|
9
9
|
left: 0;
|
|
10
10
|
width: 100%;
|
|
11
11
|
height: 100%;
|
|
12
|
+
|
|
13
|
+
&.rs-drawer-no-backdrop {
|
|
14
|
+
pointer-events: none;
|
|
15
|
+
}
|
|
12
16
|
}
|
|
13
17
|
|
|
14
18
|
// Container that the drawer scrolls within
|
|
@@ -18,6 +22,7 @@
|
|
|
18
22
|
position: fixed;
|
|
19
23
|
z-index: @zindex-drawer;
|
|
20
24
|
box-shadow: var(--rs-drawer-shadow);
|
|
25
|
+
pointer-events: auto;
|
|
21
26
|
// Prevent Chrome on Windows from adding a focus outline. For details, see
|
|
22
27
|
// https://github.com/twbs/bootstrap/pull/10951.
|
|
23
28
|
outline: 0;
|
package/cjs/Avatar/Avatar.d.ts
CHANGED
|
@@ -1,8 +1,14 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { WithAsProps, RsRefForwardingComponent, TypeAttributes } from '../@types/common';
|
|
3
|
+
import { type Size } from '../AvatarGroup/AvatarGroup';
|
|
3
4
|
export interface AvatarProps extends WithAsProps {
|
|
4
|
-
/**
|
|
5
|
-
|
|
5
|
+
/**
|
|
6
|
+
* A avatar can have different sizes.
|
|
7
|
+
*
|
|
8
|
+
* @default 'md'
|
|
9
|
+
* @version xxl and xs added in v5.59.0
|
|
10
|
+
*/
|
|
11
|
+
size?: Size;
|
|
6
12
|
/**
|
|
7
13
|
* The `src` attribute for the `img` element.
|
|
8
14
|
*/
|
|
@@ -21,10 +27,29 @@ export interface AvatarProps extends WithAsProps {
|
|
|
21
27
|
* It can be used to listen for the loading error event.
|
|
22
28
|
*/
|
|
23
29
|
imgProps?: React.ImgHTMLAttributes<HTMLImageElement>;
|
|
24
|
-
/**
|
|
30
|
+
/**
|
|
31
|
+
* Set avatar shape to circle
|
|
32
|
+
*/
|
|
25
33
|
circle?: boolean;
|
|
26
|
-
/**
|
|
34
|
+
/**
|
|
35
|
+
* This attribute defines an alternative text description of the image
|
|
36
|
+
*/
|
|
27
37
|
alt?: string;
|
|
38
|
+
/**
|
|
39
|
+
* Show a border around the avatar.
|
|
40
|
+
* @version 5.59.0
|
|
41
|
+
*/
|
|
42
|
+
bordered?: boolean;
|
|
43
|
+
/**
|
|
44
|
+
* Sets the avatar background color.
|
|
45
|
+
* @version 5.59.0
|
|
46
|
+
*/
|
|
47
|
+
color?: TypeAttributes.Color;
|
|
48
|
+
/**
|
|
49
|
+
* Callback fired when the image failed to load.
|
|
50
|
+
* @version 5.59.0
|
|
51
|
+
*/
|
|
52
|
+
onError?: OnErrorEventHandler;
|
|
28
53
|
}
|
|
29
54
|
/**
|
|
30
55
|
* The Avatar component is used to represent user or brand.
|
package/cjs/Avatar/Avatar.js
CHANGED
|
@@ -5,53 +5,79 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
|
6
6
|
exports.__esModule = true;
|
|
7
7
|
exports.default = void 0;
|
|
8
|
-
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
8
|
var _taggedTemplateLiteralLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteralLoose"));
|
|
9
|
+
var _extends2 = _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"));
|
|
13
13
|
var _utils = require("../utils");
|
|
14
14
|
var _AvatarGroup = require("../AvatarGroup/AvatarGroup");
|
|
15
15
|
var _propTypes2 = require("../internals/propTypes");
|
|
16
|
-
var
|
|
16
|
+
var _AvatarIcon = _interopRequireDefault(require("./AvatarIcon"));
|
|
17
|
+
var _useImage2 = _interopRequireDefault(require("./useImage"));
|
|
18
|
+
var _templateObject, _templateObject2;
|
|
17
19
|
/**
|
|
18
20
|
* The Avatar component is used to represent user or brand.
|
|
19
21
|
* @see https://rsuitejs.com/components/avatar
|
|
20
22
|
*/
|
|
21
23
|
var Avatar = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
22
|
-
var
|
|
23
|
-
|
|
24
|
-
|
|
24
|
+
var _useContext = (0, _react.useContext)(_AvatarGroup.AvatarGroupContext),
|
|
25
|
+
groupSize = _useContext.size;
|
|
26
|
+
var _props$as = props.as,
|
|
25
27
|
Component = _props$as === void 0 ? 'div' : _props$as,
|
|
26
|
-
|
|
28
|
+
bordered = props.bordered,
|
|
29
|
+
alt = props.alt,
|
|
27
30
|
className = props.className,
|
|
28
31
|
children = props.children,
|
|
32
|
+
circle = props.circle,
|
|
33
|
+
color = props.color,
|
|
34
|
+
_props$classPrefix = props.classPrefix,
|
|
35
|
+
classPrefix = _props$classPrefix === void 0 ? 'avatar' : _props$classPrefix,
|
|
36
|
+
_props$size = props.size,
|
|
37
|
+
size = _props$size === void 0 ? groupSize : _props$size,
|
|
29
38
|
src = props.src,
|
|
30
39
|
srcSet = props.srcSet,
|
|
31
40
|
sizes = props.sizes,
|
|
32
41
|
imgProps = props.imgProps,
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["classPrefix", "as", "size", "className", "children", "src", "srcSet", "sizes", "imgProps", "circle", "alt"]);
|
|
36
|
-
var _useContext = (0, _react.useContext)(_AvatarGroup.AvatarGroupContext),
|
|
37
|
-
size = _useContext.size;
|
|
42
|
+
onError = props.onError,
|
|
43
|
+
rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "bordered", "alt", "className", "children", "circle", "color", "classPrefix", "size", "src", "srcSet", "sizes", "imgProps", "onError"]);
|
|
38
44
|
var _useClassNames = (0, _utils.useClassNames)(classPrefix),
|
|
39
45
|
withClassPrefix = _useClassNames.withClassPrefix,
|
|
40
46
|
prefix = _useClassNames.prefix,
|
|
41
47
|
merge = _useClassNames.merge;
|
|
42
|
-
var classes = merge(className, withClassPrefix(
|
|
43
|
-
circle: circle
|
|
48
|
+
var classes = merge(className, withClassPrefix(size, color, {
|
|
49
|
+
circle: circle,
|
|
50
|
+
bordered: bordered
|
|
44
51
|
}));
|
|
52
|
+
var imageProps = (0, _extends2.default)({}, imgProps, {
|
|
53
|
+
alt: alt,
|
|
54
|
+
src: src,
|
|
55
|
+
srcSet: srcSet,
|
|
56
|
+
sizes: sizes
|
|
57
|
+
});
|
|
58
|
+
var _useImage = (0, _useImage2.default)((0, _extends2.default)({}, imageProps, {
|
|
59
|
+
onError: onError
|
|
60
|
+
})),
|
|
61
|
+
loaded = _useImage.loaded;
|
|
62
|
+
var altComponent = (0, _react.useMemo)(function () {
|
|
63
|
+
if (alt) {
|
|
64
|
+
return /*#__PURE__*/_react.default.createElement("span", {
|
|
65
|
+
role: "img",
|
|
66
|
+
"aria-label": alt
|
|
67
|
+
}, alt);
|
|
68
|
+
}
|
|
69
|
+
return null;
|
|
70
|
+
}, [alt]);
|
|
71
|
+
var placeholder = children || altComponent || /*#__PURE__*/_react.default.createElement(_AvatarIcon.default, {
|
|
72
|
+
className: prefix(_templateObject || (_templateObject = (0, _taggedTemplateLiteralLoose2.default)(["icon"])))
|
|
73
|
+
});
|
|
74
|
+
var image = loaded ? /*#__PURE__*/_react.default.createElement("img", (0, _extends2.default)({}, imageProps, {
|
|
75
|
+
className: prefix(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteralLoose2.default)(["image"])))
|
|
76
|
+
})) : placeholder;
|
|
45
77
|
return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({}, rest, {
|
|
46
78
|
ref: ref,
|
|
47
79
|
className: classes
|
|
48
|
-
}), src
|
|
49
|
-
className: prefix(_templateObject || (_templateObject = (0, _taggedTemplateLiteralLoose2.default)(["image"]))),
|
|
50
|
-
src: src,
|
|
51
|
-
sizes: sizes,
|
|
52
|
-
srcSet: srcSet,
|
|
53
|
-
alt: alt
|
|
54
|
-
})) : children);
|
|
80
|
+
}), src ? image : placeholder);
|
|
55
81
|
});
|
|
56
82
|
Avatar.displayName = 'Avatar';
|
|
57
83
|
Avatar.propTypes = {
|
|
@@ -59,7 +85,7 @@ Avatar.propTypes = {
|
|
|
59
85
|
classPrefix: _propTypes.default.string,
|
|
60
86
|
className: _propTypes.default.string,
|
|
61
87
|
children: _propTypes.default.node,
|
|
62
|
-
size: (0, _propTypes2.oneOf)(['lg', 'md', 'sm', 'xs']),
|
|
88
|
+
size: (0, _propTypes2.oneOf)(['xxl', 'xl', 'lg', 'md', 'sm', 'xs']),
|
|
63
89
|
src: _propTypes.default.string,
|
|
64
90
|
sizes: _propTypes.default.string,
|
|
65
91
|
srcSet: _propTypes.default.string,
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
5
|
+
exports.__esModule = true;
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
var AvatarIcon = function AvatarIcon(props) {
|
|
10
|
+
return /*#__PURE__*/_react.default.createElement("svg", (0, _extends2.default)({
|
|
11
|
+
role: "img",
|
|
12
|
+
"aria-label": "Avatar",
|
|
13
|
+
stroke: "currentColor",
|
|
14
|
+
fill: "currentColor",
|
|
15
|
+
strokeWidth: "0",
|
|
16
|
+
viewBox: "0 0 448 512",
|
|
17
|
+
height: "60%",
|
|
18
|
+
width: "60%"
|
|
19
|
+
}, props), /*#__PURE__*/_react.default.createElement("path", {
|
|
20
|
+
d: "M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512H418.3c16.4 0 29.7-13.3 29.7-29.7C448 383.8 368.2 304 269.7 304H178.3z"
|
|
21
|
+
}));
|
|
22
|
+
};
|
|
23
|
+
var _default = AvatarIcon;
|
|
24
|
+
exports.default = _default;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { ImgHTMLAttributes } from 'react';
|
|
2
|
+
interface UseImageProps {
|
|
3
|
+
/**
|
|
4
|
+
* The image `src` attribute
|
|
5
|
+
*/
|
|
6
|
+
src?: string;
|
|
7
|
+
/**
|
|
8
|
+
* The image `srcSet` attribute
|
|
9
|
+
*/
|
|
10
|
+
srcSet?: string;
|
|
11
|
+
/**
|
|
12
|
+
* The image `sizes` attribute
|
|
13
|
+
*/
|
|
14
|
+
sizes?: string;
|
|
15
|
+
/**
|
|
16
|
+
* The image `crossOrigin` attribute
|
|
17
|
+
*/
|
|
18
|
+
crossOrigin?: ImgHTMLAttributes<HTMLImageElement>['crossOrigin'];
|
|
19
|
+
/**
|
|
20
|
+
* Callback fired when the image failed to load.
|
|
21
|
+
*/
|
|
22
|
+
onError?: OnErrorEventHandler;
|
|
23
|
+
}
|
|
24
|
+
declare type Status = 'pending' | 'loading' | 'error' | 'loaded';
|
|
25
|
+
/**
|
|
26
|
+
* A hook that loads an image and returns the status of the image.
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```jsx
|
|
30
|
+
* const { loaded } = useImage({ src:'https://example.com/image.jpg' });
|
|
31
|
+
*
|
|
32
|
+
* return loaded ? <img src="https://example.com/image.jpg" /> : <Placeholder />;
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
declare const useImage: (props: UseImageProps) => {
|
|
36
|
+
loaded: boolean;
|
|
37
|
+
status: Status;
|
|
38
|
+
};
|
|
39
|
+
export default useImage;
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
exports.__esModule = true;
|
|
5
|
+
exports.default = void 0;
|
|
6
|
+
var _react = require("react");
|
|
7
|
+
var _utils = require("../utils");
|
|
8
|
+
/**
|
|
9
|
+
* A hook that loads an image and returns the status of the image.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```jsx
|
|
13
|
+
* const { loaded } = useImage({ src:'https://example.com/image.jpg' });
|
|
14
|
+
*
|
|
15
|
+
* return loaded ? <img src="https://example.com/image.jpg" /> : <Placeholder />;
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
var useImage = function useImage(props) {
|
|
19
|
+
var src = props.src,
|
|
20
|
+
srcSet = props.srcSet,
|
|
21
|
+
sizes = props.sizes,
|
|
22
|
+
crossOrigin = props.crossOrigin,
|
|
23
|
+
onError = props.onError;
|
|
24
|
+
var _useState = (0, _react.useState)('pending'),
|
|
25
|
+
status = _useState[0],
|
|
26
|
+
setStatus = _useState[1];
|
|
27
|
+
var imgRef = (0, _react.useRef)(null);
|
|
28
|
+
var flush = function flush() {
|
|
29
|
+
if (imgRef.current) {
|
|
30
|
+
imgRef.current.onload = null;
|
|
31
|
+
imgRef.current.onerror = null;
|
|
32
|
+
imgRef.current = null;
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
var handleLoad = (0, _react.useCallback)(function () {
|
|
36
|
+
setStatus('loaded');
|
|
37
|
+
flush();
|
|
38
|
+
}, []);
|
|
39
|
+
var handleError = (0, _react.useCallback)(function (event) {
|
|
40
|
+
setStatus('error');
|
|
41
|
+
flush();
|
|
42
|
+
onError === null || onError === void 0 ? void 0 : onError(event);
|
|
43
|
+
}, [onError]);
|
|
44
|
+
(0, _react.useEffect)(function () {
|
|
45
|
+
setStatus(src ? 'loading' : 'pending');
|
|
46
|
+
}, [src]);
|
|
47
|
+
var loadImge = (0, _react.useCallback)(function () {
|
|
48
|
+
if (!src) {
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
var img = new Image();
|
|
52
|
+
img.onload = handleLoad;
|
|
53
|
+
img.onerror = handleError;
|
|
54
|
+
if (src) img.src = src;
|
|
55
|
+
if (srcSet) img.srcset = srcSet;
|
|
56
|
+
if (sizes) img.sizes = sizes;
|
|
57
|
+
if (crossOrigin) img.crossOrigin = crossOrigin;
|
|
58
|
+
imgRef.current = img;
|
|
59
|
+
}, [crossOrigin, handleError, handleLoad, sizes, src, srcSet]);
|
|
60
|
+
(0, _utils.useIsomorphicLayoutEffect)(function () {
|
|
61
|
+
if (status === 'loading') {
|
|
62
|
+
loadImge();
|
|
63
|
+
}
|
|
64
|
+
}, [loadImge, status]);
|
|
65
|
+
(0, _react.useEffect)(function () {
|
|
66
|
+
return flush;
|
|
67
|
+
}, []);
|
|
68
|
+
console.log('status', status);
|
|
69
|
+
return {
|
|
70
|
+
loaded: status === 'loaded',
|
|
71
|
+
status: status
|
|
72
|
+
};
|
|
73
|
+
};
|
|
74
|
+
var _default = useImage;
|
|
75
|
+
exports.default = _default;
|
|
@@ -1,15 +1,23 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { WithAsProps, RsRefForwardingComponent } from '../@types/common';
|
|
3
|
+
export declare type Size = 'xxl' | 'xl' | 'lg' | 'md' | 'sm' | 'xs';
|
|
3
4
|
export interface AvatarGroupProps extends WithAsProps {
|
|
4
|
-
/**
|
|
5
|
+
/**
|
|
6
|
+
* Render all avatars as stacks
|
|
7
|
+
*/
|
|
5
8
|
stack?: boolean;
|
|
6
|
-
/**
|
|
9
|
+
/**
|
|
10
|
+
* Set the spacing of the avatar
|
|
11
|
+
*/
|
|
7
12
|
spacing?: number;
|
|
8
|
-
/**
|
|
9
|
-
|
|
13
|
+
/**
|
|
14
|
+
* Set the size of all avatars.
|
|
15
|
+
* @version xxl and xs added in v5.59.0
|
|
16
|
+
*/
|
|
17
|
+
size?: Size;
|
|
10
18
|
}
|
|
11
19
|
export declare const AvatarGroupContext: React.Context<{
|
|
12
|
-
size?:
|
|
20
|
+
size?: Size | undefined;
|
|
13
21
|
}>;
|
|
14
22
|
/**
|
|
15
23
|
* The AvatarGroup component is used to represent a collection of avatars.
|
|
@@ -180,6 +180,11 @@ var useDateField = function useDateField(format, localize, date) {
|
|
|
180
180
|
if (isEmptyValue(type, value)) {
|
|
181
181
|
return null;
|
|
182
182
|
}
|
|
183
|
+
|
|
184
|
+
// Invalid Date
|
|
185
|
+
return new Date('');
|
|
186
|
+
} else if (type === 'day' && value === 0) {
|
|
187
|
+
// Invalid Date. If the type is day and the value is 0, it is considered an invalid date.
|
|
183
188
|
return new Date('');
|
|
184
189
|
}
|
|
185
190
|
if (type === 'meridian' && typeof hour === 'number') {
|
package/cjs/Heading/index.d.ts
CHANGED
package/cjs/Heading/index.js
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
"use strict";
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
5
5
|
exports.__esModule = true;
|
|
6
|
-
exports.default =
|
|
7
|
-
var _Heading =
|
|
8
|
-
exports.HeadingProps = _Heading.HeadingProps;
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _Heading = _interopRequireDefault(require("./Heading"));
|
|
9
8
|
var _default = _Heading.default;
|
|
10
9
|
exports.default = _default;
|