@deriv-web-design/ui 0.0.15 → 0.0.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.css +1420 -156
- package/dist/index.css.map +1 -1
- package/dist/index.d.mts +212 -3
- package/dist/index.d.ts +212 -3
- package/dist/index.js +1523 -409
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1515 -408
- package/dist/index.mjs.map +1 -1
- package/package.json +5 -4
- package/tokens.css +50 -19
package/dist/index.js
CHANGED
|
@@ -36,11 +36,13 @@ __export(index_exports, {
|
|
|
36
36
|
DownloadBadge: () => DownloadBadge,
|
|
37
37
|
DownloadBanner: () => DownloadBanner,
|
|
38
38
|
FEATURE_SCROLL_DATA: () => FEATURE_SCROLL_DATA,
|
|
39
|
+
FeatureBullets: () => FeatureBullets,
|
|
39
40
|
FeatureCards: () => FeatureCards,
|
|
40
41
|
FeatureCardsSecondary: () => FeatureCardsSecondary,
|
|
41
42
|
FeatureScroll: () => FeatureScroll,
|
|
42
43
|
Footer: () => Footer,
|
|
43
44
|
Hero: () => Hero,
|
|
45
|
+
Leaders: () => Leaders,
|
|
44
46
|
Link: () => Link,
|
|
45
47
|
LogoMarquee: () => LogoMarquee,
|
|
46
48
|
Navbar: () => Navbar,
|
|
@@ -49,10 +51,15 @@ __export(index_exports, {
|
|
|
49
51
|
SearchField: () => SearchField,
|
|
50
52
|
Stats: () => Stats,
|
|
51
53
|
Steps: () => Steps,
|
|
54
|
+
StickyMarketCards: () => StickyMarketCards,
|
|
52
55
|
StickyStackedCards: () => StickyStackedCards,
|
|
53
56
|
TEXT_CONTENT: () => TEXT_CONTENT,
|
|
57
|
+
Table: () => Table,
|
|
58
|
+
Tabs: () => Tabs,
|
|
54
59
|
Tag: () => Tag,
|
|
55
|
-
TextField: () => TextField
|
|
60
|
+
TextField: () => TextField,
|
|
61
|
+
TextScroll: () => TextScroll,
|
|
62
|
+
dayNightTransitionV2Preset: () => dayNightTransitionV2Preset
|
|
56
63
|
});
|
|
57
64
|
module.exports = __toCommonJS(index_exports);
|
|
58
65
|
|
|
@@ -1046,8 +1053,46 @@ var Pagination = ({
|
|
|
1046
1053
|
);
|
|
1047
1054
|
};
|
|
1048
1055
|
|
|
1049
|
-
//
|
|
1056
|
+
// primitives/Tabs/Tabs.tsx
|
|
1050
1057
|
var import_jsx_runtime16 = require("react/jsx-runtime");
|
|
1058
|
+
var Tabs = ({
|
|
1059
|
+
items,
|
|
1060
|
+
activeId,
|
|
1061
|
+
onChange,
|
|
1062
|
+
className,
|
|
1063
|
+
...props
|
|
1064
|
+
}) => {
|
|
1065
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
1066
|
+
"div",
|
|
1067
|
+
{
|
|
1068
|
+
className: ["tabs-menu w-tab-menu", className].filter(Boolean).join(" "),
|
|
1069
|
+
role: "tablist",
|
|
1070
|
+
...props,
|
|
1071
|
+
children: items.map((item, i) => {
|
|
1072
|
+
const isActive = item.id === activeId;
|
|
1073
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
1074
|
+
Chip,
|
|
1075
|
+
{
|
|
1076
|
+
label: item.label,
|
|
1077
|
+
selected: isActive,
|
|
1078
|
+
onClick: () => onChange(item.id),
|
|
1079
|
+
className: isActive ? "tab-active" : "",
|
|
1080
|
+
"data-w-tab": item.label,
|
|
1081
|
+
id: `w-tabs-0-data-w-tab-${i}`,
|
|
1082
|
+
"aria-controls": `w-tabs-0-data-w-pane-${i}`,
|
|
1083
|
+
"aria-selected": isActive,
|
|
1084
|
+
tabIndex: isActive ? 0 : -1,
|
|
1085
|
+
role: "tab"
|
|
1086
|
+
},
|
|
1087
|
+
item.id
|
|
1088
|
+
);
|
|
1089
|
+
})
|
|
1090
|
+
}
|
|
1091
|
+
);
|
|
1092
|
+
};
|
|
1093
|
+
|
|
1094
|
+
// templates/FeatureCards/FeatureCards.tsx
|
|
1095
|
+
var import_jsx_runtime17 = require("react/jsx-runtime");
|
|
1051
1096
|
var FeatureCards = ({
|
|
1052
1097
|
sectionTitle,
|
|
1053
1098
|
sectionDescription,
|
|
@@ -1057,11 +1102,11 @@ var FeatureCards = ({
|
|
|
1057
1102
|
cardColorScheme = "image",
|
|
1058
1103
|
cards
|
|
1059
1104
|
}) => {
|
|
1060
|
-
return /* @__PURE__ */ (0,
|
|
1061
|
-
/* @__PURE__ */ (0,
|
|
1062
|
-
/* @__PURE__ */ (0,
|
|
1063
|
-
sectionDescription && /* @__PURE__ */ (0,
|
|
1064
|
-
showLink && /* @__PURE__ */ (0,
|
|
1105
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("section", { className: "fc-section", children: /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: "fc-container", children: [
|
|
1106
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: "fc-header", children: [
|
|
1107
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("h2", { className: "fc-sectionTitle", children: sectionTitle }),
|
|
1108
|
+
sectionDescription && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("p", { className: "fc-sectionDescription", children: sectionDescription }),
|
|
1109
|
+
showLink && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
1065
1110
|
Link,
|
|
1066
1111
|
{
|
|
1067
1112
|
colorScheme: "coral",
|
|
@@ -1070,7 +1115,7 @@ var FeatureCards = ({
|
|
|
1070
1115
|
}
|
|
1071
1116
|
)
|
|
1072
1117
|
] }),
|
|
1073
|
-
/* @__PURE__ */ (0,
|
|
1118
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: "fc-grid", children: cards.map((card, index) => /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
1074
1119
|
Card,
|
|
1075
1120
|
{
|
|
1076
1121
|
variant: "primary",
|
|
@@ -1089,8 +1134,135 @@ var FeatureCards = ({
|
|
|
1089
1134
|
};
|
|
1090
1135
|
|
|
1091
1136
|
// templates/FeatureCardsSecondary/FeatureCardsSecondary.tsx
|
|
1092
|
-
var
|
|
1137
|
+
var import_jsx_runtime18 = require("react/jsx-runtime");
|
|
1138
|
+
var externalLinkRel = (href) => href && /^https?:\/\//i.test(href) ? "noopener noreferrer" : void 0;
|
|
1139
|
+
var TwoCardsItem = ({ card, index }) => {
|
|
1140
|
+
const isDark = card.colorScheme === "dark";
|
|
1141
|
+
const showCardLink = card.showLink !== false;
|
|
1142
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "fcs-twoCardWrap", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
|
|
1143
|
+
"div",
|
|
1144
|
+
{
|
|
1145
|
+
className: [
|
|
1146
|
+
"fcs-twoCard",
|
|
1147
|
+
isDark ? "fcs-twoCard--dark" : "fcs-twoCard--light"
|
|
1148
|
+
].join(" "),
|
|
1149
|
+
children: [
|
|
1150
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "fcs-twoCard-body", children: [
|
|
1151
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "fcs-twoCard-content", children: [
|
|
1152
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)("h3", { className: "fcs-twoCard-title", children: card.title }),
|
|
1153
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)("p", { className: "fcs-twoCard-description", children: card.description }),
|
|
1154
|
+
showCardLink && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "fcs-twoCard-linkWrap", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
1155
|
+
Link,
|
|
1156
|
+
{
|
|
1157
|
+
colorScheme: "coral",
|
|
1158
|
+
href: card.linkHref,
|
|
1159
|
+
label: card.linkText ?? "Learn more",
|
|
1160
|
+
rel: externalLinkRel(card.linkHref),
|
|
1161
|
+
onClick: card.onLinkClick
|
|
1162
|
+
}
|
|
1163
|
+
) })
|
|
1164
|
+
] }),
|
|
1165
|
+
card.platforms && card.platforms.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "fcs-twoCard-platformsOuter", children: [
|
|
1166
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)("h3", { className: "fcs-twoCard-platformsHeading", children: card.platformsHeading ?? "Available on" }),
|
|
1167
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "fcs-twoCard-platformRow", children: card.platforms.map((platform, i) => /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
|
|
1168
|
+
"a",
|
|
1169
|
+
{
|
|
1170
|
+
className: [
|
|
1171
|
+
"fcs-platformLink",
|
|
1172
|
+
isDark ? "fcs-platformLink--dark" : ""
|
|
1173
|
+
].filter(Boolean).join(" "),
|
|
1174
|
+
href: platform.href,
|
|
1175
|
+
rel: externalLinkRel(platform.href),
|
|
1176
|
+
children: [
|
|
1177
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
1178
|
+
"img",
|
|
1179
|
+
{
|
|
1180
|
+
alt: "",
|
|
1181
|
+
className: "fcs-platformLink-icon",
|
|
1182
|
+
height: 32,
|
|
1183
|
+
src: platform.iconSrc,
|
|
1184
|
+
width: 32
|
|
1185
|
+
}
|
|
1186
|
+
),
|
|
1187
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "fcs-platformLink-label", children: platform.label })
|
|
1188
|
+
]
|
|
1189
|
+
},
|
|
1190
|
+
`${platform.label}-${i}`
|
|
1191
|
+
)) })
|
|
1192
|
+
] })
|
|
1193
|
+
] }),
|
|
1194
|
+
card.image && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "fcs-twoCard-imageSection", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
1195
|
+
"img",
|
|
1196
|
+
{
|
|
1197
|
+
alt: card.imageAlt ?? "",
|
|
1198
|
+
className: "fcs-twoCard-image",
|
|
1199
|
+
decoding: "async",
|
|
1200
|
+
loading: index === 0 ? "eager" : "lazy",
|
|
1201
|
+
src: card.image
|
|
1202
|
+
}
|
|
1203
|
+
) })
|
|
1204
|
+
]
|
|
1205
|
+
}
|
|
1206
|
+
) });
|
|
1207
|
+
};
|
|
1208
|
+
var OneCardPanel = ({ card }) => {
|
|
1209
|
+
const showCardLink = card.showLink !== false;
|
|
1210
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "fcs-oneCardShell", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "fcs-oneCardGrid fcs-twoCard--dark", children: [
|
|
1211
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "fcs-oneCardLeft", children: [
|
|
1212
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "fcs-oneCardContentBlock", children: [
|
|
1213
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)("h3", { className: "fcs-twoCard-title", children: card.title }),
|
|
1214
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)("p", { className: "fcs-twoCard-description", children: card.description }),
|
|
1215
|
+
showCardLink && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "fcs-twoCard-linkWrap", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
1216
|
+
Link,
|
|
1217
|
+
{
|
|
1218
|
+
colorScheme: "coral",
|
|
1219
|
+
href: card.linkHref,
|
|
1220
|
+
label: card.linkText ?? "Learn more",
|
|
1221
|
+
rel: externalLinkRel(card.linkHref),
|
|
1222
|
+
onClick: card.onLinkClick
|
|
1223
|
+
}
|
|
1224
|
+
) })
|
|
1225
|
+
] }),
|
|
1226
|
+
card.platforms && card.platforms.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "fcs-twoCard-platformsOuter", children: [
|
|
1227
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)("h3", { className: "fcs-twoCard-platformsHeading", children: card.platformsHeading ?? "Available on" }),
|
|
1228
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "fcs-twoCard-platformRow", children: card.platforms.map((platform, i) => /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
|
|
1229
|
+
"a",
|
|
1230
|
+
{
|
|
1231
|
+
className: "fcs-platformLink fcs-platformLink--dark",
|
|
1232
|
+
href: platform.href,
|
|
1233
|
+
rel: externalLinkRel(platform.href),
|
|
1234
|
+
children: [
|
|
1235
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
1236
|
+
"img",
|
|
1237
|
+
{
|
|
1238
|
+
alt: "",
|
|
1239
|
+
className: "fcs-platformLink-icon",
|
|
1240
|
+
height: 32,
|
|
1241
|
+
src: platform.iconSrc,
|
|
1242
|
+
width: 32
|
|
1243
|
+
}
|
|
1244
|
+
),
|
|
1245
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "fcs-platformLink-label", children: platform.label })
|
|
1246
|
+
]
|
|
1247
|
+
},
|
|
1248
|
+
`${platform.label}-${i}`
|
|
1249
|
+
)) })
|
|
1250
|
+
] })
|
|
1251
|
+
] }),
|
|
1252
|
+
card.image && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "fcs-oneCardRight", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
1253
|
+
"img",
|
|
1254
|
+
{
|
|
1255
|
+
alt: card.imageAlt ?? "",
|
|
1256
|
+
className: "fcs-oneCardImage",
|
|
1257
|
+
decoding: "async",
|
|
1258
|
+
loading: "eager",
|
|
1259
|
+
src: card.image
|
|
1260
|
+
}
|
|
1261
|
+
) })
|
|
1262
|
+
] }) });
|
|
1263
|
+
};
|
|
1093
1264
|
var FeatureCardsSecondary = ({
|
|
1265
|
+
variant = "default",
|
|
1094
1266
|
sectionTitle,
|
|
1095
1267
|
sectionDescription,
|
|
1096
1268
|
showLink = false,
|
|
@@ -1098,20 +1270,37 @@ var FeatureCardsSecondary = ({
|
|
|
1098
1270
|
onLinkClick,
|
|
1099
1271
|
cards
|
|
1100
1272
|
}) => {
|
|
1101
|
-
|
|
1102
|
-
/* @__PURE__ */ (0,
|
|
1103
|
-
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
1273
|
+
const sectionHeader = /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "fcs-header", children: [
|
|
1274
|
+
sectionTitle && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("h2", { className: "fcs-sectionTitle", children: sectionTitle }),
|
|
1275
|
+
sectionDescription && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("p", { className: "fcs-sectionDescription", children: sectionDescription }),
|
|
1276
|
+
showLink && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Link, { colorScheme: "coral", label: linkText, onClick: onLinkClick })
|
|
1277
|
+
] });
|
|
1278
|
+
if (variant === "twoCards") {
|
|
1279
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("section", { className: "fcs-section", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "fcs-container", children: [
|
|
1280
|
+
sectionHeader,
|
|
1281
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "fcs-grid fcs-grid--twoCards", children: cards.map((card, index) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
1282
|
+
TwoCardsItem,
|
|
1107
1283
|
{
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
|
|
1111
|
-
}
|
|
1112
|
-
)
|
|
1113
|
-
] })
|
|
1114
|
-
|
|
1284
|
+
card,
|
|
1285
|
+
index
|
|
1286
|
+
},
|
|
1287
|
+
`${card.title}-${index}`
|
|
1288
|
+
)) })
|
|
1289
|
+
] }) });
|
|
1290
|
+
}
|
|
1291
|
+
if (variant === "oneCard") {
|
|
1292
|
+
const card = cards[0];
|
|
1293
|
+
if (!card) {
|
|
1294
|
+
return null;
|
|
1295
|
+
}
|
|
1296
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("section", { className: "fcs-section", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "fcs-container", children: [
|
|
1297
|
+
sectionHeader,
|
|
1298
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(OneCardPanel, { card })
|
|
1299
|
+
] }) });
|
|
1300
|
+
}
|
|
1301
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("section", { className: "fcs-section", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "fcs-container", children: [
|
|
1302
|
+
sectionHeader,
|
|
1303
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: `fcs-grid fcs-grid--${cards.length === 4 ? "4" : "3"}`, children: cards.map((card, index) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
1115
1304
|
Card,
|
|
1116
1305
|
{
|
|
1117
1306
|
variant: "secondary",
|
|
@@ -1128,10 +1317,51 @@ var FeatureCardsSecondary = ({
|
|
|
1128
1317
|
] }) });
|
|
1129
1318
|
};
|
|
1130
1319
|
|
|
1320
|
+
// templates/FeatureBullets/FeatureBullets.module.css
|
|
1321
|
+
var FeatureBullets_default = {};
|
|
1322
|
+
|
|
1323
|
+
// templates/FeatureBullets/FeatureBullets.tsx
|
|
1324
|
+
var import_jsx_runtime19 = require("react/jsx-runtime");
|
|
1325
|
+
var CheckIcon2 = () => /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": "true", className: FeatureBullets_default.icon, children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("path", { d: "M12 4.375C9.07031 4.375 6.41406 5.9375 4.92969 8.4375C3.48438 10.9766 3.48438 14.0625 4.92969 16.5625C6.41406 19.1016 9.07031 20.625 12 20.625C14.8906 20.625 17.5469 19.1016 19.0312 16.5625C20.4766 14.0625 20.4766 10.9766 19.0312 8.4375C17.5469 5.9375 14.8906 4.375 12 4.375ZM12 22.5C8.40625 22.5 5.125 20.625 3.32812 17.5C1.53125 14.4141 1.53125 10.625 3.32812 7.5C5.125 4.41406 8.40625 2.5 12 2.5C15.5547 2.5 18.8359 4.41406 20.6328 7.5C22.4297 10.625 22.4297 14.4141 20.6328 17.5C18.8359 20.625 15.5547 22.5 12 22.5ZM16.4141 10.6641L11.4141 15.6641C11.0234 16.0547 10.4375 16.0547 10.0859 15.6641L7.58594 13.1641C7.19531 12.8125 7.19531 12.2266 7.58594 11.875C7.9375 11.4844 8.52344 11.4844 8.91406 11.875L10.75 13.7109L15.0859 9.375C15.4375 8.98438 16.0234 8.98438 16.4141 9.375C16.7656 9.72656 16.7656 10.3125 16.4141 10.6641Z", fill: "currentColor" }) });
|
|
1326
|
+
var FeatureBullets = ({
|
|
1327
|
+
title,
|
|
1328
|
+
bullets,
|
|
1329
|
+
image,
|
|
1330
|
+
imageAlt = "",
|
|
1331
|
+
imagePosition = "right"
|
|
1332
|
+
}) => {
|
|
1333
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("section", { className: FeatureBullets_default.section, children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: FeatureBullets_default.container, children: /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
|
|
1334
|
+
"div",
|
|
1335
|
+
{
|
|
1336
|
+
className: [
|
|
1337
|
+
FeatureBullets_default.split,
|
|
1338
|
+
imagePosition === "left" ? FeatureBullets_default["split--image-left"] : ""
|
|
1339
|
+
].filter(Boolean).join(" "),
|
|
1340
|
+
children: [
|
|
1341
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: FeatureBullets_default.content, children: [
|
|
1342
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)("h2", { className: FeatureBullets_default.title, children: title }),
|
|
1343
|
+
bullets && bullets.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: FeatureBullets_default.bulletList, children: bullets.map((bullet, i) => /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: FeatureBullets_default.bulletItem, children: [
|
|
1344
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: FeatureBullets_default.iconWrapper, children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(CheckIcon2, {}) }),
|
|
1345
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)("p", { className: FeatureBullets_default.bulletText, children: bullet })
|
|
1346
|
+
] }, i)) })
|
|
1347
|
+
] }),
|
|
1348
|
+
image && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: FeatureBullets_default.imageWrapper, children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
1349
|
+
"img",
|
|
1350
|
+
{
|
|
1351
|
+
alt: imageAlt,
|
|
1352
|
+
className: FeatureBullets_default.image,
|
|
1353
|
+
src: image
|
|
1354
|
+
}
|
|
1355
|
+
) })
|
|
1356
|
+
]
|
|
1357
|
+
}
|
|
1358
|
+
) }) });
|
|
1359
|
+
};
|
|
1360
|
+
|
|
1131
1361
|
// components/Footer/Footer.tsx
|
|
1132
1362
|
var import_react7 = require("react");
|
|
1133
|
-
var
|
|
1134
|
-
var ExternalLinkIcon = () => /* @__PURE__ */ (0,
|
|
1363
|
+
var import_jsx_runtime20 = require("react/jsx-runtime");
|
|
1364
|
+
var ExternalLinkIcon = () => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
1135
1365
|
"svg",
|
|
1136
1366
|
{
|
|
1137
1367
|
width: "12",
|
|
@@ -1140,7 +1370,7 @@ var ExternalLinkIcon = () => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
|
1140
1370
|
fill: "none",
|
|
1141
1371
|
"aria-hidden": "true",
|
|
1142
1372
|
focusable: "false",
|
|
1143
|
-
children: /* @__PURE__ */ (0,
|
|
1373
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
1144
1374
|
"path",
|
|
1145
1375
|
{
|
|
1146
1376
|
d: "M2 2H10M10 2V10M10 2L2 10",
|
|
@@ -1152,7 +1382,7 @@ var ExternalLinkIcon = () => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
|
1152
1382
|
)
|
|
1153
1383
|
}
|
|
1154
1384
|
);
|
|
1155
|
-
var ChevronDownIcon2 = () => /* @__PURE__ */ (0,
|
|
1385
|
+
var ChevronDownIcon2 = () => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
1156
1386
|
"svg",
|
|
1157
1387
|
{
|
|
1158
1388
|
width: "12",
|
|
@@ -1161,7 +1391,7 @@ var ChevronDownIcon2 = () => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
|
1161
1391
|
fill: "none",
|
|
1162
1392
|
"aria-hidden": "true",
|
|
1163
1393
|
focusable: "false",
|
|
1164
|
-
children: /* @__PURE__ */ (0,
|
|
1394
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
1165
1395
|
"path",
|
|
1166
1396
|
{
|
|
1167
1397
|
d: "M2 4L6 8L10 4",
|
|
@@ -1178,9 +1408,9 @@ var DerivGoBadges = ({
|
|
|
1178
1408
|
appStoreBadge,
|
|
1179
1409
|
huaweiBadge,
|
|
1180
1410
|
availabilityNote
|
|
1181
|
-
}) => /* @__PURE__ */ (0,
|
|
1182
|
-
/* @__PURE__ */ (0,
|
|
1183
|
-
googlePlayBadge && /* @__PURE__ */ (0,
|
|
1411
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_jsx_runtime20.Fragment, { children: [
|
|
1412
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { className: "footer__app-badges", children: [
|
|
1413
|
+
googlePlayBadge && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
1184
1414
|
"a",
|
|
1185
1415
|
{
|
|
1186
1416
|
href: googlePlayBadge.href,
|
|
@@ -1188,10 +1418,10 @@ var DerivGoBadges = ({
|
|
|
1188
1418
|
"aria-label": googlePlayBadge.imageAlt,
|
|
1189
1419
|
target: "_blank",
|
|
1190
1420
|
rel: "noopener noreferrer",
|
|
1191
|
-
children: googlePlayBadge.icon ?? /* @__PURE__ */ (0,
|
|
1421
|
+
children: googlePlayBadge.icon ?? /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("img", { src: googlePlayBadge.imageSrc, alt: googlePlayBadge.imageAlt })
|
|
1192
1422
|
}
|
|
1193
1423
|
),
|
|
1194
|
-
appStoreBadge && /* @__PURE__ */ (0,
|
|
1424
|
+
appStoreBadge && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
1195
1425
|
"a",
|
|
1196
1426
|
{
|
|
1197
1427
|
href: appStoreBadge.href,
|
|
@@ -1199,10 +1429,10 @@ var DerivGoBadges = ({
|
|
|
1199
1429
|
"aria-label": appStoreBadge.imageAlt,
|
|
1200
1430
|
target: "_blank",
|
|
1201
1431
|
rel: "noopener noreferrer",
|
|
1202
|
-
children: appStoreBadge.icon ?? /* @__PURE__ */ (0,
|
|
1432
|
+
children: appStoreBadge.icon ?? /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("img", { src: appStoreBadge.imageSrc, alt: appStoreBadge.imageAlt })
|
|
1203
1433
|
}
|
|
1204
1434
|
),
|
|
1205
|
-
huaweiBadge && /* @__PURE__ */ (0,
|
|
1435
|
+
huaweiBadge && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
1206
1436
|
"a",
|
|
1207
1437
|
{
|
|
1208
1438
|
href: huaweiBadge.href,
|
|
@@ -1210,13 +1440,13 @@ var DerivGoBadges = ({
|
|
|
1210
1440
|
"aria-label": huaweiBadge.imageAlt,
|
|
1211
1441
|
target: "_blank",
|
|
1212
1442
|
rel: "noopener noreferrer",
|
|
1213
|
-
children: huaweiBadge.icon ?? /* @__PURE__ */ (0,
|
|
1443
|
+
children: huaweiBadge.icon ?? /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("img", { src: huaweiBadge.imageSrc, alt: huaweiBadge.imageAlt })
|
|
1214
1444
|
}
|
|
1215
1445
|
)
|
|
1216
1446
|
] }),
|
|
1217
|
-
availabilityNote && /* @__PURE__ */ (0,
|
|
1447
|
+
availabilityNote && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("p", { className: "footer__app-note", children: availabilityNote })
|
|
1218
1448
|
] });
|
|
1219
|
-
var NavLink = ({ label, href, isExternal, onClick }) => /* @__PURE__ */ (0,
|
|
1449
|
+
var NavLink = ({ label, href, isExternal, onClick }) => /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
1220
1450
|
"a",
|
|
1221
1451
|
{
|
|
1222
1452
|
href,
|
|
@@ -1225,7 +1455,7 @@ var NavLink = ({ label, href, isExternal, onClick }) => /* @__PURE__ */ (0, impo
|
|
|
1225
1455
|
...isExternal ? { target: "_blank", rel: "noopener noreferrer" } : {},
|
|
1226
1456
|
children: [
|
|
1227
1457
|
label,
|
|
1228
|
-
isExternal && /* @__PURE__ */ (0,
|
|
1458
|
+
isExternal && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(ExternalLinkIcon, {})
|
|
1229
1459
|
]
|
|
1230
1460
|
}
|
|
1231
1461
|
);
|
|
@@ -1257,14 +1487,14 @@ var Footer = ({
|
|
|
1257
1487
|
});
|
|
1258
1488
|
};
|
|
1259
1489
|
const aiLabel = aiSummary?.label ?? "Ask AI for a summary of Deriv";
|
|
1260
|
-
return /* @__PURE__ */ (0,
|
|
1490
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
1261
1491
|
"footer",
|
|
1262
1492
|
{
|
|
1263
1493
|
className: ["footer", className].filter(Boolean).join(" "),
|
|
1264
1494
|
...props,
|
|
1265
|
-
children: /* @__PURE__ */ (0,
|
|
1266
|
-
/* @__PURE__ */ (0,
|
|
1267
|
-
/* @__PURE__ */ (0,
|
|
1495
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { className: "footer__inner", children: [
|
|
1496
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { className: "footer__header", children: [
|
|
1497
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "footer__logo-wrapper", children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
1268
1498
|
"img",
|
|
1269
1499
|
{
|
|
1270
1500
|
src: logoSrc,
|
|
@@ -1272,21 +1502,21 @@ var Footer = ({
|
|
|
1272
1502
|
className: "footer__logo"
|
|
1273
1503
|
}
|
|
1274
1504
|
) }),
|
|
1275
|
-
aiSummary && /* @__PURE__ */ (0,
|
|
1276
|
-
/* @__PURE__ */ (0,
|
|
1277
|
-
/* @__PURE__ */ (0,
|
|
1505
|
+
aiSummary && /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { className: "footer__ai-bar footer__ai-bar--inline", children: [
|
|
1506
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { className: "footer__ai-bar-label", children: aiLabel }),
|
|
1507
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "footer__ai-bar-icons", children: aiSummary.items.map((item, i) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
1278
1508
|
"a",
|
|
1279
1509
|
{
|
|
1280
1510
|
href: item.href,
|
|
1281
1511
|
"aria-label": item.imageAlt,
|
|
1282
1512
|
target: "_blank",
|
|
1283
1513
|
rel: "noopener noreferrer",
|
|
1284
|
-
children: /* @__PURE__ */ (0,
|
|
1514
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("img", { className: "footer__ai-icon", src: item.imageSrc, alt: item.imageAlt })
|
|
1285
1515
|
},
|
|
1286
1516
|
i
|
|
1287
1517
|
)) })
|
|
1288
1518
|
] }),
|
|
1289
|
-
/* @__PURE__ */ (0,
|
|
1519
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "footer__social footer__social--in-header", children: socialLinks.map((link, i) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
1290
1520
|
"a",
|
|
1291
1521
|
{
|
|
1292
1522
|
href: link.href,
|
|
@@ -1299,27 +1529,27 @@ var Footer = ({
|
|
|
1299
1529
|
i
|
|
1300
1530
|
)) })
|
|
1301
1531
|
] }),
|
|
1302
|
-
aiSummary && /* @__PURE__ */ (0,
|
|
1303
|
-
/* @__PURE__ */ (0,
|
|
1304
|
-
/* @__PURE__ */ (0,
|
|
1532
|
+
aiSummary && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "footer__ai-section", children: /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { className: "footer__ai-bar footer__ai-bar--block", children: [
|
|
1533
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { className: "footer__ai-bar-label", children: aiLabel }),
|
|
1534
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "footer__ai-bar-icons", children: aiSummary.items.map((item, i) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
1305
1535
|
"a",
|
|
1306
1536
|
{
|
|
1307
1537
|
href: item.href,
|
|
1308
1538
|
"aria-label": item.imageAlt,
|
|
1309
1539
|
target: "_blank",
|
|
1310
1540
|
rel: "noopener noreferrer",
|
|
1311
|
-
children: /* @__PURE__ */ (0,
|
|
1541
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("img", { className: "footer__ai-icon", src: item.imageSrc, alt: item.imageAlt })
|
|
1312
1542
|
},
|
|
1313
1543
|
i
|
|
1314
1544
|
)) })
|
|
1315
1545
|
] }) }),
|
|
1316
|
-
/* @__PURE__ */ (0,
|
|
1317
|
-
navColumns.map((column, colIdx) => /* @__PURE__ */ (0,
|
|
1318
|
-
/* @__PURE__ */ (0,
|
|
1319
|
-
/* @__PURE__ */ (0,
|
|
1546
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { className: "footer__nav footer__nav--columns", children: [
|
|
1547
|
+
navColumns.map((column, colIdx) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "footer__column", children: column.map((section, secIdx) => /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { className: "footer__nav-section", children: [
|
|
1548
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)("p", { className: "footer__nav-title", children: section.title }),
|
|
1549
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)("ul", { className: "footer__nav-links", children: section.links.map((link, linkIdx) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(NavLink, { ...link }) }, linkIdx)) })
|
|
1320
1550
|
] }, secIdx)) }, colIdx)),
|
|
1321
|
-
/* @__PURE__ */ (0,
|
|
1322
|
-
investorsInPeopleSrc && /* @__PURE__ */ (0,
|
|
1551
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { className: "footer__sidebar", children: [
|
|
1552
|
+
investorsInPeopleSrc && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "footer__investors-card", children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
1323
1553
|
"img",
|
|
1324
1554
|
{
|
|
1325
1555
|
src: investorsInPeopleSrc,
|
|
@@ -1327,9 +1557,9 @@ var Footer = ({
|
|
|
1327
1557
|
className: "footer__investors-img"
|
|
1328
1558
|
}
|
|
1329
1559
|
) }),
|
|
1330
|
-
derivGo && /* @__PURE__ */ (0,
|
|
1331
|
-
/* @__PURE__ */ (0,
|
|
1332
|
-
/* @__PURE__ */ (0,
|
|
1560
|
+
derivGo && /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { className: "footer__deriv-go-card", children: [
|
|
1561
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { className: "footer__deriv-go-header", children: [
|
|
1562
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
1333
1563
|
"img",
|
|
1334
1564
|
{
|
|
1335
1565
|
src: derivGo.logoSrc,
|
|
@@ -1337,11 +1567,11 @@ var Footer = ({
|
|
|
1337
1567
|
className: "footer__deriv-go-logo"
|
|
1338
1568
|
}
|
|
1339
1569
|
),
|
|
1340
|
-
/* @__PURE__ */ (0,
|
|
1570
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { className: "footer__deriv-go-title", children: derivGo.title ?? "Deriv GO" })
|
|
1341
1571
|
] }),
|
|
1342
|
-
/* @__PURE__ */ (0,
|
|
1343
|
-
(derivGo.qrCodeSrc || derivGo.qrCodeIcon) && /* @__PURE__ */ (0,
|
|
1344
|
-
derivGo.qrCodeIcon ? /* @__PURE__ */ (0,
|
|
1572
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)("p", { className: "footer__deriv-go-desc", children: derivGo.description ?? "Trade multipliers on our mobile app." }),
|
|
1573
|
+
(derivGo.qrCodeSrc || derivGo.qrCodeIcon) && /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { className: "footer__deriv-go-qr", children: [
|
|
1574
|
+
derivGo.qrCodeIcon ? /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "footer__deriv-go-qr-icon", children: derivGo.qrCodeIcon }) : /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
1345
1575
|
"img",
|
|
1346
1576
|
{
|
|
1347
1577
|
src: derivGo.qrCodeSrc,
|
|
@@ -1349,9 +1579,9 @@ var Footer = ({
|
|
|
1349
1579
|
className: "footer__deriv-go-qr-img"
|
|
1350
1580
|
}
|
|
1351
1581
|
),
|
|
1352
|
-
/* @__PURE__ */ (0,
|
|
1582
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { className: "footer__deriv-go-qr-label", children: derivGo.scanToDownloadLabel ?? "Scan to download" })
|
|
1353
1583
|
] }),
|
|
1354
|
-
/* @__PURE__ */ (0,
|
|
1584
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
1355
1585
|
DerivGoBadges,
|
|
1356
1586
|
{
|
|
1357
1587
|
googlePlayBadge: derivGo.googlePlayBadge,
|
|
@@ -1363,9 +1593,9 @@ var Footer = ({
|
|
|
1363
1593
|
] })
|
|
1364
1594
|
] })
|
|
1365
1595
|
] }),
|
|
1366
|
-
/* @__PURE__ */ (0,
|
|
1596
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "footer__nav footer__nav--accordion", children: allSections.map((section, idx) => {
|
|
1367
1597
|
const isOpen = openSections.has(idx);
|
|
1368
|
-
return /* @__PURE__ */ (0,
|
|
1598
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
1369
1599
|
"div",
|
|
1370
1600
|
{
|
|
1371
1601
|
className: [
|
|
@@ -1373,7 +1603,7 @@ var Footer = ({
|
|
|
1373
1603
|
isOpen && "footer__accordion-item--open"
|
|
1374
1604
|
].filter(Boolean).join(" "),
|
|
1375
1605
|
children: [
|
|
1376
|
-
/* @__PURE__ */ (0,
|
|
1606
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
1377
1607
|
"button",
|
|
1378
1608
|
{
|
|
1379
1609
|
type: "button",
|
|
@@ -1381,18 +1611,18 @@ var Footer = ({
|
|
|
1381
1611
|
onClick: () => toggleSection(idx),
|
|
1382
1612
|
"aria-expanded": isOpen,
|
|
1383
1613
|
children: [
|
|
1384
|
-
/* @__PURE__ */ (0,
|
|
1385
|
-
/* @__PURE__ */ (0,
|
|
1614
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { className: "footer__accordion-label", children: section.title }),
|
|
1615
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { className: "footer__accordion-chevron", children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(ChevronDownIcon2, {}) })
|
|
1386
1616
|
]
|
|
1387
1617
|
}
|
|
1388
1618
|
),
|
|
1389
|
-
isOpen && /* @__PURE__ */ (0,
|
|
1619
|
+
isOpen && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("ul", { className: "footer__accordion-links", children: section.links.map((link, linkIdx) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(NavLink, { ...link }) }, linkIdx)) })
|
|
1390
1620
|
]
|
|
1391
1621
|
},
|
|
1392
1622
|
idx
|
|
1393
1623
|
);
|
|
1394
1624
|
}) }),
|
|
1395
|
-
socialLinks.length > 0 && /* @__PURE__ */ (0,
|
|
1625
|
+
socialLinks.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "footer__social footer__social--standalone", children: socialLinks.map((link, i) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
1396
1626
|
"a",
|
|
1397
1627
|
{
|
|
1398
1628
|
href: link.href,
|
|
@@ -1404,10 +1634,10 @@ var Footer = ({
|
|
|
1404
1634
|
},
|
|
1405
1635
|
i
|
|
1406
1636
|
)) }),
|
|
1407
|
-
derivGo && /* @__PURE__ */ (0,
|
|
1408
|
-
/* @__PURE__ */ (0,
|
|
1409
|
-
/* @__PURE__ */ (0,
|
|
1410
|
-
/* @__PURE__ */ (0,
|
|
1637
|
+
derivGo && /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { className: "footer__deriv-go-banner", children: [
|
|
1638
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { className: "footer__deriv-go-banner-info", children: [
|
|
1639
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { className: "footer__deriv-go-header", children: [
|
|
1640
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
1411
1641
|
"img",
|
|
1412
1642
|
{
|
|
1413
1643
|
src: derivGo.logoSrc,
|
|
@@ -1415,11 +1645,11 @@ var Footer = ({
|
|
|
1415
1645
|
className: "footer__deriv-go-logo"
|
|
1416
1646
|
}
|
|
1417
1647
|
),
|
|
1418
|
-
/* @__PURE__ */ (0,
|
|
1648
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { className: "footer__deriv-go-title", children: derivGo.title ?? "Deriv GO" })
|
|
1419
1649
|
] }),
|
|
1420
|
-
/* @__PURE__ */ (0,
|
|
1650
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)("p", { className: "footer__deriv-go-desc", children: derivGo.description ?? "Trade multipliers on our mobile app." })
|
|
1421
1651
|
] }),
|
|
1422
|
-
/* @__PURE__ */ (0,
|
|
1652
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "footer__deriv-go-banner-badges", children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
1423
1653
|
DerivGoBadges,
|
|
1424
1654
|
{
|
|
1425
1655
|
googlePlayBadge: derivGo.googlePlayBadge,
|
|
@@ -1429,11 +1659,11 @@ var Footer = ({
|
|
|
1429
1659
|
}
|
|
1430
1660
|
) })
|
|
1431
1661
|
] }),
|
|
1432
|
-
(licenseText || riskWarningText) && /* @__PURE__ */ (0,
|
|
1433
|
-
licenseText && /* @__PURE__ */ (0,
|
|
1434
|
-
riskWarningText && /* @__PURE__ */ (0,
|
|
1662
|
+
(licenseText || riskWarningText) && /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { className: "footer__legal-block", children: [
|
|
1663
|
+
licenseText && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "footer__license", children: licenseText }),
|
|
1664
|
+
riskWarningText && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "footer__risk-warning", children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("p", { className: "footer__risk-warning-text", children: riskWarningText }) })
|
|
1435
1665
|
] }),
|
|
1436
|
-
investorsInPeopleSrc && /* @__PURE__ */ (0,
|
|
1666
|
+
investorsInPeopleSrc && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "footer__investors-stacked", children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
1437
1667
|
"img",
|
|
1438
1668
|
{
|
|
1439
1669
|
src: investorsInPeopleSrc,
|
|
@@ -1448,12 +1678,12 @@ var Footer = ({
|
|
|
1448
1678
|
|
|
1449
1679
|
// templates/Hero/Hero.tsx
|
|
1450
1680
|
var import_react8 = require("react");
|
|
1451
|
-
var
|
|
1681
|
+
var import_jsx_runtime21 = require("react/jsx-runtime");
|
|
1452
1682
|
var Visual = ({
|
|
1453
1683
|
src,
|
|
1454
1684
|
className,
|
|
1455
1685
|
alt = ""
|
|
1456
|
-
}) => /* @__PURE__ */ (0,
|
|
1686
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className, children: typeof src === "string" ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("img", { src, alt }) : src });
|
|
1457
1687
|
var Hero = ({
|
|
1458
1688
|
variant,
|
|
1459
1689
|
subtitle,
|
|
@@ -1504,13 +1734,13 @@ var Hero = ({
|
|
|
1504
1734
|
onScroll();
|
|
1505
1735
|
return () => scrollEl.removeEventListener("scroll", onScroll);
|
|
1506
1736
|
}, [variant]);
|
|
1507
|
-
const textBlock = /* @__PURE__ */ (0,
|
|
1508
|
-
subtitle && /* @__PURE__ */ (0,
|
|
1509
|
-
/* @__PURE__ */ (0,
|
|
1510
|
-
description && /* @__PURE__ */ (0,
|
|
1737
|
+
const textBlock = /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "hero__text", children: [
|
|
1738
|
+
subtitle && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("p", { className: "hero__subtitle", children: subtitle }),
|
|
1739
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)("h2", { className: "hero__title", children: title }),
|
|
1740
|
+
description && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("p", { className: "hero__description", children: description })
|
|
1511
1741
|
] });
|
|
1512
|
-
const buttonBlock = (primaryButton || secondaryButton) && /* @__PURE__ */ (0,
|
|
1513
|
-
primaryButton && (primaryButton.href ? /* @__PURE__ */ (0,
|
|
1742
|
+
const buttonBlock = (primaryButton || secondaryButton) && /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "hero__buttons", children: [
|
|
1743
|
+
primaryButton && (primaryButton.href ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("a", { href: primaryButton.href, children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
1514
1744
|
Button,
|
|
1515
1745
|
{
|
|
1516
1746
|
colorScheme: "coral",
|
|
@@ -1518,7 +1748,7 @@ var Hero = ({
|
|
|
1518
1748
|
label: primaryButton.label,
|
|
1519
1749
|
onClick: primaryButton.onClick
|
|
1520
1750
|
}
|
|
1521
|
-
) }) : /* @__PURE__ */ (0,
|
|
1751
|
+
) }) : /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
1522
1752
|
Button,
|
|
1523
1753
|
{
|
|
1524
1754
|
colorScheme: "coral",
|
|
@@ -1527,7 +1757,7 @@ var Hero = ({
|
|
|
1527
1757
|
onClick: primaryButton.onClick
|
|
1528
1758
|
}
|
|
1529
1759
|
)),
|
|
1530
|
-
secondaryButton && (secondaryButton.href ? /* @__PURE__ */ (0,
|
|
1760
|
+
secondaryButton && (secondaryButton.href ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("a", { href: secondaryButton.href, children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
1531
1761
|
Button,
|
|
1532
1762
|
{
|
|
1533
1763
|
colorScheme: "white",
|
|
@@ -1535,7 +1765,7 @@ var Hero = ({
|
|
|
1535
1765
|
label: secondaryButton.label,
|
|
1536
1766
|
onClick: secondaryButton.onClick
|
|
1537
1767
|
}
|
|
1538
|
-
) }) : /* @__PURE__ */ (0,
|
|
1768
|
+
) }) : /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
1539
1769
|
Button,
|
|
1540
1770
|
{
|
|
1541
1771
|
colorScheme: "white",
|
|
@@ -1546,15 +1776,15 @@ var Hero = ({
|
|
|
1546
1776
|
))
|
|
1547
1777
|
] });
|
|
1548
1778
|
if (variant === "split") {
|
|
1549
|
-
return /* @__PURE__ */ (0,
|
|
1779
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
|
|
1550
1780
|
"section",
|
|
1551
1781
|
{
|
|
1552
1782
|
className: ["hero", variantClass, className].filter(Boolean).join(" "),
|
|
1553
1783
|
style: backgroundImageSrc ? { backgroundImage: `url(${backgroundImageSrc})` } : void 0,
|
|
1554
1784
|
...props,
|
|
1555
1785
|
children: [
|
|
1556
|
-
/* @__PURE__ */ (0,
|
|
1557
|
-
heroImage && /* @__PURE__ */ (0,
|
|
1786
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "hero__overlay", "aria-hidden": "true" }),
|
|
1787
|
+
heroImage && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
1558
1788
|
Visual,
|
|
1559
1789
|
{
|
|
1560
1790
|
src: heroImage,
|
|
@@ -1562,14 +1792,14 @@ var Hero = ({
|
|
|
1562
1792
|
alt: ""
|
|
1563
1793
|
}
|
|
1564
1794
|
),
|
|
1565
|
-
/* @__PURE__ */ (0,
|
|
1566
|
-
/* @__PURE__ */ (0,
|
|
1567
|
-
subtitle && /* @__PURE__ */ (0,
|
|
1568
|
-
/* @__PURE__ */ (0,
|
|
1569
|
-
description && /* @__PURE__ */ (0,
|
|
1795
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "hero__inner", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "hero__content", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "hero__left", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "hero__body", children: [
|
|
1796
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "hero__text", children: [
|
|
1797
|
+
subtitle && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("p", { className: "hero__subtitle", children: subtitle }),
|
|
1798
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)("h2", { className: "hero__title", children: title }),
|
|
1799
|
+
description && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("p", { className: "hero__description", children: description })
|
|
1570
1800
|
] }),
|
|
1571
|
-
(primaryButton || secondaryButton) && /* @__PURE__ */ (0,
|
|
1572
|
-
primaryButton && (primaryButton.href ? /* @__PURE__ */ (0,
|
|
1801
|
+
(primaryButton || secondaryButton) && /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "hero__buttons", children: [
|
|
1802
|
+
primaryButton && (primaryButton.href ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("a", { href: primaryButton.href, children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
1573
1803
|
Button,
|
|
1574
1804
|
{
|
|
1575
1805
|
colorScheme: "coral",
|
|
@@ -1577,7 +1807,7 @@ var Hero = ({
|
|
|
1577
1807
|
label: primaryButton.label,
|
|
1578
1808
|
onClick: primaryButton.onClick
|
|
1579
1809
|
}
|
|
1580
|
-
) }) : /* @__PURE__ */ (0,
|
|
1810
|
+
) }) : /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
1581
1811
|
Button,
|
|
1582
1812
|
{
|
|
1583
1813
|
colorScheme: "coral",
|
|
@@ -1586,7 +1816,7 @@ var Hero = ({
|
|
|
1586
1816
|
onClick: primaryButton.onClick
|
|
1587
1817
|
}
|
|
1588
1818
|
)),
|
|
1589
|
-
secondaryButton && (secondaryButton.href ? /* @__PURE__ */ (0,
|
|
1819
|
+
secondaryButton && (secondaryButton.href ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("a", { href: secondaryButton.href, children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
1590
1820
|
Button,
|
|
1591
1821
|
{
|
|
1592
1822
|
colorScheme: "white",
|
|
@@ -1594,7 +1824,7 @@ var Hero = ({
|
|
|
1594
1824
|
label: secondaryButton.label,
|
|
1595
1825
|
onClick: secondaryButton.onClick
|
|
1596
1826
|
}
|
|
1597
|
-
) }) : /* @__PURE__ */ (0,
|
|
1827
|
+
) }) : /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
1598
1828
|
Button,
|
|
1599
1829
|
{
|
|
1600
1830
|
colorScheme: "white",
|
|
@@ -1610,22 +1840,22 @@ var Hero = ({
|
|
|
1610
1840
|
);
|
|
1611
1841
|
}
|
|
1612
1842
|
if (variant === "centered") {
|
|
1613
|
-
return /* @__PURE__ */ (0,
|
|
1843
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
|
|
1614
1844
|
"section",
|
|
1615
1845
|
{
|
|
1616
1846
|
className: ["hero", variantClass, className].filter(Boolean).join(" "),
|
|
1617
1847
|
style: backgroundImageSrc ? { backgroundImage: `url(${backgroundImageSrc})` } : void 0,
|
|
1618
1848
|
...props,
|
|
1619
1849
|
children: [
|
|
1620
|
-
/* @__PURE__ */ (0,
|
|
1621
|
-
/* @__PURE__ */ (0,
|
|
1622
|
-
/* @__PURE__ */ (0,
|
|
1623
|
-
subtitle && /* @__PURE__ */ (0,
|
|
1624
|
-
/* @__PURE__ */ (0,
|
|
1625
|
-
description && /* @__PURE__ */ (0,
|
|
1850
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "hero__overlay", "aria-hidden": "true" }),
|
|
1851
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "hero__inner", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "hero__content", children: [
|
|
1852
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "hero__text", children: [
|
|
1853
|
+
subtitle && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("p", { className: "hero__subtitle", children: subtitle }),
|
|
1854
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)("h2", { className: "hero__title", children: title }),
|
|
1855
|
+
description && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("p", { className: "hero__description", children: description })
|
|
1626
1856
|
] }),
|
|
1627
|
-
(primaryButton || secondaryButton) && /* @__PURE__ */ (0,
|
|
1628
|
-
primaryButton && (primaryButton.href ? /* @__PURE__ */ (0,
|
|
1857
|
+
(primaryButton || secondaryButton) && /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "hero__buttons", children: [
|
|
1858
|
+
primaryButton && (primaryButton.href ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("a", { href: primaryButton.href, children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
1629
1859
|
Button,
|
|
1630
1860
|
{
|
|
1631
1861
|
colorScheme: "coral",
|
|
@@ -1633,7 +1863,7 @@ var Hero = ({
|
|
|
1633
1863
|
label: primaryButton.label,
|
|
1634
1864
|
onClick: primaryButton.onClick
|
|
1635
1865
|
}
|
|
1636
|
-
) }) : /* @__PURE__ */ (0,
|
|
1866
|
+
) }) : /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
1637
1867
|
Button,
|
|
1638
1868
|
{
|
|
1639
1869
|
colorScheme: "coral",
|
|
@@ -1642,7 +1872,7 @@ var Hero = ({
|
|
|
1642
1872
|
onClick: primaryButton.onClick
|
|
1643
1873
|
}
|
|
1644
1874
|
)),
|
|
1645
|
-
secondaryButton && (secondaryButton.href ? /* @__PURE__ */ (0,
|
|
1875
|
+
secondaryButton && (secondaryButton.href ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("a", { href: secondaryButton.href, children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
1646
1876
|
Button,
|
|
1647
1877
|
{
|
|
1648
1878
|
colorScheme: "white",
|
|
@@ -1650,7 +1880,7 @@ var Hero = ({
|
|
|
1650
1880
|
label: secondaryButton.label,
|
|
1651
1881
|
onClick: secondaryButton.onClick
|
|
1652
1882
|
}
|
|
1653
|
-
) }) : /* @__PURE__ */ (0,
|
|
1883
|
+
) }) : /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
1654
1884
|
Button,
|
|
1655
1885
|
{
|
|
1656
1886
|
colorScheme: "white",
|
|
@@ -1666,22 +1896,22 @@ var Hero = ({
|
|
|
1666
1896
|
);
|
|
1667
1897
|
}
|
|
1668
1898
|
if (variant === "showcase") {
|
|
1669
|
-
return /* @__PURE__ */ (0,
|
|
1899
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
|
|
1670
1900
|
"section",
|
|
1671
1901
|
{
|
|
1672
1902
|
className: ["hero", variantClass, className].filter(Boolean).join(" "),
|
|
1673
1903
|
style: backgroundImageSrc ? { backgroundImage: `url(${backgroundImageSrc})` } : void 0,
|
|
1674
1904
|
...props,
|
|
1675
1905
|
children: [
|
|
1676
|
-
/* @__PURE__ */ (0,
|
|
1677
|
-
/* @__PURE__ */ (0,
|
|
1678
|
-
/* @__PURE__ */ (0,
|
|
1679
|
-
subtitle && /* @__PURE__ */ (0,
|
|
1680
|
-
/* @__PURE__ */ (0,
|
|
1681
|
-
description && /* @__PURE__ */ (0,
|
|
1906
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "hero__overlay", "aria-hidden": "true" }),
|
|
1907
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "hero__inner", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "hero__content", children: [
|
|
1908
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "hero__text", children: [
|
|
1909
|
+
subtitle && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("p", { className: "hero__subtitle", children: subtitle }),
|
|
1910
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)("h2", { className: "hero__title", children: title }),
|
|
1911
|
+
description && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("p", { className: "hero__description", children: description })
|
|
1682
1912
|
] }),
|
|
1683
|
-
(primaryButton || secondaryButton) && /* @__PURE__ */ (0,
|
|
1684
|
-
primaryButton && (primaryButton.href ? /* @__PURE__ */ (0,
|
|
1913
|
+
(primaryButton || secondaryButton) && /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "hero__buttons", children: [
|
|
1914
|
+
primaryButton && (primaryButton.href ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("a", { href: primaryButton.href, children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
1685
1915
|
Button,
|
|
1686
1916
|
{
|
|
1687
1917
|
colorScheme: "coral",
|
|
@@ -1689,7 +1919,7 @@ var Hero = ({
|
|
|
1689
1919
|
label: primaryButton.label,
|
|
1690
1920
|
onClick: primaryButton.onClick
|
|
1691
1921
|
}
|
|
1692
|
-
) }) : /* @__PURE__ */ (0,
|
|
1922
|
+
) }) : /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
1693
1923
|
Button,
|
|
1694
1924
|
{
|
|
1695
1925
|
colorScheme: "coral",
|
|
@@ -1698,7 +1928,7 @@ var Hero = ({
|
|
|
1698
1928
|
onClick: primaryButton.onClick
|
|
1699
1929
|
}
|
|
1700
1930
|
)),
|
|
1701
|
-
secondaryButton && (secondaryButton.href ? /* @__PURE__ */ (0,
|
|
1931
|
+
secondaryButton && (secondaryButton.href ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("a", { href: secondaryButton.href, children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
1702
1932
|
Button,
|
|
1703
1933
|
{
|
|
1704
1934
|
colorScheme: "white",
|
|
@@ -1706,7 +1936,7 @@ var Hero = ({
|
|
|
1706
1936
|
label: secondaryButton.label,
|
|
1707
1937
|
onClick: secondaryButton.onClick
|
|
1708
1938
|
}
|
|
1709
|
-
) }) : /* @__PURE__ */ (0,
|
|
1939
|
+
) }) : /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
1710
1940
|
Button,
|
|
1711
1941
|
{
|
|
1712
1942
|
colorScheme: "white",
|
|
@@ -1716,7 +1946,7 @@ var Hero = ({
|
|
|
1716
1946
|
}
|
|
1717
1947
|
))
|
|
1718
1948
|
] }),
|
|
1719
|
-
productImage && /* @__PURE__ */ (0,
|
|
1949
|
+
productImage && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
1720
1950
|
Visual,
|
|
1721
1951
|
{
|
|
1722
1952
|
src: productImage,
|
|
@@ -1724,7 +1954,7 @@ var Hero = ({
|
|
|
1724
1954
|
alt: ""
|
|
1725
1955
|
}
|
|
1726
1956
|
),
|
|
1727
|
-
floatingImage && /* @__PURE__ */ (0,
|
|
1957
|
+
floatingImage && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
1728
1958
|
Visual,
|
|
1729
1959
|
{
|
|
1730
1960
|
src: floatingImage,
|
|
@@ -1737,18 +1967,18 @@ var Hero = ({
|
|
|
1737
1967
|
}
|
|
1738
1968
|
);
|
|
1739
1969
|
}
|
|
1740
|
-
return /* @__PURE__ */ (0,
|
|
1970
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
|
|
1741
1971
|
"section",
|
|
1742
1972
|
{
|
|
1743
1973
|
ref: sectionRef,
|
|
1744
1974
|
className: ["hero", variantClass, className].filter(Boolean).join(" "),
|
|
1745
1975
|
...props,
|
|
1746
1976
|
children: [
|
|
1747
|
-
/* @__PURE__ */ (0,
|
|
1748
|
-
variant === "visuals" && leftVisual && /* @__PURE__ */ (0,
|
|
1749
|
-
variant === "visuals" && rightVisual && /* @__PURE__ */ (0,
|
|
1750
|
-
/* @__PURE__ */ (0,
|
|
1751
|
-
/* @__PURE__ */ (0,
|
|
1977
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "hero__grid", "aria-hidden": "true" }),
|
|
1978
|
+
variant === "visuals" && leftVisual && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { ref: leftRef, className: "hero__visual hero__visual--left", children: typeof leftVisual === "string" ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("img", { src: leftVisual, alt: "" }) : leftVisual }),
|
|
1979
|
+
variant === "visuals" && rightVisual && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { ref: rightRef, className: "hero__visual hero__visual--right", children: typeof rightVisual === "string" ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("img", { src: rightVisual, alt: "" }) : rightVisual }),
|
|
1980
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "hero__overlay", "aria-hidden": "true" }),
|
|
1981
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "hero__inner", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "hero__content", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "hero__body", children: [
|
|
1752
1982
|
textBlock,
|
|
1753
1983
|
buttonBlock
|
|
1754
1984
|
] }) }) })
|
|
@@ -1759,9 +1989,12 @@ var Hero = ({
|
|
|
1759
1989
|
|
|
1760
1990
|
// templates/Stats/Stats.tsx
|
|
1761
1991
|
var import_react9 = require("react");
|
|
1762
|
-
var
|
|
1992
|
+
var import_jsx_runtime22 = require("react/jsx-runtime");
|
|
1763
1993
|
var INTERVAL_MS = 2e3;
|
|
1764
1994
|
var TRANSITION = "transform 0.8s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1)";
|
|
1995
|
+
var PARALLAX_FACTOR = 0.18;
|
|
1996
|
+
var PARALLAX_MAX = 56;
|
|
1997
|
+
var PARALLAX_BP = 992;
|
|
1765
1998
|
function relativePos(index, active, total) {
|
|
1766
1999
|
const raw = ((index - active) % total + total) % total;
|
|
1767
2000
|
return raw > total / 2 ? raw - total : raw;
|
|
@@ -1783,7 +2016,7 @@ function getStatStyle(rel) {
|
|
|
1783
2016
|
transition: TRANSITION
|
|
1784
2017
|
};
|
|
1785
2018
|
}
|
|
1786
|
-
var AwardBadge = ({ imageSrc, imageAlt = "" }) => /* @__PURE__ */ (0,
|
|
2019
|
+
var AwardBadge = ({ imageSrc, imageAlt = "" }) => /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: "stats__award", children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("img", { src: imageSrc, alt: imageAlt, className: "stats__award-image" }) });
|
|
1787
2020
|
var Stats = ({
|
|
1788
2021
|
title,
|
|
1789
2022
|
description,
|
|
@@ -1795,6 +2028,10 @@ var Stats = ({
|
|
|
1795
2028
|
}) => {
|
|
1796
2029
|
const [activeIndex, setActiveIndex] = (0, import_react9.useState)(0);
|
|
1797
2030
|
const intervalRef = (0, import_react9.useRef)(null);
|
|
2031
|
+
const sectionRef = (0, import_react9.useRef)(null);
|
|
2032
|
+
const leftColRef = (0, import_react9.useRef)(null);
|
|
2033
|
+
const rightColRef = (0, import_react9.useRef)(null);
|
|
2034
|
+
const rafRef = (0, import_react9.useRef)(null);
|
|
1798
2035
|
const hasAwards = leftAwards.length > 0 || rightAwards.length > 0;
|
|
1799
2036
|
const allAwards = [...leftAwards, ...rightAwards];
|
|
1800
2037
|
const total = stats.length;
|
|
@@ -1807,25 +2044,55 @@ var Stats = ({
|
|
|
1807
2044
|
if (intervalRef.current) clearInterval(intervalRef.current);
|
|
1808
2045
|
};
|
|
1809
2046
|
}, [total]);
|
|
1810
|
-
|
|
2047
|
+
(0, import_react9.useEffect)(() => {
|
|
2048
|
+
const applyParallax = () => {
|
|
2049
|
+
const section = sectionRef.current;
|
|
2050
|
+
if (!section || window.innerWidth < PARALLAX_BP) {
|
|
2051
|
+
if (leftColRef.current) leftColRef.current.style.transform = "";
|
|
2052
|
+
if (rightColRef.current) rightColRef.current.style.transform = "";
|
|
2053
|
+
return;
|
|
2054
|
+
}
|
|
2055
|
+
const rect = section.getBoundingClientRect();
|
|
2056
|
+
const sectionCenter = rect.top + rect.height / 2;
|
|
2057
|
+
const viewportCenter = window.innerHeight / 2;
|
|
2058
|
+
const raw = (sectionCenter - viewportCenter) * PARALLAX_FACTOR;
|
|
2059
|
+
const delta = Math.max(-PARALLAX_MAX, Math.min(PARALLAX_MAX, raw));
|
|
2060
|
+
if (leftColRef.current) leftColRef.current.style.transform = `translateY(${delta}px)`;
|
|
2061
|
+
if (rightColRef.current) rightColRef.current.style.transform = `translateY(${-delta}px)`;
|
|
2062
|
+
};
|
|
2063
|
+
const onScroll = () => {
|
|
2064
|
+
if (rafRef.current) cancelAnimationFrame(rafRef.current);
|
|
2065
|
+
rafRef.current = requestAnimationFrame(applyParallax);
|
|
2066
|
+
};
|
|
2067
|
+
applyParallax();
|
|
2068
|
+
window.addEventListener("scroll", onScroll, { passive: true });
|
|
2069
|
+
window.addEventListener("resize", onScroll, { passive: true });
|
|
2070
|
+
return () => {
|
|
2071
|
+
window.removeEventListener("scroll", onScroll);
|
|
2072
|
+
window.removeEventListener("resize", onScroll);
|
|
2073
|
+
if (rafRef.current) cancelAnimationFrame(rafRef.current);
|
|
2074
|
+
};
|
|
2075
|
+
}, []);
|
|
2076
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
1811
2077
|
"section",
|
|
1812
2078
|
{
|
|
2079
|
+
ref: sectionRef,
|
|
1813
2080
|
className: ["stats", className].filter(Boolean).join(" "),
|
|
1814
2081
|
...props,
|
|
1815
|
-
children: /* @__PURE__ */ (0,
|
|
1816
|
-
/* @__PURE__ */ (0,
|
|
1817
|
-
/* @__PURE__ */ (0,
|
|
1818
|
-
description && /* @__PURE__ */ (0,
|
|
2082
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("div", { className: "stats__inner", children: [
|
|
2083
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("div", { className: "stats__header", children: [
|
|
2084
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)("h2", { className: "stats__title", children: title }),
|
|
2085
|
+
description && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("p", { className: "stats__description", children: description })
|
|
1819
2086
|
] }),
|
|
1820
|
-
/* @__PURE__ */ (0,
|
|
1821
|
-
leftAwards.length > 0 && /* @__PURE__ */ (0,
|
|
1822
|
-
/* @__PURE__ */ (0,
|
|
1823
|
-
/* @__PURE__ */ (0,
|
|
1824
|
-
/* @__PURE__ */ (0,
|
|
2087
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("div", { className: "stats__content", children: [
|
|
2088
|
+
leftAwards.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { ref: leftColRef, className: "stats__awards-col stats__awards-col--left", children: leftAwards.map((award, i) => /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(AwardBadge, { ...award }, i)) }),
|
|
2089
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: "stats__card", children: /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("div", { className: "stats__card-track", children: [
|
|
2090
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: "stats__fade stats__fade--top", "aria-hidden": "true" }),
|
|
2091
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: "stats__fade stats__fade--bottom", "aria-hidden": "true" }),
|
|
1825
2092
|
stats.map((stat, i) => {
|
|
1826
2093
|
const rel = relativePos(i, activeIndex, total);
|
|
1827
2094
|
const active = rel === 0;
|
|
1828
|
-
return /* @__PURE__ */ (0,
|
|
2095
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
|
|
1829
2096
|
"div",
|
|
1830
2097
|
{
|
|
1831
2098
|
className: [
|
|
@@ -1835,16 +2102,16 @@ var Stats = ({
|
|
|
1835
2102
|
style: getStatStyle(rel),
|
|
1836
2103
|
"aria-hidden": !active,
|
|
1837
2104
|
children: [
|
|
1838
|
-
/* @__PURE__ */ (0,
|
|
1839
|
-
/* @__PURE__ */ (0,
|
|
2105
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)("span", { className: "stats__stat-value", children: stat.value }),
|
|
2106
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)("span", { className: "stats__stat-label", children: stat.label })
|
|
1840
2107
|
]
|
|
1841
2108
|
},
|
|
1842
2109
|
i
|
|
1843
2110
|
);
|
|
1844
2111
|
})
|
|
1845
2112
|
] }) }),
|
|
1846
|
-
rightAwards.length > 0 && /* @__PURE__ */ (0,
|
|
1847
|
-
hasAwards && /* @__PURE__ */ (0,
|
|
2113
|
+
rightAwards.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { ref: rightColRef, className: "stats__awards-col stats__awards-col--right", children: rightAwards.map((award, i) => /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(AwardBadge, { ...award }, i)) }),
|
|
2114
|
+
hasAwards && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: "stats__awards-mobile", children: allAwards.map((award, i) => /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(AwardBadge, { ...award }, i)) })
|
|
1848
2115
|
] })
|
|
1849
2116
|
] })
|
|
1850
2117
|
}
|
|
@@ -1857,7 +2124,7 @@ var import_react11 = require("react");
|
|
|
1857
2124
|
// components/DotLottieInView/DotLottieInView.tsx
|
|
1858
2125
|
var import_react10 = require("react");
|
|
1859
2126
|
var import_dotlottie_react = require("@lottiefiles/dotlottie-react");
|
|
1860
|
-
var
|
|
2127
|
+
var import_jsx_runtime23 = require("react/jsx-runtime");
|
|
1861
2128
|
function DotLottieInView({
|
|
1862
2129
|
enabled = true,
|
|
1863
2130
|
rootMargin = "0px",
|
|
@@ -1890,7 +2157,7 @@ function DotLottieInView({
|
|
|
1890
2157
|
dotLottie.stop();
|
|
1891
2158
|
dotLottie.play();
|
|
1892
2159
|
}, [dotLottie, enabled, inView]);
|
|
1893
|
-
return /* @__PURE__ */ (0,
|
|
2160
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
1894
2161
|
"div",
|
|
1895
2162
|
{
|
|
1896
2163
|
ref: wrapRef,
|
|
@@ -1905,7 +2172,7 @@ function DotLottieInView({
|
|
|
1905
2172
|
backgroundColor: "transparent",
|
|
1906
2173
|
...style
|
|
1907
2174
|
},
|
|
1908
|
-
children: /* @__PURE__ */ (0,
|
|
2175
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
1909
2176
|
import_dotlottie_react.DotLottieReact,
|
|
1910
2177
|
{
|
|
1911
2178
|
...dotProps,
|
|
@@ -1919,7 +2186,7 @@ function DotLottieInView({
|
|
|
1919
2186
|
}
|
|
1920
2187
|
|
|
1921
2188
|
// templates/FeatureScroll/FeatureScroll.tsx
|
|
1922
|
-
var
|
|
2189
|
+
var import_jsx_runtime24 = require("react/jsx-runtime");
|
|
1923
2190
|
var FEATURE_SCROLL_DATA = [
|
|
1924
2191
|
{
|
|
1925
2192
|
title: "Forex",
|
|
@@ -1964,7 +2231,7 @@ var FEATURE_SCROLL_DATA = [
|
|
|
1964
2231
|
mediaUrl: "https://cdn.prod.website-files.com/66fbaad381fa6866fa4991f3/675a9064f2c16e4e0732abfb_Stock%20Indices.lottie"
|
|
1965
2232
|
}
|
|
1966
2233
|
];
|
|
1967
|
-
var ChevronRight2 = () => /* @__PURE__ */ (0,
|
|
2234
|
+
var ChevronRight2 = () => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
1968
2235
|
"svg",
|
|
1969
2236
|
{
|
|
1970
2237
|
className: "fs__item-link-icon",
|
|
@@ -1973,7 +2240,7 @@ var ChevronRight2 = () => /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
|
1973
2240
|
viewBox: "0 0 16 16",
|
|
1974
2241
|
fill: "none",
|
|
1975
2242
|
"aria-hidden": "true",
|
|
1976
|
-
children: /* @__PURE__ */ (0,
|
|
2243
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
1977
2244
|
"path",
|
|
1978
2245
|
{
|
|
1979
2246
|
d: "M6 3l5 5-5 5",
|
|
@@ -1991,7 +2258,7 @@ function resolveMediaType(item) {
|
|
|
1991
2258
|
}
|
|
1992
2259
|
var MediaRenderer = ({ item, active }) => {
|
|
1993
2260
|
if (resolveMediaType(item) === "lottie") {
|
|
1994
|
-
return /* @__PURE__ */ (0,
|
|
2261
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
1995
2262
|
DotLottieInView,
|
|
1996
2263
|
{
|
|
1997
2264
|
src: item.mediaUrl,
|
|
@@ -1999,7 +2266,7 @@ var MediaRenderer = ({ item, active }) => {
|
|
|
1999
2266
|
}
|
|
2000
2267
|
);
|
|
2001
2268
|
}
|
|
2002
|
-
return /* @__PURE__ */ (0,
|
|
2269
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
2003
2270
|
"img",
|
|
2004
2271
|
{
|
|
2005
2272
|
src: item.mediaUrl,
|
|
@@ -2070,24 +2337,24 @@ var FeatureScroll = ({
|
|
|
2070
2337
|
className
|
|
2071
2338
|
].filter(Boolean).join(" ");
|
|
2072
2339
|
if (items.length === 0) {
|
|
2073
|
-
return /* @__PURE__ */ (0,
|
|
2340
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("section", { className: rootClass, ...props, children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: "fs__inner", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("h2", { className: "fs__header", children: header }) }) });
|
|
2074
2341
|
}
|
|
2075
|
-
return /* @__PURE__ */ (0,
|
|
2076
|
-
/* @__PURE__ */ (0,
|
|
2077
|
-
/* @__PURE__ */ (0,
|
|
2078
|
-
/* @__PURE__ */ (0,
|
|
2342
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("section", { className: rootClass, ...props, children: /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { className: "fs__inner", children: [
|
|
2343
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("h2", { className: "fs__header", children: header }),
|
|
2344
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { className: "fs__layout", children: [
|
|
2345
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: "fs__media-col", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
2079
2346
|
"div",
|
|
2080
2347
|
{
|
|
2081
2348
|
ref: mediaColRef,
|
|
2082
2349
|
className: "fs__media-sticky",
|
|
2083
|
-
children: /* @__PURE__ */ (0,
|
|
2350
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: "fs__media-wrap", children: items.map((item, i) => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
2084
2351
|
"div",
|
|
2085
2352
|
{
|
|
2086
2353
|
className: [
|
|
2087
2354
|
"fs__media-item",
|
|
2088
2355
|
i === activeIndex ? "fs__media-item--active" : ""
|
|
2089
2356
|
].filter(Boolean).join(" "),
|
|
2090
|
-
children: /* @__PURE__ */ (0,
|
|
2357
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
2091
2358
|
MediaRenderer,
|
|
2092
2359
|
{
|
|
2093
2360
|
item,
|
|
@@ -2099,12 +2366,12 @@ var FeatureScroll = ({
|
|
|
2099
2366
|
)) })
|
|
2100
2367
|
}
|
|
2101
2368
|
) }),
|
|
2102
|
-
/* @__PURE__ */ (0,
|
|
2369
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: "fs__content-col", children: items.map((item, i) => /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
|
|
2103
2370
|
"div",
|
|
2104
2371
|
{
|
|
2105
2372
|
className: "fs__item",
|
|
2106
2373
|
children: [
|
|
2107
|
-
/* @__PURE__ */ (0,
|
|
2374
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
2108
2375
|
"h3",
|
|
2109
2376
|
{
|
|
2110
2377
|
ref: (el) => {
|
|
@@ -2114,15 +2381,15 @@ var FeatureScroll = ({
|
|
|
2114
2381
|
children: item.title
|
|
2115
2382
|
}
|
|
2116
2383
|
),
|
|
2117
|
-
/* @__PURE__ */ (0,
|
|
2118
|
-
/* @__PURE__ */ (0,
|
|
2384
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("p", { className: "fs__item-desc", children: item.description }),
|
|
2385
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
|
|
2119
2386
|
"a",
|
|
2120
2387
|
{
|
|
2121
2388
|
href: item.link,
|
|
2122
2389
|
className: "fs__item-link",
|
|
2123
2390
|
children: [
|
|
2124
|
-
/* @__PURE__ */ (0,
|
|
2125
|
-
/* @__PURE__ */ (0,
|
|
2391
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("span", { children: item.linkLabel }),
|
|
2392
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(ChevronRight2, {})
|
|
2126
2393
|
]
|
|
2127
2394
|
}
|
|
2128
2395
|
)
|
|
@@ -2131,18 +2398,18 @@ var FeatureScroll = ({
|
|
|
2131
2398
|
i
|
|
2132
2399
|
)) })
|
|
2133
2400
|
] }),
|
|
2134
|
-
/* @__PURE__ */ (0,
|
|
2135
|
-
/* @__PURE__ */ (0,
|
|
2136
|
-
/* @__PURE__ */ (0,
|
|
2137
|
-
/* @__PURE__ */ (0,
|
|
2138
|
-
/* @__PURE__ */ (0,
|
|
2401
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: "fs__mobile-list", children: items.map((item, i) => /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { className: "fs__mobile-item", children: [
|
|
2402
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("h3", { className: "fs__item-title", children: item.title }),
|
|
2403
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: "fs__mobile-media", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(MediaRenderer, { item, active: true }) }),
|
|
2404
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("p", { className: "fs__item-desc", children: item.description }),
|
|
2405
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
|
|
2139
2406
|
"a",
|
|
2140
2407
|
{
|
|
2141
2408
|
href: item.link,
|
|
2142
2409
|
className: "fs__item-link",
|
|
2143
2410
|
children: [
|
|
2144
|
-
/* @__PURE__ */ (0,
|
|
2145
|
-
/* @__PURE__ */ (0,
|
|
2411
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("span", { children: item.linkLabel }),
|
|
2412
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(ChevronRight2, {})
|
|
2146
2413
|
]
|
|
2147
2414
|
}
|
|
2148
2415
|
)
|
|
@@ -2152,7 +2419,7 @@ var FeatureScroll = ({
|
|
|
2152
2419
|
|
|
2153
2420
|
// templates/StickyStackedCards/StickyStackedCards.tsx
|
|
2154
2421
|
var import_react12 = require("react");
|
|
2155
|
-
var
|
|
2422
|
+
var import_jsx_runtime25 = require("react/jsx-runtime");
|
|
2156
2423
|
var PLACEHOLDER_IMAGE = "https://cdn.prod.website-files.com/68da5c86c91c54f39c86c28a/69b9309379ac08e59ca8210a_1f3f555da9a5cbb13a6fe1bf0d5fe1b6_placeholder-image.webp";
|
|
2157
2424
|
var STEPS_DATA = [
|
|
2158
2425
|
{
|
|
@@ -2216,14 +2483,14 @@ var StickyStackedCards = ({
|
|
|
2216
2483
|
cancelAnimationFrame(rafId);
|
|
2217
2484
|
};
|
|
2218
2485
|
}, [items.length]);
|
|
2219
|
-
return /* @__PURE__ */ (0,
|
|
2486
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
2220
2487
|
"section",
|
|
2221
2488
|
{
|
|
2222
2489
|
className: ["ssc", className].filter(Boolean).join(" "),
|
|
2223
2490
|
...props,
|
|
2224
|
-
children: /* @__PURE__ */ (0,
|
|
2225
|
-
/* @__PURE__ */ (0,
|
|
2226
|
-
/* @__PURE__ */ (0,
|
|
2491
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: "ssc__inner", children: [
|
|
2492
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)("h2", { className: "ssc__header", children: header }),
|
|
2493
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: "ssc__track", children: items.map((item, i) => /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
|
|
2227
2494
|
"div",
|
|
2228
2495
|
{
|
|
2229
2496
|
ref: (el) => {
|
|
@@ -2249,11 +2516,11 @@ var StickyStackedCards = ({
|
|
|
2249
2516
|
top: `calc(var(--ssc-sticky-top) + ${i} * var(--ssc-peek-offset))`
|
|
2250
2517
|
},
|
|
2251
2518
|
children: [
|
|
2252
|
-
/* @__PURE__ */ (0,
|
|
2253
|
-
/* @__PURE__ */ (0,
|
|
2254
|
-
/* @__PURE__ */ (0,
|
|
2519
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: "ssc__card-content", children: [
|
|
2520
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)("h3", { className: "ssc__card-title", children: item.title }),
|
|
2521
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)("p", { className: "ssc__card-desc", children: item.description })
|
|
2255
2522
|
] }),
|
|
2256
|
-
/* @__PURE__ */ (0,
|
|
2523
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: "ssc__card-image", children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
2257
2524
|
"img",
|
|
2258
2525
|
{
|
|
2259
2526
|
src: item.imageUrl,
|
|
@@ -2273,7 +2540,7 @@ var StickyStackedCards = ({
|
|
|
2273
2540
|
// templates/CTABanner/CTABanner.tsx
|
|
2274
2541
|
var import_react13 = require("react");
|
|
2275
2542
|
var import_framer_motion = require("framer-motion");
|
|
2276
|
-
var
|
|
2543
|
+
var import_jsx_runtime26 = require("react/jsx-runtime");
|
|
2277
2544
|
var ENTRANCE = {
|
|
2278
2545
|
near: 80,
|
|
2279
2546
|
mid: 130,
|
|
@@ -2537,14 +2804,14 @@ var CTABanner = ({
|
|
|
2537
2804
|
const compactXValues = useCompactAvatarXValues(smooth);
|
|
2538
2805
|
const avatarYValues = variant === "compact" ? compactYValues : standardYValues;
|
|
2539
2806
|
const avatarXValues = variant === "compact" ? compactXValues : standardXValues;
|
|
2540
|
-
return /* @__PURE__ */ (0,
|
|
2807
|
+
return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
|
|
2541
2808
|
"section",
|
|
2542
2809
|
{
|
|
2543
2810
|
ref: sectionRef,
|
|
2544
2811
|
className: ["ctab", variant === "compact" ? "ctab--compact" : "", className].filter(Boolean).join(" "),
|
|
2545
2812
|
...props,
|
|
2546
2813
|
children: [
|
|
2547
|
-
/* @__PURE__ */ (0,
|
|
2814
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
2548
2815
|
import_framer_motion.motion.div,
|
|
2549
2816
|
{
|
|
2550
2817
|
className: "ctab__grid",
|
|
@@ -2552,7 +2819,7 @@ var CTABanner = ({
|
|
|
2552
2819
|
"aria-hidden": "true"
|
|
2553
2820
|
}
|
|
2554
2821
|
),
|
|
2555
|
-
/* @__PURE__ */ (0,
|
|
2822
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)("div", { className: "ctab__inner", children: /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: "ctab__stage", children: [
|
|
2556
2823
|
resolvedAvatars.map((avatar, index) => {
|
|
2557
2824
|
const posStyle = {};
|
|
2558
2825
|
if (avatar.desktopPos.left) posStyle["--av-d-left"] = avatar.desktopPos.left;
|
|
@@ -2561,7 +2828,7 @@ var CTABanner = ({
|
|
|
2561
2828
|
if (avatar.mobilePos?.left) posStyle["--av-m-left"] = avatar.mobilePos.left;
|
|
2562
2829
|
if (avatar.mobilePos?.right) posStyle["--av-m-right"] = avatar.mobilePos.right;
|
|
2563
2830
|
if (avatar.mobilePos?.top) posStyle["--av-m-top"] = avatar.mobilePos.top;
|
|
2564
|
-
return /* @__PURE__ */ (0,
|
|
2831
|
+
return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
2565
2832
|
import_framer_motion.motion.div,
|
|
2566
2833
|
{
|
|
2567
2834
|
className: [
|
|
@@ -2575,7 +2842,7 @@ var CTABanner = ({
|
|
|
2575
2842
|
opacity: avatarOpacity,
|
|
2576
2843
|
filter: avatarFilter
|
|
2577
2844
|
},
|
|
2578
|
-
children: /* @__PURE__ */ (0,
|
|
2845
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
2579
2846
|
"img",
|
|
2580
2847
|
{
|
|
2581
2848
|
src: avatar.imageUrl,
|
|
@@ -2588,14 +2855,14 @@ var CTABanner = ({
|
|
|
2588
2855
|
avatar.id
|
|
2589
2856
|
);
|
|
2590
2857
|
}),
|
|
2591
|
-
/* @__PURE__ */ (0,
|
|
2858
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
|
|
2592
2859
|
import_framer_motion.motion.div,
|
|
2593
2860
|
{
|
|
2594
2861
|
className: "ctab__hero",
|
|
2595
2862
|
style: { y: heroY, opacity: heroOpacity },
|
|
2596
2863
|
children: [
|
|
2597
|
-
/* @__PURE__ */ (0,
|
|
2598
|
-
/* @__PURE__ */ (0,
|
|
2864
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)("h2", { className: "ctab__headline", children: headline }),
|
|
2865
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)("a", { href: ctaHref, children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Button, { colorScheme: "black", variant: "primary", label: ctaLabel }) })
|
|
2599
2866
|
]
|
|
2600
2867
|
}
|
|
2601
2868
|
)
|
|
@@ -2613,7 +2880,7 @@ var import_framer_motion2 = require("framer-motion");
|
|
|
2613
2880
|
var icon_globe_default = "./icon-globe-S54WYYEK.svg";
|
|
2614
2881
|
|
|
2615
2882
|
// components/Navbar/Navbar.tsx
|
|
2616
|
-
var
|
|
2883
|
+
var import_jsx_runtime27 = require("react/jsx-runtime");
|
|
2617
2884
|
var EASE_OUT_EXPO = [0.16, 1, 0.3, 1];
|
|
2618
2885
|
var dropdownVariants = {
|
|
2619
2886
|
hidden: { opacity: 0, scale: 0.96, y: -8 },
|
|
@@ -2627,7 +2894,7 @@ var accordionVariants = {
|
|
|
2627
2894
|
hidden: { height: 0, opacity: 0 },
|
|
2628
2895
|
visible: { height: "auto", opacity: 1 }
|
|
2629
2896
|
};
|
|
2630
|
-
var ChevronDownIcon3 = ({ className }) => /* @__PURE__ */ (0,
|
|
2897
|
+
var ChevronDownIcon3 = ({ className }) => /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
2631
2898
|
"svg",
|
|
2632
2899
|
{
|
|
2633
2900
|
className,
|
|
@@ -2636,7 +2903,7 @@ var ChevronDownIcon3 = ({ className }) => /* @__PURE__ */ (0, import_jsx_runtime
|
|
|
2636
2903
|
viewBox: "0 0 14 14",
|
|
2637
2904
|
fill: "none",
|
|
2638
2905
|
"aria-hidden": "true",
|
|
2639
|
-
children: /* @__PURE__ */ (0,
|
|
2906
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
2640
2907
|
"path",
|
|
2641
2908
|
{
|
|
2642
2909
|
d: "M2.625 4.8125L7 9.1875L11.375 4.8125",
|
|
@@ -2648,7 +2915,7 @@ var ChevronDownIcon3 = ({ className }) => /* @__PURE__ */ (0, import_jsx_runtime
|
|
|
2648
2915
|
)
|
|
2649
2916
|
}
|
|
2650
2917
|
);
|
|
2651
|
-
var ArrowRightIcon = () => /* @__PURE__ */ (0,
|
|
2918
|
+
var ArrowRightIcon = () => /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("svg", { width: "14", height: "14", viewBox: "0 0 14 14", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
2652
2919
|
"path",
|
|
2653
2920
|
{
|
|
2654
2921
|
d: "M2.625 7H11.375M11.375 7L7.875 3.5M11.375 7L7.875 10.5",
|
|
@@ -2658,7 +2925,7 @@ var ArrowRightIcon = () => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("svg",
|
|
|
2658
2925
|
strokeLinejoin: "round"
|
|
2659
2926
|
}
|
|
2660
2927
|
) });
|
|
2661
|
-
var ArrowUpRightIcon = () => /* @__PURE__ */ (0,
|
|
2928
|
+
var ArrowUpRightIcon = () => /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
2662
2929
|
"path",
|
|
2663
2930
|
{
|
|
2664
2931
|
d: "M4.5 11.5L11.5 4.5M11.5 4.5H5.5M11.5 4.5V10.5",
|
|
@@ -2668,7 +2935,7 @@ var ArrowUpRightIcon = () => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("svg"
|
|
|
2668
2935
|
strokeLinejoin: "round"
|
|
2669
2936
|
}
|
|
2670
2937
|
) });
|
|
2671
|
-
var BarsIcon = () => /* @__PURE__ */ (0,
|
|
2938
|
+
var BarsIcon = () => /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("svg", { width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
2672
2939
|
"path",
|
|
2673
2940
|
{
|
|
2674
2941
|
d: "M2.5 5H17.5M2.5 10H17.5M2.5 15H17.5",
|
|
@@ -2677,7 +2944,7 @@ var BarsIcon = () => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("svg", { widt
|
|
|
2677
2944
|
strokeLinecap: "round"
|
|
2678
2945
|
}
|
|
2679
2946
|
) });
|
|
2680
|
-
var XMarkIcon2 = () => /* @__PURE__ */ (0,
|
|
2947
|
+
var XMarkIcon2 = () => /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("svg", { width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
2681
2948
|
"path",
|
|
2682
2949
|
{
|
|
2683
2950
|
d: "M15 5L5 15M5 5L15 15",
|
|
@@ -2686,7 +2953,7 @@ var XMarkIcon2 = () => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("svg", { wi
|
|
|
2686
2953
|
strokeLinecap: "round"
|
|
2687
2954
|
}
|
|
2688
2955
|
) });
|
|
2689
|
-
var ChevronLeftIcon = ({ className }) => /* @__PURE__ */ (0,
|
|
2956
|
+
var ChevronLeftIcon = ({ className }) => /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
2690
2957
|
"svg",
|
|
2691
2958
|
{
|
|
2692
2959
|
className,
|
|
@@ -2695,7 +2962,7 @@ var ChevronLeftIcon = ({ className }) => /* @__PURE__ */ (0, import_jsx_runtime2
|
|
|
2695
2962
|
viewBox: "0 0 24 24",
|
|
2696
2963
|
fill: "none",
|
|
2697
2964
|
"aria-hidden": "true",
|
|
2698
|
-
children: /* @__PURE__ */ (0,
|
|
2965
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
2699
2966
|
"path",
|
|
2700
2967
|
{
|
|
2701
2968
|
d: "M15 18L9 12L15 6",
|
|
@@ -2707,11 +2974,11 @@ var ChevronLeftIcon = ({ className }) => /* @__PURE__ */ (0, import_jsx_runtime2
|
|
|
2707
2974
|
)
|
|
2708
2975
|
}
|
|
2709
2976
|
);
|
|
2710
|
-
var GlobeIcon = ({ className }) => /* @__PURE__ */ (0,
|
|
2977
|
+
var GlobeIcon = ({ className }) => /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("img", { src: icon_globe_default, alt: "", "aria-hidden": "true", width: "20", height: "20", className });
|
|
2711
2978
|
var DropdownPanel = ({ item, onMouseEnter, onMouseLeave }) => {
|
|
2712
2979
|
const { dropdown } = item;
|
|
2713
2980
|
if (!dropdown) return null;
|
|
2714
|
-
return /* @__PURE__ */ (0,
|
|
2981
|
+
return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
2715
2982
|
import_framer_motion2.motion.div,
|
|
2716
2983
|
{
|
|
2717
2984
|
className: "navbar__dropdown",
|
|
@@ -2722,10 +2989,10 @@ var DropdownPanel = ({ item, onMouseEnter, onMouseLeave }) => {
|
|
|
2722
2989
|
transition: { duration: 0.18, ease: EASE_OUT_EXPO },
|
|
2723
2990
|
onMouseEnter,
|
|
2724
2991
|
onMouseLeave,
|
|
2725
|
-
children: /* @__PURE__ */ (0,
|
|
2726
|
-
/* @__PURE__ */ (0,
|
|
2727
|
-
/* @__PURE__ */ (0,
|
|
2728
|
-
section.items.map((link) => /* @__PURE__ */ (0,
|
|
2992
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { className: "navbar__dropdown-inner", children: [
|
|
2993
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { className: "navbar__dropdown-left", children: dropdown.columns.map((col, colIdx) => /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { className: "navbar__dropdown-col", children: col.sections.map((section) => /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { className: "navbar__dropdown-col-list", children: [
|
|
2994
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)("p", { className: "navbar__dropdown-col-title", children: section.title }),
|
|
2995
|
+
section.items.map((link) => /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
|
|
2729
2996
|
"a",
|
|
2730
2997
|
{
|
|
2731
2998
|
href: link.href,
|
|
@@ -2734,24 +3001,24 @@ var DropdownPanel = ({ item, onMouseEnter, onMouseLeave }) => {
|
|
|
2734
3001
|
rel: link.external ? "noopener noreferrer" : void 0,
|
|
2735
3002
|
children: [
|
|
2736
3003
|
link.label,
|
|
2737
|
-
link.external ? /* @__PURE__ */ (0,
|
|
3004
|
+
link.external ? /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(ArrowUpRightIcon, {}) : /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(ArrowRightIcon, {})
|
|
2738
3005
|
]
|
|
2739
3006
|
},
|
|
2740
3007
|
link.href
|
|
2741
3008
|
))
|
|
2742
3009
|
] }, section.title)) }, colIdx)) }),
|
|
2743
|
-
dropdown.feature && /* @__PURE__ */ (0,
|
|
3010
|
+
dropdown.feature && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { className: "navbar__dropdown-right", children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(FeatureCard, { feature: dropdown.feature }) })
|
|
2744
3011
|
] })
|
|
2745
3012
|
}
|
|
2746
3013
|
);
|
|
2747
3014
|
};
|
|
2748
|
-
var FeatureCard = ({ feature, mobile }) => /* @__PURE__ */ (0,
|
|
3015
|
+
var FeatureCard = ({ feature, mobile }) => /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
|
|
2749
3016
|
"div",
|
|
2750
3017
|
{
|
|
2751
3018
|
className: mobile ? "navbar__drawer-feature" : "navbar__dropdown-feature",
|
|
2752
3019
|
style: feature.backgroundImageUrl ? { backgroundImage: `url(${feature.backgroundImageUrl})` } : void 0,
|
|
2753
3020
|
children: [
|
|
2754
|
-
feature.backgroundImageUrl && /* @__PURE__ */ (0,
|
|
3021
|
+
feature.backgroundImageUrl && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
2755
3022
|
"img",
|
|
2756
3023
|
{
|
|
2757
3024
|
src: feature.backgroundImageUrl,
|
|
@@ -2760,20 +3027,20 @@ var FeatureCard = ({ feature, mobile }) => /* @__PURE__ */ (0, import_jsx_runtim
|
|
|
2760
3027
|
"aria-hidden": "true"
|
|
2761
3028
|
}
|
|
2762
3029
|
),
|
|
2763
|
-
/* @__PURE__ */ (0,
|
|
2764
|
-
/* @__PURE__ */ (0,
|
|
2765
|
-
/* @__PURE__ */ (0,
|
|
2766
|
-
/* @__PURE__ */ (0,
|
|
2767
|
-
/* @__PURE__ */ (0,
|
|
3030
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { className: mobile ? "navbar__drawer-feature-overlay" : "navbar__dropdown-feature-overlay", "aria-hidden": "true" }),
|
|
3031
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { className: mobile ? "navbar__drawer-feature-content" : "navbar__dropdown-feature-content", children: [
|
|
3032
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { children: [
|
|
3033
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)("p", { className: mobile ? "navbar__drawer-feature-title" : "navbar__dropdown-feature-title", children: feature.title }),
|
|
3034
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)("p", { className: mobile ? "navbar__drawer-feature-desc" : "navbar__dropdown-feature-desc", children: feature.description })
|
|
2768
3035
|
] }),
|
|
2769
|
-
/* @__PURE__ */ (0,
|
|
3036
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
|
|
2770
3037
|
"a",
|
|
2771
3038
|
{
|
|
2772
3039
|
href: feature.ctaHref,
|
|
2773
3040
|
className: mobile ? "navbar__drawer-feature-cta" : "navbar__dropdown-feature-cta",
|
|
2774
3041
|
children: [
|
|
2775
3042
|
feature.ctaLabel,
|
|
2776
|
-
/* @__PURE__ */ (0,
|
|
3043
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(ArrowRightIcon, {})
|
|
2777
3044
|
]
|
|
2778
3045
|
}
|
|
2779
3046
|
)
|
|
@@ -2783,8 +3050,8 @@ var FeatureCard = ({ feature, mobile }) => /* @__PURE__ */ (0, import_jsx_runtim
|
|
|
2783
3050
|
);
|
|
2784
3051
|
var DrawerAccordion = ({ item, isOpen, onToggle }) => {
|
|
2785
3052
|
const { dropdown } = item;
|
|
2786
|
-
return /* @__PURE__ */ (0,
|
|
2787
|
-
/* @__PURE__ */ (0,
|
|
3053
|
+
return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { className: "navbar__drawer-item", children: [
|
|
3054
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
|
|
2788
3055
|
"button",
|
|
2789
3056
|
{
|
|
2790
3057
|
className: `navbar__drawer-trigger ${isOpen ? "navbar__drawer-trigger--open" : ""}`,
|
|
@@ -2792,11 +3059,11 @@ var DrawerAccordion = ({ item, isOpen, onToggle }) => {
|
|
|
2792
3059
|
"aria-expanded": isOpen,
|
|
2793
3060
|
children: [
|
|
2794
3061
|
item.label,
|
|
2795
|
-
/* @__PURE__ */ (0,
|
|
3062
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(ChevronDownIcon3, { className: "navbar__drawer-trigger__chevron" })
|
|
2796
3063
|
]
|
|
2797
3064
|
}
|
|
2798
3065
|
),
|
|
2799
|
-
/* @__PURE__ */ (0,
|
|
3066
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_framer_motion2.AnimatePresence, { initial: false, children: isOpen && dropdown && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
2800
3067
|
import_framer_motion2.motion.div,
|
|
2801
3068
|
{
|
|
2802
3069
|
className: "navbar__drawer-panel",
|
|
@@ -2805,10 +3072,10 @@ var DrawerAccordion = ({ item, isOpen, onToggle }) => {
|
|
|
2805
3072
|
animate: "visible",
|
|
2806
3073
|
exit: "hidden",
|
|
2807
3074
|
transition: { duration: 0.22, ease: EASE_OUT_EXPO },
|
|
2808
|
-
children: /* @__PURE__ */ (0,
|
|
2809
|
-
/* @__PURE__ */ (0,
|
|
2810
|
-
/* @__PURE__ */ (0,
|
|
2811
|
-
/* @__PURE__ */ (0,
|
|
3075
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { className: "navbar__drawer-panel-inner", children: [
|
|
3076
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { className: "navbar__drawer-panel-cols", children: dropdown.columns.map((col, colIdx) => /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { className: "navbar__drawer-panel-col", children: col.sections.map((section) => /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { className: "navbar__drawer-col-section", children: [
|
|
3077
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)("p", { className: "navbar__drawer-col-title", children: section.title }),
|
|
3078
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { className: "navbar__drawer-col-links", children: section.items.map((link) => /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
2812
3079
|
"a",
|
|
2813
3080
|
{
|
|
2814
3081
|
href: link.href,
|
|
@@ -2820,7 +3087,7 @@ var DrawerAccordion = ({ item, isOpen, onToggle }) => {
|
|
|
2820
3087
|
link.href
|
|
2821
3088
|
)) })
|
|
2822
3089
|
] }, section.title)) }, colIdx)) }),
|
|
2823
|
-
dropdown.feature && /* @__PURE__ */ (0,
|
|
3090
|
+
dropdown.feature && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(FeatureCard, { feature: dropdown.feature, mobile: true })
|
|
2824
3091
|
] })
|
|
2825
3092
|
}
|
|
2826
3093
|
) })
|
|
@@ -2925,20 +3192,20 @@ var Navbar = ({
|
|
|
2925
3192
|
hoverTimeoutRef.current = setTimeout(() => setOpenDropdown(null), 120);
|
|
2926
3193
|
}, [clearHoverTimeout]);
|
|
2927
3194
|
const activeDropdownItem = navItems.find((item) => item.label === openDropdown);
|
|
2928
|
-
return /* @__PURE__ */ (0,
|
|
3195
|
+
return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
|
|
2929
3196
|
"nav",
|
|
2930
3197
|
{
|
|
2931
3198
|
className: ["navbar", `navbar--${theme}`, scrolled && "navbar--scrolled", mobileOpen && "navbar--menu-open", className].filter(Boolean).join(" "),
|
|
2932
3199
|
...props,
|
|
2933
3200
|
children: [
|
|
2934
|
-
/* @__PURE__ */ (0,
|
|
2935
|
-
/* @__PURE__ */ (0,
|
|
2936
|
-
/* @__PURE__ */ (0,
|
|
2937
|
-
/* @__PURE__ */ (0,
|
|
2938
|
-
/* @__PURE__ */ (0,
|
|
3201
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { className: "navbar__bar", children: [
|
|
3202
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)("a", { href: logoHref, className: "navbar__logo", "aria-label": "Home", children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("img", { src: resolvedLogo, alt: "Logo" }) }),
|
|
3203
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { className: "navbar__nav-center", ref: pillAreaRef, children: /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { className: "navbar__pill", children: [
|
|
3204
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)("a", { href: logoHref, className: "navbar__pill-logo", "aria-label": "Home", children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("img", { src: logoSrcDark ?? logoSrc, alt: "Logo" }) }),
|
|
3205
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { className: "navbar__nav-group", children: [
|
|
2939
3206
|
navItems.map((item) => {
|
|
2940
3207
|
if (item.external) {
|
|
2941
|
-
return /* @__PURE__ */ (0,
|
|
3208
|
+
return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
|
|
2942
3209
|
"a",
|
|
2943
3210
|
{
|
|
2944
3211
|
href: item.href,
|
|
@@ -2947,14 +3214,14 @@ var Navbar = ({
|
|
|
2947
3214
|
rel: "noopener noreferrer",
|
|
2948
3215
|
children: [
|
|
2949
3216
|
item.label,
|
|
2950
|
-
/* @__PURE__ */ (0,
|
|
3217
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(ArrowUpRightIcon, {})
|
|
2951
3218
|
]
|
|
2952
3219
|
},
|
|
2953
3220
|
item.label
|
|
2954
3221
|
);
|
|
2955
3222
|
}
|
|
2956
3223
|
if (item.dropdown) {
|
|
2957
|
-
return /* @__PURE__ */ (0,
|
|
3224
|
+
return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
|
|
2958
3225
|
"button",
|
|
2959
3226
|
{
|
|
2960
3227
|
className: [
|
|
@@ -2967,30 +3234,34 @@ var Navbar = ({
|
|
|
2967
3234
|
"aria-haspopup": "true",
|
|
2968
3235
|
children: [
|
|
2969
3236
|
item.label,
|
|
2970
|
-
/* @__PURE__ */ (0,
|
|
3237
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(ChevronDownIcon3, { className: "navbar__nav-item__chevron" })
|
|
2971
3238
|
]
|
|
2972
3239
|
},
|
|
2973
3240
|
item.label
|
|
2974
3241
|
);
|
|
2975
3242
|
}
|
|
2976
|
-
return /* @__PURE__ */ (0,
|
|
3243
|
+
return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("a", { href: item.href, className: "navbar__nav-item", children: item.label }, item.label);
|
|
2977
3244
|
}),
|
|
2978
|
-
languageLabel && /* @__PURE__ */ (0,
|
|
3245
|
+
languageLabel && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
2979
3246
|
"div",
|
|
2980
3247
|
{
|
|
2981
3248
|
className: "navbar__lang-wrapper",
|
|
2982
3249
|
onMouseEnter: hasLangDropdown ? handleLangEnter : void 0,
|
|
2983
3250
|
onMouseLeave: hasLangDropdown ? handleLangLeave : void 0,
|
|
2984
|
-
children: /* @__PURE__ */ (0,
|
|
3251
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
|
|
2985
3252
|
"button",
|
|
2986
3253
|
{
|
|
2987
3254
|
ref: langBtnRef,
|
|
2988
|
-
className:
|
|
3255
|
+
className: [
|
|
3256
|
+
"navbar__nav-item",
|
|
3257
|
+
"navbar__lang-btn",
|
|
3258
|
+
hasLangDropdown && langDropdownOpen ? "navbar__nav-item--open" : ""
|
|
3259
|
+
].filter(Boolean).join(" "),
|
|
2989
3260
|
onClick: hasLangDropdown ? () => setLangDropdownOpen((o) => !o) : onLanguageClick,
|
|
2990
3261
|
"aria-haspopup": hasLangDropdown ? "true" : void 0,
|
|
2991
3262
|
"aria-expanded": hasLangDropdown ? langDropdownOpen : void 0,
|
|
2992
3263
|
children: [
|
|
2993
|
-
/* @__PURE__ */ (0,
|
|
3264
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(GlobeIcon, { className: "navbar__lang-globe" }),
|
|
2994
3265
|
languageLabel
|
|
2995
3266
|
]
|
|
2996
3267
|
}
|
|
@@ -2998,12 +3269,12 @@ var Navbar = ({
|
|
|
2998
3269
|
}
|
|
2999
3270
|
)
|
|
3000
3271
|
] }),
|
|
3001
|
-
/* @__PURE__ */ (0,
|
|
3002
|
-
loginHref && /* @__PURE__ */ (0,
|
|
3003
|
-
ctaHref && /* @__PURE__ */ (0,
|
|
3272
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { className: "navbar__pill-actions", children: [
|
|
3273
|
+
loginHref && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("a", { href: loginHref, children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Button, { colorScheme: "black", variant: "secondary", label: loginLabel }) }),
|
|
3274
|
+
ctaHref && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("a", { href: ctaHref, children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Button, { colorScheme: "coral", variant: "primary", label: ctaLabel }) })
|
|
3004
3275
|
] })
|
|
3005
3276
|
] }) }),
|
|
3006
|
-
/* @__PURE__ */ (0,
|
|
3277
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_framer_motion2.AnimatePresence, { children: openDropdown && activeDropdownItem?.dropdown && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
3007
3278
|
DropdownPanel,
|
|
3008
3279
|
{
|
|
3009
3280
|
item: activeDropdownItem,
|
|
@@ -3012,7 +3283,7 @@ var Navbar = ({
|
|
|
3012
3283
|
},
|
|
3013
3284
|
"dropdown"
|
|
3014
3285
|
) }),
|
|
3015
|
-
/* @__PURE__ */ (0,
|
|
3286
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_framer_motion2.AnimatePresence, { children: hasLangDropdown && langDropdownOpen && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
3016
3287
|
import_framer_motion2.motion.div,
|
|
3017
3288
|
{
|
|
3018
3289
|
className: "navbar__lang-dropdown",
|
|
@@ -3023,12 +3294,12 @@ var Navbar = ({
|
|
|
3023
3294
|
transition: { duration: 0.18, ease: EASE_OUT_EXPO },
|
|
3024
3295
|
onMouseEnter: clearLangHoverTimeout,
|
|
3025
3296
|
onMouseLeave: handleLangLeave,
|
|
3026
|
-
children: /* @__PURE__ */ (0,
|
|
3297
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
3027
3298
|
"div",
|
|
3028
3299
|
{
|
|
3029
3300
|
className: "navbar__lang-dropdown-grid",
|
|
3030
3301
|
style: { "--lang-rows": Math.ceil(languageItems.length / 3) },
|
|
3031
|
-
children: languageItems.map((lang) => /* @__PURE__ */ (0,
|
|
3302
|
+
children: languageItems.map((lang) => /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
3032
3303
|
"button",
|
|
3033
3304
|
{
|
|
3034
3305
|
className: [
|
|
@@ -3044,8 +3315,8 @@ var Navbar = ({
|
|
|
3044
3315
|
)
|
|
3045
3316
|
}
|
|
3046
3317
|
) }),
|
|
3047
|
-
/* @__PURE__ */ (0,
|
|
3048
|
-
loginHref && /* @__PURE__ */ (0,
|
|
3318
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { className: "navbar__actions", children: [
|
|
3319
|
+
loginHref && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("a", { href: loginHref, className: "navbar__actions-login", children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
3049
3320
|
Button,
|
|
3050
3321
|
{
|
|
3051
3322
|
colorScheme: theme === "dark" ? "white" : "black",
|
|
@@ -3053,10 +3324,10 @@ var Navbar = ({
|
|
|
3053
3324
|
label: loginLabel
|
|
3054
3325
|
}
|
|
3055
3326
|
) }),
|
|
3056
|
-
ctaHref && /* @__PURE__ */ (0,
|
|
3327
|
+
ctaHref && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("a", { href: ctaHref, children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Button, { colorScheme: "coral", variant: "primary", label: ctaLabel }) })
|
|
3057
3328
|
] }),
|
|
3058
|
-
/* @__PURE__ */ (0,
|
|
3059
|
-
loginHref && /* @__PURE__ */ (0,
|
|
3329
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { className: "navbar__mobile-actions", children: [
|
|
3330
|
+
loginHref && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("a", { href: loginHref, children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
3060
3331
|
Button,
|
|
3061
3332
|
{
|
|
3062
3333
|
colorScheme: scrolled || theme === "light" ? "black" : "white",
|
|
@@ -3064,18 +3335,18 @@ var Navbar = ({
|
|
|
3064
3335
|
label: loginLabel
|
|
3065
3336
|
}
|
|
3066
3337
|
) }),
|
|
3067
|
-
/* @__PURE__ */ (0,
|
|
3338
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
3068
3339
|
"button",
|
|
3069
3340
|
{
|
|
3070
3341
|
className: "navbar__mobile-trigger",
|
|
3071
3342
|
onClick: () => setMobileOpen((o) => !o),
|
|
3072
3343
|
"aria-label": mobileOpen ? "Close navigation menu" : "Open navigation menu",
|
|
3073
|
-
children: mobileOpen ? /* @__PURE__ */ (0,
|
|
3344
|
+
children: mobileOpen ? /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(XMarkIcon2, {}) : /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(BarsIcon, {})
|
|
3074
3345
|
}
|
|
3075
3346
|
)
|
|
3076
3347
|
] })
|
|
3077
3348
|
] }),
|
|
3078
|
-
/* @__PURE__ */ (0,
|
|
3349
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { className: "navbar__drawer-clip", children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_framer_motion2.AnimatePresence, { children: mobileOpen && /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
|
|
3079
3350
|
import_framer_motion2.motion.div,
|
|
3080
3351
|
{
|
|
3081
3352
|
className: "navbar__drawer",
|
|
@@ -3088,10 +3359,10 @@ var Navbar = ({
|
|
|
3088
3359
|
role: "dialog",
|
|
3089
3360
|
"aria-label": "Navigation menu",
|
|
3090
3361
|
children: [
|
|
3091
|
-
/* @__PURE__ */ (0,
|
|
3362
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("nav", { className: "navbar__drawer-nav", children: [
|
|
3092
3363
|
navItems.map((item) => {
|
|
3093
3364
|
if (item.dropdown) {
|
|
3094
|
-
return /* @__PURE__ */ (0,
|
|
3365
|
+
return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
3095
3366
|
DrawerAccordion,
|
|
3096
3367
|
{
|
|
3097
3368
|
item,
|
|
@@ -3103,7 +3374,7 @@ var Navbar = ({
|
|
|
3103
3374
|
item.label
|
|
3104
3375
|
);
|
|
3105
3376
|
}
|
|
3106
|
-
return /* @__PURE__ */ (0,
|
|
3377
|
+
return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
|
|
3107
3378
|
"a",
|
|
3108
3379
|
{
|
|
3109
3380
|
href: item.href,
|
|
@@ -3112,30 +3383,30 @@ var Navbar = ({
|
|
|
3112
3383
|
rel: item.external ? "noopener noreferrer" : void 0,
|
|
3113
3384
|
children: [
|
|
3114
3385
|
item.label,
|
|
3115
|
-
item.external && /* @__PURE__ */ (0,
|
|
3386
|
+
item.external && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(ArrowUpRightIcon, {})
|
|
3116
3387
|
]
|
|
3117
3388
|
},
|
|
3118
3389
|
item.label
|
|
3119
3390
|
);
|
|
3120
3391
|
}),
|
|
3121
|
-
languageLabel && !hasLangDropdown && /* @__PURE__ */ (0,
|
|
3122
|
-
/* @__PURE__ */ (0,
|
|
3392
|
+
languageLabel && !hasLangDropdown && /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("button", { className: "navbar__drawer-lang", onClick: onLanguageClick, children: [
|
|
3393
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(GlobeIcon, { className: "navbar__lang-globe" }),
|
|
3123
3394
|
languageLabel
|
|
3124
3395
|
] }),
|
|
3125
|
-
languageLabel && hasLangDropdown && /* @__PURE__ */ (0,
|
|
3396
|
+
languageLabel && hasLangDropdown && /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
|
|
3126
3397
|
"button",
|
|
3127
3398
|
{
|
|
3128
3399
|
className: "navbar__drawer-lang",
|
|
3129
3400
|
onClick: () => setMobileLangOpen(true),
|
|
3130
3401
|
children: [
|
|
3131
|
-
/* @__PURE__ */ (0,
|
|
3402
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(GlobeIcon, { className: "navbar__lang-globe" }),
|
|
3132
3403
|
languageLabel
|
|
3133
3404
|
]
|
|
3134
3405
|
}
|
|
3135
3406
|
)
|
|
3136
3407
|
] }),
|
|
3137
|
-
!mobileLangOpen && /* @__PURE__ */ (0,
|
|
3138
|
-
loginHref && /* @__PURE__ */ (0,
|
|
3408
|
+
!mobileLangOpen && /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { className: "navbar__drawer-footer", children: [
|
|
3409
|
+
loginHref && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("a", { href: loginHref, style: { display: "block" }, children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
3139
3410
|
Button,
|
|
3140
3411
|
{
|
|
3141
3412
|
colorScheme: "black",
|
|
@@ -3144,7 +3415,7 @@ var Navbar = ({
|
|
|
3144
3415
|
fullWidth: true
|
|
3145
3416
|
}
|
|
3146
3417
|
) }),
|
|
3147
|
-
ctaHref && /* @__PURE__ */ (0,
|
|
3418
|
+
ctaHref && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("a", { href: ctaHref, style: { display: "block" }, children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
3148
3419
|
Button,
|
|
3149
3420
|
{
|
|
3150
3421
|
colorScheme: "coral",
|
|
@@ -3154,7 +3425,7 @@ var Navbar = ({
|
|
|
3154
3425
|
}
|
|
3155
3426
|
) })
|
|
3156
3427
|
] }),
|
|
3157
|
-
/* @__PURE__ */ (0,
|
|
3428
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_framer_motion2.AnimatePresence, { children: hasLangDropdown && mobileLangOpen && /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
|
|
3158
3429
|
import_framer_motion2.motion.div,
|
|
3159
3430
|
{
|
|
3160
3431
|
className: "navbar__drawer-lang-panel",
|
|
@@ -3163,16 +3434,16 @@ var Navbar = ({
|
|
|
3163
3434
|
exit: { y: "100%" },
|
|
3164
3435
|
transition: { duration: 0.25, ease: EASE_OUT_EXPO },
|
|
3165
3436
|
children: [
|
|
3166
|
-
/* @__PURE__ */ (0,
|
|
3437
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
3167
3438
|
"button",
|
|
3168
3439
|
{
|
|
3169
3440
|
className: "navbar__drawer-lang-back",
|
|
3170
3441
|
onClick: () => setMobileLangOpen(false),
|
|
3171
3442
|
"aria-label": "Back to menu",
|
|
3172
|
-
children: /* @__PURE__ */ (0,
|
|
3443
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(ChevronLeftIcon, {})
|
|
3173
3444
|
}
|
|
3174
3445
|
),
|
|
3175
|
-
/* @__PURE__ */ (0,
|
|
3446
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { className: "navbar__drawer-lang-grid", children: languageItems.map((lang) => /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
3176
3447
|
"button",
|
|
3177
3448
|
{
|
|
3178
3449
|
className: [
|
|
@@ -3198,14 +3469,96 @@ var Navbar = ({
|
|
|
3198
3469
|
// templates/DayNightTransition/DayNightTransition.tsx
|
|
3199
3470
|
var import_react15 = require("react");
|
|
3200
3471
|
var import_framer_motion3 = require("framer-motion");
|
|
3201
|
-
|
|
3472
|
+
|
|
3473
|
+
// templates/DayNightTransition/webflowDayNightV2Ix.ts
|
|
3474
|
+
var DESC_SWATCH = { r: 24, g: 28, b: 37 };
|
|
3475
|
+
var BODY_TEXT = { r: 51, g: 51, b: 51 };
|
|
3476
|
+
var rgb = (r, g, b) => `rgb(${r},${g},${b})`;
|
|
3477
|
+
var lerp = (a, b, u) => a + (b - a) * u;
|
|
3478
|
+
var seg = (t, t0, t1, v0, v1) => {
|
|
3479
|
+
if (t <= t0) return v0;
|
|
3480
|
+
if (t >= t1) return v1;
|
|
3481
|
+
return lerp(v0, v1, (t - t0) / (t1 - t0));
|
|
3482
|
+
};
|
|
3483
|
+
function webflowV2DescriptionColor(t, media) {
|
|
3484
|
+
if (media === "desktop") {
|
|
3485
|
+
const body2 = rgb(BODY_TEXT.r, BODY_TEXT.g, BODY_TEXT.b);
|
|
3486
|
+
const dark2 = rgb(DESC_SWATCH.r, DESC_SWATCH.g, DESC_SWATCH.b);
|
|
3487
|
+
const white2 = rgb(255, 255, 255);
|
|
3488
|
+
if (t < 0.49) return body2;
|
|
3489
|
+
if (t < 0.5) return dark2;
|
|
3490
|
+
return white2;
|
|
3491
|
+
}
|
|
3492
|
+
const white = rgb(255, 255, 255);
|
|
3493
|
+
const dark = rgb(DESC_SWATCH.r, DESC_SWATCH.g, DESC_SWATCH.b);
|
|
3494
|
+
const body = rgb(BODY_TEXT.r, BODY_TEXT.g, BODY_TEXT.b);
|
|
3495
|
+
if (t < 0.58) return body;
|
|
3496
|
+
if (t < 0.59) return dark;
|
|
3497
|
+
return white;
|
|
3498
|
+
}
|
|
3499
|
+
function webflowV2TitleColor(t, media) {
|
|
3500
|
+
if (media === "desktop") {
|
|
3501
|
+
const body2 = rgb(BODY_TEXT.r, BODY_TEXT.g, BODY_TEXT.b);
|
|
3502
|
+
const black = rgb(0, 0, 0);
|
|
3503
|
+
const white2 = rgb(255, 255, 255);
|
|
3504
|
+
if (t < 0.51) return body2;
|
|
3505
|
+
if (t >= 0.52) return white2;
|
|
3506
|
+
return seg(t, 0.51, 0.52, black, white2);
|
|
3507
|
+
}
|
|
3508
|
+
const dark = rgb(DESC_SWATCH.r, DESC_SWATCH.g, DESC_SWATCH.b);
|
|
3509
|
+
const white = rgb(255, 255, 255);
|
|
3510
|
+
const body = rgb(BODY_TEXT.r, BODY_TEXT.g, BODY_TEXT.b);
|
|
3511
|
+
if (t < 0.6) return body;
|
|
3512
|
+
if (t >= 0.61) return white;
|
|
3513
|
+
const u = (t - 0.6) / 0.01;
|
|
3514
|
+
return rgb(
|
|
3515
|
+
lerp(DESC_SWATCH.r, 255, u),
|
|
3516
|
+
lerp(DESC_SWATCH.g, 255, u),
|
|
3517
|
+
lerp(DESC_SWATCH.b, 255, u)
|
|
3518
|
+
);
|
|
3519
|
+
}
|
|
3520
|
+
function webflowV2DayWordOpacity(t, media) {
|
|
3521
|
+
if (media === "desktop") {
|
|
3522
|
+
if (t < 0.51) return 1;
|
|
3523
|
+
if (t >= 0.52) return 0;
|
|
3524
|
+
return seg(t, 0.51, 0.52, 1, 0);
|
|
3525
|
+
}
|
|
3526
|
+
if (t < 0.6) return 1;
|
|
3527
|
+
if (t >= 0.61) return 0;
|
|
3528
|
+
return seg(t, 0.6, 0.61, 1, 0);
|
|
3529
|
+
}
|
|
3530
|
+
function webflowV2NightWordOpacity(t, media) {
|
|
3531
|
+
if (media === "desktop") {
|
|
3532
|
+
if (t < 0.51) return 0;
|
|
3533
|
+
if (t >= 0.52) return 1;
|
|
3534
|
+
return seg(t, 0.51, 0.52, 0, 1);
|
|
3535
|
+
}
|
|
3536
|
+
if (t < 0.6) return 0;
|
|
3537
|
+
if (t >= 0.61) return 1;
|
|
3538
|
+
return seg(t, 0.6, 0.61, 0, 1);
|
|
3539
|
+
}
|
|
3540
|
+
var WEBFLOW_V2_DAY_CLIP_SCROLL_END = 0.65;
|
|
3541
|
+
function webflowV2DayClipPercent(t, media) {
|
|
3542
|
+
if (media === "desktop") return 100;
|
|
3543
|
+
return seg(t, 0, WEBFLOW_V2_DAY_CLIP_SCROLL_END, 100, 0);
|
|
3544
|
+
}
|
|
3545
|
+
|
|
3546
|
+
// templates/DayNightTransition/DayNightTransition.tsx
|
|
3547
|
+
var import_jsx_runtime28 = require("react/jsx-runtime");
|
|
3202
3548
|
var SPRING2 = { stiffness: 80, damping: 30, restDelta: 1e-3 };
|
|
3203
3549
|
var FADE_START = 0.35;
|
|
3204
3550
|
var FADE_END = 0.65;
|
|
3205
|
-
var
|
|
3206
|
-
var
|
|
3551
|
+
var V2_TEXT_SCROLL_CROSSFADE_DESKTOP_START = 0.49;
|
|
3552
|
+
var V2_TEXT_SCROLL_CROSSFADE_DESKTOP_END = 0.52;
|
|
3553
|
+
var V2_TEXT_SCROLL_CROSSFADE_MOBILE_START = 0.58;
|
|
3554
|
+
var V2_TEXT_SCROLL_CROSSFADE_MOBILE_END = 0.61;
|
|
3207
3555
|
var TEXT_CHANNEL_DAY = 0;
|
|
3208
3556
|
var TEXT_CHANNEL_NIGHT = 255;
|
|
3557
|
+
var seg2 = (t, t0, t1, v0, v1) => {
|
|
3558
|
+
if (t <= t0) return v0;
|
|
3559
|
+
if (t >= t1) return v1;
|
|
3560
|
+
return v0 + (v1 - v0) * ((t - t0) / (t1 - t0));
|
|
3561
|
+
};
|
|
3209
3562
|
var DayNightTransition = ({
|
|
3210
3563
|
dayImageUrl,
|
|
3211
3564
|
nightImageUrl,
|
|
@@ -3215,106 +3568,352 @@ var DayNightTransition = ({
|
|
|
3215
3568
|
nightDescription = "Description goes here. Description goes here. Description goes here.",
|
|
3216
3569
|
ctaLabel = "Get started",
|
|
3217
3570
|
ctaHref = "#",
|
|
3571
|
+
hideCta = false,
|
|
3572
|
+
headlineLevel = "h2",
|
|
3573
|
+
descriptionLevel = "body-md",
|
|
3574
|
+
inlineDayNightHeadline,
|
|
3575
|
+
scrollPreset = "default",
|
|
3218
3576
|
className,
|
|
3219
3577
|
...props
|
|
3220
3578
|
}) => {
|
|
3221
3579
|
const wrapperRef = (0, import_react15.useRef)(null);
|
|
3580
|
+
const dayWordRef = (0, import_react15.useRef)(null);
|
|
3581
|
+
const [nightMarginStart, setNightMarginStart] = (0, import_react15.useState)("0px");
|
|
3582
|
+
const [nightMarginEnd, setNightMarginEnd] = (0, import_react15.useState)("0px");
|
|
3583
|
+
const [ixMedia, setIxMedia] = (0, import_react15.useState)("desktop");
|
|
3584
|
+
const webflowV2 = scrollPreset === "webflow-day-night-v2";
|
|
3585
|
+
(0, import_react15.useEffect)(() => {
|
|
3586
|
+
const mq = window.matchMedia("(max-width: 991px)");
|
|
3587
|
+
const sync = () => setIxMedia(mq.matches ? "mobile" : "desktop");
|
|
3588
|
+
sync();
|
|
3589
|
+
mq.addEventListener("change", sync);
|
|
3590
|
+
return () => mq.removeEventListener("change", sync);
|
|
3591
|
+
}, []);
|
|
3592
|
+
const MotionHeadline = headlineLevel === "h1" ? import_framer_motion3.motion.h1 : import_framer_motion3.motion.h2;
|
|
3593
|
+
(0, import_react15.useLayoutEffect)(() => {
|
|
3594
|
+
if (!inlineDayNightHeadline) return;
|
|
3595
|
+
const syncNightPull = () => {
|
|
3596
|
+
const dayEl = dayWordRef.current;
|
|
3597
|
+
if (!dayEl) return;
|
|
3598
|
+
const w = dayEl.offsetWidth;
|
|
3599
|
+
const doc = document.documentElement;
|
|
3600
|
+
const rtl = doc.getAttribute("dir") === "rtl" || doc.lang.toLowerCase().startsWith("ar");
|
|
3601
|
+
if (rtl) {
|
|
3602
|
+
setNightMarginStart("0px");
|
|
3603
|
+
setNightMarginEnd(w ? `-${w}px` : "0px");
|
|
3604
|
+
} else {
|
|
3605
|
+
setNightMarginStart(w ? `-${w}px` : "0px");
|
|
3606
|
+
setNightMarginEnd("0px");
|
|
3607
|
+
}
|
|
3608
|
+
};
|
|
3609
|
+
syncNightPull();
|
|
3610
|
+
const ro = new ResizeObserver(syncNightPull);
|
|
3611
|
+
if (dayWordRef.current) ro.observe(dayWordRef.current);
|
|
3612
|
+
window.addEventListener("resize", syncNightPull);
|
|
3613
|
+
return () => {
|
|
3614
|
+
ro.disconnect();
|
|
3615
|
+
window.removeEventListener("resize", syncNightPull);
|
|
3616
|
+
};
|
|
3617
|
+
}, [
|
|
3618
|
+
inlineDayNightHeadline,
|
|
3619
|
+
inlineDayNightHeadline?.dayWord,
|
|
3620
|
+
inlineDayNightHeadline?.nightWord,
|
|
3621
|
+
inlineDayNightHeadline?.prefix
|
|
3622
|
+
]);
|
|
3222
3623
|
const { scrollYProgress } = (0, import_framer_motion3.useScroll)({
|
|
3223
3624
|
target: wrapperRef,
|
|
3224
3625
|
offset: ["start end", "end start"]
|
|
3225
3626
|
});
|
|
3226
3627
|
const smooth = (0, import_framer_motion3.useSpring)(scrollYProgress, SPRING2);
|
|
3227
|
-
const
|
|
3228
|
-
const
|
|
3628
|
+
const progress = webflowV2 ? scrollYProgress : smooth;
|
|
3629
|
+
const nightOpacity = (0, import_framer_motion3.useTransform)(progress, [FADE_START, FADE_END], [0, 1]);
|
|
3630
|
+
const channel = (0, import_framer_motion3.useTransform)(progress, [FADE_START, FADE_END], [TEXT_CHANNEL_DAY, TEXT_CHANNEL_NIGHT]);
|
|
3229
3631
|
const textColor = import_framer_motion3.useMotionTemplate`rgb(${channel}, ${channel}, ${channel})`;
|
|
3230
|
-
const dayOpacity = (0, import_framer_motion3.useTransform)(
|
|
3231
|
-
|
|
3632
|
+
const dayOpacity = (0, import_framer_motion3.useTransform)(progress, (t) => {
|
|
3633
|
+
if (webflowV2) {
|
|
3634
|
+
return ixMedia === "mobile" ? seg2(
|
|
3635
|
+
t,
|
|
3636
|
+
V2_TEXT_SCROLL_CROSSFADE_MOBILE_START,
|
|
3637
|
+
V2_TEXT_SCROLL_CROSSFADE_MOBILE_END,
|
|
3638
|
+
1,
|
|
3639
|
+
0
|
|
3640
|
+
) : seg2(
|
|
3641
|
+
t,
|
|
3642
|
+
V2_TEXT_SCROLL_CROSSFADE_DESKTOP_START,
|
|
3643
|
+
V2_TEXT_SCROLL_CROSSFADE_DESKTOP_END,
|
|
3644
|
+
1,
|
|
3645
|
+
0
|
|
3646
|
+
);
|
|
3647
|
+
}
|
|
3648
|
+
return seg2(t, FADE_START, FADE_END, 1, 0);
|
|
3649
|
+
});
|
|
3650
|
+
const nightOpacity2 = (0, import_framer_motion3.useTransform)(progress, (t) => {
|
|
3651
|
+
if (webflowV2) {
|
|
3652
|
+
return ixMedia === "mobile" ? seg2(
|
|
3653
|
+
t,
|
|
3654
|
+
V2_TEXT_SCROLL_CROSSFADE_MOBILE_START,
|
|
3655
|
+
V2_TEXT_SCROLL_CROSSFADE_MOBILE_END,
|
|
3656
|
+
0,
|
|
3657
|
+
1
|
|
3658
|
+
) : seg2(
|
|
3659
|
+
t,
|
|
3660
|
+
V2_TEXT_SCROLL_CROSSFADE_DESKTOP_START,
|
|
3661
|
+
V2_TEXT_SCROLL_CROSSFADE_DESKTOP_END,
|
|
3662
|
+
0,
|
|
3663
|
+
1
|
|
3664
|
+
);
|
|
3665
|
+
}
|
|
3666
|
+
return seg2(t, FADE_START, FADE_END, 0, 1);
|
|
3667
|
+
});
|
|
3668
|
+
const v2DescColor = (0, import_framer_motion3.useTransform)(progress, (t) => webflowV2DescriptionColor(t, ixMedia));
|
|
3669
|
+
const v2TitleColor = (0, import_framer_motion3.useTransform)(progress, (t) => webflowV2TitleColor(t, ixMedia));
|
|
3670
|
+
const v2DayWordOp = (0, import_framer_motion3.useTransform)(progress, (t) => webflowV2DayWordOpacity(t, ixMedia));
|
|
3671
|
+
const v2NightWordOp = (0, import_framer_motion3.useTransform)(progress, (t) => webflowV2NightWordOpacity(t, ixMedia));
|
|
3672
|
+
const v2DayHeight = (0, import_framer_motion3.useTransform)(
|
|
3673
|
+
progress,
|
|
3674
|
+
(t) => ixMedia === "mobile" ? `${webflowV2DayClipPercent(t, ixMedia)}%` : "100vh"
|
|
3675
|
+
);
|
|
3232
3676
|
const hasDescription = Boolean(dayDescription || nightDescription);
|
|
3233
|
-
|
|
3677
|
+
const useInlineHeadline = Boolean(inlineDayNightHeadline);
|
|
3678
|
+
const rootClass = [
|
|
3679
|
+
"dnt",
|
|
3680
|
+
headlineLevel === "h1" && "dnt--headline-h1",
|
|
3681
|
+
descriptionLevel === "body-lg" && "dnt--desc-body-lg",
|
|
3682
|
+
className
|
|
3683
|
+
].filter(Boolean).join(" ");
|
|
3684
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(
|
|
3234
3685
|
"div",
|
|
3235
3686
|
{
|
|
3236
3687
|
ref: wrapperRef,
|
|
3237
|
-
className:
|
|
3688
|
+
className: rootClass,
|
|
3238
3689
|
...props,
|
|
3239
|
-
children:
|
|
3240
|
-
/* @__PURE__ */ (0,
|
|
3241
|
-
|
|
3242
|
-
|
|
3243
|
-
|
|
3244
|
-
|
|
3245
|
-
|
|
3246
|
-
|
|
3247
|
-
|
|
3248
|
-
|
|
3249
|
-
|
|
3250
|
-
|
|
3251
|
-
|
|
3252
|
-
|
|
3253
|
-
|
|
3254
|
-
|
|
3255
|
-
|
|
3256
|
-
|
|
3257
|
-
|
|
3258
|
-
|
|
3259
|
-
|
|
3260
|
-
|
|
3261
|
-
|
|
3262
|
-
|
|
3263
|
-
|
|
3264
|
-
|
|
3265
|
-
|
|
3266
|
-
|
|
3267
|
-
|
|
3268
|
-
|
|
3269
|
-
|
|
3270
|
-
|
|
3271
|
-
|
|
3272
|
-
|
|
3273
|
-
|
|
3274
|
-
|
|
3275
|
-
|
|
3276
|
-
|
|
3277
|
-
|
|
3278
|
-
|
|
3279
|
-
|
|
3280
|
-
|
|
3281
|
-
|
|
3282
|
-
|
|
3283
|
-
|
|
3284
|
-
|
|
3285
|
-
|
|
3286
|
-
|
|
3287
|
-
|
|
3288
|
-
|
|
3289
|
-
|
|
3290
|
-
|
|
3291
|
-
|
|
3292
|
-
|
|
3293
|
-
|
|
3294
|
-
|
|
3295
|
-
|
|
3296
|
-
|
|
3690
|
+
children: [
|
|
3691
|
+
webflowV2 && /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className: "dnt__v2-background-wrapper", "aria-hidden": "true", children: [
|
|
3692
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
3693
|
+
import_framer_motion3.motion.div,
|
|
3694
|
+
{
|
|
3695
|
+
className: "dnt__v2-bg-day trade-day-night_background-day is-alternative",
|
|
3696
|
+
style: {
|
|
3697
|
+
backgroundImage: `url(${dayImageUrl})`,
|
|
3698
|
+
height: v2DayHeight
|
|
3699
|
+
}
|
|
3700
|
+
}
|
|
3701
|
+
),
|
|
3702
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
3703
|
+
"div",
|
|
3704
|
+
{
|
|
3705
|
+
className: "dnt__v2-bg-night trade-day-night_background-night is-alternative",
|
|
3706
|
+
style: { backgroundImage: `url(${nightImageUrl})` }
|
|
3707
|
+
}
|
|
3708
|
+
)
|
|
3709
|
+
] }),
|
|
3710
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className: webflowV2 ? "dnt__sticky dnt__sticky--webflow-v2" : "dnt__sticky", children: [
|
|
3711
|
+
!webflowV2 && /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(import_jsx_runtime28.Fragment, { children: [
|
|
3712
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
3713
|
+
"img",
|
|
3714
|
+
{
|
|
3715
|
+
className: "dnt__bg dnt__bg--day",
|
|
3716
|
+
src: dayImageUrl,
|
|
3717
|
+
alt: "",
|
|
3718
|
+
loading: "eager",
|
|
3719
|
+
draggable: false
|
|
3720
|
+
}
|
|
3721
|
+
),
|
|
3722
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
3723
|
+
import_framer_motion3.motion.img,
|
|
3724
|
+
{
|
|
3725
|
+
className: "dnt__bg dnt__bg--night",
|
|
3726
|
+
src: nightImageUrl,
|
|
3727
|
+
alt: "",
|
|
3728
|
+
loading: "eager",
|
|
3729
|
+
draggable: false,
|
|
3730
|
+
style: { opacity: nightOpacity }
|
|
3731
|
+
}
|
|
3732
|
+
)
|
|
3733
|
+
] }),
|
|
3734
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { className: "dnt__content", children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { className: "dnt__inner", children: webflowV2 ? /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className: "dnt__text-wrap", children: [
|
|
3735
|
+
useInlineHeadline && inlineDayNightHeadline ? /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(
|
|
3736
|
+
MotionHeadline,
|
|
3737
|
+
{
|
|
3738
|
+
className: "dnt__headline dnt__headline--inline-day-night",
|
|
3739
|
+
style: { color: v2TitleColor },
|
|
3740
|
+
"aria-label": `${inlineDayNightHeadline.prefix}${inlineDayNightHeadline.dayWord} / ${inlineDayNightHeadline.prefix}${inlineDayNightHeadline.nightWord}`,
|
|
3741
|
+
children: [
|
|
3742
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)("span", { className: "dnt__headline-prefix", children: inlineDayNightHeadline.prefix }),
|
|
3743
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("span", { className: "dnt__headline-pair", children: [
|
|
3744
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
3745
|
+
import_framer_motion3.motion.span,
|
|
3746
|
+
{
|
|
3747
|
+
ref: dayWordRef,
|
|
3748
|
+
className: "dnt__headline-wday",
|
|
3749
|
+
style: { opacity: v2DayWordOp },
|
|
3750
|
+
children: inlineDayNightHeadline.dayWord
|
|
3751
|
+
}
|
|
3752
|
+
),
|
|
3753
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
3754
|
+
import_framer_motion3.motion.span,
|
|
3755
|
+
{
|
|
3756
|
+
className: "dnt__headline-wnight",
|
|
3757
|
+
style: {
|
|
3758
|
+
opacity: v2NightWordOp,
|
|
3759
|
+
marginInlineStart: nightMarginStart,
|
|
3760
|
+
marginInlineEnd: nightMarginEnd
|
|
3761
|
+
},
|
|
3762
|
+
children: inlineDayNightHeadline.nightWord
|
|
3763
|
+
}
|
|
3764
|
+
)
|
|
3765
|
+
] })
|
|
3766
|
+
]
|
|
3767
|
+
}
|
|
3768
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className: "dnt__crossfade-wrap", children: [
|
|
3769
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
3770
|
+
MotionHeadline,
|
|
3771
|
+
{
|
|
3772
|
+
className: "dnt__headline",
|
|
3773
|
+
style: { color: v2TitleColor, opacity: dayOpacity },
|
|
3774
|
+
children: dayHeadline
|
|
3775
|
+
}
|
|
3776
|
+
),
|
|
3777
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
3778
|
+
MotionHeadline,
|
|
3779
|
+
{
|
|
3780
|
+
className: "dnt__headline",
|
|
3781
|
+
"aria-hidden": "true",
|
|
3782
|
+
style: { color: v2TitleColor, opacity: nightOpacity2 },
|
|
3783
|
+
children: nightHeadline
|
|
3784
|
+
}
|
|
3785
|
+
)
|
|
3786
|
+
] }),
|
|
3787
|
+
hasDescription && /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className: "dnt__crossfade-wrap", children: [
|
|
3788
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
3789
|
+
import_framer_motion3.motion.p,
|
|
3790
|
+
{
|
|
3791
|
+
className: "dnt__description",
|
|
3792
|
+
style: {
|
|
3793
|
+
color: v2DescColor,
|
|
3794
|
+
opacity: dayOpacity
|
|
3795
|
+
},
|
|
3796
|
+
children: dayDescription ?? ""
|
|
3797
|
+
}
|
|
3798
|
+
),
|
|
3799
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
3800
|
+
import_framer_motion3.motion.p,
|
|
3801
|
+
{
|
|
3802
|
+
className: "dnt__description",
|
|
3803
|
+
"aria-hidden": "true",
|
|
3804
|
+
style: {
|
|
3805
|
+
color: v2DescColor,
|
|
3806
|
+
opacity: nightOpacity2
|
|
3807
|
+
},
|
|
3808
|
+
children: nightDescription ?? ""
|
|
3809
|
+
}
|
|
3810
|
+
)
|
|
3811
|
+
] }),
|
|
3812
|
+
!hideCta && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("a", { href: ctaHref, className: "dnt__btn", children: ctaLabel })
|
|
3813
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(
|
|
3814
|
+
import_framer_motion3.motion.div,
|
|
3815
|
+
{
|
|
3816
|
+
className: "dnt__text-wrap",
|
|
3817
|
+
style: { color: textColor },
|
|
3818
|
+
children: [
|
|
3819
|
+
useInlineHeadline && inlineDayNightHeadline ? /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(
|
|
3820
|
+
MotionHeadline,
|
|
3297
3821
|
{
|
|
3298
|
-
className: "
|
|
3299
|
-
"aria-
|
|
3300
|
-
|
|
3301
|
-
|
|
3822
|
+
className: "dnt__headline dnt__headline--inline-day-night",
|
|
3823
|
+
"aria-label": `${inlineDayNightHeadline.prefix}${inlineDayNightHeadline.dayWord} / ${inlineDayNightHeadline.prefix}${inlineDayNightHeadline.nightWord}`,
|
|
3824
|
+
children: [
|
|
3825
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)("span", { className: "dnt__headline-prefix", children: inlineDayNightHeadline.prefix }),
|
|
3826
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("span", { className: "dnt__headline-pair", children: [
|
|
3827
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
3828
|
+
import_framer_motion3.motion.span,
|
|
3829
|
+
{
|
|
3830
|
+
ref: dayWordRef,
|
|
3831
|
+
className: "dnt__headline-wday",
|
|
3832
|
+
style: { opacity: dayOpacity },
|
|
3833
|
+
children: inlineDayNightHeadline.dayWord
|
|
3834
|
+
}
|
|
3835
|
+
),
|
|
3836
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
3837
|
+
import_framer_motion3.motion.span,
|
|
3838
|
+
{
|
|
3839
|
+
className: "dnt__headline-wnight",
|
|
3840
|
+
style: {
|
|
3841
|
+
opacity: nightOpacity2,
|
|
3842
|
+
marginInlineStart: nightMarginStart,
|
|
3843
|
+
marginInlineEnd: nightMarginEnd
|
|
3844
|
+
},
|
|
3845
|
+
children: inlineDayNightHeadline.nightWord
|
|
3846
|
+
}
|
|
3847
|
+
)
|
|
3848
|
+
] })
|
|
3849
|
+
]
|
|
3302
3850
|
}
|
|
3303
|
-
)
|
|
3304
|
-
|
|
3305
|
-
|
|
3306
|
-
|
|
3307
|
-
|
|
3308
|
-
|
|
3309
|
-
|
|
3851
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className: "dnt__crossfade-wrap", children: [
|
|
3852
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
3853
|
+
MotionHeadline,
|
|
3854
|
+
{
|
|
3855
|
+
className: "dnt__headline",
|
|
3856
|
+
style: { opacity: dayOpacity },
|
|
3857
|
+
children: dayHeadline
|
|
3858
|
+
}
|
|
3859
|
+
),
|
|
3860
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
3861
|
+
MotionHeadline,
|
|
3862
|
+
{
|
|
3863
|
+
className: "dnt__headline",
|
|
3864
|
+
"aria-hidden": "true",
|
|
3865
|
+
style: { opacity: nightOpacity2 },
|
|
3866
|
+
children: nightHeadline
|
|
3867
|
+
}
|
|
3868
|
+
)
|
|
3869
|
+
] }),
|
|
3870
|
+
hasDescription && /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className: "dnt__crossfade-wrap", children: [
|
|
3871
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
3872
|
+
import_framer_motion3.motion.p,
|
|
3873
|
+
{
|
|
3874
|
+
className: "dnt__description",
|
|
3875
|
+
style: { opacity: dayOpacity },
|
|
3876
|
+
children: dayDescription ?? ""
|
|
3877
|
+
}
|
|
3878
|
+
),
|
|
3879
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
3880
|
+
import_framer_motion3.motion.p,
|
|
3881
|
+
{
|
|
3882
|
+
className: "dnt__description",
|
|
3883
|
+
"aria-hidden": "true",
|
|
3884
|
+
style: { opacity: nightOpacity2 },
|
|
3885
|
+
children: nightDescription ?? ""
|
|
3886
|
+
}
|
|
3887
|
+
)
|
|
3888
|
+
] }),
|
|
3889
|
+
!hideCta && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("a", { href: ctaHref, className: "dnt__btn", children: ctaLabel })
|
|
3890
|
+
]
|
|
3891
|
+
}
|
|
3892
|
+
) }) })
|
|
3893
|
+
] })
|
|
3894
|
+
]
|
|
3310
3895
|
}
|
|
3311
3896
|
);
|
|
3312
3897
|
};
|
|
3313
3898
|
|
|
3899
|
+
// templates/DayNightTransition/dayNightTransitionPresets.ts
|
|
3900
|
+
var dayNightTransitionV2Preset = {
|
|
3901
|
+
className: "dnt--layout-v2 dnt--webflow-v2",
|
|
3902
|
+
scrollPreset: "webflow-day-night-v2",
|
|
3903
|
+
dayImageUrl: "https://cdn.prod.website-files.com/68da5c86c91c54f39c86c28a/68da5c86c91c54f39c86cd8f_trade_day.webp",
|
|
3904
|
+
nightImageUrl: "https://cdn.prod.website-files.com/66585fe0e1dc7e70cc75d440/6757df573bf331c84b6c69fe_trade_night.webp",
|
|
3905
|
+
dayHeadline: "Section title light\n",
|
|
3906
|
+
nightHeadline: "Section title dark\n",
|
|
3907
|
+
dayDescription: "This section is designed to give your visitors a quick overview of why your solution is the right choice. Use this space to provide high-level context.\n",
|
|
3908
|
+
nightDescription: "This section is designed to give your visitors a quick overview of why your solution is the right choice. Use this space to provide high-level context.",
|
|
3909
|
+
ctaLabel: "Open account",
|
|
3910
|
+
ctaHref: "#"
|
|
3911
|
+
};
|
|
3912
|
+
|
|
3314
3913
|
// templates/LogoMarquee/LogoMarquee.tsx
|
|
3315
3914
|
var import_react16 = require("react");
|
|
3316
3915
|
var import_framer_motion4 = require("framer-motion");
|
|
3317
|
-
var
|
|
3916
|
+
var import_jsx_runtime29 = require("react/jsx-runtime");
|
|
3318
3917
|
function modWrap(min, max, v) {
|
|
3319
3918
|
const range = max - min;
|
|
3320
3919
|
return ((v - min) % range + range) % range + min;
|
|
@@ -3385,21 +3984,21 @@ var LogoMarquee = ({
|
|
|
3385
3984
|
});
|
|
3386
3985
|
const track1 = [...col1Logos, ...col1Logos];
|
|
3387
3986
|
const track2 = [...col2Logos, ...col2Logos];
|
|
3388
|
-
return /* @__PURE__ */ (0,
|
|
3987
|
+
return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
3389
3988
|
"section",
|
|
3390
3989
|
{
|
|
3391
3990
|
className: ["lm", className].filter(Boolean).join(" "),
|
|
3392
3991
|
...props,
|
|
3393
|
-
children: /* @__PURE__ */ (0,
|
|
3394
|
-
/* @__PURE__ */ (0,
|
|
3395
|
-
/* @__PURE__ */ (0,
|
|
3396
|
-
/* @__PURE__ */ (0,
|
|
3992
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: "lm__inner", children: [
|
|
3993
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)("div", { className: "lm__media", children: /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: "lm__carousel", children: [
|
|
3994
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)("div", { className: "lm__fade lm__fade--top", "aria-hidden": "true" }),
|
|
3995
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
3397
3996
|
import_framer_motion4.motion.div,
|
|
3398
3997
|
{
|
|
3399
3998
|
ref: col1Ref,
|
|
3400
3999
|
className: "lm__col",
|
|
3401
4000
|
style: { y: col1Y },
|
|
3402
|
-
children: track1.map((logo, i) => /* @__PURE__ */ (0,
|
|
4001
|
+
children: track1.map((logo, i) => /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("div", { className: "lm__card", children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("div", { className: "lm__card-img-wrap", children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
3403
4002
|
"img",
|
|
3404
4003
|
{
|
|
3405
4004
|
src: logo.url,
|
|
@@ -3410,13 +4009,13 @@ var LogoMarquee = ({
|
|
|
3410
4009
|
) }) }, `c1-${i}`))
|
|
3411
4010
|
}
|
|
3412
4011
|
),
|
|
3413
|
-
/* @__PURE__ */ (0,
|
|
4012
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
3414
4013
|
import_framer_motion4.motion.div,
|
|
3415
4014
|
{
|
|
3416
4015
|
ref: col2Ref,
|
|
3417
4016
|
className: "lm__col",
|
|
3418
4017
|
style: { y: col2Y },
|
|
3419
|
-
children: track2.map((logo, i) => /* @__PURE__ */ (0,
|
|
4018
|
+
children: track2.map((logo, i) => /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("div", { className: "lm__card", children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("div", { className: "lm__card-img-wrap", children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
3420
4019
|
"img",
|
|
3421
4020
|
{
|
|
3422
4021
|
src: logo.url,
|
|
@@ -3427,17 +4026,17 @@ var LogoMarquee = ({
|
|
|
3427
4026
|
) }) }, `c2-${i}`))
|
|
3428
4027
|
}
|
|
3429
4028
|
),
|
|
3430
|
-
/* @__PURE__ */ (0,
|
|
4029
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)("div", { className: "lm__fade lm__fade--bottom", "aria-hidden": "true" })
|
|
3431
4030
|
] }) }),
|
|
3432
|
-
/* @__PURE__ */ (0,
|
|
3433
|
-
/* @__PURE__ */ (0,
|
|
3434
|
-
/* @__PURE__ */ (0,
|
|
3435
|
-
/* @__PURE__ */ (0,
|
|
3436
|
-
/* @__PURE__ */ (0,
|
|
4031
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: "lm__content", children: [
|
|
4032
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)("h2", { className: "lm__headline", children: headline }),
|
|
4033
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: "lm__text-group", children: [
|
|
4034
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)("p", { className: "lm__body", children: body }),
|
|
4035
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)("p", { className: "lm__disclaimer", children: disclaimer })
|
|
3437
4036
|
] }),
|
|
3438
|
-
/* @__PURE__ */ (0,
|
|
4037
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("a", { href: ctaHref, className: "lm__link", children: [
|
|
3439
4038
|
ctaLabel,
|
|
3440
|
-
/* @__PURE__ */ (0,
|
|
4039
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)("span", { className: "lm__link-icon", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("path", { d: "M3 8H13M13 8L9 4M13 8L9 12", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }) }) })
|
|
3441
4040
|
] })
|
|
3442
4041
|
] })
|
|
3443
4042
|
] })
|
|
@@ -3488,7 +4087,7 @@ var appstore_linux_dark_default = "./appstore-linux-dark-RVH7CBM4.svg";
|
|
|
3488
4087
|
var appstore_browser_dark_default = "./appstore-browser-dark-2E6TK6JH.svg";
|
|
3489
4088
|
|
|
3490
4089
|
// primitives/DownloadBadge/DownloadBadge.tsx
|
|
3491
|
-
var
|
|
4090
|
+
var import_jsx_runtime30 = require("react/jsx-runtime");
|
|
3492
4091
|
var BADGE_ASSETS = {
|
|
3493
4092
|
light: {
|
|
3494
4093
|
googleplay: { src: appstore_googleplay_light_default, alt: "Get it on Google Play" },
|
|
@@ -3517,7 +4116,7 @@ var DownloadBadge = ({
|
|
|
3517
4116
|
...props
|
|
3518
4117
|
}) => {
|
|
3519
4118
|
const { src, alt } = BADGE_ASSETS[colorScheme][platform];
|
|
3520
|
-
return /* @__PURE__ */ (0,
|
|
4119
|
+
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
3521
4120
|
"a",
|
|
3522
4121
|
{
|
|
3523
4122
|
className: [
|
|
@@ -3530,13 +4129,13 @@ var DownloadBadge = ({
|
|
|
3530
4129
|
target: "_blank",
|
|
3531
4130
|
rel: "noopener noreferrer",
|
|
3532
4131
|
...props,
|
|
3533
|
-
children: /* @__PURE__ */ (0,
|
|
4132
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("img", { className: "download-badge__img", src, alt })
|
|
3534
4133
|
}
|
|
3535
4134
|
);
|
|
3536
4135
|
};
|
|
3537
4136
|
|
|
3538
4137
|
// templates/Steps/Steps.tsx
|
|
3539
|
-
var
|
|
4138
|
+
var import_jsx_runtime31 = require("react/jsx-runtime");
|
|
3540
4139
|
var Steps = ({
|
|
3541
4140
|
title,
|
|
3542
4141
|
steps,
|
|
@@ -3548,8 +4147,8 @@ var Steps = ({
|
|
|
3548
4147
|
"steps__container",
|
|
3549
4148
|
imagePosition === "right" ? "steps__container--image-right" : ""
|
|
3550
4149
|
].filter(Boolean).join(" ");
|
|
3551
|
-
return /* @__PURE__ */ (0,
|
|
3552
|
-
image && /* @__PURE__ */ (0,
|
|
4150
|
+
return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("section", { className: "steps", children: /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)("div", { className: containerClass, children: [
|
|
4151
|
+
image && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("div", { className: "steps__image-wrapper", children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
|
|
3553
4152
|
"img",
|
|
3554
4153
|
{
|
|
3555
4154
|
src: image,
|
|
@@ -3557,13 +4156,13 @@ var Steps = ({
|
|
|
3557
4156
|
className: "steps__image"
|
|
3558
4157
|
}
|
|
3559
4158
|
) }),
|
|
3560
|
-
/* @__PURE__ */ (0,
|
|
3561
|
-
/* @__PURE__ */ (0,
|
|
3562
|
-
/* @__PURE__ */ (0,
|
|
3563
|
-
/* @__PURE__ */ (0,
|
|
3564
|
-
/* @__PURE__ */ (0,
|
|
3565
|
-
/* @__PURE__ */ (0,
|
|
3566
|
-
/* @__PURE__ */ (0,
|
|
4159
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsxs)("div", { className: "steps__content", children: [
|
|
4160
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)("h2", { className: "steps__title", children: title }),
|
|
4161
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)("ol", { className: "steps__list", children: steps.map((step, index) => /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("li", { className: "steps__item", children: /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)("div", { className: "steps__item-inner", children: [
|
|
4162
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)("span", { className: "steps__number", "aria-hidden": "true", children: index + 1 }),
|
|
4163
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsxs)("div", { className: "steps__item-body", children: [
|
|
4164
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)("h3", { className: "steps__item-title", children: step.title }),
|
|
4165
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)("p", { className: "steps__item-description", children: step.description })
|
|
3567
4166
|
] })
|
|
3568
4167
|
] }) }, index)) })
|
|
3569
4168
|
] })
|
|
@@ -3571,7 +4170,7 @@ var Steps = ({
|
|
|
3571
4170
|
};
|
|
3572
4171
|
|
|
3573
4172
|
// templates/DownloadBanner/DownloadBanner.tsx
|
|
3574
|
-
var
|
|
4173
|
+
var import_jsx_runtime32 = require("react/jsx-runtime");
|
|
3575
4174
|
var DownloadBanner = ({
|
|
3576
4175
|
style = "light-2",
|
|
3577
4176
|
qrCodeImage,
|
|
@@ -3596,9 +4195,9 @@ var DownloadBanner = ({
|
|
|
3596
4195
|
disclaimer
|
|
3597
4196
|
}) => {
|
|
3598
4197
|
const colorScheme = style === "dark" ? "dark" : "light";
|
|
3599
|
-
return /* @__PURE__ */ (0,
|
|
3600
|
-
/* @__PURE__ */ (0,
|
|
3601
|
-
qrCodeImage && /* @__PURE__ */ (0,
|
|
4198
|
+
return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("section", { className: `db-section db-section--${style}`, children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("div", { className: "db-container", children: /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)("div", { className: "db-card", children: [
|
|
4199
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsxs)("div", { className: "db-qr-block", children: [
|
|
4200
|
+
qrCodeImage && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
3602
4201
|
"img",
|
|
3603
4202
|
{
|
|
3604
4203
|
className: "db-qr-image",
|
|
@@ -3606,24 +4205,532 @@ var DownloadBanner = ({
|
|
|
3606
4205
|
alt: qrCodeAlt
|
|
3607
4206
|
}
|
|
3608
4207
|
),
|
|
3609
|
-
/* @__PURE__ */ (0,
|
|
3610
|
-
/* @__PURE__ */ (0,
|
|
3611
|
-
/* @__PURE__ */ (0,
|
|
3612
|
-
/* @__PURE__ */ (0,
|
|
3613
|
-
disclaimer && /* @__PURE__ */ (0,
|
|
4208
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsxs)("div", { className: "db-qr-text", children: [
|
|
4209
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)("span", { className: "db-qr-text__title db-qr-text__title--desktop", children: qrTitle }),
|
|
4210
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)("h2", { className: "db-qr-text__subtitle db-qr-text__subtitle--desktop", children: qrSubtitle }),
|
|
4211
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)("span", { className: "db-qr-text__title db-qr-text__title--mobile", children: mobileTitle }),
|
|
4212
|
+
disclaimer && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("span", { className: "db-disclaimer", children: disclaimer })
|
|
3614
4213
|
] })
|
|
3615
4214
|
] }),
|
|
3616
|
-
/* @__PURE__ */ (0,
|
|
3617
|
-
showGooglePlay && /* @__PURE__ */ (0,
|
|
3618
|
-
showAppGallery && /* @__PURE__ */ (0,
|
|
3619
|
-
showMacOS && /* @__PURE__ */ (0,
|
|
3620
|
-
showWindows && /* @__PURE__ */ (0,
|
|
3621
|
-
showLinux && /* @__PURE__ */ (0,
|
|
3622
|
-
showAppStore && /* @__PURE__ */ (0,
|
|
3623
|
-
showWeb && /* @__PURE__ */ (0,
|
|
4215
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsxs)("div", { className: "db-badges", children: [
|
|
4216
|
+
showGooglePlay && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(DownloadBadge, { platform: "googleplay", colorScheme, href: googlePlayHref }),
|
|
4217
|
+
showAppGallery && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(DownloadBadge, { platform: "appgallery", colorScheme, href: appGalleryHref }),
|
|
4218
|
+
showMacOS && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(DownloadBadge, { platform: "macos", colorScheme, href: macOSHref }),
|
|
4219
|
+
showWindows && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(DownloadBadge, { platform: "windows", colorScheme, href: windowsHref }),
|
|
4220
|
+
showLinux && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(DownloadBadge, { platform: "linux", colorScheme, href: linuxHref }),
|
|
4221
|
+
showAppStore && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(DownloadBadge, { platform: "appstore", colorScheme, href: appStoreHref }),
|
|
4222
|
+
showWeb && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(DownloadBadge, { platform: "web", colorScheme, href: webHref })
|
|
3624
4223
|
] })
|
|
3625
4224
|
] }) }) });
|
|
3626
4225
|
};
|
|
4226
|
+
|
|
4227
|
+
// templates/TextScroll/TextScroll.tsx
|
|
4228
|
+
var import_react17 = require("react");
|
|
4229
|
+
var import_gsap = require("gsap");
|
|
4230
|
+
var import_ScrollTrigger = require("gsap/ScrollTrigger");
|
|
4231
|
+
var import_jsx_runtime33 = require("react/jsx-runtime");
|
|
4232
|
+
import_gsap.gsap.registerPlugin(import_ScrollTrigger.ScrollTrigger);
|
|
4233
|
+
var TextScroll = ({ text, className }) => {
|
|
4234
|
+
const sectionRef = (0, import_react17.useRef)(null);
|
|
4235
|
+
const wordsRef = (0, import_react17.useRef)([]);
|
|
4236
|
+
const words = text.split(/\s+/).filter(Boolean);
|
|
4237
|
+
(0, import_react17.useEffect)(() => {
|
|
4238
|
+
const section = sectionRef.current;
|
|
4239
|
+
const wordEls = wordsRef.current.filter(Boolean);
|
|
4240
|
+
if (!section || wordEls.length === 0) return;
|
|
4241
|
+
const isMobile = window.matchMedia("(max-width: 767px)").matches;
|
|
4242
|
+
const startValue = isMobile ? "top 35%" : "top center";
|
|
4243
|
+
const endValue = isMobile ? "bottom 90%" : "bottom center";
|
|
4244
|
+
const rafId = requestAnimationFrame(() => {
|
|
4245
|
+
import_gsap.gsap.set(wordEls, { opacity: 0.2 });
|
|
4246
|
+
const tl = import_gsap.gsap.timeline({
|
|
4247
|
+
scrollTrigger: {
|
|
4248
|
+
trigger: section,
|
|
4249
|
+
start: startValue,
|
|
4250
|
+
end: endValue,
|
|
4251
|
+
scrub: 2
|
|
4252
|
+
}
|
|
4253
|
+
});
|
|
4254
|
+
tl.to(wordEls, {
|
|
4255
|
+
opacity: 1,
|
|
4256
|
+
stagger: 0.1,
|
|
4257
|
+
ease: "none"
|
|
4258
|
+
});
|
|
4259
|
+
section._tl = tl;
|
|
4260
|
+
});
|
|
4261
|
+
return () => {
|
|
4262
|
+
cancelAnimationFrame(rafId);
|
|
4263
|
+
const tl = section._tl;
|
|
4264
|
+
if (tl) {
|
|
4265
|
+
tl.scrollTrigger?.kill();
|
|
4266
|
+
tl.kill();
|
|
4267
|
+
}
|
|
4268
|
+
import_gsap.gsap.set(wordEls, { clearProps: "opacity" });
|
|
4269
|
+
};
|
|
4270
|
+
}, [text]);
|
|
4271
|
+
return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
4272
|
+
"section",
|
|
4273
|
+
{
|
|
4274
|
+
ref: sectionRef,
|
|
4275
|
+
className: ["ts", className].filter(Boolean).join(" "),
|
|
4276
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { className: "ts__inner", children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("p", { className: "ts__text", "aria-label": text, children: words.map((word, i) => /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(
|
|
4277
|
+
"span",
|
|
4278
|
+
{
|
|
4279
|
+
ref: (el) => {
|
|
4280
|
+
if (el) wordsRef.current[i] = el;
|
|
4281
|
+
},
|
|
4282
|
+
className: "ts__word",
|
|
4283
|
+
"aria-hidden": "true",
|
|
4284
|
+
children: [
|
|
4285
|
+
word,
|
|
4286
|
+
i < words.length - 1 ? " " : ""
|
|
4287
|
+
]
|
|
4288
|
+
},
|
|
4289
|
+
i
|
|
4290
|
+
)) }) })
|
|
4291
|
+
}
|
|
4292
|
+
);
|
|
4293
|
+
};
|
|
4294
|
+
|
|
4295
|
+
// templates/StickyMarketCards/StickyMarketCards.tsx
|
|
4296
|
+
var import_react18 = require("react");
|
|
4297
|
+
var import_jsx_runtime34 = require("react/jsx-runtime");
|
|
4298
|
+
var PLACEHOLDER_IMAGE3 = "https://cdn.prod.website-files.com/68da5c86c91c54f39c86c28a/69b9309379ac08e59ca8210a_1f3f555da9a5cbb13a6fe1bf0d5fe1b6_placeholder-image.webp";
|
|
4299
|
+
var StickyMarketCards = ({
|
|
4300
|
+
sectionTitle,
|
|
4301
|
+
sectionDescription,
|
|
4302
|
+
items,
|
|
4303
|
+
className,
|
|
4304
|
+
...props
|
|
4305
|
+
}) => {
|
|
4306
|
+
const cardRefs = (0, import_react18.useRef)([]);
|
|
4307
|
+
const cardInnerRefs = (0, import_react18.useRef)([]);
|
|
4308
|
+
(0, import_react18.useEffect)(() => {
|
|
4309
|
+
if (typeof window === "undefined") return;
|
|
4310
|
+
let rafId = 0;
|
|
4311
|
+
const update = () => {
|
|
4312
|
+
const wrappers = cardRefs.current.filter(Boolean);
|
|
4313
|
+
const inners = cardInnerRefs.current.filter(Boolean);
|
|
4314
|
+
const n2 = wrappers.length;
|
|
4315
|
+
wrappers.forEach((wrapper, i) => {
|
|
4316
|
+
const inner = inners[i];
|
|
4317
|
+
if (!inner) return;
|
|
4318
|
+
if (i === n2 - 1) {
|
|
4319
|
+
inner.style.transform = "scale(1)";
|
|
4320
|
+
inner.style.filter = "brightness(1)";
|
|
4321
|
+
return;
|
|
4322
|
+
}
|
|
4323
|
+
const nextWrapper = wrappers[i + 1];
|
|
4324
|
+
if (!nextWrapper) return;
|
|
4325
|
+
const currentRect = wrapper.getBoundingClientRect();
|
|
4326
|
+
const nextRect = nextWrapper.getBoundingClientRect();
|
|
4327
|
+
const overlap = currentRect.bottom - nextRect.top;
|
|
4328
|
+
if (overlap > 0) {
|
|
4329
|
+
const progress = Math.min(overlap / currentRect.height, 1);
|
|
4330
|
+
inner.style.transform = `scale(${(1 - progress * 0.05).toFixed(4)})`;
|
|
4331
|
+
inner.style.filter = `brightness(${(1 - progress * 0.4).toFixed(4)})`;
|
|
4332
|
+
} else {
|
|
4333
|
+
inner.style.transform = "scale(1)";
|
|
4334
|
+
inner.style.filter = "brightness(1)";
|
|
4335
|
+
}
|
|
4336
|
+
});
|
|
4337
|
+
};
|
|
4338
|
+
const onScroll = () => {
|
|
4339
|
+
cancelAnimationFrame(rafId);
|
|
4340
|
+
rafId = requestAnimationFrame(update);
|
|
4341
|
+
};
|
|
4342
|
+
window.addEventListener("scroll", onScroll, { passive: true });
|
|
4343
|
+
update();
|
|
4344
|
+
return () => {
|
|
4345
|
+
window.removeEventListener("scroll", onScroll);
|
|
4346
|
+
cancelAnimationFrame(rafId);
|
|
4347
|
+
};
|
|
4348
|
+
}, [items.length]);
|
|
4349
|
+
(0, import_react18.useEffect)(() => {
|
|
4350
|
+
if (typeof window === "undefined") return;
|
|
4351
|
+
const syncHeights = () => {
|
|
4352
|
+
const inners = cardInnerRefs.current.filter(Boolean);
|
|
4353
|
+
if (!inners.length) return;
|
|
4354
|
+
inners.forEach((inner) => {
|
|
4355
|
+
inner.style.minHeight = "";
|
|
4356
|
+
});
|
|
4357
|
+
let maxH = 0;
|
|
4358
|
+
inners.forEach((inner) => {
|
|
4359
|
+
const h = inner.getBoundingClientRect().height;
|
|
4360
|
+
if (h > maxH) maxH = h;
|
|
4361
|
+
});
|
|
4362
|
+
inners.forEach((inner) => {
|
|
4363
|
+
inner.style.minHeight = `${maxH}px`;
|
|
4364
|
+
});
|
|
4365
|
+
};
|
|
4366
|
+
syncHeights();
|
|
4367
|
+
window.addEventListener("resize", syncHeights);
|
|
4368
|
+
if (document.fonts && document.fonts.ready) {
|
|
4369
|
+
document.fonts.ready.then(syncHeights);
|
|
4370
|
+
}
|
|
4371
|
+
return () => {
|
|
4372
|
+
window.removeEventListener("resize", syncHeights);
|
|
4373
|
+
};
|
|
4374
|
+
}, [items.length]);
|
|
4375
|
+
const n = items.length;
|
|
4376
|
+
const maxStack = 4;
|
|
4377
|
+
const baseIndex = Math.max(0, n - maxStack);
|
|
4378
|
+
return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
|
4379
|
+
"section",
|
|
4380
|
+
{
|
|
4381
|
+
className: ["smc", className].filter(Boolean).join(" "),
|
|
4382
|
+
...props,
|
|
4383
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: "smc__inner", children: [
|
|
4384
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: "smc__header-wrap", children: [
|
|
4385
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)("h2", { className: "smc__header", children: sectionTitle }),
|
|
4386
|
+
sectionDescription && /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("p", { className: "smc__description", children: sectionDescription })
|
|
4387
|
+
] }),
|
|
4388
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: "smc__track", children: items.map((item, i) => {
|
|
4389
|
+
const theme = item.theme ?? "dark";
|
|
4390
|
+
const offsetMultiplier = Math.max(0, i - baseIndex);
|
|
4391
|
+
return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
|
4392
|
+
"div",
|
|
4393
|
+
{
|
|
4394
|
+
ref: (el) => {
|
|
4395
|
+
cardRefs.current[i] = el;
|
|
4396
|
+
},
|
|
4397
|
+
className: "smc__card",
|
|
4398
|
+
style: {
|
|
4399
|
+
["--smc-card-index"]: String(offsetMultiplier),
|
|
4400
|
+
zIndex: i + 1
|
|
4401
|
+
},
|
|
4402
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(
|
|
4403
|
+
"div",
|
|
4404
|
+
{
|
|
4405
|
+
ref: (el) => {
|
|
4406
|
+
cardInnerRefs.current[i] = el;
|
|
4407
|
+
},
|
|
4408
|
+
className: [
|
|
4409
|
+
"smc__card-inner",
|
|
4410
|
+
`smc__card-inner--${theme}`
|
|
4411
|
+
].join(" "),
|
|
4412
|
+
children: [
|
|
4413
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: "smc__card-bg", children: [
|
|
4414
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
|
4415
|
+
"img",
|
|
4416
|
+
{
|
|
4417
|
+
src: item.imageUrl ?? PLACEHOLDER_IMAGE3,
|
|
4418
|
+
alt: "",
|
|
4419
|
+
"aria-hidden": "true",
|
|
4420
|
+
loading: i === 0 ? "eager" : "lazy"
|
|
4421
|
+
}
|
|
4422
|
+
),
|
|
4423
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
|
4424
|
+
"div",
|
|
4425
|
+
{
|
|
4426
|
+
className: [
|
|
4427
|
+
"smc__card-overlay",
|
|
4428
|
+
`smc__card-overlay--${theme}`
|
|
4429
|
+
].join(" ")
|
|
4430
|
+
}
|
|
4431
|
+
)
|
|
4432
|
+
] }),
|
|
4433
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: "smc__card-content", children: [
|
|
4434
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: "smc__card-title-wrap", children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("h3", { className: "smc__card-title", children: item.title }) }),
|
|
4435
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: "smc__card-desc-wrap", children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("p", { className: "smc__card-desc", children: item.description }) })
|
|
4436
|
+
] })
|
|
4437
|
+
]
|
|
4438
|
+
}
|
|
4439
|
+
)
|
|
4440
|
+
},
|
|
4441
|
+
i
|
|
4442
|
+
);
|
|
4443
|
+
}) })
|
|
4444
|
+
] })
|
|
4445
|
+
}
|
|
4446
|
+
);
|
|
4447
|
+
};
|
|
4448
|
+
|
|
4449
|
+
// templates/Table/Table.tsx
|
|
4450
|
+
var import_react19 = require("react");
|
|
4451
|
+
var import_jsx_runtime35 = require("react/jsx-runtime");
|
|
4452
|
+
var InfoIcon = ({ className }) => /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("svg", { width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", className, children: [
|
|
4453
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)("circle", { cx: "12", cy: "12", r: "10", stroke: "currentColor", strokeWidth: "1.5" }),
|
|
4454
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)("path", { d: "M12 16V12", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round" }),
|
|
4455
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)("circle", { cx: "12", cy: "8", r: "1", fill: "currentColor", stroke: "currentColor", strokeWidth: "1" })
|
|
4456
|
+
] });
|
|
4457
|
+
var Table = ({
|
|
4458
|
+
sectionTitle,
|
|
4459
|
+
columns,
|
|
4460
|
+
rows,
|
|
4461
|
+
mainColumnKey,
|
|
4462
|
+
pageSize = 10,
|
|
4463
|
+
searchPlaceholder = "Search",
|
|
4464
|
+
infoText,
|
|
4465
|
+
className,
|
|
4466
|
+
...props
|
|
4467
|
+
}) => {
|
|
4468
|
+
const [search, setSearch] = (0, import_react19.useState)("");
|
|
4469
|
+
const [page, setPage] = (0, import_react19.useState)(1);
|
|
4470
|
+
const [tooltip, setTooltip] = (0, import_react19.useState)({ visible: false, heading: "", description: "", x: 0, y: 0, arrowOffset: 0 });
|
|
4471
|
+
const mainKey = mainColumnKey ?? columns.find((c) => c.width === "main")?.key ?? columns[0]?.key;
|
|
4472
|
+
const filtered = (0, import_react19.useMemo)(() => {
|
|
4473
|
+
const q = search.trim().toLowerCase();
|
|
4474
|
+
if (!q) return rows;
|
|
4475
|
+
return rows.filter(
|
|
4476
|
+
(row) => Object.values(row).some((v) => v.toLowerCase().includes(q))
|
|
4477
|
+
);
|
|
4478
|
+
}, [rows, search]);
|
|
4479
|
+
const totalPages = Math.max(1, Math.ceil(filtered.length / pageSize));
|
|
4480
|
+
const currentPage = Math.min(page, totalPages);
|
|
4481
|
+
const startIdx = (currentPage - 1) * pageSize;
|
|
4482
|
+
const endIdx = Math.min(startIdx + pageSize, filtered.length);
|
|
4483
|
+
const visible = filtered.slice(startIdx, endIdx);
|
|
4484
|
+
const handleSearch = (e) => {
|
|
4485
|
+
setSearch(e.target.value);
|
|
4486
|
+
setPage(1);
|
|
4487
|
+
};
|
|
4488
|
+
const handleClear = () => {
|
|
4489
|
+
setSearch("");
|
|
4490
|
+
setPage(1);
|
|
4491
|
+
};
|
|
4492
|
+
return /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("section", { className: ["tbl-section", className].filter(Boolean).join(" "), ...props, children: [
|
|
4493
|
+
sectionTitle && /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { className: "tbl-section__header", children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("h2", { className: "tbl-section__title", children: sectionTitle }) }),
|
|
4494
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: "tbl-section__content", children: [
|
|
4495
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: "tbl", children: [
|
|
4496
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: "tbl__topbar", children: [
|
|
4497
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { className: "tbl__search-wrap", children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
4498
|
+
SearchField,
|
|
4499
|
+
{
|
|
4500
|
+
placeholder: searchPlaceholder,
|
|
4501
|
+
value: search,
|
|
4502
|
+
onChange: handleSearch,
|
|
4503
|
+
onClear: handleClear,
|
|
4504
|
+
variant: "fill",
|
|
4505
|
+
"aria-label": searchPlaceholder
|
|
4506
|
+
}
|
|
4507
|
+
) }),
|
|
4508
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { className: "tbl__summary", children: filtered.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(import_jsx_runtime35.Fragment, { children: [
|
|
4509
|
+
"Showing ",
|
|
4510
|
+
startIdx + 1,
|
|
4511
|
+
"- ",
|
|
4512
|
+
endIdx,
|
|
4513
|
+
" of ",
|
|
4514
|
+
filtered.length
|
|
4515
|
+
] }) : "No results" })
|
|
4516
|
+
] }),
|
|
4517
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { className: "tbl__scroll-wrapper", children: /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("table", { className: "tbl__table", children: [
|
|
4518
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)("thead", { children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("tr", { className: "tbl__tr", children: columns.map((col, colIdx) => {
|
|
4519
|
+
const isFirst = colIdx === 0;
|
|
4520
|
+
const isLast = colIdx === columns.length - 1;
|
|
4521
|
+
const isMain = col.width === "main" || col.key === mainKey;
|
|
4522
|
+
return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
4523
|
+
"th",
|
|
4524
|
+
{
|
|
4525
|
+
className: [
|
|
4526
|
+
"tbl__th",
|
|
4527
|
+
isMain ? "tbl__th--main" : "",
|
|
4528
|
+
col.width === "big" ? "tbl__th--big" : ""
|
|
4529
|
+
].filter(Boolean).join(" "),
|
|
4530
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
4531
|
+
"div",
|
|
4532
|
+
{
|
|
4533
|
+
className: "tbl__th-inner",
|
|
4534
|
+
onMouseEnter: (e) => {
|
|
4535
|
+
if (!col.tooltip) return;
|
|
4536
|
+
const rect = e.currentTarget.getBoundingClientRect();
|
|
4537
|
+
const targetX = rect.left + rect.width / 2;
|
|
4538
|
+
const targetY = rect.top;
|
|
4539
|
+
const tooltipHalfWidth = 104;
|
|
4540
|
+
const margin = 16;
|
|
4541
|
+
const clampedX = Math.max(
|
|
4542
|
+
margin + tooltipHalfWidth,
|
|
4543
|
+
Math.min(window.innerWidth - margin - tooltipHalfWidth, targetX)
|
|
4544
|
+
);
|
|
4545
|
+
const arrowOffset = targetX - clampedX;
|
|
4546
|
+
setTooltip({
|
|
4547
|
+
visible: true,
|
|
4548
|
+
heading: col.tooltip.heading,
|
|
4549
|
+
description: col.tooltip.description,
|
|
4550
|
+
x: clampedX,
|
|
4551
|
+
y: targetY,
|
|
4552
|
+
arrowOffset
|
|
4553
|
+
});
|
|
4554
|
+
},
|
|
4555
|
+
onMouseLeave: () => {
|
|
4556
|
+
if (col.tooltip) {
|
|
4557
|
+
setTooltip((prev) => ({ ...prev, visible: false }));
|
|
4558
|
+
}
|
|
4559
|
+
},
|
|
4560
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("span", { className: ["tbl__col-label", col.tooltip ? "tbl__col-label--dashed" : ""].filter(Boolean).join(" "), children: Array.isArray(col.header) ? col.header.map((line, li) => /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("span", { children: [
|
|
4561
|
+
line,
|
|
4562
|
+
li < col.header.length - 1 && /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("br", {})
|
|
4563
|
+
] }, li)) : col.header })
|
|
4564
|
+
}
|
|
4565
|
+
)
|
|
4566
|
+
},
|
|
4567
|
+
col.key
|
|
4568
|
+
);
|
|
4569
|
+
}) }) }),
|
|
4570
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)("tbody", { className: "tbl__tbody", children: visible.length > 0 ? visible.map((row, rowIdx) => /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("tr", { className: "tbl__tr", children: columns.map((col) => {
|
|
4571
|
+
const isMain = col.width === "main" || col.key === mainKey;
|
|
4572
|
+
const iconUrl = row[`${col.key}_iconUrl`];
|
|
4573
|
+
return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
4574
|
+
"td",
|
|
4575
|
+
{
|
|
4576
|
+
className: [
|
|
4577
|
+
"tbl__td",
|
|
4578
|
+
isMain ? "tbl__td--main" : "",
|
|
4579
|
+
col.width === "big" ? "tbl__td--big" : ""
|
|
4580
|
+
].filter(Boolean).join(" "),
|
|
4581
|
+
children: isMain ? /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: "tbl__cell-inner", children: [
|
|
4582
|
+
iconUrl && /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
4583
|
+
"img",
|
|
4584
|
+
{
|
|
4585
|
+
src: iconUrl,
|
|
4586
|
+
alt: "",
|
|
4587
|
+
"aria-hidden": "true",
|
|
4588
|
+
className: "tbl__cell-icon",
|
|
4589
|
+
loading: "lazy",
|
|
4590
|
+
width: "24",
|
|
4591
|
+
height: "24"
|
|
4592
|
+
}
|
|
4593
|
+
),
|
|
4594
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)("span", { className: "tbl__cell-text tbl__cell-text--bold", children: row[col.key] ?? "" })
|
|
4595
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("span", { className: "tbl__cell-text", children: row[col.key] ?? "" })
|
|
4596
|
+
},
|
|
4597
|
+
col.key
|
|
4598
|
+
);
|
|
4599
|
+
}) }, rowIdx)) : /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("tr", { className: "tbl__tr", children: /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("td", { colSpan: columns.length, className: "tbl__empty-cell", children: [
|
|
4600
|
+
'No results found for "',
|
|
4601
|
+
search,
|
|
4602
|
+
'"'
|
|
4603
|
+
] }) }) })
|
|
4604
|
+
] }) }),
|
|
4605
|
+
totalPages > 1 && /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { className: "tbl__footer", children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { className: "tbl__pagination-wrap", children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
4606
|
+
Pagination,
|
|
4607
|
+
{
|
|
4608
|
+
currentPage,
|
|
4609
|
+
totalPages,
|
|
4610
|
+
onPageChange: setPage
|
|
4611
|
+
}
|
|
4612
|
+
) }) })
|
|
4613
|
+
] }),
|
|
4614
|
+
infoText && /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: "tbl-section__info-box", children: [
|
|
4615
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(InfoIcon, { className: "tbl-section__info-icon" }),
|
|
4616
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)("p", { className: "tbl-section__info-text", children: infoText })
|
|
4617
|
+
] })
|
|
4618
|
+
] }),
|
|
4619
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(
|
|
4620
|
+
"div",
|
|
4621
|
+
{
|
|
4622
|
+
className: ["tbl__global-hint", tooltip.visible ? "tbl__global-hint--visible" : ""].filter(Boolean).join(" "),
|
|
4623
|
+
style: { left: tooltip.x, top: tooltip.y - 8 },
|
|
4624
|
+
children: [
|
|
4625
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { className: "tbl__global-hint-desc", children: tooltip.description }),
|
|
4626
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
4627
|
+
"div",
|
|
4628
|
+
{
|
|
4629
|
+
className: "tbl__global-hint-arrow",
|
|
4630
|
+
style: { transform: `translateX(calc(-50% + ${tooltip.arrowOffset}px))` }
|
|
4631
|
+
}
|
|
4632
|
+
)
|
|
4633
|
+
]
|
|
4634
|
+
}
|
|
4635
|
+
)
|
|
4636
|
+
] });
|
|
4637
|
+
};
|
|
4638
|
+
|
|
4639
|
+
// templates/Leaders/Leaders.tsx
|
|
4640
|
+
var import_react20 = require("react");
|
|
4641
|
+
|
|
4642
|
+
// templates/Leaders/Leaders.module.css
|
|
4643
|
+
var Leaders_default = {};
|
|
4644
|
+
|
|
4645
|
+
// templates/Leaders/Leaders.tsx
|
|
4646
|
+
var import_jsx_runtime36 = require("react/jsx-runtime");
|
|
4647
|
+
var LinkedInIcon = () => /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("path", { d: "M14.816 0H1.18C0.528 0 0 0.516 0 1.153V14.846C0 15.484 0.528 16 1.18 16H14.816C15.468 16 16 15.484 16 14.846V1.153C16 0.516 15.468 0 14.816 0ZM4.744 13.642H2.368V5.996H4.744V13.642ZM3.556 4.952C2.796 4.952 2.18 4.336 2.18 3.576C2.18 2.816 2.796 2.2 3.556 2.2C4.316 2.2 4.932 2.816 4.932 3.576C4.932 4.336 4.316 4.952 3.556 4.952ZM13.642 13.642H11.266V9.924C11.266 9.038 11.25 7.896 10.032 7.896C8.814 7.896 8.626 8.846 8.626 9.86V13.642H6.25V5.996H8.53V7.04H8.562C8.88 6.44 9.534 5.806 10.686 5.806C12.958 5.806 13.642 7.3 13.642 9.386V13.642Z", fill: "currentColor" }) });
|
|
4648
|
+
var ChevronDownIcon4 = () => /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("path", { d: "M4 6L8 10L12 6", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }) });
|
|
4649
|
+
var ChevronUpIcon = () => /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("path", { d: "M12 10L8 6L4 10", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }) });
|
|
4650
|
+
var CardContent = ({ item }) => /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(import_jsx_runtime36.Fragment, { children: [
|
|
4651
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)("div", { className: Leaders_default.imageWrapper, children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
4652
|
+
"img",
|
|
4653
|
+
{
|
|
4654
|
+
src: item.imageUrl,
|
|
4655
|
+
alt: item.name,
|
|
4656
|
+
className: Leaders_default.image,
|
|
4657
|
+
loading: "lazy"
|
|
4658
|
+
}
|
|
4659
|
+
) }),
|
|
4660
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { className: Leaders_default.content, children: [
|
|
4661
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)("h3", { className: Leaders_default.name, children: item.name }),
|
|
4662
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)("p", { className: Leaders_default.role, children: item.role })
|
|
4663
|
+
] }),
|
|
4664
|
+
item.linkedinUrl && /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
4665
|
+
Link,
|
|
4666
|
+
{
|
|
4667
|
+
href: item.linkedinUrl,
|
|
4668
|
+
target: "_blank",
|
|
4669
|
+
rel: "noopener noreferrer",
|
|
4670
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(LinkedInIcon, {}),
|
|
4671
|
+
label: "LinkedIn",
|
|
4672
|
+
colorScheme: "black",
|
|
4673
|
+
showChevron: false,
|
|
4674
|
+
className: Leaders_default.link
|
|
4675
|
+
}
|
|
4676
|
+
)
|
|
4677
|
+
] });
|
|
4678
|
+
var Leaders = ({
|
|
4679
|
+
title = "Our leaders",
|
|
4680
|
+
items,
|
|
4681
|
+
initialVisibleCount = 4,
|
|
4682
|
+
expandText = "View all",
|
|
4683
|
+
collapseText = "View less",
|
|
4684
|
+
className,
|
|
4685
|
+
...props
|
|
4686
|
+
}) => {
|
|
4687
|
+
const [isExpanded, setIsExpanded] = (0, import_react20.useState)(false);
|
|
4688
|
+
const hasMore = items.length > initialVisibleCount;
|
|
4689
|
+
const visibleItems = items.slice(0, initialVisibleCount);
|
|
4690
|
+
const extraItems = items.slice(initialVisibleCount);
|
|
4691
|
+
return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("section", { className: [Leaders_default.section, className].filter(Boolean).join(" "), ...props, children: /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { className: Leaders_default.container, children: [
|
|
4692
|
+
title && /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("div", { className: Leaders_default.header, children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("h2", { className: Leaders_default.title, children: title }) }),
|
|
4693
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { className: Leaders_default.gridWrapper, children: [
|
|
4694
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)("div", { className: Leaders_default.grid, children: visibleItems.map((item, i) => /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("div", { className: Leaders_default.card, children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(CardContent, { item }) }, i)) }),
|
|
4695
|
+
hasMore && /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
4696
|
+
"div",
|
|
4697
|
+
{
|
|
4698
|
+
className: [
|
|
4699
|
+
Leaders_default.extraCards,
|
|
4700
|
+
isExpanded ? Leaders_default.extraCardsOpen : ""
|
|
4701
|
+
].join(" "),
|
|
4702
|
+
"aria-hidden": !isExpanded,
|
|
4703
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("div", { className: Leaders_default.extraGrid, children: extraItems.map((item, i) => /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
4704
|
+
"div",
|
|
4705
|
+
{
|
|
4706
|
+
className: [
|
|
4707
|
+
Leaders_default.card,
|
|
4708
|
+
Leaders_default.extraCard,
|
|
4709
|
+
isExpanded ? Leaders_default.extraCardVisible : ""
|
|
4710
|
+
].join(" "),
|
|
4711
|
+
style: {
|
|
4712
|
+
transitionDelay: isExpanded ? `${i * 70 + 120}ms` : "0ms"
|
|
4713
|
+
},
|
|
4714
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(CardContent, { item })
|
|
4715
|
+
},
|
|
4716
|
+
i
|
|
4717
|
+
)) })
|
|
4718
|
+
}
|
|
4719
|
+
)
|
|
4720
|
+
] }),
|
|
4721
|
+
hasMore && /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("div", { className: Leaders_default.actions, children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
4722
|
+
Button,
|
|
4723
|
+
{
|
|
4724
|
+
variant: "secondary",
|
|
4725
|
+
colorScheme: "black",
|
|
4726
|
+
onClick: () => setIsExpanded(!isExpanded),
|
|
4727
|
+
iconPosition: "icon-right",
|
|
4728
|
+
icon: isExpanded ? /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(ChevronUpIcon, {}) : /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(ChevronDownIcon4, {}),
|
|
4729
|
+
children: isExpanded ? collapseText : expandText
|
|
4730
|
+
}
|
|
4731
|
+
) })
|
|
4732
|
+
] }) });
|
|
4733
|
+
};
|
|
3627
4734
|
// Annotate the CommonJS export names for ESM import in node:
|
|
3628
4735
|
0 && (module.exports = {
|
|
3629
4736
|
AVATAR_DATA,
|
|
@@ -3642,11 +4749,13 @@ var DownloadBanner = ({
|
|
|
3642
4749
|
DownloadBadge,
|
|
3643
4750
|
DownloadBanner,
|
|
3644
4751
|
FEATURE_SCROLL_DATA,
|
|
4752
|
+
FeatureBullets,
|
|
3645
4753
|
FeatureCards,
|
|
3646
4754
|
FeatureCardsSecondary,
|
|
3647
4755
|
FeatureScroll,
|
|
3648
4756
|
Footer,
|
|
3649
4757
|
Hero,
|
|
4758
|
+
Leaders,
|
|
3650
4759
|
Link,
|
|
3651
4760
|
LogoMarquee,
|
|
3652
4761
|
Navbar,
|
|
@@ -3655,9 +4764,14 @@ var DownloadBanner = ({
|
|
|
3655
4764
|
SearchField,
|
|
3656
4765
|
Stats,
|
|
3657
4766
|
Steps,
|
|
4767
|
+
StickyMarketCards,
|
|
3658
4768
|
StickyStackedCards,
|
|
3659
4769
|
TEXT_CONTENT,
|
|
4770
|
+
Table,
|
|
4771
|
+
Tabs,
|
|
3660
4772
|
Tag,
|
|
3661
|
-
TextField
|
|
4773
|
+
TextField,
|
|
4774
|
+
TextScroll,
|
|
4775
|
+
dayNightTransitionV2Preset
|
|
3662
4776
|
});
|
|
3663
4777
|
//# sourceMappingURL=index.js.map
|