@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.js CHANGED
@@ -22,6 +22,7 @@ var index_exports = {};
22
22
  __export(index_exports, {
23
23
  AVATAR_DATA: () => AVATAR_DATA,
24
24
  Accordion: () => Accordion,
25
+ AvatarGrid: () => AvatarGrid,
25
26
  BottomSheet: () => BottomSheet,
26
27
  Breadcrumb: () => Breadcrumb,
27
28
  Button: () => Button,
@@ -44,14 +45,17 @@ __export(index_exports, {
44
45
  Footer: () => Footer,
45
46
  Header: () => Header,
46
47
  Hero: () => Hero,
48
+ ImageBanner: () => ImageBanner,
47
49
  Leaders: () => Leaders,
48
50
  Link: () => Link,
49
51
  LogoMarquee: () => LogoMarquee,
50
52
  Navbar: () => Navbar,
51
53
  Pagination: () => Pagination,
54
+ PeopleGrid: () => PeopleGrid,
52
55
  STEPS_DATA: () => STEPS_DATA,
53
56
  SearchField: () => SearchField,
54
57
  Stats: () => Stats,
58
+ StatsSimple: () => StatsSimple,
55
59
  Steps: () => Steps,
56
60
  StickyMarketCards: () => StickyMarketCards,
57
61
  StickyStackedCards: () => StickyStackedCards,
@@ -59,6 +63,7 @@ __export(index_exports, {
59
63
  Table: () => Table,
60
64
  Tabs: () => Tabs,
61
65
  Tag: () => Tag,
66
+ Testimonial: () => Testimonial,
62
67
  TextField: () => TextField,
63
68
  TextScroll: () => TextScroll,
64
69
  dayNightTransitionV2Preset: () => dayNightTransitionV2Preset
@@ -1094,18 +1099,25 @@ var Tabs = ({
1094
1099
  };
1095
1100
 
1096
1101
  // templates/FaqAccordion/FaqAccordion.tsx
1102
+ var import_react7 = require("react");
1097
1103
  var import_jsx_runtime17 = require("react/jsx-runtime");
1098
1104
  var FaqAccordion = ({
1099
1105
  title,
1100
1106
  items,
1101
1107
  colorScheme = "white"
1102
1108
  }) => {
1109
+ const [openIndex, setOpenIndex] = (0, import_react7.useState)(null);
1110
+ const handleToggle = (index) => (isOpen) => {
1111
+ setOpenIndex(isOpen ? index : null);
1112
+ };
1103
1113
  return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("section", { className: ["faq-accordion", `faq-accordion--${colorScheme}`].join(" "), children: /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: "faq-accordion__container", children: [
1104
1114
  /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: "faq-accordion__header", children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("h2", { className: "faq-accordion__title", children: title }) }),
1105
1115
  /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: "faq-accordion__list", children: items.map((item, index) => /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
1106
1116
  Accordion,
1107
1117
  {
1108
1118
  title: item.question,
1119
+ open: openIndex === index,
1120
+ onToggle: handleToggle(index),
1109
1121
  showTopDivider: index === 0,
1110
1122
  showBottomDivider: true,
1111
1123
  children: item.answer
@@ -1371,7 +1383,7 @@ var FeatureBullets = ({
1371
1383
  };
1372
1384
 
1373
1385
  // components/Footer/Footer.tsx
1374
- var import_react7 = require("react");
1386
+ var import_react8 = require("react");
1375
1387
  var import_jsx_runtime21 = require("react/jsx-runtime");
1376
1388
  var ExternalLinkIcon = () => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
1377
1389
  "svg",
@@ -1486,7 +1498,7 @@ var Footer = ({
1486
1498
  ...props
1487
1499
  }) => {
1488
1500
  const allSections = navColumns.flat();
1489
- const [openSections, setOpenSections] = (0, import_react7.useState)(/* @__PURE__ */ new Set());
1501
+ const [openSections, setOpenSections] = (0, import_react8.useState)(/* @__PURE__ */ new Set());
1490
1502
  const toggleSection = (index) => {
1491
1503
  setOpenSections((prev) => {
1492
1504
  const next = new Set(prev);
@@ -1851,7 +1863,7 @@ var Hero = ({
1851
1863
  };
1852
1864
 
1853
1865
  // templates/Header/Header.tsx
1854
- var import_react8 = require("react");
1866
+ var import_react9 = require("react");
1855
1867
  var import_jsx_runtime23 = require("react/jsx-runtime");
1856
1868
  var ButtonBlock2 = ({
1857
1869
  primaryButton,
@@ -1908,10 +1920,10 @@ var Header = ({
1908
1920
  ...props
1909
1921
  }) => {
1910
1922
  const variantClass = `header--${variant}`;
1911
- const sectionRef = (0, import_react8.useRef)(null);
1912
- const leftRef = (0, import_react8.useRef)(null);
1913
- const rightRef = (0, import_react8.useRef)(null);
1914
- (0, import_react8.useEffect)(() => {
1923
+ const sectionRef = (0, import_react9.useRef)(null);
1924
+ const leftRef = (0, import_react9.useRef)(null);
1925
+ const rightRef = (0, import_react9.useRef)(null);
1926
+ (0, import_react9.useEffect)(() => {
1915
1927
  if (variant !== "visuals") return;
1916
1928
  if (window.matchMedia("(prefers-reduced-motion: reduce)").matches) return;
1917
1929
  const section = sectionRef.current;
@@ -1972,36 +1984,182 @@ var Header = ({
1972
1984
  );
1973
1985
  };
1974
1986
 
1975
- // templates/Stats/Stats.tsx
1976
- var import_react9 = require("react");
1987
+ // templates/Stats/StatsV2.tsx
1988
+ var import_react10 = require("react");
1977
1989
  var import_jsx_runtime24 = require("react/jsx-runtime");
1978
- var INTERVAL_MS = 2e3;
1979
- var TRANSITION = "transform 0.8s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1)";
1980
- var PARALLAX_FACTOR = 0.18;
1981
- var PARALLAX_MAX = 56;
1982
- var PARALLAX_BP = 992;
1983
- function relativePos(index, active, total) {
1984
- const raw = ((index - active) % total + total) % total;
1985
- return raw > total / 2 ? raw - total : raw;
1986
- }
1987
- function getStatStyle(rel) {
1988
- if (rel === 0) {
1989
- return { transform: "translateY(-50%) scale(1)", opacity: 1, zIndex: 2, transition: TRANSITION };
1990
- }
1991
- if (rel === -1) {
1992
- return { transform: "translateY(calc(-50% - 110%)) scale(0.7)", opacity: 1, zIndex: 1, transition: TRANSITION };
1993
- }
1994
- if (rel === 1) {
1995
- return { transform: "translateY(calc(-50% + 110%)) scale(0.7)", opacity: 1, zIndex: 1, transition: TRANSITION };
1990
+ var HOLD_MS = 1e3;
1991
+ var STEP_DURATION_MS = 700;
1992
+ var INTERVAL_MS = HOLD_MS + STEP_DURATION_MS;
1993
+ var EASING = "cubic-bezier(0.33, 1, 0.68, 1)";
1994
+ var TRANSITION = `transform ${STEP_DURATION_MS}ms ${EASING}, opacity ${STEP_DURATION_MS}ms ${EASING}`;
1995
+ var PARALLAX_START = 0.1;
1996
+ var PARALLAX_END = 0.45;
1997
+ var PARALLAX_MAX_PERCENT = 26.3;
1998
+ var PARALLAX_BREAKPOINT = 992;
1999
+ var SLOT_OFFSET = "var(--stats-v2-slot-offset, 110%)";
2000
+ var CENTER = "translate(-50%, -50%)";
2001
+ function getSlotStyle(slot, transition) {
2002
+ switch (slot) {
2003
+ case "active":
2004
+ return {
2005
+ transform: `${CENTER} translateY(0%) scale(1)`,
2006
+ opacity: 1,
2007
+ zIndex: 2,
2008
+ transition
2009
+ };
2010
+ case "above":
2011
+ return {
2012
+ transform: `${CENTER} translateY(calc(${SLOT_OFFSET} * -1)) scale(0.65)`,
2013
+ opacity: 1,
2014
+ zIndex: 1,
2015
+ transition
2016
+ };
2017
+ case "below":
2018
+ return {
2019
+ transform: `${CENTER} translateY(${SLOT_OFFSET}) scale(0.65)`,
2020
+ opacity: 1,
2021
+ zIndex: 1,
2022
+ transition
2023
+ };
2024
+ case "exiting":
2025
+ return {
2026
+ transform: `${CENTER} translateY(calc(${SLOT_OFFSET} * -1)) scale(0.4)`,
2027
+ opacity: 0,
2028
+ zIndex: 0,
2029
+ transition
2030
+ };
2031
+ case "queued":
2032
+ default:
2033
+ return {
2034
+ transform: `${CENTER} translateY(${SLOT_OFFSET}) scale(0.4)`,
2035
+ opacity: 0,
2036
+ zIndex: 0,
2037
+ transition
2038
+ };
1996
2039
  }
1997
- return {
1998
- transform: rel < 0 ? "translateY(calc(-50% - 110%)) scale(0.4)" : "translateY(calc(-50% + 110%)) scale(0.4)",
1999
- opacity: 0,
2000
- zIndex: 0,
2001
- transition: TRANSITION
2002
- };
2003
2040
  }
2004
- var AwardBadge = ({ imageSrc, imageAlt = "" }) => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: "stats__award", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("img", { src: imageSrc, alt: imageAlt, className: "stats__award-image" }) });
2041
+ function slotForIndex(index, step) {
2042
+ const rel = index - step - 1;
2043
+ if (rel === 0) return "active";
2044
+ if (rel === -1) return "above";
2045
+ if (rel === 1) return "below";
2046
+ if (rel < -1) return "exiting";
2047
+ return "queued";
2048
+ }
2049
+ var Laurel = ({ flip = false }) => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
2050
+ "svg",
2051
+ {
2052
+ xmlns: "http://www.w3.org/2000/svg",
2053
+ width: "32",
2054
+ height: "84",
2055
+ viewBox: "0 0 32 84",
2056
+ fill: "none",
2057
+ "aria-hidden": "true",
2058
+ focusable: "false",
2059
+ className: [
2060
+ "stats-v2__laurel",
2061
+ flip ? "stats-v2__laurel--flip" : ""
2062
+ ].filter(Boolean).join(" "),
2063
+ children: /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("g", { opacity: "0.2", children: [
2064
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
2065
+ "path",
2066
+ {
2067
+ 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",
2068
+ fill: "currentColor",
2069
+ stroke: "currentColor"
2070
+ }
2071
+ ),
2072
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
2073
+ "path",
2074
+ {
2075
+ 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",
2076
+ fill: "currentColor",
2077
+ stroke: "currentColor"
2078
+ }
2079
+ ),
2080
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
2081
+ "path",
2082
+ {
2083
+ 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",
2084
+ fill: "currentColor",
2085
+ stroke: "currentColor"
2086
+ }
2087
+ ),
2088
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
2089
+ "path",
2090
+ {
2091
+ 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",
2092
+ fill: "currentColor",
2093
+ stroke: "currentColor"
2094
+ }
2095
+ ),
2096
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
2097
+ "path",
2098
+ {
2099
+ 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",
2100
+ fill: "currentColor",
2101
+ stroke: "currentColor"
2102
+ }
2103
+ ),
2104
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
2105
+ "path",
2106
+ {
2107
+ 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",
2108
+ fill: "currentColor",
2109
+ stroke: "currentColor"
2110
+ }
2111
+ ),
2112
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
2113
+ "path",
2114
+ {
2115
+ 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",
2116
+ fill: "currentColor",
2117
+ stroke: "currentColor"
2118
+ }
2119
+ ),
2120
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
2121
+ "path",
2122
+ {
2123
+ 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",
2124
+ fill: "currentColor",
2125
+ stroke: "currentColor"
2126
+ }
2127
+ ),
2128
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
2129
+ "path",
2130
+ {
2131
+ 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",
2132
+ fill: "currentColor",
2133
+ stroke: "currentColor"
2134
+ }
2135
+ ),
2136
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
2137
+ "path",
2138
+ {
2139
+ 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",
2140
+ fill: "currentColor",
2141
+ stroke: "currentColor"
2142
+ }
2143
+ ),
2144
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
2145
+ "path",
2146
+ {
2147
+ 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",
2148
+ fill: "currentColor",
2149
+ stroke: "currentColor"
2150
+ }
2151
+ )
2152
+ ] })
2153
+ }
2154
+ );
2155
+ var AwardBadge = ({ heading, subheading }) => /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { className: "stats-v2__award", children: [
2156
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Laurel, {}),
2157
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { className: "stats-v2__award-text", children: [
2158
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: "stats-v2__award-heading", children: heading }),
2159
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: "stats-v2__award-subheading", children: subheading })
2160
+ ] }),
2161
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Laurel, { flip: true })
2162
+ ] });
2005
2163
  var Stats = ({
2006
2164
  title,
2007
2165
  description,
@@ -2011,105 +2169,283 @@ var Stats = ({
2011
2169
  className,
2012
2170
  ...props
2013
2171
  }) => {
2014
- const [activeIndex, setActiveIndex] = (0, import_react9.useState)(0);
2015
- const intervalRef = (0, import_react9.useRef)(null);
2016
- const sectionRef = (0, import_react9.useRef)(null);
2017
- const leftColRef = (0, import_react9.useRef)(null);
2018
- const rightColRef = (0, import_react9.useRef)(null);
2019
- const rafRef = (0, import_react9.useRef)(null);
2172
+ const sectionRef = (0, import_react10.useRef)(null);
2173
+ const leftColRef = (0, import_react10.useRef)(null);
2174
+ const rightColRef = (0, import_react10.useRef)(null);
2175
+ const rafRef = (0, import_react10.useRef)(null);
2176
+ const N = stats.length;
2020
2177
  const hasAwards = leftAwards.length > 0 || rightAwards.length > 0;
2021
2178
  const allAwards = [...leftAwards, ...rightAwards];
2022
- const total = stats.length;
2023
- (0, import_react9.useEffect)(() => {
2024
- if (total <= 1) return;
2025
- intervalRef.current = setInterval(() => {
2026
- setActiveIndex((prev) => (prev + 1) % total);
2027
- }, INTERVAL_MS);
2179
+ const strip = (0, import_react10.useMemo)(() => {
2180
+ if (N === 0) return [];
2181
+ const target = Math.max(2 * N, N + 3);
2182
+ return Array.from({ length: target }, (_, i) => stats[i % N]);
2183
+ }, [stats, N]);
2184
+ const [step, setStep] = (0, import_react10.useState)(0);
2185
+ const [phase, setPhase] = (0, import_react10.useState)("idle");
2186
+ const scheduleRef = (0, import_react10.useRef)(null);
2187
+ (0, import_react10.useEffect)(() => {
2188
+ if (N <= 1) return;
2189
+ let timerId = null;
2190
+ let cancelled = false;
2191
+ const advance = () => {
2192
+ timerId = null;
2193
+ if (cancelled) return;
2194
+ setStep((prev) => {
2195
+ if (prev >= N) {
2196
+ setPhase("snap-disable");
2197
+ return prev;
2198
+ }
2199
+ const next = prev + 1;
2200
+ const delayMs = next >= N ? STEP_DURATION_MS : INTERVAL_MS;
2201
+ schedule(delayMs);
2202
+ return next;
2203
+ });
2204
+ };
2205
+ const schedule = (delayMs) => {
2206
+ if (cancelled) return;
2207
+ if (timerId !== null) window.clearTimeout(timerId);
2208
+ timerId = window.setTimeout(advance, delayMs);
2209
+ };
2210
+ scheduleRef.current = schedule;
2211
+ schedule(HOLD_MS);
2028
2212
  return () => {
2029
- if (intervalRef.current) clearInterval(intervalRef.current);
2213
+ cancelled = true;
2214
+ scheduleRef.current = null;
2215
+ if (timerId !== null) window.clearTimeout(timerId);
2030
2216
  };
2031
- }, [total]);
2032
- (0, import_react9.useEffect)(() => {
2033
- const applyParallax = () => {
2217
+ }, [N]);
2218
+ (0, import_react10.useEffect)(() => {
2219
+ if (phase === "snap-disable") {
2220
+ const raf = requestAnimationFrame(() => {
2221
+ setStep(0);
2222
+ setPhase("snap-jump");
2223
+ });
2224
+ rafRef.current = raf;
2225
+ return () => cancelAnimationFrame(raf);
2226
+ }
2227
+ if (phase === "snap-jump") {
2228
+ const raf = requestAnimationFrame(() => {
2229
+ setPhase("idle");
2230
+ scheduleRef.current?.(HOLD_MS);
2231
+ });
2232
+ rafRef.current = raf;
2233
+ return () => cancelAnimationFrame(raf);
2234
+ }
2235
+ }, [phase]);
2236
+ (0, import_react10.useEffect)(() => {
2237
+ setStep(0);
2238
+ setPhase("idle");
2239
+ }, [N]);
2240
+ (0, import_react10.useEffect)(() => {
2241
+ const apply = () => {
2034
2242
  const section = sectionRef.current;
2035
- if (!section || window.innerWidth < PARALLAX_BP) {
2243
+ if (!section || window.innerWidth < PARALLAX_BREAKPOINT) {
2036
2244
  if (leftColRef.current) leftColRef.current.style.transform = "";
2037
- if (rightColRef.current) rightColRef.current.style.transform = "";
2245
+ if (rightColRef.current)
2246
+ rightColRef.current.style.transform = "";
2038
2247
  return;
2039
2248
  }
2040
2249
  const rect = section.getBoundingClientRect();
2041
- const sectionCenter = rect.top + rect.height / 2;
2042
- const viewportCenter = window.innerHeight / 2;
2043
- const raw = (sectionCenter - viewportCenter) * PARALLAX_FACTOR;
2044
- const delta = Math.max(-PARALLAX_MAX, Math.min(PARALLAX_MAX, raw));
2045
- if (leftColRef.current) leftColRef.current.style.transform = `translateY(${delta}px)`;
2046
- if (rightColRef.current) rightColRef.current.style.transform = `translateY(${-delta}px)`;
2250
+ const viewport = window.innerHeight;
2251
+ const totalTravel = rect.height + viewport;
2252
+ const traveled = viewport - rect.top;
2253
+ const rawProgress = traveled / totalTravel;
2254
+ const progress = Math.max(0, Math.min(1, rawProgress));
2255
+ const normalised = Math.max(
2256
+ 0,
2257
+ Math.min(
2258
+ 1,
2259
+ (progress - PARALLAX_START) / (PARALLAX_END - PARALLAX_START)
2260
+ )
2261
+ );
2262
+ const remaining = 1 - normalised;
2263
+ const leftOffset = -PARALLAX_MAX_PERCENT * remaining;
2264
+ const rightOffset = PARALLAX_MAX_PERCENT * remaining;
2265
+ if (leftColRef.current) {
2266
+ leftColRef.current.style.transform = `translateY(${leftOffset}%)`;
2267
+ }
2268
+ if (rightColRef.current) {
2269
+ rightColRef.current.style.transform = `translateY(${rightOffset}%)`;
2270
+ }
2047
2271
  };
2048
2272
  const onScroll = () => {
2049
- if (rafRef.current) cancelAnimationFrame(rafRef.current);
2050
- rafRef.current = requestAnimationFrame(applyParallax);
2273
+ requestAnimationFrame(apply);
2051
2274
  };
2052
- applyParallax();
2275
+ apply();
2053
2276
  window.addEventListener("scroll", onScroll, { passive: true });
2054
2277
  window.addEventListener("resize", onScroll, { passive: true });
2055
2278
  return () => {
2056
2279
  window.removeEventListener("scroll", onScroll);
2057
2280
  window.removeEventListener("resize", onScroll);
2058
- if (rafRef.current) cancelAnimationFrame(rafRef.current);
2059
2281
  };
2060
2282
  }, []);
2283
+ const transition = phase === "idle" ? TRANSITION : "none";
2061
2284
  return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
2062
2285
  "section",
2063
2286
  {
2064
2287
  ref: sectionRef,
2065
- className: ["stats", className].filter(Boolean).join(" "),
2288
+ className: ["stats-v2", className].filter(Boolean).join(" "),
2066
2289
  ...props,
2067
- children: /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { className: "stats__inner", children: [
2068
- /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { className: "stats__header", children: [
2069
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("h2", { className: "stats__title", children: title }),
2070
- description && /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("p", { className: "stats__description", children: description })
2290
+ children: /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { className: "stats-v2__inner", children: [
2291
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { className: "stats-v2__header", children: [
2292
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("h2", { className: "stats-v2__title", children: title }),
2293
+ description && /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("p", { className: "stats-v2__description", children: description })
2071
2294
  ] }),
2072
- /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { className: "stats__content", children: [
2073
- leftAwards.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { ref: leftColRef, className: "stats__awards-col stats__awards-col--left", children: leftAwards.map((award, i) => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(AwardBadge, { ...award }, i)) }),
2074
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: "stats__card", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { className: "stats__card-track", children: [
2075
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: "stats__fade stats__fade--top", "aria-hidden": "true" }),
2076
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: "stats__fade stats__fade--bottom", "aria-hidden": "true" }),
2077
- stats.map((stat, i) => {
2078
- const rel = relativePos(i, activeIndex, total);
2079
- const active = rel === 0;
2295
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { className: "stats-v2__content", children: [
2296
+ leftAwards.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
2297
+ "div",
2298
+ {
2299
+ ref: leftColRef,
2300
+ className: "stats-v2__awards-col stats-v2__awards-col--left",
2301
+ children: leftAwards.map((award, i) => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(AwardBadge, { ...award }, `l-${i}`))
2302
+ }
2303
+ ),
2304
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: "stats-v2__card", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { className: "stats-v2__card-track", children: [
2305
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
2306
+ "div",
2307
+ {
2308
+ className: "stats-v2__fade stats-v2__fade--top",
2309
+ "aria-hidden": "true"
2310
+ }
2311
+ ),
2312
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
2313
+ "div",
2314
+ {
2315
+ className: "stats-v2__fade stats-v2__fade--bottom",
2316
+ "aria-hidden": "true"
2317
+ }
2318
+ ),
2319
+ strip.map((stat, i) => {
2320
+ const slot = slotForIndex(i, step);
2321
+ const active = slot === "active";
2080
2322
  return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
2081
2323
  "div",
2082
2324
  {
2083
2325
  className: [
2084
- "stats__stat",
2085
- active ? "stats__stat--active" : "stats__stat--inactive"
2326
+ "stats-v2__stat",
2327
+ active ? "stats-v2__stat--active" : "stats-v2__stat--inactive"
2086
2328
  ].join(" "),
2087
- style: getStatStyle(rel),
2329
+ style: getSlotStyle(slot, transition),
2088
2330
  "aria-hidden": !active,
2089
2331
  children: [
2090
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("span", { className: "stats__stat-value", children: stat.value }),
2091
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("span", { className: "stats__stat-label", children: stat.label })
2332
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("span", { className: "stats-v2__stat-value", children: stat.value }),
2333
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("span", { className: "stats-v2__stat-label", children: stat.label })
2092
2334
  ]
2093
2335
  },
2094
2336
  i
2095
2337
  );
2096
2338
  })
2097
2339
  ] }) }),
2098
- rightAwards.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { ref: rightColRef, className: "stats__awards-col stats__awards-col--right", children: rightAwards.map((award, i) => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(AwardBadge, { ...award }, i)) }),
2099
- hasAwards && /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: "stats__awards-mobile", children: allAwards.map((award, i) => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(AwardBadge, { ...award }, i)) })
2340
+ rightAwards.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
2341
+ "div",
2342
+ {
2343
+ ref: rightColRef,
2344
+ className: "stats-v2__awards-col stats-v2__awards-col--right",
2345
+ children: rightAwards.map((award, i) => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(AwardBadge, { ...award }, `r-${i}`))
2346
+ }
2347
+ ),
2348
+ hasAwards && /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: "stats-v2__awards-mobile", children: allAwards.map((award, i) => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(AwardBadge, { ...award }, `m-${i}`)) })
2100
2349
  ] })
2101
2350
  ] })
2102
2351
  }
