@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.css +185 -139
- package/dist/index.css.map +1 -1
- package/dist/index.d.mts +27 -10
- package/dist/index.d.ts +27 -10
- package/dist/index.js +378 -278
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +322 -223
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
- package/tokens.css +17 -0
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/
|
|
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
|
-
|
|
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,
|
|
1967
|
+
var ChevronRight2 = () => /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
1902
1968
|
"svg",
|
|
1903
1969
|
{
|
|
1904
|
-
className: "
|
|
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,
|
|
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,
|
|
1929
|
-
|
|
1994
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
1995
|
+
DotLottieInView,
|
|
1930
1996
|
{
|
|
1931
1997
|
src: item.mediaUrl,
|
|
1932
|
-
|
|
1933
|
-
autoplay: active
|
|
1998
|
+
enabled: active
|
|
1934
1999
|
}
|
|
1935
2000
|
);
|
|
1936
2001
|
}
|
|
1937
|
-
return /* @__PURE__ */ (0,
|
|
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
|
|
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,
|
|
1954
|
-
const
|
|
1955
|
-
(0,
|
|
1956
|
-
|
|
1957
|
-
if (
|
|
1958
|
-
const
|
|
1959
|
-
|
|
1960
|
-
|
|
1961
|
-
|
|
1962
|
-
|
|
1963
|
-
|
|
1964
|
-
|
|
1965
|
-
|
|
1966
|
-
|
|
1967
|
-
|
|
1968
|
-
|
|
1969
|
-
|
|
1970
|
-
|
|
1971
|
-
|
|
1972
|
-
|
|
1973
|
-
|
|
1974
|
-
|
|
1975
|
-
|
|
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
|
-
|
|
1979
|
-
|
|
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
|
-
"
|
|
1983
|
-
`
|
|
2068
|
+
"fs",
|
|
2069
|
+
`fs--${variant}`,
|
|
1984
2070
|
className
|
|
1985
2071
|
].filter(Boolean).join(" ");
|
|
1986
|
-
|
|
1987
|
-
/* @__PURE__ */ (0,
|
|
1988
|
-
|
|
1989
|
-
|
|
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
|
-
|
|
1993
|
-
|
|
1994
|
-
|
|
1995
|
-
|
|
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
|
-
|
|
2000
|
-
|
|
2001
|
-
|
|
2002
|
-
|
|
2003
|
-
|
|
2004
|
-
|
|
2005
|
-
|
|
2006
|
-
|
|
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
|
-
|
|
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,
|
|
2018
|
-
|
|
2019
|
-
|
|
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: "
|
|
2122
|
+
className: "fs__item-link",
|
|
2024
2123
|
children: [
|
|
2025
|
-
/* @__PURE__ */ (0,
|
|
2026
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
2036
|
-
/* @__PURE__ */ (0,
|
|
2037
|
-
/* @__PURE__ */ (0,
|
|
2038
|
-
/* @__PURE__ */ (0,
|
|
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: "
|
|
2142
|
+
className: "fs__item-link",
|
|
2043
2143
|
children: [
|
|
2044
|
-
/* @__PURE__ */ (0,
|
|
2045
|
-
/* @__PURE__ */ (0,
|
|
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
|
|
2056
|
-
var
|
|
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,
|
|
2086
|
-
(0,
|
|
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,
|
|
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,
|
|
2126
|
-
/* @__PURE__ */ (0,
|
|
2127
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
2154
|
-
/* @__PURE__ */ (0,
|
|
2155
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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
|
|
2274
|
+
var import_react13 = require("react");
|
|
2176
2275
|
var import_framer_motion = require("framer-motion");
|
|
2177
|
-
var
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
2499
|
-
/* @__PURE__ */ (0,
|
|
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
|
|
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
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
2627
|
-
/* @__PURE__ */ (0,
|
|
2628
|
-
/* @__PURE__ */ (0,
|
|
2629
|
-
section.items.map((link) => /* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
2665
|
-
/* @__PURE__ */ (0,
|
|
2666
|
-
/* @__PURE__ */ (0,
|
|
2667
|
-
/* @__PURE__ */ (0,
|
|
2668
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
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,
|
|
2688
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
2795
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(ChevronDownIcon3, { className: "navbar__drawer-trigger__chevron" })
|
|
2697
2796
|
]
|
|
2698
2797
|
}
|
|
2699
2798
|
),
|
|
2700
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
2710
|
-
/* @__PURE__ */ (0,
|
|
2711
|
-
/* @__PURE__ */ (0,
|
|
2712
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
2749
|
-
const [mobileOpen, setMobileOpen] = (0,
|
|
2750
|
-
const [mobileExpanded, setMobileExpanded] = (0,
|
|
2751
|
-
const [scrolled, setScrolled] = (0,
|
|
2752
|
-
const [langDropdownOpen, setLangDropdownOpen] = (0,
|
|
2753
|
-
const [mobileLangOpen, setMobileLangOpen] = (0,
|
|
2754
|
-
const hoverTimeoutRef = (0,
|
|
2755
|
-
const langHoverTimeoutRef = (0,
|
|
2756
|
-
const pillAreaRef = (0,
|
|
2757
|
-
const langBtnRef = (0,
|
|
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,
|
|
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,
|
|
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,
|
|
2875
|
+
(0, import_react14.useEffect)(() => {
|
|
2777
2876
|
if (!mobileOpen) setMobileLangOpen(false);
|
|
2778
2877
|
}, [mobileOpen]);
|
|
2779
|
-
(0,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
2906
|
+
const handleLangEnter = (0, import_react14.useCallback)(() => {
|
|
2808
2907
|
clearLangHoverTimeout();
|
|
2809
2908
|
setLangDropdownOpen(true);
|
|
2810
2909
|
}, [clearLangHoverTimeout]);
|
|
2811
|
-
const handleLangLeave = (0,
|
|
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,
|
|
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,
|
|
2919
|
+
const handleNavEnter = (0, import_react14.useCallback)((label) => {
|
|
2821
2920
|
clearHoverTimeout();
|
|
2822
2921
|
setOpenDropdown(label);
|
|
2823
2922
|
}, [clearHoverTimeout]);
|
|
2824
|
-
const handleNavLeave = (0,
|
|
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,
|
|
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,
|
|
2836
|
-
/* @__PURE__ */ (0,
|
|
2837
|
-
/* @__PURE__ */ (0,
|
|
2838
|
-
/* @__PURE__ */ (0,
|
|
2839
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
2903
|
-
loginHref && /* @__PURE__ */ (0,
|
|
2904
|
-
ctaHref && /* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
2949
|
-
loginHref && /* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
2960
|
-
loginHref && /* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
3023
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
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,
|
|
3039
|
-
loginHref && /* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
3172
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(ChevronLeftIcon, {})
|
|
3074
3173
|
}
|
|
3075
3174
|
),
|
|
3076
|
-
/* @__PURE__ */ (0,
|
|
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
|
|
3199
|
+
var import_react15 = require("react");
|
|
3101
3200
|
var import_framer_motion3 = require("framer-motion");
|
|
3102
|
-
var
|
|
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 = "
|
|
3114
|
-
nightHeadline = "
|
|
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,
|
|
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,
|
|
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,
|
|
3141
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
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,
|
|
3169
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
3188
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
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
|
|
3315
|
+
var import_react16 = require("react");
|
|
3217
3316
|
var import_framer_motion4 = require("framer-motion");
|
|
3218
|
-
var
|
|
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,
|
|
3276
|
-
const col2Ref = (0,
|
|
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,
|
|
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,
|
|
3295
|
-
/* @__PURE__ */ (0,
|
|
3296
|
-
/* @__PURE__ */ (0,
|
|
3297
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
3430
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { className: "lm__fade lm__fade--bottom", "aria-hidden": "true" })
|
|
3332
3431
|
] }) }),
|
|
3333
|
-
/* @__PURE__ */ (0,
|
|
3334
|
-
/* @__PURE__ */ (0,
|
|
3335
|
-
/* @__PURE__ */ (0,
|
|
3336
|
-
/* @__PURE__ */ (0,
|
|
3337
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
3438
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("a", { href: ctaHref, className: "lm__link", children: [
|
|
3340
3439
|
ctaLabel,
|
|
3341
|
-
/* @__PURE__ */ (0,
|
|
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
|
|
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,
|
|
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,
|
|
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
|
|
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,
|
|
3453
|
-
image && /* @__PURE__ */ (0,
|
|
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,
|
|
3462
|
-
/* @__PURE__ */ (0,
|
|
3463
|
-
/* @__PURE__ */ (0,
|
|
3464
|
-
/* @__PURE__ */ (0,
|
|
3465
|
-
/* @__PURE__ */ (0,
|
|
3466
|
-
/* @__PURE__ */ (0,
|
|
3467
|
-
/* @__PURE__ */ (0,
|
|
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
|
|
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,
|
|
3501
|
-
/* @__PURE__ */ (0,
|
|
3502
|
-
qrCodeImage && /* @__PURE__ */ (0,
|
|
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,
|
|
3511
|
-
/* @__PURE__ */ (0,
|
|
3512
|
-
/* @__PURE__ */ (0,
|
|
3513
|
-
/* @__PURE__ */ (0,
|
|
3514
|
-
disclaimer && /* @__PURE__ */ (0,
|
|
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,
|
|
3518
|
-
showGooglePlay && /* @__PURE__ */ (0,
|
|
3519
|
-
showAppGallery && /* @__PURE__ */ (0,
|
|
3520
|
-
showMacOS && /* @__PURE__ */ (0,
|
|
3521
|
-
showWindows && /* @__PURE__ */ (0,
|
|
3522
|
-
showLinux && /* @__PURE__ */ (0,
|
|
3523
|
-
showAppStore && /* @__PURE__ */ (0,
|
|
3524
|
-
showWeb && /* @__PURE__ */ (0,
|
|
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,
|