@rubin-epo/epo-widget-lib 0.5.1-alpha.0 → 0.6.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/dist/CameraFilter.d.ts +3 -0
- package/dist/ColorTool.cjs +1 -1
- package/dist/ColorTool.d.ts +3 -0
- package/dist/ColorTool.js +115 -79
- package/dist/FilterTool.d.ts +3 -0
- package/dist/SourceSelector.d.ts +3 -0
- package/dist/atomic/Blinker/Blinker.d.ts +14 -0
- package/dist/atomic/Blinker/Controls/Controls.d.ts +11 -0
- package/dist/atomic/Blinker/Controls/styles.d.ts +272 -0
- package/dist/atomic/Blinker/Image/Image.d.ts +9 -0
- package/dist/atomic/Blinker/Image/styles.d.ts +283 -0
- package/dist/atomic/Blinker/Images/Images.d.ts +8 -0
- package/dist/atomic/Blinker/Images/styles.d.ts +544 -0
- package/dist/atomic/Blinker/_mocks/index.d.ts +2 -0
- package/dist/atomic/Blinker/index.d.ts +1 -0
- package/dist/atomic/ElapsedTime/ElapsedTime.d.ts +10 -0
- package/dist/atomic/ElapsedTime/index.d.ts +1 -0
- package/dist/atomic/ElapsedTime/styles.d.ts +1633 -0
- package/dist/atomic/PlaybackControl/PlaybackControl.d.ts +9 -0
- package/dist/atomic/PlaybackControl/index.d.ts +1 -0
- package/dist/atomic/PlaybackControl/styles.d.ts +554 -0
- package/dist/hooks/useImage.cjs +1 -0
- package/dist/hooks/useImage.d.ts +10 -0
- package/dist/hooks/useImage.js +30 -0
- package/dist/hooks/useInterval.d.ts +1 -0
- package/dist/lib/reimg.cjs +1 -0
- package/dist/lib/reimg.d.ts +7 -0
- package/dist/lib/reimg.js +60 -0
- package/dist/lib/utils.d.ts +13 -0
- package/dist/lib/utils.test.d.ts +1 -0
- package/dist/styles/svg.d.ts +272 -0
- package/dist/{types → widgets/CameraFilter}/CameraFilter.d.ts +3 -6
- package/dist/widgets/CameraFilter/CondensedFilterRanges/CondensedFilterRanges.d.ts +9 -0
- package/dist/widgets/CameraFilter/CondensedFilterRanges/index.d.ts +1 -0
- package/dist/widgets/CameraFilter/SpectrumDisplay/ColorLabels/ColorLabels.d.ts +10 -0
- package/dist/widgets/CameraFilter/SpectrumDisplay/ColorLabels/index.d.ts +1 -0
- package/dist/widgets/CameraFilter/SpectrumDisplay/SpectrumDisplay.d.ts +11 -0
- package/dist/widgets/CameraFilter/SpectrumDisplay/SpectrumLabels/SpectrumLabels.d.ts +14 -0
- package/dist/widgets/CameraFilter/SpectrumDisplay/SpectrumLabels/index.d.ts +1 -0
- package/dist/widgets/CameraFilter/SpectrumDisplay/index.d.ts +1 -0
- package/dist/widgets/CameraFilter/data.d.ts +39 -0
- package/dist/widgets/CameraFilter/index.d.ts +1 -0
- package/dist/widgets/CameraFilter/styles.d.ts +4398 -0
- package/dist/widgets/ColorTool/Actions/Export/index.cjs +1 -0
- package/dist/widgets/ColorTool/Actions/Export/index.d.ts +12 -0
- package/dist/widgets/ColorTool/Actions/Export/index.js +36 -0
- package/dist/widgets/ColorTool/Actions/Reset/index.cjs +1 -0
- package/dist/widgets/ColorTool/Actions/Reset/index.d.ts +9 -0
- package/dist/widgets/ColorTool/Actions/Reset/index.js +39 -0
- package/dist/widgets/ColorTool/Actions/index.cjs +1 -0
- package/dist/widgets/ColorTool/Actions/index.d.ts +13 -0
- package/dist/widgets/ColorTool/Actions/index.js +55 -0
- package/dist/widgets/ColorTool/Actions/styles.cjs +5 -0
- package/dist/widgets/ColorTool/Actions/styles.d.ts +272 -0
- package/dist/widgets/ColorTool/Actions/styles.js +9 -0
- package/dist/{types → widgets/ColorTool}/ColorTool.d.ts +44 -45
- package/dist/widgets/ColorTool/FilterControls/FilterControls.cjs +1 -1
- package/dist/widgets/ColorTool/FilterControls/FilterControls.d.ts +14 -0
- package/dist/widgets/ColorTool/FilterControls/FilterControls.js +43 -41
- package/dist/widgets/ColorTool/FilterControls/index.d.ts +1 -0
- package/dist/widgets/ColorTool/FilterControls/styles.cjs +58 -0
- package/dist/widgets/ColorTool/FilterControls/styles.d.ts +956 -0
- package/dist/widgets/ColorTool/FilterControls/styles.js +67 -0
- package/dist/widgets/ColorTool/FilterImage/FilterImage.cjs +1 -1
- package/dist/widgets/ColorTool/FilterImage/FilterImage.d.ts +16 -0
- package/dist/widgets/ColorTool/FilterImage/FilterImage.js +40 -31
- package/dist/widgets/ColorTool/FilterImage/index.d.ts +1 -0
- package/dist/widgets/ColorTool/ImageComposite/ImageComposite.cjs +1 -1
- package/dist/widgets/ColorTool/ImageComposite/ImageComposite.d.ts +12 -0
- package/dist/widgets/ColorTool/ImageComposite/ImageComposite.js +54 -29
- package/dist/widgets/ColorTool/ImageComposite/index.d.ts +1 -0
- package/dist/widgets/ColorTool/ImageComposite/styles.cjs +19 -0
- package/dist/widgets/ColorTool/ImageComposite/styles.d.ts +544 -0
- package/dist/widgets/ColorTool/ImageComposite/styles.js +24 -0
- package/dist/widgets/ColorTool/index.d.ts +1 -0
- package/dist/widgets/ColorTool/styles.cjs +21 -77
- package/dist/widgets/ColorTool/styles.d.ts +1906 -0
- package/dist/widgets/ColorTool/styles.js +29 -96
- package/dist/widgets/ColorTool/utilities.cjs +1 -1
- package/dist/widgets/ColorTool/utilities.d.ts +22 -0
- package/dist/widgets/ColorTool/utilities.js +30 -29
- package/dist/{types → widgets/FilterTool}/FilterTool.d.ts +11 -16
- package/dist/widgets/FilterTool/index.d.ts +1 -0
- package/dist/widgets/FilterTool/styles.d.ts +3710 -0
- package/dist/widgets/SourceSelector/Message/Message.d.ts +10 -0
- package/dist/widgets/SourceSelector/Message/index.d.ts +1 -0
- package/dist/widgets/SourceSelector/Message/styles.d.ts +5 -0
- package/dist/widgets/SourceSelector/Point/Point.d.ts +15 -0
- package/dist/widgets/SourceSelector/Point/index.d.ts +1 -0
- package/dist/widgets/SourceSelector/Point/styles.d.ts +4 -0
- package/dist/widgets/SourceSelector/Points/Points.d.ts +13 -0
- package/dist/widgets/SourceSelector/Points/index.d.ts +1 -0
- package/dist/{types → widgets/SourceSelector}/SourceSelector.d.ts +22 -28
- package/dist/widgets/SourceSelector/index.d.ts +1 -0
- package/dist/widgets/SourceSelector/mocks/index.d.ts +7 -0
- package/dist/widgets/SourceSelector/utilities.d.ts +1 -0
- package/dist/widgets/SourceSelector/utilities.test.d.ts +1 -0
- package/package.json +7 -23
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import e from "styled-components";
|
|
2
|
+
import o from "@rubin-epo/epo-react-lib/HorizontalSlider";
|
|
3
|
+
import t from "@rubin-epo/epo-react-lib/Button";
|
|
4
|
+
const r = e.input`
|
|
5
|
+
position: absolute;
|
|
6
|
+
left: -999px;
|
|
7
|
+
width: 1px;
|
|
8
|
+
height: 1px;
|
|
9
|
+
top: auto;
|
|
10
|
+
overflow: hidden;
|
|
11
|
+
`, s = e(t)`
|
|
12
|
+
background-color: var(--filter-toggle-background, #f7f7f7);
|
|
13
|
+
border: 1px solid;
|
|
14
|
+
color: var(--filter-toggle-color, #6c6e6e);
|
|
15
|
+
display: flex;
|
|
16
|
+
justify-content: center;
|
|
17
|
+
border-radius: 50%;
|
|
18
|
+
font-weight: var(--FONT_WEIGHT_MEDIUM, 500);
|
|
19
|
+
font-size: 22px;
|
|
20
|
+
text-transform: lowercase;
|
|
21
|
+
width: 38px;
|
|
22
|
+
height: 38px;
|
|
23
|
+
padding: 0;
|
|
24
|
+
user-select: none;
|
|
25
|
+
`, d = e.label`
|
|
26
|
+
overflow: hidden;
|
|
27
|
+
|
|
28
|
+
input:not(:disabled) + span {
|
|
29
|
+
cursor: pointer;
|
|
30
|
+
|
|
31
|
+
&:hover {
|
|
32
|
+
outline: 2px solid #6c6e6e;
|
|
33
|
+
outline-offset: -2px;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
input:not(:disabled):focus + span,
|
|
38
|
+
input:not(:disabled):focus-visible + span {
|
|
39
|
+
outline: 2px solid #6c6e6e;
|
|
40
|
+
outline-offset: -2px;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
input:not(:disabled):checked + span {
|
|
44
|
+
--filter-toggle-background: var(--turquoise85, #12726c);
|
|
45
|
+
--filter-toggle-color: var(--white, #fff);
|
|
46
|
+
|
|
47
|
+
&:hover {
|
|
48
|
+
outline: 1px solid var(--white, #fff);
|
|
49
|
+
outline-offset: -3px;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
input:not(:disabled):checked:focus + span,
|
|
54
|
+
input:not(:disabled):checked:focus-visible + span {
|
|
55
|
+
outline: 1px solid var(--white, #fff);
|
|
56
|
+
outline-offset: -3px;
|
|
57
|
+
}
|
|
58
|
+
`, f = e(o)`
|
|
59
|
+
padding: 0;
|
|
60
|
+
width: 100%;
|
|
61
|
+
`;
|
|
62
|
+
export {
|
|
63
|
+
d as FilterLabel,
|
|
64
|
+
s as FilterToggle,
|
|
65
|
+
r as HiddenCheckbox,
|
|
66
|
+
f as Slider
|
|
67
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const q=require("react/jsx-runtime"),C=require("react"),R=require("../../../hooks/useImage.cjs"),S=require("../utilities.cjs"),j=require("../styles.cjs"),c=({width:u=600,height:g=600,className:d,url:m,color:p="transparent",filters:f={brightness:1},active:o,onLoadCallback:y})=>{var l;const[a,b]=R.default({url:m,crossOrigin:"anonymous",onLoadCallback:y}),n=C.useRef(null),s=(l=n.current)==null?void 0:l.getContext("2d"),h=(e,t,r,i)=>{const I=S.isStyleSupported("color",t)?t:"transparent";e.fillStyle=I,e.fillRect(0,0,r,i)},v=e=>Object.keys(e).reduce((t,r,i)=>t+=`${i>0?" ":""}${r}(${e[r]})`,"");if(s&&a&&b==="loaded"){const{width:e,height:t}=s.canvas;s.clearRect(0,0,e,t),s.globalCompositeOperation="multiply",s.filter=v(f),s.drawImage(a,0,0,e,t),h(s,p,e,t)}return q.jsx(j.Image,{ref:n,role:"img",style:{"--image-visibility":o?"visible":"hidden","--image-opacity":o?1:0},className:d,width:u,height:g})};c.displayName="Widgets.ColorTool.FilterImage";const F=c;exports.default=F;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { FunctionComponent, HTMLAttributes } from "react";
|
|
2
|
+
export interface FilterImageProps extends HTMLAttributes<HTMLCanvasElement> {
|
|
3
|
+
className?: string;
|
|
4
|
+
height?: number;
|
|
5
|
+
width?: number;
|
|
6
|
+
url: string;
|
|
7
|
+
color?: string;
|
|
8
|
+
brightness?: number;
|
|
9
|
+
active: boolean;
|
|
10
|
+
filters?: {
|
|
11
|
+
[key: string]: number | undefined;
|
|
12
|
+
};
|
|
13
|
+
onLoadCallback?: () => void;
|
|
14
|
+
}
|
|
15
|
+
declare const FilterImage: FunctionComponent<FilterImageProps>;
|
|
16
|
+
export default FilterImage;
|
|
@@ -1,41 +1,50 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import { useRef as
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import { jsx as C } from "react/jsx-runtime";
|
|
2
|
+
import { useRef as F } from "react";
|
|
3
|
+
import R from "../../../hooks/useImage.js";
|
|
4
|
+
import { isStyleSupported as $ } from "../utilities.js";
|
|
5
|
+
import { Image as x } from "../styles.js";
|
|
6
|
+
const m = ({
|
|
7
|
+
width: c = 600,
|
|
5
8
|
height: g = 600,
|
|
6
|
-
className:
|
|
7
|
-
|
|
8
|
-
color:
|
|
9
|
-
|
|
9
|
+
className: p,
|
|
10
|
+
url: d,
|
|
11
|
+
color: u = "transparent",
|
|
12
|
+
filters: f = {
|
|
13
|
+
brightness: 1
|
|
14
|
+
},
|
|
15
|
+
active: s,
|
|
16
|
+
onLoadCallback: y
|
|
10
17
|
}) => {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
"canvas",
|
|
18
|
+
var l;
|
|
19
|
+
const [a, h] = R({
|
|
20
|
+
url: d,
|
|
21
|
+
crossOrigin: "anonymous",
|
|
22
|
+
onLoadCallback: y
|
|
23
|
+
}), n = F(null), o = (l = n.current) == null ? void 0 : l.getContext("2d"), I = (t, e, r, i) => {
|
|
24
|
+
const v = $("color", e) ? e : "transparent";
|
|
25
|
+
t.fillStyle = v, t.fillRect(0, 0, r, i);
|
|
26
|
+
}, b = (t) => Object.keys(t).reduce((e, r, i) => e += `${i > 0 ? " " : ""}${r}(${t[r]})`, "");
|
|
27
|
+
if (o && a && h === "loaded") {
|
|
28
|
+
const { width: t, height: e } = o.canvas;
|
|
29
|
+
o.clearRect(0, 0, t, e), o.globalCompositeOperation = "multiply", o.filter = b(f), o.drawImage(a, 0, 0, t, e), I(o, u, t, e);
|
|
30
|
+
}
|
|
31
|
+
return /* @__PURE__ */ C(
|
|
32
|
+
x,
|
|
27
33
|
{
|
|
28
|
-
ref:
|
|
29
|
-
style: { filter: `brightness(${d}) contrast(1.3)` },
|
|
34
|
+
ref: n,
|
|
30
35
|
role: "img",
|
|
31
|
-
|
|
32
|
-
|
|
36
|
+
style: {
|
|
37
|
+
"--image-visibility": s ? "visible" : "hidden",
|
|
38
|
+
"--image-opacity": s ? 1 : 0
|
|
39
|
+
},
|
|
40
|
+
className: p,
|
|
41
|
+
width: c,
|
|
33
42
|
height: g
|
|
34
43
|
}
|
|
35
44
|
);
|
|
36
45
|
};
|
|
37
|
-
|
|
38
|
-
const
|
|
46
|
+
m.displayName = "Widgets.ColorTool.FilterImage";
|
|
47
|
+
const H = m;
|
|
39
48
|
export {
|
|
40
|
-
|
|
49
|
+
H as default
|
|
41
50
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from "./FilterImage";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const a=require("react/jsx-runtime"),r=require("react"),q=require("@rubin-epo/epo-react-lib/CircularLoader"),c=require("./styles.cjs"),I=require("../utilities.cjs"),S=require("../FilterImage/FilterImage.cjs"),$=e=>e&&e.__esModule?e:{default:e},A=$(q),d=r.forwardRef(({filters:e,width:o,height:s,selectedObjectName:i,children:m},g)=>{const[p,b]=r.useState(i),[n,l]=r.useState(0),f=I.isFilterActive(e),C=e.filter(t=>!t.isDisabled).length,u=n!==C;i!==p&&(b(i),l(0));const y=r.useCallback(()=>l(t=>t+1),[n,e]);return a.jsxs(c.ImageContainer,{ref:g,style:{"--image-width":typeof o=="number"?`${o}px`:o,"--image-height":typeof s=="number"?`${s}px`:s},children:[!n&&f&&a.jsx(A.default,{isVisible:u}),a.jsx(c.LoadingContainer,{style:{"--loading-opacity":u?0:1},children:e&&e.map(t=>{const{label:v,image:x,color:L,brightness:_,active:j}=t;return a.jsx(S.default,{url:x,color:L,active:j,width:o,height:s,filters:{brightness:_,contrast:1.3},onLoadCallback:y},`filter-${v}`)})}),m]})});d.displayName="Widgets.ColorTool.ImageComposite";const F=d;exports.default=F;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { ImageFilter } from "../ColorTool";
|
|
3
|
+
interface ImageCompositeProps {
|
|
4
|
+
filters: ImageFilter[];
|
|
5
|
+
width: number;
|
|
6
|
+
height: number;
|
|
7
|
+
selectedObjectName: string;
|
|
8
|
+
}
|
|
9
|
+
declare const ImageComposite: import("react").ForwardRefExoticComponent<ImageCompositeProps & {
|
|
10
|
+
children?: import("react").ReactNode;
|
|
11
|
+
} & import("react").RefAttributes<HTMLDivElement>>;
|
|
12
|
+
export default ImageComposite;
|
|
@@ -1,33 +1,58 @@
|
|
|
1
|
-
import { jsxs as
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
import { jsxs as $, jsx as s } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef as A, useState as l, useCallback as F } from "react";
|
|
3
|
+
import j from "@rubin-epo/epo-react-lib/CircularLoader";
|
|
4
|
+
import { ImageContainer as k, LoadingContainer as D } from "./styles.js";
|
|
5
|
+
import { isFilterActive as P } from "../utilities.js";
|
|
6
|
+
import R from "../FilterImage/FilterImage.js";
|
|
7
|
+
const c = A(({ filters: o, width: r, height: t, selectedObjectName: a, children: p }, g) => {
|
|
8
|
+
const [d, f] = l(a), [i, n] = l(0), b = P(o), u = o.filter((e) => !e.isDisabled).length, m = i !== u;
|
|
9
|
+
a !== d && (f(a), n(0));
|
|
10
|
+
const C = F(
|
|
11
|
+
() => n((e) => e + 1),
|
|
12
|
+
[i, o]
|
|
13
|
+
);
|
|
14
|
+
return /* @__PURE__ */ $(
|
|
15
|
+
k,
|
|
9
16
|
{
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
),
|
|
15
|
-
e && e.map((t) => {
|
|
16
|
-
const { label: a, image: i, color: r, brightness: m, active: s } = t;
|
|
17
|
-
return /* @__PURE__ */ A(
|
|
18
|
-
p,
|
|
19
|
-
{
|
|
20
|
-
image: i,
|
|
21
|
-
color: r,
|
|
22
|
-
brightness: m,
|
|
23
|
-
active: s
|
|
17
|
+
ref: g,
|
|
18
|
+
style: {
|
|
19
|
+
"--image-width": typeof r == "number" ? `${r}px` : r,
|
|
20
|
+
"--image-height": typeof t == "number" ? `${t}px` : t
|
|
24
21
|
},
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
22
|
+
children: [
|
|
23
|
+
!i && b && /* @__PURE__ */ s(j, { isVisible: m }),
|
|
24
|
+
/* @__PURE__ */ s(
|
|
25
|
+
D,
|
|
26
|
+
{
|
|
27
|
+
style: { "--loading-opacity": m ? 0 : 1 },
|
|
28
|
+
children: o && o.map((e) => {
|
|
29
|
+
const { label: y, image: I, color: L, brightness: v, active: x } = e;
|
|
30
|
+
return /* @__PURE__ */ s(
|
|
31
|
+
R,
|
|
32
|
+
{
|
|
33
|
+
url: I,
|
|
34
|
+
color: L,
|
|
35
|
+
active: x,
|
|
36
|
+
width: r,
|
|
37
|
+
height: t,
|
|
38
|
+
filters: {
|
|
39
|
+
brightness: v,
|
|
40
|
+
contrast: 1.3
|
|
41
|
+
},
|
|
42
|
+
onLoadCallback: C
|
|
43
|
+
},
|
|
44
|
+
`filter-${y}`
|
|
45
|
+
);
|
|
46
|
+
})
|
|
47
|
+
}
|
|
48
|
+
),
|
|
49
|
+
p
|
|
50
|
+
]
|
|
51
|
+
}
|
|
52
|
+
);
|
|
53
|
+
});
|
|
54
|
+
c.displayName = "Widgets.ColorTool.ImageComposite";
|
|
55
|
+
const B = c;
|
|
31
56
|
export {
|
|
32
|
-
|
|
57
|
+
B as default
|
|
33
58
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from "./ImageComposite";
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("styled-components"),i=t=>t&&t.__esModule?t:{default:t},e=i(a),o=e.default.div`
|
|
2
|
+
display: flex;
|
|
3
|
+
justify-content: center;
|
|
4
|
+
align-items: center;
|
|
5
|
+
position: relative;
|
|
6
|
+
aspect-ratio: 1 / 1;
|
|
7
|
+
grid-area: image;
|
|
8
|
+
background-color: rgba(0, 0, 0, 0.1);
|
|
9
|
+
max-width: var(--image-width);
|
|
10
|
+
max-height: var(--image-height);
|
|
11
|
+
`,n=e.default.div`
|
|
12
|
+
width: 100%;
|
|
13
|
+
height: 100%;
|
|
14
|
+
opacity: var(--loading-opacity, 0);
|
|
15
|
+
transition: opacity ease var(--DURATION_SLOW, 0.4s);
|
|
16
|
+
position: absolute;
|
|
17
|
+
top: 0;
|
|
18
|
+
left: 0;
|
|
19
|
+
`;exports.ImageContainer=o;exports.LoadingContainer=n;
|