{ "$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." } ] }