import { ReactNode, CSSProperties } from 'react'; /** * Selection mode for the RiskItemCard * - 'single': Radio button selection (one item at a time) * - 'multi': Checkbox selection (multiple items) */ export type RiskItemCardSelectionMode = 'single' | 'multi'; /** * Icon configuration for the RiskItemCard */ export interface RiskItemCardIcon { /** * Icon content - can be text (e.g., "PDF"), emoji, or ReactNode */ content: ReactNode; /** * Background color for the icon container */ bgColor?: string; /** * Foreground/text color for the icon */ fgColor?: string; } /** * Props for the RiskItemCard component */ export interface RiskItemCardProps { /** * Whether the item is currently selected */ selected?: boolean; /** * Whether the item has an error state */ error?: boolean; /** * Whether the item is disabled */ disabled?: boolean; /** * Icon configuration with content, background and foreground colors */ icon?: RiskItemCardIcon; /** * Main title text (e.g., filename, page title) */ title: string; /** * Subtitle text (e.g., file size, URL) * Can be a string or a ReactNode for custom formatting */ subtitle?: ReactNode; /** * Optional badge or tag content (e.g., file size badge, status chip) * When passing a Chip component, it will automatically use the tn font size */ badge?: ReactNode; /** * Error message to display instead of subtitle */ errorMessage?: string; /** * Callback when remove button is clicked (shows remove button if provided) */ onRemove?: () => void; /** * Callback when the card is clicked for selection */ onClick?: () => void; /** * Selection mode: 'single' for radio, 'multi' for checkbox * @default 'single' */ selectionMode?: RiskItemCardSelectionMode; /** * Whether to show the selection control (radio/checkbox) * @default true */ showSelectionControl?: boolean; /** * Radio group name (for single selection mode) */ name?: string; /** * Value for the selection control */ value?: string | number; /** * Custom accent color for selection highlighting * Defaults to theme.colors.highlight */ accentColor?: string; /** * Additional CSS class name */ className?: string; /** * Inline styles applied to the container */ style?: CSSProperties; /** * data-testid attribute for testing purposes */ dataTestId?: string; /** * aria-label for the card */ ariaLabel?: string; } //# sourceMappingURL=RiskItemCard.types.d.ts.map