@deriv-web-design/ui 0.0.24 → 0.0.26
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.css +623 -162
- package/dist/index.css.map +1 -1
- package/dist/index.d.mts +109 -28
- package/dist/index.d.ts +109 -28
- package/dist/index.js +977 -436
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +952 -416
- package/dist/index.mjs.map +1 -1
- package/dist/quote-left-63QMW5NQ.webp +0 -0
- package/dist/quote-right-W6AS4YHN.webp +0 -0
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -1027,18 +1027,25 @@ var Tabs = ({
|
|
|
1027
1027
|
};
|
|
1028
1028
|
|
|
1029
1029
|
// templates/FaqAccordion/FaqAccordion.tsx
|
|
1030
|
+
import { useState as useState5 } from "react";
|
|
1030
1031
|
import { jsx as jsx17, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
1031
1032
|
var FaqAccordion = ({
|
|
1032
1033
|
title,
|
|
1033
1034
|
items,
|
|
1034
1035
|
colorScheme = "white"
|
|
1035
1036
|
}) => {
|
|
1037
|
+
const [openIndex, setOpenIndex] = useState5(null);
|
|
1038
|
+
const handleToggle = (index) => (isOpen) => {
|
|
1039
|
+
setOpenIndex(isOpen ? index : null);
|
|
1040
|
+
};
|
|
1036
1041
|
return /* @__PURE__ */ jsx17("section", { className: ["faq-accordion", `faq-accordion--${colorScheme}`].join(" "), children: /* @__PURE__ */ jsxs15("div", { className: "faq-accordion__container", children: [
|
|
1037
1042
|
/* @__PURE__ */ jsx17("div", { className: "faq-accordion__header", children: /* @__PURE__ */ jsx17("h2", { className: "faq-accordion__title", children: title }) }),
|
|
1038
1043
|
/* @__PURE__ */ jsx17("div", { className: "faq-accordion__list", children: items.map((item, index) => /* @__PURE__ */ jsx17(
|
|
1039
1044
|
Accordion,
|
|
1040
1045
|
{
|
|
1041
1046
|
title: item.question,
|
|
1047
|
+
open: openIndex === index,
|
|
1048
|
+
onToggle: handleToggle(index),
|
|
1042
1049
|
showTopDivider: index === 0,
|
|
1043
1050
|
showBottomDivider: true,
|
|
1044
1051
|
children: item.answer
|
|
@@ -1304,7 +1311,7 @@ var FeatureBullets = ({
|
|
|
1304
1311
|
};
|
|
1305
1312
|
|
|
1306
1313
|
// components/Footer/Footer.tsx
|
|
1307
|
-
import { useState as
|
|
1314
|
+
import { useState as useState6 } from "react";
|
|
1308
1315
|
import { Fragment as Fragment2, jsx as jsx21, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
1309
1316
|
var ExternalLinkIcon = () => /* @__PURE__ */ jsx21(
|
|
1310
1317
|
"svg",
|
|
@@ -1419,7 +1426,7 @@ var Footer = ({
|
|
|
1419
1426
|
...props
|
|
1420
1427
|
}) => {
|
|
1421
1428
|
const allSections = navColumns.flat();
|
|
1422
|
-
const [openSections, setOpenSections] =
|
|
1429
|
+
const [openSections, setOpenSections] = useState6(/* @__PURE__ */ new Set());
|
|
1423
1430
|
const toggleSection = (index) => {
|
|
1424
1431
|
setOpenSections((prev) => {
|
|
1425
1432
|
const next = new Set(prev);
|
|
@@ -1905,36 +1912,182 @@ var Header = ({
|
|
|
1905
1912
|
);
|
|
1906
1913
|
};
|
|
1907
1914
|
|
|
1908
|
-
// templates/Stats/
|
|
1909
|
-
import { useEffect as useEffect4, useRef as useRef4, useState as
|
|
1915
|
+
// templates/Stats/StatsV2.tsx
|
|
1916
|
+
import { useEffect as useEffect4, useMemo, useRef as useRef4, useState as useState7 } from "react";
|
|
1910
1917
|
import { jsx as jsx24, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
1911
|
-
var
|
|
1912
|
-
var
|
|
1913
|
-
var
|
|
1914
|
-
var
|
|
1915
|
-
var
|
|
1916
|
-
|
|
1917
|
-
|
|
1918
|
-
|
|
1919
|
-
|
|
1920
|
-
|
|
1921
|
-
|
|
1922
|
-
|
|
1923
|
-
|
|
1924
|
-
|
|
1925
|
-
|
|
1926
|
-
|
|
1927
|
-
|
|
1928
|
-
|
|
1918
|
+
var HOLD_MS = 1e3;
|
|
1919
|
+
var STEP_DURATION_MS = 700;
|
|
1920
|
+
var INTERVAL_MS = HOLD_MS + STEP_DURATION_MS;
|
|
1921
|
+
var EASING = "cubic-bezier(0.33, 1, 0.68, 1)";
|
|
1922
|
+
var TRANSITION = `transform ${STEP_DURATION_MS}ms ${EASING}, opacity ${STEP_DURATION_MS}ms ${EASING}`;
|
|
1923
|
+
var PARALLAX_START = 0.1;
|
|
1924
|
+
var PARALLAX_END = 0.45;
|
|
1925
|
+
var PARALLAX_MAX_PERCENT = 26.3;
|
|
1926
|
+
var PARALLAX_BREAKPOINT = 992;
|
|
1927
|
+
var SLOT_OFFSET = "var(--stats-v2-slot-offset, 110%)";
|
|
1928
|
+
var CENTER = "translate(-50%, -50%)";
|
|
1929
|
+
function getSlotStyle(slot, transition) {
|
|
1930
|
+
switch (slot) {
|
|
1931
|
+
case "active":
|
|
1932
|
+
return {
|
|
1933
|
+
transform: `${CENTER} translateY(0%) scale(1)`,
|
|
1934
|
+
opacity: 1,
|
|
1935
|
+
zIndex: 2,
|
|
1936
|
+
transition
|
|
1937
|
+
};
|
|
1938
|
+
case "above":
|
|
1939
|
+
return {
|
|
1940
|
+
transform: `${CENTER} translateY(calc(${SLOT_OFFSET} * -1)) scale(0.65)`,
|
|
1941
|
+
opacity: 1,
|
|
1942
|
+
zIndex: 1,
|
|
1943
|
+
transition
|
|
1944
|
+
};
|
|
1945
|
+
case "below":
|
|
1946
|
+
return {
|
|
1947
|
+
transform: `${CENTER} translateY(${SLOT_OFFSET}) scale(0.65)`,
|
|
1948
|
+
opacity: 1,
|
|
1949
|
+
zIndex: 1,
|
|
1950
|
+
transition
|
|
1951
|
+
};
|
|
1952
|
+
case "exiting":
|
|
1953
|
+
return {
|
|
1954
|
+
transform: `${CENTER} translateY(calc(${SLOT_OFFSET} * -1)) scale(0.4)`,
|
|
1955
|
+
opacity: 0,
|
|
1956
|
+
zIndex: 0,
|
|
1957
|
+
transition
|
|
1958
|
+
};
|
|
1959
|
+
case "queued":
|
|
1960
|
+
default:
|
|
1961
|
+
return {
|
|
1962
|
+
transform: `${CENTER} translateY(${SLOT_OFFSET}) scale(0.4)`,
|
|
1963
|
+
opacity: 0,
|
|
1964
|
+
zIndex: 0,
|
|
1965
|
+
transition
|
|
1966
|
+
};
|
|
1929
1967
|
}
|
|
1930
|
-
return {
|
|
1931
|
-
transform: rel < 0 ? "translateY(calc(-50% - 110%)) scale(0.4)" : "translateY(calc(-50% + 110%)) scale(0.4)",
|
|
1932
|
-
opacity: 0,
|
|
1933
|
-
zIndex: 0,
|
|
1934
|
-
transition: TRANSITION
|
|
1935
|
-
};
|
|
1936
1968
|
}
|
|
1937
|
-
|
|
1969
|
+
function slotForIndex(index, step) {
|
|
1970
|
+
const rel = index - step - 1;
|
|
1971
|
+
if (rel === 0) return "active";
|
|
1972
|
+
if (rel === -1) return "above";
|
|
1973
|
+
if (rel === 1) return "below";
|
|
1974
|
+
if (rel < -1) return "exiting";
|
|
1975
|
+
return "queued";
|
|
1976
|
+
}
|
|
1977
|
+
var Laurel = ({ flip = false }) => /* @__PURE__ */ jsx24(
|
|
1978
|
+
"svg",
|
|
1979
|
+
{
|
|
1980
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
1981
|
+
width: "32",
|
|
1982
|
+
height: "84",
|
|
1983
|
+
viewBox: "0 0 32 84",
|
|
1984
|
+
fill: "none",
|
|
1985
|
+
"aria-hidden": "true",
|
|
1986
|
+
focusable: "false",
|
|
1987
|
+
className: [
|
|
1988
|
+
"stats-v2__laurel",
|
|
1989
|
+
flip ? "stats-v2__laurel--flip" : ""
|
|
1990
|
+
].filter(Boolean).join(" "),
|
|
1991
|
+
children: /* @__PURE__ */ jsxs22("g", { opacity: "0.2", children: [
|
|
1992
|
+
/* @__PURE__ */ jsx24(
|
|
1993
|
+
"path",
|
|
1994
|
+
{
|
|
1995
|
+
d: "M20.8655 76.0151C21.3631 78.5487 22.4577 80.4673 23.4245 81.7447C23.7945 82.2337 24.145 82.6275 24.4343 82.9245C24.5003 81.0424 24.5392 77.0209 23.854 73.543C23.3836 71.2282 22.6189 69.4263 21.9723 68.1997C21.7486 67.7754 21.539 67.42 21.3608 67.1361C21.2158 67.6487 21.042 68.3446 20.8935 69.1718C20.5634 71.0111 20.3623 73.4782 20.8655 76.0151Z",
|
|
1996
|
+
fill: "currentColor",
|
|
1997
|
+
stroke: "currentColor"
|
|
1998
|
+
}
|
|
1999
|
+
),
|
|
2000
|
+
/* @__PURE__ */ jsx24(
|
|
2001
|
+
"path",
|
|
2002
|
+
{
|
|
2003
|
+
d: "M9.19518 69.4464C8.5612 69.2311 8.01354 69.0792 7.6041 68.9776C7.77674 69.5261 8.03563 70.2542 8.40971 71.0711C9.16156 72.713 10.3603 74.6729 12.1472 76.0342C13.9141 77.3864 15.8077 77.7752 17.2669 77.8239C17.9963 77.8483 18.6126 77.7873 19.0419 77.7209C18.3715 76.5307 16.6347 73.8279 14.0892 71.9349C12.4167 70.7081 10.6015 69.924 9.19518 69.4464Z",
|
|
2004
|
+
fill: "currentColor",
|
|
2005
|
+
stroke: "currentColor"
|
|
2006
|
+
}
|
|
2007
|
+
),
|
|
2008
|
+
/* @__PURE__ */ jsx24(
|
|
2009
|
+
"path",
|
|
2010
|
+
{
|
|
2011
|
+
d: "M14.1789 62.4853C14.1095 65.0056 14.7018 67.1343 15.3106 68.6265C15.5268 69.1563 15.7445 69.6045 15.9342 69.9597C16.0737 69.4242 16.2473 68.7196 16.4239 67.9038C16.8294 66.0308 17.2467 63.5892 17.309 61.2688C17.3584 58.9612 17.0322 57.019 16.6942 55.65C16.5809 55.1908 16.4663 54.7965 16.3643 54.4749C16.1414 54.8952 15.8702 55.4487 15.5956 56.1107C14.9268 57.7233 14.2444 59.9642 14.1789 62.4853Z",
|
|
2012
|
+
fill: "currentColor",
|
|
2013
|
+
stroke: "currentColor"
|
|
2014
|
+
}
|
|
2015
|
+
),
|
|
2016
|
+
/* @__PURE__ */ jsx24(
|
|
2017
|
+
"path",
|
|
2018
|
+
{
|
|
2019
|
+
d: "M6.16644 56.5363L5.92729 56.2113C4.18123 53.9739 2.10237 52.4221 0.99942 51.685C1.0448 52.2219 1.13195 52.9558 1.29599 53.7969C1.6458 55.5904 2.33816 57.834 3.68889 59.699C5.02796 61.5534 6.66938 62.5331 7.97363 63.0496C8.56984 63.2857 9.09434 63.4244 9.48448 63.5049C9.08235 62.1271 8.06278 59.1136 6.16644 56.5363Z",
|
|
2020
|
+
fill: "currentColor",
|
|
2021
|
+
stroke: "currentColor"
|
|
2022
|
+
}
|
|
2023
|
+
),
|
|
2024
|
+
/* @__PURE__ */ jsx24(
|
|
2025
|
+
"path",
|
|
2026
|
+
{
|
|
2027
|
+
d: "M12.9202 41.9556C12.9103 41.468 12.8857 41.0438 12.8578 40.6964C12.5852 41.0139 12.2554 41.4254 11.9043 41.9234C10.9787 43.2365 9.91222 45.1415 9.34811 47.5086L9.21888 48.0509C8.78948 50.2094 8.89878 52.2002 9.13088 53.6853C9.21855 54.2463 9.32345 54.7333 9.42253 55.1275C10.2101 53.5777 11.6117 50.5783 12.3444 47.5177C12.8519 45.3454 12.9491 43.3817 12.9202 41.9556Z",
|
|
2028
|
+
fill: "currentColor",
|
|
2029
|
+
stroke: "currentColor"
|
|
2030
|
+
}
|
|
2031
|
+
),
|
|
2032
|
+
/* @__PURE__ */ jsx24(
|
|
2033
|
+
"path",
|
|
2034
|
+
{
|
|
2035
|
+
d: "M4.26838 40.1575C3.16507 37.3338 1.55966 35.0449 0.658674 33.8839C0.595099 34.3962 0.53299 35.0674 0.509766 35.8425C0.454879 37.6743 0.618233 40.0556 1.46849 42.2871C2.30759 44.5064 3.60611 45.9871 4.68907 46.9107C5.12959 47.2864 5.53393 47.5694 5.85602 47.7717C5.82536 47.3041 5.77132 46.6715 5.67501 45.9295C5.46619 44.3205 5.06044 42.211 4.27156 40.1569L4.26838 40.1575Z",
|
|
2036
|
+
fill: "currentColor",
|
|
2037
|
+
stroke: "currentColor"
|
|
2038
|
+
}
|
|
2039
|
+
),
|
|
2040
|
+
/* @__PURE__ */ jsx24(
|
|
2041
|
+
"path",
|
|
2042
|
+
{
|
|
2043
|
+
d: "M12.6632 27.4606C11.6314 28.3597 10.3804 29.7129 9.40352 31.5834L9.20135 32.004C8.19489 34.0975 7.83678 36.2499 7.73379 37.8807C7.69736 38.4576 7.693 38.9667 7.70264 39.3814C7.98105 39.0479 8.31846 38.6306 8.68777 38.1462C9.68653 36.8365 10.9078 35.0512 11.829 33.1204C12.7356 31.1936 13.238 29.3215 13.5154 27.9233C13.6157 27.4178 13.6864 26.9753 13.7361 26.6158C13.4324 26.8302 13.0648 27.1106 12.6632 27.4606Z",
|
|
2044
|
+
fill: "currentColor",
|
|
2045
|
+
stroke: "currentColor"
|
|
2046
|
+
}
|
|
2047
|
+
),
|
|
2048
|
+
/* @__PURE__ */ jsx24(
|
|
2049
|
+
"path",
|
|
2050
|
+
{
|
|
2051
|
+
d: "M7.15889 23.0454L7.23043 22.5253C7.54518 19.6881 7.36017 17.0948 7.19664 15.6517C6.9244 16.0575 6.59747 16.5777 6.25738 17.1905C5.37216 18.7855 4.41002 20.986 4.07631 23.4177C3.74032 25.8399 4.108 27.8499 4.55657 29.25C4.7215 29.7648 4.89717 30.1965 5.05235 30.5349C5.64762 29.1157 6.71893 26.2445 7.15889 23.0454Z",
|
|
2052
|
+
fill: "currentColor",
|
|
2053
|
+
stroke: "currentColor"
|
|
2054
|
+
}
|
|
2055
|
+
),
|
|
2056
|
+
/* @__PURE__ */ jsx24(
|
|
2057
|
+
"path",
|
|
2058
|
+
{
|
|
2059
|
+
d: "M20.7056 14.8951C19.4372 15.269 17.7724 15.9875 16.1554 17.3693L16.021 17.4932C14.3576 18.9542 13.2217 20.7665 12.5041 22.2202C12.2403 22.7546 12.0346 23.2374 11.8812 23.6318C12.2297 23.4596 12.6507 23.2423 13.1195 22.9822C14.4495 22.2442 16.1506 21.1686 17.6705 19.808C19.177 18.446 20.3493 16.9414 21.1512 15.7693C21.4549 15.3255 21.7047 14.9307 21.8987 14.6109C21.5673 14.6707 21.1626 14.7604 20.7056 14.8951Z",
|
|
2060
|
+
fill: "currentColor",
|
|
2061
|
+
stroke: "currentColor"
|
|
2062
|
+
}
|
|
2063
|
+
),
|
|
2064
|
+
/* @__PURE__ */ jsx24(
|
|
2065
|
+
"path",
|
|
2066
|
+
{
|
|
2067
|
+
d: "M15.246 9.89451L15.3989 9.48769C16.3817 6.71545 16.8681 4.08928 17.0948 2.56556C16.7641 2.88544 16.3703 3.28963 15.9481 3.76978C14.7583 5.12276 13.3571 7.06214 12.4902 9.40367C11.6163 11.7394 11.483 13.8564 11.5665 15.3854C11.595 15.9081 11.6489 16.3613 11.7069 16.7298C11.9415 16.3768 12.2271 15.9318 12.5414 15.4103C13.3841 14.0121 14.4266 12.0747 15.246 9.89451Z",
|
|
2068
|
+
fill: "currentColor",
|
|
2069
|
+
stroke: "currentColor"
|
|
2070
|
+
}
|
|
2071
|
+
),
|
|
2072
|
+
/* @__PURE__ */ jsx24(
|
|
2073
|
+
"path",
|
|
2074
|
+
{
|
|
2075
|
+
d: "M24.236 2.86551C22.4046 4.24716 21.0854 6.09763 20.225 7.6144C19.8673 8.24502 19.5916 8.81333 19.3933 9.25894C19.765 9.11933 20.2233 8.93634 20.7396 8.70812C22.1292 8.09394 23.9267 7.15785 25.5896 5.86671C27.2408 4.56435 28.6049 3.04428 29.5633 1.84034C29.9762 1.32163 30.3123 0.863542 30.5622 0.509562C30.206 0.526204 29.7564 0.567871 29.2396 0.659382C27.8788 0.900297 26.0564 1.48555 24.236 2.86551Z",
|
|
2076
|
+
fill: "currentColor",
|
|
2077
|
+
stroke: "currentColor"
|
|
2078
|
+
}
|
|
2079
|
+
)
|
|
2080
|
+
] })
|
|
2081
|
+
}
|
|
2082
|
+
);
|
|
2083
|
+
var AwardBadge = ({ heading, subheading }) => /* @__PURE__ */ jsxs22("div", { className: "stats-v2__award", children: [
|
|
2084
|
+
/* @__PURE__ */ jsx24(Laurel, {}),
|
|
2085
|
+
/* @__PURE__ */ jsxs22("div", { className: "stats-v2__award-text", children: [
|
|
2086
|
+
/* @__PURE__ */ jsx24("div", { className: "stats-v2__award-heading", children: heading }),
|
|
2087
|
+
/* @__PURE__ */ jsx24("div", { className: "stats-v2__award-subheading", children: subheading })
|
|
2088
|
+
] }),
|
|
2089
|
+
/* @__PURE__ */ jsx24(Laurel, { flip: true })
|
|
2090
|
+
] });
|
|
1938
2091
|
var Stats = ({
|
|
1939
2092
|
title,
|
|
1940
2093
|
description,
|
|
@@ -1944,105 +2097,283 @@ var Stats = ({
|
|
|
1944
2097
|
className,
|
|
1945
2098
|
...props
|
|
1946
2099
|
}) => {
|
|
1947
|
-
const [activeIndex, setActiveIndex] = useState6(0);
|
|
1948
|
-
const intervalRef = useRef4(null);
|
|
1949
2100
|
const sectionRef = useRef4(null);
|
|
1950
2101
|
const leftColRef = useRef4(null);
|
|
1951
2102
|
const rightColRef = useRef4(null);
|
|
1952
2103
|
const rafRef = useRef4(null);
|
|
2104
|
+
const N = stats.length;
|
|
1953
2105
|
const hasAwards = leftAwards.length > 0 || rightAwards.length > 0;
|
|
1954
2106
|
const allAwards = [...leftAwards, ...rightAwards];
|
|
1955
|
-
const
|
|
2107
|
+
const strip = useMemo(() => {
|
|
2108
|
+
if (N === 0) return [];
|
|
2109
|
+
const target = Math.max(2 * N, N + 3);
|
|
2110
|
+
return Array.from({ length: target }, (_, i) => stats[i % N]);
|
|
2111
|
+
}, [stats, N]);
|
|
2112
|
+
const [step, setStep] = useState7(0);
|
|
2113
|
+
const [phase, setPhase] = useState7("idle");
|
|
2114
|
+
const scheduleRef = useRef4(null);
|
|
1956
2115
|
useEffect4(() => {
|
|
1957
|
-
if (
|
|
1958
|
-
|
|
1959
|
-
|
|
1960
|
-
|
|
2116
|
+
if (N <= 1) return;
|
|
2117
|
+
let timerId = null;
|
|
2118
|
+
let cancelled = false;
|
|
2119
|
+
const advance = () => {
|
|
2120
|
+
timerId = null;
|
|
2121
|
+
if (cancelled) return;
|
|
2122
|
+
setStep((prev) => {
|
|
2123
|
+
if (prev >= N) {
|
|
2124
|
+
setPhase("snap-disable");
|
|
2125
|
+
return prev;
|
|
2126
|
+
}
|
|
2127
|
+
const next = prev + 1;
|
|
2128
|
+
const delayMs = next >= N ? STEP_DURATION_MS : INTERVAL_MS;
|
|
2129
|
+
schedule(delayMs);
|
|
2130
|
+
return next;
|
|
2131
|
+
});
|
|
2132
|
+
};
|
|
2133
|
+
const schedule = (delayMs) => {
|
|
2134
|
+
if (cancelled) return;
|
|
2135
|
+
if (timerId !== null) window.clearTimeout(timerId);
|
|
2136
|
+
timerId = window.setTimeout(advance, delayMs);
|
|
2137
|
+
};
|
|
2138
|
+
scheduleRef.current = schedule;
|
|
2139
|
+
schedule(HOLD_MS);
|
|
1961
2140
|
return () => {
|
|
1962
|
-
|
|
2141
|
+
cancelled = true;
|
|
2142
|
+
scheduleRef.current = null;
|
|
2143
|
+
if (timerId !== null) window.clearTimeout(timerId);
|
|
1963
2144
|
};
|
|
1964
|
-
}, [
|
|
2145
|
+
}, [N]);
|
|
1965
2146
|
useEffect4(() => {
|
|
1966
|
-
|
|
2147
|
+
if (phase === "snap-disable") {
|
|
2148
|
+
const raf = requestAnimationFrame(() => {
|
|
2149
|
+
setStep(0);
|
|
2150
|
+
setPhase("snap-jump");
|
|
2151
|
+
});
|
|
2152
|
+
rafRef.current = raf;
|
|
2153
|
+
return () => cancelAnimationFrame(raf);
|
|
2154
|
+
}
|
|
2155
|
+
if (phase === "snap-jump") {
|
|
2156
|
+
const raf = requestAnimationFrame(() => {
|
|
2157
|
+
setPhase("idle");
|
|
2158
|
+
scheduleRef.current?.(HOLD_MS);
|
|
2159
|
+
});
|
|
2160
|
+
rafRef.current = raf;
|
|
2161
|
+
return () => cancelAnimationFrame(raf);
|
|
2162
|
+
}
|
|
2163
|
+
}, [phase]);
|
|
2164
|
+
useEffect4(() => {
|
|
2165
|
+
setStep(0);
|
|
2166
|
+
setPhase("idle");
|
|
2167
|
+
}, [N]);
|
|
2168
|
+
useEffect4(() => {
|
|
2169
|
+
const apply = () => {
|
|
1967
2170
|
const section = sectionRef.current;
|
|
1968
|
-
if (!section || window.innerWidth <
|
|
2171
|
+
if (!section || window.innerWidth < PARALLAX_BREAKPOINT) {
|
|
1969
2172
|
if (leftColRef.current) leftColRef.current.style.transform = "";
|
|
1970
|
-
if (rightColRef.current)
|
|
2173
|
+
if (rightColRef.current)
|
|
2174
|
+
rightColRef.current.style.transform = "";
|
|
1971
2175
|
return;
|
|
1972
2176
|
}
|
|
1973
2177
|
const rect = section.getBoundingClientRect();
|
|
1974
|
-
const
|
|
1975
|
-
const
|
|
1976
|
-
const
|
|
1977
|
-
const
|
|
1978
|
-
|
|
1979
|
-
|
|
2178
|
+
const viewport = window.innerHeight;
|
|
2179
|
+
const totalTravel = rect.height + viewport;
|
|
2180
|
+
const traveled = viewport - rect.top;
|
|
2181
|
+
const rawProgress = traveled / totalTravel;
|
|
2182
|
+
const progress = Math.max(0, Math.min(1, rawProgress));
|
|
2183
|
+
const normalised = Math.max(
|
|
2184
|
+
0,
|
|
2185
|
+
Math.min(
|
|
2186
|
+
1,
|
|
2187
|
+
(progress - PARALLAX_START) / (PARALLAX_END - PARALLAX_START)
|
|
2188
|
+
)
|
|
2189
|
+
);
|
|
2190
|
+
const remaining = 1 - normalised;
|
|
2191
|
+
const leftOffset = -PARALLAX_MAX_PERCENT * remaining;
|
|
2192
|
+
const rightOffset = PARALLAX_MAX_PERCENT * remaining;
|
|
2193
|
+
if (leftColRef.current) {
|
|
2194
|
+
leftColRef.current.style.transform = `translateY(${leftOffset}%)`;
|
|
2195
|
+
}
|
|
2196
|
+
if (rightColRef.current) {
|
|
2197
|
+
rightColRef.current.style.transform = `translateY(${rightOffset}%)`;
|
|
2198
|
+
}
|
|
1980
2199
|
};
|
|
1981
2200
|
const onScroll = () => {
|
|
1982
|
-
|
|
1983
|
-
rafRef.current = requestAnimationFrame(applyParallax);
|
|
2201
|
+
requestAnimationFrame(apply);
|
|
1984
2202
|
};
|
|
1985
|
-
|
|
2203
|
+
apply();
|
|
1986
2204
|
window.addEventListener("scroll", onScroll, { passive: true });
|
|
1987
2205
|
window.addEventListener("resize", onScroll, { passive: true });
|
|
1988
2206
|
return () => {
|
|
1989
2207
|
window.removeEventListener("scroll", onScroll);
|
|
1990
2208
|
window.removeEventListener("resize", onScroll);
|
|
1991
|
-
if (rafRef.current) cancelAnimationFrame(rafRef.current);
|
|
1992
2209
|
};
|
|
1993
2210
|
}, []);
|
|
2211
|
+
const transition = phase === "idle" ? TRANSITION : "none";
|
|
1994
2212
|
return /* @__PURE__ */ jsx24(
|
|
1995
2213
|
"section",
|
|
1996
2214
|
{
|
|
1997
2215
|
ref: sectionRef,
|
|
1998
|
-
className: ["stats", className].filter(Boolean).join(" "),
|
|
2216
|
+
className: ["stats-v2", className].filter(Boolean).join(" "),
|
|
1999
2217
|
...props,
|
|
2000
|
-
children: /* @__PURE__ */ jsxs22("div", { className: "
|
|
2001
|
-
/* @__PURE__ */ jsxs22("div", { className: "
|
|
2002
|
-
/* @__PURE__ */ jsx24("h2", { className: "
|
|
2003
|
-
description && /* @__PURE__ */ jsx24("p", { className: "
|
|
2218
|
+
children: /* @__PURE__ */ jsxs22("div", { className: "stats-v2__inner", children: [
|
|
2219
|
+
/* @__PURE__ */ jsxs22("div", { className: "stats-v2__header", children: [
|
|
2220
|
+
/* @__PURE__ */ jsx24("h2", { className: "stats-v2__title", children: title }),
|
|
2221
|
+
description && /* @__PURE__ */ jsx24("p", { className: "stats-v2__description", children: description })
|
|
2004
2222
|
] }),
|
|
2005
|
-
/* @__PURE__ */ jsxs22("div", { className: "
|
|
2006
|
-
leftAwards.length > 0 && /* @__PURE__ */ jsx24(
|
|
2007
|
-
|
|
2008
|
-
|
|
2009
|
-
|
|
2010
|
-
|
|
2011
|
-
|
|
2012
|
-
|
|
2223
|
+
/* @__PURE__ */ jsxs22("div", { className: "stats-v2__content", children: [
|
|
2224
|
+
leftAwards.length > 0 && /* @__PURE__ */ jsx24(
|
|
2225
|
+
"div",
|
|
2226
|
+
{
|
|
2227
|
+
ref: leftColRef,
|
|
2228
|
+
className: "stats-v2__awards-col stats-v2__awards-col--left",
|
|
2229
|
+
children: leftAwards.map((award, i) => /* @__PURE__ */ jsx24(AwardBadge, { ...award }, `l-${i}`))
|
|
2230
|
+
}
|
|
2231
|
+
),
|
|
2232
|
+
/* @__PURE__ */ jsx24("div", { className: "stats-v2__card", children: /* @__PURE__ */ jsxs22("div", { className: "stats-v2__card-track", children: [
|
|
2233
|
+
/* @__PURE__ */ jsx24(
|
|
2234
|
+
"div",
|
|
2235
|
+
{
|
|
2236
|
+
className: "stats-v2__fade stats-v2__fade--top",
|
|
2237
|
+
"aria-hidden": "true"
|
|
2238
|
+
}
|
|
2239
|
+
),
|
|
2240
|
+
/* @__PURE__ */ jsx24(
|
|
2241
|
+
"div",
|
|
2242
|
+
{
|
|
2243
|
+
className: "stats-v2__fade stats-v2__fade--bottom",
|
|
2244
|
+
"aria-hidden": "true"
|
|
2245
|
+
}
|
|
2246
|
+
),
|
|
2247
|
+
strip.map((stat, i) => {
|
|
2248
|
+
const slot = slotForIndex(i, step);
|
|
2249
|
+
const active = slot === "active";
|
|
2013
2250
|
return /* @__PURE__ */ jsxs22(
|
|
2014
2251
|
"div",
|
|
2015
2252
|
{
|
|
2016
2253
|
className: [
|
|
2017
|
-
"
|
|
2018
|
-
active ? "
|
|
2254
|
+
"stats-v2__stat",
|
|
2255
|
+
active ? "stats-v2__stat--active" : "stats-v2__stat--inactive"
|
|
2019
2256
|
].join(" "),
|
|
2020
|
-
style:
|
|
2257
|
+
style: getSlotStyle(slot, transition),
|
|
2021
2258
|
"aria-hidden": !active,
|
|
2022
2259
|
children: [
|
|
2023
|
-
/* @__PURE__ */ jsx24("span", { className: "
|
|
2024
|
-
/* @__PURE__ */ jsx24("span", { className: "
|
|
2260
|
+
/* @__PURE__ */ jsx24("span", { className: "stats-v2__stat-value", children: stat.value }),
|
|
2261
|
+
/* @__PURE__ */ jsx24("span", { className: "stats-v2__stat-label", children: stat.label })
|
|
2025
2262
|
]
|
|
2026
2263
|
},
|
|
2027
2264
|
i
|
|
2028
2265
|
);
|
|
2029
2266
|
})
|
|
2030
2267
|
] }) }),
|
|
2031
|
-
rightAwards.length > 0 && /* @__PURE__ */ jsx24(
|
|
2032
|
-
|
|
2268
|
+
rightAwards.length > 0 && /* @__PURE__ */ jsx24(
|
|
2269
|
+
"div",
|
|
2270
|
+
{
|
|
2271
|
+
ref: rightColRef,
|
|
2272
|
+
className: "stats-v2__awards-col stats-v2__awards-col--right",
|
|
2273
|
+
children: rightAwards.map((award, i) => /* @__PURE__ */ jsx24(AwardBadge, { ...award }, `r-${i}`))
|
|
2274
|
+
}
|
|
2275
|
+
),
|
|
2276
|
+
hasAwards && /* @__PURE__ */ jsx24("div", { className: "stats-v2__awards-mobile", children: allAwards.map((award, i) => /* @__PURE__ */ jsx24(AwardBadge, { ...award }, `m-${i}`)) })
|
|
2033
2277
|
] })
|
|
2034
2278
|
] })
|
|
2035
2279
|
}
|
|
2036
2280
|
);
|
|
2037
2281
|
};
|
|
2038
2282
|
|
|
2283
|
+
// templates/Stats/StatsSimple.tsx
|
|
2284
|
+
import { useEffect as useEffect5, useRef as useRef5, useState as useState8 } from "react";
|
|
2285
|
+
import { jsx as jsx25, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
2286
|
+
function parseValue(raw) {
|
|
2287
|
+
const match = raw.match(/^([^0-9]*)([0-9]+(?:\.[0-9]+)?)(.*)$/);
|
|
2288
|
+
if (!match) return { prefix: "", number: 0, suffix: raw };
|
|
2289
|
+
return {
|
|
2290
|
+
prefix: match[1],
|
|
2291
|
+
number: parseFloat(match[2]),
|
|
2292
|
+
suffix: match[3]
|
|
2293
|
+
};
|
|
2294
|
+
}
|
|
2295
|
+
var DURATION_MS = 1800;
|
|
2296
|
+
var EASING2 = (t) => 1 - Math.pow(1 - t, 3);
|
|
2297
|
+
function useCountUp(target, active) {
|
|
2298
|
+
const [display, setDisplay] = useState8(0);
|
|
2299
|
+
const rafRef = useRef5(null);
|
|
2300
|
+
const startRef = useRef5(null);
|
|
2301
|
+
useEffect5(() => {
|
|
2302
|
+
if (!active) return;
|
|
2303
|
+
startRef.current = null;
|
|
2304
|
+
const tick = (now) => {
|
|
2305
|
+
if (startRef.current === null) startRef.current = now;
|
|
2306
|
+
const elapsed = now - startRef.current;
|
|
2307
|
+
const progress = Math.min(elapsed / DURATION_MS, 1);
|
|
2308
|
+
const eased = EASING2(progress);
|
|
2309
|
+
setDisplay(Math.round(eased * target));
|
|
2310
|
+
if (progress < 1) {
|
|
2311
|
+
rafRef.current = requestAnimationFrame(tick);
|
|
2312
|
+
}
|
|
2313
|
+
};
|
|
2314
|
+
rafRef.current = requestAnimationFrame(tick);
|
|
2315
|
+
return () => {
|
|
2316
|
+
if (rafRef.current !== null) cancelAnimationFrame(rafRef.current);
|
|
2317
|
+
};
|
|
2318
|
+
}, [target, active]);
|
|
2319
|
+
return display;
|
|
2320
|
+
}
|
|
2321
|
+
var AnimatedValue = ({
|
|
2322
|
+
raw,
|
|
2323
|
+
active
|
|
2324
|
+
}) => {
|
|
2325
|
+
const { prefix, number, suffix } = parseValue(raw);
|
|
2326
|
+
const count = useCountUp(number, active);
|
|
2327
|
+
const formatted = number >= 1e3 && !/[KMBkmb]/.test(suffix) ? count.toLocaleString() : String(count);
|
|
2328
|
+
return /* @__PURE__ */ jsxs23("span", { className: "stats-simple__value", children: [
|
|
2329
|
+
prefix,
|
|
2330
|
+
formatted,
|
|
2331
|
+
suffix
|
|
2332
|
+
] });
|
|
2333
|
+
};
|
|
2334
|
+
var StatsSimple = ({
|
|
2335
|
+
stats,
|
|
2336
|
+
className,
|
|
2337
|
+
...props
|
|
2338
|
+
}) => {
|
|
2339
|
+
const sectionRef = useRef5(null);
|
|
2340
|
+
const [animated, setAnimated] = useState8(false);
|
|
2341
|
+
useEffect5(() => {
|
|
2342
|
+
const el = sectionRef.current;
|
|
2343
|
+
if (!el) return;
|
|
2344
|
+
const observer = new IntersectionObserver(
|
|
2345
|
+
([entry]) => {
|
|
2346
|
+
if (entry.isIntersecting) {
|
|
2347
|
+
setAnimated(true);
|
|
2348
|
+
observer.disconnect();
|
|
2349
|
+
}
|
|
2350
|
+
},
|
|
2351
|
+
{ threshold: 0.25 }
|
|
2352
|
+
);
|
|
2353
|
+
observer.observe(el);
|
|
2354
|
+
return () => observer.disconnect();
|
|
2355
|
+
}, []);
|
|
2356
|
+
return /* @__PURE__ */ jsx25(
|
|
2357
|
+
"section",
|
|
2358
|
+
{
|
|
2359
|
+
ref: sectionRef,
|
|
2360
|
+
className: ["stats-simple", className].filter(Boolean).join(" "),
|
|
2361
|
+
...props,
|
|
2362
|
+
children: /* @__PURE__ */ jsx25("div", { className: "stats-simple__inner", children: stats.map((stat, i) => /* @__PURE__ */ jsxs23("div", { className: "stats-simple__item", children: [
|
|
2363
|
+
/* @__PURE__ */ jsx25(AnimatedValue, { raw: stat.value, active: animated }),
|
|
2364
|
+
/* @__PURE__ */ jsx25("span", { className: "stats-simple__label", children: stat.label })
|
|
2365
|
+
] }, i)) })
|
|
2366
|
+
}
|
|
2367
|
+
);
|
|
2368
|
+
};
|
|
2369
|
+
|
|
2039
2370
|
// templates/FeatureScroll/FeatureScroll.tsx
|
|
2040
|
-
import { useLayoutEffect, useRef as
|
|
2371
|
+
import { useLayoutEffect, useRef as useRef7, useState as useState10 } from "react";
|
|
2041
2372
|
|
|
2042
2373
|
// components/DotLottieInView/DotLottieInView.tsx
|
|
2043
|
-
import { useEffect as
|
|
2374
|
+
import { useEffect as useEffect6, useRef as useRef6, useState as useState9 } from "react";
|
|
2044
2375
|
import { DotLottieReact } from "@lottiefiles/dotlottie-react";
|
|
2045
|
-
import { jsx as
|
|
2376
|
+
import { jsx as jsx26 } from "react/jsx-runtime";
|
|
2046
2377
|
function DotLottieInView({
|
|
2047
2378
|
enabled = true,
|
|
2048
2379
|
rootMargin = "0px",
|
|
@@ -2051,10 +2382,10 @@ function DotLottieInView({
|
|
|
2051
2382
|
style,
|
|
2052
2383
|
...dotProps
|
|
2053
2384
|
}) {
|
|
2054
|
-
const wrapRef =
|
|
2055
|
-
const [inView, setInView] =
|
|
2056
|
-
const [dotLottie, setDotLottie] =
|
|
2057
|
-
|
|
2385
|
+
const wrapRef = useRef6(null);
|
|
2386
|
+
const [inView, setInView] = useState9(false);
|
|
2387
|
+
const [dotLottie, setDotLottie] = useState9(null);
|
|
2388
|
+
useEffect6(() => {
|
|
2058
2389
|
const el = wrapRef.current;
|
|
2059
2390
|
if (!el) return;
|
|
2060
2391
|
const observer = new IntersectionObserver(
|
|
@@ -2066,7 +2397,7 @@ function DotLottieInView({
|
|
|
2066
2397
|
observer.observe(el);
|
|
2067
2398
|
return () => observer.disconnect();
|
|
2068
2399
|
}, [rootMargin, threshold]);
|
|
2069
|
-
|
|
2400
|
+
useEffect6(() => {
|
|
2070
2401
|
if (!dotLottie) return;
|
|
2071
2402
|
if (!enabled || !inView) {
|
|
2072
2403
|
dotLottie.stop();
|
|
@@ -2075,7 +2406,7 @@ function DotLottieInView({
|
|
|
2075
2406
|
dotLottie.stop();
|
|
2076
2407
|
dotLottie.play();
|
|
2077
2408
|
}, [dotLottie, enabled, inView]);
|
|
2078
|
-
return /* @__PURE__ */
|
|
2409
|
+
return /* @__PURE__ */ jsx26(
|
|
2079
2410
|
"div",
|
|
2080
2411
|
{
|
|
2081
2412
|
ref: wrapRef,
|
|
@@ -2090,7 +2421,7 @@ function DotLottieInView({
|
|
|
2090
2421
|
backgroundColor: "transparent",
|
|
2091
2422
|
...style
|
|
2092
2423
|
},
|
|
2093
|
-
children: /* @__PURE__ */
|
|
2424
|
+
children: /* @__PURE__ */ jsx26(
|
|
2094
2425
|
DotLottieReact,
|
|
2095
2426
|
{
|
|
2096
2427
|
...dotProps,
|
|
@@ -2104,7 +2435,7 @@ function DotLottieInView({
|
|
|
2104
2435
|
}
|
|
2105
2436
|
|
|
2106
2437
|
// templates/FeatureScroll/FeatureScroll.tsx
|
|
2107
|
-
import { jsx as
|
|
2438
|
+
import { jsx as jsx27, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
2108
2439
|
var FEATURE_SCROLL_DATA = [
|
|
2109
2440
|
{
|
|
2110
2441
|
title: "Forex",
|
|
@@ -2149,7 +2480,7 @@ var FEATURE_SCROLL_DATA = [
|
|
|
2149
2480
|
mediaUrl: "https://cdn.prod.website-files.com/66fbaad381fa6866fa4991f3/675a9064f2c16e4e0732abfb_Stock%20Indices.lottie"
|
|
2150
2481
|
}
|
|
2151
2482
|
];
|
|
2152
|
-
var ChevronRight2 = () => /* @__PURE__ */
|
|
2483
|
+
var ChevronRight2 = () => /* @__PURE__ */ jsx27(
|
|
2153
2484
|
"svg",
|
|
2154
2485
|
{
|
|
2155
2486
|
className: "fs__item-link-icon",
|
|
@@ -2158,7 +2489,7 @@ var ChevronRight2 = () => /* @__PURE__ */ jsx26(
|
|
|
2158
2489
|
viewBox: "0 0 16 16",
|
|
2159
2490
|
fill: "none",
|
|
2160
2491
|
"aria-hidden": "true",
|
|
2161
|
-
children: /* @__PURE__ */
|
|
2492
|
+
children: /* @__PURE__ */ jsx27(
|
|
2162
2493
|
"path",
|
|
2163
2494
|
{
|
|
2164
2495
|
d: "M6 3l5 5-5 5",
|
|
@@ -2176,7 +2507,7 @@ function resolveMediaType(item) {
|
|
|
2176
2507
|
}
|
|
2177
2508
|
var MediaRenderer = ({ item, active }) => {
|
|
2178
2509
|
if (resolveMediaType(item) === "lottie") {
|
|
2179
|
-
return /* @__PURE__ */
|
|
2510
|
+
return /* @__PURE__ */ jsx27(
|
|
2180
2511
|
DotLottieInView,
|
|
2181
2512
|
{
|
|
2182
2513
|
src: item.mediaUrl,
|
|
@@ -2184,7 +2515,7 @@ var MediaRenderer = ({ item, active }) => {
|
|
|
2184
2515
|
}
|
|
2185
2516
|
);
|
|
2186
2517
|
}
|
|
2187
|
-
return /* @__PURE__ */
|
|
2518
|
+
return /* @__PURE__ */ jsx27(
|
|
2188
2519
|
"img",
|
|
2189
2520
|
{
|
|
2190
2521
|
src: item.mediaUrl,
|
|
@@ -2200,9 +2531,9 @@ var FeatureScroll = ({
|
|
|
2200
2531
|
className,
|
|
2201
2532
|
...props
|
|
2202
2533
|
}) => {
|
|
2203
|
-
const [activeIndex, setActiveIndex] =
|
|
2204
|
-
const titleRefs =
|
|
2205
|
-
const mediaColRef =
|
|
2534
|
+
const [activeIndex, setActiveIndex] = useState10(0);
|
|
2535
|
+
const titleRefs = useRef7([]);
|
|
2536
|
+
const mediaColRef = useRef7(null);
|
|
2206
2537
|
useLayoutEffect(() => {
|
|
2207
2538
|
if (items.length === 0) return;
|
|
2208
2539
|
const readThresholdPx = () => {
|
|
@@ -2255,24 +2586,24 @@ var FeatureScroll = ({
|
|
|
2255
2586
|
className
|
|
2256
2587
|
].filter(Boolean).join(" ");
|
|
2257
2588
|
if (items.length === 0) {
|
|
2258
|
-
return /* @__PURE__ */
|
|
2589
|
+
return /* @__PURE__ */ jsx27("section", { className: rootClass, ...props, children: /* @__PURE__ */ jsx27("div", { className: "fs__inner", children: /* @__PURE__ */ jsx27("h2", { className: "fs__header", children: header }) }) });
|
|
2259
2590
|
}
|
|
2260
|
-
return /* @__PURE__ */
|
|
2261
|
-
/* @__PURE__ */
|
|
2262
|
-
/* @__PURE__ */
|
|
2263
|
-
/* @__PURE__ */
|
|
2591
|
+
return /* @__PURE__ */ jsx27("section", { className: rootClass, ...props, children: /* @__PURE__ */ jsxs24("div", { className: "fs__inner", children: [
|
|
2592
|
+
/* @__PURE__ */ jsx27("h2", { className: "fs__header", children: header }),
|
|
2593
|
+
/* @__PURE__ */ jsxs24("div", { className: "fs__layout", children: [
|
|
2594
|
+
/* @__PURE__ */ jsx27("div", { className: "fs__media-col", "aria-hidden": "true", children: /* @__PURE__ */ jsx27(
|
|
2264
2595
|
"div",
|
|
2265
2596
|
{
|
|
2266
2597
|
ref: mediaColRef,
|
|
2267
2598
|
className: "fs__media-sticky",
|
|
2268
|
-
children: /* @__PURE__ */
|
|
2599
|
+
children: /* @__PURE__ */ jsx27("div", { className: "fs__media-wrap", children: items.map((item, i) => /* @__PURE__ */ jsx27(
|
|
2269
2600
|
"div",
|
|
2270
2601
|
{
|
|
2271
2602
|
className: [
|
|
2272
2603
|
"fs__media-item",
|
|
2273
2604
|
i === activeIndex ? "fs__media-item--active" : ""
|
|
2274
2605
|
].filter(Boolean).join(" "),
|
|
2275
|
-
children: /* @__PURE__ */
|
|
2606
|
+
children: /* @__PURE__ */ jsx27(
|
|
2276
2607
|
MediaRenderer,
|
|
2277
2608
|
{
|
|
2278
2609
|
item,
|
|
@@ -2284,12 +2615,12 @@ var FeatureScroll = ({
|
|
|
2284
2615
|
)) })
|
|
2285
2616
|
}
|
|
2286
2617
|
) }),
|
|
2287
|
-
/* @__PURE__ */
|
|
2618
|
+
/* @__PURE__ */ jsx27("div", { className: "fs__content-col", children: items.map((item, i) => /* @__PURE__ */ jsxs24(
|
|
2288
2619
|
"div",
|
|
2289
2620
|
{
|
|
2290
2621
|
className: "fs__item",
|
|
2291
2622
|
children: [
|
|
2292
|
-
/* @__PURE__ */
|
|
2623
|
+
/* @__PURE__ */ jsx27(
|
|
2293
2624
|
"h3",
|
|
2294
2625
|
{
|
|
2295
2626
|
ref: (el) => {
|
|
@@ -2299,15 +2630,15 @@ var FeatureScroll = ({
|
|
|
2299
2630
|
children: item.title
|
|
2300
2631
|
}
|
|
2301
2632
|
),
|
|
2302
|
-
/* @__PURE__ */
|
|
2303
|
-
/* @__PURE__ */
|
|
2633
|
+
/* @__PURE__ */ jsx27("p", { className: "fs__item-desc", children: item.description }),
|
|
2634
|
+
/* @__PURE__ */ jsxs24(
|
|
2304
2635
|
"a",
|
|
2305
2636
|
{
|
|
2306
2637
|
href: item.link,
|
|
2307
2638
|
className: "fs__item-link",
|
|
2308
2639
|
children: [
|
|
2309
|
-
/* @__PURE__ */
|
|
2310
|
-
/* @__PURE__ */
|
|
2640
|
+
/* @__PURE__ */ jsx27("span", { children: item.linkLabel }),
|
|
2641
|
+
/* @__PURE__ */ jsx27(ChevronRight2, {})
|
|
2311
2642
|
]
|
|
2312
2643
|
}
|
|
2313
2644
|
)
|
|
@@ -2316,18 +2647,18 @@ var FeatureScroll = ({
|
|
|
2316
2647
|
i
|
|
2317
2648
|
)) })
|
|
2318
2649
|
] }),
|
|
2319
|
-
/* @__PURE__ */
|
|
2320
|
-
/* @__PURE__ */
|
|
2321
|
-
/* @__PURE__ */
|
|
2322
|
-
/* @__PURE__ */
|
|
2323
|
-
/* @__PURE__ */
|
|
2650
|
+
/* @__PURE__ */ jsx27("div", { className: "fs__mobile-list", children: items.map((item, i) => /* @__PURE__ */ jsxs24("div", { className: "fs__mobile-item", children: [
|
|
2651
|
+
/* @__PURE__ */ jsx27("h3", { className: "fs__item-title", children: item.title }),
|
|
2652
|
+
/* @__PURE__ */ jsx27("div", { className: "fs__mobile-media", children: /* @__PURE__ */ jsx27(MediaRenderer, { item, active: true }) }),
|
|
2653
|
+
/* @__PURE__ */ jsx27("p", { className: "fs__item-desc", children: item.description }),
|
|
2654
|
+
/* @__PURE__ */ jsxs24(
|
|
2324
2655
|
"a",
|
|
2325
2656
|
{
|
|
2326
2657
|
href: item.link,
|
|
2327
2658
|
className: "fs__item-link",
|
|
2328
2659
|
children: [
|
|
2329
|
-
/* @__PURE__ */
|
|
2330
|
-
/* @__PURE__ */
|
|
2660
|
+
/* @__PURE__ */ jsx27("span", { children: item.linkLabel }),
|
|
2661
|
+
/* @__PURE__ */ jsx27(ChevronRight2, {})
|
|
2331
2662
|
]
|
|
2332
2663
|
}
|
|
2333
2664
|
)
|
|
@@ -2336,8 +2667,8 @@ var FeatureScroll = ({
|
|
|
2336
2667
|
};
|
|
2337
2668
|
|
|
2338
2669
|
// templates/StickyStackedCards/StickyStackedCards.tsx
|
|
2339
|
-
import { useEffect as
|
|
2340
|
-
import { jsx as
|
|
2670
|
+
import { useEffect as useEffect7, useRef as useRef8 } from "react";
|
|
2671
|
+
import { jsx as jsx28, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
2341
2672
|
var PLACEHOLDER_IMAGE = "https://cdn.prod.website-files.com/68da5c86c91c54f39c86c28a/69b9309379ac08e59ca8210a_1f3f555da9a5cbb13a6fe1bf0d5fe1b6_placeholder-image.webp";
|
|
2342
2673
|
var STEPS_DATA = [
|
|
2343
2674
|
{
|
|
@@ -2366,8 +2697,8 @@ var StickyStackedCards = ({
|
|
|
2366
2697
|
className,
|
|
2367
2698
|
...props
|
|
2368
2699
|
}) => {
|
|
2369
|
-
const cardRefs =
|
|
2370
|
-
|
|
2700
|
+
const cardRefs = useRef8([]);
|
|
2701
|
+
useEffect7(() => {
|
|
2371
2702
|
if (typeof window === "undefined") return;
|
|
2372
2703
|
let rafId = 0;
|
|
2373
2704
|
const update = () => {
|
|
@@ -2401,14 +2732,14 @@ var StickyStackedCards = ({
|
|
|
2401
2732
|
cancelAnimationFrame(rafId);
|
|
2402
2733
|
};
|
|
2403
2734
|
}, [items.length]);
|
|
2404
|
-
return /* @__PURE__ */
|
|
2735
|
+
return /* @__PURE__ */ jsx28(
|
|
2405
2736
|
"section",
|
|
2406
2737
|
{
|
|
2407
2738
|
className: ["ssc", className].filter(Boolean).join(" "),
|
|
2408
2739
|
...props,
|
|
2409
|
-
children: /* @__PURE__ */
|
|
2410
|
-
/* @__PURE__ */
|
|
2411
|
-
/* @__PURE__ */
|
|
2740
|
+
children: /* @__PURE__ */ jsxs25("div", { className: "ssc__inner", children: [
|
|
2741
|
+
/* @__PURE__ */ jsx28("h2", { className: "ssc__header", children: header }),
|
|
2742
|
+
/* @__PURE__ */ jsx28("div", { className: "ssc__track", children: items.map((item, i) => /* @__PURE__ */ jsxs25(
|
|
2412
2743
|
"div",
|
|
2413
2744
|
{
|
|
2414
2745
|
ref: (el) => {
|
|
@@ -2434,11 +2765,11 @@ var StickyStackedCards = ({
|
|
|
2434
2765
|
top: `calc(var(--ssc-sticky-top) + ${i} * var(--ssc-peek-offset))`
|
|
2435
2766
|
},
|
|
2436
2767
|
children: [
|
|
2437
|
-
/* @__PURE__ */
|
|
2438
|
-
/* @__PURE__ */
|
|
2439
|
-
/* @__PURE__ */
|
|
2768
|
+
/* @__PURE__ */ jsxs25("div", { className: "ssc__card-content", children: [
|
|
2769
|
+
/* @__PURE__ */ jsx28("h3", { className: "ssc__card-title", children: item.title }),
|
|
2770
|
+
/* @__PURE__ */ jsx28("p", { className: "ssc__card-desc", children: item.description })
|
|
2440
2771
|
] }),
|
|
2441
|
-
/* @__PURE__ */
|
|
2772
|
+
/* @__PURE__ */ jsx28("div", { className: "ssc__card-image", children: /* @__PURE__ */ jsx28(
|
|
2442
2773
|
"img",
|
|
2443
2774
|
{
|
|
2444
2775
|
src: item.imageUrl,
|
|
@@ -2456,7 +2787,7 @@ var StickyStackedCards = ({
|
|
|
2456
2787
|
};
|
|
2457
2788
|
|
|
2458
2789
|
// templates/CTABanner/CTABanner.tsx
|
|
2459
|
-
import { useRef as
|
|
2790
|
+
import { useRef as useRef9 } from "react";
|
|
2460
2791
|
import {
|
|
2461
2792
|
motion,
|
|
2462
2793
|
useScroll,
|
|
@@ -2464,7 +2795,7 @@ import {
|
|
|
2464
2795
|
useTransform,
|
|
2465
2796
|
useMotionTemplate
|
|
2466
2797
|
} from "framer-motion";
|
|
2467
|
-
import { jsx as
|
|
2798
|
+
import { jsx as jsx29, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
2468
2799
|
var ENTRANCE = {
|
|
2469
2800
|
near: 80,
|
|
2470
2801
|
mid: 130,
|
|
@@ -2710,7 +3041,7 @@ var CTABanner = ({
|
|
|
2710
3041
|
...props
|
|
2711
3042
|
}) => {
|
|
2712
3043
|
const resolvedAvatars = avatars ?? (variant === "compact" ? COMPACT_AVATAR_DATA : AVATAR_DATA);
|
|
2713
|
-
const sectionRef =
|
|
3044
|
+
const sectionRef = useRef9(null);
|
|
2714
3045
|
const { scrollYProgress } = useScroll({
|
|
2715
3046
|
target: sectionRef,
|
|
2716
3047
|
offset: ["start end", "end start"]
|
|
@@ -2728,14 +3059,14 @@ var CTABanner = ({
|
|
|
2728
3059
|
const compactXValues = useCompactAvatarXValues(smooth);
|
|
2729
3060
|
const avatarYValues = variant === "compact" ? compactYValues : standardYValues;
|
|
2730
3061
|
const avatarXValues = variant === "compact" ? compactXValues : standardXValues;
|
|
2731
|
-
return /* @__PURE__ */
|
|
3062
|
+
return /* @__PURE__ */ jsxs26(
|
|
2732
3063
|
"section",
|
|
2733
3064
|
{
|
|
2734
3065
|
ref: sectionRef,
|
|
2735
3066
|
className: ["ctab", variant === "compact" ? "ctab--compact" : "", className].filter(Boolean).join(" "),
|
|
2736
3067
|
...props,
|
|
2737
3068
|
children: [
|
|
2738
|
-
/* @__PURE__ */
|
|
3069
|
+
/* @__PURE__ */ jsx29(
|
|
2739
3070
|
motion.div,
|
|
2740
3071
|
{
|
|
2741
3072
|
className: "ctab__grid",
|
|
@@ -2743,7 +3074,7 @@ var CTABanner = ({
|
|
|
2743
3074
|
"aria-hidden": "true"
|
|
2744
3075
|
}
|
|
2745
3076
|
),
|
|
2746
|
-
/* @__PURE__ */
|
|
3077
|
+
/* @__PURE__ */ jsx29("div", { className: "ctab__inner", children: /* @__PURE__ */ jsxs26("div", { className: "ctab__stage", children: [
|
|
2747
3078
|
resolvedAvatars.map((avatar, index) => {
|
|
2748
3079
|
const posStyle = {};
|
|
2749
3080
|
if (avatar.desktopPos.left) posStyle["--av-d-left"] = avatar.desktopPos.left;
|
|
@@ -2752,7 +3083,7 @@ var CTABanner = ({
|
|
|
2752
3083
|
if (avatar.mobilePos?.left) posStyle["--av-m-left"] = avatar.mobilePos.left;
|
|
2753
3084
|
if (avatar.mobilePos?.right) posStyle["--av-m-right"] = avatar.mobilePos.right;
|
|
2754
3085
|
if (avatar.mobilePos?.top) posStyle["--av-m-top"] = avatar.mobilePos.top;
|
|
2755
|
-
return /* @__PURE__ */
|
|
3086
|
+
return /* @__PURE__ */ jsx29(
|
|
2756
3087
|
motion.div,
|
|
2757
3088
|
{
|
|
2758
3089
|
className: [
|
|
@@ -2766,7 +3097,7 @@ var CTABanner = ({
|
|
|
2766
3097
|
opacity: avatarOpacity,
|
|
2767
3098
|
filter: avatarFilter
|
|
2768
3099
|
},
|
|
2769
|
-
children: /* @__PURE__ */
|
|
3100
|
+
children: /* @__PURE__ */ jsx29(
|
|
2770
3101
|
"img",
|
|
2771
3102
|
{
|
|
2772
3103
|
src: avatar.imageUrl,
|
|
@@ -2779,14 +3110,14 @@ var CTABanner = ({
|
|
|
2779
3110
|
avatar.id
|
|
2780
3111
|
);
|
|
2781
3112
|
}),
|
|
2782
|
-
/* @__PURE__ */
|
|
3113
|
+
/* @__PURE__ */ jsxs26(
|
|
2783
3114
|
motion.div,
|
|
2784
3115
|
{
|
|
2785
3116
|
className: "ctab__hero",
|
|
2786
3117
|
style: { y: heroY, opacity: heroOpacity },
|
|
2787
3118
|
children: [
|
|
2788
|
-
/* @__PURE__ */
|
|
2789
|
-
/* @__PURE__ */
|
|
3119
|
+
/* @__PURE__ */ jsx29("h2", { className: "ctab__headline", children: headline }),
|
|
3120
|
+
/* @__PURE__ */ jsx29("a", { href: ctaHref, children: /* @__PURE__ */ jsx29(Button, { colorScheme: "black", variant: "primary", label: ctaLabel }) })
|
|
2790
3121
|
]
|
|
2791
3122
|
}
|
|
2792
3123
|
)
|
|
@@ -2797,14 +3128,14 @@ var CTABanner = ({
|
|
|
2797
3128
|
};
|
|
2798
3129
|
|
|
2799
3130
|
// components/Navbar/Navbar.tsx
|
|
2800
|
-
import { useRef as
|
|
3131
|
+
import { useRef as useRef10, useState as useState11, useEffect as useEffect8, useCallback as useCallback2 } from "react";
|
|
2801
3132
|
import { motion as motion2, AnimatePresence } from "framer-motion";
|
|
2802
3133
|
|
|
2803
3134
|
// assets/icon-globe.svg
|
|
2804
3135
|
var icon_globe_default = "./icon-globe-S54WYYEK.svg";
|
|
2805
3136
|
|
|
2806
3137
|
// components/Navbar/Navbar.tsx
|
|
2807
|
-
import { jsx as
|
|
3138
|
+
import { jsx as jsx30, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
2808
3139
|
var EASE_OUT_EXPO = [0.16, 1, 0.3, 1];
|
|
2809
3140
|
var dropdownVariants = {
|
|
2810
3141
|
hidden: { opacity: 0, scale: 0.96, y: -8 },
|
|
@@ -2818,7 +3149,7 @@ var accordionVariants = {
|
|
|
2818
3149
|
hidden: { height: 0, opacity: 0 },
|
|
2819
3150
|
visible: { height: "auto", opacity: 1 }
|
|
2820
3151
|
};
|
|
2821
|
-
var ChevronDownIcon3 = ({ className }) => /* @__PURE__ */
|
|
3152
|
+
var ChevronDownIcon3 = ({ className }) => /* @__PURE__ */ jsx30(
|
|
2822
3153
|
"svg",
|
|
2823
3154
|
{
|
|
2824
3155
|
className,
|
|
@@ -2827,7 +3158,7 @@ var ChevronDownIcon3 = ({ className }) => /* @__PURE__ */ jsx29(
|
|
|
2827
3158
|
viewBox: "0 0 14 14",
|
|
2828
3159
|
fill: "none",
|
|
2829
3160
|
"aria-hidden": "true",
|
|
2830
|
-
children: /* @__PURE__ */
|
|
3161
|
+
children: /* @__PURE__ */ jsx30(
|
|
2831
3162
|
"path",
|
|
2832
3163
|
{
|
|
2833
3164
|
d: "M2.625 4.8125L7 9.1875L11.375 4.8125",
|
|
@@ -2839,7 +3170,7 @@ var ChevronDownIcon3 = ({ className }) => /* @__PURE__ */ jsx29(
|
|
|
2839
3170
|
)
|
|
2840
3171
|
}
|
|
2841
3172
|
);
|
|
2842
|
-
var ArrowRightIcon = () => /* @__PURE__ */
|
|
3173
|
+
var ArrowRightIcon = () => /* @__PURE__ */ jsx30("svg", { width: "14", height: "14", viewBox: "0 0 14 14", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsx30(
|
|
2843
3174
|
"path",
|
|
2844
3175
|
{
|
|
2845
3176
|
d: "M2.625 7H11.375M11.375 7L7.875 3.5M11.375 7L7.875 10.5",
|
|
@@ -2849,7 +3180,7 @@ var ArrowRightIcon = () => /* @__PURE__ */ jsx29("svg", { width: "14", height: "
|
|
|
2849
3180
|
strokeLinejoin: "round"
|
|
2850
3181
|
}
|
|
2851
3182
|
) });
|
|
2852
|
-
var ArrowUpRightIcon = () => /* @__PURE__ */
|
|
3183
|
+
var ArrowUpRightIcon = () => /* @__PURE__ */ jsx30("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsx30(
|
|
2853
3184
|
"path",
|
|
2854
3185
|
{
|
|
2855
3186
|
d: "M4.5 11.5L11.5 4.5M11.5 4.5H5.5M11.5 4.5V10.5",
|
|
@@ -2859,7 +3190,7 @@ var ArrowUpRightIcon = () => /* @__PURE__ */ jsx29("svg", { width: "16", height:
|
|
|
2859
3190
|
strokeLinejoin: "round"
|
|
2860
3191
|
}
|
|
2861
3192
|
) });
|
|
2862
|
-
var BarsIcon = () => /* @__PURE__ */
|
|
3193
|
+
var BarsIcon = () => /* @__PURE__ */ jsx30("svg", { width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsx30(
|
|
2863
3194
|
"path",
|
|
2864
3195
|
{
|
|
2865
3196
|
d: "M2.5 5H17.5M2.5 10H17.5M2.5 15H17.5",
|
|
@@ -2868,7 +3199,7 @@ var BarsIcon = () => /* @__PURE__ */ jsx29("svg", { width: "20", height: "20", v
|
|
|
2868
3199
|
strokeLinecap: "round"
|
|
2869
3200
|
}
|
|
2870
3201
|
) });
|
|
2871
|
-
var XMarkIcon2 = () => /* @__PURE__ */
|
|
3202
|
+
var XMarkIcon2 = () => /* @__PURE__ */ jsx30("svg", { width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsx30(
|
|
2872
3203
|
"path",
|
|
2873
3204
|
{
|
|
2874
3205
|
d: "M15 5L5 15M5 5L15 15",
|
|
@@ -2877,7 +3208,7 @@ var XMarkIcon2 = () => /* @__PURE__ */ jsx29("svg", { width: "20", height: "20",
|
|
|
2877
3208
|
strokeLinecap: "round"
|
|
2878
3209
|
}
|
|
2879
3210
|
) });
|
|
2880
|
-
var ChevronLeftIcon = ({ className }) => /* @__PURE__ */
|
|
3211
|
+
var ChevronLeftIcon = ({ className }) => /* @__PURE__ */ jsx30(
|
|
2881
3212
|
"svg",
|
|
2882
3213
|
{
|
|
2883
3214
|
className,
|
|
@@ -2886,7 +3217,7 @@ var ChevronLeftIcon = ({ className }) => /* @__PURE__ */ jsx29(
|
|
|
2886
3217
|
viewBox: "0 0 24 24",
|
|
2887
3218
|
fill: "none",
|
|
2888
3219
|
"aria-hidden": "true",
|
|
2889
|
-
children: /* @__PURE__ */
|
|
3220
|
+
children: /* @__PURE__ */ jsx30(
|
|
2890
3221
|
"path",
|
|
2891
3222
|
{
|
|
2892
3223
|
d: "M15 18L9 12L15 6",
|
|
@@ -2898,11 +3229,11 @@ var ChevronLeftIcon = ({ className }) => /* @__PURE__ */ jsx29(
|
|
|
2898
3229
|
)
|
|
2899
3230
|
}
|
|
2900
3231
|
);
|
|
2901
|
-
var GlobeIcon = ({ className }) => /* @__PURE__ */
|
|
3232
|
+
var GlobeIcon = ({ className }) => /* @__PURE__ */ jsx30("img", { src: icon_globe_default, alt: "", "aria-hidden": "true", width: "20", height: "20", className });
|
|
2902
3233
|
var DropdownPanel = ({ item, onMouseEnter, onMouseLeave }) => {
|
|
2903
3234
|
const { dropdown } = item;
|
|
2904
3235
|
if (!dropdown) return null;
|
|
2905
|
-
return /* @__PURE__ */
|
|
3236
|
+
return /* @__PURE__ */ jsx30(
|
|
2906
3237
|
motion2.div,
|
|
2907
3238
|
{
|
|
2908
3239
|
className: "navbar__dropdown",
|
|
@@ -2913,10 +3244,10 @@ var DropdownPanel = ({ item, onMouseEnter, onMouseLeave }) => {
|
|
|
2913
3244
|
transition: { duration: 0.18, ease: EASE_OUT_EXPO },
|
|
2914
3245
|
onMouseEnter,
|
|
2915
3246
|
onMouseLeave,
|
|
2916
|
-
children: /* @__PURE__ */
|
|
2917
|
-
/* @__PURE__ */
|
|
2918
|
-
/* @__PURE__ */
|
|
2919
|
-
section.items.map((link) => /* @__PURE__ */
|
|
3247
|
+
children: /* @__PURE__ */ jsxs27("div", { className: "navbar__dropdown-inner", children: [
|
|
3248
|
+
/* @__PURE__ */ jsx30("div", { className: "navbar__dropdown-left", children: dropdown.columns.map((col, colIdx) => /* @__PURE__ */ jsx30("div", { className: "navbar__dropdown-col", children: col.sections.map((section) => /* @__PURE__ */ jsxs27("div", { className: "navbar__dropdown-col-list", children: [
|
|
3249
|
+
/* @__PURE__ */ jsx30("p", { className: "navbar__dropdown-col-title", children: section.title }),
|
|
3250
|
+
section.items.map((link) => /* @__PURE__ */ jsxs27(
|
|
2920
3251
|
"a",
|
|
2921
3252
|
{
|
|
2922
3253
|
href: link.href,
|
|
@@ -2925,24 +3256,24 @@ var DropdownPanel = ({ item, onMouseEnter, onMouseLeave }) => {
|
|
|
2925
3256
|
rel: link.external ? "noopener noreferrer" : void 0,
|
|
2926
3257
|
children: [
|
|
2927
3258
|
link.label,
|
|
2928
|
-
link.external ? /* @__PURE__ */
|
|
3259
|
+
link.external ? /* @__PURE__ */ jsx30(ArrowUpRightIcon, {}) : /* @__PURE__ */ jsx30(ArrowRightIcon, {})
|
|
2929
3260
|
]
|
|
2930
3261
|
},
|
|
2931
3262
|
link.href
|
|
2932
3263
|
))
|
|
2933
3264
|
] }, section.title)) }, colIdx)) }),
|
|
2934
|
-
dropdown.feature && /* @__PURE__ */
|
|
3265
|
+
dropdown.feature && /* @__PURE__ */ jsx30("div", { className: "navbar__dropdown-right", children: /* @__PURE__ */ jsx30(FeatureCard, { feature: dropdown.feature }) })
|
|
2935
3266
|
] })
|
|
2936
3267
|
}
|
|
2937
3268
|
);
|
|
2938
3269
|
};
|
|
2939
|
-
var FeatureCard = ({ feature, mobile }) => /* @__PURE__ */
|
|
3270
|
+
var FeatureCard = ({ feature, mobile }) => /* @__PURE__ */ jsxs27(
|
|
2940
3271
|
"div",
|
|
2941
3272
|
{
|
|
2942
3273
|
className: mobile ? "navbar__drawer-feature" : "navbar__dropdown-feature",
|
|
2943
3274
|
style: feature.backgroundImageUrl ? { backgroundImage: `url(${feature.backgroundImageUrl})` } : void 0,
|
|
2944
3275
|
children: [
|
|
2945
|
-
feature.backgroundImageUrl && /* @__PURE__ */
|
|
3276
|
+
feature.backgroundImageUrl && /* @__PURE__ */ jsx30(
|
|
2946
3277
|
"img",
|
|
2947
3278
|
{
|
|
2948
3279
|
src: feature.backgroundImageUrl,
|
|
@@ -2951,20 +3282,20 @@ var FeatureCard = ({ feature, mobile }) => /* @__PURE__ */ jsxs26(
|
|
|
2951
3282
|
"aria-hidden": "true"
|
|
2952
3283
|
}
|
|
2953
3284
|
),
|
|
2954
|
-
/* @__PURE__ */
|
|
2955
|
-
/* @__PURE__ */
|
|
2956
|
-
/* @__PURE__ */
|
|
2957
|
-
/* @__PURE__ */
|
|
2958
|
-
/* @__PURE__ */
|
|
3285
|
+
/* @__PURE__ */ jsx30("div", { className: mobile ? "navbar__drawer-feature-overlay" : "navbar__dropdown-feature-overlay", "aria-hidden": "true" }),
|
|
3286
|
+
/* @__PURE__ */ jsxs27("div", { className: mobile ? "navbar__drawer-feature-content" : "navbar__dropdown-feature-content", children: [
|
|
3287
|
+
/* @__PURE__ */ jsxs27("div", { children: [
|
|
3288
|
+
/* @__PURE__ */ jsx30("p", { className: mobile ? "navbar__drawer-feature-title" : "navbar__dropdown-feature-title", children: feature.title }),
|
|
3289
|
+
/* @__PURE__ */ jsx30("p", { className: mobile ? "navbar__drawer-feature-desc" : "navbar__dropdown-feature-desc", children: feature.description })
|
|
2959
3290
|
] }),
|
|
2960
|
-
/* @__PURE__ */
|
|
3291
|
+
/* @__PURE__ */ jsxs27(
|
|
2961
3292
|
"a",
|
|
2962
3293
|
{
|
|
2963
3294
|
href: feature.ctaHref,
|
|
2964
3295
|
className: mobile ? "navbar__drawer-feature-cta" : "navbar__dropdown-feature-cta",
|
|
2965
3296
|
children: [
|
|
2966
3297
|
feature.ctaLabel,
|
|
2967
|
-
/* @__PURE__ */
|
|
3298
|
+
/* @__PURE__ */ jsx30(ArrowRightIcon, {})
|
|
2968
3299
|
]
|
|
2969
3300
|
}
|
|
2970
3301
|
)
|
|
@@ -2974,8 +3305,8 @@ var FeatureCard = ({ feature, mobile }) => /* @__PURE__ */ jsxs26(
|
|
|
2974
3305
|
);
|
|
2975
3306
|
var DrawerAccordion = ({ item, isOpen, onToggle }) => {
|
|
2976
3307
|
const { dropdown } = item;
|
|
2977
|
-
return /* @__PURE__ */
|
|
2978
|
-
/* @__PURE__ */
|
|
3308
|
+
return /* @__PURE__ */ jsxs27("div", { className: "navbar__drawer-item", children: [
|
|
3309
|
+
/* @__PURE__ */ jsxs27(
|
|
2979
3310
|
"button",
|
|
2980
3311
|
{
|
|
2981
3312
|
className: `navbar__drawer-trigger ${isOpen ? "navbar__drawer-trigger--open" : ""}`,
|
|
@@ -2983,11 +3314,11 @@ var DrawerAccordion = ({ item, isOpen, onToggle }) => {
|
|
|
2983
3314
|
"aria-expanded": isOpen,
|
|
2984
3315
|
children: [
|
|
2985
3316
|
item.label,
|
|
2986
|
-
/* @__PURE__ */
|
|
3317
|
+
/* @__PURE__ */ jsx30(ChevronDownIcon3, { className: "navbar__drawer-trigger__chevron" })
|
|
2987
3318
|
]
|
|
2988
3319
|
}
|
|
2989
3320
|
),
|
|
2990
|
-
/* @__PURE__ */
|
|
3321
|
+
/* @__PURE__ */ jsx30(AnimatePresence, { initial: false, children: isOpen && dropdown && /* @__PURE__ */ jsx30(
|
|
2991
3322
|
motion2.div,
|
|
2992
3323
|
{
|
|
2993
3324
|
className: "navbar__drawer-panel",
|
|
@@ -2996,10 +3327,10 @@ var DrawerAccordion = ({ item, isOpen, onToggle }) => {
|
|
|
2996
3327
|
animate: "visible",
|
|
2997
3328
|
exit: "hidden",
|
|
2998
3329
|
transition: { duration: 0.22, ease: EASE_OUT_EXPO },
|
|
2999
|
-
children: /* @__PURE__ */
|
|
3000
|
-
/* @__PURE__ */
|
|
3001
|
-
/* @__PURE__ */
|
|
3002
|
-
/* @__PURE__ */
|
|
3330
|
+
children: /* @__PURE__ */ jsxs27("div", { className: "navbar__drawer-panel-inner", children: [
|
|
3331
|
+
/* @__PURE__ */ jsx30("div", { className: "navbar__drawer-panel-cols", children: dropdown.columns.map((col, colIdx) => /* @__PURE__ */ jsx30("div", { className: "navbar__drawer-panel-col", children: col.sections.map((section) => /* @__PURE__ */ jsxs27("div", { className: "navbar__drawer-col-section", children: [
|
|
3332
|
+
/* @__PURE__ */ jsx30("p", { className: "navbar__drawer-col-title", children: section.title }),
|
|
3333
|
+
/* @__PURE__ */ jsx30("div", { className: "navbar__drawer-col-links", children: section.items.map((link) => /* @__PURE__ */ jsx30(
|
|
3003
3334
|
"a",
|
|
3004
3335
|
{
|
|
3005
3336
|
href: link.href,
|
|
@@ -3011,7 +3342,7 @@ var DrawerAccordion = ({ item, isOpen, onToggle }) => {
|
|
|
3011
3342
|
link.href
|
|
3012
3343
|
)) })
|
|
3013
3344
|
] }, section.title)) }, colIdx)) }),
|
|
3014
|
-
dropdown.feature && /* @__PURE__ */
|
|
3345
|
+
dropdown.feature && /* @__PURE__ */ jsx30(FeatureCard, { feature: dropdown.feature, mobile: true })
|
|
3015
3346
|
] })
|
|
3016
3347
|
}
|
|
3017
3348
|
) })
|
|
@@ -3035,24 +3366,24 @@ var Navbar = ({
|
|
|
3035
3366
|
className,
|
|
3036
3367
|
...props
|
|
3037
3368
|
}) => {
|
|
3038
|
-
const [openDropdown, setOpenDropdown] =
|
|
3039
|
-
const [mobileOpen, setMobileOpen] =
|
|
3040
|
-
const [mobileExpanded, setMobileExpanded] =
|
|
3041
|
-
const [scrolled, setScrolled] =
|
|
3042
|
-
const [langDropdownOpen, setLangDropdownOpen] =
|
|
3043
|
-
const [mobileLangOpen, setMobileLangOpen] =
|
|
3044
|
-
const hoverTimeoutRef =
|
|
3045
|
-
const langHoverTimeoutRef =
|
|
3046
|
-
const pillAreaRef =
|
|
3047
|
-
const langBtnRef =
|
|
3369
|
+
const [openDropdown, setOpenDropdown] = useState11(null);
|
|
3370
|
+
const [mobileOpen, setMobileOpen] = useState11(false);
|
|
3371
|
+
const [mobileExpanded, setMobileExpanded] = useState11(null);
|
|
3372
|
+
const [scrolled, setScrolled] = useState11(false);
|
|
3373
|
+
const [langDropdownOpen, setLangDropdownOpen] = useState11(false);
|
|
3374
|
+
const [mobileLangOpen, setMobileLangOpen] = useState11(false);
|
|
3375
|
+
const hoverTimeoutRef = useRef10(null);
|
|
3376
|
+
const langHoverTimeoutRef = useRef10(null);
|
|
3377
|
+
const pillAreaRef = useRef10(null);
|
|
3378
|
+
const langBtnRef = useRef10(null);
|
|
3048
3379
|
const hasLangDropdown = Boolean(languageItems && languageItems.length > 0);
|
|
3049
3380
|
const resolvedLogo = theme === "light" ? logoSrcDark ?? logoSrc : logoSrc;
|
|
3050
|
-
|
|
3381
|
+
useEffect8(() => {
|
|
3051
3382
|
const onScroll = () => setScrolled(window.scrollY > 0);
|
|
3052
3383
|
window.addEventListener("scroll", onScroll, { passive: true });
|
|
3053
3384
|
return () => window.removeEventListener("scroll", onScroll);
|
|
3054
3385
|
}, []);
|
|
3055
|
-
|
|
3386
|
+
useEffect8(() => {
|
|
3056
3387
|
const onKey = (e) => {
|
|
3057
3388
|
if (e.key === "Escape") {
|
|
3058
3389
|
setOpenDropdown(null);
|
|
@@ -3063,16 +3394,16 @@ var Navbar = ({
|
|
|
3063
3394
|
document.addEventListener("keydown", onKey);
|
|
3064
3395
|
return () => document.removeEventListener("keydown", onKey);
|
|
3065
3396
|
}, []);
|
|
3066
|
-
|
|
3397
|
+
useEffect8(() => {
|
|
3067
3398
|
if (!mobileOpen) setMobileLangOpen(false);
|
|
3068
3399
|
}, [mobileOpen]);
|
|
3069
|
-
|
|
3400
|
+
useEffect8(() => {
|
|
3070
3401
|
document.body.style.overflow = mobileOpen ? "hidden" : "";
|
|
3071
3402
|
return () => {
|
|
3072
3403
|
document.body.style.overflow = "";
|
|
3073
3404
|
};
|
|
3074
3405
|
}, [mobileOpen]);
|
|
3075
|
-
|
|
3406
|
+
useEffect8(() => {
|
|
3076
3407
|
if (!openDropdown) return;
|
|
3077
3408
|
const onPointerDown = (e) => {
|
|
3078
3409
|
if (pillAreaRef.current && !pillAreaRef.current.contains(e.target)) {
|
|
@@ -3116,20 +3447,20 @@ var Navbar = ({
|
|
|
3116
3447
|
hoverTimeoutRef.current = setTimeout(() => setOpenDropdown(null), 120);
|
|
3117
3448
|
}, [clearHoverTimeout]);
|
|
3118
3449
|
const activeDropdownItem = navItems.find((item) => item.label === openDropdown);
|
|
3119
|
-
return /* @__PURE__ */
|
|
3450
|
+
return /* @__PURE__ */ jsxs27(
|
|
3120
3451
|
"nav",
|
|
3121
3452
|
{
|
|
3122
3453
|
className: ["navbar", `navbar--${theme}`, scrolled && "navbar--scrolled", mobileOpen && "navbar--menu-open", className].filter(Boolean).join(" "),
|
|
3123
3454
|
...props,
|
|
3124
3455
|
children: [
|
|
3125
|
-
/* @__PURE__ */
|
|
3126
|
-
/* @__PURE__ */
|
|
3127
|
-
/* @__PURE__ */
|
|
3128
|
-
/* @__PURE__ */
|
|
3129
|
-
/* @__PURE__ */
|
|
3456
|
+
/* @__PURE__ */ jsxs27("div", { className: "navbar__bar", children: [
|
|
3457
|
+
/* @__PURE__ */ jsx30("a", { href: logoHref, className: "navbar__logo", "aria-label": "Home", children: /* @__PURE__ */ jsx30("img", { src: resolvedLogo, alt: "Logo" }) }),
|
|
3458
|
+
/* @__PURE__ */ jsx30("div", { className: "navbar__nav-center", ref: pillAreaRef, children: /* @__PURE__ */ jsxs27("div", { className: "navbar__pill", children: [
|
|
3459
|
+
/* @__PURE__ */ jsx30("a", { href: logoHref, className: "navbar__pill-logo", "aria-label": "Home", children: /* @__PURE__ */ jsx30("img", { src: logoSrcDark ?? logoSrc, alt: "Logo" }) }),
|
|
3460
|
+
/* @__PURE__ */ jsxs27("div", { className: "navbar__nav-group", children: [
|
|
3130
3461
|
navItems.map((item) => {
|
|
3131
3462
|
if (item.external) {
|
|
3132
|
-
return /* @__PURE__ */
|
|
3463
|
+
return /* @__PURE__ */ jsxs27(
|
|
3133
3464
|
"a",
|
|
3134
3465
|
{
|
|
3135
3466
|
href: item.href,
|
|
@@ -3138,14 +3469,14 @@ var Navbar = ({
|
|
|
3138
3469
|
rel: "noopener noreferrer",
|
|
3139
3470
|
children: [
|
|
3140
3471
|
item.label,
|
|
3141
|
-
/* @__PURE__ */
|
|
3472
|
+
/* @__PURE__ */ jsx30(ArrowUpRightIcon, {})
|
|
3142
3473
|
]
|
|
3143
3474
|
},
|
|
3144
3475
|
item.label
|
|
3145
3476
|
);
|
|
3146
3477
|
}
|
|
3147
3478
|
if (item.dropdown) {
|
|
3148
|
-
return /* @__PURE__ */
|
|
3479
|
+
return /* @__PURE__ */ jsxs27(
|
|
3149
3480
|
"button",
|
|
3150
3481
|
{
|
|
3151
3482
|
className: [
|
|
@@ -3158,21 +3489,21 @@ var Navbar = ({
|
|
|
3158
3489
|
"aria-haspopup": "true",
|
|
3159
3490
|
children: [
|
|
3160
3491
|
item.label,
|
|
3161
|
-
/* @__PURE__ */
|
|
3492
|
+
/* @__PURE__ */ jsx30(ChevronDownIcon3, { className: "navbar__nav-item__chevron" })
|
|
3162
3493
|
]
|
|
3163
3494
|
},
|
|
3164
3495
|
item.label
|
|
3165
3496
|
);
|
|
3166
3497
|
}
|
|
3167
|
-
return /* @__PURE__ */
|
|
3498
|
+
return /* @__PURE__ */ jsx30("a", { href: item.href, className: "navbar__nav-item", children: item.label }, item.label);
|
|
3168
3499
|
}),
|
|
3169
|
-
languageLabel && /* @__PURE__ */
|
|
3500
|
+
languageLabel && /* @__PURE__ */ jsx30(
|
|
3170
3501
|
"div",
|
|
3171
3502
|
{
|
|
3172
3503
|
className: "navbar__lang-wrapper",
|
|
3173
3504
|
onMouseEnter: hasLangDropdown ? handleLangEnter : void 0,
|
|
3174
3505
|
onMouseLeave: hasLangDropdown ? handleLangLeave : void 0,
|
|
3175
|
-
children: /* @__PURE__ */
|
|
3506
|
+
children: /* @__PURE__ */ jsxs27(
|
|
3176
3507
|
"button",
|
|
3177
3508
|
{
|
|
3178
3509
|
ref: langBtnRef,
|
|
@@ -3185,7 +3516,7 @@ var Navbar = ({
|
|
|
3185
3516
|
"aria-haspopup": hasLangDropdown ? "true" : void 0,
|
|
3186
3517
|
"aria-expanded": hasLangDropdown ? langDropdownOpen : void 0,
|
|
3187
3518
|
children: [
|
|
3188
|
-
/* @__PURE__ */
|
|
3519
|
+
/* @__PURE__ */ jsx30(GlobeIcon, { className: "navbar__lang-globe" }),
|
|
3189
3520
|
languageLabel
|
|
3190
3521
|
]
|
|
3191
3522
|
}
|
|
@@ -3193,12 +3524,12 @@ var Navbar = ({
|
|
|
3193
3524
|
}
|
|
3194
3525
|
)
|
|
3195
3526
|
] }),
|
|
3196
|
-
/* @__PURE__ */
|
|
3197
|
-
loginHref && /* @__PURE__ */
|
|
3198
|
-
ctaHref && /* @__PURE__ */
|
|
3527
|
+
/* @__PURE__ */ jsxs27("div", { className: "navbar__pill-actions", children: [
|
|
3528
|
+
loginHref && /* @__PURE__ */ jsx30("a", { href: loginHref, children: /* @__PURE__ */ jsx30(Button, { colorScheme: "black", variant: "secondary", label: loginLabel }) }),
|
|
3529
|
+
ctaHref && /* @__PURE__ */ jsx30("a", { href: ctaHref, children: /* @__PURE__ */ jsx30(Button, { colorScheme: "coral", variant: "primary", label: ctaLabel }) })
|
|
3199
3530
|
] })
|
|
3200
3531
|
] }) }),
|
|
3201
|
-
/* @__PURE__ */
|
|
3532
|
+
/* @__PURE__ */ jsx30(AnimatePresence, { children: openDropdown && activeDropdownItem?.dropdown && /* @__PURE__ */ jsx30(
|
|
3202
3533
|
DropdownPanel,
|
|
3203
3534
|
{
|
|
3204
3535
|
item: activeDropdownItem,
|
|
@@ -3207,7 +3538,7 @@ var Navbar = ({
|
|
|
3207
3538
|
},
|
|
3208
3539
|
"dropdown"
|
|
3209
3540
|
) }),
|
|
3210
|
-
/* @__PURE__ */
|
|
3541
|
+
/* @__PURE__ */ jsx30(AnimatePresence, { children: hasLangDropdown && langDropdownOpen && /* @__PURE__ */ jsx30(
|
|
3211
3542
|
motion2.div,
|
|
3212
3543
|
{
|
|
3213
3544
|
className: "navbar__lang-dropdown",
|
|
@@ -3218,12 +3549,12 @@ var Navbar = ({
|
|
|
3218
3549
|
transition: { duration: 0.18, ease: EASE_OUT_EXPO },
|
|
3219
3550
|
onMouseEnter: clearLangHoverTimeout,
|
|
3220
3551
|
onMouseLeave: handleLangLeave,
|
|
3221
|
-
children: /* @__PURE__ */
|
|
3552
|
+
children: /* @__PURE__ */ jsx30(
|
|
3222
3553
|
"div",
|
|
3223
3554
|
{
|
|
3224
3555
|
className: "navbar__lang-dropdown-grid",
|
|
3225
3556
|
style: { "--lang-rows": Math.ceil(languageItems.length / 3) },
|
|
3226
|
-
children: languageItems.map((lang) => /* @__PURE__ */
|
|
3557
|
+
children: languageItems.map((lang) => /* @__PURE__ */ jsx30(
|
|
3227
3558
|
"button",
|
|
3228
3559
|
{
|
|
3229
3560
|
className: [
|
|
@@ -3239,8 +3570,8 @@ var Navbar = ({
|
|
|
3239
3570
|
)
|
|
3240
3571
|
}
|
|
3241
3572
|
) }),
|
|
3242
|
-
/* @__PURE__ */
|
|
3243
|
-
loginHref && /* @__PURE__ */
|
|
3573
|
+
/* @__PURE__ */ jsxs27("div", { className: "navbar__actions", children: [
|
|
3574
|
+
loginHref && /* @__PURE__ */ jsx30("a", { href: loginHref, className: "navbar__actions-login", children: /* @__PURE__ */ jsx30(
|
|
3244
3575
|
Button,
|
|
3245
3576
|
{
|
|
3246
3577
|
colorScheme: theme === "dark" ? "white" : "black",
|
|
@@ -3248,10 +3579,10 @@ var Navbar = ({
|
|
|
3248
3579
|
label: loginLabel
|
|
3249
3580
|
}
|
|
3250
3581
|
) }),
|
|
3251
|
-
ctaHref && /* @__PURE__ */
|
|
3582
|
+
ctaHref && /* @__PURE__ */ jsx30("a", { href: ctaHref, children: /* @__PURE__ */ jsx30(Button, { colorScheme: "coral", variant: "primary", label: ctaLabel }) })
|
|
3252
3583
|
] }),
|
|
3253
|
-
/* @__PURE__ */
|
|
3254
|
-
loginHref && /* @__PURE__ */
|
|
3584
|
+
/* @__PURE__ */ jsxs27("div", { className: "navbar__mobile-actions", children: [
|
|
3585
|
+
loginHref && /* @__PURE__ */ jsx30("a", { href: loginHref, children: /* @__PURE__ */ jsx30(
|
|
3255
3586
|
Button,
|
|
3256
3587
|
{
|
|
3257
3588
|
colorScheme: scrolled || theme === "light" ? "black" : "white",
|
|
@@ -3259,18 +3590,18 @@ var Navbar = ({
|
|
|
3259
3590
|
label: loginLabel
|
|
3260
3591
|
}
|
|
3261
3592
|
) }),
|
|
3262
|
-
/* @__PURE__ */
|
|
3593
|
+
/* @__PURE__ */ jsx30(
|
|
3263
3594
|
"button",
|
|
3264
3595
|
{
|
|
3265
3596
|
className: "navbar__mobile-trigger",
|
|
3266
3597
|
onClick: () => setMobileOpen((o) => !o),
|
|
3267
3598
|
"aria-label": mobileOpen ? "Close navigation menu" : "Open navigation menu",
|
|
3268
|
-
children: mobileOpen ? /* @__PURE__ */
|
|
3599
|
+
children: mobileOpen ? /* @__PURE__ */ jsx30(XMarkIcon2, {}) : /* @__PURE__ */ jsx30(BarsIcon, {})
|
|
3269
3600
|
}
|
|
3270
3601
|
)
|
|
3271
3602
|
] })
|
|
3272
3603
|
] }),
|
|
3273
|
-
/* @__PURE__ */
|
|
3604
|
+
/* @__PURE__ */ jsx30("div", { className: "navbar__drawer-clip", children: /* @__PURE__ */ jsx30(AnimatePresence, { children: mobileOpen && /* @__PURE__ */ jsxs27(
|
|
3274
3605
|
motion2.div,
|
|
3275
3606
|
{
|
|
3276
3607
|
className: "navbar__drawer",
|
|
@@ -3283,10 +3614,10 @@ var Navbar = ({
|
|
|
3283
3614
|
role: "dialog",
|
|
3284
3615
|
"aria-label": "Navigation menu",
|
|
3285
3616
|
children: [
|
|
3286
|
-
/* @__PURE__ */
|
|
3617
|
+
/* @__PURE__ */ jsxs27("nav", { className: "navbar__drawer-nav", children: [
|
|
3287
3618
|
navItems.map((item) => {
|
|
3288
3619
|
if (item.dropdown) {
|
|
3289
|
-
return /* @__PURE__ */
|
|
3620
|
+
return /* @__PURE__ */ jsx30(
|
|
3290
3621
|
DrawerAccordion,
|
|
3291
3622
|
{
|
|
3292
3623
|
item,
|
|
@@ -3298,7 +3629,7 @@ var Navbar = ({
|
|
|
3298
3629
|
item.label
|
|
3299
3630
|
);
|
|
3300
3631
|
}
|
|
3301
|
-
return /* @__PURE__ */
|
|
3632
|
+
return /* @__PURE__ */ jsxs27(
|
|
3302
3633
|
"a",
|
|
3303
3634
|
{
|
|
3304
3635
|
href: item.href,
|
|
@@ -3307,30 +3638,30 @@ var Navbar = ({
|
|
|
3307
3638
|
rel: item.external ? "noopener noreferrer" : void 0,
|
|
3308
3639
|
children: [
|
|
3309
3640
|
item.label,
|
|
3310
|
-
item.external && /* @__PURE__ */
|
|
3641
|
+
item.external && /* @__PURE__ */ jsx30(ArrowUpRightIcon, {})
|
|
3311
3642
|
]
|
|
3312
3643
|
},
|
|
3313
3644
|
item.label
|
|
3314
3645
|
);
|
|
3315
3646
|
}),
|
|
3316
|
-
languageLabel && !hasLangDropdown && /* @__PURE__ */
|
|
3317
|
-
/* @__PURE__ */
|
|
3647
|
+
languageLabel && !hasLangDropdown && /* @__PURE__ */ jsxs27("button", { className: "navbar__drawer-lang", onClick: onLanguageClick, children: [
|
|
3648
|
+
/* @__PURE__ */ jsx30(GlobeIcon, { className: "navbar__lang-globe" }),
|
|
3318
3649
|
languageLabel
|
|
3319
3650
|
] }),
|
|
3320
|
-
languageLabel && hasLangDropdown && /* @__PURE__ */
|
|
3651
|
+
languageLabel && hasLangDropdown && /* @__PURE__ */ jsxs27(
|
|
3321
3652
|
"button",
|
|
3322
3653
|
{
|
|
3323
3654
|
className: "navbar__drawer-lang",
|
|
3324
3655
|
onClick: () => setMobileLangOpen(true),
|
|
3325
3656
|
children: [
|
|
3326
|
-
/* @__PURE__ */
|
|
3657
|
+
/* @__PURE__ */ jsx30(GlobeIcon, { className: "navbar__lang-globe" }),
|
|
3327
3658
|
languageLabel
|
|
3328
3659
|
]
|
|
3329
3660
|
}
|
|
3330
3661
|
)
|
|
3331
3662
|
] }),
|
|
3332
|
-
!mobileLangOpen && /* @__PURE__ */
|
|
3333
|
-
loginHref && /* @__PURE__ */
|
|
3663
|
+
!mobileLangOpen && /* @__PURE__ */ jsxs27("div", { className: "navbar__drawer-footer", children: [
|
|
3664
|
+
loginHref && /* @__PURE__ */ jsx30("a", { href: loginHref, style: { display: "block" }, children: /* @__PURE__ */ jsx30(
|
|
3334
3665
|
Button,
|
|
3335
3666
|
{
|
|
3336
3667
|
colorScheme: "black",
|
|
@@ -3339,7 +3670,7 @@ var Navbar = ({
|
|
|
3339
3670
|
fullWidth: true
|
|
3340
3671
|
}
|
|
3341
3672
|
) }),
|
|
3342
|
-
ctaHref && /* @__PURE__ */
|
|
3673
|
+
ctaHref && /* @__PURE__ */ jsx30("a", { href: ctaHref, style: { display: "block" }, children: /* @__PURE__ */ jsx30(
|
|
3343
3674
|
Button,
|
|
3344
3675
|
{
|
|
3345
3676
|
colorScheme: "coral",
|
|
@@ -3349,7 +3680,7 @@ var Navbar = ({
|
|
|
3349
3680
|
}
|
|
3350
3681
|
) })
|
|
3351
3682
|
] }),
|
|
3352
|
-
/* @__PURE__ */
|
|
3683
|
+
/* @__PURE__ */ jsx30(AnimatePresence, { children: hasLangDropdown && mobileLangOpen && /* @__PURE__ */ jsxs27(
|
|
3353
3684
|
motion2.div,
|
|
3354
3685
|
{
|
|
3355
3686
|
className: "navbar__drawer-lang-panel",
|
|
@@ -3358,16 +3689,16 @@ var Navbar = ({
|
|
|
3358
3689
|
exit: { y: "100%" },
|
|
3359
3690
|
transition: { duration: 0.25, ease: EASE_OUT_EXPO },
|
|
3360
3691
|
children: [
|
|
3361
|
-
/* @__PURE__ */
|
|
3692
|
+
/* @__PURE__ */ jsx30(
|
|
3362
3693
|
"button",
|
|
3363
3694
|
{
|
|
3364
3695
|
className: "navbar__drawer-lang-back",
|
|
3365
3696
|
onClick: () => setMobileLangOpen(false),
|
|
3366
3697
|
"aria-label": "Back to menu",
|
|
3367
|
-
children: /* @__PURE__ */
|
|
3698
|
+
children: /* @__PURE__ */ jsx30(ChevronLeftIcon, {})
|
|
3368
3699
|
}
|
|
3369
3700
|
),
|
|
3370
|
-
/* @__PURE__ */
|
|
3701
|
+
/* @__PURE__ */ jsx30("div", { className: "navbar__drawer-lang-grid", children: languageItems.map((lang) => /* @__PURE__ */ jsx30(
|
|
3371
3702
|
"button",
|
|
3372
3703
|
{
|
|
3373
3704
|
className: [
|
|
@@ -3391,7 +3722,7 @@ var Navbar = ({
|
|
|
3391
3722
|
};
|
|
3392
3723
|
|
|
3393
3724
|
// templates/DayNightTransition/DayNightTransition.tsx
|
|
3394
|
-
import { useEffect as
|
|
3725
|
+
import { useEffect as useEffect9, useLayoutEffect as useLayoutEffect2, useRef as useRef11, useState as useState12 } from "react";
|
|
3395
3726
|
import {
|
|
3396
3727
|
motion as motion3,
|
|
3397
3728
|
useScroll as useScroll2,
|
|
@@ -3474,7 +3805,7 @@ function webflowV2DayClipPercent(t, media) {
|
|
|
3474
3805
|
}
|
|
3475
3806
|
|
|
3476
3807
|
// templates/DayNightTransition/DayNightTransition.tsx
|
|
3477
|
-
import { Fragment as Fragment3, jsx as
|
|
3808
|
+
import { Fragment as Fragment3, jsx as jsx31, jsxs as jsxs28 } from "react/jsx-runtime";
|
|
3478
3809
|
var SPRING2 = { stiffness: 80, damping: 30, restDelta: 1e-3 };
|
|
3479
3810
|
var FADE_START = 0.35;
|
|
3480
3811
|
var FADE_END = 0.65;
|
|
@@ -3506,13 +3837,13 @@ var DayNightTransition = ({
|
|
|
3506
3837
|
className,
|
|
3507
3838
|
...props
|
|
3508
3839
|
}) => {
|
|
3509
|
-
const wrapperRef =
|
|
3510
|
-
const dayWordRef =
|
|
3511
|
-
const [nightMarginStart, setNightMarginStart] =
|
|
3512
|
-
const [nightMarginEnd, setNightMarginEnd] =
|
|
3513
|
-
const [ixMedia, setIxMedia] =
|
|
3840
|
+
const wrapperRef = useRef11(null);
|
|
3841
|
+
const dayWordRef = useRef11(null);
|
|
3842
|
+
const [nightMarginStart, setNightMarginStart] = useState12("0px");
|
|
3843
|
+
const [nightMarginEnd, setNightMarginEnd] = useState12("0px");
|
|
3844
|
+
const [ixMedia, setIxMedia] = useState12("desktop");
|
|
3514
3845
|
const webflowV2 = scrollPreset === "webflow-day-night-v2";
|
|
3515
|
-
|
|
3846
|
+
useEffect9(() => {
|
|
3516
3847
|
const mq = window.matchMedia("(max-width: 991px)");
|
|
3517
3848
|
const sync = () => setIxMedia(mq.matches ? "mobile" : "desktop");
|
|
3518
3849
|
sync();
|
|
@@ -3611,15 +3942,15 @@ var DayNightTransition = ({
|
|
|
3611
3942
|
descriptionLevel === "body-lg" && "dnt--desc-body-lg",
|
|
3612
3943
|
className
|
|
3613
3944
|
].filter(Boolean).join(" ");
|
|
3614
|
-
return /* @__PURE__ */
|
|
3945
|
+
return /* @__PURE__ */ jsxs28(
|
|
3615
3946
|
"div",
|
|
3616
3947
|
{
|
|
3617
3948
|
ref: wrapperRef,
|
|
3618
3949
|
className: rootClass,
|
|
3619
3950
|
...props,
|
|
3620
3951
|
children: [
|
|
3621
|
-
webflowV2 && /* @__PURE__ */
|
|
3622
|
-
/* @__PURE__ */
|
|
3952
|
+
webflowV2 && /* @__PURE__ */ jsxs28("div", { className: "dnt__v2-background-wrapper", "aria-hidden": "true", children: [
|
|
3953
|
+
/* @__PURE__ */ jsx31(
|
|
3623
3954
|
motion3.div,
|
|
3624
3955
|
{
|
|
3625
3956
|
className: "dnt__v2-bg-day trade-day-night_background-day is-alternative",
|
|
@@ -3629,7 +3960,7 @@ var DayNightTransition = ({
|
|
|
3629
3960
|
}
|
|
3630
3961
|
}
|
|
3631
3962
|
),
|
|
3632
|
-
/* @__PURE__ */
|
|
3963
|
+
/* @__PURE__ */ jsx31(
|
|
3633
3964
|
"div",
|
|
3634
3965
|
{
|
|
3635
3966
|
className: "dnt__v2-bg-night trade-day-night_background-night is-alternative",
|
|
@@ -3637,9 +3968,9 @@ var DayNightTransition = ({
|
|
|
3637
3968
|
}
|
|
3638
3969
|
)
|
|
3639
3970
|
] }),
|
|
3640
|
-
/* @__PURE__ */
|
|
3641
|
-
!webflowV2 && /* @__PURE__ */
|
|
3642
|
-
/* @__PURE__ */
|
|
3971
|
+
/* @__PURE__ */ jsxs28("div", { className: webflowV2 ? "dnt__sticky dnt__sticky--webflow-v2" : "dnt__sticky", children: [
|
|
3972
|
+
!webflowV2 && /* @__PURE__ */ jsxs28(Fragment3, { children: [
|
|
3973
|
+
/* @__PURE__ */ jsx31(
|
|
3643
3974
|
"img",
|
|
3644
3975
|
{
|
|
3645
3976
|
className: "dnt__bg dnt__bg--day",
|
|
@@ -3649,7 +3980,7 @@ var DayNightTransition = ({
|
|
|
3649
3980
|
draggable: false
|
|
3650
3981
|
}
|
|
3651
3982
|
),
|
|
3652
|
-
/* @__PURE__ */
|
|
3983
|
+
/* @__PURE__ */ jsx31(
|
|
3653
3984
|
motion3.img,
|
|
3654
3985
|
{
|
|
3655
3986
|
className: "dnt__bg dnt__bg--night",
|
|
@@ -3661,17 +3992,17 @@ var DayNightTransition = ({
|
|
|
3661
3992
|
}
|
|
3662
3993
|
)
|
|
3663
3994
|
] }),
|
|
3664
|
-
/* @__PURE__ */
|
|
3665
|
-
useInlineHeadline && inlineDayNightHeadline ? /* @__PURE__ */
|
|
3995
|
+
/* @__PURE__ */ jsx31("div", { className: "dnt__content", children: /* @__PURE__ */ jsx31("div", { className: "dnt__inner", children: webflowV2 ? /* @__PURE__ */ jsxs28("div", { className: "dnt__text-wrap", children: [
|
|
3996
|
+
useInlineHeadline && inlineDayNightHeadline ? /* @__PURE__ */ jsxs28(
|
|
3666
3997
|
MotionHeadline,
|
|
3667
3998
|
{
|
|
3668
3999
|
className: "dnt__headline dnt__headline--inline-day-night",
|
|
3669
4000
|
style: { color: v2TitleColor },
|
|
3670
4001
|
"aria-label": `${inlineDayNightHeadline.prefix}${inlineDayNightHeadline.dayWord} / ${inlineDayNightHeadline.prefix}${inlineDayNightHeadline.nightWord}`,
|
|
3671
4002
|
children: [
|
|
3672
|
-
/* @__PURE__ */
|
|
3673
|
-
/* @__PURE__ */
|
|
3674
|
-
/* @__PURE__ */
|
|
4003
|
+
/* @__PURE__ */ jsx31("span", { className: "dnt__headline-prefix", children: inlineDayNightHeadline.prefix }),
|
|
4004
|
+
/* @__PURE__ */ jsxs28("span", { className: "dnt__headline-pair", children: [
|
|
4005
|
+
/* @__PURE__ */ jsx31(
|
|
3675
4006
|
motion3.span,
|
|
3676
4007
|
{
|
|
3677
4008
|
ref: dayWordRef,
|
|
@@ -3680,7 +4011,7 @@ var DayNightTransition = ({
|
|
|
3680
4011
|
children: inlineDayNightHeadline.dayWord
|
|
3681
4012
|
}
|
|
3682
4013
|
),
|
|
3683
|
-
/* @__PURE__ */
|
|
4014
|
+
/* @__PURE__ */ jsx31(
|
|
3684
4015
|
motion3.span,
|
|
3685
4016
|
{
|
|
3686
4017
|
className: "dnt__headline-wnight",
|
|
@@ -3695,8 +4026,8 @@ var DayNightTransition = ({
|
|
|
3695
4026
|
] })
|
|
3696
4027
|
]
|
|
3697
4028
|
}
|
|
3698
|
-
) : /* @__PURE__ */
|
|
3699
|
-
/* @__PURE__ */
|
|
4029
|
+
) : /* @__PURE__ */ jsxs28("div", { className: "dnt__crossfade-wrap", children: [
|
|
4030
|
+
/* @__PURE__ */ jsx31(
|
|
3700
4031
|
MotionHeadline,
|
|
3701
4032
|
{
|
|
3702
4033
|
className: "dnt__headline",
|
|
@@ -3704,7 +4035,7 @@ var DayNightTransition = ({
|
|
|
3704
4035
|
children: dayHeadline
|
|
3705
4036
|
}
|
|
3706
4037
|
),
|
|
3707
|
-
/* @__PURE__ */
|
|
4038
|
+
/* @__PURE__ */ jsx31(
|
|
3708
4039
|
MotionHeadline,
|
|
3709
4040
|
{
|
|
3710
4041
|
className: "dnt__headline",
|
|
@@ -3714,8 +4045,8 @@ var DayNightTransition = ({
|
|
|
3714
4045
|
}
|
|
3715
4046
|
)
|
|
3716
4047
|
] }),
|
|
3717
|
-
hasDescription && /* @__PURE__ */
|
|
3718
|
-
/* @__PURE__ */
|
|
4048
|
+
hasDescription && /* @__PURE__ */ jsxs28("div", { className: "dnt__crossfade-wrap", children: [
|
|
4049
|
+
/* @__PURE__ */ jsx31(
|
|
3719
4050
|
motion3.p,
|
|
3720
4051
|
{
|
|
3721
4052
|
className: "dnt__description",
|
|
@@ -3726,7 +4057,7 @@ var DayNightTransition = ({
|
|
|
3726
4057
|
children: dayDescription ?? ""
|
|
3727
4058
|
}
|
|
3728
4059
|
),
|
|
3729
|
-
/* @__PURE__ */
|
|
4060
|
+
/* @__PURE__ */ jsx31(
|
|
3730
4061
|
motion3.p,
|
|
3731
4062
|
{
|
|
3732
4063
|
className: "dnt__description",
|
|
@@ -3739,22 +4070,22 @@ var DayNightTransition = ({
|
|
|
3739
4070
|
}
|
|
3740
4071
|
)
|
|
3741
4072
|
] }),
|
|
3742
|
-
!hideCta && /* @__PURE__ */
|
|
3743
|
-
] }) : /* @__PURE__ */
|
|
4073
|
+
!hideCta && /* @__PURE__ */ jsx31("a", { href: ctaHref, className: "dnt__btn", children: ctaLabel })
|
|
4074
|
+
] }) : /* @__PURE__ */ jsxs28(
|
|
3744
4075
|
motion3.div,
|
|
3745
4076
|
{
|
|
3746
4077
|
className: "dnt__text-wrap",
|
|
3747
4078
|
style: { color: textColor },
|
|
3748
4079
|
children: [
|
|
3749
|
-
useInlineHeadline && inlineDayNightHeadline ? /* @__PURE__ */
|
|
4080
|
+
useInlineHeadline && inlineDayNightHeadline ? /* @__PURE__ */ jsxs28(
|
|
3750
4081
|
MotionHeadline,
|
|
3751
4082
|
{
|
|
3752
4083
|
className: "dnt__headline dnt__headline--inline-day-night",
|
|
3753
4084
|
"aria-label": `${inlineDayNightHeadline.prefix}${inlineDayNightHeadline.dayWord} / ${inlineDayNightHeadline.prefix}${inlineDayNightHeadline.nightWord}`,
|
|
3754
4085
|
children: [
|
|
3755
|
-
/* @__PURE__ */
|
|
3756
|
-
/* @__PURE__ */
|
|
3757
|
-
/* @__PURE__ */
|
|
4086
|
+
/* @__PURE__ */ jsx31("span", { className: "dnt__headline-prefix", children: inlineDayNightHeadline.prefix }),
|
|
4087
|
+
/* @__PURE__ */ jsxs28("span", { className: "dnt__headline-pair", children: [
|
|
4088
|
+
/* @__PURE__ */ jsx31(
|
|
3758
4089
|
motion3.span,
|
|
3759
4090
|
{
|
|
3760
4091
|
ref: dayWordRef,
|
|
@@ -3763,7 +4094,7 @@ var DayNightTransition = ({
|
|
|
3763
4094
|
children: inlineDayNightHeadline.dayWord
|
|
3764
4095
|
}
|
|
3765
4096
|
),
|
|
3766
|
-
/* @__PURE__ */
|
|
4097
|
+
/* @__PURE__ */ jsx31(
|
|
3767
4098
|
motion3.span,
|
|
3768
4099
|
{
|
|
3769
4100
|
className: "dnt__headline-wnight",
|
|
@@ -3778,8 +4109,8 @@ var DayNightTransition = ({
|
|
|
3778
4109
|
] })
|
|
3779
4110
|
]
|
|
3780
4111
|
}
|
|
3781
|
-
) : /* @__PURE__ */
|
|
3782
|
-
/* @__PURE__ */
|
|
4112
|
+
) : /* @__PURE__ */ jsxs28("div", { className: "dnt__crossfade-wrap", children: [
|
|
4113
|
+
/* @__PURE__ */ jsx31(
|
|
3783
4114
|
MotionHeadline,
|
|
3784
4115
|
{
|
|
3785
4116
|
className: "dnt__headline",
|
|
@@ -3787,7 +4118,7 @@ var DayNightTransition = ({
|
|
|
3787
4118
|
children: dayHeadline
|
|
3788
4119
|
}
|
|
3789
4120
|
),
|
|
3790
|
-
/* @__PURE__ */
|
|
4121
|
+
/* @__PURE__ */ jsx31(
|
|
3791
4122
|
MotionHeadline,
|
|
3792
4123
|
{
|
|
3793
4124
|
className: "dnt__headline",
|
|
@@ -3797,8 +4128,8 @@ var DayNightTransition = ({
|
|
|
3797
4128
|
}
|
|
3798
4129
|
)
|
|
3799
4130
|
] }),
|
|
3800
|
-
hasDescription && /* @__PURE__ */
|
|
3801
|
-
/* @__PURE__ */
|
|
4131
|
+
hasDescription && /* @__PURE__ */ jsxs28("div", { className: "dnt__crossfade-wrap", children: [
|
|
4132
|
+
/* @__PURE__ */ jsx31(
|
|
3802
4133
|
motion3.p,
|
|
3803
4134
|
{
|
|
3804
4135
|
className: "dnt__description",
|
|
@@ -3806,7 +4137,7 @@ var DayNightTransition = ({
|
|
|
3806
4137
|
children: dayDescription ?? ""
|
|
3807
4138
|
}
|
|
3808
4139
|
),
|
|
3809
|
-
/* @__PURE__ */
|
|
4140
|
+
/* @__PURE__ */ jsx31(
|
|
3810
4141
|
motion3.p,
|
|
3811
4142
|
{
|
|
3812
4143
|
className: "dnt__description",
|
|
@@ -3816,7 +4147,7 @@ var DayNightTransition = ({
|
|
|
3816
4147
|
}
|
|
3817
4148
|
)
|
|
3818
4149
|
] }),
|
|
3819
|
-
!hideCta && /* @__PURE__ */
|
|
4150
|
+
!hideCta && /* @__PURE__ */ jsx31("a", { href: ctaHref, className: "dnt__btn", children: ctaLabel })
|
|
3820
4151
|
]
|
|
3821
4152
|
}
|
|
3822
4153
|
) }) })
|
|
@@ -3841,7 +4172,7 @@ var dayNightTransitionV2Preset = {
|
|
|
3841
4172
|
};
|
|
3842
4173
|
|
|
3843
4174
|
// templates/LogoMarquee/LogoMarquee.tsx
|
|
3844
|
-
import { useRef as
|
|
4175
|
+
import { useRef as useRef12 } from "react";
|
|
3845
4176
|
import {
|
|
3846
4177
|
motion as motion4,
|
|
3847
4178
|
useScroll as useScroll3,
|
|
@@ -3849,7 +4180,7 @@ import {
|
|
|
3849
4180
|
useAnimationFrame,
|
|
3850
4181
|
useMotionValue
|
|
3851
4182
|
} from "framer-motion";
|
|
3852
|
-
import { jsx as
|
|
4183
|
+
import { jsx as jsx32, jsxs as jsxs29 } from "react/jsx-runtime";
|
|
3853
4184
|
function modWrap(min, max, v) {
|
|
3854
4185
|
const range = max - min;
|
|
3855
4186
|
return ((v - min) % range + range) % range + min;
|
|
@@ -3906,8 +4237,8 @@ var LogoMarquee = ({
|
|
|
3906
4237
|
const scrollVelocity = useVelocity(scrollY);
|
|
3907
4238
|
const col1Y = useMotionValue(0);
|
|
3908
4239
|
const col2Y = useMotionValue(0);
|
|
3909
|
-
const col1Ref =
|
|
3910
|
-
const col2Ref =
|
|
4240
|
+
const col1Ref = useRef12(null);
|
|
4241
|
+
const col2Ref = useRef12(null);
|
|
3911
4242
|
useAnimationFrame((_, delta) => {
|
|
3912
4243
|
const raw = scrollVelocity.get();
|
|
3913
4244
|
if (Math.abs(raw) < DEADZONE) return;
|
|
@@ -3920,21 +4251,21 @@ var LogoMarquee = ({
|
|
|
3920
4251
|
});
|
|
3921
4252
|
const track1 = [...col1Logos, ...col1Logos];
|
|
3922
4253
|
const track2 = [...col2Logos, ...col2Logos];
|
|
3923
|
-
return /* @__PURE__ */
|
|
4254
|
+
return /* @__PURE__ */ jsx32(
|
|
3924
4255
|
"section",
|
|
3925
4256
|
{
|
|
3926
4257
|
className: ["lm", className].filter(Boolean).join(" "),
|
|
3927
4258
|
...props,
|
|
3928
|
-
children: /* @__PURE__ */
|
|
3929
|
-
/* @__PURE__ */
|
|
3930
|
-
/* @__PURE__ */
|
|
3931
|
-
/* @__PURE__ */
|
|
4259
|
+
children: /* @__PURE__ */ jsxs29("div", { className: "lm__inner", children: [
|
|
4260
|
+
/* @__PURE__ */ jsx32("div", { className: "lm__media", children: /* @__PURE__ */ jsxs29("div", { className: "lm__carousel", children: [
|
|
4261
|
+
/* @__PURE__ */ jsx32("div", { className: "lm__fade lm__fade--top", "aria-hidden": "true" }),
|
|
4262
|
+
/* @__PURE__ */ jsx32(
|
|
3932
4263
|
motion4.div,
|
|
3933
4264
|
{
|
|
3934
4265
|
ref: col1Ref,
|
|
3935
4266
|
className: "lm__col",
|
|
3936
4267
|
style: { y: col1Y },
|
|
3937
|
-
children: track1.map((logo, i) => /* @__PURE__ */
|
|
4268
|
+
children: track1.map((logo, i) => /* @__PURE__ */ jsx32("div", { className: "lm__card", children: /* @__PURE__ */ jsx32("div", { className: "lm__card-img-wrap", children: /* @__PURE__ */ jsx32(
|
|
3938
4269
|
"img",
|
|
3939
4270
|
{
|
|
3940
4271
|
src: logo.url,
|
|
@@ -3945,13 +4276,13 @@ var LogoMarquee = ({
|
|
|
3945
4276
|
) }) }, `c1-${i}`))
|
|
3946
4277
|
}
|
|
3947
4278
|
),
|
|
3948
|
-
/* @__PURE__ */
|
|
4279
|
+
/* @__PURE__ */ jsx32(
|
|
3949
4280
|
motion4.div,
|
|
3950
4281
|
{
|
|
3951
4282
|
ref: col2Ref,
|
|
3952
4283
|
className: "lm__col",
|
|
3953
4284
|
style: { y: col2Y },
|
|
3954
|
-
children: track2.map((logo, i) => /* @__PURE__ */
|
|
4285
|
+
children: track2.map((logo, i) => /* @__PURE__ */ jsx32("div", { className: "lm__card", children: /* @__PURE__ */ jsx32("div", { className: "lm__card-img-wrap", children: /* @__PURE__ */ jsx32(
|
|
3955
4286
|
"img",
|
|
3956
4287
|
{
|
|
3957
4288
|
src: logo.url,
|
|
@@ -3962,17 +4293,17 @@ var LogoMarquee = ({
|
|
|
3962
4293
|
) }) }, `c2-${i}`))
|
|
3963
4294
|
}
|
|
3964
4295
|
),
|
|
3965
|
-
/* @__PURE__ */
|
|
4296
|
+
/* @__PURE__ */ jsx32("div", { className: "lm__fade lm__fade--bottom", "aria-hidden": "true" })
|
|
3966
4297
|
] }) }),
|
|
3967
|
-
/* @__PURE__ */
|
|
3968
|
-
/* @__PURE__ */
|
|
3969
|
-
/* @__PURE__ */
|
|
3970
|
-
/* @__PURE__ */
|
|
3971
|
-
/* @__PURE__ */
|
|
4298
|
+
/* @__PURE__ */ jsxs29("div", { className: "lm__content", children: [
|
|
4299
|
+
/* @__PURE__ */ jsx32("h2", { className: "lm__headline", children: headline }),
|
|
4300
|
+
/* @__PURE__ */ jsxs29("div", { className: "lm__text-group", children: [
|
|
4301
|
+
/* @__PURE__ */ jsx32("p", { className: "lm__body", children: body }),
|
|
4302
|
+
/* @__PURE__ */ jsx32("p", { className: "lm__disclaimer", children: disclaimer })
|
|
3972
4303
|
] }),
|
|
3973
|
-
/* @__PURE__ */
|
|
4304
|
+
/* @__PURE__ */ jsxs29("a", { href: ctaHref, className: "lm__link", children: [
|
|
3974
4305
|
ctaLabel,
|
|
3975
|
-
/* @__PURE__ */
|
|
4306
|
+
/* @__PURE__ */ jsx32("span", { className: "lm__link-icon", "aria-hidden": "true", children: /* @__PURE__ */ jsx32("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ jsx32("path", { d: "M3 8H13M13 8L9 4M13 8L9 12", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }) }) })
|
|
3976
4307
|
] })
|
|
3977
4308
|
] })
|
|
3978
4309
|
] })
|
|
@@ -4023,7 +4354,7 @@ var appstore_linux_dark_default = "./appstore-linux-dark-RVH7CBM4.svg";
|
|
|
4023
4354
|
var appstore_browser_dark_default = "./appstore-browser-dark-2E6TK6JH.svg";
|
|
4024
4355
|
|
|
4025
4356
|
// primitives/DownloadBadge/DownloadBadge.tsx
|
|
4026
|
-
import { jsx as
|
|
4357
|
+
import { jsx as jsx33 } from "react/jsx-runtime";
|
|
4027
4358
|
var BADGE_ASSETS = {
|
|
4028
4359
|
light: {
|
|
4029
4360
|
googleplay: { src: appstore_googleplay_light_default, alt: "Get it on Google Play" },
|
|
@@ -4052,7 +4383,7 @@ var DownloadBadge = ({
|
|
|
4052
4383
|
...props
|
|
4053
4384
|
}) => {
|
|
4054
4385
|
const { src, alt } = BADGE_ASSETS[colorScheme][platform];
|
|
4055
|
-
return /* @__PURE__ */
|
|
4386
|
+
return /* @__PURE__ */ jsx33(
|
|
4056
4387
|
"a",
|
|
4057
4388
|
{
|
|
4058
4389
|
className: [
|
|
@@ -4065,13 +4396,13 @@ var DownloadBadge = ({
|
|
|
4065
4396
|
target: "_blank",
|
|
4066
4397
|
rel: "noopener noreferrer",
|
|
4067
4398
|
...props,
|
|
4068
|
-
children: /* @__PURE__ */
|
|
4399
|
+
children: /* @__PURE__ */ jsx33("img", { className: "download-badge__img", src, alt })
|
|
4069
4400
|
}
|
|
4070
4401
|
);
|
|
4071
4402
|
};
|
|
4072
4403
|
|
|
4073
4404
|
// templates/Steps/Steps.tsx
|
|
4074
|
-
import { jsx as
|
|
4405
|
+
import { jsx as jsx34, jsxs as jsxs30 } from "react/jsx-runtime";
|
|
4075
4406
|
var Steps = ({
|
|
4076
4407
|
title,
|
|
4077
4408
|
steps,
|
|
@@ -4083,8 +4414,8 @@ var Steps = ({
|
|
|
4083
4414
|
"steps__container",
|
|
4084
4415
|
imagePosition === "right" ? "steps__container--image-right" : ""
|
|
4085
4416
|
].filter(Boolean).join(" ");
|
|
4086
|
-
return /* @__PURE__ */
|
|
4087
|
-
image && /* @__PURE__ */
|
|
4417
|
+
return /* @__PURE__ */ jsx34("section", { className: "steps", children: /* @__PURE__ */ jsxs30("div", { className: containerClass, children: [
|
|
4418
|
+
image && /* @__PURE__ */ jsx34("div", { className: "steps__image-wrapper", children: /* @__PURE__ */ jsx34(
|
|
4088
4419
|
"img",
|
|
4089
4420
|
{
|
|
4090
4421
|
src: image,
|
|
@@ -4092,13 +4423,13 @@ var Steps = ({
|
|
|
4092
4423
|
className: "steps__image"
|
|
4093
4424
|
}
|
|
4094
4425
|
) }),
|
|
4095
|
-
/* @__PURE__ */
|
|
4096
|
-
/* @__PURE__ */
|
|
4097
|
-
/* @__PURE__ */
|
|
4098
|
-
/* @__PURE__ */
|
|
4099
|
-
/* @__PURE__ */
|
|
4100
|
-
/* @__PURE__ */
|
|
4101
|
-
/* @__PURE__ */
|
|
4426
|
+
/* @__PURE__ */ jsxs30("div", { className: "steps__content", children: [
|
|
4427
|
+
/* @__PURE__ */ jsx34("h2", { className: "steps__title", children: title }),
|
|
4428
|
+
/* @__PURE__ */ jsx34("ol", { className: "steps__list", children: steps.map((step, index) => /* @__PURE__ */ jsx34("li", { className: "steps__item", children: /* @__PURE__ */ jsxs30("div", { className: "steps__item-inner", children: [
|
|
4429
|
+
/* @__PURE__ */ jsx34("span", { className: "steps__number", "aria-hidden": "true", children: index + 1 }),
|
|
4430
|
+
/* @__PURE__ */ jsxs30("div", { className: "steps__item-body", children: [
|
|
4431
|
+
/* @__PURE__ */ jsx34("h3", { className: "steps__item-title", children: step.title }),
|
|
4432
|
+
/* @__PURE__ */ jsx34("p", { className: "steps__item-description", children: step.description })
|
|
4102
4433
|
] })
|
|
4103
4434
|
] }) }, index)) })
|
|
4104
4435
|
] })
|
|
@@ -4106,7 +4437,7 @@ var Steps = ({
|
|
|
4106
4437
|
};
|
|
4107
4438
|
|
|
4108
4439
|
// templates/DownloadBanner/DownloadBanner.tsx
|
|
4109
|
-
import { jsx as
|
|
4440
|
+
import { jsx as jsx35, jsxs as jsxs31 } from "react/jsx-runtime";
|
|
4110
4441
|
var DownloadBanner = ({
|
|
4111
4442
|
style = "light-2",
|
|
4112
4443
|
qrCodeImage,
|
|
@@ -4131,9 +4462,9 @@ var DownloadBanner = ({
|
|
|
4131
4462
|
disclaimer
|
|
4132
4463
|
}) => {
|
|
4133
4464
|
const colorScheme = style === "dark" ? "dark" : "light";
|
|
4134
|
-
return /* @__PURE__ */
|
|
4135
|
-
/* @__PURE__ */
|
|
4136
|
-
qrCodeImage && /* @__PURE__ */
|
|
4465
|
+
return /* @__PURE__ */ jsx35("section", { className: `db-section db-section--${style}`, children: /* @__PURE__ */ jsx35("div", { className: "db-container", children: /* @__PURE__ */ jsxs31("div", { className: "db-card", children: [
|
|
4466
|
+
/* @__PURE__ */ jsxs31("div", { className: "db-qr-block", children: [
|
|
4467
|
+
qrCodeImage && /* @__PURE__ */ jsx35(
|
|
4137
4468
|
"img",
|
|
4138
4469
|
{
|
|
4139
4470
|
className: "db-qr-image",
|
|
@@ -4141,36 +4472,36 @@ var DownloadBanner = ({
|
|
|
4141
4472
|
alt: qrCodeAlt
|
|
4142
4473
|
}
|
|
4143
4474
|
),
|
|
4144
|
-
/* @__PURE__ */
|
|
4145
|
-
/* @__PURE__ */
|
|
4146
|
-
/* @__PURE__ */
|
|
4147
|
-
/* @__PURE__ */
|
|
4148
|
-
disclaimer && /* @__PURE__ */
|
|
4475
|
+
/* @__PURE__ */ jsxs31("div", { className: "db-qr-text", children: [
|
|
4476
|
+
/* @__PURE__ */ jsx35("span", { className: "db-qr-text__title db-qr-text__title--desktop", children: qrTitle }),
|
|
4477
|
+
/* @__PURE__ */ jsx35("h2", { className: "db-qr-text__subtitle db-qr-text__subtitle--desktop", children: qrSubtitle }),
|
|
4478
|
+
/* @__PURE__ */ jsx35("span", { className: "db-qr-text__title db-qr-text__title--mobile", children: mobileTitle }),
|
|
4479
|
+
disclaimer && /* @__PURE__ */ jsx35("span", { className: "db-disclaimer", children: disclaimer })
|
|
4149
4480
|
] })
|
|
4150
4481
|
] }),
|
|
4151
|
-
/* @__PURE__ */
|
|
4152
|
-
showGooglePlay && /* @__PURE__ */
|
|
4153
|
-
showAppGallery && /* @__PURE__ */
|
|
4154
|
-
showMacOS && /* @__PURE__ */
|
|
4155
|
-
showWindows && /* @__PURE__ */
|
|
4156
|
-
showLinux && /* @__PURE__ */
|
|
4157
|
-
showAppStore && /* @__PURE__ */
|
|
4158
|
-
showWeb && /* @__PURE__ */
|
|
4482
|
+
/* @__PURE__ */ jsxs31("div", { className: "db-badges", children: [
|
|
4483
|
+
showGooglePlay && /* @__PURE__ */ jsx35(DownloadBadge, { platform: "googleplay", colorScheme, href: googlePlayHref }),
|
|
4484
|
+
showAppGallery && /* @__PURE__ */ jsx35(DownloadBadge, { platform: "appgallery", colorScheme, href: appGalleryHref }),
|
|
4485
|
+
showMacOS && /* @__PURE__ */ jsx35(DownloadBadge, { platform: "macos", colorScheme, href: macOSHref }),
|
|
4486
|
+
showWindows && /* @__PURE__ */ jsx35(DownloadBadge, { platform: "windows", colorScheme, href: windowsHref }),
|
|
4487
|
+
showLinux && /* @__PURE__ */ jsx35(DownloadBadge, { platform: "linux", colorScheme, href: linuxHref }),
|
|
4488
|
+
showAppStore && /* @__PURE__ */ jsx35(DownloadBadge, { platform: "appstore", colorScheme, href: appStoreHref }),
|
|
4489
|
+
showWeb && /* @__PURE__ */ jsx35(DownloadBadge, { platform: "web", colorScheme, href: webHref })
|
|
4159
4490
|
] })
|
|
4160
4491
|
] }) }) });
|
|
4161
4492
|
};
|
|
4162
4493
|
|
|
4163
4494
|
// templates/TextScroll/TextScroll.tsx
|
|
4164
|
-
import { useEffect as
|
|
4495
|
+
import { useEffect as useEffect10, useRef as useRef13 } from "react";
|
|
4165
4496
|
import { gsap } from "gsap";
|
|
4166
4497
|
import { ScrollTrigger } from "gsap/ScrollTrigger";
|
|
4167
|
-
import { jsx as
|
|
4498
|
+
import { jsx as jsx36, jsxs as jsxs32 } from "react/jsx-runtime";
|
|
4168
4499
|
gsap.registerPlugin(ScrollTrigger);
|
|
4169
4500
|
var TextScroll = ({ text, className }) => {
|
|
4170
|
-
const sectionRef =
|
|
4171
|
-
const wordsRef =
|
|
4501
|
+
const sectionRef = useRef13(null);
|
|
4502
|
+
const wordsRef = useRef13([]);
|
|
4172
4503
|
const words = text.split(/\s+/).filter(Boolean);
|
|
4173
|
-
|
|
4504
|
+
useEffect10(() => {
|
|
4174
4505
|
const section = sectionRef.current;
|
|
4175
4506
|
const wordEls = wordsRef.current.filter(Boolean);
|
|
4176
4507
|
if (!section || wordEls.length === 0) return;
|
|
@@ -4204,12 +4535,12 @@ var TextScroll = ({ text, className }) => {
|
|
|
4204
4535
|
gsap.set(wordEls, { clearProps: "opacity" });
|
|
4205
4536
|
};
|
|
4206
4537
|
}, [text]);
|
|
4207
|
-
return /* @__PURE__ */
|
|
4538
|
+
return /* @__PURE__ */ jsx36(
|
|
4208
4539
|
"section",
|
|
4209
4540
|
{
|
|
4210
4541
|
ref: sectionRef,
|
|
4211
4542
|
className: ["ts", className].filter(Boolean).join(" "),
|
|
4212
|
-
children: /* @__PURE__ */
|
|
4543
|
+
children: /* @__PURE__ */ jsx36("div", { className: "ts__inner", children: /* @__PURE__ */ jsx36("p", { className: "ts__text", "aria-label": text, children: words.map((word, i) => /* @__PURE__ */ jsxs32(
|
|
4213
4544
|
"span",
|
|
4214
4545
|
{
|
|
4215
4546
|
ref: (el) => {
|
|
@@ -4229,8 +4560,8 @@ var TextScroll = ({ text, className }) => {
|
|
|
4229
4560
|
};
|
|
4230
4561
|
|
|
4231
4562
|
// templates/StickyMarketCards/StickyMarketCards.tsx
|
|
4232
|
-
import { useEffect as
|
|
4233
|
-
import { jsx as
|
|
4563
|
+
import { useEffect as useEffect11, useRef as useRef14 } from "react";
|
|
4564
|
+
import { jsx as jsx37, jsxs as jsxs33 } from "react/jsx-runtime";
|
|
4234
4565
|
var PLACEHOLDER_IMAGE3 = "https://cdn.prod.website-files.com/68da5c86c91c54f39c86c28a/69b9309379ac08e59ca8210a_1f3f555da9a5cbb13a6fe1bf0d5fe1b6_placeholder-image.webp";
|
|
4235
4566
|
var StickyMarketCards = ({
|
|
4236
4567
|
sectionTitle,
|
|
@@ -4239,9 +4570,9 @@ var StickyMarketCards = ({
|
|
|
4239
4570
|
className,
|
|
4240
4571
|
...props
|
|
4241
4572
|
}) => {
|
|
4242
|
-
const cardRefs =
|
|
4243
|
-
const cardInnerRefs =
|
|
4244
|
-
|
|
4573
|
+
const cardRefs = useRef14([]);
|
|
4574
|
+
const cardInnerRefs = useRef14([]);
|
|
4575
|
+
useEffect11(() => {
|
|
4245
4576
|
if (typeof window === "undefined") return;
|
|
4246
4577
|
let rafId = 0;
|
|
4247
4578
|
const update = () => {
|
|
@@ -4282,7 +4613,7 @@ var StickyMarketCards = ({
|
|
|
4282
4613
|
cancelAnimationFrame(rafId);
|
|
4283
4614
|
};
|
|
4284
4615
|
}, [items.length]);
|
|
4285
|
-
|
|
4616
|
+
useEffect11(() => {
|
|
4286
4617
|
if (typeof window === "undefined") return;
|
|
4287
4618
|
const syncHeights = () => {
|
|
4288
4619
|
const inners = cardInnerRefs.current.filter(Boolean);
|
|
@@ -4311,20 +4642,20 @@ var StickyMarketCards = ({
|
|
|
4311
4642
|
const n = items.length;
|
|
4312
4643
|
const maxStack = 4;
|
|
4313
4644
|
const baseIndex = Math.max(0, n - maxStack);
|
|
4314
|
-
return /* @__PURE__ */
|
|
4645
|
+
return /* @__PURE__ */ jsx37(
|
|
4315
4646
|
"section",
|
|
4316
4647
|
{
|
|
4317
4648
|
className: ["smc", className].filter(Boolean).join(" "),
|
|
4318
4649
|
...props,
|
|
4319
|
-
children: /* @__PURE__ */
|
|
4320
|
-
/* @__PURE__ */
|
|
4321
|
-
/* @__PURE__ */
|
|
4322
|
-
sectionDescription && /* @__PURE__ */
|
|
4650
|
+
children: /* @__PURE__ */ jsxs33("div", { className: "smc__inner", children: [
|
|
4651
|
+
/* @__PURE__ */ jsxs33("div", { className: "smc__header-wrap", children: [
|
|
4652
|
+
/* @__PURE__ */ jsx37("h2", { className: "smc__header", children: sectionTitle }),
|
|
4653
|
+
sectionDescription && /* @__PURE__ */ jsx37("p", { className: "smc__description", children: sectionDescription })
|
|
4323
4654
|
] }),
|
|
4324
|
-
/* @__PURE__ */
|
|
4655
|
+
/* @__PURE__ */ jsx37("div", { className: "smc__track", children: items.map((item, i) => {
|
|
4325
4656
|
const theme = item.theme ?? "dark";
|
|
4326
4657
|
const offsetMultiplier = Math.max(0, i - baseIndex);
|
|
4327
|
-
return /* @__PURE__ */
|
|
4658
|
+
return /* @__PURE__ */ jsx37(
|
|
4328
4659
|
"div",
|
|
4329
4660
|
{
|
|
4330
4661
|
ref: (el) => {
|
|
@@ -4335,7 +4666,7 @@ var StickyMarketCards = ({
|
|
|
4335
4666
|
["--smc-card-index"]: String(offsetMultiplier),
|
|
4336
4667
|
zIndex: i + 1
|
|
4337
4668
|
},
|
|
4338
|
-
children: /* @__PURE__ */
|
|
4669
|
+
children: /* @__PURE__ */ jsxs33(
|
|
4339
4670
|
"div",
|
|
4340
4671
|
{
|
|
4341
4672
|
ref: (el) => {
|
|
@@ -4346,8 +4677,8 @@ var StickyMarketCards = ({
|
|
|
4346
4677
|
`smc__card-inner--${theme}`
|
|
4347
4678
|
].join(" "),
|
|
4348
4679
|
children: [
|
|
4349
|
-
/* @__PURE__ */
|
|
4350
|
-
/* @__PURE__ */
|
|
4680
|
+
/* @__PURE__ */ jsxs33("div", { className: "smc__card-bg", children: [
|
|
4681
|
+
/* @__PURE__ */ jsx37(
|
|
4351
4682
|
"img",
|
|
4352
4683
|
{
|
|
4353
4684
|
src: item.imageUrl ?? PLACEHOLDER_IMAGE3,
|
|
@@ -4356,7 +4687,7 @@ var StickyMarketCards = ({
|
|
|
4356
4687
|
loading: i === 0 ? "eager" : "lazy"
|
|
4357
4688
|
}
|
|
4358
4689
|
),
|
|
4359
|
-
/* @__PURE__ */
|
|
4690
|
+
/* @__PURE__ */ jsx37(
|
|
4360
4691
|
"div",
|
|
4361
4692
|
{
|
|
4362
4693
|
className: [
|
|
@@ -4366,9 +4697,9 @@ var StickyMarketCards = ({
|
|
|
4366
4697
|
}
|
|
4367
4698
|
)
|
|
4368
4699
|
] }),
|
|
4369
|
-
/* @__PURE__ */
|
|
4370
|
-
/* @__PURE__ */
|
|
4371
|
-
/* @__PURE__ */
|
|
4700
|
+
/* @__PURE__ */ jsxs33("div", { className: "smc__card-content", children: [
|
|
4701
|
+
/* @__PURE__ */ jsx37("div", { className: "smc__card-title-wrap", children: /* @__PURE__ */ jsx37("h3", { className: "smc__card-title", children: item.title }) }),
|
|
4702
|
+
/* @__PURE__ */ jsx37("div", { className: "smc__card-desc-wrap", children: /* @__PURE__ */ jsx37("p", { className: "smc__card-desc", children: item.description }) })
|
|
4372
4703
|
] })
|
|
4373
4704
|
]
|
|
4374
4705
|
}
|
|
@@ -4383,12 +4714,12 @@ var StickyMarketCards = ({
|
|
|
4383
4714
|
};
|
|
4384
4715
|
|
|
4385
4716
|
// templates/Table/Table.tsx
|
|
4386
|
-
import { useState as
|
|
4387
|
-
import { Fragment as Fragment4, jsx as
|
|
4388
|
-
var InfoIcon = ({ className }) => /* @__PURE__ */
|
|
4389
|
-
/* @__PURE__ */
|
|
4390
|
-
/* @__PURE__ */
|
|
4391
|
-
/* @__PURE__ */
|
|
4717
|
+
import { useState as useState13, useMemo as useMemo2 } from "react";
|
|
4718
|
+
import { Fragment as Fragment4, jsx as jsx38, jsxs as jsxs34 } from "react/jsx-runtime";
|
|
4719
|
+
var InfoIcon = ({ className }) => /* @__PURE__ */ jsxs34("svg", { width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", className, children: [
|
|
4720
|
+
/* @__PURE__ */ jsx38("circle", { cx: "12", cy: "12", r: "10", stroke: "currentColor", strokeWidth: "1.5" }),
|
|
4721
|
+
/* @__PURE__ */ jsx38("path", { d: "M12 16V12", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round" }),
|
|
4722
|
+
/* @__PURE__ */ jsx38("circle", { cx: "12", cy: "8", r: "1", fill: "currentColor", stroke: "currentColor", strokeWidth: "1" })
|
|
4392
4723
|
] });
|
|
4393
4724
|
var Table = ({
|
|
4394
4725
|
sectionTitle,
|
|
@@ -4401,11 +4732,11 @@ var Table = ({
|
|
|
4401
4732
|
className,
|
|
4402
4733
|
...props
|
|
4403
4734
|
}) => {
|
|
4404
|
-
const [search, setSearch] =
|
|
4405
|
-
const [page, setPage] =
|
|
4406
|
-
const [tooltip, setTooltip] =
|
|
4735
|
+
const [search, setSearch] = useState13("");
|
|
4736
|
+
const [page, setPage] = useState13(1);
|
|
4737
|
+
const [tooltip, setTooltip] = useState13({ visible: false, heading: "", description: "", x: 0, y: 0, arrowOffset: 0 });
|
|
4407
4738
|
const mainKey = mainColumnKey ?? columns.find((c) => c.width === "main")?.key ?? columns[0]?.key;
|
|
4408
|
-
const filtered =
|
|
4739
|
+
const filtered = useMemo2(() => {
|
|
4409
4740
|
const q = search.trim().toLowerCase();
|
|
4410
4741
|
if (!q) return rows;
|
|
4411
4742
|
return rows.filter(
|
|
@@ -4425,12 +4756,12 @@ var Table = ({
|
|
|
4425
4756
|
setSearch("");
|
|
4426
4757
|
setPage(1);
|
|
4427
4758
|
};
|
|
4428
|
-
return /* @__PURE__ */
|
|
4429
|
-
sectionTitle && /* @__PURE__ */
|
|
4430
|
-
/* @__PURE__ */
|
|
4431
|
-
/* @__PURE__ */
|
|
4432
|
-
/* @__PURE__ */
|
|
4433
|
-
/* @__PURE__ */
|
|
4759
|
+
return /* @__PURE__ */ jsxs34("section", { className: ["tbl-section", className].filter(Boolean).join(" "), ...props, children: [
|
|
4760
|
+
sectionTitle && /* @__PURE__ */ jsx38("div", { className: "tbl-section__header", children: /* @__PURE__ */ jsx38("h2", { className: "tbl-section__title", children: sectionTitle }) }),
|
|
4761
|
+
/* @__PURE__ */ jsxs34("div", { className: "tbl-section__content", children: [
|
|
4762
|
+
/* @__PURE__ */ jsxs34("div", { className: "tbl", children: [
|
|
4763
|
+
/* @__PURE__ */ jsxs34("div", { className: "tbl__topbar", children: [
|
|
4764
|
+
/* @__PURE__ */ jsx38("div", { className: "tbl__search-wrap", children: /* @__PURE__ */ jsx38(
|
|
4434
4765
|
SearchField,
|
|
4435
4766
|
{
|
|
4436
4767
|
placeholder: searchPlaceholder,
|
|
@@ -4441,7 +4772,7 @@ var Table = ({
|
|
|
4441
4772
|
"aria-label": searchPlaceholder
|
|
4442
4773
|
}
|
|
4443
4774
|
) }),
|
|
4444
|
-
/* @__PURE__ */
|
|
4775
|
+
/* @__PURE__ */ jsx38("div", { className: "tbl__summary", children: filtered.length > 0 ? /* @__PURE__ */ jsxs34(Fragment4, { children: [
|
|
4445
4776
|
"Showing ",
|
|
4446
4777
|
startIdx + 1,
|
|
4447
4778
|
"- ",
|
|
@@ -4450,12 +4781,12 @@ var Table = ({
|
|
|
4450
4781
|
filtered.length
|
|
4451
4782
|
] }) : "No results" })
|
|
4452
4783
|
] }),
|
|
4453
|
-
/* @__PURE__ */
|
|
4454
|
-
/* @__PURE__ */
|
|
4784
|
+
/* @__PURE__ */ jsx38("div", { className: "tbl__scroll-wrapper", children: /* @__PURE__ */ jsxs34("table", { className: "tbl__table", children: [
|
|
4785
|
+
/* @__PURE__ */ jsx38("thead", { children: /* @__PURE__ */ jsx38("tr", { className: "tbl__tr", children: columns.map((col, colIdx) => {
|
|
4455
4786
|
const isFirst = colIdx === 0;
|
|
4456
4787
|
const isLast = colIdx === columns.length - 1;
|
|
4457
4788
|
const isMain = col.width === "main" || col.key === mainKey;
|
|
4458
|
-
return /* @__PURE__ */
|
|
4789
|
+
return /* @__PURE__ */ jsx38(
|
|
4459
4790
|
"th",
|
|
4460
4791
|
{
|
|
4461
4792
|
className: [
|
|
@@ -4463,7 +4794,7 @@ var Table = ({
|
|
|
4463
4794
|
isMain ? "tbl__th--main" : "",
|
|
4464
4795
|
col.width === "big" ? "tbl__th--big" : ""
|
|
4465
4796
|
].filter(Boolean).join(" "),
|
|
4466
|
-
children: /* @__PURE__ */
|
|
4797
|
+
children: /* @__PURE__ */ jsx38(
|
|
4467
4798
|
"div",
|
|
4468
4799
|
{
|
|
4469
4800
|
className: "tbl__th-inner",
|
|
@@ -4493,9 +4824,9 @@ var Table = ({
|
|
|
4493
4824
|
setTooltip((prev) => ({ ...prev, visible: false }));
|
|
4494
4825
|
}
|
|
4495
4826
|
},
|
|
4496
|
-
children: /* @__PURE__ */
|
|
4827
|
+
children: /* @__PURE__ */ jsx38("span", { className: ["tbl__col-label", col.tooltip ? "tbl__col-label--dashed" : ""].filter(Boolean).join(" "), children: Array.isArray(col.header) ? col.header.map((line, li) => /* @__PURE__ */ jsxs34("span", { children: [
|
|
4497
4828
|
line,
|
|
4498
|
-
li < col.header.length - 1 && /* @__PURE__ */
|
|
4829
|
+
li < col.header.length - 1 && /* @__PURE__ */ jsx38("br", {})
|
|
4499
4830
|
] }, li)) : col.header })
|
|
4500
4831
|
}
|
|
4501
4832
|
)
|
|
@@ -4503,10 +4834,10 @@ var Table = ({
|
|
|
4503
4834
|
col.key
|
|
4504
4835
|
);
|
|
4505
4836
|
}) }) }),
|
|
4506
|
-
/* @__PURE__ */
|
|
4837
|
+
/* @__PURE__ */ jsx38("tbody", { className: "tbl__tbody", children: visible.length > 0 ? visible.map((row, rowIdx) => /* @__PURE__ */ jsx38("tr", { className: "tbl__tr", children: columns.map((col) => {
|
|
4507
4838
|
const isMain = col.width === "main" || col.key === mainKey;
|
|
4508
4839
|
const iconUrl = row[`${col.key}_iconUrl`];
|
|
4509
|
-
return /* @__PURE__ */
|
|
4840
|
+
return /* @__PURE__ */ jsx38(
|
|
4510
4841
|
"td",
|
|
4511
4842
|
{
|
|
4512
4843
|
className: [
|
|
@@ -4514,8 +4845,8 @@ var Table = ({
|
|
|
4514
4845
|
isMain ? "tbl__td--main" : "",
|
|
4515
4846
|
col.width === "big" ? "tbl__td--big" : ""
|
|
4516
4847
|
].filter(Boolean).join(" "),
|
|
4517
|
-
children: isMain ? /* @__PURE__ */
|
|
4518
|
-
iconUrl && /* @__PURE__ */
|
|
4848
|
+
children: isMain ? /* @__PURE__ */ jsxs34("div", { className: "tbl__cell-inner", children: [
|
|
4849
|
+
iconUrl && /* @__PURE__ */ jsx38(
|
|
4519
4850
|
"img",
|
|
4520
4851
|
{
|
|
4521
4852
|
src: iconUrl,
|
|
@@ -4527,18 +4858,18 @@ var Table = ({
|
|
|
4527
4858
|
height: "24"
|
|
4528
4859
|
}
|
|
4529
4860
|
),
|
|
4530
|
-
/* @__PURE__ */
|
|
4531
|
-
] }) : /* @__PURE__ */
|
|
4861
|
+
/* @__PURE__ */ jsx38("span", { className: "tbl__cell-text tbl__cell-text--bold", children: row[col.key] ?? "" })
|
|
4862
|
+
] }) : /* @__PURE__ */ jsx38("span", { className: "tbl__cell-text", children: row[col.key] ?? "" })
|
|
4532
4863
|
},
|
|
4533
4864
|
col.key
|
|
4534
4865
|
);
|
|
4535
|
-
}) }, rowIdx)) : /* @__PURE__ */
|
|
4866
|
+
}) }, rowIdx)) : /* @__PURE__ */ jsx38("tr", { className: "tbl__tr", children: /* @__PURE__ */ jsxs34("td", { colSpan: columns.length, className: "tbl__empty-cell", children: [
|
|
4536
4867
|
'No results found for "',
|
|
4537
4868
|
search,
|
|
4538
4869
|
'"'
|
|
4539
4870
|
] }) }) })
|
|
4540
4871
|
] }) }),
|
|
4541
|
-
totalPages > 1 && /* @__PURE__ */
|
|
4872
|
+
totalPages > 1 && /* @__PURE__ */ jsx38("div", { className: "tbl__footer", children: /* @__PURE__ */ jsx38("div", { className: "tbl__pagination-wrap", children: /* @__PURE__ */ jsx38(
|
|
4542
4873
|
Pagination,
|
|
4543
4874
|
{
|
|
4544
4875
|
currentPage,
|
|
@@ -4547,19 +4878,19 @@ var Table = ({
|
|
|
4547
4878
|
}
|
|
4548
4879
|
) }) })
|
|
4549
4880
|
] }),
|
|
4550
|
-
infoText && /* @__PURE__ */
|
|
4551
|
-
/* @__PURE__ */
|
|
4552
|
-
/* @__PURE__ */
|
|
4881
|
+
infoText && /* @__PURE__ */ jsxs34("div", { className: "tbl-section__info-box", children: [
|
|
4882
|
+
/* @__PURE__ */ jsx38(InfoIcon, { className: "tbl-section__info-icon" }),
|
|
4883
|
+
/* @__PURE__ */ jsx38("p", { className: "tbl-section__info-text", children: infoText })
|
|
4553
4884
|
] })
|
|
4554
4885
|
] }),
|
|
4555
|
-
/* @__PURE__ */
|
|
4886
|
+
/* @__PURE__ */ jsxs34(
|
|
4556
4887
|
"div",
|
|
4557
4888
|
{
|
|
4558
4889
|
className: ["tbl__global-hint", tooltip.visible ? "tbl__global-hint--visible" : ""].filter(Boolean).join(" "),
|
|
4559
4890
|
style: { left: tooltip.x, top: tooltip.y - 8 },
|
|
4560
4891
|
children: [
|
|
4561
|
-
/* @__PURE__ */
|
|
4562
|
-
/* @__PURE__ */
|
|
4892
|
+
/* @__PURE__ */ jsx38("div", { className: "tbl__global-hint-desc", children: tooltip.description }),
|
|
4893
|
+
/* @__PURE__ */ jsx38(
|
|
4563
4894
|
"div",
|
|
4564
4895
|
{
|
|
4565
4896
|
className: "tbl__global-hint-arrow",
|
|
@@ -4573,41 +4904,41 @@ var Table = ({
|
|
|
4573
4904
|
};
|
|
4574
4905
|
|
|
4575
4906
|
// templates/Leaders/Leaders.tsx
|
|
4576
|
-
import { useState as
|
|
4577
|
-
import { Fragment as Fragment5, jsx as
|
|
4578
|
-
var
|
|
4579
|
-
var
|
|
4580
|
-
var
|
|
4581
|
-
|
|
4582
|
-
/* @__PURE__ */ jsx38("div", { className: "leaders__image-wrapper", children: /* @__PURE__ */ jsx38(
|
|
4907
|
+
import { useState as useState14 } from "react";
|
|
4908
|
+
import { Fragment as Fragment5, jsx as jsx39, jsxs as jsxs35 } from "react/jsx-runtime";
|
|
4909
|
+
var ChevronDownIcon4 = () => /* @__PURE__ */ jsx39("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": "true", children: /* @__PURE__ */ jsx39("path", { d: "M4 6L8 10L12 6", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }) });
|
|
4910
|
+
var ChevronUpIcon = () => /* @__PURE__ */ jsx39("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": "true", children: /* @__PURE__ */ jsx39("path", { d: "M12 10L8 6L4 10", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }) });
|
|
4911
|
+
var CardContent = ({ item }) => /* @__PURE__ */ jsxs35(Fragment5, { children: [
|
|
4912
|
+
/* @__PURE__ */ jsx39("div", { className: "avatar-grid__image-wrapper", children: /* @__PURE__ */ jsx39(
|
|
4583
4913
|
"img",
|
|
4584
4914
|
{
|
|
4585
4915
|
src: item.imageUrl,
|
|
4586
4916
|
alt: item.name,
|
|
4587
|
-
className: "
|
|
4917
|
+
className: "avatar-grid__image",
|
|
4588
4918
|
loading: "lazy"
|
|
4589
4919
|
}
|
|
4590
4920
|
) }),
|
|
4591
|
-
/* @__PURE__ */
|
|
4592
|
-
/* @__PURE__ */
|
|
4593
|
-
/* @__PURE__ */
|
|
4921
|
+
/* @__PURE__ */ jsxs35("div", { className: "avatar-grid__content", children: [
|
|
4922
|
+
/* @__PURE__ */ jsx39("h3", { className: "avatar-grid__name", children: item.name }),
|
|
4923
|
+
/* @__PURE__ */ jsx39("p", { className: "avatar-grid__role", children: item.role })
|
|
4594
4924
|
] }),
|
|
4595
|
-
item.
|
|
4925
|
+
item.linkUrl && /* @__PURE__ */ jsx39(
|
|
4596
4926
|
Link,
|
|
4597
4927
|
{
|
|
4598
|
-
href: item.
|
|
4928
|
+
href: item.linkUrl,
|
|
4599
4929
|
target: "_blank",
|
|
4600
4930
|
rel: "noopener noreferrer",
|
|
4601
|
-
icon:
|
|
4602
|
-
label: "
|
|
4931
|
+
icon: item.linkIcon,
|
|
4932
|
+
label: item.linkLabel ?? "Profile",
|
|
4603
4933
|
colorScheme: "black",
|
|
4604
4934
|
showChevron: false,
|
|
4605
|
-
className: "
|
|
4935
|
+
className: "avatar-grid__link"
|
|
4606
4936
|
}
|
|
4607
4937
|
)
|
|
4608
4938
|
] });
|
|
4609
|
-
var
|
|
4610
|
-
title
|
|
4939
|
+
var AvatarGrid = ({
|
|
4940
|
+
title,
|
|
4941
|
+
description,
|
|
4611
4942
|
items,
|
|
4612
4943
|
initialVisibleCount = 4,
|
|
4613
4944
|
expandText = "View all",
|
|
@@ -4615,56 +4946,257 @@ var Leaders = ({
|
|
|
4615
4946
|
className,
|
|
4616
4947
|
...props
|
|
4617
4948
|
}) => {
|
|
4618
|
-
const [isExpanded, setIsExpanded] =
|
|
4949
|
+
const [isExpanded, setIsExpanded] = useState14(false);
|
|
4619
4950
|
const hasMore = items.length > initialVisibleCount;
|
|
4620
4951
|
const visibleItems = items.slice(0, initialVisibleCount);
|
|
4621
4952
|
const extraItems = items.slice(initialVisibleCount);
|
|
4622
|
-
return /* @__PURE__ */
|
|
4623
|
-
title && /* @__PURE__ */
|
|
4624
|
-
|
|
4625
|
-
|
|
4626
|
-
|
|
4953
|
+
return /* @__PURE__ */ jsx39("section", { className: ["avatar-grid", className].filter(Boolean).join(" "), ...props, children: /* @__PURE__ */ jsxs35("div", { className: "avatar-grid__container", children: [
|
|
4954
|
+
(title || description) && /* @__PURE__ */ jsxs35("div", { className: "avatar-grid__header", children: [
|
|
4955
|
+
title && /* @__PURE__ */ jsx39("h2", { className: "avatar-grid__title", children: title }),
|
|
4956
|
+
description && /* @__PURE__ */ jsx39("p", { className: "avatar-grid__description", children: description })
|
|
4957
|
+
] }),
|
|
4958
|
+
/* @__PURE__ */ jsxs35("div", { className: "avatar-grid__grid-wrapper", children: [
|
|
4959
|
+
/* @__PURE__ */ jsx39("div", { className: "avatar-grid__grid", children: visibleItems.map((item, i) => /* @__PURE__ */ jsx39("div", { className: "avatar-grid__card", children: /* @__PURE__ */ jsx39(CardContent, { item }) }, i)) }),
|
|
4960
|
+
hasMore && /* @__PURE__ */ jsx39(
|
|
4627
4961
|
"div",
|
|
4628
4962
|
{
|
|
4629
4963
|
className: [
|
|
4630
|
-
"
|
|
4631
|
-
isExpanded ? "
|
|
4964
|
+
"avatar-grid__extra-cards",
|
|
4965
|
+
isExpanded ? "avatar-grid__extra-cards--open" : ""
|
|
4632
4966
|
].join(" "),
|
|
4633
4967
|
"aria-hidden": !isExpanded,
|
|
4634
|
-
children: /* @__PURE__ */
|
|
4968
|
+
children: /* @__PURE__ */ jsx39("div", { className: "avatar-grid__extra-grid", children: extraItems.map((item, i) => /* @__PURE__ */ jsx39(
|
|
4635
4969
|
"div",
|
|
4636
4970
|
{
|
|
4637
4971
|
className: [
|
|
4638
|
-
"
|
|
4639
|
-
"
|
|
4640
|
-
isExpanded ? "
|
|
4972
|
+
"avatar-grid__card",
|
|
4973
|
+
"avatar-grid__extra-card",
|
|
4974
|
+
isExpanded ? "avatar-grid__extra-card--visible" : ""
|
|
4641
4975
|
].join(" "),
|
|
4642
4976
|
style: {
|
|
4643
4977
|
transitionDelay: isExpanded ? `${i * 70 + 120}ms` : "0ms"
|
|
4644
4978
|
},
|
|
4645
|
-
children: /* @__PURE__ */
|
|
4979
|
+
children: /* @__PURE__ */ jsx39(CardContent, { item })
|
|
4646
4980
|
},
|
|
4647
4981
|
i
|
|
4648
4982
|
)) })
|
|
4649
4983
|
}
|
|
4650
4984
|
)
|
|
4651
4985
|
] }),
|
|
4652
|
-
hasMore && /* @__PURE__ */
|
|
4986
|
+
hasMore && /* @__PURE__ */ jsx39("div", { className: "avatar-grid__actions", children: /* @__PURE__ */ jsx39(
|
|
4653
4987
|
Button,
|
|
4654
4988
|
{
|
|
4655
4989
|
variant: "secondary",
|
|
4656
4990
|
colorScheme: "black",
|
|
4657
4991
|
onClick: () => setIsExpanded(!isExpanded),
|
|
4658
4992
|
iconPosition: "icon-right",
|
|
4659
|
-
icon: isExpanded ? /* @__PURE__ */
|
|
4993
|
+
icon: isExpanded ? /* @__PURE__ */ jsx39(ChevronUpIcon, {}) : /* @__PURE__ */ jsx39(ChevronDownIcon4, {}),
|
|
4994
|
+
fullWidth: true,
|
|
4660
4995
|
children: isExpanded ? collapseText : expandText
|
|
4661
4996
|
}
|
|
4662
4997
|
) })
|
|
4663
4998
|
] }) });
|
|
4664
4999
|
};
|
|
5000
|
+
var PeopleGrid = AvatarGrid;
|
|
5001
|
+
var Leaders = AvatarGrid;
|
|
5002
|
+
|
|
5003
|
+
// templates/ImageBanner/ImageBanner.tsx
|
|
5004
|
+
import { jsx as jsx40, jsxs as jsxs36 } from "react/jsx-runtime";
|
|
5005
|
+
var ImageBanner = ({
|
|
5006
|
+
variant = "split",
|
|
5007
|
+
title = "Join our global community",
|
|
5008
|
+
description = "Connect with traders around the world to exchange insights, explore portfolios, and gain valuable expertise.",
|
|
5009
|
+
ctaLabel = "Trader's Hub",
|
|
5010
|
+
ctaHref,
|
|
5011
|
+
onCtaClick,
|
|
5012
|
+
imageUrl,
|
|
5013
|
+
imageAlt = "",
|
|
5014
|
+
className,
|
|
5015
|
+
...props
|
|
5016
|
+
}) => {
|
|
5017
|
+
const isFullBg = variant === "full-bg";
|
|
5018
|
+
return /* @__PURE__ */ jsx40(
|
|
5019
|
+
"section",
|
|
5020
|
+
{
|
|
5021
|
+
className: ["image-banner", className].filter(Boolean).join(" "),
|
|
5022
|
+
...props,
|
|
5023
|
+
children: /* @__PURE__ */ jsxs36(
|
|
5024
|
+
"div",
|
|
5025
|
+
{
|
|
5026
|
+
className: [
|
|
5027
|
+
"image-banner__inner",
|
|
5028
|
+
`image-banner__inner--${variant}`
|
|
5029
|
+
].join(" "),
|
|
5030
|
+
children: [
|
|
5031
|
+
isFullBg && imageUrl && /* @__PURE__ */ jsxs36("div", { className: "image-banner__bg-image-wrapper", children: [
|
|
5032
|
+
/* @__PURE__ */ jsx40(
|
|
5033
|
+
"img",
|
|
5034
|
+
{
|
|
5035
|
+
src: imageUrl,
|
|
5036
|
+
alt: imageAlt,
|
|
5037
|
+
className: "image-banner__bg-image",
|
|
5038
|
+
loading: "lazy"
|
|
5039
|
+
}
|
|
5040
|
+
),
|
|
5041
|
+
/* @__PURE__ */ jsx40("div", { className: "image-banner__bg-overlay", "aria-hidden": "true" })
|
|
5042
|
+
] }),
|
|
5043
|
+
/* @__PURE__ */ jsxs36("div", { className: "image-banner__content", children: [
|
|
5044
|
+
/* @__PURE__ */ jsx40("h2", { className: "image-banner__title", children: title }),
|
|
5045
|
+
description && /* @__PURE__ */ jsx40("p", { className: "image-banner__description", children: description }),
|
|
5046
|
+
ctaLabel && /* @__PURE__ */ jsx40("div", { className: "image-banner__actions", children: /* @__PURE__ */ jsx40(
|
|
5047
|
+
Link,
|
|
5048
|
+
{
|
|
5049
|
+
colorScheme: "coral",
|
|
5050
|
+
label: ctaLabel,
|
|
5051
|
+
href: ctaHref,
|
|
5052
|
+
onClick: onCtaClick,
|
|
5053
|
+
showChevron: true,
|
|
5054
|
+
className: "image-banner__cta-link"
|
|
5055
|
+
}
|
|
5056
|
+
) })
|
|
5057
|
+
] }),
|
|
5058
|
+
!isFullBg && imageUrl && /* @__PURE__ */ jsx40("div", { className: "image-banner__image-wrapper", children: /* @__PURE__ */ jsx40(
|
|
5059
|
+
"img",
|
|
5060
|
+
{
|
|
5061
|
+
src: imageUrl,
|
|
5062
|
+
alt: imageAlt,
|
|
5063
|
+
className: "image-banner__image",
|
|
5064
|
+
loading: "lazy"
|
|
5065
|
+
}
|
|
5066
|
+
) })
|
|
5067
|
+
]
|
|
5068
|
+
}
|
|
5069
|
+
)
|
|
5070
|
+
}
|
|
5071
|
+
);
|
|
5072
|
+
};
|
|
5073
|
+
|
|
5074
|
+
// templates/Testimonial/Testimonial.tsx
|
|
5075
|
+
import { useState as useState15, useEffect as useEffect12, useRef as useRef15 } from "react";
|
|
5076
|
+
|
|
5077
|
+
// assets/quote-left.webp
|
|
5078
|
+
var quote_left_default = "./quote-left-63QMW5NQ.webp";
|
|
5079
|
+
|
|
5080
|
+
// assets/quote-right.webp
|
|
5081
|
+
var quote_right_default = "./quote-right-W6AS4YHN.webp";
|
|
5082
|
+
|
|
5083
|
+
// templates/Testimonial/Testimonial.tsx
|
|
5084
|
+
import { jsx as jsx41, jsxs as jsxs37 } from "react/jsx-runtime";
|
|
5085
|
+
var Testimonial = ({
|
|
5086
|
+
title,
|
|
5087
|
+
items,
|
|
5088
|
+
className,
|
|
5089
|
+
...props
|
|
5090
|
+
}) => {
|
|
5091
|
+
const [activeIndex, setActiveIndex] = useState15(0);
|
|
5092
|
+
const [phase, setPhase] = useState15("idle");
|
|
5093
|
+
const pendingIndex = useRef15(null);
|
|
5094
|
+
const autoRef = useRef15(null);
|
|
5095
|
+
const goTo = (next) => {
|
|
5096
|
+
if (next === activeIndex || phase !== "idle") return;
|
|
5097
|
+
pendingIndex.current = next;
|
|
5098
|
+
setPhase("exiting");
|
|
5099
|
+
};
|
|
5100
|
+
useEffect12(() => {
|
|
5101
|
+
if (phase === "exiting") {
|
|
5102
|
+
const t = setTimeout(() => {
|
|
5103
|
+
setActiveIndex(pendingIndex.current ?? activeIndex);
|
|
5104
|
+
setPhase("idle");
|
|
5105
|
+
}, 200);
|
|
5106
|
+
return () => clearTimeout(t);
|
|
5107
|
+
}
|
|
5108
|
+
}, [phase, activeIndex]);
|
|
5109
|
+
useEffect12(() => {
|
|
5110
|
+
if (items.length <= 1) return;
|
|
5111
|
+
autoRef.current = setTimeout(() => {
|
|
5112
|
+
const next = (activeIndex + 1) % items.length;
|
|
5113
|
+
pendingIndex.current = next;
|
|
5114
|
+
setPhase("exiting");
|
|
5115
|
+
}, 5e3);
|
|
5116
|
+
return () => {
|
|
5117
|
+
if (autoRef.current) clearTimeout(autoRef.current);
|
|
5118
|
+
};
|
|
5119
|
+
}, [activeIndex, items.length]);
|
|
5120
|
+
if (!items || items.length === 0) return null;
|
|
5121
|
+
return /* @__PURE__ */ jsx41(
|
|
5122
|
+
"section",
|
|
5123
|
+
{
|
|
5124
|
+
className: ["testimonial", className].filter(Boolean).join(" "),
|
|
5125
|
+
...props,
|
|
5126
|
+
children: /* @__PURE__ */ jsxs37("div", { className: "testimonial__container", children: [
|
|
5127
|
+
title && /* @__PURE__ */ jsx41("h2", { className: "testimonial__title", children: title }),
|
|
5128
|
+
/* @__PURE__ */ jsxs37("div", { className: "testimonial__carousel", children: [
|
|
5129
|
+
/* @__PURE__ */ jsx41("div", { className: "testimonial__slides", children: items.map((item, i) => {
|
|
5130
|
+
const isActive = i === activeIndex;
|
|
5131
|
+
const isExiting = isActive && phase === "exiting";
|
|
5132
|
+
const slideClass = [
|
|
5133
|
+
"testimonial__slide",
|
|
5134
|
+
isActive && !isExiting ? "testimonial__slide--active" : "",
|
|
5135
|
+
isExiting ? "testimonial__slide--exiting" : ""
|
|
5136
|
+
].filter(Boolean).join(" ");
|
|
5137
|
+
return /* @__PURE__ */ jsx41(
|
|
5138
|
+
"div",
|
|
5139
|
+
{
|
|
5140
|
+
className: slideClass,
|
|
5141
|
+
role: "region",
|
|
5142
|
+
"aria-label": `Testimonial ${i + 1} of ${items.length}`,
|
|
5143
|
+
"aria-hidden": !isActive,
|
|
5144
|
+
children: /* @__PURE__ */ jsxs37("div", { className: "testimonial__card", children: [
|
|
5145
|
+
/* @__PURE__ */ jsx41("span", { className: "testimonial__quotemark testimonial__quotemark--open", "aria-hidden": "true", children: /* @__PURE__ */ jsx41("img", { src: quote_left_default, alt: "", className: "testimonial__quotemark-img" }) }),
|
|
5146
|
+
/* @__PURE__ */ jsx41("p", { className: "testimonial__quote", children: item.quote }),
|
|
5147
|
+
/* @__PURE__ */ jsxs37("div", { className: "testimonial__author", children: [
|
|
5148
|
+
item.avatarUrl && /* @__PURE__ */ jsx41(
|
|
5149
|
+
"img",
|
|
5150
|
+
{
|
|
5151
|
+
src: item.avatarUrl,
|
|
5152
|
+
alt: item.authorName,
|
|
5153
|
+
className: "testimonial__author-avatar",
|
|
5154
|
+
loading: "lazy"
|
|
5155
|
+
}
|
|
5156
|
+
),
|
|
5157
|
+
/* @__PURE__ */ jsx41("p", { className: "testimonial__author-name", children: item.authorName }),
|
|
5158
|
+
item.authorLocation && /* @__PURE__ */ jsx41("p", { className: "testimonial__author-location", children: item.authorLocation })
|
|
5159
|
+
] }),
|
|
5160
|
+
/* @__PURE__ */ jsx41("span", { className: "testimonial__quotemark testimonial__quotemark--close", "aria-hidden": "true", children: /* @__PURE__ */ jsx41("img", { src: quote_right_default, alt: "", className: "testimonial__quotemark-img" }) })
|
|
5161
|
+
] })
|
|
5162
|
+
},
|
|
5163
|
+
i
|
|
5164
|
+
);
|
|
5165
|
+
}) }),
|
|
5166
|
+
items.length > 1 && /* @__PURE__ */ jsx41(
|
|
5167
|
+
"div",
|
|
5168
|
+
{
|
|
5169
|
+
className: "testimonial__dots",
|
|
5170
|
+
role: "tablist",
|
|
5171
|
+
"aria-label": "Testimonial navigation",
|
|
5172
|
+
children: items.map((_, i) => /* @__PURE__ */ jsx41(
|
|
5173
|
+
"button",
|
|
5174
|
+
{
|
|
5175
|
+
role: "tab",
|
|
5176
|
+
"aria-selected": i === activeIndex,
|
|
5177
|
+
"aria-label": `Go to testimonial ${i + 1}`,
|
|
5178
|
+
className: [
|
|
5179
|
+
"testimonial__dot",
|
|
5180
|
+
i === activeIndex ? "testimonial__dot--active" : ""
|
|
5181
|
+
].filter(Boolean).join(" "),
|
|
5182
|
+
onClick: () => {
|
|
5183
|
+
if (autoRef.current) clearTimeout(autoRef.current);
|
|
5184
|
+
goTo(i);
|
|
5185
|
+
}
|
|
5186
|
+
},
|
|
5187
|
+
i
|
|
5188
|
+
))
|
|
5189
|
+
}
|
|
5190
|
+
)
|
|
5191
|
+
] })
|
|
5192
|
+
] })
|
|
5193
|
+
}
|
|
5194
|
+
);
|
|
5195
|
+
};
|
|
4665
5196
|
export {
|
|
4666
5197
|
AVATAR_DATA,
|
|
4667
5198
|
Accordion,
|
|
5199
|
+
AvatarGrid,
|
|
4668
5200
|
BottomSheet,
|
|
4669
5201
|
Breadcrumb,
|
|
4670
5202
|
Button,
|
|
@@ -4687,14 +5219,17 @@ export {
|
|
|
4687
5219
|
Footer,
|
|
4688
5220
|
Header,
|
|
4689
5221
|
Hero,
|
|
5222
|
+
ImageBanner,
|
|
4690
5223
|
Leaders,
|
|
4691
5224
|
Link,
|
|
4692
5225
|
LogoMarquee,
|
|
4693
5226
|
Navbar,
|
|
4694
5227
|
Pagination,
|
|
5228
|
+
PeopleGrid,
|
|
4695
5229
|
STEPS_DATA,
|
|
4696
5230
|
SearchField,
|
|
4697
5231
|
Stats,
|
|
5232
|
+
StatsSimple,
|
|
4698
5233
|
Steps,
|
|
4699
5234
|
StickyMarketCards,
|
|
4700
5235
|
StickyStackedCards,
|
|
@@ -4702,6 +5237,7 @@ export {
|
|
|
4702
5237
|
Table,
|
|
4703
5238
|
Tabs,
|
|
4704
5239
|
Tag,
|
|
5240
|
+
Testimonial,
|
|
4705
5241
|
TextField,
|
|
4706
5242
|
TextScroll,
|
|
4707
5243
|
dayNightTransitionV2Preset
|