@cuemath/leap 3.2.33 → 3.2.34-m

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.
Files changed (106) hide show
  1. package/dist/assets/gif/gif.js +1 -4
  2. package/dist/assets/gif/gif.js.map +1 -1
  3. package/dist/assets/illustrations/illustrations.js +0 -17
  4. package/dist/assets/illustrations/illustrations.js.map +1 -1
  5. package/dist/assets/lottie/lottie.js +0 -3
  6. package/dist/assets/lottie/lottie.js.map +1 -1
  7. package/dist/features/auth/comps/animated-avatar-message/animated-avatar-message-styled.js +1 -1
  8. package/dist/features/auth/comps/animated-avatar-message/animated-avatar-message-styled.js.map +1 -1
  9. package/dist/features/auth/comps/animated-avatar-message/animated-avatar-message.js +22 -22
  10. package/dist/features/auth/comps/animated-avatar-message/animated-avatar-message.js.map +1 -1
  11. package/dist/features/auth/comps/pill-button/pill-button-styled.js +11 -12
  12. package/dist/features/auth/comps/pill-button/pill-button-styled.js.map +1 -1
  13. package/dist/features/auth/pla-signup/onboarding-guide/onboarding-guide-styled.js +4 -11
  14. package/dist/features/auth/pla-signup/onboarding-guide/onboarding-guide-styled.js.map +1 -1
  15. package/dist/features/auth/pla-signup/onboarding-guide/onboarding-guide.js +17 -17
  16. package/dist/features/auth/pla-signup/onboarding-guide/onboarding-guide.js.map +1 -1
  17. package/dist/features/auth/pla-signup/signup-options/signup-options.js +1 -1
  18. package/dist/features/auth/pla-signup/signup-options/signup-options.js.map +1 -1
  19. package/dist/features/stickers/sticker-data.js +234 -0
  20. package/dist/features/stickers/sticker-data.js.map +1 -0
  21. package/dist/features/stickers/sticker-selector/sticker-selector-grid.js +39 -0
  22. package/dist/features/stickers/sticker-selector/sticker-selector-grid.js.map +1 -0
  23. package/dist/features/{ui/sticker-grid/sticker-grid-styles.js → stickers/sticker-selector/sticker-selector-styles.js} +23 -31
  24. package/dist/features/stickers/sticker-selector/sticker-selector-styles.js.map +1 -0
  25. package/dist/features/stickers/sticker-selector/sticker-selector.js +88 -0
  26. package/dist/features/stickers/sticker-selector/sticker-selector.js.map +1 -0
  27. package/dist/features/stickers/sticker-selector/sticker.js +60 -0
  28. package/dist/features/stickers/sticker-selector/sticker.js.map +1 -0
  29. package/dist/features/stickers/stickers-effects/effects.js +82 -0
  30. package/dist/features/stickers/stickers-effects/effects.js.map +1 -0
  31. package/dist/features/stickers/stickers-effects/stickers-cache.js +19 -0
  32. package/dist/features/stickers/stickers-effects/stickers-cache.js.map +1 -0
  33. package/dist/features/stickers/stickers-effects/stickers-effects-helper.js +105 -0
  34. package/dist/features/stickers/stickers-effects/stickers-effects-helper.js.map +1 -0
  35. package/dist/features/stickers/stickers-effects/stickers-effects-styled.js +37 -0
  36. package/dist/features/stickers/stickers-effects/stickers-effects-styled.js.map +1 -0
  37. package/dist/features/stickers/stickers-effects/stickers-effects.js +67 -0
  38. package/dist/features/stickers/stickers-effects/stickers-effects.js.map +1 -0
  39. package/dist/features/ui/arrow-tooltip/arrow-tooltip-styled.js +8 -3
  40. package/dist/features/ui/arrow-tooltip/arrow-tooltip-styled.js.map +1 -1
  41. package/dist/features/ui/arrow-tooltip/arrow-tooltip.js +40 -40
  42. package/dist/features/ui/arrow-tooltip/arrow-tooltip.js.map +1 -1
  43. package/dist/features/ui/dot-lottie-animations/dot-lottie-animation.js +88 -75
  44. package/dist/features/ui/dot-lottie-animations/dot-lottie-animation.js.map +1 -1
  45. package/dist/features/ui/drawer/drawer-styled.js +2 -4
  46. package/dist/features/ui/drawer/drawer-styled.js.map +1 -1
  47. package/dist/features/ui/lottie-animation/lottie-animation.js +36 -31
  48. package/dist/features/ui/lottie-animation/lottie-animation.js.map +1 -1
  49. package/dist/features/ui/modals/modal-styled.js +48 -15
  50. package/dist/features/ui/modals/modal-styled.js.map +1 -1
  51. package/dist/features/ui/modals/modal.js +43 -35
  52. package/dist/features/ui/modals/modal.js.map +1 -1
  53. package/dist/index.d.ts +85 -57
  54. package/dist/index.js +343 -341
  55. package/dist/index.js.map +1 -1
  56. package/dist/node_modules/uuid/dist/esm-browser/regex.js +5 -0
  57. package/dist/node_modules/uuid/dist/esm-browser/regex.js.map +1 -0
  58. package/dist/node_modules/uuid/dist/esm-browser/rng.js +2 -3
  59. package/dist/node_modules/uuid/dist/esm-browser/rng.js.map +1 -1
  60. package/dist/node_modules/uuid/dist/esm-browser/stringify.js +10 -6
  61. package/dist/node_modules/uuid/dist/esm-browser/stringify.js.map +1 -1
  62. package/dist/node_modules/uuid/dist/esm-browser/v4.js +9 -12
  63. package/dist/node_modules/uuid/dist/esm-browser/v4.js.map +1 -1
  64. package/dist/node_modules/uuid/dist/esm-browser/validate.js +8 -0
  65. package/dist/node_modules/uuid/dist/esm-browser/validate.js.map +1 -0
  66. package/package.json +1 -1
  67. package/dist/features/ui/sticker-grid/sticker-grid-styles.js.map +0 -1
  68. package/dist/features/ui/sticker-grid/sticker-grid.js +0 -24
  69. package/dist/features/ui/sticker-grid/sticker-grid.js.map +0 -1
  70. package/dist/features/ui/sticker-grid/sticker.js +0 -57
  71. package/dist/features/ui/sticker-grid/sticker.js.map +0 -1
  72. package/dist/features/ui/stickers/constants.js +0 -6
  73. package/dist/features/ui/stickers/constants.js.map +0 -1
  74. package/dist/features/ui/stickers/stickers-effects.js +0 -64
  75. package/dist/features/ui/stickers/stickers-effects.js.map +0 -1
  76. package/dist/features/ui/stickers/stickers-styled.js +0 -29
  77. package/dist/features/ui/stickers/stickers-styled.js.map +0 -1
  78. package/dist/features/ui/stickers/stickers-utils.js +0 -91
  79. package/dist/features/ui/stickers/stickers-utils.js.map +0 -1
  80. package/dist/features/ui/stickers/stickers.js +0 -40
  81. package/dist/features/ui/stickers/stickers.js.map +0 -1
  82. package/dist/node_modules/uuid/dist/esm-browser/native.js +0 -7
  83. package/dist/node_modules/uuid/dist/esm-browser/native.js.map +0 -1
  84. package/dist/static/arrow-board-green.11e75bca.svg +0 -1
  85. package/dist/static/book-checked-green.c275dbd9.svg +0 -1
  86. package/dist/static/book-checked-orange.53ea6880.svg +0 -1
  87. package/dist/static/book-checked-purple.df628f3e.svg +0 -1
  88. package/dist/static/calendar-check-green.ab0e24d2.svg +0 -1
  89. package/dist/static/calendar-cross-orange.8e7a23bd.svg +0 -1
  90. package/dist/static/calendar-hour-glass-orange.e99f8ffd.json +0 -1
  91. package/dist/static/equal-outlined.b705bf5d.svg +0 -1
  92. package/dist/static/handshake-green.f8d24216.svg +0 -1
  93. package/dist/static/heart-outlined.5b5415fe.svg +0 -1
  94. package/dist/static/knowledge-blue.ead536f1.svg +0 -1
  95. package/dist/static/learning-session-grid-bg.fb60e64b.gif +0 -0
  96. package/dist/static/platform-green.eb853207.svg +0 -1
  97. package/dist/static/platform-purple.ecf6fa46.svg +0 -1
  98. package/dist/static/radial-gradient-bg-2.6657c758.svg +0 -1
  99. package/dist/static/radial-gradient-bg.5ae0cde5.svg +0 -1
  100. package/dist/static/star-outlined.bde83c7c.svg +0 -1
  101. package/dist/static/student-avatar.24bc2875.svg +0 -1
  102. package/dist/static/teacher-found.0ba07d4a.json +0 -1
  103. package/dist/static/teacher-search.552c8ba2.json +0 -1
  104. package/dist/static/trophy-outlined.f946b362.svg +0 -1
  105. package/dist/static/way-forward-grid-bg.ab5d2dc6.gif +0 -0
  106. package/dist/static/your-goals-grid-bg.87fa9c60.gif +0 -0
