Shared layout component for `DevSectionPage` list rows, providing a consistent two-column structure (title/subtitle/description left, badges right) with matching skeleton states to prevent layout shift during loading. ## Key Components | Export | Type | Description | |---|---|---| | `DevCardRowContent` | Component | Main row layout with fixed min-height blocks for title, subtitle, and description columns | | `DevCardRowContentProps` | Interface | Props contract for `DevCardRowContent` | | `DevCardRowSkeleton` | Component | Single animated skeleton row mirroring `DevCardRowContent` min-heights | | `DevCardRowSkeletonList` | Component | Bordered card wrapping `n` skeleton rows (default: 5); used by delivery and tickets list shells | ## Usage Example ```typescript // Static row (e.g. delivery surface)
} />
// Clickable row (e.g. tickets surface) // Loading state — swap in before data arrives ``` ## Notes - `rightBadges` accepts any `ReactNode` — the caller controls badge count and type; no badge logic is embedded here. - Ticket conversation rows are intentionally excluded; they use the shared `` component (`components/chat/chat-message-row.tsx`). - Skeleton min-heights mirror content min-heights exactly to prevent reflow on data load. **Source:** [`dev-card-row.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/dev-card-row.tsx)