@deriv-web-design/ui 0.0.13 → 0.0.15

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