@filens/vue 0.0.0-stage → 0.1.1

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.
Files changed (40) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +198 -2
  3. package/dist/IworkPreview.vue.d.ts +40 -0
  4. package/dist/PptxPreview.vue.d.ts +38 -0
  5. package/dist/Preview.vue.d.ts +140 -0
  6. package/dist/components/SlideThumbnail.vue.d.ts +12 -0
  7. package/dist/defaults.d.ts +4 -0
  8. package/dist/i18n.d.ts +2900 -0
  9. package/dist/index.d.ts +8 -0
  10. package/dist/index.js +5158 -0
  11. package/dist/locales/ca_ES.json.d.ts +106 -0
  12. package/dist/locales/cs_CZ.json.d.ts +106 -0
  13. package/dist/locales/da_DK.json.d.ts +106 -0
  14. package/dist/locales/de_DE.json.d.ts +106 -0
  15. package/dist/locales/el_GR.json.d.ts +106 -0
  16. package/dist/locales/en_GB.json.d.ts +106 -0
  17. package/dist/locales/en_US.json.d.ts +106 -0
  18. package/dist/locales/es_ES.json.d.ts +106 -0
  19. package/dist/locales/fr_FR.json.d.ts +106 -0
  20. package/dist/locales/ga_IE.json.d.ts +106 -0
  21. package/dist/locales/hr_HR.json.d.ts +106 -0
  22. package/dist/locales/hu_HU.json.d.ts +106 -0
  23. package/dist/locales/it_IT.json.d.ts +106 -0
  24. package/dist/locales/ja_JP.json.d.ts +106 -0
  25. package/dist/locales/ko_KR.json.d.ts +106 -0
  26. package/dist/locales/ml_IN.json.d.ts +106 -0
  27. package/dist/locales/nb_NO.json.d.ts +106 -0
  28. package/dist/locales/nl_NL.json.d.ts +106 -0
  29. package/dist/locales/pl_PL.json.d.ts +106 -0
  30. package/dist/locales/pt_BR.json.d.ts +106 -0
  31. package/dist/locales/pt_PT.json.d.ts +106 -0
  32. package/dist/locales/ro_RO.json.d.ts +106 -0
  33. package/dist/locales/ru_RU.json.d.ts +106 -0
  34. package/dist/locales/sk_SK.json.d.ts +106 -0
  35. package/dist/locales/sv_SE.json.d.ts +106 -0
  36. package/dist/locales/tr_TR.json.d.ts +106 -0
  37. package/dist/locales/zh_CN.json.d.ts +106 -0
  38. package/dist/locales/zh_TW.json.d.ts +106 -0
  39. package/dist/style.css +1 -0
  40. package/package.json +64 -4
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 FiLens contributors
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 CHANGED
@@ -1,3 +1,199 @@
1
- # Temporary Holding Version
1
+ # @filens/vue
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ Vue 3 components for the shared preview engines: `Preview` is the all-format entry;
4
+ `PptxPreview` and `IworkPreview` provide specialized viewers. For a ready-to-deploy
5
+ single JS file or split modules including Vue, see the [standalone builds](../preview/README.md).
6
+
7
+ ## All-format entry
8
+
9
+ ```vue
10
+ <script setup lang="ts">
11
+ import { Preview } from '@filens/vue';
12
+ import '@filens/vue/style.css';
13
+ </script>
14
+
15
+ <template>
16
+ <Preview src="/report.pdf" name="report.pdf" />
17
+ </template>
18
+ ```
19
+
20
+ `src` also accepts a `File`, `Blob` or byte array; provide `name` or `extension`
21
+ when the source has no filename. Legacy Office and RAW previews need a
22
+ `converter` configured with `createWasmConverterClient({ wasm, imageWasm, officeWasm })`
23
+ from `@filens/converter-client`. See the demo for complete WASM asset wiring.
24
+
25
+ `officeWasm` points to the optional `converter-office.wasm` asset. The current
26
+ core detects encrypted Office documents itself and loads this module only after
27
+ password submission. Omitting it retains ordinary conversions and password
28
+ prompts; encrypted conversions with a supplied password return `engine_unavailable`.
29
+ The standalone `@filens/preview` builds wire the module automatically.
30
+
31
+ ## Languages (source build)
32
+
33
+ All three preview components accept `locale` and `messages`. Toolbars, model
34
+ controls, loading states and password prompts include 28 locale dictionaries,
35
+ using the same codes as ZimaOS:
36
+
37
+ ```text
38
+ en_US en_GB it_IT nb_NO zh_CN zh_TW ja_JP ko_KR fr_FR de_DE sv_SE da_DK
39
+ nl_NL es_ES ca_ES pt_PT pt_BR pl_PL cs_CZ sk_SK hu_HU ro_RO hr_HR ru_RU
40
+ tr_TR el_GR ga_IE ml_IN
41
+ ```
42
+
43
+ BCP 47 tags such as `zh-CN`, `zh-Hant` and `pt-BR` also work. Omit `locale` to
44
+ use the browser's preferred supported language; unsupported languages fall back
45
+ to English. Locale changes update controls without reopening the document.
46
+ Translations are ordinary strings rendered as text, with no `vue-i18n` dependency.
47
+ Document content, source warnings and driver errors retain their original text.
48
+
49
+ ```vue
50
+ <Preview :src="file" :locale="zimaosLocale" :messages="{ Next: 'Forward' }" />
51
+ ```
52
+
53
+ `messages` maps English source phrases to host strings for that component only.
54
+ For example, `Warnings: {count}` preserves its named placeholder. Exported
55
+ `previewLocales` lists available codes; `resolvePreviewLocale()` normalizes host
56
+ locale tags. Standalone `createPreview()` accepts the same options and supports
57
+ `viewer.update({ locale: 'ja_JP' })`.
58
+
59
+ ## Application icons (source build)
60
+
61
+ APK and IPA packages open as ZIP-compatible archives by default, with directory
62
+ browsing and entry previews. Windows EXE/DLL/MUI/MUN resource containers use the
63
+ shared WASM core to extract their application icon as PNG, then display it with
64
+ the normal image controls. The core also converts ICO to PNG; browser-native ICO
65
+ preview and existing ICNS preview remain available. No application is executed.
66
+ Configure `converter` as for legacy Office previews. APK/IPA icon extraction is
67
+ available through explicit conversion requests.
68
+
69
+ APK extraction follows the application's compiled manifest icon resource through
70
+ `resources.arsc`, including obfuscated paths and raster-backed adaptive XML. IPA
71
+ extraction uses the main `.app` bundle's XML or binary plist icon declarations,
72
+ selects the largest raster and normalizes iOS CgBI PNGs. PE extraction uses resource
73
+ RVA mapping and icon group IDs, with PNG and 1/4/8/24/32-bit DIB frames and masks.
74
+ Vector-only Android icons, asset-catalog-only IPA icons, legacy ICNS planes,
75
+ JPEG 2000 icons and OS-resolved `.app`/`.desktop` folder icons are not decoded.
76
+ Missing or unsupported icons produce a parse error.
77
+
78
+ ## Install
79
+
80
+ ```bash
81
+ npm install @filens/vue @filens/core @filens/iwork
82
+ ```
83
+
84
+ `vue` is a peer dependency and must be provided by the host app.
85
+
86
+ ## Password-protected documents
87
+
88
+ The generic `Preview` component prompts for passwords when opening encrypted PDFs
89
+ and Office documents. Configure its `converter` with `createWasmConverterClient()`
90
+ for Office decryption in the browser. Supported Office encryption includes Agile,
91
+ Office 2007 Standard, legacy RC4 CryptoAPI and XLS XOR obfuscation; rights-managed
92
+ documents and other unsupported encryption methods report a format error.
93
+
94
+ The password form supports incorrect-password retries, cancellation and reopening.
95
+ It clears the entered password after submission, cancellation or changing files.
96
+ The optional `password` prop supplies a known password; `requestPassword` replaces
97
+ the built-in form with a host callback using `PreviewOptions['requestPassword']`.
98
+
99
+ ## Usage
100
+
101
+ ```vue
102
+ <script setup lang="ts">
103
+ import { IworkPreview, PptxPreview } from '@filens/vue';
104
+ import '@filens/vue/style.css';
105
+
106
+ const src = '/samples/sample-deck.pptx';
107
+ const keySrc = '/samples/a.key';
108
+ </script>
109
+
110
+ <template>
111
+ <PptxPreview :src="src" fit="contain" :toolbar="true" :thumbnails="true" />
112
+ <IworkPreview :src="keySrc" type="key" :toolbar="true" :thumbnails="true" />
113
+ </template>
114
+ ```
115
+
116
+ ## `PptxPreview` Props
117
+
118
+ ```ts
119
+ interface PptxPreviewProps {
120
+ src: string | ArrayBuffer | Uint8Array | Blob | File;
121
+ fit?: 'contain' | 'width' | 'none';
122
+ initialScale?: number;
123
+ minScale?: number;
124
+ maxScale?: number;
125
+ toolbar?: boolean;
126
+ thumbnails?: boolean;
127
+ }
128
+ ```
129
+
130
+ ## `PptxPreview` Emits
131
+
132
+ - `rendered`
133
+ - `error`
134
+ - `slide-change`
135
+ - `scale-change`
136
+ - `warnings`
137
+
138
+ ## `IworkPreview` Props
139
+
140
+ ```ts
141
+ interface IworkPreviewProps {
142
+ src: string | ArrayBuffer | Uint8Array | Blob | File;
143
+ type?: 'auto' | 'key' | 'pages' | 'numbers';
144
+ initialScale?: number;
145
+ minScale?: number;
146
+ maxScale?: number;
147
+ toolbar?: boolean;
148
+ thumbnails?: boolean;
149
+ }
150
+ ```
151
+
152
+ ## `IworkPreview` Emits
153
+
154
+ - `rendered`
155
+ - `error`
156
+ - `warnings`
157
+ - `page-change`
158
+ - `sheet-change`
159
+ - `scale-change`
160
+
161
+ ## Behavior
162
+
163
+ The components are designed to feel close to the `vue-office` direct-`src` usage pattern:
164
+
165
+ - pass `src` directly as a URL or binary source
166
+ - source changes trigger a fresh preview automatically
167
+ - the old preview task is discarded by the viewer lifecycle
168
+ - toolbar and thumbnails are built in
169
+ - `IworkPreview` automatically switches between paged and sheet-oriented behavior depending on document kind
170
+
171
+ ## Included UI
172
+
173
+ - top toolbar
174
+ - left thumbnail rail
175
+ - main preview area
176
+ - zoom in / out
177
+ - fit to page
178
+ - fit to width
179
+ - previous / next slide
180
+ - previous / next iWork page or sheet where applicable
181
+ - keyboard navigation when the shell is focused
182
+
183
+ ## Dist Output
184
+
185
+ Build output:
186
+
187
+ - `dist/index.js`
188
+ - `dist/style.css`
189
+ - `dist/index.d.ts`
190
+
191
+ Import CSS with:
192
+
193
+ ```ts
194
+ import '@filens/vue/style.css';
195
+ ```
196
+
197
+ ## Scope
198
+
199
+ This package is for client-side Vue 3 apps in modern browsers. It is not currently positioned as an SSR-first or full Office/iWork-compatibility renderer.
@@ -0,0 +1,40 @@
1
+ import { PreviewMessages } from './i18n';
2
+ import { IworkFitMode, IworkSource, IworkTypeHint, ParsedIworkDocument } from '@filens/iwork';
3
+ type __VLS_Props = {
4
+ src: IworkSource;
5
+ type?: IworkTypeHint;
6
+ fit?: IworkFitMode;
7
+ initialScale?: number;
8
+ minScale?: number;
9
+ maxScale?: number;
10
+ toolbar?: boolean;
11
+ locale?: string;
12
+ messages?: PreviewMessages;
13
+ thumbnails?: boolean;
14
+ };
15
+ declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
16
+ rendered: (document: ParsedIworkDocument | null) => any;
17
+ error: (error: Error) => any;
18
+ warnings: (warnings: string[]) => any;
19
+ "page-change": (pageIndex: number) => any;
20
+ "sheet-change": (sheetIndex: number) => any;
21
+ "scale-change": (scale: number) => any;
22
+ }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
23
+ onRendered?: ((document: ParsedIworkDocument | null) => any) | undefined;
24
+ onError?: ((error: Error) => any) | undefined;
25
+ onWarnings?: ((warnings: string[]) => any) | undefined;
26
+ "onPage-change"?: ((pageIndex: number) => any) | undefined;
27
+ "onSheet-change"?: ((sheetIndex: number) => any) | undefined;
28
+ "onScale-change"?: ((scale: number) => any) | undefined;
29
+ }>, {
30
+ type: IworkTypeHint;
31
+ initialScale: number;
32
+ minScale: number;
33
+ maxScale: number;
34
+ toolbar: boolean;
35
+ thumbnails: boolean;
36
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
37
+ shellRef: HTMLDivElement;
38
+ viewerHost: HTMLDivElement;
39
+ }, HTMLDivElement>;
40
+ export default _default;
@@ -0,0 +1,38 @@
1
+ import { PreviewMessages } from './i18n';
2
+ import { FitMode, ParsedPresentation, PptxSource } from '@filens/core';
3
+ type __VLS_Props = {
4
+ src: PptxSource;
5
+ fit?: FitMode;
6
+ initialScale?: number;
7
+ minScale?: number;
8
+ maxScale?: number;
9
+ toolbar?: boolean;
10
+ locale?: string;
11
+ messages?: PreviewMessages;
12
+ thumbnails?: boolean;
13
+ };
14
+ declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
15
+ rendered: (presentation: ParsedPresentation | null) => any;
16
+ error: (error: Error) => any;
17
+ warnings: (warnings: string[]) => any;
18
+ "scale-change": (scale: number) => any;
19
+ "slide-change": (slideIndex: number) => any;
20
+ }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
21
+ onRendered?: ((presentation: ParsedPresentation | null) => any) | undefined;
22
+ onError?: ((error: Error) => any) | undefined;
23
+ onWarnings?: ((warnings: string[]) => any) | undefined;
24
+ "onScale-change"?: ((scale: number) => any) | undefined;
25
+ "onSlide-change"?: ((slideIndex: number) => any) | undefined;
26
+ }>, {
27
+ fit: FitMode;
28
+ initialScale: number;
29
+ minScale: number;
30
+ maxScale: number;
31
+ toolbar: boolean;
32
+ thumbnails: boolean;
33
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
34
+ shellRef: HTMLDivElement;
35
+ sidebarRef: HTMLElement;
36
+ viewerHost: HTMLDivElement;
37
+ }, HTMLDivElement>;
38
+ export default _default;
@@ -0,0 +1,140 @@
1
+ import { PreviewMessages } from './i18n';
2
+ import { ConverterClient, FormatDefinition, PreviewDriver, PreviewFitMode, PreviewFontResolver, PreviewFontLoadingOptions, PreviewItemState, PreviewOptions, PreviewResourceResolver, PreviewSource, SourceDescriptor } from '@filens/core';
3
+ import { MediaPreviewDriverOptions } from '../../media/dist/index.js';
4
+ type __VLS_Props = {
5
+ src: PreviewSource | SourceDescriptor;
6
+ name?: string;
7
+ extension?: string;
8
+ contentType?: string;
9
+ password?: string;
10
+ requestPassword?: PreviewOptions['requestPassword'];
11
+ fit?: PreviewFitMode;
12
+ initialScale?: number;
13
+ minScale?: number;
14
+ maxScale?: number;
15
+ toolbar?: boolean | 'minimal';
16
+ locale?: string;
17
+ messages?: PreviewMessages;
18
+ drivers?: PreviewDriver[];
19
+ routes?: FormatDefinition[];
20
+ converter?: ConverterClient;
21
+ mediaConverter?: ConverterClient;
22
+ browserMedia?: MediaPreviewDriverOptions['browserMedia'];
23
+ fontResolver?: PreviewFontResolver;
24
+ fontLoading?: boolean | PreviewFontLoadingOptions;
25
+ resourceResolver?: PreviewResourceResolver;
26
+ audio?: PreviewOptions['audio'];
27
+ panoramaProcessor?: MediaPreviewDriverOptions['panoramaProcessor'];
28
+ };
29
+ declare function previousPage(): void;
30
+ declare function nextPage(): void;
31
+ declare function goToIndex(index: number): void;
32
+ declare const _default: import('vue').DefineComponent<__VLS_Props, {
33
+ goToIndex: typeof goToIndex;
34
+ next: typeof nextPage;
35
+ prev: typeof previousPage;
36
+ fit: (mode?: PreviewFitMode) => void;
37
+ setScale: (nextScale: number) => void;
38
+ rotate: (degrees?: number) => void;
39
+ getState: () => {
40
+ loading: boolean;
41
+ error: string | null;
42
+ title?: string | undefined;
43
+ family: import('@filens/core').PreviewFamily;
44
+ warnings: string[];
45
+ fonts?: {
46
+ fontId?: string | undefined;
47
+ fontFamily?: string | undefined;
48
+ fontFile?: string | undefined;
49
+ styleName?: string | undefined;
50
+ resolvedFontFamily?: string | undefined;
51
+ status: import('@filens/core').PreviewFontStatus;
52
+ source: import('@filens/core').PreviewFontSource;
53
+ classification?: {
54
+ evidence: "metadata" | "known" | "name" | "unknown";
55
+ serif?: boolean | undefined;
56
+ monospace?: boolean | undefined;
57
+ style?: "text" | "handwriting" | "decorative" | "symbol" | undefined;
58
+ script?: "latin" | "cjk-sc" | "cjk-tc" | "japanese" | "korean" | "emoji" | undefined;
59
+ panose?: string | undefined;
60
+ weight?: number | undefined;
61
+ stretch?: number | undefined;
62
+ averageWidth?: number | undefined;
63
+ } | undefined;
64
+ substitutionReason?: string | undefined;
65
+ matchScore?: number | undefined;
66
+ coverage?: "matched" | "unknown" | undefined;
67
+ embedded?: boolean | undefined;
68
+ }[] | undefined;
69
+ capabilities: {
70
+ search?: boolean | undefined;
71
+ zoom?: boolean | undefined;
72
+ fit?: boolean | undefined;
73
+ paged?: boolean | undefined;
74
+ thumbnails?: boolean | undefined;
75
+ workbook?: boolean | undefined;
76
+ pan?: boolean | undefined;
77
+ rotate?: boolean | undefined;
78
+ fullscreen?: boolean | undefined;
79
+ playback?: boolean | undefined;
80
+ playlist?: boolean | undefined;
81
+ timeline?: boolean | undefined;
82
+ volume?: boolean | undefined;
83
+ subtitles?: boolean | undefined;
84
+ chapters?: boolean | undefined;
85
+ sheets?: boolean | undefined;
86
+ outline?: boolean | undefined;
87
+ codeHighlight?: boolean | undefined;
88
+ lineNumbers?: boolean | undefined;
89
+ wordWrap?: boolean | undefined;
90
+ minimap?: boolean | undefined;
91
+ archiveBrowse?: boolean | undefined;
92
+ layers?: boolean | undefined;
93
+ measure?: boolean | undefined;
94
+ section?: boolean | undefined;
95
+ orbit?: boolean | undefined;
96
+ explode?: boolean | undefined;
97
+ modelTree?: boolean | undefined;
98
+ metadata?: boolean | undefined;
99
+ materialFilter?: boolean | undefined;
100
+ displayMode?: boolean | undefined;
101
+ print?: boolean | undefined;
102
+ download?: boolean | undefined;
103
+ };
104
+ };
105
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
106
+ rendered: (state: PreviewItemState) => any;
107
+ error: (error: Error) => any;
108
+ warnings: (warnings: string[]) => any;
109
+ "page-change": (pageIndex: number) => any;
110
+ "sheet-change": (sheetIndex: number) => any;
111
+ "scale-change": (scale: number) => any;
112
+ "state-change": (state: PreviewItemState) => any;
113
+ }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
114
+ onRendered?: ((state: PreviewItemState) => any) | undefined;
115
+ onError?: ((error: Error) => any) | undefined;
116
+ onWarnings?: ((warnings: string[]) => any) | undefined;
117
+ "onPage-change"?: ((pageIndex: number) => any) | undefined;
118
+ "onSheet-change"?: ((sheetIndex: number) => any) | undefined;
119
+ "onScale-change"?: ((scale: number) => any) | undefined;
120
+ "onState-change"?: ((state: PreviewItemState) => any) | undefined;
121
+ }>, {
122
+ initialScale: number;
123
+ minScale: number;
124
+ maxScale: number;
125
+ toolbar: boolean | "minimal";
126
+ browserMedia: boolean | import('../../media/dist/index.js').BrowserMediaOptions;
127
+ panoramaProcessor: import('@filens/panorama').PanoramaProcessor;
128
+ drivers: PreviewDriver[];
129
+ routes: FormatDefinition[];
130
+ converter: ConverterClient;
131
+ mediaConverter: ConverterClient;
132
+ fontResolver: PreviewFontResolver;
133
+ fontLoading: boolean | PreviewFontLoadingOptions;
134
+ resourceResolver: PreviewResourceResolver;
135
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
136
+ shellRef: HTMLDivElement;
137
+ viewerHost: HTMLDivElement;
138
+ passwordField: HTMLInputElement;
139
+ }, HTMLDivElement>;
140
+ export default _default;
@@ -0,0 +1,12 @@
1
+ import { ParsedPresentation, SlideModel } from '@filens/core';
2
+ type __VLS_Props = {
3
+ slide: SlideModel;
4
+ presentation: ParsedPresentation;
5
+ mediaRegistry: {
6
+ getUrl(mediaId: string): string;
7
+ } | null;
8
+ };
9
+ declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
10
+ host: HTMLDivElement;
11
+ }, HTMLDivElement>;
12
+ export default _default;
@@ -0,0 +1,4 @@
1
+ import { FormatDefinition } from '@filens/core';
2
+ export declare function createVueDefaultPreviewRoutes(options?: {
3
+ rawPreview?: boolean;
4
+ }): FormatDefinition[];