@doc-preview/react 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Rajkishor Sahu
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,121 @@
1
+ # @doc-preview/react
2
+
3
+ React component for multi-format document preview, built on [`@doc-preview/core`](https://www.npmjs.com/package/@doc-preview/core). Same viewer as Angular and vanilla JS — PDF, DOCX, images, optional Office pack, and Enterprise annotations, watermark, split view, print, search, redaction, and diff.
4
+
5
+ **Current release: 1.0.0** — Depends on `@doc-preview/core` **^1.0.0**. See [monorepo CHANGELOG](../../CHANGELOG.md).
6
+
7
+ **Repository & docs:** [github.com/rajkishorsahu89/doc-preview](https://github.com/rajkishorsahu89/doc-preview)
8
+
9
+ **Demo:** [doc-preview-app.vercel.app](https://doc-preview-app.vercel.app/) — [tool](https://doc-preview-app.vercel.app/tool) · [demo](https://doc-preview-app.vercel.app/demo) · [guide](https://doc-preview-app.vercel.app/guide)
10
+
11
+ > Ships as ESM with TypeScript declarations. Works with **React 18** and **19**. Import [`@doc-preview/themes`](https://www.npmjs.com/package/@doc-preview/themes) CSS once in your app.
12
+
13
+ **Keywords:** `doc-preview` `react` `document-viewer` `pdf` `docx` `file-preview` `annotations`
14
+
15
+ ## Install
16
+
17
+ ```bash
18
+ npm install @doc-preview/react @doc-preview/themes
19
+ # Adds @doc-preview/core automatically.
20
+ # Peer deps: react ^18 || ^19, react-dom ^18 || ^19.
21
+ # Optional:
22
+ npm install @doc-preview/enterprise @doc-preview/office
23
+ ```
24
+
25
+ ## Usage — component
26
+
27
+ ```tsx
28
+ import { DocPreview } from "@doc-preview/react";
29
+ import "@doc-preview/themes/doc-preview.css";
30
+
31
+ export function Viewer() {
32
+ return (
33
+ <DocPreview
34
+ documents={[{ uri: "/sample.pdf", fileName: "sample.pdf" }]}
35
+ onPhaseChange={(e) => console.log(e.phase)}
36
+ />
37
+ );
38
+ }
39
+ ```
40
+
41
+ ## Usage — upload & Blob
42
+
43
+ ```tsx
44
+ import { DocPreview } from "@doc-preview/react";
45
+ import { createPreviewDocumentsFromFiles } from "@doc-preview/core";
46
+
47
+ <DocPreview
48
+ documents={docs}
49
+ config={{ upload: { enabled: true, accept: ".pdf,.png,.docx" } }}
50
+ onFilesSelected={(files) => setDocs(createPreviewDocumentsFromFiles(files))}
51
+ />
52
+ ```
53
+
54
+ ## Usage — Enterprise
55
+
56
+ ```tsx
57
+ <DocPreview
58
+ documents={docs}
59
+ enterpriseLicenseKey="DP-ENT-DEMO-0001-ANNOTATIONS-SPLIT"
60
+ config={{
61
+ enterprise: {
62
+ watermarkText: "CONFIDENTIAL",
63
+ enableAnnotations: true,
64
+ enablePrint: true,
65
+ splitView: true
66
+ }
67
+ }}
68
+ onEnterpriseStatusChange={(licensed) => console.log(licensed)}
69
+ />
70
+ ```
71
+
72
+ ## Usage — Office pack
73
+
74
+ ```ts
75
+ import { registerBuiltinPreviewRenderers } from "@doc-preview/core";
76
+ import { registerOfficePreviewRenderers } from "@doc-preview/office";
77
+
78
+ registerBuiltinPreviewRenderers();
79
+ registerOfficePreviewRenderers();
80
+ ```
81
+
82
+ ## API — `DocPreview` props
83
+
84
+ Extends `PreviewHostOptions` from core plus:
85
+
86
+ | Prop | Type | Description |
87
+ | --- | --- | --- |
88
+ | `documents` | `PreviewDocument[]` | **Required.** |
89
+ | `config` | `PreviewConfig` | Upload, PDF, enterprise, office options. |
90
+ | `enterpriseLicenseKey` | `string` | Enterprise licence key. |
91
+ | `dark` | `boolean` | Dark theme. |
92
+ | `theme` | `PreviewThemeTokens` | CSS token overrides. |
93
+ | `slots` | `PreviewSlots` | Header slot overrides. |
94
+ | `className` / `style` | — | Host wrapper styling. |
95
+ | `onPhaseChange` | `(event) => void` | Loading / error phases. |
96
+ | `onDocumentChange` | `(doc, index) => void` | Active document changed. |
97
+ | `onFilesSelected` | `(files) => void` | Built-in upload picker. |
98
+ | `onEnterpriseStatusChange` | `(licensed) => void` | Licence status. |
99
+
100
+ Re-exports all public symbols from `@doc-preview/core`.
101
+
102
+ ## React vs Angular naming
103
+
104
+ | React | Angular |
105
+ | --- | --- |
106
+ | `<DocPreview />` | `<doc-preview>` |
107
+ | `onPhaseChange` | `(phaseChange)` |
108
+ | `onFilesSelected` | `(filesSelected)` |
109
+
110
+ ## Related packages
111
+
112
+ - [`@doc-preview/core`](https://www.npmjs.com/package/@doc-preview/core)
113
+ - [`@doc-preview/angular`](https://www.npmjs.com/package/@doc-preview/angular)
114
+ - [`@doc-preview/js`](https://www.npmjs.com/package/@doc-preview/js)
115
+ - [`@doc-preview/themes`](https://www.npmjs.com/package/@doc-preview/themes)
116
+ - [`@doc-preview/enterprise`](https://www.npmjs.com/package/@doc-preview/enterprise)
117
+ - [`@doc-preview/office`](https://www.npmjs.com/package/@doc-preview/office)
118
+
119
+ ## License
120
+
121
+ [MIT](./LICENSE)
@@ -0,0 +1,3 @@
1
+ import { type ReactElement } from "react";
2
+ export declare function DemoReactApp(): ReactElement;
3
+ //# sourceMappingURL=DemoReactApp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DemoReactApp.d.ts","sourceRoot":"","sources":["../src/DemoReactApp.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AAwK7D,wBAAgB,YAAY,IAAI,YAAY,CA6c3C"}
@@ -0,0 +1,290 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { useMemo, useState } from "react";
3
+ import { DocPreview } from "@doc-preview/react";
4
+ import { createPreviewDocumentFromBase64, createPreviewDocumentFromBlob, createPreviewDocumentsFromFiles } from "@doc-preview/core";
5
+ const DEMO_KEY = "DP-ENT-DEMO-0001-ANNOTATIONS-SPLIT";
6
+ const COMMUNITY_SAMPLE_CATEGORIES = [
7
+ {
8
+ id: "text",
9
+ label: "Text & data",
10
+ samples: [
11
+ {
12
+ uri: "/assets/samples/readme.txt",
13
+ fileName: "readme.txt",
14
+ ext: "TXT",
15
+ hint: "Plain text — no licence required",
16
+ tier: "community"
17
+ },
18
+ {
19
+ uri: "/assets/samples/data.csv",
20
+ fileName: "data.csv",
21
+ ext: "CSV",
22
+ hint: "Tabular spreadsheet preview",
23
+ tier: "community"
24
+ }
25
+ ]
26
+ },
27
+ {
28
+ id: "markup",
29
+ label: "Markup",
30
+ samples: [
31
+ {
32
+ uri: "/assets/samples/page.html",
33
+ fileName: "page.html",
34
+ ext: "HTML",
35
+ hint: "Styled HTML page",
36
+ tier: "community"
37
+ }
38
+ ]
39
+ },
40
+ {
41
+ id: "office",
42
+ label: "Office",
43
+ samples: [
44
+ {
45
+ uri: "/assets/samples/sample.docx",
46
+ fileName: "sample.docx",
47
+ ext: "DOCX",
48
+ hint: "DOCX preview with in-document search",
49
+ tier: "community"
50
+ },
51
+ {
52
+ uri: "/assets/samples/sample.doc",
53
+ fileName: "sample.doc",
54
+ ext: "DOC",
55
+ hint: "Legacy Word .doc (RTF/OLE text)",
56
+ tier: "community"
57
+ },
58
+ {
59
+ uri: "/assets/samples/legacy.convertme",
60
+ fileName: "legacy.convertme",
61
+ ext: "CONV",
62
+ hint: "Mock server conversion → HTML preview",
63
+ tier: "community"
64
+ }
65
+ ]
66
+ }
67
+ ];
68
+ const ENTERPRISE_SAMPLE_CATEGORIES = [
69
+ {
70
+ id: "pdf",
71
+ label: "PDF (Enterprise)",
72
+ samples: [
73
+ {
74
+ uri: "/assets/samples/sample.pdf",
75
+ fileName: "sample.pdf",
76
+ ext: "PDF",
77
+ hint: "Annotations, search, redaction, print, watermark",
78
+ tier: "enterprise"
79
+ }
80
+ ]
81
+ }
82
+ ];
83
+ async function mockDemoConversion(input) {
84
+ if (!input.fileName.toLowerCase().endsWith(".convertme")) {
85
+ return null;
86
+ }
87
+ const text = await input.blob.text();
88
+ const html = `<!DOCTYPE html><html><body style="font-family:Segoe UI,sans-serif;padding:1.5rem"><h1>Converted preview</h1><p><strong>${input.fileName}</strong> was converted via <code>config.conversion.convert</code>.</p><pre>${text.replace(/</g, "&lt;")}</pre></body></html>`;
89
+ return new Blob([html], { type: "text/html" });
90
+ }
91
+ const FLAT_COMMUNITY_SAMPLES = COMMUNITY_SAMPLE_CATEGORIES.flatMap((c) => [...c.samples]);
92
+ const FLAT_SAMPLES = [
93
+ ...FLAT_COMMUNITY_SAMPLES,
94
+ ...ENTERPRISE_SAMPLE_CATEGORIES.flatMap((c) => [...c.samples])
95
+ ];
96
+ const ENTERPRISE_FEATURES = [
97
+ "Annotations",
98
+ "Print",
99
+ "Watermark",
100
+ "Compare doc",
101
+ "Search",
102
+ "Redaction"
103
+ ];
104
+ const COMMUNITY_CONFIG = {
105
+ upload: {
106
+ accept: ".pdf,.doc,.docx,.xlsx,.xls,.ppt,.pptx,.png,.jpg,.jpeg,.gif,.webp,.mp4,.webm,.mp3,.wav,.txt,.html,.htm,.csv,.json,.xml,.md",
107
+ multiple: true,
108
+ showDropZone: true,
109
+ autoOpenPicker: false,
110
+ buttonText: "Choose file"
111
+ }
112
+ };
113
+ const ENTERPRISE_CONFIG = {
114
+ ...COMMUNITY_CONFIG,
115
+ enterprise: {
116
+ watermarkText: "CONFIDENTIAL",
117
+ enableAnnotations: true,
118
+ enablePrint: true,
119
+ enableSearch: true,
120
+ enableRedaction: true,
121
+ diffView: true
122
+ },
123
+ pdf: {
124
+ showControls: true,
125
+ showThumbnails: true,
126
+ fitPageOnLoad: true,
127
+ enableSearch: true,
128
+ enableRedaction: true,
129
+ annotations: {
130
+ storageKey: "doc-preview-demo-react",
131
+ documentId: "react-demo-pdf"
132
+ }
133
+ }
134
+ };
135
+ const SOURCE_MODES = [
136
+ { id: "upload", label: "Upload", icon: "↑" },
137
+ { id: "url", label: "URL", icon: "🔗" },
138
+ { id: "blob", label: "Blob", icon: "📄" },
139
+ { id: "base64", label: "Base64", icon: "⌗" }
140
+ ];
141
+ export function DemoReactApp() {
142
+ const [sourceMode, setSourceMode] = useState("url");
143
+ const [documents, setDocuments] = useState([FLAT_COMMUNITY_SAMPLES[0]]);
144
+ const [licenseKeyInput, setLicenseKeyInput] = useState("");
145
+ const [activeLicenseKey, setActiveLicenseKey] = useState("");
146
+ const isEnterpriseLicensed = activeLicenseKey.trim().length > 0;
147
+ const [pdfPassword, setPdfPassword] = useState("");
148
+ const [watermarkText, setWatermarkText] = useState("CONFIDENTIAL");
149
+ const [mockConversion, setMockConversion] = useState(true);
150
+ const [sidebarOpen, setSidebarOpen] = useState(true);
151
+ const [phase, setPhase] = useState("idle");
152
+ const [urlInput, setUrlInput] = useState("/assets/samples/readme.txt");
153
+ const [urlFileName, setUrlFileName] = useState("readme.txt");
154
+ const [base64Input, setBase64Input] = useState("aGVsbG8=");
155
+ const [base64Mime, setBase64Mime] = useState("text/plain");
156
+ const [base64FileName, setBase64FileName] = useState("hello.txt");
157
+ const viewerConfig = useMemo(() => {
158
+ const base = isEnterpriseLicensed ? ENTERPRISE_CONFIG : COMMUNITY_CONFIG;
159
+ const pwd = pdfPassword.trim();
160
+ const wm = watermarkText.trim();
161
+ const config = isEnterpriseLicensed
162
+ ? {
163
+ ...base,
164
+ ...(mockConversion ? { conversion: { convert: mockDemoConversion } } : {}),
165
+ enterprise: {
166
+ ...ENTERPRISE_CONFIG.enterprise,
167
+ watermarkText: wm || undefined
168
+ },
169
+ pdf: {
170
+ ...ENTERPRISE_CONFIG.pdf,
171
+ password: pwd || undefined
172
+ }
173
+ }
174
+ : {
175
+ ...base,
176
+ ...(mockConversion ? { conversion: { convert: mockDemoConversion } } : {})
177
+ };
178
+ return {
179
+ ...config,
180
+ upload: {
181
+ ...config.upload,
182
+ enabled: sourceMode === "upload"
183
+ }
184
+ };
185
+ }, [isEnterpriseLicensed, pdfPassword, watermarkText, mockConversion, sourceMode]);
186
+ function applyLicenseKey() {
187
+ setActiveLicenseKey(licenseKeyInput.trim());
188
+ }
189
+ function clearLicenseKey() {
190
+ setLicenseKeyInput("");
191
+ setActiveLicenseKey("");
192
+ }
193
+ function fillDemoLicenseKey() {
194
+ setLicenseKeyInput(DEMO_KEY);
195
+ setActiveLicenseKey(DEMO_KEY);
196
+ }
197
+ const activeDocLabel = documents.length === 0
198
+ ? "No document selected"
199
+ : (documents[0].fileName ?? documents[0].uri ?? "Document");
200
+ const phaseClass = phase === "ready"
201
+ ? "demo-phase-pill demo-phase-pill--ready"
202
+ : phase === "error"
203
+ ? "demo-phase-pill demo-phase-pill--error"
204
+ : phase === "loading"
205
+ ? "demo-phase-pill demo-phase-pill--loading"
206
+ : "demo-phase-pill";
207
+ function loadSample(sample) {
208
+ setDocuments([{ uri: sample.uri, fileName: sample.fileName }]);
209
+ setUrlInput(sample.uri);
210
+ setUrlFileName(sample.fileName);
211
+ setSourceMode("url");
212
+ }
213
+ function applyUrl() {
214
+ const uri = urlInput.trim();
215
+ if (!uri) {
216
+ return;
217
+ }
218
+ const name = urlFileName.trim();
219
+ setDocuments([{ uri, ...(name ? { fileName: name } : {}) }]);
220
+ }
221
+ function applyBase64() {
222
+ const base64 = base64Input.trim();
223
+ if (!base64) {
224
+ return;
225
+ }
226
+ try {
227
+ setDocuments([
228
+ createPreviewDocumentFromBase64({
229
+ base64,
230
+ fileName: base64FileName || "document",
231
+ mimeType: base64Mime || undefined
232
+ })
233
+ ]);
234
+ }
235
+ catch (err) {
236
+ console.error(err);
237
+ }
238
+ }
239
+ function clearDocument() {
240
+ if (sourceMode === "upload") {
241
+ setDocuments([]);
242
+ }
243
+ else {
244
+ setDocuments([FLAT_COMMUNITY_SAMPLES[0]]);
245
+ setUrlInput(FLAT_COMMUNITY_SAMPLES[0].uri);
246
+ setUrlFileName(FLAT_COMMUNITY_SAMPLES[0].fileName);
247
+ }
248
+ setPhase("idle");
249
+ }
250
+ function onPhase(e) {
251
+ setPhase(e.phase);
252
+ }
253
+ function isActiveSample(sample) {
254
+ const doc = documents[0];
255
+ if (!doc) {
256
+ return false;
257
+ }
258
+ return doc.uri === sample.uri || doc.fileName === sample.fileName;
259
+ }
260
+ return (_jsxs("div", { className: "demo-workbench__inner", children: [_jsx("button", { type: "button", className: "demo-sidebar-toggle", onClick: () => setSidebarOpen((open) => !open), "aria-expanded": sidebarOpen, children: sidebarOpen ? "Hide controls" : "Show controls" }), _jsxs("aside", { className: `demo-sidebar${sidebarOpen ? " demo-sidebar--open" : ""}`, children: [_jsxs("div", { className: "demo-sidebar__section", children: [_jsx("h2", { className: "demo-sidebar__heading", children: "Document source" }), _jsx("div", { className: "demo-source-tabs", role: "tablist", "aria-label": "Source mode", children: SOURCE_MODES.map((mode) => (_jsxs("button", { type: "button", className: `demo-source-tab${sourceMode === mode.id ? " demo-source-tab--active" : ""}`, role: "tab", "aria-selected": sourceMode === mode.id, onClick: () => {
261
+ setSourceMode(mode.id);
262
+ if (mode.id === "upload") {
263
+ setDocuments([]);
264
+ }
265
+ else if (mode.id === "url" && documents.length === 0) {
266
+ setDocuments([FLAT_SAMPLES[0]]);
267
+ }
268
+ }, children: [_jsx("span", { className: "demo-source-tab__icon", "aria-hidden": "true", children: mode.icon }), mode.label] }, mode.id))) }), sourceMode === "upload" && (_jsxs("p", { className: "demo-hint", children: ["Drop a file on the viewer or use ", _jsx("strong", { children: "Choose file" }), ". Supports PDF, Office, images, audio, and video."] })), sourceMode === "url" && (_jsxs(_Fragment, { children: [_jsxs("label", { className: "demo-field", children: [_jsx("span", { className: "demo-field__label", children: "URL or path" }), _jsx("input", { className: "demo-field__input", value: urlInput, onChange: (e) => setUrlInput(e.target.value) })] }), _jsxs("label", { className: "demo-field", children: [_jsx("span", { className: "demo-field__label", children: "fileName (optional)" }), _jsx("input", { className: "demo-field__input", value: urlFileName, onChange: (e) => setUrlFileName(e.target.value), placeholder: "report.pdf" })] }), _jsx("button", { type: "button", className: "btn brand demo-apply-btn", onClick: applyUrl, children: "Preview URL" })] })), sourceMode === "blob" && (_jsxs(_Fragment, { children: [_jsxs("p", { className: "demo-hint", children: ["Pick a local file \u2014 passed as ", _jsx("code", { children: "file: Blob" }), " to the viewer."] }), _jsxs("label", { className: "demo-file-drop", children: [_jsx("input", { className: "demo-file-input", type: "file", onChange: (e) => {
269
+ const file = e.target.files?.[0];
270
+ if (file) {
271
+ setDocuments([createPreviewDocumentFromBlob(file)]);
272
+ }
273
+ } }), _jsx("span", { className: "demo-file-drop__label", children: "Browse file\u2026" })] })] })), sourceMode === "base64" && (_jsxs(_Fragment, { children: [_jsxs("label", { className: "demo-field", children: [_jsx("span", { className: "demo-field__label", children: "MIME type" }), _jsx("input", { className: "demo-field__input", value: base64Mime, onChange: (e) => setBase64Mime(e.target.value), placeholder: "text/plain" })] }), _jsxs("label", { className: "demo-field", children: [_jsx("span", { className: "demo-field__label", children: "fileName" }), _jsx("input", { className: "demo-field__input", value: base64FileName, onChange: (e) => setBase64FileName(e.target.value), placeholder: "hello.txt" })] }), _jsxs("label", { className: "demo-field", children: [_jsx("span", { className: "demo-field__label", children: "Base64 or data URL" }), _jsx("textarea", { className: "demo-field__textarea", rows: 4, value: base64Input, onChange: (e) => setBase64Input(e.target.value), placeholder: "aGVsbG8= or data:text/plain;base64,aGVsbG8=" })] }), _jsxs("div", { className: "demo-btn-row", children: [_jsx("button", { type: "button", className: "btn brand", onClick: applyBase64, children: "Preview base64" }), _jsx("button", { type: "button", className: "btn", onClick: () => {
274
+ setBase64Input("data:text/plain;base64,SGVsbG8gRG9jIFByZXZpZXch");
275
+ setBase64FileName("greeting.txt");
276
+ setBase64Mime("text/plain");
277
+ setDocuments([
278
+ createPreviewDocumentFromBase64({
279
+ base64: "data:text/plain;base64,SGVsbG8gRG9jIFByZXZpZXch",
280
+ fileName: "greeting.txt",
281
+ mimeType: "text/plain"
282
+ })
283
+ ]);
284
+ }, children: "Sample text" })] })] }))] }), _jsxs("div", { className: "demo-sidebar__section demo-sidebar__section--enterprise", children: [_jsx("h3", { className: "demo-sidebar__heading", children: "Licence" }), _jsx("div", { className: "demo-tier-status", children: isEnterpriseLicensed ? (_jsx("span", { className: "demo-enterprise-badge", children: "Enterprise" })) : (_jsx("span", { className: "demo-community-badge", children: "Community" })) }), _jsxs("label", { className: "demo-field", children: [_jsx("span", { className: "demo-field__label", children: "Licence key" }), _jsx("input", { className: "demo-field__input demo-field__input--mono", type: "text", value: licenseKeyInput, onChange: (e) => setLicenseKeyInput(e.target.value), placeholder: "DP-ENT-\u2026", spellCheck: false, autoComplete: "off" })] }), _jsxs("div", { className: "demo-btn-row demo-license-actions", children: [_jsx("button", { type: "button", className: "btn brand", onClick: applyLicenseKey, children: "Use licence key" }), _jsx("button", { type: "button", className: "btn", onClick: clearLicenseKey, children: "Clear key" })] }), _jsx("button", { type: "button", className: "demo-demo-key-link", onClick: fillDemoLicenseKey, children: "Fill demo key" }), isEnterpriseLicensed ? (_jsxs(_Fragment, { children: [_jsx("div", { className: "demo-feature-pills", children: ENTERPRISE_FEATURES.map((feature) => (_jsx("span", { className: "demo-feature-pill", children: feature }, feature))) }), _jsxs("label", { className: "demo-field", children: [_jsx("span", { className: "demo-field__label", children: "Watermark text" }), _jsx("input", { className: "demo-field__input", type: "text", value: watermarkText, onChange: (e) => setWatermarkText(e.target.value), placeholder: "e.g. CONFIDENTIAL \u2014 leave empty to hide" })] }), _jsxs("label", { className: "demo-field", children: [_jsx("span", { className: "demo-field__label", children: "PDF password" }), _jsx("input", { className: "demo-field__input", type: "password", value: pdfPassword, onChange: (e) => setPdfPassword(e.target.value), placeholder: "Unlock modal if empty" })] }), _jsxs("label", { className: "demo-toggle", children: [_jsx("input", { type: "checkbox", checked: mockConversion, onChange: (e) => setMockConversion(e.target.checked) }), _jsx("span", { children: "Mock conversion API (.convertme files)" })] })] })) : (_jsx("p", { className: "demo-hint", children: "Community mode \u2014 basic preview only. Apply a licence key above for annotations, watermark, compare, and print." }))] }), _jsxs("div", { className: "demo-sidebar__section", children: [_jsx("h3", { className: "demo-sidebar__heading demo-sidebar__heading--community", children: "Community samples" }), COMMUNITY_SAMPLE_CATEGORIES.map((category) => (_jsxs("div", { children: [_jsx("p", { className: "demo-sample-category", children: category.label }), _jsx("ul", { className: "demo-sample-grid", children: category.samples.map((sample) => (_jsx("li", { children: _jsxs("button", { type: "button", className: `demo-sample-card demo-sample-card--community${isActiveSample(sample) ? " demo-sample-card--active" : ""}`, onClick: () => loadSample(sample), children: [_jsx("span", { className: "demo-sample-card__tier", children: "Community" }), _jsx("span", { className: "demo-sample-card__ext", children: sample.ext }), _jsx("span", { className: "demo-sample-card__name", children: sample.fileName }), _jsx("span", { className: "demo-sample-card__hint", children: sample.hint })] }) }, sample.fileName))) })] }, category.id)))] }), _jsxs("div", { className: "demo-sidebar__section demo-sidebar__section--enterprise", children: [_jsx("h3", { className: "demo-sidebar__heading demo-sidebar__heading--enterprise", children: "Enterprise samples" }), _jsx("p", { className: "demo-hint demo-hint--enterprise", children: "Requires an active licence key. Upload PNG/JPG for image signatures & rotate." }), ENTERPRISE_SAMPLE_CATEGORIES.map((category) => (_jsxs("div", { children: [_jsx("p", { className: "demo-sample-category", children: category.label }), _jsx("ul", { className: "demo-sample-grid", children: category.samples.map((sample) => (_jsx("li", { children: _jsxs("button", { type: "button", className: `demo-sample-card demo-sample-card--enterprise${isActiveSample(sample) ? " demo-sample-card--active" : ""}${!isEnterpriseLicensed ? " demo-sample-card--locked" : ""}`, onClick: () => loadSample(sample), children: [_jsx("span", { className: "demo-sample-card__tier", children: "Enterprise" }), _jsx("span", { className: "demo-sample-card__ext", children: sample.ext }), _jsx("span", { className: "demo-sample-card__name", children: sample.fileName }), _jsx("span", { className: "demo-sample-card__hint", children: sample.hint }), !isEnterpriseLicensed && (_jsx("span", { className: "demo-sample-card__lock", children: "Licence required for full features" }))] }) }, sample.fileName))) })] }, category.id)))] })] }), _jsxs("div", { className: "demo-stage-wrap", children: [_jsxs("header", { className: "demo-stage-header", children: [_jsxs("div", { className: "demo-stage-header__main", children: [_jsx("span", { className: "demo-stage-header__label", children: "Previewing" }), _jsx("strong", { className: "demo-stage-header__title", children: activeDocLabel })] }), _jsxs("div", { className: "demo-stage-header__meta", children: [_jsx("span", { className: phaseClass, children: phase }), isEnterpriseLicensed ? (_jsx("span", { className: "demo-enterprise-badge", children: "Enterprise" })) : (_jsx("span", { className: "demo-community-badge", children: "Community" })), _jsx("span", { className: "demo-source-badge", children: SOURCE_MODES.find((m) => m.id === sourceMode)?.label }), documents.length > 0 && (_jsx("button", { type: "button", className: "demo-stage-header__clear", onClick: clearDocument, children: "Clear" }))] })] }), _jsxs("div", { className: "demo-stage", children: [!documents.length && sourceMode === "upload" && (_jsxs("div", { className: "demo-stage-empty", children: [_jsx("p", { className: "demo-stage-empty__title", children: "Upload to preview" }), _jsx("p", { className: "demo-stage-empty__text", children: "Drag and drop a file below, or use the upload button in the toolbar." })] })), _jsx(DocPreview, { documents: documents, config: viewerConfig, enterpriseLicenseKey: activeLicenseKey, onPhaseChange: onPhase, onFilesSelected: (files) => {
285
+ if (files.length) {
286
+ setDocuments(createPreviewDocumentsFromFiles(files));
287
+ }
288
+ }, onDocumentClear: clearDocument })] })] })] }));
289
+ }
290
+ //# sourceMappingURL=DemoReactApp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DemoReactApp.js","sourceRoot":"","sources":["../src/DemoReactApp.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { type CSSProperties } from "react";
2
+ import { type PreviewHostOptions, type PreviewSlots, type PreviewThemeTokens } from "@doc-preview/core";
3
+ export type DocPreviewProps = PreviewHostOptions & {
4
+ dark?: boolean;
5
+ theme?: PreviewThemeTokens;
6
+ slots?: PreviewSlots;
7
+ className?: string;
8
+ style?: CSSProperties;
9
+ /** Demo / production key from @doc-preview/enterprise */
10
+ enterpriseLicenseKey?: string;
11
+ onEnterpriseStatusChange?: (licensed: boolean) => void;
12
+ };
13
+ export declare function DocPreview({ documents, activeIndex, config, requestHeaders, prefetchMethod, onPhaseChange, onDocumentChange, onFilesSelected, onDocumentClear, dark, theme, slots, className, style, enterpriseLicenseKey, onEnterpriseStatusChange }: DocPreviewProps): import("react/jsx-runtime").JSX.Element;
14
+ //# sourceMappingURL=DocPreview.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DocPreview.d.ts","sourceRoot":"","sources":["../src/DocPreview.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAwC,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC;AACjF,OAAO,EAOL,KAAK,kBAAkB,EACvB,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACxB,MAAM,mBAAmB,CAAC;AAO3B,MAAM,MAAM,eAAe,GAAG,kBAAkB,GAAG;IACjD,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,kBAAkB,CAAC;IAC3B,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,yDAAyD;IACzD,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,wBAAwB,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;CACxD,CAAC;AA8BF,wBAAgB,UAAU,CAAC,EACzB,SAAS,EACT,WAAW,EACX,MAAM,EACN,cAAc,EACd,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,IAAI,EACJ,KAAK,EACL,KAAK,EACL,SAAS,EACT,KAAK,EACL,oBAAyB,EACzB,wBAAwB,EACzB,EAAE,eAAe,2CA8FjB"}
@@ -0,0 +1,108 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useEffect, useMemo, useRef, useState } from "react";
3
+ import { createPreviewApi, mountPreviewTree, renderPreviewTree, NO_PREVIEW_ENTERPRISE_FLAGS } from "@doc-preview/core";
4
+ import { clearEnterpriseLicense, getEnterpriseFeatureFlags, registerEnterpriseLicenseFromPredefinedKey } from "@doc-preview/enterprise";
5
+ function toPreviewEnterpriseFlags() {
6
+ const f = getEnterpriseFeatureFlags();
7
+ return {
8
+ canAnnotations: f.canAnnotations,
9
+ canWatermark: f.canWatermark,
10
+ canSplitView: f.canSplitView,
11
+ canPasswordPdf: f.canPasswordPdf,
12
+ canPrintWithWatermark: f.canPrintWithWatermark,
13
+ canSearchInDocument: f.canSearchInDocument,
14
+ canRedaction: f.canRedaction,
15
+ canDocumentDiff: f.canDocumentDiff
16
+ };
17
+ }
18
+ function documentsKey(documents) {
19
+ return JSON.stringify(documents.map((d) => ({
20
+ uri: d.uri,
21
+ fileName: d.fileName,
22
+ fileType: d.fileType,
23
+ mimeType: d.mimeType,
24
+ base64Len: d.base64?.length,
25
+ fileSize: d.file?.size,
26
+ arrayBufferLen: d.arrayBuffer?.byteLength
27
+ })));
28
+ }
29
+ export function DocPreview({ documents, activeIndex, config, requestHeaders, prefetchMethod, onPhaseChange, onDocumentChange, onFilesSelected, onDocumentClear, dark, theme, slots, className, style, enterpriseLicenseKey = "", onEnterpriseStatusChange }) {
30
+ const mountRef = useRef(null);
31
+ const apiRef = useRef(null);
32
+ const [, tick] = useState(0);
33
+ const refresh = () => tick((n) => n + 1);
34
+ const docsKey = useMemo(() => documentsKey(documents), [documents]);
35
+ const enterpriseFlags = useMemo(() => {
36
+ const key = enterpriseLicenseKey.trim();
37
+ if (key) {
38
+ registerEnterpriseLicenseFromPredefinedKey(key);
39
+ }
40
+ else {
41
+ clearEnterpriseLicense();
42
+ }
43
+ const flags = key ? toPreviewEnterpriseFlags() : NO_PREVIEW_ENTERPRISE_FLAGS;
44
+ return flags;
45
+ }, [enterpriseLicenseKey]);
46
+ useEffect(() => {
47
+ onEnterpriseStatusChange?.(Boolean(enterpriseLicenseKey.trim()));
48
+ }, [enterpriseLicenseKey, onEnterpriseStatusChange]);
49
+ const api = useMemo(() => {
50
+ const next = createPreviewApi({
51
+ documents,
52
+ activeIndex,
53
+ config,
54
+ requestHeaders,
55
+ prefetchMethod,
56
+ onPhaseChange,
57
+ onDocumentChange
58
+ }, refresh);
59
+ return next;
60
+ }, [
61
+ docsKey,
62
+ activeIndex,
63
+ config,
64
+ requestHeaders,
65
+ prefetchMethod,
66
+ onPhaseChange,
67
+ onDocumentChange
68
+ ]);
69
+ apiRef.current = api;
70
+ useEffect(() => {
71
+ const el = mountRef.current;
72
+ if (!el || !apiRef.current) {
73
+ return;
74
+ }
75
+ void mountPreviewTree({
76
+ host: el,
77
+ engine: apiRef.current.engine,
78
+ theme,
79
+ slots,
80
+ dark,
81
+ enterpriseFlags,
82
+ onFilesSelected,
83
+ onDocumentClear,
84
+ requestHeaders,
85
+ prefetchMethod
86
+ });
87
+ }, [api, theme, slots, dark, enterpriseFlags, onFilesSelected, onDocumentClear, requestHeaders, prefetchMethod]);
88
+ useEffect(() => {
89
+ const el = mountRef.current;
90
+ if (!el || !apiRef.current) {
91
+ return;
92
+ }
93
+ renderPreviewTree({
94
+ host: el,
95
+ engine: apiRef.current.engine,
96
+ theme,
97
+ slots,
98
+ dark,
99
+ enterpriseFlags,
100
+ onFilesSelected,
101
+ onDocumentClear,
102
+ requestHeaders,
103
+ prefetchMethod
104
+ });
105
+ }, [api, theme, slots, dark, enterpriseFlags, onFilesSelected, onDocumentClear, requestHeaders, prefetchMethod]);
106
+ return (_jsx("div", { ref: mountRef, className: className ? `dp-react-host ${className}` : "dp-react-host", style: style }));
107
+ }
108
+ //# sourceMappingURL=DocPreview.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DocPreview.js","sourceRoot":"","sources":["../src/DocPreview.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { type Root } from "react-dom/client";
2
+ export declare function mountDemoReact(host: HTMLElement): Root;
3
+ //# sourceMappingURL=demo-mount.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"demo-mount.d.ts","sourceRoot":"","sources":["../src/demo-mount.ts"],"names":[],"mappings":"AACA,OAAO,EAAc,KAAK,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAGzD,wBAAgB,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,CAItD"}
@@ -0,0 +1,9 @@
1
+ import { createElement } from "react";
2
+ import { createRoot } from "react-dom/client";
3
+ import { DemoReactApp } from "./DemoReactApp.js";
4
+ export function mountDemoReact(host) {
5
+ const root = createRoot(host);
6
+ root.render(createElement(DemoReactApp));
7
+ return root;
8
+ }
9
+ //# sourceMappingURL=demo-mount.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"demo-mount.js","sourceRoot":"","sources":["../src/demo-mount.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,UAAU,EAAa,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,MAAM,UAAU,cAAc,CAAC,IAAiB;IAC9C,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAC9B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC;IACzC,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { DocPreview, type DocPreviewProps } from "./DocPreview";
2
+ export * from "@doc-preview/core";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAChE,cAAc,mBAAmB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,3 @@
1
+ export { DocPreview } from "./DocPreview";
2
+ export * from "@doc-preview/core";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAwB,MAAM,cAAc,CAAC;AAChE,cAAc,mBAAmB,CAAC"}
package/package.json ADDED
@@ -0,0 +1,59 @@
1
+ {
2
+ "name": "@doc-preview/react",
3
+ "version": "1.0.0",
4
+ "description": "React wrapper for Doc Preview.",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "import": "./dist/index.js"
12
+ },
13
+ "./demo-mount": {
14
+ "types": "./dist/demo-mount.d.ts",
15
+ "import": "./dist/demo-mount.js"
16
+ }
17
+ },
18
+ "files": ["dist", "README.md", "LICENSE"],
19
+ "repository": {
20
+ "type": "git",
21
+ "url": "git+https://github.com/rajkishorsahu89/doc-preview.git",
22
+ "directory": "packages/react"
23
+ },
24
+ "bugs": "https://github.com/rajkishorsahu89/doc-preview/issues",
25
+ "homepage": "https://doc-preview-app.vercel.app/",
26
+ "author": "Rajkishor Sahu (https://github.com/rajkishorsahu89/)",
27
+ "engines": { "node": ">=18" },
28
+ "scripts": {
29
+ "build": "tsc -p tsconfig.json",
30
+ "prepack": "node ../../scripts/assert-pack-ready.mjs"
31
+ },
32
+ "dependencies": { "@doc-preview/core": "^1.0.0" },
33
+ "peerDependencies": {
34
+ "react": "^18.0.0 || ^19.0.0",
35
+ "react-dom": "^18.0.0 || ^19.0.0",
36
+ "@doc-preview/enterprise": "^1.0.0"
37
+ },
38
+ "peerDependenciesMeta": {
39
+ "@doc-preview/enterprise": { "optional": true }
40
+ },
41
+ "devDependencies": {
42
+ "@doc-preview/enterprise": "file:../enterprise",
43
+ "@types/react": "^18.3.0",
44
+ "@types/react-dom": "^18.3.0"
45
+ },
46
+ "keywords": [
47
+ "doc-preview",
48
+ "react",
49
+ "react18",
50
+ "react19",
51
+ "document-viewer",
52
+ "file-preview",
53
+ "pdf",
54
+ "docx",
55
+ "annotations"
56
+ ],
57
+ "license": "MIT",
58
+ "publishConfig": { "access": "public" }
59
+ }