import * as React from 'react' import Link from 'next/link' import InlineSvg from '@hashicorp/react-inline-svg' import classNames from 'classnames' import { IconArrowRight24 } from '@hashicorp/flight-icons/svg-react/arrow-right-24' import { IconExternalLink24 } from '@hashicorp/flight-icons/svg-react/external-link-24' import { productLogos } from './product-logos' import s from './style.module.css' export interface IoCardProps { variant?: 'light' | 'gray' | 'dark' products?: Array<{ name: keyof typeof productLogos }> link: { url: string type: 'inbound' | 'outbound' } inset?: 'none' | 'sm' | 'md' eyebrow?: string heading?: string description?: string children?: React.ReactNode } function IoCard({ variant = 'light', products, link, inset = 'md', eyebrow, heading, description, children, }: IoCardProps): React.ReactElement { const LinkWrapper = ({ className, children }) => link.type === 'inbound' ? ( {children} ) : ( {children} ) return (
{children ? ( children ) : ( <> {eyebrow ? {eyebrow} : null} {heading ? {heading} : null} {description ? {description} : null} )}
) } interface EyebrowProps { children: string } function Eyebrow({ children }: EyebrowProps) { return

{children}

} interface HeadingProps { as?: 'h2' | 'h3' | 'h4' children: React.ReactNode } function Heading({ as: Component = 'h2', children }: HeadingProps) { return {children} } interface DescriptionProps { children: string } function Description({ children }: DescriptionProps) { return

{children}

} IoCard.Eyebrow = Eyebrow IoCard.Heading = Heading IoCard.Description = Description export default IoCard