@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.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 useState5 } from "react";
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] = useState5(/* @__PURE__ */ new Set());
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/Stats.tsx
1909
- import { useEffect as useEffect4, useRef as useRef4, useState as useState6 } from "react";
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 INTERVAL_MS = 2e3;
1912
- var TRANSITION = "transform 0.8s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1)";
1913
- var PARALLAX_FACTOR = 0.18;
1914
- var PARALLAX_MAX = 56;
1915
- var PARALLAX_BP = 992;
1916
- function relativePos(index, active, total) {
1917
- const raw = ((index - active) % total + total) % total;
1918
- return raw > total / 2 ? raw - total : raw;
1919
- }
1920
- function getStatStyle(rel) {
1921
- if (rel === 0) {
1922
- return { transform: "translateY(-50%) scale(1)", opacity: 1, zIndex: 2, transition: TRANSITION };
1923
- }
1924
- if (rel === -1) {
1925
- return { transform: "translateY(calc(-50% - 110%)) scale(0.7)", opacity: 1, zIndex: 1, transition: TRANSITION };
1926
- }
1927
- if (rel === 1) {
1928
- return { transform: "translateY(calc(-50% + 110%)) scale(0.7)", opacity: 1, zIndex: 1, transition: TRANSITION };
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
- var AwardBadge = ({ imageSrc, imageAlt = "" }) => /* @__PURE__ */ jsx24("div", { className: "stats__award", children: /* @__PURE__ */ jsx24("img", { src: imageSrc, alt: imageAlt, className: "stats__award-image" }) });
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 total = stats.length;
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 (total <= 1) return;
1958
- intervalRef.current = setInterval(() => {
1959
- setActiveIndex((prev) => (prev + 1) % total);
1960
- }, INTERVAL_MS);
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
- if (intervalRef.current) clearInterval(intervalRef.current);
2141
+ cancelled = true;
2142
+ scheduleRef.current = null;
2143
+ if (timerId !== null) window.clearTimeout(timerId);
1963
2144
  };
1964
- }, [total]);
2145
+ }, [N]);
1965
2146
  useEffect4(() => {
1966
- const applyParallax = () => {
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 < PARALLAX_BP) {
2171
+ if (!section || window.innerWidth < PARALLAX_BREAKPOINT) {
1969
2172
  if (leftColRef.current) leftColRef.current.style.transform = "";
1970
- if (rightColRef.current) rightColRef.current.style.transform = "";
2173
+ if (rightColRef.current)
2174
+ rightColRef.current.style.transform = "";
1971
2175
  return;
1972
2176
  }
1973
2177
  const rect = section.getBoundingClientRect();
1974
- const sectionCenter = rect.top + rect.height / 2;
1975
- const viewportCenter = window.innerHeight / 2;
1976
- const raw = (sectionCenter - viewportCenter) * PARALLAX_FACTOR;
1977
- const delta = Math.max(-PARALLAX_MAX, Math.min(PARALLAX_MAX, raw));
1978
- if (leftColRef.current) leftColRef.current.style.transform = `translateY(${delta}px)`;
1979
- if (rightColRef.current) rightColRef.current.style.transform = `translateY(${-delta}px)`;
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
- if (rafRef.current) cancelAnimationFrame(rafRef.current);
1983
- rafRef.current = requestAnimationFrame(applyParallax);
2201
+ requestAnimationFrame(apply);
1984
2202
  };
1985
- applyParallax();
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: "stats__inner", children: [
2001
- /* @__PURE__ */ jsxs22("div", { className: "stats__header", children: [
2002
- /* @__PURE__ */ jsx24("h2", { className: "stats__title", children: title }),
2003
- description && /* @__PURE__ */ jsx24("p", { className: "stats__description", children: description })
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: "stats__content", children: [
2006
- leftAwards.length > 0 && /* @__PURE__ */ jsx24("div", { ref: leftColRef, className: "stats__awards-col stats__awards-col--left", children: leftAwards.map((award, i) => /* @__PURE__ */ jsx24(AwardBadge, { ...award }, i)) }),
2007
- /* @__PURE__ */ jsx24("div", { className: "stats__card", children: /* @__PURE__ */ jsxs22("div", { className: "stats__card-track", children: [
2008
- /* @__PURE__ */ jsx24("div", { className: "stats__fade stats__fade--top", "aria-hidden": "true" }),
2009
- /* @__PURE__ */ jsx24("div", { className: "stats__fade stats__fade--bottom", "aria-hidden": "true" }),
2010
- stats.map((stat, i) => {
2011
- const rel = relativePos(i, activeIndex, total);
2012
- const active = rel === 0;
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
- "stats__stat",
2018
- active ? "stats__stat--active" : "stats__stat--inactive"
2254
+ "stats-v2__stat",
2255
+ active ? "stats-v2__stat--active" : "stats-v2__stat--inactive"
2019
2256
  ].join(" "),
2020
- style: getStatStyle(rel),
2257
+ style: getSlotStyle(slot, transition),
2021
2258
  "aria-hidden": !active,
2022
2259
  children: [
2023
- /* @__PURE__ */ jsx24("span", { className: "stats__stat-value", children: stat.value }),
2024
- /* @__PURE__ */ jsx24("span", { className: "stats__stat-label", children: stat.label })
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("div", { ref: rightColRef, className: "stats__awards-col stats__awards-col--right", children: rightAwards.map((award, i) => /* @__PURE__ */ jsx24(AwardBadge, { ...award }, i)) }),
2032
- hasAwards && /* @__PURE__ */ jsx24("div", { className: "stats__awards-mobile", children: allAwards.map((award, i) => /* @__PURE__ */ jsx24(AwardBadge, { ...award }, i)) })
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 useRef6, useState as useState8 } from "react";
2371
+ import { useLayoutEffect, useRef as useRef7, useState as useState10 } from "react";
2041
2372
 
2042
2373
  // components/DotLottieInView/DotLottieInView.tsx
2043
- import { useEffect as useEffect5, useRef as useRef5, useState as useState7 } from "react";
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 jsx25 } from "react/jsx-runtime";
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 = useRef5(null);
2055
- const [inView, setInView] = useState7(false);
2056
- const [dotLottie, setDotLottie] = useState7(null);
2057
- useEffect5(() => {
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
- useEffect5(() => {
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__ */ jsx25(
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__ */ jsx25(
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 jsx26, jsxs as jsxs23 } from "react/jsx-runtime";
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__ */ jsx26(
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__ */ jsx26(
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__ */ jsx26(
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__ */ jsx26(
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] = useState8(0);
2204
- const titleRefs = useRef6([]);
2205
- const mediaColRef = useRef6(null);
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__ */ jsx26("section", { className: rootClass, ...props, children: /* @__PURE__ */ jsx26("div", { className: "fs__inner", children: /* @__PURE__ */ jsx26("h2", { className: "fs__header", children: header }) }) });
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__ */ jsx26("section", { className: rootClass, ...props, children: /* @__PURE__ */ jsxs23("div", { className: "fs__inner", children: [
2261
- /* @__PURE__ */ jsx26("h2", { className: "fs__header", children: header }),
2262
- /* @__PURE__ */ jsxs23("div", { className: "fs__layout", children: [
2263
- /* @__PURE__ */ jsx26("div", { className: "fs__media-col", "aria-hidden": "true", children: /* @__PURE__ */ jsx26(
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__ */ jsx26("div", { className: "fs__media-wrap", children: items.map((item, i) => /* @__PURE__ */ jsx26(
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__ */ jsx26(
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__ */ jsx26("div", { className: "fs__content-col", children: items.map((item, i) => /* @__PURE__ */ jsxs23(
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__ */ jsx26(
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__ */ jsx26("p", { className: "fs__item-desc", children: item.description }),
2303
- /* @__PURE__ */ jsxs23(
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__ */ jsx26("span", { children: item.linkLabel }),
2310
- /* @__PURE__ */ jsx26(ChevronRight2, {})
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__ */ jsx26("div", { className: "fs__mobile-list", children: items.map((item, i) => /* @__PURE__ */ jsxs23("div", { className: "fs__mobile-item", children: [
2320
- /* @__PURE__ */ jsx26("h3", { className: "fs__item-title", children: item.title }),
2321
- /* @__PURE__ */ jsx26("div", { className: "fs__mobile-media", children: /* @__PURE__ */ jsx26(MediaRenderer, { item, active: true }) }),
2322
- /* @__PURE__ */ jsx26("p", { className: "fs__item-desc", children: item.description }),
2323
- /* @__PURE__ */ jsxs23(
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__ */ jsx26("span", { children: item.linkLabel }),
2330
- /* @__PURE__ */ jsx26(ChevronRight2, {})
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 useEffect6, useRef as useRef7 } from "react";
2340
- import { jsx as jsx27, jsxs as jsxs24 } from "react/jsx-runtime";
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 = useRef7([]);
2370
- useEffect6(() => {
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__ */ jsx27(
2735
+ return /* @__PURE__ */ jsx28(
2405
2736
  "section",
2406
2737
  {
2407
2738
  className: ["ssc", className].filter(Boolean).join(" "),
2408
2739
  ...props,
2409
- children: /* @__PURE__ */ jsxs24("div", { className: "ssc__inner", children: [
2410
- /* @__PURE__ */ jsx27("h2", { className: "ssc__header", children: header }),
2411
- /* @__PURE__ */ jsx27("div", { className: "ssc__track", children: items.map((item, i) => /* @__PURE__ */ jsxs24(
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__ */ jsxs24("div", { className: "ssc__card-content", children: [
2438
- /* @__PURE__ */ jsx27("h3", { className: "ssc__card-title", children: item.title }),
2439
- /* @__PURE__ */ jsx27("p", { className: "ssc__card-desc", children: item.description })
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__ */ jsx27("div", { className: "ssc__card-image", children: /* @__PURE__ */ jsx27(
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 useRef8 } from "react";
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 jsx28, jsxs as jsxs25 } from "react/jsx-runtime";
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 = useRef8(null);
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__ */ jsxs25(
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__ */ jsx28(
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__ */ jsx28("div", { className: "ctab__inner", children: /* @__PURE__ */ jsxs25("div", { className: "ctab__stage", children: [
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__ */ jsx28(
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__ */ jsx28(
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__ */ jsxs25(
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__ */ jsx28("h2", { className: "ctab__headline", children: headline }),
2789
- /* @__PURE__ */ jsx28("a", { href: ctaHref, children: /* @__PURE__ */ jsx28(Button, { colorScheme: "black", variant: "primary", label: ctaLabel }) })
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 useRef9, useState as useState9, useEffect as useEffect7, useCallback as useCallback2 } from "react";
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 jsx29, jsxs as jsxs26 } from "react/jsx-runtime";
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__ */ jsx29(
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__ */ jsx29(
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__ */ jsx29("svg", { width: "14", height: "14", viewBox: "0 0 14 14", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsx29(
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__ */ jsx29("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsx29(
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__ */ jsx29("svg", { width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsx29(
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__ */ jsx29("svg", { width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsx29(
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__ */ jsx29(
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__ */ jsx29(
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__ */ jsx29("img", { src: icon_globe_default, alt: "", "aria-hidden": "true", width: "20", height: "20", className });
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__ */ jsx29(
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__ */ jsxs26("div", { className: "navbar__dropdown-inner", children: [
2917
- /* @__PURE__ */ jsx29("div", { className: "navbar__dropdown-left", children: dropdown.columns.map((col, colIdx) => /* @__PURE__ */ jsx29("div", { className: "navbar__dropdown-col", children: col.sections.map((section) => /* @__PURE__ */ jsxs26("div", { className: "navbar__dropdown-col-list", children: [
2918
- /* @__PURE__ */ jsx29("p", { className: "navbar__dropdown-col-title", children: section.title }),
2919
- section.items.map((link) => /* @__PURE__ */ jsxs26(
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__ */ jsx29(ArrowUpRightIcon, {}) : /* @__PURE__ */ jsx29(ArrowRightIcon, {})
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__ */ jsx29("div", { className: "navbar__dropdown-right", children: /* @__PURE__ */ jsx29(FeatureCard, { feature: dropdown.feature }) })
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__ */ jsxs26(
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__ */ jsx29(
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__ */ jsx29("div", { className: mobile ? "navbar__drawer-feature-overlay" : "navbar__dropdown-feature-overlay", "aria-hidden": "true" }),
2955
- /* @__PURE__ */ jsxs26("div", { className: mobile ? "navbar__drawer-feature-content" : "navbar__dropdown-feature-content", children: [
2956
- /* @__PURE__ */ jsxs26("div", { children: [
2957
- /* @__PURE__ */ jsx29("p", { className: mobile ? "navbar__drawer-feature-title" : "navbar__dropdown-feature-title", children: feature.title }),
2958
- /* @__PURE__ */ jsx29("p", { className: mobile ? "navbar__drawer-feature-desc" : "navbar__dropdown-feature-desc", children: feature.description })
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__ */ jsxs26(
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__ */ jsx29(ArrowRightIcon, {})
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__ */ jsxs26("div", { className: "navbar__drawer-item", children: [
2978
- /* @__PURE__ */ jsxs26(
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__ */ jsx29(ChevronDownIcon3, { className: "navbar__drawer-trigger__chevron" })
3317
+ /* @__PURE__ */ jsx30(ChevronDownIcon3, { className: "navbar__drawer-trigger__chevron" })
2987
3318
  ]
2988
3319
  }
2989
3320
  ),
2990
- /* @__PURE__ */ jsx29(AnimatePresence, { initial: false, children: isOpen && dropdown && /* @__PURE__ */ jsx29(
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__ */ jsxs26("div", { className: "navbar__drawer-panel-inner", children: [
3000
- /* @__PURE__ */ jsx29("div", { className: "navbar__drawer-panel-cols", children: dropdown.columns.map((col, colIdx) => /* @__PURE__ */ jsx29("div", { className: "navbar__drawer-panel-col", children: col.sections.map((section) => /* @__PURE__ */ jsxs26("div", { className: "navbar__drawer-col-section", children: [
3001
- /* @__PURE__ */ jsx29("p", { className: "navbar__drawer-col-title", children: section.title }),
3002
- /* @__PURE__ */ jsx29("div", { className: "navbar__drawer-col-links", children: section.items.map((link) => /* @__PURE__ */ jsx29(
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__ */ jsx29(FeatureCard, { feature: dropdown.feature, mobile: true })
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] = useState9(null);
3039
- const [mobileOpen, setMobileOpen] = useState9(false);
3040
- const [mobileExpanded, setMobileExpanded] = useState9(null);
3041
- const [scrolled, setScrolled] = useState9(false);
3042
- const [langDropdownOpen, setLangDropdownOpen] = useState9(false);
3043
- const [mobileLangOpen, setMobileLangOpen] = useState9(false);
3044
- const hoverTimeoutRef = useRef9(null);
3045
- const langHoverTimeoutRef = useRef9(null);
3046
- const pillAreaRef = useRef9(null);
3047
- const langBtnRef = useRef9(null);
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
- useEffect7(() => {
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
- useEffect7(() => {
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
- useEffect7(() => {
3397
+ useEffect8(() => {
3067
3398
  if (!mobileOpen) setMobileLangOpen(false);
3068
3399
  }, [mobileOpen]);
3069
- useEffect7(() => {
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
- useEffect7(() => {
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__ */ jsxs26(
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__ */ jsxs26("div", { className: "navbar__bar", children: [
3126
- /* @__PURE__ */ jsx29("a", { href: logoHref, className: "navbar__logo", "aria-label": "Home", children: /* @__PURE__ */ jsx29("img", { src: resolvedLogo, alt: "Logo" }) }),
3127
- /* @__PURE__ */ jsx29("div", { className: "navbar__nav-center", ref: pillAreaRef, children: /* @__PURE__ */ jsxs26("div", { className: "navbar__pill", children: [
3128
- /* @__PURE__ */ jsx29("a", { href: logoHref, className: "navbar__pill-logo", "aria-label": "Home", children: /* @__PURE__ */ jsx29("img", { src: logoSrcDark ?? logoSrc, alt: "Logo" }) }),
3129
- /* @__PURE__ */ jsxs26("div", { className: "navbar__nav-group", children: [
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__ */ jsxs26(
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__ */ jsx29(ArrowUpRightIcon, {})
3472
+ /* @__PURE__ */ jsx30(ArrowUpRightIcon, {})
3142
3473
  ]
3143
3474
  },
3144
3475
  item.label
3145
3476
  );
3146
3477
  }
3147
3478
  if (item.dropdown) {
3148
- return /* @__PURE__ */ jsxs26(
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__ */ jsx29(ChevronDownIcon3, { className: "navbar__nav-item__chevron" })
3492
+ /* @__PURE__ */ jsx30(ChevronDownIcon3, { className: "navbar__nav-item__chevron" })
3162
3493
  ]
3163
3494
  },
3164
3495
  item.label
3165
3496
  );
3166
3497
  }
3167
- return /* @__PURE__ */ jsx29("a", { href: item.href, className: "navbar__nav-item", children: item.label }, item.label);
3498
+ return /* @__PURE__ */ jsx30("a", { href: item.href, className: "navbar__nav-item", children: item.label }, item.label);
3168
3499
  }),
3169
- languageLabel && /* @__PURE__ */ jsx29(
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__ */ jsxs26(
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__ */ jsx29(GlobeIcon, { className: "navbar__lang-globe" }),
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__ */ jsxs26("div", { className: "navbar__pill-actions", children: [
3197
- loginHref && /* @__PURE__ */ jsx29("a", { href: loginHref, children: /* @__PURE__ */ jsx29(Button, { colorScheme: "black", variant: "secondary", label: loginLabel }) }),
3198
- ctaHref && /* @__PURE__ */ jsx29("a", { href: ctaHref, children: /* @__PURE__ */ jsx29(Button, { colorScheme: "coral", variant: "primary", label: ctaLabel }) })
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__ */ jsx29(AnimatePresence, { children: openDropdown && activeDropdownItem?.dropdown && /* @__PURE__ */ jsx29(
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__ */ jsx29(AnimatePresence, { children: hasLangDropdown && langDropdownOpen && /* @__PURE__ */ jsx29(
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__ */ jsx29(
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__ */ jsx29(
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__ */ jsxs26("div", { className: "navbar__actions", children: [
3243
- loginHref && /* @__PURE__ */ jsx29("a", { href: loginHref, className: "navbar__actions-login", children: /* @__PURE__ */ jsx29(
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__ */ jsx29("a", { href: ctaHref, children: /* @__PURE__ */ jsx29(Button, { colorScheme: "coral", variant: "primary", label: ctaLabel }) })
3582
+ ctaHref && /* @__PURE__ */ jsx30("a", { href: ctaHref, children: /* @__PURE__ */ jsx30(Button, { colorScheme: "coral", variant: "primary", label: ctaLabel }) })
3252
3583
  ] }),
3253
- /* @__PURE__ */ jsxs26("div", { className: "navbar__mobile-actions", children: [
3254
- loginHref && /* @__PURE__ */ jsx29("a", { href: loginHref, children: /* @__PURE__ */ jsx29(
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__ */ jsx29(
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__ */ jsx29(XMarkIcon2, {}) : /* @__PURE__ */ jsx29(BarsIcon, {})
3599
+ children: mobileOpen ? /* @__PURE__ */ jsx30(XMarkIcon2, {}) : /* @__PURE__ */ jsx30(BarsIcon, {})
3269
3600
  }
3270
3601
  )
3271
3602
  ] })
3272
3603
  ] }),
3273
- /* @__PURE__ */ jsx29("div", { className: "navbar__drawer-clip", children: /* @__PURE__ */ jsx29(AnimatePresence, { children: mobileOpen && /* @__PURE__ */ jsxs26(
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__ */ jsxs26("nav", { className: "navbar__drawer-nav", children: [
3617
+ /* @__PURE__ */ jsxs27("nav", { className: "navbar__drawer-nav", children: [
3287
3618
  navItems.map((item) => {
3288
3619
  if (item.dropdown) {
3289
- return /* @__PURE__ */ jsx29(
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__ */ jsxs26(
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__ */ jsx29(ArrowUpRightIcon, {})
3641
+ item.external && /* @__PURE__ */ jsx30(ArrowUpRightIcon, {})
3311
3642
  ]
3312
3643
  },
3313
3644
  item.label
3314
3645
  );
3315
3646
  }),
3316
- languageLabel && !hasLangDropdown && /* @__PURE__ */ jsxs26("button", { className: "navbar__drawer-lang", onClick: onLanguageClick, children: [
3317
- /* @__PURE__ */ jsx29(GlobeIcon, { className: "navbar__lang-globe" }),
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__ */ jsxs26(
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__ */ jsx29(GlobeIcon, { className: "navbar__lang-globe" }),
3657
+ /* @__PURE__ */ jsx30(GlobeIcon, { className: "navbar__lang-globe" }),
3327
3658
  languageLabel
3328
3659
  ]
3329
3660
  }
3330
3661
  )
3331
3662
  ] }),
3332
- !mobileLangOpen && /* @__PURE__ */ jsxs26("div", { className: "navbar__drawer-footer", children: [
3333
- loginHref && /* @__PURE__ */ jsx29("a", { href: loginHref, style: { display: "block" }, children: /* @__PURE__ */ jsx29(
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__ */ jsx29("a", { href: ctaHref, style: { display: "block" }, children: /* @__PURE__ */ jsx29(
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__ */ jsx29(AnimatePresence, { children: hasLangDropdown && mobileLangOpen && /* @__PURE__ */ jsxs26(
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__ */ jsx29(
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__ */ jsx29(ChevronLeftIcon, {})
3698
+ children: /* @__PURE__ */ jsx30(ChevronLeftIcon, {})
3368
3699
  }
3369
3700
  ),
3370
- /* @__PURE__ */ jsx29("div", { className: "navbar__drawer-lang-grid", children: languageItems.map((lang) => /* @__PURE__ */ jsx29(
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 useEffect8, useLayoutEffect as useLayoutEffect2, useRef as useRef10, useState as useState10 } from "react";
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 jsx30, jsxs as jsxs27 } from "react/jsx-runtime";
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 = useRef10(null);
3510
- const dayWordRef = useRef10(null);
3511
- const [nightMarginStart, setNightMarginStart] = useState10("0px");
3512
- const [nightMarginEnd, setNightMarginEnd] = useState10("0px");
3513
- const [ixMedia, setIxMedia] = useState10("desktop");
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
- useEffect8(() => {
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__ */ jsxs27(
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__ */ jsxs27("div", { className: "dnt__v2-background-wrapper", "aria-hidden": "true", children: [
3622
- /* @__PURE__ */ jsx30(
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__ */ jsx30(
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__ */ jsxs27("div", { className: webflowV2 ? "dnt__sticky dnt__sticky--webflow-v2" : "dnt__sticky", children: [
3641
- !webflowV2 && /* @__PURE__ */ jsxs27(Fragment3, { children: [
3642
- /* @__PURE__ */ jsx30(
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__ */ jsx30(
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__ */ jsx30("div", { className: "dnt__content", children: /* @__PURE__ */ jsx30("div", { className: "dnt__inner", children: webflowV2 ? /* @__PURE__ */ jsxs27("div", { className: "dnt__text-wrap", children: [
3665
- useInlineHeadline && inlineDayNightHeadline ? /* @__PURE__ */ jsxs27(
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__ */ jsx30("span", { className: "dnt__headline-prefix", children: inlineDayNightHeadline.prefix }),
3673
- /* @__PURE__ */ jsxs27("span", { className: "dnt__headline-pair", children: [
3674
- /* @__PURE__ */ jsx30(
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__ */ jsx30(
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__ */ jsxs27("div", { className: "dnt__crossfade-wrap", children: [
3699
- /* @__PURE__ */ jsx30(
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__ */ jsx30(
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__ */ jsxs27("div", { className: "dnt__crossfade-wrap", children: [
3718
- /* @__PURE__ */ jsx30(
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__ */ jsx30(
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__ */ jsx30("a", { href: ctaHref, className: "dnt__btn", children: ctaLabel })
3743
- ] }) : /* @__PURE__ */ jsxs27(
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__ */ jsxs27(
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__ */ jsx30("span", { className: "dnt__headline-prefix", children: inlineDayNightHeadline.prefix }),
3756
- /* @__PURE__ */ jsxs27("span", { className: "dnt__headline-pair", children: [
3757
- /* @__PURE__ */ jsx30(
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__ */ jsx30(
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__ */ jsxs27("div", { className: "dnt__crossfade-wrap", children: [
3782
- /* @__PURE__ */ jsx30(
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__ */ jsx30(
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__ */ jsxs27("div", { className: "dnt__crossfade-wrap", children: [
3801
- /* @__PURE__ */ jsx30(
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__ */ jsx30(
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__ */ jsx30("a", { href: ctaHref, className: "dnt__btn", children: ctaLabel })
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 useRef11 } from "react";
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 jsx31, jsxs as jsxs28 } from "react/jsx-runtime";
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 = useRef11(null);
3910
- const col2Ref = useRef11(null);
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__ */ jsx31(
4254
+ return /* @__PURE__ */ jsx32(
3924
4255
  "section",
3925
4256
  {
3926
4257
  className: ["lm", className].filter(Boolean).join(" "),
3927
4258
  ...props,
3928
- children: /* @__PURE__ */ jsxs28("div", { className: "lm__inner", children: [
3929
- /* @__PURE__ */ jsx31("div", { className: "lm__media", children: /* @__PURE__ */ jsxs28("div", { className: "lm__carousel", children: [
3930
- /* @__PURE__ */ jsx31("div", { className: "lm__fade lm__fade--top", "aria-hidden": "true" }),
3931
- /* @__PURE__ */ jsx31(
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__ */ jsx31("div", { className: "lm__card", children: /* @__PURE__ */ jsx31("div", { className: "lm__card-img-wrap", children: /* @__PURE__ */ jsx31(
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__ */ jsx31(
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__ */ jsx31("div", { className: "lm__card", children: /* @__PURE__ */ jsx31("div", { className: "lm__card-img-wrap", children: /* @__PURE__ */ jsx31(
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__ */ jsx31("div", { className: "lm__fade lm__fade--bottom", "aria-hidden": "true" })
4296
+ /* @__PURE__ */ jsx32("div", { className: "lm__fade lm__fade--bottom", "aria-hidden": "true" })
3966
4297
  ] }) }),
3967
- /* @__PURE__ */ jsxs28("div", { className: "lm__content", children: [
3968
- /* @__PURE__ */ jsx31("h2", { className: "lm__headline", children: headline }),
3969
- /* @__PURE__ */ jsxs28("div", { className: "lm__text-group", children: [
3970
- /* @__PURE__ */ jsx31("p", { className: "lm__body", children: body }),
3971
- /* @__PURE__ */ jsx31("p", { className: "lm__disclaimer", children: disclaimer })
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__ */ jsxs28("a", { href: ctaHref, className: "lm__link", children: [
4304
+ /* @__PURE__ */ jsxs29("a", { href: ctaHref, className: "lm__link", children: [
3974
4305
  ctaLabel,
3975
- /* @__PURE__ */ jsx31("span", { className: "lm__link-icon", "aria-hidden": "true", children: /* @__PURE__ */ jsx31("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ jsx31("path", { d: "M3 8H13M13 8L9 4M13 8L9 12", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }) }) })
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 jsx32 } from "react/jsx-runtime";
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__ */ jsx32(
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__ */ jsx32("img", { className: "download-badge__img", src, alt })
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 jsx33, jsxs as jsxs29 } from "react/jsx-runtime";
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__ */ jsx33("section", { className: "steps", children: /* @__PURE__ */ jsxs29("div", { className: containerClass, children: [
4087
- image && /* @__PURE__ */ jsx33("div", { className: "steps__image-wrapper", children: /* @__PURE__ */ jsx33(
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__ */ jsxs29("div", { className: "steps__content", children: [
4096
- /* @__PURE__ */ jsx33("h2", { className: "steps__title", children: title }),
4097
- /* @__PURE__ */ jsx33("ol", { className: "steps__list", children: steps.map((step, index) => /* @__PURE__ */ jsx33("li", { className: "steps__item", children: /* @__PURE__ */ jsxs29("div", { className: "steps__item-inner", children: [
4098
- /* @__PURE__ */ jsx33("span", { className: "steps__number", "aria-hidden": "true", children: index + 1 }),
4099
- /* @__PURE__ */ jsxs29("div", { className: "steps__item-body", children: [
4100
- /* @__PURE__ */ jsx33("h3", { className: "steps__item-title", children: step.title }),
4101
- /* @__PURE__ */ jsx33("p", { className: "steps__item-description", children: step.description })
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 jsx34, jsxs as jsxs30 } from "react/jsx-runtime";
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__ */ jsx34("section", { className: `db-section db-section--${style}`, children: /* @__PURE__ */ jsx34("div", { className: "db-container", children: /* @__PURE__ */ jsxs30("div", { className: "db-card", children: [
4135
- /* @__PURE__ */ jsxs30("div", { className: "db-qr-block", children: [
4136
- qrCodeImage && /* @__PURE__ */ jsx34(
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__ */ jsxs30("div", { className: "db-qr-text", children: [
4145
- /* @__PURE__ */ jsx34("span", { className: "db-qr-text__title db-qr-text__title--desktop", children: qrTitle }),
4146
- /* @__PURE__ */ jsx34("h2", { className: "db-qr-text__subtitle db-qr-text__subtitle--desktop", children: qrSubtitle }),
4147
- /* @__PURE__ */ jsx34("span", { className: "db-qr-text__title db-qr-text__title--mobile", children: mobileTitle }),
4148
- disclaimer && /* @__PURE__ */ jsx34("span", { className: "db-disclaimer", children: disclaimer })
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__ */ jsxs30("div", { className: "db-badges", children: [
4152
- showGooglePlay && /* @__PURE__ */ jsx34(DownloadBadge, { platform: "googleplay", colorScheme, href: googlePlayHref }),
4153
- showAppGallery && /* @__PURE__ */ jsx34(DownloadBadge, { platform: "appgallery", colorScheme, href: appGalleryHref }),
4154
- showMacOS && /* @__PURE__ */ jsx34(DownloadBadge, { platform: "macos", colorScheme, href: macOSHref }),
4155
- showWindows && /* @__PURE__ */ jsx34(DownloadBadge, { platform: "windows", colorScheme, href: windowsHref }),
4156
- showLinux && /* @__PURE__ */ jsx34(DownloadBadge, { platform: "linux", colorScheme, href: linuxHref }),
4157
- showAppStore && /* @__PURE__ */ jsx34(DownloadBadge, { platform: "appstore", colorScheme, href: appStoreHref }),
4158
- showWeb && /* @__PURE__ */ jsx34(DownloadBadge, { platform: "web", colorScheme, href: webHref })
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 useEffect9, useRef as useRef12 } from "react";
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 jsx35, jsxs as jsxs31 } from "react/jsx-runtime";
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 = useRef12(null);
4171
- const wordsRef = useRef12([]);
4501
+ const sectionRef = useRef13(null);
4502
+ const wordsRef = useRef13([]);
4172
4503
  const words = text.split(/\s+/).filter(Boolean);
4173
- useEffect9(() => {
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__ */ jsx35(
4538
+ return /* @__PURE__ */ jsx36(
4208
4539
  "section",
4209
4540
  {
4210
4541
  ref: sectionRef,
4211
4542
  className: ["ts", className].filter(Boolean).join(" "),
4212
- children: /* @__PURE__ */ jsx35("div", { className: "ts__inner", children: /* @__PURE__ */ jsx35("p", { className: "ts__text", "aria-label": text, children: words.map((word, i) => /* @__PURE__ */ jsxs31(
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 useEffect10, useRef as useRef13 } from "react";
4233
- import { jsx as jsx36, jsxs as jsxs32 } from "react/jsx-runtime";
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 = useRef13([]);
4243
- const cardInnerRefs = useRef13([]);
4244
- useEffect10(() => {
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
- useEffect10(() => {
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__ */ jsx36(
4645
+ return /* @__PURE__ */ jsx37(
4315
4646
  "section",
4316
4647
  {
4317
4648
  className: ["smc", className].filter(Boolean).join(" "),
4318
4649
  ...props,
4319
- children: /* @__PURE__ */ jsxs32("div", { className: "smc__inner", children: [
4320
- /* @__PURE__ */ jsxs32("div", { className: "smc__header-wrap", children: [
4321
- /* @__PURE__ */ jsx36("h2", { className: "smc__header", children: sectionTitle }),
4322
- sectionDescription && /* @__PURE__ */ jsx36("p", { className: "smc__description", children: sectionDescription })
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__ */ jsx36("div", { className: "smc__track", children: items.map((item, i) => {
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__ */ jsx36(
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__ */ jsxs32(
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__ */ jsxs32("div", { className: "smc__card-bg", children: [
4350
- /* @__PURE__ */ jsx36(
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__ */ jsx36(
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__ */ jsxs32("div", { className: "smc__card-content", children: [
4370
- /* @__PURE__ */ jsx36("div", { className: "smc__card-title-wrap", children: /* @__PURE__ */ jsx36("h3", { className: "smc__card-title", children: item.title }) }),
4371
- /* @__PURE__ */ jsx36("div", { className: "smc__card-desc-wrap", children: /* @__PURE__ */ jsx36("p", { className: "smc__card-desc", children: item.description }) })
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 useState11, useMemo } from "react";
4387
- import { Fragment as Fragment4, jsx as jsx37, jsxs as jsxs33 } from "react/jsx-runtime";
4388
- var InfoIcon = ({ className }) => /* @__PURE__ */ jsxs33("svg", { width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", className, children: [
4389
- /* @__PURE__ */ jsx37("circle", { cx: "12", cy: "12", r: "10", stroke: "currentColor", strokeWidth: "1.5" }),
4390
- /* @__PURE__ */ jsx37("path", { d: "M12 16V12", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round" }),
4391
- /* @__PURE__ */ jsx37("circle", { cx: "12", cy: "8", r: "1", fill: "currentColor", stroke: "currentColor", strokeWidth: "1" })
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] = useState11("");
4405
- const [page, setPage] = useState11(1);
4406
- const [tooltip, setTooltip] = useState11({ visible: false, heading: "", description: "", x: 0, y: 0, arrowOffset: 0 });
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 = useMemo(() => {
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__ */ jsxs33("section", { className: ["tbl-section", className].filter(Boolean).join(" "), ...props, children: [
4429
- sectionTitle && /* @__PURE__ */ jsx37("div", { className: "tbl-section__header", children: /* @__PURE__ */ jsx37("h2", { className: "tbl-section__title", children: sectionTitle }) }),
4430
- /* @__PURE__ */ jsxs33("div", { className: "tbl-section__content", children: [
4431
- /* @__PURE__ */ jsxs33("div", { className: "tbl", children: [
4432
- /* @__PURE__ */ jsxs33("div", { className: "tbl__topbar", children: [
4433
- /* @__PURE__ */ jsx37("div", { className: "tbl__search-wrap", children: /* @__PURE__ */ jsx37(
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__ */ jsx37("div", { className: "tbl__summary", children: filtered.length > 0 ? /* @__PURE__ */ jsxs33(Fragment4, { children: [
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__ */ jsx37("div", { className: "tbl__scroll-wrapper", children: /* @__PURE__ */ jsxs33("table", { className: "tbl__table", children: [
4454
- /* @__PURE__ */ jsx37("thead", { children: /* @__PURE__ */ jsx37("tr", { className: "tbl__tr", children: columns.map((col, colIdx) => {
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__ */ jsx37(
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__ */ jsx37(
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__ */ jsx37("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__ */ jsxs33("span", { children: [
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__ */ jsx37("br", {})
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__ */ jsx37("tbody", { className: "tbl__tbody", children: visible.length > 0 ? visible.map((row, rowIdx) => /* @__PURE__ */ jsx37("tr", { className: "tbl__tr", children: columns.map((col) => {
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__ */ jsx37(
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__ */ jsxs33("div", { className: "tbl__cell-inner", children: [
4518
- iconUrl && /* @__PURE__ */ jsx37(
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__ */ jsx37("span", { className: "tbl__cell-text tbl__cell-text--bold", children: row[col.key] ?? "" })
4531
- ] }) : /* @__PURE__ */ jsx37("span", { className: "tbl__cell-text", children: row[col.key] ?? "" })
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__ */ jsx37("tr", { className: "tbl__tr", children: /* @__PURE__ */ jsxs33("td", { colSpan: columns.length, className: "tbl__empty-cell", children: [
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__ */ jsx37("div", { className: "tbl__footer", children: /* @__PURE__ */ jsx37("div", { className: "tbl__pagination-wrap", children: /* @__PURE__ */ jsx37(
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__ */ jsxs33("div", { className: "tbl-section__info-box", children: [
4551
- /* @__PURE__ */ jsx37(InfoIcon, { className: "tbl-section__info-icon" }),
4552
- /* @__PURE__ */ jsx37("p", { className: "tbl-section__info-text", children: infoText })
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__ */ jsxs33(
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__ */ jsx37("div", { className: "tbl__global-hint-desc", children: tooltip.description }),
4562
- /* @__PURE__ */ jsx37(
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 useState12 } from "react";
4577
- import { Fragment as Fragment5, jsx as jsx38, jsxs as jsxs34 } from "react/jsx-runtime";
4578
- var LinkedInIcon = () => /* @__PURE__ */ jsx38("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": "true", children: /* @__PURE__ */ jsx38("path", { d: "M14.816 0H1.18C0.528 0 0 0.516 0 1.153V14.846C0 15.484 0.528 16 1.18 16H14.816C15.468 16 16 15.484 16 14.846V1.153C16 0.516 15.468 0 14.816 0ZM4.744 13.642H2.368V5.996H4.744V13.642ZM3.556 4.952C2.796 4.952 2.18 4.336 2.18 3.576C2.18 2.816 2.796 2.2 3.556 2.2C4.316 2.2 4.932 2.816 4.932 3.576C4.932 4.336 4.316 4.952 3.556 4.952ZM13.642 13.642H11.266V9.924C11.266 9.038 11.25 7.896 10.032 7.896C8.814 7.896 8.626 8.846 8.626 9.86V13.642H6.25V5.996H8.53V7.04H8.562C8.88 6.44 9.534 5.806 10.686 5.806C12.958 5.806 13.642 7.3 13.642 9.386V13.642Z", fill: "currentColor" }) });
4579
- var ChevronDownIcon4 = () => /* @__PURE__ */ jsx38("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": "true", children: /* @__PURE__ */ jsx38("path", { d: "M4 6L8 10L12 6", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }) });
4580
- var ChevronUpIcon = () => /* @__PURE__ */ jsx38("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": "true", children: /* @__PURE__ */ jsx38("path", { d: "M12 10L8 6L4 10", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }) });
4581
- var CardContent = ({ item }) => /* @__PURE__ */ jsxs34(Fragment5, { children: [
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: "leaders__image",
4917
+ className: "avatar-grid__image",
4588
4918
  loading: "lazy"
4589
4919
  }
4590
4920
  ) }),
4591
- /* @__PURE__ */ jsxs34("div", { className: "leaders__content", children: [
4592
- /* @__PURE__ */ jsx38("h3", { className: "leaders__name", children: item.name }),
4593
- /* @__PURE__ */ jsx38("p", { className: "leaders__role", children: item.role })
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.linkedinUrl && /* @__PURE__ */ jsx38(
4925
+ item.linkUrl && /* @__PURE__ */ jsx39(
4596
4926
  Link,
4597
4927
  {
4598
- href: item.linkedinUrl,
4928
+ href: item.linkUrl,
4599
4929
  target: "_blank",
4600
4930
  rel: "noopener noreferrer",
4601
- icon: /* @__PURE__ */ jsx38(LinkedInIcon, {}),
4602
- label: "LinkedIn",
4931
+ icon: item.linkIcon,
4932
+ label: item.linkLabel ?? "Profile",
4603
4933
  colorScheme: "black",
4604
4934
  showChevron: false,
4605
- className: "leaders__link"
4935
+ className: "avatar-grid__link"
4606
4936
  }
4607
4937
  )
4608
4938
  ] });
4609
- var Leaders = ({
4610
- title = "Our leaders",
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] = useState12(false);
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__ */ jsx38("section", { className: ["leaders", className].filter(Boolean).join(" "), ...props, children: /* @__PURE__ */ jsxs34("div", { className: "leaders__container", children: [
4623
- title && /* @__PURE__ */ jsx38("div", { className: "leaders__header", children: /* @__PURE__ */ jsx38("h2", { className: "leaders__title", children: title }) }),
4624
- /* @__PURE__ */ jsxs34("div", { className: "leaders__grid-wrapper", children: [
4625
- /* @__PURE__ */ jsx38("div", { className: "leaders__grid", children: visibleItems.map((item, i) => /* @__PURE__ */ jsx38("div", { className: "leaders__card", children: /* @__PURE__ */ jsx38(CardContent, { item }) }, i)) }),
4626
- hasMore && /* @__PURE__ */ jsx38(
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
- "leaders__extra-cards",
4631
- isExpanded ? "leaders__extra-cards--open" : ""
4964
+ "avatar-grid__extra-cards",
4965
+ isExpanded ? "avatar-grid__extra-cards--open" : ""
4632
4966
  ].join(" "),
4633
4967
  "aria-hidden": !isExpanded,
4634
- children: /* @__PURE__ */ jsx38("div", { className: "leaders__extra-grid", children: extraItems.map((item, i) => /* @__PURE__ */ jsx38(
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
- "leaders__card",
4639
- "leaders__extra-card",
4640
- isExpanded ? "leaders__extra-card--visible" : ""
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__ */ jsx38(CardContent, { item })
4979
+ children: /* @__PURE__ */ jsx39(CardContent, { item })
4646
4980
  },
4647
4981
  i
4648
4982
  )) })
4649
4983
  }
4650
4984
  )
4651
4985
  ] }),
4652
- hasMore && /* @__PURE__ */ jsx38("div", { className: "leaders__actions", children: /* @__PURE__ */ jsx38(
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__ */ jsx38(ChevronUpIcon, {}) : /* @__PURE__ */ jsx38(ChevronDownIcon4, {}),
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