@deriv-web-design/ui 0.0.14 → 0.0.15

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
@@ -32,19 +32,20 @@ __export(index_exports, {
32
32
  Chip: () => Chip,
33
33
  ChipDropdown: () => ChipDropdown,
34
34
  DayNightTransition: () => DayNightTransition,
35
+ DotLottieInView: () => DotLottieInView,
35
36
  DownloadBadge: () => DownloadBadge,
36
37
  DownloadBanner: () => DownloadBanner,
38
+ FEATURE_SCROLL_DATA: () => FEATURE_SCROLL_DATA,
37
39
  FeatureCards: () => FeatureCards,
38
40
  FeatureCardsSecondary: () => FeatureCardsSecondary,
41
+ FeatureScroll: () => FeatureScroll,
39
42
  Footer: () => Footer,
40
43
  Hero: () => Hero,
41
44
  Link: () => Link,
42
45
  LogoMarquee: () => LogoMarquee,
43
46
  Navbar: () => Navbar,
44
47
  Pagination: () => Pagination,
45
- SCROLLYTELLING_DATA: () => SCROLLYTELLING_DATA,
46
48
  STEPS_DATA: () => STEPS_DATA,
47
- Scrollytelling: () => Scrollytelling,
48
49
  SearchField: () => SearchField,
49
50
  Stats: () => Stats,
50
51
  Steps: () => Steps,
@@ -1850,11 +1851,76 @@ var Stats = ({
1850
1851
  );
1851
1852
  };
1852
1853
 
1853
- // templates/Scrollytelling/Scrollytelling.tsx
1854
+ // templates/FeatureScroll/FeatureScroll.tsx
1855
+ var import_react11 = require("react");
1856
+
1857
+ // components/DotLottieInView/DotLottieInView.tsx
1854
1858
  var import_react10 = require("react");
1855
1859
  var import_dotlottie_react = require("@lottiefiles/dotlottie-react");
1856
1860
  var import_jsx_runtime21 = require("react/jsx-runtime");
1857
- var SCROLLYTELLING_DATA = [
1861
+ function DotLottieInView({
1862
+ enabled = true,
1863
+ rootMargin = "0px",
1864
+ threshold = 0.2,
1865
+ className,
1866
+ style,
1867
+ ...dotProps
1868
+ }) {
1869
+ const wrapRef = (0, import_react10.useRef)(null);
1870
+ const [inView, setInView] = (0, import_react10.useState)(false);
1871
+ const [dotLottie, setDotLottie] = (0, import_react10.useState)(null);
1872
+ (0, import_react10.useEffect)(() => {
1873
+ const el = wrapRef.current;
1874
+ if (!el) return;
1875
+ const observer = new IntersectionObserver(
1876
+ ([entry]) => {
1877
+ setInView(entry.isIntersecting);
1878
+ },
1879
+ { root: null, rootMargin, threshold }
1880
+ );
1881
+ observer.observe(el);
1882
+ return () => observer.disconnect();
1883
+ }, [rootMargin, threshold]);
1884
+ (0, import_react10.useEffect)(() => {
1885
+ if (!dotLottie) return;
1886
+ if (!enabled || !inView) {
1887
+ dotLottie.stop();
1888
+ return;
1889
+ }
1890
+ dotLottie.stop();
1891
+ dotLottie.play();
1892
+ }, [dotLottie, enabled, inView]);
1893
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
1894
+ "div",
1895
+ {
1896
+ ref: wrapRef,
1897
+ className,
1898
+ style: {
1899
+ width: "100%",
1900
+ height: "100%",
1901
+ minHeight: 0,
1902
+ display: "flex",
1903
+ alignItems: "center",
1904
+ justifyContent: "center",
1905
+ backgroundColor: "transparent",
1906
+ ...style
1907
+ },
1908
+ children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
1909
+ import_dotlottie_react.DotLottieReact,
1910
+ {
1911
+ ...dotProps,
1912
+ loop: false,
1913
+ autoplay: false,
1914
+ dotLottieRefCallback: setDotLottie
1915
+ }
1916
+ )
1917
+ }
1918
+ );
1919
+ }
1920
+
1921
+ // templates/FeatureScroll/FeatureScroll.tsx
1922
+ var import_jsx_runtime22 = require("react/jsx-runtime");
1923
+ var FEATURE_SCROLL_DATA = [
1858
1924
  {
1859
1925
  title: "Forex",
1860
1926
  description: "Trade the most popular currency pairs with high leverage, tight spreads, and fast execution.",
@@ -1898,16 +1964,16 @@ var SCROLLYTELLING_DATA = [
1898
1964
  mediaUrl: "https://cdn.prod.website-files.com/66fbaad381fa6866fa4991f3/675a9064f2c16e4e0732abfb_Stock%20Indices.lottie"
1899
1965
  }
1900
1966
  ];
1901
- var ChevronRight2 = () => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
1967
+ var ChevronRight2 = () => /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
1902
1968
  "svg",
1903
1969
  {
1904
- className: "scrolly__item-link-icon",
1970
+ className: "fs__item-link-icon",
1905
1971
  width: "16",
1906
1972
  height: "16",
1907
1973
  viewBox: "0 0 16 16",
1908
1974
  fill: "none",
1909
1975
  "aria-hidden": "true",
1910
- children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
1976
+ children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
1911
1977
  "path",
1912
1978
  {
1913
1979
  d: "M6 3l5 5-5 5",
@@ -1925,16 +1991,15 @@ function resolveMediaType(item) {
1925
1991
  }
1926
1992
  var MediaRenderer = ({ item, active }) => {
1927
1993
  if (resolveMediaType(item) === "lottie") {
1928
- return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
1929
- import_dotlottie_react.DotLottieReact,
1994
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
1995
+ DotLottieInView,
1930
1996
  {
1931
1997
  src: item.mediaUrl,
1932
- loop: true,
1933
- autoplay: active
1998
+ enabled: active
1934
1999
  }
1935
2000
  );
1936
2001
  }
1937
- return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
2002
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
1938
2003
  "img",
1939
2004
  {
1940
2005
  src: item.mediaUrl,
@@ -1943,87 +2008,121 @@ var MediaRenderer = ({ item, active }) => {
1943
2008
  }
1944
2009
  );
1945
2010
  };
1946
- var Scrollytelling = ({
2011
+ var FeatureScroll = ({
1947
2012
  header,
1948
2013
  items,
1949
2014
  variant = "media-right",
1950
2015
  className,
1951
2016
  ...props
1952
2017
  }) => {
1953
- const [activeIndex, setActiveIndex] = (0, import_react10.useState)(0);
1954
- const itemRefs = (0, import_react10.useRef)([]);
1955
- (0, import_react10.useEffect)(() => {
1956
- const elements = itemRefs.current.filter(Boolean);
1957
- if (!elements.length) return;
1958
- const observer = new IntersectionObserver(
1959
- (entries) => {
1960
- entries.forEach((entry) => {
1961
- if (entry.isIntersecting) {
1962
- const idx = itemRefs.current.indexOf(
1963
- entry.target
1964
- );
1965
- if (idx !== -1) setActiveIndex(idx);
1966
- }
1967
- });
1968
- },
1969
- {
1970
- /* Fire when 50 % of the text block is visible.
1971
- rootMargin trims the effective viewport to its
1972
- middle third, preventing accidental fires when
1973
- items are only just entering / leaving the screen. */
1974
- threshold: 0.5,
1975
- rootMargin: "-15% 0px -15% 0px"
2018
+ const [activeIndex, setActiveIndex] = (0, import_react11.useState)(0);
2019
+ const titleRefs = (0, import_react11.useRef)([]);
2020
+ const mediaColRef = (0, import_react11.useRef)(null);
2021
+ (0, import_react11.useLayoutEffect)(() => {
2022
+ if (items.length === 0) return;
2023
+ const readThresholdPx = () => {
2024
+ const col = mediaColRef.current;
2025
+ if (!col) return 80;
2026
+ const top = getComputedStyle(col).top;
2027
+ const px = parseFloat(top);
2028
+ return Number.isFinite(px) ? px : 80;
2029
+ };
2030
+ let rafId = 0;
2031
+ const tick = () => {
2032
+ rafId = 0;
2033
+ if (typeof window === "undefined") return;
2034
+ if (!window.matchMedia("(min-width: 992px)").matches) return;
2035
+ const threshold = readThresholdPx();
2036
+ const refs = titleRefs.current;
2037
+ let pinned = -1;
2038
+ for (let i = 0; i < items.length; i++) {
2039
+ const el = refs[i];
2040
+ if (!el) continue;
2041
+ if (el.getBoundingClientRect().top <= threshold) pinned = i;
1976
2042
  }
1977
- );
1978
- elements.forEach((el) => observer.observe(el));
1979
- return () => observer.disconnect();
2043
+ const mediaIndex = Math.min(
2044
+ items.length - 1,
2045
+ pinned + 1
2046
+ );
2047
+ setActiveIndex(
2048
+ (prev) => prev === mediaIndex ? prev : mediaIndex
2049
+ );
2050
+ };
2051
+ const schedule = () => {
2052
+ if (rafId !== 0) return;
2053
+ rafId = window.requestAnimationFrame(tick);
2054
+ };
2055
+ tick();
2056
+ window.addEventListener("scroll", schedule, { passive: true });
2057
+ window.addEventListener("resize", schedule, { passive: true });
2058
+ const mq = window.matchMedia("(min-width: 992px)");
2059
+ mq.addEventListener("change", schedule);
2060
+ return () => {
2061
+ window.removeEventListener("scroll", schedule);
2062
+ window.removeEventListener("resize", schedule);
2063
+ mq.removeEventListener("change", schedule);
2064
+ if (rafId !== 0) window.cancelAnimationFrame(rafId);
2065
+ };
1980
2066
  }, [items.length]);
1981
2067
  const rootClass = [
1982
- "scrolly",
1983
- `scrolly--${variant}`,
2068
+ "fs",
2069
+ `fs--${variant}`,
1984
2070
  className
1985
2071
  ].filter(Boolean).join(" ");
1986
- return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("section", { className: rootClass, ...props, children: /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "scrolly__inner", children: [
1987
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("h2", { className: "scrolly__header", children: header }),
1988
- /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "scrolly__layout", children: [
1989
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "scrolly__media-col", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "scrolly__media-wrap", children: items.map((item, i) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
2072
+ if (items.length === 0) {
2073
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("section", { className: rootClass, ...props, children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: "fs__inner", children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("h2", { className: "fs__header", children: header }) }) });
2074
+ }
2075
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("section", { className: rootClass, ...props, children: /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("div", { className: "fs__inner", children: [
2076
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("h2", { className: "fs__header", children: header }),
2077
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("div", { className: "fs__layout", children: [
2078
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: "fs__media-col", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
1990
2079
  "div",
1991
2080
  {
1992
- className: [
1993
- "scrolly__media-item",
1994
- i === activeIndex ? "scrolly__media-item--active" : ""
1995
- ].filter(Boolean).join(" "),
1996
- children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
1997
- MediaRenderer,
2081
+ ref: mediaColRef,
2082
+ className: "fs__media-sticky",
2083
+ children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: "fs__media-wrap", children: items.map((item, i) => /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
2084
+ "div",
1998
2085
  {
1999
- item,
2000
- active: i === activeIndex
2001
- }
2002
- )
2003
- },
2004
- i
2005
- )) }) }),
2006
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "scrolly__content-col", children: items.map((item, i) => /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
2086
+ className: [
2087
+ "fs__media-item",
2088
+ i === activeIndex ? "fs__media-item--active" : ""
2089
+ ].filter(Boolean).join(" "),
2090
+ children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
2091
+ MediaRenderer,
2092
+ {
2093
+ item,
2094
+ active: i === activeIndex
2095
+ }
2096
+ )
2097
+ },
2098
+ i
2099
+ )) })
2100
+ }
2101
+ ) }),
2102
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: "fs__content-col", children: items.map((item, i) => /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
2007
2103
  "div",
2008
2104
  {
2009
- ref: (el) => {
2010
- itemRefs.current[i] = el;
2011
- },
2012
- className: [
2013
- "scrolly__item",
2014
- i === activeIndex ? "scrolly__item--active" : "scrolly__item--inactive"
2015
- ].join(" "),
2105
+ className: "fs__item",
2016
2106
  children: [
2017
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("h3", { className: "scrolly__item-title", children: item.title }),
2018
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("p", { className: "scrolly__item-desc", children: item.description }),
2019
- /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
2107
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
2108
+ "h3",
2109
+ {
2110
+ ref: (el) => {
2111
+ titleRefs.current[i] = el;
2112
+ },
2113
+ className: "fs__item-title",
2114
+ children: item.title
2115
+ }
2116
+ ),
2117
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("p", { className: "fs__item-desc", children: item.description }),
2118
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
2020
2119
  "a",
2021
2120
  {
2022
2121
  href: item.link,
2023
- className: "scrolly__item-link",
2122
+ className: "fs__item-link",
2024
2123
  children: [
2025
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("span", { children: item.linkLabel }),
2026
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(ChevronRight2, {})
2124
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("span", { children: item.linkLabel }),
2125
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(ChevronRight2, {})
2027
2126
  ]
2028
2127
  }
2029
2128
  )
@@ -2032,28 +2131,28 @@ var Scrollytelling = ({
2032
2131
  i
2033
2132
  )) })
2034
2133
  ] }),
2035
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "scrolly__mobile-list", children: items.map((item, i) => /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "scrolly__mobile-item", children: [
2036
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("h3", { className: "scrolly__item-title", children: item.title }),
2037
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("p", { className: "scrolly__item-desc", children: item.description }),
2038
- /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
2134
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: "fs__mobile-list", children: items.map((item, i) => /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("div", { className: "fs__mobile-item", children: [
2135
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("h3", { className: "fs__item-title", children: item.title }),
2136
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: "fs__mobile-media", children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(MediaRenderer, { item, active: true }) }),
2137
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("p", { className: "fs__item-desc", children: item.description }),
2138
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
2039
2139
  "a",
2040
2140
  {
2041
2141
  href: item.link,
2042
- className: "scrolly__item-link",
2142
+ className: "fs__item-link",
2043
2143
  children: [
2044
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("span", { children: "Learn more" }),
2045
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(ChevronRight2, {})
2144
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("span", { children: item.linkLabel }),
2145
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(ChevronRight2, {})
2046
2146
  ]
2047
2147
  }
2048
- ),
2049
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "scrolly__mobile-media", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(MediaRenderer, { item, active: true }) })
2148
+ )
2050
2149
  ] }, i)) })