2103
2352
  );
2104
2353
  };
2105
2354
 
2106
- // templates/FeatureScroll/FeatureScroll.tsx
2355
+ // templates/Stats/StatsSimple.tsx
2107
2356
  var import_react11 = require("react");
2357
+ var import_jsx_runtime25 = require("react/jsx-runtime");
2358
+ function parseValue(raw) {
2359
+ const match = raw.match(/^([^0-9]*)([0-9]+(?:\.[0-9]+)?)(.*)$/);
2360
+ if (!match) return { prefix: "", number: 0, suffix: raw };
2361
+ return {
2362
+ prefix: match[1],
2363
+ number: parseFloat(match[2]),
2364
+ suffix: match[3]
2365
+ };
2366
+ }
2367
+ var DURATION_MS = 1800;
2368
+ var EASING2 = (t) => 1 - Math.pow(1 - t, 3);
2369
+ function useCountUp(target, active) {
2370
+ const [display, setDisplay] = (0, import_react11.useState)(0);
2371
+ const rafRef = (0, import_react11.useRef)(null);
2372
+ const startRef = (0, import_react11.useRef)(null);
2373
+ (0, import_react11.useEffect)(() => {
2374
+ if (!active) return;
2375
+ startRef.current = null;
2376
+ const tick = (now) => {
2377
+ if (startRef.current === null) startRef.current = now;
2378
+ const elapsed = now - startRef.current;
2379
+ const progress = Math.min(elapsed / DURATION_MS, 1);
2380
+ const eased = EASING2(progress);
2381
+ setDisplay(Math.round(eased * target));
2382
+ if (progress < 1) {
2383
+ rafRef.current = requestAnimationFrame(tick);
2384
+ }
2385
+ };
2386
+ rafRef.current = requestAnimationFrame(tick);
2387
+ return () => {
2388
+ if (rafRef.current !== null) cancelAnimationFrame(rafRef.current);
2389
+ };
2390
+ }, [target, active]);
2391
+ return display;
2392
+ }
2393
+ var AnimatedValue = ({
2394
+ raw,
2395
+ active
2396
+ }) => {
2397
+ const { prefix, number, suffix } = parseValue(raw);
2398
+ const count = useCountUp(number, active);
2399
+ const formatted = number >= 1e3 && !/[KMBkmb]/.test(suffix) ? count.toLocaleString() : String(count);
2400
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("span", { className: "stats-simple__value", children: [
2401
+ prefix,
2402
+ formatted,
2403
+ suffix
2404
+ ] });
2405
+ };
2406
+ var StatsSimple = ({
2407
+ stats,
2408
+ className,
2409
+ ...props
2410
+ }) => {
2411
+ const sectionRef = (0, import_react11.useRef)(null);
2412
+ const [animated, setAnimated] = (0, import_react11.useState)(false);
2413
+ (0, import_react11.useEffect)(() => {
2414
+ const el = sectionRef.current;
2415
+ if (!el) return;
2416
+ const observer = new IntersectionObserver(
2417
+ ([entry]) => {
2418
+ if (entry.isIntersecting) {
2419
+ setAnimated(true);
2420
+ observer.disconnect();
2421
+ }
2422
+ },
2423
+ { threshold: 0.25 }
2424
+ );
2425
+ observer.observe(el);
2426
+ return () => observer.disconnect();
2427
+ }, []);
2428
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
2429
+ "section",
2430
+ {
2431
+ ref: sectionRef,
2432
+ className: ["stats-simple", className].filter(Boolean).join(" "),
2433
+ ...props,
2434
+ children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: "stats-simple__inner", children: stats.map((stat, i) => /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: "stats-simple__item", children: [
2435
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(AnimatedValue, { raw: stat.value, active: animated }),
2436
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { className: "stats-simple__label", children: stat.label })
2437
+ ] }, i)) })
2438
+ }
2439
+ );
2440
+ };
2441
+
2442
+ // templates/FeatureScroll/FeatureScroll.tsx
2443
+ var import_react13 = require("react");
2108
2444
 
2109
2445
  // components/DotLottieInView/DotLottieInView.tsx
2110
- var import_react10 = require("react");
2446
+ var import_react12 = require("react");
2111
2447
  var import_dotlottie_react = require("@lottiefiles/dotlottie-react");
