@deriv-web-design/ui 0.0.14 → 0.0.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.css +384 -161
- package/dist/index.css.map +1 -1
- package/dist/index.d.mts +65 -11
- package/dist/index.d.ts +65 -11
- package/dist/index.js +849 -345
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +793 -292
- package/dist/index.mjs.map +1 -1
- package/package.json +5 -4
- package/tokens.css +67 -19
package/dist/index.mjs
CHANGED
|
@@ -1793,11 +1793,76 @@ var Stats = ({
|
|
|
1793
1793
|
);
|
|
1794
1794
|
};
|
|
1795
1795
|
|
|
1796
|
-
// templates/
|
|
1796
|
+
// templates/FeatureScroll/FeatureScroll.tsx
|
|
1797
|
+
import { useLayoutEffect, useRef as useRef6, useState as useState8 } from "react";
|
|
1798
|
+
|
|
1799
|
+
// components/DotLottieInView/DotLottieInView.tsx
|
|
1797
1800
|
import { useEffect as useEffect5, useRef as useRef5, useState as useState7 } from "react";
|
|
1798
1801
|
import { DotLottieReact } from "@lottiefiles/dotlottie-react";
|
|
1799
|
-
import { jsx as jsx21
|
|
1800
|
-
|
|
1802
|
+
import { jsx as jsx21 } from "react/jsx-runtime";
|
|
1803
|
+
function DotLottieInView({
|
|
1804
|
+
enabled = true,
|
|
1805
|
+
rootMargin = "0px",
|
|
1806
|
+
threshold = 0.2,
|
|
1807
|
+
className,
|
|
1808
|
+
style,
|
|
1809
|
+
...dotProps
|
|
1810
|
+
}) {
|
|
1811
|
+
const wrapRef = useRef5(null);
|
|
1812
|
+
const [inView, setInView] = useState7(false);
|
|
1813
|
+
const [dotLottie, setDotLottie] = useState7(null);
|
|
1814
|
+
useEffect5(() => {
|
|
1815
|
+
const el = wrapRef.current;
|
|
1816
|
+
if (!el) return;
|
|
1817
|
+
const observer = new IntersectionObserver(
|
|
1818
|
+
([entry]) => {
|
|
1819
|
+
setInView(entry.isIntersecting);
|
|
1820
|
+
},
|
|
1821
|
+
{ root: null, rootMargin, threshold }
|
|
1822
|
+
);
|
|
1823
|
+
observer.observe(el);
|
|
1824
|
+
return () => observer.disconnect();
|
|
1825
|
+
}, [rootMargin, threshold]);
|
|
1826
|
+
useEffect5(() => {
|
|
1827
|
+
if (!dotLottie) return;
|
|
1828
|
+
if (!enabled || !inView) {
|
|
1829
|
+
dotLottie.stop();
|
|
1830
|
+
return;
|
|
1831
|
+
}
|
|
1832
|
+
dotLottie.stop();
|
|
1833
|
+
dotLottie.play();
|
|
1834
|
+
}, [dotLottie, enabled, inView]);
|
|
1835
|
+
return /* @__PURE__ */ jsx21(
|
|
1836
|
+
"div",
|
|
1837
|
+
{
|
|
1838
|
+
ref: wrapRef,
|
|
1839
|
+
className,
|
|
1840
|
+
style: {
|
|
1841
|
+
width: "100%",
|
|
1842
|
+
height: "100%",
|
|
1843
|
+
minHeight: 0,
|
|
1844
|
+
display: "flex",
|
|
1845
|
+
alignItems: "center",
|
|
1846
|
+
justifyContent: "center",
|
|
1847
|
+
backgroundColor: "transparent",
|
|
1848
|
+
...style
|
|
1849
|
+
},
|
|
1850
|
+
children: /* @__PURE__ */ jsx21(
|
|
1851
|
+
DotLottieReact,
|
|
1852
|
+
{
|
|
1853
|
+
...dotProps,
|
|
1854
|
+
loop: false,
|
|
1855
|
+
autoplay: false,
|
|
1856
|
+
dotLottieRefCallback: setDotLottie
|
|
1857
|
+
}
|
|
1858
|
+
)
|
|
1859
|
+
}
|
|
1860
|
+
);
|
|
1861
|
+
}
|
|
1862
|
+
|
|
1863
|
+
// templates/FeatureScroll/FeatureScroll.tsx
|
|
1864
|
+
import { jsx as jsx22, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
1865
|
+
var FEATURE_SCROLL_DATA = [
|
|
1801
1866
|
{
|
|
1802
1867
|
title: "Forex",
|
|
1803
1868
|
description: "Trade the most popular currency pairs with high leverage, tight spreads, and fast execution.",
|
|
@@ -1841,16 +1906,16 @@ var SCROLLYTELLING_DATA = [
|
|
|
1841
1906
|
mediaUrl: "https://cdn.prod.website-files.com/66fbaad381fa6866fa4991f3/675a9064f2c16e4e0732abfb_Stock%20Indices.lottie"
|
|
1842
1907
|
}
|
|
1843
1908
|
];
|
|
1844
|
-
var ChevronRight2 = () => /* @__PURE__ */
|
|
1909
|
+
var ChevronRight2 = () => /* @__PURE__ */ jsx22(
|
|
1845
1910
|
"svg",
|
|
1846
1911
|
{
|
|
1847
|
-
className: "
|
|
1912
|
+
className: "fs__item-link-icon",
|
|
1848
1913
|
width: "16",
|
|
1849
1914
|
height: "16",
|
|
1850
1915
|
viewBox: "0 0 16 16",
|
|
1851
1916
|
fill: "none",
|
|
1852
1917
|
"aria-hidden": "true",
|
|
1853
|
-
children: /* @__PURE__ */
|
|
1918
|
+
children: /* @__PURE__ */ jsx22(
|
|
1854
1919
|
"path",
|
|
1855
1920
|
{
|
|
1856
1921
|
d: "M6 3l5 5-5 5",
|
|
@@ -1868,16 +1933,15 @@ function resolveMediaType(item) {
|
|
|
1868
1933
|
}
|
|
1869
1934
|
var MediaRenderer = ({ item, active }) => {
|
|
1870
1935
|
if (resolveMediaType(item) === "lottie") {
|
|
1871
|
-
return /* @__PURE__ */
|
|
1872
|
-
|
|
1936
|
+
return /* @__PURE__ */ jsx22(
|
|
1937
|
+
DotLottieInView,
|
|
1873
1938
|
{
|
|
1874
1939
|
src: item.mediaUrl,
|
|
1875
|
-
|
|
1876
|
-
autoplay: active
|
|
1940
|
+
enabled: active
|
|
1877
1941
|
}
|
|
1878
1942
|
);
|
|
1879
1943
|
}
|
|
1880
|
-
return /* @__PURE__ */
|
|
1944
|
+
return /* @__PURE__ */ jsx22(
|
|
1881
1945
|
"img",
|
|
1882
1946
|
{
|
|
1883
1947
|
src: item.mediaUrl,
|
|
@@ -1886,87 +1950,121 @@ var MediaRenderer = ({ item, active }) => {
|
|
|
1886
1950
|
}
|
|
1887
1951
|
);
|
|
1888
1952
|
};
|
|
1889
|
-
var
|
|
1953
|
+
var FeatureScroll = ({
|
|
1890
1954
|
header,
|
|
1891
1955
|
items,
|
|
1892
1956
|
variant = "media-right",
|
|
1893
1957
|
className,
|
|
1894
1958
|
...props
|
|
1895
1959
|
}) => {
|
|
1896
|
-
const [activeIndex, setActiveIndex] =
|
|
1897
|
-
const
|
|
1898
|
-
|
|
1899
|
-
|
|
1900
|
-
if (
|
|
1901
|
-
const
|
|
1902
|
-
|
|
1903
|
-
|
|
1904
|
-
|
|
1905
|
-
|
|
1906
|
-
|
|
1907
|
-
|
|
1908
|
-
|
|
1909
|
-
|
|
1910
|
-
|
|
1911
|
-
|
|
1912
|
-
|
|
1913
|
-
|
|
1914
|
-
|
|
1915
|
-
|
|
1916
|
-
|
|
1917
|
-
|
|
1918
|
-
|
|
1960
|
+
const [activeIndex, setActiveIndex] = useState8(0);
|
|
1961
|
+
const titleRefs = useRef6([]);
|
|
1962
|
+
const mediaColRef = useRef6(null);
|
|
1963
|
+
useLayoutEffect(() => {
|
|
1964
|
+
if (items.length === 0) return;
|
|
1965
|
+
const readThresholdPx = () => {
|
|
1966
|
+
const col = mediaColRef.current;
|
|
1967
|
+
if (!col) return 80;
|
|
1968
|
+
const top = getComputedStyle(col).top;
|
|
1969
|
+
const px = parseFloat(top);
|
|
1970
|
+
return Number.isFinite(px) ? px : 80;
|
|
1971
|
+
};
|
|
1972
|
+
let rafId = 0;
|
|
1973
|
+
const tick = () => {
|
|
1974
|
+
rafId = 0;
|
|
1975
|
+
if (typeof window === "undefined") return;
|
|
1976
|
+
if (!window.matchMedia("(min-width: 992px)").matches) return;
|
|
1977
|
+
const threshold = readThresholdPx();
|
|
1978
|
+
const refs = titleRefs.current;
|
|
1979
|
+
let pinned = -1;
|
|
1980
|
+
for (let i = 0; i < items.length; i++) {
|
|
1981
|
+
const el = refs[i];
|
|
1982
|
+
if (!el) continue;
|
|
1983
|
+
if (el.getBoundingClientRect().top <= threshold) pinned = i;
|
|
1919
1984
|
}
|
|
1920
|
-
|
|
1921
|
-
|
|
1922
|
-
|
|
1985
|
+
const mediaIndex = Math.min(
|
|
1986
|
+
items.length - 1,
|
|
1987
|
+
pinned + 1
|
|
1988
|
+
);
|
|
1989
|
+
setActiveIndex(
|
|
1990
|
+
(prev) => prev === mediaIndex ? prev : mediaIndex
|
|
1991
|
+
);
|
|
1992
|
+
};
|
|
1993
|
+
const schedule = () => {
|
|
1994
|
+
if (rafId !== 0) return;
|
|
1995
|
+
rafId = window.requestAnimationFrame(tick);
|
|
1996
|
+
};
|
|
1997
|
+
tick();
|
|
1998
|
+
window.addEventListener("scroll", schedule, { passive: true });
|
|
1999
|
+
window.addEventListener("resize", schedule, { passive: true });
|
|
2000
|
+
const mq = window.matchMedia("(min-width: 992px)");
|
|
2001
|
+
mq.addEventListener("change", schedule);
|
|
2002
|
+
return () => {
|
|
2003
|
+
window.removeEventListener("scroll", schedule);
|
|
2004
|
+
window.removeEventListener("resize", schedule);
|
|
2005
|
+
mq.removeEventListener("change", schedule);
|
|
2006
|
+
if (rafId !== 0) window.cancelAnimationFrame(rafId);
|
|
2007
|
+
};
|
|
1923
2008
|
}, [items.length]);
|
|
1924
2009
|
const rootClass = [
|
|
1925
|
-
"
|
|
1926
|
-
`
|
|
2010
|
+
"fs",
|
|
2011
|
+
`fs--${variant}`,
|
|
1927
2012
|
className
|
|
1928
2013
|
].filter(Boolean).join(" ");
|
|
1929
|
-
|
|
1930
|
-
/* @__PURE__ */
|
|
1931
|
-
|
|
1932
|
-
|
|
2014
|
+
if (items.length === 0) {
|
|
2015
|
+
return /* @__PURE__ */ jsx22("section", { className: rootClass, ...props, children: /* @__PURE__ */ jsx22("div", { className: "fs__inner", children: /* @__PURE__ */ jsx22("h2", { className: "fs__header", children: header }) }) });
|
|
2016
|
+
}
|
|
2017
|
+
return /* @__PURE__ */ jsx22("section", { className: rootClass, ...props, children: /* @__PURE__ */ jsxs20("div", { className: "fs__inner", children: [
|
|
2018
|
+
/* @__PURE__ */ jsx22("h2", { className: "fs__header", children: header }),
|
|
2019
|
+
/* @__PURE__ */ jsxs20("div", { className: "fs__layout", children: [
|
|
2020
|
+
/* @__PURE__ */ jsx22("div", { className: "fs__media-col", "aria-hidden": "true", children: /* @__PURE__ */ jsx22(
|
|
1933
2021
|
"div",
|
|
1934
2022
|
{
|
|
1935
|
-
|
|
1936
|
-
|
|
1937
|
-
|
|
1938
|
-
|
|
1939
|
-
children: /* @__PURE__ */ jsx21(
|
|
1940
|
-
MediaRenderer,
|
|
2023
|
+
ref: mediaColRef,
|
|
2024
|
+
className: "fs__media-sticky",
|
|
2025
|
+
children: /* @__PURE__ */ jsx22("div", { className: "fs__media-wrap", children: items.map((item, i) => /* @__PURE__ */ jsx22(
|
|
2026
|
+
"div",
|
|
1941
2027
|
{
|
|
1942
|
-
|
|
1943
|
-
|
|
1944
|
-
|
|
1945
|
-
|
|
1946
|
-
|
|
1947
|
-
|
|
1948
|
-
|
|
1949
|
-
|
|
2028
|
+
className: [
|
|
2029
|
+
"fs__media-item",
|
|
2030
|
+
i === activeIndex ? "fs__media-item--active" : ""
|
|
2031
|
+
].filter(Boolean).join(" "),
|
|
2032
|
+
children: /* @__PURE__ */ jsx22(
|
|
2033
|
+
MediaRenderer,
|
|
2034
|
+
{
|
|
2035
|
+
item,
|
|
2036
|
+
active: i === activeIndex
|
|
2037
|
+
}
|
|
2038
|
+
)
|
|
2039
|
+
},
|
|
2040
|
+
i
|
|
2041
|
+
)) })
|
|
2042
|
+
}
|
|
2043
|
+
) }),
|
|
2044
|
+
/* @__PURE__ */ jsx22("div", { className: "fs__content-col", children: items.map((item, i) => /* @__PURE__ */ jsxs20(
|
|
1950
2045
|
"div",
|
|
1951
2046
|
{
|
|
1952
|
-
|
|
1953
|
-
itemRefs.current[i] = el;
|
|
1954
|
-
},
|
|
1955
|
-
className: [
|
|
1956
|
-
"scrolly__item",
|
|
1957
|
-
i === activeIndex ? "scrolly__item--active" : "scrolly__item--inactive"
|
|
1958
|
-
].join(" "),
|
|
2047
|
+
className: "fs__item",
|
|
1959
2048
|
children: [
|
|
1960
|
-
/* @__PURE__ */
|
|
1961
|
-
|
|
2049
|
+
/* @__PURE__ */ jsx22(
|
|
2050
|
+
"h3",
|
|
2051
|
+
{
|
|
2052
|
+
ref: (el) => {
|
|
2053
|
+
titleRefs.current[i] = el;
|
|
2054
|
+
},
|
|
2055
|
+
className: "fs__item-title",
|
|
2056
|
+
children: item.title
|
|
2057
|
+
}
|
|
2058
|
+
),
|
|
2059
|
+
/* @__PURE__ */ jsx22("p", { className: "fs__item-desc", children: item.description }),
|
|
1962
2060
|
/* @__PURE__ */ jsxs20(
|
|
1963
2061
|
"a",
|
|
1964
2062
|
{
|
|
1965
2063
|
href: item.link,
|
|
1966
|
-
className: "
|
|
2064
|
+
className: "fs__item-link",
|
|
1967
2065
|
children: [
|
|
1968
|
-
/* @__PURE__ */
|
|
1969
|
-
/* @__PURE__ */
|
|
2066
|
+
/* @__PURE__ */ jsx22("span", { children: item.linkLabel }),
|
|
2067
|
+
/* @__PURE__ */ jsx22(ChevronRight2, {})
|
|
1970
2068
|
]
|
|
1971
2069
|
}
|
|
1972
2070
|
)
|
|
@@ -1975,28 +2073,28 @@ var Scrollytelling = ({
|
|
|
1975
2073
|
i
|
|
1976
2074
|
)) })
|
|
1977
2075
|
] }),
|
|
1978
|
-
/* @__PURE__ */
|
|
1979
|
-
/* @__PURE__ */
|
|
1980
|
-
/* @__PURE__ */
|
|
2076
|
+
/* @__PURE__ */ jsx22("div", { className: "fs__mobile-list", children: items.map((item, i) => /* @__PURE__ */ jsxs20("div", { className: "fs__mobile-item", children: [
|
|
2077
|
+
/* @__PURE__ */ jsx22("h3", { className: "fs__item-title", children: item.title }),
|
|
2078
|
+
/* @__PURE__ */ jsx22("div", { className: "fs__mobile-media", children: /* @__PURE__ */ jsx22(MediaRenderer, { item, active: true }) }),
|
|
2079
|
+
/* @__PURE__ */ jsx22("p", { className: "fs__item-desc", children: item.description }),
|
|
1981
2080
|
/* @__PURE__ */ jsxs20(
|
|
1982
2081
|
"a",
|
|
1983
2082
|
{
|
|
1984
2083
|
href: item.link,
|
|
1985
|
-
className: "
|
|
2084
|
+
className: "fs__item-link",
|
|
1986
2085
|
children: [
|
|
1987
|
-
/* @__PURE__ */
|
|
1988
|
-
/* @__PURE__ */
|
|
2086
|
+
/* @__PURE__ */ jsx22("span", { children: item.linkLabel }),
|
|
2087
|
+
/* @__PURE__ */ jsx22(ChevronRight2, {})
|
|
1989
2088
|
]
|
|
1990
2089
|
}
|
|
1991
|
-
)
|
|
1992
|
-
/* @__PURE__ */ jsx21("div", { className: "scrolly__mobile-media", children: /* @__PURE__ */ jsx21(MediaRenderer, { item, active: true }) })
|
|
2090
|
+
)
|
|
1993
2091
|
] }, i)) })
|
|
1994
2092
|
] }) });
|
|
1995
2093
|
};
|
|
1996
2094
|
|
|
1997
2095
|
// templates/StickyStackedCards/StickyStackedCards.tsx
|
|
1998
|
-
import { useEffect as useEffect6, useRef as
|
|
1999
|
-
import { jsx as
|
|
2096
|
+
import { useEffect as useEffect6, useRef as useRef7 } from "react";
|
|
2097
|
+
import { jsx as jsx23, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
2000
2098
|
var PLACEHOLDER_IMAGE = "https://cdn.prod.website-files.com/68da5c86c91c54f39c86c28a/69b9309379ac08e59ca8210a_1f3f555da9a5cbb13a6fe1bf0d5fe1b6_placeholder-image.webp";
|
|
2001
2099
|
var STEPS_DATA = [
|
|
2002
2100
|
{
|
|
@@ -2025,7 +2123,7 @@ var StickyStackedCards = ({
|
|
|
2025
2123
|
className,
|
|
2026
2124
|
...props
|
|
2027
2125
|
}) => {
|
|
2028
|
-
const cardRefs =
|
|
2126
|
+
const cardRefs = useRef7([]);
|
|
2029
2127
|
useEffect6(() => {
|
|
2030
2128
|
if (typeof window === "undefined") return;
|
|
2031
2129
|
let rafId = 0;
|
|
@@ -2060,14 +2158,14 @@ var StickyStackedCards = ({
|
|
|
2060
2158
|
cancelAnimationFrame(rafId);
|
|
2061
2159
|
};
|
|
2062
2160
|
}, [items.length]);
|
|
2063
|
-
return /* @__PURE__ */
|
|
2161
|
+
return /* @__PURE__ */ jsx23(
|
|
2064
2162
|
"section",
|
|
2065
2163
|
{
|
|
2066
2164
|
className: ["ssc", className].filter(Boolean).join(" "),
|
|
2067
2165
|
...props,
|
|
2068
2166
|
children: /* @__PURE__ */ jsxs21("div", { className: "ssc__inner", children: [
|
|
2069
|
-
/* @__PURE__ */
|
|
2070
|
-
/* @__PURE__ */
|
|
2167
|
+
/* @__PURE__ */ jsx23("h2", { className: "ssc__header", children: header }),
|
|
2168
|
+
/* @__PURE__ */ jsx23("div", { className: "ssc__track", children: items.map((item, i) => /* @__PURE__ */ jsxs21(
|
|
2071
2169
|
"div",
|
|
2072
2170
|
{
|
|
2073
2171
|
ref: (el) => {
|
|
@@ -2094,10 +2192,10 @@ var StickyStackedCards = ({
|
|
|
2094
2192
|
},
|
|
2095
2193
|
children: [
|
|
2096
2194
|
/* @__PURE__ */ jsxs21("div", { className: "ssc__card-content", children: [
|
|
2097
|
-
/* @__PURE__ */
|
|
2098
|
-
/* @__PURE__ */
|
|
2195
|
+
/* @__PURE__ */ jsx23("h3", { className: "ssc__card-title", children: item.title }),
|
|
2196
|
+
/* @__PURE__ */ jsx23("p", { className: "ssc__card-desc", children: item.description })
|
|
2099
2197
|
] }),
|
|
2100
|
-
/* @__PURE__ */
|
|
2198
|
+
/* @__PURE__ */ jsx23("div", { className: "ssc__card-image", children: /* @__PURE__ */ jsx23(
|
|
2101
2199
|
"img",
|
|
2102
2200
|
{
|
|
2103
2201
|
src: item.imageUrl,
|
|
@@ -2115,7 +2213,7 @@ var StickyStackedCards = ({
|
|
|
2115
2213
|
};
|
|
2116
2214
|
|
|
2117
2215
|
// templates/CTABanner/CTABanner.tsx
|
|
2118
|
-
import { useRef as
|
|
2216
|
+
import { useRef as useRef8 } from "react";
|
|
2119
2217
|
import {
|
|
2120
2218
|
motion,
|
|
2121
2219
|
useScroll,
|
|
@@ -2123,7 +2221,7 @@ import {
|
|
|
2123
2221
|
useTransform,
|
|
2124
2222
|
useMotionTemplate
|
|
2125
2223
|
} from "framer-motion";
|
|
2126
|
-
import { jsx as
|
|
2224
|
+
import { jsx as jsx24, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
2127
2225
|
var ENTRANCE = {
|
|
2128
2226
|
near: 80,
|
|
2129
2227
|
mid: 130,
|
|
@@ -2369,7 +2467,7 @@ var CTABanner = ({
|
|
|
2369
2467
|
...props
|
|
2370
2468
|
}) => {
|
|
2371
2469
|
const resolvedAvatars = avatars ?? (variant === "compact" ? COMPACT_AVATAR_DATA : AVATAR_DATA);
|
|
2372
|
-
const sectionRef =
|
|
2470
|
+
const sectionRef = useRef8(null);
|
|
2373
2471
|
const { scrollYProgress } = useScroll({
|
|
2374
2472
|
target: sectionRef,
|
|
2375
2473
|
offset: ["start end", "end start"]
|
|
@@ -2394,7 +2492,7 @@ var CTABanner = ({
|
|
|
2394
2492
|
className: ["ctab", variant === "compact" ? "ctab--compact" : "", className].filter(Boolean).join(" "),
|
|
2395
2493
|
...props,
|
|
2396
2494
|
children: [
|
|
2397
|
-
/* @__PURE__ */
|
|
2495
|
+
/* @__PURE__ */ jsx24(
|
|
2398
2496
|
motion.div,
|
|
2399
2497
|
{
|
|
2400
2498
|
className: "ctab__grid",
|
|
@@ -2402,7 +2500,7 @@ var CTABanner = ({
|
|
|
2402
2500
|
"aria-hidden": "true"
|
|
2403
2501
|
}
|
|
2404
2502
|
),
|
|
2405
|
-
/* @__PURE__ */
|
|
2503
|
+
/* @__PURE__ */ jsx24("div", { className: "ctab__inner", children: /* @__PURE__ */ jsxs22("div", { className: "ctab__stage", children: [
|
|
2406
2504
|
resolvedAvatars.map((avatar, index) => {
|
|
2407
2505
|
const posStyle = {};
|
|
2408
2506
|
if (avatar.desktopPos.left) posStyle["--av-d-left"] = avatar.desktopPos.left;
|
|
@@ -2411,7 +2509,7 @@ var CTABanner = ({
|
|
|
2411
2509
|
if (avatar.mobilePos?.left) posStyle["--av-m-left"] = avatar.mobilePos.left;
|
|
2412
2510
|
if (avatar.mobilePos?.right) posStyle["--av-m-right"] = avatar.mobilePos.right;
|
|
2413
2511
|
if (avatar.mobilePos?.top) posStyle["--av-m-top"] = avatar.mobilePos.top;
|
|
2414
|
-
return /* @__PURE__ */
|
|
2512
|
+
return /* @__PURE__ */ jsx24(
|
|
2415
2513
|
motion.div,
|
|
2416
2514
|
{
|
|
2417
2515
|
className: [
|
|
@@ -2425,7 +2523,7 @@ var CTABanner = ({
|
|
|
2425
2523
|
opacity: avatarOpacity,
|
|
2426
2524
|
filter: avatarFilter
|
|
2427
2525
|
},
|
|
2428
|
-
children: /* @__PURE__ */
|
|
2526
|
+
children: /* @__PURE__ */ jsx24(
|
|
2429
2527
|
"img",
|
|
2430
2528
|
{
|
|
2431
2529
|
src: avatar.imageUrl,
|
|
@@ -2444,8 +2542,8 @@ var CTABanner = ({
|
|
|
2444
2542
|
className: "ctab__hero",
|
|
2445
2543
|
style: { y: heroY, opacity: heroOpacity },
|
|
2446
2544
|
children: [
|
|
2447
|
-
/* @__PURE__ */
|
|
2448
|
-
/* @__PURE__ */
|
|
2545
|
+
/* @__PURE__ */ jsx24("h2", { className: "ctab__headline", children: headline }),
|
|
2546
|
+
/* @__PURE__ */ jsx24("a", { href: ctaHref, children: /* @__PURE__ */ jsx24(Button, { colorScheme: "black", variant: "primary", label: ctaLabel }) })
|
|
2449
2547
|
]
|
|
2450
2548
|
}
|
|
2451
2549
|
)
|
|
@@ -2456,14 +2554,14 @@ var CTABanner = ({
|
|
|
2456
2554
|
};
|
|
2457
2555
|
|
|
2458
2556
|
// components/Navbar/Navbar.tsx
|
|
2459
|
-
import { useRef as
|
|
2557
|
+
import { useRef as useRef9, useState as useState9, useEffect as useEffect7, useCallback as useCallback2 } from "react";
|
|
2460
2558
|
import { motion as motion2, AnimatePresence } from "framer-motion";
|
|
2461
2559
|
|
|
2462
2560
|
// assets/icon-globe.svg
|
|
2463
2561
|
var icon_globe_default = "./icon-globe-S54WYYEK.svg";
|
|
2464
2562
|
|
|
2465
2563
|
// components/Navbar/Navbar.tsx
|
|
2466
|
-
import { jsx as
|
|
2564
|
+
import { jsx as jsx25, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
2467
2565
|
var EASE_OUT_EXPO = [0.16, 1, 0.3, 1];
|
|
2468
2566
|
var dropdownVariants = {
|
|
2469
2567
|
hidden: { opacity: 0, scale: 0.96, y: -8 },
|
|
@@ -2477,7 +2575,7 @@ var accordionVariants = {
|
|
|
2477
2575
|
hidden: { height: 0, opacity: 0 },
|
|
2478
2576
|
visible: { height: "auto", opacity: 1 }
|
|
2479
2577
|
};
|
|
2480
|
-
var ChevronDownIcon3 = ({ className }) => /* @__PURE__ */
|
|
2578
|
+
var ChevronDownIcon3 = ({ className }) => /* @__PURE__ */ jsx25(
|
|
2481
2579
|
"svg",
|
|
2482
2580
|
{
|
|
2483
2581
|
className,
|
|
@@ -2486,7 +2584,7 @@ var ChevronDownIcon3 = ({ className }) => /* @__PURE__ */ jsx24(
|
|
|
2486
2584
|
viewBox: "0 0 14 14",
|
|
2487
2585
|
fill: "none",
|
|
2488
2586
|
"aria-hidden": "true",
|
|
2489
|
-
children: /* @__PURE__ */
|
|
2587
|
+
children: /* @__PURE__ */ jsx25(
|
|
2490
2588
|
"path",
|
|
2491
2589
|
{
|
|
2492
2590
|
d: "M2.625 4.8125L7 9.1875L11.375 4.8125",
|
|
@@ -2498,7 +2596,7 @@ var ChevronDownIcon3 = ({ className }) => /* @__PURE__ */ jsx24(
|
|
|
2498
2596
|
)
|
|
2499
2597
|
}
|
|
2500
2598
|
);
|
|
2501
|
-
var ArrowRightIcon = () => /* @__PURE__ */
|
|
2599
|
+
var ArrowRightIcon = () => /* @__PURE__ */ jsx25("svg", { width: "14", height: "14", viewBox: "0 0 14 14", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsx25(
|
|
2502
2600
|
"path",
|
|
2503
2601
|
{
|
|
2504
2602
|
d: "M2.625 7H11.375M11.375 7L7.875 3.5M11.375 7L7.875 10.5",
|
|
@@ -2508,7 +2606,7 @@ var ArrowRightIcon = () => /* @__PURE__ */ jsx24("svg", { width: "14", height: "
|
|
|
2508
2606
|
strokeLinejoin: "round"
|
|
2509
2607
|
}
|
|
2510
2608
|
) });
|
|
2511
|
-
var ArrowUpRightIcon = () => /* @__PURE__ */
|
|
2609
|
+
var ArrowUpRightIcon = () => /* @__PURE__ */ jsx25("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsx25(
|
|
2512
2610
|
"path",
|
|
2513
2611
|
{
|
|
2514
2612
|
d: "M4.5 11.5L11.5 4.5M11.5 4.5H5.5M11.5 4.5V10.5",
|
|
@@ -2518,7 +2616,7 @@ var ArrowUpRightIcon = () => /* @__PURE__ */ jsx24("svg", { width: "16", height:
|
|
|
2518
2616
|
strokeLinejoin: "round"
|
|
2519
2617
|
}
|
|
2520
2618
|
) });
|
|
2521
|
-
var BarsIcon = () => /* @__PURE__ */
|
|
2619
|
+
var BarsIcon = () => /* @__PURE__ */ jsx25("svg", { width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsx25(
|
|
2522
2620
|
"path",
|
|
2523
2621
|
{
|
|
2524
2622
|
d: "M2.5 5H17.5M2.5 10H17.5M2.5 15H17.5",
|
|
@@ -2527,7 +2625,7 @@ var BarsIcon = () => /* @__PURE__ */ jsx24("svg", { width: "20", height: "20", v
|
|
|
2527
2625
|
strokeLinecap: "round"
|
|
2528
2626
|
}
|
|
2529
2627
|
) });
|
|
2530
|
-
var XMarkIcon2 = () => /* @__PURE__ */
|
|
2628
|
+
var XMarkIcon2 = () => /* @__PURE__ */ jsx25("svg", { width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsx25(
|
|
2531
2629
|
"path",
|
|
2532
2630
|
{
|
|
2533
2631
|
d: "M15 5L5 15M5 5L15 15",
|
|
@@ -2536,7 +2634,7 @@ var XMarkIcon2 = () => /* @__PURE__ */ jsx24("svg", { width: "20", height: "20",
|
|
|
2536
2634
|
strokeLinecap: "round"
|
|
2537
2635
|
}
|
|
2538
2636
|
) });
|
|
2539
|
-
var ChevronLeftIcon = ({ className }) => /* @__PURE__ */
|
|
2637
|
+
var ChevronLeftIcon = ({ className }) => /* @__PURE__ */ jsx25(
|
|
2540
2638
|
"svg",
|
|
2541
2639
|
{
|
|
2542
2640
|
className,
|
|
@@ -2545,7 +2643,7 @@ var ChevronLeftIcon = ({ className }) => /* @__PURE__ */ jsx24(
|
|
|
2545
2643
|
viewBox: "0 0 24 24",
|
|
2546
2644
|
fill: "none",
|
|
2547
2645
|
"aria-hidden": "true",
|
|
2548
|
-
children: /* @__PURE__ */
|
|
2646
|
+
children: /* @__PURE__ */ jsx25(
|
|
2549
2647
|
"path",
|
|
2550
2648
|
{
|
|
2551
2649
|
d: "M15 18L9 12L15 6",
|
|
@@ -2557,11 +2655,11 @@ var ChevronLeftIcon = ({ className }) => /* @__PURE__ */ jsx24(
|
|
|
2557
2655
|
)
|
|
2558
2656
|
}
|
|
2559
2657
|
);
|
|
2560
|
-
var GlobeIcon = ({ className }) => /* @__PURE__ */
|
|
2658
|
+
var GlobeIcon = ({ className }) => /* @__PURE__ */ jsx25("img", { src: icon_globe_default, alt: "", "aria-hidden": "true", width: "20", height: "20", className });
|
|
2561
2659
|
var DropdownPanel = ({ item, onMouseEnter, onMouseLeave }) => {
|
|
2562
2660
|
const { dropdown } = item;
|
|
2563
2661
|
if (!dropdown) return null;
|
|
2564
|
-
return /* @__PURE__ */
|
|
2662
|
+
return /* @__PURE__ */ jsx25(
|
|
2565
2663
|
motion2.div,
|
|
2566
2664
|
{
|
|
2567
2665
|
className: "navbar__dropdown",
|
|
@@ -2573,8 +2671,8 @@ var DropdownPanel = ({ item, onMouseEnter, onMouseLeave }) => {
|
|
|
2573
2671
|
onMouseEnter,
|
|
2574
2672
|
onMouseLeave,
|
|
2575
2673
|
children: /* @__PURE__ */ jsxs23("div", { className: "navbar__dropdown-inner", children: [
|
|
2576
|
-
/* @__PURE__ */
|
|
2577
|
-
/* @__PURE__ */
|
|
2674
|
+
/* @__PURE__ */ jsx25("div", { className: "navbar__dropdown-left", children: dropdown.columns.map((col, colIdx) => /* @__PURE__ */ jsx25("div", { className: "navbar__dropdown-col", children: col.sections.map((section) => /* @__PURE__ */ jsxs23("div", { className: "navbar__dropdown-col-list", children: [
|
|
2675
|
+
/* @__PURE__ */ jsx25("p", { className: "navbar__dropdown-col-title", children: section.title }),
|
|
2578
2676
|
section.items.map((link) => /* @__PURE__ */ jsxs23(
|
|
2579
2677
|
"a",
|
|
2580
2678
|
{
|
|
@@ -2584,13 +2682,13 @@ var DropdownPanel = ({ item, onMouseEnter, onMouseLeave }) => {
|
|
|
2584
2682
|
rel: link.external ? "noopener noreferrer" : void 0,
|
|
2585
2683
|
children: [
|
|
2586
2684
|
link.label,
|
|
2587
|
-
link.external ? /* @__PURE__ */
|
|
2685
|
+
link.external ? /* @__PURE__ */ jsx25(ArrowUpRightIcon, {}) : /* @__PURE__ */ jsx25(ArrowRightIcon, {})
|
|
2588
2686
|
]
|
|
2589
2687
|
},
|
|
2590
2688
|
link.href
|
|
2591
2689
|
))
|
|
2592
2690
|
] }, section.title)) }, colIdx)) }),
|
|
2593
|
-
dropdown.feature && /* @__PURE__ */
|
|
2691
|
+
dropdown.feature && /* @__PURE__ */ jsx25("div", { className: "navbar__dropdown-right", children: /* @__PURE__ */ jsx25(FeatureCard, { feature: dropdown.feature }) })
|
|
2594
2692
|
] })
|
|
2595
2693
|
}
|
|
2596
2694
|
);
|
|
@@ -2601,7 +2699,7 @@ var FeatureCard = ({ feature, mobile }) => /* @__PURE__ */ jsxs23(
|
|
|
2601
2699
|
className: mobile ? "navbar__drawer-feature" : "navbar__dropdown-feature",
|
|
2602
2700
|
style: feature.backgroundImageUrl ? { backgroundImage: `url(${feature.backgroundImageUrl})` } : void 0,
|
|
2603
2701
|
children: [
|
|
2604
|
-
feature.backgroundImageUrl && /* @__PURE__ */
|
|
2702
|
+
feature.backgroundImageUrl && /* @__PURE__ */ jsx25(
|
|
2605
2703
|
"img",
|
|
2606
2704
|
{
|
|
2607
2705
|
src: feature.backgroundImageUrl,
|
|
@@ -2610,11 +2708,11 @@ var FeatureCard = ({ feature, mobile }) => /* @__PURE__ */ jsxs23(
|
|
|
2610
2708
|
"aria-hidden": "true"
|
|
2611
2709
|
}
|
|
2612
2710
|
),
|
|
2613
|
-
/* @__PURE__ */
|
|
2711
|
+
/* @__PURE__ */ jsx25("div", { className: mobile ? "navbar__drawer-feature-overlay" : "navbar__dropdown-feature-overlay", "aria-hidden": "true" }),
|
|
2614
2712
|
/* @__PURE__ */ jsxs23("div", { className: mobile ? "navbar__drawer-feature-content" : "navbar__dropdown-feature-content", children: [
|
|
2615
2713
|
/* @__PURE__ */ jsxs23("div", { children: [
|
|
2616
|
-
/* @__PURE__ */
|
|
2617
|
-
/* @__PURE__ */
|
|
2714
|
+
/* @__PURE__ */ jsx25("p", { className: mobile ? "navbar__drawer-feature-title" : "navbar__dropdown-feature-title", children: feature.title }),
|
|
2715
|
+
/* @__PURE__ */ jsx25("p", { className: mobile ? "navbar__drawer-feature-desc" : "navbar__dropdown-feature-desc", children: feature.description })
|
|
2618
2716
|
] }),
|
|
2619
2717
|
/* @__PURE__ */ jsxs23(
|
|
2620
2718
|
"a",
|
|
@@ -2623,7 +2721,7 @@ var FeatureCard = ({ feature, mobile }) => /* @__PURE__ */ jsxs23(
|
|
|
2623
2721
|
className: mobile ? "navbar__drawer-feature-cta" : "navbar__dropdown-feature-cta",
|
|
2624
2722
|
children: [
|
|
2625
2723
|
feature.ctaLabel,
|
|
2626
|
-
/* @__PURE__ */
|
|
2724
|
+
/* @__PURE__ */ jsx25(ArrowRightIcon, {})
|
|
2627
2725
|
]
|
|
2628
2726
|
}
|
|
2629
2727
|
)
|
|
@@ -2642,11 +2740,11 @@ var DrawerAccordion = ({ item, isOpen, onToggle }) => {
|
|
|
2642
2740
|
"aria-expanded": isOpen,
|
|
2643
2741
|
children: [
|
|
2644
2742
|
item.label,
|
|
2645
|
-
/* @__PURE__ */
|
|
2743
|
+
/* @__PURE__ */ jsx25(ChevronDownIcon3, { className: "navbar__drawer-trigger__chevron" })
|
|
2646
2744
|
]
|
|
2647
2745
|
}
|
|
2648
2746
|
),
|
|
2649
|
-
/* @__PURE__ */
|
|
2747
|
+
/* @__PURE__ */ jsx25(AnimatePresence, { initial: false, children: isOpen && dropdown && /* @__PURE__ */ jsx25(
|
|
2650
2748
|
motion2.div,
|
|
2651
2749
|
{
|
|
2652
2750
|
className: "navbar__drawer-panel",
|
|
@@ -2656,9 +2754,9 @@ var DrawerAccordion = ({ item, isOpen, onToggle }) => {
|
|
|
2656
2754
|
exit: "hidden",
|
|
2657
2755
|
transition: { duration: 0.22, ease: EASE_OUT_EXPO },
|
|
2658
2756
|
children: /* @__PURE__ */ jsxs23("div", { className: "navbar__drawer-panel-inner", children: [
|
|
2659
|
-
/* @__PURE__ */
|
|
2660
|
-
/* @__PURE__ */
|
|
2661
|
-
/* @__PURE__ */
|
|
2757
|
+
/* @__PURE__ */ jsx25("div", { className: "navbar__drawer-panel-cols", children: dropdown.columns.map((col, colIdx) => /* @__PURE__ */ jsx25("div", { className: "navbar__drawer-panel-col", children: col.sections.map((section) => /* @__PURE__ */ jsxs23("div", { className: "navbar__drawer-col-section", children: [
|
|
2758
|
+
/* @__PURE__ */ jsx25("p", { className: "navbar__drawer-col-title", children: section.title }),
|
|
2759
|
+
/* @__PURE__ */ jsx25("div", { className: "navbar__drawer-col-links", children: section.items.map((link) => /* @__PURE__ */ jsx25(
|
|
2662
2760
|
"a",
|
|
2663
2761
|
{
|
|
2664
2762
|
href: link.href,
|
|
@@ -2670,7 +2768,7 @@ var DrawerAccordion = ({ item, isOpen, onToggle }) => {
|
|
|
2670
2768
|
link.href
|
|
2671
2769
|
)) })
|
|
2672
2770
|
] }, section.title)) }, colIdx)) }),
|
|
2673
|
-
dropdown.feature && /* @__PURE__ */
|
|
2771
|
+
dropdown.feature && /* @__PURE__ */ jsx25(FeatureCard, { feature: dropdown.feature, mobile: true })
|
|
2674
2772
|
] })
|
|
2675
2773
|
}
|
|
2676
2774
|
) })
|
|
@@ -2694,16 +2792,16 @@ var Navbar = ({
|
|
|
2694
2792
|
className,
|
|
2695
2793
|
...props
|
|
2696
2794
|
}) => {
|
|
2697
|
-
const [openDropdown, setOpenDropdown] =
|
|
2698
|
-
const [mobileOpen, setMobileOpen] =
|
|
2699
|
-
const [mobileExpanded, setMobileExpanded] =
|
|
2700
|
-
const [scrolled, setScrolled] =
|
|
2701
|
-
const [langDropdownOpen, setLangDropdownOpen] =
|
|
2702
|
-
const [mobileLangOpen, setMobileLangOpen] =
|
|
2703
|
-
const hoverTimeoutRef =
|
|
2704
|
-
const langHoverTimeoutRef =
|
|
2705
|
-
const pillAreaRef =
|
|
2706
|
-
const langBtnRef =
|
|
2795
|
+
const [openDropdown, setOpenDropdown] = useState9(null);
|
|
2796
|
+
const [mobileOpen, setMobileOpen] = useState9(false);
|
|
2797
|
+
const [mobileExpanded, setMobileExpanded] = useState9(null);
|
|
2798
|
+
const [scrolled, setScrolled] = useState9(false);
|
|
2799
|
+
const [langDropdownOpen, setLangDropdownOpen] = useState9(false);
|
|
2800
|
+
const [mobileLangOpen, setMobileLangOpen] = useState9(false);
|
|
2801
|
+
const hoverTimeoutRef = useRef9(null);
|
|
2802
|
+
const langHoverTimeoutRef = useRef9(null);
|
|
2803
|
+
const pillAreaRef = useRef9(null);
|
|
2804
|
+
const langBtnRef = useRef9(null);
|
|
2707
2805
|
const hasLangDropdown = Boolean(languageItems && languageItems.length > 0);
|
|
2708
2806
|
const resolvedLogo = theme === "light" ? logoSrcDark ?? logoSrc : logoSrc;
|
|
2709
2807
|
useEffect7(() => {
|
|
@@ -2782,9 +2880,9 @@ var Navbar = ({
|
|
|
2782
2880
|
...props,
|
|
2783
2881
|
children: [
|
|
2784
2882
|
/* @__PURE__ */ jsxs23("div", { className: "navbar__bar", children: [
|
|
2785
|
-
/* @__PURE__ */
|
|
2786
|
-
/* @__PURE__ */
|
|
2787
|
-
/* @__PURE__ */
|
|
2883
|
+
/* @__PURE__ */ jsx25("a", { href: logoHref, className: "navbar__logo", "aria-label": "Home", children: /* @__PURE__ */ jsx25("img", { src: resolvedLogo, alt: "Logo" }) }),
|
|
2884
|
+
/* @__PURE__ */ jsx25("div", { className: "navbar__nav-center", ref: pillAreaRef, children: /* @__PURE__ */ jsxs23("div", { className: "navbar__pill", children: [
|
|
2885
|
+
/* @__PURE__ */ jsx25("a", { href: logoHref, className: "navbar__pill-logo", "aria-label": "Home", children: /* @__PURE__ */ jsx25("img", { src: logoSrcDark ?? logoSrc, alt: "Logo" }) }),
|
|
2788
2886
|
/* @__PURE__ */ jsxs23("div", { className: "navbar__nav-group", children: [
|
|
2789
2887
|
navItems.map((item) => {
|
|
2790
2888
|
if (item.external) {
|
|
@@ -2797,7 +2895,7 @@ var Navbar = ({
|
|
|
2797
2895
|
rel: "noopener noreferrer",
|
|
2798
2896
|
children: [
|
|
2799
2897
|
item.label,
|
|
2800
|
-
/* @__PURE__ */
|
|
2898
|
+
/* @__PURE__ */ jsx25(ArrowUpRightIcon, {})
|
|
2801
2899
|
]
|
|
2802
2900
|
},
|
|
2803
2901
|
item.label
|
|
@@ -2817,15 +2915,15 @@ var Navbar = ({
|
|
|
2817
2915
|
"aria-haspopup": "true",
|
|
2818
2916
|
children: [
|
|
2819
2917
|
item.label,
|
|
2820
|
-
/* @__PURE__ */
|
|
2918
|
+
/* @__PURE__ */ jsx25(ChevronDownIcon3, { className: "navbar__nav-item__chevron" })
|
|
2821
2919
|
]
|
|
2822
2920
|
},
|
|
2823
2921
|
item.label
|
|
2824
2922
|
);
|
|
2825
2923
|
}
|
|
2826
|
-
return /* @__PURE__ */
|
|
2924
|
+
return /* @__PURE__ */ jsx25("a", { href: item.href, className: "navbar__nav-item", children: item.label }, item.label);
|
|
2827
2925
|
}),
|
|
2828
|
-
languageLabel && /* @__PURE__ */
|
|
2926
|
+
languageLabel && /* @__PURE__ */ jsx25(
|
|
2829
2927
|
"div",
|
|
2830
2928
|
{
|
|
2831
2929
|
className: "navbar__lang-wrapper",
|
|
@@ -2835,12 +2933,16 @@ var Navbar = ({
|
|
|
2835
2933
|
"button",
|
|
2836
2934
|
{
|
|
2837
2935
|
ref: langBtnRef,
|
|
2838
|
-
className:
|
|
2936
|
+
className: [
|
|
2937
|
+
"navbar__nav-item",
|
|
2938
|
+
"navbar__lang-btn",
|
|
2939
|
+
hasLangDropdown && langDropdownOpen ? "navbar__nav-item--open" : ""
|
|
2940
|
+
].filter(Boolean).join(" "),
|
|
2839
2941
|
onClick: hasLangDropdown ? () => setLangDropdownOpen((o) => !o) : onLanguageClick,
|
|
2840
2942
|
"aria-haspopup": hasLangDropdown ? "true" : void 0,
|
|
2841
2943
|
"aria-expanded": hasLangDropdown ? langDropdownOpen : void 0,
|
|
2842
2944
|
children: [
|
|
2843
|
-
/* @__PURE__ */
|
|
2945
|
+
/* @__PURE__ */ jsx25(GlobeIcon, { className: "navbar__lang-globe" }),
|
|
2844
2946
|
languageLabel
|
|
2845
2947
|
]
|
|
2846
2948
|
}
|
|
@@ -2849,11 +2951,11 @@ var Navbar = ({
|
|
|
2849
2951
|
)
|
|
2850
2952
|
] }),
|
|
2851
2953
|
/* @__PURE__ */ jsxs23("div", { className: "navbar__pill-actions", children: [
|
|
2852
|
-
loginHref && /* @__PURE__ */
|
|
2853
|
-
ctaHref && /* @__PURE__ */
|
|
2954
|
+
loginHref && /* @__PURE__ */ jsx25("a", { href: loginHref, children: /* @__PURE__ */ jsx25(Button, { colorScheme: "black", variant: "secondary", label: loginLabel }) }),
|
|
2955
|
+
ctaHref && /* @__PURE__ */ jsx25("a", { href: ctaHref, children: /* @__PURE__ */ jsx25(Button, { colorScheme: "coral", variant: "primary", label: ctaLabel }) })
|
|
2854
2956
|
] })
|
|
2855
2957
|
] }) }),
|
|
2856
|
-
/* @__PURE__ */
|
|
2958
|
+
/* @__PURE__ */ jsx25(AnimatePresence, { children: openDropdown && activeDropdownItem?.dropdown && /* @__PURE__ */ jsx25(
|
|
2857
2959
|
DropdownPanel,
|
|
2858
2960
|
{
|
|
2859
2961
|
item: activeDropdownItem,
|
|
@@ -2862,7 +2964,7 @@ var Navbar = ({
|
|
|
2862
2964
|
},
|
|
2863
2965
|
"dropdown"
|
|
2864
2966
|
) }),
|
|
2865
|
-
/* @__PURE__ */
|
|
2967
|
+
/* @__PURE__ */ jsx25(AnimatePresence, { children: hasLangDropdown && langDropdownOpen && /* @__PURE__ */ jsx25(
|
|
2866
2968
|
motion2.div,
|
|
2867
2969
|
{
|
|
2868
2970
|
className: "navbar__lang-dropdown",
|
|
@@ -2873,12 +2975,12 @@ var Navbar = ({
|
|
|
2873
2975
|
transition: { duration: 0.18, ease: EASE_OUT_EXPO },
|
|
2874
2976
|
onMouseEnter: clearLangHoverTimeout,
|
|
2875
2977
|
onMouseLeave: handleLangLeave,
|
|
2876
|
-
children: /* @__PURE__ */
|
|
2978
|
+
children: /* @__PURE__ */ jsx25(
|
|
2877
2979
|
"div",
|
|
2878
2980
|
{
|
|
2879
2981
|
className: "navbar__lang-dropdown-grid",
|
|
2880
2982
|
style: { "--lang-rows": Math.ceil(languageItems.length / 3) },
|
|
2881
|
-
children: languageItems.map((lang) => /* @__PURE__ */
|
|
2983
|
+
children: languageItems.map((lang) => /* @__PURE__ */ jsx25(
|
|
2882
2984
|
"button",
|
|
2883
2985
|
{
|
|
2884
2986
|
className: [
|
|
@@ -2895,7 +2997,7 @@ var Navbar = ({
|
|
|
2895
2997
|
}
|
|
2896
2998
|
) }),
|
|
2897
2999
|
/* @__PURE__ */ jsxs23("div", { className: "navbar__actions", children: [
|
|
2898
|
-
loginHref && /* @__PURE__ */
|
|
3000
|
+
loginHref && /* @__PURE__ */ jsx25("a", { href: loginHref, className: "navbar__actions-login", children: /* @__PURE__ */ jsx25(
|
|
2899
3001
|
Button,
|
|
2900
3002
|
{
|
|
2901
3003
|
colorScheme: theme === "dark" ? "white" : "black",
|
|
@@ -2903,10 +3005,10 @@ var Navbar = ({
|
|
|
2903
3005
|
label: loginLabel
|
|
2904
3006
|
}
|
|
2905
3007
|
) }),
|
|
2906
|
-
ctaHref && /* @__PURE__ */
|
|
3008
|
+
ctaHref && /* @__PURE__ */ jsx25("a", { href: ctaHref, children: /* @__PURE__ */ jsx25(Button, { colorScheme: "coral", variant: "primary", label: ctaLabel }) })
|
|
2907
3009
|
] }),
|
|
2908
3010
|
/* @__PURE__ */ jsxs23("div", { className: "navbar__mobile-actions", children: [
|
|
2909
|
-
loginHref && /* @__PURE__ */
|
|
3011
|
+
loginHref && /* @__PURE__ */ jsx25("a", { href: loginHref, children: /* @__PURE__ */ jsx25(
|
|
2910
3012
|
Button,
|
|
2911
3013
|
{
|
|
2912
3014
|
colorScheme: scrolled || theme === "light" ? "black" : "white",
|
|
@@ -2914,18 +3016,18 @@ var Navbar = ({
|
|
|
2914
3016
|
label: loginLabel
|
|
2915
3017
|
}
|
|
2916
3018
|
) }),
|
|
2917
|
-
/* @__PURE__ */
|
|
3019
|
+
/* @__PURE__ */ jsx25(
|
|
2918
3020
|
"button",
|
|
2919
3021
|
{
|
|
2920
3022
|
className: "navbar__mobile-trigger",
|
|
2921
3023
|
onClick: () => setMobileOpen((o) => !o),
|
|
2922
3024
|
"aria-label": mobileOpen ? "Close navigation menu" : "Open navigation menu",
|
|
2923
|
-
children: mobileOpen ? /* @__PURE__ */
|
|
3025
|
+
children: mobileOpen ? /* @__PURE__ */ jsx25(XMarkIcon2, {}) : /* @__PURE__ */ jsx25(BarsIcon, {})
|
|
2924
3026
|
}
|
|
2925
3027
|
)
|
|
2926
3028
|
] })
|
|
2927
3029
|
] }),
|
|
2928
|
-
/* @__PURE__ */
|
|
3030
|
+
/* @__PURE__ */ jsx25("div", { className: "navbar__drawer-clip", children: /* @__PURE__ */ jsx25(AnimatePresence, { children: mobileOpen && /* @__PURE__ */ jsxs23(
|
|
2929
3031
|
motion2.div,
|
|
2930
3032
|
{
|
|
2931
3033
|
className: "navbar__drawer",
|
|
@@ -2941,7 +3043,7 @@ var Navbar = ({
|
|
|
2941
3043
|
/* @__PURE__ */ jsxs23("nav", { className: "navbar__drawer-nav", children: [
|
|
2942
3044
|
navItems.map((item) => {
|
|
2943
3045
|
if (item.dropdown) {
|
|
2944
|
-
return /* @__PURE__ */
|
|
3046
|
+
return /* @__PURE__ */ jsx25(
|
|
2945
3047
|
DrawerAccordion,
|
|
2946
3048
|
{
|
|
2947
3049
|
item,
|
|
@@ -2962,14 +3064,14 @@ var Navbar = ({
|
|
|
2962
3064
|
rel: item.external ? "noopener noreferrer" : void 0,
|
|
2963
3065
|
children: [
|
|
2964
3066
|
item.label,
|
|
2965
|
-
item.external && /* @__PURE__ */
|
|
3067
|
+
item.external && /* @__PURE__ */ jsx25(ArrowUpRightIcon, {})
|
|
2966
3068
|
]
|
|
2967
3069
|
},
|
|
2968
3070
|
item.label
|
|
2969
3071
|
);
|
|
2970
3072
|
}),
|
|
2971
3073
|
languageLabel && !hasLangDropdown && /* @__PURE__ */ jsxs23("button", { className: "navbar__drawer-lang", onClick: onLanguageClick, children: [
|
|
2972
|
-
/* @__PURE__ */
|
|
3074
|
+
/* @__PURE__ */ jsx25(GlobeIcon, { className: "navbar__lang-globe" }),
|
|
2973
3075
|
languageLabel
|
|
2974
3076
|
] }),
|
|
2975
3077
|
languageLabel && hasLangDropdown && /* @__PURE__ */ jsxs23(
|
|
@@ -2978,14 +3080,14 @@ var Navbar = ({
|
|
|
2978
3080
|
className: "navbar__drawer-lang",
|
|
2979
3081
|
onClick: () => setMobileLangOpen(true),
|
|
2980
3082
|
children: [
|
|
2981
|
-
/* @__PURE__ */
|
|
3083
|
+
/* @__PURE__ */ jsx25(GlobeIcon, { className: "navbar__lang-globe" }),
|
|
2982
3084
|
languageLabel
|
|
2983
3085
|
]
|
|
2984
3086
|
}
|
|
2985
3087
|
)
|
|
2986
3088
|
] }),
|
|
2987
3089
|
!mobileLangOpen && /* @__PURE__ */ jsxs23("div", { className: "navbar__drawer-footer", children: [
|
|
2988
|
-
loginHref && /* @__PURE__ */
|
|
3090
|
+
loginHref && /* @__PURE__ */ jsx25("a", { href: loginHref, style: { display: "block" }, children: /* @__PURE__ */ jsx25(
|
|
2989
3091
|
Button,
|
|
2990
3092
|
{
|
|
2991
3093
|
colorScheme: "black",
|
|
@@ -2994,7 +3096,7 @@ var Navbar = ({
|
|
|
2994
3096
|
fullWidth: true
|
|
2995
3097
|
}
|
|
2996
3098
|
) }),
|
|
2997
|
-
ctaHref && /* @__PURE__ */
|
|
3099
|
+
ctaHref && /* @__PURE__ */ jsx25("a", { href: ctaHref, style: { display: "block" }, children: /* @__PURE__ */ jsx25(
|
|
2998
3100
|
Button,
|
|
2999
3101
|
{
|
|
3000
3102
|
colorScheme: "coral",
|
|
@@ -3004,7 +3106,7 @@ var Navbar = ({
|
|
|
3004
3106
|
}
|
|
3005
3107
|
) })
|
|
3006
3108
|
] }),
|
|
3007
|
-
/* @__PURE__ */
|
|
3109
|
+
/* @__PURE__ */ jsx25(AnimatePresence, { children: hasLangDropdown && mobileLangOpen && /* @__PURE__ */ jsxs23(
|
|
3008
3110
|
motion2.div,
|
|
3009
3111
|
{
|
|
3010
3112
|
className: "navbar__drawer-lang-panel",
|
|
@@ -3013,16 +3115,16 @@ var Navbar = ({
|
|
|
3013
3115
|
exit: { y: "100%" },
|
|
3014
3116
|
transition: { duration: 0.25, ease: EASE_OUT_EXPO },
|
|
3015
3117
|
children: [
|
|
3016
|
-
/* @__PURE__ */
|
|
3118
|
+
/* @__PURE__ */ jsx25(
|
|
3017
3119
|
"button",
|
|
3018
3120
|
{
|
|
3019
3121
|
className: "navbar__drawer-lang-back",
|
|
3020
3122
|
onClick: () => setMobileLangOpen(false),
|
|
3021
3123
|
"aria-label": "Back to menu",
|
|
3022
|
-
children: /* @__PURE__ */
|
|
3124
|
+
children: /* @__PURE__ */ jsx25(ChevronLeftIcon, {})
|
|
3023
3125
|
}
|
|
3024
3126
|
),
|
|
3025
|
-
/* @__PURE__ */
|
|
3127
|
+
/* @__PURE__ */ jsx25("div", { className: "navbar__drawer-lang-grid", children: languageItems.map((lang) => /* @__PURE__ */ jsx25(
|
|
3026
3128
|
"button",
|
|
3027
3129
|
{
|
|
3028
3130
|
className: [
|
|
@@ -3046,7 +3148,7 @@ var Navbar = ({
|
|
|
3046
3148
|
};
|
|
3047
3149
|
|
|
3048
3150
|
// templates/DayNightTransition/DayNightTransition.tsx
|
|
3049
|
-
import { useRef as
|
|
3151
|
+
import { useEffect as useEffect8, useLayoutEffect as useLayoutEffect2, useRef as useRef10, useState as useState10 } from "react";
|
|
3050
3152
|
import {
|
|
3051
3153
|
motion as motion3,
|
|
3052
3154
|
useScroll as useScroll2,
|
|
@@ -3054,121 +3156,449 @@ import {
|
|
|
3054
3156
|
useTransform as useTransform2,
|
|
3055
3157
|
useMotionTemplate as useMotionTemplate2
|
|
3056
3158
|
} from "framer-motion";
|
|
3057
|
-
|
|
3159
|
+
|
|
3160
|
+
// templates/DayNightTransition/webflowDayNightV2Ix.ts
|
|
3161
|
+
var DESC_SWATCH = { r: 24, g: 28, b: 37 };
|
|
3162
|
+
var BODY_TEXT = { r: 51, g: 51, b: 51 };
|
|
3163
|
+
var rgb = (r, g, b) => `rgb(${r},${g},${b})`;
|
|
3164
|
+
var lerp = (a, b, u) => a + (b - a) * u;
|
|
3165
|
+
var seg = (t, t0, t1, v0, v1) => {
|
|
3166
|
+
if (t <= t0) return v0;
|
|
3167
|
+
if (t >= t1) return v1;
|
|
3168
|
+
return lerp(v0, v1, (t - t0) / (t1 - t0));
|
|
3169
|
+
};
|
|
3170
|
+
function webflowV2DescriptionColor(t, media) {
|
|
3171
|
+
if (media === "desktop") {
|
|
3172
|
+
const body2 = rgb(BODY_TEXT.r, BODY_TEXT.g, BODY_TEXT.b);
|
|
3173
|
+
const dark2 = rgb(DESC_SWATCH.r, DESC_SWATCH.g, DESC_SWATCH.b);
|
|
3174
|
+
const white2 = rgb(255, 255, 255);
|
|
3175
|
+
if (t < 0.49) return body2;
|
|
3176
|
+
if (t < 0.5) return dark2;
|
|
3177
|
+
return white2;
|
|
3178
|
+
}
|
|
3179
|
+
const white = rgb(255, 255, 255);
|
|
3180
|
+
const dark = rgb(DESC_SWATCH.r, DESC_SWATCH.g, DESC_SWATCH.b);
|
|
3181
|
+
const body = rgb(BODY_TEXT.r, BODY_TEXT.g, BODY_TEXT.b);
|
|
3182
|
+
if (t < 0.58) return body;
|
|
3183
|
+
if (t < 0.59) return dark;
|
|
3184
|
+
return white;
|
|
3185
|
+
}
|
|
3186
|
+
function webflowV2TitleColor(t, media) {
|
|
3187
|
+
if (media === "desktop") {
|
|
3188
|
+
const body2 = rgb(BODY_TEXT.r, BODY_TEXT.g, BODY_TEXT.b);
|
|
3189
|
+
const black = rgb(0, 0, 0);
|
|
3190
|
+
const white2 = rgb(255, 255, 255);
|
|
3191
|
+
if (t < 0.51) return body2;
|
|
3192
|
+
if (t >= 0.52) return white2;
|
|
3193
|
+
return seg(t, 0.51, 0.52, black, white2);
|
|
3194
|
+
}
|
|
3195
|
+
const dark = rgb(DESC_SWATCH.r, DESC_SWATCH.g, DESC_SWATCH.b);
|
|
3196
|
+
const white = rgb(255, 255, 255);
|
|
3197
|
+
const body = rgb(BODY_TEXT.r, BODY_TEXT.g, BODY_TEXT.b);
|
|
3198
|
+
if (t < 0.6) return body;
|
|
3199
|
+
if (t >= 0.61) return white;
|
|
3200
|
+
const u = (t - 0.6) / 0.01;
|
|
3201
|
+
return rgb(
|
|
3202
|
+
lerp(DESC_SWATCH.r, 255, u),
|
|
3203
|
+
lerp(DESC_SWATCH.g, 255, u),
|
|
3204
|
+
lerp(DESC_SWATCH.b, 255, u)
|
|
3205
|
+
);
|
|
3206
|
+
}
|
|
3207
|
+
function webflowV2DayWordOpacity(t, media) {
|
|
3208
|
+
if (media === "desktop") {
|
|
3209
|
+
if (t < 0.51) return 1;
|
|
3210
|
+
if (t >= 0.52) return 0;
|
|
3211
|
+
return seg(t, 0.51, 0.52, 1, 0);
|
|
3212
|
+
}
|
|
3213
|
+
if (t < 0.6) return 1;
|
|
3214
|
+
if (t >= 0.61) return 0;
|
|
3215
|
+
return seg(t, 0.6, 0.61, 1, 0);
|
|
3216
|
+
}
|
|
3217
|
+
function webflowV2NightWordOpacity(t, media) {
|
|
3218
|
+
if (media === "desktop") {
|
|
3219
|
+
if (t < 0.51) return 0;
|
|
3220
|
+
if (t >= 0.52) return 1;
|
|
3221
|
+
return seg(t, 0.51, 0.52, 0, 1);
|
|
3222
|
+
}
|
|
3223
|
+
if (t < 0.6) return 0;
|
|
3224
|
+
if (t >= 0.61) return 1;
|
|
3225
|
+
return seg(t, 0.6, 0.61, 0, 1);
|
|
3226
|
+
}
|
|
3227
|
+
var WEBFLOW_V2_DAY_CLIP_SCROLL_END = 0.65;
|
|
3228
|
+
function webflowV2DayClipPercent(t, media) {
|
|
3229
|
+
if (media === "desktop") return 100;
|
|
3230
|
+
return seg(t, 0, WEBFLOW_V2_DAY_CLIP_SCROLL_END, 100, 0);
|
|
3231
|
+
}
|
|
3232
|
+
|
|
3233
|
+
// templates/DayNightTransition/DayNightTransition.tsx
|
|
3234
|
+
import { Fragment as Fragment3, jsx as jsx26, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
3058
3235
|
var SPRING2 = { stiffness: 80, damping: 30, restDelta: 1e-3 };
|
|
3059
3236
|
var FADE_START = 0.35;
|
|
3060
3237
|
var FADE_END = 0.65;
|
|
3061
|
-
var
|
|
3062
|
-
var
|
|
3238
|
+
var V2_TEXT_SCROLL_CROSSFADE_DESKTOP_START = 0.49;
|
|
3239
|
+
var V2_TEXT_SCROLL_CROSSFADE_DESKTOP_END = 0.52;
|
|
3240
|
+
var V2_TEXT_SCROLL_CROSSFADE_MOBILE_START = 0.58;
|
|
3241
|
+
var V2_TEXT_SCROLL_CROSSFADE_MOBILE_END = 0.61;
|
|
3063
3242
|
var TEXT_CHANNEL_DAY = 0;
|
|
3064
3243
|
var TEXT_CHANNEL_NIGHT = 255;
|
|
3244
|
+
var seg2 = (t, t0, t1, v0, v1) => {
|
|
3245
|
+
if (t <= t0) return v0;
|
|
3246
|
+
if (t >= t1) return v1;
|
|
3247
|
+
return v0 + (v1 - v0) * ((t - t0) / (t1 - t0));
|
|
3248
|
+
};
|
|
3065
3249
|
var DayNightTransition = ({
|
|
3066
3250
|
dayImageUrl,
|
|
3067
3251
|
nightImageUrl,
|
|
3068
|
-
dayHeadline = "
|
|
3069
|
-
nightHeadline = "
|
|
3070
|
-
dayDescription,
|
|
3071
|
-
nightDescription,
|
|
3252
|
+
dayHeadline = "Medium length section title goes here",
|
|
3253
|
+
nightHeadline = "Medium length section title goes here",
|
|
3254
|
+
dayDescription = "Description goes here. Description goes here. Description goes here.",
|
|
3255
|
+
nightDescription = "Description goes here. Description goes here. Description goes here.",
|
|
3072
3256
|
ctaLabel = "Get started",
|
|
3073
3257
|
ctaHref = "#",
|
|
3258
|
+
hideCta = false,
|
|
3259
|
+
headlineLevel = "h2",
|
|
3260
|
+
descriptionLevel = "body-md",
|
|
3261
|
+
inlineDayNightHeadline,
|
|
3262
|
+
scrollPreset = "default",
|
|
3074
3263
|
className,
|
|
3075
3264
|
...props
|
|
3076
3265
|
}) => {
|
|
3077
|
-
const wrapperRef =
|
|
3266
|
+
const wrapperRef = useRef10(null);
|
|
3267
|
+
const dayWordRef = useRef10(null);
|
|
3268
|
+
const [nightMarginStart, setNightMarginStart] = useState10("0px");
|
|
3269
|
+
const [nightMarginEnd, setNightMarginEnd] = useState10("0px");
|
|
3270
|
+
const [ixMedia, setIxMedia] = useState10("desktop");
|
|
3271
|
+
const webflowV2 = scrollPreset === "webflow-day-night-v2";
|
|
3272
|
+
useEffect8(() => {
|
|
3273
|
+
const mq = window.matchMedia("(max-width: 991px)");
|
|
3274
|
+
const sync = () => setIxMedia(mq.matches ? "mobile" : "desktop");
|
|
3275
|
+
sync();
|
|
3276
|
+
mq.addEventListener("change", sync);
|
|
3277
|
+
return () => mq.removeEventListener("change", sync);
|
|
3278
|
+
}, []);
|
|
3279
|
+
const MotionHeadline = headlineLevel === "h1" ? motion3.h1 : motion3.h2;
|
|
3280
|
+
useLayoutEffect2(() => {
|
|
3281
|
+
if (!inlineDayNightHeadline) return;
|
|
3282
|
+
const syncNightPull = () => {
|
|
3283
|
+
const dayEl = dayWordRef.current;
|
|
3284
|
+
if (!dayEl) return;
|
|
3285
|
+
const w = dayEl.offsetWidth;
|
|
3286
|
+
const doc = document.documentElement;
|
|
3287
|
+
const rtl = doc.getAttribute("dir") === "rtl" || doc.lang.toLowerCase().startsWith("ar");
|
|
3288
|
+
if (rtl) {
|
|
3289
|
+
setNightMarginStart("0px");
|
|
3290
|
+
setNightMarginEnd(w ? `-${w}px` : "0px");
|
|
3291
|
+
} else {
|
|
3292
|
+
setNightMarginStart(w ? `-${w}px` : "0px");
|
|
3293
|
+
setNightMarginEnd("0px");
|
|
3294
|
+
}
|
|
3295
|
+
};
|
|
3296
|
+
syncNightPull();
|
|
3297
|
+
const ro = new ResizeObserver(syncNightPull);
|
|
3298
|
+
if (dayWordRef.current) ro.observe(dayWordRef.current);
|
|
3299
|
+
window.addEventListener("resize", syncNightPull);
|
|
3300
|
+
return () => {
|
|
3301
|
+
ro.disconnect();
|
|
3302
|
+
window.removeEventListener("resize", syncNightPull);
|
|
3303
|
+
};
|
|
3304
|
+
}, [
|
|
3305
|
+
inlineDayNightHeadline,
|
|
3306
|
+
inlineDayNightHeadline?.dayWord,
|
|
3307
|
+
inlineDayNightHeadline?.nightWord,
|
|
3308
|
+
inlineDayNightHeadline?.prefix
|
|
3309
|
+
]);
|
|
3078
3310
|
const { scrollYProgress } = useScroll2({
|
|
3079
3311
|
target: wrapperRef,
|
|
3080
3312
|
offset: ["start end", "end start"]
|
|
3081
3313
|
});
|
|
3082
3314
|
const smooth = useSpring2(scrollYProgress, SPRING2);
|
|
3083
|
-
const
|
|
3084
|
-
const
|
|
3315
|
+
const progress = webflowV2 ? scrollYProgress : smooth;
|
|
3316
|
+
const nightOpacity = useTransform2(progress, [FADE_START, FADE_END], [0, 1]);
|
|
3317
|
+
const channel = useTransform2(progress, [FADE_START, FADE_END], [TEXT_CHANNEL_DAY, TEXT_CHANNEL_NIGHT]);
|
|
3085
3318
|
const textColor = useMotionTemplate2`rgb(${channel}, ${channel}, ${channel})`;
|
|
3086
|
-
const dayOpacity = useTransform2(
|
|
3087
|
-
|
|
3319
|
+
const dayOpacity = useTransform2(progress, (t) => {
|
|
3320
|
+
if (webflowV2) {
|
|
3321
|
+
return ixMedia === "mobile" ? seg2(
|
|
3322
|
+
t,
|
|
3323
|
+
V2_TEXT_SCROLL_CROSSFADE_MOBILE_START,
|
|
3324
|
+
V2_TEXT_SCROLL_CROSSFADE_MOBILE_END,
|
|
3325
|
+
1,
|
|
3326
|
+
0
|
|
3327
|
+
) : seg2(
|
|
3328
|
+
t,
|
|
3329
|
+
V2_TEXT_SCROLL_CROSSFADE_DESKTOP_START,
|
|
3330
|
+
V2_TEXT_SCROLL_CROSSFADE_DESKTOP_END,
|
|
3331
|
+
1,
|
|
3332
|
+
0
|
|
3333
|
+
);
|
|
3334
|
+
}
|
|
3335
|
+
return seg2(t, FADE_START, FADE_END, 1, 0);
|
|
3336
|
+
});
|
|
3337
|
+
const nightOpacity2 = useTransform2(progress, (t) => {
|
|
3338
|
+
if (webflowV2) {
|
|
3339
|
+
return ixMedia === "mobile" ? seg2(
|
|
3340
|
+
t,
|
|
3341
|
+
V2_TEXT_SCROLL_CROSSFADE_MOBILE_START,
|
|
3342
|
+
V2_TEXT_SCROLL_CROSSFADE_MOBILE_END,
|
|
3343
|
+
0,
|
|
3344
|
+
1
|
|
3345
|
+
) : seg2(
|
|
3346
|
+
t,
|
|
3347
|
+
V2_TEXT_SCROLL_CROSSFADE_DESKTOP_START,
|
|
3348
|
+
V2_TEXT_SCROLL_CROSSFADE_DESKTOP_END,
|
|
3349
|
+
0,
|
|
3350
|
+
1
|
|
3351
|
+
);
|
|
3352
|
+
}
|
|
3353
|
+
return seg2(t, FADE_START, FADE_END, 0, 1);
|
|
3354
|
+
});
|
|
3355
|
+
const v2DescColor = useTransform2(progress, (t) => webflowV2DescriptionColor(t, ixMedia));
|
|
3356
|
+
const v2TitleColor = useTransform2(progress, (t) => webflowV2TitleColor(t, ixMedia));
|
|
3357
|
+
const v2DayWordOp = useTransform2(progress, (t) => webflowV2DayWordOpacity(t, ixMedia));
|
|
3358
|
+
const v2NightWordOp = useTransform2(progress, (t) => webflowV2NightWordOpacity(t, ixMedia));
|
|
3359
|
+
const v2DayHeight = useTransform2(
|
|
3360
|
+
progress,
|
|
3361
|
+
(t) => ixMedia === "mobile" ? `${webflowV2DayClipPercent(t, ixMedia)}%` : "100vh"
|
|
3362
|
+
);
|
|
3088
3363
|
const hasDescription = Boolean(dayDescription || nightDescription);
|
|
3089
|
-
|
|
3364
|
+
const useInlineHeadline = Boolean(inlineDayNightHeadline);
|
|
3365
|
+
const rootClass = [
|
|
3366
|
+
"dnt",
|
|
3367
|
+
headlineLevel === "h1" && "dnt--headline-h1",
|
|
3368
|
+
descriptionLevel === "body-lg" && "dnt--desc-body-lg",
|
|
3369
|
+
className
|
|
3370
|
+
].filter(Boolean).join(" ");
|
|
3371
|
+
return /* @__PURE__ */ jsxs24(
|
|
3090
3372
|
"div",
|
|
3091
3373
|
{
|
|
3092
3374
|
ref: wrapperRef,
|
|
3093
|
-
className:
|
|
3375
|
+
className: rootClass,
|
|
3094
3376
|
...props,
|
|
3095
|
-
children:
|
|
3096
|
-
/* @__PURE__ */
|
|
3097
|
-
|
|
3098
|
-
|
|
3099
|
-
|
|
3100
|
-
|
|
3101
|
-
|
|
3102
|
-
|
|
3103
|
-
|
|
3104
|
-
|
|
3105
|
-
|
|
3106
|
-
|
|
3107
|
-
|
|
3108
|
-
|
|
3109
|
-
|
|
3110
|
-
|
|
3111
|
-
|
|
3112
|
-
|
|
3113
|
-
|
|
3114
|
-
|
|
3115
|
-
|
|
3116
|
-
|
|
3117
|
-
|
|
3118
|
-
|
|
3119
|
-
|
|
3120
|
-
|
|
3121
|
-
|
|
3122
|
-
|
|
3123
|
-
|
|
3124
|
-
|
|
3125
|
-
|
|
3126
|
-
|
|
3127
|
-
|
|
3128
|
-
|
|
3129
|
-
|
|
3130
|
-
|
|
3131
|
-
|
|
3132
|
-
|
|
3133
|
-
|
|
3134
|
-
|
|
3135
|
-
|
|
3136
|
-
|
|
3137
|
-
|
|
3138
|
-
|
|
3139
|
-
|
|
3140
|
-
|
|
3141
|
-
|
|
3142
|
-
|
|
3143
|
-
|
|
3144
|
-
|
|
3145
|
-
|
|
3146
|
-
|
|
3147
|
-
|
|
3148
|
-
|
|
3149
|
-
|
|
3150
|
-
|
|
3151
|
-
|
|
3152
|
-
|
|
3377
|
+
children: [
|
|
3378
|
+
webflowV2 && /* @__PURE__ */ jsxs24("div", { className: "dnt__v2-background-wrapper", "aria-hidden": "true", children: [
|
|
3379
|
+
/* @__PURE__ */ jsx26(
|
|
3380
|
+
motion3.div,
|
|
3381
|
+
{
|
|
3382
|
+
className: "dnt__v2-bg-day trade-day-night_background-day is-alternative",
|
|
3383
|
+
style: {
|
|
3384
|
+
backgroundImage: `url(${dayImageUrl})`,
|
|
3385
|
+
height: v2DayHeight
|
|
3386
|
+
}
|
|
3387
|
+
}
|
|
3388
|
+
),
|
|
3389
|
+
/* @__PURE__ */ jsx26(
|
|
3390
|
+
"div",
|
|
3391
|
+
{
|
|
3392
|
+
className: "dnt__v2-bg-night trade-day-night_background-night is-alternative",
|
|
3393
|
+
style: { backgroundImage: `url(${nightImageUrl})` }
|
|
3394
|
+
}
|
|
3395
|
+
)
|
|
3396
|
+
] }),
|
|
3397
|
+
/* @__PURE__ */ jsxs24("div", { className: webflowV2 ? "dnt__sticky dnt__sticky--webflow-v2" : "dnt__sticky", children: [
|
|
3398
|
+
!webflowV2 && /* @__PURE__ */ jsxs24(Fragment3, { children: [
|
|
3399
|
+
/* @__PURE__ */ jsx26(
|
|
3400
|
+
"img",
|
|
3401
|
+
{
|
|
3402
|
+
className: "dnt__bg dnt__bg--day",
|
|
3403
|
+
src: dayImageUrl,
|
|
3404
|
+
alt: "",
|
|
3405
|
+
loading: "eager",
|
|
3406
|
+
draggable: false
|
|
3407
|
+
}
|
|
3408
|
+
),
|
|
3409
|
+
/* @__PURE__ */ jsx26(
|
|
3410
|
+
motion3.img,
|
|
3411
|
+
{
|
|
3412
|
+
className: "dnt__bg dnt__bg--night",
|
|
3413
|
+
src: nightImageUrl,
|
|
3414
|
+
alt: "",
|
|
3415
|
+
loading: "eager",
|
|
3416
|
+
draggable: false,
|
|
3417
|
+
style: { opacity: nightOpacity }
|
|
3418
|
+
}
|
|
3419
|
+
)
|
|
3420
|
+
] }),
|
|
3421
|
+
/* @__PURE__ */ jsx26("div", { className: "dnt__content", children: /* @__PURE__ */ jsx26("div", { className: "dnt__inner", children: webflowV2 ? /* @__PURE__ */ jsxs24("div", { className: "dnt__text-wrap", children: [
|
|
3422
|
+
useInlineHeadline && inlineDayNightHeadline ? /* @__PURE__ */ jsxs24(
|
|
3423
|
+
MotionHeadline,
|
|
3424
|
+
{
|
|
3425
|
+
className: "dnt__headline dnt__headline--inline-day-night",
|
|
3426
|
+
style: { color: v2TitleColor },
|
|
3427
|
+
"aria-label": `${inlineDayNightHeadline.prefix}${inlineDayNightHeadline.dayWord} / ${inlineDayNightHeadline.prefix}${inlineDayNightHeadline.nightWord}`,
|
|
3428
|
+
children: [
|
|
3429
|
+
/* @__PURE__ */ jsx26("span", { className: "dnt__headline-prefix", children: inlineDayNightHeadline.prefix }),
|
|
3430
|
+
/* @__PURE__ */ jsxs24("span", { className: "dnt__headline-pair", children: [
|
|
3431
|
+
/* @__PURE__ */ jsx26(
|
|
3432
|
+
motion3.span,
|
|
3433
|
+
{
|
|
3434
|
+
ref: dayWordRef,
|
|
3435
|
+
className: "dnt__headline-wday",
|
|
3436
|
+
style: { opacity: v2DayWordOp },
|
|
3437
|
+
children: inlineDayNightHeadline.dayWord
|
|
3438
|
+
}
|
|
3439
|
+
),
|
|
3440
|
+
/* @__PURE__ */ jsx26(
|
|
3441
|
+
motion3.span,
|
|
3442
|
+
{
|
|
3443
|
+
className: "dnt__headline-wnight",
|
|
3444
|
+
style: {
|
|
3445
|
+
opacity: v2NightWordOp,
|
|
3446
|
+
marginInlineStart: nightMarginStart,
|
|
3447
|
+
marginInlineEnd: nightMarginEnd
|
|
3448
|
+
},
|
|
3449
|
+
children: inlineDayNightHeadline.nightWord
|
|
3450
|
+
}
|
|
3451
|
+
)
|
|
3452
|
+
] })
|
|
3453
|
+
]
|
|
3454
|
+
}
|
|
3455
|
+
) : /* @__PURE__ */ jsxs24("div", { className: "dnt__crossfade-wrap", children: [
|
|
3456
|
+
/* @__PURE__ */ jsx26(
|
|
3457
|
+
MotionHeadline,
|
|
3458
|
+
{
|
|
3459
|
+
className: "dnt__headline",
|
|
3460
|
+
style: { color: v2TitleColor, opacity: dayOpacity },
|
|
3461
|
+
children: dayHeadline
|
|
3462
|
+
}
|
|
3463
|
+
),
|
|
3464
|
+
/* @__PURE__ */ jsx26(
|
|
3465
|
+
MotionHeadline,
|
|
3466
|
+
{
|
|
3467
|
+
className: "dnt__headline",
|
|
3468
|
+
"aria-hidden": "true",
|
|
3469
|
+
style: { color: v2TitleColor, opacity: nightOpacity2 },
|
|
3470
|
+
children: nightHeadline
|
|
3471
|
+
}
|
|
3472
|
+
)
|
|
3473
|
+
] }),
|
|
3474
|
+
hasDescription && /* @__PURE__ */ jsxs24("div", { className: "dnt__crossfade-wrap", children: [
|
|
3475
|
+
/* @__PURE__ */ jsx26(
|
|
3476
|
+
motion3.p,
|
|
3477
|
+
{
|
|
3478
|
+
className: "dnt__description",
|
|
3479
|
+
style: {
|
|
3480
|
+
color: v2DescColor,
|
|
3481
|
+
opacity: dayOpacity
|
|
3482
|
+
},
|
|
3483
|
+
children: dayDescription ?? ""
|
|
3484
|
+
}
|
|
3485
|
+
),
|
|
3486
|
+
/* @__PURE__ */ jsx26(
|
|
3487
|
+
motion3.p,
|
|
3488
|
+
{
|
|
3489
|
+
className: "dnt__description",
|
|
3490
|
+
"aria-hidden": "true",
|
|
3491
|
+
style: {
|
|
3492
|
+
color: v2DescColor,
|
|
3493
|
+
opacity: nightOpacity2
|
|
3494
|
+
},
|
|
3495
|
+
children: nightDescription ?? ""
|
|
3496
|
+
}
|
|
3497
|
+
)
|
|
3498
|
+
] }),
|
|
3499
|
+
!hideCta && /* @__PURE__ */ jsx26("a", { href: ctaHref, className: "dnt__btn", children: ctaLabel })
|
|
3500
|
+
] }) : /* @__PURE__ */ jsxs24(
|
|
3501
|
+
motion3.div,
|
|
3502
|
+
{
|
|
3503
|
+
className: "dnt__text-wrap",
|
|
3504
|
+
style: { color: textColor },
|
|
3505
|
+
children: [
|
|
3506
|
+
useInlineHeadline && inlineDayNightHeadline ? /* @__PURE__ */ jsxs24(
|
|
3507
|
+
MotionHeadline,
|
|
3153
3508
|
{
|
|
3154
|
-
className: "
|
|
3155
|
-
"aria-
|
|
3156
|
-
|
|
3157
|
-
|
|
3509
|
+
className: "dnt__headline dnt__headline--inline-day-night",
|
|
3510
|
+
"aria-label": `${inlineDayNightHeadline.prefix}${inlineDayNightHeadline.dayWord} / ${inlineDayNightHeadline.prefix}${inlineDayNightHeadline.nightWord}`,
|
|
3511
|
+
children: [
|
|
3512
|
+
/* @__PURE__ */ jsx26("span", { className: "dnt__headline-prefix", children: inlineDayNightHeadline.prefix }),
|
|
3513
|
+
/* @__PURE__ */ jsxs24("span", { className: "dnt__headline-pair", children: [
|
|
3514
|
+
/* @__PURE__ */ jsx26(
|
|
3515
|
+
motion3.span,
|
|
3516
|
+
{
|
|
3517
|
+
ref: dayWordRef,
|
|
3518
|
+
className: "dnt__headline-wday",
|
|
3519
|
+
style: { opacity: dayOpacity },
|
|
3520
|
+
children: inlineDayNightHeadline.dayWord
|
|
3521
|
+
}
|
|
3522
|
+
),
|
|
3523
|
+
/* @__PURE__ */ jsx26(
|
|
3524
|
+
motion3.span,
|
|
3525
|
+
{
|
|
3526
|
+
className: "dnt__headline-wnight",
|
|
3527
|
+
style: {
|
|
3528
|
+
opacity: nightOpacity2,
|
|
3529
|
+
marginInlineStart: nightMarginStart,
|
|
3530
|
+
marginInlineEnd: nightMarginEnd
|
|
3531
|
+
},
|
|
3532
|
+
children: inlineDayNightHeadline.nightWord
|
|
3533
|
+
}
|
|
3534
|
+
)
|
|
3535
|
+
] })
|
|
3536
|
+
]
|
|
3158
3537
|
}
|
|
3159
|
-
)
|
|
3160
|
-
|
|
3161
|
-
|
|
3162
|
-
|
|
3163
|
-
|
|
3164
|
-
|
|
3165
|
-
|
|
3538
|
+
) : /* @__PURE__ */ jsxs24("div", { className: "dnt__crossfade-wrap", children: [
|
|
3539
|
+
/* @__PURE__ */ jsx26(
|
|
3540
|
+
MotionHeadline,
|
|
3541
|
+
{
|
|
3542
|
+
className: "dnt__headline",
|
|
3543
|
+
style: { opacity: dayOpacity },
|
|
3544
|
+
children: dayHeadline
|
|
3545
|
+
}
|
|
3546
|
+
),
|
|
3547
|
+
/* @__PURE__ */ jsx26(
|
|
3548
|
+
MotionHeadline,
|
|
3549
|
+
{
|
|
3550
|
+
className: "dnt__headline",
|
|
3551
|
+
"aria-hidden": "true",
|
|
3552
|
+
style: { opacity: nightOpacity2 },
|
|
3553
|
+
children: nightHeadline
|
|
3554
|
+
}
|
|
3555
|
+
)
|
|
3556
|
+
] }),
|
|
3557
|
+
hasDescription && /* @__PURE__ */ jsxs24("div", { className: "dnt__crossfade-wrap", children: [
|
|
3558
|
+
/* @__PURE__ */ jsx26(
|
|
3559
|
+
motion3.p,
|
|
3560
|
+
{
|
|
3561
|
+
className: "dnt__description",
|
|
3562
|
+
style: { opacity: dayOpacity },
|
|
3563
|
+
children: dayDescription ?? ""
|
|
3564
|
+
}
|
|
3565
|
+
),
|
|
3566
|
+
/* @__PURE__ */ jsx26(
|
|
3567
|
+
motion3.p,
|
|
3568
|
+
{
|
|
3569
|
+
className: "dnt__description",
|
|
3570
|
+
"aria-hidden": "true",
|
|
3571
|
+
style: { opacity: nightOpacity2 },
|
|
3572
|
+
children: nightDescription ?? ""
|
|
3573
|
+
}
|
|
3574
|
+
)
|
|
3575
|
+
] }),
|
|
3576
|
+
!hideCta && /* @__PURE__ */ jsx26("a", { href: ctaHref, className: "dnt__btn", children: ctaLabel })
|
|
3577
|
+
]
|
|
3578
|
+
}
|
|
3579
|
+
) }) })
|
|
3580
|
+
] })
|
|
3581
|
+
]
|
|
3166
3582
|
}
|
|
3167
3583
|
);
|
|
3168
3584
|
};
|
|
3169
3585
|
|
|
3586
|
+
// templates/DayNightTransition/dayNightTransitionPresets.ts
|
|
3587
|
+
var dayNightTransitionV2Preset = {
|
|
3588
|
+
className: "dnt--layout-v2 dnt--webflow-v2",
|
|
3589
|
+
scrollPreset: "webflow-day-night-v2",
|
|
3590
|
+
dayImageUrl: "https://cdn.prod.website-files.com/68da5c86c91c54f39c86c28a/68da5c86c91c54f39c86cd8f_trade_day.webp",
|
|
3591
|
+
nightImageUrl: "https://cdn.prod.website-files.com/66585fe0e1dc7e70cc75d440/6757df573bf331c84b6c69fe_trade_night.webp",
|
|
3592
|
+
dayHeadline: "Section title light\n",
|
|
3593
|
+
nightHeadline: "Section title dark\n",
|
|
3594
|
+
dayDescription: "This section is designed to give your visitors a quick overview of why your solution is the right choice. Use this space to provide high-level context.\n",
|
|
3595
|
+
nightDescription: "This section is designed to give your visitors a quick overview of why your solution is the right choice. Use this space to provide high-level context.",
|
|
3596
|
+
ctaLabel: "Open account",
|
|
3597
|
+
ctaHref: "#"
|
|
3598
|
+
};
|
|
3599
|
+
|
|
3170
3600
|
// templates/LogoMarquee/LogoMarquee.tsx
|
|
3171
|
-
import { useRef as
|
|
3601
|
+
import { useRef as useRef11 } from "react";
|
|
3172
3602
|
import {
|
|
3173
3603
|
motion as motion4,
|
|
3174
3604
|
useScroll as useScroll3,
|
|
@@ -3176,7 +3606,7 @@ import {
|
|
|
3176
3606
|
useAnimationFrame,
|
|
3177
3607
|
useMotionValue
|
|
3178
3608
|
} from "framer-motion";
|
|
3179
|
-
import { jsx as
|
|
3609
|
+
import { jsx as jsx27, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
3180
3610
|
function modWrap(min, max, v) {
|
|
3181
3611
|
const range = max - min;
|
|
3182
3612
|
return ((v - min) % range + range) % range + min;
|
|
@@ -3233,8 +3663,8 @@ var LogoMarquee = ({
|
|
|
3233
3663
|
const scrollVelocity = useVelocity(scrollY);
|
|
3234
3664
|
const col1Y = useMotionValue(0);
|
|
3235
3665
|
const col2Y = useMotionValue(0);
|
|
3236
|
-
const col1Ref =
|
|
3237
|
-
const col2Ref =
|
|
3666
|
+
const col1Ref = useRef11(null);
|
|
3667
|
+
const col2Ref = useRef11(null);
|
|
3238
3668
|
useAnimationFrame((_, delta) => {
|
|
3239
3669
|
const raw = scrollVelocity.get();
|
|
3240
3670
|
if (Math.abs(raw) < DEADZONE) return;
|
|
@@ -3247,21 +3677,21 @@ var LogoMarquee = ({
|
|
|
3247
3677
|
});
|
|
3248
3678
|
const track1 = [...col1Logos, ...col1Logos];
|
|
3249
3679
|
const track2 = [...col2Logos, ...col2Logos];
|
|
3250
|
-
return /* @__PURE__ */
|
|
3680
|
+
return /* @__PURE__ */ jsx27(
|
|
3251
3681
|
"section",
|
|
3252
3682
|
{
|
|
3253
3683
|
className: ["lm", className].filter(Boolean).join(" "),
|
|
3254
3684
|
...props,
|
|
3255
3685
|
children: /* @__PURE__ */ jsxs25("div", { className: "lm__inner", children: [
|
|
3256
|
-
/* @__PURE__ */
|
|
3257
|
-
/* @__PURE__ */
|
|
3258
|
-
/* @__PURE__ */
|
|
3686
|
+
/* @__PURE__ */ jsx27("div", { className: "lm__media", children: /* @__PURE__ */ jsxs25("div", { className: "lm__carousel", children: [
|
|
3687
|
+
/* @__PURE__ */ jsx27("div", { className: "lm__fade lm__fade--top", "aria-hidden": "true" }),
|
|
3688
|
+
/* @__PURE__ */ jsx27(
|
|
3259
3689
|
motion4.div,
|
|
3260
3690
|
{
|
|
3261
3691
|
ref: col1Ref,
|
|
3262
3692
|
className: "lm__col",
|
|
3263
3693
|
style: { y: col1Y },
|
|
3264
|
-
children: track1.map((logo, i) => /* @__PURE__ */
|
|
3694
|
+
children: track1.map((logo, i) => /* @__PURE__ */ jsx27("div", { className: "lm__card", children: /* @__PURE__ */ jsx27("div", { className: "lm__card-img-wrap", children: /* @__PURE__ */ jsx27(
|
|
3265
3695
|
"img",
|
|
3266
3696
|
{
|
|
3267
3697
|
src: logo.url,
|
|
@@ -3272,13 +3702,13 @@ var LogoMarquee = ({
|
|
|
3272
3702
|
) }) }, `c1-${i}`))
|
|
3273
3703
|
}
|
|
3274
3704
|
),
|
|
3275
|
-
/* @__PURE__ */
|
|
3705
|
+
/* @__PURE__ */ jsx27(
|
|
3276
3706
|
motion4.div,
|
|
3277
3707
|
{
|
|
3278
3708
|
ref: col2Ref,
|
|
3279
3709
|
className: "lm__col",
|
|
3280
3710
|
style: { y: col2Y },
|
|
3281
|
-
children: track2.map((logo, i) => /* @__PURE__ */
|
|
3711
|
+
children: track2.map((logo, i) => /* @__PURE__ */ jsx27("div", { className: "lm__card", children: /* @__PURE__ */ jsx27("div", { className: "lm__card-img-wrap", children: /* @__PURE__ */ jsx27(
|
|
3282
3712
|
"img",
|
|
3283
3713
|
{
|
|
3284
3714
|
src: logo.url,
|
|
@@ -3289,17 +3719,17 @@ var LogoMarquee = ({
|
|
|
3289
3719
|
) }) }, `c2-${i}`))
|
|
3290
3720
|
}
|
|
3291
3721
|
),
|
|
3292
|
-
/* @__PURE__ */
|
|
3722
|
+
/* @__PURE__ */ jsx27("div", { className: "lm__fade lm__fade--bottom", "aria-hidden": "true" })
|
|
3293
3723
|
] }) }),
|
|
3294
3724
|
/* @__PURE__ */ jsxs25("div", { className: "lm__content", children: [
|
|
3295
|
-
/* @__PURE__ */
|
|
3725
|
+
/* @__PURE__ */ jsx27("h2", { className: "lm__headline", children: headline }),
|
|
3296
3726
|
/* @__PURE__ */ jsxs25("div", { className: "lm__text-group", children: [
|
|
3297
|
-
/* @__PURE__ */
|
|
3298
|
-
/* @__PURE__ */
|
|
3727
|
+
/* @__PURE__ */ jsx27("p", { className: "lm__body", children: body }),
|
|
3728
|
+
/* @__PURE__ */ jsx27("p", { className: "lm__disclaimer", children: disclaimer })
|
|
3299
3729
|
] }),
|
|
3300
3730
|
/* @__PURE__ */ jsxs25("a", { href: ctaHref, className: "lm__link", children: [
|
|
3301
3731
|
ctaLabel,
|
|
3302
|
-
/* @__PURE__ */
|
|
3732
|
+
/* @__PURE__ */ jsx27("span", { className: "lm__link-icon", "aria-hidden": "true", children: /* @__PURE__ */ jsx27("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ jsx27("path", { d: "M3 8H13M13 8L9 4M13 8L9 12", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }) }) })
|
|
3303
3733
|
] })
|
|
3304
3734
|
] })
|
|
3305
3735
|
] })
|
|
@@ -3350,7 +3780,7 @@ var appstore_linux_dark_default = "./appstore-linux-dark-RVH7CBM4.svg";
|
|
|
3350
3780
|
var appstore_browser_dark_default = "./appstore-browser-dark-2E6TK6JH.svg";
|
|
3351
3781
|
|
|
3352
3782
|
// primitives/DownloadBadge/DownloadBadge.tsx
|
|
3353
|
-
import { jsx as
|
|
3783
|
+
import { jsx as jsx28 } from "react/jsx-runtime";
|
|
3354
3784
|
var BADGE_ASSETS = {
|
|
3355
3785
|
light: {
|
|
3356
3786
|
googleplay: { src: appstore_googleplay_light_default, alt: "Get it on Google Play" },
|
|
@@ -3379,7 +3809,7 @@ var DownloadBadge = ({
|
|
|
3379
3809
|
...props
|
|
3380
3810
|
}) => {
|
|
3381
3811
|
const { src, alt } = BADGE_ASSETS[colorScheme][platform];
|
|
3382
|
-
return /* @__PURE__ */
|
|
3812
|
+
return /* @__PURE__ */ jsx28(
|
|
3383
3813
|
"a",
|
|
3384
3814
|
{
|
|
3385
3815
|
className: [
|
|
@@ -3392,13 +3822,13 @@ var DownloadBadge = ({
|
|
|
3392
3822
|
target: "_blank",
|
|
3393
3823
|
rel: "noopener noreferrer",
|
|
3394
3824
|
...props,
|
|
3395
|
-
children: /* @__PURE__ */
|
|
3825
|
+
children: /* @__PURE__ */ jsx28("img", { className: "download-badge__img", src, alt })
|
|
3396
3826
|
}
|
|
3397
3827
|
);
|
|
3398
3828
|
};
|
|
3399
3829
|
|
|
3400
3830
|
// templates/Steps/Steps.tsx
|
|
3401
|
-
import { jsx as
|
|
3831
|
+
import { jsx as jsx29, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
3402
3832
|
var Steps = ({
|
|
3403
3833
|
title,
|
|
3404
3834
|
steps,
|
|
@@ -3410,8 +3840,8 @@ var Steps = ({
|
|
|
3410
3840
|
"steps__container",
|
|
3411
3841
|
imagePosition === "right" ? "steps__container--image-right" : ""
|
|
3412
3842
|
].filter(Boolean).join(" ");
|
|
3413
|
-
return /* @__PURE__ */
|
|
3414
|
-
image && /* @__PURE__ */
|
|
3843
|
+
return /* @__PURE__ */ jsx29("section", { className: "steps", children: /* @__PURE__ */ jsxs26("div", { className: containerClass, children: [
|
|
3844
|
+
image && /* @__PURE__ */ jsx29("div", { className: "steps__image-wrapper", children: /* @__PURE__ */ jsx29(
|
|
3415
3845
|
"img",
|
|
3416
3846
|
{
|
|
3417
3847
|
src: image,
|
|
@@ -3420,12 +3850,12 @@ var Steps = ({
|
|
|
3420
3850
|
}
|
|
3421
3851
|
) }),
|
|
3422
3852
|
/* @__PURE__ */ jsxs26("div", { className: "steps__content", children: [
|
|
3423
|
-
/* @__PURE__ */
|
|
3424
|
-
/* @__PURE__ */
|
|
3425
|
-
/* @__PURE__ */
|
|
3853
|
+
/* @__PURE__ */ jsx29("h2", { className: "steps__title", children: title }),
|
|
3854
|
+
/* @__PURE__ */ jsx29("ol", { className: "steps__list", children: steps.map((step, index) => /* @__PURE__ */ jsx29("li", { className: "steps__item", children: /* @__PURE__ */ jsxs26("div", { className: "steps__item-inner", children: [
|
|
3855
|
+
/* @__PURE__ */ jsx29("span", { className: "steps__number", "aria-hidden": "true", children: index + 1 }),
|
|
3426
3856
|
/* @__PURE__ */ jsxs26("div", { className: "steps__item-body", children: [
|
|
3427
|
-
/* @__PURE__ */
|
|
3428
|
-
/* @__PURE__ */
|
|
3857
|
+
/* @__PURE__ */ jsx29("h3", { className: "steps__item-title", children: step.title }),
|
|
3858
|
+
/* @__PURE__ */ jsx29("p", { className: "steps__item-description", children: step.description })
|
|
3429
3859
|
] })
|
|
3430
3860
|
] }) }, index)) })
|
|
3431
3861
|
] })
|
|
@@ -3433,7 +3863,7 @@ var Steps = ({
|
|
|
3433
3863
|
};
|
|
3434
3864
|
|
|
3435
3865
|
// templates/DownloadBanner/DownloadBanner.tsx
|
|
3436
|
-
import { jsx as
|
|
3866
|
+
import { jsx as jsx30, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
3437
3867
|
var DownloadBanner = ({
|
|
3438
3868
|
style = "light-2",
|
|
3439
3869
|
qrCodeImage,
|
|
@@ -3458,9 +3888,9 @@ var DownloadBanner = ({
|
|
|
3458
3888
|
disclaimer
|
|
3459
3889
|
}) => {
|
|
3460
3890
|
const colorScheme = style === "dark" ? "dark" : "light";
|
|
3461
|
-
return /* @__PURE__ */
|
|
3891
|
+
return /* @__PURE__ */ jsx30("section", { className: `db-section db-section--${style}`, children: /* @__PURE__ */ jsx30("div", { className: "db-container", children: /* @__PURE__ */ jsxs27("div", { className: "db-card", children: [
|
|
3462
3892
|
/* @__PURE__ */ jsxs27("div", { className: "db-qr-block", children: [
|
|
3463
|
-
qrCodeImage && /* @__PURE__ */
|
|
3893
|
+
qrCodeImage && /* @__PURE__ */ jsx30(
|
|
3464
3894
|
"img",
|
|
3465
3895
|
{
|
|
3466
3896
|
className: "db-qr-image",
|
|
@@ -3469,23 +3899,91 @@ var DownloadBanner = ({
|
|
|
3469
3899
|
}
|
|
3470
3900
|
),
|
|
3471
3901
|
/* @__PURE__ */ jsxs27("div", { className: "db-qr-text", children: [
|
|
3472
|
-
/* @__PURE__ */
|
|
3473
|
-
/* @__PURE__ */
|
|
3474
|
-
/* @__PURE__ */
|
|
3475
|
-
disclaimer && /* @__PURE__ */
|
|
3902
|
+
/* @__PURE__ */ jsx30("span", { className: "db-qr-text__title db-qr-text__title--desktop", children: qrTitle }),
|
|
3903
|
+
/* @__PURE__ */ jsx30("h2", { className: "db-qr-text__subtitle db-qr-text__subtitle--desktop", children: qrSubtitle }),
|
|
3904
|
+
/* @__PURE__ */ jsx30("span", { className: "db-qr-text__title db-qr-text__title--mobile", children: mobileTitle }),
|
|
3905
|
+
disclaimer && /* @__PURE__ */ jsx30("span", { className: "db-disclaimer", children: disclaimer })
|
|
3476
3906
|
] })
|
|
3477
3907
|
] }),
|
|
3478
3908
|
/* @__PURE__ */ jsxs27("div", { className: "db-badges", children: [
|
|
3479
|
-
showGooglePlay && /* @__PURE__ */
|
|
3480
|
-
showAppGallery && /* @__PURE__ */
|
|
3481
|
-
showMacOS && /* @__PURE__ */
|
|
3482
|
-
showWindows && /* @__PURE__ */
|
|
3483
|
-
showLinux && /* @__PURE__ */
|
|
3484
|
-
showAppStore && /* @__PURE__ */
|
|
3485
|
-
showWeb && /* @__PURE__ */
|
|
3909
|
+
showGooglePlay && /* @__PURE__ */ jsx30(DownloadBadge, { platform: "googleplay", colorScheme, href: googlePlayHref }),
|
|
3910
|
+
showAppGallery && /* @__PURE__ */ jsx30(DownloadBadge, { platform: "appgallery", colorScheme, href: appGalleryHref }),
|
|
3911
|
+
showMacOS && /* @__PURE__ */ jsx30(DownloadBadge, { platform: "macos", colorScheme, href: macOSHref }),
|
|
3912
|
+
showWindows && /* @__PURE__ */ jsx30(DownloadBadge, { platform: "windows", colorScheme, href: windowsHref }),
|
|
3913
|
+
showLinux && /* @__PURE__ */ jsx30(DownloadBadge, { platform: "linux", colorScheme, href: linuxHref }),
|
|
3914
|
+
showAppStore && /* @__PURE__ */ jsx30(DownloadBadge, { platform: "appstore", colorScheme, href: appStoreHref }),
|
|
3915
|
+
showWeb && /* @__PURE__ */ jsx30(DownloadBadge, { platform: "web", colorScheme, href: webHref })
|
|
3486
3916
|
] })
|
|
3487
3917
|
] }) }) });
|
|
3488
3918
|
};
|
|
3919
|
+
|
|
3920
|
+
// templates/TextScroll/TextScroll.tsx
|
|
3921
|
+
import { useEffect as useEffect9, useRef as useRef12 } from "react";
|
|
3922
|
+
import { gsap } from "gsap";
|
|
3923
|
+
import { ScrollTrigger } from "gsap/ScrollTrigger";
|
|
3924
|
+
import { jsx as jsx31, jsxs as jsxs28 } from "react/jsx-runtime";
|
|
3925
|
+
gsap.registerPlugin(ScrollTrigger);
|
|
3926
|
+
var TextScroll = ({ text, className }) => {
|
|
3927
|
+
const sectionRef = useRef12(null);
|
|
3928
|
+
const wordsRef = useRef12([]);
|
|
3929
|
+
const words = text.split(/\s+/).filter(Boolean);
|
|
3930
|
+
useEffect9(() => {
|
|
3931
|
+
const section = sectionRef.current;
|
|
3932
|
+
const wordEls = wordsRef.current.filter(Boolean);
|
|
3933
|
+
if (!section || wordEls.length === 0) return;
|
|
3934
|
+
const isMobile = window.matchMedia("(max-width: 767px)").matches;
|
|
3935
|
+
const startValue = isMobile ? "top 35%" : "top center";
|
|
3936
|
+
const endValue = isMobile ? "bottom 90%" : "bottom center";
|
|
3937
|
+
const rafId = requestAnimationFrame(() => {
|
|
3938
|
+
gsap.set(wordEls, { opacity: 0.2 });
|
|
3939
|
+
const tl = gsap.timeline({
|
|
3940
|
+
scrollTrigger: {
|
|
3941
|
+
trigger: section,
|
|
3942
|
+
start: startValue,
|
|
3943
|
+
end: endValue,
|
|
3944
|
+
scrub: 2
|
|
3945
|
+
}
|
|
3946
|
+
});
|
|
3947
|
+
tl.to(wordEls, {
|
|
3948
|
+
opacity: 1,
|
|
3949
|
+
stagger: 0.1,
|
|
3950
|
+
ease: "none"
|
|
3951
|
+
});
|
|
3952
|
+
section._tl = tl;
|
|
3953
|
+
});
|
|
3954
|
+
return () => {
|
|
3955
|
+
cancelAnimationFrame(rafId);
|
|
3956
|
+
const tl = section._tl;
|
|
3957
|
+
if (tl) {
|
|
3958
|
+
tl.scrollTrigger?.kill();
|
|
3959
|
+
tl.kill();
|
|
3960
|
+
}
|
|
3961
|
+
gsap.set(wordEls, { clearProps: "opacity" });
|
|
3962
|
+
};
|
|
3963
|
+
}, [text]);
|
|
3964
|
+
return /* @__PURE__ */ jsx31(
|
|
3965
|
+
"section",
|
|
3966
|
+
{
|
|
3967
|
+
ref: sectionRef,
|
|
3968
|
+
className: ["ts", className].filter(Boolean).join(" "),
|
|
3969
|
+
children: /* @__PURE__ */ jsx31("div", { className: "ts__inner", children: /* @__PURE__ */ jsx31("p", { className: "ts__text", "aria-label": text, children: words.map((word, i) => /* @__PURE__ */ jsxs28(
|
|
3970
|
+
"span",
|
|
3971
|
+
{
|
|
3972
|
+
ref: (el) => {
|
|
3973
|
+
if (el) wordsRef.current[i] = el;
|
|
3974
|
+
},
|
|
3975
|
+
className: "ts__word",
|
|
3976
|
+
"aria-hidden": "true",
|
|
3977
|
+
children: [
|
|
3978
|
+
word,
|
|
3979
|
+
i < words.length - 1 ? " " : ""
|
|
3980
|
+
]
|
|
3981
|
+
},
|
|
3982
|
+
i
|
|
3983
|
+
)) }) })
|
|
3984
|
+
}
|
|
3985
|
+
);
|
|
3986
|
+
};
|
|
3489
3987
|
export {
|
|
3490
3988
|
AVATAR_DATA,
|
|
3491
3989
|
Accordion,
|
|
@@ -3499,25 +3997,28 @@ export {
|
|
|
3499
3997
|
Chip,
|
|
3500
3998
|
ChipDropdown,
|
|
3501
3999
|
DayNightTransition,
|
|
4000
|
+
DotLottieInView,
|
|
3502
4001
|
DownloadBadge,
|
|
3503
4002
|
DownloadBanner,
|
|
4003
|
+
FEATURE_SCROLL_DATA,
|
|
3504
4004
|
FeatureCards,
|
|
3505
4005
|
FeatureCardsSecondary,
|
|
4006
|
+
FeatureScroll,
|
|
3506
4007
|
Footer,
|
|
3507
4008
|
Hero,
|
|
3508
4009
|
Link,
|
|
3509
4010
|
LogoMarquee,
|
|
3510
4011
|
Navbar,
|
|
3511
4012
|
Pagination,
|
|
3512
|
-
SCROLLYTELLING_DATA,
|
|
3513
4013
|
STEPS_DATA,
|
|
3514
|
-
Scrollytelling,
|
|
3515
4014
|
SearchField,
|
|
3516
4015
|
Stats,
|
|
3517
4016
|
Steps,
|
|
3518
4017
|
StickyStackedCards,
|
|
3519
4018
|
TEXT_CONTENT,
|
|
3520
4019
|
Tag,
|
|
3521
|
-
TextField
|
|
4020
|
+
TextField,
|
|
4021
|
+
TextScroll,
|
|
4022
|
+
dayNightTransitionV2Preset
|
|
3522
4023
|
};
|
|
3523
4024
|
//# sourceMappingURL=index.mjs.map
|