{
"$schema": "https://ui.shadcn.com/schema/registry.json",
"name": "abdelhamidaitayoub",
"homepage": "https://abdelhamidaitayoub.com",
"items": [
{
"name": "pdf-viewer",
"type": "registry:block",
"title": "PDF Viewer",
"description": "A composable, accessible PDF viewer built on EmbedPDF headless. Includes toolbar controls (zoom, rotate, pan), thumbnail sidebar, and text selection. Follows components.build patterns.",
"author": "Abdelhamid Ait Ayoub",
"categories": ["media", "document"],
"registryDependencies": [
"button",
"toggle",
"separator",
"tooltip",
"skeleton",
"dropdown-menu"
],
"dependencies": [
"@embedpdf/core",
"@embedpdf/engines",
"@embedpdf/plugin-document-manager",
"@embedpdf/plugin-viewport",
"@embedpdf/plugin-scroll",
"@embedpdf/plugin-render",
"@embedpdf/plugin-zoom",
"@embedpdf/plugin-interaction-manager",
"@embedpdf/plugin-rotate",
"@embedpdf/plugin-pan",
"@embedpdf/plugin-thumbnail",
"@embedpdf/plugin-selection",
"@embedpdf/plugin-export",
"@embedpdf/plugin-print"
],
"files": [
{ "path": "registry/new-york/pdf-viewer/index.ts", "type": "registry:component" },
{ "path": "registry/new-york/pdf-viewer/context.tsx", "type": "registry:component" },
{ "path": "registry/new-york/pdf-viewer/root.tsx", "type": "registry:component" },
{ "path": "registry/new-york/pdf-viewer/toolbar.tsx", "type": "registry:component" },
{ "path": "registry/new-york/pdf-viewer/content.tsx", "type": "registry:component" },
{ "path": "registry/new-york/pdf-viewer/pages.tsx", "type": "registry:component" },
{ "path": "registry/new-york/pdf-viewer/sidebar.tsx", "type": "registry:component" },
{ "path": "registry/new-york/pdf-viewer/sidebar-toggle.tsx", "type": "registry:component" },
{ "path": "registry/new-york/pdf-viewer/thumbnails.tsx", "type": "registry:component" },
{ "path": "registry/new-york/pdf-viewer/zoom-controls.tsx", "type": "registry:component" },
{ "path": "registry/new-york/pdf-viewer/rotate-controls.tsx", "type": "registry:component" },
{ "path": "registry/new-york/pdf-viewer/pan-toggle.tsx", "type": "registry:component" },
{ "path": "registry/new-york/pdf-viewer/download-button.tsx", "type": "registry:component" },
{ "path": "registry/new-york/pdf-viewer/print-button.tsx", "type": "registry:component" },
{ "path": "registry/new-york/pdf-viewer/selection-menu.tsx", "type": "registry:component" },
{ "path": "registry/new-york/pdf-viewer/copy-selection.tsx", "type": "registry:component" },
{ "path": "registry/new-york/pdf-viewer/pagination.tsx", "type": "registry:component" }
],
"docs": "Usage:\n```tsx\nimport * as PDFViewer from \"@/components/ui/pdf-viewer\"\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n```\n\nThe sidebar can be controlled externally:\n```tsx\nconst [open, setOpen] = React.useState(true)\n\n\n ...\n\n```\n\nKeyboard shortcut: `Ctrl/Cmd + B` toggles the sidebar."
}
]
}