@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.mjs
CHANGED
|
@@ -1030,10 +1030,50 @@ var FeatureCards = ({
|
|
|
1030
1030
|
] }) });
|
|
1031
1031
|
};
|
|
1032
1032
|
|
|
1033
|
+
// templates/FeatureCardsSecondary/FeatureCardsSecondary.tsx
|
|
1034
|
+
import { jsx as jsx17, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
1035
|
+
var FeatureCardsSecondary = ({
|
|
1036
|
+
sectionTitle,
|
|
1037
|
+
sectionDescription,
|
|
1038
|
+
showLink = false,
|
|
1039
|
+
linkText = "Learn more",
|
|
1040
|
+
onLinkClick,
|
|
1041
|
+
cards
|
|
1042
|
+
}) => {
|
|
1043
|
+
return /* @__PURE__ */ jsx17("section", { className: "fcs-section", children: /* @__PURE__ */ jsxs16("div", { className: "fcs-container", children: [
|
|
1044
|
+
/* @__PURE__ */ jsxs16("div", { className: "fcs-header", children: [
|
|
1045
|
+
/* @__PURE__ */ jsx17("h2", { className: "fcs-sectionTitle", children: sectionTitle }),
|
|
1046
|
+
sectionDescription && /* @__PURE__ */ jsx17("p", { className: "fcs-sectionDescription", children: sectionDescription }),
|
|
1047
|
+
showLink && /* @__PURE__ */ jsx17(
|
|
1048
|
+
Link,
|
|
1049
|
+
{
|
|
1050
|
+
colorScheme: "coral",
|
|
1051
|
+
label: linkText,
|
|
1052
|
+
onClick: onLinkClick
|
|
1053
|
+
}
|
|
1054
|
+
)
|
|
1055
|
+
] }),
|
|
1056
|
+
/* @__PURE__ */ jsx17("div", { className: `fcs-grid fcs-grid--${cards.length === 4 ? "4" : "3"}`, children: cards.map((card, index) => /* @__PURE__ */ jsx17(
|
|
1057
|
+
Card,
|
|
1058
|
+
{
|
|
1059
|
+
variant: "secondary",
|
|
1060
|
+
title: card.title,
|
|
1061
|
+
description: card.description,
|
|
1062
|
+
icon: card.icon,
|
|
1063
|
+
showIcon: card.showIcon,
|
|
1064
|
+
showLink: card.showLink,
|
|
1065
|
+
linkText: card.linkText,
|
|
1066
|
+
onLinkClick: card.onLinkClick
|
|
1067
|
+
},
|
|
1068
|
+
index
|
|
1069
|
+
)) })
|
|
1070
|
+
] }) });
|
|
1071
|
+
};
|
|
1072
|
+
|
|
1033
1073
|
// components/Footer/Footer.tsx
|
|
1034
1074
|
import { useState as useState5 } from "react";
|
|
1035
|
-
import { Fragment as Fragment2, jsx as
|
|
1036
|
-
var ExternalLinkIcon = () => /* @__PURE__ */
|
|
1075
|
+
import { Fragment as Fragment2, jsx as jsx18, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
1076
|
+
var ExternalLinkIcon = () => /* @__PURE__ */ jsx18(
|
|
1037
1077
|
"svg",
|
|
1038
1078
|
{
|
|
1039
1079
|
width: "12",
|
|
@@ -1042,7 +1082,7 @@ var ExternalLinkIcon = () => /* @__PURE__ */ jsx17(
|
|
|
1042
1082
|
fill: "none",
|
|
1043
1083
|
"aria-hidden": "true",
|
|
1044
1084
|
focusable: "false",
|
|
1045
|
-
children: /* @__PURE__ */
|
|
1085
|
+
children: /* @__PURE__ */ jsx18(
|
|
1046
1086
|
"path",
|
|
1047
1087
|
{
|
|
1048
1088
|
d: "M2 2H10M10 2V10M10 2L2 10",
|
|
@@ -1054,7 +1094,7 @@ var ExternalLinkIcon = () => /* @__PURE__ */ jsx17(
|
|
|
1054
1094
|
)
|
|
1055
1095
|
}
|
|
1056
1096
|
);
|
|
1057
|
-
var ChevronDownIcon2 = () => /* @__PURE__ */
|
|
1097
|
+
var ChevronDownIcon2 = () => /* @__PURE__ */ jsx18(
|
|
1058
1098
|
"svg",
|
|
1059
1099
|
{
|
|
1060
1100
|
width: "12",
|
|
@@ -1063,7 +1103,7 @@ var ChevronDownIcon2 = () => /* @__PURE__ */ jsx17(
|
|
|
1063
1103
|
fill: "none",
|
|
1064
1104
|
"aria-hidden": "true",
|
|
1065
1105
|
focusable: "false",
|
|
1066
|
-
children: /* @__PURE__ */
|
|
1106
|
+
children: /* @__PURE__ */ jsx18(
|
|
1067
1107
|
"path",
|
|
1068
1108
|
{
|
|
1069
1109
|
d: "M2 4L6 8L10 4",
|
|
@@ -1080,9 +1120,9 @@ var DerivGoBadges = ({
|
|
|
1080
1120
|
appStoreBadge,
|
|
1081
1121
|
huaweiBadge,
|
|
1082
1122
|
availabilityNote
|
|
1083
|
-
}) => /* @__PURE__ */
|
|
1084
|
-
/* @__PURE__ */
|
|
1085
|
-
googlePlayBadge && /* @__PURE__ */
|
|
1123
|
+
}) => /* @__PURE__ */ jsxs17(Fragment2, { children: [
|
|
1124
|
+
/* @__PURE__ */ jsxs17("div", { className: "footer__app-badges", children: [
|
|
1125
|
+
googlePlayBadge && /* @__PURE__ */ jsx18(
|
|
1086
1126
|
"a",
|
|
1087
1127
|
{
|
|
1088
1128
|
href: googlePlayBadge.href,
|
|
@@ -1090,10 +1130,10 @@ var DerivGoBadges = ({
|
|
|
1090
1130
|
"aria-label": googlePlayBadge.imageAlt,
|
|
1091
1131
|
target: "_blank",
|
|
1092
1132
|
rel: "noopener noreferrer",
|
|
1093
|
-
children: googlePlayBadge.icon ?? /* @__PURE__ */
|
|
1133
|
+
children: googlePlayBadge.icon ?? /* @__PURE__ */ jsx18("img", { src: googlePlayBadge.imageSrc, alt: googlePlayBadge.imageAlt })
|
|
1094
1134
|
}
|
|
1095
1135
|
),
|
|
1096
|
-
appStoreBadge && /* @__PURE__ */
|
|
1136
|
+
appStoreBadge && /* @__PURE__ */ jsx18(
|
|
1097
1137
|
"a",
|
|
1098
1138
|
{
|
|
1099
1139
|
href: appStoreBadge.href,
|
|
@@ -1101,10 +1141,10 @@ var DerivGoBadges = ({
|
|
|
1101
1141
|
"aria-label": appStoreBadge.imageAlt,
|
|
1102
1142
|
target: "_blank",
|
|
1103
1143
|
rel: "noopener noreferrer",
|
|
1104
|
-
children: appStoreBadge.icon ?? /* @__PURE__ */
|
|
1144
|
+
children: appStoreBadge.icon ?? /* @__PURE__ */ jsx18("img", { src: appStoreBadge.imageSrc, alt: appStoreBadge.imageAlt })
|
|
1105
1145
|
}
|
|
1106
1146
|
),
|
|
1107
|
-
huaweiBadge && /* @__PURE__ */
|
|
1147
|
+
huaweiBadge && /* @__PURE__ */ jsx18(
|
|
1108
1148
|
"a",
|
|
1109
1149
|
{
|
|
1110
1150
|
href: huaweiBadge.href,
|
|
@@ -1112,13 +1152,13 @@ var DerivGoBadges = ({
|
|
|
1112
1152
|
"aria-label": huaweiBadge.imageAlt,
|
|
1113
1153
|
target: "_blank",
|
|
1114
1154
|
rel: "noopener noreferrer",
|
|
1115
|
-
children: huaweiBadge.icon ?? /* @__PURE__ */
|
|
1155
|
+
children: huaweiBadge.icon ?? /* @__PURE__ */ jsx18("img", { src: huaweiBadge.imageSrc, alt: huaweiBadge.imageAlt })
|
|
1116
1156
|
}
|
|
1117
1157
|
)
|
|
1118
1158
|
] }),
|
|
1119
|
-
availabilityNote && /* @__PURE__ */
|
|
1159
|
+
availabilityNote && /* @__PURE__ */ jsx18("p", { className: "footer__app-note", children: availabilityNote })
|
|
1120
1160
|
] });
|
|
1121
|
-
var NavLink = ({ label, href, isExternal, onClick }) => /* @__PURE__ */
|
|
1161
|
+
var NavLink = ({ label, href, isExternal, onClick }) => /* @__PURE__ */ jsxs17(
|
|
1122
1162
|
"a",
|
|
1123
1163
|
{
|
|
1124
1164
|
href,
|
|
@@ -1127,7 +1167,7 @@ var NavLink = ({ label, href, isExternal, onClick }) => /* @__PURE__ */ jsxs16(
|
|
|
1127
1167
|
...isExternal ? { target: "_blank", rel: "noopener noreferrer" } : {},
|
|
1128
1168
|
children: [
|
|
1129
1169
|
label,
|
|
1130
|
-
isExternal && /* @__PURE__ */
|
|
1170
|
+
isExternal && /* @__PURE__ */ jsx18(ExternalLinkIcon, {})
|
|
1131
1171
|
]
|
|
1132
1172
|
}
|
|
1133
1173
|
);
|
|
@@ -1159,14 +1199,14 @@ var Footer = ({
|
|
|
1159
1199
|
});
|
|
1160
1200
|
};
|
|
1161
1201
|
const aiLabel = aiSummary?.label ?? "Ask AI for a summary of Deriv";
|
|
1162
|
-
return /* @__PURE__ */
|
|
1202
|
+
return /* @__PURE__ */ jsx18(
|
|
1163
1203
|
"footer",
|
|
1164
1204
|
{
|
|
1165
1205
|
className: ["footer", className].filter(Boolean).join(" "),
|
|
1166
1206
|
...props,
|
|
1167
|
-
children: /* @__PURE__ */
|
|
1168
|
-
/* @__PURE__ */
|
|
1169
|
-
/* @__PURE__ */
|
|
1207
|
+
children: /* @__PURE__ */ jsxs17("div", { className: "footer__inner", children: [
|
|
1208
|
+
/* @__PURE__ */ jsxs17("div", { className: "footer__header", children: [
|
|
1209
|
+
/* @__PURE__ */ jsx18("div", { className: "footer__logo-wrapper", children: /* @__PURE__ */ jsx18(
|
|
1170
1210
|
"img",
|
|
1171
1211
|
{
|
|
1172
1212
|
src: logoSrc,
|
|
@@ -1174,21 +1214,21 @@ var Footer = ({
|
|
|
1174
1214
|
className: "footer__logo"
|
|
1175
1215
|
}
|
|
1176
1216
|
) }),
|
|
1177
|
-
aiSummary && /* @__PURE__ */
|
|
1178
|
-
/* @__PURE__ */
|
|
1179
|
-
/* @__PURE__ */
|
|
1217
|
+
aiSummary && /* @__PURE__ */ jsxs17("div", { className: "footer__ai-bar footer__ai-bar--inline", children: [
|
|
1218
|
+
/* @__PURE__ */ jsx18("span", { className: "footer__ai-bar-label", children: aiLabel }),
|
|
1219
|
+
/* @__PURE__ */ jsx18("div", { className: "footer__ai-bar-icons", children: aiSummary.items.map((item, i) => /* @__PURE__ */ jsx18(
|
|
1180
1220
|
"a",
|
|
1181
1221
|
{
|
|
1182
1222
|
href: item.href,
|
|
1183
1223
|
"aria-label": item.imageAlt,
|
|
1184
1224
|
target: "_blank",
|
|
1185
1225
|
rel: "noopener noreferrer",
|
|
1186
|
-
children: /* @__PURE__ */
|
|
1226
|
+
children: /* @__PURE__ */ jsx18("img", { className: "footer__ai-icon", src: item.imageSrc, alt: item.imageAlt })
|
|
1187
1227
|
},
|
|
1188
1228
|
i
|
|
1189
1229
|
)) })
|
|
1190
1230
|
] }),
|
|
1191
|
-
/* @__PURE__ */
|
|
1231
|
+
/* @__PURE__ */ jsx18("div", { className: "footer__social footer__social--in-header", children: socialLinks.map((link, i) => /* @__PURE__ */ jsx18(
|
|
1192
1232
|
"a",
|
|
1193
1233
|
{
|
|
1194
1234
|
href: link.href,
|
|
@@ -1201,27 +1241,27 @@ var Footer = ({
|
|
|
1201
1241
|
i
|
|
1202
1242
|
)) })
|
|
1203
1243
|
] }),
|
|
1204
|
-
aiSummary && /* @__PURE__ */
|
|
1205
|
-
/* @__PURE__ */
|
|
1206
|
-
/* @__PURE__ */
|
|
1244
|
+
aiSummary && /* @__PURE__ */ jsx18("div", { className: "footer__ai-section", children: /* @__PURE__ */ jsxs17("div", { className: "footer__ai-bar footer__ai-bar--block", children: [
|
|
1245
|
+
/* @__PURE__ */ jsx18("span", { className: "footer__ai-bar-label", children: aiLabel }),
|
|
1246
|
+
/* @__PURE__ */ jsx18("div", { className: "footer__ai-bar-icons", children: aiSummary.items.map((item, i) => /* @__PURE__ */ jsx18(
|
|
1207
1247
|
"a",
|
|
1208
1248
|
{
|
|
1209
1249
|
href: item.href,
|
|
1210
1250
|
"aria-label": item.imageAlt,
|
|
1211
1251
|
target: "_blank",
|
|
1212
1252
|
rel: "noopener noreferrer",
|
|
1213
|
-
children: /* @__PURE__ */
|
|
1253
|
+
children: /* @__PURE__ */ jsx18("img", { className: "footer__ai-icon", src: item.imageSrc, alt: item.imageAlt })
|
|
1214
1254
|
},
|
|
1215
1255
|
i
|
|
1216
1256
|
)) })
|
|
1217
1257
|
] }) }),
|
|
1218
|
-
/* @__PURE__ */
|
|
1219
|
-
navColumns.map((column, colIdx) => /* @__PURE__ */
|
|
1220
|
-
/* @__PURE__ */
|
|
1221
|
-
/* @__PURE__ */
|
|
1258
|
+
/* @__PURE__ */ jsxs17("div", { className: "footer__nav footer__nav--columns", children: [
|
|
1259
|
+
navColumns.map((column, colIdx) => /* @__PURE__ */ jsx18("div", { className: "footer__column", children: column.map((section, secIdx) => /* @__PURE__ */ jsxs17("div", { className: "footer__nav-section", children: [
|
|
1260
|
+
/* @__PURE__ */ jsx18("p", { className: "footer__nav-title", children: section.title }),
|
|
1261
|
+
/* @__PURE__ */ jsx18("ul", { className: "footer__nav-links", children: section.links.map((link, linkIdx) => /* @__PURE__ */ jsx18("li", { children: /* @__PURE__ */ jsx18(NavLink, { ...link }) }, linkIdx)) })
|
|
1222
1262
|
] }, secIdx)) }, colIdx)),
|
|
1223
|
-
/* @__PURE__ */
|
|
1224
|
-
investorsInPeopleSrc && /* @__PURE__ */
|
|
1263
|
+
/* @__PURE__ */ jsxs17("div", { className: "footer__sidebar", children: [
|
|
1264
|
+
investorsInPeopleSrc && /* @__PURE__ */ jsx18("div", { className: "footer__investors-card", children: /* @__PURE__ */ jsx18(
|
|
1225
1265
|
"img",
|
|
1226
1266
|
{
|
|
1227
1267
|
src: investorsInPeopleSrc,
|
|
@@ -1229,9 +1269,9 @@ var Footer = ({
|
|
|
1229
1269
|
className: "footer__investors-img"
|
|
1230
1270
|
}
|
|
1231
1271
|
) }),
|
|
1232
|
-
derivGo && /* @__PURE__ */
|
|
1233
|
-
/* @__PURE__ */
|
|
1234
|
-
/* @__PURE__ */
|
|
1272
|
+
derivGo && /* @__PURE__ */ jsxs17("div", { className: "footer__deriv-go-card", children: [
|
|
1273
|
+
/* @__PURE__ */ jsxs17("div", { className: "footer__deriv-go-header", children: [
|
|
1274
|
+
/* @__PURE__ */ jsx18(
|
|
1235
1275
|
"img",
|
|
1236
1276
|
{
|
|
1237
1277
|
src: derivGo.logoSrc,
|
|
@@ -1239,11 +1279,11 @@ var Footer = ({
|
|
|
1239
1279
|
className: "footer__deriv-go-logo"
|
|
1240
1280
|
}
|
|
1241
1281
|
),
|
|
1242
|
-
/* @__PURE__ */
|
|
1282
|
+
/* @__PURE__ */ jsx18("span", { className: "footer__deriv-go-title", children: derivGo.title ?? "Deriv GO" })
|
|
1243
1283
|
] }),
|
|
1244
|
-
/* @__PURE__ */
|
|
1245
|
-
(derivGo.qrCodeSrc || derivGo.qrCodeIcon) && /* @__PURE__ */
|
|
1246
|
-
derivGo.qrCodeIcon ? /* @__PURE__ */
|
|
1284
|
+
/* @__PURE__ */ jsx18("p", { className: "footer__deriv-go-desc", children: derivGo.description ?? "Trade multipliers on our mobile app." }),
|
|
1285
|
+
(derivGo.qrCodeSrc || derivGo.qrCodeIcon) && /* @__PURE__ */ jsxs17("div", { className: "footer__deriv-go-qr", children: [
|
|
1286
|
+
derivGo.qrCodeIcon ? /* @__PURE__ */ jsx18("div", { className: "footer__deriv-go-qr-icon", children: derivGo.qrCodeIcon }) : /* @__PURE__ */ jsx18(
|
|
1247
1287
|
"img",
|
|
1248
1288
|
{
|
|
1249
1289
|
src: derivGo.qrCodeSrc,
|
|
@@ -1251,9 +1291,9 @@ var Footer = ({
|
|
|
1251
1291
|
className: "footer__deriv-go-qr-img"
|
|
1252
1292
|
}
|
|
1253
1293
|
),
|
|
1254
|
-
/* @__PURE__ */
|
|
1294
|
+
/* @__PURE__ */ jsx18("span", { className: "footer__deriv-go-qr-label", children: derivGo.scanToDownloadLabel ?? "Scan to download" })
|
|
1255
1295
|
] }),
|
|
1256
|
-
/* @__PURE__ */
|
|
1296
|
+
/* @__PURE__ */ jsx18(
|
|
1257
1297
|
DerivGoBadges,
|
|
1258
1298
|
{
|
|
1259
1299
|
googlePlayBadge: derivGo.googlePlayBadge,
|
|
@@ -1265,9 +1305,9 @@ var Footer = ({
|
|
|
1265
1305
|
] })
|
|
1266
1306
|
] })
|
|
1267
1307
|
] }),
|
|
1268
|
-
/* @__PURE__ */
|
|
1308
|
+
/* @__PURE__ */ jsx18("div", { className: "footer__nav footer__nav--accordion", children: allSections.map((section, idx) => {
|
|
1269
1309
|
const isOpen = openSections.has(idx);
|
|
1270
|
-
return /* @__PURE__ */
|
|
1310
|
+
return /* @__PURE__ */ jsxs17(
|
|
1271
1311
|
"div",
|
|
1272
1312
|
{
|
|
1273
1313
|
className: [
|
|
@@ -1275,7 +1315,7 @@ var Footer = ({
|
|
|
1275
1315
|
isOpen && "footer__accordion-item--open"
|
|
1276
1316
|
].filter(Boolean).join(" "),
|
|
1277
1317
|
children: [
|
|
1278
|
-
/* @__PURE__ */
|
|
1318
|
+
/* @__PURE__ */ jsxs17(
|
|
1279
1319
|
"button",
|
|
1280
1320
|
{
|
|
1281
1321
|
type: "button",
|
|
@@ -1283,18 +1323,18 @@ var Footer = ({
|
|
|
1283
1323
|
onClick: () => toggleSection(idx),
|
|
1284
1324
|
"aria-expanded": isOpen,
|
|
1285
1325
|
children: [
|
|
1286
|
-
/* @__PURE__ */
|
|
1287
|
-
/* @__PURE__ */
|
|
1326
|
+
/* @__PURE__ */ jsx18("span", { className: "footer__accordion-label", children: section.title }),
|
|
1327
|
+
/* @__PURE__ */ jsx18("span", { className: "footer__accordion-chevron", children: /* @__PURE__ */ jsx18(ChevronDownIcon2, {}) })
|
|
1288
1328
|
]
|
|
1289
1329
|
}
|
|
1290
1330
|
),
|
|
1291
|
-
isOpen && /* @__PURE__ */
|
|
1331
|
+
isOpen && /* @__PURE__ */ jsx18("ul", { className: "footer__accordion-links", children: section.links.map((link, linkIdx) => /* @__PURE__ */ jsx18("li", { children: /* @__PURE__ */ jsx18(NavLink, { ...link }) }, linkIdx)) })
|
|
1292
1332
|
]
|
|
1293
1333
|
},
|
|
1294
1334
|
idx
|
|
1295
1335
|
);
|
|
1296
1336
|
}) }),
|
|
1297
|
-
socialLinks.length > 0 && /* @__PURE__ */
|
|
1337
|
+
socialLinks.length > 0 && /* @__PURE__ */ jsx18("div", { className: "footer__social footer__social--standalone", children: socialLinks.map((link, i) => /* @__PURE__ */ jsx18(
|
|
1298
1338
|
"a",
|
|
1299
1339
|
{
|
|
1300
1340
|
href: link.href,
|
|
@@ -1306,10 +1346,10 @@ var Footer = ({
|
|
|
1306
1346
|
},
|
|
1307
1347
|
i
|
|
1308
1348
|
)) }),
|
|
1309
|
-
derivGo && /* @__PURE__ */
|
|
1310
|
-
/* @__PURE__ */
|
|
1311
|
-
/* @__PURE__ */
|
|
1312
|
-
/* @__PURE__ */
|
|
1349
|
+
derivGo && /* @__PURE__ */ jsxs17("div", { className: "footer__deriv-go-banner", children: [
|
|
1350
|
+
/* @__PURE__ */ jsxs17("div", { className: "footer__deriv-go-banner-info", children: [
|
|
1351
|
+
/* @__PURE__ */ jsxs17("div", { className: "footer__deriv-go-header", children: [
|
|
1352
|
+
/* @__PURE__ */ jsx18(
|
|
1313
1353
|
"img",
|
|
1314
1354
|
{
|
|
1315
1355
|
src: derivGo.logoSrc,
|
|
@@ -1317,11 +1357,11 @@ var Footer = ({
|
|
|
1317
1357
|
className: "footer__deriv-go-logo"
|
|
1318
1358
|
}
|
|
1319
1359
|
),
|
|
1320
|
-
/* @__PURE__ */
|
|
1360
|
+
/* @__PURE__ */ jsx18("span", { className: "footer__deriv-go-title", children: derivGo.title ?? "Deriv GO" })
|
|
1321
1361
|
] }),
|
|
1322
|
-
/* @__PURE__ */
|
|
1362
|
+
/* @__PURE__ */ jsx18("p", { className: "footer__deriv-go-desc", children: derivGo.description ?? "Trade multipliers on our mobile app." })
|
|
1323
1363
|
] }),
|
|
1324
|
-
/* @__PURE__ */
|
|
1364
|
+
/* @__PURE__ */ jsx18("div", { className: "footer__deriv-go-banner-badges", children: /* @__PURE__ */ jsx18(
|
|
1325
1365
|
DerivGoBadges,
|
|
1326
1366
|
{
|
|
1327
1367
|
googlePlayBadge: derivGo.googlePlayBadge,
|
|
@@ -1331,11 +1371,11 @@ var Footer = ({
|
|
|
1331
1371
|
}
|
|
1332
1372
|
) })
|
|
1333
1373
|
] }),
|
|
1334
|
-
(licenseText || riskWarningText) && /* @__PURE__ */
|
|
1335
|
-
licenseText && /* @__PURE__ */
|
|
1336
|
-
riskWarningText && /* @__PURE__ */
|
|
1374
|
+
(licenseText || riskWarningText) && /* @__PURE__ */ jsxs17("div", { className: "footer__legal-block", children: [
|
|
1375
|
+
licenseText && /* @__PURE__ */ jsx18("div", { className: "footer__license", children: licenseText }),
|
|
1376
|
+
riskWarningText && /* @__PURE__ */ jsx18("div", { className: "footer__risk-warning", children: /* @__PURE__ */ jsx18("p", { className: "footer__risk-warning-text", children: riskWarningText }) })
|
|
1337
1377
|
] }),
|
|
1338
|
-
investorsInPeopleSrc && /* @__PURE__ */
|
|
1378
|
+
investorsInPeopleSrc && /* @__PURE__ */ jsx18("div", { className: "footer__investors-stacked", children: /* @__PURE__ */ jsx18(
|
|
1339
1379
|
"img",
|
|
1340
1380
|
{
|
|
1341
1381
|
src: investorsInPeopleSrc,
|
|
@@ -1349,12 +1389,13 @@ var Footer = ({
|
|
|
1349
1389
|
};
|
|
1350
1390
|
|
|
1351
1391
|
// templates/Hero/Hero.tsx
|
|
1352
|
-
import {
|
|
1392
|
+
import { useEffect as useEffect3, useRef as useRef3 } from "react";
|
|
1393
|
+
import { jsx as jsx19, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
1353
1394
|
var Visual = ({
|
|
1354
1395
|
src,
|
|
1355
1396
|
className,
|
|
1356
1397
|
alt = ""
|
|
1357
|
-
}) => /* @__PURE__ */
|
|
1398
|
+
}) => /* @__PURE__ */ jsx19("div", { className, children: typeof src === "string" ? /* @__PURE__ */ jsx19("img", { src, alt }) : src });
|
|
1358
1399
|
var Hero = ({
|
|
1359
1400
|
variant,
|
|
1360
1401
|
subtitle,
|
|
@@ -1366,17 +1407,52 @@ var Hero = ({
|
|
|
1366
1407
|
heroImage,
|
|
1367
1408
|
leftVisual,
|
|
1368
1409
|
rightVisual,
|
|
1410
|
+
productImage,
|
|
1411
|
+
floatingImage,
|
|
1369
1412
|
className,
|
|
1370
1413
|
...props
|
|
1371
1414
|
}) => {
|
|
1372
1415
|
const variantClass = `hero--${variant}`;
|
|
1373
|
-
const
|
|
1374
|
-
|
|
1375
|
-
|
|
1376
|
-
|
|
1416
|
+
const sectionRef = useRef3(null);
|
|
1417
|
+
const leftRef = useRef3(null);
|
|
1418
|
+
const rightRef = useRef3(null);
|
|
1419
|
+
useEffect3(() => {
|
|
1420
|
+
if (variant !== "visuals") return;
|
|
1421
|
+
if (window.matchMedia("(prefers-reduced-motion: reduce)").matches) return;
|
|
1422
|
+
const section = sectionRef.current;
|
|
1423
|
+
const leftEl = leftRef.current;
|
|
1424
|
+
const rightEl = rightRef.current;
|
|
1425
|
+
if (!section || !leftEl || !rightEl) return;
|
|
1426
|
+
const STRENGTH = 60;
|
|
1427
|
+
const onScroll = () => {
|
|
1428
|
+
const rect = section.getBoundingClientRect();
|
|
1429
|
+
const viewH = window.innerHeight;
|
|
1430
|
+
const progress = 1 - rect.bottom / (viewH + rect.height);
|
|
1431
|
+
const clamped = Math.max(0, Math.min(1, progress));
|
|
1432
|
+
const offset = (clamped - 0.5) * STRENGTH * 2;
|
|
1433
|
+
leftEl.style.transform = `translateY(${-offset}px)`;
|
|
1434
|
+
rightEl.style.transform = `translateY(${offset}px)`;
|
|
1435
|
+
};
|
|
1436
|
+
const scrollEl = (() => {
|
|
1437
|
+
let el = section.parentElement;
|
|
1438
|
+
while (el && el !== document.documentElement) {
|
|
1439
|
+
const { overflow, overflowY } = getComputedStyle(el);
|
|
1440
|
+
if (/auto|scroll/.test(overflow + overflowY)) return el;
|
|
1441
|
+
el = el.parentElement;
|
|
1442
|
+
}
|
|
1443
|
+
return window;
|
|
1444
|
+
})();
|
|
1445
|
+
scrollEl.addEventListener("scroll", onScroll, { passive: true });
|
|
1446
|
+
onScroll();
|
|
1447
|
+
return () => scrollEl.removeEventListener("scroll", onScroll);
|
|
1448
|
+
}, [variant]);
|
|
1449
|
+
const textBlock = /* @__PURE__ */ jsxs18("div", { className: "hero__text", children: [
|
|
1450
|
+
subtitle && /* @__PURE__ */ jsx19("p", { className: "hero__subtitle", children: subtitle }),
|
|
1451
|
+
/* @__PURE__ */ jsx19("h2", { className: "hero__title", children: title }),
|
|
1452
|
+
description && /* @__PURE__ */ jsx19("p", { className: "hero__description", children: description })
|
|
1377
1453
|
] });
|
|
1378
|
-
const buttonBlock = (primaryButton || secondaryButton) && /* @__PURE__ */
|
|
1379
|
-
primaryButton && (primaryButton.href ? /* @__PURE__ */
|
|
1454
|
+
const buttonBlock = (primaryButton || secondaryButton) && /* @__PURE__ */ jsxs18("div", { className: "hero__buttons", children: [
|
|
1455
|
+
primaryButton && (primaryButton.href ? /* @__PURE__ */ jsx19("a", { href: primaryButton.href, children: /* @__PURE__ */ jsx19(
|
|
1380
1456
|
Button,
|
|
1381
1457
|
{
|
|
1382
1458
|
colorScheme: "coral",
|
|
@@ -1384,7 +1460,7 @@ var Hero = ({
|
|
|
1384
1460
|
label: primaryButton.label,
|
|
1385
1461
|
onClick: primaryButton.onClick
|
|
1386
1462
|
}
|
|
1387
|
-
) }) : /* @__PURE__ */
|
|
1463
|
+
) }) : /* @__PURE__ */ jsx19(
|
|
1388
1464
|
Button,
|
|
1389
1465
|
{
|
|
1390
1466
|
colorScheme: "coral",
|
|
@@ -1393,7 +1469,7 @@ var Hero = ({
|
|
|
1393
1469
|
onClick: primaryButton.onClick
|
|
1394
1470
|
}
|
|
1395
1471
|
)),
|
|
1396
|
-
secondaryButton && (secondaryButton.href ? /* @__PURE__ */
|
|
1472
|
+
secondaryButton && (secondaryButton.href ? /* @__PURE__ */ jsx19("a", { href: secondaryButton.href, children: /* @__PURE__ */ jsx19(
|
|
1397
1473
|
Button,
|
|
1398
1474
|
{
|
|
1399
1475
|
colorScheme: "white",
|
|
@@ -1401,7 +1477,7 @@ var Hero = ({
|
|
|
1401
1477
|
label: secondaryButton.label,
|
|
1402
1478
|
onClick: secondaryButton.onClick
|
|
1403
1479
|
}
|
|
1404
|
-
) }) : /* @__PURE__ */
|
|
1480
|
+
) }) : /* @__PURE__ */ jsx19(
|
|
1405
1481
|
Button,
|
|
1406
1482
|
{
|
|
1407
1483
|
colorScheme: "white",
|
|
@@ -1411,23 +1487,16 @@ var Hero = ({
|
|
|
1411
1487
|
}
|
|
1412
1488
|
))
|
|
1413
1489
|
] });
|
|
1414
|
-
if (variant === "
|
|
1415
|
-
return /* @__PURE__ */
|
|
1490
|
+
if (variant === "split") {
|
|
1491
|
+
return /* @__PURE__ */ jsxs18(
|
|
1416
1492
|
"section",
|
|
1417
1493
|
{
|
|
1418
1494
|
className: ["hero", variantClass, className].filter(Boolean).join(" "),
|
|
1495
|
+
style: backgroundImageSrc ? { backgroundImage: `url(${backgroundImageSrc})` } : void 0,
|
|
1419
1496
|
...props,
|
|
1420
1497
|
children: [
|
|
1421
|
-
|
|
1422
|
-
|
|
1423
|
-
{
|
|
1424
|
-
src: backgroundImageSrc,
|
|
1425
|
-
alt: "",
|
|
1426
|
-
className: "hero__bg-image",
|
|
1427
|
-
"aria-hidden": "true"
|
|
1428
|
-
}
|
|
1429
|
-
),
|
|
1430
|
-
heroImage && /* @__PURE__ */ jsx18(
|
|
1498
|
+
/* @__PURE__ */ jsx19("div", { className: "hero__overlay", "aria-hidden": "true" }),
|
|
1499
|
+
heroImage && /* @__PURE__ */ jsx19(
|
|
1431
1500
|
Visual,
|
|
1432
1501
|
{
|
|
1433
1502
|
src: heroImage,
|
|
@@ -1435,65 +1504,193 @@ var Hero = ({
|
|
|
1435
1504
|
alt: ""
|
|
1436
1505
|
}
|
|
1437
1506
|
),
|
|
1438
|
-
/* @__PURE__ */
|
|
1439
|
-
|
|
1440
|
-
|
|
1441
|
-
|
|
1507
|
+
/* @__PURE__ */ jsx19("div", { className: "hero__inner", children: /* @__PURE__ */ jsx19("div", { className: "hero__content", children: /* @__PURE__ */ jsx19("div", { className: "hero__left", children: /* @__PURE__ */ jsxs18("div", { className: "hero__body", children: [
|
|
1508
|
+
/* @__PURE__ */ jsxs18("div", { className: "hero__text", children: [
|
|
1509
|
+
subtitle && /* @__PURE__ */ jsx19("p", { className: "hero__subtitle", children: subtitle }),
|
|
1510
|
+
/* @__PURE__ */ jsx19("h2", { className: "hero__title", children: title }),
|
|
1511
|
+
description && /* @__PURE__ */ jsx19("p", { className: "hero__description", children: description })
|
|
1512
|
+
] }),
|
|
1513
|
+
(primaryButton || secondaryButton) && /* @__PURE__ */ jsxs18("div", { className: "hero__buttons", children: [
|
|
1514
|
+
primaryButton && (primaryButton.href ? /* @__PURE__ */ jsx19("a", { href: primaryButton.href, children: /* @__PURE__ */ jsx19(
|
|
1515
|
+
Button,
|
|
1516
|
+
{
|
|
1517
|
+
colorScheme: "coral",
|
|
1518
|
+
variant: "primary",
|
|
1519
|
+
label: primaryButton.label,
|
|
1520
|
+
onClick: primaryButton.onClick
|
|
1521
|
+
}
|
|
1522
|
+
) }) : /* @__PURE__ */ jsx19(
|
|
1523
|
+
Button,
|
|
1524
|
+
{
|
|
1525
|
+
colorScheme: "coral",
|
|
1526
|
+
variant: "primary",
|
|
1527
|
+
label: primaryButton.label,
|
|
1528
|
+
onClick: primaryButton.onClick
|
|
1529
|
+
}
|
|
1530
|
+
)),
|
|
1531
|
+
secondaryButton && (secondaryButton.href ? /* @__PURE__ */ jsx19("a", { href: secondaryButton.href, children: /* @__PURE__ */ jsx19(
|
|
1532
|
+
Button,
|
|
1533
|
+
{
|
|
1534
|
+
colorScheme: "white",
|
|
1535
|
+
variant: "secondary",
|
|
1536
|
+
label: secondaryButton.label,
|
|
1537
|
+
onClick: secondaryButton.onClick
|
|
1538
|
+
}
|
|
1539
|
+
) }) : /* @__PURE__ */ jsx19(
|
|
1540
|
+
Button,
|
|
1541
|
+
{
|
|
1542
|
+
colorScheme: "white",
|
|
1543
|
+
variant: "secondary",
|
|
1544
|
+
label: secondaryButton.label,
|
|
1545
|
+
onClick: secondaryButton.onClick
|
|
1546
|
+
}
|
|
1547
|
+
))
|
|
1548
|
+
] })
|
|
1442
1549
|
] }) }) }) })
|
|
1443
1550
|
]
|
|
1444
1551
|
}
|
|
1445
1552
|
);
|
|
1446
1553
|
}
|
|
1447
|
-
if (variant === "
|
|
1448
|
-
return /* @__PURE__ */
|
|
1554
|
+
if (variant === "centered") {
|
|
1555
|
+
return /* @__PURE__ */ jsxs18(
|
|
1449
1556
|
"section",
|
|
1450
1557
|
{
|
|
1451
1558
|
className: ["hero", variantClass, className].filter(Boolean).join(" "),
|
|
1559
|
+
style: backgroundImageSrc ? { backgroundImage: `url(${backgroundImageSrc})` } : void 0,
|
|
1452
1560
|
...props,
|
|
1453
1561
|
children: [
|
|
1454
|
-
|
|
1455
|
-
|
|
1456
|
-
{
|
|
1457
|
-
|
|
1458
|
-
|
|
1459
|
-
className: "
|
|
1460
|
-
|
|
1461
|
-
|
|
1462
|
-
|
|
1463
|
-
|
|
1464
|
-
|
|
1465
|
-
|
|
1466
|
-
|
|
1467
|
-
|
|
1562
|
+
/* @__PURE__ */ jsx19("div", { className: "hero__overlay", "aria-hidden": "true" }),
|
|
1563
|
+
/* @__PURE__ */ jsx19("div", { className: "hero__inner", children: /* @__PURE__ */ jsxs18("div", { className: "hero__content", children: [
|
|
1564
|
+
/* @__PURE__ */ jsxs18("div", { className: "hero__text", children: [
|
|
1565
|
+
subtitle && /* @__PURE__ */ jsx19("p", { className: "hero__subtitle", children: subtitle }),
|
|
1566
|
+
/* @__PURE__ */ jsx19("h2", { className: "hero__title", children: title }),
|
|
1567
|
+
description && /* @__PURE__ */ jsx19("p", { className: "hero__description", children: description })
|
|
1568
|
+
] }),
|
|
1569
|
+
(primaryButton || secondaryButton) && /* @__PURE__ */ jsxs18("div", { className: "hero__buttons", children: [
|
|
1570
|
+
primaryButton && (primaryButton.href ? /* @__PURE__ */ jsx19("a", { href: primaryButton.href, children: /* @__PURE__ */ jsx19(
|
|
1571
|
+
Button,
|
|
1572
|
+
{
|
|
1573
|
+
colorScheme: "coral",
|
|
1574
|
+
variant: "primary",
|
|
1575
|
+
label: primaryButton.label,
|
|
1576
|
+
onClick: primaryButton.onClick
|
|
1577
|
+
}
|
|
1578
|
+
) }) : /* @__PURE__ */ jsx19(
|
|
1579
|
+
Button,
|
|
1580
|
+
{
|
|
1581
|
+
colorScheme: "coral",
|
|
1582
|
+
variant: "primary",
|
|
1583
|
+
label: primaryButton.label,
|
|
1584
|
+
onClick: primaryButton.onClick
|
|
1585
|
+
}
|
|
1586
|
+
)),
|
|
1587
|
+
secondaryButton && (secondaryButton.href ? /* @__PURE__ */ jsx19("a", { href: secondaryButton.href, children: /* @__PURE__ */ jsx19(
|
|
1588
|
+
Button,
|
|
1589
|
+
{
|
|
1590
|
+
colorScheme: "white",
|
|
1591
|
+
variant: "secondary",
|
|
1592
|
+
label: secondaryButton.label,
|
|
1593
|
+
onClick: secondaryButton.onClick
|
|
1594
|
+
}
|
|
1595
|
+
) }) : /* @__PURE__ */ jsx19(
|
|
1596
|
+
Button,
|
|
1597
|
+
{
|
|
1598
|
+
colorScheme: "white",
|
|
1599
|
+
variant: "secondary",
|
|
1600
|
+
label: secondaryButton.label,
|
|
1601
|
+
onClick: secondaryButton.onClick
|
|
1602
|
+
}
|
|
1603
|
+
))
|
|
1604
|
+
] })
|
|
1605
|
+
] }) })
|
|
1468
1606
|
]
|
|
1469
1607
|
}
|
|
1470
1608
|
);
|
|
1471
1609
|
}
|
|
1472
|
-
|
|
1610
|
+
if (variant === "showcase") {
|
|
1611
|
+
return /* @__PURE__ */ jsxs18(
|
|
1612
|
+
"section",
|
|
1613
|
+
{
|
|
1614
|
+
className: ["hero", variantClass, className].filter(Boolean).join(" "),
|
|
1615
|
+
style: backgroundImageSrc ? { backgroundImage: `url(${backgroundImageSrc})` } : void 0,
|
|
1616
|
+
...props,
|
|
1617
|
+
children: [
|
|
1618
|
+
/* @__PURE__ */ jsx19("div", { className: "hero__overlay", "aria-hidden": "true" }),
|
|
1619
|
+
/* @__PURE__ */ jsx19("div", { className: "hero__inner", children: /* @__PURE__ */ jsxs18("div", { className: "hero__content", children: [
|
|
1620
|
+
/* @__PURE__ */ jsxs18("div", { className: "hero__text", children: [
|
|
1621
|
+
subtitle && /* @__PURE__ */ jsx19("p", { className: "hero__subtitle", children: subtitle }),
|
|
1622
|
+
/* @__PURE__ */ jsx19("h2", { className: "hero__title", children: title }),
|
|
1623
|
+
description && /* @__PURE__ */ jsx19("p", { className: "hero__description", children: description })
|
|
1624
|
+
] }),
|
|
1625
|
+
(primaryButton || secondaryButton) && /* @__PURE__ */ jsxs18("div", { className: "hero__buttons", children: [
|
|
1626
|
+
primaryButton && (primaryButton.href ? /* @__PURE__ */ jsx19("a", { href: primaryButton.href, children: /* @__PURE__ */ jsx19(
|
|
1627
|
+
Button,
|
|
1628
|
+
{
|
|
1629
|
+
colorScheme: "coral",
|
|
1630
|
+
variant: "primary",
|
|
1631
|
+
label: primaryButton.label,
|
|
1632
|
+
onClick: primaryButton.onClick
|
|
1633
|
+
}
|
|
1634
|
+
) }) : /* @__PURE__ */ jsx19(
|
|
1635
|
+
Button,
|
|
1636
|
+
{
|
|
1637
|
+
colorScheme: "coral",
|
|
1638
|
+
variant: "primary",
|
|
1639
|
+
label: primaryButton.label,
|
|
1640
|
+
onClick: primaryButton.onClick
|
|
1641
|
+
}
|
|
1642
|
+
)),
|
|
1643
|
+
secondaryButton && (secondaryButton.href ? /* @__PURE__ */ jsx19("a", { href: secondaryButton.href, children: /* @__PURE__ */ jsx19(
|
|
1644
|
+
Button,
|
|
1645
|
+
{
|
|
1646
|
+
colorScheme: "white",
|
|
1647
|
+
variant: "secondary",
|
|
1648
|
+
label: secondaryButton.label,
|
|
1649
|
+
onClick: secondaryButton.onClick
|
|
1650
|
+
}
|
|
1651
|
+
) }) : /* @__PURE__ */ jsx19(
|
|
1652
|
+
Button,
|
|
1653
|
+
{
|
|
1654
|
+
colorScheme: "white",
|
|
1655
|
+
variant: "secondary",
|
|
1656
|
+
label: secondaryButton.label,
|
|
1657
|
+
onClick: secondaryButton.onClick
|
|
1658
|
+
}
|
|
1659
|
+
))
|
|
1660
|
+
] }),
|
|
1661
|
+
productImage && /* @__PURE__ */ jsx19(
|
|
1662
|
+
Visual,
|
|
1663
|
+
{
|
|
1664
|
+
src: productImage,
|
|
1665
|
+
className: "hero__product-image",
|
|
1666
|
+
alt: ""
|
|
1667
|
+
}
|
|
1668
|
+
),
|
|
1669
|
+
floatingImage && /* @__PURE__ */ jsx19(
|
|
1670
|
+
Visual,
|
|
1671
|
+
{
|
|
1672
|
+
src: floatingImage,
|
|
1673
|
+
className: "hero__floating-image",
|
|
1674
|
+
alt: ""
|
|
1675
|
+
}
|
|
1676
|
+
)
|
|
1677
|
+
] }) })
|
|
1678
|
+
]
|
|
1679
|
+
}
|
|
1680
|
+
);
|
|
1681
|
+
}
|
|
1682
|
+
return /* @__PURE__ */ jsxs18(
|
|
1473
1683
|
"section",
|
|
1474
1684
|
{
|
|
1685
|
+
ref: sectionRef,
|
|
1475
1686
|
className: ["hero", variantClass, className].filter(Boolean).join(" "),
|
|
1476
1687
|
...props,
|
|
1477
1688
|
children: [
|
|
1478
|
-
/* @__PURE__ */
|
|
1479
|
-
variant === "visuals" && leftVisual && /* @__PURE__ */
|
|
1480
|
-
|
|
1481
|
-
|
|
1482
|
-
|
|
1483
|
-
className: "hero__visual hero__visual--left",
|
|
1484
|
-
alt: ""
|
|
1485
|
-
}
|
|
1486
|
-
),
|
|
1487
|
-
variant === "visuals" && rightVisual && /* @__PURE__ */ jsx18(
|
|
1488
|
-
Visual,
|
|
1489
|
-
{
|
|
1490
|
-
src: rightVisual,
|
|
1491
|
-
className: "hero__visual hero__visual--right",
|
|
1492
|
-
alt: ""
|
|
1493
|
-
}
|
|
1494
|
-
),
|
|
1495
|
-
/* @__PURE__ */ jsx18("div", { className: "hero__overlay", "aria-hidden": "true" }),
|
|
1496
|
-
/* @__PURE__ */ jsx18("div", { className: "hero__inner", children: /* @__PURE__ */ jsx18("div", { className: "hero__content", children: /* @__PURE__ */ jsxs17("div", { className: "hero__body", children: [
|
|
1689
|
+
/* @__PURE__ */ jsx19("div", { className: "hero__grid", "aria-hidden": "true" }),
|
|
1690
|
+
variant === "visuals" && leftVisual && /* @__PURE__ */ jsx19("div", { ref: leftRef, className: "hero__visual hero__visual--left", children: typeof leftVisual === "string" ? /* @__PURE__ */ jsx19("img", { src: leftVisual, alt: "" }) : leftVisual }),
|
|
1691
|
+
variant === "visuals" && rightVisual && /* @__PURE__ */ jsx19("div", { ref: rightRef, className: "hero__visual hero__visual--right", children: typeof rightVisual === "string" ? /* @__PURE__ */ jsx19("img", { src: rightVisual, alt: "" }) : rightVisual }),
|
|
1692
|
+
/* @__PURE__ */ jsx19("div", { className: "hero__overlay", "aria-hidden": "true" }),
|
|
1693
|
+
/* @__PURE__ */ jsx19("div", { className: "hero__inner", children: /* @__PURE__ */ jsx19("div", { className: "hero__content", children: /* @__PURE__ */ jsxs18("div", { className: "hero__body", children: [
|
|
1497
1694
|
textBlock,
|
|
1498
1695
|
buttonBlock
|
|
1499
1696
|
] }) }) })
|
|
@@ -1503,8 +1700,8 @@ var Hero = ({
|
|
|
1503
1700
|
};
|
|
1504
1701
|
|
|
1505
1702
|
// templates/Stats/Stats.tsx
|
|
1506
|
-
import { useEffect as
|
|
1507
|
-
import { jsx as
|
|
1703
|
+
import { useEffect as useEffect4, useRef as useRef4, useState as useState6 } from "react";
|
|
1704
|
+
import { jsx as jsx20, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
1508
1705
|
var INTERVAL_MS = 2e3;
|
|
1509
1706
|
var TRANSITION = "transform 0.8s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1)";
|
|
1510
1707
|
function relativePos(index, active, total) {
|
|
@@ -1528,7 +1725,7 @@ function getStatStyle(rel) {
|
|
|
1528
1725
|
transition: TRANSITION
|
|
1529
1726
|
};
|
|
1530
1727
|
}
|
|
1531
|
-
var AwardBadge = ({ imageSrc, imageAlt = "" }) => /* @__PURE__ */
|
|
1728
|
+
var AwardBadge = ({ imageSrc, imageAlt = "" }) => /* @__PURE__ */ jsx20("div", { className: "stats__award", children: /* @__PURE__ */ jsx20("img", { src: imageSrc, alt: imageAlt, className: "stats__award-image" }) });
|
|
1532
1729
|
var Stats = ({
|
|
1533
1730
|
title,
|
|
1534
1731
|
description,
|
|
@@ -1539,11 +1736,11 @@ var Stats = ({
|
|
|
1539
1736
|
...props
|
|
1540
1737
|
}) => {
|
|
1541
1738
|
const [activeIndex, setActiveIndex] = useState6(0);
|
|
1542
|
-
const intervalRef =
|
|
1739
|
+
const intervalRef = useRef4(null);
|
|
1543
1740
|
const hasAwards = leftAwards.length > 0 || rightAwards.length > 0;
|
|
1544
1741
|
const allAwards = [...leftAwards, ...rightAwards];
|
|
1545
1742
|
const total = stats.length;
|
|
1546
|
-
|
|
1743
|
+
useEffect4(() => {
|
|
1547
1744
|
if (total <= 1) return;
|
|
1548
1745
|
intervalRef.current = setInterval(() => {
|
|
1549
1746
|
setActiveIndex((prev) => (prev + 1) % total);
|
|
@@ -1552,25 +1749,25 @@ var Stats = ({
|
|
|
1552
1749
|
if (intervalRef.current) clearInterval(intervalRef.current);
|
|
1553
1750
|
};
|
|
1554
1751
|
}, [total]);
|
|
1555
|
-
return /* @__PURE__ */
|
|
1752
|
+
return /* @__PURE__ */ jsx20(
|
|
1556
1753
|
"section",
|
|
1557
1754
|
{
|
|
1558
1755
|
className: ["stats", className].filter(Boolean).join(" "),
|
|
1559
1756
|
...props,
|
|
1560
|
-
children: /* @__PURE__ */
|
|
1561
|
-
/* @__PURE__ */
|
|
1562
|
-
/* @__PURE__ */
|
|
1563
|
-
description && /* @__PURE__ */
|
|
1757
|
+
children: /* @__PURE__ */ jsxs19("div", { className: "stats__inner", children: [
|
|
1758
|
+
/* @__PURE__ */ jsxs19("div", { className: "stats__header", children: [
|
|
1759
|
+
/* @__PURE__ */ jsx20("h2", { className: "stats__title", children: title }),
|
|
1760
|
+
description && /* @__PURE__ */ jsx20("p", { className: "stats__description", children: description })
|
|
1564
1761
|
] }),
|
|
1565
|
-
/* @__PURE__ */
|
|
1566
|
-
leftAwards.length > 0 && /* @__PURE__ */
|
|
1567
|
-
/* @__PURE__ */
|
|
1568
|
-
/* @__PURE__ */
|
|
1569
|
-
/* @__PURE__ */
|
|
1762
|
+
/* @__PURE__ */ jsxs19("div", { className: "stats__content", children: [
|
|
1763
|
+
leftAwards.length > 0 && /* @__PURE__ */ jsx20("div", { className: "stats__awards-col stats__awards-col--left", children: leftAwards.map((award, i) => /* @__PURE__ */ jsx20(AwardBadge, { ...award }, i)) }),
|
|
1764
|
+
/* @__PURE__ */ jsx20("div", { className: "stats__card", children: /* @__PURE__ */ jsxs19("div", { className: "stats__card-track", children: [
|
|
1765
|
+
/* @__PURE__ */ jsx20("div", { className: "stats__fade stats__fade--top", "aria-hidden": "true" }),
|
|
1766
|
+
/* @__PURE__ */ jsx20("div", { className: "stats__fade stats__fade--bottom", "aria-hidden": "true" }),
|
|
1570
1767
|
stats.map((stat, i) => {
|
|
1571
1768
|
const rel = relativePos(i, activeIndex, total);
|
|
1572
1769
|
const active = rel === 0;
|
|
1573
|
-
return /* @__PURE__ */
|
|
1770
|
+
return /* @__PURE__ */ jsxs19(
|
|
1574
1771
|
"div",
|
|
1575
1772
|
{
|
|
1576
1773
|
className: [
|
|
@@ -1580,27 +1777,92 @@ var Stats = ({
|
|
|
1580
1777
|
style: getStatStyle(rel),
|
|
1581
1778
|
"aria-hidden": !active,
|
|
1582
1779
|
children: [
|
|
1583
|
-
/* @__PURE__ */
|
|
1584
|
-
/* @__PURE__ */
|
|
1780
|
+
/* @__PURE__ */ jsx20("span", { className: "stats__stat-value", children: stat.value }),
|
|
1781
|
+
/* @__PURE__ */ jsx20("span", { className: "stats__stat-label", children: stat.label })
|
|
1585
1782
|
]
|
|
1586
1783
|
},
|
|
1587
1784
|
i
|
|
1588
1785
|
);
|
|
1589
1786
|
})
|
|
1590
1787
|
] }) }),
|
|
1591
|
-
rightAwards.length > 0 && /* @__PURE__ */
|
|
1592
|
-
hasAwards && /* @__PURE__ */
|
|
1788
|
+
rightAwards.length > 0 && /* @__PURE__ */ jsx20("div", { className: "stats__awards-col stats__awards-col--right", children: rightAwards.map((award, i) => /* @__PURE__ */ jsx20(AwardBadge, { ...award }, i)) }),
|
|
1789
|
+
hasAwards && /* @__PURE__ */ jsx20("div", { className: "stats__awards-mobile", children: allAwards.map((award, i) => /* @__PURE__ */ jsx20(AwardBadge, { ...award }, i)) })
|
|
1593
1790
|
] })
|
|
1594
1791
|
] })
|
|
1595
1792
|
}
|
|
1596
1793
|
);
|
|
1597
1794
|
};
|
|
1598
1795
|
|
|
1599
|
-
// templates/
|
|
1600
|
-
import {
|
|
1796
|
+
// templates/FeatureScroll/FeatureScroll.tsx
|
|
1797
|
+
import { useLayoutEffect, useRef as useRef6, useState as useState8 } from "react";
|
|
1798
|
+
|
|
1799
|
+
// components/DotLottieInView/DotLottieInView.tsx
|
|
1800
|
+
import { useEffect as useEffect5, useRef as useRef5, useState as useState7 } from "react";
|
|
1601
1801
|
import { DotLottieReact } from "@lottiefiles/dotlottie-react";
|
|
1602
|
-
import { jsx as
|
|
1603
|
-
|
|
1802
|
+
import { jsx as jsx21 } from "react/jsx-runtime";
|
|
1803
|
+
function DotLottieInView({
|
|
1804
|
+
enabled = true,
|
|
1805
|
+
rootMargin = "0px",
|
|
1806
|
+
threshold = 0.2,
|
|
1807
|
+
className,
|
|
1808
|
+
style,
|
|
1809
|
+
...dotProps
|
|
1810
|
+
}) {
|
|
1811
|
+
const wrapRef = useRef5(null);
|
|
1812
|
+
const [inView, setInView] = useState7(false);
|
|
1813
|
+
const [dotLottie, setDotLottie] = useState7(null);
|
|
1814
|
+
useEffect5(() => {
|
|
1815
|
+
const el = wrapRef.current;
|
|
1816
|
+
if (!el) return;
|
|
1817
|
+
const observer = new IntersectionObserver(
|
|
1818
|
+
([entry]) => {
|
|
1819
|
+
setInView(entry.isIntersecting);
|
|
1820
|
+
},
|
|
1821
|
+
{ root: null, rootMargin, threshold }
|
|
1822
|
+
);
|
|
1823
|
+
observer.observe(el);
|
|
1824
|
+
return () => observer.disconnect();
|
|
1825
|
+
}, [rootMargin, threshold]);
|
|
1826
|
+
useEffect5(() => {
|
|
1827
|
+
if (!dotLottie) return;
|
|
1828
|
+
if (!enabled || !inView) {
|
|
1829
|
+
dotLottie.stop();
|
|
1830
|
+
return;
|
|
1831
|
+
}
|
|
1832
|
+
dotLottie.stop();
|
|
1833
|
+
dotLottie.play();
|
|
1834
|
+
}, [dotLottie, enabled, inView]);
|
|
1835
|
+
return /* @__PURE__ */ jsx21(
|
|
1836
|
+
"div",
|
|
1837
|
+
{
|
|
1838
|
+
ref: wrapRef,
|
|
1839
|
+
className,
|
|
1840
|
+
style: {
|
|
1841
|
+
width: "100%",
|
|
1842
|
+
height: "100%",
|
|
1843
|
+
minHeight: 0,
|
|
1844
|
+
display: "flex",
|
|
1845
|
+
alignItems: "center",
|
|
1846
|
+
justifyContent: "center",
|
|
1847
|
+
backgroundColor: "transparent",
|
|
1848
|
+
...style
|
|
1849
|
+
},
|
|
1850
|
+
children: /* @__PURE__ */ jsx21(
|
|
1851
|
+
DotLottieReact,
|
|
1852
|
+
{
|
|
1853
|
+
...dotProps,
|
|
1854
|
+
loop: false,
|
|
1855
|
+
autoplay: false,
|
|
1856
|
+
dotLottieRefCallback: setDotLottie
|
|
1857
|
+
}
|
|
1858
|
+
)
|
|
1859
|
+
}
|
|
1860
|
+
);
|
|
1861
|
+
}
|
|
1862
|
+
|
|
1863
|
+
// templates/FeatureScroll/FeatureScroll.tsx
|
|
1864
|
+
import { jsx as jsx22, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
1865
|
+
var FEATURE_SCROLL_DATA = [
|
|
1604
1866
|
{
|
|
1605
1867
|
title: "Forex",
|
|
1606
1868
|
description: "Trade the most popular currency pairs with high leverage, tight spreads, and fast execution.",
|
|
@@ -1644,16 +1906,16 @@ var SCROLLYTELLING_DATA = [
|
|
|
1644
1906
|
mediaUrl: "https://cdn.prod.website-files.com/66fbaad381fa6866fa4991f3/675a9064f2c16e4e0732abfb_Stock%20Indices.lottie"
|
|
1645
1907
|
}
|
|
1646
1908
|
];
|
|
1647
|
-
var ChevronRight2 = () => /* @__PURE__ */
|
|
1909
|
+
var ChevronRight2 = () => /* @__PURE__ */ jsx22(
|
|
1648
1910
|
"svg",
|
|
1649
1911
|
{
|
|
1650
|
-
className: "
|
|
1912
|
+
className: "fs__item-link-icon",
|
|
1651
1913
|
width: "16",
|
|
1652
1914
|
height: "16",
|
|
1653
1915
|
viewBox: "0 0 16 16",
|
|
1654
1916
|
fill: "none",
|
|
1655
1917
|
"aria-hidden": "true",
|
|
1656
|
-
children: /* @__PURE__ */
|
|
1918
|
+
children: /* @__PURE__ */ jsx22(
|
|
1657
1919
|
"path",
|
|
1658
1920
|
{
|
|
1659
1921
|
d: "M6 3l5 5-5 5",
|
|
@@ -1671,16 +1933,15 @@ function resolveMediaType(item) {
|
|
|
1671
1933
|
}
|
|
1672
1934
|
var MediaRenderer = ({ item, active }) => {
|
|
1673
1935
|
if (resolveMediaType(item) === "lottie") {
|
|
1674
|
-
return /* @__PURE__ */
|
|
1675
|
-
|
|
1936
|
+
return /* @__PURE__ */ jsx22(
|
|
1937
|
+
DotLottieInView,
|
|
1676
1938
|
{
|
|
1677
1939
|
src: item.mediaUrl,
|
|
1678
|
-
|
|
1679
|
-
autoplay: active
|
|
1940
|
+
enabled: active
|
|
1680
1941
|
}
|
|
1681
1942
|
);
|
|
1682
1943
|
}
|
|
1683
|
-
return /* @__PURE__ */
|
|
1944
|
+
return /* @__PURE__ */ jsx22(
|
|
1684
1945
|
"img",
|
|
1685
1946
|
{
|
|
1686
1947
|
src: item.mediaUrl,
|
|
@@ -1689,87 +1950,121 @@ var MediaRenderer = ({ item, active }) => {
|
|
|
1689
1950
|
}
|
|
1690
1951
|
);
|
|
1691
1952
|
};
|
|
1692
|
-
var
|
|
1953
|
+
var FeatureScroll = ({
|
|
1693
1954
|
header,
|
|
1694
1955
|
items,
|
|
1695
1956
|
variant = "media-right",
|
|
1696
1957
|
className,
|
|
1697
1958
|
...props
|
|
1698
1959
|
}) => {
|
|
1699
|
-
const [activeIndex, setActiveIndex] =
|
|
1700
|
-
const
|
|
1701
|
-
|
|
1702
|
-
|
|
1703
|
-
if (
|
|
1704
|
-
const
|
|
1705
|
-
|
|
1706
|
-
|
|
1707
|
-
|
|
1708
|
-
|
|
1709
|
-
|
|
1710
|
-
|
|
1711
|
-
|
|
1712
|
-
|
|
1713
|
-
|
|
1714
|
-
|
|
1715
|
-
|
|
1716
|
-
|
|
1717
|
-
|
|
1718
|
-
|
|
1719
|
-
|
|
1720
|
-
|
|
1721
|
-
|
|
1960
|
+
const [activeIndex, setActiveIndex] = useState8(0);
|
|
1961
|
+
const titleRefs = useRef6([]);
|
|
1962
|
+
const mediaColRef = useRef6(null);
|
|
1963
|
+
useLayoutEffect(() => {
|
|
1964
|
+
if (items.length === 0) return;
|
|
1965
|
+
const readThresholdPx = () => {
|
|
1966
|
+
const col = mediaColRef.current;
|
|
1967
|
+
if (!col) return 80;
|
|
1968
|
+
const top = getComputedStyle(col).top;
|
|
1969
|
+
const px = parseFloat(top);
|
|
1970
|
+
return Number.isFinite(px) ? px : 80;
|
|
1971
|
+
};
|
|
1972
|
+
let rafId = 0;
|
|
1973
|
+
const tick = () => {
|
|
1974
|
+
rafId = 0;
|
|
1975
|
+
if (typeof window === "undefined") return;
|
|
1976
|
+
if (!window.matchMedia("(min-width: 992px)").matches) return;
|
|
1977
|
+
const threshold = readThresholdPx();
|
|
1978
|
+
const refs = titleRefs.current;
|
|
1979
|
+
let pinned = -1;
|
|
1980
|
+
for (let i = 0; i < items.length; i++) {
|
|
1981
|
+
const el = refs[i];
|
|
1982
|
+
if (!el) continue;
|
|
1983
|
+
if (el.getBoundingClientRect().top <= threshold) pinned = i;
|
|
1722
1984
|
}
|
|
1723
|
-
|
|
1724
|
-
|
|
1725
|
-
|
|
1985
|
+
const mediaIndex = Math.min(
|
|
1986
|
+
items.length - 1,
|
|
1987
|
+
pinned + 1
|
|
1988
|
+
);
|
|
1989
|
+
setActiveIndex(
|
|
1990
|
+
(prev) => prev === mediaIndex ? prev : mediaIndex
|
|
1991
|
+
);
|
|
1992
|
+
};
|
|
1993
|
+
const schedule = () => {
|
|
1994
|
+
if (rafId !== 0) return;
|
|
1995
|
+
rafId = window.requestAnimationFrame(tick);
|
|
1996
|
+
};
|
|
1997
|
+
tick();
|
|
1998
|
+
window.addEventListener("scroll", schedule, { passive: true });
|
|
1999
|
+
window.addEventListener("resize", schedule, { passive: true });
|
|
2000
|
+
const mq = window.matchMedia("(min-width: 992px)");
|
|
2001
|
+
mq.addEventListener("change", schedule);
|
|
2002
|
+
return () => {
|
|
2003
|
+
window.removeEventListener("scroll", schedule);
|
|
2004
|
+
window.removeEventListener("resize", schedule);
|
|
2005
|
+
mq.removeEventListener("change", schedule);
|
|
2006
|
+
if (rafId !== 0) window.cancelAnimationFrame(rafId);
|
|
2007
|
+
};
|
|
1726
2008
|
}, [items.length]);
|
|
1727
2009
|
const rootClass = [
|
|
1728
|
-
"
|
|
1729
|
-
`
|
|
2010
|
+
"fs",
|
|
2011
|
+
`fs--${variant}`,
|
|
1730
2012
|
className
|
|
1731
2013
|
].filter(Boolean).join(" ");
|
|
1732
|
-
|
|
1733
|
-
/* @__PURE__ */
|
|
1734
|
-
|
|
1735
|
-
|
|
2014
|
+
if (items.length === 0) {
|
|
2015
|
+
return /* @__PURE__ */ jsx22("section", { className: rootClass, ...props, children: /* @__PURE__ */ jsx22("div", { className: "fs__inner", children: /* @__PURE__ */ jsx22("h2", { className: "fs__header", children: header }) }) });
|
|
2016
|
+
}
|
|
2017
|
+
return /* @__PURE__ */ jsx22("section", { className: rootClass, ...props, children: /* @__PURE__ */ jsxs20("div", { className: "fs__inner", children: [
|
|
2018
|
+
/* @__PURE__ */ jsx22("h2", { className: "fs__header", children: header }),
|
|
2019
|
+
/* @__PURE__ */ jsxs20("div", { className: "fs__layout", children: [
|
|
2020
|
+
/* @__PURE__ */ jsx22("div", { className: "fs__media-col", "aria-hidden": "true", children: /* @__PURE__ */ jsx22(
|
|
1736
2021
|
"div",
|
|
1737
2022
|
{
|
|
1738
|
-
|
|
1739
|
-
|
|
1740
|
-
|
|
1741
|
-
|
|
1742
|
-
children: /* @__PURE__ */ jsx20(
|
|
1743
|
-
MediaRenderer,
|
|
2023
|
+
ref: mediaColRef,
|
|
2024
|
+
className: "fs__media-sticky",
|
|
2025
|
+
children: /* @__PURE__ */ jsx22("div", { className: "fs__media-wrap", children: items.map((item, i) => /* @__PURE__ */ jsx22(
|
|
2026
|
+
"div",
|
|
1744
2027
|
{
|
|
1745
|
-
|
|
1746
|
-
|
|
1747
|
-
|
|
1748
|
-
|
|
1749
|
-
|
|
1750
|
-
|
|
1751
|
-
|
|
1752
|
-
|
|
2028
|
+
className: [
|
|
2029
|
+
"fs__media-item",
|
|
2030
|
+
i === activeIndex ? "fs__media-item--active" : ""
|
|
2031
|
+
].filter(Boolean).join(" "),
|
|
2032
|
+
children: /* @__PURE__ */ jsx22(
|
|
2033
|
+
MediaRenderer,
|
|
2034
|
+
{
|
|
2035
|
+
item,
|
|
2036
|
+
active: i === activeIndex
|
|
2037
|
+
}
|
|
2038
|
+
)
|
|
2039
|
+
},
|
|
2040
|
+
i
|
|
2041
|
+
)) })
|
|
2042
|
+
}
|
|
2043
|
+
) }),
|
|
2044
|
+
/* @__PURE__ */ jsx22("div", { className: "fs__content-col", children: items.map((item, i) => /* @__PURE__ */ jsxs20(
|
|
1753
2045
|
"div",
|
|
1754
2046
|
{
|
|
1755
|
-
|
|
1756
|
-
itemRefs.current[i] = el;
|
|
1757
|
-
},
|
|
1758
|
-
className: [
|
|
1759
|
-
"scrolly__item",
|
|
1760
|
-
i === activeIndex ? "scrolly__item--active" : "scrolly__item--inactive"
|
|
1761
|
-
].join(" "),
|
|
2047
|
+
className: "fs__item",
|
|
1762
2048
|
children: [
|
|
1763
|
-
/* @__PURE__ */
|
|
1764
|
-
|
|
1765
|
-
|
|
2049
|
+
/* @__PURE__ */ jsx22(
|
|
2050
|
+
"h3",
|
|
2051
|
+
{
|
|
2052
|
+
ref: (el) => {
|
|
2053
|
+
titleRefs.current[i] = el;
|
|
2054
|
+
},
|
|
2055
|
+
className: "fs__item-title",
|
|
2056
|
+
children: item.title
|
|
2057
|
+
}
|
|
2058
|
+
),
|
|
2059
|
+
/* @__PURE__ */ jsx22("p", { className: "fs__item-desc", children: item.description }),
|
|
2060
|
+
/* @__PURE__ */ jsxs20(
|
|
1766
2061
|
"a",
|
|
1767
2062
|
{
|
|
1768
2063
|
href: item.link,
|
|
1769
|
-
className: "
|
|
2064
|
+
className: "fs__item-link",
|
|
1770
2065
|
children: [
|
|
1771
|
-
/* @__PURE__ */
|
|
1772
|
-
/* @__PURE__ */
|
|
2066
|
+
/* @__PURE__ */ jsx22("span", { children: item.linkLabel }),
|
|
2067
|
+
/* @__PURE__ */ jsx22(ChevronRight2, {})
|
|
1773
2068
|
]
|
|
1774
2069
|
}
|
|
1775
2070
|
)
|
|
@@ -1778,45 +2073,46 @@ var Scrollytelling = ({
|
|
|
1778
2073
|
i
|
|
1779
2074
|
)) })
|
|
1780
2075
|
] }),
|
|
1781
|
-
/* @__PURE__ */
|
|
1782
|
-
/* @__PURE__ */
|
|
1783
|
-
/* @__PURE__ */
|
|
1784
|
-
/* @__PURE__ */
|
|
2076
|
+
/* @__PURE__ */ jsx22("div", { className: "fs__mobile-list", children: items.map((item, i) => /* @__PURE__ */ jsxs20("div", { className: "fs__mobile-item", children: [
|
|
2077
|
+
/* @__PURE__ */ jsx22("h3", { className: "fs__item-title", children: item.title }),
|
|
2078
|
+
/* @__PURE__ */ jsx22("div", { className: "fs__mobile-media", children: /* @__PURE__ */ jsx22(MediaRenderer, { item, active: true }) }),
|
|
2079
|
+
/* @__PURE__ */ jsx22("p", { className: "fs__item-desc", children: item.description }),
|
|
2080
|
+
/* @__PURE__ */ jsxs20(
|
|
1785
2081
|
"a",
|
|
1786
2082
|
{
|
|
1787
2083
|
href: item.link,
|
|
1788
|
-
className: "
|
|
2084
|
+
className: "fs__item-link",
|
|
1789
2085
|
children: [
|
|
1790
|
-
/* @__PURE__ */
|
|
1791
|
-
/* @__PURE__ */
|
|
2086
|
+
/* @__PURE__ */ jsx22("span", { children: item.linkLabel }),
|
|
2087
|
+
/* @__PURE__ */ jsx22(ChevronRight2, {})
|
|
1792
2088
|
]
|
|
1793
2089
|
}
|
|
1794
|
-
)
|
|
1795
|
-
/* @__PURE__ */ jsx20("div", { className: "scrolly__mobile-media", children: /* @__PURE__ */ jsx20(MediaRenderer, { item, active: true }) })
|
|
2090
|
+
)
|
|
1796
2091
|
] }, i)) })
|
|
1797
2092
|
] }) });
|
|
1798
2093
|
};
|
|
1799
2094
|
|
|
1800
2095
|
// templates/StickyStackedCards/StickyStackedCards.tsx
|
|
1801
|
-
import { useEffect as
|
|
1802
|
-
import { jsx as
|
|
2096
|
+
import { useEffect as useEffect6, useRef as useRef7 } from "react";
|
|
2097
|
+
import { jsx as jsx23, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
2098
|
+
var PLACEHOLDER_IMAGE = "https://cdn.prod.website-files.com/68da5c86c91c54f39c86c28a/69b9309379ac08e59ca8210a_1f3f555da9a5cbb13a6fe1bf0d5fe1b6_placeholder-image.webp";
|
|
1803
2099
|
var STEPS_DATA = [
|
|
1804
2100
|
{
|
|
1805
|
-
title: "
|
|
1806
|
-
description: "
|
|
1807
|
-
imageUrl:
|
|
2101
|
+
title: "Title goes here",
|
|
2102
|
+
description: "Explain how this specific feature helps your user.",
|
|
2103
|
+
imageUrl: PLACEHOLDER_IMAGE,
|
|
1808
2104
|
theme: "light"
|
|
1809
2105
|
},
|
|
1810
2106
|
{
|
|
1811
|
-
title: "
|
|
1812
|
-
description: "
|
|
1813
|
-
imageUrl:
|
|
2107
|
+
title: "Title goes here",
|
|
2108
|
+
description: "Explain how this specific feature helps your user.",
|
|
2109
|
+
imageUrl: PLACEHOLDER_IMAGE,
|
|
1814
2110
|
theme: "coral"
|
|
1815
2111
|
},
|
|
1816
2112
|
{
|
|
1817
|
-
title: "
|
|
1818
|
-
description: "
|
|
1819
|
-
imageUrl:
|
|
2113
|
+
title: "Title goes here",
|
|
2114
|
+
description: "Explain how this specific feature helps your user.",
|
|
2115
|
+
imageUrl: PLACEHOLDER_IMAGE,
|
|
1820
2116
|
theme: "dark"
|
|
1821
2117
|
}
|
|
1822
2118
|
];
|
|
@@ -1827,8 +2123,8 @@ var StickyStackedCards = ({
|
|
|
1827
2123
|
className,
|
|
1828
2124
|
...props
|
|
1829
2125
|
}) => {
|
|
1830
|
-
const cardRefs =
|
|
1831
|
-
|
|
2126
|
+
const cardRefs = useRef7([]);
|
|
2127
|
+
useEffect6(() => {
|
|
1832
2128
|
if (typeof window === "undefined") return;
|
|
1833
2129
|
let rafId = 0;
|
|
1834
2130
|
const update = () => {
|
|
@@ -1862,14 +2158,14 @@ var StickyStackedCards = ({
|
|
|
1862
2158
|
cancelAnimationFrame(rafId);
|
|
1863
2159
|
};
|
|
1864
2160
|
}, [items.length]);
|
|
1865
|
-
return /* @__PURE__ */
|
|
2161
|
+
return /* @__PURE__ */ jsx23(
|
|
1866
2162
|
"section",
|
|
1867
2163
|
{
|
|
1868
2164
|
className: ["ssc", className].filter(Boolean).join(" "),
|
|
1869
2165
|
...props,
|
|
1870
|
-
children: /* @__PURE__ */
|
|
1871
|
-
/* @__PURE__ */
|
|
1872
|
-
/* @__PURE__ */
|
|
2166
|
+
children: /* @__PURE__ */ jsxs21("div", { className: "ssc__inner", children: [
|
|
2167
|
+
/* @__PURE__ */ jsx23("h2", { className: "ssc__header", children: header }),
|
|
2168
|
+
/* @__PURE__ */ jsx23("div", { className: "ssc__track", children: items.map((item, i) => /* @__PURE__ */ jsxs21(
|
|
1873
2169
|
"div",
|
|
1874
2170
|
{
|
|
1875
2171
|
ref: (el) => {
|
|
@@ -1895,11 +2191,11 @@ var StickyStackedCards = ({
|
|
|
1895
2191
|
top: `calc(var(--ssc-sticky-top) + ${i} * var(--ssc-peek-offset))`
|
|
1896
2192
|
},
|
|
1897
2193
|
children: [
|
|
1898
|
-
/* @__PURE__ */
|
|
1899
|
-
/* @__PURE__ */
|
|
1900
|
-
/* @__PURE__ */
|
|
2194
|
+
/* @__PURE__ */ jsxs21("div", { className: "ssc__card-content", children: [
|
|
2195
|
+
/* @__PURE__ */ jsx23("h3", { className: "ssc__card-title", children: item.title }),
|
|
2196
|
+
/* @__PURE__ */ jsx23("p", { className: "ssc__card-desc", children: item.description })
|
|
1901
2197
|
] }),
|
|
1902
|
-
/* @__PURE__ */
|
|
2198
|
+
/* @__PURE__ */ jsx23("div", { className: "ssc__card-image", children: /* @__PURE__ */ jsx23(
|
|
1903
2199
|
"img",
|
|
1904
2200
|
{
|
|
1905
2201
|
src: item.imageUrl,
|
|
@@ -1917,7 +2213,7 @@ var StickyStackedCards = ({
|
|
|
1917
2213
|
};
|
|
1918
2214
|
|
|
1919
2215
|
// templates/CTABanner/CTABanner.tsx
|
|
1920
|
-
import { useRef as
|
|
2216
|
+
import { useRef as useRef8 } from "react";
|
|
1921
2217
|
import {
|
|
1922
2218
|
motion,
|
|
1923
2219
|
useScroll,
|
|
@@ -1925,7 +2221,7 @@ import {
|
|
|
1925
2221
|
useTransform,
|
|
1926
2222
|
useMotionTemplate
|
|
1927
2223
|
} from "framer-motion";
|
|
1928
|
-
import { jsx as
|
|
2224
|
+
import { jsx as jsx24, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
1929
2225
|
var ENTRANCE = {
|
|
1930
2226
|
near: 80,
|
|
1931
2227
|
mid: 130,
|
|
@@ -2171,7 +2467,7 @@ var CTABanner = ({
|
|
|
2171
2467
|
...props
|
|
2172
2468
|
}) => {
|
|
2173
2469
|
const resolvedAvatars = avatars ?? (variant === "compact" ? COMPACT_AVATAR_DATA : AVATAR_DATA);
|
|
2174
|
-
const sectionRef =
|
|
2470
|
+
const sectionRef = useRef8(null);
|
|
2175
2471
|
const { scrollYProgress } = useScroll({
|
|
2176
2472
|
target: sectionRef,
|
|
2177
2473
|
offset: ["start end", "end start"]
|
|
@@ -2189,14 +2485,14 @@ var CTABanner = ({
|
|
|
2189
2485
|
const compactXValues = useCompactAvatarXValues(smooth);
|
|
2190
2486
|
const avatarYValues = variant === "compact" ? compactYValues : standardYValues;
|
|
2191
2487
|
const avatarXValues = variant === "compact" ? compactXValues : standardXValues;
|
|
2192
|
-
return /* @__PURE__ */
|
|
2488
|
+
return /* @__PURE__ */ jsxs22(
|
|
2193
2489
|
"section",
|
|
2194
2490
|
{
|
|
2195
2491
|
ref: sectionRef,
|
|
2196
2492
|
className: ["ctab", variant === "compact" ? "ctab--compact" : "", className].filter(Boolean).join(" "),
|
|
2197
2493
|
...props,
|
|
2198
2494
|
children: [
|
|
2199
|
-
/* @__PURE__ */
|
|
2495
|
+
/* @__PURE__ */ jsx24(
|
|
2200
2496
|
motion.div,
|
|
2201
2497
|
{
|
|
2202
2498
|
className: "ctab__grid",
|
|
@@ -2204,7 +2500,7 @@ var CTABanner = ({
|
|
|
2204
2500
|
"aria-hidden": "true"
|
|
2205
2501
|
}
|
|
2206
2502
|
),
|
|
2207
|
-
/* @__PURE__ */
|
|
2503
|
+
/* @__PURE__ */ jsx24("div", { className: "ctab__inner", children: /* @__PURE__ */ jsxs22("div", { className: "ctab__stage", children: [
|
|
2208
2504
|
resolvedAvatars.map((avatar, index) => {
|
|
2209
2505
|
const posStyle = {};
|
|
2210
2506
|
if (avatar.desktopPos.left) posStyle["--av-d-left"] = avatar.desktopPos.left;
|
|
@@ -2213,7 +2509,7 @@ var CTABanner = ({
|
|
|
2213
2509
|
if (avatar.mobilePos?.left) posStyle["--av-m-left"] = avatar.mobilePos.left;
|
|
2214
2510
|
if (avatar.mobilePos?.right) posStyle["--av-m-right"] = avatar.mobilePos.right;
|
|
2215
2511
|
if (avatar.mobilePos?.top) posStyle["--av-m-top"] = avatar.mobilePos.top;
|
|
2216
|
-
return /* @__PURE__ */
|
|
2512
|
+
return /* @__PURE__ */ jsx24(
|
|
2217
2513
|
motion.div,
|
|
2218
2514
|
{
|
|
2219
2515
|
className: [
|
|
@@ -2227,7 +2523,7 @@ var CTABanner = ({
|
|
|
2227
2523
|
opacity: avatarOpacity,
|
|
2228
2524
|
filter: avatarFilter
|
|
2229
2525
|
},
|
|
2230
|
-
children: /* @__PURE__ */
|
|
2526
|
+
children: /* @__PURE__ */ jsx24(
|
|
2231
2527
|
"img",
|
|
2232
2528
|
{
|
|
2233
2529
|
src: avatar.imageUrl,
|
|
@@ -2240,14 +2536,14 @@ var CTABanner = ({
|
|
|
2240
2536
|
avatar.id
|
|
2241
2537
|
);
|
|
2242
2538
|
}),
|
|
2243
|
-
/* @__PURE__ */
|
|
2539
|
+
/* @__PURE__ */ jsxs22(
|
|
2244
2540
|
motion.div,
|
|
2245
2541
|
{
|
|
2246
2542
|
className: "ctab__hero",
|
|
2247
2543
|
style: { y: heroY, opacity: heroOpacity },
|
|
2248
2544
|
children: [
|
|
2249
|
-
/* @__PURE__ */
|
|
2250
|
-
/* @__PURE__ */
|
|
2545
|
+
/* @__PURE__ */ jsx24("h2", { className: "ctab__headline", children: headline }),
|
|
2546
|
+
/* @__PURE__ */ jsx24("a", { href: ctaHref, children: /* @__PURE__ */ jsx24(Button, { colorScheme: "black", variant: "primary", label: ctaLabel }) })
|
|
2251
2547
|
]
|
|
2252
2548
|
}
|
|
2253
2549
|
)
|
|
@@ -2258,14 +2554,14 @@ var CTABanner = ({
|
|
|
2258
2554
|
};
|
|
2259
2555
|
|
|
2260
2556
|
// components/Navbar/Navbar.tsx
|
|
2261
|
-
import { useRef as
|
|
2557
|
+
import { useRef as useRef9, useState as useState9, useEffect as useEffect7, useCallback as useCallback2 } from "react";
|
|
2262
2558
|
import { motion as motion2, AnimatePresence } from "framer-motion";
|
|
2263
2559
|
|
|
2264
2560
|
// assets/icon-globe.svg
|
|
2265
2561
|
var icon_globe_default = "./icon-globe-S54WYYEK.svg";
|
|
2266
2562
|
|
|
2267
2563
|
// components/Navbar/Navbar.tsx
|
|
2268
|
-
import { jsx as
|
|
2564
|
+
import { jsx as jsx25, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
2269
2565
|
var EASE_OUT_EXPO = [0.16, 1, 0.3, 1];
|
|
2270
2566
|
var dropdownVariants = {
|
|
2271
2567
|
hidden: { opacity: 0, scale: 0.96, y: -8 },
|
|
@@ -2279,7 +2575,7 @@ var accordionVariants = {
|
|
|
2279
2575
|
hidden: { height: 0, opacity: 0 },
|
|
2280
2576
|
visible: { height: "auto", opacity: 1 }
|
|
2281
2577
|
};
|
|
2282
|
-
var ChevronDownIcon3 = ({ className }) => /* @__PURE__ */
|
|
2578
|
+
var ChevronDownIcon3 = ({ className }) => /* @__PURE__ */ jsx25(
|
|
2283
2579
|
"svg",
|
|
2284
2580
|
{
|
|
2285
2581
|
className,
|
|
@@ -2288,7 +2584,7 @@ var ChevronDownIcon3 = ({ className }) => /* @__PURE__ */ jsx23(
|
|
|
2288
2584
|
viewBox: "0 0 14 14",
|
|
2289
2585
|
fill: "none",
|
|
2290
2586
|
"aria-hidden": "true",
|
|
2291
|
-
children: /* @__PURE__ */
|
|
2587
|
+
children: /* @__PURE__ */ jsx25(
|
|
2292
2588
|
"path",
|
|
2293
2589
|
{
|
|
2294
2590
|
d: "M2.625 4.8125L7 9.1875L11.375 4.8125",
|
|
@@ -2300,7 +2596,7 @@ var ChevronDownIcon3 = ({ className }) => /* @__PURE__ */ jsx23(
|
|
|
2300
2596
|
)
|
|
2301
2597
|
}
|
|
2302
2598
|
);
|
|
2303
|
-
var ArrowRightIcon = () => /* @__PURE__ */
|
|
2599
|
+
var ArrowRightIcon = () => /* @__PURE__ */ jsx25("svg", { width: "14", height: "14", viewBox: "0 0 14 14", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsx25(
|
|
2304
2600
|
"path",
|
|
2305
2601
|
{
|
|
2306
2602
|
d: "M2.625 7H11.375M11.375 7L7.875 3.5M11.375 7L7.875 10.5",
|
|
@@ -2310,7 +2606,7 @@ var ArrowRightIcon = () => /* @__PURE__ */ jsx23("svg", { width: "14", height: "
|
|
|
2310
2606
|
strokeLinejoin: "round"
|
|
2311
2607
|
}
|
|
2312
2608
|
) });
|
|
2313
|
-
var ArrowUpRightIcon = () => /* @__PURE__ */
|
|
2609
|
+
var ArrowUpRightIcon = () => /* @__PURE__ */ jsx25("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsx25(
|
|
2314
2610
|
"path",
|
|
2315
2611
|
{
|
|
2316
2612
|
d: "M4.5 11.5L11.5 4.5M11.5 4.5H5.5M11.5 4.5V10.5",
|
|
@@ -2320,7 +2616,7 @@ var ArrowUpRightIcon = () => /* @__PURE__ */ jsx23("svg", { width: "16", height:
|
|
|
2320
2616
|
strokeLinejoin: "round"
|
|
2321
2617
|
}
|
|
2322
2618
|
) });
|
|
2323
|
-
var BarsIcon = () => /* @__PURE__ */
|
|
2619
|
+
var BarsIcon = () => /* @__PURE__ */ jsx25("svg", { width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsx25(
|
|
2324
2620
|
"path",
|
|
2325
2621
|
{
|
|
2326
2622
|
d: "M2.5 5H17.5M2.5 10H17.5M2.5 15H17.5",
|
|
@@ -2329,7 +2625,7 @@ var BarsIcon = () => /* @__PURE__ */ jsx23("svg", { width: "20", height: "20", v
|
|
|
2329
2625
|
strokeLinecap: "round"
|
|
2330
2626
|
}
|
|
2331
2627
|
) });
|
|
2332
|
-
var XMarkIcon2 = () => /* @__PURE__ */
|
|
2628
|
+
var XMarkIcon2 = () => /* @__PURE__ */ jsx25("svg", { width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsx25(
|
|
2333
2629
|
"path",
|
|
2334
2630
|
{
|
|
2335
2631
|
d: "M15 5L5 15M5 5L15 15",
|
|
@@ -2338,7 +2634,7 @@ var XMarkIcon2 = () => /* @__PURE__ */ jsx23("svg", { width: "20", height: "20",
|
|
|
2338
2634
|
strokeLinecap: "round"
|
|
2339
2635
|
}
|
|
2340
2636
|
) });
|
|
2341
|
-
var ChevronLeftIcon = ({ className }) => /* @__PURE__ */
|
|
2637
|
+
var ChevronLeftIcon = ({ className }) => /* @__PURE__ */ jsx25(
|
|
2342
2638
|
"svg",
|
|
2343
2639
|
{
|
|
2344
2640
|
className,
|
|
@@ -2347,7 +2643,7 @@ var ChevronLeftIcon = ({ className }) => /* @__PURE__ */ jsx23(
|
|
|
2347
2643
|
viewBox: "0 0 24 24",
|
|
2348
2644
|
fill: "none",
|
|
2349
2645
|
"aria-hidden": "true",
|
|
2350
|
-
children: /* @__PURE__ */
|
|
2646
|
+
children: /* @__PURE__ */ jsx25(
|
|
2351
2647
|
"path",
|
|
2352
2648
|
{
|
|
2353
2649
|
d: "M15 18L9 12L15 6",
|
|
@@ -2359,11 +2655,11 @@ var ChevronLeftIcon = ({ className }) => /* @__PURE__ */ jsx23(
|
|
|
2359
2655
|
)
|
|
2360
2656
|
}
|
|
2361
2657
|
);
|
|
2362
|
-
var GlobeIcon = ({ className }) => /* @__PURE__ */
|
|
2658
|
+
var GlobeIcon = ({ className }) => /* @__PURE__ */ jsx25("img", { src: icon_globe_default, alt: "", "aria-hidden": "true", width: "20", height: "20", className });
|
|
2363
2659
|
var DropdownPanel = ({ item, onMouseEnter, onMouseLeave }) => {
|
|
2364
2660
|
const { dropdown } = item;
|
|
2365
2661
|
if (!dropdown) return null;
|
|
2366
|
-
return /* @__PURE__ */
|
|
2662
|
+
return /* @__PURE__ */ jsx25(
|
|
2367
2663
|
motion2.div,
|
|
2368
2664
|
{
|
|
2369
2665
|
className: "navbar__dropdown",
|
|
@@ -2374,10 +2670,10 @@ var DropdownPanel = ({ item, onMouseEnter, onMouseLeave }) => {
|
|
|
2374
2670
|
transition: { duration: 0.18, ease: EASE_OUT_EXPO },
|
|
2375
2671
|
onMouseEnter,
|
|
2376
2672
|
onMouseLeave,
|
|
2377
|
-
children: /* @__PURE__ */
|
|
2378
|
-
/* @__PURE__ */
|
|
2379
|
-
/* @__PURE__ */
|
|
2380
|
-
section.items.map((link) => /* @__PURE__ */
|
|
2673
|
+
children: /* @__PURE__ */ jsxs23("div", { className: "navbar__dropdown-inner", children: [
|
|
2674
|
+
/* @__PURE__ */ jsx25("div", { className: "navbar__dropdown-left", children: dropdown.columns.map((col, colIdx) => /* @__PURE__ */ jsx25("div", { className: "navbar__dropdown-col", children: col.sections.map((section) => /* @__PURE__ */ jsxs23("div", { className: "navbar__dropdown-col-list", children: [
|
|
2675
|
+
/* @__PURE__ */ jsx25("p", { className: "navbar__dropdown-col-title", children: section.title }),
|
|
2676
|
+
section.items.map((link) => /* @__PURE__ */ jsxs23(
|
|
2381
2677
|
"a",
|
|
2382
2678
|
{
|
|
2383
2679
|
href: link.href,
|
|
@@ -2386,24 +2682,24 @@ var DropdownPanel = ({ item, onMouseEnter, onMouseLeave }) => {
|
|
|
2386
2682
|
rel: link.external ? "noopener noreferrer" : void 0,
|
|
2387
2683
|
children: [
|
|
2388
2684
|
link.label,
|
|
2389
|
-
link.external ? /* @__PURE__ */
|
|
2685
|
+
link.external ? /* @__PURE__ */ jsx25(ArrowUpRightIcon, {}) : /* @__PURE__ */ jsx25(ArrowRightIcon, {})
|
|
2390
2686
|
]
|
|
2391
2687
|
},
|
|
2392
2688
|
link.href
|
|
2393
2689
|
))
|
|
2394
2690
|
] }, section.title)) }, colIdx)) }),
|
|
2395
|
-
dropdown.feature && /* @__PURE__ */
|
|
2691
|
+
dropdown.feature && /* @__PURE__ */ jsx25("div", { className: "navbar__dropdown-right", children: /* @__PURE__ */ jsx25(FeatureCard, { feature: dropdown.feature }) })
|
|
2396
2692
|
] })
|
|
2397
2693
|
}
|
|
2398
2694
|
);
|
|
2399
2695
|
};
|
|
2400
|
-
var FeatureCard = ({ feature, mobile }) => /* @__PURE__ */
|
|
2696
|
+
var FeatureCard = ({ feature, mobile }) => /* @__PURE__ */ jsxs23(
|
|
2401
2697
|
"div",
|
|
2402
2698
|
{
|
|
2403
2699
|
className: mobile ? "navbar__drawer-feature" : "navbar__dropdown-feature",
|
|
2404
2700
|
style: feature.backgroundImageUrl ? { backgroundImage: `url(${feature.backgroundImageUrl})` } : void 0,
|
|
2405
2701
|
children: [
|
|
2406
|
-
feature.backgroundImageUrl && /* @__PURE__ */
|
|
2702
|
+
feature.backgroundImageUrl && /* @__PURE__ */ jsx25(
|
|
2407
2703
|
"img",
|
|
2408
2704
|
{
|
|
2409
2705
|
src: feature.backgroundImageUrl,
|
|
@@ -2412,20 +2708,20 @@ var FeatureCard = ({ feature, mobile }) => /* @__PURE__ */ jsxs22(
|
|
|
2412
2708
|
"aria-hidden": "true"
|
|
2413
2709
|
}
|
|
2414
2710
|
),
|
|
2415
|
-
/* @__PURE__ */
|
|
2416
|
-
/* @__PURE__ */
|
|
2417
|
-
/* @__PURE__ */
|
|
2418
|
-
/* @__PURE__ */
|
|
2419
|
-
/* @__PURE__ */
|
|
2711
|
+
/* @__PURE__ */ jsx25("div", { className: mobile ? "navbar__drawer-feature-overlay" : "navbar__dropdown-feature-overlay", "aria-hidden": "true" }),
|
|
2712
|
+
/* @__PURE__ */ jsxs23("div", { className: mobile ? "navbar__drawer-feature-content" : "navbar__dropdown-feature-content", children: [
|
|
2713
|
+
/* @__PURE__ */ jsxs23("div", { children: [
|
|
2714
|
+
/* @__PURE__ */ jsx25("p", { className: mobile ? "navbar__drawer-feature-title" : "navbar__dropdown-feature-title", children: feature.title }),
|
|
2715
|
+
/* @__PURE__ */ jsx25("p", { className: mobile ? "navbar__drawer-feature-desc" : "navbar__dropdown-feature-desc", children: feature.description })
|
|
2420
2716
|
] }),
|
|
2421
|
-
/* @__PURE__ */
|
|
2717
|
+
/* @__PURE__ */ jsxs23(
|
|
2422
2718
|
"a",
|
|
2423
2719
|
{
|
|
2424
2720
|
href: feature.ctaHref,
|
|
2425
2721
|
className: mobile ? "navbar__drawer-feature-cta" : "navbar__dropdown-feature-cta",
|
|
2426
2722
|
children: [
|
|
2427
2723
|
feature.ctaLabel,
|
|
2428
|
-
/* @__PURE__ */
|
|
2724
|
+
/* @__PURE__ */ jsx25(ArrowRightIcon, {})
|
|
2429
2725
|
]
|
|
2430
2726
|
}
|
|
2431
2727
|
)
|
|
@@ -2435,8 +2731,8 @@ var FeatureCard = ({ feature, mobile }) => /* @__PURE__ */ jsxs22(
|
|
|
2435
2731
|
);
|
|
2436
2732
|
var DrawerAccordion = ({ item, isOpen, onToggle }) => {
|
|
2437
2733
|
const { dropdown } = item;
|
|
2438
|
-
return /* @__PURE__ */
|
|
2439
|
-
/* @__PURE__ */
|
|
2734
|
+
return /* @__PURE__ */ jsxs23("div", { className: "navbar__drawer-item", children: [
|
|
2735
|
+
/* @__PURE__ */ jsxs23(
|
|
2440
2736
|
"button",
|
|
2441
2737
|
{
|
|
2442
2738
|
className: `navbar__drawer-trigger ${isOpen ? "navbar__drawer-trigger--open" : ""}`,
|
|
@@ -2444,11 +2740,11 @@ var DrawerAccordion = ({ item, isOpen, onToggle }) => {
|
|
|
2444
2740
|
"aria-expanded": isOpen,
|
|
2445
2741
|
children: [
|
|
2446
2742
|
item.label,
|
|
2447
|
-
/* @__PURE__ */
|
|
2743
|
+
/* @__PURE__ */ jsx25(ChevronDownIcon3, { className: "navbar__drawer-trigger__chevron" })
|
|
2448
2744
|
]
|
|
2449
2745
|
}
|
|
2450
2746
|
),
|
|
2451
|
-
/* @__PURE__ */
|
|
2747
|
+
/* @__PURE__ */ jsx25(AnimatePresence, { initial: false, children: isOpen && dropdown && /* @__PURE__ */ jsx25(
|
|
2452
2748
|
motion2.div,
|
|
2453
2749
|
{
|
|
2454
2750
|
className: "navbar__drawer-panel",
|
|
@@ -2457,10 +2753,10 @@ var DrawerAccordion = ({ item, isOpen, onToggle }) => {
|
|
|
2457
2753
|
animate: "visible",
|
|
2458
2754
|
exit: "hidden",
|
|
2459
2755
|
transition: { duration: 0.22, ease: EASE_OUT_EXPO },
|
|
2460
|
-
children: /* @__PURE__ */
|
|
2461
|
-
/* @__PURE__ */
|
|
2462
|
-
/* @__PURE__ */
|
|
2463
|
-
/* @__PURE__ */
|
|
2756
|
+
children: /* @__PURE__ */ jsxs23("div", { className: "navbar__drawer-panel-inner", children: [
|
|
2757
|
+
/* @__PURE__ */ jsx25("div", { className: "navbar__drawer-panel-cols", children: dropdown.columns.map((col, colIdx) => /* @__PURE__ */ jsx25("div", { className: "navbar__drawer-panel-col", children: col.sections.map((section) => /* @__PURE__ */ jsxs23("div", { className: "navbar__drawer-col-section", children: [
|
|
2758
|
+
/* @__PURE__ */ jsx25("p", { className: "navbar__drawer-col-title", children: section.title }),
|
|
2759
|
+
/* @__PURE__ */ jsx25("div", { className: "navbar__drawer-col-links", children: section.items.map((link) => /* @__PURE__ */ jsx25(
|
|
2464
2760
|
"a",
|
|
2465
2761
|
{
|
|
2466
2762
|
href: link.href,
|
|
@@ -2472,7 +2768,7 @@ var DrawerAccordion = ({ item, isOpen, onToggle }) => {
|
|
|
2472
2768
|
link.href
|
|
2473
2769
|
)) })
|
|
2474
2770
|
] }, section.title)) }, colIdx)) }),
|
|
2475
|
-
dropdown.feature && /* @__PURE__ */
|
|
2771
|
+
dropdown.feature && /* @__PURE__ */ jsx25(FeatureCard, { feature: dropdown.feature, mobile: true })
|
|
2476
2772
|
] })
|
|
2477
2773
|
}
|
|
2478
2774
|
) })
|
|
@@ -2496,24 +2792,24 @@ var Navbar = ({
|
|
|
2496
2792
|
className,
|
|
2497
2793
|
...props
|
|
2498
2794
|
}) => {
|
|
2499
|
-
const [openDropdown, setOpenDropdown] =
|
|
2500
|
-
const [mobileOpen, setMobileOpen] =
|
|
2501
|
-
const [mobileExpanded, setMobileExpanded] =
|
|
2502
|
-
const [scrolled, setScrolled] =
|
|
2503
|
-
const [langDropdownOpen, setLangDropdownOpen] =
|
|
2504
|
-
const [mobileLangOpen, setMobileLangOpen] =
|
|
2505
|
-
const hoverTimeoutRef =
|
|
2506
|
-
const langHoverTimeoutRef =
|
|
2507
|
-
const pillAreaRef =
|
|
2508
|
-
const langBtnRef =
|
|
2795
|
+
const [openDropdown, setOpenDropdown] = useState9(null);
|
|
2796
|
+
const [mobileOpen, setMobileOpen] = useState9(false);
|
|
2797
|
+
const [mobileExpanded, setMobileExpanded] = useState9(null);
|
|
2798
|
+
const [scrolled, setScrolled] = useState9(false);
|
|
2799
|
+
const [langDropdownOpen, setLangDropdownOpen] = useState9(false);
|
|
2800
|
+
const [mobileLangOpen, setMobileLangOpen] = useState9(false);
|
|
2801
|
+
const hoverTimeoutRef = useRef9(null);
|
|
2802
|
+
const langHoverTimeoutRef = useRef9(null);
|
|
2803
|
+
const pillAreaRef = useRef9(null);
|
|
2804
|
+
const langBtnRef = useRef9(null);
|
|
2509
2805
|
const hasLangDropdown = Boolean(languageItems && languageItems.length > 0);
|
|
2510
2806
|
const resolvedLogo = theme === "light" ? logoSrcDark ?? logoSrc : logoSrc;
|
|
2511
|
-
|
|
2807
|
+
useEffect7(() => {
|
|
2512
2808
|
const onScroll = () => setScrolled(window.scrollY > 0);
|
|
2513
2809
|
window.addEventListener("scroll", onScroll, { passive: true });
|
|
2514
2810
|
return () => window.removeEventListener("scroll", onScroll);
|
|
2515
2811
|
}, []);
|
|
2516
|
-
|
|
2812
|
+
useEffect7(() => {
|
|
2517
2813
|
const onKey = (e) => {
|
|
2518
2814
|
if (e.key === "Escape") {
|
|
2519
2815
|
setOpenDropdown(null);
|
|
@@ -2524,16 +2820,16 @@ var Navbar = ({
|
|
|
2524
2820
|
document.addEventListener("keydown", onKey);
|
|
2525
2821
|
return () => document.removeEventListener("keydown", onKey);
|
|
2526
2822
|
}, []);
|
|
2527
|
-
|
|
2823
|
+
useEffect7(() => {
|
|
2528
2824
|
if (!mobileOpen) setMobileLangOpen(false);
|
|
2529
2825
|
}, [mobileOpen]);
|
|
2530
|
-
|
|
2826
|
+
useEffect7(() => {
|
|
2531
2827
|
document.body.style.overflow = mobileOpen ? "hidden" : "";
|
|
2532
2828
|
return () => {
|
|
2533
2829
|
document.body.style.overflow = "";
|
|
2534
2830
|
};
|
|
2535
2831
|
}, [mobileOpen]);
|
|
2536
|
-
|
|
2832
|
+
useEffect7(() => {
|
|
2537
2833
|
if (!openDropdown) return;
|
|
2538
2834
|
const onPointerDown = (e) => {
|
|
2539
2835
|
if (pillAreaRef.current && !pillAreaRef.current.contains(e.target)) {
|
|
@@ -2577,20 +2873,20 @@ var Navbar = ({
|
|
|
2577
2873
|
hoverTimeoutRef.current = setTimeout(() => setOpenDropdown(null), 120);
|
|
2578
2874
|
}, [clearHoverTimeout]);
|
|
2579
2875
|
const activeDropdownItem = navItems.find((item) => item.label === openDropdown);
|
|
2580
|
-
return /* @__PURE__ */
|
|
2876
|
+
return /* @__PURE__ */ jsxs23(
|
|
2581
2877
|
"nav",
|
|
2582
2878
|
{
|
|
2583
2879
|
className: ["navbar", `navbar--${theme}`, scrolled && "navbar--scrolled", mobileOpen && "navbar--menu-open", className].filter(Boolean).join(" "),
|
|
2584
2880
|
...props,
|
|
2585
2881
|
children: [
|
|
2586
|
-
/* @__PURE__ */
|
|
2587
|
-
/* @__PURE__ */
|
|
2588
|
-
/* @__PURE__ */
|
|
2589
|
-
/* @__PURE__ */
|
|
2590
|
-
/* @__PURE__ */
|
|
2882
|
+
/* @__PURE__ */ jsxs23("div", { className: "navbar__bar", children: [
|
|
2883
|
+
/* @__PURE__ */ jsx25("a", { href: logoHref, className: "navbar__logo", "aria-label": "Home", children: /* @__PURE__ */ jsx25("img", { src: resolvedLogo, alt: "Logo" }) }),
|
|
2884
|
+
/* @__PURE__ */ jsx25("div", { className: "navbar__nav-center", ref: pillAreaRef, children: /* @__PURE__ */ jsxs23("div", { className: "navbar__pill", children: [
|
|
2885
|
+
/* @__PURE__ */ jsx25("a", { href: logoHref, className: "navbar__pill-logo", "aria-label": "Home", children: /* @__PURE__ */ jsx25("img", { src: logoSrcDark ?? logoSrc, alt: "Logo" }) }),
|
|
2886
|
+
/* @__PURE__ */ jsxs23("div", { className: "navbar__nav-group", children: [
|
|
2591
2887
|
navItems.map((item) => {
|
|
2592
2888
|
if (item.external) {
|
|
2593
|
-
return /* @__PURE__ */
|
|
2889
|
+
return /* @__PURE__ */ jsxs23(
|
|
2594
2890
|
"a",
|
|
2595
2891
|
{
|
|
2596
2892
|
href: item.href,
|
|
@@ -2599,14 +2895,14 @@ var Navbar = ({
|
|
|
2599
2895
|
rel: "noopener noreferrer",
|
|
2600
2896
|
children: [
|
|
2601
2897
|
item.label,
|
|
2602
|
-
/* @__PURE__ */
|
|
2898
|
+
/* @__PURE__ */ jsx25(ArrowUpRightIcon, {})
|
|
2603
2899
|
]
|
|
2604
2900
|
},
|
|
2605
2901
|
item.label
|
|
2606
2902
|
);
|
|
2607
2903
|
}
|
|
2608
2904
|
if (item.dropdown) {
|
|
2609
|
-
return /* @__PURE__ */
|
|
2905
|
+
return /* @__PURE__ */ jsxs23(
|
|
2610
2906
|
"button",
|
|
2611
2907
|
{
|
|
2612
2908
|
className: [
|
|
@@ -2619,21 +2915,21 @@ var Navbar = ({
|
|
|
2619
2915
|
"aria-haspopup": "true",
|
|
2620
2916
|
children: [
|
|
2621
2917
|
item.label,
|
|
2622
|
-
/* @__PURE__ */
|
|
2918
|
+
/* @__PURE__ */ jsx25(ChevronDownIcon3, { className: "navbar__nav-item__chevron" })
|
|
2623
2919
|
]
|
|
2624
2920
|
},
|
|
2625
2921
|
item.label
|
|
2626
2922
|
);
|
|
2627
2923
|
}
|
|
2628
|
-
return /* @__PURE__ */
|
|
2924
|
+
return /* @__PURE__ */ jsx25("a", { href: item.href, className: "navbar__nav-item", children: item.label }, item.label);
|
|
2629
2925
|
}),
|
|
2630
|
-
languageLabel && /* @__PURE__ */
|
|
2926
|
+
languageLabel && /* @__PURE__ */ jsx25(
|
|
2631
2927
|
"div",
|
|
2632
2928
|
{
|
|
2633
2929
|
className: "navbar__lang-wrapper",
|
|
2634
2930
|
onMouseEnter: hasLangDropdown ? handleLangEnter : void 0,
|
|
2635
2931
|
onMouseLeave: hasLangDropdown ? handleLangLeave : void 0,
|
|
2636
|
-
children: /* @__PURE__ */
|
|
2932
|
+
children: /* @__PURE__ */ jsxs23(
|
|
2637
2933
|
"button",
|
|
2638
2934
|
{
|
|
2639
2935
|
ref: langBtnRef,
|
|
@@ -2642,7 +2938,7 @@ var Navbar = ({
|
|
|
2642
2938
|
"aria-haspopup": hasLangDropdown ? "true" : void 0,
|
|
2643
2939
|
"aria-expanded": hasLangDropdown ? langDropdownOpen : void 0,
|
|
2644
2940
|
children: [
|
|
2645
|
-
/* @__PURE__ */
|
|
2941
|
+
/* @__PURE__ */ jsx25(GlobeIcon, { className: "navbar__lang-globe" }),
|
|
2646
2942
|
languageLabel
|
|
2647
2943
|
]
|
|
2648
2944
|
}
|
|
@@ -2650,12 +2946,12 @@ var Navbar = ({
|
|
|
2650
2946
|
}
|
|
2651
2947
|
)
|
|
2652
2948
|
] }),
|
|
2653
|
-
/* @__PURE__ */
|
|
2654
|
-
loginHref && /* @__PURE__ */
|
|
2655
|
-
ctaHref && /* @__PURE__ */
|
|
2949
|
+
/* @__PURE__ */ jsxs23("div", { className: "navbar__pill-actions", children: [
|
|
2950
|
+
loginHref && /* @__PURE__ */ jsx25("a", { href: loginHref, children: /* @__PURE__ */ jsx25(Button, { colorScheme: "black", variant: "secondary", label: loginLabel }) }),
|
|
2951
|
+
ctaHref && /* @__PURE__ */ jsx25("a", { href: ctaHref, children: /* @__PURE__ */ jsx25(Button, { colorScheme: "coral", variant: "primary", label: ctaLabel }) })
|
|
2656
2952
|
] })
|
|
2657
2953
|
] }) }),
|
|
2658
|
-
/* @__PURE__ */
|
|
2954
|
+
/* @__PURE__ */ jsx25(AnimatePresence, { children: openDropdown && activeDropdownItem?.dropdown && /* @__PURE__ */ jsx25(
|
|
2659
2955
|
DropdownPanel,
|
|
2660
2956
|
{
|
|
2661
2957
|
item: activeDropdownItem,
|
|
@@ -2664,7 +2960,7 @@ var Navbar = ({
|
|
|
2664
2960
|
},
|
|
2665
2961
|
"dropdown"
|
|
2666
2962
|
) }),
|
|
2667
|
-
/* @__PURE__ */
|
|
2963
|
+
/* @__PURE__ */ jsx25(AnimatePresence, { children: hasLangDropdown && langDropdownOpen && /* @__PURE__ */ jsx25(
|
|
2668
2964
|
motion2.div,
|
|
2669
2965
|
{
|
|
2670
2966
|
className: "navbar__lang-dropdown",
|
|
@@ -2675,12 +2971,12 @@ var Navbar = ({
|
|
|
2675
2971
|
transition: { duration: 0.18, ease: EASE_OUT_EXPO },
|
|
2676
2972
|
onMouseEnter: clearLangHoverTimeout,
|
|
2677
2973
|
onMouseLeave: handleLangLeave,
|
|
2678
|
-
children: /* @__PURE__ */
|
|
2974
|
+
children: /* @__PURE__ */ jsx25(
|
|
2679
2975
|
"div",
|
|
2680
2976
|
{
|
|
2681
2977
|
className: "navbar__lang-dropdown-grid",
|
|
2682
2978
|
style: { "--lang-rows": Math.ceil(languageItems.length / 3) },
|
|
2683
|
-
children: languageItems.map((lang) => /* @__PURE__ */
|
|
2979
|
+
children: languageItems.map((lang) => /* @__PURE__ */ jsx25(
|
|
2684
2980
|
"button",
|
|
2685
2981
|
{
|
|
2686
2982
|
className: [
|
|
@@ -2696,8 +2992,8 @@ var Navbar = ({
|
|
|
2696
2992
|
)
|
|
2697
2993
|
}
|
|
2698
2994
|
) }),
|
|
2699
|
-
/* @__PURE__ */
|
|
2700
|
-
loginHref && /* @__PURE__ */
|
|
2995
|
+
/* @__PURE__ */ jsxs23("div", { className: "navbar__actions", children: [
|
|
2996
|
+
loginHref && /* @__PURE__ */ jsx25("a", { href: loginHref, className: "navbar__actions-login", children: /* @__PURE__ */ jsx25(
|
|
2701
2997
|
Button,
|
|
2702
2998
|
{
|
|
2703
2999
|
colorScheme: theme === "dark" ? "white" : "black",
|
|
@@ -2705,10 +3001,10 @@ var Navbar = ({
|
|
|
2705
3001
|
label: loginLabel
|
|
2706
3002
|
}
|
|
2707
3003
|
) }),
|
|
2708
|
-
ctaHref && /* @__PURE__ */
|
|
3004
|
+
ctaHref && /* @__PURE__ */ jsx25("a", { href: ctaHref, children: /* @__PURE__ */ jsx25(Button, { colorScheme: "coral", variant: "primary", label: ctaLabel }) })
|
|
2709
3005
|
] }),
|
|
2710
|
-
/* @__PURE__ */
|
|
2711
|
-
loginHref && /* @__PURE__ */
|
|
3006
|
+
/* @__PURE__ */ jsxs23("div", { className: "navbar__mobile-actions", children: [
|
|
3007
|
+
loginHref && /* @__PURE__ */ jsx25("a", { href: loginHref, children: /* @__PURE__ */ jsx25(
|
|
2712
3008
|
Button,
|
|
2713
3009
|
{
|
|
2714
3010
|
colorScheme: scrolled || theme === "light" ? "black" : "white",
|
|
@@ -2716,18 +3012,18 @@ var Navbar = ({
|
|
|
2716
3012
|
label: loginLabel
|
|
2717
3013
|
}
|
|
2718
3014
|
) }),
|
|
2719
|
-
/* @__PURE__ */
|
|
3015
|
+
/* @__PURE__ */ jsx25(
|
|
2720
3016
|
"button",
|
|
2721
3017
|
{
|
|
2722
3018
|
className: "navbar__mobile-trigger",
|
|
2723
3019
|
onClick: () => setMobileOpen((o) => !o),
|
|
2724
3020
|
"aria-label": mobileOpen ? "Close navigation menu" : "Open navigation menu",
|
|
2725
|
-
children: mobileOpen ? /* @__PURE__ */
|
|
3021
|
+
children: mobileOpen ? /* @__PURE__ */ jsx25(XMarkIcon2, {}) : /* @__PURE__ */ jsx25(BarsIcon, {})
|
|
2726
3022
|
}
|
|
2727
3023
|
)
|
|
2728
3024
|
] })
|
|
2729
3025
|
] }),
|
|
2730
|
-
/* @__PURE__ */
|
|
3026
|
+
/* @__PURE__ */ jsx25("div", { className: "navbar__drawer-clip", children: /* @__PURE__ */ jsx25(AnimatePresence, { children: mobileOpen && /* @__PURE__ */ jsxs23(
|
|
2731
3027
|
motion2.div,
|
|
2732
3028
|
{
|
|
2733
3029
|
className: "navbar__drawer",
|
|
@@ -2740,10 +3036,10 @@ var Navbar = ({
|
|
|
2740
3036
|
role: "dialog",
|
|
2741
3037
|
"aria-label": "Navigation menu",
|
|
2742
3038
|
children: [
|
|
2743
|
-
/* @__PURE__ */
|
|
3039
|
+
/* @__PURE__ */ jsxs23("nav", { className: "navbar__drawer-nav", children: [
|
|
2744
3040
|
navItems.map((item) => {
|
|
2745
3041
|
if (item.dropdown) {
|
|
2746
|
-
return /* @__PURE__ */
|
|
3042
|
+
return /* @__PURE__ */ jsx25(
|
|
2747
3043
|
DrawerAccordion,
|
|
2748
3044
|
{
|
|
2749
3045
|
item,
|
|
@@ -2755,7 +3051,7 @@ var Navbar = ({
|
|
|
2755
3051
|
item.label
|
|
2756
3052
|
);
|
|
2757
3053
|
}
|
|
2758
|
-
return /* @__PURE__ */
|
|
3054
|
+
return /* @__PURE__ */ jsxs23(
|
|
2759
3055
|
"a",
|
|
2760
3056
|
{
|
|
2761
3057
|
href: item.href,
|
|
@@ -2764,30 +3060,30 @@ var Navbar = ({
|
|
|
2764
3060
|
rel: item.external ? "noopener noreferrer" : void 0,
|
|
2765
3061
|
children: [
|
|
2766
3062
|
item.label,
|
|
2767
|
-
item.external && /* @__PURE__ */
|
|
3063
|
+
item.external && /* @__PURE__ */ jsx25(ArrowUpRightIcon, {})
|
|
2768
3064
|
]
|
|
2769
3065
|
},
|
|
2770
3066
|
item.label
|
|
2771
3067
|
);
|
|
2772
3068
|
}),
|
|
2773
|
-
languageLabel && !hasLangDropdown && /* @__PURE__ */
|
|
2774
|
-
/* @__PURE__ */
|
|
3069
|
+
languageLabel && !hasLangDropdown && /* @__PURE__ */ jsxs23("button", { className: "navbar__drawer-lang", onClick: onLanguageClick, children: [
|
|
3070
|
+
/* @__PURE__ */ jsx25(GlobeIcon, { className: "navbar__lang-globe" }),
|
|
2775
3071
|
languageLabel
|
|
2776
3072
|
] }),
|
|
2777
|
-
languageLabel && hasLangDropdown && /* @__PURE__ */
|
|
3073
|
+
languageLabel && hasLangDropdown && /* @__PURE__ */ jsxs23(
|
|
2778
3074
|
"button",
|
|
2779
3075
|
{
|
|
2780
3076
|
className: "navbar__drawer-lang",
|
|
2781
3077
|
onClick: () => setMobileLangOpen(true),
|
|
2782
3078
|
children: [
|
|
2783
|
-
/* @__PURE__ */
|
|
3079
|
+
/* @__PURE__ */ jsx25(GlobeIcon, { className: "navbar__lang-globe" }),
|
|
2784
3080
|
languageLabel
|
|
2785
3081
|
]
|
|
2786
3082
|
}
|
|
2787
3083
|
)
|
|
2788
3084
|
] }),
|
|
2789
|
-
!mobileLangOpen && /* @__PURE__ */
|
|
2790
|
-
loginHref && /* @__PURE__ */
|
|
3085
|
+
!mobileLangOpen && /* @__PURE__ */ jsxs23("div", { className: "navbar__drawer-footer", children: [
|
|
3086
|
+
loginHref && /* @__PURE__ */ jsx25("a", { href: loginHref, style: { display: "block" }, children: /* @__PURE__ */ jsx25(
|
|
2791
3087
|
Button,
|
|
2792
3088
|
{
|
|
2793
3089
|
colorScheme: "black",
|
|
@@ -2796,7 +3092,7 @@ var Navbar = ({
|
|
|
2796
3092
|
fullWidth: true
|
|
2797
3093
|
}
|
|
2798
3094
|
) }),
|
|
2799
|
-
ctaHref && /* @__PURE__ */
|
|
3095
|
+
ctaHref && /* @__PURE__ */ jsx25("a", { href: ctaHref, style: { display: "block" }, children: /* @__PURE__ */ jsx25(
|
|
2800
3096
|
Button,
|
|
2801
3097
|
{
|
|
2802
3098
|
colorScheme: "coral",
|
|
@@ -2806,7 +3102,7 @@ var Navbar = ({
|
|
|
2806
3102
|
}
|
|
2807
3103
|
) })
|
|
2808
3104
|
] }),
|
|
2809
|
-
/* @__PURE__ */
|
|
3105
|
+
/* @__PURE__ */ jsx25(AnimatePresence, { children: hasLangDropdown && mobileLangOpen && /* @__PURE__ */ jsxs23(
|
|
2810
3106
|
motion2.div,
|
|
2811
3107
|
{
|
|
2812
3108
|
className: "navbar__drawer-lang-panel",
|
|
@@ -2815,16 +3111,16 @@ var Navbar = ({
|
|
|
2815
3111
|
exit: { y: "100%" },
|
|
2816
3112
|
transition: { duration: 0.25, ease: EASE_OUT_EXPO },
|
|
2817
3113
|
children: [
|
|
2818
|
-
/* @__PURE__ */
|
|
3114
|
+
/* @__PURE__ */ jsx25(
|
|
2819
3115
|
"button",
|
|
2820
3116
|
{
|
|
2821
3117
|
className: "navbar__drawer-lang-back",
|
|
2822
3118
|
onClick: () => setMobileLangOpen(false),
|
|
2823
3119
|
"aria-label": "Back to menu",
|
|
2824
|
-
children: /* @__PURE__ */
|
|
3120
|
+
children: /* @__PURE__ */ jsx25(ChevronLeftIcon, {})
|
|
2825
3121
|
}
|
|
2826
3122
|
),
|
|
2827
|
-
/* @__PURE__ */
|
|
3123
|
+
/* @__PURE__ */ jsx25("div", { className: "navbar__drawer-lang-grid", children: languageItems.map((lang) => /* @__PURE__ */ jsx25(
|
|
2828
3124
|
"button",
|
|
2829
3125
|
{
|
|
2830
3126
|
className: [
|
|
@@ -2848,7 +3144,7 @@ var Navbar = ({
|
|
|
2848
3144
|
};
|
|
2849
3145
|
|
|
2850
3146
|
// templates/DayNightTransition/DayNightTransition.tsx
|
|
2851
|
-
import { useRef as
|
|
3147
|
+
import { useRef as useRef10 } from "react";
|
|
2852
3148
|
import {
|
|
2853
3149
|
motion as motion3,
|
|
2854
3150
|
useScroll as useScroll2,
|
|
@@ -2856,7 +3152,7 @@ import {
|
|
|
2856
3152
|
useTransform as useTransform2,
|
|
2857
3153
|
useMotionTemplate as useMotionTemplate2
|
|
2858
3154
|
} from "framer-motion";
|
|
2859
|
-
import { jsx as
|
|
3155
|
+
import { jsx as jsx26, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
2860
3156
|
var SPRING2 = { stiffness: 80, damping: 30, restDelta: 1e-3 };
|
|
2861
3157
|
var FADE_START = 0.35;
|
|
2862
3158
|
var FADE_END = 0.65;
|
|
@@ -2867,16 +3163,16 @@ var TEXT_CHANNEL_NIGHT = 255;
|
|
|
2867
3163
|
var DayNightTransition = ({
|
|
2868
3164
|
dayImageUrl,
|
|
2869
3165
|
nightImageUrl,
|
|
2870
|
-
dayHeadline = "
|
|
2871
|
-
nightHeadline = "
|
|
2872
|
-
dayDescription,
|
|
2873
|
-
nightDescription,
|
|
3166
|
+
dayHeadline = "Medium length section title goes here",
|
|
3167
|
+
nightHeadline = "Medium length section title goes here",
|
|
3168
|
+
dayDescription = "Description goes here. Description goes here. Description goes here.",
|
|
3169
|
+
nightDescription = "Description goes here. Description goes here. Description goes here.",
|
|
2874
3170
|
ctaLabel = "Get started",
|
|
2875
3171
|
ctaHref = "#",
|
|
2876
3172
|
className,
|
|
2877
3173
|
...props
|
|
2878
3174
|
}) => {
|
|
2879
|
-
const wrapperRef =
|
|
3175
|
+
const wrapperRef = useRef10(null);
|
|
2880
3176
|
const { scrollYProgress } = useScroll2({
|
|
2881
3177
|
target: wrapperRef,
|
|
2882
3178
|
offset: ["start end", "end start"]
|
|
@@ -2888,14 +3184,14 @@ var DayNightTransition = ({
|
|
|
2888
3184
|
const dayOpacity = useTransform2(smooth, [WORD_START, WORD_END], [1, 0]);
|
|
2889
3185
|
const nightOpacity2 = useTransform2(smooth, [WORD_START, WORD_END], [0, 1]);
|
|
2890
3186
|
const hasDescription = Boolean(dayDescription || nightDescription);
|
|
2891
|
-
return /* @__PURE__ */
|
|
3187
|
+
return /* @__PURE__ */ jsx26(
|
|
2892
3188
|
"div",
|
|
2893
3189
|
{
|
|
2894
3190
|
ref: wrapperRef,
|
|
2895
3191
|
className: ["dnt", className].filter(Boolean).join(" "),
|
|
2896
3192
|
...props,
|
|
2897
|
-
children: /* @__PURE__ */
|
|
2898
|
-
/* @__PURE__ */
|
|
3193
|
+
children: /* @__PURE__ */ jsxs24("div", { className: "dnt__sticky", children: [
|
|
3194
|
+
/* @__PURE__ */ jsx26(
|
|
2899
3195
|
"img",
|
|
2900
3196
|
{
|
|
2901
3197
|
className: "dnt__bg dnt__bg--day",
|
|
@@ -2905,7 +3201,7 @@ var DayNightTransition = ({
|
|
|
2905
3201
|
draggable: false
|
|
2906
3202
|
}
|
|
2907
3203
|
),
|
|
2908
|
-
/* @__PURE__ */
|
|
3204
|
+
/* @__PURE__ */ jsx26(
|
|
2909
3205
|
motion3.img,
|
|
2910
3206
|
{
|
|
2911
3207
|
className: "dnt__bg dnt__bg--night",
|
|
@@ -2916,14 +3212,14 @@ var DayNightTransition = ({
|
|
|
2916
3212
|
style: { opacity: nightOpacity }
|
|
2917
3213
|
}
|
|
2918
3214
|
),
|
|
2919
|
-
/* @__PURE__ */
|
|
3215
|
+
/* @__PURE__ */ jsx26("div", { className: "dnt__content", children: /* @__PURE__ */ jsx26("div", { className: "dnt__inner", children: /* @__PURE__ */ jsxs24(
|
|
2920
3216
|
motion3.div,
|
|
2921
3217
|
{
|
|
2922
3218
|
className: "dnt__text-wrap",
|
|
2923
3219
|
style: { color: textColor },
|
|
2924
3220
|
children: [
|
|
2925
|
-
/* @__PURE__ */
|
|
2926
|
-
/* @__PURE__ */
|
|
3221
|
+
/* @__PURE__ */ jsxs24("div", { className: "dnt__crossfade-wrap", children: [
|
|
3222
|
+
/* @__PURE__ */ jsx26(
|
|
2927
3223
|
motion3.h2,
|
|
2928
3224
|
{
|
|
2929
3225
|
className: "dnt__headline",
|
|
@@ -2931,7 +3227,7 @@ var DayNightTransition = ({
|
|
|
2931
3227
|
children: dayHeadline
|
|
2932
3228
|
}
|
|
2933
3229
|
),
|
|
2934
|
-
/* @__PURE__ */
|
|
3230
|
+
/* @__PURE__ */ jsx26(
|
|
2935
3231
|
motion3.h2,
|
|
2936
3232
|
{
|
|
2937
3233
|
className: "dnt__headline",
|
|
@@ -2941,8 +3237,8 @@ var DayNightTransition = ({
|
|
|
2941
3237
|
}
|
|
2942
3238
|
)
|
|
2943
3239
|
] }),
|
|
2944
|
-
hasDescription && /* @__PURE__ */
|
|
2945
|
-
/* @__PURE__ */
|
|
3240
|
+
hasDescription && /* @__PURE__ */ jsxs24("div", { className: "dnt__crossfade-wrap", children: [
|
|
3241
|
+
/* @__PURE__ */ jsx26(
|
|
2946
3242
|
motion3.p,
|
|
2947
3243
|
{
|
|
2948
3244
|
className: "dnt__description",
|
|
@@ -2950,7 +3246,7 @@ var DayNightTransition = ({
|
|
|
2950
3246
|
children: dayDescription ?? ""
|
|
2951
3247
|
}
|
|
2952
3248
|
),
|
|
2953
|
-
/* @__PURE__ */
|
|
3249
|
+
/* @__PURE__ */ jsx26(
|
|
2954
3250
|
motion3.p,
|
|
2955
3251
|
{
|
|
2956
3252
|
className: "dnt__description",
|
|
@@ -2960,17 +3256,17 @@ var DayNightTransition = ({
|
|
|
2960
3256
|
}
|
|
2961
3257
|
)
|
|
2962
3258
|
] }),
|
|
2963
|
-
/* @__PURE__ */
|
|
3259
|
+
/* @__PURE__ */ jsx26("a", { href: ctaHref, className: "dnt__btn", children: ctaLabel })
|
|
2964
3260
|
]
|
|
2965
3261
|
}
|
|
2966
|
-
) })
|
|
3262
|
+
) }) })
|
|
2967
3263
|
] })
|
|
2968
3264
|
}
|
|
2969
3265
|
);
|
|
2970
3266
|
};
|
|
2971
3267
|
|
|
2972
|
-
// templates/
|
|
2973
|
-
import { useRef as
|
|
3268
|
+
// templates/LogoMarquee/LogoMarquee.tsx
|
|
3269
|
+
import { useRef as useRef11 } from "react";
|
|
2974
3270
|
import {
|
|
2975
3271
|
motion as motion4,
|
|
2976
3272
|
useScroll as useScroll3,
|
|
@@ -2978,7 +3274,7 @@ import {
|
|
|
2978
3274
|
useAnimationFrame,
|
|
2979
3275
|
useMotionValue
|
|
2980
3276
|
} from "framer-motion";
|
|
2981
|
-
import { jsx as
|
|
3277
|
+
import { jsx as jsx27, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
2982
3278
|
function modWrap(min, max, v) {
|
|
2983
3279
|
const range = max - min;
|
|
2984
3280
|
return ((v - min) % range + range) % range + min;
|
|
@@ -2986,41 +3282,41 @@ function modWrap(min, max, v) {
|
|
|
2986
3282
|
var VELOCITY_FACTOR = 0.4;
|
|
2987
3283
|
var MAX_SCROLL_V = 2500;
|
|
2988
3284
|
var DEADZONE = 2;
|
|
2989
|
-
var
|
|
3285
|
+
var PLACEHOLDER_IMAGE2 = "https://cdn.prod.website-files.com/68da5c86c91c54f39c86c28a/69b9309379ac08e59ca8210a_1f3f555da9a5cbb13a6fe1bf0d5fe1b6_placeholder-image.webp";
|
|
2990
3286
|
var COL_ONE_LOGOS = [
|
|
2991
|
-
{ name: "
|
|
2992
|
-
{ name: "
|
|
2993
|
-
{ name: "
|
|
2994
|
-
{ name: "
|
|
2995
|
-
{ name: "
|
|
2996
|
-
{ name: "
|
|
2997
|
-
{ name: "
|
|
2998
|
-
{ name: "
|
|
2999
|
-
{ name: "
|
|
3000
|
-
{ name: "
|
|
3001
|
-
{ name: "
|
|
3287
|
+
{ name: "Logo 1", url: PLACEHOLDER_IMAGE2 },
|
|
3288
|
+
{ name: "Logo 2", url: PLACEHOLDER_IMAGE2 },
|
|
3289
|
+
{ name: "Logo 3", url: PLACEHOLDER_IMAGE2 },
|
|
3290
|
+
{ name: "Logo 4", url: PLACEHOLDER_IMAGE2 },
|
|
3291
|
+
{ name: "Logo 5", url: PLACEHOLDER_IMAGE2 },
|
|
3292
|
+
{ name: "Logo 6", url: PLACEHOLDER_IMAGE2 },
|
|
3293
|
+
{ name: "Logo 7", url: PLACEHOLDER_IMAGE2 },
|
|
3294
|
+
{ name: "Logo 8", url: PLACEHOLDER_IMAGE2 },
|
|
3295
|
+
{ name: "Logo 9", url: PLACEHOLDER_IMAGE2 },
|
|
3296
|
+
{ name: "Logo 10", url: PLACEHOLDER_IMAGE2 },
|
|
3297
|
+
{ name: "Logo 11", url: PLACEHOLDER_IMAGE2 }
|
|
3002
3298
|
];
|
|
3003
3299
|
var COL_TWO_LOGOS = [
|
|
3004
|
-
{ name: "
|
|
3005
|
-
{ name: "
|
|
3006
|
-
{ name: "
|
|
3007
|
-
{ name: "
|
|
3008
|
-
{ name: "
|
|
3009
|
-
{ name: "
|
|
3010
|
-
{ name: "
|
|
3011
|
-
{ name: "
|
|
3012
|
-
{ name: "
|
|
3013
|
-
{ name: "
|
|
3014
|
-
{ name: "
|
|
3300
|
+
{ name: "Logo 1", url: PLACEHOLDER_IMAGE2 },
|
|
3301
|
+
{ name: "Logo 2", url: PLACEHOLDER_IMAGE2 },
|
|
3302
|
+
{ name: "Logo 3", url: PLACEHOLDER_IMAGE2 },
|
|
3303
|
+
{ name: "Logo 4", url: PLACEHOLDER_IMAGE2 },
|
|
3304
|
+
{ name: "Logo 5", url: PLACEHOLDER_IMAGE2 },
|
|
3305
|
+
{ name: "Logo 6", url: PLACEHOLDER_IMAGE2 },
|
|
3306
|
+
{ name: "Logo 7", url: PLACEHOLDER_IMAGE2 },
|
|
3307
|
+
{ name: "Logo 8", url: PLACEHOLDER_IMAGE2 },
|
|
3308
|
+
{ name: "Logo 9", url: PLACEHOLDER_IMAGE2 },
|
|
3309
|
+
{ name: "Logo 10", url: PLACEHOLDER_IMAGE2 },
|
|
3310
|
+
{ name: "Logo 11", url: PLACEHOLDER_IMAGE2 }
|
|
3015
3311
|
];
|
|
3016
3312
|
var TEXT_CONTENT = {
|
|
3017
|
-
headline: "
|
|
3018
|
-
body: "
|
|
3019
|
-
disclaimer: "*
|
|
3313
|
+
headline: "Section title goes here",
|
|
3314
|
+
body: "Explain how this specific feature helps your user.",
|
|
3315
|
+
disclaimer: "*Add any relevant disclaimers or legal copy here.",
|
|
3020
3316
|
ctaLabel: "Learn more",
|
|
3021
3317
|
ctaHref: "#"
|
|
3022
3318
|
};
|
|
3023
|
-
var
|
|
3319
|
+
var LogoMarquee = ({
|
|
3024
3320
|
headline = TEXT_CONTENT.headline,
|
|
3025
3321
|
body = TEXT_CONTENT.body,
|
|
3026
3322
|
disclaimer = TEXT_CONTENT.disclaimer,
|
|
@@ -3035,8 +3331,8 @@ var PaymentMethods = ({
|
|
|
3035
3331
|
const scrollVelocity = useVelocity(scrollY);
|
|
3036
3332
|
const col1Y = useMotionValue(0);
|
|
3037
3333
|
const col2Y = useMotionValue(0);
|
|
3038
|
-
const col1Ref =
|
|
3039
|
-
const col2Ref =
|
|
3334
|
+
const col1Ref = useRef11(null);
|
|
3335
|
+
const col2Ref = useRef11(null);
|
|
3040
3336
|
useAnimationFrame((_, delta) => {
|
|
3041
3337
|
const raw = scrollVelocity.get();
|
|
3042
3338
|
if (Math.abs(raw) < DEADZONE) return;
|
|
@@ -3049,21 +3345,21 @@ var PaymentMethods = ({
|
|
|
3049
3345
|
});
|
|
3050
3346
|
const track1 = [...col1Logos, ...col1Logos];
|
|
3051
3347
|
const track2 = [...col2Logos, ...col2Logos];
|
|
3052
|
-
return /* @__PURE__ */
|
|
3348
|
+
return /* @__PURE__ */ jsx27(
|
|
3053
3349
|
"section",
|
|
3054
3350
|
{
|
|
3055
|
-
className: ["
|
|
3351
|
+
className: ["lm", className].filter(Boolean).join(" "),
|
|
3056
3352
|
...props,
|
|
3057
|
-
children: /* @__PURE__ */
|
|
3058
|
-
/* @__PURE__ */
|
|
3059
|
-
/* @__PURE__ */
|
|
3060
|
-
/* @__PURE__ */
|
|
3353
|
+
children: /* @__PURE__ */ jsxs25("div", { className: "lm__inner", children: [
|
|
3354
|
+
/* @__PURE__ */ jsx27("div", { className: "lm__media", children: /* @__PURE__ */ jsxs25("div", { className: "lm__carousel", children: [
|
|
3355
|
+
/* @__PURE__ */ jsx27("div", { className: "lm__fade lm__fade--top", "aria-hidden": "true" }),
|
|
3356
|
+
/* @__PURE__ */ jsx27(
|
|
3061
3357
|
motion4.div,
|
|
3062
3358
|
{
|
|
3063
3359
|
ref: col1Ref,
|
|
3064
|
-
className: "
|
|
3360
|
+
className: "lm__col",
|
|
3065
3361
|
style: { y: col1Y },
|
|
3066
|
-
children: track1.map((logo, i) => /* @__PURE__ */
|
|
3362
|
+
children: track1.map((logo, i) => /* @__PURE__ */ jsx27("div", { className: "lm__card", children: /* @__PURE__ */ jsx27("div", { className: "lm__card-img-wrap", children: /* @__PURE__ */ jsx27(
|
|
3067
3363
|
"img",
|
|
3068
3364
|
{
|
|
3069
3365
|
src: logo.url,
|
|
@@ -3074,13 +3370,13 @@ var PaymentMethods = ({
|
|
|
3074
3370
|
) }) }, `c1-${i}`))
|
|
3075
3371
|
}
|
|
3076
3372
|
),
|
|
3077
|
-
/* @__PURE__ */
|
|
3373
|
+
/* @__PURE__ */ jsx27(
|
|
3078
3374
|
motion4.div,
|
|
3079
3375
|
{
|
|
3080
3376
|
ref: col2Ref,
|
|
3081
|
-
className: "
|
|
3377
|
+
className: "lm__col",
|
|
3082
3378
|
style: { y: col2Y },
|
|
3083
|
-
children: track2.map((logo, i) => /* @__PURE__ */
|
|
3379
|
+
children: track2.map((logo, i) => /* @__PURE__ */ jsx27("div", { className: "lm__card", children: /* @__PURE__ */ jsx27("div", { className: "lm__card-img-wrap", children: /* @__PURE__ */ jsx27(
|
|
3084
3380
|
"img",
|
|
3085
3381
|
{
|
|
3086
3382
|
src: logo.url,
|
|
@@ -3091,23 +3387,203 @@ var PaymentMethods = ({
|
|
|
3091
3387
|
) }) }, `c2-${i}`))
|
|
3092
3388
|
}
|
|
3093
3389
|
),
|
|
3094
|
-
/* @__PURE__ */
|
|
3390
|
+
/* @__PURE__ */ jsx27("div", { className: "lm__fade lm__fade--bottom", "aria-hidden": "true" })
|
|
3095
3391
|
] }) }),
|
|
3096
|
-
/* @__PURE__ */
|
|
3097
|
-
/* @__PURE__ */
|
|
3098
|
-
/* @__PURE__ */
|
|
3099
|
-
/* @__PURE__ */
|
|
3100
|
-
/* @__PURE__ */
|
|
3392
|
+
/* @__PURE__ */ jsxs25("div", { className: "lm__content", children: [
|
|
3393
|
+
/* @__PURE__ */ jsx27("h2", { className: "lm__headline", children: headline }),
|
|
3394
|
+
/* @__PURE__ */ jsxs25("div", { className: "lm__text-group", children: [
|
|
3395
|
+
/* @__PURE__ */ jsx27("p", { className: "lm__body", children: body }),
|
|
3396
|
+
/* @__PURE__ */ jsx27("p", { className: "lm__disclaimer", children: disclaimer })
|
|
3101
3397
|
] }),
|
|
3102
|
-
/* @__PURE__ */
|
|
3398
|
+
/* @__PURE__ */ jsxs25("a", { href: ctaHref, className: "lm__link", children: [
|
|
3103
3399
|
ctaLabel,
|
|
3104
|
-
/* @__PURE__ */
|
|
3400
|
+
/* @__PURE__ */ jsx27("span", { className: "lm__link-icon", "aria-hidden": "true", children: /* @__PURE__ */ jsx27("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ jsx27("path", { d: "M3 8H13M13 8L9 4M13 8L9 12", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }) }) })
|
|
3105
3401
|
] })
|
|
3106
3402
|
] })
|
|
3107
3403
|
] })
|
|
3108
3404
|
}
|
|
3109
3405
|
);
|
|
3110
3406
|
};
|
|
3407
|
+
|
|
3408
|
+
// assets/appstore-googleplay-light.svg
|
|
3409
|
+
var appstore_googleplay_light_default = "./appstore-googleplay-light-W3CS6NAG.svg";
|
|
3410
|
+
|
|
3411
|
+
// assets/appstore-appstore-light.svg
|
|
3412
|
+
var appstore_appstore_light_default = "./appstore-appstore-light-BEVC5PJZ.svg";
|
|
3413
|
+
|
|
3414
|
+
// assets/appstore-appgallery-light.svg
|
|
3415
|
+
var appstore_appgallery_light_default = "./appstore-appgallery-light-VF62CF5X.svg";
|
|
3416
|
+
|
|
3417
|
+
// assets/appstore-windows-light.svg
|
|
3418
|
+
var appstore_windows_light_default = "./appstore-windows-light-TCALZSJM.svg";
|
|
3419
|
+
|
|
3420
|
+
// assets/appstore-macos-light.svg
|
|
3421
|
+
var appstore_macos_light_default = "./appstore-macos-light-5LI6ESAV.svg";
|
|
3422
|
+
|
|
3423
|
+
// assets/appstore-linux-light.svg
|
|
3424
|
+
var appstore_linux_light_default = "./appstore-linux-light-WQECAJRC.svg";
|
|
3425
|
+
|
|
3426
|
+
// assets/appstore-browser-light.svg
|
|
3427
|
+
var appstore_browser_light_default = "./appstore-browser-light-HBKTW4SI.svg";
|
|
3428
|
+
|
|
3429
|
+
// assets/appstore-googleplay-dark.svg
|
|
3430
|
+
var appstore_googleplay_dark_default = "./appstore-googleplay-dark-HWTOQTL6.svg";
|
|
3431
|
+
|
|
3432
|
+
// assets/appstore-appstore-dark.svg
|
|
3433
|
+
var appstore_appstore_dark_default = "./appstore-appstore-dark-FDUROOKK.svg";
|
|
3434
|
+
|
|
3435
|
+
// assets/appstore-appgallery-dark.svg
|
|
3436
|
+
var appstore_appgallery_dark_default = "./appstore-appgallery-dark-2QPFCM4A.svg";
|
|
3437
|
+
|
|
3438
|
+
// assets/appstore-windows-dark.svg
|
|
3439
|
+
var appstore_windows_dark_default = "./appstore-windows-dark-ZDWELB42.svg";
|
|
3440
|
+
|
|
3441
|
+
// assets/appstore-macos-dark.svg
|
|
3442
|
+
var appstore_macos_dark_default = "./appstore-macos-dark-2A3UM5YI.svg";
|
|
3443
|
+
|
|
3444
|
+
// assets/appstore-linux-dark.svg
|
|
3445
|
+
var appstore_linux_dark_default = "./appstore-linux-dark-RVH7CBM4.svg";
|
|
3446
|
+
|
|
3447
|
+
// assets/appstore-browser-dark.svg
|
|
3448
|
+
var appstore_browser_dark_default = "./appstore-browser-dark-2E6TK6JH.svg";
|
|
3449
|
+
|
|
3450
|
+
// primitives/DownloadBadge/DownloadBadge.tsx
|
|
3451
|
+
import { jsx as jsx28 } from "react/jsx-runtime";
|
|
3452
|
+
var BADGE_ASSETS = {
|
|
3453
|
+
light: {
|
|
3454
|
+
googleplay: { src: appstore_googleplay_light_default, alt: "Get it on Google Play" },
|
|
3455
|
+
appstore: { src: appstore_appstore_light_default, alt: "Download on the App Store" },
|
|
3456
|
+
appgallery: { src: appstore_appgallery_light_default, alt: "Explore it on AppGallery" },
|
|
3457
|
+
windows: { src: appstore_windows_light_default, alt: "Download for Windows" },
|
|
3458
|
+
macos: { src: appstore_macos_light_default, alt: "Download on the Mac App Store" },
|
|
3459
|
+
linux: { src: appstore_linux_light_default, alt: "Installation on Linux" },
|
|
3460
|
+
web: { src: appstore_browser_light_default, alt: "Trade on Web browser" }
|
|
3461
|
+
},
|
|
3462
|
+
dark: {
|
|
3463
|
+
googleplay: { src: appstore_googleplay_dark_default, alt: "Get it on Google Play" },
|
|
3464
|
+
appstore: { src: appstore_appstore_dark_default, alt: "Download on the App Store" },
|
|
3465
|
+
appgallery: { src: appstore_appgallery_dark_default, alt: "Explore it on AppGallery" },
|
|
3466
|
+
windows: { src: appstore_windows_dark_default, alt: "Download for Windows" },
|
|
3467
|
+
macos: { src: appstore_macos_dark_default, alt: "Download on the Mac App Store" },
|
|
3468
|
+
linux: { src: appstore_linux_dark_default, alt: "Installation on Linux" },
|
|
3469
|
+
web: { src: appstore_browser_dark_default, alt: "Trade on Web browser" }
|
|
3470
|
+
}
|
|
3471
|
+
};
|
|
3472
|
+
var DownloadBadge = ({
|
|
3473
|
+
platform,
|
|
3474
|
+
colorScheme = "light",
|
|
3475
|
+
href,
|
|
3476
|
+
className,
|
|
3477
|
+
...props
|
|
3478
|
+
}) => {
|
|
3479
|
+
const { src, alt } = BADGE_ASSETS[colorScheme][platform];
|
|
3480
|
+
return /* @__PURE__ */ jsx28(
|
|
3481
|
+
"a",
|
|
3482
|
+
{
|
|
3483
|
+
className: [
|
|
3484
|
+
"download-badge",
|
|
3485
|
+
`download-badge--${colorScheme}`,
|
|
3486
|
+
className
|
|
3487
|
+
].filter(Boolean).join(" "),
|
|
3488
|
+
href: href ?? "#",
|
|
3489
|
+
"aria-label": alt,
|
|
3490
|
+
target: "_blank",
|
|
3491
|
+
rel: "noopener noreferrer",
|
|
3492
|
+
...props,
|
|
3493
|
+
children: /* @__PURE__ */ jsx28("img", { className: "download-badge__img", src, alt })
|
|
3494
|
+
}
|
|
3495
|
+
);
|
|
3496
|
+
};
|
|
3497
|
+
|
|
3498
|
+
// templates/Steps/Steps.tsx
|
|
3499
|
+
import { jsx as jsx29, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
3500
|
+
var Steps = ({
|
|
3501
|
+
title,
|
|
3502
|
+
steps,
|
|
3503
|
+
image,
|
|
3504
|
+
imageAlt = "",
|
|
3505
|
+
imagePosition = "left"
|
|
3506
|
+
}) => {
|
|
3507
|
+
const containerClass = [
|
|
3508
|
+
"steps__container",
|
|
3509
|
+
imagePosition === "right" ? "steps__container--image-right" : ""
|
|
3510
|
+
].filter(Boolean).join(" ");
|
|
3511
|
+
return /* @__PURE__ */ jsx29("section", { className: "steps", children: /* @__PURE__ */ jsxs26("div", { className: containerClass, children: [
|
|
3512
|
+
image && /* @__PURE__ */ jsx29("div", { className: "steps__image-wrapper", children: /* @__PURE__ */ jsx29(
|
|
3513
|
+
"img",
|
|
3514
|
+
{
|
|
3515
|
+
src: image,
|
|
3516
|
+
alt: imageAlt,
|
|
3517
|
+
className: "steps__image"
|
|
3518
|
+
}
|
|
3519
|
+
) }),
|
|
3520
|
+
/* @__PURE__ */ jsxs26("div", { className: "steps__content", children: [
|
|
3521
|
+
/* @__PURE__ */ jsx29("h2", { className: "steps__title", children: title }),
|
|
3522
|
+
/* @__PURE__ */ jsx29("ol", { className: "steps__list", children: steps.map((step, index) => /* @__PURE__ */ jsx29("li", { className: "steps__item", children: /* @__PURE__ */ jsxs26("div", { className: "steps__item-inner", children: [
|
|
3523
|
+
/* @__PURE__ */ jsx29("span", { className: "steps__number", "aria-hidden": "true", children: index + 1 }),
|
|
3524
|
+
/* @__PURE__ */ jsxs26("div", { className: "steps__item-body", children: [
|
|
3525
|
+
/* @__PURE__ */ jsx29("h3", { className: "steps__item-title", children: step.title }),
|
|
3526
|
+
/* @__PURE__ */ jsx29("p", { className: "steps__item-description", children: step.description })
|
|
3527
|
+
] })
|
|
3528
|
+
] }) }, index)) })
|
|
3529
|
+
] })
|
|
3530
|
+
] }) });
|
|
3531
|
+
};
|
|
3532
|
+
|
|
3533
|
+
// templates/DownloadBanner/DownloadBanner.tsx
|
|
3534
|
+
import { jsx as jsx30, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
3535
|
+
var DownloadBanner = ({
|
|
3536
|
+
style = "light-2",
|
|
3537
|
+
qrCodeImage,
|
|
3538
|
+
qrCodeAlt = "QR code to download the app",
|
|
3539
|
+
qrTitle = "Scan to download",
|
|
3540
|
+
qrSubtitle = "Android & iOS",
|
|
3541
|
+
mobileTitle = "Available on",
|
|
3542
|
+
showAppStore = true,
|
|
3543
|
+
showGooglePlay = true,
|
|
3544
|
+
showAppGallery = true,
|
|
3545
|
+
showWindows = true,
|
|
3546
|
+
showMacOS = true,
|
|
3547
|
+
showLinux = true,
|
|
3548
|
+
showWeb = true,
|
|
3549
|
+
appStoreHref,
|
|
3550
|
+
googlePlayHref,
|
|
3551
|
+
appGalleryHref,
|
|
3552
|
+
windowsHref,
|
|
3553
|
+
macOSHref,
|
|
3554
|
+
linuxHref,
|
|
3555
|
+
webHref,
|
|
3556
|
+
disclaimer
|
|
3557
|
+
}) => {
|
|
3558
|
+
const colorScheme = style === "dark" ? "dark" : "light";
|
|
3559
|
+
return /* @__PURE__ */ jsx30("section", { className: `db-section db-section--${style}`, children: /* @__PURE__ */ jsx30("div", { className: "db-container", children: /* @__PURE__ */ jsxs27("div", { className: "db-card", children: [
|
|
3560
|
+
/* @__PURE__ */ jsxs27("div", { className: "db-qr-block", children: [
|
|
3561
|
+
qrCodeImage && /* @__PURE__ */ jsx30(
|
|
3562
|
+
"img",
|
|
3563
|
+
{
|
|
3564
|
+
className: "db-qr-image",
|
|
3565
|
+
src: qrCodeImage,
|
|
3566
|
+
alt: qrCodeAlt
|
|
3567
|
+
}
|
|
3568
|
+
),
|
|
3569
|
+
/* @__PURE__ */ jsxs27("div", { className: "db-qr-text", children: [
|
|
3570
|
+
/* @__PURE__ */ jsx30("span", { className: "db-qr-text__title db-qr-text__title--desktop", children: qrTitle }),
|
|
3571
|
+
/* @__PURE__ */ jsx30("h2", { className: "db-qr-text__subtitle db-qr-text__subtitle--desktop", children: qrSubtitle }),
|
|
3572
|
+
/* @__PURE__ */ jsx30("span", { className: "db-qr-text__title db-qr-text__title--mobile", children: mobileTitle }),
|
|
3573
|
+
disclaimer && /* @__PURE__ */ jsx30("span", { className: "db-disclaimer", children: disclaimer })
|
|
3574
|
+
] })
|
|
3575
|
+
] }),
|
|
3576
|
+
/* @__PURE__ */ jsxs27("div", { className: "db-badges", children: [
|
|
3577
|
+
showGooglePlay && /* @__PURE__ */ jsx30(DownloadBadge, { platform: "googleplay", colorScheme, href: googlePlayHref }),
|
|
3578
|
+
showAppGallery && /* @__PURE__ */ jsx30(DownloadBadge, { platform: "appgallery", colorScheme, href: appGalleryHref }),
|
|
3579
|
+
showMacOS && /* @__PURE__ */ jsx30(DownloadBadge, { platform: "macos", colorScheme, href: macOSHref }),
|
|
3580
|
+
showWindows && /* @__PURE__ */ jsx30(DownloadBadge, { platform: "windows", colorScheme, href: windowsHref }),
|
|
3581
|
+
showLinux && /* @__PURE__ */ jsx30(DownloadBadge, { platform: "linux", colorScheme, href: linuxHref }),
|
|
3582
|
+
showAppStore && /* @__PURE__ */ jsx30(DownloadBadge, { platform: "appstore", colorScheme, href: appStoreHref }),
|
|
3583
|
+
showWeb && /* @__PURE__ */ jsx30(DownloadBadge, { platform: "web", colorScheme, href: webHref })
|
|
3584
|
+
] })
|
|
3585
|
+
] }) }) });
|
|
3586
|
+
};
|
|
3111
3587
|
export {
|
|
3112
3588
|
AVATAR_DATA,
|
|
3113
3589
|
Accordion,
|
|
@@ -3121,18 +3597,23 @@ export {
|
|
|
3121
3597
|
Chip,
|
|
3122
3598
|
ChipDropdown,
|
|
3123
3599
|
DayNightTransition,
|
|
3600
|
+
DotLottieInView,
|
|
3601
|
+
DownloadBadge,
|
|
3602
|
+
DownloadBanner,
|
|
3603
|
+
FEATURE_SCROLL_DATA,
|
|
3124
3604
|
FeatureCards,
|
|
3605
|
+
FeatureCardsSecondary,
|
|
3606
|
+
FeatureScroll,
|
|
3125
3607
|
Footer,
|
|
3126
3608
|
Hero,
|
|
3127
3609
|
Link,
|
|
3610
|
+
LogoMarquee,
|
|
3128
3611
|
Navbar,
|
|
3129
3612
|
Pagination,
|
|
3130
|
-
PaymentMethods,
|
|
3131
|
-
SCROLLYTELLING_DATA,
|
|
3132
3613
|
STEPS_DATA,
|
|
3133
|
-
Scrollytelling,
|
|
3134
3614
|
SearchField,
|
|
3135
3615
|
Stats,
|
|
3616
|
+
Steps,
|
|
3136
3617
|
StickyStackedCards,
|
|
3137
3618
|
TEXT_CONTENT,
|
|
3138
3619
|
Tag,
|