@file-viewer/vue3 2.1.17 → 2.1.19

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,4 +1,4 @@
1
- import { FileViewerAiOptions as CoreFileViewerAiOptions, FileViewerArchiveOptions as CoreFileViewerArchiveOptions, FileViewerBeforeOperation as CoreFileViewerBeforeOperation, FileViewerCadDwfLineWeightMode as CoreFileViewerCadDwfLineWeightMode, FileViewerCadOptions as CoreFileViewerCadOptions, FileViewerCadRenderer as CoreFileViewerCadRenderer, FileViewerComponentEmits as CoreFileViewerComponentEmits, FileViewerComponentEventMap as CoreFileViewerComponentEventMap, FileViewerComponentProps as CoreFileViewerComponentProps, FileViewerDocxOptions as CoreFileViewerDocxOptions, FileViewerDocumentAnchor as CoreFileViewerDocumentAnchor, FileViewerDocumentChunk as CoreFileViewerDocumentChunk, FileViewerFileRef, FileViewerLifecycleContext as CoreFileViewerLifecycleContext, FileViewerLifecycleHooks as CoreFileViewerLifecycleHooks, FileViewerLifecyclePhase as CoreFileViewerLifecyclePhase, FileViewerOperationAvailability as CoreFileViewerOperationAvailability, FileViewerOperationContext as CoreFileViewerOperationContext, FileViewerOperationType as CoreFileViewerOperationType, FileViewerOptions as CoreFileViewerOptions, FileViewerPdfOptions as CoreFileViewerPdfOptions, FileViewerSpreadsheetOptions as CoreFileViewerSpreadsheetOptions, FileViewerPublicApi as CoreFileViewerPublicApi, FileViewerRenderedInstance as CoreFileViewerRenderedInstance, FileRenderContext as CoreFileRenderContext, FileRenderExportAdapter as CoreFileRenderExportAdapter, FileRenderExportMode as CoreFileRenderExportMode, FileRenderExportOptions as CoreFileRenderExportOptions, FileRenderHandler, FileRenderHandlerComposite, FileViewerSearchMatch as CoreFileViewerSearchMatch, FileViewerSearchOptions as CoreFileViewerSearchOptions, FileViewerSearchProvider as CoreFileViewerSearchProvider, FileViewerSearchState as CoreFileViewerSearchState, FileViewerSourceKind as CoreFileViewerSourceKind, FileViewerThemeMode as CoreFileViewerThemeMode, FileViewerToolbarOptions as CoreFileViewerToolbarOptions, FileViewerToolbarPosition as CoreFileViewerToolbarPosition, FileViewerTypstOptions as CoreFileViewerTypstOptions, FileViewerApplyViewStateOptions as CoreFileViewerApplyViewStateOptions, FileViewerViewScrollState as CoreFileViewerViewScrollState, FileViewerViewState as CoreFileViewerViewState, FileViewerViewStateChange as CoreFileViewerViewStateChange, FileViewerViewStateChangeAction as CoreFileViewerViewStateChangeAction, FileViewerViewStateChangeSource as CoreFileViewerViewStateChangeSource, FileViewerViewStateProvider as CoreFileViewerViewStateProvider, FileViewerWatermarkOptions as CoreFileViewerWatermarkOptions, FileViewerZoomProvider as CoreFileViewerZoomProvider, FileViewerZoomState as CoreFileViewerZoomState } from '@file-viewer/core';
1
+ import { FileViewerAiOptions as CoreFileViewerAiOptions, FileViewerArchiveOptions as CoreFileViewerArchiveOptions, FileViewerBeforeOperation as CoreFileViewerBeforeOperation, FileViewerCadDwfLineWeightMode as CoreFileViewerCadDwfLineWeightMode, FileViewerCadOptions as CoreFileViewerCadOptions, FileViewerCadRenderer as CoreFileViewerCadRenderer, FileViewerComponentEmits as CoreFileViewerComponentEmits, FileViewerComponentEventMap as CoreFileViewerComponentEventMap, FileViewerComponentProps as CoreFileViewerComponentProps, FileViewerDocxOptions as CoreFileViewerDocxOptions, FileViewerDocumentAnchor as CoreFileViewerDocumentAnchor, FileViewerDocumentChunk as CoreFileViewerDocumentChunk, FileViewerFileRef, FileViewerFitMode as CoreFileViewerFitMode, FileViewerFitOptions as CoreFileViewerFitOptions, FileViewerFitResize as CoreFileViewerFitResize, FileViewerFitResult as CoreFileViewerFitResult, FileViewerLifecycleContext as CoreFileViewerLifecycleContext, FileViewerLifecycleHooks as CoreFileViewerLifecycleHooks, FileViewerLifecyclePhase as CoreFileViewerLifecyclePhase, FileViewerOperationAvailability as CoreFileViewerOperationAvailability, FileViewerOperationContext as CoreFileViewerOperationContext, FileViewerOperationType as CoreFileViewerOperationType, FileViewerOptions as CoreFileViewerOptions, FileViewerPdfOptions as CoreFileViewerPdfOptions, FileViewerSpreadsheetOptions as CoreFileViewerSpreadsheetOptions, FileViewerPublicApi as CoreFileViewerPublicApi, FileViewerRenderedInstance as CoreFileViewerRenderedInstance, FileRenderContext as CoreFileRenderContext, FileRenderExportAdapter as CoreFileRenderExportAdapter, FileRenderExportMode as CoreFileRenderExportMode, FileRenderExportOptions as CoreFileRenderExportOptions, FileRenderHandler, FileRenderHandlerComposite, FileViewerSearchMatch as CoreFileViewerSearchMatch, FileViewerSearchOptions as CoreFileViewerSearchOptions, FileViewerSearchProvider as CoreFileViewerSearchProvider, FileViewerSearchState as CoreFileViewerSearchState, FileViewerSourceKind as CoreFileViewerSourceKind, FileViewerThemeMode as CoreFileViewerThemeMode, FileViewerToolbarOptions as CoreFileViewerToolbarOptions, FileViewerToolbarPosition as CoreFileViewerToolbarPosition, FileViewerTypstOptions as CoreFileViewerTypstOptions, FileViewerApplyViewStateOptions as CoreFileViewerApplyViewStateOptions, FileViewerViewScrollState as CoreFileViewerViewScrollState, FileViewerViewState as CoreFileViewerViewState, FileViewerViewStateChange as CoreFileViewerViewStateChange, FileViewerViewStateChangeAction as CoreFileViewerViewStateChangeAction, FileViewerViewStateChangeSource as CoreFileViewerViewStateChangeSource, FileViewerViewStateProvider as CoreFileViewerViewStateProvider, FileViewerWatermarkOptions as CoreFileViewerWatermarkOptions, FileViewerZoomProvider as CoreFileViewerZoomProvider, FileViewerZoomState as CoreFileViewerZoomState } from '@file-viewer/core';
2
2
  /**
3
3
  * 渲染器返回的可卸载包装实例。
4
4
  *
@@ -29,7 +29,7 @@ export type FileViewerWatermarkOptions = CoreFileViewerWatermarkOptions;
29
29
  * 预览器内置操作栏位置。
30
30
  *
31
31
  * `auto` 是默认策略: PDF 这类有独立阅读工具栏的格式会自动悬浮到右下角,
32
- * 其他格式继续使用顶部操作栏;也可以显式传 `top` 或 `bottom-right`。
32
+ * 其他格式继续使用顶部操作栏;也可以显式传 `top`、`top-center` 或 `bottom-right`。
33
33
  */
