"use client"; import Chip from "../../controls/Chip"; import Tag from "../../utility/Tag"; import type { SelectionViewProps } from "./Selection.types"; function InfoIcon() { return ( ? ); } function SelectionTag({ recommended, selected, }: { recommended: boolean; selected: boolean; }) { if (selected) return ; if (recommended) return ; return null; } function optionAriaLabel(label: string, supportText: string): string { return supportText ? `${label}: ${supportText}` : label; } export function SelectionView({ label, supportText, recommended, selected, size, showInfoIcon, id: selectionId, className, onClick, onKeyDown, }: SelectionViewProps) { const ariaLabel = optionAriaLabel(label, supportText); if (size === "s") { return ( onClick()} /> ); } const borderClass = "border border-[var(--color-border-default-primary)]"; const selectedBorder = selected ? "outline outline-4 outline-dashed outline-black outline-offset-[-4px]" : ""; const cardIdProp = selectionId ? { "data-card-id": selectionId } : {}; if (size === "m") { const baseClasses = `select-none rounded-[var(--measures-radius-200,8px)] bg-[var(--color-gray-000)] px-4 py-3 transition-[border-color,box-shadow,outline] duration-200 cursor-pointer ${borderClass} ${selectedBorder} ${className}`; return ( {label} {supportText ? ( {supportText} ) : null} ); } const baseClasses = `select-none rounded-[var(--measures-radius-200,8px)] bg-[var(--color-gray-000)] p-4 transition-[border-color,box-shadow,outline] duration-200 cursor-pointer ${borderClass} ${selectedBorder} ${className}`; return ( {label} {showInfoIcon ? : null} {supportText ? ( {supportText} ) : null} ); }
{supportText}