Presentational inline-chat card for Data Room and OpenFrame-docs document references. Renders `[card://data_room_doc:]` and `[card://markdown:]` markers with a shared UI surface — only the `baseRoute` differs between document sources. ## Key Components ### `DataRoomDocCard` Primary card component. Conditionally renders as an interactive `` element (when `anchorProps` is provided) or a static `` (non-interactive fallback). Displays document title, source badge, optional file path, and a two-line preview excerpt. ### `DataRoomDocCardSkeleton` Loading state placeholder that mirrors the card's layout with shimmer-style placeholder spans for title, badge, path, and preview lines. ### Types | Export | Description | |---|---| | `DataRoomDocCardProps` | Card props: `item`, `badgeText` (required), optional `anchorProps` and `className` | | `DataRoomDocCardAnchorProps` | Subset of `` props: `href`, `target`, `rel`, `onClick` | ## Usage Example ```typescript import { DataRoomDocCard, DataRoomDocCardSkeleton } from './data-room-doc-card' // Interactive card — consumer resolves routing and badge label trackCardClick(e), }} /> // Static (no link available) // Loading state ``` > **Design note:** `badgeText` is required (no default) to prevent silent mislabeling — a card from `openframe-docs` silently falling back to `"Data Room"` would falsely imply internal/private provenance to end-users. The consumer must explicitly resolve and pass the correct label.