@cherrystudio/file-preview 0.1.1 → 0.1.3

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.
@@ -1,6 +1,6 @@
1
1
  import { i as __toESM } from "./rolldown-runtime-B-lAHAz2.js";
2
2
  import { r as readPreviewDocument, t as PreviewError } from "./source-Rx3etU3y.js";
3
- import { I as LoaderCircle, N as EmptyState, c as FilePreviewToolbar, i as FilePreviewLayout, o as usePreviewHost, r as FilePreviewToolbarButton, s as usePreviewLogger, t as useTranslation } from "./useTranslation-DMhY277o.js";
3
+ import { I as LoaderCircle, L as FileWarning, N as EmptyState, c as FilePreviewToolbar, i as FilePreviewLayout, o as usePreviewHost, r as FilePreviewToolbarButton, s as usePreviewLogger, t as useTranslation } from "./useTranslation-DMhY277o.js";
4
4
  import { n as ChevronRight, r as ChevronLeft, t as RotateCcw } from "./rotate-ccw-YWx7RzY9.js";
5
5
  import { r as CircleAlert, t as createPreviewSelection } from "./selection-CQPD5a6C.js";
6
6
  import { n as ZoomIn, t as ZoomOut } from "./zoom-out-DLOQGt1e.js";
@@ -57715,6 +57715,7 @@ var PPTX_PREVIEW_ZOOM_STEP = 10;
57715
57715
  var PPTX_PREVIEW_MIN_ZOOM = 50;
57716
57716
  var PPTX_PREVIEW_MAX_ZOOM = 200;
57717
57717
  var PPTX_PREVIEW_MAX_SOURCE_BYTES = 26214400;
57718
+ var PPTX_ZIP_LIMIT_ERROR_PREFIX = "PPTX zip limit exceeded:";
57718
57719
  var EXTERNAL_TARGET_MODE = "external";
