@cuemath/leap 3.2.22-m → 3.2.23-mb
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/features/stickers/sticker-data.js +234 -0
- package/dist/features/stickers/sticker-data.js.map +1 -0
- package/dist/features/{ui/sticker-grid/sticker-grid-styles.js → stickers/sticker-selector/sticker-selector-styles.js} +21 -31
- package/dist/features/stickers/sticker-selector/sticker-selector-styles.js.map +1 -0
- package/dist/features/stickers/sticker-selector/sticker-selector.js +27 -0
- package/dist/features/stickers/sticker-selector/sticker-selector.js.map +1 -0
- package/dist/features/stickers/sticker-selector/sticker.js +57 -0
- package/dist/features/stickers/sticker-selector/sticker.js.map +1 -0
- package/dist/features/{ui/stickers/stickers-effects.js → stickers/stickers-effects/effects.js} +6 -6
- package/dist/features/stickers/stickers-effects/effects.js.map +1 -0
- package/dist/features/stickers/stickers-effects/stickers-effects-helper.js +86 -0
- package/dist/features/stickers/stickers-effects/stickers-effects-helper.js.map +1 -0
- package/dist/features/{ui/stickers/stickers-styled.js → stickers/stickers-effects/stickers-effects-styled.js} +2 -2
- package/dist/features/stickers/stickers-effects/stickers-effects-styled.js.map +1 -0
- package/dist/features/stickers/stickers-effects/stickers-effects.js +43 -0
- package/dist/features/stickers/stickers-effects/stickers-effects.js.map +1 -0
- package/dist/features/ui/lottie-animation/lottie-animation.js +36 -31
- package/dist/features/ui/lottie-animation/lottie-animation.js.map +1 -1
- package/dist/features/ui/modals/modal-styled.js +39 -8
- package/dist/features/ui/modals/modal-styled.js.map +1 -1
- package/dist/features/ui/modals/modal.js +31 -31
- package/dist/features/ui/modals/modal.js.map +1 -1
- package/dist/index.d.ts +38 -41
- package/dist/index.js +316 -316
- package/package.json +1 -2
- package/dist/features/ui/dot-lottie-animations/dot-lottie-animation-styled.js +0 -9
- package/dist/features/ui/dot-lottie-animations/dot-lottie-animation-styled.js.map +0 -1
- package/dist/features/ui/dot-lottie-animations/dot-lottie-animation.js +0 -65
- package/dist/features/ui/dot-lottie-animations/dot-lottie-animation.js.map +0 -1
- package/dist/features/ui/sticker-grid/sticker-grid-styles.js.map +0 -1
- package/dist/features/ui/sticker-grid/sticker-grid.js +0 -24
- package/dist/features/ui/sticker-grid/sticker-grid.js.map +0 -1
- package/dist/features/ui/sticker-grid/sticker.js +0 -57
- package/dist/features/ui/sticker-grid/sticker.js.map +0 -1
- package/dist/features/ui/stickers/constants.js +0 -6
- package/dist/features/ui/stickers/constants.js.map +0 -1
- package/dist/features/ui/stickers/stickers-effects.js.map +0 -1
- package/dist/features/ui/stickers/stickers-styled.js.map +0 -1
- package/dist/features/ui/stickers/stickers-utils.js +0 -91
- package/dist/features/ui/stickers/stickers-utils.js.map +0 -1
- package/dist/features/ui/stickers/stickers.js +0 -40
- package/dist/features/ui/stickers/stickers.js.map +0 -1
- package/dist/node_modules/@lottiefiles/dotlottie-web/dist/index.js +0 -1881
- package/dist/node_modules/@lottiefiles/dotlottie-web/dist/index.js.map +0 -1
@@ -0,0 +1,43 @@
|
|
1
|
+
import { jsx as o, Fragment as D } from "react/jsx-runtime";
|
2
|
+
import { memo as f, useState as l, useEffect as E } from "react";
|
3
|
+
import g from "../../ui/lottie-animation/lottie-animation.js";
|
4
|
+
import { generateStickerData as F } from "./stickers-effects-helper.js";
|
5
|
+
import { Container as z, Sticker as T } from "./stickers-effects-styled.js";
|
6
|
+
const $ = f(({ lottie: t, sticker: e, size: r }) => {
|
7
|
+
const [i, s] = l(!1);
|
8
|
+
return !t || i ? /* @__PURE__ */ o(D, { children: e }) : /* @__PURE__ */ o(g, { src: t, width: r, height: r, onError: () => s(!0) });
|
9
|
+
}), b = ({ stickers: t, effect: e, count: r, duration: i }) => {
|
10
|
+
const [s, a] = l([]);
|
11
|
+
return E(() => {
|
12
|
+
const c = F({
|
13
|
+
count: r,
|
14
|
+
effect: e,
|
15
|
+
stickers: t,
|
16
|
+
minSize: 32,
|
17
|
+
maxSize: 48
|
18
|
+
});
|
19
|
+
a(c);
|
20
|
+
const m = setTimeout(() => a([]), i);
|
21
|
+
return () => clearTimeout(m);
|
22
|
+
}, [t, e, r, i]), /* @__PURE__ */ o(z, { children: s.map((c, m) => {
|
23
|
+
const { id: k, sticker: u, lottie: S, x: h, y: p, size: n, fromX: d, fromY: x } = c;
|
24
|
+
return /* @__PURE__ */ o(
|
25
|
+
T,
|
26
|
+
{
|
27
|
+
effect: e,
|
28
|
+
duration: i,
|
29
|
+
fromX: d,
|
30
|
+
fromY: x,
|
31
|
+
x: h,
|
32
|
+
y: p,
|
33
|
+
size: n,
|
34
|
+
children: /* @__PURE__ */ o($, { lottie: S, sticker: u, size: n })
|
35
|
+
},
|
36
|
+
`${k}-${m}`
|
37
|
+
);
|
38
|
+
}) });
|
39
|
+
}, L = f(b);
|
40
|
+
export {
|
41
|
+
L as default
|
42
|
+
};
|
43
|
+
//# sourceMappingURL=stickers-effects.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"stickers-effects.js","sources":["../../../../src/features/stickers/stickers-effects/stickers-effects.tsx"],"sourcesContent":["import type { TStickerData, IStickersProps } from './stickers-effects-types';\n\nimport React, { memo, useEffect, useState } from 'react';\n\nimport LottieAnimation from '../../ui/lottie-animation/lottie-animation';\nimport { generateStickerData } from './stickers-effects-helper';\nimport * as S from './stickers-effects-styled';\n\nconst StickerWithFallback: React.FC<{\n lottie?: string;\n sticker: string;\n size: number;\n}> = memo(({ lottie, sticker, size }) => {\n const [failed, setFailed] = useState(false);\n\n if (!lottie || failed) return <>{sticker}</>;\n\n return (\n <LottieAnimation src={lottie} width={size} height={size} onError={() => setFailed(true)} />\n );\n});\n\nconst StickersEffects: React.FC<IStickersProps> = ({ stickers, effect, count, duration }) => {\n const [stickersData, setStickersData] = useState<ReturnType<typeof generateStickerData>>([]);\n\n useEffect(() => {\n const stickerData = generateStickerData({\n count,\n effect,\n stickers,\n minSize: 32,\n maxSize: 48,\n });\n\n setStickersData(stickerData);\n\n const timeout = setTimeout(() => setStickersData([]), duration);\n\n return () => clearTimeout(timeout);\n }, [stickers, effect, count, duration]);\n\n return (\n <S.Container>\n {stickersData.map((data: TStickerData, i) => {\n const { id, sticker, lottie, x, y, size, fromX, fromY } = data;\n\n return (\n <S.Sticker\n key={`${id}-${i}`}\n effect={effect}\n duration={duration}\n fromX={fromX}\n fromY={fromY}\n x={x}\n y={y}\n size={size}\n >\n <StickerWithFallback lottie={lottie} sticker={sticker} size={size} />\n </S.Sticker>\n );\n })}\n </S.Container>\n );\n};\n\nexport default memo(StickersEffects);\n"],"names":["StickerWithFallback","memo","lottie","sticker","size","failed","setFailed","useState","jsx","LottieAnimation","StickersEffects","stickers","effect","count","duration","stickersData","setStickersData","useEffect","stickerData","generateStickerData","timeout","S.Container","data","i","id","x","y","fromX","fromY","S.Sticker","stickersEffects"],"mappings":";;;;;AAQA,MAAMA,IAIDC,EAAK,CAAC,EAAE,QAAAC,GAAQ,SAAAC,GAAS,MAAAC,QAAW;AACvC,QAAM,CAACC,GAAQC,CAAS,IAAIC,EAAS,EAAK;AAE1C,SAAI,CAACL,KAAUG,2BAAkB,UAAQF,EAAA,CAAA,IAGtC,gBAAAK,EAAAC,GAAA,EAAgB,KAAKP,GAAQ,OAAOE,GAAM,QAAQA,GAAM,SAAS,MAAME,EAAU,EAAI,EAAG,CAAA;AAE7F,CAAC,GAEKI,IAA4C,CAAC,EAAE,UAAAC,GAAU,QAAAC,GAAQ,OAAAC,GAAO,UAAAC,QAAe;AAC3F,QAAM,CAACC,GAAcC,CAAe,IAAIT,EAAiD,CAAE,CAAA;AAE3F,SAAAU,EAAU,MAAM;AACd,UAAMC,IAAcC,EAAoB;AAAA,MACtC,OAAAN;AAAA,MACA,QAAAD;AAAA,MACA,UAAAD;AAAA,MACA,SAAS;AAAA,MACT,SAAS;AAAA,IAAA,CACV;AAED,IAAAK,EAAgBE,CAAW;AAE3B,UAAME,IAAU,WAAW,MAAMJ,EAAgB,CAAE,CAAA,GAAGF,CAAQ;AAEvD,WAAA,MAAM,aAAaM,CAAO;AAAA,KAChC,CAACT,GAAUC,GAAQC,GAAOC,CAAQ,CAAC,GAGpC,gBAAAN,EAACa,GAAA,EACE,YAAa,IAAI,CAACC,GAAoBC,MAAM;AACrC,UAAA,EAAE,IAAAC,GAAI,SAAArB,GAAS,QAAAD,GAAQ,GAAAuB,GAAG,GAAAC,GAAG,MAAAtB,GAAM,OAAAuB,GAAO,OAAAC,EAAU,IAAAN;AAGxD,WAAA,gBAAAd;AAAA,MAACqB;AAAAA,MAAA;AAAA,QAEC,QAAAjB;AAAA,QACA,UAAAE;AAAA,QACA,OAAAa;AAAA,QACA,OAAAC;AAAA,QACA,GAAAH;AAAA,QACA,GAAAC;AAAA,QACA,MAAAtB;AAAA,QAEA,UAAC,gBAAAI,EAAAR,GAAA,EAAoB,QAAAE,GAAgB,SAAAC,GAAkB,MAAAC,GAAY;AAAA,MAAA;AAAA,MAT9D,GAAGoB,CAAE,IAAID,CAAC;AAAA,IAAA;AAAA,EAYpB,CAAA,EACH,CAAA;AAEJ,GAEeO,IAAA7B,EAAKS,CAAe;"}
|
@@ -1,32 +1,33 @@
|
|
1
|
-
import { jsx as
|
2
|
-
import
|
3
|
-
import { memo as w, forwardRef as
|
1
|
+
import { jsx as A } from "react/jsx-runtime";
|
2
|
+
import E from "lottie-web";
|
3
|
+
import { memo as w, forwardRef as b, useRef as m, useImperativeHandle as I, useEffect as S } from "react";
|
4
4
|
import $ from "../layout/flex-view.js";
|
5
5
|
import { fetchLottie as x } from "./helper.js";
|
6
|
-
const O =
|
6
|
+
const O = b((L, h) => {
|
7
7
|
const {
|
8
|
-
src:
|
9
|
-
width:
|
8
|
+
src: l,
|
9
|
+
width: g = "100%",
|
10
10
|
height: y = "100%",
|
11
|
-
settings:
|
12
|
-
eventListener:
|
13
|
-
onRender:
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
11
|
+
settings: d,
|
12
|
+
eventListener: o,
|
13
|
+
onRender: i,
|
14
|
+
onError: a,
|
15
|
+
animateOnIntersect: s
|
16
|
+
} = L, c = m(null), r = m(null), u = m(null);
|
17
|
+
return I(
|
18
|
+
h,
|
18
19
|
() => ({
|
19
|
-
playSegments: (t,
|
20
|
+
playSegments: (t, n) => {
|
20
21
|
var e;
|
21
|
-
return (e = r.current) == null ? void 0 : e.playSegments(t,
|
22
|
+
return (e = r.current) == null ? void 0 : e.playSegments(t, n);
|
22
23
|
},
|
23
|
-
addEventListener: (t,
|
24
|
+
addEventListener: (t, n) => {
|
24
25
|
var e;
|
25
|
-
return (e = r.current) == null ? void 0 : e.addEventListener(t,
|
26
|
+
return (e = r.current) == null ? void 0 : e.addEventListener(t, n);
|
26
27
|
},
|
27
|
-
removeEventListener: (t,
|
28
|
+
removeEventListener: (t, n) => {
|
28
29
|
var e;
|
29
|
-
return (e = r.current) == null ? void 0 : e.removeEventListener(t,
|
30
|
+
return (e = r.current) == null ? void 0 : e.removeEventListener(t, n);
|
30
31
|
},
|
31
32
|
play: () => {
|
32
33
|
var t;
|
@@ -35,37 +36,41 @@ const O = A((v, L) => {
|
|
35
36
|
stop: () => {
|
36
37
|
var t;
|
37
38
|
return (t = r.current) == null ? void 0 : t.stop();
|
39
|
+
},
|
40
|
+
goToAndStop: (t, n) => {
|
41
|
+
var e;
|
42
|
+
return (e = r.current) == null ? void 0 : e.goToAndStop(t, n);
|
38
43
|
}
|
39
44
|
}),
|
40
45
|
[]
|
41
|
-
),
|
46
|
+
), S(() => {
|
42
47
|
let t = !1;
|
43
48
|
return (async () => {
|
44
49
|
try {
|
45
|
-
const e = await x(
|
50
|
+
const e = await x(l);
|
46
51
|
requestAnimationFrame(() => {
|
47
|
-
!
|
48
|
-
container:
|
52
|
+
!c.current || t || (r.current = E.loadAnimation({
|
53
|
+
container: c.current,
|
49
54
|
animationData: e,
|
50
55
|
loop: !0,
|
51
56
|
autoplay: !0,
|
52
|
-
...
|
53
|
-
}),
|
57
|
+
...d
|
58
|
+
}), s && (u.current = new IntersectionObserver(
|
54
59
|
([f]) => {
|
55
|
-
var
|
56
|
-
f && f.isIntersecting ? (
|
60
|
+
var p, v;
|
61
|
+
f && f.isIntersecting ? (p = r.current) == null || p.play() : (v = r.current) == null || v.pause();
|
57
62
|
},
|
58
63
|
{ threshold: 0 }
|
59
|
-
),
|
64
|
+
), u.current.observe(c.current)), i == null || i(), o && r.current.addEventListener(o.name, o.callback));
|
60
65
|
});
|
61
66
|
} catch (e) {
|
62
|
-
throw Error(`Error loading Lottie animation: ${e}`);
|
67
|
+
throw a == null || a(), Error(`Error loading Lottie animation: ${e}`);
|
63
68
|
}
|
64
69
|
})(), () => {
|
65
70
|
var e;
|
66
|
-
t = !0, r.current && (
|
71
|
+
t = !0, r.current && (o && r.current.removeEventListener(o.name, o.callback), s && ((e = u.current) == null || e.disconnect()), r.current.destroy());
|
67
72
|
};
|
68
|
-
}, [
|
73
|
+
}, [l, o, i, s, d, a]), /* @__PURE__ */ A($, { ref: c, $width: g, $height: y });
|
69
74
|
}), D = w(O);
|
70
75
|
export {
|
71
76
|
D as default
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"lottie-animation.js","sources":["../../../../src/features/ui/lottie-animation/lottie-animation.tsx"],"sourcesContent":["import type { ILottieAnimationProps, ILottieAnimationRef } from './types';\nimport type { AnimationEventName, AnimationItem, AnimationSegment } from 'lottie-web';\n\nimport lottie from 'lottie-web';\nimport { forwardRef, memo, useEffect, useImperativeHandle, useRef } from 'react';\n\nimport FlexView from '../layout/flex-view';\nimport { fetchLottie } from './helper';\n\nconst LottieAnimation = forwardRef<ILottieAnimationRef, ILottieAnimationProps>((props, ref) => {\n const {\n src,\n width = '100%',\n height = '100%',\n settings,\n eventListener,\n onRender,\n animateOnIntersect,\n } = props;\n\n const container = useRef<HTMLDivElement>(null);\n const animationInstance = useRef<AnimationItem | null>(null);\n const intersectionObserver = useRef<IntersectionObserver | null>(null);\n\n useImperativeHandle(\n ref,\n () => ({\n playSegments: (segments: AnimationSegment, forceFlag?: boolean) =>\n animationInstance.current?.playSegments(segments, forceFlag),\n addEventListener: (eventName: string, callback: () => void) =>\n animationInstance.current?.addEventListener(eventName as AnimationEventName, callback),\n removeEventListener: (eventName: string, callback: () => void) =>\n animationInstance.current?.removeEventListener(eventName as AnimationEventName, callback),\n play: () => animationInstance.current?.play(),\n stop: () => animationInstance.current?.stop(),\n }),\n [],\n );\n\n useEffect(() => {\n let destroyed = false;\n\n const loadAnimation = async () => {\n try {\n const animationData = await fetchLottie(src);\n\n // Wait for layout\n // NOTE: Do not remove this as this is needed to fix canvas rendering on first layout.\n requestAnimationFrame(() => {\n if (!container.current || destroyed) return;\n\n animationInstance.current = lottie.loadAnimation({\n container: container.current,\n animationData,\n loop: true,\n autoplay: true,\n ...settings,\n });\n\n if (animateOnIntersect) {\n intersectionObserver.current = new IntersectionObserver(\n ([entry]) => {\n if (entry && entry.isIntersecting) {\n animationInstance.current?.play();\n } else {\n animationInstance.current?.pause();\n }\n },\n { threshold: 0 },\n );\n\n intersectionObserver.current.observe(container.current);\n }\n\n onRender?.();\n if (eventListener) {\n animationInstance.current.addEventListener(eventListener.name, eventListener.callback);\n }\n });\n } catch (error) {\n throw Error(`Error loading Lottie animation: ${error}`);\n }\n };\n\n loadAnimation();\n\n return () => {\n destroyed = true;\n if (animationInstance.current) {\n if (eventListener) {\n animationInstance.current.removeEventListener(eventListener.name, eventListener.callback);\n }\n\n if (animateOnIntersect) {\n intersectionObserver.current?.disconnect();\n }\n animationInstance.current.destroy();\n }\n };\n }, [src, eventListener, onRender, animateOnIntersect, settings]);\n\n return <FlexView ref={container} $width={width} $height={height} />;\n});\n\nexport default memo(LottieAnimation);\n"],"names":["LottieAnimation","forwardRef","props","ref","src","width","height","settings","eventListener","onRender","animateOnIntersect","container","useRef","animationInstance","intersectionObserver","useImperativeHandle","segments","forceFlag","_a","eventName","callback","useEffect","destroyed","animationData","fetchLottie","lottie","entry","_b","error","FlexView","LottieAnimation$1","memo"],"mappings":";;;;;AASA,MAAMA,IAAkBC,EAAuD,CAACC,GAAOC,MAAQ;AACvF,QAAA;AAAA,IACJ,KAAAC;AAAA,IACA,OAAAC,IAAQ;AAAA,IACR,QAAAC,IAAS;AAAA,IACT,UAAAC;AAAA,IACA,eAAAC;AAAA,IACA,UAAAC;AAAA,IACA,oBAAAC;AAAA,EACE,
|
1
|
+
{"version":3,"file":"lottie-animation.js","sources":["../../../../src/features/ui/lottie-animation/lottie-animation.tsx"],"sourcesContent":["import type { ILottieAnimationProps, ILottieAnimationRef } from './types';\nimport type { AnimationEventName, AnimationItem, AnimationSegment } from 'lottie-web';\n\nimport lottie from 'lottie-web';\nimport { forwardRef, memo, useEffect, useImperativeHandle, useRef } from 'react';\n\nimport FlexView from '../layout/flex-view';\nimport { fetchLottie } from './helper';\n\nconst LottieAnimation = forwardRef<ILottieAnimationRef, ILottieAnimationProps>((props, ref) => {\n const {\n src,\n width = '100%',\n height = '100%',\n settings,\n eventListener,\n onRender,\n onError,\n animateOnIntersect,\n } = props;\n\n const container = useRef<HTMLDivElement>(null);\n const animationInstance = useRef<AnimationItem | null>(null);\n const intersectionObserver = useRef<IntersectionObserver | null>(null);\n\n useImperativeHandle(\n ref,\n () => ({\n playSegments: (segments: AnimationSegment, forceFlag?: boolean) =>\n animationInstance.current?.playSegments(segments, forceFlag),\n addEventListener: (eventName: string, callback: () => void) =>\n animationInstance.current?.addEventListener(eventName as AnimationEventName, callback),\n removeEventListener: (eventName: string, callback: () => void) =>\n animationInstance.current?.removeEventListener(eventName as AnimationEventName, callback),\n play: () => animationInstance.current?.play(),\n stop: () => animationInstance.current?.stop(),\n goToAndStop: (v, f) => animationInstance.current?.goToAndStop(v, f),\n }),\n [],\n );\n\n useEffect(() => {\n let destroyed = false;\n\n const loadAnimation = async () => {\n try {\n const animationData = await fetchLottie(src);\n\n // Wait for layout\n // NOTE: Do not remove this as this is needed to fix canvas rendering on first layout.\n requestAnimationFrame(() => {\n if (!container.current || destroyed) return;\n\n animationInstance.current = lottie.loadAnimation({\n container: container.current,\n animationData,\n loop: true,\n autoplay: true,\n ...settings,\n });\n\n if (animateOnIntersect) {\n intersectionObserver.current = new IntersectionObserver(\n ([entry]) => {\n if (entry && entry.isIntersecting) {\n animationInstance.current?.play();\n } else {\n animationInstance.current?.pause();\n }\n },\n { threshold: 0 },\n );\n\n intersectionObserver.current.observe(container.current);\n }\n\n onRender?.();\n if (eventListener) {\n animationInstance.current.addEventListener(eventListener.name, eventListener.callback);\n }\n });\n } catch (error) {\n onError?.();\n throw Error(`Error loading Lottie animation: ${error}`);\n }\n };\n\n loadAnimation();\n\n return () => {\n destroyed = true;\n if (animationInstance.current) {\n if (eventListener) {\n animationInstance.current.removeEventListener(eventListener.name, eventListener.callback);\n }\n\n if (animateOnIntersect) {\n intersectionObserver.current?.disconnect();\n }\n animationInstance.current.destroy();\n }\n };\n }, [src, eventListener, onRender, animateOnIntersect, settings, onError]);\n\n return <FlexView ref={container} $width={width} $height={height} />;\n});\n\nexport default memo(LottieAnimation);\n"],"names":["LottieAnimation","forwardRef","props","ref","src","width","height","settings","eventListener","onRender","onError","animateOnIntersect","container","useRef","animationInstance","intersectionObserver","useImperativeHandle","segments","forceFlag","_a","eventName","callback","v","f","useEffect","destroyed","animationData","fetchLottie","lottie","entry","_b","error","FlexView","LottieAnimation$1","memo"],"mappings":";;;;;AASA,MAAMA,IAAkBC,EAAuD,CAACC,GAAOC,MAAQ;AACvF,QAAA;AAAA,IACJ,KAAAC;AAAA,IACA,OAAAC,IAAQ;AAAA,IACR,QAAAC,IAAS;AAAA,IACT,UAAAC;AAAA,IACA,eAAAC;AAAA,IACA,UAAAC;AAAA,IACA,SAAAC;AAAA,IACA,oBAAAC;AAAA,EACE,IAAAT,GAEEU,IAAYC,EAAuB,IAAI,GACvCC,IAAoBD,EAA6B,IAAI,GACrDE,IAAuBF,EAAoC,IAAI;AAErE,SAAAG;AAAA,IACEb;AAAA,IACA,OAAO;AAAA,MACL,cAAc,CAACc,GAA4BC,MACzC;;AAAA,gBAAAC,IAAAL,EAAkB,YAAlB,gBAAAK,EAA2B,aAAaF,GAAUC;AAAA;AAAA,MACpD,kBAAkB,CAACE,GAAmBC,MACpC;;AAAA,gBAAAF,IAAAL,EAAkB,YAAlB,gBAAAK,EAA2B,iBAAiBC,GAAiCC;AAAA;AAAA,MAC/E,qBAAqB,CAACD,GAAmBC,MACvC;;AAAA,gBAAAF,IAAAL,EAAkB,YAAlB,gBAAAK,EAA2B,oBAAoBC,GAAiCC;AAAA;AAAA,MAClF,MAAM,MAAM;;AAAA,gBAAAF,IAAAL,EAAkB,YAAlB,gBAAAK,EAA2B;AAAA;AAAA,MACvC,MAAM,MAAM;;AAAA,gBAAAA,IAAAL,EAAkB,YAAlB,gBAAAK,EAA2B;AAAA;AAAA,MACvC,aAAa,CAACG,GAAGC,MAAM;;AAAA,gBAAAJ,IAAAL,EAAkB,YAAlB,gBAAAK,EAA2B,YAAYG,GAAGC;AAAA;AAAA,IAAC;AAAA,IAEpE,CAAC;AAAA,EAAA,GAGHC,EAAU,MAAM;AACd,QAAIC,IAAY;AA6CF,YA3CQ,YAAY;AAC5B,UAAA;AACI,cAAAC,IAAgB,MAAMC,EAAYvB,CAAG;AAI3C,8BAAsB,MAAM;AACtB,UAAA,CAACQ,EAAU,WAAWa,MAERX,EAAA,UAAUc,EAAO,cAAc;AAAA,YAC/C,WAAWhB,EAAU;AAAA,YACrB,eAAAc;AAAA,YACA,MAAM;AAAA,YACN,UAAU;AAAA,YACV,GAAGnB;AAAA,UAAA,CACJ,GAEGI,MACFI,EAAqB,UAAU,IAAI;AAAA,YACjC,CAAC,CAACc,CAAK,MAAM;;AACP,cAAAA,KAASA,EAAM,kBACjBV,IAAAL,EAAkB,YAAlB,QAAAK,EAA2B,UAE3BW,IAAAhB,EAAkB,YAAlB,QAAAgB,EAA2B;AAAA,YAE/B;AAAA,YACA,EAAE,WAAW,EAAE;AAAA,UAAA,GAGIf,EAAA,QAAQ,QAAQH,EAAU,OAAO,IAG7CH,KAAA,QAAAA,KACPD,KACFM,EAAkB,QAAQ,iBAAiBN,EAAc,MAAMA,EAAc,QAAQ;AAAA,QACvF,CACD;AAAA,eACMuB,GAAO;AACJ,cAAArB,KAAA,QAAAA,KACJ,MAAM,mCAAmCqB,CAAK,EAAE;AAAA,MACxD;AAAA,IAAA,MAKK,MAAM;;AACC,MAAAN,IAAA,IACRX,EAAkB,YAChBN,KACFM,EAAkB,QAAQ,oBAAoBN,EAAc,MAAMA,EAAc,QAAQ,GAGtFG,OACFQ,IAAAJ,EAAqB,YAArB,QAAAI,EAA8B,eAEhCL,EAAkB,QAAQ;IAC5B;AAAA,EACF,GACC,CAACV,GAAKI,GAAeC,GAAUE,GAAoBJ,GAAUG,CAAO,CAAC,qBAEhEsB,GAAS,EAAA,KAAKpB,GAAW,QAAQP,GAAO,SAASC,EAAQ,CAAA;AACnE,CAAC,GAEc2B,IAAAC,EAAKlC,CAAe;"}
|
@@ -73,7 +73,7 @@ const p = a.div(
|
|
73
73
|
}
|
74
74
|
}
|
75
75
|
`
|
76
|
-
),
|
76
|
+
), d = a.div(
|
77
77
|
({ $modalWidth: t }) => `
|
78
78
|
max-height: calc(100vh - 142px);
|
79
79
|
overflow-y: auto;
|
@@ -82,7 +82,7 @@ const p = a.div(
|
|
82
82
|
max-height: 100vh;
|
83
83
|
}
|
84
84
|
}`
|
85
|
-
),
|
85
|
+
), c = a.div(
|
86
86
|
({ theme: { colors: t }, $modalWidth: o }) => `
|
87
87
|
position: absolute;
|
88
88
|
top: -56px;
|
@@ -100,7 +100,7 @@ const p = a.div(
|
|
100
100
|
color: ${t.BLACK_1};
|
101
101
|
}
|
102
102
|
`
|
103
|
-
),
|
103
|
+
), m = a.div`
|
104
104
|
display: flex;
|
105
105
|
align-items: center;
|
106
106
|
justify-content: center;
|
@@ -151,6 +151,36 @@ const p = a.div(
|
|
151
151
|
}
|
152
152
|
`
|
153
153
|
), h = a.div(
|
154
|
+
({ theme: { colors: t, zIndex: o }, $isClosing: e }) => `
|
155
|
+
position: fixed;
|
156
|
+
top: 0;
|
157
|
+
left: 0;
|
158
|
+
right: 0;
|
159
|
+
bottom: 0;
|
160
|
+
background-color: ${t.TRANSPARENT};
|
161
|
+
display: flex;
|
162
|
+
animation: ${e ? "backdropFadeOut" : "backdropFadeIn"} 0.2s ease-out forwards;
|
163
|
+
z-index: ${o.MODAL};
|
164
|
+
|
165
|
+
@keyframes backdropFadeIn {
|
166
|
+
from {
|
167
|
+
opacity: 0;
|
168
|
+
}
|
169
|
+
to {
|
170
|
+
opacity: 1;
|
171
|
+
}
|
172
|
+
}
|
173
|
+
|
174
|
+
@keyframes backdropFadeOut {
|
175
|
+
from {
|
176
|
+
opacity: 1;
|
177
|
+
}
|
178
|
+
to {
|
179
|
+
opacity: 0;
|
180
|
+
}
|
181
|
+
}
|
182
|
+
`
|
183
|
+
), x = a.div(
|
154
184
|
({ $isClosing: t }) => `
|
155
185
|
width: 100%;
|
156
186
|
height: max-content;
|
@@ -186,11 +216,12 @@ const p = a.div(
|
|
186
216
|
);
|
187
217
|
export {
|
188
218
|
l as BaseModal,
|
189
|
-
|
190
|
-
|
191
|
-
|
219
|
+
d as BaseModalContent,
|
220
|
+
x as BottomSheetModal,
|
221
|
+
c as CloseButtonContainer,
|
192
222
|
p as ModalContainer,
|
193
|
-
|
194
|
-
f as SpotlightModal
|
223
|
+
m as ModalLoaderWrapper,
|
224
|
+
f as SpotlightModal,
|
225
|
+
h as TransparentModalContainer
|
195
226
|
};
|
196
227
|
//# sourceMappingURL=modal-styled.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"modal-styled.js","sources":["../../../../src/features/ui/modals/modal-styled.tsx"],"sourcesContent":["import styled from 'styled-components';\n\nconst ModalContainer = styled.div<{ $isClosing?: boolean }>(\n ({ theme: { colors, zIndex }, $isClosing }) => `\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: ${colors.BLACK_T_60};\n backdrop-filter: blur(40px);\n display: flex;\n animation: ${$isClosing ? 'backdropFadeOut' : 'backdropFadeIn'} 0.2s ease-out forwards;\n z-index: ${zIndex.MODAL};\n\n @keyframes backdropFadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n }\n \n @keyframes backdropFadeOut {\n from {\n opacity: 1;\n }\n to {\n opacity: 0;\n }\n }\n`,\n);\n\n/**\n * Base modal container with customizable width and animation state\n */\nconst BaseModal = styled.div<{\n $isClosing?: boolean;\n $width: string;\n}>(\n ({ theme: { colors }, $isClosing, $width }) => `\n position: relative;\n align-self: center;\n margin: 0 auto;\n width: ${$width};\n background-color: ${colors.WHITE_1};\n border: 1px solid ${colors.BLACK_1};\n transform-origin: center center;\n animation: ${\n $isClosing ? 'modalDisappear' : 'modalAppear'\n } 0.5s cubic-bezier(0.19, 1, 0.22, 1) forwards;\n box-shadow: 0px 10px 20px 0px rgba(0, 0, 0, 0.20);\n \n /* Responsive behavior for smaller screens */\n @media (max-width: calc(${$width} + 80px)) {\n width: 100%;\n max-width: 100%;\n height: 100%;\n max-height: 100%;\n border: none;\n }\n \n @keyframes modalAppear {\n 0% {\n opacity: 0;\n transform: perspective(1200px) translateZ(-50px) translateY(10px) scale(0.98);\n }\n 100% {\n opacity: 1;\n transform: perspective(1200px) translateZ(0) translateY(0) scale(1);\n }\n }\n \n @keyframes modalDisappear {\n 0% {\n opacity: 1;\n transform: perspective(1200px) translateZ(0) translateY(0) scale(1);\n }\n 100% {\n opacity: 0;\n transform: perspective(1200px) translateZ(-50px) translateY(10px) scale(0.98);\n }\n }\n`,\n);\n\n/**\n * Scrollable content container inside the modal\n */\nconst BaseModalContent = styled.div<{ $modalWidth: string }>(\n ({ $modalWidth }) => `\n max-height: calc(100vh - 142px);\n overflow-y: auto;\n\n @media (max-width: calc(${$modalWidth} + 80px)) {\n max-height: 100vh;\n }\n}`,\n);\n\n/**\n * Container for the close button with responsive positioning\n */\nconst CloseButtonContainer = styled.div<{ $modalWidth: string }>(\n ({ theme: { colors }, $modalWidth }) => `\n position: absolute;\n top: -56px;\n right: -40px;\n color: ${colors.WHITE_1};\n transition: all 0.2s ease;\n \n &:hover {\n transform: scale(1.05);\n }\n\n @media (max-width: calc(${$modalWidth} + 80px)) {\n top: 16px;\n right: 16px;\n color: ${colors.BLACK_1};\n }\n`,\n);\n\nconst ModalLoaderWrapper = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100vh;\n width: 100%;\n`;\n\nconst spotlightWidth = 720;\nconst spotlightAnimationStartDuration = 800;\nconst spotlightAnimationEndDuration = 500;\n\nconst SpotlightModal = styled.div<{\n $isClosing?: boolean;\n}>(\n ({ $isClosing }) => `\n position: absolute;\n width: ${spotlightWidth}px;\n height: 100%;\n left: 50%;\n margin-left: ${-(spotlightWidth / 2)}px;\n clip-path: polygon(calc(50% - 100px) 0, calc(50% + 100px) 0, 100% 100%, 0 100%);\n background: linear-gradient(\n 180deg,\n rgba(0, 0, 0, 1) 0%,\n rgba(0, 0, 0, 0) 100%\n );\n animation: openSpotlight;\n animation-duration: ${spotlightAnimationStartDuration}ms;\n animation-timing-function: linear;\n animation-fill-mode: forwards;\n opacity: 0;\n ${\n $isClosing\n ? `\n animation: closeSpotlight;\n animation-duration: ${spotlightAnimationEndDuration}ms;\n animation-timing-function: linear;\n animation-fill-mode: forwards;\n opacity: 1;\n `\n : ''\n }\n\n @keyframes openSpotlight {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n }\n\n @keyframes closeSpotlight {\n from {\n transform: rotateY(0);\n }\n to {\n transform: rotateY(90deg);\n }\n }\n`,\n);\n\nconst BottomSheetModal = styled.div<{ $isClosing?: boolean }>(\n ({ $isClosing }) => `\n width: 100%;\n height: max-content;\n overflow: auto;\n position: fixed;\n left: 0;\n right: 0;\n bottom: 0;\n animation: ${$isClosing ? 'slideOut' : 'slideIn'} 0.3s forwards;\n\n @keyframes slideIn {\n from {\n transform: translateY(100%);\n opacity: 0;\n }\n to {\n transform: translateY(0%);\n opacity: 1;\n }\n }\n\n @keyframes slideOut {\n from {\n transform: translateY(0%);\n opacity: 1;\n }\n to {\n transform: translateY(100%);\n opacity: 0;\n }\n }\n `,\n);\n\nexport {\n ModalContainer,\n BaseModal,\n BaseModalContent,\n CloseButtonContainer,\n SpotlightModal,\n ModalLoaderWrapper,\n BottomSheetModal,\n};\n"],"names":["ModalContainer","styled","colors","zIndex","$isClosing","BaseModal","$width","BaseModalContent","$modalWidth","CloseButtonContainer","ModalLoaderWrapper","spotlightWidth","spotlightAnimationStartDuration","spotlightAnimationEndDuration","SpotlightModal","BottomSheetModal"],"mappings":";AAEA,MAAMA,IAAiBC,EAAO;AAAA,EAC5B,CAAC,EAAE,OAAO,EAAE,QAAAC,GAAQ,QAAAC,EAAO,GAAG,YAAAC,QAAiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAM3BF,EAAO,UAAU;AAAA;AAAA;AAAA,eAGxBE,IAAa,oBAAoB,gBAAgB;AAAA,aACnDD,EAAO,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAoBzB,GAKME,IAAYJ,EAAO;AAAA,EAIvB,CAAC,EAAE,OAAO,EAAE,QAAAC,EAAU,GAAA,YAAAE,GAAY,QAAAE,QAAa;AAAA;AAAA;AAAA;AAAA,WAItCA,CAAM;AAAA,sBACKJ,EAAO,OAAO;AAAA,sBACdA,EAAO,OAAO;AAAA;AAAA,eAGhCE,IAAa,mBAAmB,aAClC;AAAA;AAAA;AAAA;AAAA,4BAI0BE,CAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA8BlC,GAKMC,IAAmBN,EAAO;AAAA,EAC9B,CAAC,EAAE,aAAAO,EAAA,MAAkB;AAAA;AAAA;AAAA;AAAA,4BAIKA,CAAW;AAAA;AAAA;AAAA;AAIvC,GAKMC,IAAuBR,EAAO;AAAA,EAClC,CAAC,EAAE,OAAO,EAAE,QAAAC,EAAO,GAAG,aAAAM,EAAkB,MAAA;AAAA;AAAA;AAAA;AAAA,WAI/BN,EAAO,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4BAOGM,CAAW;AAAA;AAAA;AAAA,aAG1BN,EAAO,OAAO;AAAA;AAAA;AAG3B,GAEMQ,IAAqBT,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAQ5BU,IAAiB,KACjBC,IAAkC,KAClCC,IAAgC,KAEhCC,IAAiBb,EAAO;AAAA,EAG5B,CAAC,EAAE,YAAAG,EAAA,MAAiB;AAAA;AAAA,WAEXO,CAAc;AAAA;AAAA;AAAA,iBAGR,EAAEA,IAAiB,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAQdC,CAA+B;AAAA;AAAA;AAAA;AAAA,IAKnDR,IACI;AAAA;AAAA,4BAEoBS,CAA6B;AAAA;AAAA;AAAA;AAAA,QAKjD,EACN;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAoBF,GAEME,
|
1
|
+
{"version":3,"file":"modal-styled.js","sources":["../../../../src/features/ui/modals/modal-styled.tsx"],"sourcesContent":["import styled from 'styled-components';\n\nconst ModalContainer = styled.div<{ $isClosing?: boolean }>(\n ({ theme: { colors, zIndex }, $isClosing }) => `\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: ${colors.BLACK_T_60};\n backdrop-filter: blur(40px);\n display: flex;\n animation: ${$isClosing ? 'backdropFadeOut' : 'backdropFadeIn'} 0.2s ease-out forwards;\n z-index: ${zIndex.MODAL};\n\n @keyframes backdropFadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n }\n \n @keyframes backdropFadeOut {\n from {\n opacity: 1;\n }\n to {\n opacity: 0;\n }\n }\n`,\n);\n\n/**\n * Base modal container with customizable width and animation state\n */\nconst BaseModal = styled.div<{\n $isClosing?: boolean;\n $width: string;\n}>(\n ({ theme: { colors }, $isClosing, $width }) => `\n position: relative;\n align-self: center;\n margin: 0 auto;\n width: ${$width};\n background-color: ${colors.WHITE_1};\n border: 1px solid ${colors.BLACK_1};\n transform-origin: center center;\n animation: ${\n $isClosing ? 'modalDisappear' : 'modalAppear'\n } 0.5s cubic-bezier(0.19, 1, 0.22, 1) forwards;\n box-shadow: 0px 10px 20px 0px rgba(0, 0, 0, 0.20);\n \n /* Responsive behavior for smaller screens */\n @media (max-width: calc(${$width} + 80px)) {\n width: 100%;\n max-width: 100%;\n height: 100%;\n max-height: 100%;\n border: none;\n }\n \n @keyframes modalAppear {\n 0% {\n opacity: 0;\n transform: perspective(1200px) translateZ(-50px) translateY(10px) scale(0.98);\n }\n 100% {\n opacity: 1;\n transform: perspective(1200px) translateZ(0) translateY(0) scale(1);\n }\n }\n \n @keyframes modalDisappear {\n 0% {\n opacity: 1;\n transform: perspective(1200px) translateZ(0) translateY(0) scale(1);\n }\n 100% {\n opacity: 0;\n transform: perspective(1200px) translateZ(-50px) translateY(10px) scale(0.98);\n }\n }\n`,\n);\n\n/**\n * Scrollable content container inside the modal\n */\nconst BaseModalContent = styled.div<{ $modalWidth: string }>(\n ({ $modalWidth }) => `\n max-height: calc(100vh - 142px);\n overflow-y: auto;\n\n @media (max-width: calc(${$modalWidth} + 80px)) {\n max-height: 100vh;\n }\n}`,\n);\n\n/**\n * Container for the close button with responsive positioning\n */\nconst CloseButtonContainer = styled.div<{ $modalWidth: string }>(\n ({ theme: { colors }, $modalWidth }) => `\n position: absolute;\n top: -56px;\n right: -40px;\n color: ${colors.WHITE_1};\n transition: all 0.2s ease;\n \n &:hover {\n transform: scale(1.05);\n }\n\n @media (max-width: calc(${$modalWidth} + 80px)) {\n top: 16px;\n right: 16px;\n color: ${colors.BLACK_1};\n }\n`,\n);\n\nconst ModalLoaderWrapper = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100vh;\n width: 100%;\n`;\n\nconst spotlightWidth = 720;\nconst spotlightAnimationStartDuration = 800;\nconst spotlightAnimationEndDuration = 500;\n\nconst SpotlightModal = styled.div<{\n $isClosing?: boolean;\n}>(\n ({ $isClosing }) => `\n position: absolute;\n width: ${spotlightWidth}px;\n height: 100%;\n left: 50%;\n margin-left: ${-(spotlightWidth / 2)}px;\n clip-path: polygon(calc(50% - 100px) 0, calc(50% + 100px) 0, 100% 100%, 0 100%);\n background: linear-gradient(\n 180deg,\n rgba(0, 0, 0, 1) 0%,\n rgba(0, 0, 0, 0) 100%\n );\n animation: openSpotlight;\n animation-duration: ${spotlightAnimationStartDuration}ms;\n animation-timing-function: linear;\n animation-fill-mode: forwards;\n opacity: 0;\n ${\n $isClosing\n ? `\n animation: closeSpotlight;\n animation-duration: ${spotlightAnimationEndDuration}ms;\n animation-timing-function: linear;\n animation-fill-mode: forwards;\n opacity: 1;\n `\n : ''\n }\n\n @keyframes openSpotlight {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n }\n\n @keyframes closeSpotlight {\n from {\n transform: rotateY(0);\n }\n to {\n transform: rotateY(90deg);\n }\n }\n`,\n);\n\nconst TransparentModalContainer = styled.div<{ $isClosing?: boolean }>(\n ({ theme: { colors, zIndex }, $isClosing }) => `\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: ${colors.TRANSPARENT};\n display: flex;\n animation: ${$isClosing ? 'backdropFadeOut' : 'backdropFadeIn'} 0.2s ease-out forwards;\n z-index: ${zIndex.MODAL};\n\n @keyframes backdropFadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n }\n \n @keyframes backdropFadeOut {\n from {\n opacity: 1;\n }\n to {\n opacity: 0;\n }\n }\n`,\n);\n\nconst BottomSheetModal = styled.div<{ $isClosing?: boolean }>(\n ({ $isClosing }) => `\n width: 100%;\n height: max-content;\n overflow: auto;\n position: fixed;\n left: 0;\n right: 0;\n bottom: 0;\n animation: ${$isClosing ? 'slideOut' : 'slideIn'} 0.3s forwards;\n\n @keyframes slideIn {\n from {\n transform: translateY(100%);\n opacity: 0;\n }\n to {\n transform: translateY(0%);\n opacity: 1;\n }\n }\n\n @keyframes slideOut {\n from {\n transform: translateY(0%);\n opacity: 1;\n }\n to {\n transform: translateY(100%);\n opacity: 0;\n }\n }\n `,\n);\n\nexport {\n ModalContainer,\n BaseModal,\n BaseModalContent,\n CloseButtonContainer,\n TransparentModalContainer,\n SpotlightModal,\n ModalLoaderWrapper,\n BottomSheetModal,\n};\n"],"names":["ModalContainer","styled","colors","zIndex","$isClosing","BaseModal","$width","BaseModalContent","$modalWidth","CloseButtonContainer","ModalLoaderWrapper","spotlightWidth","spotlightAnimationStartDuration","spotlightAnimationEndDuration","SpotlightModal","TransparentModalContainer","BottomSheetModal"],"mappings":";AAEA,MAAMA,IAAiBC,EAAO;AAAA,EAC5B,CAAC,EAAE,OAAO,EAAE,QAAAC,GAAQ,QAAAC,EAAO,GAAG,YAAAC,QAAiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAM3BF,EAAO,UAAU;AAAA;AAAA;AAAA,eAGxBE,IAAa,oBAAoB,gBAAgB;AAAA,aACnDD,EAAO,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAoBzB,GAKME,IAAYJ,EAAO;AAAA,EAIvB,CAAC,EAAE,OAAO,EAAE,QAAAC,EAAU,GAAA,YAAAE,GAAY,QAAAE,QAAa;AAAA;AAAA;AAAA;AAAA,WAItCA,CAAM;AAAA,sBACKJ,EAAO,OAAO;AAAA,sBACdA,EAAO,OAAO;AAAA;AAAA,eAGhCE,IAAa,mBAAmB,aAClC;AAAA;AAAA;AAAA;AAAA,4BAI0BE,CAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA8BlC,GAKMC,IAAmBN,EAAO;AAAA,EAC9B,CAAC,EAAE,aAAAO,EAAA,MAAkB;AAAA;AAAA;AAAA;AAAA,4BAIKA,CAAW;AAAA;AAAA;AAAA;AAIvC,GAKMC,IAAuBR,EAAO;AAAA,EAClC,CAAC,EAAE,OAAO,EAAE,QAAAC,EAAO,GAAG,aAAAM,EAAkB,MAAA;AAAA;AAAA;AAAA;AAAA,WAI/BN,EAAO,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4BAOGM,CAAW;AAAA;AAAA;AAAA,aAG1BN,EAAO,OAAO;AAAA;AAAA;AAG3B,GAEMQ,IAAqBT,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAQ5BU,IAAiB,KACjBC,IAAkC,KAClCC,IAAgC,KAEhCC,IAAiBb,EAAO;AAAA,EAG5B,CAAC,EAAE,YAAAG,EAAA,MAAiB;AAAA;AAAA,WAEXO,CAAc;AAAA;AAAA;AAAA,iBAGR,EAAEA,IAAiB,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAQdC,CAA+B;AAAA;AAAA;AAAA;AAAA,IAKnDR,IACI;AAAA;AAAA,4BAEoBS,CAA6B;AAAA;AAAA;AAAA;AAAA,QAKjD,EACN;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAoBF,GAEME,IAA4Bd,EAAO;AAAA,EACvC,CAAC,EAAE,OAAO,EAAE,QAAAC,GAAQ,QAAAC,EAAO,GAAG,YAAAC,QAAiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAM3BF,EAAO,WAAW;AAAA;AAAA,eAEzBE,IAAa,oBAAoB,gBAAgB;AAAA,aACnDD,EAAO,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAoBzB,GAEMa,IAAmBf,EAAO;AAAA,EAC9B,CAAC,EAAE,YAAAG,EAAA,MAAiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAQLA,IAAa,aAAa,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAwBpD;"}
|
@@ -1,35 +1,35 @@
|
|
1
1
|
import { jsx as r, jsxs as f } from "react/jsx-runtime";
|
2
|
-
import { captureException as
|
3
|
-
import { memo as $, useCallback as g, Suspense as
|
4
|
-
import { ErrorBoundary as
|
5
|
-
import
|
6
|
-
import
|
7
|
-
import
|
2
|
+
import { captureException as k } from "@sentry/browser";
|
3
|
+
import { memo as $, useCallback as g, Suspense as a } from "react";
|
4
|
+
import { ErrorBoundary as h } from "react-error-boundary";
|
5
|
+
import M from "../../../assets/line-icons/icons/cross.js";
|
6
|
+
import c from "../error/error.js";
|
7
|
+
import E from "../buttons/clickable/clickable.js";
|
8
8
|
import x from "../layout/flex-view.js";
|
9
|
-
import
|
10
|
-
import { ModalContainer as
|
11
|
-
const q = $(({ modal:
|
12
|
-
const { renderAs:
|
13
|
-
|
14
|
-
}, []),
|
15
|
-
|
9
|
+
import d from "../loader/app-loader/app-loader.js";
|
10
|
+
import { ModalContainer as s, BottomSheetModal as v, ModalLoaderWrapper as u, SpotlightModal as B, TransparentModalContainer as S, BaseModal as W, CloseButtonContainer as w, BaseModalContent as j } from "./modal-styled.js";
|
11
|
+
const q = $(({ modal: C, isClosing: o = !1, onClose: m }) => {
|
12
|
+
const { renderAs: l, element: e, modalWidth: i, isDismissable: p } = C, t = g((n) => {
|
13
|
+
k(n);
|
14
|
+
}, []), b = g((n) => {
|
15
|
+
n.stopPropagation();
|
16
16
|
}, []);
|
17
|
-
return
|
18
|
-
|
17
|
+
return l === "bottom-sheet" ? /* @__PURE__ */ r(s, { $isClosing: o, onClick: p ? m : () => null, children: /* @__PURE__ */ r(v, { $isClosing: o, onClick: b, children: /* @__PURE__ */ r(
|
18
|
+
h,
|
19
19
|
{
|
20
|
-
fallback: /* @__PURE__ */ r(x, { $gap: 24, children: /* @__PURE__ */ r(
|
21
|
-
onError:
|
22
|
-
children: /* @__PURE__ */ r(
|
20
|
+
fallback: /* @__PURE__ */ r(x, { $gap: 24, children: /* @__PURE__ */ r(c, { height: "100%" }) }),
|
21
|
+
onError: t,
|
22
|
+
children: /* @__PURE__ */ r(a, { fallback: /* @__PURE__ */ r(d, { height: "50vh" }), children: e })
|
23
23
|
}
|
24
|
-
) }) }) :
|
25
|
-
|
24
|
+
) }) }) : l === "spotlight" ? /* @__PURE__ */ r(s, { $isClosing: o, children: /* @__PURE__ */ r(
|
25
|
+
h,
|
26
26
|
{
|
27
|
-
fallback: /* @__PURE__ */ r(
|
28
|
-
onError:
|
27
|
+
fallback: /* @__PURE__ */ r(u, { children: /* @__PURE__ */ r(c, { height: "100vh" }) }),
|
28
|
+
onError: t,
|
29
29
|
children: /* @__PURE__ */ f(
|
30
|
-
|
30
|
+
a,
|
31
31
|
{
|
32
|
-
fallback: /* @__PURE__ */ r(
|
32
|
+
fallback: /* @__PURE__ */ r(u, { children: /* @__PURE__ */ r(d, { height: "100vh" }) }),
|
33
33
|
children: [
|
34
34
|
/* @__PURE__ */ r(B, { $isClosing: o }),
|
35
35
|
e
|
@@ -37,14 +37,14 @@ const q = $(({ modal: b, isClosing: o = !1, onClose: m }) => {
|
|
37
37
|
}
|
38
38
|
)
|
39
39
|
}
|
40
|
-
) }) : /* @__PURE__ */ r(
|
41
|
-
p !== !1 && /* @__PURE__ */ r(
|
42
|
-
/* @__PURE__ */ r(
|
43
|
-
|
40
|
+
) }) : l === "fullscreen-transparent" ? /* @__PURE__ */ r(S, { $isClosing: o, children: e }) : /* @__PURE__ */ r(s, { $isClosing: o, children: /* @__PURE__ */ f(W, { $isClosing: o, $width: i, children: [
|
41
|
+
p !== !1 && /* @__PURE__ */ r(w, { $modalWidth: i, children: /* @__PURE__ */ r(E, { label: "Close", onClick: m, children: /* @__PURE__ */ r(M, { width: 40, height: 40 }) }) }),
|
42
|
+
/* @__PURE__ */ r(j, { $modalWidth: i, children: /* @__PURE__ */ r(
|
43
|
+
h,
|
44
44
|
{
|
45
|
-
fallback: /* @__PURE__ */ r(
|
46
|
-
onError:
|
47
|
-
children: /* @__PURE__ */ r(
|
45
|
+
fallback: /* @__PURE__ */ r(c, { height: "50vh", size: "compact" }),
|
46
|
+
onError: t,
|
47
|
+
children: /* @__PURE__ */ r(a, { fallback: /* @__PURE__ */ r(d, { height: "50vh" }), children: e })
|
48
48
|
}
|
49
49
|
) })
|
50
50
|
] }) });
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"modal.js","sources":["../../../../src/features/ui/modals/modal.tsx"],"sourcesContent":["import type { IModalProps } from './modal-types';\nimport type { FC } from 'react';\n\nimport { captureException } from '@sentry/browser';\nimport { memo, Suspense, useCallback } from 'react';\nimport { ErrorBoundary } from 'react-error-boundary';\n\nimport CrossIcon from '../../../assets/line-icons/icons/cross';\nimport Error from '../../ui/error/error';\nimport Clickable from '../buttons/clickable/clickable';\nimport FlexView from '../layout/flex-view';\nimport AppLoader from '../loader/app-loader/app-loader';\nimport * as Styled from './modal-styled';\n\n/**\n * Modal component that renders modal content with close button\n * Handles animation state for entry and exit transitions\n */\nconst Modal: FC<IModalProps> = memo(({ modal, isClosing = false, onClose }) => {\n const { renderAs, element, modalWidth, isDismissable } = modal;\n\n const sentryCaptureException = useCallback((error: Error) => {\n captureException(error);\n }, []);\n\n const handleStopPropagation = useCallback((e: React.MouseEvent) => {\n e.stopPropagation();\n }, []);\n\n if (renderAs === 'bottom-sheet') {\n return (\n <Styled.ModalContainer $isClosing={isClosing} onClick={isDismissable ? onClose : () => null}>\n <Styled.BottomSheetModal $isClosing={isClosing} onClick={handleStopPropagation}>\n <ErrorBoundary\n fallback={\n <FlexView $gap={24}>\n <Error height=\"100%\" />\n </FlexView>\n }\n onError={sentryCaptureException}\n >\n <Suspense fallback={<AppLoader height=\"50vh\" />}>{element}</Suspense>\n </ErrorBoundary>\n </Styled.BottomSheetModal>\n </Styled.ModalContainer>\n );\n }\n\n if (renderAs === 'spotlight') {\n return (\n <Styled.ModalContainer $isClosing={isClosing}>\n <ErrorBoundary\n fallback={\n <Styled.ModalLoaderWrapper>\n <Error height=\"100vh\" />\n </Styled.ModalLoaderWrapper>\n }\n onError={sentryCaptureException}\n >\n <Suspense\n fallback={\n <Styled.ModalLoaderWrapper>\n <AppLoader height=\"100vh\" />\n </Styled.ModalLoaderWrapper>\n }\n >\n <Styled.SpotlightModal $isClosing={isClosing} />\n {element}\n </Suspense>\n </ErrorBoundary>\n </Styled.ModalContainer>\n );\n }\n\n return (\n <Styled.ModalContainer $isClosing={isClosing}>\n <Styled.BaseModal $isClosing={isClosing} $width={modalWidth}>\n {isDismissable !== false && (\n <Styled.CloseButtonContainer $modalWidth={modalWidth}>\n <Clickable label=\"Close\" onClick={onClose}>\n <CrossIcon width={40} height={40} />\n </Clickable>\n </Styled.CloseButtonContainer>\n )}\n <Styled.BaseModalContent $modalWidth={modalWidth}>\n <ErrorBoundary\n fallback={<Error height=\"50vh\" size=\"compact\" />}\n onError={sentryCaptureException}\n >\n <Suspense fallback={<AppLoader height=\"50vh\" />}>{element}</Suspense>\n </ErrorBoundary>\n </Styled.BaseModalContent>\n </Styled.BaseModal>\n </Styled.ModalContainer>\n );\n});\n\nexport default Modal;\n"],"names":["Modal","memo","modal","isClosing","onClose","renderAs","element","modalWidth","isDismissable","sentryCaptureException","useCallback","error","captureException","handleStopPropagation","e","Styled.ModalContainer","Styled.BottomSheetModal","jsx","ErrorBoundary","FlexView","Error","Suspense","AppLoader","Styled.ModalLoaderWrapper","jsxs","Styled.SpotlightModal","Styled.BaseModal","Styled.CloseButtonContainer","Clickable","CrossIcon","Styled.BaseModalContent"],"mappings":";;;;;;;;;;AAkBM,MAAAA,IAAyBC,EAAK,CAAC,EAAE,OAAAC,GAAO,WAAAC,IAAY,IAAO,SAAAC,QAAc;AAC7E,QAAM,EAAE,UAAAC,GAAU,SAAAC,GAAS,YAAAC,GAAY,eAAAC,MAAkBN,GAEnDO,IAAyBC,EAAY,CAACC,MAAiB;AAC3D,IAAAC,EAAiBD,CAAK;AAAA,EACxB,GAAG,CAAE,CAAA,GAECE,IAAwBH,EAAY,CAACI,MAAwB;AACjE,IAAAA,EAAE,gBAAgB;AAAA,EACpB,GAAG,CAAE,CAAA;AAEL,SAAIT,MAAa,mCAEZU,GAAA,EAAsB,YAAYZ,GAAW,SAASK,IAAgBJ,IAAU,MAAM,MACrF,4BAACY,GAAA,EAAwB,YAAYb,GAAW,SAASU,GACvD,UAAA,gBAAAI;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,4BACGC,GAAS,EAAA,MAAM,IACd,UAAC,gBAAAF,EAAAG,GAAA,EAAM,QAAO,OAAA,CAAO,EACvB,CAAA;AAAA,MAEF,SAASX;AAAA,MAET,UAAA,gBAAAQ,EAACI,KAAS,UAAU,gBAAAJ,EAACK,KAAU,QAAO,OAAO,CAAA,GAAK,UAAQhB,EAAA,CAAA;AAAA,IAAA;AAAA,EAAA,EAE9D,CAAA,EACF,CAAA,IAIAD,MAAa,cAEZ,gBAAAY,EAAAF,GAAA,EAAsB,YAAYZ,GACjC,UAAA,gBAAAc;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,4BACGK,GAAA,EACC,UAAC,gBAAAN,EAAAG,GAAA,EAAM,QAAO,QAAQ,CAAA,GACxB;AAAA,MAEF,SAASX;AAAA,MAET,UAAA,gBAAAe;AAAA,QAACH;AAAA,QAAA;AAAA,UACC,4BACGE,GAAA,EACC,UAAC,gBAAAN,EAAAK,GAAA,EAAU,QAAO,QAAQ,CAAA,GAC5B;AAAA,UAGF,UAAA;AAAA,YAAA,gBAAAL,EAACQ,GAAA,EAAsB,YAAYtB,EAAW,CAAA;AAAA,YAC7CG;AAAA,UAAA;AAAA,QAAA;AAAA,MACH;AAAA,IAAA;AAAA,EAEJ,EAAA,CAAA,IAKD,gBAAAW,EAAAF,GAAA,EAAsB,YAAYZ,GACjC,UAAC,gBAAAqB,
|
1
|
+
{"version":3,"file":"modal.js","sources":["../../../../src/features/ui/modals/modal.tsx"],"sourcesContent":["import type { IModalProps } from './modal-types';\nimport type { FC } from 'react';\n\nimport { captureException } from '@sentry/browser';\nimport { memo, Suspense, useCallback } from 'react';\nimport { ErrorBoundary } from 'react-error-boundary';\n\nimport CrossIcon from '../../../assets/line-icons/icons/cross';\nimport Error from '../../ui/error/error';\nimport Clickable from '../buttons/clickable/clickable';\nimport FlexView from '../layout/flex-view';\nimport AppLoader from '../loader/app-loader/app-loader';\nimport * as Styled from './modal-styled';\n\n/**\n * Modal component that renders modal content with close button\n * Handles animation state for entry and exit transitions\n */\nconst Modal: FC<IModalProps> = memo(({ modal, isClosing = false, onClose }) => {\n const { renderAs, element, modalWidth, isDismissable } = modal;\n\n const sentryCaptureException = useCallback((error: Error) => {\n captureException(error);\n }, []);\n\n const handleStopPropagation = useCallback((e: React.MouseEvent) => {\n e.stopPropagation();\n }, []);\n\n if (renderAs === 'bottom-sheet') {\n return (\n <Styled.ModalContainer $isClosing={isClosing} onClick={isDismissable ? onClose : () => null}>\n <Styled.BottomSheetModal $isClosing={isClosing} onClick={handleStopPropagation}>\n <ErrorBoundary\n fallback={\n <FlexView $gap={24}>\n <Error height=\"100%\" />\n </FlexView>\n }\n onError={sentryCaptureException}\n >\n <Suspense fallback={<AppLoader height=\"50vh\" />}>{element}</Suspense>\n </ErrorBoundary>\n </Styled.BottomSheetModal>\n </Styled.ModalContainer>\n );\n }\n\n if (renderAs === 'spotlight') {\n return (\n <Styled.ModalContainer $isClosing={isClosing}>\n <ErrorBoundary\n fallback={\n <Styled.ModalLoaderWrapper>\n <Error height=\"100vh\" />\n </Styled.ModalLoaderWrapper>\n }\n onError={sentryCaptureException}\n >\n <Suspense\n fallback={\n <Styled.ModalLoaderWrapper>\n <AppLoader height=\"100vh\" />\n </Styled.ModalLoaderWrapper>\n }\n >\n <Styled.SpotlightModal $isClosing={isClosing} />\n {element}\n </Suspense>\n </ErrorBoundary>\n </Styled.ModalContainer>\n );\n }\n\n if (renderAs === 'fullscreen-transparent') {\n return (\n <Styled.TransparentModalContainer $isClosing={isClosing}>\n {element}\n </Styled.TransparentModalContainer>\n );\n }\n\n return (\n <Styled.ModalContainer $isClosing={isClosing}>\n <Styled.BaseModal $isClosing={isClosing} $width={modalWidth}>\n {isDismissable !== false && (\n <Styled.CloseButtonContainer $modalWidth={modalWidth}>\n <Clickable label=\"Close\" onClick={onClose}>\n <CrossIcon width={40} height={40} />\n </Clickable>\n </Styled.CloseButtonContainer>\n )}\n <Styled.BaseModalContent $modalWidth={modalWidth}>\n <ErrorBoundary\n fallback={<Error height=\"50vh\" size=\"compact\" />}\n onError={sentryCaptureException}\n >\n <Suspense fallback={<AppLoader height=\"50vh\" />}>{element}</Suspense>\n </ErrorBoundary>\n </Styled.BaseModalContent>\n </Styled.BaseModal>\n </Styled.ModalContainer>\n );\n});\n\nexport default Modal;\n"],"names":["Modal","memo","modal","isClosing","onClose","renderAs","element","modalWidth","isDismissable","sentryCaptureException","useCallback","error","captureException","handleStopPropagation","e","Styled.ModalContainer","Styled.BottomSheetModal","jsx","ErrorBoundary","FlexView","Error","Suspense","AppLoader","Styled.ModalLoaderWrapper","jsxs","Styled.SpotlightModal","Styled.TransparentModalContainer","Styled.BaseModal","Styled.CloseButtonContainer","Clickable","CrossIcon","Styled.BaseModalContent"],"mappings":";;;;;;;;;;AAkBM,MAAAA,IAAyBC,EAAK,CAAC,EAAE,OAAAC,GAAO,WAAAC,IAAY,IAAO,SAAAC,QAAc;AAC7E,QAAM,EAAE,UAAAC,GAAU,SAAAC,GAAS,YAAAC,GAAY,eAAAC,MAAkBN,GAEnDO,IAAyBC,EAAY,CAACC,MAAiB;AAC3D,IAAAC,EAAiBD,CAAK;AAAA,EACxB,GAAG,CAAE,CAAA,GAECE,IAAwBH,EAAY,CAACI,MAAwB;AACjE,IAAAA,EAAE,gBAAgB;AAAA,EACpB,GAAG,CAAE,CAAA;AAEL,SAAIT,MAAa,mCAEZU,GAAA,EAAsB,YAAYZ,GAAW,SAASK,IAAgBJ,IAAU,MAAM,MACrF,4BAACY,GAAA,EAAwB,YAAYb,GAAW,SAASU,GACvD,UAAA,gBAAAI;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,4BACGC,GAAS,EAAA,MAAM,IACd,UAAC,gBAAAF,EAAAG,GAAA,EAAM,QAAO,OAAA,CAAO,EACvB,CAAA;AAAA,MAEF,SAASX;AAAA,MAET,UAAA,gBAAAQ,EAACI,KAAS,UAAU,gBAAAJ,EAACK,KAAU,QAAO,OAAO,CAAA,GAAK,UAAQhB,EAAA,CAAA;AAAA,IAAA;AAAA,EAAA,EAE9D,CAAA,EACF,CAAA,IAIAD,MAAa,cAEZ,gBAAAY,EAAAF,GAAA,EAAsB,YAAYZ,GACjC,UAAA,gBAAAc;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,4BACGK,GAAA,EACC,UAAC,gBAAAN,EAAAG,GAAA,EAAM,QAAO,QAAQ,CAAA,GACxB;AAAA,MAEF,SAASX;AAAA,MAET,UAAA,gBAAAe;AAAA,QAACH;AAAA,QAAA;AAAA,UACC,4BACGE,GAAA,EACC,UAAC,gBAAAN,EAAAK,GAAA,EAAU,QAAO,QAAQ,CAAA,GAC5B;AAAA,UAGF,UAAA;AAAA,YAAA,gBAAAL,EAACQ,GAAA,EAAsB,YAAYtB,EAAW,CAAA;AAAA,YAC7CG;AAAA,UAAA;AAAA,QAAA;AAAA,MACH;AAAA,IAAA;AAAA,EAEJ,EAAA,CAAA,IAIAD,MAAa,6CAEZqB,GAAA,EAAiC,YAAYvB,GAC3C,UACHG,EAAA,CAAA,IAKD,gBAAAW,EAAAF,GAAA,EAAsB,YAAYZ,GACjC,UAAC,gBAAAqB,EAAAG,GAAA,EAAiB,YAAYxB,GAAW,QAAQI,GAC9C,UAAA;AAAA,IAAkBC,MAAA,wBAChBoB,GAAA,EAA4B,aAAarB,GACxC,4BAACsB,GAAU,EAAA,OAAM,SAAQ,SAASzB,GAChC,4BAAC0B,GAAU,EAAA,OAAO,IAAI,QAAQ,IAAI,GACpC,EACF,CAAA;AAAA,IAED,gBAAAb,EAAAc,GAAA,EAAwB,aAAaxB,GACpC,UAAA,gBAAAU;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,UAAW,gBAAAD,EAAAG,GAAA,EAAM,QAAO,QAAO,MAAK,WAAU;AAAA,QAC9C,SAASX;AAAA,QAET,UAAA,gBAAAQ,EAACI,KAAS,UAAU,gBAAAJ,EAACK,KAAU,QAAO,OAAO,CAAA,GAAK,UAAQhB,EAAA,CAAA;AAAA,MAAA;AAAA,IAAA,GAE9D;AAAA,EAAA,EACF,CAAA,EACF,CAAA;AAEJ,CAAC;"}
|
package/dist/index.d.ts
CHANGED
@@ -2,13 +2,10 @@ import type { ButtonHTMLAttributes } from 'react';
|
|
2
2
|
import type { Channel } from '@cuemath/cue-message-broker';
|
3
3
|
import { ChannelStatus } from '@cuemath/cue-message-broker';
|
4
4
|
import { ComponentType } from 'react';
|
5
|
-
import type { Config } from '@lottiefiles/dotlottie-web';
|
6
5
|
import { Context } from 'react';
|
7
6
|
import type { DefaultTheme } from 'styled-components';
|
8
7
|
import { DetailedHTMLProps } from 'react';
|
9
8
|
import type { Dispatch } from 'react';
|
10
|
-
import type { EventListener as EventListener_2 } from '@lottiefiles/dotlottie-web';
|
11
|
-
import type { EventType } from '@lottiefiles/dotlottie-web';
|
12
9
|
import { FC } from 'react';
|
13
10
|
import type { FormEvent } from 'react';
|
14
11
|
import { ForwardRefExoticComponent } from 'react';
|
@@ -77,8 +74,6 @@ export declare const AnimatedArc: React_2.FC<IAnimatedArcProps>;
|
|
77
74
|
|
78
75
|
export declare const AnimatedAvatarMessage: NamedExoticComponent<IAnimatedAvatarMessageProps>;
|
79
76
|
|
80
|
-
declare type AnimationSegment = [number, number];
|
81
|
-
|
82
77
|
export declare const AppLoader: FC<IAppLoaderProps>;
|
83
78
|
|
84
79
|
export declare const ArcButton: NamedExoticComponent<IArcButtonProps & {
|
@@ -368,8 +363,6 @@ export declare const DesmosCalculator: FC<IDesmosCalculatorProps>;
|
|
368
363
|
|
369
364
|
export declare const DigitalMeter: FC<IDigitalMeterProps>;
|
370
365
|
|
371
|
-
export declare const DotLottieAnimation: NamedExoticComponent<ILottieAnimationProps & RefAttributes<ILottieAnimationRef>>;
|
372
|
-
|
373
366
|
export declare const DownIcon: React.FC<React.SVGProps<SVGSVGElement>>;
|
374
367
|
|
375
368
|
export declare const DraftIcon: React.FC<React.SVGProps<SVGSVGElement>>;
|
@@ -2223,22 +2216,6 @@ declare interface ILogger {
|
|
2223
2216
|
(eventName: string, data?: Record<string, unknown>): void;
|
2224
2217
|
}
|
2225
2218
|
|
2226
|
-
declare interface ILottieAnimationProps {
|
2227
|
-
src: string;
|
2228
|
-
width?: string | number;
|
2229
|
-
height?: string | number;
|
2230
|
-
settings?: Partial<LottieSettings>;
|
2231
|
-
eventListeners?: {
|
2232
|
-
name: EventType;
|
2233
|
-
callback: EventListener_2<EventType>;
|
2234
|
-
}[];
|
2235
|
-
onRender?: () => void;
|
2236
|
-
}
|
2237
|
-
|
2238
|
-
declare interface ILottieAnimationRef {
|
2239
|
-
playSegments: (segments: AnimationSegment, forceFlag?: boolean) => void;
|
2240
|
-
}
|
2241
|
-
|
2242
2219
|
declare interface ILPARChapterProps extends ILPARSheetCallbacks {
|
2243
2220
|
userType: TUserTypes;
|
2244
2221
|
chapterData: TLPARChapterData;
|
@@ -2575,7 +2552,7 @@ export declare interface IModal {
|
|
2575
2552
|
/** Content to display inside the modal */
|
2576
2553
|
element: ReactElement;
|
2577
2554
|
/** Rendering style of the modal */
|
2578
|
-
renderAs?: 'modal' | 'fullscreen' | 'spotlight' | 'bottom-sheet';
|
2555
|
+
renderAs?: 'modal' | 'fullscreen' | 'spotlight' | 'bottom-sheet' | 'fullscreen-transparent';
|
2579
2556
|
/** Whether the modal can be dismissed by clicking outside or ESC key (default: true) */
|
2580
2557
|
isDismissable?: boolean;
|
2581
2558
|
/** Whether the modal requires authentication to view (default: true) */
|
@@ -3417,19 +3394,35 @@ declare interface IStepperProps {
|
|
3417
3394
|
currentStep: number;
|
3418
3395
|
}
|
3419
3396
|
|
3420
|
-
declare interface IStickerData {
|
3397
|
+
export declare interface IStickerData {
|
3421
3398
|
id: string;
|
3422
3399
|
emoji: string;
|
3423
3400
|
lottieUrl?: string;
|
3424
|
-
name
|
3401
|
+
name: string;
|
3425
3402
|
}
|
3426
3403
|
|
3427
|
-
declare interface
|
3404
|
+
export declare interface IStickerProps {
|
3405
|
+
emoji: string;
|
3406
|
+
lottieUrl?: string;
|
3407
|
+
size?: number | string;
|
3408
|
+
onClick?: () => void;
|
3409
|
+
disabled?: boolean;
|
3410
|
+
}
|
3411
|
+
|
3412
|
+
export declare interface IStickerSelectorProps {
|
3428
3413
|
stickers: IStickerData[];
|
3429
3414
|
columns?: number;
|
3430
3415
|
gap?: number;
|
3431
3416
|
stickerSize?: number | string;
|
3432
3417
|
onStickerClick?: (sticker: IStickerData) => void;
|
3418
|
+
disabled?: boolean;
|
3419
|
+
}
|
3420
|
+
|
3421
|
+
export declare interface IStickersProps {
|
3422
|
+
stickers: string[];
|
3423
|
+
effect: TStickerEffects;
|
3424
|
+
count: number;
|
3425
|
+
duration: number;
|
3433
3426
|
}
|
3434
3427
|
|
3435
3428
|
declare interface IStreakIconProps extends React.HTMLProps<HTMLDivElement> {
|
@@ -4531,8 +4524,6 @@ export declare const LOTTIE: {
|
|
4531
4524
|
VIDEO: string;
|
4532
4525
|
};
|
4533
4526
|
|
4534
|
-
declare type LottieSettings = Omit<Config, 'src' | 'canvas'>;
|
4535
|
-
|
4536
4527
|
export declare const LPARChapter: FC<ILPARChapterProps>;
|
4537
4528
|
|
4538
4529
|
export declare const LPARMilestoneChapter: FC<ILPARMilestoneChapter>;
|
@@ -5047,22 +5038,15 @@ declare const STICKER_BADGE: {
|
|
5047
5038
|
AWESOME: string;
|
5048
5039
|
};
|
5049
5040
|
|
5050
|
-
declare
|
5041
|
+
export declare const stickerData: IStickerData[];
|
5051
5042
|
|
5052
5043
|
export declare const StickerFilledIcon: React.FC<React.SVGProps<SVGSVGElement>>;
|
5053
5044
|
|
5054
5045
|
export declare const StickerIcon: React.FC<React.SVGProps<SVGSVGElement>>;
|
5055
5046
|
|
5056
|
-
export declare const
|
5057
|
-
|
5058
|
-
declare interface StickersProps {
|
5059
|
-
stickers: string[];
|
5060
|
-
effect: StickerEffect;
|
5061
|
-
count: number;
|
5062
|
-
duration: number;
|
5063
|
-
}
|
5047
|
+
export declare const StickersEffects: React_2.NamedExoticComponent<IStickersProps>;
|
5064
5048
|
|
5065
|
-
export declare const StickersSelector: React_2.NamedExoticComponent<
|
5049
|
+
export declare const StickersSelector: React_2.NamedExoticComponent<IStickerSelectorProps>;
|
5066
5050
|
|
5067
5051
|
export declare const StreakIcon: React_2.FC<IStreakIconProps>;
|
5068
5052
|
|
@@ -5988,7 +5972,7 @@ declare type TRenderAs_2 = 'canvas' | 'whiteboard';
|
|
5988
5972
|
declare type TRewardHomeData = {
|
5989
5973
|
user_badges: TBadgeData[] | [];
|
5990
5974
|
user_rewards: TRewardsData[] | [];
|
5991
|
-
user_stickers:
|
5975
|
+
user_stickers: TStickerData_2[] | [];
|
5992
5976
|
};
|
5993
5977
|
|
5994
5978
|
declare type TRewardsData = {
|
@@ -6116,7 +6100,18 @@ export declare type TSkillStatus = 'pending' | 'completed';
|
|
6116
6100
|
|
6117
6101
|
export declare type TSocialAuthProvider = 'google' | 'apple';
|
6118
6102
|
|
6119
|
-
declare type TStickerData = {
|
6103
|
+
export declare type TStickerData = {
|
6104
|
+
id: string;
|
6105
|
+
sticker: string;
|
6106
|
+
lottie?: string;
|
6107
|
+
x: number;
|
6108
|
+
y: number;
|
6109
|
+
size: number;
|
6110
|
+
fromX?: string;
|
6111
|
+
fromY?: string;
|
6112
|
+
};
|
6113
|
+
|
6114
|
+
declare type TStickerData_2 = {
|
6120
6115
|
actor_id: string;
|
6121
6116
|
badge_id: string;
|
6122
6117
|
badge_type: string;
|
@@ -6129,6 +6124,8 @@ declare type TStickerData = {
|
|
6129
6124
|
user_type: string;
|
6130
6125
|
};
|
6131
6126
|
|
6127
|
+
export declare type TStickerEffects = 'burst-from-edges' | 'pop-expand' | 'float-up' | 'fall-down';
|
6128
|
+
|
6132
6129
|
export declare type TStreakStatus = 'pending' | 'completed';
|
6133
6130
|
|
6134
6131
|
declare type TStyleAttrubutes = NonNullable<HTMLAttributes<HTMLDivElement>['style']>;
|