/** * `` — the marketing-chrome wrapper around {@link LensPDF}. * * `` is the complete viewer. `` is a thin layer * on top of it that adds the upload chrome — URL bar, drag-and-drop, * file picker, and empty state — and feeds the resulting PDF URL into * ``. It powers the public showcase at lenspdf.com so * reviewers can drop arbitrary PDFs into the page without a host. * * **Most consumers should use {@link LensPDF} directly** — it's the * one-liner production drop-in: * * ```tsx * * ``` * * Reach for `` only when you want the built-in upload * affordances (a standalone demo page, an internal scratch tool). * * @public */ import type { ReactNode } from "react"; import { type LensPDFProps, type LensPDFTool } from "./LensPDF"; /** * Tool ids the viewer's sidebar can show. * * @public * @deprecated Use {@link LensPDFTool} — kept as an alias for back-compat. */ export type LensPDFDemoTool = LensPDFTool; /** * Props for {@link LensPDFDemo}. Every {@link LensPDFProps} field is * accepted and forwarded to the wrapped `` except `pdfUrl`, * which `` owns through its upload chrome. * * @public */ export interface LensPDFDemoProps extends Omit { /** Maximum upload size in bytes. Default: 50 MB. */ maxFileSize?: number; /** Pre-loaded PDF URL (e.g. from query params). Skips the empty state. */ initialPdfUrl?: string; /** * When `false`, suppresses the upload chrome header (URL bar + * file picker + brand) so the inner `` top bar is the * only visible chrome — no stacked "iframe"-style double chrome. * * Drag-and-drop on the wrapper still works as a swap path, so * users can replace the loaded PDF without the header UI. The * empty-state file picker still renders (only the upload header * is hidden, not the empty state). * * Default: `true`. */ showUploadHeader?: boolean; /** * Optional content rendered in the empty state directly **under the * "Choose a file" button** — e.g. a render-mode toggle the user sets * before uploading. Distinct from `footer` (which sits at the bottom of * the viewer chrome); when `uploadFooter` is set it replaces `footer` in * the empty-state bottom bar so the same control isn't shown twice. */ uploadFooter?: ReactNode; } /** * Marketing-chrome wrapper: upload, URL paste, drag-drop, validation, * then mounts {@link LensPDF} with the resolved PDF URL. * * @public */ export declare function LensPDFDemo({ maxFileSize, initialPdfUrl, showUploadHeader, className, uploadFooter, ...lensProps }: LensPDFDemoProps): import("react").JSX.Element; //# sourceMappingURL=LensPDFDemo.d.ts.map