Public API barrel for the rich-markdown embed component library, re-exporting all embed components, their prop types, container primitives, and the shared runtime context from their respective modules.
## Key Components
| Export | Description |
|---|---|
| `EmbedIframe` | Generic iframe wrapper for arbitrary URL embeds |
| `PdfViewer` | In-browser PDF rendering component |
| `GoogleSheetsViewer` | Embedded Google Sheets viewer |
| `FigmaEmbed` | Figma design file embed |
| `OGLinkPreview` / `OGLinkErrorBoundary` | Open Graph link preview card with error boundary |
| `FileDownloadCard` | Downloadable file attachment card |
| `RedditEmbedClient` | Reddit post/thread embed (satellite) |
| `TwitterEmbedClient` | Twitter/X post embed (satellite) |
| `LinkedInEmbedClient` | LinkedIn post embed (satellite) |
| `MarkdownImage` | Image component used within markdown rendering |
| `EmbedContainer` / `*Container` | Layout wrappers (`YouTubeContainer`, `TwitterContainer`, etc.) with `EMBED_SIZES` presets |
| `RichMarkdownRuntimeProvider` / `useRichMarkdownRuntime` | React context provider sharing proxy endpoints and image transformer config across all embed components |
## Usage Example
```typescript
// Full renderer usage — wrap once at the app boundary
import {
RichMarkdownRuntimeProvider,
RedditEmbedClient,
OGLinkPreview,
EMBED_SIZES,
} from '@openframe/embed-components'
function App() {
return (
`/cdn?url=${encodeURIComponent(url)}`}
>
)
}
// Composing a satellite embed outside the markdown renderer
function ReleasePage() {
return (
)
}
```
> **Satellite embeds** (`Reddit`, `Twitter`, `LinkedIn`) are also wired into `` internally. When mounting them standalone, wrap with `RichMarkdownRuntimeProvider` only if you need to override proxy or image transformer defaults.
## Source
[`index.ts`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/index.ts)