ssovee-os-web-ui 0.1.107 → 0.1.108

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/dist/index.cjs CHANGED
@@ -7,7 +7,11 @@ var Editor = require('@monaco-editor/react');
7
7
  var react$1 = require('@tiptap/react');
8
8
  var StarterKit = require('@tiptap/starter-kit');
9
9
  var uaParserJs = require('ua-parser-js');
10
+ var reactPdf = require('react-pdf');
11
+ require('react-pdf/dist/Page/TextLayer.css');
12
+ require('react-pdf/dist/Page/AnnotationLayer.css');
10
13
 
14
+ var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
11
15
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
12
16
 
13
17
  function _interopNamespace(e) {
@@ -2318,6 +2322,54 @@ var Tabs = ({
2318
2322
  ] });
2319
2323
  };
2320
2324
  var Tabs_default = Tabs;
2325
+ reactPdf.pdfjs.GlobalWorkerOptions.workerSrc = new URL(
2326
+ "pdfjs-dist/build/pdf.worker.min.mjs",
2327
+ (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index.cjs', document.baseURI).href))
2328
+ ).toString();
2329
+ var base64ToUint8Array = (base64) => {
2330
+ const value = base64.includes(",") ? base64.slice(base64.indexOf(",") + 1) : base64;
2331
+ const binary = atob(value);
2332
+ const bytes = new Uint8Array(binary.length);
2333
+ for (let index = 0; index < binary.length; index += 1) {
2334
+ bytes[index] = binary.charCodeAt(index);
2335
+ }
2336
+ return bytes;
2337
+ };
2338
+ var PdfPreview = ({ base64, fileName, className }) => {
2339
+ const [numPages, setNumPages] = React24.useState(0);
2340
+ const [error, setError] = React24.useState();
2341
+ const [pageWidth, setPageWidth] = React24.useState(900);
2342
+ React24.useEffect(() => {
2343
+ const updatePageWidth = () => setPageWidth(Math.min(900, Math.max(320, window.innerWidth - 48)));
2344
+ updatePageWidth();
2345
+ window.addEventListener("resize", updatePageWidth);
2346
+ return () => window.removeEventListener("resize", updatePageWidth);
2347
+ }, []);
2348
+ let pdfData;
2349
+ try {
2350
+ pdfData = base64ToUint8Array(base64);
2351
+ } catch {
2352
+ pdfData = new Uint8Array();
2353
+ }
2354
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("h-full min-h-96 w-full overflow-auto bg-muted/30", className), children: /* @__PURE__ */ jsxRuntime.jsx(
2355
+ reactPdf.Document,
2356
+ {
2357
+ file: { data: pdfData },
2358
+ onLoadSuccess: ({ numPages: loadedPages }) => {
2359
+ setNumPages(loadedPages);
2360
+ setError(void 0);
2361
+ },
2362
+ onLoadError: (loadError) => {
2363
+ console.error("PDF preview error:", loadError);
2364
+ setError(`Unable to preview ${fileName}`);
2365
+ },
2366
+ loading: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex min-h-96 items-center justify-center", children: "Loading PDF..." }),
2367
+ error: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex min-h-96 items-center justify-center", children: error ?? "Unable to preview this PDF." }),
2368
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-col items-center gap-4 p-4", children: Array.from({ length: numPages }, (_, index) => /* @__PURE__ */ jsxRuntime.jsx("div", { className: "overflow-hidden rounded-lg bg-white shadow-sm", children: /* @__PURE__ */ jsxRuntime.jsx(reactPdf.Page, { pageNumber: index + 1, renderTextLayer: true, renderAnnotationLayer: true, width: pageWidth }) }, `page_${index + 1}`)) })
2369
+ }
2370
+ ) });
2371
+ };
2372
+ var PdfPreview_default = PdfPreview;
2321
2373
  var imageExtensions = /\.(avif|bmp|gif|heic|jpe?g|png|svg|tiff?|webp)$/i;
2322
2374
  var textExtensions = /\.(c|cc|conf|cpp|css|csv|env|h|hpp|html?|ini|java|js|jsx|log|md|mjs|php|py|rb|rs|sh|sql|swift|ts|tsx|txt|xml|yaml|yml)$/i;
2323
2375
  var audioExtensions = /\.(aac|flac|m4a|mp3|ogg|wav|weba)$/i;
@@ -2383,29 +2435,14 @@ var decodeBase64 = (base64) => {
2383
2435
  const bytes = Uint8Array.from(atob(value), (character) => character.charCodeAt(0));
2384
2436
  return new TextDecoder().decode(bytes);
2385
2437
  };
2386
- var toBlobUrl = (base64, fileName) => {
2387
- const value = base64.includes(",") ? base64.slice(base64.indexOf(",") + 1) : base64;
2388
- const bytes = Uint8Array.from(atob(value), (character) => character.charCodeAt(0));
2389
- return URL.createObjectURL(new Blob([bytes], { type: getMimeType(fileName) }));
2390
- };
2391
2438
  var PreviewComponent = ({ fileName, base64, className }) => {
2392
2439
  const previewType = getPreviewType(fileName);
2393
2440
  const dataUrl = toDataUrl(base64, fileName);
2394
- const [pdfUrl, setPdfUrl] = React24.useState();
2395
- React24.useEffect(() => {
2396
- if (previewType !== "pdf") {
2397
- setPdfUrl(void 0);
2398
- return;
2399
- }
2400
- const objectUrl = toBlobUrl(base64, fileName);
2401
- setPdfUrl(objectUrl);
2402
- return () => URL.revokeObjectURL(objectUrl);
2403
- }, [base64, fileName, previewType]);
2404
2441
  if (previewType === "image") {
2405
2442
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex h-full min-h-48 w-full items-center justify-center overflow-auto", className), children: /* @__PURE__ */ jsxRuntime.jsx("img", { src: dataUrl, alt: fileName, className: "max-h-full max-w-full object-contain" }) });
2406
2443
  }
2407
2444
  if (previewType === "pdf") {
2408
- return pdfUrl ? /* @__PURE__ */ jsxRuntime.jsx("iframe", { title: fileName, src: pdfUrl, className: cn("h-full min-h-96 w-full border-0", className) }) : null;
2445
+ return /* @__PURE__ */ jsxRuntime.jsx(PdfPreview_default, { base64, fileName, className });
2409
2446
  }
2410
2447
  if (previewType === "audio") {
2411
2448
  return /* @__PURE__ */ jsxRuntime.jsx("audio", { controls: true, src: dataUrl, className: cn("w-full", className) });
@@ -3641,6 +3678,7 @@ exports.Input = Input_default;
3641
3678
  exports.Loading = Loading_default;
3642
3679
  exports.Modal = Modal_default;
3643
3680
  exports.Pagination = Pagination_default;
3681
+ exports.PdfPreview = PdfPreview_default;
3644
3682
  exports.PluginPlayground = PluginPlayground;
3645
3683
  exports.PreviewComponent = PreviewComponent_default;
3646
3684
  exports.Progress = Progress_default;