34
34
  export type FileViewerToolbarPosition = CoreFileViewerToolbarPosition;
35
35
  /**
@@ -111,6 +111,10 @@ export type FileViewerZoomState = CoreFileViewerZoomState;
111
111
  * canvas、CAD 交互出现坐标偏移。
112
112
  */
113
113
  export type FileViewerZoomProvider = CoreFileViewerZoomProvider;
114
+ export type FileViewerFitMode = CoreFileViewerFitMode;
115
+ export type FileViewerFitResize = CoreFileViewerFitResize;
116
+ export type FileViewerFitOptions = CoreFileViewerFitOptions;
117
+ export type FileViewerFitResult = CoreFileViewerFitResult;
114
118
  /**
115
119
  * 可同步/可恢复的预览视图状态。
116
120
  *
@@ -9,8 +9,9 @@ declare const __VLS_export: import('vue').DefineComponent<FileViewerProps, impor
9
9
  "operation-cancel": (context: import('@file-viewer/core').FileViewerOperationContext) => any;
10
10
  "operation-availability-change": (availability: import('@file-viewer/core').FileViewerOperationAvailability) => any;
11
11
  "location-change": (anchor: import('@file-viewer/core').FileViewerDocumentAnchor | null) => any;
12
- "view-state-change": (change: import('@file-viewer/core').FileViewerViewStateChange) => any;
12
+ "fit-change": (result: import('@file-viewer/core').FileViewerFitResult) => any;
13
13
  "zoom-change": (state: import('@file-viewer/core').FileViewerZoomState) => any;
14
+ "view-state-change": (change: import('@file-viewer/core').FileViewerViewStateChange) => any;
14
15
  }, string, import('vue').PublicProps, Readonly<FileViewerProps> & Readonly<{
15
16
  "onLoad-start"?: ((context: import('@file-viewer/core').FileViewerLifecycleContext) => any) | undefined;
16
17
  "onLoad-complete"?: ((context: import('@file-viewer/core').FileViewerLifecycleContext) => any) | undefined;
@@ -21,8 +22,9 @@ declare const __VLS_export: import('vue').DefineComponent<FileViewerProps, impor
21
22
  "onOperation-cancel"?: ((context: import('@file-viewer/core').FileViewerOperationContext) => any) | undefined;
22
23
  "onOperation-availability-change"?: ((availability: import('@file-viewer/core').FileViewerOperationAvailability) => any) | undefined;
23
24
  "onLocation-change"?: ((anchor: import('@file-viewer/core').FileViewerDocumentAnchor | null) => any) | undefined;
24
- "onView-state-change"?: ((change: import('@file-viewer/core').FileViewerViewStateChange) => any) | undefined;
25
+ "onFit-change"?: ((result: import('@file-viewer/core').FileViewerFitResult) => any) | undefined;
25
26
  "onZoom-change"?: ((state: import('@file-viewer/core').FileViewerZoomState) => any) | undefined;
27
+ "onView-state-change"?: ((change: import('@file-viewer/core').FileViewerViewStateChange) => any) | undefined;
26
28
  }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
27
29
  declare const _default: typeof __VLS_export;
28
30
  export default _default;
@@ -0,0 +1,18 @@
1
+ import { Ref } from 'vue';
2
+ import { FileViewerFitMode, FileViewerFitOptions, FileViewerFitResult, FileViewerOptions } from '@file-viewer/core';
3
+ interface UseViewerFitOptions {
4
+ output: Ref<HTMLDivElement | null>;
5
+ getOptions: () => FileViewerOptions | undefined;
6
+ refreshZoomProvider: () => void;
7
+ refreshViewStateProvider: () => void;
8
+ emitFitChange: (result: FileViewerFitResult) => void;
9
+ }
10
+ export declare const useViewerFit: ({ output, getOptions, refreshZoomProvider, refreshViewStateProvider, emitFitChange }: UseViewerFitOptions) => {
11
+ startFitObserver: () => void;
12
+ stopFitObserver: () => void;
13
+ resetAutoFit: () => void;
14
+ markFitUserInteraction: () => void;
15
+ applyInitialFit: () => Promise<FileViewerFitResult>;
16
+ fitToView: (fit?: FileViewerFitMode | FileViewerFitOptions) => Promise<FileViewerFitResult>;
17
+ };
18
+ export {};
@@ -11,7 +11,7 @@ interface UseViewerErrorStateOptions {
11
11
  currentExtend: ComputedRef<string>;
12
12
  error: ComputedRef<string>;
13
13
  loadingTheme: ComputedRef<FileViewerStateTheme>;
14
- getOptions: () => FileViewerOptions | undefined;
14
+ getOptions?: () => FileViewerOptions | undefined;
15
15
  }
16
16
  /**
17
17
  * FileViewer 组件层的展示派生状态门面。
@@ -24,7 +24,7 @@ export declare const useViewerPresentation: ({ filename, getFile, getUrl, getSou
24
24
  currentExtend: ComputedRef<string>;
25
25
  normalizedToolbar: ComputedRef<import('@file-viewer/core').FileViewerToolbarOptions>;
26
26
  viewerTheme: ComputedRef<import('@file-viewer/core').FileViewerThemeMode>;
27
- formatErrorMessage: import('@file-viewer/core').FileViewerErrorMessageFormatter;
27
+ formatErrorMessage: (prefix: string, error: unknown) => string;
28
28
  };
29
29
  export declare const useViewerErrorState: ({ currentExtend, error, loadingTheme, getOptions }: UseViewerErrorStateOptions) => ComputedRef<import('@file-viewer/core').FileViewerStateDescriptor>;
30
30
  export {};
@@ -5,8 +5,10 @@ interface UseViewerPreviewLifecycleOptions {
5
5
  getSourceFilename?: () => unknown;
6
6
  refreshPreview: () => Promise<void> | void;
7
7
  cancelPreview: (reason: FileViewerLifecycleContext['reason']) => void;
8
+ clearRenderedContent: (reason: FileViewerLifecycleContext['reason']) => void;
8
9
  resetLoading: () => void;
9
10
  stopZoomObserver: () => void;
11
+ stopFitObserver: () => void;
10
12
  stopViewStateObserver: () => void;
11
13
  }
12
14
  /**
@@ -15,5 +17,5 @@ interface UseViewerPreviewLifecycleOptions {
15
17
  * 组件只负责传入当前 source getter 和清理动作;实际加载、取消和缩放状态
16
18
  * 仍由各自 hooks/core controller 负责,避免入口继续散落 watch/unmount 细节。
17
19
  */
