<!-- source-hash: f614dd9faeadf368597d094822bcd3c7 -->
Displays a badge combining an icon and label for a given shell/script type, supporting all Tactical RMM shell types (PowerShell, CMD, Bash, Python, Nushell, Deno, Shell).

## Key Components

- **`shellIconMap`** — A typed `Record<ShellType, ShellIconConfig>` mapping every shell type to its corresponding icon component and display props, ensuring exhaustive coverage at compile time.
- **`defaultIconConfig`** — Fallback icon config (`ShellIcon`) used when an unrecognized shell type is passed.
- **`ShellTypeBadgeProps`** — Props interface accepting `shellType`, optional `className` for the wrapper, and optional `iconClassName` for icon styling overrides.
- **`ShellTypeBadge`** — Main React component that normalizes the shell type to uppercase, resolves the label via `getShellLabel`, and renders the icon + label in a flex row.

## Usage Example

```typescript
import { ShellTypeBadge } from './components/ShellTypeBadge'
import { ShellTypeValues } from './types/shell.types'

// Basic usage
<ShellTypeBadge shellType={ShellTypeValues.POWERSHELL} />

// With custom wrapper and icon class overrides
<ShellTypeBadge
  shellType={ShellTypeValues.PYTHON}
  className="bg-ods-surface-secondary px-2 py-1 rounded"
  iconClassName="opacity-75"
/>

// Dynamic shell type from API data
<ShellTypeBadge shellType={script.shell_type} />
```

## Notes

- Shell type input is normalized to uppercase before lookup, making the component tolerant of mixed-case values from API responses.
- Icon props support either a `className` (for CSS-driven theming) or a `color` string — the component automatically forwards whichever is applicable.
- Falls back to `ShellIcon` for any unknown or undefined shell type rather than throwing.