2112
- var import_jsx_runtime25 = require("react/jsx-runtime");
2448
+ var import_jsx_runtime26 = require("react/jsx-runtime");
2113
2449
  function DotLottieInView({
2114
2450
  enabled = true,
2115
2451
  rootMargin = "0px",
@@ -2118,10 +2454,10 @@ function DotLottieInView({
2118
2454
  style,
2119
2455
  ...dotProps
2120
2456
  }) {
2121
- const wrapRef = (0, import_react10.useRef)(null);
2122
- const [inView, setInView] = (0, import_react10.useState)(false);
2123
- const [dotLottie, setDotLottie] = (0, import_react10.useState)(null);
2124
- (0, import_react10.useEffect)(() => {
2457
+ const wrapRef = (0, import_react12.useRef)(null);
2458
+ const [inView, setInView] = (0, import_react12.useState)(false);
2459
+ const [dotLottie, setDotLottie] = (0, import_react12.useState)(null);
2460
+ (0, import_react12.useEffect)(() => {
2125
2461
  const el = wrapRef.current;
2126
2462
  if (!el) return;
2127
2463
  const observer = new IntersectionObserver(
@@ -2133,7 +2469,7 @@ function DotLottieInView({
2133
2469
  observer.observe(el);
2134
2470
  return () => observer.disconnect();
2135
2471
  }, [rootMargin, threshold]);
2136
- (0, import_react10.useEffect)(() => {
2472
+ (0, import_react12.useEffect)(() => {
2137
2473
  if (!dotLottie) return;
2138
2474
  if (!enabled || !inView) {
2139
2475
  dotLottie.stop();
@@ -2142,7 +2478,7 @@ function DotLottieInView({
2142
2478
  dotLottie.stop();
2143
2479
  dotLottie.play();
2144
2480
  }, [dotLottie, enabled, inView]);
2145
- return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
2481
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
2146
2482
  "div",
2147
2483
  {
2148
2484
  ref: wrapRef,
@@ -2157,7 +2493,7 @@ function DotLottieInView({
2157
2493
  backgroundColor: "transparent",
2158
2494
  ...style
2159
2495
  },
2160
- children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
2496
+ children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
2161
2497
  import_dotlottie_react.DotLottieReact,
2162
2498
  {
2163
2499
  ...dotProps,
@@ -2171,7 +2507,7 @@ function DotLottieInView({
2171
2507
  }
2172
2508
 
2173
2509
  // templates/FeatureScroll/FeatureScroll.tsx
2174
- var import_jsx_runtime26 = require("react/jsx-runtime");
2510
+ var import_jsx_runtime27 = require("react/jsx-runtime");
2175
2511
  var FEATURE_SCROLL_DATA = [
2176
2512
  {
2177
2513
  title: "Forex",
@@ -2216,7 +2552,7 @@ var FEATURE_SCROLL_DATA = [
2216
2552
  mediaUrl: "https://cdn.prod.website-files.com/66fbaad381fa6866fa4991f3/675a9064f2c16e4e0732abfb_Stock%20Indices.lottie"
2217
2553
  }
2218
2554
  ];
2219
- var ChevronRight2 = () => /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
2555
+ var ChevronRight2 = () => /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
2220
2556
  "svg",
2221
2557
  {
2222
2558
  className: "fs__item-link-icon",
@@ -2225,7 +2561,7 @@ var ChevronRight2 = () => /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
2225
2561
  viewBox: "0 0 16 16",
2226
2562
  fill: "none",
2227
2563
  "aria-hidden": "true",
2228
- children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
2564
+ children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
2229
2565
  "path",
2230
2566
  {
2231
2567
  d: "M6 3l5 5-5 5",
@@ -2243,7 +2579,7 @@ function resolveMediaType(item) {
2243
2579
  }
2244
2580
  var MediaRenderer = ({ item, active }) => {
2245
2581
  if (resolveMediaType(item) === "lottie") {
2246
- return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
2582
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
2247
2583
  DotLottieInView,
2248
2584
  {
2249
2585
  src: item.mediaUrl,
@@ -2251,7 +2587,7 @@ var MediaRenderer = ({ item, active }) => {
2251
2587
  }
2252
2588
  );
2253
2589
  }
2254
- return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
2590
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
2255
2591
  "img",
2256
2592
  {
2257
2593
  src: item.mediaUrl,
@@ -2267,10 +2603,10 @@ var FeatureScroll = ({
2267
2603
  className,
2268
2604
  ...props
2269
2605
  }) => {
2270
- const [activeIndex, setActiveIndex] = (0, import_react11.useState)(0);
2271
- const titleRefs = (0, import_react11.useRef)([]);
2272
- const mediaColRef = (0, import_react11.useRef)(null);
2273
- (0, import_react11.useLayoutEffect)(() => {
2606
+ const [activeIndex, setActiveIndex] = (0, import_react13.useState)(0);
2607
+ const titleRefs = (0, import_react13.useRef)([]);
2608
+ const mediaColRef = (0, import_react13.useRef)(null);
2609
+ (0, import_react13.useLayoutEffect)(() => {
2274
2610
  if (items.length === 0) return;
2275
2611
  const readThresholdPx = () => {
2276
2612
  const col = mediaColRef.current;
@@ -2322,24 +2658,24 @@ var FeatureScroll = ({
2322
2658
  className
2323
2659
  ].filter(Boolean).join(" ");
2324
2660
  if (items.length === 0) {
2325
- return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("section", { className: rootClass, ...props, children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("div", { className: "fs__inner", children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("h2", { className: "fs__header", children: header }) }) });
2661
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("section", { className: rootClass, ...props, children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { className: "fs__inner", children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("h2", { className: "fs__header", children: header }) }) });
2326
2662
  }
2327
- return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("section", { className: rootClass, ...props, children: /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: "fs__inner", children: [
2328
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("h2", { className: "fs__header", children: header }),
2329
- /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: "fs__layout", children: [
2330
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("div", { className: "fs__media-col", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
2663
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("section", { className: rootClass, ...props, children: /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { className: "fs__inner", children: [
2664
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("h2", { className: "fs__header", children: header }),
2665
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { className: "fs__layout", children: [
2666
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { className: "fs__media-col", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
2331
2667
  "div",
2332
2668
  {
2333
2669
  ref: mediaColRef,
2334
2670
  className: "fs__media-sticky",
2335
- children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("div", { className: "fs__media-wrap", children: items.map((item, i) => /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
2671
+ children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { className: "fs__media-wrap", children: items.map((item, i) => /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
2336
2672
  "div",
2337
2673
  {
2338
2674
  className: [
2339
2675
  "fs__media-item",
2340
2676
  i === activeIndex ? "fs__media-item--active" : ""
2341
2677
  ].filter(Boolean).join(" "),
2342
- children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
2678
+ children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
2343
2679
  MediaRenderer,
2344
2680
  {
2345
2681
  item,
@@ -2351,12 +2687,12 @@ var FeatureScroll = ({
2351
2687
  )) })
2352
2688
  }
2353
2689
  ) }),
2354
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("div", { className: "fs__content-col", children: items.map((item, i) => /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
2690
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { className: "fs__content-col", children: items.map((item, i) => /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
2355
2691
  "div",
2356
2692
  {
2357
2693
  className: "fs__item",
2358
2694
  children: [
2359
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
2695
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
2360
2696
  "h3",
2361
2697
  {
2362
2698
  ref: (el) => {
@@ -2366,15 +2702,15 @@ var FeatureScroll = ({
2366
2702
  children: item.title
2367
2703
  }
2368
2704
  ),
2369
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("p", { className: "fs__item-desc", children: item.description }),
2370
- /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
2705
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("p", { className: "fs__item-desc", children: item.description }),
2706
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
2371
2707
  "a",
2372
2708
  {
2373
2709
  href: item.link,
2374
2710
  className: "fs__item-link",
2375
2711
  children: [
2376
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { children: item.linkLabel }),
2377
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(ChevronRight2, {})
2712
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("span", { children: item.linkLabel }),
2713
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(ChevronRight2, {})
2378
2714
  ]
2379
2715
  }
2380
2716
  )
@@ -2383,18 +2719,18 @@ var FeatureScroll = ({
2383
2719
  i
2384
2720
  )) })
2385
2721
  ] }),
2386
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("div", { className: "fs__mobile-list", children: items.map((item, i) => /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: "fs__mobile-item", children: [
2387
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("h3", { className: "fs__item-title", children: item.title }),
2388
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("div", { className: "fs__mobile-media", children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(MediaRenderer, { item, active: true }) }),
2389
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("p", { className: "fs__item-desc", children: item.description }),
2390
- /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
2722
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { className: "fs__mobile-list", children: items.map((item, i) => /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { className: "fs__mobile-item", children: [
2723
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("h3", { className: "fs__item-title", children: item.title }),
2724
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { className: "fs__mobile-media", children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(MediaRenderer, { item, active: true }) }),
2725
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("p", { className: "fs__item-desc", children: item.description }),
2726
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
2391
2727
  "a",
2392
2728
  {
2393
2729
  href: item.link,
2394
2730
  className: "fs__item-link",
2395
2731
  children: [
2396
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { children: item.linkLabel }),
2397
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(ChevronRight2, {})
2732
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("span", { children: item.linkLabel }),
2733
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(ChevronRight2, {})
2398
2734
  ]
2399
2735
  }
2400
2736
  )
@@ -2403,8 +2739,8 @@ var FeatureScroll = ({
2403
2739
  };
2404
2740
 
2405
2741
  // templates/StickyStackedCards/StickyStackedCards.tsx
2406
- var import_react12 = require("react");
2407
- var import_jsx_runtime27 = require("react/jsx-runtime");
2742
+ var import_react14 = require("react");
2743
+ var import_jsx_runtime28 = require("react/jsx-runtime");
2408
2744
  var PLACEHOLDER_IMAGE = "https://cdn.prod.website-files.com/68da5c86c91c54f39c86c28a/69b9309379ac08e59ca8210a_1f3f555da9a5cbb13a6fe1bf0d5fe1b6_placeholder-image.webp";
2409
2745
  var STEPS_DATA = [
2410
2746
  {
@@ -2433,8 +2769,8 @@ var StickyStackedCards = ({
2433
2769
  className,
2434
2770
  ...props
2435
2771
  }) => {
2436
- const cardRefs = (0, import_react12.useRef)([]);
2437
- (0, import_react12.useEffect)(() => {
2772
+ const cardRefs = (0, import_react14.useRef)([]);
2773
+ (0, import_react14.useEffect)(() => {
2438
2774
  if (typeof window === "undefined") return;
2439
2775
  let rafId = 0;
2440
2776
  const update = () => {
@@ -2468,14 +2804,14 @@ var StickyStackedCards = ({
2468
2804
  cancelAnimationFrame(rafId);
2469
2805
  };
2470
2806
  }, [items.length]);
2471
- return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
2807
+ return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
2472
2808
  "section",
2473
2809
  {
2474
2810
  className: ["ssc", className].filter(Boolean).join(" "),
2475
2811
  ...props,
2476
- children: /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { className: "ssc__inner", children: [
2477
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("h2", { className: "ssc__header", children: header }),
2478
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { className: "ssc__track", children: items.map((item, i) => /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
2812
+ children: /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className: "ssc__inner", children: [
2813
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("h2", { className: "ssc__header", children: header }),
2814
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { className: "ssc__track", children: items.map((item, i) => /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(
2479
2815
  "div",
2480
2816
  {
2481
2817
  ref: (el) => {
@@ -2501,11 +2837,11 @@ var StickyStackedCards = ({
2501
2837
  top: `calc(var(--ssc-sticky-top) + ${i} * var(--ssc-peek-offset))`
2502
2838
  },
2503
2839
  children: [
2504
- /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { className: "ssc__card-content", children: [
2505
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("h3", { className: "ssc__card-title", children: item.title }),
2506
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("p", { className: "ssc__card-desc", children: item.description })
2840
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className: "ssc__card-content", children: [
2841
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("h3", { className: "ssc__card-title", children: item.title }),
2842
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("p", { className: "ssc__card-desc", children: item.description })
2507
2843
  ] }),
2508
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { className: "ssc__card-image", children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
2844
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { className: "ssc__card-image", children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
2509
2845
  "img",
2510
2846
  {
2511
2847
  src: item.imageUrl,
@@ -2523,9 +2859,9 @@ var StickyStackedCards = ({
2523
2859
  };
2524
2860
 
2525
2861
  // templates/CTABanner/CTABanner.tsx
2526
- var import_react13 = require("react");
2862
+ var import_react15 = require("react");
2527
2863
  var import_framer_motion = require("framer-motion");
2528
- var import_jsx_runtime28 = require("react/jsx-runtime");
2864
+ var import_jsx_runtime29 = require("react/jsx-runtime");
2529
2865
  var ENTRANCE = {
2530
2866
  near: 80,
2531
2867
  mid: 130,
@@ -2771,7 +3107,7 @@ var CTABanner = ({
2771
3107
  ...props
2772
3108
  }) => {
2773
3109
  const resolvedAvatars = avatars ?? (variant === "compact" ? COMPACT_AVATAR_DATA : AVATAR_DATA);
2774
- const sectionRef = (0, import_react13.useRef)(null);
3110
+ const sectionRef = (0, import_react15.useRef)(null);
2775
3111
  const { scrollYProgress } = (0, import_framer_motion.useScroll)({
2776
3112
  target: sectionRef,
2777
3113
  offset: ["start end", "end start"]
@@ -2789,14 +3125,14 @@ var CTABanner = ({
2789
3125
  const compactXValues = useCompactAvatarXValues(smooth);
2790
3126
  const avatarYValues = variant === "compact" ? compactYValues : standardYValues;
2791
3127
  const avatarXValues = variant === "compact" ? compactXValues : standardXValues;
2792
- return /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(
3128
+ return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
2793
3129
  "section",
2794
3130
  {
2795
3131
  ref: sectionRef,
2796
3132
  className: ["ctab", variant === "compact" ? "ctab--compact" : "", className].filter(Boolean).join(" "),
2797
3133
  ...props,
2798
3134
  children: [
2799
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
3135
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
2800
3136
  import_framer_motion.motion.div,
2801
3137
  {
2802
3138
  className: "ctab__grid",
@@ -2804,7 +3140,7 @@ var CTABanner = ({
2804
3140
  "aria-hidden": "true"
2805
3141
  }
2806
3142
  ),
2807
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { className: "ctab__inner", children: /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className: "ctab__stage", children: [
3143
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("div", { className: "ctab__inner", children: /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: "ctab__stage", children: [
2808
3144
  resolvedAvatars.map((avatar, index) => {
2809
3145
  const posStyle = {};
2810
3146
  if (avatar.desktopPos.left) posStyle["--av-d-left"] = avatar.desktopPos.left;
@@ -2813,7 +3149,7 @@ var CTABanner = ({
2813
3149
  if (avatar.mobilePos?.left) posStyle["--av-m-left"] = avatar.mobilePos.left;
2814
3150
  if (avatar.mobilePos?.right) posStyle["--av-m-right"] = avatar.mobilePos.right;
2815
3151
  if (avatar.mobilePos?.top) posStyle["--av-m-top"] = avatar.mobilePos.top;
2816
- return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
3152
+ return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
2817
3153
  import_framer_motion.motion.div,
2818
3154
  {
2819
3155
  className: [
@@ -2827,7 +3163,7 @@ var CTABanner = ({
2827
3163
  opacity: avatarOpacity,
2828
3164
  filter: avatarFilter
2829
3165
  },
2830
- children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
3166
+ children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
2831
3167
  "img",
2832
3168
  {
2833
3169
  src: avatar.imageUrl,
@@ -2840,14 +3176,14 @@ var CTABanner = ({
2840
3176
  avatar.id
2841
3177
  );
2842
3178
  }),
2843
- /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(
3179
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
2844
3180
  import_framer_motion.motion.div,
2845
3181
  {
2846
3182
  className: "ctab__hero",
2847
3183
  style: { y: heroY, opacity: heroOpacity },
2848
3184
  children: [
2849
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("h2", { className: "ctab__headline", children: headline }),
2850
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("a", { href: ctaHref, children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Button, { colorScheme: "black", variant: "primary", label: ctaLabel }) })
3185
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("h2", { className: "ctab__headline", children: headline }),
3186
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("a", { href: ctaHref, children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Button, { colorScheme: "black", variant: "primary", label: ctaLabel }) })
2851
3187
  ]
2852
3188
  }
2853
3189
  )
@@ -2858,14 +3194,14 @@ var CTABanner = ({
2858
3194
  };
2859
3195
 
2860
3196
  // components/Navbar/Navbar.tsx
2861
- var import_react14 = require("react");
3197
+ var import_react16 = require("react");
2862
3198
  var import_framer_motion2 = require("framer-motion");
2863
3199
 
2864
3200
  // assets/icon-globe.svg
2865
3201
  var icon_globe_default = "./icon-globe-S54WYYEK.svg";
2866
3202
 
2867
3203
  // components/Navbar/Navbar.tsx
2868
- var import_jsx_runtime29 = require("react/jsx-runtime");
3204
+ var import_jsx_runtime30 = require("react/jsx-runtime");
2869
3205
  var EASE_OUT_EXPO = [0.16, 1, 0.3, 1];
2870
3206
  var dropdownVariants = {
2871
3207
  hidden: { opacity: 0, scale: 0.96, y: -8 },
@@ -2879,7 +3215,7 @@ var accordionVariants = {
2879
3215
  hidden: { height: 0, opacity: 0 },
2880
3216
  visible: { height: "auto", opacity: 1 }
2881
3217
  };
2882
- var ChevronDownIcon3 = ({ className }) => /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
3218
+ var ChevronDownIcon3 = ({ className }) => /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
2883
3219
  "svg",
2884
3220
  {
2885
3221
  className,
@@ -2888,7 +3224,7 @@ var ChevronDownIcon3 = ({ className }) => /* @__PURE__ */ (0, import_jsx_runtime
2888
3224
  viewBox: "0 0 14 14",
2889
3225
  fill: "none",
2890
3226
  "aria-hidden": "true",
2891
- children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
3227
+ children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
2892
3228
  "path",
2893
3229
  {
2894
3230
  d: "M2.625 4.8125L7 9.1875L11.375 4.8125",
@@ -2900,7 +3236,7 @@ var ChevronDownIcon3 = ({ className }) => /* @__PURE__ */ (0, import_jsx_runtime
2900
3236
  )
2901
3237
  }
2902
3238
  );
2903
- var ArrowRightIcon = () => /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("svg", { width: "14", height: "14", viewBox: "0 0 14 14", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
3239
+ var ArrowRightIcon = () => /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("svg", { width: "14", height: "14", viewBox: "0 0 14 14", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
2904
3240
  "path",
2905
3241
  {
2906
3242
  d: "M2.625 7H11.375M11.375 7L7.875 3.5M11.375 7L7.875 10.5",
@@ -2910,7 +3246,7 @@ var ArrowRightIcon = () => /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("svg",
2910
3246
  strokeLinejoin: "round"
2911
3247
  }
2912
3248
  ) });
2913
- var ArrowUpRightIcon = () => /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
3249
+ var ArrowUpRightIcon = () => /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
2914
3250
  "path",
2915
3251
  {
2916
3252
  d: "M4.5 11.5L11.5 4.5M11.5 4.5H5.5M11.5 4.5V10.5",
@@ -2920,7 +3256,7 @@ var ArrowUpRightIcon = () => /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("svg"
2920
3256
  strokeLinejoin: "round"
2921
3257
  }
2922
3258
  ) });
2923
- var BarsIcon = () => /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("svg", { width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
3259
+ var BarsIcon = () => /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("svg", { width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
2924
3260
  "path",
2925
3261
  {
2926
3262
  d: "M2.5 5H17.5M2.5 10H17.5M2.5 15H17.5",
@@ -2929,7 +3265,7 @@ var BarsIcon = () => /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("svg", { widt
2929
3265
  strokeLinecap: "round"
2930
3266
  }
2931
3267
  ) });
2932
- var XMarkIcon2 = () => /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("svg", { width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
3268
+ var XMarkIcon2 = () => /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("svg", { width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
2933
3269
  "path",
2934
3270
  {
2935
3271
  d: "M15 5L5 15M5 5L15 15",
@@ -2938,7 +3274,7 @@ var XMarkIcon2 = () => /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("svg", { wi
2938
3274
  strokeLinecap: "round"
2939
3275
  }
2940
3276
  ) });
2941
- var ChevronLeftIcon = ({ className }) => /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
3277
+ var ChevronLeftIcon = ({ className }) => /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
2942
3278
  "svg",
2943
3279
  {
2944
3280
  className,
@@ -2947,7 +3283,7 @@ var ChevronLeftIcon = ({ className }) => /* @__PURE__ */ (0, import_jsx_runtime2
2947
3283
  viewBox: "0 0 24 24",
2948
3284
  fill: "none",
2949
3285
  "aria-hidden": "true",
2950
- children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
3286
+ children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
2951
3287
  "path",
2952
3288
  {
2953
3289
  d: "M15 18L9 12L15 6",
@@ -2959,11 +3295,11 @@ var ChevronLeftIcon = ({ className }) => /* @__PURE__ */ (0, import_jsx_runtime2
2959
3295
  )
2960
3296
  }
2961
3297
  );
2962
- var GlobeIcon = ({ className }) => /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("img", { src: icon_globe_default, alt: "", "aria-hidden": "true", width: "20", height: "20", className });
3298
+ var GlobeIcon = ({ className }) => /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("img", { src: icon_globe_default, alt: "", "aria-hidden": "true", width: "20", height: "20", className });
2963
3299
  var DropdownPanel = ({ item, onMouseEnter, onMouseLeave }) => {
2964
3300
  const { dropdown } = item;
2965
3301
  if (!dropdown) return null;
2966
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
3302
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
2967
3303
  import_framer_motion2.motion.div,
2968
3304
  {
2969
3305
  className: "navbar__dropdown",
@@ -2974,10 +3310,10 @@ var DropdownPanel = ({ item, onMouseEnter, onMouseLeave }) => {
2974
3310
  transition: { duration: 0.18, ease: EASE_OUT_EXPO },
2975
3311
  onMouseEnter,
2976
3312
  onMouseLeave,
2977
- children: /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: "navbar__dropdown-inner", children: [
2978
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("div", { className: "navbar__dropdown-left", children: dropdown.columns.map((col, colIdx) => /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("div", { className: "navbar__dropdown-col", children: col.sections.map((section) => /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: "navbar__dropdown-col-list", children: [
2979
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("p", { className: "navbar__dropdown-col-title", children: section.title }),
2980
- section.items.map((link) => /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
3313
+ children: /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { className: "navbar__dropdown-inner", children: [
3314
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: "navbar__dropdown-left", children: dropdown.columns.map((col, colIdx) => /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: "navbar__dropdown-col", children: col.sections.map((section) => /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { className: "navbar__dropdown-col-list", children: [
3315
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("p", { className: "navbar__dropdown-col-title", children: section.title }),
3316
+ section.items.map((link) => /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
2981
3317
  "a",
2982
3318
  {
2983
3319
  href: link.href,
@@ -2986,24 +3322,24 @@ var DropdownPanel = ({ item, onMouseEnter, onMouseLeave }) => {
2986
3322
  rel: link.external ? "noopener noreferrer" : void 0,
2987
3323
  children: [
2988
3324
  link.label,
2989
- link.external ? /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(ArrowUpRightIcon, {}) : /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(ArrowRightIcon, {})
3325
+ link.external ? /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(ArrowUpRightIcon, {}) : /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(ArrowRightIcon, {})
2990
3326
  ]
2991
3327
  },
2992
3328
  link.href
2993
3329
  ))
2994
3330
  ] }, section.title)) }, colIdx)) }),
2995
- dropdown.feature && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("div", { className: "navbar__dropdown-right", children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(FeatureCard, { feature: dropdown.feature }) })
3331
+ dropdown.feature && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: "navbar__dropdown-right", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(FeatureCard, { feature: dropdown.feature }) })
2996
3332
  ] })
2997
3333
  }
2998
3334
  );
2999
3335
  };
3000
- var FeatureCard = ({ feature, mobile }) => /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
3336
+ var FeatureCard = ({ feature, mobile }) => /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
3001
3337
  "div",
3002
3338
  {
3003
3339
  className: mobile ? "navbar__drawer-feature" : "navbar__dropdown-feature",
3004
3340
  style: feature.backgroundImageUrl ? { backgroundImage: `url(${feature.backgroundImageUrl})` } : void 0,
3005
3341
  children: [
3006
- feature.backgroundImageUrl && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
3342
+ feature.backgroundImageUrl && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
3007
3343
  "img",
3008
3344
  {
3009
3345
  src: feature.backgroundImageUrl,
@@ -3012,20 +3348,20 @@ var FeatureCard = ({ feature, mobile }) => /* @__PURE__ */ (0, import_jsx_runtim
3012
3348
  "aria-hidden": "true"
3013
3349
  }
3014
3350
  ),
3015
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("div", { className: mobile ? "navbar__drawer-feature-overlay" : "navbar__dropdown-feature-overlay", "aria-hidden": "true" }),
3016
- /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: mobile ? "navbar__drawer-feature-content" : "navbar__dropdown-feature-content", children: [
3017
- /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { children: [
3018
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("p", { className: mobile ? "navbar__drawer-feature-title" : "navbar__dropdown-feature-title", children: feature.title }),
3019
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("p", { className: mobile ? "navbar__drawer-feature-desc" : "navbar__dropdown-feature-desc", children: feature.description })
3351
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: mobile ? "navbar__drawer-feature-overlay" : "navbar__dropdown-feature-overlay", "aria-hidden": "true" }),
3352
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { className: mobile ? "navbar__drawer-feature-content" : "navbar__dropdown-feature-content", children: [
3353
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { children: [
3354
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("p", { className: mobile ? "navbar__drawer-feature-title" : "navbar__dropdown-feature-title", children: feature.title }),
3355
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("p", { className: mobile ? "navbar__drawer-feature-desc" : "navbar__dropdown-feature-desc", children: feature.description })
3020
3356
  ] }),
3021
- /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
3357
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
3022
3358
  "a",
3023
3359
  {
3024
3360
  href: feature.ctaHref,
3025
3361
  className: mobile ? "navbar__drawer-feature-cta" : "navbar__dropdown-feature-cta",
3026
3362
  children: [
3027
3363
  feature.ctaLabel,
3028
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(ArrowRightIcon, {})
3364
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(ArrowRightIcon, {})
3029
3365
  ]
3030
3366
  }
3031
3367
  )
@@ -3035,8 +3371,8 @@ var FeatureCard = ({ feature, mobile }) => /* @__PURE__ */ (0, import_jsx_runtim
3035
3371
  );
3036
3372
  var DrawerAccordion = ({ item, isOpen, onToggle }) => {
3037
3373
  const { dropdown } = item;
3038
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: "navbar__drawer-item", children: [
3039
- /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
3374
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { className: "navbar__drawer-item", children: [
3375
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
3040
3376
  "button",
3041
3377
  {
3042
3378
  className: `navbar__drawer-trigger ${isOpen ? "navbar__drawer-trigger--open" : ""}`,
@@ -3044,11 +3380,11 @@ var DrawerAccordion = ({ item, isOpen, onToggle }) => {
3044
3380
  "aria-expanded": isOpen,
3045
3381
  children: [
3046
3382
  item.label,
3047
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(ChevronDownIcon3, { className: "navbar__drawer-trigger__chevron" })
3383
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(ChevronDownIcon3, { className: "navbar__drawer-trigger__chevron" })
3048
3384
  ]
3049
3385
  }
3050
3386
  ),
3051
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_framer_motion2.AnimatePresence, { initial: false, children: isOpen && dropdown && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
3387
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_framer_motion2.AnimatePresence, { initial: false, children: isOpen && dropdown && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
3052
3388
  import_framer_motion2.motion.div,
3053
3389
  {
3054
3390
  className: "navbar__drawer-panel",
@@ -3057,10 +3393,10 @@ var DrawerAccordion = ({ item, isOpen, onToggle }) => {
3057
3393
  animate: "visible",
3058
3394
  exit: "hidden",
3059
3395
  transition: { duration: 0.22, ease: EASE_OUT_EXPO },
3060
- children: /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: "navbar__drawer-panel-inner", children: [
3061
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("div", { className: "navbar__drawer-panel-cols", children: dropdown.columns.map((col, colIdx) => /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("div", { className: "navbar__drawer-panel-col", children: col.sections.map((section) => /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: "navbar__drawer-col-section", children: [
3062
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("p", { className: "navbar__drawer-col-title", children: section.title }),
3063
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("div", { className: "navbar__drawer-col-links", children: section.items.map((link) => /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
3396
+ children: /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { className: "navbar__drawer-panel-inner", children: [
3397
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: "navbar__drawer-panel-cols", children: dropdown.columns.map((col, colIdx) => /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: "navbar__drawer-panel-col", children: col.sections.map((section) => /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { className: "navbar__drawer-col-section", children: [
3398
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("p", { className: "navbar__drawer-col-title", children: section.title }),
3399
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: "navbar__drawer-col-links", children: section.items.map((link) => /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
3064
3400
  "a",
3065
3401
  {
3066
3402
  href: link.href,
@@ -3072,7 +3408,7 @@ var DrawerAccordion = ({ item, isOpen, onToggle }) => {
3072
3408
  link.href
3073
3409
  )) })
3074
3410
  ] }, section.title)) }, colIdx)) }),
3075
- dropdown.feature && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(FeatureCard, { feature: dropdown.feature, mobile: true })
3411
+ dropdown.feature && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(FeatureCard, { feature: dropdown.feature, mobile: true })
3076
3412
  ] })
3077
3413
  }
3078
3414
  ) })
@@ -3096,24 +3432,24 @@ var Navbar = ({
3096
3432
  className,
3097
3433
  ...props
3098
3434
  }) => {
3099
- const [openDropdown, setOpenDropdown] = (0, import_react14.useState)(null);
3100
- const [mobileOpen, setMobileOpen] = (0, import_react14.useState)(false);
3101
- const [mobileExpanded, setMobileExpanded] = (0, import_react14.useState)(null);
3102
- const [scrolled, setScrolled] = (0, import_react14.useState)(false);
3103
- const [langDropdownOpen, setLangDropdownOpen] = (0, import_react14.useState)(false);
3104
- const [mobileLangOpen, setMobileLangOpen] = (0, import_react14.useState)(false);
3105
- const hoverTimeoutRef = (0, import_react14.useRef)(null);
3106
- const langHoverTimeoutRef = (0, import_react14.useRef)(null);
3107
- const pillAreaRef = (0, import_react14.useRef)(null);
3108
- const langBtnRef = (0, import_react14.useRef)(null);
3435
+ const [openDropdown, setOpenDropdown] = (0, import_react16.useState)(null);
3436
+ const [mobileOpen, setMobileOpen] = (0, import_react16.useState)(false);
3437
+ const [mobileExpanded, setMobileExpanded] = (0, import_react16.useState)(null);
3438
+ const [scrolled, setScrolled] = (0, import_react16.useState)(false);
3439
+ const [langDropdownOpen, setLangDropdownOpen] = (0, import_react16.useState)(false);
3440
+ const [mobileLangOpen, setMobileLangOpen] = (0, import_react16.useState)(false);
3441
+ const hoverTimeoutRef = (0, import_react16.useRef)(null);
3442
+ const langHoverTimeoutRef = (0, import_react16.useRef)(null);
3443
+ const pillAreaRef = (0, import_react16.useRef)(null);
3444
+ const langBtnRef = (0, import_react16.useRef)(null);
3109
3445
  const hasLangDropdown = Boolean(languageItems && languageItems.length > 0);
3110
3446
  const resolvedLogo = theme === "light" ? logoSrcDark ?? logoSrc : logoSrc;
3111
- (0, import_react14.useEffect)(() => {
3447
+ (0, import_react16.useEffect)(() => {
3112
3448
  const onScroll = () => setScrolled(window.scrollY > 0);
3113
3449
  window.addEventListener("scroll", onScroll, { passive: true });
3114
3450
  return () => window.removeEventListener("scroll", onScroll);
3115
3451
  }, []);
3116
- (0, import_react14.useEffect)(() => {
3452
+ (0, import_react16.useEffect)(() => {
3117
3453
  const onKey = (e) => {
3118
3454
  if (e.key === "Escape") {
3119
3455
  setOpenDropdown(null);
@@ -3124,16 +3460,16 @@ var Navbar = ({
3124
3460
  document.addEventListener("keydown", onKey);
3125
3461
  return () => document.removeEventListener("keydown", onKey);
3126
3462
  }, []);
3127
- (0, import_react14.useEffect)(() => {
3463
+ (0, import_react16.useEffect)(() => {
3128
3464
  if (!mobileOpen) setMobileLangOpen(false);
3129
3465
  }, [mobileOpen]);
3130
- (0, import_react14.useEffect)(() => {
3466
+ (0, import_react16.useEffect)(() => {
3131
3467
  document.body.style.overflow = mobileOpen ? "hidden" : "";
3132
3468
  return () => {
3133
3469
  document.body.style.overflow = "";
3134
3470
  };
3135
3471
  }, [mobileOpen]);
3136
- (0, import_react14.useEffect)(() => {
3472
+ (0, import_react16.useEffect)(() => {
3137
3473
  if (!openDropdown) return;
3138
3474
  const onPointerDown = (e) => {
3139
3475
  if (pillAreaRef.current && !pillAreaRef.current.contains(e.target)) {
@@ -3143,54 +3479,54 @@ var Navbar = ({
3143
3479
  document.addEventListener("pointerdown", onPointerDown);
3144
3480
  return () => document.removeEventListener("pointerdown", onPointerDown);
3145
3481
  }, [openDropdown]);
3146
- const clearHoverTimeout = (0, import_react14.useCallback)(() => {
3482
+ const clearHoverTimeout = (0, import_react16.useCallback)(() => {
3147
3483
  if (hoverTimeoutRef.current) {
3148
3484
  clearTimeout(hoverTimeoutRef.current);
3149
3485
  hoverTimeoutRef.current = null;
3150
3486
  }
3151
3487
  }, []);
3152
- const clearLangHoverTimeout = (0, import_react14.useCallback)(() => {
3488
+ const clearLangHoverTimeout = (0, import_react16.useCallback)(() => {
3153
3489
  if (langHoverTimeoutRef.current) {
3154
3490
  clearTimeout(langHoverTimeoutRef.current);
3155
3491
  langHoverTimeoutRef.current = null;
3156
3492
  }
3157
3493
  }, []);
3158
- const handleLangEnter = (0, import_react14.useCallback)(() => {
3494
+ const handleLangEnter = (0, import_react16.useCallback)(() => {
3159
3495
  clearLangHoverTimeout();
3160
3496
  setLangDropdownOpen(true);
3161
3497
  }, [clearLangHoverTimeout]);
3162
- const handleLangLeave = (0, import_react14.useCallback)(() => {
3498
+ const handleLangLeave = (0, import_react16.useCallback)(() => {
3163
3499
  clearLangHoverTimeout();
3164
3500
  langHoverTimeoutRef.current = setTimeout(() => setLangDropdownOpen(false), 150);
3165
3501
  }, [clearLangHoverTimeout]);
3166
- const handleLangSelect = (0, import_react14.useCallback)((code) => {
3502
+ const handleLangSelect = (0, import_react16.useCallback)((code) => {
3167
3503
  setLangDropdownOpen(false);
3168
3504
  setMobileLangOpen(false);
3169
3505
  onLanguageSelect?.(code);
3170
3506
  }, [onLanguageSelect]);
3171
- const handleNavEnter = (0, import_react14.useCallback)((label) => {
3507
+ const handleNavEnter = (0, import_react16.useCallback)((label) => {
3172
3508
  clearHoverTimeout();
3173
3509
  setOpenDropdown(label);
3174
3510
  }, [clearHoverTimeout]);
3175
- const handleNavLeave = (0, import_react14.useCallback)(() => {
3511
+ const handleNavLeave = (0, import_react16.useCallback)(() => {
3176
3512
  clearHoverTimeout();
3177
3513
  hoverTimeoutRef.current = setTimeout(() => setOpenDropdown(null), 120);
3178
3514
  }, [clearHoverTimeout]);
3179
3515
  const activeDropdownItem = navItems.find((item) => item.label === openDropdown);
3180
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
3516
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
3181
3517
  "nav",
3182
3518
  {
3183
3519
  className: ["navbar", `navbar--${theme}`, scrolled && "navbar--scrolled", mobileOpen && "navbar--menu-open", className].filter(Boolean).join(" "),
3184
3520
  ...props,
3185
3521
  children: [
3186
- /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: "navbar__bar", children: [
3187
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("a", { href: logoHref, className: "navbar__logo", "aria-label": "Home", children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("img", { src: resolvedLogo, alt: "Logo" }) }),
3188
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("div", { className: "navbar__nav-center", ref: pillAreaRef, children: /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: "navbar__pill", children: [
3189
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("a", { href: logoHref, className: "navbar__pill-logo", "aria-label": "Home", children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("img", { src: logoSrcDark ?? logoSrc, alt: "Logo" }) }),
3190
- /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: "navbar__nav-group", children: [
3522
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { className: "navbar__bar", children: [
3523
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("a", { href: logoHref, className: "navbar__logo", "aria-label": "Home", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("img", { src: resolvedLogo, alt: "Logo" }) }),
3524
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: "navbar__nav-center", ref: pillAreaRef, children: /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { className: "navbar__pill", children: [
3525
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("a", { href: logoHref, className: "navbar__pill-logo", "aria-label": "Home", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("img", { src: logoSrcDark ?? logoSrc, alt: "Logo" }) }),
3526
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { className: "navbar__nav-group", children: [
3191
3527
  navItems.map((item) => {
3192
3528
  if (item.external) {
3193
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
3529
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
3194
3530
  "a",
3195
3531
  {
3196
3532
  href: item.href,
@@ -3199,14 +3535,14 @@ var Navbar = ({
3199
3535
  rel: "noopener noreferrer",
3200
3536
  children: [
3201
3537
  item.label,
3202
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(ArrowUpRightIcon, {})
3538
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(ArrowUpRightIcon, {})
3203
3539
  ]
3204
3540
  },
3205
3541
  item.label
3206
3542
  );
3207
3543
  }
3208
3544
  if (item.dropdown) {
3209
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
3545
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
3210
3546
  "button",
3211
3547
  {
3212
3548
  className: [
@@ -3219,21 +3555,21 @@ var Navbar = ({
3219
3555
  "aria-haspopup": "true",
3220
3556
  children: [
3221
3557
  item.label,
3222
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(ChevronDownIcon3, { className: "navbar__nav-item__chevron" })
3558
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(ChevronDownIcon3, { className: "navbar__nav-item__chevron" })
3223
3559
  ]
3224
3560
  },
3225
3561
  item.label
3226
3562
  );
3227
3563
  }
3228
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("a", { href: item.href, className: "navbar__nav-item", children: item.label }, item.label);
3564
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("a", { href: item.href, className: "navbar__nav-item", children: item.label }, item.label);
3229
3565
  }),
3230
- languageLabel && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
3566
+ languageLabel && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
3231
3567
  "div",
3232
3568
  {
3233
3569
  className: "navbar__lang-wrapper",
3234
3570
  onMouseEnter: hasLangDropdown ? handleLangEnter : void 0,
3235
3571
  onMouseLeave: hasLangDropdown ? handleLangLeave : void 0,
3236
- children: /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
3572
+ children: /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
3237
3573
  "button",
3238
3574
  {
3239
3575
  ref: langBtnRef,
@@ -3246,7 +3582,7 @@ var Navbar = ({
3246
3582
  "aria-haspopup": hasLangDropdown ? "true" : void 0,
3247
3583
  "aria-expanded": hasLangDropdown ? langDropdownOpen : void 0,
3248
3584
  children: [
3249
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(GlobeIcon, { className: "navbar__lang-globe" }),
3585
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(GlobeIcon, { className: "navbar__lang-globe" }),
3250
3586
  languageLabel
3251
3587
  ]
3252
3588
  }
@@ -3254,12 +3590,12 @@ var Navbar = ({
3254
3590
  }
3255
3591
  )
3256
3592
  ] }),
3257
- /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: "navbar__pill-actions", children: [
3258
- loginHref && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("a", { href: loginHref, children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Button, { colorScheme: "black", variant: "secondary", label: loginLabel }) }),
3259
- ctaHref && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("a", { href: ctaHref, children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Button, { colorScheme: "coral", variant: "primary", label: ctaLabel }) })
3593
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { className: "navbar__pill-actions", children: [
3594
+ loginHref && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("a", { href: loginHref, children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Button, { colorScheme: "black", variant: "secondary", label: loginLabel }) }),
3595
+ ctaHref && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("a", { href: ctaHref, children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Button, { colorScheme: "coral", variant: "primary", label: ctaLabel }) })
3260
3596
  ] })
3261
3597
  ] }) }),
3262
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_framer_motion2.AnimatePresence, { children: openDropdown && activeDropdownItem?.dropdown && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
3598
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_framer_motion2.AnimatePresence, { children: openDropdown && activeDropdownItem?.dropdown && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
3263
3599
  DropdownPanel,
3264
3600
  {
3265
3601
  item: activeDropdownItem,
@@ -3268,7 +3604,7 @@ var Navbar = ({
3268
3604
  },
3269
3605
  "dropdown"
3270
3606
  ) }),
3271
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_framer_motion2.AnimatePresence, { children: hasLangDropdown && langDropdownOpen && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
3607
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_framer_motion2.AnimatePresence, { children: hasLangDropdown && langDropdownOpen && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
3272
3608
  import_framer_motion2.motion.div,
3273
3609
  {
3274
3610
  className: "navbar__lang-dropdown",
@@ -3279,12 +3615,12 @@ var Navbar = ({
3279
3615
  transition: { duration: 0.18, ease: EASE_OUT_EXPO },
3280
3616
  onMouseEnter: clearLangHoverTimeout,
3281
3617
  onMouseLeave: handleLangLeave,
3282
- children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
3618
+ children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
3283
3619
  "div",
3284
3620
  {
3285
3621
  className: "navbar__lang-dropdown-grid",
3286
3622
  style: { "--lang-rows": Math.ceil(languageItems.length / 3) },
3287
- children: languageItems.map((lang) => /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
3623
+ children: languageItems.map((lang) => /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
3288
3624
  "button",
3289
3625
  {
3290
3626
  className: [
@@ -3300,8 +3636,8 @@ var Navbar = ({
3300
3636
  )
3301
3637
  }
3302
3638
  ) }),
3303
- /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: "navbar__actions", children: [
3304
- loginHref && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("a", { href: loginHref, className: "navbar__actions-login", children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
3639
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { className: "navbar__actions", children: [
3640
+ loginHref && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("a", { href: loginHref, className: "navbar__actions-login", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
3305
3641
  Button,
3306
3642
  {
3307
3643
  colorScheme: theme === "dark" ? "white" : "black",
@@ -3309,10 +3645,10 @@ var Navbar = ({
3309
3645
  label: loginLabel
3310
3646
  }
3311
3647
  ) }),
3312
- ctaHref && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("a", { href: ctaHref, children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Button, { colorScheme: "coral", variant: "primary", label: ctaLabel }) })
3648
+ ctaHref && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("a", { href: ctaHref, children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Button, { colorScheme: "coral", variant: "primary", label: ctaLabel }) })
3313
3649
  ] }),
3314
- /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: "navbar__mobile-actions", children: [
3315
- loginHref && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("a", { href: loginHref, children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
3650
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { className: "navbar__mobile-actions", children: [
3651
+ loginHref && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("a", { href: loginHref, children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
3316
3652
  Button,
3317
3653
  {
3318
3654
  colorScheme: scrolled || theme === "light" ? "black" : "white",
@@ -3320,18 +3656,18 @@ var Navbar = ({
3320
3656
  label: loginLabel
3321
3657
  }
3322
3658
  ) }),
3323
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
3659
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
3324
3660
  "button",
3325
3661
  {
3326
3662
  className: "navbar__mobile-trigger",
3327
3663
  onClick: () => setMobileOpen((o) => !o),
3328
3664
  "aria-label": mobileOpen ? "Close navigation menu" : "Open navigation menu",
3329
- children: mobileOpen ? /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(XMarkIcon2, {}) : /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(BarsIcon, {})
3665
+ children: mobileOpen ? /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(XMarkIcon2, {}) : /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(BarsIcon, {})
3330
3666
  }
3331
3667
  )
3332
3668
  ] })
3333
3669
  ] }),
3334
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("div", { className: "navbar__drawer-clip", children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_framer_motion2.AnimatePresence, { children: mobileOpen && /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
3670
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: "navbar__drawer-clip", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_framer_motion2.AnimatePresence, { children: mobileOpen && /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
3335
3671
  import_framer_motion2.motion.div,
3336
3672
  {
3337
3673
  className: "navbar__drawer",
@@ -3344,10 +3680,10 @@ var Navbar = ({
3344
3680
  role: "dialog",
3345
3681
  "aria-label": "Navigation menu",
3346
3682
  children: [
3347
- /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("nav", { className: "navbar__drawer-nav", children: [
3683
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("nav", { className: "navbar__drawer-nav", children: [
3348
3684
  navItems.map((item) => {
3349
3685
  if (item.dropdown) {
3350
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
3686
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
3351
3687
  DrawerAccordion,
3352
3688
  {
3353
3689
  item,
@@ -3359,7 +3695,7 @@ var Navbar = ({
3359
3695
  item.label
3360
3696
  );
3361
3697
  }
3362
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
3698
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
3363
3699
  "a",
3364
3700
  {
3365
3701
  href: item.href,
@@ -3368,30 +3704,30 @@ var Navbar = ({
3368
3704
  rel: item.external ? "noopener noreferrer" : void 0,
3369
3705
  children: [
3370
3706
  item.label,
3371
- item.external && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(ArrowUpRightIcon, {})
3707
+ item.external && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(ArrowUpRightIcon, {})
3372
3708
  ]
3373
3709
  },
3374
3710
  item.label
3375
3711
  );
3376
3712
  }),
3377
- languageLabel && !hasLangDropdown && /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("button", { className: "navbar__drawer-lang", onClick: onLanguageClick, children: [
3378
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(GlobeIcon, { className: "navbar__lang-globe" }),
3713
+ languageLabel && !hasLangDropdown && /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("button", { className: "navbar__drawer-lang", onClick: onLanguageClick, children: [
3714
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(GlobeIcon, { className: "navbar__lang-globe" }),
3379
3715
  languageLabel
3380
3716
  ] }),
3381
- languageLabel && hasLangDropdown && /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
3717
+ languageLabel && hasLangDropdown && /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
3382
3718
  "button",
3383
3719
  {
3384
3720
  className: "navbar__drawer-lang",
3385
3721
  onClick: () => setMobileLangOpen(true),
3386
3722
  children: [
3387
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(GlobeIcon, { className: "navbar__lang-globe" }),
3723
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(GlobeIcon, { className: "navbar__lang-globe" }),
3388
3724
  languageLabel
3389
3725
  ]
3390
3726
  }
3391
3727
  )
3392
3728
  ] }),
3393
- !mobileLangOpen && /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: "navbar__drawer-footer", children: [
3394
- loginHref && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("a", { href: loginHref, style: { display: "block" }, children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
3729
+ !mobileLangOpen && /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { className: "navbar__drawer-footer", children: [
3730
+ loginHref && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("a", { href: loginHref, style: { display: "block" }, children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
3395
3731
  Button,
3396
3732
  {
3397
3733
  colorScheme: "black",
@@ -3400,7 +3736,7 @@ var Navbar = ({
3400
3736
  fullWidth: true
3401
3737
  }
3402
3738
  ) }),
3403
- ctaHref && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("a", { href: ctaHref, style: { display: "block" }, children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
3739
+ ctaHref && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("a", { href: ctaHref, style: { display: "block" }, children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
3404
3740
  Button,
3405
3741
  {
3406
3742
  colorScheme: "coral",
@@ -3410,7 +3746,7 @@ var Navbar = ({
3410
3746
  }
3411
3747
  ) })
3412
3748
  ] }),
3413
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_framer_motion2.AnimatePresence, { children: hasLangDropdown && mobileLangOpen && /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
3749
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_framer_motion2.AnimatePresence, { children: hasLangDropdown && mobileLangOpen && /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
3414
3750
  import_framer_motion2.motion.div,
3415
3751
  {
3416
3752
  className: "navbar__drawer-lang-panel",
@@ -3419,16 +3755,16 @@ var Navbar = ({
3419
3755
  exit: { y: "100%" },
3420
3756
  transition: { duration: 0.25, ease: EASE_OUT_EXPO },
3421
3757
  children: [
3422
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
3758
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
3423
3759
  "button",
3424
3760
  {
3425
3761
  className: "navbar__drawer-lang-back",
3426
3762
  onClick: () => setMobileLangOpen(false),
3427
3763
  "aria-label": "Back to menu",
3428
- children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(ChevronLeftIcon, {})
3764
+ children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(ChevronLeftIcon, {})
3429
3765
  }
3430
3766
  ),
3431
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("div", { className: "navbar__drawer-lang-grid", children: languageItems.map((lang) => /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
3767
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: "navbar__drawer-lang-grid", children: languageItems.map((lang) => /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
3432
3768
  "button",
3433
3769
  {
3434
3770
  className: [
@@ -3452,7 +3788,7 @@ var Navbar = ({
3452
3788
  };
3453
3789
 
3454
3790
  // templates/DayNightTransition/DayNightTransition.tsx
3455
- var import_react15 = require("react");
3791
+ var import_react17 = require("react");
3456
3792
  var import_framer_motion3 = require("framer-motion");
3457
3793
 
3458
3794
  // templates/DayNightTransition/webflowDayNightV2Ix.ts
@@ -3529,7 +3865,7 @@ function webflowV2DayClipPercent(t, media) {
3529
3865
  }
3530
3866
 
3531
3867
  // templates/DayNightTransition/DayNightTransition.tsx
3532
- var import_jsx_runtime30 = require("react/jsx-runtime");
3868
+ var import_jsx_runtime31 = require("react/jsx-runtime");
3533
3869
  var SPRING2 = { stiffness: 80, damping: 30, restDelta: 1e-3 };
3534
3870
  var FADE_START = 0.35;
3535
3871
  var FADE_END = 0.65;
@@ -3561,13 +3897,13 @@ var DayNightTransition = ({
3561
3897
  className,
3562
3898
  ...props
3563
3899
  }) => {
3564
- const wrapperRef = (0, import_react15.useRef)(null);
3565
- const dayWordRef = (0, import_react15.useRef)(null);
3566
- const [nightMarginStart, setNightMarginStart] = (0, import_react15.useState)("0px");
3567
- const [nightMarginEnd, setNightMarginEnd] = (0, import_react15.useState)("0px");
3568
- const [ixMedia, setIxMedia] = (0, import_react15.useState)("desktop");
3900
+ const wrapperRef = (0, import_react17.useRef)(null);
3901
+ const dayWordRef = (0, import_react17.useRef)(null);
3902
+ const [nightMarginStart, setNightMarginStart] = (0, import_react17.useState)("0px");
3903
+ const [nightMarginEnd, setNightMarginEnd] = (0, import_react17.useState)("0px");
3904
+ const [ixMedia, setIxMedia] = (0, import_react17.useState)("desktop");
3569
3905
  const webflowV2 = scrollPreset === "webflow-day-night-v2";
3570
- (0, import_react15.useEffect)(() => {
3906
+ (0, import_react17.useEffect)(() => {
3571
3907
  const mq = window.matchMedia("(max-width: 991px)");
3572
3908
  const sync = () => setIxMedia(mq.matches ? "mobile" : "desktop");
3573
3909
  sync();
@@ -3575,7 +3911,7 @@ var DayNightTransition = ({
3575
3911
  return () => mq.removeEventListener("change", sync);
3576
3912
  }, []);
3577
3913
  const MotionHeadline = headlineLevel === "h1" ? import_framer_motion3.motion.h1 : import_framer_motion3.motion.h2;
3578
- (0, import_react15.useLayoutEffect)(() => {
3914
+ (0, import_react17.useLayoutEffect)(() => {
3579
3915
  if (!inlineDayNightHeadline) return;
3580
3916
  const syncNightPull = () => {
3581
3917
  const dayEl = dayWordRef.current;
@@ -3666,15 +4002,15 @@ var DayNightTransition = ({
3666
4002
  descriptionLevel === "body-lg" && "dnt--desc-body-lg",
3667
4003
  className
3668
4004
  ].filter(Boolean).join(" ");
3669
- return /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
4005
+ return /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(
3670
4006
  "div",
3671
4007
  {
3672
4008
  ref: wrapperRef,
3673
4009
  className: rootClass,
3674
4010
  ...props,
3675
4011
  children: [
3676
- webflowV2 && /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { className: "dnt__v2-background-wrapper", "aria-hidden": "true", children: [
3677
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
4012
+ webflowV2 && /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)("div", { className: "dnt__v2-background-wrapper", "aria-hidden": "true", children: [
4013
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
3678
4014
  import_framer_motion3.motion.div,
3679
4015
  {
3680
4016
  className: "dnt__v2-bg-day trade-day-night_background-day is-alternative",
@@ -3684,7 +4020,7 @@ var DayNightTransition = ({
3684
4020
  }
3685
4021
  }
3686
4022
  ),
3687
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
4023
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
3688
4024
  "div",
3689
4025
  {
3690
4026
  className: "dnt__v2-bg-night trade-day-night_background-night is-alternative",
@@ -3692,9 +4028,9 @@ var DayNightTransition = ({
3692
4028
  }
3693
4029
  )
3694
4030
  ] }),
3695
- /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { className: webflowV2 ? "dnt__sticky dnt__sticky--webflow-v2" : "dnt__sticky", children: [
3696
- !webflowV2 && /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(import_jsx_runtime30.Fragment, { children: [
3697
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
4031
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)("div", { className: webflowV2 ? "dnt__sticky dnt__sticky--webflow-v2" : "dnt__sticky", children: [
4032
+ !webflowV2 && /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(import_jsx_runtime31.Fragment, { children: [
4033
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
3698
4034
  "img",
3699
4035
  {
3700
4036
  className: "dnt__bg dnt__bg--day",
@@ -3704,7 +4040,7 @@ var DayNightTransition = ({
3704
4040
  draggable: false
3705
4041
  }
3706
4042
  ),
3707
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
4043
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
3708
4044
  import_framer_motion3.motion.img,
3709
4045
  {
3710
4046
  className: "dnt__bg dnt__bg--night",
@@ -3716,17 +4052,17 @@ var DayNightTransition = ({
3716
4052
  }
3717
4053
  )
3718
4054
  ] }),
3719
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: "dnt__content", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: "dnt__inner", children: webflowV2 ? /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { className: "dnt__text-wrap", children: [
3720
- useInlineHeadline && inlineDayNightHeadline ? /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
4055
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("div", { className: "dnt__content", children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("div", { className: "dnt__inner", children: webflowV2 ? /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)("div", { className: "dnt__text-wrap", children: [
4056
+ useInlineHeadline && inlineDayNightHeadline ? /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(
3721
4057
  MotionHeadline,
3722
4058
  {
3723
4059
  className: "dnt__headline dnt__headline--inline-day-night",
3724
4060
  style: { color: v2TitleColor },
3725
4061
  "aria-label": `${inlineDayNightHeadline.prefix}${inlineDayNightHeadline.dayWord} / ${inlineDayNightHeadline.prefix}${inlineDayNightHeadline.nightWord}`,
3726
4062
  children: [
3727
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("span", { className: "dnt__headline-prefix", children: inlineDayNightHeadline.prefix }),
3728
- /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("span", { className: "dnt__headline-pair", children: [
3729
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
4063
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("span", { className: "dnt__headline-prefix", children: inlineDayNightHeadline.prefix }),
4064
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)("span", { className: "dnt__headline-pair", children: [
4065
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
3730
4066
  import_framer_motion3.motion.span,
3731
4067
  {
3732
4068
  ref: dayWordRef,
@@ -3735,7 +4071,7 @@ var DayNightTransition = ({
3735
4071
  children: inlineDayNightHeadline.dayWord
3736
4072
  }
3737
4073
  ),
3738
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
4074
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
3739
4075
  import_framer_motion3.motion.span,
3740
4076
  {
3741
4077
  className: "dnt__headline-wnight",
@@ -3750,8 +4086,8 @@ var DayNightTransition = ({
3750
4086
  ] })
3751
4087
  ]
3752
4088
  }
3753
- ) : /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { className: "dnt__crossfade-wrap", children: [
3754
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
4089
+ ) : /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)("div", { className: "dnt__crossfade-wrap", children: [
4090
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
3755
4091
  MotionHeadline,
3756
4092
  {
3757
4093
  className: "dnt__headline",
@@ -3759,7 +4095,7 @@ var DayNightTransition = ({
3759
4095
  children: dayHeadline
3760
4096
  }
3761
4097
  ),
3762
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
4098
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
3763
4099
  MotionHeadline,
3764
4100
  {
3765
4101
  className: "dnt__headline",
@@ -3769,8 +4105,8 @@ var DayNightTransition = ({
3769
4105
  }
3770
4106
  )
3771
4107
  ] }),
3772
- hasDescription && /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { className: "dnt__crossfade-wrap", children: [
3773
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
4108
+ hasDescription && /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)("div", { className: "dnt__crossfade-wrap", children: [
4109
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
3774
4110
  import_framer_motion3.motion.p,
3775
4111
  {
3776
4112
  className: "dnt__description",
@@ -3781,7 +4117,7 @@ var DayNightTransition = ({
3781
4117
  children: dayDescription ?? ""
3782
4118
  }
3783
4119
  ),
3784
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
4120
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
3785
4121
  import_framer_motion3.motion.p,
3786
4122
  {
3787
4123
  className: "dnt__description",
@@ -3794,22 +4130,22 @@ var DayNightTransition = ({
3794
4130
  }
3795
4131
  )
3796
4132
  ] }),
3797
- !hideCta && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("a", { href: ctaHref, className: "dnt__btn", children: ctaLabel })
3798
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
4133
+ !hideCta && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("a", { href: ctaHref, className: "dnt__btn", children: ctaLabel })
4134
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(
3799
4135
  import_framer_motion3.motion.div,
3800
4136
  {
3801
4137
  className: "dnt__text-wrap",
3802
4138
  style: { color: textColor },
3803
4139
  children: [
3804
- useInlineHeadline && inlineDayNightHeadline ? /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
4140
+ useInlineHeadline && inlineDayNightHeadline ? /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(
3805
4141
  MotionHeadline,
3806
4142
  {
3807
4143
  className: "dnt__headline dnt__headline--inline-day-night",
3808
4144
  "aria-label": `${inlineDayNightHeadline.prefix}${inlineDayNightHeadline.dayWord} / ${inlineDayNightHeadline.prefix}${inlineDayNightHeadline.nightWord}`,
3809
4145
  children: [
3810
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("span", { className: "dnt__headline-prefix", children: inlineDayNightHeadline.prefix }),
3811
- /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("span", { className: "dnt__headline-pair", children: [
3812
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
4146
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("span", { className: "dnt__headline-prefix", children: inlineDayNightHeadline.prefix }),
4147
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)("span", { className: "dnt__headline-pair", children: [
4148
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
3813
4149
  import_framer_motion3.motion.span,
3814
4150
  {
3815
4151
  ref: dayWordRef,
@@ -3818,7 +4154,7 @@ var DayNightTransition = ({
3818
4154
  children: inlineDayNightHeadline.dayWord
3819
4155
  }
3820
4156
  ),
3821
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
4157
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
3822
4158
  import_framer_motion3.motion.span,
3823
4159
  {
3824
4160
  className: "dnt__headline-wnight",
@@ -3833,8 +4169,8 @@ var DayNightTransition = ({
3833
4169
  ] })
3834
4170
  ]
3835
4171
  }
3836
- ) : /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { className: "dnt__crossfade-wrap", children: [
3837
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
4172
+ ) : /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)("div", { className: "dnt__crossfade-wrap", children: [
4173
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
3838
4174
  MotionHeadline,
3839
4175
  {
3840
4176
  className: "dnt__headline",
@@ -3842,7 +4178,7 @@ var DayNightTransition = ({
3842
4178
  children: dayHeadline
3843
4179
  }
3844
4180
  ),
3845
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
4181
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
3846
4182
  MotionHeadline,
3847
4183
  {
3848
4184
  className: "dnt__headline",
@@ -3852,8 +4188,8 @@ var DayNightTransition = ({
3852
4188
  }
3853
4189
  )
3854
4190
  ] }),
3855
- hasDescription && /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { className: "dnt__crossfade-wrap", children: [
3856
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
4191
+ hasDescription && /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)("div", { className: "dnt__crossfade-wrap", children: [
4192
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
3857
4193
  import_framer_motion3.motion.p,
3858
4194
  {
3859
4195
  className: "dnt__description",
@@ -3861,7 +4197,7 @@ var DayNightTransition = ({
3861
4197
  children: dayDescription ?? ""
3862
4198
  }
3863
4199
  ),
3864
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
4200
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
3865
4201
  import_framer_motion3.motion.p,
3866
4202
  {
3867
4203
  className: "dnt__description",
@@ -3871,7 +4207,7 @@ var DayNightTransition = ({
3871
4207
  }
3872
4208
  )
3873
4209
  ] }),
3874
- !hideCta && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("a", { href: ctaHref, className: "dnt__btn", children: ctaLabel })
4210
+ !hideCta && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("a", { href: ctaHref, className: "dnt__btn", children: ctaLabel })
3875
4211
  ]
3876
4212
  }
3877
4213
  ) }) })
@@ -3896,9 +4232,9 @@ var dayNightTransitionV2Preset = {
3896
4232
  };
3897
4233
 
3898
4234
  // templates/LogoMarquee/LogoMarquee.tsx
3899
- var import_react16 = require("react");
4235
+ var import_react18 = require("react");
3900
4236
  var import_framer_motion4 = require("framer-motion");
3901
- var import_jsx_runtime31 = require("react/jsx-runtime");
4237
+ var import_jsx_runtime32 = require("react/jsx-runtime");
3902
4238
  function modWrap(min, max, v) {
3903
4239
  const range = max - min;
3904
4240
  return ((v - min) % range + range) % range + min;
@@ -3955,8 +4291,8 @@ var LogoMarquee = ({
3955
4291
  const scrollVelocity = (0, import_framer_motion4.useVelocity)(scrollY);
3956
4292
  const col1Y = (0, import_framer_motion4.useMotionValue)(0);
3957
4293
  const col2Y = (0, import_framer_motion4.useMotionValue)(0);
3958
- const col1Ref = (0, import_react16.useRef)(null);
3959
- const col2Ref = (0, import_react16.useRef)(null);
4294
+ const col1Ref = (0, import_react18.useRef)(null);
4295
+ const col2Ref = (0, import_react18.useRef)(null);
3960
4296
  (0, import_framer_motion4.useAnimationFrame)((_, delta) => {
3961
4297
  const raw = scrollVelocity.get();
3962
4298
  if (Math.abs(raw) < DEADZONE) return;
@@ -3969,21 +4305,21 @@ var LogoMarquee = ({
3969
4305
  });
3970
4306
  const track1 = [...col1Logos, ...col1Logos];
3971
4307
  const track2 = [...col2Logos, ...col2Logos];
3972
- return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
4308
+ return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
3973
4309
  "section",
3974
4310
  {
3975
4311
  className: ["lm", className].filter(Boolean).join(" "),
3976
4312
  ...props,
3977
- children: /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)("div", { className: "lm__inner", children: [
3978
- /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("div", { className: "lm__media", children: /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)("div", { className: "lm__carousel", children: [
3979
- /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("div", { className: "lm__fade lm__fade--top", "aria-hidden": "true" }),
3980
- /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
4313
+ children: /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)("div", { className: "lm__inner", children: [
4314
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("div", { className: "lm__media", children: /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)("div", { className: "lm__carousel", children: [
4315
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("div", { className: "lm__fade lm__fade--top", "aria-hidden": "true" }),
4316
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
3981
4317
  import_framer_motion4.motion.div,
3982
4318
  {
3983
4319
  ref: col1Ref,
3984
4320
  className: "lm__col",
3985
4321
  style: { y: col1Y },
3986
- children: track1.map((logo, i) => /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("div", { className: "lm__card", children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("div", { className: "lm__card-img-wrap", children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
4322
+ children: track1.map((logo, i) => /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("div", { className: "lm__card", children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("div", { className: "lm__card-img-wrap", children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
3987
4323
  "img",
3988
4324
  {
3989
4325
  src: logo.url,
@@ -3994,13 +4330,13 @@ var LogoMarquee = ({
3994
4330
  ) }) }, `c1-${i}`))
3995
4331
  }
3996
4332
  ),
3997
- /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
4333
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
3998
4334
  import_framer_motion4.motion.div,
3999
4335
  {
4000
4336
  ref: col2Ref,
4001
4337
  className: "lm__col",
4002
4338
  style: { y: col2Y },
4003
- children: track2.map((logo, i) => /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("div", { className: "lm__card", children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("div", { className: "lm__card-img-wrap", children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
4339
+ children: track2.map((logo, i) => /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("div", { className: "lm__card", children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("div", { className: "lm__card-img-wrap", children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
4004
4340
  "img",
4005
4341
  {
4006
4342
  src: logo.url,
@@ -4011,17 +4347,17 @@ var LogoMarquee = ({
4011
4347
  ) }) }, `c2-${i}`))
4012
4348
  }
4013
4349
  ),
4014
- /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("div", { className: "lm__fade lm__fade--bottom", "aria-hidden": "true" })
4350
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("div", { className: "lm__fade lm__fade--bottom", "aria-hidden": "true" })
4015
4351
  ] }) }),
4016
- /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)("div", { className: "lm__content", children: [
4017
- /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("h2", { className: "lm__headline", children: headline }),
4018
- /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)("div", { className: "lm__text-group", children: [
4019
- /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("p", { className: "lm__body", children: body }),
4020
- /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("p", { className: "lm__disclaimer", children: disclaimer })
4352
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)("div", { className: "lm__content", children: [
4353
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("h2", { className: "lm__headline", children: headline }),
4354
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)("div", { className: "lm__text-group", children: [
4355
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("p", { className: "lm__body", children: body }),
4356
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("p", { className: "lm__disclaimer", children: disclaimer })
4021
4357
  ] }),
4022
- /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)("a", { href: ctaHref, className: "lm__link", children: [
4358
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)("a", { href: ctaHref, className: "lm__link", children: [
4023
4359
  ctaLabel,
4024
- /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("span", { className: "lm__link-icon", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("path", { d: "M3 8H13M13 8L9 4M13 8L9 12", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }) }) })
4360
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("span", { className: "lm__link-icon", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("path", { d: "M3 8H13M13 8L9 4M13 8L9 12", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }) }) })
4025
4361
  ] })
4026
4362
  ] })
4027
4363
  ] })
@@ -4072,7 +4408,7 @@ var appstore_linux_dark_default = "./appstore-linux-dark-RVH7CBM4.svg";
4072
4408
  var appstore_browser_dark_default = "./appstore-browser-dark-2E6TK6JH.svg";
4073
4409
 
4074
4410
  // primitives/DownloadBadge/DownloadBadge.tsx
4075
- var import_jsx_runtime32 = require("react/jsx-runtime");
4411
+ var import_jsx_runtime33 = require("react/jsx-runtime");
4076
4412
  var BADGE_ASSETS = {
4077
4413
  light: {
4078
4414
  googleplay: { src: appstore_googleplay_light_default, alt: "Get it on Google Play" },
@@ -4101,7 +4437,7 @@ var DownloadBadge = ({
4101
4437
  ...props
4102
4438
  }) => {
4103
4439
  const { src, alt } = BADGE_ASSETS[colorScheme][platform];
4104
- return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
4440
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
4105
4441
  "a",
4106
4442
  {
4107
4443
  className: [
@@ -4114,13 +4450,13 @@ var DownloadBadge = ({
4114
4450
  target: "_blank",
4115
4451
  rel: "noopener noreferrer",
4116
4452
  ...props,
4117
- children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("img", { className: "download-badge__img", src, alt })
4453
+ children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("img", { className: "download-badge__img", src, alt })
4118
4454
  }
4119
4455
  );
4120
4456
  };
4121
4457
 
4122
4458
  // templates/Steps/Steps.tsx
4123
- var import_jsx_runtime33 = require("react/jsx-runtime");
4459
+ var import_jsx_runtime34 = require("react/jsx-runtime");
4124
4460
  var Steps = ({
4125
4461
  title,
4126
4462
  steps,
@@ -4132,8 +4468,8 @@ var Steps = ({
4132
4468
  "steps__container",
4133
4469
  imagePosition === "right" ? "steps__container--image-right" : ""
4134
4470
  ].filter(Boolean).join(" ");
4135
- return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("section", { className: "steps", children: /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)("div", { className: containerClass, children: [
4136
- image && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { className: "steps__image-wrapper", children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
4471
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("section", { className: "steps", children: /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: containerClass, children: [
4472
+ image && /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: "steps__image-wrapper", children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
4137
4473
  "img",
4138
4474
  {
4139
4475
  src: image,
@@ -4141,13 +4477,13 @@ var Steps = ({
4141
4477
  className: "steps__image"
4142
4478
  }
4143
4479
  ) }),
4144
- /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)("div", { className: "steps__content", children: [
4145
- /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("h2", { className: "steps__title", children: title }),
4146
- /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("ol", { className: "steps__list", children: steps.map((step, index) => /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("li", { className: "steps__item", children: /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)("div", { className: "steps__item-inner", children: [
4147
- /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("span", { className: "steps__number", "aria-hidden": "true", children: index + 1 }),
4148
- /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)("div", { className: "steps__item-body", children: [
4149
- /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("h3", { className: "steps__item-title", children: step.title }),
4150
- /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("p", { className: "steps__item-description", children: step.description })
4480
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: "steps__content", children: [
4481
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("h2", { className: "steps__title", children: title }),
4482
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("ol", { className: "steps__list", children: steps.map((step, index) => /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("li", { className: "steps__item", children: /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: "steps__item-inner", children: [
4483
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("span", { className: "steps__number", "aria-hidden": "true", children: index + 1 }),
4484
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: "steps__item-body", children: [
4485
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("h3", { className: "steps__item-title", children: step.title }),
4486
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("p", { className: "steps__item-description", children: step.description })
4151
4487
  ] })
4152
4488
  ] }) }, index)) })
4153
4489
  ] })
@@ -4155,7 +4491,7 @@ var Steps = ({
4155
4491
  };
4156
4492
 
4157
4493
  // templates/DownloadBanner/DownloadBanner.tsx
4158
- var import_jsx_runtime34 = require("react/jsx-runtime");
4494
+ var import_jsx_runtime35 = require("react/jsx-runtime");
4159
4495
  var DownloadBanner = ({
4160
4496
  style = "light-2",
4161
4497
  qrCodeImage,
@@ -4180,9 +4516,9 @@ var DownloadBanner = ({
4180
4516
  disclaimer
4181
4517
  }) => {
4182
4518
  const colorScheme = style === "dark" ? "dark" : "light";
4183
- return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("section", { className: `db-section db-section--${style}`, children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: "db-container", children: /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: "db-card", children: [
4184
- /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: "db-qr-block", children: [
4185
- qrCodeImage && /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
4519
+ return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("section", { className: `db-section db-section--${style}`, children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { className: "db-container", children: /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: "db-card", children: [
4520
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: "db-qr-block", children: [
4521
+ qrCodeImage && /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
4186
4522
  "img",
4187
4523
  {
4188
4524
  className: "db-qr-image",
@@ -4190,36 +4526,36 @@ var DownloadBanner = ({
4190
4526
  alt: qrCodeAlt
4191
4527
  }
4192
4528
  ),
4193
- /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: "db-qr-text", children: [
4194
- /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("span", { className: "db-qr-text__title db-qr-text__title--desktop", children: qrTitle }),
4195
- /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("h2", { className: "db-qr-text__subtitle db-qr-text__subtitle--desktop", children: qrSubtitle }),
4196
- /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("span", { className: "db-qr-text__title db-qr-text__title--mobile", children: mobileTitle }),
4197
- disclaimer && /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("span", { className: "db-disclaimer", children: disclaimer })
4529
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: "db-qr-text", children: [
4530
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("span", { className: "db-qr-text__title db-qr-text__title--desktop", children: qrTitle }),
4531
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("h2", { className: "db-qr-text__subtitle db-qr-text__subtitle--desktop", children: qrSubtitle }),
4532
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("span", { className: "db-qr-text__title db-qr-text__title--mobile", children: mobileTitle }),
4533
+ disclaimer && /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("span", { className: "db-disclaimer", children: disclaimer })
4198
4534
  ] })
4199
4535
  ] }),
4200
- /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: "db-badges", children: [
4201
- showGooglePlay && /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(DownloadBadge, { platform: "googleplay", colorScheme, href: googlePlayHref }),
4202
- showAppGallery && /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(DownloadBadge, { platform: "appgallery", colorScheme, href: appGalleryHref }),
4203
- showMacOS && /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(DownloadBadge, { platform: "macos", colorScheme, href: macOSHref }),
4204
- showWindows && /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(DownloadBadge, { platform: "windows", colorScheme, href: windowsHref }),
4205
- showLinux && /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(DownloadBadge, { platform: "linux", colorScheme, href: linuxHref }),
4206
- showAppStore && /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(DownloadBadge, { platform: "appstore", colorScheme, href: appStoreHref }),
4207
- showWeb && /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(DownloadBadge, { platform: "web", colorScheme, href: webHref })
4536
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: "db-badges", children: [
4537
+ showGooglePlay && /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(DownloadBadge, { platform: "googleplay", colorScheme, href: googlePlayHref }),
4538
+ showAppGallery && /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(DownloadBadge, { platform: "appgallery", colorScheme, href: appGalleryHref }),
4539
+ showMacOS && /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(DownloadBadge, { platform: "macos", colorScheme, href: macOSHref }),
4540
+ showWindows && /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(DownloadBadge, { platform: "windows", colorScheme, href: windowsHref }),
4541
+ showLinux && /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(DownloadBadge, { platform: "linux", colorScheme, href: linuxHref }),
4542
+ showAppStore && /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(DownloadBadge, { platform: "appstore", colorScheme, href: appStoreHref }),
4543
+ showWeb && /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(DownloadBadge, { platform: "web", colorScheme, href: webHref })
4208
4544
  ] })
4209
4545
  ] }) }) });
4210
4546
  };
4211
4547
 
4212
4548
  // templates/TextScroll/TextScroll.tsx
4213
- var import_react17 = require("react");
4549
+ var import_react19 = require("react");
4214
4550
  var import_gsap = require("gsap");
4215
4551
  var import_ScrollTrigger = require("gsap/ScrollTrigger");
4216
- var import_jsx_runtime35 = require("react/jsx-runtime");
4552
+ var import_jsx_runtime36 = require("react/jsx-runtime");
4217
4553
  import_gsap.gsap.registerPlugin(import_ScrollTrigger.ScrollTrigger);
4218
4554
  var TextScroll = ({ text, className }) => {
4219
- const sectionRef = (0, import_react17.useRef)(null);
4220
- const wordsRef = (0, import_react17.useRef)([]);
4555
+ const sectionRef = (0, import_react19.useRef)(null);
4556
+ const wordsRef = (0, import_react19.useRef)([]);
4221
4557
  const words = text.split(/\s+/).filter(Boolean);
4222
- (0, import_react17.useEffect)(() => {
4558
+ (0, import_react19.useEffect)(() => {
4223
4559
  const section = sectionRef.current;
4224
4560
  const wordEls = wordsRef.current.filter(Boolean);
4225
4561
  if (!section || wordEls.length === 0) return;
@@ -4253,12 +4589,12 @@ var TextScroll = ({ text, className }) => {
4253
4589
  import_gsap.gsap.set(wordEls, { clearProps: "opacity" });
4254
4590
  };
4255
4591
  }, [text]);
4256
- return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
4592
+ return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
4257
4593
  "section",
4258
4594
  {
4259
4595
  ref: sectionRef,
4260
4596
  className: ["ts", className].filter(Boolean).join(" "),
4261
- children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { className: "ts__inner", children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("p", { className: "ts__text", "aria-label": text, children: words.map((word, i) => /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(
4597
+ children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("div", { className: "ts__inner", children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("p", { className: "ts__text", "aria-label": text, children: words.map((word, i) => /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(
4262
4598
  "span",
4263
4599
  {
4264
4600
  ref: (el) => {
@@ -4278,8 +4614,8 @@ var TextScroll = ({ text, className }) => {
4278
4614
  };
4279
4615
 
4280
4616
  // templates/StickyMarketCards/StickyMarketCards.tsx
4281
- var import_react18 = require("react");
4282
- var import_jsx_runtime36 = require("react/jsx-runtime");
4617
+ var import_react20 = require("react");
4618
+ var import_jsx_runtime37 = require("react/jsx-runtime");
4283
4619
  var PLACEHOLDER_IMAGE3 = "https://cdn.prod.website-files.com/68da5c86c91c54f39c86c28a/69b9309379ac08e59ca8210a_1f3f555da9a5cbb13a6fe1bf0d5fe1b6_placeholder-image.webp";
4284
4620
  var StickyMarketCards = ({
4285
4621
  sectionTitle,
@@ -4288,9 +4624,9 @@ var StickyMarketCards = ({
4288
4624
  className,
4289
4625
  ...props
4290
4626
  }) => {
4291
- const cardRefs = (0, import_react18.useRef)([]);
4292
- const cardInnerRefs = (0, import_react18.useRef)([]);
4293
- (0, import_react18.useEffect)(() => {
4627
+ const cardRefs = (0, import_react20.useRef)([]);
4628
+ const cardInnerRefs = (0, import_react20.useRef)([]);
4629
+ (0, import_react20.useEffect)(() => {
4294
4630
  if (typeof window === "undefined") return;
4295
4631
  let rafId = 0;
4296
4632
  const update = () => {
@@ -4331,7 +4667,7 @@ var StickyMarketCards = ({
4331
4667
  cancelAnimationFrame(rafId);
4332
4668
  };
4333
4669
  }, [items.length]);
4334
- (0, import_react18.useEffect)(() => {
4670
+ (0, import_react20.useEffect)(() => {
4335
4671
  if (typeof window === "undefined") return;
4336
4672
  const syncHeights = () => {
4337
4673
  const inners = cardInnerRefs.current.filter(Boolean);
@@ -4360,20 +4696,20 @@ var StickyMarketCards = ({
4360
4696
  const n = items.length;
4361
4697
  const maxStack = 4;
4362
4698
  const baseIndex = Math.max(0, n - maxStack);
4363
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
4699
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
4364
4700
  "section",
4365
4701
  {
4366
4702
  className: ["smc", className].filter(Boolean).join(" "),
4367
4703
  ...props,
4368
- children: /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { className: "smc__inner", children: [
4369
- /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { className: "smc__header-wrap", children: [
4370
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("h2", { className: "smc__header", children: sectionTitle }),
4371
- sectionDescription && /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("p", { className: "smc__description", children: sectionDescription })
4704
+ children: /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "smc__inner", children: [
4705
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "smc__header-wrap", children: [
4706
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("h2", { className: "smc__header", children: sectionTitle }),
4707
+ sectionDescription && /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("p", { className: "smc__description", children: sectionDescription })
4372
4708
  ] }),
4373
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("div", { className: "smc__track", children: items.map((item, i) => {
4709
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "smc__track", children: items.map((item, i) => {
4374
4710
  const theme = item.theme ?? "dark";
4375
4711
  const offsetMultiplier = Math.max(0, i - baseIndex);
4376
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
4712
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
4377
4713
  "div",
4378
4714
  {
4379
4715
  ref: (el) => {
@@ -4384,7 +4720,7 @@ var StickyMarketCards = ({
4384
4720
  ["--smc-card-index"]: String(offsetMultiplier),
4385
4721
  zIndex: i + 1
4386
4722
  },
4387
- children: /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(
4723
+ children: /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
4388
4724
  "div",
4389
4725
  {
4390
4726
  ref: (el) => {
@@ -4395,8 +4731,8 @@ var StickyMarketCards = ({
4395
4731
  `smc__card-inner--${theme}`
4396
4732
  ].join(" "),
4397
4733
  children: [
4398
- /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { className: "smc__card-bg", children: [
4399
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
4734
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "smc__card-bg", children: [
4735
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
4400
4736
  "img",
4401
4737
  {
4402
4738
  src: item.imageUrl ?? PLACEHOLDER_IMAGE3,
@@ -4405,7 +4741,7 @@ var StickyMarketCards = ({
4405
4741
  loading: i === 0 ? "eager" : "lazy"
4406
4742
  }
4407
4743
  ),
4408
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
4744
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
4409
4745
  "div",
4410
4746
  {
4411
4747
  className: [
@@ -4415,9 +4751,9 @@ var StickyMarketCards = ({
4415
4751
  }
4416
4752
  )
4417
4753
  ] }),
4418
- /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { className: "smc__card-content", children: [
4419
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("div", { className: "smc__card-title-wrap", children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("h3", { className: "smc__card-title", children: item.title }) }),
4420
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("div", { className: "smc__card-desc-wrap", children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("p", { className: "smc__card-desc", children: item.description }) })
4754
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "smc__card-content", children: [
4755
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "smc__card-title-wrap", children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("h3", { className: "smc__card-title", children: item.title }) }),
4756
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "smc__card-desc-wrap", children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("p", { className: "smc__card-desc", children: item.description }) })
4421
4757
  ] })
4422
4758
  ]
4423
4759
  }
@@ -4432,12 +4768,12 @@ var StickyMarketCards = ({
4432
4768
  };
4433
4769
 
4434
4770
  // templates/Table/Table.tsx
4435
- var import_react19 = require("react");
4436
- var import_jsx_runtime37 = require("react/jsx-runtime");
4437
- var InfoIcon = ({ className }) => /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("svg", { width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", className, children: [
4438
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("circle", { cx: "12", cy: "12", r: "10", stroke: "currentColor", strokeWidth: "1.5" }),
4439
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("path", { d: "M12 16V12", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round" }),
4440
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("circle", { cx: "12", cy: "8", r: "1", fill: "currentColor", stroke: "currentColor", strokeWidth: "1" })
4771
+ var import_react21 = require("react");
4772
+ var import_jsx_runtime38 = require("react/jsx-runtime");
4773
+ var InfoIcon = ({ className }) => /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("svg", { width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", className, children: [
4774
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("circle", { cx: "12", cy: "12", r: "10", stroke: "currentColor", strokeWidth: "1.5" }),
4775
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("path", { d: "M12 16V12", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round" }),
4776
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("circle", { cx: "12", cy: "8", r: "1", fill: "currentColor", stroke: "currentColor", strokeWidth: "1" })
4441
4777
  ] });
4442
4778
  var Table = ({
4443
4779
  sectionTitle,
@@ -4450,11 +4786,11 @@ var Table = ({
4450
4786
  className,
4451
4787
  ...props
4452
4788
  }) => {
4453
- const [search, setSearch] = (0, import_react19.useState)("");
4454
- const [page, setPage] = (0, import_react19.useState)(1);
4455
- const [tooltip, setTooltip] = (0, import_react19.useState)({ visible: false, heading: "", description: "", x: 0, y: 0, arrowOffset: 0 });
4789
+ const [search, setSearch] = (0, import_react21.useState)("");
4790
+ const [page, setPage] = (0, import_react21.useState)(1);
4791
+ const [tooltip, setTooltip] = (0, import_react21.useState)({ visible: false, heading: "", description: "", x: 0, y: 0, arrowOffset: 0 });
4456
4792
  const mainKey = mainColumnKey ?? columns.find((c) => c.width === "main")?.key ?? columns[0]?.key;
4457
- const filtered = (0, import_react19.useMemo)(() => {
4793
+ const filtered = (0, import_react21.useMemo)(() => {
4458
4794
  const q = search.trim().toLowerCase();
4459
4795
  if (!q) return rows;
4460
4796
  return rows.filter(
@@ -4474,12 +4810,12 @@ var Table = ({
4474
4810
  setSearch("");
4475
4811
  setPage(1);
4476
4812
  };
4477
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("section", { className: ["tbl-section", className].filter(Boolean).join(" "), ...props, children: [
4478
- sectionTitle && /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "tbl-section__header", children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("h2", { className: "tbl-section__title", children: sectionTitle }) }),
4479
- /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "tbl-section__content", children: [
4480
- /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "tbl", children: [
4481
- /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "tbl__topbar", children: [
4482
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "tbl__search-wrap", children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
4813
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("section", { className: ["tbl-section", className].filter(Boolean).join(" "), ...props, children: [
4814
+ sectionTitle && /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "tbl-section__header", children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("h2", { className: "tbl-section__title", children: sectionTitle }) }),
4815
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "tbl-section__content", children: [
4816
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "tbl", children: [
4817
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "tbl__topbar", children: [
4818
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "tbl__search-wrap", children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
4483
4819
  SearchField,
4484
4820
  {
4485
4821
  placeholder: searchPlaceholder,
@@ -4490,7 +4826,7 @@ var Table = ({
4490
4826
  "aria-label": searchPlaceholder
4491
4827
  }
4492
4828
  ) }),
4493
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "tbl__summary", children: filtered.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(import_jsx_runtime37.Fragment, { children: [
4829
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "tbl__summary", children: filtered.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(import_jsx_runtime38.Fragment, { children: [
4494
4830
  "Showing ",
4495
4831
  startIdx + 1,
4496
4832
  "- ",
@@ -4499,12 +4835,12 @@ var Table = ({
4499
4835
  filtered.length
4500
4836
  ] }) : "No results" })
4501
4837
  ] }),
4502
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "tbl__scroll-wrapper", children: /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("table", { className: "tbl__table", children: [
4503
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("thead", { children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("tr", { className: "tbl__tr", children: columns.map((col, colIdx) => {
4838
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "tbl__scroll-wrapper", children: /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("table", { className: "tbl__table", children: [
4839
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("thead", { children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("tr", { className: "tbl__tr", children: columns.map((col, colIdx) => {
4504
4840
  const isFirst = colIdx === 0;
4505
4841
  const isLast = colIdx === columns.length - 1;
4506
4842
  const isMain = col.width === "main" || col.key === mainKey;
4507
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
4843
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
4508
4844
  "th",
4509
4845
  {
4510
4846
  className: [
@@ -4512,7 +4848,7 @@ var Table = ({
4512
4848
  isMain ? "tbl__th--main" : "",
4513
4849
  col.width === "big" ? "tbl__th--big" : ""
4514
4850
  ].filter(Boolean).join(" "),
4515
- children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
4851
+ children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
4516
4852
  "div",
4517
4853
  {
4518
4854
  className: "tbl__th-inner",
@@ -4542,9 +4878,9 @@ var Table = ({
4542
4878
  setTooltip((prev) => ({ ...prev, visible: false }));
4543
4879
  }
4544
4880
  },
4545
- children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("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__ */ (0, import_jsx_runtime37.jsxs)("span", { children: [
4881
+ children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("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__ */ (0, import_jsx_runtime38.jsxs)("span", { children: [
4546
4882
  line,
4547
- li < col.header.length - 1 && /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("br", {})
4883
+ li < col.header.length - 1 && /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("br", {})
4548
4884
  ] }, li)) : col.header })
4549
4885
  }
4550
4886
  )
@@ -4552,10 +4888,10 @@ var Table = ({
4552
4888
  col.key
4553
4889
  );
4554
4890
  }) }) }),
4555
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("tbody", { className: "tbl__tbody", children: visible.length > 0 ? visible.map((row, rowIdx) => /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("tr", { className: "tbl__tr", children: columns.map((col) => {
4891
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("tbody", { className: "tbl__tbody", children: visible.length > 0 ? visible.map((row, rowIdx) => /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("tr", { className: "tbl__tr", children: columns.map((col) => {
4556
4892
  const isMain = col.width === "main" || col.key === mainKey;
4557
4893
  const iconUrl = row[`${col.key}_iconUrl`];
4558
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
4894
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
4559
4895
  "td",
4560
4896
  {
4561
4897
  className: [
@@ -4563,8 +4899,8 @@ var Table = ({
4563
4899
  isMain ? "tbl__td--main" : "",
4564
4900
  col.width === "big" ? "tbl__td--big" : ""
4565
4901
  ].filter(Boolean).join(" "),
4566
- children: isMain ? /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "tbl__cell-inner", children: [
4567
- iconUrl && /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
4902
+ children: isMain ? /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "tbl__cell-inner", children: [
4903
+ iconUrl && /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
4568
4904
  "img",
4569
4905
  {
4570
4906
  src: iconUrl,
@@ -4576,18 +4912,18 @@ var Table = ({
4576
4912
  height: "24"
4577
4913
  }
4578
4914
  ),
4579
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("span", { className: "tbl__cell-text tbl__cell-text--bold", children: row[col.key] ?? "" })
4580
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("span", { className: "tbl__cell-text", children: row[col.key] ?? "" })
4915
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: "tbl__cell-text tbl__cell-text--bold", children: row[col.key] ?? "" })
4916
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: "tbl__cell-text", children: row[col.key] ?? "" })
4581
4917
  },
4582
4918
  col.key
4583
4919
  );
4584
- }) }, rowIdx)) : /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("tr", { className: "tbl__tr", children: /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("td", { colSpan: columns.length, className: "tbl__empty-cell", children: [
4920
+ }) }, rowIdx)) : /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("tr", { className: "tbl__tr", children: /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("td", { colSpan: columns.length, className: "tbl__empty-cell", children: [
4585
4921
  'No results found for "',
4586
4922
  search,
4587
4923
  '"'
4588
4924
  ] }) }) })
4589
4925
  ] }) }),
4590
- totalPages > 1 && /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "tbl__footer", children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "tbl__pagination-wrap", children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
4926
+ totalPages > 1 && /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "tbl__footer", children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "tbl__pagination-wrap", children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
4591
4927
  Pagination,
4592
4928
  {
4593
4929
  currentPage,
@@ -4596,19 +4932,19 @@ var Table = ({
4596
4932
  }
4597
4933
  ) }) })
4598
4934
  ] }),
4599
- infoText && /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "tbl-section__info-box", children: [
4600
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(InfoIcon, { className: "tbl-section__info-icon" }),
4601
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("p", { className: "tbl-section__info-text", children: infoText })
4935
+ infoText && /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "tbl-section__info-box", children: [
4936
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(InfoIcon, { className: "tbl-section__info-icon" }),
4937
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("p", { className: "tbl-section__info-text", children: infoText })
4602
4938
  ] })
4603
4939
  ] }),
4604
- /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
4940
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(
4605
4941
  "div",
4606
4942
  {
4607
4943
  className: ["tbl__global-hint", tooltip.visible ? "tbl__global-hint--visible" : ""].filter(Boolean).join(" "),
4608
4944
  style: { left: tooltip.x, top: tooltip.y - 8 },
4609
4945
  children: [
4610
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "tbl__global-hint-desc", children: tooltip.description }),
4611
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
4946
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "tbl__global-hint-desc", children: tooltip.description }),
4947
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
4612
4948
  "div",
4613
4949
  {
4614
4950
  className: "tbl__global-hint-arrow",
@@ -4622,41 +4958,41 @@ var Table = ({
4622
4958
  };
4623
4959
 
4624
4960
  // templates/Leaders/Leaders.tsx
4625
- var import_react20 = require("react");
4626
- var import_jsx_runtime38 = require("react/jsx-runtime");
4627
- var LinkedInIcon = () => /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("path", { d: "M14.816 0H1.18C0.528 0 0 0.516 0 1.153V14.846C0 15.484 0.528 16 1.18 16H14.816C15.468 16 16 15.484 16 14.846V1.153C16 0.516 15.468 0 14.816 0ZM4.744 13.642H2.368V5.996H4.744V13.642ZM3.556 4.952C2.796 4.952 2.18 4.336 2.18 3.576C2.18 2.816 2.796 2.2 3.556 2.2C4.316 2.2 4.932 2.816 4.932 3.576C4.932 4.336 4.316 4.952 3.556 4.952ZM13.642 13.642H11.266V9.924C11.266 9.038 11.25 7.896 10.032 7.896C8.814 7.896 8.626 8.846 8.626 9.86V13.642H6.25V5.996H8.53V7.04H8.562C8.88 6.44 9.534 5.806 10.686 5.806C12.958 5.806 13.642 7.3 13.642 9.386V13.642Z", fill: "currentColor" }) });
4628
- var ChevronDownIcon4 = () => /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("path", { d: "M4 6L8 10L12 6", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }) });
4629
- var ChevronUpIcon = () => /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("path", { d: "M12 10L8 6L4 10", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }) });
4630
- var CardContent = ({ item }) => /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(import_jsx_runtime38.Fragment, { children: [
4631
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "leaders__image-wrapper", children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
4961
+ var import_react22 = require("react");
4962
+ var import_jsx_runtime39 = require("react/jsx-runtime");
4963
+ var ChevronDownIcon4 = () => /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("path", { d: "M4 6L8 10L12 6", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }) });
4964
+ var ChevronUpIcon = () => /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("path", { d: "M12 10L8 6L4 10", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }) });
4965
+ var CardContent = ({ item }) => /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(import_jsx_runtime39.Fragment, { children: [
4966
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { className: "avatar-grid__image-wrapper", children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
4632
4967
  "img",
4633
4968
  {
4634
4969
  src: item.imageUrl,
4635
4970
  alt: item.name,
4636
- className: "leaders__image",
4971
+ className: "avatar-grid__image",
4637
4972
  loading: "lazy"
4638
4973
  }
4639
4974
  ) }),
4640
- /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "leaders__content", children: [
4641
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("h3", { className: "leaders__name", children: item.name }),
4642
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("p", { className: "leaders__role", children: item.role })
4975
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: "avatar-grid__content", children: [
4976
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("h3", { className: "avatar-grid__name", children: item.name }),
4977
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("p", { className: "avatar-grid__role", children: item.role })
4643
4978
  ] }),
4644
- item.linkedinUrl && /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
4979
+ item.linkUrl && /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
4645
4980
  Link,
4646
4981
  {
4647
- href: item.linkedinUrl,
4982
+ href: item.linkUrl,
4648
4983
  target: "_blank",
4649
4984
  rel: "noopener noreferrer",
4650
- icon: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(LinkedInIcon, {}),
4651
- label: "LinkedIn",
4985
+ icon: item.linkIcon,
4986
+ label: item.linkLabel ?? "Profile",
4652
4987
  colorScheme: "black",
4653
4988
  showChevron: false,
4654
- className: "leaders__link"
4989
+ className: "avatar-grid__link"
4655
4990
  }
4656
4991
  )
4657
4992
  ] });
4658
- var Leaders = ({
4659
- title = "Our leaders",
4993
+ var AvatarGrid = ({
4994
+ title,
4995
+ description,
4660
4996
  items,
4661
4997
  initialVisibleCount = 4,
4662
4998
  expandText = "View all",
@@ -4664,57 +5000,258 @@ var Leaders = ({
4664
5000
  className,
4665
5001
  ...props
4666
5002
  }) => {
4667
- const [isExpanded, setIsExpanded] = (0, import_react20.useState)(false);
5003
+ const [isExpanded, setIsExpanded] = (0, import_react22.useState)(false);
4668
5004
  const hasMore = items.length > initialVisibleCount;
4669
5005
  const visibleItems = items.slice(0, initialVisibleCount);
4670
5006
  const extraItems = items.slice(initialVisibleCount);
4671
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("section", { className: ["leaders", className].filter(Boolean).join(" "), ...props, children: /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "leaders__container", children: [
4672
- title && /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "leaders__header", children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("h2", { className: "leaders__title", children: title }) }),
4673
- /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "leaders__grid-wrapper", children: [
4674
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "leaders__grid", children: visibleItems.map((item, i) => /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "leaders__card", children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(CardContent, { item }) }, i)) }),
4675
- hasMore && /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
5007
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("section", { className: ["avatar-grid", className].filter(Boolean).join(" "), ...props, children: /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: "avatar-grid__container", children: [
5008
+ (title || description) && /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: "avatar-grid__header", children: [
5009
+ title && /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("h2", { className: "avatar-grid__title", children: title }),
5010
+ description && /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("p", { className: "avatar-grid__description", children: description })
5011
+ ] }),
5012
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: "avatar-grid__grid-wrapper", children: [
5013
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { className: "avatar-grid__grid", children: visibleItems.map((item, i) => /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { className: "avatar-grid__card", children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(CardContent, { item }) }, i)) }),
5014
+ hasMore && /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
4676
5015
  "div",
4677
5016
  {
4678
5017
  className: [
4679
- "leaders__extra-cards",
4680
- isExpanded ? "leaders__extra-cards--open" : ""
5018
+ "avatar-grid__extra-cards",
5019
+ isExpanded ? "avatar-grid__extra-cards--open" : ""
4681
5020
  ].join(" "),
4682
5021
  "aria-hidden": !isExpanded,
4683
- children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "leaders__extra-grid", children: extraItems.map((item, i) => /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
5022
+ children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { className: "avatar-grid__extra-grid", children: extraItems.map((item, i) => /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
4684
5023
  "div",
4685
5024
  {
4686
5025
  className: [
4687
- "leaders__card",
4688
- "leaders__extra-card",
4689
- isExpanded ? "leaders__extra-card--visible" : ""
5026
+ "avatar-grid__card",
5027
+ "avatar-grid__extra-card",
5028
+ isExpanded ? "avatar-grid__extra-card--visible" : ""
4690
5029
  ].join(" "),
4691
5030
  style: {
4692
5031
  transitionDelay: isExpanded ? `${i * 70 + 120}ms` : "0ms"
4693
5032
  },
4694
- children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(CardContent, { item })
5033
+ children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(CardContent, { item })
4695
5034
  },
4696
5035
  i
4697
5036
  )) })
4698
5037
  }
4699
5038
  )
4700
5039
  ] }),
4701
- hasMore && /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "leaders__actions", children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
5040
+ hasMore && /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { className: "avatar-grid__actions", children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
4702
5041
  Button,
4703
5042
  {
4704
5043
  variant: "secondary",
4705
5044
  colorScheme: "black",
4706
5045
  onClick: () => setIsExpanded(!isExpanded),
4707
5046
  iconPosition: "icon-right",
4708
- icon: isExpanded ? /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(ChevronUpIcon, {}) : /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(ChevronDownIcon4, {}),
5047
+ icon: isExpanded ? /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(ChevronUpIcon, {}) : /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(ChevronDownIcon4, {}),
5048
+ fullWidth: true,
4709
5049
  children: isExpanded ? collapseText : expandText
4710
5050
  }
4711
5051
  ) })
4712
5052
  ] }) });
4713
5053
  };
5054
+ var PeopleGrid = AvatarGrid;
5055
+ var Leaders = AvatarGrid;
5056
+
5057
+ // templates/ImageBanner/ImageBanner.tsx
5058
+ var import_jsx_runtime40 = require("react/jsx-runtime");
5059
+ var ImageBanner = ({
5060
+ variant = "split",
5061
+ title = "Join our global community",
5062
+ description = "Connect with traders around the world to exchange insights, explore portfolios, and gain valuable expertise.",
5063
+ ctaLabel = "Trader's Hub",
5064
+ ctaHref,
5065
+ onCtaClick,
5066
+ imageUrl,
5067
+ imageAlt = "",
5068
+ className,
5069
+ ...props
5070
+ }) => {
5071
+ const isFullBg = variant === "full-bg";
5072
+ return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
5073
+ "section",
5074
+ {
5075
+ className: ["image-banner", className].filter(Boolean).join(" "),
5076
+ ...props,
5077
+ children: /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(
5078
+ "div",
5079
+ {
5080
+ className: [
5081
+ "image-banner__inner",
5082
+ `image-banner__inner--${variant}`
5083
+ ].join(" "),
5084
+ children: [
5085
+ isFullBg && imageUrl && /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)("div", { className: "image-banner__bg-image-wrapper", children: [
5086
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
5087
+ "img",
5088
+ {
5089
+ src: imageUrl,
5090
+ alt: imageAlt,
5091
+ className: "image-banner__bg-image",
5092
+ loading: "lazy"
5093
+ }
5094
+ ),
5095
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("div", { className: "image-banner__bg-overlay", "aria-hidden": "true" })
5096
+ ] }),
5097
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)("div", { className: "image-banner__content", children: [
5098
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("h2", { className: "image-banner__title", children: title }),
5099
+ description && /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("p", { className: "image-banner__description", children: description }),
5100
+ ctaLabel && /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("div", { className: "image-banner__actions", children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
5101
+ Link,
5102
+ {
5103
+ colorScheme: "coral",
5104
+ label: ctaLabel,
5105
+ href: ctaHref,
5106
+ onClick: onCtaClick,
5107
+ showChevron: true,
5108
+ className: "image-banner__cta-link"
5109
+ }
5110
+ ) })
5111
+ ] }),
5112
+ !isFullBg && imageUrl && /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("div", { className: "image-banner__image-wrapper", children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
5113
+ "img",
5114
+ {
5115
+ src: imageUrl,
5116
+ alt: imageAlt,
5117
+ className: "image-banner__image",
5118
+ loading: "lazy"
5119
+ }
5120
+ ) })
5121
+ ]
5122
+ }
5123
+ )
5124
+ }
5125
+ );
5126
+ };
5127
+
5128
+ // templates/Testimonial/Testimonial.tsx
5129
+ var import_react23 = require("react");
5130
+
5131
+ // assets/quote-left.webp
5132
+ var quote_left_default = "./quote-left-63QMW5NQ.webp";
5133
+
5134
+ // assets/quote-right.webp
5135
+ var quote_right_default = "./quote-right-W6AS4YHN.webp";
5136
+
5137
+ // templates/Testimonial/Testimonial.tsx
5138
+ var import_jsx_runtime41 = require("react/jsx-runtime");
5139
+ var Testimonial = ({
5140
+ title,
5141
+ items,
5142
+ className,
5143
+ ...props
5144
+ }) => {
5145
+ const [activeIndex, setActiveIndex] = (0, import_react23.useState)(0);
5146
+ const [phase, setPhase] = (0, import_react23.useState)("idle");
5147
+ const pendingIndex = (0, import_react23.useRef)(null);
5148
+ const autoRef = (0, import_react23.useRef)(null);
5149
+ const goTo = (next) => {
5150
+ if (next === activeIndex || phase !== "idle") return;
5151
+ pendingIndex.current = next;
5152
+ setPhase("exiting");
5153
+ };
5154
+ (0, import_react23.useEffect)(() => {
5155
+ if (phase === "exiting") {
5156
+ const t = setTimeout(() => {
5157
+ setActiveIndex(pendingIndex.current ?? activeIndex);
5158
+ setPhase("idle");
5159
+ }, 200);
5160
+ return () => clearTimeout(t);
5161
+ }
5162
+ }, [phase, activeIndex]);
5163
+ (0, import_react23.useEffect)(() => {
5164
+ if (items.length <= 1) return;
5165
+ autoRef.current = setTimeout(() => {
5166
+ const next = (activeIndex + 1) % items.length;
5167
+ pendingIndex.current = next;
5168
+ setPhase("exiting");
5169
+ }, 5e3);
5170
+ return () => {
5171
+ if (autoRef.current) clearTimeout(autoRef.current);
5172
+ };
5173
+ }, [activeIndex, items.length]);
5174
+ if (!items || items.length === 0) return null;
5175
+ return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
5176
+ "section",
5177
+ {
5178
+ className: ["testimonial", className].filter(Boolean).join(" "),
5179
+ ...props,
5180
+ children: /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: "testimonial__container", children: [
5181
+ title && /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("h2", { className: "testimonial__title", children: title }),
5182
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: "testimonial__carousel", children: [
5183
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", { className: "testimonial__slides", children: items.map((item, i) => {
5184
+ const isActive = i === activeIndex;
5185
+ const isExiting = isActive && phase === "exiting";
5186
+ const slideClass = [
5187
+ "testimonial__slide",
5188
+ isActive && !isExiting ? "testimonial__slide--active" : "",
5189
+ isExiting ? "testimonial__slide--exiting" : ""
5190
+ ].filter(Boolean).join(" ");
5191
+ return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
5192
+ "div",
5193
+ {
5194
+ className: slideClass,
5195
+ role: "region",
5196
+ "aria-label": `Testimonial ${i + 1} of ${items.length}`,
5197
+ "aria-hidden": !isActive,
5198
+ children: /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: "testimonial__card", children: [
5199
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("span", { className: "testimonial__quotemark testimonial__quotemark--open", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("img", { src: quote_left_default, alt: "", className: "testimonial__quotemark-img" }) }),
5200
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("p", { className: "testimonial__quote", children: item.quote }),
5201
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: "testimonial__author", children: [
5202
+ item.avatarUrl && /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
5203
+ "img",
5204
+ {
5205
+ src: item.avatarUrl,
5206
+ alt: item.authorName,
5207
+ className: "testimonial__author-avatar",
5208
+ loading: "lazy"
5209
+ }
5210
+ ),
5211
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("p", { className: "testimonial__author-name", children: item.authorName }),
5212
+ item.authorLocation && /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("p", { className: "testimonial__author-location", children: item.authorLocation })
5213
+ ] }),
5214
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("span", { className: "testimonial__quotemark testimonial__quotemark--close", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("img", { src: quote_right_default, alt: "", className: "testimonial__quotemark-img" }) })
5215
+ ] })
5216
+ },
5217
+ i
5218
+ );
5219
+ }) }),
5220
+ items.length > 1 && /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
5221
+ "div",
5222
+ {
5223
+ className: "testimonial__dots",
5224
+ role: "tablist",
5225
+ "aria-label": "Testimonial navigation",
5226
+ children: items.map((_, i) => /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
5227
+ "button",
5228
+ {
5229
+ role: "tab",
5230
+ "aria-selected": i === activeIndex,
5231
+ "aria-label": `Go to testimonial ${i + 1}`,
5232
+ className: [
5233
+ "testimonial__dot",
5234
+ i === activeIndex ? "testimonial__dot--active" : ""
5235
+ ].filter(Boolean).join(" "),
5236
+ onClick: () => {
5237
+ if (autoRef.current) clearTimeout(autoRef.current);
5238
+ goTo(i);
5239
+ }
5240
+ },
5241
+ i
5242
+ ))
5243
+ }
5244
+ )
5245
+ ] })
5246
+ ] })
5247
+ }
5248
+ );
5249
+ };
4714
5250
  // Annotate the CommonJS export names for ESM import in node:
4715
5251
  0 && (module.exports = {
4716
5252
  AVATAR_DATA,
4717
5253
  Accordion,
5254
+ AvatarGrid,
4718
5255
  BottomSheet,
4719
5256
  Breadcrumb,
4720
5257
  Button,
@@ -4737,14 +5274,17 @@ var Leaders = ({
4737
5274
  Footer,
4738
5275
  Header,
4739
5276
  Hero,
5277
+ ImageBanner,
4740
5278
  Leaders,
4741
5279
  Link,
4742
5280
  LogoMarquee,
4743
5281
  Navbar,
4744
5282
  Pagination,
5283
+ PeopleGrid,
4745
5284
  STEPS_DATA,
4746
5285
  SearchField,
4747
5286
  Stats,
5287
+ StatsSimple,
4748
5288
  Steps,
4749
5289
  StickyMarketCards,
4750
5290
  StickyStackedCards,
@@ -4752,6 +5292,7 @@ var Leaders = ({
4752
5292
  Table,
4753
5293
  Tabs,
4754
5294
  Tag,
5295
+ Testimonial,
4755
5296
  TextField,
4756
5297
  TextScroll,
4757
5298
  dayNightTransitionV2Preset