@@ -0,0 +1,60 @@
1
+ import { jsxs as v, jsx as a } from "react/jsx-runtime";
2
+ import { memo as $, useState as f, useRef as R, useCallback as n } from "react";
3
+ import E from "../../ui/lottie-animation/lottie-animation.js";
4
+ import { StickerContainer as k, StaticEmoji as y, LottieContainer as j } from "./sticker-selector-styles.js";
5
+ const w = {
6
+ loop: !0,
7
+ autoplay: !1,
8
+ renderer: "canvas"
9
+ }, x = ({
10
+ emoji: h,
11
+ lottieUrl: c,
12
+ size: i = 48,
13
+ onClick: s,
14
+ disabled: o = !1
15
+ }) => {
16
+ const [d, u] = f(!1), [t, l] = f("idle"), r = R(null), m = n(() => {
17
+ var e;
18
+ l("loaded"), (e = r.current) == null || e.play();
19
+ }, []), S = n(() => {
20
+ l("error");
21
+ }, []), p = n(() => {
22
+ var e;
23
+ o || (u(!0), t === "idle" ? l("loading") : t === "loaded" && ((e = r.current) == null || e.play()));
24
+ }, [o, t]), L = n(() => {
25
+ var e;
26
+ o || (u(!1), t === "loaded" && ((e = r.current) == null || e.goToAndStop(0, !0)));
27
+ }, [o, t]), g = n(() => {
28
+ var e;
29
+ !o && s && ((e = r.current) == null || e.goToAndStop(0, !0), s());
30
+ }, [o, s]);
31
+ return /* @__PURE__ */ v(
32
+ k,
33
+ {
34
+ $size: i,
35
+ $disabled: o,
36
+ onPointerEnter: p,
37
+ onPointerLeave: L,
38
+ onClick: g,
39
+ children: [
40
+ /* @__PURE__ */ a(y, { $size: i, $visible: !d || t === "error", children: h }),
41
+ /* @__PURE__ */ a(j, { $size: i, $visible: d && t !== "idle", children: (t === "loading" || t === "loaded") && c && /* @__PURE__ */ a(
42
+ E,
43
+ {
44
+ ref: r,
45
+ src: c,
46
+ width: "100%",
47
+ height: "100%",
48
+ settings: w,
49
+ onRender: m,
50
+ onError: S
51
+ }
52
+ ) })
53
+ ]
54
+ }
55
+ );
56
+ }, z = $(x);
57
+ export {
58
+ z as default
59
+ };
60
+ //# sourceMappingURL=sticker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sticker.js","sources":["../../../../src/features/stickers/sticker-selector/sticker.tsx"],"sourcesContent":["import type { ILottieAnimationRef } from '../../ui/lottie-animation/types';\nimport type { IStickerProps } from './sticker-selector-types';\n\nimport React, { memo, useCallback, useRef, useState } from 'react';\n\nimport LottieAnimation from '../../ui/lottie-animation/lottie-animation';\nimport * as S from './sticker-selector-styles';\n\nconst renderSettings = {\n loop: true,\n autoplay: false,\n renderer: 'canvas' as const,\n};\n\nconst Sticker: React.FC<IStickerProps> = ({\n emoji,\n lottieUrl,\n size = 48,\n onClick,\n disabled = false,\n}) => {\n const [isHovered, setIsHovered] = useState(false);\n const [lottieState, setLottieState] = useState<'idle' | 'loading' | 'loaded' | 'error'>('idle');\n const lottieRef = useRef<ILottieAnimationRef>(null);\n\n const handleLottieReady = useCallback(() => {\n setLottieState('loaded');\n lottieRef.current?.play();\n }, []);\n\n const handleLottieError = useCallback(() => {\n setLottieState('error');\n }, []);\n\n const handleMouseEnter = useCallback(() => {\n if (disabled) return;\n\n setIsHovered(true);\n\n if (lottieState === 'idle') {\n setLottieState('loading');\n } else if (lottieState === 'loaded') {\n lottieRef.current?.play();\n }\n }, [disabled, lottieState]);\n\n const handleMouseLeave = useCallback(() => {\n if (disabled) return;\n\n setIsHovered(false);\n\n if (lottieState === 'loaded') {\n lottieRef.current?.goToAndStop(0, true);\n }\n }, [disabled, lottieState]);\n\n const handleClick = useCallback(() => {\n if (!disabled && onClick) {\n lottieRef.current?.goToAndStop(0, true);\n onClick();\n }\n }, [disabled, onClick]);\n\n const shouldShowLottie = isHovered && lottieState !== 'idle';\n const shouldRenderLottie = lottieState === 'loading' || lottieState === 'loaded';\n\n return (\n <S.StickerContainer\n $size={size}\n $disabled={disabled}\n onPointerEnter={handleMouseEnter}\n onPointerLeave={handleMouseLeave}\n onClick={handleClick}\n >\n <S.StaticEmoji $size={size} $visible={!isHovered || lottieState === 'error'}>\n {emoji}\n </S.StaticEmoji>\n\n <S.LottieContainer $size={size} $visible={shouldShowLottie}>\n {shouldRenderLottie && lottieUrl && (\n <LottieAnimation\n ref={lottieRef}\n src={lottieUrl}\n width=\"100%\"\n height=\"100%\"\n settings={renderSettings}\n onRender={handleLottieReady}\n onError={handleLottieError}\n />\n )}\n </S.LottieContainer>\n </S.StickerContainer>\n );\n};\n\nexport default memo(Sticker);\n"],"names":["renderSettings","Sticker","emoji","lottieUrl","size","onClick","disabled","isHovered","setIsHovered","useState","lottieState","setLottieState","lottieRef","useRef","handleLottieReady","useCallback","_a","handleLottieError","handleMouseEnter","handleMouseLeave","handleClick","jsxs","S.StickerContainer","jsx","S.StaticEmoji","S.LottieContainer","LottieAnimation","Sticker$1","memo"],"mappings":";;;;AAQA,MAAMA,IAAiB;AAAA,EACrB,MAAM;AAAA,EACN,UAAU;AAAA,EACV,UAAU;AACZ,GAEMC,IAAmC,CAAC;AAAA,EACxC,OAAAC;AAAA,EACA,WAAAC;AAAA,EACA,MAAAC,IAAO;AAAA,EACP,SAAAC;AAAA,EACA,UAAAC,IAAW;AACb,MAAM;AACJ,QAAM,CAACC,GAAWC,CAAY,IAAIC,EAAS,EAAK,GAC1C,CAACC,GAAaC,CAAc,IAAIF,EAAkD,MAAM,GACxFG,IAAYC,EAA4B,IAAI,GAE5CC,IAAoBC,EAAY,MAAM;;AAC1C,IAAAJ,EAAe,QAAQ,IACvBK,IAAAJ,EAAU,YAAV,QAAAI,EAAmB;AAAA,EACrB,GAAG,CAAE,CAAA,GAECC,IAAoBF,EAAY,MAAM;AAC1C,IAAAJ,EAAe,OAAO;AAAA,EACxB,GAAG,CAAE,CAAA,GAECO,IAAmBH,EAAY,MAAM;;AACzC,IAAIT,MAEJE,EAAa,EAAI,GAEbE,MAAgB,SAClBC,EAAe,SAAS,IACfD,MAAgB,cACzBM,IAAAJ,EAAU,YAAV,QAAAI,EAAmB;AAAA,EACrB,GACC,CAACV,GAAUI,CAAW,CAAC,GAEpBS,IAAmBJ,EAAY,MAAM;;AACzC,IAAIT,MAEJE,EAAa,EAAK,GAEdE,MAAgB,cACRM,IAAAJ,EAAA,YAAA,QAAAI,EAAS,YAAY,GAAG;AAAA,EACpC,GACC,CAACV,GAAUI,CAAW,CAAC,GAEpBU,IAAcL,EAAY,MAAM;;AAChC,IAAA,CAACT,KAAYD,OACLW,IAAAJ,EAAA,YAAA,QAAAI,EAAS,YAAY,GAAG,KAC1BX;EACV,GACC,CAACC,GAAUD,CAAO,CAAC;AAMpB,SAAA,gBAAAgB;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,OAAOlB;AAAA,MACP,WAAWE;AAAA,MACX,gBAAgBY;AAAA,MAChB,gBAAgBC;AAAA,MAChB,SAASC;AAAA,MAET,UAAA;AAAA,QAAC,gBAAAG,EAAAC,GAAA,EAAc,OAAOpB,GAAM,UAAU,CAACG,KAAaG,MAAgB,SACjE,UACHR,EAAA,CAAA;AAAA,QAEA,gBAAAqB,EAACE,GAAA,EAAkB,OAAOrB,GAAM,UAfXG,KAAaG,MAAgB,QAgB/C,WAfoBA,MAAgB,aAAaA,MAAgB,aAe3CP,KACrB,gBAAAoB;AAAA,UAACG;AAAA,UAAA;AAAA,YACC,KAAKd;AAAA,YACL,KAAKT;AAAA,YACL,OAAM;AAAA,YACN,QAAO;AAAA,YACP,UAAUH;AAAA,YACV,UAAUc;AAAA,YACV,SAASG;AAAA,UAAA;AAAA,QAAA,GAGf;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGN,GAEeU,IAAAC,EAAK3B,CAAO;"}
@@ -0,0 +1,82 @@
1
+ import { keyframes as i, css as t } from "styled-components";
2
+ import { randomizeDuration as a } from "./stickers-effects-helper.js";
3
+ const r = i`
4
+ 0% {
5
+ opacity: 1;
6
+ visibility: visible;
7
+ }
8
+ 80% {
9
+ opacity: 0.5;
10
+ }
11
+ 100% {
12
+ opacity: 0;
13
+ visibility: visible;
14
+ }
15
+ `, e = i`
16
+ 0% {
17
+ transform: translateY(0vh);
18
+ visibility: visible;
19
+ }
20
+ 100% {
21
+ transform: translateY(-100vh);
22
+ visibility: visible;
23
+ }
24
+ `, n = i`
25
+ 0% {
26
+ transform: translateY(0vh);
27
+ visibility: visible;
28
+ }
29
+ 100% {
30
+ transform: translateY(100vh);
31
+ visibility: visible;
32
+ }
33
+ `, o = i`
34
+ 0% {
35
+ transform: translateX(var(--from-x)) translateY(var(--from-y)) scale(1);
36
+ visibility: visible;
37
+ }
38
+ 100% {
39
+ transform: translateX(0vw) translateY(0vh) scale(1.25);
40
+ visibility: visible;
41
+ }
42
+ `, l = i`
43
+ 0% {
44
+ transform: translateX(0) translateY(0vh);
45
+ visibility: visible;
46
+ }
47
+ 35% {
48
+ transform: translateX(0) translateY(-50vh) scale(1.25);
49
+ }
50
+ 60% {
51
+ transform: translateX(var(--from-x)) translateY(var(--from-y)) scale(1.25);
52
+ }
53
+ 100% {
54
+ transform: translateX(var(--from-x)) translateY(-110vh) scale(1.25);
55
+ visibility: visible;
56
+ }
57
+ `, v = {
58
+ "float-up": (s) => t`
59
+ animation:
60
+ ${e} ${a(s)}ms ease-out forwards,
61
+ ${r} ${a(s)}ms ease-in forwards;
62
+ `,
63
+ "fall-down": (s) => t`
64
+ animation:
65
+ ${n} ${a(s)}ms ease-out forwards,
66
+ ${r} ${a(s)}ms ease-in forwards;
67
+ `,
68
+ "burst-from-edges": (s) => t`
69
+ animation:
70
+ ${o} ${a(s)}ms linear forwards,
71
+ ${r} ${a(s)}ms ease-in forwards;
72
+ `,
73
+ "pop-expand": (s) => t`
74
+ animation:
75
+ ${l} ${s}ms cubic-bezier(0.5, 0.1, 0.7, 1) forwards,
76
+ ${r} ${s}ms ease-in forwards;
77
+ `
78
+ };
79
+ export {
80
+ v as effectAnimations
81
+ };
82
+ //# sourceMappingURL=effects.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"effects.js","sources":["../../../../src/features/stickers/stickers-effects/effects.ts"],"sourcesContent":["import type { IStickersProps } from './stickers-effects-types';\n\nimport { keyframes, css } from 'styled-components';\n\nimport { randomizeDuration } from './stickers-effects-helper';\n\nconst fadeOutEaseIn = keyframes`\n 0% {\n opacity: 1;\n visibility: visible;\n }\n 80% {\n opacity: 0.5;\n }\n 100% {\n opacity: 0;\n visibility: visible;\n }\n`;\n\nconst floatUp = keyframes`\n 0% {\n transform: translateY(0vh);\n visibility: visible;\n }\n 100% {\n transform: translateY(-100vh);\n visibility: visible;\n }\n`;\n\nconst fallDown = keyframes`\n 0% {\n transform: translateY(0vh);\n visibility: visible;\n }\n 100% {\n transform: translateY(100vh);\n visibility: visible;\n }\n`;\n\nconst burstFromEdges = keyframes`\n 0% {\n transform: translateX(var(--from-x)) translateY(var(--from-y)) scale(1);\n visibility: visible;\n }\n 100% {\n transform: translateX(0vw) translateY(0vh) scale(1.25);\n visibility: visible;\n }\n`;\n\nconst popExpand = keyframes`\n 0% {\n transform: translateX(0) translateY(0vh);\n visibility: visible;\n }\n 35% {\n transform: translateX(0) translateY(-50vh) scale(1.25);\n }\n 60% {\n transform: translateX(var(--from-x)) translateY(var(--from-y)) scale(1.25);\n }\n 100% {\n transform: translateX(var(--from-x)) translateY(-110vh) scale(1.25);\n visibility: visible;\n }\n`;\n\nexport const effectAnimations: Record<\n IStickersProps['effect'],\n (duration: number) => ReturnType<typeof css>\n> = {\n 'float-up': (duration: number) => css`\n animation:\n ${floatUp} ${randomizeDuration(duration)}ms ease-out forwards,\n ${fadeOutEaseIn} ${randomizeDuration(duration)}ms ease-in forwards;\n `,\n 'fall-down': (duration: number) => css`\n animation:\n ${fallDown} ${randomizeDuration(duration)}ms ease-out forwards,\n ${fadeOutEaseIn} ${randomizeDuration(duration)}ms ease-in forwards;\n `,\n 'burst-from-edges': (duration: number) => css`\n animation:\n ${burstFromEdges} ${randomizeDuration(duration)}ms linear forwards,\n ${fadeOutEaseIn} ${randomizeDuration(duration)}ms ease-in forwards;\n `,\n 'pop-expand': (duration: number) => css`\n animation:\n ${popExpand} ${duration}ms cubic-bezier(0.5, 0.1, 0.7, 1) forwards,\n ${fadeOutEaseIn} ${duration}ms ease-in forwards;\n `,\n};\n"],"names":["fadeOutEaseIn","keyframes","floatUp","fallDown","burstFromEdges","popExpand","effectAnimations","duration","css","randomizeDuration"],"mappings":";;AAMA,MAAMA,IAAgBC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAchBC,IAAUD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAWVE,IAAWF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAWXG,IAAiBH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAWjBI,IAAYJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAiBLK,IAGT;AAAA,EACF,YAAY,CAACC,MAAqBC;AAAA;AAAA,QAE5BN,CAAO,IAAIO,EAAkBF,CAAQ,CAAC;AAAA,QACtCP,CAAa,IAAIS,EAAkBF,CAAQ,CAAC;AAAA;AAAA,EAElD,aAAa,CAACA,MAAqBC;AAAA;AAAA,QAE7BL,CAAQ,IAAIM,EAAkBF,CAAQ,CAAC;AAAA,QACvCP,CAAa,IAAIS,EAAkBF,CAAQ,CAAC;AAAA;AAAA,EAElD,oBAAoB,CAACA,MAAqBC;AAAA;AAAA,QAEpCJ,CAAc,IAAIK,EAAkBF,CAAQ,CAAC;AAAA,QAC7CP,CAAa,IAAIS,EAAkBF,CAAQ,CAAC;AAAA;AAAA,EAElD,cAAc,CAACA,MAAqBC;AAAA;AAAA,QAE9BH,CAAS,IAAIE,CAAQ;AAAA,QACrBP,CAAa,IAAIO,CAAQ;AAAA;AAEjC;"}
@@ -0,0 +1,19 @@
1
+ const o = /* @__PURE__ */ new Map(), n = /* @__PURE__ */ new Map();
2
+ async function r(t) {
3
+ if (o.has(t))
4
+ return o.get(t);
5
+ if (n.has(t))
6
+ return n.get(t);
7
+ const i = fetch(t).then(async (e) => {
8
+ if (!e.ok) return null;
9
+ const a = t.endsWith(".lottie") ? await e.arrayBuffer() : await e.json();
10
+ return o.set(t, a), a;
11
+ }).catch((e) => (console.error("Lottie preload error:", e), null)).finally(() => {
12
+ n.delete(t);
13
+ });
14
+ return n.set(t, i), i;
15
+ }
16
+ export {
17
+ r as preloadLottieFile
18
+ };
19
+ //# sourceMappingURL=stickers-cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stickers-cache.js","sources":["../../../../src/features/stickers/stickers-effects/stickers-cache.ts"],"sourcesContent":["import type { Data } from '@lottiefiles/dotlottie-web';\n\nconst lottieCache = new Map<string, Data>();\nconst lottiePromises = new Map<string, Promise<Data | null>>();\n\nexport async function preloadLottieFile(url: string): Promise<Data | null> {\n if (lottieCache.has(url)) {\n return lottieCache.get(url)!;\n }\n\n if (lottiePromises.has(url)) {\n return lottiePromises.get(url)!;\n }\n\n const fetchPromise = fetch(url)\n .then(async res => {\n if (!res.ok) return null;\n\n const isLottieFile = url.endsWith('.lottie');\n const data = isLottieFile ? await res.arrayBuffer() : await res.json();\n\n lottieCache.set(url, data);\n\n return data;\n })\n .catch(err => {\n // eslint-disable-next-line no-console\n console.error('Lottie preload error:', err);\n\n return null;\n })\n .finally(() => {\n lottiePromises.delete(url);\n });\n\n lottiePromises.set(url, fetchPromise);\n\n return fetchPromise;\n}\n"],"names":["lottieCache","lottiePromises","preloadLottieFile","url","fetchPromise","res","data","err"],"mappings":"AAEA,MAAMA,wBAAkB,OAClBC,wBAAqB;AAE3B,eAAsBC,EAAkBC,GAAmC;AACrE,MAAAH,EAAY,IAAIG,CAAG;AACd,WAAAH,EAAY,IAAIG,CAAG;AAGxB,MAAAF,EAAe,IAAIE,CAAG;AACjB,WAAAF,EAAe,IAAIE,CAAG;AAG/B,QAAMC,IAAe,MAAMD,CAAG,EAC3B,KAAK,OAAME,MAAO;AACb,QAAA,CAACA,EAAI,GAAW,QAAA;AAGd,UAAAC,IADeH,EAAI,SAAS,SAAS,IACf,MAAME,EAAI,gBAAgB,MAAMA,EAAI;AAEpD,WAAAL,EAAA,IAAIG,GAAKG,CAAI,GAElBA;AAAA,EAAA,CACR,EACA,MAAM,CAAOC,OAEJ,QAAA,MAAM,yBAAyBA,CAAG,GAEnC,KACR,EACA,QAAQ,MAAM;AACb,IAAAN,EAAe,OAAOE,CAAG;AAAA,EAAA,CAC1B;AAEY,SAAAF,EAAA,IAAIE,GAAKC,CAAY,GAE7BA;AACT;"}
@@ -0,0 +1,105 @@
1
+ import { stickerData as b } from "../sticker-data.js";
2
+ const w = (o, e) => {
3
+ const t = Math.ceil(e / 4), a = Math.floor(o / t), m = o % t, p = ["top", "right", "bottom", "left"][a] ?? "left", c = (m + 0.5) / t * 100, i = (Math.random() - 0.5) * 25, s = Math.min(Math.max(c + i, 0), 100), h = 45 + Math.random() * 10, d = 45 + Math.random() * 10;
4
+ let n = 0, r = 0;
5
+ switch (p) {
6
+ case "top":
7
+ n = s - h, r = -d + i;
8
+ break;
9
+ case "right":
10
+ n = 100 - h + i, r = s - d;
11
+ break;
12
+ case "bottom":
13
+ n = s - h, r = 100 - d + i;
14
+ break;
15
+ case "left":
16
+ n = -h + i, r = s - d;
17
+ break;
18
+ }
19
+ return {
20
+ fromX: `${n}vw`,
21
+ fromY: `${r}vh`,
22
+ x: h,
23
+ y: d
24
+ };
25
+ }, v = (o, e = 10) => {
26
+ const t = [];
27
+ let a = 0;
28
+ const m = o;
29
+ for (; t.length < o && a < m; ) {
30
+ const l = Math.floor(Math.random() * (100 - 2 * e) + e);
31
+ t.every((p) => Math.abs(p - l) >= e) && t.push(l), a++;
32
+ }
33
+ for (; t.length < o; )
34
+ t.push(Math.floor(Math.random() * (100 - 2 * e) + e));
35
+ return t;
36
+ };
37
+ function P({
38
+ count: o,
39
+ effect: e,
40
+ stickers: t,
41
+ minSize: a,
42
+ maxSize: m
43
+ }) {
44
+ const l = 100 / o * 2, p = () => Math.random() * (m - a) + a, c = [], i = ["float-up", "fall-down"].includes(e) ? v(o, l) : [];
45
+ for (let s = 0; s < o; s++) {
46
+ const h = t[s % t.length] ?? "", { emoji: d = "", lottieUrl: n } = b.find(({ id: f }) => f === h) || {}, r = p(), u = i[s], M = { id: h, sticker: d, size: r };
47
+ switch (e) {
48
+ case "float-up":
49
+ c.push({
50
+ ...M,
51
+ x: u,
52
+ y: 110 + (Math.random() - 0.5) * r,
53
+ lottie: n
54
+ });
55
+ break;
56
+ case "fall-down":
57
+ c.push({
58
+ ...M,
59
+ x: u,
60
+ y: -10 + (Math.random() - 0.5) * r,
61
+ lottie: n
62
+ });
63
+ break;
64
+ case "burst-from-edges": {
65
+ const { x: f, y: x, fromX: g, fromY: k } = w(s, o);
66
+ c.push({
67
+ ...M,
68
+ x: f,
69
+ y: x,
70
+ fromX: g,
71
+ fromY: k,
72
+ size: r,
73
+ lottie: n
74
+ });
75
+ break;
76
+ }
77
+ case "pop-expand":
78
+ c.push({
79
+ ...M,
80
+ x: 50,
81
+ y: 100,
82
+ fromX: `${(Math.random() - 0.5) * 27.5}vw`,
83
+ fromY: `${-50 - Math.random() * 27.5}vh`,
84
+ lottie: n
85
+ });
86
+ break;
87
+ default:
88
+ c.push({
89
+ ...M,
90
+ x: Math.random() * 100,
91
+ y: Math.random() * 100
92
+ });
93
+ }
94
+ }
95
+ return c;
96
+ }
97
+ const X = (o, e = 0.2) => {
98
+ const t = o * e, a = o - t, m = o + t;
99
+ return Math.floor(Math.random() * (m - a + 1)) + a;
100
+ };
101
+ export {
102
+ P as generateStickerData,
103
+ X as randomizeDuration
104
+ };
105
+ //# sourceMappingURL=stickers-effects-helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stickers-effects-helper.js","sources":["../../../../src/features/stickers/stickers-effects/stickers-effects-helper.ts"],"sourcesContent":["import type { TStickerData, IStickersProps } from './stickers-effects-types';\n\nimport { stickerData } from '../sticker-data';\n\nconst getBurstPosition = (\n index: number,\n total: number,\n): {\n fromX: string;\n fromY: string;\n x: number;\n y: number;\n} => {\n const countPerSide = Math.ceil(total / 4);\n const sideIndex = Math.floor(index / countPerSide);\n const pos = index % countPerSide;\n\n const sides = ['top', 'right', 'bottom', 'left'] as const;\n const side = sides[sideIndex] ?? 'left';\n\n const basePercent = ((pos + 0.5) / countPerSide) * 100;\n const jitter = (Math.random() - 0.5) * 25;\n const edgePercent = Math.min(Math.max(basePercent + jitter, 0), 100);\n\n const centerX = 45 + Math.random() * 10;\n const centerY = 45 + Math.random() * 10;\n\n let fromX = 0;\n let fromY = 0;\n\n switch (side) {\n case 'top':\n fromX = edgePercent - centerX;\n fromY = -centerY + jitter;\n break;\n case 'right':\n fromX = 100 - centerX + jitter;\n fromY = edgePercent - centerY;\n break;\n case 'bottom':\n fromX = edgePercent - centerX;\n fromY = 100 - centerY + jitter;\n break;\n case 'left':\n fromX = -centerX + jitter;\n fromY = edgePercent - centerY;\n break;\n }\n\n return {\n fromX: `${fromX}vw`,\n fromY: `${fromY}vh`,\n x: centerX,\n y: centerY,\n };\n};\n\nconst getRandomNonOverlappingPositions = (count: number, buffer = 10): number[] => {\n const used: number[] = [];\n let attempts = 0;\n const maxAttempts = count;\n\n while (used.length < count && attempts < maxAttempts) {\n const value = Math.floor(Math.random() * (100 - 2 * buffer) + buffer);\n\n if (used.every(v => Math.abs(v - value) >= buffer)) {\n used.push(value);\n }\n attempts++;\n }\n\n while (used.length < count) {\n used.push(Math.floor(Math.random() * (100 - 2 * buffer) + buffer));\n }\n\n return used;\n};\n\nexport function generateStickerData({\n count,\n effect,\n stickers,\n minSize,\n maxSize,\n}: {\n count: number;\n effect: IStickersProps['effect'];\n stickers: string[];\n minSize: number;\n maxSize: number;\n}): TStickerData[] {\n const buffer = (100 / count) * 2;\n const getSize = () => Math.random() * (maxSize - minSize) + minSize;\n const result: TStickerData[] = [];\n const xPositions = ['float-up', 'fall-down'].includes(effect)\n ? getRandomNonOverlappingPositions(count, buffer)\n : [];\n\n for (let i = 0; i < count; i++) {\n const stickerId = stickers[i % stickers.length] ?? '';\n const { emoji: sticker = '', lottieUrl: lottie } =\n stickerData.find(({ id }) => id === stickerId) || {};\n\n const size = getSize();\n const x = xPositions[i]!;\n const common = { id: stickerId, sticker, size };\n\n switch (effect) {\n case 'float-up':\n result.push({\n ...common,\n x,\n y: 110 + (Math.random() - 0.5) * size,\n lottie: lottie,\n });\n break;\n\n case 'fall-down':\n result.push({\n ...common,\n x,\n y: -10 + (Math.random() - 0.5) * size,\n lottie: lottie,\n });\n break;\n\n case 'burst-from-edges': {\n // eslint-disable-next-line @typescript-eslint/no-shadow\n const { x, y, fromX, fromY } = getBurstPosition(i, count);\n\n result.push({\n ...common,\n x,\n y,\n fromX,\n fromY,\n size,\n lottie: lottie,\n });\n break;\n }\n\n case 'pop-expand':\n result.push({\n ...common,\n x: 50,\n y: 100,\n fromX: `${(Math.random() - 0.5) * 27.5}vw`,\n fromY: `${-50 - Math.random() * 27.5}vh`,\n lottie: lottie,\n });\n break;\n\n default:\n result.push({\n ...common,\n x: Math.random() * 100,\n y: Math.random() * 100,\n });\n }\n }\n\n return result;\n}\n\nexport const randomizeDuration = (base: number, variancePercent = 0.2): number => {\n const delta = base * variancePercent;\n const min = base - delta;\n const max = base + delta;\n\n return Math.floor(Math.random() * (max - min + 1)) + min;\n};\n"],"names":["getBurstPosition","index","total","countPerSide","sideIndex","pos","side","basePercent","jitter","edgePercent","centerX","centerY","fromX","fromY","getRandomNonOverlappingPositions","count","buffer","used","attempts","maxAttempts","value","v","generateStickerData","effect","stickers","minSize","maxSize","getSize","result","xPositions","i","stickerId","sticker","lottie","stickerData","id","size","x","common","y","randomizeDuration","base","variancePercent","delta","min","max"],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ import o, { css as n } from "styled-components";
2
+ import { effectAnimations as r } from "./effects.js";
3
+ const d = o.div`
4
+ position: relative;
5
+ width: 100vw;
6
+ height: 100vh;
7
+ background: transparent;
8
+ pointer-events: none;
9
+ `, h = o.div`
10
+ position: absolute;
11
+ z-index: 10;
12
+
13
+ left: ${({ x: i }) => `${i}%`};
14
+ top: ${({ y: i }) => `${i}%`};
15
+ width: ${({ size: i }) => `${i}px`};
16
+ height: ${({ size: i }) => `${i}px`};
17
+ font-size: ${({ size: i }) => `${i}px`};
18
+
19
+ pointer-events: none;
20
+ visibility: hidden;
21
+ animation-fill-mode: both;
22
+
23
+ ${({ effect: i, duration: $, delay: s = 0, fromX: t, fromY: e }) => n`
24
+ ${r[i]($)}
25
+ animation-delay: ${s}ms;
26
+
27
+ ${t && e && n`
28
+ --from-x: ${t};
29
+ --from-y: ${e};
30
+ `}
31
+ `}
32
+ `;
33
+ export {
34
+ d as Container,
35
+ h as Sticker
36
+ };
37
+ //# sourceMappingURL=stickers-effects-styled.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stickers-effects-styled.js","sources":["../../../../src/features/stickers/stickers-effects/stickers-effects-styled.ts"],"sourcesContent":["import type { IStickersProps } from './stickers-effects-types';\n\nimport styled, { css } from 'styled-components';\n\nimport { effectAnimations } from './effects';\n\nexport const Container = styled.div`\n position: relative;\n width: 100vw;\n height: 100vh;\n background: transparent;\n pointer-events: none;\n`;\n\nexport const Sticker = styled.div<{\n effect: IStickersProps['effect'];\n duration: number;\n delay?: number;\n fromX?: string;\n fromY?: string;\n x: number;\n y: number;\n size: number;\n}>`\n position: absolute;\n z-index: 10;\n\n left: ${({ x }) => `${x}%`};\n top: ${({ y }) => `${y}%`};\n width: ${({ size }) => `${size}px`};\n height: ${({ size }) => `${size}px`};\n font-size: ${({ size }) => `${size}px`};\n\n pointer-events: none;\n visibility: hidden;\n animation-fill-mode: both;\n\n ${({ effect, duration, delay = 0, fromX, fromY }) => css`\n ${effectAnimations[effect](duration)}\n animation-delay: ${delay}ms;\n\n ${fromX &&\n fromY &&\n css`\n --from-x: ${fromX};\n --from-y: ${fromY};\n `}\n `}\n`;\n"],"names":["Container","styled","Sticker","x","y","size","effect","duration","delay","fromX","fromY","css","effectAnimations"],"mappings":";;AAMO,MAAMA,IAAYC,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAQnBC,IAAUD,EAAO;AAAA;AAAA;AAAA;AAAA,UAapB,CAAC,EAAE,GAAAE,EAAQ,MAAA,GAAGA,CAAC,GAAG;AAAA,SACnB,CAAC,EAAE,GAAAC,EAAQ,MAAA,GAAGA,CAAC,GAAG;AAAA,WAChB,CAAC,EAAE,MAAAC,EAAW,MAAA,GAAGA,CAAI,IAAI;AAAA,YACxB,CAAC,EAAE,MAAAA,EAAW,MAAA,GAAGA,CAAI,IAAI;AAAA,eACtB,CAAC,EAAE,MAAAA,EAAW,MAAA,GAAGA,CAAI,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMpC,CAAC,EAAE,QAAAC,GAAQ,UAAAC,GAAU,OAAAC,IAAQ,GAAG,OAAAC,GAAO,OAAAC,EAAY,MAAAC;AAAA,MACjDC,EAAiBN,CAAM,EAAEC,CAAQ,CAAC;AAAA,uBACjBC,CAAK;AAAA;AAAA,MAEtBC,KACFC,KACAC;AAAA,kBACcF,CAAK;AAAA,kBACLC,CAAK;AAAA,KAClB;AAAA,GACF;AAAA;"}
@@ -0,0 +1,67 @@
1
+ import { jsx as n, Fragment as x } from "react/jsx-runtime";
2
+ import { memo as d, useState as l, useEffect as p } from "react";
3
+ import E from "../../ui/dot-lottie-animations/dot-lottie-animation.js";
4
+ import { preloadLottieFile as F } from "./stickers-cache.js";
5
+ import { generateStickerData as y } from "./stickers-effects-helper.js";
6
+ import { Container as z, Sticker as L } from "./stickers-effects-styled.js";
7
+ const T = d(({ url: t, sticker: i, size: o }) => {
8
+ const [r, f] = l(), [c, e] = l(!1), s = {
9
+ loop: !0,
10
+ autoplay: !0
11
+ };
12
+ return p(() => {
13
+ let a = !0;
14
+ if (t)
15
+ return F(t).then((m) => {
16
+ a && (m ? f(m) : e(!0));
17
+ }).catch(() => {
18
+ a && e(!0);
19
+ }), () => {
20
+ a = !1;
21
+ };
22
+ }, [t]), !t || c || !r ? /* @__PURE__ */ n(x, { children: i }) : /* @__PURE__ */ n(
23
+ E,
24
+ {
25
+ data: r,
26
+ width: o,
27
+ height: o,
28
+ settings: s,
29
+ onError: () => e(!0)
30
+ }
31
+ );
32
+ }), $ = ({ stickers: t, effect: i, count: o, duration: r }) => {
33
+ const [f, c] = l([]);
34
+ return p(() => {
35
+ const e = y({
36
+ count: o,
37
+ effect: i,
38
+ stickers: t,
39
+ minSize: 48,
40
+ maxSize: 72
41
+ });
42
+ c(e);
43
+ const s = setTimeout(() => c([]), r);
44
+ return () => clearTimeout(s);
45
+ }, [t, i, o, r]), /* @__PURE__ */ n(z, { children: f.map((e, s) => {
46
+ const { id: a, sticker: m, lottie: h, x: k, y: S, size: u, fromX: D, fromY: g } = e;
47
+ return /* @__PURE__ */ n(
48
+ L,
49
+ {
50
+ effect: i,
51
+ duration: r,
52
+ delay: 500,
53
+ fromX: D,
54
+ fromY: g,
55
+ x: k,
56
+ y: S,
57
+ size: u,
58
+ children: /* @__PURE__ */ n(T, { url: h, sticker: m, size: u })
59
+ },
60
+ `${a}-${s}`
61
+ );
62
+ }) });
63
+ }, W = d($);
64
+ export {
65
+ W as default
66
+ };
67
+ //# 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';\nimport type { Data } from '@lottiefiles/dotlottie-web';\n\nimport React, { memo, useEffect, useState } from 'react';\n\nimport DotLottieAnimation from '../../ui/dot-lottie-animations/dot-lottie-animation';\nimport { preloadLottieFile } from './stickers-cache';\nimport { generateStickerData } from './stickers-effects-helper';\nimport * as S from './stickers-effects-styled';\n\nconst StickerWithFallback: React.FC<{\n url?: string;\n sticker: string;\n size: number;\n}> = memo(({ url, sticker, size }) => {\n const [data, setData] = useState<Data>();\n const [failed, setFailed] = useState(false);\n const renderSettings = {\n loop: true,\n autoplay: true,\n };\n\n useEffect(() => {\n let isMounted = true;\n\n if (!url) return;\n\n preloadLottieFile(url)\n .then(result => {\n if (isMounted) {\n if (result) {\n setData(result);\n } else {\n setFailed(true);\n }\n }\n })\n .catch(() => {\n if (isMounted) setFailed(true);\n });\n\n return () => {\n isMounted = false;\n };\n }, [url]);\n\n if (!url || failed || !data) {\n return <>{sticker}</>;\n }\n\n return (\n <DotLottieAnimation\n data={data}\n width={size}\n height={size}\n settings={renderSettings}\n onError={() => setFailed(true)}\n />\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: 48,\n maxSize: 72,\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 delay={500}\n fromX={fromX}\n fromY={fromY}\n x={x}\n y={y}\n size={size}\n >\n <StickerWithFallback url={lottie} sticker={sticker} size={size} />\n </S.Sticker>\n );\n })}\n </S.Container>\n );\n};\n\nexport default memo(StickersEffects);\n"],"names":["StickerWithFallback","memo","url","sticker","size","data","setData","useState","failed","setFailed","renderSettings","useEffect","isMounted","preloadLottieFile","result","jsx","DotLottieAnimation","StickersEffects","stickers","effect","count","duration","stickersData","setStickersData","stickerData","generateStickerData","timeout","S.Container","i","id","lottie","x","y","fromX","fromY","S.Sticker","stickersEffects"],"mappings":";;;;;;AAUA,MAAMA,IAIDC,EAAK,CAAC,EAAE,KAAAC,GAAK,SAAAC,GAAS,MAAAC,QAAW;AACpC,QAAM,CAACC,GAAMC,CAAO,IAAIC,EAAe,GACjC,CAACC,GAAQC,CAAS,IAAIF,EAAS,EAAK,GACpCG,IAAiB;AAAA,IACrB,MAAM;AAAA,IACN,UAAU;AAAA,EAAA;AA2BZ,SAxBAC,EAAU,MAAM;AACd,QAAIC,IAAY;AAEhB,QAAKV;AAEa,aAAAW,EAAAX,CAAG,EAClB,KAAK,CAAUY,MAAA;AACd,QAAIF,MACEE,IACFR,EAAQQ,CAAM,IAEdL,EAAU,EAAI;AAAA,MAElB,CACD,EACA,MAAM,MAAM;AACP,QAAAG,OAAqB,EAAI;AAAA,MAAA,CAC9B,GAEI,MAAM;AACC,QAAAA,IAAA;AAAA,MAAA;AAAA,EACd,GACC,CAACV,CAAG,CAAC,GAEJ,CAACA,KAAOM,KAAU,CAACH,2BACX,UAAQF,EAAA,CAAA,IAIlB,gBAAAY;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,MAAAX;AAAA,MACA,OAAOD;AAAA,MACP,QAAQA;AAAA,MACR,UAAUM;AAAA,MACV,SAAS,MAAMD,EAAU,EAAI;AAAA,IAAA;AAAA,EAAA;AAGnC,CAAC,GAEKQ,IAA4C,CAAC,EAAE,UAAAC,GAAU,QAAAC,GAAQ,OAAAC,GAAO,UAAAC,QAAe;AAC3F,QAAM,CAACC,GAAcC,CAAe,IAAIhB,EAAiD,CAAE,CAAA;AAE3F,SAAAI,EAAU,MAAM;AACd,UAAMa,IAAcC,EAAoB;AAAA,MACtC,OAAAL;AAAA,MACA,QAAAD;AAAA,MACA,UAAAD;AAAA,MACA,SAAS;AAAA,MACT,SAAS;AAAA,IAAA,CACV;AAED,IAAAK,EAAgBC,CAAW;AAE3B,UAAME,IAAU,WAAW,MAAMH,EAAgB,CAAE,CAAA,GAAGF,CAAQ;AAEvD,WAAA,MAAM,aAAaK,CAAO;AAAA,KAChC,CAACR,GAAUC,GAAQC,GAAOC,CAAQ,CAAC,GAGpC,gBAAAN,EAACY,GAAA,EACE,YAAa,IAAI,CAACtB,GAAoBuB,MAAM;AACrC,UAAA,EAAE,IAAAC,GAAI,SAAA1B,GAAS,QAAA2B,GAAQ,GAAAC,GAAG,GAAAC,GAAG,MAAA5B,GAAM,OAAA6B,GAAO,OAAAC,EAAU,IAAA7B;AAGxD,WAAA,gBAAAU;AAAA,MAACoB;AAAAA,MAAA;AAAA,QAEC,QAAAhB;AAAA,QACA,UAAAE;AAAA,QACA,OAAO;AAAA,QACP,OAAAY;AAAA,QACA,OAAAC;AAAA,QACA,GAAAH;AAAA,QACA,GAAAC;AAAA,QACA,MAAA5B;AAAA,QAEA,UAAC,gBAAAW,EAAAf,GAAA,EAAoB,KAAK8B,GAAQ,SAAA3B,GAAkB,MAAAC,GAAY;AAAA,MAAA;AAAA,MAV3D,GAAGyB,CAAE,IAAID,CAAC;AAAA,IAAA;AAAA,EAapB,CAAA,EACH,CAAA;AAEJ,GAEeQ,IAAAnC,EAAKgB,CAAe;"}
@@ -1,5 +1,5 @@
1
- import o from "styled-components";
2
- const i = o.div`
1
+ import i from "styled-components";
2
+ const e = i.div`
3
3
  position: absolute;
