# Delivery UI Checklist

Per-screen requirements for Torbat Driver frontend.

## Global (every screen)

- [x] Loading state (`loading.tsx` + in-page loader)
- [x] Error state (`error.tsx` + `DeliveryPageError`)
- [x] Empty state (`DeliveryEmptyState` / DS `EmptyState`)
- [x] Permission state (`PermissionDeniedState`)
- [x] Responsive layout (mobile drawer + desktop sidebar)
- [x] Breadcrumb (where applicable)
- [x] RTL layout
- [x] Dark mode tokens

## Live CRUD screens

### Organizations `/delivery/organizations`
- [x] List, create, edit, delete
- [x] Search, pagination, CSV export
- [x] Status badges
- [x] Permission check

### Branches `/delivery/branches`
- [x] Organization selector on create
- [x] Full CRUD
- [x] API: hubs

### Drivers `/delivery/drivers`
- [x] Paginated list
- [x] Link to detail
- [x] Create with org/hub
- [x] Edit, delete

### Driver detail `/delivery/drivers/[id]`
- [x] Profile tab
- [x] Lifecycle tab + actions (activate, suspend, …)
- [x] Credentials tab (read)
- [x] Documents tab (read)
- [x] Timeline from lifecycle API

### Integrations
- [x] External providers CRUD
- [x] Routing engines CRUD

### Admin
- [x] Settings upsert
- [x] Audit search
- [x] Permissions catalog
- [x] Health status
- [x] Capabilities grid

## Phase-gated screens (checklist when backend enables)

When `features.<name>` becomes `true` in `/capabilities`:

- [ ] Replace phase gate with real implementation
- [ ] Connect WebSocket for tracking/dispatch
- [ ] Integrate shared map component
- [ ] Add realtime polling fallback

## Dashboard checklist

- [x] Executive: real org/hub/driver counts
- [ ] Dispatcher: dispatch queue metrics (10.5)
- [ ] Live ops: tracking sessions (10.7)
- [ ] Fleet: vehicle counts (10.2)

## Validation loop

```bash
npm run validate:delivery
npm run build
```

Review [delivery-validation-report.md](./delivery-validation-report.md) after each backend phase upgrade.
