@deriv-web-design/ui 0.1.15 → 0.1.18
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/block-registry.json +110 -0
- package/components.manifest.json +53 -3
- package/dist/index.css +111 -0
- package/dist/index.css.map +1 -1
- package/dist/index.d.mts +98 -5
- package/dist/index.d.ts +98 -5
- package/dist/index.js +206 -28
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +234 -62
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -47,6 +47,7 @@ var Link = ({
|
|
|
47
47
|
colorScheme = "coral",
|
|
48
48
|
label,
|
|
49
49
|
icon,
|
|
50
|
+
iconPosition = "left",
|
|
50
51
|
showChevron = true,
|
|
51
52
|
disabled = false,
|
|
52
53
|
children,
|
|
@@ -78,8 +79,9 @@ var Link = ({
|
|
|
78
79
|
onClick: handleClick,
|
|
79
80
|
...props,
|
|
80
81
|
children: [
|
|
81
|
-
hasIcon && /* @__PURE__ */ jsx2("span", { className: "icon", children: icon }),
|
|
82
|
+
hasIcon && iconPosition === "left" && /* @__PURE__ */ jsx2("span", { className: "icon", children: icon }),
|
|
82
83
|
/* @__PURE__ */ jsx2("span", { className: "label", children: label ?? children }),
|
|
84
|
+
hasIcon && iconPosition === "right" && /* @__PURE__ */ jsx2("span", { className: "icon", children: icon }),
|
|
83
85
|
!hasIcon && showChevron && /* @__PURE__ */ jsx2("span", { className: "chevron", "aria-hidden": "true", children: /* @__PURE__ */ jsx2(ChevronIcon, {}) })
|
|
84
86
|
]
|
|
85
87
|
}
|
|
@@ -2525,22 +2527,32 @@ var StatsSimple = ({
|
|
|
2525
2527
|
};
|
|
2526
2528
|
|
|
2527
2529
|
// templates/FeatureScroll/FeatureScroll.tsx
|
|
2528
|
-
import { useLayoutEffect, useRef as useRef7, useState as useState10 } from "react";
|
|
2530
|
+
import { useEffect as useEffect7, useLayoutEffect, useRef as useRef7, useState as useState10 } from "react";
|
|
2529
2531
|
|
|
2530
2532
|
// components/DotLottieInView/DotLottieInView.tsx
|
|
2531
|
-
import {
|
|
2532
|
-
|
|
2533
|
+
import {
|
|
2534
|
+
lazy,
|
|
2535
|
+
Suspense,
|
|
2536
|
+
useEffect as useEffect6,
|
|
2537
|
+
useRef as useRef6,
|
|
2538
|
+
useState as useState9
|
|
2539
|
+
} from "react";
|
|
2533
2540
|
import { jsx as jsx27 } from "react/jsx-runtime";
|
|
2541
|
+
var DotLottiePlayer = lazy(
|
|
2542
|
+
() => import("@lottiefiles/dotlottie-react").then((m) => ({ default: m.DotLottieReact }))
|
|
2543
|
+
);
|
|
2534
2544
|
function DotLottieInView({
|
|
2535
2545
|
enabled = true,
|
|
2536
2546
|
rootMargin = "0px",
|
|
2537
2547
|
threshold = 0.2,
|
|
2538
2548
|
className,
|
|
2539
2549
|
style,
|
|
2550
|
+
poster,
|
|
2540
2551
|
...dotProps
|
|
2541
2552
|
}) {
|
|
2542
2553
|
const wrapRef = useRef6(null);
|
|
2543
2554
|
const [inView, setInView] = useState9(false);
|
|
2555
|
+
const [mounted, setMounted] = useState9(false);
|
|
2544
2556
|
const [dotLottie, setDotLottie] = useState9(null);
|
|
2545
2557
|
useEffect6(() => {
|
|
2546
2558
|
const el = wrapRef.current;
|
|
@@ -2554,6 +2566,24 @@ function DotLottieInView({
|
|
|
2554
2566
|
observer.observe(el);
|
|
2555
2567
|
return () => observer.disconnect();
|
|
2556
2568
|
}, [rootMargin, threshold]);
|
|
2569
|
+
useEffect6(() => {
|
|
2570
|
+
if (mounted) return;
|
|
2571
|
+
if (!(inView && enabled)) return;
|
|
2572
|
+
if (typeof window === "undefined") return;
|
|
2573
|
+
let cancelled = false;
|
|
2574
|
+
const commit = () => {
|
|
2575
|
+
if (!cancelled) setMounted(true);
|
|
2576
|
+
};
|
|
2577
|
+
const idleId = typeof window.requestIdleCallback === "function" ? window.requestIdleCallback(commit, { timeout: 400 }) : null;
|
|
2578
|
+
const timerId = idleId === null ? window.setTimeout(commit, 0) : null;
|
|
2579
|
+
return () => {
|
|
2580
|
+
cancelled = true;
|
|
2581
|
+
if (idleId !== null && typeof window.cancelIdleCallback === "function") {
|
|
2582
|
+
window.cancelIdleCallback(idleId);
|
|
2583
|
+
}
|
|
2584
|
+
if (timerId !== null) window.clearTimeout(timerId);
|
|
2585
|
+
};
|
|
2586
|
+
}, [inView, enabled, mounted]);
|
|
2557
2587
|
useEffect6(() => {
|
|
2558
2588
|
if (!dotLottie) return;
|
|
2559
2589
|
if (!enabled || !inView) {
|
|
@@ -2578,15 +2608,15 @@ function DotLottieInView({
|
|
|
2578
2608
|
backgroundColor: "transparent",
|
|
2579
2609
|
...style
|
|
2580
2610
|
},
|
|
2581
|
-
children: /* @__PURE__ */ jsx27(
|
|
2582
|
-
|
|
2611
|
+
children: mounted ? /* @__PURE__ */ jsx27(Suspense, { fallback: poster ?? null, children: /* @__PURE__ */ jsx27(
|
|
2612
|
+
DotLottiePlayer,
|
|
2583
2613
|
{
|
|
2584
2614
|
...dotProps,
|
|
2585
2615
|
loop: false,
|
|
2586
2616
|
autoplay: false,
|
|
2587
2617
|
dotLottieRefCallback: setDotLottie
|
|
2588
2618
|
}
|
|
2589
|
-
)
|
|
2619
|
+
) }) : poster ?? null
|
|
2590
2620
|
}
|
|
2591
2621
|
);
|
|
2592
2622
|
}
|
|
@@ -2658,26 +2688,45 @@ var ChevronRight2 = () => /* @__PURE__ */ jsx28(
|
|
|
2658
2688
|
)
|
|
2659
2689
|
}
|
|
2660
2690
|
);
|
|
2691
|
+
function mediaSrc(item) {
|
|
2692
|
+
return typeof item.mediaUrl === "string" && item.mediaUrl !== "" ? item.mediaUrl : null;
|
|
2693
|
+
}
|
|
2661
2694
|
function resolveMediaType(item) {
|
|
2662
2695
|
if (item.mediaType) return item.mediaType;
|
|
2663
|
-
|
|
2696
|
+
const src = mediaSrc(item);
|
|
2697
|
+
return src?.split("?")[0].endsWith(".lottie") ? "lottie" : "image";
|
|
2664
2698
|
}
|
|
2665
|
-
var MediaRenderer = ({ item, active }) => {
|
|
2699
|
+
var MediaRenderer = ({ item, active, rootMargin, threshold }) => {
|
|
2700
|
+
const src = mediaSrc(item);
|
|
2701
|
+
if (!src) return null;
|
|
2666
2702
|
if (resolveMediaType(item) === "lottie") {
|
|
2667
2703
|
return /* @__PURE__ */ jsx28(
|
|
2668
2704
|
DotLottieInView,
|
|
2669
2705
|
{
|
|
2670
|
-
src
|
|
2671
|
-
enabled: active
|
|
2706
|
+
src,
|
|
2707
|
+
enabled: active,
|
|
2708
|
+
rootMargin,
|
|
2709
|
+
threshold,
|
|
2710
|
+
poster: item.posterUrl ? /* @__PURE__ */ jsx28(
|
|
2711
|
+
"img",
|
|
2712
|
+
{
|
|
2713
|
+
src: item.posterUrl,
|
|
2714
|
+
alt: "",
|
|
2715
|
+
"aria-hidden": "true",
|
|
2716
|
+
loading: "lazy",
|
|
2717
|
+
decoding: "async"
|
|
2718
|
+
}
|
|
2719
|
+
) : void 0
|
|
2672
2720
|
}
|
|
2673
2721
|
);
|
|
2674
2722
|
}
|
|
2675
2723
|
return /* @__PURE__ */ jsx28(
|
|
2676
2724
|
"img",
|
|
2677
2725
|
{
|
|
2678
|
-
src
|
|
2726
|
+
src,
|
|
2679
2727
|
alt: item.title,
|
|
2680
|
-
loading: "lazy"
|
|
2728
|
+
loading: "lazy",
|
|
2729
|
+
decoding: "async"
|
|
2681
2730
|
}
|
|
2682
2731
|
);
|
|
2683
2732
|
};
|
|
@@ -2686,10 +2735,16 @@ var FeatureScroll = ({
|
|
|
2686
2735
|
items,
|
|
2687
2736
|
variant = "media-right",
|
|
2688
2737
|
className,
|
|
2738
|
+
// Destructured, not spread: `...props` lands on the <section>, and an
|
|
2739
|
+
// unknown attribute there is a React DOM warning at best.
|
|
2740
|
+
mediaRootMargin,
|
|
2741
|
+
mediaThreshold,
|
|
2689
2742
|
...props
|
|
2690
2743
|
}) => {
|
|
2691
2744
|
const [activeIndex, setActiveIndex] = useState10(0);
|
|
2745
|
+
const [mobileActiveIndex, setMobileActiveIndex] = useState10(0);
|
|
2692
2746
|
const titleRefs = useRef7([]);
|
|
2747
|
+
const mobileItemRefs = useRef7([]);
|
|
2693
2748
|
const mediaColRef = useRef7(null);
|
|
2694
2749
|
useLayoutEffect(() => {
|
|
2695
2750
|
if (items.length === 0) return;
|
|
@@ -2737,6 +2792,40 @@ var FeatureScroll = ({
|
|
|
2737
2792
|
if (rafId !== 0) window.cancelAnimationFrame(rafId);
|
|
2738
2793
|
};
|
|
2739
2794
|
}, [items.length]);
|
|
2795
|
+
useEffect7(() => {
|
|
2796
|
+
if (items.length === 0) return;
|
|
2797
|
+
if (typeof window === "undefined") return;
|
|
2798
|
+
const ratios = /* @__PURE__ */ new Map();
|
|
2799
|
+
const observer = new IntersectionObserver(
|
|
2800
|
+
(entries) => {
|
|
2801
|
+
if (window.matchMedia("(min-width: 992px)").matches) return;
|
|
2802
|
+
for (const entry of entries) {
|
|
2803
|
+
const idx = Number(entry.target.getAttribute("data-fs-mobile-idx"));
|
|
2804
|
+
if (!Number.isFinite(idx)) continue;
|
|
2805
|
+
ratios.set(idx, entry.isIntersecting ? entry.intersectionRatio : 0);
|
|
2806
|
+
}
|
|
2807
|
+
let best = 0;
|
|
2808
|
+
let bestRatio = -1;
|
|
2809
|
+
for (const [idx, ratio] of ratios) {
|
|
2810
|
+
if (ratio > bestRatio) {
|
|
2811
|
+
bestRatio = ratio;
|
|
2812
|
+
best = idx;
|
|
2813
|
+
}
|
|
2814
|
+
}
|
|
2815
|
+
if (bestRatio <= 0) return;
|
|
2816
|
+
setMobileActiveIndex((prev) => prev === best ? prev : best);
|
|
2817
|
+
},
|
|
2818
|
+
{
|
|
2819
|
+
root: null,
|
|
2820
|
+
rootMargin: "-28% 0px -28% 0px",
|
|
2821
|
+
threshold: [0, 0.15, 0.3, 0.5, 0.75, 1]
|
|
2822
|
+
}
|
|
2823
|
+
);
|
|
2824
|
+
for (const el of mobileItemRefs.current) {
|
|
2825
|
+
if (el) observer.observe(el);
|
|
2826
|
+
}
|
|
2827
|
+
return () => observer.disconnect();
|
|
2828
|
+
}, [items.length]);
|
|
2740
2829
|
const rootClass = [
|
|
2741
2830
|
"fs",
|
|
2742
2831
|
`fs--${variant}`,
|
|
@@ -2764,7 +2853,9 @@ var FeatureScroll = ({
|
|
|
2764
2853
|
MediaRenderer,
|
|
2765
2854
|
{
|
|
2766
2855
|
item,
|
|
2767
|
-
active: i === activeIndex
|
|
2856
|
+
active: i === activeIndex,
|
|
2857
|
+
rootMargin: mediaRootMargin,
|
|
2858
|
+
threshold: mediaThreshold
|
|
2768
2859
|
}
|
|
2769
2860
|
)
|
|
2770
2861
|
},
|
|
@@ -2804,22 +2895,41 @@ var FeatureScroll = ({
|
|
|
2804
2895
|
i
|
|
2805
2896
|
)) })
|
|
2806
2897
|
] }),
|
|
2807
|
-
/* @__PURE__ */ jsx28("div", { className: "fs__mobile-list", children: items.map((item, i) => /* @__PURE__ */ jsxs25(
|
|
2808
|
-
|
|
2809
|
-
|
|
2810
|
-
|
|
2811
|
-
|
|
2812
|
-
|
|
2813
|
-
|
|
2814
|
-
|
|
2815
|
-
|
|
2816
|
-
children:
|
|
2817
|
-
|
|
2818
|
-
|
|
2819
|
-
|
|
2820
|
-
|
|
2821
|
-
|
|
2822
|
-
|
|
2898
|
+
/* @__PURE__ */ jsx28("div", { className: "fs__mobile-list", children: items.map((item, i) => /* @__PURE__ */ jsxs25(
|
|
2899
|
+
"div",
|
|
2900
|
+
{
|
|
2901
|
+
className: "fs__mobile-item",
|
|
2902
|
+
"data-fs-mobile-idx": i,
|
|
2903
|
+
ref: (el) => {
|
|
2904
|
+
mobileItemRefs.current[i] = el;
|
|
2905
|
+
},
|
|
2906
|
+
children: [
|
|
2907
|
+
/* @__PURE__ */ jsx28("h3", { className: "fs__item-title", children: item.title }),
|
|
2908
|
+
/* @__PURE__ */ jsx28("div", { className: "fs__mobile-media", children: /* @__PURE__ */ jsx28(
|
|
2909
|
+
MediaRenderer,
|
|
2910
|
+
{
|
|
2911
|
+
item,
|
|
2912
|
+
active: i === mobileActiveIndex,
|
|
2913
|
+
rootMargin: mediaRootMargin,
|
|
2914
|
+
threshold: mediaThreshold
|
|
2915
|
+
}
|
|
2916
|
+
) }),
|
|
2917
|
+
/* @__PURE__ */ jsx28("p", { className: "fs__item-desc", children: item.description }),
|
|
2918
|
+
/* @__PURE__ */ jsxs25(
|
|
2919
|
+
"a",
|
|
2920
|
+
{
|
|
2921
|
+
href: item.link,
|
|
2922
|
+
className: "fs__item-link",
|
|
2923
|
+
children: [
|
|
2924
|
+
/* @__PURE__ */ jsx28("span", { children: item.linkLabel }),
|
|
2925
|
+
/* @__PURE__ */ jsx28(ChevronRight2, {})
|
|
2926
|
+
]
|
|
2927
|
+
}
|
|
2928
|
+
)
|
|
2929
|
+
]
|
|
2930
|
+
},
|
|
2931
|
+
i
|
|
2932
|
+
)) })
|
|
2823
2933
|
] }) });
|
|
2824
2934
|
};
|
|
2825
2935
|
|
|
@@ -2870,7 +2980,7 @@ var FeatureSplit = ({
|
|
|
2870
2980
|
};
|
|
2871
2981
|
|
|
2872
2982
|
// templates/StickyStackedCards/StickyStackedCards.tsx
|
|
2873
|
-
import { useEffect as
|
|
2983
|
+
import { useEffect as useEffect8, useRef as useRef8 } from "react";
|
|
2874
2984
|
import { jsx as jsx30, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
2875
2985
|
var PLACEHOLDER_IMAGE = "https://cdn.prod.website-files.com/68da5c86c91c54f39c86c28a/69b9309379ac08e59ca8210a_1f3f555da9a5cbb13a6fe1bf0d5fe1b6_placeholder-image.webp";
|
|
2876
2986
|
var STEPS_DATA = [
|
|
@@ -2901,7 +3011,7 @@ var StickyStackedCards = ({
|
|
|
2901
3011
|
...props
|
|
2902
3012
|
}) => {
|
|
2903
3013
|
const cardRefs = useRef8([]);
|
|
2904
|
-
|
|
3014
|
+
useEffect8(() => {
|
|
2905
3015
|
if (typeof window === "undefined") return;
|
|
2906
3016
|
let rafId = 0;
|
|
2907
3017
|
const update = () => {
|
|
@@ -3331,7 +3441,7 @@ var CTABanner = ({
|
|
|
3331
3441
|
};
|
|
3332
3442
|
|
|
3333
3443
|
// components/Navbar/Navbar.tsx
|
|
3334
|
-
import { useRef as useRef10, useState as useState11, useEffect as
|
|
3444
|
+
import { useRef as useRef10, useState as useState11, useEffect as useEffect9, useCallback as useCallback2 } from "react";
|
|
3335
3445
|
import { motion as motion2, AnimatePresence } from "framer-motion";
|
|
3336
3446
|
|
|
3337
3447
|
// assets/icon-globe.svg
|
|
@@ -3581,20 +3691,20 @@ var Navbar = ({
|
|
|
3581
3691
|
const langBtnRef = useRef10(null);
|
|
3582
3692
|
const hasLangDropdown = Boolean(languageItems && languageItems.length > 0);
|
|
3583
3693
|
const resolvedLogo = theme === "light" ? logoSrcDark ?? logoSrc : logoSrc;
|
|
3584
|
-
|
|
3694
|
+
useEffect9(() => {
|
|
3585
3695
|
if (process.env.NODE_ENV !== "production" && !logoSrcDark) {
|
|
3586
3696
|
console.warn(
|
|
3587
3697
|
"[Navbar] `logoSrcDark` was not provided. The condensed pill logo (shown once the page is scrolled) falls back to `logoSrc`, which is typically the light-coloured logo \u2014 it will be invisible against the pill's white/near-white scrolled background. Pass `logoSrcDark` to fix this."
|
|
3588
3698
|
);
|
|
3589
3699
|
}
|
|
3590
3700
|
}, [logoSrcDark]);
|
|
3591
|
-
|
|
3701
|
+
useEffect9(() => {
|
|
3592
3702
|
const onScroll = () => setScrolled(window.scrollY > 0);
|
|
3593
3703
|
onScroll();
|
|
3594
3704
|
window.addEventListener("scroll", onScroll, { passive: true });
|
|
3595
3705
|
return () => window.removeEventListener("scroll", onScroll);
|
|
3596
3706
|
}, []);
|
|
3597
|
-
|
|
3707
|
+
useEffect9(() => {
|
|
3598
3708
|
const onKey = (e) => {
|
|
3599
3709
|
if (e.key === "Escape") {
|
|
3600
3710
|
setOpenDropdown(null);
|
|
@@ -3605,16 +3715,16 @@ var Navbar = ({
|
|
|
3605
3715
|
document.addEventListener("keydown", onKey);
|
|
3606
3716
|
return () => document.removeEventListener("keydown", onKey);
|
|
3607
3717
|
}, []);
|
|
3608
|
-
|
|
3718
|
+
useEffect9(() => {
|
|
3609
3719
|
if (!mobileOpen) setMobileLangOpen(false);
|
|
3610
3720
|
}, [mobileOpen]);
|
|
3611
|
-
|
|
3721
|
+
useEffect9(() => {
|
|
3612
3722
|
document.body.style.overflow = mobileOpen ? "hidden" : "";
|
|
3613
3723
|
return () => {
|
|
3614
3724
|
document.body.style.overflow = "";
|
|
3615
3725
|
};
|
|
3616
3726
|
}, [mobileOpen]);
|
|
3617
|
-
|
|
3727
|
+
useEffect9(() => {
|
|
3618
3728
|
if (!openDropdown) return;
|
|
3619
3729
|
const onPointerDown = (e) => {
|
|
3620
3730
|
if (pillAreaRef.current && !pillAreaRef.current.contains(e.target)) {
|
|
@@ -3933,7 +4043,7 @@ var Navbar = ({
|
|
|
3933
4043
|
};
|
|
3934
4044
|
|
|
3935
4045
|
// templates/DayNightTransition/DayNightTransition.tsx
|
|
3936
|
-
import { useEffect as
|
|
4046
|
+
import { useEffect as useEffect10, useLayoutEffect as useLayoutEffect2, useRef as useRef11, useState as useState12 } from "react";
|
|
3937
4047
|
import {
|
|
3938
4048
|
motion as motion3,
|
|
3939
4049
|
useScroll as useScroll2,
|
|
@@ -4054,7 +4164,7 @@ var DayNightTransition = ({
|
|
|
4054
4164
|
const [nightMarginEnd, setNightMarginEnd] = useState12("0px");
|
|
4055
4165
|
const [ixMedia, setIxMedia] = useState12("desktop");
|
|
4056
4166
|
const webflowV2 = scrollPreset === "webflow-day-night-v2";
|
|
4057
|
-
|
|
4167
|
+
useEffect10(() => {
|
|
4058
4168
|
const mq = window.matchMedia("(max-width: 991px)");
|
|
4059
4169
|
const sync = () => setIxMedia(mq.matches ? "mobile" : "desktop");
|
|
4060
4170
|
sync();
|
|
@@ -4707,7 +4817,7 @@ var DownloadBanner = ({
|
|
|
4707
4817
|
};
|
|
4708
4818
|
|
|
4709
4819
|
// templates/TextScroll/TextScroll.tsx
|
|
4710
|
-
import { useEffect as
|
|
4820
|
+
import { useEffect as useEffect11, useRef as useRef13 } from "react";
|
|
4711
4821
|
import { gsap } from "gsap";
|
|
4712
4822
|
import { ScrollTrigger } from "gsap/ScrollTrigger";
|
|
4713
4823
|
import { jsx as jsx38, jsxs as jsxs34 } from "react/jsx-runtime";
|
|
@@ -4716,7 +4826,7 @@ var TextScroll = ({ text, className }) => {
|
|
|
4716
4826
|
const sectionRef = useRef13(null);
|
|
4717
4827
|
const wordsRef = useRef13([]);
|
|
4718
4828
|
const words = text.split(/\s+/).filter(Boolean);
|
|
4719
|
-
|
|
4829
|
+
useEffect11(() => {
|
|
4720
4830
|
const section = sectionRef.current;
|
|
4721
4831
|
const wordEls = wordsRef.current.filter(Boolean);
|
|
4722
4832
|
if (!section || wordEls.length === 0) return;
|
|
@@ -4775,7 +4885,7 @@ var TextScroll = ({ text, className }) => {
|
|
|
4775
4885
|
};
|
|
4776
4886
|
|
|
4777
4887
|
// templates/StickyMarketCards/StickyMarketCards.tsx
|
|
4778
|
-
import { useEffect as
|
|
4888
|
+
import { useEffect as useEffect12, useRef as useRef14 } from "react";
|
|
4779
4889
|
import { jsx as jsx39, jsxs as jsxs35 } from "react/jsx-runtime";
|
|
4780
4890
|
var PLACEHOLDER_IMAGE3 = "https://cdn.prod.website-files.com/68da5c86c91c54f39c86c28a/69b9309379ac08e59ca8210a_1f3f555da9a5cbb13a6fe1bf0d5fe1b6_placeholder-image.webp";
|
|
4781
4891
|
var StickyMarketCards = ({
|
|
@@ -4787,7 +4897,7 @@ var StickyMarketCards = ({
|
|
|
4787
4897
|
}) => {
|
|
4788
4898
|
const cardRefs = useRef14([]);
|
|
4789
4899
|
const cardInnerRefs = useRef14([]);
|
|
4790
|
-
|
|
4900
|
+
useEffect12(() => {
|
|
4791
4901
|
if (typeof window === "undefined") return;
|
|
4792
4902
|
let rafId = 0;
|
|
4793
4903
|
const update = () => {
|
|
@@ -4828,7 +4938,7 @@ var StickyMarketCards = ({
|
|
|
4828
4938
|
cancelAnimationFrame(rafId);
|
|
4829
4939
|
};
|
|
4830
4940
|
}, [items.length]);
|
|
4831
|
-
|
|
4941
|
+
useEffect12(() => {
|
|
4832
4942
|
if (typeof window === "undefined") return;
|
|
4833
4943
|
const syncHeights = () => {
|
|
4834
4944
|
const inners = cardInnerRefs.current.filter(Boolean);
|
|
@@ -5398,7 +5508,7 @@ var ImageBanner = ({
|
|
|
5398
5508
|
};
|
|
5399
5509
|
|
|
5400
5510
|
// templates/Testimonial/Testimonial.tsx
|
|
5401
|
-
import { useCallback as useCallback3, useEffect as
|
|
5511
|
+
import { useCallback as useCallback3, useEffect as useEffect13, useId as useId2, useRef as useRef15, useState as useState15 } from "react";
|
|
5402
5512
|
|
|
5403
5513
|
// assets/quote-left.webp
|
|
5404
5514
|
var quote_left_default = "data:image/webp;base64,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";
|
|
@@ -5484,7 +5594,7 @@ var TrustpilotTestimonial = ({
|
|
|
5484
5594
|
setCanPrev(next.canPrev);
|
|
5485
5595
|
setCanNext(next.canNext);
|
|
5486
5596
|
}, []);
|
|
5487
|
-
|
|
5597
|
+
useEffect13(() => {
|
|
5488
5598
|
const el = trackRef.current;
|
|
5489
5599
|
if (!el) return;
|
|
5490
5600
|
syncScrollState();
|
|
@@ -5597,7 +5707,7 @@ var DefaultTestimonial = ({
|
|
|
5597
5707
|
pendingIndex.current = next;
|
|
5598
5708
|
setPhase("exiting");
|
|
5599
5709
|
};
|
|
5600
|
-
|
|
5710
|
+
useEffect13(() => {
|
|
5601
5711
|
if (phase === "exiting") {
|
|
5602
5712
|
const t = setTimeout(() => {
|
|
5603
5713
|
setActiveIndex(pendingIndex.current ?? activeIndex);
|
|
@@ -5606,7 +5716,7 @@ var DefaultTestimonial = ({
|
|
|
5606
5716
|
return () => clearTimeout(t);
|
|
5607
5717
|
}
|
|
5608
5718
|
}, [phase, activeIndex]);
|
|
5609
|
-
|
|
5719
|
+
useEffect13(() => {
|
|
5610
5720
|
if (items.length <= 1) return;
|
|
5611
5721
|
autoRef.current = setTimeout(() => {
|
|
5612
5722
|
const next = (activeIndex + 1) % items.length;
|
|
@@ -5981,7 +6091,7 @@ var ArticleSection = ({
|
|
|
5981
6091
|
};
|
|
5982
6092
|
|
|
5983
6093
|
// templates/CoralBanner/CoralBanner.tsx
|
|
5984
|
-
import { useCallback as useCallback4, useEffect as
|
|
6094
|
+
import { useCallback as useCallback4, useEffect as useEffect14, useRef as useRef16, useState as useState16 } from "react";
|
|
5985
6095
|
import { jsx as jsx47, jsxs as jsxs43 } from "react/jsx-runtime";
|
|
5986
6096
|
var DEFAULT_SLIDES = [
|
|
5987
6097
|
{
|
|
@@ -6111,7 +6221,7 @@ var CoralBanner = ({
|
|
|
6111
6221
|
const resetAutoplay = () => {
|
|
6112
6222
|
if (autoplayTimer.current) clearTimeout(autoplayTimer.current);
|
|
6113
6223
|
};
|
|
6114
|
-
|
|
6224
|
+
useEffect14(() => {
|
|
6115
6225
|
if (!isCarousel || !autoplay) return;
|
|
6116
6226
|
autoplayTimer.current = setTimeout(() => {
|
|
6117
6227
|
goTo(activeIndex + 1);
|
|
@@ -6743,7 +6853,7 @@ var HelpCenterPage = ({
|
|
|
6743
6853
|
};
|
|
6744
6854
|
|
|
6745
6855
|
// templates/FeatureBlogPage/FeatureBlogPage.tsx
|
|
6746
|
-
import { useEffect as
|
|
6856
|
+
import { useEffect as useEffect15, useMemo as useMemo6, useState as useState20 } from "react";
|
|
6747
6857
|
|
|
6748
6858
|
// assets/share-link.png
|
|
6749
6859
|
var share_link_default = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAABYklEQVR4AezVgU3DMBAFUMRAzMEQzMEQzMEQzMFE+FX5kuNGF4cgIVWp8us73/n/76vaPj/98+sycE3gmsBDTuCl/bQELayfv5zAW5P6avgYwEzb2n7OGBiJGYjK9xLoYWhJ75ffGCCUm2bF/N7e4HVZxS28Pc7cgvHtiAG3ITiSZd+tIRrizyXRs4TrZdYAgowyxG4IcqyjMXupOS+/w4wBh3txoojsqUVky0D20uPcCnsGCBByCEnEe2JjVtOj3wpiEKcuXmHPwJZ4SBEhloM8kPdnmUxttVYGeoLcfHV4SJiBUbw8WxkI/+ieSGo+CoL29IkPGa8MIIvQuBKz1xvQf0gcQWXArfQgtvZgoK8zAnrUyrFrCmYMIAZnmBEDEWAECAd6p1AZ6MkI+hU0YjEQIMwE9P1qU6gMIAgpITlkT3waewYIEHRDfzIgB7XTmDFwWqQiuAxcE3j8CVTfALUfAAAA//85/ClxAAAABklEQVQDABFpTkF24Li2AAAAAElFTkSuQmCC";
|
|
@@ -6953,7 +7063,7 @@ var FeatureBlogPage = ({
|
|
|
6953
7063
|
[content, headingIds]
|
|
6954
7064
|
);
|
|
6955
7065
|
const [activeId, setActiveId] = useState20(null);
|
|
6956
|
-
|
|
7066
|
+
useEffect15(() => {
|
|
6957
7067
|
if (typeof IntersectionObserver === "undefined" || headings.length === 0) return;
|
|
6958
7068
|
const elements = headings.map((heading) => document.getElementById(heading.id)).filter((el) => el !== null);
|
|
6959
7069
|
if (elements.length === 0) return;
|
|
@@ -7167,7 +7277,7 @@ var ParallaxBanner = ({
|
|
|
7167
7277
|
};
|
|
7168
7278
|
|
|
7169
7279
|
// templates/TradingCalculator/TradingCalculator.tsx
|
|
7170
|
-
import { useCallback as useCallback5, useEffect as
|
|
7280
|
+
import { useCallback as useCallback5, useEffect as useEffect16, useId as useId3, useMemo as useMemo7, useRef as useRef18, useState as useState21 } from "react";
|
|
7171
7281
|
import { Fragment as Fragment10, jsx as jsx56, jsxs as jsxs52 } from "react/jsx-runtime";
|
|
7172
7282
|
var DEFAULT_SYMBOLS_ENDPOINT = "https://deriv-static-pricingfeedv2.firebaseio.com/n8n/row/prod/dynamic_trading_specs.json";
|
|
7173
7283
|
var DEFAULT_EXCHANGE_RATE_WS_URL = "wss://ws.derivws.com/websockets/v3?app_id=1089";
|
|
@@ -7210,7 +7320,7 @@ function useExchangeRates(wsUrl) {
|
|
|
7210
7320
|
/* @__PURE__ */ new Map()
|
|
7211
7321
|
);
|
|
7212
7322
|
const cacheRef = useRef18(/* @__PURE__ */ new Map());
|
|
7213
|
-
|
|
7323
|
+
useEffect16(() => {
|
|
7214
7324
|
const pending = pendingRef.current;
|
|
7215
7325
|
return () => {
|
|
7216
7326
|
socketRef.current?.close();
|
|
@@ -7285,7 +7395,7 @@ function useSymbols(symbolsProp, endpoint) {
|
|
|
7285
7395
|
symbolsProp ? { status: "ready", data: symbolsProp } : { status: "loading" }
|
|
7286
7396
|
);
|
|
7287
7397
|
const [retryToken, setRetryToken] = useState21(0);
|
|
7288
|
-
|
|
7398
|
+
useEffect16(() => {
|
|
7289
7399
|
if (symbolsProp) {
|
|
7290
7400
|
setState({ status: "ready", data: symbolsProp });
|
|
7291
7401
|
return;
|
|
@@ -7346,7 +7456,7 @@ var SymbolCombobox = ({ symbolsState, onRetry, selected, onSelect, error, inputI
|
|
|
7346
7456
|
}, [allSymbols, query]);
|
|
7347
7457
|
const grouped = useMemo7(() => groupByAssetClass(filtered), [filtered]);
|
|
7348
7458
|
const flatOptions = useMemo7(() => grouped.flatMap(([, items]) => items), [grouped]);
|
|
7349
|
-
|
|
7459
|
+
useEffect16(() => {
|
|
7350
7460
|
if (!isOpen) return;
|
|
7351
7461
|
const handlePointerDown = (event) => {
|
|
7352
7462
|
if (wrapperRef.current && !wrapperRef.current.contains(event.target)) {
|
|
@@ -7496,7 +7606,7 @@ var TradingCalculator = ({
|
|
|
7496
7606
|
const [isCalculating, setIsCalculating] = useState21(false);
|
|
7497
7607
|
const [calcError, setCalcError] = useState21(null);
|
|
7498
7608
|
const didPreselect = useRef18(false);
|
|
7499
|
-
|
|
7609
|
+
useEffect16(() => {
|
|
7500
7610
|
if (didPreselect.current || !defaultSymbol || symbolsState.status !== "ready") return;
|
|
7501
7611
|
const match = symbolsState.data.find((item) => item.symbol === defaultSymbol);
|
|
7502
7612
|
if (match) {
|
|
@@ -7700,7 +7810,7 @@ var TradingCalculator = ({
|
|
|
7700
7810
|
};
|
|
7701
7811
|
|
|
7702
7812
|
// templates/TradingCalculatorHowTo/TradingCalculatorHowTo.tsx
|
|
7703
|
-
import { Fragment as Fragment11, useEffect as
|
|
7813
|
+
import { Fragment as Fragment11, useEffect as useEffect17, useLayoutEffect as useLayoutEffect3, useRef as useRef19, useState as useState22 } from "react";
|
|
7704
7814
|
import { Fragment as Fragment12, jsx as jsx57, jsxs as jsxs53 } from "react/jsx-runtime";
|
|
7705
7815
|
var MARGIN_CONTENT = {
|
|
7706
7816
|
title: "How to calculate margin requirements",
|
|
@@ -7851,7 +7961,7 @@ var SWAP_TABS = [
|
|
|
7851
7961
|
{ id: "percentage", label: "Swap calculation (In percentage)" }
|
|
7852
7962
|
];
|
|
7853
7963
|
var swapModeForVariant = (variant) => variant === "swap-percentage" ? "percentage" : "points";
|
|
7854
|
-
var useIsomorphicLayoutEffect = typeof window !== "undefined" ? useLayoutEffect3 :
|
|
7964
|
+
var useIsomorphicLayoutEffect = typeof window !== "undefined" ? useLayoutEffect3 : useEffect17;
|
|
7855
7965
|
var FormulaBlockView = ({ block }) => {
|
|
7856
7966
|
if (block.type === "footnote") {
|
|
7857
7967
|
return /* @__PURE__ */ jsx57("p", { className: "tchow-footnote", children: block.content });
|
|
@@ -7958,7 +8068,7 @@ var TradingCalculatorHowTo = ({
|
|
|
7958
8068
|
}) => {
|
|
7959
8069
|
const isSwap = variant === "swap-points" || variant === "swap-percentage";
|
|
7960
8070
|
const [swapTab, setSwapTab] = useState22(() => swapModeForVariant(variant));
|
|
7961
|
-
|
|
8071
|
+
useEffect17(() => {
|
|
7962
8072
|
setSwapTab(swapModeForVariant(variant));
|
|
7963
8073
|
}, [variant]);
|
|
7964
8074
|
const content = variant === "pip" ? PIP_CONTENT : isSwap ? swapTab === "percentage" ? SWAP_PERCENTAGE_CONTENT : SWAP_POINTS_CONTENT : MARGIN_CONTENT;
|
|
@@ -8251,6 +8361,66 @@ var MasterPartner = ({
|
|
|
8251
8361
|
] }, index)) })
|
|
8252
8362
|
] }) });
|
|
8253
8363
|
};
|
|
8364
|
+
|
|
8365
|
+
// templates/ResourceBanner/ResourceBanner.tsx
|
|
8366
|
+
import { jsx as jsx62, jsxs as jsxs58 } from "react/jsx-runtime";
|
|
8367
|
+
var DEFAULT_LINKS = [{ label: "Learn more", href: "#" }];
|
|
8368
|
+
var RESOURCE_BANNER_DERIV_CONTENT = {
|
|
8369
|
+
title: "Learn more about staying safe",
|
|
8370
|
+
description: "Read our guide on secure and responsible trading for more on protecting your account.",
|
|
8371
|
+
links: [
|
|
8372
|
+
{
|
|
8373
|
+
id: "responsible",
|
|
8374
|
+
label: "Secure and responsible trading",
|
|
8375
|
+
href: "/responsible",
|
|
8376
|
+
external: true
|
|
8377
|
+
}
|
|
8378
|
+
]
|
|
8379
|
+
};
|
|
8380
|
+
var ExternalLinkIcon2 = () => /* @__PURE__ */ jsx62("svg", { viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", focusable: "false", children: /* @__PURE__ */ jsx62(
|
|
8381
|
+
"path",
|
|
8382
|
+
{
|
|
8383
|
+
d: "M4.5 11.5 11.5 4.5M5.5 4.5h6v6",
|
|
8384
|
+
stroke: "currentColor",
|
|
8385
|
+
strokeWidth: "1.75",
|
|
8386
|
+
strokeLinecap: "round",
|
|
8387
|
+
strokeLinejoin: "round"
|
|
8388
|
+
}
|
|
8389
|
+
) });
|
|
8390
|
+
var ResourceBanner = ({
|
|
8391
|
+
title = "Section title goes here",
|
|
8392
|
+
description = "Explain how this specific feature helps your user.",
|
|
8393
|
+
links,
|
|
8394
|
+
headingLevel: HeadingTag = "h2",
|
|
8395
|
+
className,
|
|
8396
|
+
...props
|
|
8397
|
+
}) => {
|
|
8398
|
+
const resolvedLinks = links && links.length > 0 ? links : DEFAULT_LINKS;
|
|
8399
|
+
const rootClass = ["rsb", className].filter(Boolean).join(" ");
|
|
8400
|
+
return /* @__PURE__ */ jsx62("section", { className: rootClass, ...props, children: /* @__PURE__ */ jsx62("div", { className: "rsb__inner", children: /* @__PURE__ */ jsx62("div", { className: "rsb__card", children: /* @__PURE__ */ jsxs58("div", { className: "rsb__grid", children: [
|
|
8401
|
+
/* @__PURE__ */ jsxs58("div", { className: "rsb__content", children: [
|
|
8402
|
+
/* @__PURE__ */ jsx62(HeadingTag, { className: "rsb__title", children: title }),
|
|
8403
|
+
description && /* @__PURE__ */ jsx62("p", { className: "rsb__description", children: description })
|
|
8404
|
+
] }),
|
|
8405
|
+
/* @__PURE__ */ jsx62("ul", { className: "rsb__links", children: resolvedLinks.map((link, i) => {
|
|
8406
|
+
const isExternal = link.external ?? true;
|
|
8407
|
+
return /* @__PURE__ */ jsx62("li", { className: "rsb__links-item", children: /* @__PURE__ */ jsx62(
|
|
8408
|
+
Link,
|
|
8409
|
+
{
|
|
8410
|
+
className: "rsb__link",
|
|
8411
|
+
colorScheme: "white",
|
|
8412
|
+
href: link.href,
|
|
8413
|
+
label: link.label,
|
|
8414
|
+
icon: isExternal ? /* @__PURE__ */ jsx62(ExternalLinkIcon2, {}) : void 0,
|
|
8415
|
+
iconPosition: "right",
|
|
8416
|
+
showChevron: !isExternal,
|
|
8417
|
+
target: isExternal ? "_blank" : void 0,
|
|
8418
|
+
rel: isExternal ? "noopener noreferrer" : void 0
|
|
8419
|
+
}
|
|
8420
|
+
) }, link.id ?? i);
|
|
8421
|
+
}) })
|
|
8422
|
+
] }) }) }) });
|
|
8423
|
+
};
|
|
8254
8424
|
export {
|
|
8255
8425
|
AVATAR_DATA,
|
|
8256
8426
|
Accordion,
|
|
@@ -8311,6 +8481,8 @@ export {
|
|
|
8311
8481
|
ParallaxBanner,
|
|
8312
8482
|
PartnersPayout,
|
|
8313
8483
|
PeopleGrid,
|
|
8484
|
+
RESOURCE_BANNER_DERIV_CONTENT,
|
|
8485
|
+
ResourceBanner,
|
|
8314
8486
|
STEPS_DATA,
|
|
8315
8487
|
SearchField,
|
|
8316
8488
|
Stats,
|