57719
57720
  var EXTERNAL_MEDIA_RELATIONSHIP_TYPES = /* @__PURE__ */ new Set([
57720
57721
  "image",
@@ -57734,6 +57735,21 @@ function toArrayBuffer(bytes) {
57734
57735
  function throwIfAborted(signal) {
57735
57736
  if (signal.aborted) throw new DOMException("Preview aborted", "AbortError");
57736
57737
  }
57738
+ function isPptxZipLimitError(error) {
57739
+ return error.message.startsWith(PPTX_ZIP_LIMIT_ERROR_PREFIX);
57740
+ }
57741
+ function PowerPointZipLimitFallback() {
57742
+ const { t } = useTranslation();
57743
+ const { onRequestOpen } = usePreviewHost();
57744
+ return /* @__PURE__ */ jsx(EmptyState, {
57745
+ icon: FileWarning,
57746
+ title: t("file_preview.powerpoint.zip_limit.title"),
57747
+ description: t("file_preview.powerpoint.zip_limit.description"),
57748
+ actionLabel: onRequestOpen ? t("file_preview.too_large.action") : void 0,
57749
+ onAction: onRequestOpen ? () => onRequestOpen("too_large") : void 0,
57750
+ className: "h-full"
57751
+ });
57752
+ }
57737
57753
  function getRelationshipTypeName(type) {
57738
57754
  return type.trim().toLowerCase().split("/").at(-1) ?? "";
57739
57755
  }
@@ -57903,8 +57919,9 @@ function PowerPointFilePreview({ sourceId, fileName, document: previewDocument,
57903
57919
  viewer?.destroy();
57904
57920
  container.innerHTML = "";
57905
57921
  const normalized = loadError instanceof Error ? loadError : new Error(String(loadError));
57906
- failDocument?.(normalized);
57907
- setError(normalized);
57922
+ const reported = isPptxZipLimitError(normalized) ? new PreviewError("too_large", normalized.message, { cause: normalized }) : normalized;
57923
+ failDocument?.(reported);
57924
+ setError(reported);
57908
57925
  } finally {
57909
57926
  if (!cancelled) setLoading(false);
57910
57927
  }
@@ -58014,7 +58031,7 @@ function PowerPointFilePreview({ sourceId, fileName, document: previewDocument,
58014
58031
  error ? /* @__PURE__ */ jsx("div", {
58015
58032
  role: "alert",
58016
58033
  className: "absolute inset-0 bg-background",
58017
- children: error instanceof PreviewError && error.code === "too_large" ? /* @__PURE__ */ jsx(FilePreviewTooLarge, {
58034
+ children: error instanceof PreviewError && error.code === "too_large" && isPptxZipLimitError(error) ? /* @__PURE__ */ jsx(PowerPointZipLimitFallback, {}) : error instanceof PreviewError && error.code === "too_large" ? /* @__PURE__ */ jsx(FilePreviewTooLarge, {
58018
58035
  sizeBytes: previewDocument.size,
58019
58036
  limitBytes: PPTX_PREVIEW_MAX_SOURCE_BYTES
58020
58037
  }) : /* @__PURE__ */ jsx(EmptyState, {
@@ -9,7 +9,7 @@ import { t as attachTouchPinch } from "./touchPinch-C4fl-9fg.js";
9
9
  import { t as require_jszip_min } from "./jszip.min-uwqlc4KL.js";
10
10
  import { useCallback, useEffect, useId, useLayoutEffect, useRef, useState } from "react";
11
11
  import { jsx, jsxs } from "react/jsx-runtime";
12
- //#region ../../node_modules/.pnpm/docx-preview@0.3.7_patch_hash=d30b0b8d883838e98a8c1b7bd36ee5c68369e065be35545122ccd202bb9ffd1f/node_modules/docx-preview/dist/docx-preview.mjs
12
+ //#region ../../node_modules/.pnpm/docx-preview@0.3.7_patch_hash=2a780ab6775f1223fd4fb6f344769f949bdf72d851058935b3f34e59b25cfabb/node_modules/docx-preview/dist/docx-preview.mjs
13
13
  var import_jszip_min = /* @__PURE__ */ __toESM(require_jszip_min(), 1);
14
14
  /*
15
15
  * @license
@@ -437,7 +437,7 @@ function parseLineSpacing(elem, xml) {
437
437
  before: xml.lengthAttr(elem, "before"),
438
438
  after: xml.lengthAttr(elem, "after"),
439
439
  line: xml.intAttr(elem, "line"),
440
- lineRule: xml.attr(elem, "lineRule")
440
+ lineRule: xml.attr(elem, "lineRule") ?? "auto"
441
441
  };
442
442
  }
443
443
  function parseRunProperties(elem, xml) {
@@ -2356,7 +2356,7 @@ var DocumentParser = class {
2356
2356
  var before = globalXmlParser.lengthAttr(node, "before");
2357
2357
  var after = globalXmlParser.lengthAttr(node, "after");
2358
2358
  var line = globalXmlParser.intAttr(node, "line", null);
2359
- var lineRule = globalXmlParser.attr(node, "lineRule");
2359
+ var lineRule = globalXmlParser.attr(node, "lineRule") ?? "auto";
2360
2360
  if (before) style["margin-top"] = before;
2361
2361
  if (after) style["margin-bottom"] = after;
2362
2362
  if (line !== null) switch (lineRule) {
package/dist/react.js CHANGED
@@ -38,7 +38,7 @@ var plugins = [
38
38
  id: "powerpoint",
39
39
  extensions: ["pptx"],
40
40
  mediaTypes: ["application/vnd.openxmlformats-officedocument.presentationml.presentation"],
41
- load: () => import("./PowerPointFilePreview-BLfF0zcm.js"),
41
+ load: () => import("./PowerPointFilePreview-CyQHTp4B.js"),
42
42
  supportsSelectionReference: true
43
43
  },
44
44
  {
@@ -52,7 +52,7 @@ var plugins = [
52
52
  id: "word",
53
53
  extensions: ["docx"],
54
54
  mediaTypes: ["application/vnd.openxmlformats-officedocument.wordprocessingml.document"],
55
- load: () => import("./WordFilePreview-DSqt7Uq2.js"),
55
+ load: () => import("./WordFilePreview-Tvm-vK91.js"),
56
56
  supportsSelectionReference: true
57
57
  }
58
58
  ];
@@ -2493,6 +2493,8 @@ var catalogs = {
2493
2493
  "file_preview.pdf.page_number": "Seitenzahl",
2494
2494
  "file_preview.pdf.too_large.description": "Ein Teil dieser PDF-Datei ist zu groß, um sicher in der App angezeigt zu werden.",
2495
2495
  "file_preview.pdf.too_large.title": "Diese PDF kann nicht in der Vorschau angezeigt werden",
2496
+ "file_preview.powerpoint.zip_limit.description": "Diese PowerPoint-Datei überschreitet die sicheren Vorschaugrenzen der App.",
2497
+ "file_preview.powerpoint.zip_limit.title": "Diese PowerPoint-Datei kann nicht in der Vorschau angezeigt werden",
2496
2498
  "file_preview.too_large.action": "Mit Standard-App öffnen",
2497
2499
  "file_preview.too_large.description": "Die Dateigröße {{size}} überschreitet das Vorschaulimit von {{limit}}.",
2498
2500
  "file_preview.too_large.title": "Datei zu groß für die Vorschau",
@@ -2527,6 +2529,8 @@ var catalogs = {
2527
2529
  "file_preview.pdf.page_number": "Αριθμός σελίδας",
2528
2530
  "file_preview.pdf.too_large.description": "Μέρος αυτού του PDF είναι πολύ μεγάλο για ασφαλή προεπισκόπηση στην εφαρμογή.",
2529
2531
  "file_preview.pdf.too_large.title": "Δεν είναι δυνατή η προεπισκόπηση αυτού του PDF",
2532
+ "file_preview.powerpoint.zip_limit.description": "Αυτό το αρχείο PowerPoint υπερβαίνει τα όρια ασφαλούς προεπισκόπησης της εφαρμογής.",
2533
+ "file_preview.powerpoint.zip_limit.title": "Δεν είναι δυνατή η προεπισκόπηση αυτού του αρχείου PowerPoint",
2530
2534
  "file_preview.too_large.action": "Άνοιγμα με προεπιλεγμένη εφαρμογή",
2531
2535
  "file_preview.too_large.description": "Το μέγεθος αρχείου {{size}} υπερβαίνει το όριο προεπισκόπησης {{limit}}.",
2532
2536
  "file_preview.too_large.title": "Το αρχείο είναι πολύ μεγάλο για προεπισκόπηση",
@@ -2561,6 +2565,8 @@ var catalogs = {
2561
2565
  "file_preview.pdf.page_number": "Page number",
2562
2566
  "file_preview.pdf.too_large.description": "Part of this PDF is too large to preview safely in the app.",
2563
2567
  "file_preview.pdf.too_large.title": "Can't preview this PDF",
2568
+ "file_preview.powerpoint.zip_limit.description": "This PowerPoint file exceeds the app's safe preview limits.",
2569
+ "file_preview.powerpoint.zip_limit.title": "Can't preview this PowerPoint file",
2564
2570
  "file_preview.too_large.action": "Open with default app",
2565
2571
  "file_preview.too_large.description": "File size {{size}} exceeds the {{limit}} preview limit.",
2566
2572
  "file_preview.too_large.title": "File too large to preview",
@@ -2595,6 +2601,8 @@ var catalogs = {
2595
2601
  "file_preview.pdf.page_number": "Número de página",
2596
2602
  "file_preview.pdf.too_large.description": "Parte de este PDF es demasiado grande para previsualizarla de forma segura en la aplicación.",
2597
2603
  "file_preview.pdf.too_large.title": "No se puede previsualizar este PDF",
2604
+ "file_preview.powerpoint.zip_limit.description": "Este archivo de PowerPoint supera los límites de vista previa segura de la aplicación.",
2605
+ "file_preview.powerpoint.zip_limit.title": "No se puede previsualizar este archivo de PowerPoint",
2598
2606
  "file_preview.too_large.action": "Abrir con la aplicación predeterminada",
2599
2607
  "file_preview.too_large.description": "El tamaño del archivo {{size}} supera el límite de vista previa de {{limit}}.",
2600
2608
  "file_preview.too_large.title": "El archivo es demasiado grande para previsualizarlo",
@@ -2629,6 +2637,8 @@ var catalogs = {
2629
2637
  "file_preview.pdf.page_number": "Numéro de page",
2630
2638
  "file_preview.pdf.too_large.description": "Une partie de ce PDF est trop volumineuse pour être prévisualisée en toute sécurité dans l'application.",
2631
2639
  "file_preview.pdf.too_large.title": "Impossible de prévisualiser ce PDF",
2640
+ "file_preview.powerpoint.zip_limit.description": "Ce fichier PowerPoint dépasse les limites de prévisualisation sécurisée de l'application.",
2641
+ "file_preview.powerpoint.zip_limit.title": "Impossible de prévisualiser ce fichier PowerPoint",
2632
2642
  "file_preview.too_large.action": "Ouvrir avec l'application par défaut",
2633
2643
  "file_preview.too_large.description": "La taille du fichier {{size}} dépasse la limite d’aperçu de {{limit}}.",
2634
2644
  "file_preview.too_large.title": "Fichier trop volumineux pour être prévisualisé",
@@ -2663,6 +2673,8 @@ var catalogs = {
2663
2673
  "file_preview.pdf.page_number": "ページ番号",
2664
2674
  "file_preview.pdf.too_large.description": "この PDF の一部は大きすぎるため、アプリ内で安全にプレビューできません。",
2665
2675
  "file_preview.pdf.too_large.title": "この PDF をプレビューできません",
2676
+ "file_preview.powerpoint.zip_limit.description": "この PowerPoint ファイルは、アプリの安全なプレビュー制限を超えています。",
2677
+ "file_preview.powerpoint.zip_limit.title": "このPowerPointファイルをプレビューできません",
2666
2678
  "file_preview.too_large.action": "デフォルトのアプリで開く",
2667
2679
  "file_preview.too_large.description": "ファイルサイズ {{size}} はプレビュー上限の {{limit}} を超えています。",
2668
2680
  "file_preview.too_large.title": "ファイルが大きすぎてプレビューできません",
@@ -2697,6 +2709,8 @@ var catalogs = {
2697
2709
  "file_preview.pdf.page_number": "Número da página",
2698
2710
  "file_preview.pdf.too_large.description": "Parte deste PDF é demasiado grande para uma pré-visualização segura na aplicação.",
2699
2711
  "file_preview.pdf.too_large.title": "Não é possível pré-visualizar este PDF",
2712
+ "file_preview.powerpoint.zip_limit.description": "Este ficheiro PowerPoint excede os limites de pré-visualização segura da aplicação.",
2713
+ "file_preview.powerpoint.zip_limit.title": "Não é possível pré-visualizar este ficheiro PowerPoint",
2700
2714
  "file_preview.too_large.action": "Abrir com aplicação padrão",
2701
2715
  "file_preview.too_large.description": "O tamanho do ficheiro {{size}} excede o limite de pré-visualização de {{limit}}.",
2702
2716
  "file_preview.too_large.title": "Ficheiro demasiado grande para pré-visualizar",
@@ -2731,6 +2745,8 @@ var catalogs = {
2731
2745
  "file_preview.pdf.page_number": "Numărul paginii",
2732
2746
  "file_preview.pdf.too_large.description": "O parte din acest PDF este prea mare pentru a fi previzualizată în siguranță în aplicație.",
2733
2747
  "file_preview.pdf.too_large.title": "Nu se poate previzualiza acest PDF",
2748
+ "file_preview.powerpoint.zip_limit.description": "Acest fișier PowerPoint depășește limitele de previzualizare sigură ale aplicației.",
2749
+ "file_preview.powerpoint.zip_limit.title": "Nu se poate previzualiza acest fișier PowerPoint",
2734
2750
  "file_preview.too_large.action": "Deschide cu aplicația implicită",
2735
2751
  "file_preview.too_large.description": "Dimensiunea fișierului {{size}} depășește limita de previzualizare de {{limit}}.",
2736
2752
  "file_preview.too_large.title": "Fișier prea mare pentru previzualizare",
@@ -2765,6 +2781,8 @@ var catalogs = {
2765
2781
  "file_preview.pdf.page_number": "Номер страницы",
2766
2782
  "file_preview.pdf.too_large.description": "Часть этого PDF-файла слишком велика для безопасного предварительного просмотра в приложении.",
2767
2783
  "file_preview.pdf.too_large.title": "Не удалось открыть предпросмотр этого PDF",
2784
+ "file_preview.powerpoint.zip_limit.description": "Этот файл PowerPoint превышает ограничения безопасного предварительного просмотра в приложении.",
2785
+ "file_preview.powerpoint.zip_limit.title": "Не удается просмотреть этот файл PowerPoint",
2768
2786
  "file_preview.too_large.action": "Открыть с помощью приложения по умолчанию",
2769
2787
  "file_preview.too_large.description": "Размер файла {{size}} превышает ограничение предварительного просмотра {{limit}}.",
2770
2788
  "file_preview.too_large.title": "Файл слишком велик для предварительного просмотра",
@@ -2799,6 +2817,8 @@ var catalogs = {
2799
2817
  "file_preview.pdf.page_number": "Sayfa numarası",
2800
2818
  "file_preview.pdf.too_large.description": "Bu PDF'nin bir bölümü uygulamada güvenli biçimde önizlenemeyecek kadar büyük.",
2801
2819
  "file_preview.pdf.too_large.title": "Bu PDF önizlenemiyor",
2820
+ "file_preview.powerpoint.zip_limit.description": "Bu PowerPoint dosyası uygulamanın güvenli önizleme sınırlarını aşıyor.",
2821
+ "file_preview.powerpoint.zip_limit.title": "Bu PowerPoint dosyası önizlenemiyor",
2802
2822
  "file_preview.too_large.action": "Varsayılan uygulamayla aç",
2803
2823
  "file_preview.too_large.description": "{{size}} dosya boyutu, {{limit}} önizleme sınırını aşıyor.",
2804
2824
  "file_preview.too_large.title": "Dosya önizlenemeyecek kadar büyük",
@@ -2833,6 +2853,8 @@ var catalogs = {
2833
2853
  "file_preview.pdf.page_number": "Số trang",
2834
2854
  "file_preview.pdf.too_large.description": "Một phần của tệp PDF này quá lớn để xem trước an toàn trong ứng dụng.",
2835
2855
  "file_preview.pdf.too_large.title": "Không thể xem trước tệp PDF này",
2856
+ "file_preview.powerpoint.zip_limit.description": "Tệp PowerPoint này vượt quá giới hạn xem trước an toàn của ứng dụng.",
2857
+ "file_preview.powerpoint.zip_limit.title": "Không thể xem trước tệp PowerPoint này",
2836
2858
  "file_preview.too_large.action": "Mở bằng ứng dụng mặc định",
2837
2859
  "file_preview.too_large.description": "Kích thước tệp {{size}} vượt quá giới hạn xem trước {{limit}}.",
2838
2860
  "file_preview.too_large.title": "Tệp quá lớn để xem trước",
@@ -2867,6 +2889,8 @@ var catalogs = {
2867
2889
  "file_preview.pdf.page_number": "页码",
2868
2890
  "file_preview.pdf.too_large.description": "该 PDF 部分内容过大,无法安全地在应用内预览。",
2869
2891
  "file_preview.pdf.too_large.title": "无法预览此 PDF",
2892
+ "file_preview.powerpoint.zip_limit.description": "此 PowerPoint 文件超出了应用的安全预览限制。",
2893
+ "file_preview.powerpoint.zip_limit.title": "无法预览此 PowerPoint 文件",
2870
2894
  "file_preview.too_large.action": "用默认应用打开",
2871
2895
  "file_preview.too_large.description": "文件大小 {{size}} 超过 {{limit}} 的预览大小限制。",
2872
2896
  "file_preview.too_large.title": "文件过大,无法预览",
@@ -2901,6 +2925,8 @@ var catalogs = {
2901
2925
  "file_preview.pdf.page_number": "頁碼",
2902
2926
  "file_preview.pdf.too_large.description": "這份 PDF 的部分內容過大,無法在應用程式中安全預覽。",
2903
2927
  "file_preview.pdf.too_large.title": "無法預覽此 PDF",
2928
+ "file_preview.powerpoint.zip_limit.description": "此 PowerPoint 檔案超出應用程式的安全預覽限制。",
2929
+ "file_preview.powerpoint.zip_limit.title": "無法預覽此 PowerPoint 檔案",
2904
2930
  "file_preview.too_large.action": "使用預設應用程式開啟",
2905
2931
  "file_preview.too_large.description": "檔案大小 {{size}} 超過 {{limit}} 的預覽大小限制。",
2906
2932
  "file_preview.too_large.title": "檔案過大,無法預覽",
package/dist/styles.css CHANGED
@@ -203,6 +203,10 @@
203
203
  top: 50%;
204
204
  }
205
205
 
206
+ :where(.file-preview-root):is(.top-\[calc\(1rem\+var\(--image-preview-titlebar-height\,0px\)\)\]), :where(.file-preview-root) .top-\[calc\(1rem\+var\(--image-preview-titlebar-height\,0px\)\)\] {
207
+ top: calc(1rem + var(--image-preview-titlebar-height, 0px));
208
+ }
209
+
206
210
  :where(.file-preview-root):is(.right-4), :where(.file-preview-root) .right-4 {
207
211
  right: calc(var(--spacing) * 4);
208
212
  }
@@ -2613,7 +2617,7 @@
2613
2617
  --cs-accent-foreground: oklch(20.5% 0 0);
2614
2618
  --cs-primary-foreground: oklch(98.5% 0 0);
2615
2619
  --cs-destructive-foreground: var(--cs-white);
2616
- --cs-input: oklch(92.2% 0 0);
2620
+ --cs-input: var(--cs-border);
2617
2621
  --cs-sidebar-foreground: oklch(14.5% 0 0);
2618
2622
  --cs-sidebar-primary: oklch(20.5% 0 0);
2619
2623
  --cs-sidebar-primary-foreground: oklch(98.5% 0 0);
@@ -2664,7 +2668,7 @@
2664
2668
  --cs-accent-foreground: oklch(98.5% 0 0);
2665
2669
  --cs-primary-foreground: oklch(20.5% 0 0);
2666
2670
  --cs-destructive-foreground: var(--cs-white);
2667
- --cs-input: oklch(26.9% 0 0);
2671
+ --cs-input: var(--cs-border);
2668
2672
  --cs-sidebar-foreground: oklch(98.5% 0 0);
2669
2673
  --cs-sidebar-primary: oklch(48.8% .243 264.376);
2670
2674
  --cs-sidebar-primary-foreground: oklch(98.5% 0 0);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cherrystudio/file-preview",
3
- "version": "0.1.1",
3
+ "version": "0.1.3",
4
4
  "description": "Portable read-only document preview for Cherry Studio",
5
5
  "license": "AGPL-3.0-only",
6
6
  "repository": {