4
4
  top: 0;
5
5
  left: 0;
@@ -8,8 +8,13 @@ const i = o.div`
8
8
  width: 100%;
9
9
  height: 100%;
10
10
  z-index: ${({ theme: t }) => t.zIndex.JOURNEY_OVERLAY};
11
+ `, n = i.div`
12
+ visibility: ${({ $visible: t }) => t ? "visible" : "hidden"};
13
+ opacity: ${({ $visible: t }) => t ? 1 : 0};
14
+ pointer-events: ${({ $visible: t }) => t ? "auto" : "none"};
11
15
  `;
12
16
  export {
13
- i as BackgroundOverlay
17
+ e as BackgroundOverlay,
18
+ n as TooltipWrapper
14
19
  };
15
20
  //# sourceMappingURL=arrow-tooltip-styled.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"arrow-tooltip-styled.js","sources":["../../../../src/features/ui/arrow-tooltip/arrow-tooltip-styled.tsx"],"sourcesContent":["import styled from 'styled-components';\n\nexport const BackgroundOverlay = styled.div`\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n width: 100%;\n height: 100%;\n z-index: ${({ theme }) => theme.zIndex.JOURNEY_OVERLAY};\n`;\n"],"names":["BackgroundOverlay","styled","theme"],"mappings":";AAEO,MAAMA,IAAoBC,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,aAQ3B,CAAC,EAAE,OAAAC,EAAA,MAAYA,EAAM,OAAO,eAAe;AAAA;"}
