Renders a bordered card containing one `DeliveryRow` per delivery item, with skeleton loading states, empty states, and deep-link anchor support via URL `?focus=` params. ## Key Components - **`DeliveryTable`** *(exported)* — Main component accepting a list of `DeliveryItem` objects. Handles three render states: skeleton loading, empty, and populated. Each row receives a DOM `id` built via `devSectionAnchorId('delivery', item.id)` (e.g. `#delivery-`) to support scroll-to-hash deep-linking from ticket linked-cards. - **`SkeletonRow`** *(internal)* — Animated pulse placeholder matching the responsive layout of a real row (title, subtitle, description, and two badge slots). - **`DeliveryItem`** — Type imported from `../../../types/delivery`; the flat item shape consumed by this table and its sibling `DeliveryRow`. ## Props | Prop | Type | Default | Description | |---|---|---|---| | `items` | `DeliveryItem[]` | required | Flat list of delivery items to render | | `isLoading` | `boolean` | `false` | Renders 5 skeleton rows when `true` | > **Note:** `focusId` (the `?focus=` URL param) is resolved by the parent `DeliveryLists` component; this table only applies the anchor id to each row via `devSectionAnchorId`. ## Usage Example ```typescript import { DeliveryTable } from './delivery-table'; import type { DeliveryItem } from '../../../types/delivery'; const inProgressItems: DeliveryItem[] = [...]; // Loading state // Populated — parent renders two separate tables per bucket // Empty state (renders "No tasks available" message) ``` ## Source [`delivery-table.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/delivery-table.tsx)