<!-- source-hash: a856dcd91dfe86722b63f8f7f40c9eea -->
Renders the delivery section body with two filterable data tables — "Recently Completed" and "Active Tasks" — fetched from configurable API endpoints and driven by URL search parameters.

## Key Components

### `DeliveryLists` (default export)
Main component that orchestrates dual parallel fetches and renders both `DeliveryTable` instances.

### `DeliveryListsProps`
| Prop | Type | Default | Description |
|------|------|---------|-------------|
| `completedApiEndpoint` | `string` | `/api/delivery/completed` | GET endpoint for completed tasks |
| `inProgressApiEndpoint` | `string` | `/api/delivery/in-progress` | GET endpoint for active tasks |
| `searchParamKey` | `string` | `'search'` | URL + API query param key for search input |
| `taskTypeParamKey` | `string` | `'task_type'` | URL + API query param key for task-type filter |

> **Coupling constraint:** `searchParamKey` and `taskTypeParamKey` must match the consuming chrome's `section.search.paramKey` / `section.filter.paramKey`. These keys are used for both URL reads and outbound API query params — override both ends consistently.

## Usage Example

```typescript
// Zero-config (OpenFrame defaults)
<DeliveryLists />

// Custom endpoints with matching chrome param keys
<DeliveryLists
  completedApiEndpoint="/api/v2/tasks/done"
  inProgressApiEndpoint="/api/v2/tasks/active"
  searchParamKey="q"
  taskTypeParamKey="type"
/>
```

## Behavior

- **Parallel fetches** via `Promise.all` on both endpoints, re-triggered when URL params or endpoint props change
- **Empty states**: shows a "Reset Filters" CTA when active filters return no results; shows a generic message when no tasks exist
- **Error state**: renders `<LoadError>` with a page-reload retry on fetch failure
- **Loading**: passes `isLoading` to each `<DeliveryTable>` for skeleton rendering