Public API barrel file for the documentation viewer feature, re-exporting all components, hooks, context providers, and TypeScript types needed to build and integrate a documentation hub UI.
## Key Components
| Export | Source | Description |
|---|---|---|
| `DocViewer` | `./doc-viewer` | Core document rendering component |
| `DocsHubPage` | `./docs-hub-page` | Full documentation hub page layout |
| `MarkdownSkeleton`, `EmbedSkeleton` | `./skeletons` | Loading skeleton components |
| `useDocumentTree` | `./use-document-tree` | Hook for fetching/managing document tree structure |
| `useScrollSpy` | `./use-scroll-spy` | Hook for tracking scroll position within docs |
| `DocNavigationProvider`, `useDocNavigation` | `./doc-navigation-context` | Context provider and hook for doc navigation state |
### Re-exported Types
Types from `../../types/doc-source` define the API contract for the `/api/docs/sources/[sourceId]/{structure,content}` and `/api/docs/resolve-link` endpoints:
- `DocNode`, `DocContent`, `DocSourceId`, `DocumentType` — doc source data shapes
- `DocRenderHandlers`, `ResolveLinkResult` — renderer and link resolution interfaces
## Usage Example
```typescript
import {
DocsHubPage,
useDocumentTree,
DocNavigationProvider,
type DocumentTypeRenderers,
type DocNode,
} from '@/features/docs'
const renderers: DocumentTypeRenderers = {
markdown: (content) => ,
}
export default function DocsLayout() {
return (
)
}
```
## Notes
- Marked `"use client"` — all exports are React Client Components or client-side hooks.
- Consumers implementing a custom doc source must satisfy the API contract types (`DocNode`, `DocContent`, etc.) exported from this file.
**Source:** [`index.ts`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/index.ts)