2051
2150
  ] }) });
2052
2151
  };
2053
2152
 
2054
2153
  // templates/StickyStackedCards/StickyStackedCards.tsx
2055
- var import_react11 = require("react");
2056
- var import_jsx_runtime22 = require("react/jsx-runtime");
2154
+ var import_react12 = require("react");
2155
+ var import_jsx_runtime23 = require("react/jsx-runtime");
2057
2156
  var PLACEHOLDER_IMAGE = "https://cdn.prod.website-files.com/68da5c86c91c54f39c86c28a/69b9309379ac08e59ca8210a_1f3f555da9a5cbb13a6fe1bf0d5fe1b6_placeholder-image.webp";
2058
2157
  var STEPS_DATA = [
2059
2158
  {
@@ -2082,8 +2181,8 @@ var StickyStackedCards = ({
2082
2181
  className,
2083
2182
  ...props
2084
2183
  }) => {
2085
- const cardRefs = (0, import_react11.useRef)([]);
2086
- (0, import_react11.useEffect)(() => {
2184
+ const cardRefs = (0, import_react12.useRef)([]);
2185
+ (0, import_react12.useEffect)(() => {
2087
2186
  if (typeof window === "undefined") return;
2088
2187
  let rafId = 0;
2089
2188
  const update = () => {
@@ -2117,14 +2216,14 @@ var StickyStackedCards = ({
2117
2216
  cancelAnimationFrame(rafId);
2118
2217
  };
2119
2218
  }, [items.length]);
2120
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
2219
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
2121
2220
  "section",
2122
2221
  {
2123
2222
  className: ["ssc", className].filter(Boolean).join(" "),
2124
2223
  ...props,
2125
- children: /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("div", { className: "ssc__inner", children: [
2126
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("h2", { className: "ssc__header", children: header }),
2127
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: "ssc__track", children: items.map((item, i) => /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
2224
+ children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { className: "ssc__inner", children: [
2225
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("h2", { className: "ssc__header", children: header }),
2226
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: "ssc__track", children: items.map((item, i) => /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
2128
2227
  "div",
2129
2228
  {
2130
2229
  ref: (el) => {
@@ -2150,11 +2249,11 @@ var StickyStackedCards = ({
2150
2249
  top: `calc(var(--ssc-sticky-top) + ${i} * var(--ssc-peek-offset))`
2151
2250
  },
2152
2251
  children: [
2153
- /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("div", { className: "ssc__card-content", children: [
2154
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("h3", { className: "ssc__card-title", children: item.title }),
2155
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("p", { className: "ssc__card-desc", children: item.description })
2252
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { className: "ssc__card-content", children: [
2253
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("h3", { className: "ssc__card-title", children: item.title }),
2254
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("p", { className: "ssc__card-desc", children: item.description })
2156
2255
  ] }),
2157
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: "ssc__card-image", children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
2256
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: "ssc__card-image", children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
2158
2257
  "img",
2159
2258
  {
2160
2259
  src: item.imageUrl,
@@ -2172,9 +2271,9 @@ var StickyStackedCards = ({
2172
2271
  };
2173
2272
 
2174
2273
  // templates/CTABanner/CTABanner.tsx
2175
- var import_react12 = require("react");
2274
+ var import_react13 = require("react");
2176
2275
  var import_framer_motion = require("framer-motion");
2177
- var import_jsx_runtime23 = require("react/jsx-runtime");
2276
+ var import_jsx_runtime24 = require("react/jsx-runtime");
2178
2277
  var ENTRANCE = {
2179
2278
  near: 80,
2180
2279
  mid: 130,
@@ -2420,7 +2519,7 @@ var CTABanner = ({
2420
2519
  ...props
2421
2520
  }) => {
2422
2521
  const resolvedAvatars = avatars ?? (variant === "compact" ? COMPACT_AVATAR_DATA : AVATAR_DATA);
2423
- const sectionRef = (0, import_react12.useRef)(null);
2522
+ const sectionRef = (0, import_react13.useRef)(null);
2424
2523
  const { scrollYProgress } = (0, import_framer_motion.useScroll)({
2425
2524
  target: sectionRef,
2426
2525
  offset: ["start end", "end start"]
@@ -2438,14 +2537,14 @@ var CTABanner = ({
2438
2537
  const compactXValues = useCompactAvatarXValues(smooth);
2439
2538
  const avatarYValues = variant === "compact" ? compactYValues : standardYValues;
2440
2539
  const avatarXValues = variant === "compact" ? compactXValues : standardXValues;
2441
- return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
2540
+ return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
2442
2541
  "section",
2443
2542
  {
2444
2543
  ref: sectionRef,
2445
2544
  className: ["ctab", variant === "compact" ? "ctab--compact" : "", className].filter(Boolean).join(" "),
2446
2545
  ...props,
2447
2546
  children: [
2448
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
2547
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
2449
2548
  import_framer_motion.motion.div,
2450
2549
  {
2451
2550
  className: "ctab__grid",
@@ -2453,7 +2552,7 @@ var CTABanner = ({
2453
2552
  "aria-hidden": "true"
2454
2553
  }
2455
2554
  ),
2456
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: "ctab__inner", children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { className: "ctab__stage", children: [
2555
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: "ctab__inner", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { className: "ctab__stage", children: [
2457
2556
  resolvedAvatars.map((avatar, index) => {
2458
2557
  const posStyle = {};
2459
2558
  if (avatar.desktopPos.left) posStyle["--av-d-left"] = avatar.desktopPos.left;
@@ -2462,7 +2561,7 @@ var CTABanner = ({
2462
2561
  if (avatar.mobilePos?.left) posStyle["--av-m-left"] = avatar.mobilePos.left;
2463
2562
  if (avatar.mobilePos?.right) posStyle["--av-m-right"] = avatar.mobilePos.right;
2464
2563
  if (avatar.mobilePos?.top) posStyle["--av-m-top"] = avatar.mobilePos.top;
2465
- return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
2564
+ return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
2466
2565
  import_framer_motion.motion.div,
2467
2566
  {
2468
2567
  className: [
@@ -2476,7 +2575,7 @@ var CTABanner = ({
2476
2575
  opacity: avatarOpacity,
2477
2576
  filter: avatarFilter
2478
2577
  },
2479
- children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
2578
+ children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
2480
2579
  "img",
2481
2580
  {
2482
2581
  src: avatar.imageUrl,
@@ -2489,14 +2588,14 @@ var CTABanner = ({
2489
2588
  avatar.id
2490
2589
  );
2491
2590
  }),
2492
- /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
2591
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
2493
2592
  import_framer_motion.motion.div,
2494
2593
  {
2495
2594
  className: "ctab__hero",
2496
2595
  style: { y: heroY, opacity: heroOpacity },
2497
2596
  children: [
2498
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("h2", { className: "ctab__headline", children: headline }),
2499
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("a", { href: ctaHref, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Button, { colorScheme: "black", variant: "primary", label: ctaLabel }) })
2597
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("h2", { className: "ctab__headline", children: headline }),
2598
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("a", { href: ctaHref, children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Button, { colorScheme: "black", variant: "primary", label: ctaLabel }) })
2500
2599
  ]
2501
2600
  }
2502
2601
  )
@@ -2507,14 +2606,14 @@ var CTABanner = ({
2507
2606
  };
2508
2607
 
2509
2608
  // components/Navbar/Navbar.tsx
2510
- var import_react13 = require("react");
2609
+ var import_react14 = require("react");
2511
2610
  var import_framer_motion2 = require("framer-motion");
2512
2611
 
2513
2612
  // assets/icon-globe.svg
2514
2613
  var icon_globe_default = "./icon-globe-S54WYYEK.svg";
2515
2614
 
2516
2615
  // components/Navbar/Navbar.tsx
2517
- var import_jsx_runtime24 = require("react/jsx-runtime");
2616
+ var import_jsx_runtime25 = require("react/jsx-runtime");
2518
2617
  var EASE_OUT_EXPO = [0.16, 1, 0.3, 1];
2519
2618
  var dropdownVariants = {
2520
2619
  hidden: { opacity: 0, scale: 0.96, y: -8 },
@@ -2528,7 +2627,7 @@ var accordionVariants = {
2528
2627
  hidden: { height: 0, opacity: 0 },
2529
2628
  visible: { height: "auto", opacity: 1 }
2530
2629
  };
2531
- var ChevronDownIcon3 = ({ className }) => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
2630
+ var ChevronDownIcon3 = ({ className }) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
2532
2631
  "svg",
2533
2632
  {
2534
2633
  className,
@@ -2537,7 +2636,7 @@ var ChevronDownIcon3 = ({ className }) => /* @__PURE__ */ (0, import_jsx_runtime
2537
2636
  viewBox: "0 0 14 14",
2538
2637
  fill: "none",
2539
2638
  "aria-hidden": "true",
2540
- children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
2639
+ children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
2541
2640
  "path",
2542
2641
  {
2543
2642
  d: "M2.625 4.8125L7 9.1875L11.375 4.8125",
@@ -2549,7 +2648,7 @@ var ChevronDownIcon3 = ({ className }) => /* @__PURE__ */ (0, import_jsx_runtime
2549
2648
  )
2550
2649
  }
2551
2650
  );
2552
- var ArrowRightIcon = () => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("svg", { width: "14", height: "14", viewBox: "0 0 14 14", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
2651
+ var ArrowRightIcon = () => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("svg", { width: "14", height: "14", viewBox: "0 0 14 14", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
2553
2652
  "path",
2554
2653
  {
2555
2654
  d: "M2.625 7H11.375M11.375 7L7.875 3.5M11.375 7L7.875 10.5",
@@ -2559,7 +2658,7 @@ var ArrowRightIcon = () => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("svg",
2559
2658
  strokeLinejoin: "round"
2560
2659
  }
2561
2660
  ) });
2562
- var ArrowUpRightIcon = () => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
2661
+ var ArrowUpRightIcon = () => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
2563
2662
  "path",
2564
2663
  {
2565
2664
  d: "M4.5 11.5L11.5 4.5M11.5 4.5H5.5M11.5 4.5V10.5",
@@ -2569,7 +2668,7 @@ var ArrowUpRightIcon = () => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("svg"
2569
2668
  strokeLinejoin: "round"
2570
2669
  }
2571
2670
  ) });
2572
- var BarsIcon = () => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("svg", { width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
2671
+ var BarsIcon = () => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("svg", { width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
2573
2672
  "path",
2574
2673
  {
2575
2674
  d: "M2.5 5H17.5M2.5 10H17.5M2.5 15H17.5",
@@ -2578,7 +2677,7 @@ var BarsIcon = () => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("svg", { widt
2578
2677
  strokeLinecap: "round"
2579
2678
  }
2580
2679
  ) });
2581
- var XMarkIcon2 = () => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("svg", { width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
2680
+ var XMarkIcon2 = () => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("svg", { width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
2582
2681
  "path",
2583
2682
  {
2584
2683
  d: "M15 5L5 15M5 5L15 15",
@@ -2587,7 +2686,7 @@ var XMarkIcon2 = () => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("svg", { wi
2587
2686
  strokeLinecap: "round"
2588
2687
  }
2589
2688
  ) });
2590
- var ChevronLeftIcon = ({ className }) => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
2689
+ var ChevronLeftIcon = ({ className }) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
2591
2690
  "svg",
2592
2691
  {
2593
2692
  className,
@@ -2596,7 +2695,7 @@ var ChevronLeftIcon = ({ className }) => /* @__PURE__ */ (0, import_jsx_runtime2
2596
2695
  viewBox: "0 0 24 24",
2597
2696
  fill: "none",
2598
2697
  "aria-hidden": "true",
2599
- children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
2698
+ children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
2600
2699
  "path",
2601
2700
  {
2602
2701
  d: "M15 18L9 12L15 6",
@@ -2608,11 +2707,11 @@ var ChevronLeftIcon = ({ className }) => /* @__PURE__ */ (0, import_jsx_runtime2
2608
2707
  )
2609
2708
  }
2610
2709
  );
2611
- var GlobeIcon = ({ className }) => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("img", { src: icon_globe_default, alt: "", "aria-hidden": "true", width: "20", height: "20", className });
2710
+ var GlobeIcon = ({ className }) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("img", { src: icon_globe_default, alt: "", "aria-hidden": "true", width: "20", height: "20", className });
2612
2711
  var DropdownPanel = ({ item, onMouseEnter, onMouseLeave }) => {
2613
2712
  const { dropdown } = item;
2614
2713
  if (!dropdown) return null;
2615
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
2714
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
2616
2715
  import_framer_motion2.motion.div,
2617
2716
  {
2618
2717
  className: "navbar__dropdown",
@@ -2623,10 +2722,10 @@ var DropdownPanel = ({ item, onMouseEnter, onMouseLeave }) => {
2623
2722
  transition: { duration: 0.18, ease: EASE_OUT_EXPO },
2624
2723
  onMouseEnter,
2625
2724
  onMouseLeave,
2626
- children: /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { className: "navbar__dropdown-inner", children: [
2627
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: "navbar__dropdown-left", children: dropdown.columns.map((col, colIdx) => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: "navbar__dropdown-col", children: col.sections.map((section) => /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { className: "navbar__dropdown-col-list", children: [
2628
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("p", { className: "navbar__dropdown-col-title", children: section.title }),
2629
- section.items.map((link) => /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
2725
+ children: /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: "navbar__dropdown-inner", children: [
2726
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: "navbar__dropdown-left", children: dropdown.columns.map((col, colIdx) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: "navbar__dropdown-col", children: col.sections.map((section) => /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: "navbar__dropdown-col-list", children: [
2727
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("p", { className: "navbar__dropdown-col-title", children: section.title }),
2728
+ section.items.map((link) => /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
2630
2729
  "a",
2631
2730
  {
2632
2731
  href: link.href,
@@ -2635,24 +2734,24 @@ var DropdownPanel = ({ item, onMouseEnter, onMouseLeave }) => {
2635
2734
  rel: link.external ? "noopener noreferrer" : void 0,
2636
2735
  children: [
2637
2736
  link.label,
2638
- link.external ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(ArrowUpRightIcon, {}) : /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(ArrowRightIcon, {})
2737
+ link.external ? /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(ArrowUpRightIcon, {}) : /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(ArrowRightIcon, {})
2639
2738
  ]
2640
2739
  },
2641
2740
  link.href
2642
2741
  ))
2643
2742
  ] }, section.title)) }, colIdx)) }),
2644
- dropdown.feature && /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: "navbar__dropdown-right", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(FeatureCard, { feature: dropdown.feature }) })
2743
+ dropdown.feature && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: "navbar__dropdown-right", children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(FeatureCard, { feature: dropdown.feature }) })
2645
2744
  ] })
2646
2745
  }
2647
2746
  );
2648
2747
  };
2649
- var FeatureCard = ({ feature, mobile }) => /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
2748
+ var FeatureCard = ({ feature, mobile }) => /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
2650
2749
  "div",
2651
2750
  {
2652
2751
  className: mobile ? "navbar__drawer-feature" : "navbar__dropdown-feature",
2653
2752
  style: feature.backgroundImageUrl ? { backgroundImage: `url(${feature.backgroundImageUrl})` } : void 0,
2654
2753
  children: [
2655
- feature.backgroundImageUrl && /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
2754
+ feature.backgroundImageUrl && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
2656
2755
  "img",
2657
2756
  {
2658
2757
  src: feature.backgroundImageUrl,
@@ -2661,20 +2760,20 @@ var FeatureCard = ({ feature, mobile }) => /* @__PURE__ */ (0, import_jsx_runtim
2661
2760
  "aria-hidden": "true"
2662
2761
  }
2663
2762
  ),
2664
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: mobile ? "navbar__drawer-feature-overlay" : "navbar__dropdown-feature-overlay", "aria-hidden": "true" }),
2665
- /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { className: mobile ? "navbar__drawer-feature-content" : "navbar__dropdown-feature-content", children: [
2666
- /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { children: [
2667
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("p", { className: mobile ? "navbar__drawer-feature-title" : "navbar__dropdown-feature-title", children: feature.title }),
2668
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("p", { className: mobile ? "navbar__drawer-feature-desc" : "navbar__dropdown-feature-desc", children: feature.description })
2763
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: mobile ? "navbar__drawer-feature-overlay" : "navbar__dropdown-feature-overlay", "aria-hidden": "true" }),
2764
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: mobile ? "navbar__drawer-feature-content" : "navbar__dropdown-feature-content", children: [
2765
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { children: [
2766
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("p", { className: mobile ? "navbar__drawer-feature-title" : "navbar__dropdown-feature-title", children: feature.title }),
2767
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("p", { className: mobile ? "navbar__drawer-feature-desc" : "navbar__dropdown-feature-desc", children: feature.description })
2669
2768
  ] }),
2670
- /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
2769
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
2671
2770
  "a",
2672
2771
  {
2673
2772
  href: feature.ctaHref,
2674
2773
  className: mobile ? "navbar__drawer-feature-cta" : "navbar__dropdown-feature-cta",
2675
2774
  children: [
2676
2775
  feature.ctaLabel,
2677
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(ArrowRightIcon, {})
2776
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(ArrowRightIcon, {})
2678
2777
  ]
2679
2778
  }
2680
2779
  )
@@ -2684,8 +2783,8 @@ var FeatureCard = ({ feature, mobile }) => /* @__PURE__ */ (0, import_jsx_runtim
2684
2783
  );
2685
2784
  var DrawerAccordion = ({ item, isOpen, onToggle }) => {
2686
2785
  const { dropdown } = item;
2687
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { className: "navbar__drawer-item", children: [
2688
- /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
2786
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: "navbar__drawer-item", children: [
2787
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
2689
2788
  "button",
2690
2789
  {
2691
2790
  className: `navbar__drawer-trigger ${isOpen ? "navbar__drawer-trigger--open" : ""}`,
@@ -2693,11 +2792,11 @@ var DrawerAccordion = ({ item, isOpen, onToggle }) => {
2693
2792
  "aria-expanded": isOpen,
2694
2793
  children: [
2695
2794
  item.label,
2696
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(ChevronDownIcon3, { className: "navbar__drawer-trigger__chevron" })
2795
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(ChevronDownIcon3, { className: "navbar__drawer-trigger__chevron" })
2697
2796
  ]
2698
2797
  }
2699
2798
  ),
2700
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_framer_motion2.AnimatePresence, { initial: false, children: isOpen && dropdown && /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
2799
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_framer_motion2.AnimatePresence, { initial: false, children: isOpen && dropdown && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
2701
2800
  import_framer_motion2.motion.div,
2702
2801
  {
2703
2802
  className: "navbar__drawer-panel",
@@ -2706,10 +2805,10 @@ var DrawerAccordion = ({ item, isOpen, onToggle }) => {
2706
2805
  animate: "visible",
2707
2806
  exit: "hidden",
2708
2807
  transition: { duration: 0.22, ease: EASE_OUT_EXPO },
2709
- children: /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { className: "navbar__drawer-panel-inner", children: [
2710
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: "navbar__drawer-panel-cols", children: dropdown.columns.map((col, colIdx) => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: "navbar__drawer-panel-col", children: col.sections.map((section) => /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { className: "navbar__drawer-col-section", children: [
2711
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("p", { className: "navbar__drawer-col-title", children: section.title }),
2712
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: "navbar__drawer-col-links", children: section.items.map((link) => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
2808
+ children: /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: "navbar__drawer-panel-inner", children: [
2809
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: "navbar__drawer-panel-cols", children: dropdown.columns.map((col, colIdx) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: "navbar__drawer-panel-col", children: col.sections.map((section) => /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: "navbar__drawer-col-section", children: [
2810
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("p", { className: "navbar__drawer-col-title", children: section.title }),
2811
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: "navbar__drawer-col-links", children: section.items.map((link) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
2713
2812
  "a",
2714
2813
  {
2715
2814
  href: link.href,
@@ -2721,7 +2820,7 @@ var DrawerAccordion = ({ item, isOpen, onToggle }) => {
2721
2820
  link.href
2722
2821
  )) })
2723
2822
  ] }, section.title)) }, colIdx)) }),
2724
- dropdown.feature && /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(FeatureCard, { feature: dropdown.feature, mobile: true })
2823
+ dropdown.feature && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(FeatureCard, { feature: dropdown.feature, mobile: true })
2725
2824
  ] })
2726
2825
  }
2727
2826
  ) })
@@ -2745,24 +2844,24 @@ var Navbar = ({
2745
2844
  className,
2746
2845
  ...props
2747
2846
  }) => {
2748
- const [openDropdown, setOpenDropdown] = (0, import_react13.useState)(null);
2749
- const [mobileOpen, setMobileOpen] = (0, import_react13.useState)(false);
2750
- const [mobileExpanded, setMobileExpanded] = (0, import_react13.useState)(null);
2751
- const [scrolled, setScrolled] = (0, import_react13.useState)(false);
2752
- const [langDropdownOpen, setLangDropdownOpen] = (0, import_react13.useState)(false);
2753
- const [mobileLangOpen, setMobileLangOpen] = (0, import_react13.useState)(false);
2754
- const hoverTimeoutRef = (0, import_react13.useRef)(null);
2755
- const langHoverTimeoutRef = (0, import_react13.useRef)(null);
2756
- const pillAreaRef = (0, import_react13.useRef)(null);
2757
- const langBtnRef = (0, import_react13.useRef)(null);
2847
+ const [openDropdown, setOpenDropdown] = (0, import_react14.useState)(null);
2848
+ const [mobileOpen, setMobileOpen] = (0, import_react14.useState)(false);
2849
+ const [mobileExpanded, setMobileExpanded] = (0, import_react14.useState)(null);
2850
+ const [scrolled, setScrolled] = (0, import_react14.useState)(false);
2851
+ const [langDropdownOpen, setLangDropdownOpen] = (0, import_react14.useState)(false);
2852
+ const [mobileLangOpen, setMobileLangOpen] = (0, import_react14.useState)(false);
2853
+ const hoverTimeoutRef = (0, import_react14.useRef)(null);
2854
+ const langHoverTimeoutRef = (0, import_react14.useRef)(null);
2855
+ const pillAreaRef = (0, import_react14.useRef)(null);
2856
+ const langBtnRef = (0, import_react14.useRef)(null);
2758
2857
  const hasLangDropdown = Boolean(languageItems && languageItems.length > 0);
2759
2858
  const resolvedLogo = theme === "light" ? logoSrcDark ?? logoSrc : logoSrc;
2760
- (0, import_react13.useEffect)(() => {
2859
+ (0, import_react14.useEffect)(() => {
2761
2860
  const onScroll = () => setScrolled(window.scrollY > 0);
2762
2861
  window.addEventListener("scroll", onScroll, { passive: true });
2763
2862
  return () => window.removeEventListener("scroll", onScroll);
2764
2863
  }, []);
2765
- (0, import_react13.useEffect)(() => {
2864
+ (0, import_react14.useEffect)(() => {
2766
2865
  const onKey = (e) => {
2767
2866
  if (e.key === "Escape") {
2768
2867
  setOpenDropdown(null);
@@ -2773,16 +2872,16 @@ var Navbar = ({
2773
2872
  document.addEventListener("keydown", onKey);
2774
2873
  return () => document.removeEventListener("keydown", onKey);
2775
2874
  }, []);
2776
- (0, import_react13.useEffect)(() => {
2875
+ (0, import_react14.useEffect)(() => {
2777
2876
  if (!mobileOpen) setMobileLangOpen(false);
2778
2877
  }, [mobileOpen]);
2779
- (0, import_react13.useEffect)(() => {
2878
+ (0, import_react14.useEffect)(() => {
2780
2879
  document.body.style.overflow = mobileOpen ? "hidden" : "";
2781
2880
  return () => {
2782
2881
  document.body.style.overflow = "";
2783
2882
  };
2784
2883
  }, [mobileOpen]);
2785
- (0, import_react13.useEffect)(() => {
2884
+ (0, import_react14.useEffect)(() => {
2786
2885
  if (!openDropdown) return;
2787
2886
  const onPointerDown = (e) => {
2788
2887
  if (pillAreaRef.current && !pillAreaRef.current.contains(e.target)) {
@@ -2792,54 +2891,54 @@ var Navbar = ({
2792
2891
  document.addEventListener("pointerdown", onPointerDown);
2793
2892
  return () => document.removeEventListener("pointerdown", onPointerDown);
2794
2893
  }, [openDropdown]);
2795
- const clearHoverTimeout = (0, import_react13.useCallback)(() => {
2894
+ const clearHoverTimeout = (0, import_react14.useCallback)(() => {
2796
2895
  if (hoverTimeoutRef.current) {
2797
2896
  clearTimeout(hoverTimeoutRef.current);
2798
2897
  hoverTimeoutRef.current = null;
2799
2898
  }
2800
2899
  }, []);
2801
- const clearLangHoverTimeout = (0, import_react13.useCallback)(() => {
2900
+ const clearLangHoverTimeout = (0, import_react14.useCallback)(() => {
2802
2901
  if (langHoverTimeoutRef.current) {
2803
2902
  clearTimeout(langHoverTimeoutRef.current);
2804
2903
  langHoverTimeoutRef.current = null;
2805
2904
  }
2806
2905
  }, []);
2807
- const handleLangEnter = (0, import_react13.useCallback)(() => {
2906
+ const handleLangEnter = (0, import_react14.useCallback)(() => {
2808
2907
  clearLangHoverTimeout();
2809
2908
  setLangDropdownOpen(true);
2810
2909
  }, [clearLangHoverTimeout]);
2811
- const handleLangLeave = (0, import_react13.useCallback)(() => {
2910
+ const handleLangLeave = (0, import_react14.useCallback)(() => {
2812
2911
  clearLangHoverTimeout();
2813
2912
  langHoverTimeoutRef.current = setTimeout(() => setLangDropdownOpen(false), 150);
2814
2913
  }, [clearLangHoverTimeout]);
2815
- const handleLangSelect = (0, import_react13.useCallback)((code) => {
2914
+ const handleLangSelect = (0, import_react14.useCallback)((code) => {
2816
2915
  setLangDropdownOpen(false);
2817
2916
  setMobileLangOpen(false);
2818
2917
  onLanguageSelect?.(code);
2819
2918
  }, [onLanguageSelect]);
2820
- const handleNavEnter = (0, import_react13.useCallback)((label) => {
2919
+ const handleNavEnter = (0, import_react14.useCallback)((label) => {
2821
2920
  clearHoverTimeout();
2822
2921
  setOpenDropdown(label);
2823
2922
  }, [clearHoverTimeout]);
2824
- const handleNavLeave = (0, import_react13.useCallback)(() => {
2923
+ const handleNavLeave = (0, import_react14.useCallback)(() => {
2825
2924
  clearHoverTimeout();
2826
2925
  hoverTimeoutRef.current = setTimeout(() => setOpenDropdown(null), 120);
2827
2926
  }, [clearHoverTimeout]);
2828
2927
  const activeDropdownItem = navItems.find((item) => item.label === openDropdown);
2829
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
2928
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
2830
2929
  "nav",
2831
2930
  {
2832
2931
  className: ["navbar", `navbar--${theme}`, scrolled && "navbar--scrolled", mobileOpen && "navbar--menu-open", className].filter(Boolean).join(" "),
2833
2932
  ...props,
2834
2933
  children: [
2835
- /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { className: "navbar__bar", children: [
2836
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("a", { href: logoHref, className: "navbar__logo", "aria-label": "Home", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("img", { src: resolvedLogo, alt: "Logo" }) }),
2837
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: "navbar__nav-center", ref: pillAreaRef, children: /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { className: "navbar__pill", children: [
2838
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("a", { href: logoHref, className: "navbar__pill-logo", "aria-label": "Home", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("img", { src: logoSrcDark ?? logoSrc, alt: "Logo" }) }),
2839
- /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { className: "navbar__nav-group", children: [
2934
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: "navbar__bar", children: [
2935
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("a", { href: logoHref, className: "navbar__logo", "aria-label": "Home", children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("img", { src: resolvedLogo, alt: "Logo" }) }),
2936
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: "navbar__nav-center", ref: pillAreaRef, children: /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: "navbar__pill", children: [
2937
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("a", { href: logoHref, className: "navbar__pill-logo", "aria-label": "Home", children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("img", { src: logoSrcDark ?? logoSrc, alt: "Logo" }) }),
2938
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: "navbar__nav-group", children: [
2840
2939
  navItems.map((item) => {
2841
2940
  if (item.external) {
2842
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
2941
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
2843
2942
  "a",
2844
2943
  {
2845
2944
  href: item.href,
@@ -2848,14 +2947,14 @@ var Navbar = ({
2848
2947
  rel: "noopener noreferrer",
2849
2948
  children: [
2850
2949
  item.label,
2851
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(ArrowUpRightIcon, {})
2950
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(ArrowUpRightIcon, {})
2852
2951
  ]
2853
2952
  },
2854
2953
  item.label
2855
2954
  );
2856
2955
  }
2857
2956
  if (item.dropdown) {
2858
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
2957
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
2859
2958
  "button",
2860
2959
  {
2861
2960
  className: [
@@ -2868,21 +2967,21 @@ var Navbar = ({
2868
2967
  "aria-haspopup": "true",
2869
2968
  children: [
2870
2969
  item.label,
2871
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(ChevronDownIcon3, { className: "navbar__nav-item__chevron" })
2970
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(ChevronDownIcon3, { className: "navbar__nav-item__chevron" })
2872
2971
  ]
2873
2972
  },
2874
2973
  item.label
2875
2974
  );
2876
2975
  }
2877
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("a", { href: item.href, className: "navbar__nav-item", children: item.label }, item.label);
2976
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("a", { href: item.href, className: "navbar__nav-item", children: item.label }, item.label);
2878
2977
  }),
2879
- languageLabel && /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
2978
+ languageLabel && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
2880
2979
  "div",
2881
2980
  {
2882
2981
  className: "navbar__lang-wrapper",
2883
2982
  onMouseEnter: hasLangDropdown ? handleLangEnter : void 0,
2884
2983
  onMouseLeave: hasLangDropdown ? handleLangLeave : void 0,
2885
- children: /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
2984
+ children: /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
2886
2985
  "button",
2887
2986
  {
2888
2987
  ref: langBtnRef,
@@ -2891,7 +2990,7 @@ var Navbar = ({
2891
2990
  "aria-haspopup": hasLangDropdown ? "true" : void 0,
2892
2991
  "aria-expanded": hasLangDropdown ? langDropdownOpen : void 0,
2893
2992
  children: [
2894
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(GlobeIcon, { className: "navbar__lang-globe" }),
2993
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(GlobeIcon, { className: "navbar__lang-globe" }),
2895
2994
  languageLabel
2896
2995
  ]
2897
2996
  }
@@ -2899,12 +2998,12 @@ var Navbar = ({
2899
2998
  }
2900
2999
  )
2901
3000
  ] }),
2902
- /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { className: "navbar__pill-actions", children: [
2903
- loginHref && /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("a", { href: loginHref, children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Button, { colorScheme: "black", variant: "secondary", label: loginLabel }) }),
2904
- ctaHref && /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("a", { href: ctaHref, children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Button, { colorScheme: "coral", variant: "primary", label: ctaLabel }) })
3001
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: "navbar__pill-actions", children: [
3002
+ loginHref && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("a", { href: loginHref, children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Button, { colorScheme: "black", variant: "secondary", label: loginLabel }) }),
3003
+ ctaHref && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("a", { href: ctaHref, children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Button, { colorScheme: "coral", variant: "primary", label: ctaLabel }) })
2905
3004
  ] })
2906
3005
  ] }) }),
2907
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_framer_motion2.AnimatePresence, { children: openDropdown && activeDropdownItem?.dropdown && /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
3006
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_framer_motion2.AnimatePresence, { children: openDropdown && activeDropdownItem?.dropdown && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
2908
3007
  DropdownPanel,
2909
3008
  {
2910
3009
  item: activeDropdownItem,
@@ -2913,7 +3012,7 @@ var Navbar = ({
2913
3012
  },
2914
3013
  "dropdown"
2915
3014
  ) }),
2916
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_framer_motion2.AnimatePresence, { children: hasLangDropdown && langDropdownOpen && /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
3015
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_framer_motion2.AnimatePresence, { children: hasLangDropdown && langDropdownOpen && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
2917
3016
  import_framer_motion2.motion.div,
2918
3017
  {
2919
3018
  className: "navbar__lang-dropdown",
@@ -2924,12 +3023,12 @@ var Navbar = ({
2924
3023
  transition: { duration: 0.18, ease: EASE_OUT_EXPO },
2925
3024
  onMouseEnter: clearLangHoverTimeout,
2926
3025
  onMouseLeave: handleLangLeave,
2927
- children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
3026
+ children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
2928
3027
  "div",
2929
3028
  {
2930
3029
  className: "navbar__lang-dropdown-grid",
2931
3030
  style: { "--lang-rows": Math.ceil(languageItems.length / 3) },
2932
- children: languageItems.map((lang) => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
3031
+ children: languageItems.map((lang) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
2933
3032
  "button",
2934
3033
  {
2935
3034
  className: [
@@ -2945,8 +3044,8 @@ var Navbar = ({
2945
3044
  )
2946
3045
  }
2947
3046
  ) }),
2948
- /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { className: "navbar__actions", children: [
2949
- loginHref && /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("a", { href: loginHref, className: "navbar__actions-login", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
3047
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: "navbar__actions", children: [
3048
+ loginHref && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("a", { href: loginHref, className: "navbar__actions-login", children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
2950
3049
  Button,
2951
3050
  {
2952
3051
  colorScheme: theme === "dark" ? "white" : "black",
@@ -2954,10 +3053,10 @@ var Navbar = ({
2954
3053
  label: loginLabel
2955
3054
  }
2956
3055
  ) }),
2957
- ctaHref && /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("a", { href: ctaHref, children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Button, { colorScheme: "coral", variant: "primary", label: ctaLabel }) })
3056
+ ctaHref && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("a", { href: ctaHref, children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Button, { colorScheme: "coral", variant: "primary", label: ctaLabel }) })
2958
3057
  ] }),
2959
- /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { className: "navbar__mobile-actions", children: [
2960
- loginHref && /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("a", { href: loginHref, children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
3058
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: "navbar__mobile-actions", children: [
3059
+ loginHref && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("a", { href: loginHref, children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
2961
3060
  Button,
2962
3061
  {
2963
3062
  colorScheme: scrolled || theme === "light" ? "black" : "white",
@@ -2965,18 +3064,18 @@ var Navbar = ({
2965
3064
  label: loginLabel
2966
3065
  }
2967
3066
  ) }),
2968
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
3067
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
2969
3068
  "button",
2970
3069
  {
2971
3070
  className: "navbar__mobile-trigger",
2972
3071
  onClick: () => setMobileOpen((o) => !o),
2973
3072
  "aria-label": mobileOpen ? "Close navigation menu" : "Open navigation menu",
2974
- children: mobileOpen ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(XMarkIcon2, {}) : /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(BarsIcon, {})
3073
+ children: mobileOpen ? /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(XMarkIcon2, {}) : /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(BarsIcon, {})
2975
3074
  }
2976
3075
  )
2977
3076
  ] })
2978
3077
  ] }),
2979
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: "navbar__drawer-clip", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_framer_motion2.AnimatePresence, { children: mobileOpen && /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
3078
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: "navbar__drawer-clip", children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_framer_motion2.AnimatePresence, { children: mobileOpen && /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
2980
3079
  import_framer_motion2.motion.div,
2981
3080
  {
2982
3081
  className: "navbar__drawer",
@@ -2989,10 +3088,10 @@ var Navbar = ({
2989
3088
  role: "dialog",
2990
3089
  "aria-label": "Navigation menu",
2991
3090
  children: [
2992
- /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("nav", { className: "navbar__drawer-nav", children: [
3091
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("nav", { className: "navbar__drawer-nav", children: [
2993
3092
  navItems.map((item) => {
2994
3093
  if (item.dropdown) {
2995
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
3094
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
2996
3095
  DrawerAccordion,
2997
3096
  {
2998
3097
  item,
@@ -3004,7 +3103,7 @@ var Navbar = ({
3004
3103
  item.label
3005
3104
  );
3006
3105
  }
3007
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
3106
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
3008
3107
  "a",
3009
3108
  {
3010
3109
  href: item.href,
@@ -3013,30 +3112,30 @@ var Navbar = ({
3013
3112
  rel: item.external ? "noopener noreferrer" : void 0,
3014
3113
  children: [
3015
3114
  item.label,
3016
- item.external && /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(ArrowUpRightIcon, {})
3115
+ item.external && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(ArrowUpRightIcon, {})
3017
3116
  ]
3018
3117
  },
3019
3118
  item.label
3020
3119
  );
3021
3120
  }),
3022
- languageLabel && !hasLangDropdown && /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("button", { className: "navbar__drawer-lang", onClick: onLanguageClick, children: [
3023
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(GlobeIcon, { className: "navbar__lang-globe" }),
3121
+ languageLabel && !hasLangDropdown && /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("button", { className: "navbar__drawer-lang", onClick: onLanguageClick, children: [
3122
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(GlobeIcon, { className: "navbar__lang-globe" }),
3024
3123
  languageLabel
3025
3124
  ] }),
3026
- languageLabel && hasLangDropdown && /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
3125
+ languageLabel && hasLangDropdown && /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
3027
3126
  "button",
3028
3127
  {
3029
3128
  className: "navbar__drawer-lang",
3030
3129
  onClick: () => setMobileLangOpen(true),
3031
3130
  children: [
3032
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(GlobeIcon, { className: "navbar__lang-globe" }),
3131
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(GlobeIcon, { className: "navbar__lang-globe" }),
3033
3132
  languageLabel
3034
3133
  ]
3035
3134
  }
3036
3135
  )
3037
3136
  ] }),
3038
- !mobileLangOpen && /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { className: "navbar__drawer-footer", children: [
3039
- loginHref && /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("a", { href: loginHref, style: { display: "block" }, children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
3137
+ !mobileLangOpen && /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: "navbar__drawer-footer", children: [
3138
+ loginHref && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("a", { href: loginHref, style: { display: "block" }, children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
3040
3139
  Button,
3041
3140
  {
3042
3141
  colorScheme: "black",
@@ -3045,7 +3144,7 @@ var Navbar = ({
3045
3144
  fullWidth: true
3046
3145
  }
3047
3146
  ) }),
3048
- ctaHref && /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("a", { href: ctaHref, style: { display: "block" }, children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
3147
+ ctaHref && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("a", { href: ctaHref, style: { display: "block" }, children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
3049
3148
  Button,
3050
3149
  {
3051
3150
  colorScheme: "coral",
@@ -3055,7 +3154,7 @@ var Navbar = ({
3055
3154
  }
3056
3155
  ) })
3057
3156
  ] }),
3058
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_framer_motion2.AnimatePresence, { children: hasLangDropdown && mobileLangOpen && /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
3157
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_framer_motion2.AnimatePresence, { children: hasLangDropdown && mobileLangOpen && /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
3059
3158
  import_framer_motion2.motion.div,
3060
3159
  {
3061
3160
  className: "navbar__drawer-lang-panel",
@@ -3064,16 +3163,16 @@ var Navbar = ({
3064
3163
  exit: { y: "100%" },
3065
3164
  transition: { duration: 0.25, ease: EASE_OUT_EXPO },
3066
3165
  children: [
3067
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
3166
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
3068
3167
  "button",
3069
3168
  {
3070
3169
  className: "navbar__drawer-lang-back",
3071
3170
  onClick: () => setMobileLangOpen(false),
3072
3171
  "aria-label": "Back to menu",
3073
- children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(ChevronLeftIcon, {})
3172
+ children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(ChevronLeftIcon, {})
3074
3173
  }
3075
3174
  ),
3076
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: "navbar__drawer-lang-grid", children: languageItems.map((lang) => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
3175
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: "navbar__drawer-lang-grid", children: languageItems.map((lang) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
3077
3176
  "button",
3078
3177
  {
3079
3178
  className: [
@@ -3097,9 +3196,9 @@ var Navbar = ({
3097
3196
  };
3098
3197
 
3099
3198
  // templates/DayNightTransition/DayNightTransition.tsx
3100
- var import_react14 = require("react");
3199
+ var import_react15 = require("react");
3101
3200
  var import_framer_motion3 = require("framer-motion");
3102
- var import_jsx_runtime25 = require("react/jsx-runtime");
3201
+ var import_jsx_runtime26 = require("react/jsx-runtime");
3103
3202
  var SPRING2 = { stiffness: 80, damping: 30, restDelta: 1e-3 };
3104
3203
  var FADE_START = 0.35;
3105
3204
  var FADE_END = 0.65;
@@ -3110,16 +3209,16 @@ var TEXT_CHANNEL_NIGHT = 255;
3110
3209
  var DayNightTransition = ({
3111
3210
  dayImageUrl,
3112
3211
  nightImageUrl,
3113
- dayHeadline = "Trade all day",
3114
- nightHeadline = "Trade all night",
3115
- dayDescription,
3116
- nightDescription,
3212
+ dayHeadline = "Medium length section title goes here",
3213
+ nightHeadline = "Medium length section title goes here",
3214
+ dayDescription = "Description goes here. Description goes here. Description goes here.",
3215
+ nightDescription = "Description goes here. Description goes here. Description goes here.",
3117
3216
  ctaLabel = "Get started",
3118
3217
  ctaHref = "#",
3119
3218
  className,
3120
3219
  ...props
3121
3220
  }) => {
3122
- const wrapperRef = (0, import_react14.useRef)(null);
3221
+ const wrapperRef = (0, import_react15.useRef)(null);
3123
3222
  const { scrollYProgress } = (0, import_framer_motion3.useScroll)({
3124
3223
  target: wrapperRef,
3125
3224
  offset: ["start end", "end start"]
@@ -3131,14 +3230,14 @@ var DayNightTransition = ({
3131
3230
  const dayOpacity = (0, import_framer_motion3.useTransform)(smooth, [WORD_START, WORD_END], [1, 0]);
3132
3231
  const nightOpacity2 = (0, import_framer_motion3.useTransform)(smooth, [WORD_START, WORD_END], [0, 1]);
3133
3232
  const hasDescription = Boolean(dayDescription || nightDescription);
3134
- return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
3233
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
3135
3234
  "div",
3136
3235
  {
3137
3236
  ref: wrapperRef,
3138
3237
  className: ["dnt", className].filter(Boolean).join(" "),
3139
3238
  ...props,
3140
- children: /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: "dnt__sticky", children: [
3141
- /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
3239
+ children: /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: "dnt__sticky", children: [
3240
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
3142
3241
  "img",
3143
3242
  {
3144
3243
  className: "dnt__bg dnt__bg--day",
@@ -3148,7 +3247,7 @@ var DayNightTransition = ({
3148
3247
  draggable: false
3149
3248
  }
3150
3249
  ),
3151
- /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
3250
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
3152
3251
  import_framer_motion3.motion.img,
3153
3252
  {
3154
3253
  className: "dnt__bg dnt__bg--night",
@@ -3159,14 +3258,14 @@ var DayNightTransition = ({
3159
3258
  style: { opacity: nightOpacity }
3160
3259
  }
3161
3260
  ),
3162
- /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: "dnt__content", children: /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
3261
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("div", { className: "dnt__content", children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("div", { className: "dnt__inner", children: /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
3163
3262
  import_framer_motion3.motion.div,
3164
3263
  {
3165
3264
  className: "dnt__text-wrap",
3166
3265
  style: { color: textColor },
3167
3266
  children: [
3168
- /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: "dnt__crossfade-wrap", children: [
3169
- /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
3267
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: "dnt__crossfade-wrap", children: [
3268
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
3170
3269
  import_framer_motion3.motion.h2,
3171
3270
  {
3172
3271
  className: "dnt__headline",
@@ -3174,7 +3273,7 @@ var DayNightTransition = ({
3174
3273
  children: dayHeadline
3175
3274
  }
3176
3275
  ),
3177
- /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
3276
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
3178
3277
  import_framer_motion3.motion.h2,
3179
3278
  {
3180
3279
  className: "dnt__headline",
@@ -3184,8 +3283,8 @@ var DayNightTransition = ({
3184
3283
  }
3185
3284
  )
3186
3285
  ] }),
3187
- hasDescription && /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: "dnt__crossfade-wrap", children: [
3188
- /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
3286
+ hasDescription && /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: "dnt__crossfade-wrap", children: [
3287
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
3189
3288
  import_framer_motion3.motion.p,
3190
3289
  {
3191
3290
  className: "dnt__description",
@@ -3193,7 +3292,7 @@ var DayNightTransition = ({
3193
3292
  children: dayDescription ?? ""
3194
3293
  }
3195
3294
  ),
3196
- /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
3295
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
3197
3296
  import_framer_motion3.motion.p,
3198
3297
  {
3199
3298
  className: "dnt__description",
@@ -3203,19 +3302,19 @@ var DayNightTransition = ({
3203
3302
  }
3204
3303
  )
3205
3304
  ] }),
3206
- /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("a", { href: ctaHref, className: "dnt__btn", children: ctaLabel })
3305
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("a", { href: ctaHref, className: "dnt__btn", children: ctaLabel })
3207
3306
  ]
3208
3307
  }
3209
- ) })
3308
+ ) }) })
3210
3309
  ] })
3211
3310
  }
3212
3311
  );
3213
3312
  };
3214
3313
 
3215
3314
  // templates/LogoMarquee/LogoMarquee.tsx
3216
- var import_react15 = require("react");
3315
+ var import_react16 = require("react");
3217
3316
  var import_framer_motion4 = require("framer-motion");
3218
- var import_jsx_runtime26 = require("react/jsx-runtime");
3317
+ var import_jsx_runtime27 = require("react/jsx-runtime");
3219
3318
  function modWrap(min, max, v) {
3220
3319
  const range = max - min;
3221
3320
  return ((v - min) % range + range) % range + min;
@@ -3272,8 +3371,8 @@ var LogoMarquee = ({
3272
3371
  const scrollVelocity = (0, import_framer_motion4.useVelocity)(scrollY);
3273
3372
  const col1Y = (0, import_framer_motion4.useMotionValue)(0);
3274
3373
  const col2Y = (0, import_framer_motion4.useMotionValue)(0);
3275
- const col1Ref = (0, import_react15.useRef)(null);
3276
- const col2Ref = (0, import_react15.useRef)(null);
3374
+ const col1Ref = (0, import_react16.useRef)(null);
3375
+ const col2Ref = (0, import_react16.useRef)(null);
3277
3376
  (0, import_framer_motion4.useAnimationFrame)((_, delta) => {
3278
3377
  const raw = scrollVelocity.get();
3279
3378
  if (Math.abs(raw) < DEADZONE) return;
@@ -3286,21 +3385,21 @@ var LogoMarquee = ({
3286
3385
  });
3287
3386
  const track1 = [...col1Logos, ...col1Logos];
3288
3387
  const track2 = [...col2Logos, ...col2Logos];
3289
- return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
3388
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
3290
3389
  "section",
3291
3390
  {
3292
3391
  className: ["lm", className].filter(Boolean).join(" "),
3293
3392
  ...props,
3294
- children: /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: "lm__inner", children: [
3295
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("div", { className: "lm__media", children: /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: "lm__carousel", children: [
3296
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("div", { className: "lm__fade lm__fade--top", "aria-hidden": "true" }),
3297
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
3393
+ children: /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { className: "lm__inner", children: [
3394
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { className: "lm__media", children: /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { className: "lm__carousel", children: [
3395
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { className: "lm__fade lm__fade--top", "aria-hidden": "true" }),
3396
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
3298
3397
  import_framer_motion4.motion.div,
3299
3398
  {
3300
3399
  ref: col1Ref,
3301
3400
  className: "lm__col",
3302
3401
  style: { y: col1Y },
3303
- children: track1.map((logo, i) => /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("div", { className: "lm__card", children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("div", { className: "lm__card-img-wrap", children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
3402
+ children: track1.map((logo, i) => /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { className: "lm__card", children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { className: "lm__card-img-wrap", children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
3304
3403
  "img",
3305
3404
  {
3306
3405
  src: logo.url,
@@ -3311,13 +3410,13 @@ var LogoMarquee = ({
3311
3410
  ) }) }, `c1-${i}`))
3312
3411
  }
3313
3412
  ),
3314
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
3413
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
3315
3414
  import_framer_motion4.motion.div,
3316
3415
  {
3317
3416
  ref: col2Ref,
3318
3417
  className: "lm__col",
3319
3418
  style: { y: col2Y },
3320
- children: track2.map((logo, i) => /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("div", { className: "lm__card", children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("div", { className: "lm__card-img-wrap", children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
3419
+ children: track2.map((logo, i) => /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { className: "lm__card", children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { className: "lm__card-img-wrap", children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
3321
3420
  "img",
3322
3421
  {
3323
3422
  src: logo.url,
@@ -3328,17 +3427,17 @@ var LogoMarquee = ({
3328
3427
  ) }) }, `c2-${i}`))
3329
3428
  }
3330
3429
  ),
3331
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("div", { className: "lm__fade lm__fade--bottom", "aria-hidden": "true" })
3430
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { className: "lm__fade lm__fade--bottom", "aria-hidden": "true" })
3332
3431
  ] }) }),
3333
- /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: "lm__content", children: [
3334
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("h2", { className: "lm__headline", children: headline }),
3335
- /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: "lm__text-group", children: [
3336
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("p", { className: "lm__body", children: body }),
3337
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("p", { className: "lm__disclaimer", children: disclaimer })
3432
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { className: "lm__content", children: [
3433
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("h2", { className: "lm__headline", children: headline }),
3434
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { className: "lm__text-group", children: [
3435
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("p", { className: "lm__body", children: body }),
3436
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("p", { className: "lm__disclaimer", children: disclaimer })
3338
3437
  ] }),
3339
- /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("a", { href: ctaHref, className: "lm__link", children: [
3438
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("a", { href: ctaHref, className: "lm__link", children: [
3340
3439
  ctaLabel,
3341
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { className: "lm__link-icon", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime26.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_runtime26.jsx)("path", { d: "M3 8H13M13 8L9 4M13 8L9 12", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }) }) })
3440
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("span", { className: "lm__link-icon", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime27.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_runtime27.jsx)("path", { d: "M3 8H13M13 8L9 4M13 8L9 12", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }) }) })
3342
3441
  ] })
3343
3442
  ] })
3344
3443
  ] })
@@ -3389,7 +3488,7 @@ var appstore_linux_dark_default = "./appstore-linux-dark-RVH7CBM4.svg";
3389
3488
  var appstore_browser_dark_default = "./appstore-browser-dark-2E6TK6JH.svg";
3390
3489
 
3391
3490
  // primitives/DownloadBadge/DownloadBadge.tsx
3392
- var import_jsx_runtime27 = require("react/jsx-runtime");
3491
+ var import_jsx_runtime28 = require("react/jsx-runtime");
3393
3492
  var BADGE_ASSETS = {
3394
3493
  light: {
3395
3494
  googleplay: { src: appstore_googleplay_light_default, alt: "Get it on Google Play" },
@@ -3418,7 +3517,7 @@ var DownloadBadge = ({
3418
3517
  ...props
3419
3518
  }) => {
3420
3519
  const { src, alt } = BADGE_ASSETS[colorScheme][platform];
3421
- return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
3520
+ return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
3422
3521
  "a",
3423
3522
  {
3424
3523
  className: [
@@ -3431,13 +3530,13 @@ var DownloadBadge = ({
3431
3530
  target: "_blank",
3432
3531
  rel: "noopener noreferrer",
3433
3532
  ...props,
3434
- children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("img", { className: "download-badge__img", src, alt })
3533
+ children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("img", { className: "download-badge__img", src, alt })
3435
3534
  }
3436
3535
  );
3437
3536
  };
3438
3537
 
3439
3538
  // templates/Steps/Steps.tsx
3440
- var import_jsx_runtime28 = require("react/jsx-runtime");
3539
+ var import_jsx_runtime29 = require("react/jsx-runtime");
3441
3540
  var Steps = ({
3442
3541
  title,
3443
3542
  steps,
@@ -3449,8 +3548,8 @@ var Steps = ({
3449
3548
  "steps__container",
3450
3549
  imagePosition === "right" ? "steps__container--image-right" : ""
3451
3550
  ].filter(Boolean).join(" ");
3452
- return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("section", { className: "steps", children: /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className: containerClass, children: [
3453
- image && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { className: "steps__image-wrapper", children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
3551
+ return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("section", { className: "steps", children: /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: containerClass, children: [
3552
+ image && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("div", { className: "steps__image-wrapper", children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
3454
3553
  "img",
3455
3554
  {
3456
3555
  src: image,
@@ -3458,13 +3557,13 @@ var Steps = ({
3458
3557
  className: "steps__image"
3459
3558
  }
3460
3559
  ) }),
3461
- /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className: "steps__content", children: [
3462
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("h2", { className: "steps__title", children: title }),
3463
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("ol", { className: "steps__list", children: steps.map((step, index) => /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("li", { className: "steps__item", children: /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className: "steps__item-inner", children: [
3464
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("span", { className: "steps__number", "aria-hidden": "true", children: index + 1 }),
3465
- /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className: "steps__item-body", children: [
3466
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("h3", { className: "steps__item-title", children: step.title }),
3467
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("p", { className: "steps__item-description", children: step.description })
3560
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: "steps__content", children: [
3561
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("h2", { className: "steps__title", children: title }),
3562
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("ol", { className: "steps__list", children: steps.map((step, index) => /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("li", { className: "steps__item", children: /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: "steps__item-inner", children: [
3563
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("span", { className: "steps__number", "aria-hidden": "true", children: index + 1 }),
3564
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: "steps__item-body", children: [
3565
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("h3", { className: "steps__item-title", children: step.title }),
3566
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("p", { className: "steps__item-description", children: step.description })
3468
3567
  ] })
3469
3568
  ] }) }, index)) })
3470
3569
  ] })
@@ -3472,7 +3571,7 @@ var Steps = ({
3472
3571
  };
3473
3572
 
3474
3573
  // templates/DownloadBanner/DownloadBanner.tsx
3475
- var import_jsx_runtime29 = require("react/jsx-runtime");
3574
+ var import_jsx_runtime30 = require("react/jsx-runtime");
3476
3575
  var DownloadBanner = ({
3477
3576
  style = "light-2",
3478
3577
  qrCodeImage,
@@ -3497,9 +3596,9 @@ var DownloadBanner = ({
3497
3596
  disclaimer
3498
3597
  }) => {
3499
3598
  const colorScheme = style === "dark" ? "dark" : "light";
3500
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("section", { className: `db-section db-section--${style}`, children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("div", { className: "db-container", children: /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: "db-card", children: [
3501
- /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: "db-qr-block", children: [
3502
- qrCodeImage && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
3599
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("section", { className: `db-section db-section--${style}`, children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: "db-container", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { className: "db-card", children: [
3600
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { className: "db-qr-block", children: [
3601
+ qrCodeImage && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
3503
3602
  "img",
3504
3603
  {
3505
3604
  className: "db-qr-image",
@@ -3507,21 +3606,21 @@ var DownloadBanner = ({
3507
3606
  alt: qrCodeAlt
3508
3607
  }
3509
3608
  ),
3510
- /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: "db-qr-text", children: [
3511
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("span", { className: "db-qr-text__title db-qr-text__title--desktop", children: qrTitle }),
3512
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("h2", { className: "db-qr-text__subtitle db-qr-text__subtitle--desktop", children: qrSubtitle }),
3513
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("span", { className: "db-qr-text__title db-qr-text__title--mobile", children: mobileTitle }),
3514
- disclaimer && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("span", { className: "db-disclaimer", children: disclaimer })
3609
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { className: "db-qr-text", children: [
3610
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("span", { className: "db-qr-text__title db-qr-text__title--desktop", children: qrTitle }),
3611
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("h2", { className: "db-qr-text__subtitle db-qr-text__subtitle--desktop", children: qrSubtitle }),
3612
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("span", { className: "db-qr-text__title db-qr-text__title--mobile", children: mobileTitle }),
3613
+ disclaimer && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("span", { className: "db-disclaimer", children: disclaimer })
3515
3614
  ] })
3516
3615
  ] }),
3517
- /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: "db-badges", children: [
3518
- showGooglePlay && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(DownloadBadge, { platform: "googleplay", colorScheme, href: googlePlayHref }),
3519
- showAppGallery && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(DownloadBadge, { platform: "appgallery", colorScheme, href: appGalleryHref }),
3520
- showMacOS && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(DownloadBadge, { platform: "macos", colorScheme, href: macOSHref }),
3521
- showWindows && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(DownloadBadge, { platform: "windows", colorScheme, href: windowsHref }),
3522
- showLinux && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(DownloadBadge, { platform: "linux", colorScheme, href: linuxHref }),
3523
- showAppStore && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(DownloadBadge, { platform: "appstore", colorScheme, href: appStoreHref }),
3524
- showWeb && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(DownloadBadge, { platform: "web", colorScheme, href: webHref })
3616
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { className: "db-badges", children: [
3617
+ showGooglePlay && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(DownloadBadge, { platform: "googleplay", colorScheme, href: googlePlayHref }),
3618
+ showAppGallery && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(DownloadBadge, { platform: "appgallery", colorScheme, href: appGalleryHref }),
3619
+ showMacOS && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(DownloadBadge, { platform: "macos", colorScheme, href: macOSHref }),
3620
+ showWindows && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(DownloadBadge, { platform: "windows", colorScheme, href: windowsHref }),
3621
+ showLinux && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(DownloadBadge, { platform: "linux", colorScheme, href: linuxHref }),
3622
+ showAppStore && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(DownloadBadge, { platform: "appstore", colorScheme, href: appStoreHref }),
3623
+ showWeb && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(DownloadBadge, { platform: "web", colorScheme, href: webHref })
3525
3624
  ] })
3526
3625
  ] }) }) });
3527
3626
  };
@@ -3539,19 +3638,20 @@ var DownloadBanner = ({
3539
3638
  Chip,
3540
3639
  ChipDropdown,
3541
3640
  DayNightTransition,
3641
+ DotLottieInView,
3542
3642
  DownloadBadge,
3543
3643
  DownloadBanner,
3644
+ FEATURE_SCROLL_DATA,
3544
3645
  FeatureCards,
3545
3646
  FeatureCardsSecondary,
3647
+ FeatureScroll,
3546
3648
  Footer,
3547
3649
  Hero,
3548
3650
  Link,
3549
3651
  LogoMarquee,
3550
3652
  Navbar,
3551
3653
  Pagination,
3552
- SCROLLYTELLING_DATA,
3553
3654
  STEPS_DATA,
3554
- Scrollytelling,
3555
3655
  SearchField,
3556
3656
  Stats,
3557
3657
  Steps,