mimir-ui-kit 1.15.0 → 1.15.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/dist/assets/Image.css +1 -0
- package/dist/components/Image/Image.d.ts +12 -0
- package/dist/components/Image/Image.js +42 -15
- package/dist/components/Slider/Slider.d.ts +2 -0
- package/dist/components/Slider/Slider.js +4 -2
- package/dist/hooks/index.d.ts +1 -1
- package/dist/hooks/index.js +2 -1
- package/dist/hooks/useMediaQuery/constants.d.ts +10 -0
- package/dist/hooks/useMediaQuery/constants.js +13 -1
- package/dist/hooks/useMediaQuery/index.d.ts +1 -1
- package/dist/hooks/useMediaQuery/index.js +2 -1
- package/dist/index.js +2 -1
- package/package.json +1 -1
@@ -0,0 +1 @@
|
|
1
|
+
._picture_9zemz_2,._image_9zemz_3{display:block;width:100%;height:auto}._loading_9zemz_9{filter:blur(20px);transition:.3s filter ease}
|
@@ -5,6 +5,10 @@ type TProps = ComponentProps<'img'> & {
|
|
5
5
|
* Дополнительный класс к компоненту
|
6
6
|
*/
|
7
7
|
className?: string;
|
8
|
+
/**
|
9
|
+
* Дополнительный класс к контейнеру picture
|
10
|
+
*/
|
11
|
+
pictureClassName?: string;
|
8
12
|
/**
|
9
13
|
* Компонент, который буде показываться, пока идет загрузка изображения
|
10
14
|
*/
|
@@ -13,6 +17,14 @@ type TProps = ComponentProps<'img'> & {
|
|
13
17
|
* Компонент, который буде показываться, если произошла ошибка при загрузке изображения
|
14
18
|
*/
|
15
19
|
errorFallback?: ReactElement;
|
20
|
+
/**
|
21
|
+
* Изображение для десктопной версии
|
22
|
+
*/
|
23
|
+
desktopImage?: string;
|
24
|
+
/**
|
25
|
+
* Изображение для мобильной версии
|
26
|
+
*/
|
27
|
+
mobileImage?: string;
|
16
28
|
};
|
17
29
|
/**
|
18
30
|
* Компонент для отображения изображения с возможность показа загрузки и ошибки
|
@@ -1,10 +1,23 @@
|
|
1
|
-
import { jsx } from "react/jsx-runtime";
|
1
|
+
import { jsxs, jsx } from "react/jsx-runtime";
|
2
|
+
import { c as classNames } from "../../index-CweZ_OcN.js";
|
2
3
|
import { memo, useState, useLayoutEffect } from "react";
|
4
|
+
import { EMediaQuery, EMinMediaQuery } from "../../hooks/useMediaQuery/constants.js";
|
5
|
+
import '../../assets/Image.css';const picture = "_picture_9zemz_2";
|
6
|
+
const image = "_image_9zemz_3";
|
7
|
+
const loading = "_loading_9zemz_9";
|
8
|
+
const cls = {
|
9
|
+
picture,
|
10
|
+
image,
|
11
|
+
loading
|
12
|
+
};
|
3
13
|
const AppImage = memo((props) => {
|
4
14
|
const {
|
5
15
|
className,
|
6
16
|
src,
|
7
17
|
alt = "image",
|
18
|
+
desktopImage,
|
19
|
+
mobileImage,
|
20
|
+
pictureClassName,
|
8
21
|
errorFallback,
|
9
22
|
fallback,
|
10
23
|
...otherProps
|
@@ -13,7 +26,7 @@ const AppImage = memo((props) => {
|
|
13
26
|
const [hasError, setHasError] = useState(false);
|
14
27
|
useLayoutEffect(() => {
|
15
28
|
const img = new Image();
|
16
|
-
img.src = src ?? "";
|
29
|
+
img.src = src ?? desktopImage ?? mobileImage ?? "";
|
17
30
|
img.onload = () => {
|
18
31
|
setIsLoading(false);
|
19
32
|
};
|
@@ -21,26 +34,40 @@ const AppImage = memo((props) => {
|
|
21
34
|
setIsLoading(false);
|
22
35
|
setHasError(true);
|
23
36
|
};
|
24
|
-
}, [src]);
|
37
|
+
}, [src, desktopImage, mobileImage]);
|
25
38
|
if (isLoading && fallback) {
|
26
39
|
return fallback;
|
27
40
|
}
|
28
41
|
if (hasError && errorFallback) {
|
29
42
|
return errorFallback;
|
30
43
|
}
|
31
|
-
return /* @__PURE__ */
|
32
|
-
"
|
44
|
+
return /* @__PURE__ */ jsxs(
|
45
|
+
"picture",
|
33
46
|
{
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
47
|
+
className: classNames(cls.picture, pictureClassName, {
|
48
|
+
[cls.loading]: isLoading
|
49
|
+
}),
|
50
|
+
children: [
|
51
|
+
mobileImage && /* @__PURE__ */ jsx("source", { srcSet: mobileImage, media: EMediaQuery.S }),
|
52
|
+
desktopImage && /* @__PURE__ */ jsx("source", { srcSet: desktopImage, media: EMinMediaQuery.S }),
|
53
|
+
/* @__PURE__ */ jsx(
|
54
|
+
"img",
|
55
|
+
{
|
56
|
+
...otherProps,
|
57
|
+
style: {
|
58
|
+
display: "block",
|
59
|
+
filter: `${isLoading ? "blur(20px)" : ""}`,
|
60
|
+
transition: ".3s filter ease"
|
61
|
+
},
|
62
|
+
className: classNames(cls.image, className, {
|
63
|
+
[cls.loading]: isLoading
|
64
|
+
}),
|
65
|
+
loading: "lazy",
|
66
|
+
src,
|
67
|
+
alt
|
68
|
+
}
|
69
|
+
)
|
70
|
+
]
|
44
71
|
}
|
45
72
|
);
|
46
73
|
});
|
@@ -323,7 +323,7 @@ const Slider = ({
|
|
323
323
|
swiperClassName,
|
324
324
|
slideClassName,
|
325
325
|
imageClassName,
|
326
|
-
delay =
|
326
|
+
delay = 3e5
|
327
327
|
}) => {
|
328
328
|
const progressBar = useRef(null);
|
329
329
|
const swiperRef = useRef(null);
|
@@ -401,7 +401,9 @@ const Slider = ({
|
|
401
401
|
AppImage,
|
402
402
|
{
|
403
403
|
className: classNames(cls.image, imageClassName),
|
404
|
-
src: img.image
|
404
|
+
src: img.image,
|
405
|
+
desktopImage: img.imageDesktop,
|
406
|
+
mobileImage: img.imageMobile
|
405
407
|
}
|
406
408
|
)
|
407
409
|
},
|
package/dist/hooks/index.d.ts
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
export { useMediaQuery, EMediaQuery } from './useMediaQuery';
|
1
|
+
export { useMediaQuery, EMediaQuery, EMinMediaQuery } from './useMediaQuery';
|
2
2
|
export { useLockBodyScroll } from './useLockBodyScroll';
|
3
3
|
export { useInterval } from './useInterval';
|
4
4
|
export { useTimer } from './useTimer';
|
package/dist/hooks/index.js
CHANGED
@@ -1,11 +1,12 @@
|
|
1
1
|
import { useMediaQuery } from "./useMediaQuery/useMediaQuery.js";
|
2
|
-
import { EMediaQuery } from "./useMediaQuery/constants.js";
|
2
|
+
import { EMediaQuery, EMinMediaQuery } from "./useMediaQuery/constants.js";
|
3
3
|
import { useLockBodyScroll } from "./useLockBodyScroll/useLockBodyScroll.js";
|
4
4
|
import { useInterval } from "./useInterval/useInterval.js";
|
5
5
|
import { useTimer } from "./useTimer/index.js";
|
6
6
|
import { useCopyToClipboard } from "./useCopyToClipboard/useCopyToClipboard.js";
|
7
7
|
export {
|
8
8
|
EMediaQuery,
|
9
|
+
EMinMediaQuery,
|
9
10
|
useCopyToClipboard,
|
10
11
|
useInterval,
|
11
12
|
useLockBodyScroll,
|
@@ -8,3 +8,13 @@ export declare enum EMediaQuery {
|
|
8
8
|
XL = "(max-width: 1440px)",
|
9
9
|
XXL = "(max-width: 1920px)"
|
10
10
|
}
|
11
|
+
export declare enum EMinMediaQuery {
|
12
|
+
XSS = "(min-width: 375px)",
|
13
|
+
XS = "(min-width: 600px)",
|
14
|
+
XS1 = "(min-width: 767px)",
|
15
|
+
S = "(min-width: 768px)",
|
16
|
+
M = "(min-width: 960px)",
|
17
|
+
L = "(min-width: 1280px)",
|
18
|
+
XL = "(min-width: 1440px)",
|
19
|
+
XXL = "(min-width: 1920px)"
|
20
|
+
}
|
@@ -9,6 +9,18 @@ var EMediaQuery = /* @__PURE__ */ ((EMediaQuery2) => {
|
|
9
9
|
EMediaQuery2["XXL"] = "(max-width: 1920px)";
|
10
10
|
return EMediaQuery2;
|
11
11
|
})(EMediaQuery || {});
|
12
|
+
var EMinMediaQuery = /* @__PURE__ */ ((EMinMediaQuery2) => {
|
13
|
+
EMinMediaQuery2["XSS"] = "(min-width: 375px)";
|
14
|
+
EMinMediaQuery2["XS"] = "(min-width: 600px)";
|
15
|
+
EMinMediaQuery2["XS1"] = "(min-width: 767px)";
|
16
|
+
EMinMediaQuery2["S"] = "(min-width: 768px)";
|
17
|
+
EMinMediaQuery2["M"] = "(min-width: 960px)";
|
18
|
+
EMinMediaQuery2["L"] = "(min-width: 1280px)";
|
19
|
+
EMinMediaQuery2["XL"] = "(min-width: 1440px)";
|
20
|
+
EMinMediaQuery2["XXL"] = "(min-width: 1920px)";
|
21
|
+
return EMinMediaQuery2;
|
22
|
+
})(EMinMediaQuery || {});
|
12
23
|
export {
|
13
|
-
EMediaQuery
|
24
|
+
EMediaQuery,
|
25
|
+
EMinMediaQuery
|
14
26
|
};
|
@@ -1,2 +1,2 @@
|
|
1
1
|
export { useMediaQuery } from './useMediaQuery';
|
2
|
-
export { EMediaQuery } from './constants';
|
2
|
+
export { EMediaQuery, EMinMediaQuery } from './constants';
|
package/dist/index.js
CHANGED
@@ -38,7 +38,7 @@ import { EToastPosition, EToastVariant } from "./components/Toasts/constants.js"
|
|
38
38
|
import { UploaderPhotos } from "./components/UploaderPhotos/UploaderPhotos.js";
|
39
39
|
import { Uploader } from "./components/Uploader/Uploader.js";
|
40
40
|
import { useMediaQuery } from "./hooks/useMediaQuery/useMediaQuery.js";
|
41
|
-
import { EMediaQuery } from "./hooks/useMediaQuery/constants.js";
|
41
|
+
import { EMediaQuery, EMinMediaQuery } from "./hooks/useMediaQuery/constants.js";
|
42
42
|
import { useLockBodyScroll } from "./hooks/useLockBodyScroll/useLockBodyScroll.js";
|
43
43
|
import { useInterval } from "./hooks/useInterval/useInterval.js";
|
44
44
|
import { useTimer } from "./hooks/useTimer/index.js";
|
@@ -62,6 +62,7 @@ import './assets/index.css';export {
|
|
62
62
|
EInputVariant,
|
63
63
|
EMediaQuery,
|
64
64
|
EMergedButtonVariantRound,
|
65
|
+
EMinMediaQuery,
|
65
66
|
ESelectSearchSize,
|
66
67
|
EStepsPrimaryColor,
|
67
68
|
EStepsSecondaryColor,
|