@deriv-web-design/ui 0.1.13 → 0.1.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
@@ -5278,6 +5278,34 @@ var Leaders = AvatarGrid;
5278
5278
 
5279
5279
  // templates/ImageBanner/ImageBanner.tsx
5280
5280
  import { jsx as jsx43, jsxs as jsxs39 } from "react/jsx-runtime";
5281
+ var DEFAULT_CHIPS = [
5282
+ "Dynamic ads",
5283
+ "AI insights",
5284
+ "Performance tracking",
5285
+ "Events"
5286
+ ];
5287
+ var IMAGE_BANNER_CHIPS_DEFAULT_IMAGE = "https://cdn.prod.website-files.com/68da5c86c91c54f39c86c28a/69a13cf79748b347527dc74d_tier-cover.webp";
5288
+ var ChipCheckIcon = () => /* @__PURE__ */ jsx43(
5289
+ "svg",
5290
+ {
5291
+ className: "image-banner__chip-icon",
5292
+ width: "11",
5293
+ height: "12",
5294
+ viewBox: "0 0 11 18",
5295
+ fill: "none",
5296
+ xmlns: "http://www.w3.org/2000/svg",
5297
+ "aria-hidden": "true",
5298
+ focusable: "false",
5299
+ children: /* @__PURE__ */ jsx43(
5300
+ "path",
5301
+ {
5302
+ d: "M10.5156 5.98438C10.8203 6.26562 10.8203 6.75781 10.5156 7.03906L4.51562 13.0391C4.23438 13.3438 3.74219 13.3438 3.46094 13.0391L0.460938 10.0391C0.15625 9.75781 0.15625 9.26562 0.460938 8.98438C0.742188 8.67969 1.23438 8.67969 1.51562 8.98438L4 11.4453L9.46094 5.98438C9.74219 5.67969 10.2344 5.67969 10.5156 5.98438Z",
5303
+ fill: "currentColor",
5304
+ fillOpacity: "0.88"
5305
+ }
5306
+ )
5307
+ }
5308
+ );
5281
5309
  var ImageBanner = ({
5282
5310
  variant = "split-left",
5283
5311
  title = "Join our global community",
@@ -5285,16 +5313,25 @@ var ImageBanner = ({
5285
5313
  ctaLabel = "Trader's Hub",
5286
5314
  ctaHref,
5287
5315
  onCtaClick,
5316
+ chips = DEFAULT_CHIPS,
5288
5317
  imageUrl,
5289
5318
  imageAlt = "",
5290
5319
  className,
5291
5320
  ...props
5292
5321
  }) => {
5293
5322
  const isFullBg = variant === "full-bg-left" || variant === "full-bg-right";
5323
+ const isChips = variant === "chips-left" || variant === "chips-right";
5324
+ const showCta = !isChips && Boolean(ctaLabel);
5325
+ const visibleChips = isChips ? chips.filter((label) => label.trim().length > 0) : [];
5326
+ const resolvedImageUrl = imageUrl ?? (isChips ? IMAGE_BANNER_CHIPS_DEFAULT_IMAGE : void 0);
5294
5327
  return /* @__PURE__ */ jsx43(
5295
5328
  "section",
5296
5329
  {
5297
- className: ["image-banner", className].filter(Boolean).join(" "),
5330
+ className: [
5331
+ "image-banner",
5332
+ isChips ? "image-banner--chips" : "",
5333
+ className
5334
+ ].filter(Boolean).join(" "),
5298
5335
  ...props,
5299
5336
  children: /* @__PURE__ */ jsxs39(
5300
5337
  "div",
@@ -5304,11 +5341,11 @@ var ImageBanner = ({
5304
5341
  `image-banner__inner--${variant}`
5305
5342
  ].join(" "),
5306
5343
  children: [
5307
- isFullBg && imageUrl && /* @__PURE__ */ jsxs39("div", { className: "image-banner__bg-image-wrapper", children: [
5344
+ isFullBg && resolvedImageUrl && /* @__PURE__ */ jsxs39("div", { className: "image-banner__bg-image-wrapper", children: [
5308
5345
  /* @__PURE__ */ jsx43(
5309
5346
  "img",
5310
5347
  {
5311
- src: imageUrl,
5348
+ src: resolvedImageUrl,
5312
5349
  alt: imageAlt,
5313
5350
  className: "image-banner__bg-image",
5314
5351
  loading: "lazy"
@@ -5319,7 +5356,11 @@ var ImageBanner = ({
5319
5356
  /* @__PURE__ */ jsxs39("div", { className: "image-banner__content", children: [
5320
5357
  /* @__PURE__ */ jsx43("h2", { className: "image-banner__title", children: title }),
5321
5358
  description && /* @__PURE__ */ jsx43("p", { className: "image-banner__description", children: description }),
5322
- ctaLabel && /* @__PURE__ */ jsx43("div", { className: "image-banner__actions", children: /* @__PURE__ */ jsx43(
5359
+ visibleChips.length > 0 && /* @__PURE__ */ jsx43("ul", { className: "image-banner__chips", "aria-label": "Features", children: visibleChips.map((label) => /* @__PURE__ */ jsxs39("li", { className: "image-banner__chip", children: [
5360
+ /* @__PURE__ */ jsx43(ChipCheckIcon, {}),
5361
+ /* @__PURE__ */ jsx43("span", { className: "image-banner__chip-label", children: label })
5362
+ ] }, label)) }),
5363
+ showCta && /* @__PURE__ */ jsx43("div", { className: "image-banner__actions", children: /* @__PURE__ */ jsx43(
5323
5364
  Link,
5324
5365
  {
5325
5366
  colorScheme: "coral",
@@ -5331,15 +5372,24 @@ var ImageBanner = ({
5331
5372
  }
5332
5373
  ) })
5333
5374
  ] }),
5334
- !isFullBg && imageUrl && /* @__PURE__ */ jsx43("div", { className: "image-banner__image-wrapper", children: /* @__PURE__ */ jsx43(
5335
- "img",
5336
- {
5337
- src: imageUrl,
5338
- alt: imageAlt,
5339
- className: "image-banner__image",
5340
- loading: "lazy"
5341
- }
5342
- ) })
5375
+ !isFullBg && resolvedImageUrl && /* @__PURE__ */ jsxs39("div", { className: "image-banner__image-wrapper", children: [
5376
+ /* @__PURE__ */ jsx43(
5377
+ "img",
5378
+ {
5379
+ src: resolvedImageUrl,
5380
+ alt: imageAlt,
5381
+ className: "image-banner__image",
5382
+ loading: "lazy"
5383
+ }
5384
+ ),
5385
+ isChips && /* @__PURE__ */ jsx43(
5386
+ "div",
5387
+ {
5388
+ className: "image-banner__image-fade",
5389
+ "aria-hidden": "true"
5390
+ }
5391
+ )
5392
+ ] })
5343
5393
  ]
5344
5394
  }
5345
5395
  )
@@ -5508,13 +5558,8 @@ var TrustpilotTestimonial = ({
5508
5558
  "button",
5509
5559
  {
5510
5560
  type: "button",
5511
- className: [
5512
- "testimonial__tp-nav-btn",
5513
- !canPrev ? "testimonial__tp-nav-btn--hidden" : ""
5514
- ].filter(Boolean).join(" "),
5561
+ className: "testimonial__tp-nav-btn",
5515
5562
  "aria-label": "Show previous testimonials",
5516
- "aria-hidden": !canPrev,
5517
- tabIndex: canPrev ? 0 : -1,
5518
5563
  disabled: !canPrev,
5519
5564
  onClick: () => scrollByCard(-1),
5520
5565
  children: /* @__PURE__ */ jsx44(ArrowIcon, { direction: "prev" })
@@ -5524,13 +5569,8 @@ var TrustpilotTestimonial = ({
5524
5569
  "button",
5525
5570
  {
5526
5571
  type: "button",
5527
- className: [
5528
- "testimonial__tp-nav-btn",
5529
- !canNext ? "testimonial__tp-nav-btn--hidden" : ""
5530
- ].filter(Boolean).join(" "),
5572
+ className: "testimonial__tp-nav-btn",
5531
5573
  "aria-label": "Show next testimonials",
5532
- "aria-hidden": !canNext,
5533
- tabIndex: canNext ? 0 : -1,
5534
5574
  disabled: !canNext,
5535
5575
  onClick: () => scrollByCard(1),
5536
5576
  children: /* @__PURE__ */ jsx44(ArrowIcon, { direction: "next" })
@@ -8029,6 +8069,188 @@ var FeatureOffices = ({
8029
8069
  /* @__PURE__ */ jsx58("div", { className: "fo-grid", children: filteredOffices.map((office, index) => /* @__PURE__ */ jsx58(OfficeCard, { linkText, office }, `${office.city}-${index}`)) })
8030
8070
  ] }) });
8031
8071
  };
8072
+
8073
+ // templates/Tiers/Tiers.tsx
8074
+ import { jsx as jsx59, jsxs as jsxs55 } from "react/jsx-runtime";
8075
+ var DEFAULT_ACCENTS = ["bronze", "silver", "gold", "platinum"];
8076
+ var resolveAccent = (tier, index) => tier.accent ?? DEFAULT_ACCENTS[index] ?? "bronze";
8077
+ var Tiers = ({
8078
+ title,
8079
+ description,
8080
+ tiers,
8081
+ showLink = false,
8082
+ linkText = "Learn more about partner tiers",
8083
+ linkHref,
8084
+ onLinkClick
8085
+ }) => {
8086
+ return /* @__PURE__ */ jsx59("section", { className: "tiers", children: /* @__PURE__ */ jsxs55("div", { className: "tiers__container", children: [
8087
+ /* @__PURE__ */ jsxs55("header", { className: "tiers__header", children: [
8088
+ /* @__PURE__ */ jsx59("h2", { className: "tiers__title", children: title }),
8089
+ description && /* @__PURE__ */ jsx59("p", { className: "tiers__description", children: description })
8090
+ ] }),
8091
+ /* @__PURE__ */ jsx59("ol", { className: "tiers__list", children: tiers.map((tier, index) => {
8092
+ const accent = resolveAccent(tier, index);
8093
+ return /* @__PURE__ */ jsx59(
8094
+ "li",
8095
+ {
8096
+ className: `tiers__item tiers__item--${accent}`,
8097
+ children: /* @__PURE__ */ jsxs55("div", { className: "tiers__shell", children: [
8098
+ /* @__PURE__ */ jsxs55("div", { className: "tiers__icon-row", children: [
8099
+ /* @__PURE__ */ jsx59(
8100
+ "span",
8101
+ {
8102
+ className: "tiers__line tiers__line--left",
8103
+ "aria-hidden": "true"
8104
+ }
8105
+ ),
8106
+ /* @__PURE__ */ jsx59("div", { className: "tiers__icon-wrap", children: /* @__PURE__ */ jsx59(
8107
+ "img",
8108
+ {
8109
+ src: tier.icon,
8110
+ alt: tier.iconAlt ?? tier.name,
8111
+ className: "tiers__icon",
8112
+ width: 64,
8113
+ height: 64,
8114
+ loading: "lazy"
8115
+ }
8116
+ ) }),
8117
+ /* @__PURE__ */ jsx59(
8118
+ "span",
8119
+ {
8120
+ className: "tiers__line tiers__line--right",
8121
+ "aria-hidden": "true"
8122
+ }
8123
+ )
8124
+ ] }),
8125
+ /* @__PURE__ */ jsxs55("div", { className: "tiers__heading", children: [
8126
+ /* @__PURE__ */ jsx59("h3", { className: "tiers__name", children: tier.name }),
8127
+ /* @__PURE__ */ jsx59("p", { className: "tiers__status", children: tier.status })
8128
+ ] }),
8129
+ /* @__PURE__ */ jsxs55("div", { className: "tiers__card", children: [
8130
+ /* @__PURE__ */ jsx59("p", { className: "tiers__card-title", children: tier.title }),
8131
+ /* @__PURE__ */ jsx59("p", { className: "tiers__card-description", children: tier.description })
8132
+ ] }),
8133
+ tier.requirement && /* @__PURE__ */ jsx59("p", { className: "tiers__requirement", children: tier.requirement })
8134
+ ] })
8135
+ },
8136
+ tier.name
8137
+ );
8138
+ }) }),
8139
+ showLink && /* @__PURE__ */ jsx59("div", { className: "tiers__footer", children: /* @__PURE__ */ jsx59(
8140
+ Link,
8141
+ {
8142
+ colorScheme: "coral",
8143
+ label: linkText,
8144
+ href: linkHref,
8145
+ onClick: onLinkClick
8146
+ }
8147
+ ) })
8148
+ ] }) });
8149
+ };
8150
+
8151
+ // templates/PartnersPayout/PartnersPayout.tsx
8152
+ import { jsx as jsx60, jsxs as jsxs56 } from "react/jsx-runtime";
8153
+ var PartnersPayout = ({
8154
+ title,
8155
+ period,
8156
+ payouts,
8157
+ imageUrl,
8158
+ imageAlt = "",
8159
+ className,
8160
+ ...props
8161
+ }) => /* @__PURE__ */ jsx60(
8162
+ "section",
8163
+ {
8164
+ className: ["partners-payout", className].filter(Boolean).join(" "),
8165
+ ...props,
8166
+ children: /* @__PURE__ */ jsxs56("div", { className: "partners-payout__container", children: [
8167
+ /* @__PURE__ */ jsxs56("div", { className: "partners-payout__content", children: [
8168
+ /* @__PURE__ */ jsxs56("header", { className: "partners-payout__header", children: [
8169
+ /* @__PURE__ */ jsx60("h2", { className: "partners-payout__title", children: title }),
8170
+ /* @__PURE__ */ jsx60("p", { className: "partners-payout__period", children: period })
8171
+ ] }),
8172
+ /* @__PURE__ */ jsx60("ul", { className: "partners-payout__grid", children: payouts.map((payout, index) => /* @__PURE__ */ jsxs56(
8173
+ "li",
8174
+ {
8175
+ className: "partners-payout__item",
8176
+ children: [
8177
+ /* @__PURE__ */ jsx60("span", { className: "partners-payout__region", children: payout.region }),
8178
+ /* @__PURE__ */ jsx60("span", { className: "partners-payout__amount", children: payout.amount })
8179
+ ]
8180
+ },
8181
+ `${payout.region}-${index}`
8182
+ )) })
8183
+ ] }),
8184
+ /* @__PURE__ */ jsx60(
8185
+ "img",
8186
+ {
8187
+ className: "partners-payout__image",
8188
+ src: imageUrl,
8189
+ alt: imageAlt,
8190
+ loading: "lazy"
8191
+ }
8192
+ )
8193
+ ] })
8194
+ }
8195
+ );
8196
+
8197
+ // templates/MasterPartner/MasterPartner.tsx
8198
+ import { jsx as jsx61, jsxs as jsxs57 } from "react/jsx-runtime";
8199
+ var MasterPartner = ({
8200
+ title,
8201
+ description,
8202
+ note,
8203
+ closingText,
8204
+ ctaLabel,
8205
+ ctaHref,
8206
+ onCtaClick,
8207
+ image,
8208
+ imageAlt = "",
8209
+ steps
8210
+ }) => {
8211
+ const ctaButton = /* @__PURE__ */ jsx61(Button, { colorScheme: "coral", variant: "primary", label: ctaLabel, onClick: onCtaClick });
8212
+ return /* @__PURE__ */ jsx61("section", { className: "master-partner", children: /* @__PURE__ */ jsxs57("div", { className: "master-partner__container", children: [
8213
+ /* @__PURE__ */ jsxs57("div", { className: "master-partner__top", children: [
8214
+ /* @__PURE__ */ jsxs57("div", { className: "master-partner__content", children: [
8215
+ /* @__PURE__ */ jsx61("h2", { className: "master-partner__title", children: title }),
8216
+ /* @__PURE__ */ jsxs57("div", { className: "master-partner__copy", children: [
8217
+ /* @__PURE__ */ jsx61("p", { className: "master-partner__paragraph", children: description }),
8218
+ note && /* @__PURE__ */ jsxs57("p", { className: "master-partner__paragraph", children: [
8219
+ /* @__PURE__ */ jsx61("strong", { children: note.label }),
8220
+ " ",
8221
+ note.text
8222
+ ] }),
8223
+ closingText && /* @__PURE__ */ jsx61("p", { className: "master-partner__paragraph", children: closingText })
8224
+ ] }),
8225
+ ctaLabel && /* @__PURE__ */ jsx61("div", { className: "master-partner__cta", children: ctaHref ? /* @__PURE__ */ jsx61("a", { href: ctaHref, children: ctaButton }) : ctaButton })
8226
+ ] }),
8227
+ /* @__PURE__ */ jsx61("div", { className: "master-partner__image-wrapper", children: /* @__PURE__ */ jsx61(
8228
+ "img",
8229
+ {
8230
+ className: "master-partner__image",
8231
+ src: image,
8232
+ alt: imageAlt,
8233
+ loading: "lazy"
8234
+ }
8235
+ ) })
8236
+ ] }),
8237
+ /* @__PURE__ */ jsx61("ol", { className: "master-partner__steps", children: steps.map((step, index) => /* @__PURE__ */ jsxs57("li", { className: "master-partner__step", children: [
8238
+ /* @__PURE__ */ jsx61(
8239
+ "img",
8240
+ {
8241
+ className: "master-partner__step-icon",
8242
+ src: step.icon,
8243
+ alt: step.iconAlt ?? "",
8244
+ "aria-hidden": "true",
8245
+ width: 32,
8246
+ height: 32,
8247
+ loading: "lazy"
8248
+ }
8249
+ ),
8250
+ /* @__PURE__ */ jsx61("p", { className: "master-partner__step-description", children: step.description })
8251
+ ] }, index)) })
8252
+ ] }) });
8253
+ };
8032
8254
  export {
8033
8255
  AVATAR_DATA,
8034
8256
  Accordion,
@@ -8077,14 +8299,17 @@ export {
8077
8299
  HelpCentreCategories,
8078
8300
  HelpCentreSubCategories,
8079
8301
  Hero,
8302
+ IMAGE_BANNER_CHIPS_DEFAULT_IMAGE,
8080
8303
  ImageBanner,
8081
8304
  Leaders,
8082
8305
  Link,
8083
8306
  LogoMarquee,
8307
+ MasterPartner,
8084
8308
  Navbar,
8085
8309
  PARALLAX_BANNER_TEXT_CONTENT,
8086
8310
  Pagination,
8087
8311
  ParallaxBanner,
8312
+ PartnersPayout,
8088
8313
  PeopleGrid,
8089
8314
  STEPS_DATA,
8090
8315
  SearchField,
@@ -8100,6 +8325,7 @@ export {
8100
8325
  Testimonial,
8101
8326
  TextField,
8102
8327
  TextScroll,
8328
+ Tiers,
8103
8329
  TradingCalculator,
8104
8330
  TradingCalculatorHowTo,
8105
8331
  dayNightTransitionV2Preset