@deriv-web-design/ui 0.1.5 → 0.1.8

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
@@ -1,6 +1,6 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import * as react from 'react';
3
- import { ButtonHTMLAttributes, ReactNode, AnchorHTMLAttributes, HTMLAttributes, InputHTMLAttributes, MouseEvent, ComponentProps } from 'react';
3
+ import { ButtonHTMLAttributes, ReactNode, AnchorHTMLAttributes, HTMLAttributes, InputHTMLAttributes, MouseEvent, ChangeEvent, ComponentProps } from 'react';
4
4
  import { DotLottieReact } from '@lottiefiles/dotlottie-react';
5
5
 
6
6
  type ButtonColorScheme = "coral" | "black" | "white";
@@ -96,6 +96,10 @@ interface TextFieldProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "cl
96
96
  status?: TextFieldStatus;
97
97
  /** Applied to the outermost field container */
98
98
  className?: string;
99
+ /** Optional label rendered inside the field box, stacked above the
100
+ * input (rather than as a separate element above the box). Omit for
101
+ * the default single-row field with no in-box label. */
102
+ label?: ReactNode;
99
103
  }
100
104
 
101
105
  declare const TextField: react.ForwardRefExoticComponent<TextFieldProps & react.RefAttributes<HTMLInputElement>>;
@@ -107,10 +111,25 @@ interface SearchFieldProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "
107
111
  variant?: SearchFieldVariant;
108
112
  /** Visual validation state. Defaults to "neutral". */
109
113
  status?: SearchFieldStatus;
114
+ /** Shows the leading search (magnifying-glass) icon. Defaults to `true`.
115
+ * Set to `false` for icon-less search bars (e.g. a Help Centre style
116
+ * search field where the placeholder text alone signals its purpose). */
117
+ showSearchIcon?: boolean;
110
118
  /** Called when the clear (×) button is clicked.
111
119
  * In controlled mode, update your value state here.
112
120
  * In uncontrolled mode the input is cleared automatically. */
113
121
  onClear?: () => void;
122
+ /** Optional label rendered inside the field box, stacked above the
123
+ * input (rather than as a separate element above the box). Omit for
124
+ * the default single-row field with no in-box label. */
125
+ label?: ReactNode;
126
+ /** Optional trailing content rendered after the input/clear button —
127
+ * e.g. a chevron when this field doubles as a combobox trigger. */
128
+ trailingSlot?: ReactNode;
129
+ /** Suppresses the built-in clear (×) button regardless of value —
130
+ * useful when `trailingSlot` already conveys the field's affordance
131
+ * (e.g. a combobox chevron) and a clear control isn't wanted. */
132
+ hideClearButton?: boolean;
114
133
  className?: string;
115
134
  }
116
135
 
@@ -472,6 +491,14 @@ interface FooterAiSummaryProps {
472
491
  /** List of AI app items */
473
492
  items: FooterAiSummaryItem[];
474
493
  }
