@deriv-web-design/ui 0.0.4 → 0.0.6
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/icon-globe-S54WYYEK.svg +10 -0
- package/dist/index.css +767 -99
- package/dist/index.css.map +1 -1
- package/dist/index.d.mts +82 -2
- package/dist/index.d.ts +82 -2
- package/dist/index.js +703 -162
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +693 -153
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -36,6 +36,7 @@ __export(index_exports, {
|
|
|
36
36
|
Footer: () => Footer,
|
|
37
37
|
Hero: () => Hero,
|
|
38
38
|
Link: () => Link,
|
|
39
|
+
Navbar: () => Navbar,
|
|
39
40
|
Pagination: () => Pagination,
|
|
40
41
|
PaymentMethods: () => PaymentMethods,
|
|
41
42
|
SCROLLYTELLING_DATA: () => SCROLLYTELLING_DATA,
|
|
@@ -1080,7 +1081,7 @@ var FeatureCards = ({
|
|
|
1080
1081
|
] }) });
|
|
1081
1082
|
};
|
|
1082
1083
|
|
|
1083
|
-
//
|
|
1084
|
+
// components/Footer/Footer.tsx
|
|
1084
1085
|
var import_react7 = require("react");
|
|
1085
1086
|
var import_jsx_runtime17 = require("react/jsx-runtime");
|
|
1086
1087
|
var ExternalLinkIcon = () => /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
@@ -1130,40 +1131,42 @@ var DerivGoBadges = ({
|
|
|
1130
1131
|
appStoreBadge,
|
|
1131
1132
|
huaweiBadge,
|
|
1132
1133
|
availabilityNote
|
|
1133
|
-
}) => /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
|
|
1140
|
-
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
|
|
1147
|
-
|
|
1148
|
-
|
|
1149
|
-
|
|
1150
|
-
|
|
1151
|
-
|
|
1152
|
-
|
|
1153
|
-
|
|
1154
|
-
|
|
1155
|
-
|
|
1156
|
-
|
|
1157
|
-
|
|
1158
|
-
|
|
1159
|
-
|
|
1160
|
-
|
|
1161
|
-
|
|
1162
|
-
|
|
1163
|
-
|
|
1164
|
-
|
|
1165
|
-
|
|
1166
|
-
|
|
1134
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(import_jsx_runtime17.Fragment, { children: [
|
|
1135
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: "footer__app-badges", children: [
|
|
1136
|
+
googlePlayBadge && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
1137
|
+
"a",
|
|
1138
|
+
{
|
|
1139
|
+
href: googlePlayBadge.href,
|
|
1140
|
+
className: googlePlayBadge.icon ? "footer__app-badge-svg" : "footer__app-badge",
|
|
1141
|
+
"aria-label": googlePlayBadge.imageAlt,
|
|
1142
|
+
target: "_blank",
|
|
1143
|
+
rel: "noopener noreferrer",
|
|
1144
|
+
children: googlePlayBadge.icon ?? /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("img", { src: googlePlayBadge.imageSrc, alt: googlePlayBadge.imageAlt })
|
|
1145
|
+
}
|
|
1146
|
+
),
|
|
1147
|
+
appStoreBadge && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
1148
|
+
"a",
|
|
1149
|
+
{
|
|
1150
|
+
href: appStoreBadge.href,
|
|
1151
|
+
className: appStoreBadge.icon ? "footer__app-badge-svg" : "footer__app-badge",
|
|
1152
|
+
"aria-label": appStoreBadge.imageAlt,
|
|
1153
|
+
target: "_blank",
|
|
1154
|
+
rel: "noopener noreferrer",
|
|
1155
|
+
children: appStoreBadge.icon ?? /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("img", { src: appStoreBadge.imageSrc, alt: appStoreBadge.imageAlt })
|
|
1156
|
+
}
|
|
1157
|
+
),
|
|
1158
|
+
huaweiBadge && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
1159
|
+
"a",
|
|
1160
|
+
{
|
|
1161
|
+
href: huaweiBadge.href,
|
|
1162
|
+
className: huaweiBadge.icon ? "footer__app-badge-svg" : "footer__app-badge",
|
|
1163
|
+
"aria-label": huaweiBadge.imageAlt,
|
|
1164
|
+
target: "_blank",
|
|
1165
|
+
rel: "noopener noreferrer",
|
|
1166
|
+
children: huaweiBadge.icon ?? /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("img", { src: huaweiBadge.imageSrc, alt: huaweiBadge.imageAlt })
|
|
1167
|
+
}
|
|
1168
|
+
)
|
|
1169
|
+
] }),
|
|
1167
1170
|
availabilityNote && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("p", { className: "footer__app-note", children: availabilityNote })
|
|
1168
1171
|
] });
|
|
1169
1172
|
var NavLink = ({ label, href, isExternal, onClick }) => /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
|
|
@@ -1228,11 +1231,10 @@ var Footer = ({
|
|
|
1228
1231
|
"a",
|
|
1229
1232
|
{
|
|
1230
1233
|
href: item.href,
|
|
1231
|
-
className: "footer__ai-icon",
|
|
1232
1234
|
"aria-label": item.imageAlt,
|
|
1233
1235
|
target: "_blank",
|
|
1234
1236
|
rel: "noopener noreferrer",
|
|
1235
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("img", { src: item.imageSrc, alt: item.imageAlt })
|
|
1237
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("img", { className: "footer__ai-icon", src: item.imageSrc, alt: item.imageAlt })
|
|
1236
1238
|
},
|
|
1237
1239
|
i
|
|
1238
1240
|
)) })
|
|
@@ -1256,11 +1258,10 @@ var Footer = ({
|
|
|
1256
1258
|
"a",
|
|
1257
1259
|
{
|
|
1258
1260
|
href: item.href,
|
|
1259
|
-
className: "footer__ai-icon",
|
|
1260
1261
|
"aria-label": item.imageAlt,
|
|
1261
1262
|
target: "_blank",
|
|
1262
1263
|
rel: "noopener noreferrer",
|
|
1263
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("img", { src: item.imageSrc, alt: item.imageAlt })
|
|
1264
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("img", { className: "footer__ai-icon", src: item.imageSrc, alt: item.imageAlt })
|
|
1264
1265
|
},
|
|
1265
1266
|
i
|
|
1266
1267
|
)) })
|
|
@@ -1301,7 +1302,7 @@ var Footer = ({
|
|
|
1301
1302
|
className: "footer__deriv-go-qr-img"
|
|
1302
1303
|
}
|
|
1303
1304
|
),
|
|
1304
|
-
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { className: "footer__deriv-go-qr-label", children: "Scan to download" })
|
|
1305
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { className: "footer__deriv-go-qr-label", children: derivGo.scanToDownloadLabel ?? "Scan to download" })
|
|
1305
1306
|
] }),
|
|
1306
1307
|
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
1307
1308
|
DerivGoBadges,
|
|
@@ -1981,153 +1982,240 @@ var SPRING = { stiffness: 80, damping: 30, restDelta: 1e-3 };
|
|
|
1981
1982
|
var LOCK_AT = 0.5;
|
|
1982
1983
|
var PLACEHOLDER_URL = "https://cdn.prod.website-files.com/68da5c86c91c54f39c86c28a/68da5c86c91c54f39c86ce1a_footer-member-5.webp";
|
|
1983
1984
|
var AVATAR_DATA = [
|
|
1984
|
-
/* ── Rank 0 —
|
|
1985
|
+
/* ── Rank 0 — top-centre (col 6, row 1) ─────── */
|
|
1985
1986
|
{
|
|
1986
|
-
id:
|
|
1987
|
+
id: 12,
|
|
1987
1988
|
staggerRank: 0,
|
|
1988
1989
|
imageUrl: PLACEHOLDER_URL,
|
|
1989
|
-
desktopPos: { left: "
|
|
1990
|
-
mobilePos: { left: "calc(50% - var(--ctab-avatar-size) / 2)", top: "
|
|
1990
|
+
desktopPos: { left: "calc(var(--ctab-grid-cell) * 6)", top: "calc(var(--ctab-grid-cell) * 1)" },
|
|
1991
|
+
mobilePos: { left: "calc(50% - var(--ctab-avatar-size) / 2)", top: "calc(var(--ctab-grid-cell) * 1)" },
|
|
1991
1992
|
mobileVisible: true
|
|
1992
1993
|
},
|
|
1993
|
-
/* ── Rank 1 —
|
|
1994
|
+
/* ── Rank 1 — bot-centre (col 6, row 7) ─────── */
|
|
1994
1995
|
{
|
|
1995
|
-
id:
|
|
1996
|
+
id: 11,
|
|
1996
1997
|
staggerRank: 1,
|
|
1997
1998
|
imageUrl: PLACEHOLDER_URL,
|
|
1998
|
-
desktopPos: { left: "calc(
|
|
1999
|
-
mobilePos:
|
|
2000
|
-
mobileVisible:
|
|
1999
|
+
desktopPos: { left: "calc(var(--ctab-grid-cell) * 6)", top: "calc(var(--ctab-grid-cell) * 7)" },
|
|
2000
|
+
mobilePos: null,
|
|
2001
|
+
mobileVisible: false
|
|
2001
2002
|
},
|
|
2002
|
-
/* ── Rank 2 —
|
|
2003
|
+
/* ── Rank 2 — upper-inner-left (col 3, row 2) ── */
|
|
2003
2004
|
{
|
|
2004
|
-
id:
|
|
2005
|
+
id: 3,
|
|
2005
2006
|
staggerRank: 2,
|
|
2006
2007
|
imageUrl: PLACEHOLDER_URL,
|
|
2007
|
-
desktopPos: { left: "
|
|
2008
|
-
mobilePos:
|
|
2009
|
-
mobileVisible:
|
|
2008
|
+
desktopPos: { left: "calc(var(--ctab-grid-cell) * 3)", top: "calc(var(--ctab-grid-cell) * 2)" },
|
|
2009
|
+
mobilePos: { left: "0", top: "calc(var(--ctab-grid-cell) * 2)" },
|
|
2010
|
+
mobileVisible: true
|
|
2010
2011
|
},
|
|
2011
|
-
/* ── Rank 3 —
|
|
2012
|
+
/* ── Rank 3 — upper-inner-right (col 9, row 2) ── */
|
|
2012
2013
|
{
|
|
2013
|
-
id:
|
|
2014
|
+
id: 6,
|
|
2014
2015
|
staggerRank: 3,
|
|
2015
2016
|
imageUrl: PLACEHOLDER_URL,
|
|
2016
|
-
desktopPos: { left: "
|
|
2017
|
-
mobilePos:
|
|
2018
|
-
mobileVisible:
|
|
2017
|
+
desktopPos: { left: "calc(var(--ctab-grid-cell) * 9)", top: "calc(var(--ctab-grid-cell) * 2)" },
|
|
2018
|
+
mobilePos: { right: "0", top: "calc(var(--ctab-grid-cell) * 2)" },
|
|
2019
|
+
mobileVisible: true
|
|
2019
2020
|
},
|
|
2020
|
-
/* ── Rank 4 — left
|
|
2021
|
+
/* ── Rank 4 — lower-inner-left (col 3, row 6) ── */
|
|
2021
2022
|
{
|
|
2022
|
-
id:
|
|
2023
|
+
id: 1,
|
|
2023
2024
|
staggerRank: 4,
|
|
2024
2025
|
imageUrl: PLACEHOLDER_URL,
|
|
2025
|
-
desktopPos: { left: "
|
|
2026
|
-
mobilePos: { left: "
|
|
2026
|
+
desktopPos: { left: "calc(var(--ctab-grid-cell) * 3)", top: "calc(var(--ctab-grid-cell) * 6)" },
|
|
2027
|
+
mobilePos: { left: "calc(50% - var(--ctab-avatar-size) / 2)", top: "calc(var(--ctab-grid-cell) * 9)" },
|
|
2027
2028
|
mobileVisible: true
|
|
2028
2029
|
},
|
|
2029
|
-
/* ── Rank 5 — right
|
|
2030
|
+
/* ── Rank 5 — lower-inner-right (col 9, row 6) ── */
|
|
2030
2031
|
{
|
|
2031
|
-
id:
|
|
2032
|
+
id: 10,
|
|
2032
2033
|
staggerRank: 5,
|
|
2033
2034
|
imageUrl: PLACEHOLDER_URL,
|
|
2034
|
-
desktopPos: { left: "
|
|
2035
|
-
mobilePos:
|
|
2036
|
-
mobileVisible:
|
|
2035
|
+
desktopPos: { left: "calc(var(--ctab-grid-cell) * 9)", top: "calc(var(--ctab-grid-cell) * 6)" },
|
|
2036
|
+
mobilePos: null,
|
|
2037
|
+
mobileVisible: false
|
|
2037
2038
|
},
|
|
2038
|
-
/* ── Rank 6 —
|
|
2039
|
+
/* ── Rank 6 — mid-left (col 0, row 4) ──────── */
|
|
2039
2040
|
{
|
|
2040
|
-
id:
|
|
2041
|
+
id: 5,
|
|
2041
2042
|
staggerRank: 6,
|
|
2042
2043
|
imageUrl: PLACEHOLDER_URL,
|
|
2043
|
-
desktopPos: { left: "
|
|
2044
|
-
mobilePos: {
|
|
2044
|
+
desktopPos: { left: "0", top: "calc(var(--ctab-grid-cell) * 4)" },
|
|
2045
|
+
mobilePos: { left: "0", top: "calc(var(--ctab-grid-cell) * 8)" },
|
|
2045
2046
|
mobileVisible: true
|
|
2046
2047
|
},
|
|
2047
|
-
/* ── Rank 7 —
|
|
2048
|
+
/* ── Rank 7 — mid-right (col 12, row 4) ────── */
|
|
2048
2049
|
{
|
|
2049
|
-
id:
|
|
2050
|
+
id: 8,
|
|
2050
2051
|
staggerRank: 7,
|
|
2051
2052
|
imageUrl: PLACEHOLDER_URL,
|
|
2052
|
-
desktopPos: { left: "
|
|
2053
|
-
mobilePos: {
|
|
2053
|
+
desktopPos: { left: "calc(var(--ctab-grid-cell) * 12)", top: "calc(var(--ctab-grid-cell) * 4)" },
|
|
2054
|
+
mobilePos: { right: "0", top: "calc(var(--ctab-grid-cell) * 8)" },
|
|
2054
2055
|
mobileVisible: true
|
|
2055
2056
|
},
|
|
2056
|
-
/* ── Rank 8 —
|
|
2057
|
+
/* ── Rank 8 — top-left corner (col 0, row 1) ── */
|
|
2057
2058
|
{
|
|
2058
|
-
id:
|
|
2059
|
+
id: 4,
|
|
2059
2060
|
staggerRank: 8,
|
|
2060
2061
|
imageUrl: PLACEHOLDER_URL,
|
|
2061
|
-
desktopPos: { left: "
|
|
2062
|
+
desktopPos: { left: "0", top: "calc(var(--ctab-grid-cell) * 1)" },
|
|
2062
2063
|
mobilePos: null,
|
|
2063
2064
|
mobileVisible: false
|
|
2064
2065
|
},
|
|
2065
|
-
/* ── Rank 9 —
|
|
2066
|
+
/* ── Rank 9 — top-right corner (col 12, row 1) ── */
|
|
2066
2067
|
{
|
|
2067
2068
|
id: 7,
|
|
2068
2069
|
staggerRank: 9,
|
|
2069
2070
|
imageUrl: PLACEHOLDER_URL,
|
|
2070
|
-
desktopPos: { left: "
|
|
2071
|
+
desktopPos: { left: "calc(var(--ctab-grid-cell) * 12)", top: "calc(var(--ctab-grid-cell) * 1)" },
|
|
2071
2072
|
mobilePos: null,
|
|
2072
2073
|
mobileVisible: false
|
|
2073
2074
|
},
|
|
2074
|
-
/* ── Rank 10 —
|
|
2075
|
+
/* ── Rank 10 — bot-left corner (col 0, row 7) ── */
|
|
2075
2076
|
{
|
|
2076
2077
|
id: 2,
|
|
2077
2078
|
staggerRank: 10,
|
|
2078
2079
|
imageUrl: PLACEHOLDER_URL,
|
|
2079
|
-
desktopPos: { left: "
|
|
2080
|
+
desktopPos: { left: "0", top: "calc(var(--ctab-grid-cell) * 7)" },
|
|
2080
2081
|
mobilePos: null,
|
|
2081
2082
|
mobileVisible: false
|
|
2082
2083
|
},
|
|
2083
|
-
/* ── Rank 11 —
|
|
2084
|
+
/* ── Rank 11 — bot-right corner (col 12, row 7) ── */
|
|
2084
2085
|
{
|
|
2085
|
-
id:
|
|
2086
|
+
id: 9,
|
|
2086
2087
|
staggerRank: 11,
|
|
2087
2088
|
imageUrl: PLACEHOLDER_URL,
|
|
2088
|
-
desktopPos: { left: "
|
|
2089
|
+
desktopPos: { left: "calc(var(--ctab-grid-cell) * 12)", top: "calc(var(--ctab-grid-cell) * 7)" },
|
|
2090
|
+
mobilePos: null,
|
|
2091
|
+
mobileVisible: false
|
|
2092
|
+
}
|
|
2093
|
+
];
|
|
2094
|
+
var COMPACT_AVATAR_DATA = [
|
|
2095
|
+
/* ── Rank 0 — top-centre (col ~6, row 1) ── */
|
|
2096
|
+
{
|
|
2097
|
+
id: 12,
|
|
2098
|
+
staggerRank: 0,
|
|
2099
|
+
imageUrl: PLACEHOLDER_URL,
|
|
2100
|
+
desktopPos: { left: "calc(50% - var(--ctab-avatar-size) / 2)", top: "calc(var(--ctab-grid-cell) * 1)" },
|
|
2101
|
+
mobilePos: { left: "calc(50% - var(--ctab-avatar-size) / 2)", top: "calc(var(--ctab-grid-cell) * 1)" },
|
|
2102
|
+
mobileVisible: true
|
|
2103
|
+
},
|
|
2104
|
+
/* ── Rank 1 — top-left (col 2, row 1) ───── */
|
|
2105
|
+
{
|
|
2106
|
+
id: 3,
|
|
2107
|
+
staggerRank: 1,
|
|
2108
|
+
imageUrl: PLACEHOLDER_URL,
|
|
2109
|
+
desktopPos: { left: "calc(var(--ctab-grid-cell) * 2)", top: "calc(var(--ctab-grid-cell) * 1)" },
|
|
2110
|
+
mobilePos: { left: "0", top: "calc(var(--ctab-grid-cell) * 2)" },
|
|
2111
|
+
mobileVisible: true
|
|
2112
|
+
},
|
|
2113
|
+
/* ── Rank 2 — top-right (col 10, row 1) ─── */
|
|
2114
|
+
{
|
|
2115
|
+
id: 6,
|
|
2116
|
+
staggerRank: 2,
|
|
2117
|
+
imageUrl: PLACEHOLDER_URL,
|
|
2118
|
+
desktopPos: { left: "calc(var(--ctab-grid-cell) * 10)", top: "calc(var(--ctab-grid-cell) * 1)" },
|
|
2119
|
+
mobilePos: { right: "0", top: "calc(var(--ctab-grid-cell) * 2)" },
|
|
2120
|
+
mobileVisible: true
|
|
2121
|
+
},
|
|
2122
|
+
/* ── Rank 3 — mid-left (col 0, row 3) ────── */
|
|
2123
|
+
{
|
|
2124
|
+
id: 5,
|
|
2125
|
+
staggerRank: 3,
|
|
2126
|
+
imageUrl: PLACEHOLDER_URL,
|
|
2127
|
+
desktopPos: { left: "0", top: "calc(var(--ctab-grid-cell) * 3)" },
|
|
2128
|
+
mobilePos: { left: "0", top: "calc(var(--ctab-grid-cell) * 8)" },
|
|
2129
|
+
mobileVisible: true
|
|
2130
|
+
},
|
|
2131
|
+
/* ── Rank 4 — mid-right (col 12, row 3) ──── */
|
|
2132
|
+
{
|
|
2133
|
+
id: 8,
|
|
2134
|
+
staggerRank: 4,
|
|
2135
|
+
imageUrl: PLACEHOLDER_URL,
|
|
2136
|
+
desktopPos: { left: "calc(var(--ctab-grid-cell) * 12)", top: "calc(var(--ctab-grid-cell) * 3)" },
|
|
2137
|
+
mobilePos: { right: "0", top: "calc(var(--ctab-grid-cell) * 8)" },
|
|
2138
|
+
mobileVisible: true
|
|
2139
|
+
},
|
|
2140
|
+
/* ── Rank 5 — bot-left (col 2, row 5) ────── */
|
|
2141
|
+
{
|
|
2142
|
+
id: 1,
|
|
2143
|
+
staggerRank: 5,
|
|
2144
|
+
imageUrl: PLACEHOLDER_URL,
|
|
2145
|
+
desktopPos: { left: "calc(var(--ctab-grid-cell) * 2)", top: "calc(var(--ctab-grid-cell) * 5)" },
|
|
2146
|
+
mobilePos: { left: "calc(50% - var(--ctab-avatar-size) / 2)", top: "calc(var(--ctab-grid-cell) * 9)" },
|
|
2147
|
+
mobileVisible: true
|
|
2148
|
+
},
|
|
2149
|
+
/* ── Rank 6 — bot-right (col 10, row 5) — desktop only ─── */
|
|
2150
|
+
{
|
|
2151
|
+
id: 11,
|
|
2152
|
+
staggerRank: 6,
|
|
2153
|
+
imageUrl: PLACEHOLDER_URL,
|
|
2154
|
+
desktopPos: { left: "calc(var(--ctab-grid-cell) * 10)", top: "calc(var(--ctab-grid-cell) * 5)" },
|
|
2089
2155
|
mobilePos: null,
|
|
2090
2156
|
mobileVisible: false
|
|
2091
2157
|
}
|
|
2092
2158
|
];
|
|
2093
2159
|
function useAvatarYValues(smooth) {
|
|
2094
|
-
const y0 = (0, import_framer_motion.useTransform)(smooth, [0, LOCK_AT], [ENTRANCE.near, 0]);
|
|
2095
|
-
const y1 = (0, import_framer_motion.useTransform)(smooth, [0, LOCK_AT], [
|
|
2096
|
-
const y2 = (0, import_framer_motion.useTransform)(smooth, [0, LOCK_AT], [ENTRANCE.mid, 0]);
|
|
2097
|
-
const y3 = (0, import_framer_motion.useTransform)(smooth, [0, LOCK_AT], [ENTRANCE.mid, 0]);
|
|
2098
|
-
const y4 = (0, import_framer_motion.useTransform)(smooth, [0, LOCK_AT], [
|
|
2099
|
-
const y5 = (0, import_framer_motion.useTransform)(smooth, [0, LOCK_AT], [
|
|
2160
|
+
const y0 = (0, import_framer_motion.useTransform)(smooth, [0, LOCK_AT], [-ENTRANCE.near, 0]);
|
|
2161
|
+
const y1 = (0, import_framer_motion.useTransform)(smooth, [0, LOCK_AT], [ENTRANCE.near, 0]);
|
|
2162
|
+
const y2 = (0, import_framer_motion.useTransform)(smooth, [0, LOCK_AT], [-ENTRANCE.mid, 0]);
|
|
2163
|
+
const y3 = (0, import_framer_motion.useTransform)(smooth, [0, LOCK_AT], [-ENTRANCE.mid, 0]);
|
|
2164
|
+
const y4 = (0, import_framer_motion.useTransform)(smooth, [0, LOCK_AT], [ENTRANCE.mid, 0]);
|
|
2165
|
+
const y5 = (0, import_framer_motion.useTransform)(smooth, [0, LOCK_AT], [ENTRANCE.mid, 0]);
|
|
2100
2166
|
const y6 = (0, import_framer_motion.useTransform)(smooth, [0, LOCK_AT], [0, 0]);
|
|
2101
2167
|
const y7 = (0, import_framer_motion.useTransform)(smooth, [0, LOCK_AT], [0, 0]);
|
|
2102
|
-
const y8 = (0, import_framer_motion.useTransform)(smooth, [0, LOCK_AT], [ENTRANCE.
|
|
2168
|
+
const y8 = (0, import_framer_motion.useTransform)(smooth, [0, LOCK_AT], [-ENTRANCE.edge, 0]);
|
|
2103
2169
|
const y9 = (0, import_framer_motion.useTransform)(smooth, [0, LOCK_AT], [-ENTRANCE.edge, 0]);
|
|
2104
2170
|
const y10 = (0, import_framer_motion.useTransform)(smooth, [0, LOCK_AT], [ENTRANCE.edge, 0]);
|
|
2105
|
-
const y11 = (0, import_framer_motion.useTransform)(smooth, [0, LOCK_AT], [
|
|
2171
|
+
const y11 = (0, import_framer_motion.useTransform)(smooth, [0, LOCK_AT], [ENTRANCE.edge, 0]);
|
|
2106
2172
|
return [y0, y1, y2, y3, y4, y5, y6, y7, y8, y9, y10, y11];
|
|
2107
2173
|
}
|
|
2108
2174
|
function useAvatarXValues(smooth) {
|
|
2109
2175
|
const x0 = (0, import_framer_motion.useTransform)(smooth, [0, LOCK_AT], [0, 0]);
|
|
2110
2176
|
const x1 = (0, import_framer_motion.useTransform)(smooth, [0, LOCK_AT], [0, 0]);
|
|
2111
|
-
const x2 = (0, import_framer_motion.useTransform)(smooth, [0, LOCK_AT], [ENTRANCE.mid, 0]);
|
|
2112
|
-
const x3 = (0, import_framer_motion.useTransform)(smooth, [0, LOCK_AT], [
|
|
2177
|
+
const x2 = (0, import_framer_motion.useTransform)(smooth, [0, LOCK_AT], [-ENTRANCE.mid, 0]);
|
|
2178
|
+
const x3 = (0, import_framer_motion.useTransform)(smooth, [0, LOCK_AT], [ENTRANCE.mid, 0]);
|
|
2113
2179
|
const x4 = (0, import_framer_motion.useTransform)(smooth, [0, LOCK_AT], [-ENTRANCE.mid, 0]);
|
|
2114
2180
|
const x5 = (0, import_framer_motion.useTransform)(smooth, [0, LOCK_AT], [ENTRANCE.mid, 0]);
|
|
2115
|
-
const x6 = (0, import_framer_motion.useTransform)(smooth, [0, LOCK_AT], [ENTRANCE.far, 0]);
|
|
2116
|
-
const x7 = (0, import_framer_motion.useTransform)(smooth, [0, LOCK_AT], [
|
|
2117
|
-
const x8 = (0, import_framer_motion.useTransform)(smooth, [0, LOCK_AT], [ENTRANCE.
|
|
2181
|
+
const x6 = (0, import_framer_motion.useTransform)(smooth, [0, LOCK_AT], [-ENTRANCE.far, 0]);
|
|
2182
|
+
const x7 = (0, import_framer_motion.useTransform)(smooth, [0, LOCK_AT], [ENTRANCE.far, 0]);
|
|
2183
|
+
const x8 = (0, import_framer_motion.useTransform)(smooth, [0, LOCK_AT], [-ENTRANCE.edge, 0]);
|
|
2118
2184
|
const x9 = (0, import_framer_motion.useTransform)(smooth, [0, LOCK_AT], [ENTRANCE.edge, 0]);
|
|
2119
2185
|
const x10 = (0, import_framer_motion.useTransform)(smooth, [0, LOCK_AT], [-ENTRANCE.edge, 0]);
|
|
2120
|
-
const x11 = (0, import_framer_motion.useTransform)(smooth, [0, LOCK_AT], [
|
|
2186
|
+
const x11 = (0, import_framer_motion.useTransform)(smooth, [0, LOCK_AT], [ENTRANCE.edge, 0]);
|
|
2121
2187
|
return [x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11];
|
|
2122
2188
|
}
|
|
2189
|
+
function useCompactAvatarYValues(smooth) {
|
|
2190
|
+
const y0 = (0, import_framer_motion.useTransform)(smooth, [0, LOCK_AT], [-ENTRANCE.near, 0]);
|
|
2191
|
+
const y1 = (0, import_framer_motion.useTransform)(smooth, [0, LOCK_AT], [-ENTRANCE.mid, 0]);
|
|
2192
|
+
const y2 = (0, import_framer_motion.useTransform)(smooth, [0, LOCK_AT], [-ENTRANCE.mid, 0]);
|
|
2193
|
+
const y3 = (0, import_framer_motion.useTransform)(smooth, [0, LOCK_AT], [0, 0]);
|
|
2194
|
+
const y4 = (0, import_framer_motion.useTransform)(smooth, [0, LOCK_AT], [0, 0]);
|
|
2195
|
+
const y5 = (0, import_framer_motion.useTransform)(smooth, [0, LOCK_AT], [ENTRANCE.mid, 0]);
|
|
2196
|
+
const y6 = (0, import_framer_motion.useTransform)(smooth, [0, LOCK_AT], [ENTRANCE.mid, 0]);
|
|
2197
|
+
return [y0, y1, y2, y3, y4, y5, y6];
|
|
2198
|
+
}
|
|
2199
|
+
function useCompactAvatarXValues(smooth) {
|
|
2200
|
+
const x0 = (0, import_framer_motion.useTransform)(smooth, [0, LOCK_AT], [0, 0]);
|
|
2201
|
+
const x1 = (0, import_framer_motion.useTransform)(smooth, [0, LOCK_AT], [-ENTRANCE.mid, 0]);
|
|
2202
|
+
const x2 = (0, import_framer_motion.useTransform)(smooth, [0, LOCK_AT], [ENTRANCE.mid, 0]);
|
|
2203
|
+
const x3 = (0, import_framer_motion.useTransform)(smooth, [0, LOCK_AT], [-ENTRANCE.far, 0]);
|
|
2204
|
+
const x4 = (0, import_framer_motion.useTransform)(smooth, [0, LOCK_AT], [ENTRANCE.far, 0]);
|
|
2205
|
+
const x5 = (0, import_framer_motion.useTransform)(smooth, [0, LOCK_AT], [-ENTRANCE.mid, 0]);
|
|
2206
|
+
const x6 = (0, import_framer_motion.useTransform)(smooth, [0, LOCK_AT], [ENTRANCE.mid, 0]);
|
|
2207
|
+
return [x0, x1, x2, x3, x4, x5, x6];
|
|
2208
|
+
}
|
|
2123
2209
|
var CTABanner = ({
|
|
2124
|
-
headline = "
|
|
2210
|
+
headline = "Short section title goes here",
|
|
2125
2211
|
ctaLabel = "Open account",
|
|
2126
2212
|
ctaHref = "#",
|
|
2127
|
-
avatars
|
|
2213
|
+
avatars,
|
|
2214
|
+
variant = "standard",
|
|
2128
2215
|
className,
|
|
2129
2216
|
...props
|
|
2130
2217
|
}) => {
|
|
2218
|
+
const resolvedAvatars = avatars ?? (variant === "compact" ? COMPACT_AVATAR_DATA : AVATAR_DATA);
|
|
2131
2219
|
const sectionRef = (0, import_react11.useRef)(null);
|
|
2132
2220
|
const { scrollYProgress } = (0, import_framer_motion.useScroll)({
|
|
2133
2221
|
target: sectionRef,
|
|
@@ -2140,13 +2228,17 @@ var CTABanner = ({
|
|
|
2140
2228
|
const avatarOpacity = (0, import_framer_motion.useTransform)(smooth, [0, 0.25], [0, 1]);
|
|
2141
2229
|
const blurPx = (0, import_framer_motion.useTransform)(smooth, [0, 0.3, 0.7, 1], [ENTRANCE.blurStart, 0, 0, ENTRANCE.blurStart]);
|
|
2142
2230
|
const avatarFilter = import_framer_motion.useMotionTemplate`blur(${blurPx}px)`;
|
|
2143
|
-
const
|
|
2144
|
-
const
|
|
2231
|
+
const standardYValues = useAvatarYValues(smooth);
|
|
2232
|
+
const standardXValues = useAvatarXValues(smooth);
|
|
2233
|
+
const compactYValues = useCompactAvatarYValues(smooth);
|
|
2234
|
+
const compactXValues = useCompactAvatarXValues(smooth);
|
|
2235
|
+
const avatarYValues = variant === "compact" ? compactYValues : standardYValues;
|
|
2236
|
+
const avatarXValues = variant === "compact" ? compactXValues : standardXValues;
|
|
2145
2237
|
return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
|
|
2146
2238
|
"section",
|
|
2147
2239
|
{
|
|
2148
2240
|
ref: sectionRef,
|
|
2149
|
-
className: ["ctab", className].filter(Boolean).join(" "),
|
|
2241
|
+
className: ["ctab", variant === "compact" ? "ctab--compact" : "", className].filter(Boolean).join(" "),
|
|
2150
2242
|
...props,
|
|
2151
2243
|
children: [
|
|
2152
2244
|
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
@@ -2158,7 +2250,7 @@ var CTABanner = ({
|
|
|
2158
2250
|
}
|
|
2159
2251
|
),
|
|
2160
2252
|
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: "ctab__inner", children: /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("div", { className: "ctab__stage", children: [
|
|
2161
|
-
|
|
2253
|
+
resolvedAvatars.map((avatar, index) => {
|
|
2162
2254
|
const posStyle = {};
|
|
2163
2255
|
if (avatar.desktopPos.left) posStyle["--av-d-left"] = avatar.desktopPos.left;
|
|
2164
2256
|
if (avatar.desktopPos.right) posStyle["--av-d-right"] = avatar.desktopPos.right;
|
|
@@ -2200,7 +2292,7 @@ var CTABanner = ({
|
|
|
2200
2292
|
style: { y: heroY, opacity: heroOpacity },
|
|
2201
2293
|
children: [
|
|
2202
2294
|
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)("h2", { className: "ctab__headline", children: headline }),
|
|
2203
|
-
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)("a", { href: ctaHref,
|
|
2295
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)("a", { href: ctaHref, children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Button, { colorScheme: "black", variant: "primary", label: ctaLabel }) })
|
|
2204
2296
|
]
|
|
2205
2297
|
}
|
|
2206
2298
|
)
|
|
@@ -2210,10 +2302,458 @@ var CTABanner = ({
|
|
|
2210
2302
|
);
|
|
2211
2303
|
};
|
|
2212
2304
|
|
|
2213
|
-
//
|
|
2305
|
+
// components/Navbar/Navbar.tsx
|
|
2214
2306
|
var import_react12 = require("react");
|
|
2215
2307
|
var import_framer_motion2 = require("framer-motion");
|
|
2308
|
+
|
|
2309
|
+
// assets/icon-globe.svg
|
|
2310
|
+
var icon_globe_default = "./icon-globe-S54WYYEK.svg";
|
|
2311
|
+
|
|
2312
|
+
// components/Navbar/Navbar.tsx
|
|
2216
2313
|
var import_jsx_runtime23 = require("react/jsx-runtime");
|
|
2314
|
+
var EASE_OUT_EXPO = [0.16, 1, 0.3, 1];
|
|
2315
|
+
var dropdownVariants = {
|
|
2316
|
+
hidden: { opacity: 0, scale: 0.96, y: -8 },
|
|
2317
|
+
visible: { opacity: 1, scale: 1, y: 0 }
|
|
2318
|
+
};
|
|
2319
|
+
var drawerVariants = {
|
|
2320
|
+
hidden: { y: "-100%" },
|
|
2321
|
+
visible: { y: 0 }
|
|
2322
|
+
};
|
|
2323
|
+
var accordionVariants = {
|
|
2324
|
+
hidden: { height: 0, opacity: 0 },
|
|
2325
|
+
visible: { height: "auto", opacity: 1 }
|
|
2326
|
+
};
|
|
2327
|
+
var ChevronDownIcon3 = ({ className }) => /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
2328
|
+
"svg",
|
|
2329
|
+
{
|
|
2330
|
+
className,
|
|
2331
|
+
width: "14",
|
|
2332
|
+
height: "14",
|
|
2333
|
+
viewBox: "0 0 14 14",
|
|
2334
|
+
fill: "none",
|
|
2335
|
+
"aria-hidden": "true",
|
|
2336
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
2337
|
+
"path",
|
|
2338
|
+
{
|
|
2339
|
+
d: "M2.625 4.8125L7 9.1875L11.375 4.8125",
|
|
2340
|
+
stroke: "currentColor",
|
|
2341
|
+
strokeWidth: "1.5",
|
|
2342
|
+
strokeLinecap: "round",
|
|
2343
|
+
strokeLinejoin: "round"
|
|
2344
|
+
}
|
|
2345
|
+
)
|
|
2346
|
+
}
|
|
2347
|
+
);
|
|
2348
|
+
var ArrowRightIcon = () => /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("svg", { width: "14", height: "14", viewBox: "0 0 14 14", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
2349
|
+
"path",
|
|
2350
|
+
{
|
|
2351
|
+
d: "M2.625 7H11.375M11.375 7L7.875 3.5M11.375 7L7.875 10.5",
|
|
2352
|
+
stroke: "currentColor",
|
|
2353
|
+
strokeWidth: "1.5",
|
|
2354
|
+
strokeLinecap: "round",
|
|
2355
|
+
strokeLinejoin: "round"
|
|
2356
|
+
}
|
|
2357
|
+
) });
|
|
2358
|
+
var ArrowUpRightIcon = () => /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
2359
|
+
"path",
|
|
2360
|
+
{
|
|
2361
|
+
d: "M4.5 11.5L11.5 4.5M11.5 4.5H5.5M11.5 4.5V10.5",
|
|
2362
|
+
stroke: "currentColor",
|
|
2363
|
+
strokeWidth: "1.5",
|
|
2364
|
+
strokeLinecap: "round",
|
|
2365
|
+
strokeLinejoin: "round"
|
|
2366
|
+
}
|
|
2367
|
+
) });
|
|
2368
|
+
var BarsIcon = () => /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("svg", { width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
2369
|
+
"path",
|
|
2370
|
+
{
|
|
2371
|
+
d: "M2.5 5H17.5M2.5 10H17.5M2.5 15H17.5",
|
|
2372
|
+
stroke: "currentColor",
|
|
2373
|
+
strokeWidth: "1.75",
|
|
2374
|
+
strokeLinecap: "round"
|
|
2375
|
+
}
|
|
2376
|
+
) });
|
|
2377
|
+
var XMarkIcon2 = () => /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("svg", { width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
2378
|
+
"path",
|
|
2379
|
+
{
|
|
2380
|
+
d: "M15 5L5 15M5 5L15 15",
|
|
2381
|
+
stroke: "currentColor",
|
|
2382
|
+
strokeWidth: "1.75",
|
|
2383
|
+
strokeLinecap: "round"
|
|
2384
|
+
}
|
|
2385
|
+
) });
|
|
2386
|
+
var GlobeIcon = ({ className }) => /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("img", { src: icon_globe_default, alt: "", "aria-hidden": "true", width: "20", height: "20", className });
|
|
2387
|
+
var DropdownPanel = ({ item, onMouseEnter, onMouseLeave }) => {
|
|
2388
|
+
const { dropdown } = item;
|
|
2389
|
+
if (!dropdown) return null;
|
|
2390
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
2391
|
+
import_framer_motion2.motion.div,
|
|
2392
|
+
{
|
|
2393
|
+
className: "navbar__dropdown",
|
|
2394
|
+
variants: dropdownVariants,
|
|
2395
|
+
initial: "hidden",
|
|
2396
|
+
animate: "visible",
|
|
2397
|
+
exit: "hidden",
|
|
2398
|
+
transition: { duration: 0.18, ease: EASE_OUT_EXPO },
|
|
2399
|
+
onMouseEnter,
|
|
2400
|
+
onMouseLeave,
|
|
2401
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { className: "navbar__dropdown-inner", children: [
|
|
2402
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: "navbar__dropdown-left", children: dropdown.columns.map((col) => /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: "navbar__dropdown-col", children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { className: "navbar__dropdown-col-list", children: [
|
|
2403
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)("p", { className: "navbar__dropdown-col-title", children: col.title }),
|
|
2404
|
+
col.items.map((link) => /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
|
|
2405
|
+
"a",
|
|
2406
|
+
{
|
|
2407
|
+
href: link.href,
|
|
2408
|
+
className: "navbar__dropdown-link",
|
|
2409
|
+
target: link.external ? "_blank" : void 0,
|
|
2410
|
+
rel: link.external ? "noopener noreferrer" : void 0,
|
|
2411
|
+
children: [
|
|
2412
|
+
link.label,
|
|
2413
|
+
link.external ? /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(ArrowUpRightIcon, {}) : /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(ArrowRightIcon, {})
|
|
2414
|
+
]
|
|
2415
|
+
},
|
|
2416
|
+
link.href
|
|
2417
|
+
))
|
|
2418
|
+
] }) }, col.title)) }),
|
|
2419
|
+
dropdown.feature && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: "navbar__dropdown-right", children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(FeatureCard, { feature: dropdown.feature }) })
|
|
2420
|
+
] })
|
|
2421
|
+
}
|
|
2422
|
+
);
|
|
2423
|
+
};
|
|
2424
|
+
var FeatureCard = ({ feature, mobile }) => /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
|
|
2425
|
+
"div",
|
|
2426
|
+
{
|
|
2427
|
+
className: mobile ? "navbar__drawer-feature" : "navbar__dropdown-feature",
|
|
2428
|
+
style: feature.backgroundImageUrl ? { backgroundImage: `url(${feature.backgroundImageUrl})` } : void 0,
|
|
2429
|
+
children: [
|
|
2430
|
+
feature.backgroundImageUrl && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
2431
|
+
"img",
|
|
2432
|
+
{
|
|
2433
|
+
src: feature.backgroundImageUrl,
|
|
2434
|
+
alt: "",
|
|
2435
|
+
className: mobile ? "navbar__drawer-feature-img" : "navbar__dropdown-feature-img",
|
|
2436
|
+
"aria-hidden": "true"
|
|
2437
|
+
}
|
|
2438
|
+
),
|
|
2439
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: mobile ? "navbar__drawer-feature-overlay" : "navbar__dropdown-feature-overlay", "aria-hidden": "true" }),
|
|
2440
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { className: mobile ? "navbar__drawer-feature-content" : "navbar__dropdown-feature-content", children: [
|
|
2441
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { children: [
|
|
2442
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)("p", { className: mobile ? "navbar__drawer-feature-title" : "navbar__dropdown-feature-title", children: feature.title }),
|
|
2443
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)("p", { className: mobile ? "navbar__drawer-feature-desc" : "navbar__dropdown-feature-desc", children: feature.description })
|
|
2444
|
+
] }),
|
|
2445
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
|
|
2446
|
+
"a",
|
|
2447
|
+
{
|
|
2448
|
+
href: feature.ctaHref,
|
|
2449
|
+
className: mobile ? "navbar__drawer-feature-cta" : "navbar__dropdown-feature-cta",
|
|
2450
|
+
children: [
|
|
2451
|
+
feature.ctaLabel,
|
|
2452
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(ArrowRightIcon, {})
|
|
2453
|
+
]
|
|
2454
|
+
}
|
|
2455
|
+
)
|
|
2456
|
+
] })
|
|
2457
|
+
]
|
|
2458
|
+
}
|
|
2459
|
+
);
|
|
2460
|
+
var DrawerAccordion = ({ item, isOpen, onToggle }) => {
|
|
2461
|
+
const { dropdown } = item;
|
|
2462
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { className: "navbar__drawer-item", children: [
|
|
2463
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
|
|
2464
|
+
"button",
|
|
2465
|
+
{
|
|
2466
|
+
className: `navbar__drawer-trigger ${isOpen ? "navbar__drawer-trigger--open" : ""}`,
|
|
2467
|
+
onClick: onToggle,
|
|
2468
|
+
"aria-expanded": isOpen,
|
|
2469
|
+
children: [
|
|
2470
|
+
item.label,
|
|
2471
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(ChevronDownIcon3, { className: "navbar__drawer-trigger__chevron" })
|
|
2472
|
+
]
|
|
2473
|
+
}
|
|
2474
|
+
),
|
|
2475
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_framer_motion2.AnimatePresence, { initial: false, children: isOpen && dropdown && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
2476
|
+
import_framer_motion2.motion.div,
|
|
2477
|
+
{
|
|
2478
|
+
className: "navbar__drawer-panel",
|
|
2479
|
+
variants: accordionVariants,
|
|
2480
|
+
initial: "hidden",
|
|
2481
|
+
animate: "visible",
|
|
2482
|
+
exit: "hidden",
|
|
2483
|
+
transition: { duration: 0.22, ease: EASE_OUT_EXPO },
|
|
2484
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { className: "navbar__drawer-panel-inner", children: [
|
|
2485
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: "navbar__drawer-panel-cols", children: [0, 1].map((colIdx) => {
|
|
2486
|
+
const colItems = dropdown.columns.filter((_, i) => i % 2 === colIdx);
|
|
2487
|
+
if (colItems.length === 0) return null;
|
|
2488
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: "navbar__drawer-panel-col", children: colItems.map((col) => /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { className: "navbar__drawer-col-section", children: [
|
|
2489
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)("p", { className: "navbar__drawer-col-title", children: col.title }),
|
|
2490
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: "navbar__drawer-col-links", children: col.items.map((link) => /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
2491
|
+
"a",
|
|
2492
|
+
{
|
|
2493
|
+
href: link.href,
|
|
2494
|
+
className: "navbar__drawer-link",
|
|
2495
|
+
target: link.external ? "_blank" : void 0,
|
|
2496
|
+
rel: link.external ? "noopener noreferrer" : void 0,
|
|
2497
|
+
children: link.label
|
|
2498
|
+
},
|
|
2499
|
+
link.href
|
|
2500
|
+
)) })
|
|
2501
|
+
] }, col.title)) }, colIdx);
|
|
2502
|
+
}) }),
|
|
2503
|
+
dropdown.feature && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(FeatureCard, { feature: dropdown.feature, mobile: true })
|
|
2504
|
+
] })
|
|
2505
|
+
}
|
|
2506
|
+
) })
|
|
2507
|
+
] });
|
|
2508
|
+
};
|
|
2509
|
+
var Navbar = ({
|
|
2510
|
+
theme = "dark",
|
|
2511
|
+
logoSrc,
|
|
2512
|
+
logoSrcDark,
|
|
2513
|
+
logoHref = "/",
|
|
2514
|
+
navItems = [],
|
|
2515
|
+
loginLabel = "Log in",
|
|
2516
|
+
loginHref,
|
|
2517
|
+
ctaLabel = "Open account",
|
|
2518
|
+
ctaHref,
|
|
2519
|
+
languageLabel,
|
|
2520
|
+
onLanguageClick,
|
|
2521
|
+
className,
|
|
2522
|
+
...props
|
|
2523
|
+
}) => {
|
|
2524
|
+
const [openDropdown, setOpenDropdown] = (0, import_react12.useState)(null);
|
|
2525
|
+
const [mobileOpen, setMobileOpen] = (0, import_react12.useState)(false);
|
|
2526
|
+
const [mobileExpanded, setMobileExpanded] = (0, import_react12.useState)(null);
|
|
2527
|
+
const [scrolled, setScrolled] = (0, import_react12.useState)(false);
|
|
2528
|
+
const hoverTimeoutRef = (0, import_react12.useRef)(null);
|
|
2529
|
+
const pillAreaRef = (0, import_react12.useRef)(null);
|
|
2530
|
+
const resolvedLogo = theme === "light" ? logoSrcDark ?? logoSrc : logoSrc;
|
|
2531
|
+
(0, import_react12.useEffect)(() => {
|
|
2532
|
+
const onScroll = () => setScrolled(window.scrollY > 0);
|
|
2533
|
+
window.addEventListener("scroll", onScroll, { passive: true });
|
|
2534
|
+
return () => window.removeEventListener("scroll", onScroll);
|
|
2535
|
+
}, []);
|
|
2536
|
+
(0, import_react12.useEffect)(() => {
|
|
2537
|
+
const onKey = (e) => {
|
|
2538
|
+
if (e.key === "Escape") {
|
|
2539
|
+
setOpenDropdown(null);
|
|
2540
|
+
setMobileOpen(false);
|
|
2541
|
+
}
|
|
2542
|
+
};
|
|
2543
|
+
document.addEventListener("keydown", onKey);
|
|
2544
|
+
return () => document.removeEventListener("keydown", onKey);
|
|
2545
|
+
}, []);
|
|
2546
|
+
(0, import_react12.useEffect)(() => {
|
|
2547
|
+
document.body.style.overflow = mobileOpen ? "hidden" : "";
|
|
2548
|
+
return () => {
|
|
2549
|
+
document.body.style.overflow = "";
|
|
2550
|
+
};
|
|
2551
|
+
}, [mobileOpen]);
|
|
2552
|
+
(0, import_react12.useEffect)(() => {
|
|
2553
|
+
if (!openDropdown) return;
|
|
2554
|
+
const onPointerDown = (e) => {
|
|
2555
|
+
if (pillAreaRef.current && !pillAreaRef.current.contains(e.target)) {
|
|
2556
|
+
setOpenDropdown(null);
|
|
2557
|
+
}
|
|
2558
|
+
};
|
|
2559
|
+
document.addEventListener("pointerdown", onPointerDown);
|
|
2560
|
+
return () => document.removeEventListener("pointerdown", onPointerDown);
|
|
2561
|
+
}, [openDropdown]);
|
|
2562
|
+
const clearHoverTimeout = (0, import_react12.useCallback)(() => {
|
|
2563
|
+
if (hoverTimeoutRef.current) {
|
|
2564
|
+
clearTimeout(hoverTimeoutRef.current);
|
|
2565
|
+
hoverTimeoutRef.current = null;
|
|
2566
|
+
}
|
|
2567
|
+
}, []);
|
|
2568
|
+
const handleNavEnter = (0, import_react12.useCallback)((label) => {
|
|
2569
|
+
clearHoverTimeout();
|
|
2570
|
+
setOpenDropdown(label);
|
|
2571
|
+
}, [clearHoverTimeout]);
|
|
2572
|
+
const handleNavLeave = (0, import_react12.useCallback)(() => {
|
|
2573
|
+
clearHoverTimeout();
|
|
2574
|
+
hoverTimeoutRef.current = setTimeout(() => setOpenDropdown(null), 120);
|
|
2575
|
+
}, [clearHoverTimeout]);
|
|
2576
|
+
const activeDropdownItem = navItems.find((item) => item.label === openDropdown);
|
|
2577
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
|
|
2578
|
+
"nav",
|
|
2579
|
+
{
|
|
2580
|
+
className: ["navbar", `navbar--${theme}`, scrolled && "navbar--scrolled", mobileOpen && "navbar--menu-open", className].filter(Boolean).join(" "),
|
|
2581
|
+
...props,
|
|
2582
|
+
children: [
|
|
2583
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { className: "navbar__bar", children: [
|
|
2584
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)("a", { href: logoHref, className: "navbar__logo", "aria-label": "Home", children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("img", { src: resolvedLogo, alt: "Logo" }) }),
|
|
2585
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: "navbar__nav-center", ref: pillAreaRef, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { className: "navbar__pill", children: [
|
|
2586
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)("a", { href: logoHref, className: "navbar__pill-logo", "aria-label": "Home", children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("img", { src: logoSrcDark ?? logoSrc, alt: "Logo" }) }),
|
|
2587
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { className: "navbar__nav-group", children: [
|
|
2588
|
+
navItems.map((item) => {
|
|
2589
|
+
if (item.external) {
|
|
2590
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
|
|
2591
|
+
"a",
|
|
2592
|
+
{
|
|
2593
|
+
href: item.href,
|
|
2594
|
+
className: "navbar__nav-item",
|
|
2595
|
+
target: "_blank",
|
|
2596
|
+
rel: "noopener noreferrer",
|
|
2597
|
+
children: [
|
|
2598
|
+
item.label,
|
|
2599
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(ArrowUpRightIcon, {})
|
|
2600
|
+
]
|
|
2601
|
+
},
|
|
2602
|
+
item.label
|
|
2603
|
+
);
|
|
2604
|
+
}
|
|
2605
|
+
if (item.dropdown) {
|
|
2606
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
|
|
2607
|
+
"button",
|
|
2608
|
+
{
|
|
2609
|
+
className: [
|
|
2610
|
+
"navbar__nav-item",
|
|
2611
|
+
openDropdown === item.label ? "navbar__nav-item--open" : ""
|
|
2612
|
+
].filter(Boolean).join(" "),
|
|
2613
|
+
onMouseEnter: () => handleNavEnter(item.label),
|
|
2614
|
+
onMouseLeave: handleNavLeave,
|
|
2615
|
+
"aria-expanded": openDropdown === item.label,
|
|
2616
|
+
"aria-haspopup": "true",
|
|
2617
|
+
children: [
|
|
2618
|
+
item.label,
|
|
2619
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(ChevronDownIcon3, { className: "navbar__nav-item__chevron" })
|
|
2620
|
+
]
|
|
2621
|
+
},
|
|
2622
|
+
item.label
|
|
2623
|
+
);
|
|
2624
|
+
}
|
|
2625
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("a", { href: item.href, className: "navbar__nav-item", children: item.label }, item.label);
|
|
2626
|
+
}),
|
|
2627
|
+
languageLabel && /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("button", { className: "navbar__nav-item navbar__lang-btn", onClick: onLanguageClick, children: [
|
|
2628
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(GlobeIcon, { className: "navbar__lang-globe" }),
|
|
2629
|
+
languageLabel
|
|
2630
|
+
] })
|
|
2631
|
+
] }),
|
|
2632
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { className: "navbar__pill-actions", children: [
|
|
2633
|
+
loginHref && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("a", { href: loginHref, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Button, { colorScheme: "black", variant: "secondary", label: loginLabel }) }),
|
|
2634
|
+
ctaHref && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("a", { href: ctaHref, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Button, { colorScheme: "coral", variant: "primary", label: ctaLabel }) })
|
|
2635
|
+
] })
|
|
2636
|
+
] }) }),
|
|
2637
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_framer_motion2.AnimatePresence, { children: openDropdown && activeDropdownItem?.dropdown && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
2638
|
+
DropdownPanel,
|
|
2639
|
+
{
|
|
2640
|
+
item: activeDropdownItem,
|
|
2641
|
+
onMouseEnter: clearHoverTimeout,
|
|
2642
|
+
onMouseLeave: handleNavLeave
|
|
2643
|
+
},
|
|
2644
|
+
openDropdown
|
|
2645
|
+
) }),
|
|
2646
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { className: "navbar__actions", children: [
|
|
2647
|
+
loginHref && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("a", { href: loginHref, className: "navbar__actions-login", children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
2648
|
+
Button,
|
|
2649
|
+
{
|
|
2650
|
+
colorScheme: theme === "dark" ? "white" : "black",
|
|
2651
|
+
variant: "secondary",
|
|
2652
|
+
label: loginLabel
|
|
2653
|
+
}
|
|
2654
|
+
) }),
|
|
2655
|
+
ctaHref && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("a", { href: ctaHref, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Button, { colorScheme: "coral", variant: "primary", label: ctaLabel }) })
|
|
2656
|
+
] }),
|
|
2657
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { className: "navbar__mobile-actions", children: [
|
|
2658
|
+
loginHref && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("a", { href: loginHref, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
2659
|
+
Button,
|
|
2660
|
+
{
|
|
2661
|
+
colorScheme: scrolled || theme === "light" ? "black" : "white",
|
|
2662
|
+
variant: "secondary",
|
|
2663
|
+
label: loginLabel
|
|
2664
|
+
}
|
|
2665
|
+
) }),
|
|
2666
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
2667
|
+
"button",
|
|
2668
|
+
{
|
|
2669
|
+
className: "navbar__mobile-trigger",
|
|
2670
|
+
onClick: () => setMobileOpen((o) => !o),
|
|
2671
|
+
"aria-label": mobileOpen ? "Close navigation menu" : "Open navigation menu",
|
|
2672
|
+
children: mobileOpen ? /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(XMarkIcon2, {}) : /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(BarsIcon, {})
|
|
2673
|
+
}
|
|
2674
|
+
)
|
|
2675
|
+
] })
|
|
2676
|
+
] }),
|
|
2677
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: "navbar__drawer-clip", children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_framer_motion2.AnimatePresence, { children: mobileOpen && /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
|
|
2678
|
+
import_framer_motion2.motion.div,
|
|
2679
|
+
{
|
|
2680
|
+
className: "navbar__drawer",
|
|
2681
|
+
variants: drawerVariants,
|
|
2682
|
+
initial: "hidden",
|
|
2683
|
+
animate: "visible",
|
|
2684
|
+
exit: "hidden",
|
|
2685
|
+
transition: { duration: 0.3, ease: EASE_OUT_EXPO },
|
|
2686
|
+
"aria-modal": "true",
|
|
2687
|
+
role: "dialog",
|
|
2688
|
+
"aria-label": "Navigation menu",
|
|
2689
|
+
children: [
|
|
2690
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("nav", { className: "navbar__drawer-nav", children: [
|
|
2691
|
+
navItems.map((item) => {
|
|
2692
|
+
if (item.dropdown) {
|
|
2693
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
2694
|
+
DrawerAccordion,
|
|
2695
|
+
{
|
|
2696
|
+
item,
|
|
2697
|
+
isOpen: mobileExpanded === item.label,
|
|
2698
|
+
onToggle: () => setMobileExpanded(
|
|
2699
|
+
(prev) => prev === item.label ? null : item.label
|
|
2700
|
+
)
|
|
2701
|
+
},
|
|
2702
|
+
item.label
|
|
2703
|
+
);
|
|
2704
|
+
}
|
|
2705
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
|
|
2706
|
+
"a",
|
|
2707
|
+
{
|
|
2708
|
+
href: item.href,
|
|
2709
|
+
className: "navbar__drawer-single",
|
|
2710
|
+
target: item.external ? "_blank" : void 0,
|
|
2711
|
+
rel: item.external ? "noopener noreferrer" : void 0,
|
|
2712
|
+
children: [
|
|
2713
|
+
item.label,
|
|
2714
|
+
item.external && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(ArrowUpRightIcon, {})
|
|
2715
|
+
]
|
|
2716
|
+
},
|
|
2717
|
+
item.label
|
|
2718
|
+
);
|
|
2719
|
+
}),
|
|
2720
|
+
languageLabel && /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("button", { className: "navbar__drawer-lang", onClick: onLanguageClick, children: [
|
|
2721
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(GlobeIcon, { className: "navbar__lang-globe" }),
|
|
2722
|
+
languageLabel
|
|
2723
|
+
] })
|
|
2724
|
+
] }),
|
|
2725
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { className: "navbar__drawer-footer", children: [
|
|
2726
|
+
loginHref && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("a", { href: loginHref, style: { display: "block" }, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
2727
|
+
Button,
|
|
2728
|
+
{
|
|
2729
|
+
colorScheme: "black",
|
|
2730
|
+
variant: "secondary",
|
|
2731
|
+
label: loginLabel,
|
|
2732
|
+
fullWidth: true
|
|
2733
|
+
}
|
|
2734
|
+
) }),
|
|
2735
|
+
ctaHref && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("a", { href: ctaHref, style: { display: "block" }, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
2736
|
+
Button,
|
|
2737
|
+
{
|
|
2738
|
+
colorScheme: "coral",
|
|
2739
|
+
variant: "primary",
|
|
2740
|
+
label: ctaLabel,
|
|
2741
|
+
fullWidth: true
|
|
2742
|
+
}
|
|
2743
|
+
) })
|
|
2744
|
+
] })
|
|
2745
|
+
]
|
|
2746
|
+
}
|
|
2747
|
+
) }) })
|
|
2748
|
+
]
|
|
2749
|
+
}
|
|
2750
|
+
);
|
|
2751
|
+
};
|
|
2752
|
+
|
|
2753
|
+
// templates/DayNightTransition/DayNightTransition.tsx
|
|
2754
|
+
var import_react13 = require("react");
|
|
2755
|
+
var import_framer_motion3 = require("framer-motion");
|
|
2756
|
+
var import_jsx_runtime24 = require("react/jsx-runtime");
|
|
2217
2757
|
var SPRING2 = { stiffness: 80, damping: 30, restDelta: 1e-3 };
|
|
2218
2758
|
var FADE_START = 0.35;
|
|
2219
2759
|
var FADE_END = 0.65;
|
|
@@ -2233,26 +2773,26 @@ var DayNightTransition = ({
|
|
|
2233
2773
|
className,
|
|
2234
2774
|
...props
|
|
2235
2775
|
}) => {
|
|
2236
|
-
const wrapperRef = (0,
|
|
2237
|
-
const { scrollYProgress } = (0,
|
|
2776
|
+
const wrapperRef = (0, import_react13.useRef)(null);
|
|
2777
|
+
const { scrollYProgress } = (0, import_framer_motion3.useScroll)({
|
|
2238
2778
|
target: wrapperRef,
|
|
2239
2779
|
offset: ["start end", "end start"]
|
|
2240
2780
|
});
|
|
2241
|
-
const smooth = (0,
|
|
2242
|
-
const nightOpacity = (0,
|
|
2243
|
-
const channel = (0,
|
|
2244
|
-
const textColor =
|
|
2245
|
-
const dayOpacity = (0,
|
|
2246
|
-
const nightOpacity2 = (0,
|
|
2781
|
+
const smooth = (0, import_framer_motion3.useSpring)(scrollYProgress, SPRING2);
|
|
2782
|
+
const nightOpacity = (0, import_framer_motion3.useTransform)(smooth, [FADE_START, FADE_END], [0, 1]);
|
|
2783
|
+
const channel = (0, import_framer_motion3.useTransform)(smooth, [FADE_START, FADE_END], [TEXT_CHANNEL_DAY, TEXT_CHANNEL_NIGHT]);
|
|
2784
|
+
const textColor = import_framer_motion3.useMotionTemplate`rgb(${channel}, ${channel}, ${channel})`;
|
|
2785
|
+
const dayOpacity = (0, import_framer_motion3.useTransform)(smooth, [WORD_START, WORD_END], [1, 0]);
|
|
2786
|
+
const nightOpacity2 = (0, import_framer_motion3.useTransform)(smooth, [WORD_START, WORD_END], [0, 1]);
|
|
2247
2787
|
const hasDescription = Boolean(dayDescription || nightDescription);
|
|
2248
|
-
return /* @__PURE__ */ (0,
|
|
2788
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
2249
2789
|
"div",
|
|
2250
2790
|
{
|
|
2251
2791
|
ref: wrapperRef,
|
|
2252
2792
|
className: ["dnt", className].filter(Boolean).join(" "),
|
|
2253
2793
|
...props,
|
|
2254
|
-
children: /* @__PURE__ */ (0,
|
|
2255
|
-
/* @__PURE__ */ (0,
|
|
2794
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { className: "dnt__sticky", children: [
|
|
2795
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
2256
2796
|
"img",
|
|
2257
2797
|
{
|
|
2258
2798
|
className: "dnt__bg dnt__bg--day",
|
|
@@ -2262,8 +2802,8 @@ var DayNightTransition = ({
|
|
|
2262
2802
|
draggable: false
|
|
2263
2803
|
}
|
|
2264
2804
|
),
|
|
2265
|
-
/* @__PURE__ */ (0,
|
|
2266
|
-
|
|
2805
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
2806
|
+
import_framer_motion3.motion.img,
|
|
2267
2807
|
{
|
|
2268
2808
|
className: "dnt__bg dnt__bg--night",
|
|
2269
2809
|
src: nightImageUrl,
|
|
@@ -2273,23 +2813,23 @@ var DayNightTransition = ({
|
|
|
2273
2813
|
style: { opacity: nightOpacity }
|
|
2274
2814
|
}
|
|
2275
2815
|
),
|
|
2276
|
-
/* @__PURE__ */ (0,
|
|
2277
|
-
|
|
2816
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: "dnt__content", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
|
|
2817
|
+
import_framer_motion3.motion.div,
|
|
2278
2818
|
{
|
|
2279
2819
|
className: "dnt__text-wrap",
|
|
2280
2820
|
style: { color: textColor },
|
|
2281
2821
|
children: [
|
|
2282
|
-
/* @__PURE__ */ (0,
|
|
2283
|
-
/* @__PURE__ */ (0,
|
|
2284
|
-
|
|
2822
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { className: "dnt__crossfade-wrap", children: [
|
|
2823
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
2824
|
+
import_framer_motion3.motion.h2,
|
|
2285
2825
|
{
|
|
2286
2826
|
className: "dnt__headline",
|
|
2287
2827
|
style: { opacity: dayOpacity },
|
|
2288
2828
|
children: dayHeadline
|
|
2289
2829
|
}
|
|
2290
2830
|
),
|
|
2291
|
-
/* @__PURE__ */ (0,
|
|
2292
|
-
|
|
2831
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
2832
|
+
import_framer_motion3.motion.h2,
|
|
2293
2833
|
{
|
|
2294
2834
|
className: "dnt__headline",
|
|
2295
2835
|
"aria-hidden": "true",
|
|
@@ -2298,17 +2838,17 @@ var DayNightTransition = ({
|
|
|
2298
2838
|
}
|
|
2299
2839
|
)
|
|
2300
2840
|
] }),
|
|
2301
|
-
hasDescription && /* @__PURE__ */ (0,
|
|
2302
|
-
/* @__PURE__ */ (0,
|
|
2303
|
-
|
|
2841
|
+
hasDescription && /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { className: "dnt__crossfade-wrap", children: [
|
|
2842
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
2843
|
+
import_framer_motion3.motion.p,
|
|
2304
2844
|
{
|
|
2305
2845
|
className: "dnt__description",
|
|
2306
2846
|
style: { opacity: dayOpacity },
|
|
2307
2847
|
children: dayDescription ?? ""
|
|
2308
2848
|
}
|
|
2309
2849
|
),
|
|
2310
|
-
/* @__PURE__ */ (0,
|
|
2311
|
-
|
|
2850
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
2851
|
+
import_framer_motion3.motion.p,
|
|
2312
2852
|
{
|
|
2313
2853
|
className: "dnt__description",
|
|
2314
2854
|
"aria-hidden": "true",
|
|
@@ -2317,7 +2857,7 @@ var DayNightTransition = ({
|
|
|
2317
2857
|
}
|
|
2318
2858
|
)
|
|
2319
2859
|
] }),
|
|
2320
|
-
/* @__PURE__ */ (0,
|
|
2860
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("a", { href: ctaHref, className: "dnt__btn", children: ctaLabel })
|
|
2321
2861
|
]
|
|
2322
2862
|
}
|
|
2323
2863
|
) })
|
|
@@ -2327,9 +2867,9 @@ var DayNightTransition = ({
|
|
|
2327
2867
|
};
|
|
2328
2868
|
|
|
2329
2869
|
// templates/PaymentMethods/PaymentMethods.tsx
|
|
2330
|
-
var
|
|
2331
|
-
var
|
|
2332
|
-
var
|
|
2870
|
+
var import_react14 = require("react");
|
|
2871
|
+
var import_framer_motion4 = require("framer-motion");
|
|
2872
|
+
var import_jsx_runtime25 = require("react/jsx-runtime");
|
|
2333
2873
|
function modWrap(min, max, v) {
|
|
2334
2874
|
const range = max - min;
|
|
2335
2875
|
return ((v - min) % range + range) % range + min;
|
|
@@ -2382,13 +2922,13 @@ var PaymentMethods = ({
|
|
|
2382
2922
|
className,
|
|
2383
2923
|
...props
|
|
2384
2924
|
}) => {
|
|
2385
|
-
const { scrollY } = (0,
|
|
2386
|
-
const scrollVelocity = (0,
|
|
2387
|
-
const col1Y = (0,
|
|
2388
|
-
const col2Y = (0,
|
|
2389
|
-
const col1Ref = (0,
|
|
2390
|
-
const col2Ref = (0,
|
|
2391
|
-
(0,
|
|
2925
|
+
const { scrollY } = (0, import_framer_motion4.useScroll)();
|
|
2926
|
+
const scrollVelocity = (0, import_framer_motion4.useVelocity)(scrollY);
|
|
2927
|
+
const col1Y = (0, import_framer_motion4.useMotionValue)(0);
|
|
2928
|
+
const col2Y = (0, import_framer_motion4.useMotionValue)(0);
|
|
2929
|
+
const col1Ref = (0, import_react14.useRef)(null);
|
|
2930
|
+
const col2Ref = (0, import_react14.useRef)(null);
|
|
2931
|
+
(0, import_framer_motion4.useAnimationFrame)((_, delta) => {
|
|
2392
2932
|
const raw = scrollVelocity.get();
|
|
2393
2933
|
if (Math.abs(raw) < DEADZONE) return;
|
|
2394
2934
|
const clamped = Math.sign(raw) * Math.min(Math.abs(raw), MAX_SCROLL_V);
|
|
@@ -2400,21 +2940,21 @@ var PaymentMethods = ({
|
|
|
2400
2940
|
});
|
|
2401
2941
|
const track1 = [...col1Logos, ...col1Logos];
|
|
2402
2942
|
const track2 = [...col2Logos, ...col2Logos];
|
|
2403
|
-
return /* @__PURE__ */ (0,
|
|
2943
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
2404
2944
|
"section",
|
|
2405
2945
|
{
|
|
2406
2946
|
className: ["pm", className].filter(Boolean).join(" "),
|
|
2407
2947
|
...props,
|
|
2408
|
-
children: /* @__PURE__ */ (0,
|
|
2409
|
-
/* @__PURE__ */ (0,
|
|
2410
|
-
/* @__PURE__ */ (0,
|
|
2411
|
-
/* @__PURE__ */ (0,
|
|
2412
|
-
|
|
2948
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: "pm__inner", children: [
|
|
2949
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: "pm__media", children: /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: "pm__carousel", children: [
|
|
2950
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: "pm__fade pm__fade--top", "aria-hidden": "true" }),
|
|
2951
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
2952
|
+
import_framer_motion4.motion.div,
|
|
2413
2953
|
{
|
|
2414
2954
|
ref: col1Ref,
|
|
2415
2955
|
className: "pm__col",
|
|
2416
2956
|
style: { y: col1Y },
|
|
2417
|
-
children: track1.map((logo, i) => /* @__PURE__ */ (0,
|
|
2957
|
+
children: track1.map((logo, i) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: "pm__card", children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: "pm__card-img-wrap", children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
2418
2958
|
"img",
|
|
2419
2959
|
{
|
|
2420
2960
|
src: logo.url,
|
|
@@ -2425,13 +2965,13 @@ var PaymentMethods = ({
|
|
|
2425
2965
|
) }) }, `c1-${i}`))
|
|
2426
2966
|
}
|
|
2427
2967
|
),
|
|
2428
|
-
/* @__PURE__ */ (0,
|
|
2429
|
-
|
|
2968
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
2969
|
+
import_framer_motion4.motion.div,
|
|
2430
2970
|
{
|
|
2431
2971
|
ref: col2Ref,
|
|
2432
2972
|
className: "pm__col",
|
|
2433
2973
|
style: { y: col2Y },
|
|
2434
|
-
children: track2.map((logo, i) => /* @__PURE__ */ (0,
|
|
2974
|
+
children: track2.map((logo, i) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: "pm__card", children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: "pm__card-img-wrap", children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
2435
2975
|
"img",
|
|
2436
2976
|
{
|
|
2437
2977
|
src: logo.url,
|
|
@@ -2442,17 +2982,17 @@ var PaymentMethods = ({
|
|
|
2442
2982
|
) }) }, `c2-${i}`))
|
|
2443
2983
|
}
|
|
2444
2984
|
),
|
|
2445
|
-
/* @__PURE__ */ (0,
|
|
2985
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: "pm__fade pm__fade--bottom", "aria-hidden": "true" })
|
|
2446
2986
|
] }) }),
|
|
2447
|
-
/* @__PURE__ */ (0,
|
|
2448
|
-
/* @__PURE__ */ (0,
|
|
2449
|
-
/* @__PURE__ */ (0,
|
|
2450
|
-
/* @__PURE__ */ (0,
|
|
2451
|
-
/* @__PURE__ */ (0,
|
|
2987
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: "pm__content", children: [
|
|
2988
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)("h2", { className: "pm__headline", children: headline }),
|
|
2989
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: "pm__text-group", children: [
|
|
2990
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)("p", { className: "pm__body", children: body }),
|
|
2991
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)("p", { className: "pm__disclaimer", children: disclaimer })
|
|
2452
2992
|
] }),
|
|
2453
|
-
/* @__PURE__ */ (0,
|
|
2993
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("a", { href: ctaHref, className: "pm__link", children: [
|
|
2454
2994
|
ctaLabel,
|
|
2455
|
-
/* @__PURE__ */ (0,
|
|
2995
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { "aria-hidden": "true", children: "\u2192" })
|
|
2456
2996
|
] })
|
|
2457
2997
|
] })
|
|
2458
2998
|
] })
|
|
@@ -2477,6 +3017,7 @@ var PaymentMethods = ({
|
|
|
2477
3017
|
Footer,
|
|
2478
3018
|
Hero,
|
|
2479
3019
|
Link,
|
|
3020
|
+
Navbar,
|
|
2480
3021
|
Pagination,
|
|
2481
3022
|
PaymentMethods,
|
|
2482
3023
|
SCROLLYTELLING_DATA,
|