import { default as React } from 'react'; import { BoxProps } from '../Box/Box'; import { BoxBackgroundColor, BoxBorderColor, BoxBorderRadius, BoxShadow } from '@viasat/beam-shared/components/box'; import { CardDensity, CardGroupSelectionMode, CardType } from '@viasat/beam-shared/components/card'; export interface CardProps extends Pick, React.HTMLAttributes { /** * Specify the content and sub-components of the Card */ 'children': React.ReactNode; /** * Specify the density of the Card * @default 'md' */ 'density'?: CardDensity; /** * Specify the border color of the Card */ 'borderColor'?: BoxBorderColor; /** * Specify the border radius of the Card */ 'borderRadius'?: BoxBorderRadius; /** * Specify the surface color of the Card */ 'backgroundColor'?: BoxBackgroundColor; /** * Specify a shadow on the Card */ 'shadow'?: BoxShadow; /** * Specify the interactive type of the Card. When type="selectable", you should provide either aria-label or aria-labelledby for the selection input to ensure accessibility * @default undefined */ 'type'?: CardType; /** * Specify the HTML element type of the Card when interactive */ 'as'?: 'div' | 'a' | 'button'; /** * Specify if the Card is disabled. Only applies when type is set * @default false */ 'disabled'?: boolean; /** * Specify the href for the Card when type="clickable" and as="a" */ 'href'?: string; /** * Specify the target for the Card link (e.g., "_blank") */ 'target'?: string; /** * Specify the rel attribute for the Card link */ 'rel'?: string; /** * Specify a click handler for the Card when type="clickable" */ 'onClick'?: (event: React.MouseEvent | React.KeyboardEvent) => void; /** * Selection mode when type="selectable". Ignored when Card is inside a CardGroup (group's selectionMode wins) * @default 'single' */ 'selectionMode'?: CardGroupSelectionMode; /** * When true, shows a visual selection indicator (radio or checkbox) on the Card * @default false */ 'showIndicator'?: boolean; /** * Specify if the Card is selected (controlled). Only applies when type="selectable" */ 'selected'?: boolean; /** * Specify if the Card is initially selected (uncontrolled). Only applies when type="selectable" */ 'defaultSelected'?: boolean; /** * Callback when selection changes. Only applies when type="selectable" */ 'onSelect'?: (event: React.ChangeEvent) => void; /** * Name attribute for the underlying input when type="selectable". * Used for form integration */ 'name'?: string; /** * Value attribute for the underlying input when type="selectable". * Used for form integration * * > When used inside a selectable CardGroup, this (or `id`) is required so the * group can manage selection state */ 'value'?: string; /** * Accessible label for the selectable Card's input. Required when type="selectable" */ 'aria-label'?: string; /** * ID(s) of elements that label the selection input. Alternative to aria-label when type="selectable" */ 'aria-labelledby'?: string; } export declare const Card: { ({ children, className: _className, density, borderColor, borderRadius, backgroundColor, shadow, type, as, disabled: _disabled, href, target, rel, onClick, selectionMode: _selectionMode, showIndicator: _showIndicator, selected: controlledSelected, defaultSelected, onSelect, name: _name, value: _value, style, ...props }: CardProps): import("react/jsx-runtime").JSX.Element; displayName: string; MediaAbove: { (props: import('./Card.MediaAbove').CardMediaAboveProps): import("react/jsx-runtime").JSX.Element; displayName: string; }; MediaBelow: { (props: import('./Card.MediaBelow').CardMediaBelowProps): import("react/jsx-runtime").JSX.Element; displayName: string; }; Header: { ({ children, className: _className, ...props }: import('./Card.Header').CardHeaderProps): import("react/jsx-runtime").JSX.Element; displayName: string; Heading: { ({ children, className: _className, ...props }: import('./Card.Header').CardHeaderHeadingProps): import("react/jsx-runtime").JSX.Element; displayName: string; }; HeadingText: { ({ children, className: _className, ...props }: import('./Card.Header').CardHeaderHeadingTextProps): import("react/jsx-runtime").JSX.Element; displayName: string; }; Eyebrow: { ({ children, className: _className, ...props }: import('./Card.Header').CardHeaderEyebrowProps): import("react/jsx-runtime").JSX.Element; displayName: string; }; SupportingText: { ({ children, className: _className, ...props }: import('./Card.Header').CardHeaderSupportingTextProps): import("react/jsx-runtime").JSX.Element; displayName: string; }; ContentBefore: { ({ children, className: _className, ...props }: import('./Card.Header').CardHeaderContentBeforeProps): import("react/jsx-runtime").JSX.Element; displayName: string; }; ContentAfter: { ({ children, className: _className, ...props }: import('./Card.Header').CardHeaderContentAfterProps): import("react/jsx-runtime").JSX.Element; displayName: string; }; }; Body: { ({ children, className: _className, ...props }: import('./Card.Body').CardBodyProps): import("react/jsx-runtime").JSX.Element; displayName: string; }; Content: { ({ children, className: _className, ...props }: import('./Card.Content').CardContentProps): import("react/jsx-runtime").JSX.Element; displayName: string; }; Footer: { ({ children, className: _className, ...props }: import('./Card.Footer').CardFooterProps): import("react/jsx-runtime").JSX.Element; displayName: string; Actions: { ({ layout, children, className: _className, ...props }: import('./Card.Footer').CardFooterActionsProps): import("react/jsx-runtime").JSX.Element; displayName: string; }; }; };