<!-- source-hash: 9fe959702866abb3d54c107fab70e0a4 -->
Renders a styled list of file attachments for a support ticket, displaying thumbnail or file icon, name, size, and an optional download button per item.

## Key Components

- **`TicketAttachment`** — Interface describing a single attachment: `id`, `fileName`, `fileSize`, optional `thumbnailSrc`, and optional `onDownload` callback
- **`TicketAttachmentsListProps`** — Props interface accepting an `attachments` array and optional `className`
- **`TicketAttachmentsList`** — Main component that maps over attachments, rendering each row with a `SquareAvatar` (if thumbnail exists) or a fallback `FileIcon`, truncated filename, file size, and a download button

## Usage Example

```typescript
import { TicketAttachmentsList, TicketAttachment } from "./ticket-attachments-list"

const attachments: TicketAttachment[] = [
  {
    id: "1",
    fileName: "screenshot.png",
    fileSize: "1.2 MB",
    thumbnailSrc: "https://cdn.example.com/thumb.png",
    onDownload: () => console.log("Downloading screenshot.png"),
  },
  {
    id: "2",
    fileName: "error-log.txt",
    fileSize: "48 KB",
    onDownload: () => console.log("Downloading error-log.txt"),
  },
]

export default function TicketDetail() {
  return (
    <TicketAttachmentsList
      attachments={attachments}
      className="mt-4"
    />
  )
}
```

## Notes

- Returns `null` when the `attachments` array is empty — safe to render unconditionally
- Long filenames are truncated with CSS and exposed via the `title` attribute for full visibility on hover
- Download button only renders when `onDownload` is provided