1
+ {"version":3,"file":"arrow-tooltip-styled.js","sources":["../../../../src/features/ui/arrow-tooltip/arrow-tooltip-styled.tsx"],"sourcesContent":["import styled from 'styled-components';\n\nexport const BackgroundOverlay = styled.div`\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n width: 100%;\n height: 100%;\n z-index: ${({ theme }) => theme.zIndex.JOURNEY_OVERLAY};\n`;\n\nexport const TooltipWrapper = styled.div<{ $visible: boolean }>`\n visibility: ${({ $visible }) => ($visible ? 'visible' : 'hidden')};\n opacity: ${({ $visible }) => ($visible ? 1 : 0)};\n pointer-events: ${({ $visible }) => ($visible ? 'auto' : 'none')};\n`;\n"],"names":["BackgroundOverlay","styled","theme","TooltipWrapper","$visible"],"mappings":";AAEO,MAAMA,IAAoBC,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,aAQ3B,CAAC,EAAE,OAAAC,EAAA,MAAYA,EAAM,OAAO,eAAe;AAAA,GAG3CC,IAAiBF,EAAO;AAAA,gBACrB,CAAC,EAAE,UAAAG,EAAA,MAAgBA,IAAW,YAAY,QAAS;AAAA,aACtD,CAAC,EAAE,UAAAA,EAAA,MAAgBA,IAAW,IAAI,CAAE;AAAA,oBAC7B,CAAC,EAAE,UAAAA,EAAA,MAAgBA,IAAW,SAAS,MAAO;AAAA;"}
@@ -1,53 +1,53 @@
1
- import { jsxs as D, Fragment as U, jsx as e } from "react/jsx-runtime";
2
- import W from "../../../node_modules/lodash.throttle/index.js";
3
- import { memo as Y, useRef as H, useState as f, useCallback as p, useEffect as m } from "react";
1
+ import { jsxs as j, Fragment as D, jsx as e } from "react/jsx-runtime";
2
+ import U from "../../../node_modules/lodash.throttle/index.js";
3
+ import { memo as Y, useRef as H, useState as a, useCallback as f, useEffect as m } from "react";
4
4
  import $ from "../layout/flex-view.js";
