@deriv-web-design/ui 0.0.13 → 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/appstore-appgallery-dark-2QPFCM4A.svg +12 -0
- package/dist/appstore-appgallery-light-VF62CF5X.svg +19 -0
- package/dist/appstore-appstore-dark-FDUROOKK.svg +24 -0
- package/dist/appstore-appstore-light-BEVC5PJZ.svg +24 -0
- package/dist/appstore-browser-dark-2E6TK6JH.svg +32 -0
- package/dist/appstore-browser-light-HBKTW4SI.svg +32 -0
- package/dist/appstore-googleplay-dark-HWTOQTL6.svg +14 -0
- package/dist/appstore-googleplay-light-W3CS6NAG.svg +14 -0
- package/dist/appstore-linux-dark-RVH7CBM4.svg +46 -0
- package/dist/appstore-linux-light-WQECAJRC.svg +46 -0
- package/dist/appstore-macos-dark-2A3UM5YI.svg +23 -0
- package/dist/appstore-macos-light-5LI6ESAV.svg +23 -0
- package/dist/appstore-windows-dark-ZDWELB42.svg +31 -0
- package/dist/appstore-windows-light-TCALZSJM.svg +31 -0
- package/dist/index.css +1245 -425
- package/dist/index.css.map +1 -1
- package/dist/index.d.mts +155 -24
- package/dist/index.d.ts +155 -24
- package/dist/index.js +924 -438
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +908 -427
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
- package/tokens.css +26 -5
package/dist/index.js
CHANGED
|
@@ -32,18 +32,23 @@ __export(index_exports, {
|
|
|
32
32
|
Chip: () => Chip,
|
|
33
33
|
ChipDropdown: () => ChipDropdown,
|
|
34
34
|
DayNightTransition: () => DayNightTransition,
|
|
35
|
+
DotLottieInView: () => DotLottieInView,
|
|
36
|
+
DownloadBadge: () => DownloadBadge,
|
|
37
|
+
DownloadBanner: () => DownloadBanner,
|
|
38
|
+
FEATURE_SCROLL_DATA: () => FEATURE_SCROLL_DATA,
|
|
35
39
|
FeatureCards: () => FeatureCards,
|
|
40
|
+
FeatureCardsSecondary: () => FeatureCardsSecondary,
|
|
41
|
+
FeatureScroll: () => FeatureScroll,
|
|
36
42
|
Footer: () => Footer,
|
|
37
43
|
Hero: () => Hero,
|
|
38
44
|
Link: () => Link,
|
|
45
|
+
LogoMarquee: () => LogoMarquee,
|
|
39
46
|
Navbar: () => Navbar,
|
|
40
47
|
Pagination: () => Pagination,
|
|
41
|
-
PaymentMethods: () => PaymentMethods,
|
|
42
|
-
SCROLLYTELLING_DATA: () => SCROLLYTELLING_DATA,
|
|
43
48
|
STEPS_DATA: () => STEPS_DATA,
|
|
44
|
-
Scrollytelling: () => Scrollytelling,
|
|
45
49
|
SearchField: () => SearchField,
|
|
46
50
|
Stats: () => Stats,
|
|
51
|
+
Steps: () => Steps,
|
|
47
52
|
StickyStackedCards: () => StickyStackedCards,
|
|
48
53
|
TEXT_CONTENT: () => TEXT_CONTENT,
|
|
49
54
|
Tag: () => Tag,
|
|
@@ -1083,10 +1088,50 @@ var FeatureCards = ({
|
|
|
1083
1088
|
] }) });
|
|
1084
1089
|
};
|
|
1085
1090
|
|
|
1091
|
+
// templates/FeatureCardsSecondary/FeatureCardsSecondary.tsx
|
|
1092
|
+
var import_jsx_runtime17 = require("react/jsx-runtime");
|
|
1093
|
+
var FeatureCardsSecondary = ({
|
|
1094
|
+
sectionTitle,
|
|
1095
|
+
sectionDescription,
|
|
1096
|
+
showLink = false,
|
|
1097
|
+
linkText = "Learn more",
|
|
1098
|
+
onLinkClick,
|
|
1099
|
+
cards
|
|
1100
|
+
}) => {
|
|
1101
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("section", { className: "fcs-section", children: /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: "fcs-container", children: [
|
|
1102
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: "fcs-header", children: [
|
|
1103
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("h2", { className: "fcs-sectionTitle", children: sectionTitle }),
|
|
1104
|
+
sectionDescription && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("p", { className: "fcs-sectionDescription", children: sectionDescription }),
|
|
1105
|
+
showLink && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
1106
|
+
Link,
|
|
1107
|
+
{
|
|
1108
|
+
colorScheme: "coral",
|
|
1109
|
+
label: linkText,
|
|
1110
|
+
onClick: onLinkClick
|
|
1111
|
+
}
|
|
1112
|
+
)
|
|
1113
|
+
] }),
|
|
1114
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: `fcs-grid fcs-grid--${cards.length === 4 ? "4" : "3"}`, children: cards.map((card, index) => /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
1115
|
+
Card,
|
|
1116
|
+
{
|
|
1117
|
+
variant: "secondary",
|
|
1118
|
+
title: card.title,
|
|
1119
|
+
description: card.description,
|
|
1120
|
+
icon: card.icon,
|
|
1121
|
+
showIcon: card.showIcon,
|
|
1122
|
+
showLink: card.showLink,
|
|
1123
|
+
linkText: card.linkText,
|
|
1124
|
+
onLinkClick: card.onLinkClick
|
|
1125
|
+
},
|
|
1126
|
+
index
|
|
1127
|
+
)) })
|
|
1128
|
+
] }) });
|
|
1129
|
+
};
|
|
1130
|
+
|
|
1086
1131
|
// components/Footer/Footer.tsx
|
|
1087
1132
|
var import_react7 = require("react");
|
|
1088
|
-
var
|
|
1089
|
-
var ExternalLinkIcon = () => /* @__PURE__ */ (0,
|
|
1133
|
+
var import_jsx_runtime18 = require("react/jsx-runtime");
|
|
1134
|
+
var ExternalLinkIcon = () => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
1090
1135
|
"svg",
|
|
1091
1136
|
{
|
|
1092
1137
|
width: "12",
|
|
@@ -1095,7 +1140,7 @@ var ExternalLinkIcon = () => /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
|
1095
1140
|
fill: "none",
|
|
1096
1141
|
"aria-hidden": "true",
|
|
1097
1142
|
focusable: "false",
|
|
1098
|
-
children: /* @__PURE__ */ (0,
|
|
1143
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
1099
1144
|
"path",
|
|
1100
1145
|
{
|
|
1101
1146
|
d: "M2 2H10M10 2V10M10 2L2 10",
|
|
@@ -1107,7 +1152,7 @@ var ExternalLinkIcon = () => /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
|
1107
1152
|
)
|
|
1108
1153
|
}
|
|
1109
1154
|
);
|
|
1110
|
-
var ChevronDownIcon2 = () => /* @__PURE__ */ (0,
|
|
1155
|
+
var ChevronDownIcon2 = () => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
1111
1156
|
"svg",
|
|
1112
1157
|
{
|
|
1113
1158
|
width: "12",
|
|
@@ -1116,7 +1161,7 @@ var ChevronDownIcon2 = () => /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
|
1116
1161
|
fill: "none",
|
|
1117
1162
|
"aria-hidden": "true",
|
|
1118
1163
|
focusable: "false",
|
|
1119
|
-
children: /* @__PURE__ */ (0,
|
|
1164
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
1120
1165
|
"path",
|
|
1121
1166
|
{
|
|
1122
1167
|
d: "M2 4L6 8L10 4",
|
|
@@ -1133,9 +1178,9 @@ var DerivGoBadges = ({
|
|
|
1133
1178
|
appStoreBadge,
|
|
1134
1179
|
huaweiBadge,
|
|
1135
1180
|
availabilityNote
|
|
1136
|
-
}) => /* @__PURE__ */ (0,
|
|
1137
|
-
/* @__PURE__ */ (0,
|
|
1138
|
-
googlePlayBadge && /* @__PURE__ */ (0,
|
|
1181
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_jsx_runtime18.Fragment, { children: [
|
|
1182
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "footer__app-badges", children: [
|
|
1183
|
+
googlePlayBadge && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
1139
1184
|
"a",
|
|
1140
1185
|
{
|
|
1141
1186
|
href: googlePlayBadge.href,
|
|
@@ -1143,10 +1188,10 @@ var DerivGoBadges = ({
|
|
|
1143
1188
|
"aria-label": googlePlayBadge.imageAlt,
|
|
1144
1189
|
target: "_blank",
|
|
1145
1190
|
rel: "noopener noreferrer",
|
|
1146
|
-
children: googlePlayBadge.icon ?? /* @__PURE__ */ (0,
|
|
1191
|
+
children: googlePlayBadge.icon ?? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("img", { src: googlePlayBadge.imageSrc, alt: googlePlayBadge.imageAlt })
|
|
1147
1192
|
}
|
|
1148
1193
|
),
|
|
1149
|
-
appStoreBadge && /* @__PURE__ */ (0,
|
|
1194
|
+
appStoreBadge && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
1150
1195
|
"a",
|
|
1151
1196
|
{
|
|
1152
1197
|
href: appStoreBadge.href,
|
|
@@ -1154,10 +1199,10 @@ var DerivGoBadges = ({
|
|
|
1154
1199
|
"aria-label": appStoreBadge.imageAlt,
|
|
1155
1200
|
target: "_blank",
|
|
1156
1201
|
rel: "noopener noreferrer",
|
|
1157
|
-
children: appStoreBadge.icon ?? /* @__PURE__ */ (0,
|
|
1202
|
+
children: appStoreBadge.icon ?? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("img", { src: appStoreBadge.imageSrc, alt: appStoreBadge.imageAlt })
|
|
1158
1203
|
}
|
|
1159
1204
|
),
|
|
1160
|
-
huaweiBadge && /* @__PURE__ */ (0,
|
|
1205
|
+
huaweiBadge && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
1161
1206
|
"a",
|
|
1162
1207
|
{
|
|
1163
1208
|
href: huaweiBadge.href,
|
|
@@ -1165,13 +1210,13 @@ var DerivGoBadges = ({
|
|
|
1165
1210
|
"aria-label": huaweiBadge.imageAlt,
|
|
1166
1211
|
target: "_blank",
|
|
1167
1212
|
rel: "noopener noreferrer",
|
|
1168
|
-
children: huaweiBadge.icon ?? /* @__PURE__ */ (0,
|
|
1213
|
+
children: huaweiBadge.icon ?? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("img", { src: huaweiBadge.imageSrc, alt: huaweiBadge.imageAlt })
|
|
1169
1214
|
}
|
|
1170
1215
|
)
|
|
1171
1216
|
] }),
|
|
1172
|
-
availabilityNote && /* @__PURE__ */ (0,
|
|
1217
|
+
availabilityNote && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("p", { className: "footer__app-note", children: availabilityNote })
|
|
1173
1218
|
] });
|
|
1174
|
-
var NavLink = ({ label, href, isExternal, onClick }) => /* @__PURE__ */ (0,
|
|
1219
|
+
var NavLink = ({ label, href, isExternal, onClick }) => /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
|
|
1175
1220
|
"a",
|
|
1176
1221
|
{
|
|
1177
1222
|
href,
|
|
@@ -1180,7 +1225,7 @@ var NavLink = ({ label, href, isExternal, onClick }) => /* @__PURE__ */ (0, impo
|
|
|
1180
1225
|
...isExternal ? { target: "_blank", rel: "noopener noreferrer" } : {},
|
|
1181
1226
|
children: [
|
|
1182
1227
|
label,
|
|
1183
|
-
isExternal && /* @__PURE__ */ (0,
|
|
1228
|
+
isExternal && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ExternalLinkIcon, {})
|
|
1184
1229
|
]
|
|
1185
1230
|
}
|
|
1186
1231
|
);
|
|
@@ -1212,14 +1257,14 @@ var Footer = ({
|
|
|
1212
1257
|
});
|
|
1213
1258
|
};
|
|
1214
1259
|
const aiLabel = aiSummary?.label ?? "Ask AI for a summary of Deriv";
|
|
1215
|
-
return /* @__PURE__ */ (0,
|
|
1260
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
1216
1261
|
"footer",
|
|
1217
1262
|
{
|
|
1218
1263
|
className: ["footer", className].filter(Boolean).join(" "),
|
|
1219
1264
|
...props,
|
|
1220
|
-
children: /* @__PURE__ */ (0,
|
|
1221
|
-
/* @__PURE__ */ (0,
|
|
1222
|
-
/* @__PURE__ */ (0,
|
|
1265
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "footer__inner", children: [
|
|
1266
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "footer__header", children: [
|
|
1267
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "footer__logo-wrapper", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
1223
1268
|
"img",
|
|
1224
1269
|
{
|
|
1225
1270
|
src: logoSrc,
|
|
@@ -1227,21 +1272,21 @@ var Footer = ({
|
|
|
1227
1272
|
className: "footer__logo"
|
|
1228
1273
|
}
|
|
1229
1274
|
) }),
|
|
1230
|
-
aiSummary && /* @__PURE__ */ (0,
|
|
1231
|
-
/* @__PURE__ */ (0,
|
|
1232
|
-
/* @__PURE__ */ (0,
|
|
1275
|
+
aiSummary && /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "footer__ai-bar footer__ai-bar--inline", children: [
|
|
1276
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "footer__ai-bar-label", children: aiLabel }),
|
|
1277
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "footer__ai-bar-icons", children: aiSummary.items.map((item, i) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
1233
1278
|
"a",
|
|
1234
1279
|
{
|
|
1235
1280
|
href: item.href,
|
|
1236
1281
|
"aria-label": item.imageAlt,
|
|
1237
1282
|
target: "_blank",
|
|
1238
1283
|
rel: "noopener noreferrer",
|
|
1239
|
-
children: /* @__PURE__ */ (0,
|
|
1284
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("img", { className: "footer__ai-icon", src: item.imageSrc, alt: item.imageAlt })
|
|
1240
1285
|
},
|
|
1241
1286
|
i
|
|
1242
1287
|
)) })
|
|
1243
1288
|
] }),
|
|
1244
|
-
/* @__PURE__ */ (0,
|
|
1289
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "footer__social footer__social--in-header", children: socialLinks.map((link, i) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
1245
1290
|
"a",
|
|
1246
1291
|
{
|
|
1247
1292
|
href: link.href,
|
|
@@ -1254,27 +1299,27 @@ var Footer = ({
|
|
|
1254
1299
|
i
|
|
1255
1300
|
)) })
|
|
1256
1301
|
] }),
|
|
1257
|
-
aiSummary && /* @__PURE__ */ (0,
|
|
1258
|
-
/* @__PURE__ */ (0,
|
|
1259
|
-
/* @__PURE__ */ (0,
|
|
1302
|
+
aiSummary && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "footer__ai-section", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "footer__ai-bar footer__ai-bar--block", children: [
|
|
1303
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "footer__ai-bar-label", children: aiLabel }),
|
|
1304
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "footer__ai-bar-icons", children: aiSummary.items.map((item, i) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
1260
1305
|
"a",
|
|
1261
1306
|
{
|
|
1262
1307
|
href: item.href,
|
|
1263
1308
|
"aria-label": item.imageAlt,
|
|
1264
1309
|
target: "_blank",
|
|
1265
1310
|
rel: "noopener noreferrer",
|
|
1266
|
-
children: /* @__PURE__ */ (0,
|
|
1311
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("img", { className: "footer__ai-icon", src: item.imageSrc, alt: item.imageAlt })
|
|
1267
1312
|
},
|
|
1268
1313
|
i
|
|
1269
1314
|
)) })
|
|
1270
1315
|
] }) }),
|
|
1271
|
-
/* @__PURE__ */ (0,
|
|
1272
|
-
navColumns.map((column, colIdx) => /* @__PURE__ */ (0,
|
|
1273
|
-
/* @__PURE__ */ (0,
|
|
1274
|
-
/* @__PURE__ */ (0,
|
|
1316
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "footer__nav footer__nav--columns", children: [
|
|
1317
|
+
navColumns.map((column, colIdx) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "footer__column", children: column.map((section, secIdx) => /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "footer__nav-section", children: [
|
|
1318
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)("p", { className: "footer__nav-title", children: section.title }),
|
|
1319
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)("ul", { className: "footer__nav-links", children: section.links.map((link, linkIdx) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(NavLink, { ...link }) }, linkIdx)) })
|
|
1275
1320
|
] }, secIdx)) }, colIdx)),
|
|
1276
|
-
/* @__PURE__ */ (0,
|
|
1277
|
-
investorsInPeopleSrc && /* @__PURE__ */ (0,
|
|
1321
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "footer__sidebar", children: [
|
|
1322
|
+
investorsInPeopleSrc && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "footer__investors-card", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
1278
1323
|
"img",
|
|
1279
1324
|
{
|
|
1280
1325
|
src: investorsInPeopleSrc,
|
|
@@ -1282,9 +1327,9 @@ var Footer = ({
|
|
|
1282
1327
|
className: "footer__investors-img"
|
|
1283
1328
|
}
|
|
1284
1329
|
) }),
|
|
1285
|
-
derivGo && /* @__PURE__ */ (0,
|
|
1286
|
-
/* @__PURE__ */ (0,
|
|
1287
|
-
/* @__PURE__ */ (0,
|
|
1330
|
+
derivGo && /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "footer__deriv-go-card", children: [
|
|
1331
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "footer__deriv-go-header", children: [
|
|
1332
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
1288
1333
|
"img",
|
|
1289
1334
|
{
|
|
1290
1335
|
src: derivGo.logoSrc,
|
|
@@ -1292,11 +1337,11 @@ var Footer = ({
|
|
|
1292
1337
|
className: "footer__deriv-go-logo"
|
|
1293
1338
|
}
|
|
1294
1339
|
),
|
|
1295
|
-
/* @__PURE__ */ (0,
|
|
1340
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "footer__deriv-go-title", children: derivGo.title ?? "Deriv GO" })
|
|
1296
1341
|
] }),
|
|
1297
|
-
/* @__PURE__ */ (0,
|
|
1298
|
-
(derivGo.qrCodeSrc || derivGo.qrCodeIcon) && /* @__PURE__ */ (0,
|
|
1299
|
-
derivGo.qrCodeIcon ? /* @__PURE__ */ (0,
|
|
1342
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)("p", { className: "footer__deriv-go-desc", children: derivGo.description ?? "Trade multipliers on our mobile app." }),
|
|
1343
|
+
(derivGo.qrCodeSrc || derivGo.qrCodeIcon) && /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "footer__deriv-go-qr", children: [
|
|
1344
|
+
derivGo.qrCodeIcon ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "footer__deriv-go-qr-icon", children: derivGo.qrCodeIcon }) : /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
1300
1345
|
"img",
|
|
1301
1346
|
{
|
|
1302
1347
|
src: derivGo.qrCodeSrc,
|
|
@@ -1304,9 +1349,9 @@ var Footer = ({
|
|
|
1304
1349
|
className: "footer__deriv-go-qr-img"
|
|
1305
1350
|
}
|
|
1306
1351
|
),
|
|
1307
|
-
/* @__PURE__ */ (0,
|
|
1352
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "footer__deriv-go-qr-label", children: derivGo.scanToDownloadLabel ?? "Scan to download" })
|
|
1308
1353
|
] }),
|
|
1309
|
-
/* @__PURE__ */ (0,
|
|
1354
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
1310
1355
|
DerivGoBadges,
|
|
1311
1356
|
{
|
|
1312
1357
|
googlePlayBadge: derivGo.googlePlayBadge,
|
|
@@ -1318,9 +1363,9 @@ var Footer = ({
|
|
|
1318
1363
|
] })
|
|
1319
1364
|
] })
|
|
1320
1365
|
] }),
|
|
1321
|
-
/* @__PURE__ */ (0,
|
|
1366
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "footer__nav footer__nav--accordion", children: allSections.map((section, idx) => {
|
|
1322
1367
|
const isOpen = openSections.has(idx);
|
|
1323
|
-
return /* @__PURE__ */ (0,
|
|
1368
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
|
|
1324
1369
|
"div",
|
|
1325
1370
|
{
|
|
1326
1371
|
className: [
|
|
@@ -1328,7 +1373,7 @@ var Footer = ({
|
|
|
1328
1373
|
isOpen && "footer__accordion-item--open"
|
|
1329
1374
|
].filter(Boolean).join(" "),
|
|
1330
1375
|
children: [
|
|
1331
|
-
/* @__PURE__ */ (0,
|
|
1376
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
|
|
1332
1377
|
"button",
|
|
1333
1378
|
{
|
|
1334
1379
|
type: "button",
|
|
@@ -1336,18 +1381,18 @@ var Footer = ({
|
|
|
1336
1381
|
onClick: () => toggleSection(idx),
|
|
1337
1382
|
"aria-expanded": isOpen,
|
|
1338
1383
|
children: [
|
|
1339
|
-
/* @__PURE__ */ (0,
|
|
1340
|
-
/* @__PURE__ */ (0,
|
|
1384
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "footer__accordion-label", children: section.title }),
|
|
1385
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "footer__accordion-chevron", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ChevronDownIcon2, {}) })
|
|
1341
1386
|
]
|
|
1342
1387
|
}
|
|
1343
1388
|
),
|
|
1344
|
-
isOpen && /* @__PURE__ */ (0,
|
|
1389
|
+
isOpen && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("ul", { className: "footer__accordion-links", children: section.links.map((link, linkIdx) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(NavLink, { ...link }) }, linkIdx)) })
|
|
1345
1390
|
]
|
|
1346
1391
|
},
|
|
1347
1392
|
idx
|
|
1348
1393
|
);
|
|
1349
1394
|
}) }),
|
|
1350
|
-
socialLinks.length > 0 && /* @__PURE__ */ (0,
|
|
1395
|
+
socialLinks.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "footer__social footer__social--standalone", children: socialLinks.map((link, i) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
1351
1396
|
"a",
|
|
1352
1397
|
{
|
|
1353
1398
|
href: link.href,
|
|
@@ -1359,10 +1404,10 @@ var Footer = ({
|
|
|
1359
1404
|
},
|
|
1360
1405
|
i
|
|
1361
1406
|
)) }),
|
|
1362
|
-
derivGo && /* @__PURE__ */ (0,
|
|
1363
|
-
/* @__PURE__ */ (0,
|
|
1364
|
-
/* @__PURE__ */ (0,
|
|
1365
|
-
/* @__PURE__ */ (0,
|
|
1407
|
+
derivGo && /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "footer__deriv-go-banner", children: [
|
|
1408
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "footer__deriv-go-banner-info", children: [
|
|
1409
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "footer__deriv-go-header", children: [
|
|
1410
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
1366
1411
|
"img",
|
|
1367
1412
|
{
|
|
1368
1413
|
src: derivGo.logoSrc,
|
|
@@ -1370,11 +1415,11 @@ var Footer = ({
|
|
|
1370
1415
|
className: "footer__deriv-go-logo"
|
|
1371
1416
|
}
|
|
1372
1417
|
),
|
|
1373
|
-
/* @__PURE__ */ (0,
|
|
1418
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "footer__deriv-go-title", children: derivGo.title ?? "Deriv GO" })
|
|
1374
1419
|
] }),
|
|
1375
|
-
/* @__PURE__ */ (0,
|
|
1420
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)("p", { className: "footer__deriv-go-desc", children: derivGo.description ?? "Trade multipliers on our mobile app." })
|
|
1376
1421
|
] }),
|
|
1377
|
-
/* @__PURE__ */ (0,
|
|
1422
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "footer__deriv-go-banner-badges", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
1378
1423
|
DerivGoBadges,
|
|
1379
1424
|
{
|
|
1380
1425
|
googlePlayBadge: derivGo.googlePlayBadge,
|
|
@@ -1384,11 +1429,11 @@ var Footer = ({
|
|
|
1384
1429
|
}
|
|
1385
1430
|
) })
|
|
1386
1431
|
] }),
|
|
1387
|
-
(licenseText || riskWarningText) && /* @__PURE__ */ (0,
|
|
1388
|
-
licenseText && /* @__PURE__ */ (0,
|
|
1389
|
-
riskWarningText && /* @__PURE__ */ (0,
|
|
1432
|
+
(licenseText || riskWarningText) && /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "footer__legal-block", children: [
|
|
1433
|
+
licenseText && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "footer__license", children: licenseText }),
|
|
1434
|
+
riskWarningText && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "footer__risk-warning", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("p", { className: "footer__risk-warning-text", children: riskWarningText }) })
|
|
1390
1435
|
] }),
|
|
1391
|
-
investorsInPeopleSrc && /* @__PURE__ */ (0,
|
|
1436
|
+
investorsInPeopleSrc && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "footer__investors-stacked", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
1392
1437
|
"img",
|
|
1393
1438
|
{
|
|
1394
1439
|
src: investorsInPeopleSrc,
|
|
@@ -1402,12 +1447,13 @@ var Footer = ({
|
|
|
1402
1447
|
};
|
|
1403
1448
|
|
|
1404
1449
|
// templates/Hero/Hero.tsx
|
|
1405
|
-
var
|
|
1450
|
+
var import_react8 = require("react");
|
|
1451
|
+
var import_jsx_runtime19 = require("react/jsx-runtime");
|
|
1406
1452
|
var Visual = ({
|
|
1407
1453
|
src,
|
|
1408
1454
|
className,
|
|
1409
1455
|
alt = ""
|
|
1410
|
-
}) => /* @__PURE__ */ (0,
|
|
1456
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className, children: typeof src === "string" ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("img", { src, alt }) : src });
|
|
1411
1457
|
var Hero = ({
|
|
1412
1458
|
variant,
|
|
1413
1459
|
subtitle,
|
|
@@ -1419,17 +1465,52 @@ var Hero = ({
|
|
|
1419
1465
|
heroImage,
|
|
1420
1466
|
leftVisual,
|
|
1421
1467
|
rightVisual,
|
|
1468
|
+
productImage,
|
|
1469
|
+
floatingImage,
|
|
1422
1470
|
className,
|
|
1423
1471
|
...props
|
|
1424
1472
|
}) => {
|
|
1425
1473
|
const variantClass = `hero--${variant}`;
|
|
1426
|
-
const
|
|
1427
|
-
|
|
1428
|
-
|
|
1429
|
-
|
|
1474
|
+
const sectionRef = (0, import_react8.useRef)(null);
|
|
1475
|
+
const leftRef = (0, import_react8.useRef)(null);
|
|
1476
|
+
const rightRef = (0, import_react8.useRef)(null);
|
|
1477
|
+
(0, import_react8.useEffect)(() => {
|
|
1478
|
+
if (variant !== "visuals") return;
|
|
1479
|
+
if (window.matchMedia("(prefers-reduced-motion: reduce)").matches) return;
|
|
1480
|
+
const section = sectionRef.current;
|
|
1481
|
+
const leftEl = leftRef.current;
|
|
1482
|
+
const rightEl = rightRef.current;
|
|
1483
|
+
if (!section || !leftEl || !rightEl) return;
|
|
1484
|
+
const STRENGTH = 60;
|
|
1485
|
+
const onScroll = () => {
|
|
1486
|
+
const rect = section.getBoundingClientRect();
|
|
1487
|
+
const viewH = window.innerHeight;
|
|
1488
|
+
const progress = 1 - rect.bottom / (viewH + rect.height);
|
|
1489
|
+
const clamped = Math.max(0, Math.min(1, progress));
|
|
1490
|
+
const offset = (clamped - 0.5) * STRENGTH * 2;
|
|
1491
|
+
leftEl.style.transform = `translateY(${-offset}px)`;
|
|
1492
|
+
rightEl.style.transform = `translateY(${offset}px)`;
|
|
1493
|
+
};
|
|
1494
|
+
const scrollEl = (() => {
|
|
1495
|
+
let el = section.parentElement;
|
|
1496
|
+
while (el && el !== document.documentElement) {
|
|
1497
|
+
const { overflow, overflowY } = getComputedStyle(el);
|
|
1498
|
+
if (/auto|scroll/.test(overflow + overflowY)) return el;
|
|
1499
|
+
el = el.parentElement;
|
|
1500
|
+
}
|
|
1501
|
+
return window;
|
|
1502
|
+
})();
|
|
1503
|
+
scrollEl.addEventListener("scroll", onScroll, { passive: true });
|
|
1504
|
+
onScroll();
|
|
1505
|
+
return () => scrollEl.removeEventListener("scroll", onScroll);
|
|
1506
|
+
}, [variant]);
|
|
1507
|
+
const textBlock = /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: "hero__text", children: [
|
|
1508
|
+
subtitle && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("p", { className: "hero__subtitle", children: subtitle }),
|
|
1509
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)("h2", { className: "hero__title", children: title }),
|
|
1510
|
+
description && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("p", { className: "hero__description", children: description })
|
|
1430
1511
|
] });
|
|
1431
|
-
const buttonBlock = (primaryButton || secondaryButton) && /* @__PURE__ */ (0,
|
|
1432
|
-
primaryButton && (primaryButton.href ? /* @__PURE__ */ (0,
|
|
1512
|
+
const buttonBlock = (primaryButton || secondaryButton) && /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: "hero__buttons", children: [
|
|
1513
|
+
primaryButton && (primaryButton.href ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("a", { href: primaryButton.href, children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
1433
1514
|
Button,
|
|
1434
1515
|
{
|
|
1435
1516
|
colorScheme: "coral",
|
|
@@ -1437,7 +1518,7 @@ var Hero = ({
|
|
|
1437
1518
|
label: primaryButton.label,
|
|
1438
1519
|
onClick: primaryButton.onClick
|
|
1439
1520
|
}
|
|
1440
|
-
) }) : /* @__PURE__ */ (0,
|
|
1521
|
+
) }) : /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
1441
1522
|
Button,
|
|
1442
1523
|
{
|
|
1443
1524
|
colorScheme: "coral",
|
|
@@ -1446,7 +1527,7 @@ var Hero = ({
|
|
|
1446
1527
|
onClick: primaryButton.onClick
|
|
1447
1528
|
}
|
|
1448
1529
|
)),
|
|
1449
|
-
secondaryButton && (secondaryButton.href ? /* @__PURE__ */ (0,
|
|
1530
|
+
secondaryButton && (secondaryButton.href ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("a", { href: secondaryButton.href, children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
1450
1531
|
Button,
|
|
1451
1532
|
{
|
|
1452
1533
|
colorScheme: "white",
|
|
@@ -1454,7 +1535,7 @@ var Hero = ({
|
|
|
1454
1535
|
label: secondaryButton.label,
|
|
1455
1536
|
onClick: secondaryButton.onClick
|
|
1456
1537
|
}
|
|
1457
|
-
) }) : /* @__PURE__ */ (0,
|
|
1538
|
+
) }) : /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
1458
1539
|
Button,
|
|
1459
1540
|
{
|
|
1460
1541
|
colorScheme: "white",
|
|
@@ -1464,23 +1545,16 @@ var Hero = ({
|
|
|
1464
1545
|
}
|
|
1465
1546
|
))
|
|
1466
1547
|
] });
|
|
1467
|
-
if (variant === "
|
|
1468
|
-
return /* @__PURE__ */ (0,
|
|
1548
|
+
if (variant === "split") {
|
|
1549
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
|
|
1469
1550
|
"section",
|
|
1470
1551
|
{
|
|
1471
1552
|
className: ["hero", variantClass, className].filter(Boolean).join(" "),
|
|
1553
|
+
style: backgroundImageSrc ? { backgroundImage: `url(${backgroundImageSrc})` } : void 0,
|
|
1472
1554
|
...props,
|
|
1473
1555
|
children: [
|
|
1474
|
-
|
|
1475
|
-
|
|
1476
|
-
{
|
|
1477
|
-
src: backgroundImageSrc,
|
|
1478
|
-
alt: "",
|
|
1479
|
-
className: "hero__bg-image",
|
|
1480
|
-
"aria-hidden": "true"
|
|
1481
|
-
}
|
|
1482
|
-
),
|
|
1483
|
-
heroImage && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
1556
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: "hero__overlay", "aria-hidden": "true" }),
|
|
1557
|
+
heroImage && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
1484
1558
|
Visual,
|
|
1485
1559
|
{
|
|
1486
1560
|
src: heroImage,
|
|
@@ -1488,65 +1562,193 @@ var Hero = ({
|
|
|
1488
1562
|
alt: ""
|
|
1489
1563
|
}
|
|
1490
1564
|
),
|
|
1491
|
-
/* @__PURE__ */ (0,
|
|
1492
|
-
|
|
1493
|
-
|
|
1494
|
-
|
|
1565
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: "hero__inner", children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: "hero__content", children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: "hero__left", children: /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: "hero__body", children: [
|
|
1566
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: "hero__text", children: [
|
|
1567
|
+
subtitle && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("p", { className: "hero__subtitle", children: subtitle }),
|
|
1568
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)("h2", { className: "hero__title", children: title }),
|
|
1569
|
+
description && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("p", { className: "hero__description", children: description })
|
|
1570
|
+
] }),
|
|
1571
|
+
(primaryButton || secondaryButton) && /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: "hero__buttons", children: [
|
|
1572
|
+
primaryButton && (primaryButton.href ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("a", { href: primaryButton.href, children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
1573
|
+
Button,
|
|
1574
|
+
{
|
|
1575
|
+
colorScheme: "coral",
|
|
1576
|
+
variant: "primary",
|
|
1577
|
+
label: primaryButton.label,
|
|
1578
|
+
onClick: primaryButton.onClick
|
|
1579
|
+
}
|
|
1580
|
+
) }) : /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
1581
|
+
Button,
|
|
1582
|
+
{
|
|
1583
|
+
colorScheme: "coral",
|
|
1584
|
+
variant: "primary",
|
|
1585
|
+
label: primaryButton.label,
|
|
1586
|
+
onClick: primaryButton.onClick
|
|
1587
|
+
}
|
|
1588
|
+
)),
|
|
1589
|
+
secondaryButton && (secondaryButton.href ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("a", { href: secondaryButton.href, children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
1590
|
+
Button,
|
|
1591
|
+
{
|
|
1592
|
+
colorScheme: "white",
|
|
1593
|
+
variant: "secondary",
|
|
1594
|
+
label: secondaryButton.label,
|
|
1595
|
+
onClick: secondaryButton.onClick
|
|
1596
|
+
}
|
|
1597
|
+
) }) : /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
1598
|
+
Button,
|
|
1599
|
+
{
|
|
1600
|
+
colorScheme: "white",
|
|
1601
|
+
variant: "secondary",
|
|
1602
|
+
label: secondaryButton.label,
|
|
1603
|
+
onClick: secondaryButton.onClick
|
|
1604
|
+
}
|
|
1605
|
+
))
|
|
1606
|
+
] })
|
|
1495
1607
|
] }) }) }) })
|
|
1496
1608
|
]
|
|
1497
1609
|
}
|
|
1498
1610
|
);
|
|
1499
1611
|
}
|
|
1500
|
-
if (variant === "
|
|
1501
|
-
return /* @__PURE__ */ (0,
|
|
1612
|
+
if (variant === "centered") {
|
|
1613
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
|
|
1502
1614
|
"section",
|
|
1503
1615
|
{
|
|
1504
1616
|
className: ["hero", variantClass, className].filter(Boolean).join(" "),
|
|
1617
|
+
style: backgroundImageSrc ? { backgroundImage: `url(${backgroundImageSrc})` } : void 0,
|
|
1505
1618
|
...props,
|
|
1506
1619
|
children: [
|
|
1507
|
-
|
|
1508
|
-
|
|
1509
|
-
{
|
|
1510
|
-
|
|
1511
|
-
|
|
1512
|
-
className: "
|
|
1513
|
-
|
|
1514
|
-
|
|
1515
|
-
|
|
1516
|
-
|
|
1517
|
-
|
|
1518
|
-
|
|
1519
|
-
|
|
1520
|
-
|
|
1620
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: "hero__overlay", "aria-hidden": "true" }),
|
|
1621
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: "hero__inner", children: /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: "hero__content", children: [
|
|
1622
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: "hero__text", children: [
|
|
1623
|
+
subtitle && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("p", { className: "hero__subtitle", children: subtitle }),
|
|
1624
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)("h2", { className: "hero__title", children: title }),
|
|
1625
|
+
description && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("p", { className: "hero__description", children: description })
|
|
1626
|
+
] }),
|
|
1627
|
+
(primaryButton || secondaryButton) && /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: "hero__buttons", children: [
|
|
1628
|
+
primaryButton && (primaryButton.href ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("a", { href: primaryButton.href, children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
1629
|
+
Button,
|
|
1630
|
+
{
|
|
1631
|
+
colorScheme: "coral",
|
|
1632
|
+
variant: "primary",
|
|
1633
|
+
label: primaryButton.label,
|
|
1634
|
+
onClick: primaryButton.onClick
|
|
1635
|
+
}
|
|
1636
|
+
) }) : /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
1637
|
+
Button,
|
|
1638
|
+
{
|
|
1639
|
+
colorScheme: "coral",
|
|
1640
|
+
variant: "primary",
|
|
1641
|
+
label: primaryButton.label,
|
|
1642
|
+
onClick: primaryButton.onClick
|
|
1643
|
+
}
|
|
1644
|
+
)),
|
|
1645
|
+
secondaryButton && (secondaryButton.href ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("a", { href: secondaryButton.href, children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
1646
|
+
Button,
|
|
1647
|
+
{
|
|
1648
|
+
colorScheme: "white",
|
|
1649
|
+
variant: "secondary",
|
|
1650
|
+
label: secondaryButton.label,
|
|
1651
|
+
onClick: secondaryButton.onClick
|
|
1652
|
+
}
|
|
1653
|
+
) }) : /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
1654
|
+
Button,
|
|
1655
|
+
{
|
|
1656
|
+
colorScheme: "white",
|
|
1657
|
+
variant: "secondary",
|
|
1658
|
+
label: secondaryButton.label,
|
|
1659
|
+
onClick: secondaryButton.onClick
|
|
1660
|
+
}
|
|
1661
|
+
))
|
|
1662
|
+
] })
|
|
1663
|
+
] }) })
|
|
1664
|
+
]
|
|
1665
|
+
}
|
|
1666
|
+
);
|
|
1667
|
+
}
|
|
1668
|
+
if (variant === "showcase") {
|
|
1669
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
|
|
1670
|
+
"section",
|
|
1671
|
+
{
|
|
1672
|
+
className: ["hero", variantClass, className].filter(Boolean).join(" "),
|
|
1673
|
+
style: backgroundImageSrc ? { backgroundImage: `url(${backgroundImageSrc})` } : void 0,
|
|
1674
|
+
...props,
|
|
1675
|
+
children: [
|
|
1676
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: "hero__overlay", "aria-hidden": "true" }),
|
|
1677
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: "hero__inner", children: /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: "hero__content", children: [
|
|
1678
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: "hero__text", children: [
|
|
1679
|
+
subtitle && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("p", { className: "hero__subtitle", children: subtitle }),
|
|
1680
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)("h2", { className: "hero__title", children: title }),
|
|
1681
|
+
description && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("p", { className: "hero__description", children: description })
|
|
1682
|
+
] }),
|
|
1683
|
+
(primaryButton || secondaryButton) && /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: "hero__buttons", children: [
|
|
1684
|
+
primaryButton && (primaryButton.href ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("a", { href: primaryButton.href, children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
1685
|
+
Button,
|
|
1686
|
+
{
|
|
1687
|
+
colorScheme: "coral",
|
|
1688
|
+
variant: "primary",
|
|
1689
|
+
label: primaryButton.label,
|
|
1690
|
+
onClick: primaryButton.onClick
|
|
1691
|
+
}
|
|
1692
|
+
) }) : /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
1693
|
+
Button,
|
|
1694
|
+
{
|
|
1695
|
+
colorScheme: "coral",
|
|
1696
|
+
variant: "primary",
|
|
1697
|
+
label: primaryButton.label,
|
|
1698
|
+
onClick: primaryButton.onClick
|
|
1699
|
+
}
|
|
1700
|
+
)),
|
|
1701
|
+
secondaryButton && (secondaryButton.href ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("a", { href: secondaryButton.href, children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
1702
|
+
Button,
|
|
1703
|
+
{
|
|
1704
|
+
colorScheme: "white",
|
|
1705
|
+
variant: "secondary",
|
|
1706
|
+
label: secondaryButton.label,
|
|
1707
|
+
onClick: secondaryButton.onClick
|
|
1708
|
+
}
|
|
1709
|
+
) }) : /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
1710
|
+
Button,
|
|
1711
|
+
{
|
|
1712
|
+
colorScheme: "white",
|
|
1713
|
+
variant: "secondary",
|
|
1714
|
+
label: secondaryButton.label,
|
|
1715
|
+
onClick: secondaryButton.onClick
|
|
1716
|
+
}
|
|
1717
|
+
))
|
|
1718
|
+
] }),
|
|
1719
|
+
productImage && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
1720
|
+
Visual,
|
|
1721
|
+
{
|
|
1722
|
+
src: productImage,
|
|
1723
|
+
className: "hero__product-image",
|
|
1724
|
+
alt: ""
|
|
1725
|
+
}
|
|
1726
|
+
),
|
|
1727
|
+
floatingImage && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
1728
|
+
Visual,
|
|
1729
|
+
{
|
|
1730
|
+
src: floatingImage,
|
|
1731
|
+
className: "hero__floating-image",
|
|
1732
|
+
alt: ""
|
|
1733
|
+
}
|
|
1734
|
+
)
|
|
1735
|
+
] }) })
|
|
1521
1736
|
]
|
|
1522
1737
|
}
|
|
1523
1738
|
);
|
|
1524
1739
|
}
|
|
1525
|
-
return /* @__PURE__ */ (0,
|
|
1740
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
|
|
1526
1741
|
"section",
|
|
1527
1742
|
{
|
|
1743
|
+
ref: sectionRef,
|
|
1528
1744
|
className: ["hero", variantClass, className].filter(Boolean).join(" "),
|
|
1529
1745
|
...props,
|
|
1530
1746
|
children: [
|
|
1531
|
-
/* @__PURE__ */ (0,
|
|
1532
|
-
variant === "visuals" && leftVisual && /* @__PURE__ */ (0,
|
|
1533
|
-
|
|
1534
|
-
|
|
1535
|
-
|
|
1536
|
-
className: "hero__visual hero__visual--left",
|
|
1537
|
-
alt: ""
|
|
1538
|
-
}
|
|
1539
|
-
),
|
|
1540
|
-
variant === "visuals" && rightVisual && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
1541
|
-
Visual,
|
|
1542
|
-
{
|
|
1543
|
-
src: rightVisual,
|
|
1544
|
-
className: "hero__visual hero__visual--right",
|
|
1545
|
-
alt: ""
|
|
1546
|
-
}
|
|
1547
|
-
),
|
|
1548
|
-
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "hero__overlay", "aria-hidden": "true" }),
|
|
1549
|
-
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "hero__inner", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "hero__content", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "hero__body", children: [
|
|
1747
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: "hero__grid", "aria-hidden": "true" }),
|
|
1748
|
+
variant === "visuals" && leftVisual && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { ref: leftRef, className: "hero__visual hero__visual--left", children: typeof leftVisual === "string" ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("img", { src: leftVisual, alt: "" }) : leftVisual }),
|
|
1749
|
+
variant === "visuals" && rightVisual && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { ref: rightRef, className: "hero__visual hero__visual--right", children: typeof rightVisual === "string" ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("img", { src: rightVisual, alt: "" }) : rightVisual }),
|
|
1750
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: "hero__overlay", "aria-hidden": "true" }),
|
|
1751
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: "hero__inner", children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: "hero__content", children: /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: "hero__body", children: [
|
|
1550
1752
|
textBlock,
|
|
1551
1753
|
buttonBlock
|
|
1552
1754
|
] }) }) })
|
|
@@ -1556,8 +1758,8 @@ var Hero = ({
|
|
|
1556
1758
|
};
|
|
1557
1759
|
|
|
1558
1760
|
// templates/Stats/Stats.tsx
|
|
1559
|
-
var
|
|
1560
|
-
var
|
|
1761
|
+
var import_react9 = require("react");
|
|
1762
|
+
var import_jsx_runtime20 = require("react/jsx-runtime");
|
|
1561
1763
|
var INTERVAL_MS = 2e3;
|
|
1562
1764
|
var TRANSITION = "transform 0.8s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1)";
|
|
1563
1765
|
function relativePos(index, active, total) {
|
|
@@ -1581,7 +1783,7 @@ function getStatStyle(rel) {
|
|
|
1581
1783
|
transition: TRANSITION
|
|
1582
1784
|
};
|
|
1583
1785
|
}
|
|
1584
|
-
var AwardBadge = ({ imageSrc, imageAlt = "" }) => /* @__PURE__ */ (0,
|
|
1786
|
+
var AwardBadge = ({ imageSrc, imageAlt = "" }) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "stats__award", children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("img", { src: imageSrc, alt: imageAlt, className: "stats__award-image" }) });
|
|
1585
1787
|
var Stats = ({
|
|
1586
1788
|
title,
|
|
1587
1789
|
description,
|
|
@@ -1591,12 +1793,12 @@ var Stats = ({
|
|
|
1591
1793
|
className,
|
|
1592
1794
|
...props
|
|
1593
1795
|
}) => {
|
|
1594
|
-
const [activeIndex, setActiveIndex] = (0,
|
|
1595
|
-
const intervalRef = (0,
|
|
1796
|
+
const [activeIndex, setActiveIndex] = (0, import_react9.useState)(0);
|
|
1797
|
+
const intervalRef = (0, import_react9.useRef)(null);
|
|
1596
1798
|
const hasAwards = leftAwards.length > 0 || rightAwards.length > 0;
|
|
1597
1799
|
const allAwards = [...leftAwards, ...rightAwards];
|
|
1598
1800
|
const total = stats.length;
|
|
1599
|
-
(0,
|
|
1801
|
+
(0, import_react9.useEffect)(() => {
|
|
1600
1802
|
if (total <= 1) return;
|
|
1601
1803
|
intervalRef.current = setInterval(() => {
|
|
1602
1804
|
setActiveIndex((prev) => (prev + 1) % total);
|
|
@@ -1605,25 +1807,25 @@ var Stats = ({
|
|
|
1605
1807
|
if (intervalRef.current) clearInterval(intervalRef.current);
|
|
1606
1808
|
};
|
|
1607
1809
|
}, [total]);
|
|
1608
|
-
return /* @__PURE__ */ (0,
|
|
1810
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
1609
1811
|
"section",
|
|
1610
1812
|
{
|
|
1611
1813
|
className: ["stats", className].filter(Boolean).join(" "),
|
|
1612
1814
|
...props,
|
|
1613
|
-
children: /* @__PURE__ */ (0,
|
|
1614
|
-
/* @__PURE__ */ (0,
|
|
1615
|
-
/* @__PURE__ */ (0,
|
|
1616
|
-
description && /* @__PURE__ */ (0,
|
|
1815
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { className: "stats__inner", children: [
|
|
1816
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { className: "stats__header", children: [
|
|
1817
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)("h2", { className: "stats__title", children: title }),
|
|
1818
|
+
description && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("p", { className: "stats__description", children: description })
|
|
1617
1819
|
] }),
|
|
1618
|
-
/* @__PURE__ */ (0,
|
|
1619
|
-
leftAwards.length > 0 && /* @__PURE__ */ (0,
|
|
1620
|
-
/* @__PURE__ */ (0,
|
|
1621
|
-
/* @__PURE__ */ (0,
|
|
1622
|
-
/* @__PURE__ */ (0,
|
|
1820
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { className: "stats__content", children: [
|
|
1821
|
+
leftAwards.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "stats__awards-col stats__awards-col--left", children: leftAwards.map((award, i) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(AwardBadge, { ...award }, i)) }),
|
|
1822
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "stats__card", children: /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { className: "stats__card-track", children: [
|
|
1823
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "stats__fade stats__fade--top", "aria-hidden": "true" }),
|
|
1824
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "stats__fade stats__fade--bottom", "aria-hidden": "true" }),
|
|
1623
1825
|
stats.map((stat, i) => {
|
|
1624
1826
|
const rel = relativePos(i, activeIndex, total);
|
|
1625
1827
|
const active = rel === 0;
|
|
1626
|
-
return /* @__PURE__ */ (0,
|
|
1828
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
1627
1829
|
"div",
|
|
1628
1830
|
{
|
|
1629
1831
|
className: [
|
|
@@ -1633,27 +1835,92 @@ var Stats = ({
|
|
|
1633
1835
|
style: getStatStyle(rel),
|
|
1634
1836
|
"aria-hidden": !active,
|
|
1635
1837
|
children: [
|
|
1636
|
-
/* @__PURE__ */ (0,
|
|
1637
|
-
/* @__PURE__ */ (0,
|
|
1838
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { className: "stats__stat-value", children: stat.value }),
|
|
1839
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { className: "stats__stat-label", children: stat.label })
|
|
1638
1840
|
]
|
|
1639
1841
|
},
|
|
1640
1842
|
i
|
|
1641
1843
|
);
|
|
1642
1844
|
})
|
|
1643
1845
|
] }) }),
|
|
1644
|
-
rightAwards.length > 0 && /* @__PURE__ */ (0,
|
|
1645
|
-
hasAwards && /* @__PURE__ */ (0,
|
|
1846
|
+
rightAwards.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "stats__awards-col stats__awards-col--right", children: rightAwards.map((award, i) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(AwardBadge, { ...award }, i)) }),
|
|
1847
|
+
hasAwards && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "stats__awards-mobile", children: allAwards.map((award, i) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(AwardBadge, { ...award }, i)) })
|
|
1646
1848
|
] })
|
|
1647
1849
|
] })
|
|
1648
1850
|
}
|
|
1649
1851
|
);
|
|
1650
1852
|
};
|
|
1651
1853
|
|
|
1652
|
-
// templates/
|
|
1653
|
-
var
|
|
1854
|
+
// templates/FeatureScroll/FeatureScroll.tsx
|
|
1855
|
+
var import_react11 = require("react");
|
|
1856
|
+
|
|
1857
|
+
// components/DotLottieInView/DotLottieInView.tsx
|
|
1858
|
+
var import_react10 = require("react");
|
|
1654
1859
|
var import_dotlottie_react = require("@lottiefiles/dotlottie-react");
|
|
1655
|
-
var
|
|
1656
|
-
|
|
1860
|
+
var import_jsx_runtime21 = require("react/jsx-runtime");
|
|
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 = [
|
|
1657
1924
|
{
|
|
1658
1925
|
title: "Forex",
|
|
1659
1926
|
description: "Trade the most popular currency pairs with high leverage, tight spreads, and fast execution.",
|
|
@@ -1697,16 +1964,16 @@ var SCROLLYTELLING_DATA = [
|
|
|
1697
1964
|
mediaUrl: "https://cdn.prod.website-files.com/66fbaad381fa6866fa4991f3/675a9064f2c16e4e0732abfb_Stock%20Indices.lottie"
|
|
1698
1965
|
}
|
|
1699
1966
|
];
|
|
1700
|
-
var ChevronRight2 = () => /* @__PURE__ */ (0,
|
|
1967
|
+
var ChevronRight2 = () => /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
1701
1968
|
"svg",
|
|
1702
1969
|
{
|
|
1703
|
-
className: "
|
|
1970
|
+
className: "fs__item-link-icon",
|
|
1704
1971
|
width: "16",
|
|
1705
1972
|
height: "16",
|
|
1706
1973
|
viewBox: "0 0 16 16",
|
|
1707
1974
|
fill: "none",
|
|
1708
1975
|
"aria-hidden": "true",
|
|
1709
|
-
children: /* @__PURE__ */ (0,
|
|
1976
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
1710
1977
|
"path",
|
|
1711
1978
|
{
|
|
1712
1979
|
d: "M6 3l5 5-5 5",
|
|
@@ -1724,16 +1991,15 @@ function resolveMediaType(item) {
|
|
|
1724
1991
|
}
|
|
1725
1992
|
var MediaRenderer = ({ item, active }) => {
|
|
1726
1993
|
if (resolveMediaType(item) === "lottie") {
|
|
1727
|
-
return /* @__PURE__ */ (0,
|
|
1728
|
-
|
|
1994
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
1995
|
+
DotLottieInView,
|
|
1729
1996
|
{
|
|
1730
1997
|
src: item.mediaUrl,
|
|
1731
|
-
|
|
1732
|
-
autoplay: active
|
|
1998
|
+
enabled: active
|
|
1733
1999
|
}
|
|
1734
2000
|
);
|
|
1735
2001
|
}
|
|
1736
|
-
return /* @__PURE__ */ (0,
|
|
2002
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
1737
2003
|
"img",
|
|
1738
2004
|
{
|
|
1739
2005
|
src: item.mediaUrl,
|
|
@@ -1742,87 +2008,121 @@ var MediaRenderer = ({ item, active }) => {
|
|
|
1742
2008
|
}
|
|
1743
2009
|
);
|
|
1744
2010
|
};
|
|
1745
|
-
var
|
|
2011
|
+
var FeatureScroll = ({
|
|
1746
2012
|
header,
|
|
1747
2013
|
items,
|
|
1748
2014
|
variant = "media-right",
|
|
1749
2015
|
className,
|
|
1750
2016
|
...props
|
|
1751
2017
|
}) => {
|
|
1752
|
-
const [activeIndex, setActiveIndex] = (0,
|
|
1753
|
-
const
|
|
1754
|
-
(0,
|
|
1755
|
-
|
|
1756
|
-
if (
|
|
1757
|
-
const
|
|
1758
|
-
|
|
1759
|
-
|
|
1760
|
-
|
|
1761
|
-
|
|
1762
|
-
|
|
1763
|
-
|
|
1764
|
-
|
|
1765
|
-
|
|
1766
|
-
|
|
1767
|
-
|
|
1768
|
-
|
|
1769
|
-
|
|
1770
|
-
|
|
1771
|
-
|
|
1772
|
-
|
|
1773
|
-
|
|
1774
|
-
|
|
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;
|
|
1775
2042
|
}
|
|
1776
|
-
|
|
1777
|
-
|
|
1778
|
-
|
|
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
|
+
};
|
|
1779
2066
|
}, [items.length]);
|
|
1780
2067
|
const rootClass = [
|
|
1781
|
-
"
|
|
1782
|
-
`
|
|
2068
|
+
"fs",
|
|
2069
|
+
`fs--${variant}`,
|
|
1783
2070
|
className
|
|
1784
2071
|
].filter(Boolean).join(" ");
|
|
1785
|
-
|
|
1786
|
-
/* @__PURE__ */ (0,
|
|
1787
|
-
|
|
1788
|
-
|
|
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)(
|
|
1789
2079
|
"div",
|
|
1790
2080
|
{
|
|
1791
|
-
|
|
1792
|
-
|
|
1793
|
-
|
|
1794
|
-
|
|
1795
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
1796
|
-
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",
|
|
1797
2085
|
{
|
|
1798
|
-
|
|
1799
|
-
|
|
1800
|
-
|
|
1801
|
-
|
|
1802
|
-
|
|
1803
|
-
|
|
1804
|
-
|
|
1805
|
-
|
|
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)(
|
|
1806
2103
|
"div",
|
|
1807
2104
|
{
|
|
1808
|
-
|
|
1809
|
-
itemRefs.current[i] = el;
|
|
1810
|
-
},
|
|
1811
|
-
className: [
|
|
1812
|
-
"scrolly__item",
|
|
1813
|
-
i === activeIndex ? "scrolly__item--active" : "scrolly__item--inactive"
|
|
1814
|
-
].join(" "),
|
|
2105
|
+
className: "fs__item",
|
|
1815
2106
|
children: [
|
|
1816
|
-
/* @__PURE__ */ (0,
|
|
1817
|
-
|
|
1818
|
-
|
|
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)(
|
|
1819
2119
|
"a",
|
|
1820
2120
|
{
|
|
1821
2121
|
href: item.link,
|
|
1822
|
-
className: "
|
|
2122
|
+
className: "fs__item-link",
|
|
1823
2123
|
children: [
|
|
1824
|
-
/* @__PURE__ */ (0,
|
|
1825
|
-
/* @__PURE__ */ (0,
|
|
2124
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)("span", { children: item.linkLabel }),
|
|
2125
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)(ChevronRight2, {})
|
|
1826
2126
|
]
|
|
1827
2127
|
}
|
|
1828
2128
|
)
|
|
@@ -1831,45 +2131,46 @@ var Scrollytelling = ({
|
|
|
1831
2131
|
i
|
|
1832
2132
|
)) })
|
|
1833
2133
|
] }),
|
|
1834
|
-
/* @__PURE__ */ (0,
|
|
1835
|
-
/* @__PURE__ */ (0,
|
|
1836
|
-
/* @__PURE__ */ (0,
|
|
1837
|
-
/* @__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)(
|
|
1838
2139
|
"a",
|
|
1839
2140
|
{
|
|
1840
2141
|
href: item.link,
|
|
1841
|
-
className: "
|
|
2142
|
+
className: "fs__item-link",
|
|
1842
2143
|
children: [
|
|
1843
|
-
/* @__PURE__ */ (0,
|
|
1844
|
-
/* @__PURE__ */ (0,
|
|
2144
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)("span", { children: item.linkLabel }),
|
|
2145
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)(ChevronRight2, {})
|
|
1845
2146
|
]
|
|
1846
2147
|
}
|
|
1847
|
-
)
|
|
1848
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "scrolly__mobile-media", children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(MediaRenderer, { item, active: true }) })
|
|
2148
|
+
)
|
|
1849
2149
|
] }, i)) })
|
|
1850
2150
|
] }) });
|
|
1851
2151
|
};
|
|
1852
2152
|
|
|
1853
2153
|
// templates/StickyStackedCards/StickyStackedCards.tsx
|
|
1854
|
-
var
|
|
1855
|
-
var
|
|
2154
|
+
var import_react12 = require("react");
|
|
2155
|
+
var import_jsx_runtime23 = require("react/jsx-runtime");
|
|
2156
|
+
var PLACEHOLDER_IMAGE = "https://cdn.prod.website-files.com/68da5c86c91c54f39c86c28a/69b9309379ac08e59ca8210a_1f3f555da9a5cbb13a6fe1bf0d5fe1b6_placeholder-image.webp";
|
|
1856
2157
|
var STEPS_DATA = [
|
|
1857
2158
|
{
|
|
1858
|
-
title: "
|
|
1859
|
-
description: "
|
|
1860
|
-
imageUrl:
|
|
2159
|
+
title: "Title goes here",
|
|
2160
|
+
description: "Explain how this specific feature helps your user.",
|
|
2161
|
+
imageUrl: PLACEHOLDER_IMAGE,
|
|
1861
2162
|
theme: "light"
|
|
1862
2163
|
},
|
|
1863
2164
|
{
|
|
1864
|
-
title: "
|
|
1865
|
-
description: "
|
|
1866
|
-
imageUrl:
|
|
2165
|
+
title: "Title goes here",
|
|
2166
|
+
description: "Explain how this specific feature helps your user.",
|
|
2167
|
+
imageUrl: PLACEHOLDER_IMAGE,
|
|
1867
2168
|
theme: "coral"
|
|
1868
2169
|
},
|
|
1869
2170
|
{
|
|
1870
|
-
title: "
|
|
1871
|
-
description: "
|
|
1872
|
-
imageUrl:
|
|
2171
|
+
title: "Title goes here",
|
|
2172
|
+
description: "Explain how this specific feature helps your user.",
|
|
2173
|
+
imageUrl: PLACEHOLDER_IMAGE,
|
|
1873
2174
|
theme: "dark"
|
|
1874
2175
|
}
|
|
1875
2176
|
];
|
|
@@ -1880,8 +2181,8 @@ var StickyStackedCards = ({
|
|
|
1880
2181
|
className,
|
|
1881
2182
|
...props
|
|
1882
2183
|
}) => {
|
|
1883
|
-
const cardRefs = (0,
|
|
1884
|
-
(0,
|
|
2184
|
+
const cardRefs = (0, import_react12.useRef)([]);
|
|
2185
|
+
(0, import_react12.useEffect)(() => {
|
|
1885
2186
|
if (typeof window === "undefined") return;
|
|
1886
2187
|
let rafId = 0;
|
|
1887
2188
|
const update = () => {
|
|
@@ -1915,14 +2216,14 @@ var StickyStackedCards = ({
|
|
|
1915
2216
|
cancelAnimationFrame(rafId);
|
|
1916
2217
|
};
|
|
1917
2218
|
}, [items.length]);
|
|
1918
|
-
return /* @__PURE__ */ (0,
|
|
2219
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
1919
2220
|
"section",
|
|
1920
2221
|
{
|
|
1921
2222
|
className: ["ssc", className].filter(Boolean).join(" "),
|
|
1922
2223
|
...props,
|
|
1923
|
-
children: /* @__PURE__ */ (0,
|
|
1924
|
-
/* @__PURE__ */ (0,
|
|
1925
|
-
/* @__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)(
|
|
1926
2227
|
"div",
|
|
1927
2228
|
{
|
|
1928
2229
|
ref: (el) => {
|
|
@@ -1948,11 +2249,11 @@ var StickyStackedCards = ({
|
|
|
1948
2249
|
top: `calc(var(--ssc-sticky-top) + ${i} * var(--ssc-peek-offset))`
|
|
1949
2250
|
},
|
|
1950
2251
|
children: [
|
|
1951
|
-
/* @__PURE__ */ (0,
|
|
1952
|
-
/* @__PURE__ */ (0,
|
|
1953
|
-
/* @__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 })
|
|
1954
2255
|
] }),
|
|
1955
|
-
/* @__PURE__ */ (0,
|
|
2256
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: "ssc__card-image", children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
1956
2257
|
"img",
|
|
1957
2258
|
{
|
|
1958
2259
|
src: item.imageUrl,
|
|
@@ -1970,9 +2271,9 @@ var StickyStackedCards = ({
|
|
|
1970
2271
|
};
|
|
1971
2272
|
|
|
1972
2273
|
// templates/CTABanner/CTABanner.tsx
|
|
1973
|
-
var
|
|
2274
|
+
var import_react13 = require("react");
|
|
1974
2275
|
var import_framer_motion = require("framer-motion");
|
|
1975
|
-
var
|
|
2276
|
+
var import_jsx_runtime24 = require("react/jsx-runtime");
|
|
1976
2277
|
var ENTRANCE = {
|
|
1977
2278
|
near: 80,
|
|
1978
2279
|
mid: 130,
|
|
@@ -2218,7 +2519,7 @@ var CTABanner = ({
|
|
|
2218
2519
|
...props
|
|
2219
2520
|
}) => {
|
|
2220
2521
|
const resolvedAvatars = avatars ?? (variant === "compact" ? COMPACT_AVATAR_DATA : AVATAR_DATA);
|
|
2221
|
-
const sectionRef = (0,
|
|
2522
|
+
const sectionRef = (0, import_react13.useRef)(null);
|
|
2222
2523
|
const { scrollYProgress } = (0, import_framer_motion.useScroll)({
|
|
2223
2524
|
target: sectionRef,
|
|
2224
2525
|
offset: ["start end", "end start"]
|
|
@@ -2236,14 +2537,14 @@ var CTABanner = ({
|
|
|
2236
2537
|
const compactXValues = useCompactAvatarXValues(smooth);
|
|
2237
2538
|
const avatarYValues = variant === "compact" ? compactYValues : standardYValues;
|
|
2238
2539
|
const avatarXValues = variant === "compact" ? compactXValues : standardXValues;
|
|
2239
|
-
return /* @__PURE__ */ (0,
|
|
2540
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
|
|
2240
2541
|
"section",
|
|
2241
2542
|
{
|
|
2242
2543
|
ref: sectionRef,
|
|
2243
2544
|
className: ["ctab", variant === "compact" ? "ctab--compact" : "", className].filter(Boolean).join(" "),
|
|
2244
2545
|
...props,
|
|
2245
2546
|
children: [
|
|
2246
|
-
/* @__PURE__ */ (0,
|
|
2547
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
2247
2548
|
import_framer_motion.motion.div,
|
|
2248
2549
|
{
|
|
2249
2550
|
className: "ctab__grid",
|
|
@@ -2251,7 +2552,7 @@ var CTABanner = ({
|
|
|
2251
2552
|
"aria-hidden": "true"
|
|
2252
2553
|
}
|
|
2253
2554
|
),
|
|
2254
|
-
/* @__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: [
|
|
2255
2556
|
resolvedAvatars.map((avatar, index) => {
|
|
2256
2557
|
const posStyle = {};
|
|
2257
2558
|
if (avatar.desktopPos.left) posStyle["--av-d-left"] = avatar.desktopPos.left;
|
|
@@ -2260,7 +2561,7 @@ var CTABanner = ({
|
|
|
2260
2561
|
if (avatar.mobilePos?.left) posStyle["--av-m-left"] = avatar.mobilePos.left;
|
|
2261
2562
|
if (avatar.mobilePos?.right) posStyle["--av-m-right"] = avatar.mobilePos.right;
|
|
2262
2563
|
if (avatar.mobilePos?.top) posStyle["--av-m-top"] = avatar.mobilePos.top;
|
|
2263
|
-
return /* @__PURE__ */ (0,
|
|
2564
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
2264
2565
|
import_framer_motion.motion.div,
|
|
2265
2566
|
{
|
|
2266
2567
|
className: [
|
|
@@ -2274,7 +2575,7 @@ var CTABanner = ({
|
|
|
2274
2575
|
opacity: avatarOpacity,
|
|
2275
2576
|
filter: avatarFilter
|
|
2276
2577
|
},
|
|
2277
|
-
children: /* @__PURE__ */ (0,
|
|
2578
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
2278
2579
|
"img",
|
|
2279
2580
|
{
|
|
2280
2581
|
src: avatar.imageUrl,
|
|
@@ -2287,14 +2588,14 @@ var CTABanner = ({
|
|
|
2287
2588
|
avatar.id
|
|
2288
2589
|
);
|
|
2289
2590
|
}),
|
|
2290
|
-
/* @__PURE__ */ (0,
|
|
2591
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
|
|
2291
2592
|
import_framer_motion.motion.div,
|
|
2292
2593
|
{
|
|
2293
2594
|
className: "ctab__hero",
|
|
2294
2595
|
style: { y: heroY, opacity: heroOpacity },
|
|
2295
2596
|
children: [
|
|
2296
|
-
/* @__PURE__ */ (0,
|
|
2297
|
-
/* @__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 }) })
|
|
2298
2599
|
]
|
|
2299
2600
|
}
|
|
2300
2601
|
)
|
|
@@ -2305,14 +2606,14 @@ var CTABanner = ({
|
|
|
2305
2606
|
};
|
|
2306
2607
|
|
|
2307
2608
|
// components/Navbar/Navbar.tsx
|
|
2308
|
-
var
|
|
2609
|
+
var import_react14 = require("react");
|
|
2309
2610
|
var import_framer_motion2 = require("framer-motion");
|
|
2310
2611
|
|
|
2311
2612
|
// assets/icon-globe.svg
|
|
2312
2613
|
var icon_globe_default = "./icon-globe-S54WYYEK.svg";
|
|
2313
2614
|
|
|
2314
2615
|
// components/Navbar/Navbar.tsx
|
|
2315
|
-
var
|
|
2616
|
+
var import_jsx_runtime25 = require("react/jsx-runtime");
|
|
2316
2617
|
var EASE_OUT_EXPO = [0.16, 1, 0.3, 1];
|
|
2317
2618
|
var dropdownVariants = {
|
|
2318
2619
|
hidden: { opacity: 0, scale: 0.96, y: -8 },
|
|
@@ -2326,7 +2627,7 @@ var accordionVariants = {
|
|
|
2326
2627
|
hidden: { height: 0, opacity: 0 },
|
|
2327
2628
|
visible: { height: "auto", opacity: 1 }
|
|
2328
2629
|
};
|
|
2329
|
-
var ChevronDownIcon3 = ({ className }) => /* @__PURE__ */ (0,
|
|
2630
|
+
var ChevronDownIcon3 = ({ className }) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
2330
2631
|
"svg",
|
|
2331
2632
|
{
|
|
2332
2633
|
className,
|
|
@@ -2335,7 +2636,7 @@ var ChevronDownIcon3 = ({ className }) => /* @__PURE__ */ (0, import_jsx_runtime
|
|
|
2335
2636
|
viewBox: "0 0 14 14",
|
|
2336
2637
|
fill: "none",
|
|
2337
2638
|
"aria-hidden": "true",
|
|
2338
|
-
children: /* @__PURE__ */ (0,
|
|
2639
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
2339
2640
|
"path",
|
|
2340
2641
|
{
|
|
2341
2642
|
d: "M2.625 4.8125L7 9.1875L11.375 4.8125",
|
|
@@ -2347,7 +2648,7 @@ var ChevronDownIcon3 = ({ className }) => /* @__PURE__ */ (0, import_jsx_runtime
|
|
|
2347
2648
|
)
|
|
2348
2649
|
}
|
|
2349
2650
|
);
|
|
2350
|
-
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)(
|
|
2351
2652
|
"path",
|
|
2352
2653
|
{
|
|
2353
2654
|
d: "M2.625 7H11.375M11.375 7L7.875 3.5M11.375 7L7.875 10.5",
|
|
@@ -2357,7 +2658,7 @@ var ArrowRightIcon = () => /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("svg",
|
|
|
2357
2658
|
strokeLinejoin: "round"
|
|
2358
2659
|
}
|
|
2359
2660
|
) });
|
|
2360
|
-
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)(
|
|
2361
2662
|
"path",
|
|
2362
2663
|
{
|
|
2363
2664
|
d: "M4.5 11.5L11.5 4.5M11.5 4.5H5.5M11.5 4.5V10.5",
|
|
@@ -2367,7 +2668,7 @@ var ArrowUpRightIcon = () => /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("svg"
|
|
|
2367
2668
|
strokeLinejoin: "round"
|
|
2368
2669
|
}
|
|
2369
2670
|
) });
|
|
2370
|
-
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)(
|
|
2371
2672
|
"path",
|
|
2372
2673
|
{
|
|
2373
2674
|
d: "M2.5 5H17.5M2.5 10H17.5M2.5 15H17.5",
|
|
@@ -2376,7 +2677,7 @@ var BarsIcon = () => /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("svg", { widt
|
|
|
2376
2677
|
strokeLinecap: "round"
|
|
2377
2678
|
}
|
|
2378
2679
|
) });
|
|
2379
|
-
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)(
|
|
2380
2681
|
"path",
|
|
2381
2682
|
{
|
|
2382
2683
|
d: "M15 5L5 15M5 5L15 15",
|
|
@@ -2385,7 +2686,7 @@ var XMarkIcon2 = () => /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("svg", { wi
|
|
|
2385
2686
|
strokeLinecap: "round"
|
|
2386
2687
|
}
|
|
2387
2688
|
) });
|
|
2388
|
-
var ChevronLeftIcon = ({ className }) => /* @__PURE__ */ (0,
|
|
2689
|
+
var ChevronLeftIcon = ({ className }) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
2389
2690
|
"svg",
|
|
2390
2691
|
{
|
|
2391
2692
|
className,
|
|
@@ -2394,7 +2695,7 @@ var ChevronLeftIcon = ({ className }) => /* @__PURE__ */ (0, import_jsx_runtime2
|
|
|
2394
2695
|
viewBox: "0 0 24 24",
|
|
2395
2696
|
fill: "none",
|
|
2396
2697
|
"aria-hidden": "true",
|
|
2397
|
-
children: /* @__PURE__ */ (0,
|
|
2698
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
2398
2699
|
"path",
|
|
2399
2700
|
{
|
|
2400
2701
|
d: "M15 18L9 12L15 6",
|
|
@@ -2406,11 +2707,11 @@ var ChevronLeftIcon = ({ className }) => /* @__PURE__ */ (0, import_jsx_runtime2
|
|
|
2406
2707
|
)
|
|
2407
2708
|
}
|
|
2408
2709
|
);
|
|
2409
|
-
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 });
|
|
2410
2711
|
var DropdownPanel = ({ item, onMouseEnter, onMouseLeave }) => {
|
|
2411
2712
|
const { dropdown } = item;
|
|
2412
2713
|
if (!dropdown) return null;
|
|
2413
|
-
return /* @__PURE__ */ (0,
|
|
2714
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
2414
2715
|
import_framer_motion2.motion.div,
|
|
2415
2716
|
{
|
|
2416
2717
|
className: "navbar__dropdown",
|
|
@@ -2421,10 +2722,10 @@ var DropdownPanel = ({ item, onMouseEnter, onMouseLeave }) => {
|
|
|
2421
2722
|
transition: { duration: 0.18, ease: EASE_OUT_EXPO },
|
|
2422
2723
|
onMouseEnter,
|
|
2423
2724
|
onMouseLeave,
|
|
2424
|
-
children: /* @__PURE__ */ (0,
|
|
2425
|
-
/* @__PURE__ */ (0,
|
|
2426
|
-
/* @__PURE__ */ (0,
|
|
2427
|
-
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)(
|
|
2428
2729
|
"a",
|
|
2429
2730
|
{
|
|
2430
2731
|
href: link.href,
|
|
@@ -2433,24 +2734,24 @@ var DropdownPanel = ({ item, onMouseEnter, onMouseLeave }) => {
|
|
|
2433
2734
|
rel: link.external ? "noopener noreferrer" : void 0,
|
|
2434
2735
|
children: [
|
|
2435
2736
|
link.label,
|
|
2436
|
-
link.external ? /* @__PURE__ */ (0,
|
|
2737
|
+
link.external ? /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(ArrowUpRightIcon, {}) : /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(ArrowRightIcon, {})
|
|
2437
2738
|
]
|
|
2438
2739
|
},
|
|
2439
2740
|
link.href
|
|
2440
2741
|
))
|
|
2441
2742
|
] }, section.title)) }, colIdx)) }),
|
|
2442
|
-
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 }) })
|
|
2443
2744
|
] })
|
|
2444
2745
|
}
|
|
2445
2746
|
);
|
|
2446
2747
|
};
|
|
2447
|
-
var FeatureCard = ({ feature, mobile }) => /* @__PURE__ */ (0,
|
|
2748
|
+
var FeatureCard = ({ feature, mobile }) => /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
|
|
2448
2749
|
"div",
|
|
2449
2750
|
{
|
|
2450
2751
|
className: mobile ? "navbar__drawer-feature" : "navbar__dropdown-feature",
|
|
2451
2752
|
style: feature.backgroundImageUrl ? { backgroundImage: `url(${feature.backgroundImageUrl})` } : void 0,
|
|
2452
2753
|
children: [
|
|
2453
|
-
feature.backgroundImageUrl && /* @__PURE__ */ (0,
|
|
2754
|
+
feature.backgroundImageUrl && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
2454
2755
|
"img",
|
|
2455
2756
|
{
|
|
2456
2757
|
src: feature.backgroundImageUrl,
|
|
@@ -2459,20 +2760,20 @@ var FeatureCard = ({ feature, mobile }) => /* @__PURE__ */ (0, import_jsx_runtim
|
|
|
2459
2760
|
"aria-hidden": "true"
|
|
2460
2761
|
}
|
|
2461
2762
|
),
|
|
2462
|
-
/* @__PURE__ */ (0,
|
|
2463
|
-
/* @__PURE__ */ (0,
|
|
2464
|
-
/* @__PURE__ */ (0,
|
|
2465
|
-
/* @__PURE__ */ (0,
|
|
2466
|
-
/* @__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 })
|
|
2467
2768
|
] }),
|
|
2468
|
-
/* @__PURE__ */ (0,
|
|
2769
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
|
|
2469
2770
|
"a",
|
|
2470
2771
|
{
|
|
2471
2772
|
href: feature.ctaHref,
|
|
2472
2773
|
className: mobile ? "navbar__drawer-feature-cta" : "navbar__dropdown-feature-cta",
|
|
2473
2774
|
children: [
|
|
2474
2775
|
feature.ctaLabel,
|
|
2475
|
-
/* @__PURE__ */ (0,
|
|
2776
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(ArrowRightIcon, {})
|
|
2476
2777
|
]
|
|
2477
2778
|
}
|
|
2478
2779
|
)
|
|
@@ -2482,8 +2783,8 @@ var FeatureCard = ({ feature, mobile }) => /* @__PURE__ */ (0, import_jsx_runtim
|
|
|
2482
2783
|
);
|
|
2483
2784
|
var DrawerAccordion = ({ item, isOpen, onToggle }) => {
|
|
2484
2785
|
const { dropdown } = item;
|
|
2485
|
-
return /* @__PURE__ */ (0,
|
|
2486
|
-
/* @__PURE__ */ (0,
|
|
2786
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: "navbar__drawer-item", children: [
|
|
2787
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
|
|
2487
2788
|
"button",
|
|
2488
2789
|
{
|
|
2489
2790
|
className: `navbar__drawer-trigger ${isOpen ? "navbar__drawer-trigger--open" : ""}`,
|
|
@@ -2491,11 +2792,11 @@ var DrawerAccordion = ({ item, isOpen, onToggle }) => {
|
|
|
2491
2792
|
"aria-expanded": isOpen,
|
|
2492
2793
|
children: [
|
|
2493
2794
|
item.label,
|
|
2494
|
-
/* @__PURE__ */ (0,
|
|
2795
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(ChevronDownIcon3, { className: "navbar__drawer-trigger__chevron" })
|
|
2495
2796
|
]
|
|
2496
2797
|
}
|
|
2497
2798
|
),
|
|
2498
|
-
/* @__PURE__ */ (0,
|
|
2799
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_framer_motion2.AnimatePresence, { initial: false, children: isOpen && dropdown && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
2499
2800
|
import_framer_motion2.motion.div,
|
|
2500
2801
|
{
|
|
2501
2802
|
className: "navbar__drawer-panel",
|
|
@@ -2504,10 +2805,10 @@ var DrawerAccordion = ({ item, isOpen, onToggle }) => {
|
|
|
2504
2805
|
animate: "visible",
|
|
2505
2806
|
exit: "hidden",
|
|
2506
2807
|
transition: { duration: 0.22, ease: EASE_OUT_EXPO },
|
|
2507
|
-
children: /* @__PURE__ */ (0,
|
|
2508
|
-
/* @__PURE__ */ (0,
|
|
2509
|
-
/* @__PURE__ */ (0,
|
|
2510
|
-
/* @__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)(
|
|
2511
2812
|
"a",
|
|
2512
2813
|
{
|
|
2513
2814
|
href: link.href,
|
|
@@ -2519,7 +2820,7 @@ var DrawerAccordion = ({ item, isOpen, onToggle }) => {
|
|
|
2519
2820
|
link.href
|
|
2520
2821
|
)) })
|
|
2521
2822
|
] }, section.title)) }, colIdx)) }),
|
|
2522
|
-
dropdown.feature && /* @__PURE__ */ (0,
|
|
2823
|
+
dropdown.feature && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(FeatureCard, { feature: dropdown.feature, mobile: true })
|
|
2523
2824
|
] })
|
|
2524
2825
|
}
|
|
2525
2826
|
) })
|
|
@@ -2543,24 +2844,24 @@ var Navbar = ({
|
|
|
2543
2844
|
className,
|
|
2544
2845
|
...props
|
|
2545
2846
|
}) => {
|
|
2546
|
-
const [openDropdown, setOpenDropdown] = (0,
|
|
2547
|
-
const [mobileOpen, setMobileOpen] = (0,
|
|
2548
|
-
const [mobileExpanded, setMobileExpanded] = (0,
|
|
2549
|
-
const [scrolled, setScrolled] = (0,
|
|
2550
|
-
const [langDropdownOpen, setLangDropdownOpen] = (0,
|
|
2551
|
-
const [mobileLangOpen, setMobileLangOpen] = (0,
|
|
2552
|
-
const hoverTimeoutRef = (0,
|
|
2553
|
-
const langHoverTimeoutRef = (0,
|
|
2554
|
-
const pillAreaRef = (0,
|
|
2555
|
-
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);
|
|
2556
2857
|
const hasLangDropdown = Boolean(languageItems && languageItems.length > 0);
|
|
2557
2858
|
const resolvedLogo = theme === "light" ? logoSrcDark ?? logoSrc : logoSrc;
|
|
2558
|
-
(0,
|
|
2859
|
+
(0, import_react14.useEffect)(() => {
|
|
2559
2860
|
const onScroll = () => setScrolled(window.scrollY > 0);
|
|
2560
2861
|
window.addEventListener("scroll", onScroll, { passive: true });
|
|
2561
2862
|
return () => window.removeEventListener("scroll", onScroll);
|
|
2562
2863
|
}, []);
|
|
2563
|
-
(0,
|
|
2864
|
+
(0, import_react14.useEffect)(() => {
|
|
2564
2865
|
const onKey = (e) => {
|
|
2565
2866
|
if (e.key === "Escape") {
|
|
2566
2867
|
setOpenDropdown(null);
|
|
@@ -2571,16 +2872,16 @@ var Navbar = ({
|
|
|
2571
2872
|
document.addEventListener("keydown", onKey);
|
|
2572
2873
|
return () => document.removeEventListener("keydown", onKey);
|
|
2573
2874
|
}, []);
|
|
2574
|
-
(0,
|
|
2875
|
+
(0, import_react14.useEffect)(() => {
|
|
2575
2876
|
if (!mobileOpen) setMobileLangOpen(false);
|
|
2576
2877
|
}, [mobileOpen]);
|
|
2577
|
-
(0,
|
|
2878
|
+
(0, import_react14.useEffect)(() => {
|
|
2578
2879
|
document.body.style.overflow = mobileOpen ? "hidden" : "";
|
|
2579
2880
|
return () => {
|
|
2580
2881
|
document.body.style.overflow = "";
|
|
2581
2882
|
};
|
|
2582
2883
|
}, [mobileOpen]);
|
|
2583
|
-
(0,
|
|
2884
|
+
(0, import_react14.useEffect)(() => {
|
|
2584
2885
|
if (!openDropdown) return;
|
|
2585
2886
|
const onPointerDown = (e) => {
|
|
2586
2887
|
if (pillAreaRef.current && !pillAreaRef.current.contains(e.target)) {
|
|
@@ -2590,54 +2891,54 @@ var Navbar = ({
|
|
|
2590
2891
|
document.addEventListener("pointerdown", onPointerDown);
|
|
2591
2892
|
return () => document.removeEventListener("pointerdown", onPointerDown);
|
|
2592
2893
|
}, [openDropdown]);
|
|
2593
|
-
const clearHoverTimeout = (0,
|
|
2894
|
+
const clearHoverTimeout = (0, import_react14.useCallback)(() => {
|
|
2594
2895
|
if (hoverTimeoutRef.current) {
|
|
2595
2896
|
clearTimeout(hoverTimeoutRef.current);
|
|
2596
2897
|
hoverTimeoutRef.current = null;
|
|
2597
2898
|
}
|
|
2598
2899
|
}, []);
|
|
2599
|
-
const clearLangHoverTimeout = (0,
|
|
2900
|
+
const clearLangHoverTimeout = (0, import_react14.useCallback)(() => {
|
|
2600
2901
|
if (langHoverTimeoutRef.current) {
|
|
2601
2902
|
clearTimeout(langHoverTimeoutRef.current);
|
|
2602
2903
|
langHoverTimeoutRef.current = null;
|
|
2603
2904
|
}
|
|
2604
2905
|
}, []);
|
|
2605
|
-
const handleLangEnter = (0,
|
|
2906
|
+
const handleLangEnter = (0, import_react14.useCallback)(() => {
|
|
2606
2907
|
clearLangHoverTimeout();
|
|
2607
2908
|
setLangDropdownOpen(true);
|
|
2608
2909
|
}, [clearLangHoverTimeout]);
|
|
2609
|
-
const handleLangLeave = (0,
|
|
2910
|
+
const handleLangLeave = (0, import_react14.useCallback)(() => {
|
|
2610
2911
|
clearLangHoverTimeout();
|
|
2611
2912
|
langHoverTimeoutRef.current = setTimeout(() => setLangDropdownOpen(false), 150);
|
|
2612
2913
|
}, [clearLangHoverTimeout]);
|
|
2613
|
-
const handleLangSelect = (0,
|
|
2914
|
+
const handleLangSelect = (0, import_react14.useCallback)((code) => {
|
|
2614
2915
|
setLangDropdownOpen(false);
|
|
2615
2916
|
setMobileLangOpen(false);
|
|
2616
2917
|
onLanguageSelect?.(code);
|
|
2617
2918
|
}, [onLanguageSelect]);
|
|
2618
|
-
const handleNavEnter = (0,
|
|
2919
|
+
const handleNavEnter = (0, import_react14.useCallback)((label) => {
|
|
2619
2920
|
clearHoverTimeout();
|
|
2620
2921
|
setOpenDropdown(label);
|
|
2621
2922
|
}, [clearHoverTimeout]);
|
|
2622
|
-
const handleNavLeave = (0,
|
|
2923
|
+
const handleNavLeave = (0, import_react14.useCallback)(() => {
|
|
2623
2924
|
clearHoverTimeout();
|
|
2624
2925
|
hoverTimeoutRef.current = setTimeout(() => setOpenDropdown(null), 120);
|
|
2625
2926
|
}, [clearHoverTimeout]);
|
|
2626
2927
|
const activeDropdownItem = navItems.find((item) => item.label === openDropdown);
|
|
2627
|
-
return /* @__PURE__ */ (0,
|
|
2928
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
|
|
2628
2929
|
"nav",
|
|
2629
2930
|
{
|
|
2630
2931
|
className: ["navbar", `navbar--${theme}`, scrolled && "navbar--scrolled", mobileOpen && "navbar--menu-open", className].filter(Boolean).join(" "),
|
|
2631
2932
|
...props,
|
|
2632
2933
|
children: [
|
|
2633
|
-
/* @__PURE__ */ (0,
|
|
2634
|
-
/* @__PURE__ */ (0,
|
|
2635
|
-
/* @__PURE__ */ (0,
|
|
2636
|
-
/* @__PURE__ */ (0,
|
|
2637
|
-
/* @__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: [
|
|
2638
2939
|
navItems.map((item) => {
|
|
2639
2940
|
if (item.external) {
|
|
2640
|
-
return /* @__PURE__ */ (0,
|
|
2941
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
|
|
2641
2942
|
"a",
|
|
2642
2943
|
{
|
|
2643
2944
|
href: item.href,
|
|
@@ -2646,14 +2947,14 @@ var Navbar = ({
|
|
|
2646
2947
|
rel: "noopener noreferrer",
|
|
2647
2948
|
children: [
|
|
2648
2949
|
item.label,
|
|
2649
|
-
/* @__PURE__ */ (0,
|
|
2950
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(ArrowUpRightIcon, {})
|
|
2650
2951
|
]
|
|
2651
2952
|
},
|
|
2652
2953
|
item.label
|
|
2653
2954
|
);
|
|
2654
2955
|
}
|
|
2655
2956
|
if (item.dropdown) {
|
|
2656
|
-
return /* @__PURE__ */ (0,
|
|
2957
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
|
|
2657
2958
|
"button",
|
|
2658
2959
|
{
|
|
2659
2960
|
className: [
|
|
@@ -2666,21 +2967,21 @@ var Navbar = ({
|
|
|
2666
2967
|
"aria-haspopup": "true",
|
|
2667
2968
|
children: [
|
|
2668
2969
|
item.label,
|
|
2669
|
-
/* @__PURE__ */ (0,
|
|
2970
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(ChevronDownIcon3, { className: "navbar__nav-item__chevron" })
|
|
2670
2971
|
]
|
|
2671
2972
|
},
|
|
2672
2973
|
item.label
|
|
2673
2974
|
);
|
|
2674
2975
|
}
|
|
2675
|
-
return /* @__PURE__ */ (0,
|
|
2976
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("a", { href: item.href, className: "navbar__nav-item", children: item.label }, item.label);
|
|
2676
2977
|
}),
|
|
2677
|
-
languageLabel && /* @__PURE__ */ (0,
|
|
2978
|
+
languageLabel && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
2678
2979
|
"div",
|
|
2679
2980
|
{
|
|
2680
2981
|
className: "navbar__lang-wrapper",
|
|
2681
2982
|
onMouseEnter: hasLangDropdown ? handleLangEnter : void 0,
|
|
2682
2983
|
onMouseLeave: hasLangDropdown ? handleLangLeave : void 0,
|
|
2683
|
-
children: /* @__PURE__ */ (0,
|
|
2984
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
|
|
2684
2985
|
"button",
|
|
2685
2986
|
{
|
|
2686
2987
|
ref: langBtnRef,
|
|
@@ -2689,7 +2990,7 @@ var Navbar = ({
|
|
|
2689
2990
|
"aria-haspopup": hasLangDropdown ? "true" : void 0,
|
|
2690
2991
|
"aria-expanded": hasLangDropdown ? langDropdownOpen : void 0,
|
|
2691
2992
|
children: [
|
|
2692
|
-
/* @__PURE__ */ (0,
|
|
2993
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(GlobeIcon, { className: "navbar__lang-globe" }),
|
|
2693
2994
|
languageLabel
|
|
2694
2995
|
]
|
|
2695
2996
|
}
|
|
@@ -2697,12 +2998,12 @@ var Navbar = ({
|
|
|
2697
2998
|
}
|
|
2698
2999
|
)
|
|
2699
3000
|
] }),
|
|
2700
|
-
/* @__PURE__ */ (0,
|
|
2701
|
-
loginHref && /* @__PURE__ */ (0,
|
|
2702
|
-
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 }) })
|
|
2703
3004
|
] })
|
|
2704
3005
|
] }) }),
|
|
2705
|
-
/* @__PURE__ */ (0,
|
|
3006
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_framer_motion2.AnimatePresence, { children: openDropdown && activeDropdownItem?.dropdown && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
2706
3007
|
DropdownPanel,
|
|
2707
3008
|
{
|
|
2708
3009
|
item: activeDropdownItem,
|
|
@@ -2711,7 +3012,7 @@ var Navbar = ({
|
|
|
2711
3012
|
},
|
|
2712
3013
|
"dropdown"
|
|
2713
3014
|
) }),
|
|
2714
|
-
/* @__PURE__ */ (0,
|
|
3015
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_framer_motion2.AnimatePresence, { children: hasLangDropdown && langDropdownOpen && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
2715
3016
|
import_framer_motion2.motion.div,
|
|
2716
3017
|
{
|
|
2717
3018
|
className: "navbar__lang-dropdown",
|
|
@@ -2722,12 +3023,12 @@ var Navbar = ({
|
|
|
2722
3023
|
transition: { duration: 0.18, ease: EASE_OUT_EXPO },
|
|
2723
3024
|
onMouseEnter: clearLangHoverTimeout,
|
|
2724
3025
|
onMouseLeave: handleLangLeave,
|
|
2725
|
-
children: /* @__PURE__ */ (0,
|
|
3026
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
2726
3027
|
"div",
|
|
2727
3028
|
{
|
|
2728
3029
|
className: "navbar__lang-dropdown-grid",
|
|
2729
3030
|
style: { "--lang-rows": Math.ceil(languageItems.length / 3) },
|
|
2730
|
-
children: languageItems.map((lang) => /* @__PURE__ */ (0,
|
|
3031
|
+
children: languageItems.map((lang) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
2731
3032
|
"button",
|
|
2732
3033
|
{
|
|
2733
3034
|
className: [
|
|
@@ -2743,8 +3044,8 @@ var Navbar = ({
|
|
|
2743
3044
|
)
|
|
2744
3045
|
}
|
|
2745
3046
|
) }),
|
|
2746
|
-
/* @__PURE__ */ (0,
|
|
2747
|
-
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)(
|
|
2748
3049
|
Button,
|
|
2749
3050
|
{
|
|
2750
3051
|
colorScheme: theme === "dark" ? "white" : "black",
|
|
@@ -2752,10 +3053,10 @@ var Navbar = ({
|
|
|
2752
3053
|
label: loginLabel
|
|
2753
3054
|
}
|
|
2754
3055
|
) }),
|
|
2755
|
-
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 }) })
|
|
2756
3057
|
] }),
|
|
2757
|
-
/* @__PURE__ */ (0,
|
|
2758
|
-
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)(
|
|
2759
3060
|
Button,
|
|
2760
3061
|
{
|
|
2761
3062
|
colorScheme: scrolled || theme === "light" ? "black" : "white",
|
|
@@ -2763,18 +3064,18 @@ var Navbar = ({
|
|
|
2763
3064
|
label: loginLabel
|
|
2764
3065
|
}
|
|
2765
3066
|
) }),
|
|
2766
|
-
/* @__PURE__ */ (0,
|
|
3067
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
2767
3068
|
"button",
|
|
2768
3069
|
{
|
|
2769
3070
|
className: "navbar__mobile-trigger",
|
|
2770
3071
|
onClick: () => setMobileOpen((o) => !o),
|
|
2771
3072
|
"aria-label": mobileOpen ? "Close navigation menu" : "Open navigation menu",
|
|
2772
|
-
children: mobileOpen ? /* @__PURE__ */ (0,
|
|
3073
|
+
children: mobileOpen ? /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(XMarkIcon2, {}) : /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(BarsIcon, {})
|
|
2773
3074
|
}
|
|
2774
3075
|
)
|
|
2775
3076
|
] })
|
|
2776
3077
|
] }),
|
|
2777
|
-
/* @__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)(
|
|
2778
3079
|
import_framer_motion2.motion.div,
|
|
2779
3080
|
{
|
|
2780
3081
|
className: "navbar__drawer",
|
|
@@ -2787,10 +3088,10 @@ var Navbar = ({
|
|
|
2787
3088
|
role: "dialog",
|
|
2788
3089
|
"aria-label": "Navigation menu",
|
|
2789
3090
|
children: [
|
|
2790
|
-
/* @__PURE__ */ (0,
|
|
3091
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("nav", { className: "navbar__drawer-nav", children: [
|
|
2791
3092
|
navItems.map((item) => {
|
|
2792
3093
|
if (item.dropdown) {
|
|
2793
|
-
return /* @__PURE__ */ (0,
|
|
3094
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
2794
3095
|
DrawerAccordion,
|
|
2795
3096
|
{
|
|
2796
3097
|
item,
|
|
@@ -2802,7 +3103,7 @@ var Navbar = ({
|
|
|
2802
3103
|
item.label
|
|
2803
3104
|
);
|
|
2804
3105
|
}
|
|
2805
|
-
return /* @__PURE__ */ (0,
|
|
3106
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
|
|
2806
3107
|
"a",
|
|
2807
3108
|
{
|
|
2808
3109
|
href: item.href,
|
|
@@ -2811,30 +3112,30 @@ var Navbar = ({
|
|
|
2811
3112
|
rel: item.external ? "noopener noreferrer" : void 0,
|
|
2812
3113
|
children: [
|
|
2813
3114
|
item.label,
|
|
2814
|
-
item.external && /* @__PURE__ */ (0,
|
|
3115
|
+
item.external && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(ArrowUpRightIcon, {})
|
|
2815
3116
|
]
|
|
2816
3117
|
},
|
|
2817
3118
|
item.label
|
|
2818
3119
|
);
|
|
2819
3120
|
}),
|
|
2820
|
-
languageLabel && !hasLangDropdown && /* @__PURE__ */ (0,
|
|
2821
|
-
/* @__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" }),
|
|
2822
3123
|
languageLabel
|
|
2823
3124
|
] }),
|
|
2824
|
-
languageLabel && hasLangDropdown && /* @__PURE__ */ (0,
|
|
3125
|
+
languageLabel && hasLangDropdown && /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
|
|
2825
3126
|
"button",
|
|
2826
3127
|
{
|
|
2827
3128
|
className: "navbar__drawer-lang",
|
|
2828
3129
|
onClick: () => setMobileLangOpen(true),
|
|
2829
3130
|
children: [
|
|
2830
|
-
/* @__PURE__ */ (0,
|
|
3131
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(GlobeIcon, { className: "navbar__lang-globe" }),
|
|
2831
3132
|
languageLabel
|
|
2832
3133
|
]
|
|
2833
3134
|
}
|
|
2834
3135
|
)
|
|
2835
3136
|
] }),
|
|
2836
|
-
!mobileLangOpen && /* @__PURE__ */ (0,
|
|
2837
|
-
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)(
|
|
2838
3139
|
Button,
|
|
2839
3140
|
{
|
|
2840
3141
|
colorScheme: "black",
|
|
@@ -2843,7 +3144,7 @@ var Navbar = ({
|
|
|
2843
3144
|
fullWidth: true
|
|
2844
3145
|
}
|
|
2845
3146
|
) }),
|
|
2846
|
-
ctaHref && /* @__PURE__ */ (0,
|
|
3147
|
+
ctaHref && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("a", { href: ctaHref, style: { display: "block" }, children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
2847
3148
|
Button,
|
|
2848
3149
|
{
|
|
2849
3150
|
colorScheme: "coral",
|
|
@@ -2853,7 +3154,7 @@ var Navbar = ({
|
|
|
2853
3154
|
}
|
|
2854
3155
|
) })
|
|
2855
3156
|
] }),
|
|
2856
|
-
/* @__PURE__ */ (0,
|
|
3157
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_framer_motion2.AnimatePresence, { children: hasLangDropdown && mobileLangOpen && /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
|
|
2857
3158
|
import_framer_motion2.motion.div,
|
|
2858
3159
|
{
|
|
2859
3160
|
className: "navbar__drawer-lang-panel",
|
|
@@ -2862,16 +3163,16 @@ var Navbar = ({
|
|
|
2862
3163
|
exit: { y: "100%" },
|
|
2863
3164
|
transition: { duration: 0.25, ease: EASE_OUT_EXPO },
|
|
2864
3165
|
children: [
|
|
2865
|
-
/* @__PURE__ */ (0,
|
|
3166
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
2866
3167
|
"button",
|
|
2867
3168
|
{
|
|
2868
3169
|
className: "navbar__drawer-lang-back",
|
|
2869
3170
|
onClick: () => setMobileLangOpen(false),
|
|
2870
3171
|
"aria-label": "Back to menu",
|
|
2871
|
-
children: /* @__PURE__ */ (0,
|
|
3172
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(ChevronLeftIcon, {})
|
|
2872
3173
|
}
|
|
2873
3174
|
),
|
|
2874
|
-
/* @__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)(
|
|
2875
3176
|
"button",
|
|
2876
3177
|
{
|
|
2877
3178
|
className: [
|
|
@@ -2895,9 +3196,9 @@ var Navbar = ({
|
|
|
2895
3196
|
};
|
|
2896
3197
|
|
|
2897
3198
|
// templates/DayNightTransition/DayNightTransition.tsx
|
|
2898
|
-
var
|
|
3199
|
+
var import_react15 = require("react");
|
|
2899
3200
|
var import_framer_motion3 = require("framer-motion");
|
|
2900
|
-
var
|
|
3201
|
+
var import_jsx_runtime26 = require("react/jsx-runtime");
|
|
2901
3202
|
var SPRING2 = { stiffness: 80, damping: 30, restDelta: 1e-3 };
|
|
2902
3203
|
var FADE_START = 0.35;
|
|
2903
3204
|
var FADE_END = 0.65;
|
|
@@ -2908,16 +3209,16 @@ var TEXT_CHANNEL_NIGHT = 255;
|
|
|
2908
3209
|
var DayNightTransition = ({
|
|
2909
3210
|
dayImageUrl,
|
|
2910
3211
|
nightImageUrl,
|
|
2911
|
-
dayHeadline = "
|
|
2912
|
-
nightHeadline = "
|
|
2913
|
-
dayDescription,
|
|
2914
|
-
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.",
|
|
2915
3216
|
ctaLabel = "Get started",
|
|
2916
3217
|
ctaHref = "#",
|
|
2917
3218
|
className,
|
|
2918
3219
|
...props
|
|
2919
3220
|
}) => {
|
|
2920
|
-
const wrapperRef = (0,
|
|
3221
|
+
const wrapperRef = (0, import_react15.useRef)(null);
|
|
2921
3222
|
const { scrollYProgress } = (0, import_framer_motion3.useScroll)({
|
|
2922
3223
|
target: wrapperRef,
|
|
2923
3224
|
offset: ["start end", "end start"]
|
|
@@ -2929,14 +3230,14 @@ var DayNightTransition = ({
|
|
|
2929
3230
|
const dayOpacity = (0, import_framer_motion3.useTransform)(smooth, [WORD_START, WORD_END], [1, 0]);
|
|
2930
3231
|
const nightOpacity2 = (0, import_framer_motion3.useTransform)(smooth, [WORD_START, WORD_END], [0, 1]);
|
|
2931
3232
|
const hasDescription = Boolean(dayDescription || nightDescription);
|
|
2932
|
-
return /* @__PURE__ */ (0,
|
|
3233
|
+
return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
2933
3234
|
"div",
|
|
2934
3235
|
{
|
|
2935
3236
|
ref: wrapperRef,
|
|
2936
3237
|
className: ["dnt", className].filter(Boolean).join(" "),
|
|
2937
3238
|
...props,
|
|
2938
|
-
children: /* @__PURE__ */ (0,
|
|
2939
|
-
/* @__PURE__ */ (0,
|
|
3239
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: "dnt__sticky", children: [
|
|
3240
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
2940
3241
|
"img",
|
|
2941
3242
|
{
|
|
2942
3243
|
className: "dnt__bg dnt__bg--day",
|
|
@@ -2946,7 +3247,7 @@ var DayNightTransition = ({
|
|
|
2946
3247
|
draggable: false
|
|
2947
3248
|
}
|
|
2948
3249
|
),
|
|
2949
|
-
/* @__PURE__ */ (0,
|
|
3250
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
2950
3251
|
import_framer_motion3.motion.img,
|
|
2951
3252
|
{
|
|
2952
3253
|
className: "dnt__bg dnt__bg--night",
|
|
@@ -2957,14 +3258,14 @@ var DayNightTransition = ({
|
|
|
2957
3258
|
style: { opacity: nightOpacity }
|
|
2958
3259
|
}
|
|
2959
3260
|
),
|
|
2960
|
-
/* @__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)(
|
|
2961
3262
|
import_framer_motion3.motion.div,
|
|
2962
3263
|
{
|
|
2963
3264
|
className: "dnt__text-wrap",
|
|
2964
3265
|
style: { color: textColor },
|
|
2965
3266
|
children: [
|
|
2966
|
-
/* @__PURE__ */ (0,
|
|
2967
|
-
/* @__PURE__ */ (0,
|
|
3267
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: "dnt__crossfade-wrap", children: [
|
|
3268
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
2968
3269
|
import_framer_motion3.motion.h2,
|
|
2969
3270
|
{
|
|
2970
3271
|
className: "dnt__headline",
|
|
@@ -2972,7 +3273,7 @@ var DayNightTransition = ({
|
|
|
2972
3273
|
children: dayHeadline
|
|
2973
3274
|
}
|
|
2974
3275
|
),
|
|
2975
|
-
/* @__PURE__ */ (0,
|
|
3276
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
2976
3277
|
import_framer_motion3.motion.h2,
|
|
2977
3278
|
{
|
|
2978
3279
|
className: "dnt__headline",
|
|
@@ -2982,8 +3283,8 @@ var DayNightTransition = ({
|
|
|
2982
3283
|
}
|
|
2983
3284
|
)
|
|
2984
3285
|
] }),
|
|
2985
|
-
hasDescription && /* @__PURE__ */ (0,
|
|
2986
|
-
/* @__PURE__ */ (0,
|
|
3286
|
+
hasDescription && /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: "dnt__crossfade-wrap", children: [
|
|
3287
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
2987
3288
|
import_framer_motion3.motion.p,
|
|
2988
3289
|
{
|
|
2989
3290
|
className: "dnt__description",
|
|
@@ -2991,7 +3292,7 @@ var DayNightTransition = ({
|
|
|
2991
3292
|
children: dayDescription ?? ""
|
|
2992
3293
|
}
|
|
2993
3294
|
),
|
|
2994
|
-
/* @__PURE__ */ (0,
|
|
3295
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
2995
3296
|
import_framer_motion3.motion.p,
|
|
2996
3297
|
{
|
|
2997
3298
|
className: "dnt__description",
|
|
@@ -3001,19 +3302,19 @@ var DayNightTransition = ({
|
|
|
3001
3302
|
}
|
|
3002
3303
|
)
|
|
3003
3304
|
] }),
|
|
3004
|
-
/* @__PURE__ */ (0,
|
|
3305
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)("a", { href: ctaHref, className: "dnt__btn", children: ctaLabel })
|
|
3005
3306
|
]
|
|
3006
3307
|
}
|
|
3007
|
-
) })
|
|
3308
|
+
) }) })
|
|
3008
3309
|
] })
|
|
3009
3310
|
}
|
|
3010
3311
|
);
|
|
3011
3312
|
};
|
|
3012
3313
|
|
|
3013
|
-
// templates/
|
|
3014
|
-
var
|
|
3314
|
+
// templates/LogoMarquee/LogoMarquee.tsx
|
|
3315
|
+
var import_react16 = require("react");
|
|
3015
3316
|
var import_framer_motion4 = require("framer-motion");
|
|
3016
|
-
var
|
|
3317
|
+
var import_jsx_runtime27 = require("react/jsx-runtime");
|
|
3017
3318
|
function modWrap(min, max, v) {
|
|
3018
3319
|
const range = max - min;
|
|
3019
3320
|
return ((v - min) % range + range) % range + min;
|
|
@@ -3021,41 +3322,41 @@ function modWrap(min, max, v) {
|
|
|
3021
3322
|
var VELOCITY_FACTOR = 0.4;
|
|
3022
3323
|
var MAX_SCROLL_V = 2500;
|
|
3023
3324
|
var DEADZONE = 2;
|
|
3024
|
-
var
|
|
3325
|
+
var PLACEHOLDER_IMAGE2 = "https://cdn.prod.website-files.com/68da5c86c91c54f39c86c28a/69b9309379ac08e59ca8210a_1f3f555da9a5cbb13a6fe1bf0d5fe1b6_placeholder-image.webp";
|
|
3025
3326
|
var COL_ONE_LOGOS = [
|
|
3026
|
-
{ name: "
|
|
3027
|
-
{ name: "
|
|
3028
|
-
{ name: "
|
|
3029
|
-
{ name: "
|
|
3030
|
-
{ name: "
|
|
3031
|
-
{ name: "
|
|
3032
|
-
{ name: "
|
|
3033
|
-
{ name: "
|
|
3034
|
-
{ name: "
|
|
3035
|
-
{ name: "
|
|
3036
|
-
{ name: "
|
|
3327
|
+
{ name: "Logo 1", url: PLACEHOLDER_IMAGE2 },
|
|
3328
|
+
{ name: "Logo 2", url: PLACEHOLDER_IMAGE2 },
|
|
3329
|
+
{ name: "Logo 3", url: PLACEHOLDER_IMAGE2 },
|
|
3330
|
+
{ name: "Logo 4", url: PLACEHOLDER_IMAGE2 },
|
|
3331
|
+
{ name: "Logo 5", url: PLACEHOLDER_IMAGE2 },
|
|
3332
|
+
{ name: "Logo 6", url: PLACEHOLDER_IMAGE2 },
|
|
3333
|
+
{ name: "Logo 7", url: PLACEHOLDER_IMAGE2 },
|
|
3334
|
+
{ name: "Logo 8", url: PLACEHOLDER_IMAGE2 },
|
|
3335
|
+
{ name: "Logo 9", url: PLACEHOLDER_IMAGE2 },
|
|
3336
|
+
{ name: "Logo 10", url: PLACEHOLDER_IMAGE2 },
|
|
3337
|
+
{ name: "Logo 11", url: PLACEHOLDER_IMAGE2 }
|
|
3037
3338
|
];
|
|
3038
3339
|
var COL_TWO_LOGOS = [
|
|
3039
|
-
{ name: "
|
|
3040
|
-
{ name: "
|
|
3041
|
-
{ name: "
|
|
3042
|
-
{ name: "
|
|
3043
|
-
{ name: "
|
|
3044
|
-
{ name: "
|
|
3045
|
-
{ name: "
|
|
3046
|
-
{ name: "
|
|
3047
|
-
{ name: "
|
|
3048
|
-
{ name: "
|
|
3049
|
-
{ name: "
|
|
3340
|
+
{ name: "Logo 1", url: PLACEHOLDER_IMAGE2 },
|
|
3341
|
+
{ name: "Logo 2", url: PLACEHOLDER_IMAGE2 },
|
|
3342
|
+
{ name: "Logo 3", url: PLACEHOLDER_IMAGE2 },
|
|
3343
|
+
{ name: "Logo 4", url: PLACEHOLDER_IMAGE2 },
|
|
3344
|
+
{ name: "Logo 5", url: PLACEHOLDER_IMAGE2 },
|
|
3345
|
+
{ name: "Logo 6", url: PLACEHOLDER_IMAGE2 },
|
|
3346
|
+
{ name: "Logo 7", url: PLACEHOLDER_IMAGE2 },
|
|
3347
|
+
{ name: "Logo 8", url: PLACEHOLDER_IMAGE2 },
|
|
3348
|
+
{ name: "Logo 9", url: PLACEHOLDER_IMAGE2 },
|
|
3349
|
+
{ name: "Logo 10", url: PLACEHOLDER_IMAGE2 },
|
|
3350
|
+
{ name: "Logo 11", url: PLACEHOLDER_IMAGE2 }
|
|
3050
3351
|
];
|
|
3051
3352
|
var TEXT_CONTENT = {
|
|
3052
|
-
headline: "
|
|
3053
|
-
body: "
|
|
3054
|
-
disclaimer: "*
|
|
3353
|
+
headline: "Section title goes here",
|
|
3354
|
+
body: "Explain how this specific feature helps your user.",
|
|
3355
|
+
disclaimer: "*Add any relevant disclaimers or legal copy here.",
|
|
3055
3356
|
ctaLabel: "Learn more",
|
|
3056
3357
|
ctaHref: "#"
|
|
3057
3358
|
};
|
|
3058
|
-
var
|
|
3359
|
+
var LogoMarquee = ({
|
|
3059
3360
|
headline = TEXT_CONTENT.headline,
|
|
3060
3361
|
body = TEXT_CONTENT.body,
|
|
3061
3362
|
disclaimer = TEXT_CONTENT.disclaimer,
|
|
@@ -3070,8 +3371,8 @@ var PaymentMethods = ({
|
|
|
3070
3371
|
const scrollVelocity = (0, import_framer_motion4.useVelocity)(scrollY);
|
|
3071
3372
|
const col1Y = (0, import_framer_motion4.useMotionValue)(0);
|
|
3072
3373
|
const col2Y = (0, import_framer_motion4.useMotionValue)(0);
|
|
3073
|
-
const col1Ref = (0,
|
|
3074
|
-
const col2Ref = (0,
|
|
3374
|
+
const col1Ref = (0, import_react16.useRef)(null);
|
|
3375
|
+
const col2Ref = (0, import_react16.useRef)(null);
|
|
3075
3376
|
(0, import_framer_motion4.useAnimationFrame)((_, delta) => {
|
|
3076
3377
|
const raw = scrollVelocity.get();
|
|
3077
3378
|
if (Math.abs(raw) < DEADZONE) return;
|
|
@@ -3084,21 +3385,21 @@ var PaymentMethods = ({
|
|
|
3084
3385
|
});
|
|
3085
3386
|
const track1 = [...col1Logos, ...col1Logos];
|
|
3086
3387
|
const track2 = [...col2Logos, ...col2Logos];
|
|
3087
|
-
return /* @__PURE__ */ (0,
|
|
3388
|
+
return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
3088
3389
|
"section",
|
|
3089
3390
|
{
|
|
3090
|
-
className: ["
|
|
3391
|
+
className: ["lm", className].filter(Boolean).join(" "),
|
|
3091
3392
|
...props,
|
|
3092
|
-
children: /* @__PURE__ */ (0,
|
|
3093
|
-
/* @__PURE__ */ (0,
|
|
3094
|
-
/* @__PURE__ */ (0,
|
|
3095
|
-
/* @__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)(
|
|
3096
3397
|
import_framer_motion4.motion.div,
|
|
3097
3398
|
{
|
|
3098
3399
|
ref: col1Ref,
|
|
3099
|
-
className: "
|
|
3400
|
+
className: "lm__col",
|
|
3100
3401
|
style: { y: col1Y },
|
|
3101
|
-
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)(
|
|
3102
3403
|
"img",
|
|
3103
3404
|
{
|
|
3104
3405
|
src: logo.url,
|
|
@@ -3109,13 +3410,13 @@ var PaymentMethods = ({
|
|
|
3109
3410
|
) }) }, `c1-${i}`))
|
|
3110
3411
|
}
|
|
3111
3412
|
),
|
|
3112
|
-
/* @__PURE__ */ (0,
|
|
3413
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
3113
3414
|
import_framer_motion4.motion.div,
|
|
3114
3415
|
{
|
|
3115
3416
|
ref: col2Ref,
|
|
3116
|
-
className: "
|
|
3417
|
+
className: "lm__col",
|
|
3117
3418
|
style: { y: col2Y },
|
|
3118
|
-
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)(
|
|
3119
3420
|
"img",
|
|
3120
3421
|
{
|
|
3121
3422
|
src: logo.url,
|
|
@@ -3126,23 +3427,203 @@ var PaymentMethods = ({
|
|
|
3126
3427
|
) }) }, `c2-${i}`))
|
|
3127
3428
|
}
|
|
3128
3429
|
),
|
|
3129
|
-
/* @__PURE__ */ (0,
|
|
3430
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { className: "lm__fade lm__fade--bottom", "aria-hidden": "true" })
|
|
3130
3431
|
] }) }),
|
|
3131
|
-
/* @__PURE__ */ (0,
|
|
3132
|
-
/* @__PURE__ */ (0,
|
|
3133
|
-
/* @__PURE__ */ (0,
|
|
3134
|
-
/* @__PURE__ */ (0,
|
|
3135
|
-
/* @__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 })
|
|
3136
3437
|
] }),
|
|
3137
|
-
/* @__PURE__ */ (0,
|
|
3438
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("a", { href: ctaHref, className: "lm__link", children: [
|
|
3138
3439
|
ctaLabel,
|
|
3139
|
-
/* @__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" }) }) })
|
|
3140
3441
|
] })
|
|
3141
3442
|
] })
|
|
3142
3443
|
] })
|
|
3143
3444
|
}
|
|
3144
3445
|
);
|
|
3145
3446
|
};
|
|
3447
|
+
|
|
3448
|
+
// assets/appstore-googleplay-light.svg
|
|
3449
|
+
var appstore_googleplay_light_default = "./appstore-googleplay-light-W3CS6NAG.svg";
|
|
3450
|
+
|
|
3451
|
+
// assets/appstore-appstore-light.svg
|
|
3452
|
+
var appstore_appstore_light_default = "./appstore-appstore-light-BEVC5PJZ.svg";
|
|
3453
|
+
|
|
3454
|
+
// assets/appstore-appgallery-light.svg
|
|
3455
|
+
var appstore_appgallery_light_default = "./appstore-appgallery-light-VF62CF5X.svg";
|
|
3456
|
+
|
|
3457
|
+
// assets/appstore-windows-light.svg
|
|
3458
|
+
var appstore_windows_light_default = "./appstore-windows-light-TCALZSJM.svg";
|
|
3459
|
+
|
|
3460
|
+
// assets/appstore-macos-light.svg
|
|
3461
|
+
var appstore_macos_light_default = "./appstore-macos-light-5LI6ESAV.svg";
|
|
3462
|
+
|
|
3463
|
+
// assets/appstore-linux-light.svg
|
|
3464
|
+
var appstore_linux_light_default = "./appstore-linux-light-WQECAJRC.svg";
|
|
3465
|
+
|
|
3466
|
+
// assets/appstore-browser-light.svg
|
|
3467
|
+
var appstore_browser_light_default = "./appstore-browser-light-HBKTW4SI.svg";
|
|
3468
|
+
|
|
3469
|
+
// assets/appstore-googleplay-dark.svg
|
|
3470
|
+
var appstore_googleplay_dark_default = "./appstore-googleplay-dark-HWTOQTL6.svg";
|
|
3471
|
+
|
|
3472
|
+
// assets/appstore-appstore-dark.svg
|
|
3473
|
+
var appstore_appstore_dark_default = "./appstore-appstore-dark-FDUROOKK.svg";
|
|
3474
|
+
|
|
3475
|
+
// assets/appstore-appgallery-dark.svg
|
|
3476
|
+
var appstore_appgallery_dark_default = "./appstore-appgallery-dark-2QPFCM4A.svg";
|
|
3477
|
+
|
|
3478
|
+
// assets/appstore-windows-dark.svg
|
|
3479
|
+
var appstore_windows_dark_default = "./appstore-windows-dark-ZDWELB42.svg";
|
|
3480
|
+
|
|
3481
|
+
// assets/appstore-macos-dark.svg
|
|
3482
|
+
var appstore_macos_dark_default = "./appstore-macos-dark-2A3UM5YI.svg";
|
|
3483
|
+
|
|
3484
|
+
// assets/appstore-linux-dark.svg
|
|
3485
|
+
var appstore_linux_dark_default = "./appstore-linux-dark-RVH7CBM4.svg";
|
|
3486
|
+
|
|
3487
|
+
// assets/appstore-browser-dark.svg
|
|
3488
|
+
var appstore_browser_dark_default = "./appstore-browser-dark-2E6TK6JH.svg";
|
|
3489
|
+
|
|
3490
|
+
// primitives/DownloadBadge/DownloadBadge.tsx
|
|
3491
|
+
var import_jsx_runtime28 = require("react/jsx-runtime");
|
|
3492
|
+
var BADGE_ASSETS = {
|
|
3493
|
+
light: {
|
|
3494
|
+
googleplay: { src: appstore_googleplay_light_default, alt: "Get it on Google Play" },
|
|
3495
|
+
appstore: { src: appstore_appstore_light_default, alt: "Download on the App Store" },
|
|
3496
|
+
appgallery: { src: appstore_appgallery_light_default, alt: "Explore it on AppGallery" },
|
|
3497
|
+
windows: { src: appstore_windows_light_default, alt: "Download for Windows" },
|
|
3498
|
+
macos: { src: appstore_macos_light_default, alt: "Download on the Mac App Store" },
|
|
3499
|
+
linux: { src: appstore_linux_light_default, alt: "Installation on Linux" },
|
|
3500
|
+
web: { src: appstore_browser_light_default, alt: "Trade on Web browser" }
|
|
3501
|
+
},
|
|
3502
|
+
dark: {
|
|
3503
|
+
googleplay: { src: appstore_googleplay_dark_default, alt: "Get it on Google Play" },
|
|
3504
|
+
appstore: { src: appstore_appstore_dark_default, alt: "Download on the App Store" },
|
|
3505
|
+
appgallery: { src: appstore_appgallery_dark_default, alt: "Explore it on AppGallery" },
|
|
3506
|
+
windows: { src: appstore_windows_dark_default, alt: "Download for Windows" },
|
|
3507
|
+
macos: { src: appstore_macos_dark_default, alt: "Download on the Mac App Store" },
|
|
3508
|
+
linux: { src: appstore_linux_dark_default, alt: "Installation on Linux" },
|
|
3509
|
+
web: { src: appstore_browser_dark_default, alt: "Trade on Web browser" }
|
|
3510
|
+
}
|
|
3511
|
+
};
|
|
3512
|
+
var DownloadBadge = ({
|
|
3513
|
+
platform,
|
|
3514
|
+
colorScheme = "light",
|
|
3515
|
+
href,
|
|
3516
|
+
className,
|
|
3517
|
+
...props
|
|
3518
|
+
}) => {
|
|
3519
|
+
const { src, alt } = BADGE_ASSETS[colorScheme][platform];
|
|
3520
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
3521
|
+
"a",
|
|
3522
|
+
{
|
|
3523
|
+
className: [
|
|
3524
|
+
"download-badge",
|
|
3525
|
+
`download-badge--${colorScheme}`,
|
|
3526
|
+
className
|
|
3527
|
+
].filter(Boolean).join(" "),
|
|
3528
|
+
href: href ?? "#",
|
|
3529
|
+
"aria-label": alt,
|
|
3530
|
+
target: "_blank",
|
|
3531
|
+
rel: "noopener noreferrer",
|
|
3532
|
+
...props,
|
|
3533
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("img", { className: "download-badge__img", src, alt })
|
|
3534
|
+
}
|
|
3535
|
+
);
|
|
3536
|
+
};
|
|
3537
|
+
|
|
3538
|
+
// templates/Steps/Steps.tsx
|
|
3539
|
+
var import_jsx_runtime29 = require("react/jsx-runtime");
|
|
3540
|
+
var Steps = ({
|
|
3541
|
+
title,
|
|
3542
|
+
steps,
|
|
3543
|
+
image,
|
|
3544
|
+
imageAlt = "",
|
|
3545
|
+
imagePosition = "left"
|
|
3546
|
+
}) => {
|
|
3547
|
+
const containerClass = [
|
|
3548
|
+
"steps__container",
|
|
3549
|
+
imagePosition === "right" ? "steps__container--image-right" : ""
|
|
3550
|
+
].filter(Boolean).join(" ");
|
|
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)(
|
|
3553
|
+
"img",
|
|
3554
|
+
{
|
|
3555
|
+
src: image,
|
|
3556
|
+
alt: imageAlt,
|
|
3557
|
+
className: "steps__image"
|
|
3558
|
+
}
|
|
3559
|
+
) }),
|
|
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 })
|
|
3567
|
+
] })
|
|
3568
|
+
] }) }, index)) })
|
|
3569
|
+
] })
|
|
3570
|
+
] }) });
|
|
3571
|
+
};
|
|
3572
|
+
|
|
3573
|
+
// templates/DownloadBanner/DownloadBanner.tsx
|
|
3574
|
+
var import_jsx_runtime30 = require("react/jsx-runtime");
|
|
3575
|
+
var DownloadBanner = ({
|
|
3576
|
+
style = "light-2",
|
|
3577
|
+
qrCodeImage,
|
|
3578
|
+
qrCodeAlt = "QR code to download the app",
|
|
3579
|
+
qrTitle = "Scan to download",
|
|
3580
|
+
qrSubtitle = "Android & iOS",
|
|
3581
|
+
mobileTitle = "Available on",
|
|
3582
|
+
showAppStore = true,
|
|
3583
|
+
showGooglePlay = true,
|
|
3584
|
+
showAppGallery = true,
|
|
3585
|
+
showWindows = true,
|
|
3586
|
+
showMacOS = true,
|
|
3587
|
+
showLinux = true,
|
|
3588
|
+
showWeb = true,
|
|
3589
|
+
appStoreHref,
|
|
3590
|
+
googlePlayHref,
|
|
3591
|
+
appGalleryHref,
|
|
3592
|
+
windowsHref,
|
|
3593
|
+
macOSHref,
|
|
3594
|
+
linuxHref,
|
|
3595
|
+
webHref,
|
|
3596
|
+
disclaimer
|
|
3597
|
+
}) => {
|
|
3598
|
+
const colorScheme = style === "dark" ? "dark" : "light";
|
|
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)(
|
|
3602
|
+
"img",
|
|
3603
|
+
{
|
|
3604
|
+
className: "db-qr-image",
|
|
3605
|
+
src: qrCodeImage,
|
|
3606
|
+
alt: qrCodeAlt
|
|
3607
|
+
}
|
|
3608
|
+
),
|
|
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 })
|
|
3614
|
+
] })
|
|
3615
|
+
] }),
|
|
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 })
|
|
3624
|
+
] })
|
|
3625
|
+
] }) }) });
|
|
3626
|
+
};
|
|
3146
3627
|
// Annotate the CommonJS export names for ESM import in node:
|
|
3147
3628
|
0 && (module.exports = {
|
|
3148
3629
|
AVATAR_DATA,
|
|
@@ -3157,18 +3638,23 @@ var PaymentMethods = ({
|
|
|
3157
3638
|
Chip,
|
|
3158
3639
|
ChipDropdown,
|
|
3159
3640
|
DayNightTransition,
|
|
3641
|
+
DotLottieInView,
|
|
3642
|
+
DownloadBadge,
|
|
3643
|
+
DownloadBanner,
|
|
3644
|
+
FEATURE_SCROLL_DATA,
|
|
3160
3645
|
FeatureCards,
|
|
3646
|
+
FeatureCardsSecondary,
|
|
3647
|
+
FeatureScroll,
|
|
3161
3648
|
Footer,
|
|
3162
3649
|
Hero,
|
|
3163
3650
|
Link,
|
|
3651
|
+
LogoMarquee,
|
|
3164
3652
|
Navbar,
|
|
3165
3653
|
Pagination,
|
|
3166
|
-
PaymentMethods,
|
|
3167
|
-
SCROLLYTELLING_DATA,
|
|
3168
3654
|
STEPS_DATA,
|
|
3169
|
-
Scrollytelling,
|
|
3170
3655
|
SearchField,
|
|
3171
3656
|
Stats,
|
|
3657
|
+
Steps,
|
|
3172
3658
|
StickyStackedCards,
|
|
3173
3659
|
TEXT_CONTENT,
|
|
3174
3660
|
Tag,
|