<!-- source-hash: ddd9ad67dd51d76015bd6c722cee21e2 -->
Storybook stories for the `TicketAttachmentsList` component, covering view-only file attachment list rendering across multiple attachment states.

## Key Components

- **`Default`** — Three mixed-format attachments (PNG, SVG, MP4) with download handlers
- **`SingleFile`** — Minimal single PDF attachment scenario
- **`NoDownload`** — Read-only attachment without a download action callback
- **`Empty`** — Zero-attachment edge case rendering

## Usage Example

```typescript
import { TicketAttachmentsList } from '../components/ui/ticket-attachments-list';

// Basic usage with download handlers
<TicketAttachmentsList
  attachments={[
    { id: '1', fileName: 'report.pdf', fileSize: '2.3 MB', onDownload: () => handleDownload('1') },
    { id: '2', fileName: 'screenshot.png', fileSize: '512 KB', onDownload: () => handleDownload('2') },
  ]}
/>

// Read-only, no download action
<TicketAttachmentsList
  attachments={[
    { id: '1', fileName: 'readonly-file.txt', fileSize: '128 KB' },
  ]}
/>
```

## Attachment Item Shape

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `id` | `string` | ✅ | Unique attachment identifier |
| `fileName` | `string` | ✅ | Displayed file name with extension |
| `fileSize` | `string` | ✅ | Human-readable size label |
| `onDownload` | `() => void` | ❌ | Download action; omit for read-only |