import * as React from 'react'; import { Button } from '../../ui/button'; import { PillBadge } from './PillBadge'; import { cn } from '../../shared/utils'; export interface HeroCta { label: string; href?: string; onClick?: () => void; } export interface HeroProps extends Omit, 'title'> { eyebrow?: { label: string; icon?: React.ReactNode }; title: React.ReactNode; description?: React.ReactNode; primaryCta?: HeroCta; secondaryCta?: HeroCta; visual?: React.ReactNode; align?: 'left' | 'center'; decorative?: boolean; } function HeroCtaButton({ cta, variant, }: { cta: HeroCta; variant: React.ComponentProps['variant']; }) { if (cta.href) { return ( ); } return ( ); } /** * Full-width, above-the-fold marketing hero section. * * @description * The lead block for landing and marketing pages: an optional `PillBadge` * eyebrow, a very large headline, supporting copy, and up to two `