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