494
+ interface FooterTradeOnProps {
495
+ /** Badge image source — a self-contained graphic (background + logo + wordmark baked in) */
496
+ imageSrc: string;
497
+ /** Image alt text */
498
+ imageAlt: string;
499
+ /** Link href */
500
+ href?: string;
501
+ }
475
502
  interface FooterProps extends HTMLAttributes<HTMLElement> {
476
503
  /** Deriv logo image source */
477
504
  logoSrc: string;
@@ -487,10 +514,19 @@ interface FooterProps extends HTMLAttributes<HTMLElement> {
487
514
  socialLinks?: FooterSocialLink[];
488
515
  /** Deriv GO promotion banner */
489
516
  derivGo?: FooterDerivGoProps;
517
+ /** "Trade on TradingView" promotion banner */
518
+ tradingView?: FooterTradeOnProps;
490
519
  /** "Investors in People" badge image source */
491
520
  investorsInPeopleSrc?: string;
492
521
  /** Alt text for the Investors in People badge */
493
522
  investorsInPeopleAlt?: string;
523
+ /**
524
+ * Moves the "Investors in People" badge into the header row (desktop
525
+ * only, replacing the AI summary bar's slot) and centers the social
526
+ * icons between the logo and the badge, instead of showing the badge
527
+ * in the sidebar/stacked position below the nav.
528
+ */
529
+ investorsInPeopleInHeader?: boolean;
494
530
  /** Legal / licence text block (supports ReactNode for inline links) */
495
531
  licenseText?: ReactNode;
496
532
  /** Risk-warning paragraph text */
@@ -504,7 +540,7 @@ interface FooterProps extends HTMLAttributes<HTMLElement> {
504
540
  aiSummary?: FooterAiSummaryProps;
505
541
  }
506
542
 
507
- declare const Footer: ({ logoSrc, logoAlt, navColumns, socialLinks, derivGo, investorsInPeopleSrc, investorsInPeopleAlt, licenseText, riskWarningText, aiSummary, className, ...props }: FooterProps) => react_jsx_runtime.JSX.Element;
543
+ declare const Footer: ({ logoSrc, logoAlt, navColumns, socialLinks, derivGo, tradingView, investorsInPeopleSrc, investorsInPeopleAlt, investorsInPeopleInHeader, licenseText, riskWarningText, aiSummary, className, ...props }: FooterProps) => react_jsx_runtime.JSX.Element;
508
544
 
509
545
  type HeroVariant = "split" | "centered" | "showcase";
510
546
  interface HeroButtonProps {
@@ -565,7 +601,7 @@ interface HeroProps extends HTMLAttributes<HTMLElement> {
565
601
 
566
602
  declare const Hero: ({ variant, subtitle, title, description, primaryButton, secondaryButton, backgroundImageSrc, heroImage, productImage, floatingImage, className, ...props }: HeroProps) => react_jsx_runtime.JSX.Element;
567
603
 
568
- type HeaderVariant = "visuals" | "minimal";
604
+ type HeaderVariant = "visuals" | "minimal" | "dark" | "dark-search";
569
605
  interface HeaderButtonProps {
570
606
  /** Button label text */
571
607
  label: string;
@@ -574,13 +610,30 @@ interface HeaderButtonProps {
574
610
  /** Link href — renders an anchor if provided */
575
611
  href?: string;
576
612
  }
613
+ interface HeaderSearchProps {
614
+ /** Placeholder text for the search input. Defaults to "Search". */
615
+ placeholder?: string;
616
+ /** Controlled input value */
617
+ value?: string;
618
+ /** Change handler for controlled usage */
619
+ onChange?: (event: ChangeEvent<HTMLInputElement>) => void;
620
+ /** Called when the clear (×) button is pressed */
621
+ onClear?: () => void;
622
+ /** Called on Enter keypress with the current input value */
623
+ onSubmit?: (value: string) => void;
624
+ }
577
625
  interface HeaderProps extends HTMLAttributes<HTMLElement> {
578
626
  /**
579
627
  * Layout variant:
580
628
  *
581
- * - "visuals" — light grey bg + SVG grid, center-aligned text, floating visuals left & right,
582
- * parallax scroll effect on visuals, min-height 540px
583
- * - "minimal" — same as visuals but without the floating graphics
629
+ * - "visuals" — light grey bg + SVG grid, center-aligned text, floating visuals left & right,
630
+ * parallax scroll effect on visuals, min-height 540px
631
+ * - "minimal" — same as visuals but without the floating graphics
632
+ * - "dark" — dark navy bg + SVG grid, center-aligned text, no floating visuals,
633
+ * min-height 420px on mobile/tablet, 460px on desktop (shorter than
634
+ * the light variants)
635
+ * - "dark-search" — same as "dark" plus a search field below the text, for pages such as
636
+ * the Help Centre index
584
637
  */
585
638
  variant: HeaderVariant;
586
639
  /** Optional eyebrow / subtitle above the title */
@@ -591,27 +644,32 @@ interface HeaderProps extends HTMLAttributes<HTMLElement> {
591
644
  description?: string;
592
645
  /**
593
646
  * Primary CTA button (coral).
594
- * Shown on both variants.
647
+ * Shown on all variants.
595
648
  */
596
649
  primaryButton?: HeaderButtonProps;
597
650
  /**
598
651
  * Secondary CTA button (white outline).
599
- * Shown on both variants.
652
+ * Shown on all variants.
600
653
  */
601
654
  secondaryButton?: HeaderButtonProps;
602
655
  /**
603
- * Left floating visual for the Visuals variant.
656
+ * Left floating visual for the "visuals" variant.
604
657
  * Accepts a ReactNode or image URL string.
605
658
  */
606
659
  leftVisual?: ReactNode | string;
607
660
  /**
608
- * Right floating visual for the Visuals variant.
661
+ * Right floating visual for the "visuals" variant.
609
662
  * Accepts a ReactNode or image URL string.
610
663
  */
611
664
  rightVisual?: ReactNode | string;
665
+ /**
666
+ * Search field configuration for the "dark-search" variant (e.g. Help Centre header).
667
+ * The field always renders for that variant; this prop only customises it.
668
+ */
669
+ search?: HeaderSearchProps;
612
670
  }
613
671
 
614
- declare const Header: ({ variant, subtitle, title, description, primaryButton, secondaryButton, leftVisual, rightVisual, className, ...props }: HeaderProps) => react_jsx_runtime.JSX.Element;
672
+ declare const Header: ({ variant, subtitle, title, description, primaryButton, secondaryButton, leftVisual, rightVisual, search, className, ...props }: HeaderProps) => react_jsx_runtime.JSX.Element;
615
673
 
616
674
  interface StatItem {
617
675
  /** Numeric or short display value, e.g. "2.5M+" */
@@ -1156,6 +1214,43 @@ interface TableProps extends HTMLAttributes<HTMLDivElement> {
1156
1214
 
1157
1215
  declare const Table: ({ sectionTitle, columns, rows, mainColumnKey, pageSize, searchPlaceholder, infoText, className, ...props }: TableProps) => react_jsx_runtime.JSX.Element;
1158
1216
 
1217
+ /** Visual column-count variant */
1218
+ type DynamicTableVariant = "Three columns" | "Four columns";
1219
+ /** Single column definition */
1220
+ interface DynamicTableColumnDef {
1221
+ /** Unique key matching the row data field */
1222
+ key: string;
1223
+ /**
1224
+ * Header label text.
1225
+ * Pass an array for multi-line headers (e.g. ["Spread", "reduction"]).
1226
+ */
1227
+ header: string | string[];
1228
+ }
1229
+ /**
1230
+ * A single row of table data.
1231
+ * Values are plain strings, newline-separated strings, or string arrays
1232
+ * (each item renders on its own line).
1233
+ */
1234
+ interface DynamicTableRowData {
1235
+ [key: string]: string | string[] | undefined;
1236
+ }
1237
+ interface DynamicTableProps extends HTMLAttributes<HTMLElement> {
1238
+ /** Optional section title rendered above the table */
1239
+ sectionTitle?: string;
1240
+ /**
1241
+ * Column-count variant.
1242
+ * - `Three columns` — one label column + two comparison columns
1243
+ * - `Four columns` — one label column + three comparison columns
1244
+ */
1245
+ variant?: DynamicTableVariant;
1246
+ /** Column definitions (order matters). Extra columns beyond the variant are ignored. */
1247
+ columns: DynamicTableColumnDef[];
1248
+ /** Row data */
1249
+ rows: DynamicTableRowData[];
1250
+ }
1251
+
1252
+ declare const DynamicTable: ({ sectionTitle, variant, columns, rows, className, ...props }: DynamicTableProps) => react_jsx_runtime.JSX.Element;
1253
+
1159
1254
  interface PersonItem {
1160
1255
  /** Person's full name */
1161
1256
  name: string;
@@ -1202,10 +1297,12 @@ declare const Leaders: ({ title, description, items, initialVisibleCount, expand
1202
1297
  interface ImageBannerProps extends HTMLAttributes<HTMLElement> {
1203
1298
  /**
1204
1299
  * Layout variant.
1205
- * - `"split"` (default): image fills the right-hand panel; text on the left.
1206
- * - `"full-bg"`: image covers the entire card as a background; text overlaid on top.
1300
+ * - `"split-left"` (default): text on the left; image fills the right-hand panel.
1301
+ * - `"split-right"`: image fills the left-hand panel; text on the right.
1302
+ * - `"full-bg-left"`: image covers the entire card as a background; text overlaid on the left.
1303
+ * - `"full-bg-right"`: image covers the entire card as a background; text overlaid on the right.
1207
1304
  */
1208
- variant?: "split" | "full-bg";
1305
+ variant?: "split-left" | "split-right" | "full-bg-left" | "full-bg-right";
1209
1306
  /** Section headline */
1210
1307
  title?: string;
1211
1308
  /** Supporting body copy beneath the title */
@@ -1218,8 +1315,9 @@ interface ImageBannerProps extends HTMLAttributes<HTMLElement> {
1218
1315
  onCtaClick?: () => void;
1219
1316
  /**
1220
1317
  * URL of the photo.
1221
- * - `"split"`: fills the right-hand panel; stacks below text on mobile.
1222
- * - `"full-bg"`: covers the entire card as a background image.
1318
+ * - `"split-left"`: fills the right-hand panel; stacks below text on mobile.
1319
+ * - `"split-right"`: fills the left-hand panel; stacks above text on mobile.
1320
+ * - `"full-bg-left"` / `"full-bg-right"`: covers the entire card as a background image.
1223
1321
  */
1224
1322
  imageUrl?: string;
1225
1323
  /** Accessible alt text for the image */
@@ -1239,17 +1337,43 @@ interface TestimonialItem {
1239
1337
  authorLocation?: string;
1240
1338
  /** Optional author avatar image URL */
1241
1339
  avatarUrl?: string;
1340
+ /**
1341
+ * `trustpilot` variant only — star rating out of 5 shown on the card.
1342
+ * Supports halves (e.g. `4.5`). Defaults to `5`.
1343
+ */
1344
+ rating?: number;
1345
+ /**
1346
+ * `trustpilot` variant only — link to the full review on Trustpilot.
1347
+ * When omitted, the card links to `trustpilotUrl` instead.
1348
+ */
1349
+ reviewUrl?: string;
1242
1350
  }
1243
1351
  interface TestimonialProps {
1244
1352
  /** Section heading */
1245
1353
  title?: string;
1246
- /** Array of testimonial items to display in the carousel */
1354
+ /** Array of testimonial items to display */
1247
1355
  items: TestimonialItem[];
1248
1356
  /** Optional CSS class name applied to the outer section */
1249
1357
  className?: string;
1358
+ /**
1359
+ * Visual style.
1360
+ * - `default` (default): single-slide auto-advancing quote carousel with dot pagination.
1361
+ * - `trustpilot`: horizontally-scrollable row of star-rated review cards, a "Trustpilot"
1362
+ * rating badge, and prev/next controls — modeled after deriv.com's homepage
1363
+ * "What our customers say" section.
1364
+ */
1365
+ variant?: "default" | "trustpilot";
1366
+ /**
1367
+ * `trustpilot` variant only — URL to the brand's Trustpilot profile page.
1368
+ * Used by the footer rating badge link, and as the fallback link for any
1369
+ * item without its own `reviewUrl`.
1370
+ */
1371
+ trustpilotUrl?: string;
1372
+ /** `trustpilot` variant only — overall TrustScore shown in the footer badge (out of 5). */
1373
+ trustpilotScore?: number;
1250
1374
  }
1251
1375
 
1252
- declare const Testimonial: ({ title, items, className, ...props }: TestimonialProps) => react_jsx_runtime.JSX.Element | null;
1376
+ declare const Testimonial: (props: TestimonialProps) => react_jsx_runtime.JSX.Element | null;
1253
1377
 
1254
1378
  interface ArticleHeroArticle {
1255
1379
  /** Article title */
@@ -1399,6 +1523,113 @@ declare const FEATURE_AWARDS_TEXT_CONTENT: {
1399
1523
  declare const DEFAULT_AWARDS: AwardItem[];
1400
1524
  declare const FeatureAwards: ({ title, awards, autoScrollDuration, className, ...props }: FeatureAwardsProps) => react_jsx_runtime.JSX.Element | null;
1401
1525
 
1526
+ interface FeatureBlogPost {
1527
+ /** Post headline */
1528
+ title: string;
1529
+ /** Post summary / dek text */
1530
+ summary: string;
1531
+ /** Card thumbnail image */
1532
+ thumbnail: string;
1533
+ thumbnailAlt?: string;
1534
+ /** Publish date label, e.g. "July 24, 2026" */
1535
+ date?: string;
1536
+ /** Category label, e.g. "Company" */
1537
+ category?: string;
1538
+ /** Link target — wraps the card in an anchor when set */
1539
+ href?: string;
1540
+ /** Click handler — used when `href` is not set */
1541
+ onClick?: () => void;
1542
+ }
1543
+ interface FeatureBlogProps extends HTMLAttributes<HTMLElement> {
1544
+ /** Section heading. Defaults to "Deriv press releases". */
1545
+ title?: string;
1546
+ /** Posts rendered as a responsive card grid. */
1547
+ posts: FeatureBlogPost[];
1548
+ /** Show the "See all" link below the grid (default: true) */
1549
+ showLink?: boolean;
1550
+ /** Label for the "See all" link (default: "See all press releases") */
1551
+ linkText?: string;
1552
+ /** Href for the "See all" link */
1553
+ linkHref?: string;
1554
+ onLinkClick?: () => void;
1555
+ /** Extra class name merged onto the root `<section>`. */
1556
+ className?: string;
1557
+ }
1558
+
1559
+ declare const FEATURE_BLOG_TEXT_CONTENT: {
1560
+ title: string;
1561
+ linkText: string;
1562
+ };
1563
+ declare const FeatureBlog: ({ title, posts, showLink, linkText, linkHref, onLinkClick, className, ...props }: FeatureBlogProps) => react_jsx_runtime.JSX.Element | null;
1564
+
1565
+ interface FeatureBlogCategoryTab {
1566
+ /** Stable identifier — must match `FeatureBlogCategoryPost.category` for filtering to work. CMS-managed. */
1567
+ id: string;
1568
+ /** Tab label shown in the pill row. CMS-managed. */
1569
+ label: string;
1570
+ }
1571
+ interface FeatureBlogCategoryPost {
1572
+ /** Post headline */
1573
+ title: string;
1574
+ /** Post summary / dek text */
1575
+ summary: string;
1576
+ /** Card thumbnail image */
1577
+ thumbnail: string;
1578
+ thumbnailAlt?: string;
1579
+ /** Publish date label, e.g. "July 24, 2026" */
1580
+ date?: string;
1581
+ /** Category tab id this post belongs to (matches a `categories[].id`). Posts also always match the "all" tab. */
1582
+ category: string;
1583
+ /** Category chip label shown on the card. Defaults to the matching tab's `label` when omitted. */
1584
+ categoryLabel?: string;
1585
+ /**
1586
+ * Destination URL. Absolute `http(s)://` URLs are treated as external and
1587
+ * open in a new tab (`target="_blank" rel="noopener noreferrer"`);
1588
+ * relative/internal paths (e.g. "/newsroom/my-article") navigate as a
1589
+ * normal same-tab inner-page link.
1590
+ */
1591
+ href?: string;
1592
+ /** Click handler — used when `href` is not set (renders a `<button>`) */
1593
+ onClick?: () => void;
1594
+ }
1595
+ interface FeatureBlogCategoriesProps extends HTMLAttributes<HTMLElement> {
1596
+ /** Section heading. Defaults to "Deriv press releases". */
1597
+ title?: string;
1598
+ /** Category tabs, CMS-managed. An "all" tab is always prepended automatically. */
1599
+ categories: FeatureBlogCategoryTab[];
1600
+ /** Id used internally for the auto-prepended "show everything" tab (default: "all") */
1601
+ allCategoryId?: string;
1602
+ /** Label for the auto-prepended "show everything" tab (default: "View all") */
1603
+ allCategoryLabel?: string;
1604
+ /** Controlled active category tab id */
1605
+ activeCategoryId?: string;
1606
+ /** Initial active tab id for uncontrolled usage (default: `allCategoryId`) */
1607
+ defaultActiveCategoryId?: string;
1608
+ /** Called whenever a different tab is selected */
1609
+ onCategoryChange?: (id: string) => void;
1610
+ /** All posts — filtered client-side by the active tab and search query */
1611
+ posts: FeatureBlogCategoryPost[];
1612
+ /** Placeholder text for the search field (default: "Search") */
1613
+ searchPlaceholder?: string;
1614
+ /** Accessible label for the search field (defaults to `searchPlaceholder`) */
1615
+ searchAriaLabel?: string;
1616
+ /** Called on every keystroke in the search field with the current value */
1617
+ onSearchChange?: (value: string) => void;
1618
+ /** Message shown when no posts match the active tab + search query */
1619
+ emptyStateText?: string;
1620
+ /** Extra class name merged onto the root `<section>`. */
1621
+ className?: string;
1622
+ }
1623
+
1624
+ declare const FEATURE_BLOG_CATEGORIES_TEXT_CONTENT: {
1625
+ title: string;
1626
+ allCategoryId: string;
1627
+ allCategoryLabel: string;
1628
+ searchPlaceholder: string;
1629
+ emptyStateText: string;
1630
+ };
1631
+ declare const FeatureBlogCategories: ({ title, categories, allCategoryId, allCategoryLabel, activeCategoryId, defaultActiveCategoryId, onCategoryChange, posts, searchPlaceholder, searchAriaLabel, onSearchChange, emptyStateText, className, ...props }: FeatureBlogCategoriesProps) => react_jsx_runtime.JSX.Element;
1632
+
1402
1633
  interface HelpCentreCategoryItem {
1403
1634
  /** Stable identifier for the category (e.g. used for anchors or filtering) */
1404
1635
  id?: string;
@@ -1515,4 +1746,362 @@ interface HelpCenterPageProps {
1515
1746
 
1516
1747
  declare const HelpCenterPage: ({ categoryTitle, questions, activeQuestionId, defaultActiveQuestionId, onQuestionSelect, contentTitle, content, searchPlaceholder, searchAriaLabel, onSearchChange, searchNoResultsText, articlesSheetTitle, className, }: HelpCenterPageProps) => react_jsx_runtime.JSX.Element;
1517
1748
 
1518
- export { AVATAR_DATA, Accordion, type AccordionProps, ArticleHero, type ArticleHeroArticle, type ArticleHeroColumn, type ArticleHeroProps, ArticleSection, type ArticleSectionItem, type ArticleSectionProps, type ArticleSectionVariant, AvatarGrid, type AvatarGridProps, 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, CORAL_BANNER_DERIV_SLIDES, CTABanner, type CTABannerProps, Card, type CardPrimaryStyle, type CardProps, type CardTag, type CardThumbnailType, Chip, ChipDropdown, type ChipDropdownOption, type ChipDropdownProps, type ChipProps, type ChipSize, CoralBanner, type CoralBannerButton, type CoralBannerProps, type CoralBannerSlide, DEFAULT_AWARDS, DayNightTransition, type DayNightTransitionProps, DotLottieInView, type DotLottieInViewProps, DownloadBadge, type DownloadBadgeColorScheme, type DownloadBadgePlatform, type DownloadBadgeProps, DownloadBanner, type DownloadBannerProps, type DownloadBannerStyle, FEATURE_AWARDS_TEXT_CONTENT, FEATURE_SCROLL_DATA, FaqAccordion, type FaqAccordionColorScheme, type FaqAccordionProps, type FaqItem, FeatureAwards, type FeatureAwardsProps, FeatureBullets, type FeatureBulletsProps, type FeatureCardIconItem, type FeatureCardItem, FeatureCards, FeatureCardsIcon, type FeatureCardsIconProps, type FeatureCardsProps, FeatureScroll, type FeatureScrollItem, type FeatureScrollProps, FeatureSplit, type FeatureSplitImagePosition, type FeatureSplitProps, Footer, type FooterAiSummaryItem, type FooterAiSummaryProps, type FooterAppBadge, type FooterDerivGoProps, type FooterLinkItem, type FooterNavSection, type FooterProps, type FooterSocialLink, Header, type HeaderButtonProps, type HeaderProps, type HeaderVariant, type HelpCenterContentBlock, type HelpCenterContentBlockType, HelpCenterPage, type HelpCenterPageProps, type HelpCenterQuestionItem, HelpCentreCategories, type HelpCentreCategoriesProps, type HelpCentreCategoryItem, HelpCentreSubCategories, type HelpCentreSubCategoriesProps, type HelpCentreSubCategoryItem, Hero, type HeroButtonProps, type HeroProps, type HeroVariant, ImageBanner, type ImageBannerProps, type LanguageItem, type LeaderItem, Leaders, type LeadersProps, Link, type LinkColorScheme, type LinkProps, type LogoItem, LogoMarquee, type LogoMarqueeProps, type NavDropdownColumn, type NavDropdownFeature, type NavDropdownItem, type NavItem, Navbar, type NavbarProps, Pagination, type PaginationProps, PeopleGrid, type PeopleGridProps, type PersonItem, STEPS_DATA, SearchField, type SearchFieldProps, type SearchFieldStatus, type StatItem, Stats, type StatsAward, type StatsProps, StatsSimple, type StatsSimpleProps, type StepItem, Steps, type StepsImagePosition, type StepsProps, type StickyCardItem, type StickyCardTheme, type StickyMarketCardItem, type StickyMarketCardTheme, StickyMarketCards, type StickyMarketCardsProps, StickyStackedCards, type StickyStackedCardsProps, TEXT_CONTENT, type TabItem, Table, type TableColumnDef, type TableColumnWidth, type TableProps, type TableRowData, Tabs, type TabsProps, Tag, type TagFontWeight, type TagProps, type TagSize, type TagVariant, Testimonial, type TestimonialItem, type TestimonialProps, TextField, type TextFieldProps, type TextFieldStatus, type TextFieldVariant, TextScroll, type TextScrollProps, dayNightTransitionV2Preset };
1749
+ type FeatureBlogContentBlockType = "heading" | "paragraph" | "list" | "quote" | "image";
1750
+ interface FeatureBlogContentBlock {
1751
+ /** Block kind — "heading"/"paragraph"/"quote" use `text`, "list" uses `items`, "image" uses `image` */
1752
+ type: FeatureBlogContentBlockType;
1753
+ /** Text content for "heading" / "paragraph" / "quote" blocks */
1754
+ text?: string;
1755
+ /**
1756
+ * Heading level for "heading" blocks (default: 2). Only level-2 headings
1757
+ * are collected into the table of contents — level-3 headings render
1758
+ * inline as sub-sections but are not listed.
1759
+ */
1760
+ level?: 2 | 3;
1761
+ /** Stable anchor id for a "heading" block; auto-generated (slugified) from `text` when omitted */
1762
+ id?: string;
1763
+ /** List entries for "list" blocks */
1764
+ items?: string[];
1765
+ /** Render a "list" block as `<ol>` instead of `<ul>` (default: false) */
1766
+ ordered?: boolean;
1767
+ /** Citation / source line for "quote" blocks */
1768
+ cite?: string;
1769
+ /** Image source for "image" blocks */
1770
+ image?: string;
1771
+ imageAlt?: string;
1772
+ /** Optional caption rendered below an "image" block */
1773
+ caption?: string;
1774
+ }
1775
+ type FeatureBlogSharePlatform = "facebook" | "twitter" | "linkedin" | "telegram";
1776
+ interface FeatureBlogAuthor {
1777
+ /** Author display name */
1778
+ name: string;
1779
+ /** Author avatar image */
1780
+ avatar?: string;
1781
+ avatarAlt?: string;
1782
+ }
1783
+ interface FeatureBlogPageProps {
1784
+ /** Small category label rendered above the title (e.g. "Press releases") */
1785
+ category?: string;
1786
+ /** Article headline, rendered as the page's `<h1>` (required) */
1787
+ title: string;
1788
+ /** Publish date label shown in the meta row (e.g. "July 24, 2026") */
1789
+ publishDate?: string;
1790
+ /** Article author, shown in the meta row next to the publish date */
1791
+ author?: FeatureBlogAuthor;
1792
+ /** Hero image rendered below the title / meta row */
1793
+ heroImage?: string;
1794
+ heroImageAlt?: string;
1795
+ /** Main article body, rendered from plain data blocks (required, at least 1 item) */
1796
+ content: FeatureBlogContentBlock[];
1797
+ /** Table of contents card heading (default: "Contents") */
1798
+ tocTitle?: string;
1799
+ /** Whether the table of contents starts expanded (default: true) */
1800
+ tocDefaultOpen?: boolean;
1801
+ /** Hide the table of contents entirely (default: false) — e.g. for very short articles with no level-2 headings */
1802
+ hideToc?: boolean;
1803
+ /** "Share article" label above the share icons (default: "Share article") */
1804
+ shareTitle?: string;
1805
+ /** Canonical URL used to build every share link and for "copy link"; sharing is hidden when omitted */
1806
+ shareUrl?: string;
1807
+ /** Text passed to platforms that accept share text (X/Twitter, Telegram); defaults to `title` */
1808
+ shareText?: string;
1809
+ /** Which social platforms to show, in order (default: all four) */
1810
+ sharePlatforms?: FeatureBlogSharePlatform[];
1811
+ /** Hide the share row entirely (default: false) */
1812
+ hideShare?: boolean;
1813
+ /** Fired whenever a share icon (including "copy link") is activated */
1814
+ onShare?: (platform: FeatureBlogSharePlatform | "copy") => void;
1815
+ /** Label shown briefly after "copy link" succeeds (default: "Copied!") */
1816
+ copiedLabel?: string;
1817
+ /** Additional CSS class on the outer `<section>` */
1818
+ className?: string;
1819
+ }
1820
+
1821
+ declare const FeatureBlogPage: ({ category, title, publishDate, author, heroImage, heroImageAlt, content, tocTitle, tocDefaultOpen, hideToc, shareTitle, shareUrl, shareText, sharePlatforms, hideShare, onShare, copiedLabel, className, }: FeatureBlogPageProps) => react_jsx_runtime.JSX.Element;
1822
+
1823
+ interface ParallaxBannerCultureCard {
1824
+ /** Card heading, e.g. "Integrity" */
1825
+ title: string;
1826
+ /** Supporting copy beneath the title */
1827
+ description: string;
1828
+ }
1829
+ interface ParallaxBannerProps extends HTMLAttributes<HTMLElement> {
1830
+ /**
1831
+ * Layout variant.
1832
+ * - `"default"`: banner card plus a grid of culture/value cards beneath it.
1833
+ * - `"banner-only"`: just the banner card — no cards grid.
1834
+ */
1835
+ variant?: "default" | "banner-only";
1836
+ /** Banner headline. Defaults to "Our culture". */
1837
+ title?: string;
1838
+ /** Supporting copy beneath the headline */
1839
+ description?: string;
1840
+ /** CTA link label. Defaults to "Culture at Deriv". */
1841
+ ctaLabel?: string;
1842
+ /** CTA link href */
1843
+ ctaHref?: string;
1844
+ /** Callback fired when the CTA link is clicked */
1845
+ onCtaClick?: () => void;
1846
+ /** URL of the photo shown in the banner's image panel */
1847
+ imageUrl?: string;
1848
+ /** Accessible alt text for the banner photo */
1849
+ imageAlt?: string;
1850
+ /**
1851
+ * Four (or more) short value/culture cards rendered in a grid below the
1852
+ * banner. Ignored when `variant` is `"banner-only"`. Defaults to
1853
+ * `DEFAULT_CULTURE_CARDS`.
1854
+ */
1855
+ cards?: ParallaxBannerCultureCard[];
1856
+ /**
1857
+ * Enables the subtle scroll-linked parallax on the banner photo.
1858
+ * Automatically disabled when the user has `prefers-reduced-motion` set.
1859
+ * Defaults to `true`.
1860
+ */
1861
+ enableParallax?: boolean;
1862
+ /** Extra class name merged onto the root `<section>` */
1863
+ className?: string;
1864
+ }
1865
+
1866
+ declare const PARALLAX_BANNER_TEXT_CONTENT: {
1867
+ title: string;
1868
+ description: string;
1869
+ ctaLabel: string;
1870
+ };
1871
+ declare const DEFAULT_CULTURE_CARDS: ParallaxBannerCultureCard[];
1872
+ declare const ParallaxBanner: ({ variant, title, description, ctaLabel, ctaHref, onCtaClick, imageUrl, imageAlt, cards, enableParallax, className, ...props }: ParallaxBannerProps) => react_jsx_runtime.JSX.Element;
1873
+
1874
+ /**
1875
+ * One instrument's live trading specification, in the shape returned by
1876
+ * Deriv's public `dynamic_trading_specs.json` feed. Only the fields the
1877
+ * calculator actually reads are declared; the feed includes more (index
1878
+ * signature keeps those from causing type errors when passed straight
1879
+ * through from `fetch`).
1880
+ */
1881
+ interface TradingSymbolSpec {
1882
+ /** Trading symbol code, e.g. "EURUSD", "1HZ100V", "AAPL.US". */
1883
+ symbol: string;
1884
+ /** Human-readable instrument name, e.g. "Euro vs US Dollar". */
1885
+ description: string;
1886
+ /** Grouping used for the symbol dropdown, e.g. "Forex - Major". */
1887
+ asset_class: string;
1888
+ /** Broad market bucket, e.g. "forex", "synthetic_index", "stocks". */
1889
+ market: string;
1890
+ /** Currency the contract size is denominated in. */
1891
+ base_currency: string;
1892
+ /** Currency profit/loss (and swap) is settled in. */
1893
+ profit_currency: string;
1894
+ /** Units of the underlying per 1 lot. */
1895
+ contract_size: number;
1896
+ /** Minimum price increment shown to traders (pip). */
1897
+ pip_size: number;
1898
+ /** Smallest raw price increment (point). */
1899
+ point_size: number;
1900
+ /** Effective leverage, e.g. `500` for "1 : 500". */
1901
+ effective_leverage: number;
1902
+ /** How swap/rollover is charged, e.g. "In points" or a percentage-terms mode. */
1903
+ swap_mode: string;
1904
+ /** Long-position swap rate, unit depends on `swap_mode`. */
1905
+ swap_rate_long: number;
1906
+ /** Short-position swap rate, unit depends on `swap_mode`. */
1907
+ swap_rate_short: number;
1908
+ /** Weekday that charges a triple ("three-day") swap, if any. */
1909
+ three_day_swap?: string;
1910
+ /** Whether swap is charged over weekends. */
1911
+ weekend_swaps?: string;
1912
+ /** Most recent traded/ask price — used to prefill "Asset price". */
1913
+ ask_last: number;
1914
+ /** Minimum tradable volume, in lots. */
1915
+ volume_min: number;
1916
+ /** Maximum tradable volume, in lots. */
1917
+ volume_limit: number;
1918
+ [key: string]: unknown;
1919
+ }
1920
+ /** Computed output of a single "Calculate" run. */
1921
+ interface TradingCalculatorResults {
1922
+ marginRequired: number;
1923
+ tradeVolume: number;
1924
+ pipValue: number;
1925
+ /** `null` when the instrument's `swap_mode` isn't one the formulas cover ("N/A"). */
1926
+ swapChargeLong: number | null;
1927
+ swapChargeShort: number | null;
1928
+ }
1929
+ /**
1930
+ * Which deriv.com/trading-calculators page this instance mirrors. All four
1931
+ * variants share the same "Calculator" inputs, the same live data sources,
1932
+ * and the same underlying formulas — they only differ in which result(s) the
1933
+ * "Results" panel surfaces, matching each reference page's own focused
1934
+ * results panel:
1935
+ * - `"main"` — every result (margin, trade volume, pip value, long/short
1936
+ * swap) in one combined panel, for a general-purpose "Trading calculators"
1937
+ * page that covers all three calculations at once.
1938
+ * - `"margin"` — only "Margin Required", mirroring
1939
+ * https://deriv.com/trading-calculators/margin-calculator
1940
+ * - `"pip"` — only "Pip value", mirroring
1941
+ * https://deriv.com/trading-calculators/pip-calculator
1942
+ * - `"swap"` — only "Swap Charge Long"/"Swap Charge Short" plus the swap
1943
+ * rate/type/three-day/weekend info rows, mirroring
1944
+ * https://deriv.com/trading-calculators/swap-calculator
1945
+ */
1946
+ type TradingCalculatorVariant = "main" | "margin" | "pip" | "swap";
1947
+ interface TradingCalculatorProps extends HTMLAttributes<HTMLElement> {
1948
+ /**
1949
+ * Which single-purpose calculator page this instance mirrors — controls
1950
+ * which result(s) the "Results" panel shows. See
1951
+ * `TradingCalculatorVariant` for what each value maps to.
1952
+ * @default "main"
1953
+ */
1954
+ variant?: TradingCalculatorVariant;
1955
+ /**
1956
+ * Live instrument specs (contract size, leverage, swap rates, live price...).
1957
+ * When omitted, the component fetches them itself from `symbolsEndpoint` on
1958
+ * mount. Pass this to supply your own data — tests, Storybook, SSR, or a
1959
+ * project-side proxy/cache in front of the feed.
1960
+ */
1961
+ symbols?: TradingSymbolSpec[];
1962
+ /**
1963
+ * JSON endpoint returning an array of `TradingSymbolSpec`. This is Deriv's
1964
+ * own public, unauthenticated feed — the same one deriv.com/trading-calculators
1965
+ * uses — refreshed continuously server-side.
1966
+ * @default "https://deriv-static-pricingfeedv2.firebaseio.com/n8n/row/prod/dynamic_trading_specs.json"
1967
+ */
1968
+ symbolsEndpoint?: string;
1969
+ /**
1970
+ * Deriv's public WebSocket API endpoint, used to fetch live USD exchange
1971
+ * rates when a selected instrument's base/profit currency isn't already
1972
+ * USD. `app_id=1089` is Deriv's public demo app id (safe to ship — it is
1973
+ * not a secret, only a rate-limited API client identifier); register your
1974
+ * own at https://api.deriv.com for production traffic volumes. Pass `null`
1975
+ * to disable live conversion — non-USD instruments then show "N/A" for any
1976
+ * value that would have required it, instead of a silently wrong number.
1977
+ * @default "wss://ws.derivws.com/websockets/v3?app_id=1089"
1978
+ */
1979
+ exchangeRateWsUrl?: string | null;
1980
+ /** Symbol code to preselect on mount once symbols have loaded, e.g. "EURUSD". */
1981
+ defaultSymbol?: string;
1982
+ /** Extra class name merged onto the root `<section>`. */
1983
+ className?: string;
1984
+ }
1985
+
1986
+ declare const DEFAULT_SYMBOLS_ENDPOINT = "https://deriv-static-pricingfeedv2.firebaseio.com/n8n/row/prod/dynamic_trading_specs.json";
1987
+ declare const DEFAULT_EXCHANGE_RATE_WS_URL = "wss://ws.derivws.com/websockets/v3?app_id=1089";
1988
+ declare const TradingCalculator: ({ variant, symbols: symbolsProp, symbolsEndpoint, exchangeRateWsUrl, defaultSymbol, className, ...props }: TradingCalculatorProps) => react_jsx_runtime.JSX.Element;
1989
+
1990
+ /**
1991
+ * Which deriv.com/trading-calculators "How to calculate…" explainer this
1992
+ * instance mirrors:
1993
+ * - `"margin"` — https://deriv.com/trading-calculators/margin-calculator
1994
+ * - `"pip"` — https://deriv.com/trading-calculators/pip-calculator
1995
+ * - `"swap-points"` / `"swap-percentage"` —
1996
+ * https://deriv.com/trading-calculators/swap-calculator, which itself
1997
+ * ships two formulas behind an "In points" / "In percentage" tab switch.
1998
+ * Both variants render that same interactive tab switch (a visitor can
1999
+ * still click between the two after load) — they only differ in which
2000
+ * formula is shown/active first.
2001
+ */
2002
+ type TradingCalculatorHowToVariant = "margin" | "pip" | "swap-points" | "swap-percentage";
2003
+ /** Which of the swap variants' two formulas is active. Mirrors the `swap-*` half of `TradingCalculatorHowToVariant`. */
2004
+ type SwapCalculationMode = "points" | "percentage";
2005
+ /**
2006
+ * One token inside a calculation strip (the boxed row of numbers that walks
2007
+ * through an example calculation, e.g. "0.25 x 100,000 x 1.10634 = 27,658.5").
2008
+ * Plain connective text — operators (`"x"`, `"÷"`), `"="`, or bracket
2009
+ * fragments (`"[0.2"`) — omits `label`. A value that should show a connector
2010
+ * dot + caption underneath (matching the reference page's annotated
2011
+ * calculation graphic) sets one, e.g. `{ text: "0.25", label: "Lots" }`.
2012
+ */
2013
+ interface CalculationToken {
2014
+ /** Text rendered for this token, e.g. "0.25", "x", "=", "27,658.5". */
2015
+ text: string;
2016
+ /** Caption shown below this token, connected by a small dot + line. */
2017
+ label?: string;
2018
+ }
2019
+ /** One block of the "Formula" column, rendered in order. */
2020
+ type FormulaBlock =
2021
+ /** A regular paragraph, e.g. "Volume is calculated based on the following formula:". */
2022
+ {
2023
+ type: "text";
2024
+ content: string;
2025
+ }
2026
+ /** A smaller, muted footnote paragraph, e.g. definitions marked with `*`/`**`. */
2027
+ | {
2028
+ type: "footnote";
2029
+ content: string;
2030
+ }
2031
+ /** A labelled bullet list, e.g. "Forex: Lots x Contract size x BSE/USD*". */
2032
+ | {
2033
+ type: "bullets";
2034
+ items: {
2035
+ term: string;
2036
+ content: string;
2037
+ }[];
2038
+ };
2039
+ interface TradingCalculatorHowToProps extends HTMLAttributes<HTMLElement> {
2040
+ /**
2041
+ * Which deriv.com "How to calculate…" page this instance mirrors.
2042
+ * @default "margin"
2043
+ */
2044
+ variant?: TradingCalculatorHowToVariant;
2045
+ /** Section heading. Defaults to the canonical heading for `variant`, e.g. "How to calculate margin requirements". */
2046
+ title?: string;
2047
+ /** Section description, shown under the title. Defaults to the canonical copy for `variant`. */
2048
+ description?: string;
2049
+ /** Extra class name merged onto the root `<section>`. */
2050
+ className?: string;
2051
+ }
2052
+
2053
+ declare const TradingCalculatorHowTo: ({ variant, title, description, className, ...props }: TradingCalculatorHowToProps) => react_jsx_runtime.JSX.Element;
2054
+
2055
+ interface FeatureOfficeRegion {
2056
+ /** Stable identifier — must match `FeatureOffice.region` for filtering to work. CMS-managed. */
2057
+ id: string;
2058
+ /** Tab label shown in the pill row. CMS-managed. */
2059
+ label: string;
2060
+ }
2061
+ interface FeatureOffice {
2062
+ /** Region tab id this office belongs to (matches a `regions[].id`). */
2063
+ region: string;
2064
+ /** Flag image shown above the office name (real flag artwork, not an emoji). */
2065
+ flagImage: string;
2066
+ /** Alt text for the flag image. Defaults to `country` when omitted. */
2067
+ flagAlt?: string;
2068
+ /** City name, e.g. "London". */
2069
+ city: string;
2070
+ /** Country name, e.g. "United Kingdom". */
2071
+ country: string;
2072
+ /** Full postal address. Use "\n" to break the address onto multiple lines. */
2073
+ address: string;
2074
+ /**
2075
+ * Destination URL for the "See location" link (typically a map link).
2076
+ * When omitted, the office card renders with no link.
2077
+ */
2078
+ href?: string;
2079
+ /** Overrides the default "See location" link label for this office. */
2080
+ linkText?: string;
2081
+ }
2082
+ interface FeatureOfficesProps extends HTMLAttributes<HTMLElement> {
2083
+ /** Section heading. Defaults to "Our offices". */
2084
+ title?: string;
2085
+ /** Region tabs, CMS-managed. At least one is required. */
2086
+ regions: FeatureOfficeRegion[];
2087
+ /** Controlled active region tab id */
2088
+ activeRegionId?: string;
2089
+ /** Initial active tab id for uncontrolled usage (default: `regions[0].id`) */
2090
+ defaultActiveRegionId?: string;
2091
+ /** Called whenever a different region tab is selected */
2092
+ onRegionChange?: (id: string) => void;
2093
+ /** All offices — filtered client-side by the active region tab. */
2094
+ offices: FeatureOffice[];
2095
+ /** Default label for each office's "See location" link. */
2096
+ linkText?: string;
2097
+ /** Extra class name merged onto the root `<section>`. */
2098
+ className?: string;
2099
+ }
2100
+
2101
+ declare const FEATURE_OFFICES_TEXT_CONTENT: {
2102
+ title: string;
2103
+ linkText: string;
2104
+ };
2105
+ declare const FeatureOffices: ({ title, regions, activeRegionId, defaultActiveRegionId, onRegionChange, offices, linkText, className, ...props }: FeatureOfficesProps) => react_jsx_runtime.JSX.Element;
2106
+
2107
+ export { AVATAR_DATA, Accordion, type AccordionProps, ArticleHero, type ArticleHeroArticle, type ArticleHeroColumn, type ArticleHeroProps, ArticleSection, type ArticleSectionItem, type ArticleSectionProps, type ArticleSectionVariant, AvatarGrid, type AvatarGridProps, 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, CORAL_BANNER_DERIV_SLIDES, CTABanner, type CTABannerProps, type CalculationToken, Card, type CardPrimaryStyle, type CardProps, type CardTag, type CardThumbnailType, Chip, ChipDropdown, type ChipDropdownOption, type ChipDropdownProps, type ChipProps, type ChipSize, CoralBanner, type CoralBannerButton, type CoralBannerProps, type CoralBannerSlide, DEFAULT_AWARDS, DEFAULT_CULTURE_CARDS, DEFAULT_EXCHANGE_RATE_WS_URL, DEFAULT_SYMBOLS_ENDPOINT, DayNightTransition, type DayNightTransitionProps, DotLottieInView, type DotLottieInViewProps, DownloadBadge, type DownloadBadgeColorScheme, type DownloadBadgePlatform, type DownloadBadgeProps, DownloadBanner, type DownloadBannerProps, type DownloadBannerStyle, DynamicTable, type DynamicTableColumnDef, type DynamicTableProps, type DynamicTableRowData, type DynamicTableVariant, FEATURE_AWARDS_TEXT_CONTENT, FEATURE_BLOG_CATEGORIES_TEXT_CONTENT, FEATURE_BLOG_TEXT_CONTENT, FEATURE_OFFICES_TEXT_CONTENT, FEATURE_SCROLL_DATA, FaqAccordion, type FaqAccordionColorScheme, type FaqAccordionProps, type FaqItem, FeatureAwards, type FeatureAwardsProps, FeatureBlog, type FeatureBlogAuthor, FeatureBlogCategories, type FeatureBlogCategoriesProps, type FeatureBlogCategoryPost, type FeatureBlogCategoryTab, type FeatureBlogContentBlock, type FeatureBlogContentBlockType, FeatureBlogPage, type FeatureBlogPageProps, type FeatureBlogPost, type FeatureBlogProps, type FeatureBlogSharePlatform, FeatureBullets, type FeatureBulletsProps, type FeatureCardIconItem, type FeatureCardItem, FeatureCards, FeatureCardsIcon, type FeatureCardsIconProps, type FeatureCardsProps, type FeatureOffice, type FeatureOfficeRegion, FeatureOffices, type FeatureOfficesProps, FeatureScroll, type FeatureScrollItem, type FeatureScrollProps, FeatureSplit, type FeatureSplitImagePosition, type FeatureSplitProps, Footer, type FooterAiSummaryItem, type FooterAiSummaryProps, type FooterAppBadge, type FooterDerivGoProps, type FooterLinkItem, type FooterNavSection, type FooterProps, type FooterSocialLink, type FormulaBlock, Header, type HeaderButtonProps, type HeaderProps, type HeaderVariant, type HelpCenterContentBlock, type HelpCenterContentBlockType, HelpCenterPage, type HelpCenterPageProps, type HelpCenterQuestionItem, HelpCentreCategories, type HelpCentreCategoriesProps, type HelpCentreCategoryItem, HelpCentreSubCategories, type HelpCentreSubCategoriesProps, type HelpCentreSubCategoryItem, Hero, type HeroButtonProps, type HeroProps, type HeroVariant, ImageBanner, type ImageBannerProps, type LanguageItem, type LeaderItem, Leaders, type LeadersProps, Link, type LinkColorScheme, type LinkProps, type LogoItem, LogoMarquee, type LogoMarqueeProps, type NavDropdownColumn, type NavDropdownFeature, type NavDropdownItem, type NavItem, Navbar, type NavbarProps, PARALLAX_BANNER_TEXT_CONTENT, Pagination, type PaginationProps, ParallaxBanner, type ParallaxBannerCultureCard, type ParallaxBannerProps, PeopleGrid, type PeopleGridProps, type PersonItem, STEPS_DATA, SearchField, type SearchFieldProps, type SearchFieldStatus, type StatItem, Stats, type StatsAward, type StatsProps, StatsSimple, type StatsSimpleProps, type StepItem, Steps, type StepsImagePosition, type StepsProps, type StickyCardItem, type StickyCardTheme, type StickyMarketCardItem, type StickyMarketCardTheme, StickyMarketCards, type StickyMarketCardsProps, StickyStackedCards, type StickyStackedCardsProps, type SwapCalculationMode, TEXT_CONTENT, type TabItem, Table, type TableColumnDef, type TableColumnWidth, type TableProps, type TableRowData, Tabs, type TabsProps, Tag, type TagFontWeight, type TagProps, type TagSize, type TagVariant, Testimonial, type TestimonialItem, type TestimonialProps, TextField, type TextFieldProps, type TextFieldStatus, type TextFieldVariant, TextScroll, type TextScrollProps, TradingCalculator, TradingCalculatorHowTo, type TradingCalculatorHowToProps, type TradingCalculatorHowToVariant, type TradingCalculatorProps, type TradingCalculatorResults, type TradingCalculatorVariant, type TradingSymbolSpec, dayNightTransitionV2Preset };