Maps product release types to their corresponding `StatusBadge` color schemes for use in `ProductReleaseCard` (lg variant) metadata rendering. ## Key Components ### Types - **`ReleaseType`** — Union type: `'major' | 'minor' | 'patch' | 'beta' | 'alpha'` - **`ReleaseTypeBadgeColor`** — Union type: `'error' | 'cyan' | 'success' | 'warning'` ### Functions - **`releaseTypeToBadgeColor(t)`** — Converts a release type string to its badge color. Accepts `ReleaseType | string | null | undefined` to handle legacy API values gracefully. Returns `undefined` for unknown inputs (badge hidden, no crash). ### Color Mapping | Release Type | Color | Semantic | |---|---|---| | `major` | `error` (red) | Breaking change | | `minor` | `cyan` | New feature | | `patch` | `success` (green) | Safe bump | | `beta` / `alpha` | `warning` (yellow) | Preview | ## Usage Example ```typescript import { releaseTypeToBadgeColor } from './release-badge' // Standard usage in ProductReleaseCard const badgeColor = releaseTypeToBadgeColor(release.release_type) // badgeColor is passed alongside releaseType — both are required for the // card to render a colored badge; undefined falls back to '—' placeholder // Handles unknown/legacy values safely releaseTypeToBadgeColor('rc') // → undefined (badge hidden) releaseTypeToBadgeColor(null) // → undefined (badge hidden) releaseTypeToBadgeColor('patch') // → 'success' releaseTypeToBadgeColor('major') // → 'error' ``` > **Note:** The color vocabulary here is specific to `StatusBadge` / `ProductReleaseCard`. The admin form's `releaseTypeOptions.color` array uses a separate vocabulary — these two mappings are intentionally kept distinct.