@deriv-web-design/ui 0.0.12 → 0.0.14

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.d.mts CHANGED
@@ -279,6 +279,26 @@ interface FeatureCardsProps {
279
279
 
280
280
  declare const FeatureCards: ({ sectionTitle, sectionDescription, showLink, linkText, onLinkClick, cardColorScheme, cards, }: FeatureCardsProps) => react_jsx_runtime.JSX.Element;
281
281
 
282
+ interface FeatureCardSecondaryItem {
283
+ title: string;
284
+ description: string;
285
+ icon?: ReactNode;
286
+ showIcon?: boolean;
287
+ showLink?: boolean;
288
+ linkText?: string;
289
+ onLinkClick?: () => void;
290
+ }
291
+ interface FeatureCardsSecondaryProps {
292
+ sectionTitle: string;
293
+ sectionDescription?: string;
294
+ showLink?: boolean;
295
+ linkText?: string;
296
+ onLinkClick?: () => void;
297
+ cards: FeatureCardSecondaryItem[];
298
+ }
299
+
300
+ declare const FeatureCardsSecondary: ({ sectionTitle, sectionDescription, showLink, linkText, onLinkClick, cards, }: FeatureCardsSecondaryProps) => react_jsx_runtime.JSX.Element;
301
+
282
302
  interface FooterLinkItem {
283
303
  /** Link label text */
284
304
  label: string;
@@ -387,7 +407,7 @@ interface FooterProps extends HTMLAttributes<HTMLElement> {
387
407
 
388
408
  declare const Footer: ({ logoSrc, logoAlt, navColumns, socialLinks, derivGo, investorsInPeopleSrc, investorsInPeopleAlt, licenseText, riskWarningText, aiSummary, className, ...props }: FooterProps) => react_jsx_runtime.JSX.Element;
389
409
 
390
- type HeroVariant = "homepage" | "full-image" | "visuals" | "text-only";
410
+ type HeroVariant = "split" | "centered" | "showcase" | "visuals" | "minimal";
391
411
  interface HeroButtonProps {
392
412
  /** Button label text */
393
413
  label: string;
@@ -399,10 +419,13 @@ interface HeroButtonProps {
399
419
  interface HeroProps extends HTMLAttributes<HTMLElement> {
400
420
  /**
401
421
  * Layout variant:
402
- * - "homepage" — dark bg, left-aligned text, right-side hero image, 100vh
403
- * - "full-image" — full background image, center-aligned text, 100vh
404
- * - "visuals" — light grey bg + SVG grid, center-aligned text, floating visuals, min-height 540px
405
- * - "text-only" — same as visuals but without floating graphics
422
+ *
423
+ * - "split" — dark bg, left-aligned text, right-side hero image, 100vh
424
+ * - "centered" — full background image, center-aligned text, 100vh
425
+ * - "showcase" — dark bg + full-bleed bg image, center-aligned text, large product image
426
+ * below buttons, smaller floating image below that.
427
+ * - "visuals" — light grey bg + SVG grid, center-aligned text, floating visuals, min-height 540px
428
+ * - "minimal" — same as visuals but without floating graphics
406
429
  */
407
430
  variant: HeroVariant;
408
431
  /** Optional eyebrow / subtitle above the title */
@@ -418,33 +441,44 @@ interface HeroProps extends HTMLAttributes<HTMLElement> {
418
441
  primaryButton?: HeroButtonProps;
419
442
  /**
420
443
  * Secondary CTA button (white outline).
421
- * Shown on Homepage and Full Image variants.
444
+ * Shown on Split, Centered and Showcase variants.
422
445
  */
423
446
  secondaryButton?: HeroButtonProps;
424
447
  /**
425
448
  * Background image URL.
426
- * - "homepage" — used as the full-bleed background behind the overlay
427
- * - "full-image" — used as the full-bleed background behind the overlay
449
+ * - "split" — used as the full-bleed background behind the overlay
450
+ * - "centered" — used as the full-bleed background behind the overlay
451
+ * - "showcase" — used as the full-bleed background behind the overlay
428
452
  */
429
453
  backgroundImageSrc?: string;
430
454
  /**
431
- * Right-side hero image for the Homepage variant.
455
+ * Right-side hero image for the Split variant.
432
456
  * Accepts a ReactNode (e.g. <img>) or an image URL string.
433
457
  */
434
458
  heroImage?: ReactNode | string;
435
459
  /**
436
- * Left floating visual for the Visuals variant (desktop only).
460
+ * Left floating visual for the Visuals variant.
437
461
  * Accepts a ReactNode or image URL string.
438
462
  */
439
463
  leftVisual?: ReactNode | string;
440
464
  /**
441
- * Right floating visual for the Visuals variant (desktop only).
465
+ * Right floating visual for the Visuals variant.
442
466
  * Accepts a ReactNode or image URL string.
443
467
  */
444
468
  rightVisual?: ReactNode | string;
469
+ /**
470
+ * Large product image shown centered below the CTA buttons in the Showcase variant.
471
+ * Accepts a ReactNode or image URL string.
472
+ */
473
+ productImage?: ReactNode | string;
474
+ /**
475
+ * Smaller floating image shown below the productImage in the Showcase variant.
476
+ * Accepts a ReactNode or image URL string.
477
+ */
478
+ floatingImage?: ReactNode | string;
445
479
  }
446
480
 
447
- declare const Hero: ({ variant, subtitle, title, description, primaryButton, secondaryButton, backgroundImageSrc, heroImage, leftVisual, rightVisual, className, ...props }: HeroProps) => react_jsx_runtime.JSX.Element;
481
+ declare const Hero: ({ variant, subtitle, title, description, primaryButton, secondaryButton, backgroundImageSrc, heroImage, leftVisual, rightVisual, productImage, floatingImage, className, ...props }: HeroProps) => react_jsx_runtime.JSX.Element;
448
482
 
449
483
  interface StatItem {
450
484
  /** Numeric or short display value, e.g. "2.5M+" */
@@ -597,6 +631,12 @@ interface CTABannerProps extends HTMLAttributes<HTMLElement> {
597
631
  declare const AVATAR_DATA: AvatarItem[];
598
632
  declare const CTABanner: ({ headline, ctaLabel, ctaHref, avatars, variant, className, ...props }: CTABannerProps) => react_jsx_runtime.JSX.Element;
599
633
 
634
+ interface LanguageItem {
635
+ /** Language code, e.g. "en", "ar", "fr" */
636
+ code: string;
637
+ /** Display label, e.g. "English", "العربية", "Français" */
638
+ label: string;
639
+ }
600
640
  interface NavDropdownItem {
601
641
  /** Link text */
602
642
  label: string;
@@ -667,11 +707,18 @@ interface NavbarProps extends HTMLAttributes<HTMLElement> {
667
707
  ctaHref?: string;
668
708
  /** Language label rendered next to the globe icon, e.g. "EN" */
669
709
  languageLabel?: string;
670
- /** Called when the language button is clicked */
710
+ /** Called when the language button is clicked (used when `languageItems` is NOT provided) */
671
711
  onLanguageClick?: () => void;
712
+ /** Languages for the hover-triggered dropdown grid.
713
+ * When provided, a dropdown is shown instead of calling `onLanguageClick`. */
714
+ languageItems?: LanguageItem[];
715
+ /** Highlights the active language in the dropdown (matched by `LanguageItem.code`) */
716
+ activeLanguageCode?: string;
717
+ /** Called when a language is picked from the dropdown */
718
+ onLanguageSelect?: (code: string) => void;
672
719
  }
673
720
 
674
- declare const Navbar: ({ theme, logoSrc, logoSrcDark, logoHref, navItems, loginLabel, loginHref, ctaLabel, ctaHref, languageLabel, onLanguageClick, className, ...props }: NavbarProps) => react_jsx_runtime.JSX.Element;
721
+ declare const Navbar: ({ theme, logoSrc, logoSrcDark, logoHref, navItems, loginLabel, loginHref, ctaLabel, ctaHref, languageLabel, onLanguageClick, languageItems, activeLanguageCode, onLanguageSelect, className, ...props }: NavbarProps) => react_jsx_runtime.JSX.Element;
675
722
 
676
723
  interface DayNightTransitionProps extends HTMLAttributes<HTMLDivElement> {
677
724
  /** URL for the daytime background image */
@@ -698,7 +745,7 @@ interface LogoItem {
698
745
  name: string;
699
746
  url: string;
700
747
  }
701
- interface PaymentMethodsProps extends HTMLAttributes<HTMLElement> {
748
+ interface LogoMarqueeProps extends HTMLAttributes<HTMLElement> {
702
749
  headline?: string;
703
750
  body?: string;
704
751
  disclaimer?: string;
@@ -717,6 +764,86 @@ declare const TEXT_CONTENT: {
717
764
  ctaLabel: string;
718
765
  ctaHref: string;
719
766
  };
720
- declare const PaymentMethods: ({ headline, body, disclaimer, ctaLabel, ctaHref, col1Logos, col2Logos, className, ...props }: PaymentMethodsProps) => react_jsx_runtime.JSX.Element;
767
+ declare const LogoMarquee: ({ headline, body, disclaimer, ctaLabel, ctaHref, col1Logos, col2Logos, className, ...props }: LogoMarqueeProps) => react_jsx_runtime.JSX.Element;
768
+
769
+ type DownloadBadgePlatform = "googleplay" | "appstore" | "appgallery" | "windows" | "macos" | "linux" | "web";
770
+ type DownloadBadgeColorScheme = "light" | "dark";
771
+ interface DownloadBadgeProps extends AnchorHTMLAttributes<HTMLAnchorElement> {
772
+ /** Which platform badge to render */
773
+ platform: DownloadBadgePlatform;
774
+ /**
775
+ * Colour scheme — use "light" on light backgrounds, "dark" on dark backgrounds.
776
+ * @default "light"
777
+ */
778
+ colorScheme?: DownloadBadgeColorScheme;
779
+ /** Destination URL */
780
+ href?: string;
781
+ }
782
+
783
+ declare const DownloadBadge: ({ platform, colorScheme, href, className, ...props }: DownloadBadgeProps) => react_jsx_runtime.JSX.Element;
784
+
785
+ type StepsImagePosition = "left" | "right";
786
+ interface StepItem {
787
+ /** Step title */
788
+ title: string;
789
+ /** Step body copy */
790
+ description: string;
791
+ }
792
+ interface StepsProps {
793
+ /** Section headline (H2) */
794
+ title: string;
795
+ /** Ordered list of steps */
796
+ steps: StepItem[];
797
+ /** Image source URL */
798
+ image?: string;
799
+ /** Accessible alt text for the image */
800
+ imageAlt?: string;
801
+ /**
802
+ * Which side the image sits on (default: "left").
803
+ * On mobile the image always stacks above the content.
804
+ */
805
+ imagePosition?: StepsImagePosition;
806
+ }
807
+
808
+ declare const Steps: ({ title, steps, image, imageAlt, imagePosition, }: StepsProps) => react_jsx_runtime.JSX.Element;
809
+
810
+ type DownloadBannerStyle = "light" | "light-2" | "dark";
811
+ interface DownloadBannerProps {
812
+ /**
813
+ * Visual style of the inner card.
814
+ * - "light" → slate-100 outer section, white inner card
815
+ * - "light-2" → white outer section, slate-100 inner card (default)
816
+ * - "dark" → white outer section, slate-1200 inner card
817
+ */
818
+ style?: DownloadBannerStyle;
819
+ /** QR code image URL. When provided the QR block is shown on desktop. */
820
+ qrCodeImage?: string;
821
+ /** Accessible alt text for the QR code image */
822
+ qrCodeAlt?: string;
823
+ /** First line of text beside the QR code (default: "Scan to download") */
824
+ qrTitle?: string;
825
+ /** Second line of text beside the QR code (default: "Android & iOS") */
826
+ qrSubtitle?: string;
827
+ /** Heading shown on mobile above the badge grid (default: "Available on") */
828
+ mobileTitle?: string;
829
+ showAppStore?: boolean;
830
+ showGooglePlay?: boolean;
831
+ showAppGallery?: boolean;
832
+ showWindows?: boolean;
833
+ showMacOS?: boolean;
834
+ showLinux?: boolean;
835
+ showWeb?: boolean;
836
+ appStoreHref?: string;
837
+ googlePlayHref?: string;
838
+ appGalleryHref?: string;
839
+ windowsHref?: string;
840
+ macOSHref?: string;
841
+ linuxHref?: string;
842
+ webHref?: string;
843
+ /** Optional small-print disclaimer shown below the QR text */
844
+ disclaimer?: string;
845
+ }
846
+
847
+ declare const DownloadBanner: ({ style, qrCodeImage, qrCodeAlt, qrTitle, qrSubtitle, mobileTitle, showAppStore, showGooglePlay, showAppGallery, showWindows, showMacOS, showLinux, showWeb, appStoreHref, googlePlayHref, appGalleryHref, windowsHref, macOSHref, linuxHref, webHref, disclaimer, }: DownloadBannerProps) => react_jsx_runtime.JSX.Element;
721
848
 
722
- export { AVATAR_DATA, Accordion, type AccordionProps, type AvatarItem, type AvatarPosition, type AwardItem, BottomSheet, type BottomSheetAction, type BottomSheetProps, Breadcrumb, type BreadcrumbItem, type BreadcrumbProps, type BreadcrumbSize, Button, type ButtonColorScheme, type ButtonIconPosition, type ButtonProps, type ButtonVariant, COL_ONE_LOGOS, COL_TWO_LOGOS, CTABanner, type CTABannerProps, Card, type CardPrimaryStyle, type CardProps, type CardTag, type CardThumbnailType, Chip, ChipDropdown, type ChipDropdownOption, type ChipDropdownProps, type ChipProps, type ChipSize, DayNightTransition, type DayNightTransitionProps, type FeatureCardItem, FeatureCards, type FeatureCardsProps, Footer, type FooterAiSummaryItem, type FooterAiSummaryProps, type FooterAppBadge, type FooterDerivGoProps, type FooterLinkItem, type FooterNavSection, type FooterProps, type FooterSocialLink, Hero, type HeroButtonProps, type HeroProps, type HeroVariant, Link, type LinkColorScheme, type LinkProps, type LogoItem, type NavDropdownColumn, type NavDropdownFeature, type NavDropdownItem, type NavItem, Navbar, type NavbarProps, Pagination, type PaginationProps, PaymentMethods, type PaymentMethodsProps, SCROLLYTELLING_DATA, STEPS_DATA, Scrollytelling, type ScrollytellingItem, type ScrollytellingProps, SearchField, type SearchFieldProps, type SearchFieldStatus, type StatItem, Stats, type StatsProps, type StickyCardItem, type StickyCardTheme, StickyStackedCards, type StickyStackedCardsProps, TEXT_CONTENT, Tag, type TagFontWeight, type TagProps, type TagSize, type TagVariant, TextField, type TextFieldProps, type TextFieldStatus, type TextFieldVariant };
849
+ export { AVATAR_DATA, Accordion, type AccordionProps, type AvatarItem, type AvatarPosition, type AwardItem, BottomSheet, type BottomSheetAction, type BottomSheetProps, Breadcrumb, type BreadcrumbItem, type BreadcrumbProps, type BreadcrumbSize, Button, type ButtonColorScheme, type ButtonIconPosition, type ButtonProps, type ButtonVariant, COL_ONE_LOGOS, COL_TWO_LOGOS, CTABanner, type CTABannerProps, Card, type CardPrimaryStyle, type CardProps, type CardTag, type CardThumbnailType, Chip, ChipDropdown, type ChipDropdownOption, type ChipDropdownProps, type ChipProps, type ChipSize, DayNightTransition, type DayNightTransitionProps, DownloadBadge, type DownloadBadgeColorScheme, type DownloadBadgePlatform, type DownloadBadgeProps, DownloadBanner, type DownloadBannerProps, type DownloadBannerStyle, type FeatureCardItem, type FeatureCardSecondaryItem, FeatureCards, type FeatureCardsProps, FeatureCardsSecondary, type FeatureCardsSecondaryProps, Footer, type FooterAiSummaryItem, type FooterAiSummaryProps, type FooterAppBadge, type FooterDerivGoProps, type FooterLinkItem, type FooterNavSection, type FooterProps, type FooterSocialLink, Hero, type HeroButtonProps, type HeroProps, type HeroVariant, type LanguageItem, Link, type LinkColorScheme, type LinkProps, type LogoItem, LogoMarquee, type LogoMarqueeProps, type NavDropdownColumn, type NavDropdownFeature, type NavDropdownItem, type NavItem, Navbar, type NavbarProps, Pagination, type PaginationProps, SCROLLYTELLING_DATA, STEPS_DATA, Scrollytelling, type ScrollytellingItem, type ScrollytellingProps, SearchField, type SearchFieldProps, type SearchFieldStatus, type StatItem, Stats, type StatsProps, type StepItem, Steps, type StepsImagePosition, type StepsProps, type StickyCardItem, type StickyCardTheme, StickyStackedCards, type StickyStackedCardsProps, TEXT_CONTENT, Tag, type TagFontWeight, type TagProps, type TagSize, type TagVariant, TextField, type TextFieldProps, type TextFieldStatus, type TextFieldVariant };
package/dist/index.d.ts CHANGED
@@ -279,6 +279,26 @@ interface FeatureCardsProps {
279
279
 
280
280
  declare const FeatureCards: ({ sectionTitle, sectionDescription, showLink, linkText, onLinkClick, cardColorScheme, cards, }: FeatureCardsProps) => react_jsx_runtime.JSX.Element;
281
281
 
282
+ interface FeatureCardSecondaryItem {
283
+ title: string;
284
+ description: string;
285
+ icon?: ReactNode;
286
+ showIcon?: boolean;
287
+ showLink?: boolean;
288
+ linkText?: string;
289
+ onLinkClick?: () => void;
290
+ }
291
+ interface FeatureCardsSecondaryProps {
292
+ sectionTitle: string;
293
+ sectionDescription?: string;
294
+ showLink?: boolean;
295
+ linkText?: string;
296
+ onLinkClick?: () => void;
297
+ cards: FeatureCardSecondaryItem[];
298
+ }
299
+
300
+ declare const FeatureCardsSecondary: ({ sectionTitle, sectionDescription, showLink, linkText, onLinkClick, cards, }: FeatureCardsSecondaryProps) => react_jsx_runtime.JSX.Element;
301
+
282
302
  interface FooterLinkItem {
283
303
  /** Link label text */
284
304
  label: string;
@@ -387,7 +407,7 @@ interface FooterProps extends HTMLAttributes<HTMLElement> {
387
407
 
388
408
  declare const Footer: ({ logoSrc, logoAlt, navColumns, socialLinks, derivGo, investorsInPeopleSrc, investorsInPeopleAlt, licenseText, riskWarningText, aiSummary, className, ...props }: FooterProps) => react_jsx_runtime.JSX.Element;
389
409
 
390
- type HeroVariant = "homepage" | "full-image" | "visuals" | "text-only";
410
+ type HeroVariant = "split" | "centered" | "showcase" | "visuals" | "minimal";
391
411
  interface HeroButtonProps {
392
412
  /** Button label text */
393
413
  label: string;
@@ -399,10 +419,13 @@ interface HeroButtonProps {
399
419
  interface HeroProps extends HTMLAttributes<HTMLElement> {
400
420
  /**
401
421
  * Layout variant:
402
- * - "homepage" — dark bg, left-aligned text, right-side hero image, 100vh
403
- * - "full-image" — full background image, center-aligned text, 100vh
404
- * - "visuals" — light grey bg + SVG grid, center-aligned text, floating visuals, min-height 540px
405
- * - "text-only" — same as visuals but without floating graphics
422
+ *
423
+ * - "split" — dark bg, left-aligned text, right-side hero image, 100vh
424
+ * - "centered" — full background image, center-aligned text, 100vh
425
+ * - "showcase" — dark bg + full-bleed bg image, center-aligned text, large product image
426
+ * below buttons, smaller floating image below that.
427
+ * - "visuals" — light grey bg + SVG grid, center-aligned text, floating visuals, min-height 540px
428
+ * - "minimal" — same as visuals but without floating graphics
406
429
  */
407
430
  variant: HeroVariant;
408
431
  /** Optional eyebrow / subtitle above the title */
@@ -418,33 +441,44 @@ interface HeroProps extends HTMLAttributes<HTMLElement> {
418
441
  primaryButton?: HeroButtonProps;
419
442
  /**
420
443
  * Secondary CTA button (white outline).
421
- * Shown on Homepage and Full Image variants.
444
+ * Shown on Split, Centered and Showcase variants.
422
445
  */
423
446
  secondaryButton?: HeroButtonProps;
424
447
  /**
425
448
  * Background image URL.
426
- * - "homepage" — used as the full-bleed background behind the overlay
427
- * - "full-image" — used as the full-bleed background behind the overlay
449
+ * - "split" — used as the full-bleed background behind the overlay
450
+ * - "centered" — used as the full-bleed background behind the overlay
451
+ * - "showcase" — used as the full-bleed background behind the overlay
428
452
  */
429
453
  backgroundImageSrc?: string;
430
454
  /**
431
- * Right-side hero image for the Homepage variant.
455
+ * Right-side hero image for the Split variant.
432
456
  * Accepts a ReactNode (e.g. <img>) or an image URL string.
433
457
  */
434
458
  heroImage?: ReactNode | string;
435
459
  /**
436
- * Left floating visual for the Visuals variant (desktop only).
460
+ * Left floating visual for the Visuals variant.
437
461
  * Accepts a ReactNode or image URL string.
438
462
  */
439
463
  leftVisual?: ReactNode | string;
440
464
  /**
441
- * Right floating visual for the Visuals variant (desktop only).
465
+ * Right floating visual for the Visuals variant.
442
466
  * Accepts a ReactNode or image URL string.
443
467
  */
444
468
  rightVisual?: ReactNode | string;
469
+ /**
470
+ * Large product image shown centered below the CTA buttons in the Showcase variant.
471
+ * Accepts a ReactNode or image URL string.
472
+ */
473
+ productImage?: ReactNode | string;
474
+ /**
475
+ * Smaller floating image shown below the productImage in the Showcase variant.
476
+ * Accepts a ReactNode or image URL string.
477
+ */
478
+ floatingImage?: ReactNode | string;
445
479
  }
446
480
 
447
- declare const Hero: ({ variant, subtitle, title, description, primaryButton, secondaryButton, backgroundImageSrc, heroImage, leftVisual, rightVisual, className, ...props }: HeroProps) => react_jsx_runtime.JSX.Element;
481
+ declare const Hero: ({ variant, subtitle, title, description, primaryButton, secondaryButton, backgroundImageSrc, heroImage, leftVisual, rightVisual, productImage, floatingImage, className, ...props }: HeroProps) => react_jsx_runtime.JSX.Element;
448
482
 
449
483
  interface StatItem {
450
484
  /** Numeric or short display value, e.g. "2.5M+" */
@@ -597,6 +631,12 @@ interface CTABannerProps extends HTMLAttributes<HTMLElement> {
597
631
  declare const AVATAR_DATA: AvatarItem[];
598
632
  declare const CTABanner: ({ headline, ctaLabel, ctaHref, avatars, variant, className, ...props }: CTABannerProps) => react_jsx_runtime.JSX.Element;
599
633
 
634
+ interface LanguageItem {
635
+ /** Language code, e.g. "en", "ar", "fr" */
636
+ code: string;
637
+ /** Display label, e.g. "English", "العربية", "Français" */
638
+ label: string;
639
+ }
600
640
  interface NavDropdownItem {
601
641
  /** Link text */
602
642
  label: string;
@@ -667,11 +707,18 @@ interface NavbarProps extends HTMLAttributes<HTMLElement> {
667
707
  ctaHref?: string;
668
708
  /** Language label rendered next to the globe icon, e.g. "EN" */
669
709
  languageLabel?: string;
670
- /** Called when the language button is clicked */
710
+ /** Called when the language button is clicked (used when `languageItems` is NOT provided) */
671
711
  onLanguageClick?: () => void;
712
+ /** Languages for the hover-triggered dropdown grid.
713
+ * When provided, a dropdown is shown instead of calling `onLanguageClick`. */
714
+ languageItems?: LanguageItem[];
715
+ /** Highlights the active language in the dropdown (matched by `LanguageItem.code`) */
716
+ activeLanguageCode?: string;
717
+ /** Called when a language is picked from the dropdown */
718
+ onLanguageSelect?: (code: string) => void;
672
719
  }
673
720
 
674
- declare const Navbar: ({ theme, logoSrc, logoSrcDark, logoHref, navItems, loginLabel, loginHref, ctaLabel, ctaHref, languageLabel, onLanguageClick, className, ...props }: NavbarProps) => react_jsx_runtime.JSX.Element;
721
+ declare const Navbar: ({ theme, logoSrc, logoSrcDark, logoHref, navItems, loginLabel, loginHref, ctaLabel, ctaHref, languageLabel, onLanguageClick, languageItems, activeLanguageCode, onLanguageSelect, className, ...props }: NavbarProps) => react_jsx_runtime.JSX.Element;
675
722
 
676
723
  interface DayNightTransitionProps extends HTMLAttributes<HTMLDivElement> {
677
724
  /** URL for the daytime background image */
@@ -698,7 +745,7 @@ interface LogoItem {
698
745
  name: string;
699
746
  url: string;
700
747
  }
701
- interface PaymentMethodsProps extends HTMLAttributes<HTMLElement> {
748
+ interface LogoMarqueeProps extends HTMLAttributes<HTMLElement> {
702
749
  headline?: string;
703
750
  body?: string;
704
751
  disclaimer?: string;
@@ -717,6 +764,86 @@ declare const TEXT_CONTENT: {
717
764
  ctaLabel: string;
718
765
  ctaHref: string;
719
766
  };
720
- declare const PaymentMethods: ({ headline, body, disclaimer, ctaLabel, ctaHref, col1Logos, col2Logos, className, ...props }: PaymentMethodsProps) => react_jsx_runtime.JSX.Element;
767
+ declare const LogoMarquee: ({ headline, body, disclaimer, ctaLabel, ctaHref, col1Logos, col2Logos, className, ...props }: LogoMarqueeProps) => react_jsx_runtime.JSX.Element;
768
+
769
+ type DownloadBadgePlatform = "googleplay" | "appstore" | "appgallery" | "windows" | "macos" | "linux" | "web";
770
+ type DownloadBadgeColorScheme = "light" | "dark";
771
+ interface DownloadBadgeProps extends AnchorHTMLAttributes<HTMLAnchorElement> {
772
+ /** Which platform badge to render */
773
+ platform: DownloadBadgePlatform;
774
+ /**
775
+ * Colour scheme — use "light" on light backgrounds, "dark" on dark backgrounds.
776
+ * @default "light"
777
+ */
778
+ colorScheme?: DownloadBadgeColorScheme;
779
+ /** Destination URL */
780
+ href?: string;
781
+ }
782
+
783
+ declare const DownloadBadge: ({ platform, colorScheme, href, className, ...props }: DownloadBadgeProps) => react_jsx_runtime.JSX.Element;
784
+
785
+ type StepsImagePosition = "left" | "right";
786
+ interface StepItem {
787
+ /** Step title */
788
+ title: string;
789
+ /** Step body copy */
790
+ description: string;
791
+ }
792
+ interface StepsProps {
793
+ /** Section headline (H2) */
794
+ title: string;
795
+ /** Ordered list of steps */
796
+ steps: StepItem[];
797
+ /** Image source URL */
798
+ image?: string;
799
+ /** Accessible alt text for the image */
800
+ imageAlt?: string;
801
+ /**
802
+ * Which side the image sits on (default: "left").
803
+ * On mobile the image always stacks above the content.
804
+ */
805
+ imagePosition?: StepsImagePosition;
806
+ }
807
+
808
+ declare const Steps: ({ title, steps, image, imageAlt, imagePosition, }: StepsProps) => react_jsx_runtime.JSX.Element;
809
+
810
+ type DownloadBannerStyle = "light" | "light-2" | "dark";
811
+ interface DownloadBannerProps {
812
+ /**
813
+ * Visual style of the inner card.
814
+ * - "light" → slate-100 outer section, white inner card
815
+ * - "light-2" → white outer section, slate-100 inner card (default)
816
+ * - "dark" → white outer section, slate-1200 inner card
817
+ */
818
+ style?: DownloadBannerStyle;
819
+ /** QR code image URL. When provided the QR block is shown on desktop. */
820
+ qrCodeImage?: string;
821
+ /** Accessible alt text for the QR code image */
822
+ qrCodeAlt?: string;
823
+ /** First line of text beside the QR code (default: "Scan to download") */
824
+ qrTitle?: string;
825
+ /** Second line of text beside the QR code (default: "Android & iOS") */
826
+ qrSubtitle?: string;
827
+ /** Heading shown on mobile above the badge grid (default: "Available on") */
828
+ mobileTitle?: string;
829
+ showAppStore?: boolean;
830
+ showGooglePlay?: boolean;
831
+ showAppGallery?: boolean;
832
+ showWindows?: boolean;
833
+ showMacOS?: boolean;
834
+ showLinux?: boolean;
835
+ showWeb?: boolean;
836
+ appStoreHref?: string;
837
+ googlePlayHref?: string;
838
+ appGalleryHref?: string;
839
+ windowsHref?: string;
840
+ macOSHref?: string;
841
+ linuxHref?: string;
842
+ webHref?: string;
843
+ /** Optional small-print disclaimer shown below the QR text */
844
+ disclaimer?: string;
845
+ }
846
+
847
+ declare const DownloadBanner: ({ style, qrCodeImage, qrCodeAlt, qrTitle, qrSubtitle, mobileTitle, showAppStore, showGooglePlay, showAppGallery, showWindows, showMacOS, showLinux, showWeb, appStoreHref, googlePlayHref, appGalleryHref, windowsHref, macOSHref, linuxHref, webHref, disclaimer, }: DownloadBannerProps) => react_jsx_runtime.JSX.Element;
721
848
 
722
- export { AVATAR_DATA, Accordion, type AccordionProps, type AvatarItem, type AvatarPosition, type AwardItem, BottomSheet, type BottomSheetAction, type BottomSheetProps, Breadcrumb, type BreadcrumbItem, type BreadcrumbProps, type BreadcrumbSize, Button, type ButtonColorScheme, type ButtonIconPosition, type ButtonProps, type ButtonVariant, COL_ONE_LOGOS, COL_TWO_LOGOS, CTABanner, type CTABannerProps, Card, type CardPrimaryStyle, type CardProps, type CardTag, type CardThumbnailType, Chip, ChipDropdown, type ChipDropdownOption, type ChipDropdownProps, type ChipProps, type ChipSize, DayNightTransition, type DayNightTransitionProps, type FeatureCardItem, FeatureCards, type FeatureCardsProps, Footer, type FooterAiSummaryItem, type FooterAiSummaryProps, type FooterAppBadge, type FooterDerivGoProps, type FooterLinkItem, type FooterNavSection, type FooterProps, type FooterSocialLink, Hero, type HeroButtonProps, type HeroProps, type HeroVariant, Link, type LinkColorScheme, type LinkProps, type LogoItem, type NavDropdownColumn, type NavDropdownFeature, type NavDropdownItem, type NavItem, Navbar, type NavbarProps, Pagination, type PaginationProps, PaymentMethods, type PaymentMethodsProps, SCROLLYTELLING_DATA, STEPS_DATA, Scrollytelling, type ScrollytellingItem, type ScrollytellingProps, SearchField, type SearchFieldProps, type SearchFieldStatus, type StatItem, Stats, type StatsProps, type StickyCardItem, type StickyCardTheme, StickyStackedCards, type StickyStackedCardsProps, TEXT_CONTENT, Tag, type TagFontWeight, type TagProps, type TagSize, type TagVariant, TextField, type TextFieldProps, type TextFieldStatus, type TextFieldVariant };
849
+ export { AVATAR_DATA, Accordion, type AccordionProps, type AvatarItem, type AvatarPosition, type AwardItem, BottomSheet, type BottomSheetAction, type BottomSheetProps, Breadcrumb, type BreadcrumbItem, type BreadcrumbProps, type BreadcrumbSize, Button, type ButtonColorScheme, type ButtonIconPosition, type ButtonProps, type ButtonVariant, COL_ONE_LOGOS, COL_TWO_LOGOS, CTABanner, type CTABannerProps, Card, type CardPrimaryStyle, type CardProps, type CardTag, type CardThumbnailType, Chip, ChipDropdown, type ChipDropdownOption, type ChipDropdownProps, type ChipProps, type ChipSize, DayNightTransition, type DayNightTransitionProps, DownloadBadge, type DownloadBadgeColorScheme, type DownloadBadgePlatform, type DownloadBadgeProps, DownloadBanner, type DownloadBannerProps, type DownloadBannerStyle, type FeatureCardItem, type FeatureCardSecondaryItem, FeatureCards, type FeatureCardsProps, FeatureCardsSecondary, type FeatureCardsSecondaryProps, Footer, type FooterAiSummaryItem, type FooterAiSummaryProps, type FooterAppBadge, type FooterDerivGoProps, type FooterLinkItem, type FooterNavSection, type FooterProps, type FooterSocialLink, Hero, type HeroButtonProps, type HeroProps, type HeroVariant, type LanguageItem, Link, type LinkColorScheme, type LinkProps, type LogoItem, LogoMarquee, type LogoMarqueeProps, type NavDropdownColumn, type NavDropdownFeature, type NavDropdownItem, type NavItem, Navbar, type NavbarProps, Pagination, type PaginationProps, SCROLLYTELLING_DATA, STEPS_DATA, Scrollytelling, type ScrollytellingItem, type ScrollytellingProps, SearchField, type SearchFieldProps, type SearchFieldStatus, type StatItem, Stats, type StatsProps, type StepItem, Steps, type StepsImagePosition, type StepsProps, type StickyCardItem, type StickyCardTheme, StickyStackedCards, type StickyStackedCardsProps, TEXT_CONTENT, Tag, type TagFontWeight, type TagProps, type TagSize, type TagVariant, TextField, type TextFieldProps, type TextFieldStatus, type TextFieldVariant };