# Codex Diff Previewer

## 목적

변경 파일의 전체 소스와 raw diff를 codex 스타일 아코디언으로 함께 보여주는 공통 preview 컴포넌트입니다.

## 공통 설계 원칙

- 샘플(`samples`)을 제외한 컴포넌트에는 API 호출이나 화면 전용 로직을 직접 넣지 않습니다.
- 컴포넌트는 최대한 멍청하게 설계하고, 직관적인 props를 받아 직관적인 UI 동작만 수행합니다.
- 기능 처리와 비즈니스 로직은 `src/features` 또는 해당 화면 전용 패키지 레벨에서 담당합니다.
- 공통 컴포넌트는 여러 곳에서 재사용되므로, 수정 시에는 기존 동작을 바꾸지 않는 범위에서만 보완합니다.

## 폴더 구조

```text
src/components/previewer
├─ CodexDiffBlock.tsx
├─ CodexDiffPreviewer.tsx
├─ CodexDiffPreviewer.css
├─ samples/
│  └─ CodexDiffSample.tsx
└─ index.ts
```

## 주요 props

- `files`
- `diffText`
- `title`
- `description`
- `height`

## 공통 사용처

- 작업일지 `## 소스` 탭
- 일반 문서의 ````diff```` 코드 블록
- previewer 샘플 갤러리

## 샘플

- 대표 샘플: `src/components/previewer/samples/CodexDiffSample.tsx`