5
5
  import P from "../portal/portal.js";
6
6
  import { THROTTLE_DURATION as Z, DEFAULT_ARROW_SIZE as q } from "./arrow-tooltip-constants.js";
7
- import { BackgroundOverlay as G } from "./arrow-tooltip-styled.js";
8
- import { computeTooltipNewCoOrdinates as J } from "./arrow-tooltip-util.js";
9
- import K from "./comps/tooltip-body.js";
10
- const Q = ({
7
+ import { TooltipWrapper as G, BackgroundOverlay as J } from "./arrow-tooltip-styled.js";
8
+ import { computeTooltipNewCoOrdinates as K } from "./arrow-tooltip-util.js";
9
+ import Q from "./comps/tooltip-body.js";
10
+ const V = ({
11
11
  isAnimated: C,
12
12
  alwaysVisible: o = !1,
13
13
  arrowColor: O,
14
14
  arrowSize: w = q,
15
- arrowXCoOrdinates: E,
16
- arrowYCoOrdinates: T,
17
- backgroundColor: v,
18
- borderColor: R,
19
- children: h,
15
+ arrowXCoOrdinates: T,
16
+ arrowYCoOrdinates: v,
17
+ backgroundColor: E,
18
+ borderColor: h,
19
+ children: R,
20
20
  hidden: t,
21
21
  position: l,
22
22
  renderAs: A,
23
23
  textVariant: L,
24
24
  tooltipItem: g,
25
25
  tooltipOffset: x,
26
- tooltipXCoOrdinates: z,
27
- tooltipYCoOrdinates: I,
28
- width: b,
26
+ tooltipXCoOrdinates: b,
27
+ tooltipYCoOrdinates: z,
28
+ width: I,
29
29
  widthX: k,
30
30
  zIndex: B,
31
31
  parentWidth: F,
32
32
  isBlocking: M = !1
33
33
  }) => {
34
- const u = H(null), [N, d] = f(o), [S, X] = f(
34
+ const d = H(null), [N, u] = a(o), [S, W] = a(
35
35
  null
36
- ), s = p(
36
+ ), s = f(
37
37
  (n, i) => {
38
- X(n), d(i);
38
+ W(n), u(i);
39
39
  },
40
40
  []
41
- ), _ = p(() => {
41
+ ), X = f(() => {
42
42
  if (t || o)
43
43
  return null;
44
44
  s(null, !1);
45
- }, [o, s, t]), r = W(() => {
46
- var a;
47
- const { current: n } = u;
45
+ }, [o, s, t]), r = U(() => {
46
+ var p;
47
+ const { current: n } = d;
48
48
  if (t || !n) return null;
49
- const i = (a = n.children[0]) == null ? void 0 : a.getBoundingClientRect(), j = i ? J(l, i) : null;
50
- return s(j, !0), null;
49
+ const i = (p = n.children[0]) == null ? void 0 : p.getBoundingClientRect(), _ = i ? K(l, i) : null;
50
+ return s(_, !0), null;
51
51
  }, Z);
52
52
  m(() => {
53
53
  if (!(!o || t))
@@ -55,46 +55,46 @@ const Q = ({
55
55
  window.removeEventListener("scroll", r, !0), window.removeEventListener("resize", r);
56
56
  };
57
57
  }, [o, t, l, r]), m(() => {
58
- t && d(!1), o && r();
58
+ t && u(!1), o && r();
59
59
  }, [o, t]);
60
60
  const c = /* @__PURE__ */ e(
61
- K,
61
+ Q,
62
62
  {
63
63
  $arrowSize: w,
64
- $arrowXCoOrdinates: E,
65
- $arrowYCoOrdinates: T,
64
+ $arrowXCoOrdinates: T,
65
+ $arrowYCoOrdinates: v,
66
66
  $position: l,
67
67
  $renderAs: A,
68
68
  $tooltipCoOrdinates: S,
69
69
  $tooltipOffset: x,
70
- $tooltipXCoOrdinates: z,
71
- $tooltipYCoOrdinates: I,
70
+ $tooltipXCoOrdinates: b,
71
+ $tooltipYCoOrdinates: z,
72
72
  $zIndex: B,
73
- $backgroundColor: v,
73
+ $backgroundColor: E,
74
74
  $arrowColor: O,
75
- $borderColor: R,
75
+ $borderColor: h,
76
76
  $isAnimated: C,
77
- $width: b,
77
+ $width: I,
78
78
  $widthX: k,
79
79
  textVariant: L || "body3",
80
80
  children: g
81
81
  }
82
82
  );
83
- return /* @__PURE__ */ D(U, { children: [
83
+ return /* @__PURE__ */ j(D, { children: [
84
84
  /* @__PURE__ */ e(
85
85
  $,
86
86
  {
87
87
  $width: F || "fit-content",
88
- ref: u,
88
+ ref: d,
89
89
  onMouseEnter: r,
90
- onMouseLeave: _,
91
- children: /* @__PURE__ */ e($, { children: h })
90
+ onMouseLeave: X,
91
+ children: /* @__PURE__ */ e($, { children: R })
92
92
  }
93
93
  ),
94
- N && /* @__PURE__ */ e(P, { portalId: "tooltip-root", children: M ? /* @__PURE__ */ e(G, { children: c }) : c })
94
+ /* @__PURE__ */ e(P, { portalId: "tooltip-root", children: /* @__PURE__ */ e(G, { $visible: N, children: M ? /* @__PURE__ */ e(J, { children: c }) : c }) })
95
95
  ] });
96
- }, so = Y(Q);
96
+ }, uo = Y(V);
97
97
  export {
98
- so as default
98
+ uo as default
99
99
  };
100
100
  //# sourceMappingURL=arrow-tooltip.js.map