Scroll: Navigate slices
Drag: Adjust contrast
Right-click: Pan
)
}
```
### Verify
```bash
npm test -- NiiVueViewer
# Expected: 6 tests passing
```
---
## Update Component Index
Update `src/components/index.ts`:
```typescript
export { Layout } from './Layout'
export { MetricsPanel } from './MetricsPanel'
export { CaseSelector } from './CaseSelector'
export { NiiVueViewer } from './NiiVueViewer'
```
---
## Visual Verification
Update `src/App.tsx` to preview all components:
```typescript
import { useState } from 'react'
import { Layout } from './components/Layout'
import { CaseSelector } from './components/CaseSelector'
import { MetricsPanel } from './components/MetricsPanel'
import { NiiVueViewer } from './components/NiiVueViewer'
const mockMetrics = {
caseId: 'sub-stroke0001',
diceScore: 0.847,
volumeMl: 15.32,
elapsedSeconds: 12.5,
}
// Demo NIfTI file from NiiVue examples
const DEMO_NIFTI = 'https://niivue.github.io/niivue-demo-images/mni152.nii.gz'
function App() {
const [selectedCase, setSelectedCase] = useState