rsuite 5.75.0 → 5.76.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.
- package/CHANGELOG.md +18 -0
- package/Image/package.json +7 -0
- package/Image/styles/index.css +33 -0
- package/Image/styles/index.less +34 -0
- package/cjs/Carousel/Carousel.js +1 -0
- package/cjs/CustomProvider/CustomProvider.d.ts +13 -15
- package/cjs/CustomProvider/CustomProvider.js +6 -4
- package/cjs/CustomProvider/types.d.ts +2 -0
- package/cjs/Image/Image.d.ts +42 -0
- package/cjs/Image/Image.js +102 -0
- package/cjs/Image/ImageWrapper.d.ts +1 -0
- package/cjs/Image/ImageWrapper.js +10 -0
- package/cjs/Image/hooks/useImage.d.ts +14 -0
- package/cjs/Image/hooks/useImage.js +68 -0
- package/cjs/Image/index.d.ts +3 -0
- package/cjs/Image/index.js +8 -0
- package/cjs/index.d.ts +2 -0
- package/cjs/index.js +4 -2
- package/cjs/internals/utils/getDOMNode.js +2 -1
- package/cjs/internals/utils/index.d.ts +0 -1
- package/cjs/internals/utils/index.js +1 -4
- package/cjs/toaster/ToastContainer.d.ts +6 -6
- package/cjs/toaster/ToastContainer.js +48 -38
- package/cjs/toaster/render.d.ts +3 -0
- package/cjs/toaster/render.js +43 -0
- package/cjs/toaster/toaster.js +33 -20
- package/cjs/useToaster/useToaster.js +10 -5
- package/dist/rsuite-no-reset-rtl.css +34 -0
- 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 +34 -0
- package/dist/rsuite-no-reset.min.css +1 -1
- package/dist/rsuite-no-reset.min.css.map +1 -1
- package/dist/rsuite-rtl.css +34 -0
- package/dist/rsuite-rtl.min.css +1 -1
- package/dist/rsuite-rtl.min.css.map +1 -1
- package/dist/rsuite.css +34 -0
- package/dist/rsuite.js +63 -19
- 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/Carousel/Carousel.js +1 -0
- package/esm/CustomProvider/CustomProvider.d.ts +13 -15
- package/esm/CustomProvider/CustomProvider.js +7 -5
- package/esm/CustomProvider/types.d.ts +2 -0
- package/esm/Image/Image.d.ts +42 -0
- package/esm/Image/Image.js +97 -0
- package/esm/Image/ImageWrapper.d.ts +1 -0
- package/esm/Image/ImageWrapper.js +6 -0
- package/esm/Image/hooks/useImage.d.ts +14 -0
- package/esm/Image/hooks/useImage.js +63 -0
- package/esm/Image/index.d.ts +3 -0
- package/esm/Image/index.js +3 -0
- package/esm/index.d.ts +2 -0
- package/esm/index.js +1 -0
- package/esm/internals/utils/getDOMNode.js +2 -1
- package/esm/internals/utils/index.d.ts +0 -1
- package/esm/internals/utils/index.js +0 -1
- package/esm/toaster/ToastContainer.d.ts +6 -6
- package/esm/toaster/ToastContainer.js +49 -39
- package/esm/toaster/render.d.ts +3 -0
- package/esm/toaster/render.js +35 -0
- package/esm/toaster/toaster.js +31 -20
- package/esm/useToaster/useToaster.js +10 -5
- package/package.json +1 -1
- package/styles/index.less +1 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,21 @@
|
|
|
1
|
+
## [5.76.1](https://github.com/rsuite/rsuite/compare/v5.76.0...v5.76.1) (2024-12-30)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* **useToaster:** support dynamic container of useToaster with correct styles ([#4088](https://github.com/rsuite/rsuite/issues/4088)) ([62b1a12](https://github.com/rsuite/rsuite/commit/62b1a128bd0f68ddc22a5b0f1acf27c5bc56a69e))
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
# [5.76.0](https://github.com/rsuite/rsuite/compare/v5.75.0...v5.76.0) (2024-12-20)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Features
|
|
14
|
+
|
|
15
|
+
* **Image:** add support for Image ([#4068](https://github.com/rsuite/rsuite/issues/4068)) ([46980f9](https://github.com/rsuite/rsuite/commit/46980f985094110925fa5e2ad5c69a46cd84e7eb))
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
1
19
|
# [5.75.0](https://github.com/rsuite/rsuite/compare/v5.74.2...v5.75.0) (2024-12-06)
|
|
2
20
|
|
|
3
21
|
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
.rs-image {
|
|
2
|
+
--rs-object-fit: cover;
|
|
3
|
+
--rs-object-position: initial;
|
|
4
|
+
-o-object-fit: var(--rs-object-fit);
|
|
5
|
+
object-fit: var(--rs-object-fit);
|
|
6
|
+
-o-object-position: var(--rs-object-position);
|
|
7
|
+
object-position: var(--rs-object-position);
|
|
8
|
+
max-width: 100%;
|
|
9
|
+
}
|
|
10
|
+
.rs-image-rounded {
|
|
11
|
+
border-radius: 6px;
|
|
12
|
+
}
|
|
13
|
+
.rs-image-circle {
|
|
14
|
+
border-radius: 50%;
|
|
15
|
+
}
|
|
16
|
+
.rs-image-bordered {
|
|
17
|
+
border: 1px solid var(--rs-border-primary);
|
|
18
|
+
}
|
|
19
|
+
.rs-image-zoomed {
|
|
20
|
+
-webkit-transition: -webkit-transform 0.3s ease-in-out;
|
|
21
|
+
transition: -webkit-transform 0.3s ease-in-out;
|
|
22
|
+
transition: transform 0.3s ease-in-out;
|
|
23
|
+
transition: transform 0.3s ease-in-out, -webkit-transform 0.3s ease-in-out;
|
|
24
|
+
cursor: pointer;
|
|
25
|
+
}
|
|
26
|
+
.rs-image-zoomed:hover {
|
|
27
|
+
-webkit-transform: matrix(1.25, 0, 0, 1.25, 0, 0);
|
|
28
|
+
transform: matrix(1.25, 0, 0, 1.25, 0, 0);
|
|
29
|
+
}
|
|
30
|
+
.rs-image-wrapper {
|
|
31
|
+
position: relative;
|
|
32
|
+
overflow: hidden;
|
|
33
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
.rs-image {
|
|
2
|
+
--rs-object-fit: cover;
|
|
3
|
+
--rs-object-position: initial;
|
|
4
|
+
|
|
5
|
+
object-fit: var(--rs-object-fit);
|
|
6
|
+
object-position: var(--rs-object-position);
|
|
7
|
+
max-width: 100%;
|
|
8
|
+
|
|
9
|
+
&-rounded {
|
|
10
|
+
border-radius: 6px;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
&-circle {
|
|
14
|
+
border-radius: 50%;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
&-bordered {
|
|
18
|
+
border: 1px solid var(--rs-border-primary);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
&-zoomed {
|
|
22
|
+
transition: transform 0.3s ease-in-out;
|
|
23
|
+
cursor: pointer;
|
|
24
|
+
|
|
25
|
+
&:hover {
|
|
26
|
+
transform: matrix(1.25, 0, 0, 1.25, 0, 0);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.rs-image-wrapper {
|
|
32
|
+
position: relative;
|
|
33
|
+
overflow: hidden;
|
|
34
|
+
}
|
package/cjs/Carousel/Carousel.js
CHANGED
|
@@ -141,6 +141,7 @@ var Carousel = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
141
141
|
}), /*#__PURE__*/_react.default.createElement("div", {
|
|
142
142
|
className: prefix('content')
|
|
143
143
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
144
|
+
"data-testid": "carousel-slider",
|
|
144
145
|
className: prefix('slider'),
|
|
145
146
|
style: sliderStyles,
|
|
146
147
|
onTransitionEnd: handleTransitionEnd
|
|
@@ -142,9 +142,7 @@ export declare const CustomContext: React.Context<CustomProviderProps<{
|
|
|
142
142
|
formattedMonthPattern: string;
|
|
143
143
|
formattedDayPattern: string;
|
|
144
144
|
shortDateFormat: string;
|
|
145
|
-
shortTimeFormat: string;
|
|
146
|
-
* The prefix of the component CSS class
|
|
147
|
-
*/
|
|
145
|
+
shortTimeFormat: string;
|
|
148
146
|
dateLocale: any;
|
|
149
147
|
} | undefined;
|
|
150
148
|
Calendar?: {
|
|
@@ -165,9 +163,7 @@ export declare const CustomContext: React.Context<CustomProviderProps<{
|
|
|
165
163
|
formattedMonthPattern: string;
|
|
166
164
|
formattedDayPattern: string;
|
|
167
165
|
shortDateFormat: string;
|
|
168
|
-
shortTimeFormat: string;
|
|
169
|
-
* The prefix of the component CSS class
|
|
170
|
-
*/
|
|
166
|
+
shortTimeFormat: string;
|
|
171
167
|
dateLocale: any;
|
|
172
168
|
} | undefined;
|
|
173
169
|
DatePicker?: {
|
|
@@ -188,9 +184,7 @@ export declare const CustomContext: React.Context<CustomProviderProps<{
|
|
|
188
184
|
formattedMonthPattern: string;
|
|
189
185
|
formattedDayPattern: string;
|
|
190
186
|
shortDateFormat: string;
|
|
191
|
-
shortTimeFormat: string;
|
|
192
|
-
* The prefix of the component CSS class
|
|
193
|
-
*/
|
|
187
|
+
shortTimeFormat: string;
|
|
194
188
|
dateLocale: any;
|
|
195
189
|
} | undefined;
|
|
196
190
|
DateRangePicker?: {
|
|
@@ -212,14 +206,14 @@ export declare const CustomContext: React.Context<CustomProviderProps<{
|
|
|
212
206
|
formattedMonthPattern: string;
|
|
213
207
|
formattedDayPattern: string;
|
|
214
208
|
shortDateFormat: string;
|
|
215
|
-
shortTimeFormat: string;
|
|
216
|
-
* The prefix of the component CSS class
|
|
217
|
-
*/
|
|
209
|
+
shortTimeFormat: string;
|
|
218
210
|
dateLocale: any;
|
|
219
211
|
} | undefined;
|
|
220
212
|
Combobox?: {
|
|
221
213
|
noResultsText: string;
|
|
222
|
-
placeholder: string;
|
|
214
|
+
placeholder: string; /**
|
|
215
|
+
* The locale object that contains the language and formatting rules for the date.
|
|
216
|
+
*/
|
|
223
217
|
searchPlaceholder: string;
|
|
224
218
|
checkAll: string;
|
|
225
219
|
} | undefined;
|
|
@@ -227,7 +221,9 @@ export declare const CustomContext: React.Context<CustomProviderProps<{
|
|
|
227
221
|
newItem: string;
|
|
228
222
|
createOption: string;
|
|
229
223
|
noResultsText: string;
|
|
230
|
-
placeholder: string;
|
|
224
|
+
placeholder: string; /**
|
|
225
|
+
* The locale object that contains the language and formatting rules for the date.
|
|
226
|
+
*/
|
|
231
227
|
searchPlaceholder: string;
|
|
232
228
|
checkAll: string;
|
|
233
229
|
} | undefined;
|
|
@@ -235,7 +231,9 @@ export declare const CustomContext: React.Context<CustomProviderProps<{
|
|
|
235
231
|
newItem: string;
|
|
236
232
|
createOption: string;
|
|
237
233
|
noResultsText: string;
|
|
238
|
-
placeholder: string;
|
|
234
|
+
placeholder: string; /**
|
|
235
|
+
* The locale object that contains the language and formatting rules for the date.
|
|
236
|
+
*/
|
|
239
237
|
searchPlaceholder: string;
|
|
240
238
|
checkAll: string;
|
|
241
239
|
} | undefined;
|
|
@@ -32,14 +32,15 @@ function CustomProvider(props) {
|
|
|
32
32
|
_props$iconClassPrefi = props.iconClassPrefix,
|
|
33
33
|
iconClassPrefix = _props$iconClassPrefi === void 0 ? classPrefix : _props$iconClassPrefi,
|
|
34
34
|
theme = props.theme,
|
|
35
|
-
|
|
35
|
+
_props$toastContainer = props.toastContainer,
|
|
36
|
+
toastContainer = _props$toastContainer === void 0 ? _ToastContainer.defaultToasterContainer : _props$toastContainer,
|
|
36
37
|
disableRipple = props.disableRipple,
|
|
37
38
|
csp = props.csp,
|
|
38
39
|
disableInlineStyles = props.disableInlineStyles,
|
|
39
40
|
rest = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
|
|
40
41
|
var toasters = (0, _react.useRef)(new Map());
|
|
41
42
|
var _usePortal = (0, _hooks.usePortal)({
|
|
42
|
-
container:
|
|
43
|
+
container: toastContainer,
|
|
43
44
|
waitMount: true
|
|
44
45
|
}),
|
|
45
46
|
Portal = _usePortal.Portal;
|
|
@@ -49,9 +50,10 @@ function CustomProvider(props) {
|
|
|
49
50
|
theme: theme,
|
|
50
51
|
toasters: toasters,
|
|
51
52
|
disableRipple: disableRipple,
|
|
52
|
-
components: components
|
|
53
|
+
components: components,
|
|
54
|
+
toastContainer: toastContainer
|
|
53
55
|
}, rest);
|
|
54
|
-
}, [classPrefix, theme, disableRipple, components, rest]);
|
|
56
|
+
}, [classPrefix, theme, disableRipple, components, toastContainer, rest]);
|
|
55
57
|
var iconContext = (0, _react.useMemo)(function () {
|
|
56
58
|
return {
|
|
57
59
|
classPrefix: iconClassPrefix,
|
|
@@ -53,6 +53,7 @@ import type { InputProps } from '../Input';
|
|
|
53
53
|
import type { InputGroupProps } from '../InputGroup';
|
|
54
54
|
import type { InputNumberProps } from '../InputNumber';
|
|
55
55
|
import type { InputPickerProps } from '../InputPicker';
|
|
56
|
+
import type { ImageProps } from '../Image';
|
|
56
57
|
import type { ListProps } from '../List';
|
|
57
58
|
import type { LoaderProps } from '../Loader';
|
|
58
59
|
import type { MaskedInputProps } from '../MaskedInput';
|
|
@@ -164,6 +165,7 @@ export interface ReactSuiteComponents {
|
|
|
164
165
|
InputGroup: ComponentProps<InputGroupProps>;
|
|
165
166
|
InputNumber: ComponentProps<InputNumberProps>;
|
|
166
167
|
InputPicker: ComponentProps<InputPickerProps>;
|
|
168
|
+
Image: ComponentProps<ImageProps>;
|
|
167
169
|
List: ComponentProps<ListProps>;
|
|
168
170
|
Loader: ComponentProps<LoaderProps>;
|
|
169
171
|
MaskedInput: ComponentProps<MaskedInputProps>;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import React, { CSSProperties } from 'react';
|
|
2
|
+
import type { WithAsProps, RsRefForwardingComponent } from '../internals/types';
|
|
3
|
+
export interface ImageProps extends WithAsProps, Omit<React.ImgHTMLAttributes<HTMLImageElement>, 'placeholder'> {
|
|
4
|
+
/**
|
|
5
|
+
* An image may appear with border.
|
|
6
|
+
*/
|
|
7
|
+
bordered?: boolean;
|
|
8
|
+
/**
|
|
9
|
+
* An image may appear circular.
|
|
10
|
+
*/
|
|
11
|
+
circle?: boolean;
|
|
12
|
+
/**
|
|
13
|
+
* The fallback image when the src fails to load.
|
|
14
|
+
*/
|
|
15
|
+
fallbackSrc?: string;
|
|
16
|
+
/**
|
|
17
|
+
* An image may appear rounded.
|
|
18
|
+
*/
|
|
19
|
+
rounded?: boolean;
|
|
20
|
+
/**
|
|
21
|
+
* Whether there is a shadow.
|
|
22
|
+
*/
|
|
23
|
+
shaded?: boolean;
|
|
24
|
+
/**
|
|
25
|
+
* It maps to css `object-fit` property.
|
|
26
|
+
*/
|
|
27
|
+
fit?: CSSProperties['objectFit'];
|
|
28
|
+
/**
|
|
29
|
+
* It maps to css `object-position` property.
|
|
30
|
+
*/
|
|
31
|
+
position?: CSSProperties['objectPosition'];
|
|
32
|
+
/**
|
|
33
|
+
* The placeholder to display when the image is loading.
|
|
34
|
+
*/
|
|
35
|
+
placeholder?: React.ReactNode;
|
|
36
|
+
/**
|
|
37
|
+
* Whether the image should be zoomed when hovered.
|
|
38
|
+
*/
|
|
39
|
+
zoomed?: boolean;
|
|
40
|
+
}
|
|
41
|
+
declare const Image: RsRefForwardingComponent<'img', ImageProps>;
|
|
42
|
+
export default Image;
|
|
@@ -0,0 +1,102 @@
|
|
|
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 _extends3 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
8
|
+
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
9
|
+
var _react = _interopRequireDefault(require("react"));
|
|
10
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
|
+
var _hooks = require("../internals/hooks");
|
|
12
|
+
var _ImageWrapper = require("./ImageWrapper");
|
|
13
|
+
var _useImage2 = require("./hooks/useImage");
|
|
14
|
+
var _CustomProvider = require("../CustomProvider");
|
|
15
|
+
var _excluded = ["as", "bordered", "classPrefix", "className", "circle", "crossOrigin", "fit", "fallbackSrc", "loading", "rounded", "srcSet", "sizes", "shaded", "src", "style", "position", "placeholder", "width", "height", "zoomed"];
|
|
16
|
+
var Image = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
17
|
+
var _extends2;
|
|
18
|
+
var _useCustom = (0, _CustomProvider.useCustom)('Image', props),
|
|
19
|
+
propsWithDefaults = _useCustom.propsWithDefaults;
|
|
20
|
+
var _propsWithDefaults$as = propsWithDefaults.as,
|
|
21
|
+
Component = _propsWithDefaults$as === void 0 ? 'img' : _propsWithDefaults$as,
|
|
22
|
+
bordered = propsWithDefaults.bordered,
|
|
23
|
+
_propsWithDefaults$cl = propsWithDefaults.classPrefix,
|
|
24
|
+
classPrefix = _propsWithDefaults$cl === void 0 ? 'image' : _propsWithDefaults$cl,
|
|
25
|
+
className = propsWithDefaults.className,
|
|
26
|
+
circle = propsWithDefaults.circle,
|
|
27
|
+
crossOrigin = propsWithDefaults.crossOrigin,
|
|
28
|
+
fit = propsWithDefaults.fit,
|
|
29
|
+
fallbackSrc = propsWithDefaults.fallbackSrc,
|
|
30
|
+
loading = propsWithDefaults.loading,
|
|
31
|
+
rounded = propsWithDefaults.rounded,
|
|
32
|
+
srcSet = propsWithDefaults.srcSet,
|
|
33
|
+
sizes = propsWithDefaults.sizes,
|
|
34
|
+
shaded = propsWithDefaults.shaded,
|
|
35
|
+
src = propsWithDefaults.src,
|
|
36
|
+
style = propsWithDefaults.style,
|
|
37
|
+
position = propsWithDefaults.position,
|
|
38
|
+
placeholder = propsWithDefaults.placeholder,
|
|
39
|
+
width = propsWithDefaults.width,
|
|
40
|
+
height = propsWithDefaults.height,
|
|
41
|
+
zoomed = propsWithDefaults.zoomed,
|
|
42
|
+
rest = (0, _objectWithoutPropertiesLoose2.default)(propsWithDefaults, _excluded);
|
|
43
|
+
var _useClassNames = (0, _hooks.useClassNames)(classPrefix),
|
|
44
|
+
merge = _useClassNames.merge,
|
|
45
|
+
withClassPrefix = _useClassNames.withClassPrefix;
|
|
46
|
+
var classes = merge(className, withClassPrefix({
|
|
47
|
+
circle: circle,
|
|
48
|
+
bordered: bordered,
|
|
49
|
+
rounded: rounded,
|
|
50
|
+
shaded: shaded,
|
|
51
|
+
zoomed: zoomed
|
|
52
|
+
}));
|
|
53
|
+
var imgProps = {
|
|
54
|
+
crossOrigin: crossOrigin,
|
|
55
|
+
srcSet: srcSet,
|
|
56
|
+
sizes: sizes,
|
|
57
|
+
loading: loading
|
|
58
|
+
};
|
|
59
|
+
var _useImage = (0, _useImage2.useImage)((0, _extends3.default)({
|
|
60
|
+
src: src,
|
|
61
|
+
fallbackSrc: fallbackSrc
|
|
62
|
+
}, imgProps)),
|
|
63
|
+
imgSrc = _useImage.imgSrc,
|
|
64
|
+
isLoading = _useImage.isLoading;
|
|
65
|
+
var styles = (0, _extends3.default)({}, style, (_extends2 = {}, _extends2['--rs-object-fit'] = fit, _extends2['--rs-object-position'] = position, _extends2));
|
|
66
|
+
var wrapStyles = {
|
|
67
|
+
width: width,
|
|
68
|
+
height: height
|
|
69
|
+
};
|
|
70
|
+
var image = /*#__PURE__*/_react.default.createElement(Component, (0, _extends3.default)({
|
|
71
|
+
ref: ref,
|
|
72
|
+
src: imgSrc,
|
|
73
|
+
className: classes,
|
|
74
|
+
style: styles,
|
|
75
|
+
width: width,
|
|
76
|
+
height: height
|
|
77
|
+
}, imgProps, rest));
|
|
78
|
+
if (zoomed) {
|
|
79
|
+
return /*#__PURE__*/_react.default.createElement(_ImageWrapper.ImageWrapper, {
|
|
80
|
+
style: wrapStyles
|
|
81
|
+
}, image);
|
|
82
|
+
}
|
|
83
|
+
if (placeholder) {
|
|
84
|
+
return /*#__PURE__*/_react.default.createElement(_ImageWrapper.ImageWrapper, {
|
|
85
|
+
style: wrapStyles
|
|
86
|
+
}, isLoading && placeholder, image);
|
|
87
|
+
}
|
|
88
|
+
return image;
|
|
89
|
+
});
|
|
90
|
+
Image.displayName = 'Image';
|
|
91
|
+
Image.propTypes = {
|
|
92
|
+
bordered: _propTypes.default.bool,
|
|
93
|
+
circle: _propTypes.default.bool,
|
|
94
|
+
fallbackSrc: _propTypes.default.string,
|
|
95
|
+
fit: _propTypes.default.string,
|
|
96
|
+
position: _propTypes.default.string,
|
|
97
|
+
rounded: _propTypes.default.bool,
|
|
98
|
+
shaded: _propTypes.default.bool,
|
|
99
|
+
placeholder: _propTypes.default.node,
|
|
100
|
+
zoomed: _propTypes.default.bool
|
|
101
|
+
};
|
|
102
|
+
var _default = exports.default = Image;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const ImageWrapper: import("../internals/types").RsRefForwardingComponent<"div", import("../internals/utils").ComponentProps>;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
exports.__esModule = true;
|
|
5
|
+
exports.ImageWrapper = void 0;
|
|
6
|
+
var _utils = require("../internals/utils");
|
|
7
|
+
var ImageWrapper = exports.ImageWrapper = (0, _utils.createComponent)({
|
|
8
|
+
name: 'ImageWrapper',
|
|
9
|
+
componentAs: 'div'
|
|
10
|
+
});
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
interface UseImageProps {
|
|
2
|
+
src?: string;
|
|
3
|
+
fallbackSrc?: string;
|
|
4
|
+
crossOrigin?: string;
|
|
5
|
+
srcSet?: string;
|
|
6
|
+
sizes?: string;
|
|
7
|
+
loading?: 'lazy' | 'eager';
|
|
8
|
+
}
|
|
9
|
+
export declare const useImage: (props: UseImageProps) => {
|
|
10
|
+
imgSrc: string | null;
|
|
11
|
+
isLoading: boolean;
|
|
12
|
+
error: boolean;
|
|
13
|
+
};
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
5
|
+
exports.__esModule = true;
|
|
6
|
+
exports.useImage = void 0;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var _useIsomorphicLayoutEffect = _interopRequireDefault(require("../../internals/hooks/useIsomorphicLayoutEffect"));
|
|
9
|
+
var useImage = exports.useImage = function useImage(props) {
|
|
10
|
+
var src = props.src,
|
|
11
|
+
fallbackSrc = props.fallbackSrc,
|
|
12
|
+
crossOrigin = props.crossOrigin,
|
|
13
|
+
srcSet = props.srcSet,
|
|
14
|
+
sizes = props.sizes,
|
|
15
|
+
loading = props.loading;
|
|
16
|
+
var _useState = (0, _react.useState)(src || fallbackSrc || null),
|
|
17
|
+
imgSrc = _useState[0],
|
|
18
|
+
setImgSrc = _useState[1];
|
|
19
|
+
var _useState2 = (0, _react.useState)(!!src),
|
|
20
|
+
isLoading = _useState2[0],
|
|
21
|
+
setIsLoading = _useState2[1];
|
|
22
|
+
var _useState3 = (0, _react.useState)(false),
|
|
23
|
+
error = _useState3[0],
|
|
24
|
+
setError = _useState3[1];
|
|
25
|
+
var imageRef = (0, _react.useRef)(null);
|
|
26
|
+
(0, _react.useEffect)(function () {
|
|
27
|
+
setIsLoading(!!src); // true if src exists, false otherwise
|
|
28
|
+
}, [src]);
|
|
29
|
+
var flush = function flush() {
|
|
30
|
+
if (imageRef.current) {
|
|
31
|
+
imageRef.current.onload = null;
|
|
32
|
+
imageRef.current.onerror = null;
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
var loadImage = (0, _react.useCallback)(function () {
|
|
36
|
+
if (!src) return;
|
|
37
|
+
flush();
|
|
38
|
+
var image = new Image();
|
|
39
|
+
image.src = src;
|
|
40
|
+
if (crossOrigin) image.crossOrigin = crossOrigin;
|
|
41
|
+
if (srcSet) image.srcset = srcSet;
|
|
42
|
+
if (sizes) image.sizes = sizes;
|
|
43
|
+
if (loading) image.loading = loading;
|
|
44
|
+
image.onload = function () {
|
|
45
|
+
flush();
|
|
46
|
+
setImgSrc(src);
|
|
47
|
+
setIsLoading(false);
|
|
48
|
+
};
|
|
49
|
+
image.onerror = function () {
|
|
50
|
+
flush();
|
|
51
|
+
setError(true);
|
|
52
|
+
setImgSrc(fallbackSrc || null);
|
|
53
|
+
setIsLoading(false);
|
|
54
|
+
};
|
|
55
|
+
imageRef.current = image;
|
|
56
|
+
}, [crossOrigin, fallbackSrc, loading, sizes, src, srcSet]);
|
|
57
|
+
(0, _useIsomorphicLayoutEffect.default)(function () {
|
|
58
|
+
loadImage();
|
|
59
|
+
return function () {
|
|
60
|
+
flush();
|
|
61
|
+
};
|
|
62
|
+
}, [loadImage]);
|
|
63
|
+
return {
|
|
64
|
+
imgSrc: imgSrc,
|
|
65
|
+
isLoading: isLoading,
|
|
66
|
+
error: error
|
|
67
|
+
};
|
|
68
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
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 _Image = _interopRequireDefault(require("./Image"));
|
|
8
|
+
var _default = exports.default = _Image.default;
|
package/cjs/index.d.ts
CHANGED
|
@@ -47,6 +47,8 @@ export { default as Avatar } from './Avatar';
|
|
|
47
47
|
export type { AvatarProps } from './Avatar';
|
|
48
48
|
export { default as AvatarGroup } from './AvatarGroup';
|
|
49
49
|
export type { AvatarGroupProps } from './AvatarGroup';
|
|
50
|
+
export { default as Image } from './Image';
|
|
51
|
+
export type { ImageProps } from './Image';
|
|
50
52
|
export { default as Nav } from './Nav';
|
|
51
53
|
export type { NavProps, NavItemProps } from './Nav';
|
|
52
54
|
export { default as Navbar } from './Navbar';
|
package/cjs/index.js
CHANGED
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
|
|
4
4
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
5
5
|
exports.__esModule = true;
|
|
6
|
-
exports.
|
|
7
|
-
exports.useToaster = exports.useMediaQuery = exports.useFormClassNames = exports.useBreakpointValue = exports.toaster = void 0;
|
|
6
|
+
exports.VisuallyHidden = exports.VStack = exports.Uploader = exports.TreePicker = exports.Tree = exports.Tooltip = exports.Toggle = exports.Timeline = exports.TimeRangePicker = exports.TimePicker = exports.Text = exports.TagPicker = exports.TagInput = exports.TagGroup = exports.Tag = exports.Tabs = exports.Table = exports.Steps = exports.StatGroup = exports.Stat = exports.Stack = exports.Slider = exports.Sidenav = exports.Sidebar = exports.SelectPicker = exports.Schema = exports.SafeAnchor = exports.Row = exports.Rate = exports.RangeSlider = exports.RadioTileGroup = exports.RadioTile = exports.RadioGroup = exports.Radio = exports.Progress = exports.Popover = exports.Placeholder = exports.PanelGroup = exports.Panel = exports.Pagination = exports.Notification = exports.Navbar = exports.Nav = exports.MultiCascader = exports.MultiCascadeTree = exports.Modal = exports.Message = exports.MaskedInput = exports.Loader = exports.List = exports.InputPicker = exports.InputNumber = exports.InputGroup = exports.Input = exports.InlineEdit = exports.Image = exports.IconButton = exports.Highlight = exports.HeadingGroup = exports.Heading = exports.Header = exports.HStack = exports.Grid = exports.Form = exports.Footer = exports.FlexboxGrid = exports.Dropdown = exports.Drawer = exports.Divider = exports.DateRangePicker = exports.DateRangeInput = exports.DatePicker = exports.DateInput = exports.DOMHelper = exports.CustomProvider = exports.Content = exports.Container = exports.Col = exports.CheckboxGroup = exports.Checkbox = exports.CheckTreePicker = exports.CheckTree = exports.CheckPicker = exports.Cascader = exports.CascadeTree = exports.Carousel = exports.CardGroup = exports.Card = exports.Calendar = exports.ButtonToolbar = exports.ButtonGroup = exports.Button = exports.Breadcrumb = exports.Badge = exports.AvatarGroup = exports.Avatar = exports.AutoComplete = exports.Animation = exports.Affix = exports.Accordion = void 0;
|
|
7
|
+
exports.useToaster = exports.useMediaQuery = exports.useFormClassNames = exports.useBreakpointValue = exports.toaster = exports.Whisper = void 0;
|
|
8
8
|
var _Text = _interopRequireDefault(require("./Text"));
|
|
9
9
|
exports.Text = _Text.default;
|
|
10
10
|
var _Heading = _interopRequireDefault(require("./Heading"));
|
|
@@ -55,6 +55,8 @@ var _Avatar = _interopRequireDefault(require("./Avatar"));
|
|
|
55
55
|
exports.Avatar = _Avatar.default;
|
|
56
56
|
var _AvatarGroup = _interopRequireDefault(require("./AvatarGroup"));
|
|
57
57
|
exports.AvatarGroup = _AvatarGroup.default;
|
|
58
|
+
var _Image = _interopRequireDefault(require("./Image"));
|
|
59
|
+
exports.Image = _Image.default;
|
|
58
60
|
var _Nav = _interopRequireDefault(require("./Nav"));
|
|
59
61
|
exports.Nav = _Nav.default;
|
|
60
62
|
var _Navbar = _interopRequireDefault(require("./Navbar"));
|
|
@@ -8,8 +8,9 @@ exports.getDOMNode = getDOMNode;
|
|
|
8
8
|
var _reactDom = _interopRequireDefault(require("react-dom"));
|
|
9
9
|
function safeFindDOMNode(componentOrElement) {
|
|
10
10
|
if (componentOrElement && 'setState' in componentOrElement) {
|
|
11
|
+
var _ReactDOM$findDOMNode;
|
|
11
12
|
// eslint-disable-next-line react/no-find-dom-node
|
|
12
|
-
return _reactDom.default.findDOMNode(componentOrElement);
|
|
13
|
+
return (_ReactDOM$findDOMNode = _reactDom.default.findDOMNode) === null || _ReactDOM$findDOMNode === void 0 ? void 0 : _ReactDOM$findDOMNode.call(_reactDom.default, componentOrElement);
|
|
13
14
|
}
|
|
14
15
|
return componentOrElement !== null && componentOrElement !== void 0 ? componentOrElement : null;
|
|
15
16
|
}
|
|
@@ -13,7 +13,6 @@ export { placementPolyfill } from './placementPolyfill';
|
|
|
13
13
|
export { mergeRefs } from './mergeRefs';
|
|
14
14
|
export { shallowEqual, shallowEqualArray } from './shallowEqual';
|
|
15
15
|
export { composeFunctions } from './composeFunctions';
|
|
16
|
-
export { render } from './render';
|
|
17
16
|
export { safeSetSelection } from './safeSetSelection';
|
|
18
17
|
export { getStringLength } from './getStringLength';
|
|
19
18
|
export { getDataGroupBy } from './getDataGroupBy';
|
|
@@ -20,7 +20,6 @@ var _exportNames = {
|
|
|
20
20
|
shallowEqual: true,
|
|
21
21
|
shallowEqualArray: true,
|
|
22
22
|
composeFunctions: true,
|
|
23
|
-
render: true,
|
|
24
23
|
safeSetSelection: true,
|
|
25
24
|
getStringLength: true,
|
|
26
25
|
getDataGroupBy: true,
|
|
@@ -32,7 +31,7 @@ var _exportNames = {
|
|
|
32
31
|
isFocusLeaving: true,
|
|
33
32
|
isFocusableElement: true
|
|
34
33
|
};
|
|
35
|
-
exports.warnOnce = exports.tplTransform = exports.stringifyReactNode = exports.shallowEqualArray = exports.shallowEqual = exports.safeSetSelection = exports.
|
|
34
|
+
exports.warnOnce = exports.tplTransform = exports.stringifyReactNode = exports.shallowEqualArray = exports.shallowEqual = exports.safeSetSelection = exports.reactToString = exports.prefix = exports.placementPolyfill = exports.mergeRefs = exports.isOneOf = exports.isFocusableElement = exports.isFocusLeaving = exports.isFocusEntering = exports.guid = exports.getStringLength = exports.getSafeRegExpString = exports.getDataGroupBy = exports.getDOMNode = exports.getClassNamePrefix = exports.deprecateComponent = exports.defaultClassPrefix = exports.createComponent = exports.createChainedFunction = exports.composeFunctions = exports.attachParent = exports.ReactChildren = void 0;
|
|
36
35
|
var _BrowserDetection = require("./BrowserDetection");
|
|
37
36
|
Object.keys(_BrowserDetection).forEach(function (key) {
|
|
38
37
|
if (key === "default" || key === "__esModule") return;
|
|
@@ -77,8 +76,6 @@ exports.shallowEqual = _shallowEqual.shallowEqual;
|
|
|
77
76
|
exports.shallowEqualArray = _shallowEqual.shallowEqualArray;
|
|
78
77
|
var _composeFunctions = require("./composeFunctions");
|
|
79
78
|
exports.composeFunctions = _composeFunctions.composeFunctions;
|
|
80
|
-
var _render = require("./render");
|
|
81
|
-
exports.render = _render.render;
|
|
82
79
|
var _safeSetSelection = require("./safeSetSelection");
|
|
83
80
|
exports.safeSetSelection = _safeSetSelection.safeSetSelection;
|
|
84
81
|
var _getStringLength = require("./getStringLength");
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { WithAsProps, RsRefForwardingComponent } from '../internals/types';
|
|
3
|
+
export declare const defaultToasterContainer: HTMLElement;
|
|
3
4
|
export type PlacementType = 'topCenter' | 'bottomCenter' | 'topStart' | 'topEnd' | 'bottomStart' | 'bottomEnd';
|
|
4
5
|
export declare const toastPlacements: PlacementType[];
|
|
5
6
|
export interface ToastContainerProps extends WithAsProps {
|
|
@@ -21,10 +22,6 @@ export interface ToastContainerProps extends WithAsProps {
|
|
|
21
22
|
* Reset the hide timer if the mouse moves over the message.
|
|
22
23
|
*/
|
|
23
24
|
mouseReset?: boolean;
|
|
24
|
-
/**
|
|
25
|
-
* Callback fired when the component mounts
|
|
26
|
-
*/
|
|
27
|
-
callback?: (ref: React.RefObject<ToastContainerInstance>) => void;
|
|
28
25
|
}
|
|
29
26
|
interface PushOptions {
|
|
30
27
|
duration?: number;
|
|
@@ -32,7 +29,6 @@ interface PushOptions {
|
|
|
32
29
|
container?: HTMLElement | (() => HTMLElement);
|
|
33
30
|
}
|
|
34
31
|
export interface ToastContainerInstance {
|
|
35
|
-
root: HTMLElement;
|
|
36
32
|
push: (message: React.ReactNode, options?: PushOptions) => string;
|
|
37
33
|
remove: (key: string) => void;
|
|
38
34
|
clear: () => void;
|
|
@@ -41,8 +37,12 @@ export interface ToastContainerInstance {
|
|
|
41
37
|
export interface NodeProps extends WithAsProps {
|
|
42
38
|
onClose?: (event?: React.MouseEvent<HTMLDivElement>) => void;
|
|
43
39
|
}
|
|
40
|
+
export type GetInstancePropsType = Omit<ToastContainerProps, 'container' | 'placement'> & {
|
|
41
|
+
container: HTMLElement;
|
|
42
|
+
placement: PlacementType;
|
|
43
|
+
};
|
|
44
44
|
interface ToastContainerComponent extends RsRefForwardingComponent<'div', ToastContainerProps> {
|
|
45
|
-
getInstance: (props:
|
|
45
|
+
getInstance: (props: GetInstancePropsType) => Promise<[React.RefObject<ToastContainerInstance>, string]>;
|
|
46
46
|
}
|
|
47
47
|
declare const ToastContainer: ToastContainerComponent;
|
|
48
48
|
export default ToastContainer;
|