18
- export declare const useViewerPreviewLifecycle: ({ getFile, getUrl, getSourceFilename, refreshPreview, cancelPreview, resetLoading, stopZoomObserver, stopViewStateObserver }: UseViewerPreviewLifecycleOptions) => void;
20
+ export declare const useViewerPreviewLifecycle: ({ getFile, getUrl, getSourceFilename, refreshPreview, cancelPreview, clearRenderedContent, resetLoading, stopZoomObserver, stopFitObserver, stopViewStateObserver }: UseViewerPreviewLifecycleOptions) => void;
19
21
  export {};
@@ -14,6 +14,9 @@ interface UseViewerRenderSurfaceOptions {
14
14
  stopZoomObserver: () => void;
15
15
  clearZoomProvider: () => void;
16
16
  refreshZoomProvider: () => void;
17
+ startFitObserver: () => void;
18
+ stopFitObserver: () => void;
19
+ applyInitialFit: () => Promise<unknown> | unknown;
17
20
  startViewStateObserver: () => void;
18
21
  stopViewStateObserver: () => void;
19
22
  clearViewStateProvider: () => void;
@@ -25,7 +28,7 @@ interface UseViewerRenderSurfaceOptions {
25
28
  * 它只管理 Vue component package 的 DOM surface、渲染 session 和 export adapter;
26
29
  * 具体格式派发仍由 core registry + Vue renderer bridge 完成。
27
30
  */
28
- export declare const useViewerRenderSurface: ({ output, getOptions, isCurrentRequest, notifyActiveUnloadStart, notifyActiveUnloadComplete, clearActiveDocumentContext, clearDocumentState, refreshDocumentIndex, startZoomObserver, stopZoomObserver, clearZoomProvider, refreshZoomProvider, startViewStateObserver, stopViewStateObserver, clearViewStateProvider, refreshViewStateProvider }: UseViewerRenderSurfaceOptions) => {
31
+ export declare const useViewerRenderSurface: ({ output, getOptions, isCurrentRequest, notifyActiveUnloadStart, notifyActiveUnloadComplete, clearActiveDocumentContext, clearDocumentState, refreshDocumentIndex, startZoomObserver, stopZoomObserver, clearZoomProvider, refreshZoomProvider, startFitObserver, stopFitObserver, applyInitialFit, startViewStateObserver, stopViewStateObserver, clearViewStateProvider, refreshViewStateProvider }: UseViewerRenderSurfaceOptions) => {
29
32
  destroyRenderSession: (session?: FileViewerVueRenderSession | null | undefined) => void;
30
33
  setActiveRenderSession: (session: FileViewerVueRenderSession | null) => import('@file-viewer/core').MutableFileViewerRenderSurfaceState<FileViewerVueRenderSession>;
31
34
  clearRenderedContent: (reason?: FileViewerLifecycleContext["reason"]) => import('@file-viewer/core').FileViewerRenderSurfaceClearState<FileViewerVueRenderSession, FileViewerLifecycleContext | null>;
@@ -1,5 +1,5 @@
1
1
  import { ComputedRef, Ref, ShallowRef } from 'vue';
2
- import { FileRenderExportAdapter, FileViewerOperationAvailability, FileViewerOptions, FileViewerToolbarOptions, FileViewerToolbarPosition, FileViewerZoomState } from '@file-viewer/core';
2
+ import { FileRenderExportAdapter, FileViewerOperationAvailability, FileViewerOptions, FileViewerResolvedToolbarItem, FileViewerToolbarOptions, FileViewerToolbarPosition, FileViewerZoomState } from '@file-viewer/core';
3
3
  interface UseViewerToolbarOptions {
4
4
  activeExportAdapter: ShallowRef<FileRenderExportAdapter | null>;
5
5
  currentBuffer: Ref<ArrayBuffer | null>;
@@ -25,6 +25,7 @@ interface UseViewerToolbarOptions {
25
25
  export declare const useViewerToolbar: ({ activeExportAdapter, currentBuffer, currentExtend, currentFile, currentSourceUrl, error, getOptions, getZoomState, loading, normalizedToolbar, renderedReady, zoomState, emitOperationAvailabilityChange, emitZoomChange }: UseViewerToolbarOptions) => {
26
26
  operationAvailability: ComputedRef<FileViewerOperationAvailability>;
27
27
  visibleToolbar: ComputedRef<FileViewerToolbarOptions>;
28
+ toolbarOrder: ComputedRef<FileViewerResolvedToolbarItem[]>;
28
29
  showToolbar: ComputedRef<boolean>;
29
30
  toolbarPosition: ComputedRef<FileViewerToolbarPosition>;
30
31
  toolbarDisabled: ComputedRef<boolean>;
@@ -1,4 +1,4 @@
1
- import { FileViewerAiOptions, FileViewerApplyViewStateOptions, FileViewerArchiveOptions, FileViewerCadOptions, FileViewerDocxOptions, FileViewerDocumentAnchor, FileViewerDocumentChunk, FileViewerEvent, FileViewerEventHandler, FileViewerEventType, FileViewerFileRef, FileViewerInstance, FileViewerLifecycleContext, FileViewerOperationAvailability, FileViewerOperationContext, FileViewerOptions, FileViewerPdfOptions, FileViewerSpreadsheetOptions, FileViewerPublicApi, FileViewerSearchOptions, FileViewerSearchState, FileViewerThemeMode, FileViewerToolbarOptions, FileViewerToolbarPosition, FileViewerTypstOptions, FileViewerViewState, FileViewerWatermarkOptions, FileViewerZoomState, RendererRegistry } from '@file-viewer/core';
1
+ import { FileViewerAiOptions, FileViewerApplyViewStateOptions, FileViewerArchiveOptions, FileViewerCadOptions, FileViewerDocxOptions, FileViewerDocumentAnchor, FileViewerDocumentChunk, FileViewerEvent, FileViewerEventHandler, FileViewerEventType, FileViewerFileRef, FileViewerFitMode, FileViewerFitOptions, FileViewerFitResult, FileViewerInstance, FileViewerLifecycleContext, FileViewerOperationAvailability, FileViewerOperationContext, FileViewerOptions, FileViewerPdfOptions, FileViewerSpreadsheetOptions, FileViewerPublicApi, FileViewerSearchOptions, FileViewerSearchState, FileViewerThemeMode, FileViewerToolbarOptions, FileViewerToolbarPosition, FileViewerTypstOptions, FileViewerViewState, FileViewerWatermarkOptions, FileViewerZoomState, RendererRegistry } from '@file-viewer/core';
2
2
  export type FileRef = FileViewerFileRef;
3
3
  export type ViewerWatermarkOptions = FileViewerWatermarkOptions;
4
4
  export type ViewerToolbarPosition = FileViewerToolbarPosition;
@@ -11,6 +11,9 @@ export type ViewerTypstOptions = FileViewerTypstOptions;
11
11
  export type ViewerCadOptions = FileViewerCadOptions;
12
12
  export type ViewerSearchOptions = FileViewerSearchOptions;
13
13
  export type ViewerAiOptions = FileViewerAiOptions;
14
+ export type ViewerFitMode = FileViewerFitMode;
15
+ export type ViewerFitOptions = FileViewerFitOptions;
16
+ export type ViewerFitResult = FileViewerFitResult;
14
17
  export type ViewerViewState = FileViewerViewState;
15
18
  export type ViewerApplyViewStateOptions = FileViewerApplyViewStateOptions;
16
19
  export type ViewerThemeMode = FileViewerThemeMode;
@@ -78,6 +81,7 @@ export interface ViewerController {
78
81
  zoomIn(): Promise<FileViewerZoomState | null>;
79
82
  zoomOut(): Promise<FileViewerZoomState | null>;
80
83
  resetZoom(): Promise<FileViewerZoomState | null>;
84
+ fitToView(fit?: FileViewerFitMode | FileViewerFitOptions): Promise<FileViewerFitResult | null>;
81
85
  getViewState(): FileViewerViewState | null;
82
86
  applyViewState(state: FileViewerViewState, options?: FileViewerApplyViewStateOptions): Promise<FileViewerViewState | null>;
83
87
  searchDocument(query: string): Promise<FileViewerSearchState | null>;
@@ -108,6 +112,7 @@ export interface ViewerControllerHandle {
108
112
  zoomIn(): Promise<FileViewerZoomState | null>;
109
113
  zoomOut(): Promise<FileViewerZoomState | null>;
110
114
  resetZoom(): Promise<FileViewerZoomState | null>;
115
+ fitToView(fit?: FileViewerFitMode | FileViewerFitOptions): Promise<FileViewerFitResult | null>;
111
116
  getViewState(): FileViewerViewState | null;
112
117
  applyViewState(state: FileViewerViewState, options?: FileViewerApplyViewStateOptions): Promise<FileViewerViewState | null>;
113
118
  searchDocument(query: string): Promise<FileViewerSearchState | null>;
package/dist/vue3.css CHANGED
@@ -1,2 +1,2 @@
1
- .file-viewer[data-v-acf80bed]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;background:#fff;flex-direction:column;width:100%;height:100%;display:flex;position:relative}.file-viewer[data-viewer-theme=dark][data-v-acf80bed]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background:#0f171d}.viewer-stage[data-v-acf80bed]{flex-direction:column;flex:1;min-height:0;display:flex;position:relative;overflow:hidden}.viewer-actions[data-v-acf80bed]{background:rgba(255,255,255,.92);border-bottom:1px solid rgba(20,35,53,.06);flex-shrink:0;justify-content:flex-end;align-items:center;gap:6px;min-height:45px;padding:6px 10px;display:inline-flex}.viewer-actions--floating[data-v-acf80bed]{z-index:30;right:calc(16px + env(safe-area-inset-right,0px));bottom:calc(16px + env(safe-area-inset-bottom,0px));-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:rgba(255,255,255,.94);border:1px solid rgba(20,35,53,.1);border-radius:999px;min-height:42px;padding:6px;position:absolute;box-shadow:0 18px 44px rgba(15,23,42,.16)}.viewer-actions-group[data-v-acf80bed]{background:rgba(20,35,53,.035);border:1px solid rgba(20,35,53,.08);border-radius:999px;align-items:center;gap:2px;padding:2px;display:inline-flex}.viewer-actions button[data-v-acf80bed]{color:#40546a;min-width:42px;height:30px;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:8px;padding:0 10px;font-size:12px;font-weight:800}.viewer-actions .viewer-icon-button[data-v-acf80bed]{justify-content:center;align-items:center;width:30px;min-width:30px;padding:0;display:inline-flex}.viewer-actions .viewer-zoom-meter[data-v-acf80bed]{box-sizing:border-box;color:#23465e;justify-content:center;align-items:center;min-width:48px;height:30px;padding:0 8px;display:inline-flex}.viewer-actions .viewer-zoom-meter--readonly[data-v-acf80bed]{white-space:nowrap;font-size:12px;font-weight:800;line-height:1}.viewer-actions--floating button[data-v-acf80bed]{border-radius:999px;min-width:48px;height:32px}.viewer-actions--floating .viewer-icon-button[data-v-acf80bed]{width:32px;min-width:32px}.viewer-actions--floating .viewer-zoom-meter[data-v-acf80bed]{min-width:54px;height:32px}.viewer-actions button[data-v-acf80bed]:hover:not(:disabled){color:#16774c;background:rgba(33,163,102,.1)}.viewer-actions button[data-v-acf80bed]:disabled{color:#aab5c0;cursor:not-allowed}.viewer-content-shell[data-v-acf80bed]{flex:1;min-height:0;position:relative;overflow:hidden}.content[data-v-acf80bed]{background:#f2f2f2;width:100%;height:100%;display:block;overflow:auto}.content.hidden[data-v-acf80bed]{visibility:hidden}.flyfish-search-match{color:inherit;background:rgba(255,214,102,.72);border-radius:4px;padding:0 2px;box-shadow:0 0 0 1px rgba(185,128,0,.14)}.flyfish-search-match--active{background:rgba(47,191,122,.82);box-shadow:0 0 0 2px rgba(30,132,83,.24)}.viewer-watermark[data-v-acf80bed]{z-index:20;pointer-events:none;background-repeat:repeat;position:absolute;top:0;bottom:0;left:0;right:0}.state-panel[data-v-acf80bed]{z-index:40;background:linear-gradient(rgba(255,255,255,.92),rgba(246,248,249,.98));justify-content:center;align-items:center;padding:24px;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.loading-card[data-v-acf80bed],.error-card[data-v-acf80bed]{background:rgba(255,255,255,.92);border:1px solid rgba(19,36,55,.06);border-radius:24px;align-items:center;gap:18px;width:min(100%,460px);padding:22px;display:flex;box-shadow:0 18px 42px rgba(15,31,47,.12)}.loading-icon[data-v-acf80bed]{background:linear-gradient(135deg, var(--viewer-accent) 0%, var(--viewer-accent) 100%);color:#fff;letter-spacing:.04em;border-radius:20px;flex-shrink:0;justify-content:center;align-items:center;min-width:70px;height:70px;padding:0 12px;font-size:22px;font-weight:800;display:inline-flex;box-shadow:0 14px 30px rgba(17,28,40,.14)}.loading-copy[data-v-acf80bed]{flex:1;min-width:0}.loading-kicker[data-v-acf80bed]{color:var(--viewer-accent);letter-spacing:.08em;text-transform:uppercase;font-size:12px;font-weight:700;display:block}.loading-copy strong[data-v-acf80bed],.error-card strong[data-v-acf80bed]{color:#16283b;margin-top:4px;font-size:20px;line-height:1.2;display:block}.loading-copy p[data-v-acf80bed],.error-card p[data-v-acf80bed]{color:#6a7d90;margin:8px 0 0;line-height:1.6}.loading-ring[data-v-acf80bed]{border:3px solid var(--viewer-soft);border-top-color:var(--viewer-accent);border-radius:999px;flex-shrink:0;width:38px;height:38px;animation:.9s linear infinite viewer-spin-acf80bed}.error-card[data-v-acf80bed]{text-align:center;display:block}.error-card strong[data-v-acf80bed]{color:#b42318}.file-viewer[data-viewer-theme=dark] .viewer-actions--floating[data-v-acf80bed]{background:rgba(14,22,28,.94);border-color:rgba(167,185,198,.16);box-shadow:0 20px 52px rgba(0,0,0,.34)}.file-viewer[data-viewer-theme=dark] .viewer-actions[data-v-acf80bed]{background:rgba(14,22,28,.94);border-bottom-color:rgba(167,185,198,.12)}.file-viewer[data-viewer-theme=dark] .viewer-actions button[data-v-acf80bed]{color:#b8c7d5}.file-viewer[data-viewer-theme=dark] .viewer-actions-group[data-v-acf80bed]{background:rgba(167,185,198,.08);border-color:rgba(167,185,198,.13)}.file-viewer[data-viewer-theme=dark] .viewer-actions button[data-v-acf80bed]:hover:not(:disabled){color:#5ee0ae;background:rgba(45,212,154,.14)}.file-viewer[data-viewer-theme=dark] .viewer-actions button[data-v-acf80bed]:disabled{color:#667888}.file-viewer[data-viewer-theme=dark] .content[data-v-acf80bed]{background:#141c23}.file-viewer[data-viewer-theme=dark] .state-panel[data-v-acf80bed]{background:linear-gradient(rgba(15,23,30,.92),rgba(11,17,22,.98))}.file-viewer[data-viewer-theme=dark] .loading-card[data-v-acf80bed],.file-viewer[data-viewer-theme=dark] .error-card[data-v-acf80bed]{background:rgba(19,29,37,.94);border-color:rgba(139,161,177,.16);box-shadow:0 22px 52px rgba(0,0,0,.34)}.file-viewer[data-viewer-theme=dark] .loading-copy strong[data-v-acf80bed],.file-viewer[data-viewer-theme=dark] .error-card strong[data-v-acf80bed]{color:#eff7fb}.file-viewer[data-viewer-theme=dark] .loading-copy p[data-v-acf80bed],.file-viewer[data-viewer-theme=dark] .error-card p[data-v-acf80bed]{color:#9eb0bf}.file-viewer[data-viewer-theme=dark] .error-card strong[data-v-acf80bed]{color:#ff9c91}@keyframes viewer-spin-acf80bed{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (prefers-color-scheme:dark){.file-viewer[data-viewer-theme=system][data-v-acf80bed]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background:#0f171d}.file-viewer[data-viewer-theme=system] .viewer-actions--floating[data-v-acf80bed]{background:rgba(14,22,28,.94);border-color:rgba(167,185,198,.16);box-shadow:0 20px 52px rgba(0,0,0,.34)}.file-viewer[data-viewer-theme=system] .viewer-actions[data-v-acf80bed]{background:rgba(14,22,28,.94);border-bottom-color:rgba(167,185,198,.12)}.file-viewer[data-viewer-theme=system] .viewer-actions button[data-v-acf80bed]{color:#b8c7d5}.file-viewer[data-viewer-theme=system] .viewer-actions-group[data-v-acf80bed]{background:rgba(167,185,198,.08);border-color:rgba(167,185,198,.13)}.file-viewer[data-viewer-theme=system] .viewer-actions button[data-v-acf80bed]:hover:not(:disabled){color:#5ee0ae;background:rgba(45,212,154,.14)}.file-viewer[data-viewer-theme=system] .viewer-actions button[data-v-acf80bed]:disabled{color:#667888}.file-viewer[data-viewer-theme=system] .content[data-v-acf80bed]{background:#141c23}.file-viewer[data-viewer-theme=system] .state-panel[data-v-acf80bed]{background:linear-gradient(rgba(15,23,30,.92),rgba(11,17,22,.98))}.file-viewer[data-viewer-theme=system] .loading-card[data-v-acf80bed],.file-viewer[data-viewer-theme=system] .error-card[data-v-acf80bed]{background:rgba(19,29,37,.94);border-color:rgba(139,161,177,.16);box-shadow:0 22px 52px rgba(0,0,0,.34)}.file-viewer[data-viewer-theme=system] .loading-copy strong[data-v-acf80bed],.file-viewer[data-viewer-theme=system] .error-card strong[data-v-acf80bed]{color:#eff7fb}.file-viewer[data-viewer-theme=system] .loading-copy p[data-v-acf80bed],.file-viewer[data-viewer-theme=system] .error-card p[data-v-acf80bed]{color:#9eb0bf}.file-viewer[data-viewer-theme=system] .error-card strong[data-v-acf80bed]{color:#ff9c91}}@media (max-width:767px){.viewer-actions--floating[data-v-acf80bed]{right:calc(10px + env(safe-area-inset-right,0px));bottom:calc(10px + env(safe-area-inset-bottom,0px));gap:4px;max-width:calc(100% - 20px);padding:5px;overflow-x:auto}.viewer-actions--floating button[data-v-acf80bed]{min-width:40px;height:30px;padding:0 9px}}.file-render{width:100%;min-width:0;height:100%;min-height:0}
1
+ .file-viewer[data-v-339c52c3]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;background:#fff;flex-direction:column;width:100%;height:100%;display:flex;position:relative}.file-viewer[data-viewer-theme=dark][data-v-339c52c3]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background:#0f171d}.viewer-stage[data-v-339c52c3]{flex-direction:column;flex:1;min-height:0;display:flex;position:relative;overflow:hidden}.viewer-actions[data-v-339c52c3]{background:rgba(255,255,255,.92);border-bottom:1px solid rgba(20,35,53,.06);flex-shrink:0;justify-content:flex-end;align-items:center;gap:6px;min-height:45px;padding:6px 10px;display:inline-flex}.viewer-actions[data-toolbar-position=top-center][data-v-339c52c3]{justify-content:center}.viewer-actions--floating[data-v-339c52c3]{z-index:30;right:calc(16px + env(safe-area-inset-right,0px));bottom:calc(16px + env(safe-area-inset-bottom,0px));-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:rgba(255,255,255,.94);border:1px solid rgba(20,35,53,.1);border-radius:999px;min-height:42px;padding:6px;position:absolute;box-shadow:0 18px 44px rgba(15,23,42,.16)}.viewer-actions-group[data-v-339c52c3]{background:rgba(20,35,53,.035);border:1px solid rgba(20,35,53,.08);border-radius:999px;align-items:center;gap:2px;padding:2px;display:inline-flex}.viewer-actions button[data-v-339c52c3]{color:#40546a;min-width:42px;height:30px;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:8px;padding:0 10px;font-size:12px;font-weight:800}.viewer-actions .viewer-icon-button[data-v-339c52c3]{justify-content:center;align-items:center;width:30px;min-width:30px;padding:0;display:inline-flex}.viewer-actions .viewer-zoom-meter[data-v-339c52c3]{box-sizing:border-box;color:#23465e;justify-content:center;align-items:center;min-width:48px;height:30px;padding:0 8px;display:inline-flex}.viewer-actions .viewer-zoom-meter--readonly[data-v-339c52c3]{white-space:nowrap;font-size:12px;font-weight:800;line-height:1}.viewer-actions--floating button[data-v-339c52c3]{border-radius:999px;min-width:48px;height:32px}.viewer-actions--floating .viewer-icon-button[data-v-339c52c3]{width:32px;min-width:32px}.viewer-actions--floating .viewer-zoom-meter[data-v-339c52c3]{min-width:54px;height:32px}.viewer-actions button[data-v-339c52c3]:hover:not(:disabled){color:#16774c;background:rgba(33,163,102,.1)}.viewer-actions button[data-v-339c52c3]:disabled{color:#aab5c0;cursor:not-allowed}.viewer-content-shell[data-v-339c52c3]{flex:1;min-height:0;position:relative;overflow:hidden}.content[data-v-339c52c3]{background:#f2f2f2;width:100%;height:100%;display:block;overflow:auto}.content.hidden[data-v-339c52c3]{visibility:hidden}.flyfish-search-match{color:inherit;background:rgba(255,214,102,.72);border-radius:4px;padding:0 2px;box-shadow:0 0 0 1px rgba(185,128,0,.14)}.flyfish-search-match--active{background:rgba(47,191,122,.82);box-shadow:0 0 0 2px rgba(30,132,83,.24)}.viewer-watermark[data-v-339c52c3]{z-index:20;pointer-events:none;background-repeat:repeat;position:absolute;top:0;bottom:0;left:0;right:0}.state-panel[data-v-339c52c3]{z-index:40;background:linear-gradient(rgba(255,255,255,.92),rgba(246,248,249,.98));justify-content:center;align-items:center;padding:24px;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.loading-card[data-v-339c52c3],.error-card[data-v-339c52c3]{background:rgba(255,255,255,.92);border:1px solid rgba(19,36,55,.06);border-radius:24px;align-items:center;gap:18px;width:min(100%,460px);padding:22px;display:flex;box-shadow:0 18px 42px rgba(15,31,47,.12)}.loading-icon[data-v-339c52c3]{background:linear-gradient(135deg, var(--viewer-accent) 0%, var(--viewer-accent) 100%);color:#fff;letter-spacing:.04em;border-radius:20px;flex-shrink:0;justify-content:center;align-items:center;min-width:70px;height:70px;padding:0 12px;font-size:22px;font-weight:800;display:inline-flex;box-shadow:0 14px 30px rgba(17,28,40,.14)}.loading-copy[data-v-339c52c3]{flex:1;min-width:0}.loading-kicker[data-v-339c52c3]{color:var(--viewer-accent);letter-spacing:.08em;text-transform:uppercase;font-size:12px;font-weight:700;display:block}.loading-copy strong[data-v-339c52c3],.error-card strong[data-v-339c52c3]{color:#16283b;margin-top:4px;font-size:20px;line-height:1.2;display:block}.loading-copy p[data-v-339c52c3],.error-card p[data-v-339c52c3]{color:#6a7d90;margin:8px 0 0;line-height:1.6}.loading-ring[data-v-339c52c3]{border:3px solid var(--viewer-soft);border-top-color:var(--viewer-accent);border-radius:999px;flex-shrink:0;width:38px;height:38px;animation:.9s linear infinite viewer-spin-339c52c3}.error-card[data-v-339c52c3]{text-align:center;display:block}.error-card strong[data-v-339c52c3]{color:#b42318}.file-viewer[data-viewer-theme=dark] .viewer-actions--floating[data-v-339c52c3]{background:rgba(14,22,28,.94);border-color:rgba(167,185,198,.16);box-shadow:0 20px 52px rgba(0,0,0,.34)}.file-viewer[data-viewer-theme=dark] .viewer-actions[data-v-339c52c3]{background:rgba(14,22,28,.94);border-bottom-color:rgba(167,185,198,.12)}.file-viewer[data-viewer-theme=dark] .viewer-actions button[data-v-339c52c3]{color:#b8c7d5}.file-viewer[data-viewer-theme=dark] .viewer-actions-group[data-v-339c52c3]{background:rgba(167,185,198,.08);border-color:rgba(167,185,198,.13)}.file-viewer[data-viewer-theme=dark] .viewer-actions button[data-v-339c52c3]:hover:not(:disabled){color:#5ee0ae;background:rgba(45,212,154,.14)}.file-viewer[data-viewer-theme=dark] .viewer-actions button[data-v-339c52c3]:disabled{color:#667888}.file-viewer[data-viewer-theme=dark] .content[data-v-339c52c3]{background:#141c23}.file-viewer[data-viewer-theme=dark] .state-panel[data-v-339c52c3]{background:linear-gradient(rgba(15,23,30,.92),rgba(11,17,22,.98))}.file-viewer[data-viewer-theme=dark] .loading-card[data-v-339c52c3],.file-viewer[data-viewer-theme=dark] .error-card[data-v-339c52c3]{background:rgba(19,29,37,.94);border-color:rgba(139,161,177,.16);box-shadow:0 22px 52px rgba(0,0,0,.34)}.file-viewer[data-viewer-theme=dark] .loading-copy strong[data-v-339c52c3],.file-viewer[data-viewer-theme=dark] .error-card strong[data-v-339c52c3]{color:#eff7fb}.file-viewer[data-viewer-theme=dark] .loading-copy p[data-v-339c52c3],.file-viewer[data-viewer-theme=dark] .error-card p[data-v-339c52c3]{color:#9eb0bf}.file-viewer[data-viewer-theme=dark] .error-card strong[data-v-339c52c3]{color:#ff9c91}@keyframes viewer-spin-339c52c3{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (prefers-color-scheme:dark){.file-viewer[data-viewer-theme=system][data-v-339c52c3]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background:#0f171d}.file-viewer[data-viewer-theme=system] .viewer-actions--floating[data-v-339c52c3]{background:rgba(14,22,28,.94);border-color:rgba(167,185,198,.16);box-shadow:0 20px 52px rgba(0,0,0,.34)}.file-viewer[data-viewer-theme=system] .viewer-actions[data-v-339c52c3]{background:rgba(14,22,28,.94);border-bottom-color:rgba(167,185,198,.12)}.file-viewer[data-viewer-theme=system] .viewer-actions button[data-v-339c52c3]{color:#b8c7d5}.file-viewer[data-viewer-theme=system] .viewer-actions-group[data-v-339c52c3]{background:rgba(167,185,198,.08);border-color:rgba(167,185,198,.13)}.file-viewer[data-viewer-theme=system] .viewer-actions button[data-v-339c52c3]:hover:not(:disabled){color:#5ee0ae;background:rgba(45,212,154,.14)}.file-viewer[data-viewer-theme=system] .viewer-actions button[data-v-339c52c3]:disabled{color:#667888}.file-viewer[data-viewer-theme=system] .content[data-v-339c52c3]{background:#141c23}.file-viewer[data-viewer-theme=system] .state-panel[data-v-339c52c3]{background:linear-gradient(rgba(15,23,30,.92),rgba(11,17,22,.98))}.file-viewer[data-viewer-theme=system] .loading-card[data-v-339c52c3],.file-viewer[data-viewer-theme=system] .error-card[data-v-339c52c3]{background:rgba(19,29,37,.94);border-color:rgba(139,161,177,.16);box-shadow:0 22px 52px rgba(0,0,0,.34)}.file-viewer[data-viewer-theme=system] .loading-copy strong[data-v-339c52c3],.file-viewer[data-viewer-theme=system] .error-card strong[data-v-339c52c3]{color:#eff7fb}.file-viewer[data-viewer-theme=system] .loading-copy p[data-v-339c52c3],.file-viewer[data-viewer-theme=system] .error-card p[data-v-339c52c3]{color:#9eb0bf}.file-viewer[data-viewer-theme=system] .error-card strong[data-v-339c52c3]{color:#ff9c91}}@media (max-width:767px){.viewer-actions--floating[data-v-339c52c3]{right:calc(10px + env(safe-area-inset-right,0px));bottom:calc(10px + env(safe-area-inset-bottom,0px));gap:4px;max-width:calc(100% - 20px);padding:5px;overflow-x:auto}.viewer-actions--floating button[data-v-339c52c3]{min-width:40px;height:30px;padding:0 9px}}.file-render{width:100%;min-width:0;height:100%;min-height:0}
2
2
  /*$vite$:1*/
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@file-viewer/vue3",
3
- "version": "2.1.17",
3
+ "version": "2.1.19",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "description": "Standard Vue 3 package for Flyfish File Viewer",
@@ -52,7 +52,7 @@
52
52
  },
53
53
  "types": "dist/src/package/index.d.ts",
54
54
  "dependencies": {
55
- "@file-viewer/core": "^2.1.17",
55
+ "@file-viewer/core": "^2.1.19",
56
56
  "@lucide/vue": "^1.17.0",
57
57
  "vue": "^3.5.35"
58
58
  },