@deriv-web-design/ui 0.0.24 → 0.0.25
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/index.js +89 -82
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +33 -26
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1094,18 +1094,25 @@ var Tabs = ({
|
|
|
1094
1094
|
};
|
|
1095
1095
|
|
|
1096
1096
|
// templates/FaqAccordion/FaqAccordion.tsx
|
|
1097
|
+
var import_react7 = require("react");
|
|
1097
1098
|
var import_jsx_runtime17 = require("react/jsx-runtime");
|
|
1098
1099
|
var FaqAccordion = ({
|
|
1099
1100
|
title,
|
|
1100
1101
|
items,
|
|
1101
1102
|
colorScheme = "white"
|
|
1102
1103
|
}) => {
|
|
1104
|
+
const [openIndex, setOpenIndex] = (0, import_react7.useState)(null);
|
|
1105
|
+
const handleToggle = (index) => (isOpen) => {
|
|
1106
|
+
setOpenIndex(isOpen ? index : null);
|
|
1107
|
+
};
|
|
1103
1108
|
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("section", { className: ["faq-accordion", `faq-accordion--${colorScheme}`].join(" "), children: /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: "faq-accordion__container", children: [
|
|
1104
1109
|
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: "faq-accordion__header", children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("h2", { className: "faq-accordion__title", children: title }) }),
|
|
1105
1110
|
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: "faq-accordion__list", children: items.map((item, index) => /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
1106
1111
|
Accordion,
|
|
1107
1112
|
{
|
|
1108
1113
|
title: item.question,
|
|
1114
|
+
open: openIndex === index,
|
|
1115
|
+
onToggle: handleToggle(index),
|
|
1109
1116
|
showTopDivider: index === 0,
|
|
1110
1117
|
showBottomDivider: true,
|
|
1111
1118
|
children: item.answer
|
|
@@ -1371,7 +1378,7 @@ var FeatureBullets = ({
|
|
|
1371
1378
|
};
|
|
1372
1379
|
|
|
1373
1380
|
// components/Footer/Footer.tsx
|
|
1374
|
-
var
|
|
1381
|
+
var import_react8 = require("react");
|
|
1375
1382
|
var import_jsx_runtime21 = require("react/jsx-runtime");
|
|
1376
1383
|
var ExternalLinkIcon = () => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
1377
1384
|
"svg",
|
|
@@ -1486,7 +1493,7 @@ var Footer = ({
|
|
|
1486
1493
|
...props
|
|
1487
1494
|
}) => {
|
|
1488
1495
|
const allSections = navColumns.flat();
|
|
1489
|
-
const [openSections, setOpenSections] = (0,
|
|
1496
|
+
const [openSections, setOpenSections] = (0, import_react8.useState)(/* @__PURE__ */ new Set());
|
|
1490
1497
|
const toggleSection = (index) => {
|
|
1491
1498
|
setOpenSections((prev) => {
|
|
1492
1499
|
const next = new Set(prev);
|
|
@@ -1851,7 +1858,7 @@ var Hero = ({
|
|
|
1851
1858
|
};
|
|
1852
1859
|
|
|
1853
1860
|
// templates/Header/Header.tsx
|
|
1854
|
-
var
|
|
1861
|
+
var import_react9 = require("react");
|
|
1855
1862
|
var import_jsx_runtime23 = require("react/jsx-runtime");
|
|
1856
1863
|
var ButtonBlock2 = ({
|
|
1857
1864
|
primaryButton,
|
|
@@ -1908,10 +1915,10 @@ var Header = ({
|
|
|
1908
1915
|
...props
|
|
1909
1916
|
}) => {
|
|
1910
1917
|
const variantClass = `header--${variant}`;
|
|
1911
|
-
const sectionRef = (0,
|
|
1912
|
-
const leftRef = (0,
|
|
1913
|
-
const rightRef = (0,
|
|
1914
|
-
(0,
|
|
1918
|
+
const sectionRef = (0, import_react9.useRef)(null);
|
|
1919
|
+
const leftRef = (0, import_react9.useRef)(null);
|
|
1920
|
+
const rightRef = (0, import_react9.useRef)(null);
|
|
1921
|
+
(0, import_react9.useEffect)(() => {
|
|
1915
1922
|
if (variant !== "visuals") return;
|
|
1916
1923
|
if (window.matchMedia("(prefers-reduced-motion: reduce)").matches) return;
|
|
1917
1924
|
const section = sectionRef.current;
|
|
@@ -1973,7 +1980,7 @@ var Header = ({
|
|
|
1973
1980
|
};
|
|
1974
1981
|
|
|
1975
1982
|
// templates/Stats/Stats.tsx
|
|
1976
|
-
var
|
|
1983
|
+
var import_react10 = require("react");
|
|
1977
1984
|
var import_jsx_runtime24 = require("react/jsx-runtime");
|
|
1978
1985
|
var INTERVAL_MS = 2e3;
|
|
1979
1986
|
var TRANSITION = "transform 0.8s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1)";
|
|
@@ -2011,16 +2018,16 @@ var Stats = ({
|
|
|
2011
2018
|
className,
|
|
2012
2019
|
...props
|
|
2013
2020
|
}) => {
|
|
2014
|
-
const [activeIndex, setActiveIndex] = (0,
|
|
2015
|
-
const intervalRef = (0,
|
|
2016
|
-
const sectionRef = (0,
|
|
2017
|
-
const leftColRef = (0,
|
|
2018
|
-
const rightColRef = (0,
|
|
2019
|
-
const rafRef = (0,
|
|
2021
|
+
const [activeIndex, setActiveIndex] = (0, import_react10.useState)(0);
|
|
2022
|
+
const intervalRef = (0, import_react10.useRef)(null);
|
|
2023
|
+
const sectionRef = (0, import_react10.useRef)(null);
|
|
2024
|
+
const leftColRef = (0, import_react10.useRef)(null);
|
|
2025
|
+
const rightColRef = (0, import_react10.useRef)(null);
|
|
2026
|
+
const rafRef = (0, import_react10.useRef)(null);
|
|
2020
2027
|
const hasAwards = leftAwards.length > 0 || rightAwards.length > 0;
|
|
2021
2028
|
const allAwards = [...leftAwards, ...rightAwards];
|
|
2022
2029
|
const total = stats.length;
|
|
2023
|
-
(0,
|
|
2030
|
+
(0, import_react10.useEffect)(() => {
|
|
2024
2031
|
if (total <= 1) return;
|
|
2025
2032
|
intervalRef.current = setInterval(() => {
|
|
2026
2033
|
setActiveIndex((prev) => (prev + 1) % total);
|
|
@@ -2029,7 +2036,7 @@ var Stats = ({
|
|
|
2029
2036
|
if (intervalRef.current) clearInterval(intervalRef.current);
|
|
2030
2037
|
};
|
|
2031
2038
|
}, [total]);
|
|
2032
|
-
(0,
|
|
2039
|
+
(0, import_react10.useEffect)(() => {
|
|
2033
2040
|
const applyParallax = () => {
|
|
2034
2041
|
const section = sectionRef.current;
|
|
2035
2042
|
if (!section || window.innerWidth < PARALLAX_BP) {
|
|
@@ -2104,10 +2111,10 @@ var Stats = ({
|
|
|
2104
2111
|
};
|
|
2105
2112
|
|
|
2106
2113
|
// templates/FeatureScroll/FeatureScroll.tsx
|
|
2107
|
-
var
|
|
2114
|
+
var import_react12 = require("react");
|
|
2108
2115
|
|
|
2109
2116
|
// components/DotLottieInView/DotLottieInView.tsx
|
|
2110
|
-
var
|
|
2117
|
+
var import_react11 = require("react");
|
|
2111
2118
|
var import_dotlottie_react = require("@lottiefiles/dotlottie-react");
|
|
2112
2119
|
var import_jsx_runtime25 = require("react/jsx-runtime");
|
|
2113
2120
|
function DotLottieInView({
|
|
@@ -2118,10 +2125,10 @@ function DotLottieInView({
|
|
|
2118
2125
|
style,
|
|
2119
2126
|
...dotProps
|
|
2120
2127
|
}) {
|
|
2121
|
-
const wrapRef = (0,
|
|
2122
|
-
const [inView, setInView] = (0,
|
|
2123
|
-
const [dotLottie, setDotLottie] = (0,
|
|
2124
|
-
(0,
|
|
2128
|
+
const wrapRef = (0, import_react11.useRef)(null);
|
|
2129
|
+
const [inView, setInView] = (0, import_react11.useState)(false);
|
|
2130
|
+
const [dotLottie, setDotLottie] = (0, import_react11.useState)(null);
|
|
2131
|
+
(0, import_react11.useEffect)(() => {
|
|
2125
2132
|
const el = wrapRef.current;
|
|
2126
2133
|
if (!el) return;
|
|
2127
2134
|
const observer = new IntersectionObserver(
|
|
@@ -2133,7 +2140,7 @@ function DotLottieInView({
|
|
|
2133
2140
|
observer.observe(el);
|
|
2134
2141
|
return () => observer.disconnect();
|
|
2135
2142
|
}, [rootMargin, threshold]);
|
|
2136
|
-
(0,
|
|
2143
|
+
(0, import_react11.useEffect)(() => {
|
|
2137
2144
|
if (!dotLottie) return;
|
|
2138
2145
|
if (!enabled || !inView) {
|
|
2139
2146
|
dotLottie.stop();
|
|
@@ -2267,10 +2274,10 @@ var FeatureScroll = ({
|
|
|
2267
2274
|
className,
|
|
2268
2275
|
...props
|
|
2269
2276
|
}) => {
|
|
2270
|
-
const [activeIndex, setActiveIndex] = (0,
|
|
2271
|
-
const titleRefs = (0,
|
|
2272
|
-
const mediaColRef = (0,
|
|
2273
|
-
(0,
|
|
2277
|
+
const [activeIndex, setActiveIndex] = (0, import_react12.useState)(0);
|
|
2278
|
+
const titleRefs = (0, import_react12.useRef)([]);
|
|
2279
|
+
const mediaColRef = (0, import_react12.useRef)(null);
|
|
2280
|
+
(0, import_react12.useLayoutEffect)(() => {
|
|
2274
2281
|
if (items.length === 0) return;
|
|
2275
2282
|
const readThresholdPx = () => {
|
|
2276
2283
|
const col = mediaColRef.current;
|
|
@@ -2403,7 +2410,7 @@ var FeatureScroll = ({
|
|
|
2403
2410
|
};
|
|
2404
2411
|
|
|
2405
2412
|
// templates/StickyStackedCards/StickyStackedCards.tsx
|
|
2406
|
-
var
|
|
2413
|
+
var import_react13 = require("react");
|
|
2407
2414
|
var import_jsx_runtime27 = require("react/jsx-runtime");
|
|
2408
2415
|
var PLACEHOLDER_IMAGE = "https://cdn.prod.website-files.com/68da5c86c91c54f39c86c28a/69b9309379ac08e59ca8210a_1f3f555da9a5cbb13a6fe1bf0d5fe1b6_placeholder-image.webp";
|
|
2409
2416
|
var STEPS_DATA = [
|
|
@@ -2433,8 +2440,8 @@ var StickyStackedCards = ({
|
|
|
2433
2440
|
className,
|
|
2434
2441
|
...props
|
|
2435
2442
|
}) => {
|
|
2436
|
-
const cardRefs = (0,
|
|
2437
|
-
(0,
|
|
2443
|
+
const cardRefs = (0, import_react13.useRef)([]);
|
|
2444
|
+
(0, import_react13.useEffect)(() => {
|
|
2438
2445
|
if (typeof window === "undefined") return;
|
|
2439
2446
|
let rafId = 0;
|
|
2440
2447
|
const update = () => {
|
|
@@ -2523,7 +2530,7 @@ var StickyStackedCards = ({
|
|
|
2523
2530
|
};
|
|
2524
2531
|
|
|
2525
2532
|
// templates/CTABanner/CTABanner.tsx
|
|
2526
|
-
var
|
|
2533
|
+
var import_react14 = require("react");
|
|
2527
2534
|
var import_framer_motion = require("framer-motion");
|
|
2528
2535
|
var import_jsx_runtime28 = require("react/jsx-runtime");
|
|
2529
2536
|
var ENTRANCE = {
|
|
@@ -2771,7 +2778,7 @@ var CTABanner = ({
|
|
|
2771
2778
|
...props
|
|
2772
2779
|
}) => {
|
|
2773
2780
|
const resolvedAvatars = avatars ?? (variant === "compact" ? COMPACT_AVATAR_DATA : AVATAR_DATA);
|
|
2774
|
-
const sectionRef = (0,
|
|
2781
|
+
const sectionRef = (0, import_react14.useRef)(null);
|
|
2775
2782
|
const { scrollYProgress } = (0, import_framer_motion.useScroll)({
|
|
2776
2783
|
target: sectionRef,
|
|
2777
2784
|
offset: ["start end", "end start"]
|
|
@@ -2858,7 +2865,7 @@ var CTABanner = ({
|
|
|
2858
2865
|
};
|
|
2859
2866
|
|
|
2860
2867
|
// components/Navbar/Navbar.tsx
|
|
2861
|
-
var
|
|
2868
|
+
var import_react15 = require("react");
|
|
2862
2869
|
var import_framer_motion2 = require("framer-motion");
|
|
2863
2870
|
|
|
2864
2871
|
// assets/icon-globe.svg
|
|
@@ -3096,24 +3103,24 @@ var Navbar = ({
|
|
|
3096
3103
|
className,
|
|
3097
3104
|
...props
|
|
3098
3105
|
}) => {
|
|
3099
|
-
const [openDropdown, setOpenDropdown] = (0,
|
|
3100
|
-
const [mobileOpen, setMobileOpen] = (0,
|
|
3101
|
-
const [mobileExpanded, setMobileExpanded] = (0,
|
|
3102
|
-
const [scrolled, setScrolled] = (0,
|
|
3103
|
-
const [langDropdownOpen, setLangDropdownOpen] = (0,
|
|
3104
|
-
const [mobileLangOpen, setMobileLangOpen] = (0,
|
|
3105
|
-
const hoverTimeoutRef = (0,
|
|
3106
|
-
const langHoverTimeoutRef = (0,
|
|
3107
|
-
const pillAreaRef = (0,
|
|
3108
|
-
const langBtnRef = (0,
|
|
3106
|
+
const [openDropdown, setOpenDropdown] = (0, import_react15.useState)(null);
|
|
3107
|
+
const [mobileOpen, setMobileOpen] = (0, import_react15.useState)(false);
|
|
3108
|
+
const [mobileExpanded, setMobileExpanded] = (0, import_react15.useState)(null);
|
|
3109
|
+
const [scrolled, setScrolled] = (0, import_react15.useState)(false);
|
|
3110
|
+
const [langDropdownOpen, setLangDropdownOpen] = (0, import_react15.useState)(false);
|
|
3111
|
+
const [mobileLangOpen, setMobileLangOpen] = (0, import_react15.useState)(false);
|
|
3112
|
+
const hoverTimeoutRef = (0, import_react15.useRef)(null);
|
|
3113
|
+
const langHoverTimeoutRef = (0, import_react15.useRef)(null);
|
|
3114
|
+
const pillAreaRef = (0, import_react15.useRef)(null);
|
|
3115
|
+
const langBtnRef = (0, import_react15.useRef)(null);
|
|
3109
3116
|
const hasLangDropdown = Boolean(languageItems && languageItems.length > 0);
|
|
3110
3117
|
const resolvedLogo = theme === "light" ? logoSrcDark ?? logoSrc : logoSrc;
|
|
3111
|
-
(0,
|
|
3118
|
+
(0, import_react15.useEffect)(() => {
|
|
3112
3119
|
const onScroll = () => setScrolled(window.scrollY > 0);
|
|
3113
3120
|
window.addEventListener("scroll", onScroll, { passive: true });
|
|
3114
3121
|
return () => window.removeEventListener("scroll", onScroll);
|
|
3115
3122
|
}, []);
|
|
3116
|
-
(0,
|
|
3123
|
+
(0, import_react15.useEffect)(() => {
|
|
3117
3124
|
const onKey = (e) => {
|
|
3118
3125
|
if (e.key === "Escape") {
|
|
3119
3126
|
setOpenDropdown(null);
|
|
@@ -3124,16 +3131,16 @@ var Navbar = ({
|
|
|
3124
3131
|
document.addEventListener("keydown", onKey);
|
|
3125
3132
|
return () => document.removeEventListener("keydown", onKey);
|
|
3126
3133
|
}, []);
|
|
3127
|
-
(0,
|
|
3134
|
+
(0, import_react15.useEffect)(() => {
|
|
3128
3135
|
if (!mobileOpen) setMobileLangOpen(false);
|
|
3129
3136
|
}, [mobileOpen]);
|
|
3130
|
-
(0,
|
|
3137
|
+
(0, import_react15.useEffect)(() => {
|
|
3131
3138
|
document.body.style.overflow = mobileOpen ? "hidden" : "";
|
|
3132
3139
|
return () => {
|
|
3133
3140
|
document.body.style.overflow = "";
|
|
3134
3141
|
};
|
|
3135
3142
|
}, [mobileOpen]);
|
|
3136
|
-
(0,
|
|
3143
|
+
(0, import_react15.useEffect)(() => {
|
|
3137
3144
|
if (!openDropdown) return;
|
|
3138
3145
|
const onPointerDown = (e) => {
|
|
3139
3146
|
if (pillAreaRef.current && !pillAreaRef.current.contains(e.target)) {
|
|
@@ -3143,36 +3150,36 @@ var Navbar = ({
|
|
|
3143
3150
|
document.addEventListener("pointerdown", onPointerDown);
|
|
3144
3151
|
return () => document.removeEventListener("pointerdown", onPointerDown);
|
|
3145
3152
|
}, [openDropdown]);
|
|
3146
|
-
const clearHoverTimeout = (0,
|
|
3153
|
+
const clearHoverTimeout = (0, import_react15.useCallback)(() => {
|
|
3147
3154
|
if (hoverTimeoutRef.current) {
|
|
3148
3155
|
clearTimeout(hoverTimeoutRef.current);
|
|
3149
3156
|
hoverTimeoutRef.current = null;
|
|
3150
3157
|
}
|
|
3151
3158
|
}, []);
|
|
3152
|
-
const clearLangHoverTimeout = (0,
|
|
3159
|
+
const clearLangHoverTimeout = (0, import_react15.useCallback)(() => {
|
|
3153
3160
|
if (langHoverTimeoutRef.current) {
|
|
3154
3161
|
clearTimeout(langHoverTimeoutRef.current);
|
|
3155
3162
|
langHoverTimeoutRef.current = null;
|
|
3156
3163
|
}
|
|
3157
3164
|
}, []);
|
|
3158
|
-
const handleLangEnter = (0,
|
|
3165
|
+
const handleLangEnter = (0, import_react15.useCallback)(() => {
|
|
3159
3166
|
clearLangHoverTimeout();
|
|
3160
3167
|
setLangDropdownOpen(true);
|
|
3161
3168
|
}, [clearLangHoverTimeout]);
|
|
3162
|
-
const handleLangLeave = (0,
|
|
3169
|
+
const handleLangLeave = (0, import_react15.useCallback)(() => {
|
|
3163
3170
|
clearLangHoverTimeout();
|
|
3164
3171
|
langHoverTimeoutRef.current = setTimeout(() => setLangDropdownOpen(false), 150);
|
|
3165
3172
|
}, [clearLangHoverTimeout]);
|
|
3166
|
-
const handleLangSelect = (0,
|
|
3173
|
+
const handleLangSelect = (0, import_react15.useCallback)((code) => {
|
|
3167
3174
|
setLangDropdownOpen(false);
|
|
3168
3175
|
setMobileLangOpen(false);
|
|
3169
3176
|
onLanguageSelect?.(code);
|
|
3170
3177
|
}, [onLanguageSelect]);
|
|
3171
|
-
const handleNavEnter = (0,
|
|
3178
|
+
const handleNavEnter = (0, import_react15.useCallback)((label) => {
|
|
3172
3179
|
clearHoverTimeout();
|
|
3173
3180
|
setOpenDropdown(label);
|
|
3174
3181
|
}, [clearHoverTimeout]);
|
|
3175
|
-
const handleNavLeave = (0,
|
|
3182
|
+
const handleNavLeave = (0, import_react15.useCallback)(() => {
|
|
3176
3183
|
clearHoverTimeout();
|
|
3177
3184
|
hoverTimeoutRef.current = setTimeout(() => setOpenDropdown(null), 120);
|
|
3178
3185
|
}, [clearHoverTimeout]);
|
|
@@ -3452,7 +3459,7 @@ var Navbar = ({
|
|
|
3452
3459
|
};
|
|
3453
3460
|
|
|
3454
3461
|
// templates/DayNightTransition/DayNightTransition.tsx
|
|
3455
|
-
var
|
|
3462
|
+
var import_react16 = require("react");
|
|
3456
3463
|
var import_framer_motion3 = require("framer-motion");
|
|
3457
3464
|
|
|
3458
3465
|
// templates/DayNightTransition/webflowDayNightV2Ix.ts
|
|
@@ -3561,13 +3568,13 @@ var DayNightTransition = ({
|
|
|
3561
3568
|
className,
|
|
3562
3569
|
...props
|
|
3563
3570
|
}) => {
|
|
3564
|
-
const wrapperRef = (0,
|
|
3565
|
-
const dayWordRef = (0,
|
|
3566
|
-
const [nightMarginStart, setNightMarginStart] = (0,
|
|
3567
|
-
const [nightMarginEnd, setNightMarginEnd] = (0,
|
|
3568
|
-
const [ixMedia, setIxMedia] = (0,
|
|
3571
|
+
const wrapperRef = (0, import_react16.useRef)(null);
|
|
3572
|
+
const dayWordRef = (0, import_react16.useRef)(null);
|
|
3573
|
+
const [nightMarginStart, setNightMarginStart] = (0, import_react16.useState)("0px");
|
|
3574
|
+
const [nightMarginEnd, setNightMarginEnd] = (0, import_react16.useState)("0px");
|
|
3575
|
+
const [ixMedia, setIxMedia] = (0, import_react16.useState)("desktop");
|
|
3569
3576
|
const webflowV2 = scrollPreset === "webflow-day-night-v2";
|
|
3570
|
-
(0,
|
|
3577
|
+
(0, import_react16.useEffect)(() => {
|
|
3571
3578
|
const mq = window.matchMedia("(max-width: 991px)");
|
|
3572
3579
|
const sync = () => setIxMedia(mq.matches ? "mobile" : "desktop");
|
|
3573
3580
|
sync();
|
|
@@ -3575,7 +3582,7 @@ var DayNightTransition = ({
|
|
|
3575
3582
|
return () => mq.removeEventListener("change", sync);
|
|
3576
3583
|
}, []);
|
|
3577
3584
|
const MotionHeadline = headlineLevel === "h1" ? import_framer_motion3.motion.h1 : import_framer_motion3.motion.h2;
|
|
3578
|
-
(0,
|
|
3585
|
+
(0, import_react16.useLayoutEffect)(() => {
|
|
3579
3586
|
if (!inlineDayNightHeadline) return;
|
|
3580
3587
|
const syncNightPull = () => {
|
|
3581
3588
|
const dayEl = dayWordRef.current;
|
|
@@ -3896,7 +3903,7 @@ var dayNightTransitionV2Preset = {
|
|
|
3896
3903
|
};
|
|
3897
3904
|
|
|
3898
3905
|
// templates/LogoMarquee/LogoMarquee.tsx
|
|
3899
|
-
var
|
|
3906
|
+
var import_react17 = require("react");
|
|
3900
3907
|
var import_framer_motion4 = require("framer-motion");
|
|
3901
3908
|
var import_jsx_runtime31 = require("react/jsx-runtime");
|
|
3902
3909
|
function modWrap(min, max, v) {
|
|
@@ -3955,8 +3962,8 @@ var LogoMarquee = ({
|
|
|
3955
3962
|
const scrollVelocity = (0, import_framer_motion4.useVelocity)(scrollY);
|
|
3956
3963
|
const col1Y = (0, import_framer_motion4.useMotionValue)(0);
|
|
3957
3964
|
const col2Y = (0, import_framer_motion4.useMotionValue)(0);
|
|
3958
|
-
const col1Ref = (0,
|
|
3959
|
-
const col2Ref = (0,
|
|
3965
|
+
const col1Ref = (0, import_react17.useRef)(null);
|
|
3966
|
+
const col2Ref = (0, import_react17.useRef)(null);
|
|
3960
3967
|
(0, import_framer_motion4.useAnimationFrame)((_, delta) => {
|
|
3961
3968
|
const raw = scrollVelocity.get();
|
|
3962
3969
|
if (Math.abs(raw) < DEADZONE) return;
|
|
@@ -4210,16 +4217,16 @@ var DownloadBanner = ({
|
|
|
4210
4217
|
};
|
|
4211
4218
|
|
|
4212
4219
|
// templates/TextScroll/TextScroll.tsx
|
|
4213
|
-
var
|
|
4220
|
+
var import_react18 = require("react");
|
|
4214
4221
|
var import_gsap = require("gsap");
|
|
4215
4222
|
var import_ScrollTrigger = require("gsap/ScrollTrigger");
|
|
4216
4223
|
var import_jsx_runtime35 = require("react/jsx-runtime");
|
|
4217
4224
|
import_gsap.gsap.registerPlugin(import_ScrollTrigger.ScrollTrigger);
|
|
4218
4225
|
var TextScroll = ({ text, className }) => {
|
|
4219
|
-
const sectionRef = (0,
|
|
4220
|
-
const wordsRef = (0,
|
|
4226
|
+
const sectionRef = (0, import_react18.useRef)(null);
|
|
4227
|
+
const wordsRef = (0, import_react18.useRef)([]);
|
|
4221
4228
|
const words = text.split(/\s+/).filter(Boolean);
|
|
4222
|
-
(0,
|
|
4229
|
+
(0, import_react18.useEffect)(() => {
|
|
4223
4230
|
const section = sectionRef.current;
|
|
4224
4231
|
const wordEls = wordsRef.current.filter(Boolean);
|
|
4225
4232
|
if (!section || wordEls.length === 0) return;
|
|
@@ -4278,7 +4285,7 @@ var TextScroll = ({ text, className }) => {
|
|
|
4278
4285
|
};
|
|
4279
4286
|
|
|
4280
4287
|
// templates/StickyMarketCards/StickyMarketCards.tsx
|
|
4281
|
-
var
|
|
4288
|
+
var import_react19 = require("react");
|
|
4282
4289
|
var import_jsx_runtime36 = require("react/jsx-runtime");
|
|
4283
4290
|
var PLACEHOLDER_IMAGE3 = "https://cdn.prod.website-files.com/68da5c86c91c54f39c86c28a/69b9309379ac08e59ca8210a_1f3f555da9a5cbb13a6fe1bf0d5fe1b6_placeholder-image.webp";
|
|
4284
4291
|
var StickyMarketCards = ({
|
|
@@ -4288,9 +4295,9 @@ var StickyMarketCards = ({
|
|
|
4288
4295
|
className,
|
|
4289
4296
|
...props
|
|
4290
4297
|
}) => {
|
|
4291
|
-
const cardRefs = (0,
|
|
4292
|
-
const cardInnerRefs = (0,
|
|
4293
|
-
(0,
|
|
4298
|
+
const cardRefs = (0, import_react19.useRef)([]);
|
|
4299
|
+
const cardInnerRefs = (0, import_react19.useRef)([]);
|
|
4300
|
+
(0, import_react19.useEffect)(() => {
|
|
4294
4301
|
if (typeof window === "undefined") return;
|
|
4295
4302
|
let rafId = 0;
|
|
4296
4303
|
const update = () => {
|
|
@@ -4331,7 +4338,7 @@ var StickyMarketCards = ({
|
|
|
4331
4338
|
cancelAnimationFrame(rafId);
|
|
4332
4339
|
};
|
|
4333
4340
|
}, [items.length]);
|
|
4334
|
-
(0,
|
|
4341
|
+
(0, import_react19.useEffect)(() => {
|
|
4335
4342
|
if (typeof window === "undefined") return;
|
|
4336
4343
|
const syncHeights = () => {
|
|
4337
4344
|
const inners = cardInnerRefs.current.filter(Boolean);
|
|
@@ -4432,7 +4439,7 @@ var StickyMarketCards = ({
|
|
|
4432
4439
|
};
|
|
4433
4440
|
|
|
4434
4441
|
// templates/Table/Table.tsx
|
|
4435
|
-
var
|
|
4442
|
+
var import_react20 = require("react");
|
|
4436
4443
|
var import_jsx_runtime37 = require("react/jsx-runtime");
|
|
4437
4444
|
var InfoIcon = ({ className }) => /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("svg", { width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", className, children: [
|
|
4438
4445
|
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)("circle", { cx: "12", cy: "12", r: "10", stroke: "currentColor", strokeWidth: "1.5" }),
|
|
@@ -4450,11 +4457,11 @@ var Table = ({
|
|
|
4450
4457
|
className,
|
|
4451
4458
|
...props
|
|
4452
4459
|
}) => {
|
|
4453
|
-
const [search, setSearch] = (0,
|
|
4454
|
-
const [page, setPage] = (0,
|
|
4455
|
-
const [tooltip, setTooltip] = (0,
|
|
4460
|
+
const [search, setSearch] = (0, import_react20.useState)("");
|
|
4461
|
+
const [page, setPage] = (0, import_react20.useState)(1);
|
|
4462
|
+
const [tooltip, setTooltip] = (0, import_react20.useState)({ visible: false, heading: "", description: "", x: 0, y: 0, arrowOffset: 0 });
|
|
4456
4463
|
const mainKey = mainColumnKey ?? columns.find((c) => c.width === "main")?.key ?? columns[0]?.key;
|
|
4457
|
-
const filtered = (0,
|
|
4464
|
+
const filtered = (0, import_react20.useMemo)(() => {
|
|
4458
4465
|
const q = search.trim().toLowerCase();
|
|
4459
4466
|
if (!q) return rows;
|
|
4460
4467
|
return rows.filter(
|
|
@@ -4622,7 +4629,7 @@ var Table = ({
|
|
|
4622
4629
|
};
|
|
4623
4630
|
|
|
4624
4631
|
// templates/Leaders/Leaders.tsx
|
|
4625
|
-
var
|
|
4632
|
+
var import_react21 = require("react");
|
|
4626
4633
|
var import_jsx_runtime38 = require("react/jsx-runtime");
|
|
4627
4634
|
var LinkedInIcon = () => /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("path", { d: "M14.816 0H1.18C0.528 0 0 0.516 0 1.153V14.846C0 15.484 0.528 16 1.18 16H14.816C15.468 16 16 15.484 16 14.846V1.153C16 0.516 15.468 0 14.816 0ZM4.744 13.642H2.368V5.996H4.744V13.642ZM3.556 4.952C2.796 4.952 2.18 4.336 2.18 3.576C2.18 2.816 2.796 2.2 3.556 2.2C4.316 2.2 4.932 2.816 4.932 3.576C4.932 4.336 4.316 4.952 3.556 4.952ZM13.642 13.642H11.266V9.924C11.266 9.038 11.25 7.896 10.032 7.896C8.814 7.896 8.626 8.846 8.626 9.86V13.642H6.25V5.996H8.53V7.04H8.562C8.88 6.44 9.534 5.806 10.686 5.806C12.958 5.806 13.642 7.3 13.642 9.386V13.642Z", fill: "currentColor" }) });
|
|
4628
4635
|
var ChevronDownIcon4 = () => /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("path", { d: "M4 6L8 10L12 6", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }) });
|
|
@@ -4664,7 +4671,7 @@ var Leaders = ({
|
|
|
4664
4671
|
className,
|
|
4665
4672
|
...props
|
|
4666
4673
|
}) => {
|
|
4667
|
-
const [isExpanded, setIsExpanded] = (0,
|
|
4674
|
+
const [isExpanded, setIsExpanded] = (0, import_react21.useState)(false);
|
|
4668
4675
|
const hasMore = items.length > initialVisibleCount;
|
|
4669
4676
|
const visibleItems = items.slice(0, initialVisibleCount);
|
|
4670
4677
|
const extraItems = items.slice(initialVisibleCount);
|