hono-decks 0.2.0 → 0.2.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.
- package/dist/advanced.d.ts +603 -46
- package/dist/advanced.js +2011 -1907
- package/dist/bin.d.ts +1 -1
- package/dist/bin.js +1763 -1910
- package/dist/cli.d.ts +16 -15
- package/dist/cli.js +1766 -1915
- package/dist/client.d.ts +14 -8
- package/dist/client.js +13 -16
- package/dist/mod.d.ts +512 -27
- package/dist/mod.js +797 -759
- package/dist/node.d.ts +670 -111
- package/dist/node.js +3756 -3937
- package/dist/vite.d.ts +8 -8
- package/dist/vite.js +1646 -1805
- package/package.json +3 -3
- package/dist/define-decks-U4NxIs66.d.ts +0 -587
- package/dist/jsx-renderer-BO-N4tMZ.d.ts +0 -20
package/dist/node.d.ts
CHANGED
|
@@ -1,181 +1,740 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
import { Context, Env, Hono, MiddlewareHandler } from "hono";
|
|
2
|
+
import { HtmlEscapedString } from "hono/utils/html";
|
|
3
|
+
import { Child } from "hono/jsx";
|
|
4
|
+
//#region src/shared/types.d.ts
|
|
5
|
+
interface SlideDeck {
|
|
6
|
+
slides: Slide[];
|
|
7
|
+
warnings: string[];
|
|
8
|
+
}
|
|
9
|
+
interface Slide {
|
|
10
|
+
index: number;
|
|
11
|
+
title?: string;
|
|
12
|
+
layout: string;
|
|
13
|
+
className?: string;
|
|
14
|
+
blocks: SlideBlock[];
|
|
15
|
+
nodes: SlideNode[];
|
|
16
|
+
raw: string;
|
|
17
|
+
}
|
|
18
|
+
type SlideNode = {
|
|
19
|
+
type: "text";
|
|
20
|
+
value: string;
|
|
21
|
+
} | {
|
|
22
|
+
type: "element";
|
|
23
|
+
tag: string;
|
|
24
|
+
props: Record<string, unknown>;
|
|
25
|
+
children: SlideNode[];
|
|
26
|
+
} | {
|
|
27
|
+
type: "code";
|
|
28
|
+
lang?: string;
|
|
29
|
+
value: string;
|
|
30
|
+
} | {
|
|
31
|
+
type: "component";
|
|
32
|
+
name: string;
|
|
33
|
+
props: Record<string, unknown>;
|
|
34
|
+
children: SlideNode[];
|
|
35
|
+
source?: string;
|
|
36
|
+
};
|
|
37
|
+
type SlidePropValue = string | number | boolean;
|
|
38
|
+
type TableAlign = "left" | "center" | "right" | undefined;
|
|
39
|
+
type SlideBlock = {
|
|
40
|
+
type: "heading";
|
|
41
|
+
depth: 1 | 2 | 3;
|
|
42
|
+
text: string;
|
|
43
|
+
} | {
|
|
44
|
+
type: "paragraph";
|
|
45
|
+
text: string;
|
|
46
|
+
} | {
|
|
47
|
+
type: "list";
|
|
48
|
+
ordered: boolean;
|
|
49
|
+
items: string[];
|
|
50
|
+
} | {
|
|
51
|
+
type: "code";
|
|
52
|
+
lang?: string;
|
|
53
|
+
code: string;
|
|
54
|
+
} | {
|
|
55
|
+
type: "blockquote";
|
|
56
|
+
text: string;
|
|
57
|
+
} | {
|
|
58
|
+
type: "image";
|
|
59
|
+
alt: string;
|
|
60
|
+
src: string;
|
|
61
|
+
title?: string;
|
|
62
|
+
} | {
|
|
63
|
+
type: "component";
|
|
64
|
+
name: string;
|
|
65
|
+
props: Record<string, SlidePropValue>;
|
|
66
|
+
raw: string;
|
|
67
|
+
} | {
|
|
68
|
+
type: "table";
|
|
69
|
+
align: TableAlign[];
|
|
70
|
+
header: string[];
|
|
71
|
+
rows: string[][];
|
|
72
|
+
};
|
|
73
|
+
//#endregion
|
|
74
|
+
//#region src/renderer/jsx-renderer.d.ts
|
|
75
|
+
type MaybePromise$1<T> = T | Promise<T>;
|
|
76
|
+
type DeckRenderable = Child | HtmlEscapedString;
|
|
77
|
+
type SlideComponentProps = Record<string, unknown> & {
|
|
78
|
+
children?: DeckRenderable;
|
|
79
|
+
};
|
|
80
|
+
type SlideComponent = (props: SlideComponentProps) => DeckRenderable;
|
|
81
|
+
interface SlideComponentDefinition {
|
|
82
|
+
component: SlideComponent;
|
|
83
|
+
client?: boolean;
|
|
84
|
+
clientId?: string;
|
|
85
|
+
}
|
|
86
|
+
type SlideComponentInput = SlideComponent | SlideComponentDefinition;
|
|
87
|
+
type SlideComponentRegistry = Record<string, SlideComponentDefinition>;
|
|
88
|
+
//#endregion
|
|
89
|
+
//#region src/server/document.d.ts
|
|
90
|
+
type DeckDocumentSurface = "index" | "viewer" | "render" | "print" | "presentation" | "presenter" | "embed";
|
|
91
|
+
interface DeckDocumentRenderInput<E extends Env = any> {
|
|
92
|
+
c: Context<E>;
|
|
93
|
+
surface: DeckDocumentSurface;
|
|
94
|
+
deck?: CompiledDeck;
|
|
95
|
+
slug?: string;
|
|
96
|
+
mountPath: string;
|
|
97
|
+
title: string;
|
|
98
|
+
}
|
|
99
|
+
interface DeckDocumentPageOptions<E extends Env = any> {
|
|
100
|
+
lang?: string | ((input: DeckDocumentRenderInput<E>) => MaybePromise$1<string | undefined>);
|
|
101
|
+
nonce?: string | ((input: DeckDocumentRenderInput<E>) => MaybePromise$1<string | undefined>);
|
|
102
|
+
head?: MaybePromise$1<DeckRenderable> | ((input: DeckDocumentRenderInput<E>) => MaybePromise$1<DeckRenderable>);
|
|
103
|
+
}
|
|
104
|
+
interface DeckDocumentOptions<E extends Env = any> extends DeckDocumentPageOptions<E> {
|
|
105
|
+
surfaces?: Partial<Record<DeckDocumentSurface, DeckDocumentPageOptions<E>>>;
|
|
106
|
+
}
|
|
107
|
+
interface ResolvedDeckDocument {
|
|
108
|
+
lang: string;
|
|
109
|
+
nonce?: string;
|
|
110
|
+
head: string;
|
|
111
|
+
}
|
|
112
|
+
//#endregion
|
|
113
|
+
//#region src/deck/model.d.ts
|
|
114
|
+
type DeckKind = "directory" | "single-file";
|
|
115
|
+
declare const SLIDE_TRANSITIONS: readonly ["none", "fade", "fade-out", "slide-left", "slide-right", "slide-up", "slide-down", "view-transition"];
|
|
116
|
+
type SlideTransition = (typeof SLIDE_TRANSITIONS)[number];
|
|
117
|
+
interface DeckFrontmatter {
|
|
118
|
+
title?: string;
|
|
119
|
+
description?: string;
|
|
120
|
+
author?: string;
|
|
121
|
+
tags?: string[];
|
|
122
|
+
date?: string;
|
|
123
|
+
theme?: string;
|
|
124
|
+
transition?: SlideTransition;
|
|
125
|
+
transitionDuration?: string;
|
|
126
|
+
transitionEasing?: string;
|
|
127
|
+
draft?: boolean;
|
|
128
|
+
assets?: string | string[];
|
|
129
|
+
presenter?: boolean;
|
|
130
|
+
meta: Record<string, unknown>;
|
|
131
|
+
}
|
|
132
|
+
interface SlideFrontmatter {
|
|
133
|
+
title?: string;
|
|
134
|
+
layout?: string;
|
|
135
|
+
className?: string;
|
|
136
|
+
notes?: string;
|
|
137
|
+
background?: string;
|
|
138
|
+
transition?: SlideTransition;
|
|
139
|
+
transitionDuration?: string;
|
|
140
|
+
transitionEasing?: string;
|
|
141
|
+
meta: Record<string, unknown>;
|
|
142
|
+
}
|
|
143
|
+
interface ComponentPlaceholder {
|
|
144
|
+
id: string;
|
|
145
|
+
name: string;
|
|
146
|
+
props: Record<string, unknown>;
|
|
147
|
+
source: string;
|
|
148
|
+
}
|
|
149
|
+
interface AssetRef {
|
|
150
|
+
sourcePath: string;
|
|
151
|
+
publicPath: string;
|
|
152
|
+
type: "local" | "remote" | "r2" | "public";
|
|
153
|
+
contentType?: string;
|
|
154
|
+
cacheControl?: string | false;
|
|
155
|
+
r2Key?: string;
|
|
156
|
+
body?: BodyInit;
|
|
157
|
+
}
|
|
158
|
+
interface CompileWarning {
|
|
159
|
+
code: string;
|
|
160
|
+
message: string;
|
|
161
|
+
slideIndex?: number;
|
|
162
|
+
}
|
|
163
|
+
interface CompiledSlide {
|
|
164
|
+
index: number;
|
|
165
|
+
meta: SlideFrontmatter;
|
|
166
|
+
html: string;
|
|
167
|
+
nodes?: SlideNode[];
|
|
168
|
+
render?: (props?: {
|
|
169
|
+
components?: Record<string, unknown>;
|
|
170
|
+
}) => MaybePromise$1<DeckRenderable>;
|
|
171
|
+
components: ComponentPlaceholder[];
|
|
172
|
+
notes?: string;
|
|
173
|
+
}
|
|
174
|
+
interface CompiledDeck {
|
|
175
|
+
slug: string;
|
|
176
|
+
sourcePath: string;
|
|
177
|
+
kind: DeckKind;
|
|
178
|
+
meta: DeckFrontmatter;
|
|
179
|
+
themeStyle?: string;
|
|
180
|
+
themeSourcePath?: string;
|
|
181
|
+
slides: CompiledSlide[];
|
|
182
|
+
assets: AssetRef[];
|
|
183
|
+
componentRegistry?: Record<string, SlideComponentInput>;
|
|
184
|
+
warnings: CompileWarning[];
|
|
185
|
+
}
|
|
186
|
+
interface DeckEntry {
|
|
187
|
+
slug: string;
|
|
188
|
+
title?: string;
|
|
189
|
+
description?: string;
|
|
190
|
+
draft?: boolean;
|
|
191
|
+
sourcePath: string;
|
|
192
|
+
}
|
|
193
|
+
interface DeckFileEntry {
|
|
194
|
+
slug: string;
|
|
195
|
+
sourcePath: string;
|
|
196
|
+
kind: DeckKind;
|
|
197
|
+
}
|
|
198
|
+
interface DeckFileChange {
|
|
199
|
+
type: "created" | "changed" | "deleted";
|
|
200
|
+
path: string;
|
|
201
|
+
slug?: string;
|
|
202
|
+
}
|
|
203
|
+
interface LocalDeckIO {
|
|
204
|
+
listFiles(): Promise<DeckFileEntry[]>;
|
|
205
|
+
readMarkdown(slug: string): Promise<string | null>;
|
|
206
|
+
readAsset?(path: string): Promise<BodyInit | Uint8Array | null>;
|
|
207
|
+
watch?(onFileChange: (event: DeckFileChange) => void): () => void;
|
|
208
|
+
}
|
|
209
|
+
type DeckRequestContext<E extends Env = any> = Context<E>;
|
|
210
|
+
interface DeckSource<E extends Env = any> {
|
|
211
|
+
listDecks<RequestEnv extends E>(c: Context<RequestEnv>): Promise<DeckEntry[]>;
|
|
212
|
+
getCompiledDeck<RequestEnv extends E>(c: Context<RequestEnv>, slug: string): Promise<CompiledDeck | null>;
|
|
213
|
+
getAsset?<RequestEnv extends E>(c: Context<RequestEnv>, slug: string, assetPath: string): Promise<Response | null>;
|
|
214
|
+
}
|
|
215
|
+
interface DeckManifest {
|
|
216
|
+
decks: CompiledDeck[];
|
|
217
|
+
}
|
|
218
|
+
interface CompileDeckInput {
|
|
219
|
+
slug: string;
|
|
220
|
+
sourcePath: string;
|
|
221
|
+
kind: DeckKind;
|
|
222
|
+
markdown: string;
|
|
223
|
+
}
|
|
224
|
+
interface DeckCompiler {
|
|
225
|
+
compileMarkdown(input: CompileDeckInput): Promise<CompiledDeck>;
|
|
226
|
+
}
|
|
227
|
+
declare class CompileError extends Error {
|
|
228
|
+
readonly code: string;
|
|
229
|
+
constructor(message: string, code: string);
|
|
230
|
+
}
|
|
231
|
+
declare class RenderError extends Error {
|
|
232
|
+
readonly code: string;
|
|
233
|
+
readonly cause?: unknown;
|
|
234
|
+
constructor(message: string, code: string, cause?: unknown);
|
|
235
|
+
}
|
|
236
|
+
//#endregion
|
|
237
|
+
//#region src/routing/file-routing.d.ts
|
|
8
238
|
interface ResolvedDeckFile {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
239
|
+
slug: string;
|
|
240
|
+
sourcePath: string;
|
|
241
|
+
kind: DeckKind;
|
|
242
|
+
assetPaths: string[];
|
|
13
243
|
}
|
|
14
244
|
declare function resolveDeckFiles(paths: string[], root?: string): ResolvedDeckFile[];
|
|
15
|
-
|
|
245
|
+
//#endregion
|
|
246
|
+
//#region src/generator/mdx/ogp.d.ts
|
|
16
247
|
interface LinkCardOgpMetadata {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
248
|
+
title?: string;
|
|
249
|
+
description?: string;
|
|
250
|
+
image?: string;
|
|
251
|
+
siteName?: string;
|
|
21
252
|
}
|
|
22
|
-
|
|
253
|
+
//#endregion
|
|
254
|
+
//#region src/generator/component-registry.d.ts
|
|
23
255
|
interface DeckComponentExport {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
256
|
+
slug: string;
|
|
257
|
+
sourcePath: string;
|
|
258
|
+
modulePath: string;
|
|
259
|
+
exportName: string;
|
|
28
260
|
}
|
|
29
261
|
interface ResolvedDeckComponentExport extends DeckComponentExport {
|
|
30
|
-
|
|
262
|
+
internalName: string;
|
|
31
263
|
}
|
|
32
264
|
interface ApplyDeckComponentRegistryInput {
|
|
33
|
-
|
|
34
|
-
|
|
265
|
+
manifest: DeckManifest;
|
|
266
|
+
components: DeckComponentExport[];
|
|
35
267
|
}
|
|
36
268
|
interface ApplyDeckComponentRegistryResult {
|
|
37
|
-
|
|
38
|
-
|
|
269
|
+
manifest: DeckManifest;
|
|
270
|
+
components: ResolvedDeckComponentExport[];
|
|
39
271
|
}
|
|
40
272
|
declare function applyDeckComponentRegistry(input: ApplyDeckComponentRegistryInput): ApplyDeckComponentRegistryResult;
|
|
41
273
|
declare function emitDeckComponentRegistryModule(components: ResolvedDeckComponentExport[]): string;
|
|
42
|
-
|
|
274
|
+
//#endregion
|
|
275
|
+
//#region src/node/compile-decks.d.ts
|
|
43
276
|
interface BuildDeckManifestFromFileSystemInput {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
277
|
+
cwd: string;
|
|
278
|
+
root: string;
|
|
279
|
+
mountPath?: string;
|
|
47
280
|
}
|
|
48
281
|
interface WriteDeckManifestModuleInput {
|
|
49
|
-
|
|
50
|
-
|
|
282
|
+
manifest: DeckManifest;
|
|
283
|
+
outFile: string;
|
|
51
284
|
}
|
|
52
285
|
interface WriteDeckComponentRegistryModuleInput {
|
|
53
|
-
|
|
54
|
-
|
|
286
|
+
components: ResolvedDeckComponentExport[];
|
|
287
|
+
outFile: string;
|
|
55
288
|
}
|
|
56
289
|
interface WriteDecksRouterModuleInput {
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
290
|
+
manifestModulePath: string;
|
|
291
|
+
componentRegistryModulePath?: string;
|
|
292
|
+
outFile: string;
|
|
60
293
|
}
|
|
61
294
|
interface CompileDecksInput extends BuildDeckManifestFromFileSystemInput {
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
295
|
+
out: string;
|
|
296
|
+
ogpCacheFile?: string;
|
|
297
|
+
refreshOgp?: boolean;
|
|
298
|
+
resolveOgp?(url: string): Promise<LinkCardOgpMetadata | undefined>;
|
|
66
299
|
}
|
|
67
300
|
declare function compileDecks(input: CompileDecksInput): Promise<DeckManifest>;
|
|
68
301
|
declare function buildDeckManifestFromFileSystem(input: BuildDeckManifestFromFileSystemInput): Promise<DeckManifest>;
|
|
69
302
|
declare function writeDeckManifestModule(input: WriteDeckManifestModuleInput): Promise<void>;
|
|
70
303
|
declare function writeDeckComponentRegistryModule(input: WriteDeckComponentRegistryModuleInput): Promise<void>;
|
|
71
304
|
declare function writeDecksRouterModule(input: WriteDecksRouterModuleInput): Promise<void>;
|
|
72
|
-
|
|
305
|
+
//#endregion
|
|
306
|
+
//#region src/node/local-deck-io.d.ts
|
|
73
307
|
interface CreateLocalDeckIOInput {
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
308
|
+
cwd: string;
|
|
309
|
+
root: string;
|
|
310
|
+
pathExists?(path: string): boolean;
|
|
311
|
+
watchFileSystem?(path: string, options: {
|
|
312
|
+
recursive: boolean;
|
|
313
|
+
}, listener: (eventType: "rename" | "change", filename: string | null) => void): {
|
|
314
|
+
close(): void;
|
|
315
|
+
};
|
|
82
316
|
}
|
|
83
317
|
declare function createLocalDeckIO(input: CreateLocalDeckIOInput): LocalDeckIO;
|
|
84
|
-
|
|
318
|
+
//#endregion
|
|
319
|
+
//#region src/node/local-dev-app.d.ts
|
|
85
320
|
interface CreateLocalDevSlidesAppInput {
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
321
|
+
cwd: string;
|
|
322
|
+
root: string;
|
|
323
|
+
mountPath?: string;
|
|
324
|
+
watchFileSystem?: CreateLocalDeckIOInput["watchFileSystem"];
|
|
90
325
|
}
|
|
91
326
|
interface LocalDevSlidesApp {
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
327
|
+
app: Hono;
|
|
328
|
+
localDeckIO: LocalDeckIO;
|
|
329
|
+
stop(): void;
|
|
95
330
|
}
|
|
96
331
|
declare function createLocalDevSlidesApp(input: CreateLocalDevSlidesAppInput): Promise<LocalDevSlidesApp>;
|
|
97
|
-
|
|
332
|
+
//#endregion
|
|
333
|
+
//#region src/renderer/control-icons.d.ts
|
|
334
|
+
type DeckControlIconName = "deck-list" | "home" | "viewer" | "projection" | "presenter" | "previous" | "next" | "fullscreen" | "print" | "details" | "export-pdf" | "export-png";
|
|
335
|
+
//#endregion
|
|
336
|
+
//#region src/server/paths.d.ts
|
|
337
|
+
/** All public URLs for one deck. */
|
|
338
|
+
interface DeckPaths {
|
|
339
|
+
viewer: string;
|
|
340
|
+
render: string;
|
|
341
|
+
print: string;
|
|
342
|
+
presentation: string;
|
|
343
|
+
presenter: string;
|
|
344
|
+
embed: string;
|
|
345
|
+
exportPdf: string;
|
|
346
|
+
exportPng: string;
|
|
347
|
+
ogImage: string;
|
|
348
|
+
assets: string;
|
|
349
|
+
}
|
|
350
|
+
//#endregion
|
|
351
|
+
//#region src/server/browser-export.d.ts
|
|
352
|
+
interface DeckBrowserRunBinding {
|
|
353
|
+
quickAction(action: "pdf" | "screenshot", input: Record<string, unknown>): MaybePromise$1<Response>;
|
|
354
|
+
}
|
|
355
|
+
interface DeckBrowserRunPdfOptions {
|
|
356
|
+
filename?: string | ((deck: CompiledDeck) => string);
|
|
357
|
+
request?: Record<string, unknown>;
|
|
358
|
+
}
|
|
359
|
+
interface DeckBrowserRunPngOptions {
|
|
360
|
+
filename?: string | ((deck: CompiledDeck) => string);
|
|
361
|
+
request?: Record<string, unknown>;
|
|
362
|
+
}
|
|
363
|
+
/** Request data passed to Browser Rendering binding and authorization resolvers. */
|
|
364
|
+
interface DeckExportResolverInput<E extends Env = any> {
|
|
365
|
+
c: Context<E>;
|
|
366
|
+
deck: CompiledDeck;
|
|
367
|
+
slug: string;
|
|
368
|
+
mountPath: string;
|
|
369
|
+
paths: DeckPaths;
|
|
370
|
+
format: "pdf" | "png";
|
|
371
|
+
}
|
|
372
|
+
interface DeckExportOptions<E extends Env = any> {
|
|
373
|
+
browser(input: DeckExportResolverInput<E>): MaybePromise$1<DeckBrowserRunBinding | null | undefined>;
|
|
374
|
+
authorize?(input: DeckExportResolverInput<E>): MaybePromise$1<boolean>;
|
|
375
|
+
pdf?: boolean | DeckBrowserRunPdfOptions;
|
|
376
|
+
png?: boolean | DeckBrowserRunPngOptions;
|
|
377
|
+
}
|
|
378
|
+
interface DeckViewerExportPaths {
|
|
379
|
+
pdf?: boolean;
|
|
380
|
+
png?: boolean;
|
|
381
|
+
}
|
|
382
|
+
//#endregion
|
|
383
|
+
//#region src/server/viewer.d.ts
|
|
384
|
+
interface DeckViewerOptions<E extends Env = any> {
|
|
385
|
+
controls?: false | DeckViewerControlsOptions;
|
|
386
|
+
openGraph?: boolean | DeckViewerOpenGraphOptions;
|
|
387
|
+
style?: string;
|
|
388
|
+
head?: MaybePromise$1<DeckRenderable> | ((input: DeckViewerRenderInput<E>) => MaybePromise$1<DeckRenderable>);
|
|
389
|
+
lang?: string | ((input: DeckViewerRenderInput<E>) => MaybePromise$1<string>);
|
|
390
|
+
nonce?: string | ((input: DeckViewerRenderInput<E>) => MaybePromise$1<string | undefined>);
|
|
391
|
+
render?(input: DeckViewerRenderInput<E>): MaybePromise$1<DeckRenderable>;
|
|
392
|
+
}
|
|
393
|
+
interface DeckViewerOpenGraphOptions {
|
|
394
|
+
/** Public image URL. Defaults to `paths.ogImage` when Open Graph metadata is enabled. */
|
|
395
|
+
imagePath?: string | ((input: DeckViewerOpenGraphInput) => MaybePromise$1<string | undefined>);
|
|
396
|
+
}
|
|
397
|
+
interface DeckViewerOpenGraphInput {
|
|
398
|
+
deck: CompiledDeck;
|
|
399
|
+
paths: DeckPaths;
|
|
400
|
+
}
|
|
401
|
+
type DeckViewerControlKey = "back" | "previous" | "position" | "next" | "fullscreen" | "print" | "exportPdf" | "exportPng";
|
|
402
|
+
interface DeckViewerControlsOptions {
|
|
403
|
+
className?: string;
|
|
404
|
+
itemClassName?: string;
|
|
405
|
+
attributes?: Record<string, string | boolean | undefined>;
|
|
406
|
+
ariaLabel?: string;
|
|
407
|
+
hidden?: DeckViewerControlKey[];
|
|
408
|
+
labels?: Partial<Record<DeckViewerControlKey, string>>;
|
|
409
|
+
before?: DeckViewerControlSlotItems;
|
|
410
|
+
after?: DeckViewerControlSlotItems;
|
|
411
|
+
items?: DeckViewerControlItem[] | DeckViewerControlsItemsResolver;
|
|
412
|
+
renderItem?: DeckViewerControlItemRenderer;
|
|
413
|
+
}
|
|
414
|
+
type DeckViewerControlsItemsResolver = (defaults: DeckViewerControlDefaults, context: DeckViewerControlsContext) => DeckViewerControlItem[];
|
|
415
|
+
type DeckViewerControlSlotItems = DeckViewerControlItem[] | ((context: DeckViewerControlsContext) => DeckViewerControlItem[]);
|
|
416
|
+
interface DeckViewerControlRenderInput {
|
|
417
|
+
context: DeckViewerControlsContext;
|
|
418
|
+
}
|
|
419
|
+
type DeckViewerControlItemRenderer = (item: Exclude<DeckViewerControlItem, null | false | undefined>, context: DeckViewerControlsContext, renderDefault: () => DeckRenderable) => DeckRenderable;
|
|
420
|
+
interface DeckViewerControlDefaults {
|
|
421
|
+
back: DeckViewerDefaultControlItem;
|
|
422
|
+
previous: DeckViewerDefaultControlItem;
|
|
423
|
+
position: DeckViewerDefaultControlItem;
|
|
424
|
+
next: DeckViewerDefaultControlItem;
|
|
425
|
+
fullscreen: DeckViewerDefaultControlItem;
|
|
426
|
+
print: DeckViewerDefaultControlItem | null;
|
|
427
|
+
exportPdf: DeckViewerDefaultControlItem | null;
|
|
428
|
+
exportPng: DeckViewerDefaultControlItem | null;
|
|
429
|
+
}
|
|
430
|
+
interface DeckViewerAvailablePages {
|
|
431
|
+
print: boolean;
|
|
432
|
+
}
|
|
433
|
+
interface DeckViewerControlsContext {
|
|
434
|
+
slug: string;
|
|
435
|
+
title: string;
|
|
436
|
+
mountPath: string;
|
|
437
|
+
meta: DeckPageMeta;
|
|
438
|
+
slides: DeckTocItem[];
|
|
439
|
+
}
|
|
440
|
+
type DeckViewerControlItem = DeckViewerDefaultControlItem | DeckViewerLinkControlItem | DeckViewerRenderControlItem | null | false | undefined;
|
|
441
|
+
interface DeckViewerDefaultControlItem {
|
|
442
|
+
type: "default";
|
|
443
|
+
key: DeckViewerControlKey;
|
|
444
|
+
label?: string;
|
|
445
|
+
className?: string;
|
|
446
|
+
attributes?: Record<string, string | boolean | undefined>;
|
|
447
|
+
}
|
|
448
|
+
interface DeckViewerLinkControlItem {
|
|
449
|
+
type: "link";
|
|
450
|
+
key?: string;
|
|
451
|
+
href: string;
|
|
452
|
+
label: string;
|
|
453
|
+
icon?: DeckControlIconName;
|
|
454
|
+
download?: string;
|
|
455
|
+
className?: string;
|
|
456
|
+
attributes?: Record<string, string | boolean | undefined>;
|
|
457
|
+
}
|
|
458
|
+
interface DeckViewerRenderControlItem {
|
|
459
|
+
type: "render";
|
|
460
|
+
key?: string;
|
|
461
|
+
render(input: DeckViewerControlRenderInput): DeckRenderable;
|
|
462
|
+
}
|
|
463
|
+
interface DeckTocItem {
|
|
464
|
+
index: number;
|
|
465
|
+
title?: string;
|
|
466
|
+
label: string;
|
|
467
|
+
}
|
|
468
|
+
/** Metadata and complete public route map for a viewer page. */
|
|
469
|
+
interface DeckPageMeta {
|
|
470
|
+
title: string;
|
|
471
|
+
description?: string;
|
|
472
|
+
paths: DeckPaths;
|
|
473
|
+
availablePages: DeckViewerAvailablePages;
|
|
474
|
+
availableExports: DeckViewerExportPaths;
|
|
475
|
+
imagePath?: string;
|
|
476
|
+
}
|
|
477
|
+
interface DeckViewerParts {
|
|
478
|
+
slug: string;
|
|
479
|
+
title: string;
|
|
480
|
+
renderUrl: string;
|
|
481
|
+
frame: DeckViewerPart;
|
|
482
|
+
controls: DeckViewerPart | null;
|
|
483
|
+
toc: DeckViewerPart;
|
|
484
|
+
slides: DeckTocItem[];
|
|
485
|
+
meta: DeckPageMeta;
|
|
486
|
+
}
|
|
487
|
+
/** One viewer part in both composable JSX form and pre-rendered HTML form. */
|
|
488
|
+
interface DeckViewerPart {
|
|
489
|
+
content: DeckRenderable;
|
|
490
|
+
html: string;
|
|
491
|
+
}
|
|
492
|
+
interface DeckViewerRenderInput<E extends Env = any> extends DeckViewerParts {
|
|
493
|
+
c: Context<E>;
|
|
494
|
+
deck: CompiledDeck;
|
|
495
|
+
mountPath: string;
|
|
496
|
+
}
|
|
497
|
+
interface DeckViewerEmbedOptions {
|
|
498
|
+
deck: CompiledDeck;
|
|
499
|
+
mountPath: string;
|
|
500
|
+
viewerStateQuery?: string;
|
|
501
|
+
controls?: false | DeckViewerControlsOptions;
|
|
502
|
+
availablePages?: Partial<DeckViewerAvailablePages>;
|
|
503
|
+
exportPaths?: DeckViewerExportPaths;
|
|
504
|
+
style?: string;
|
|
505
|
+
toc?: boolean;
|
|
506
|
+
className?: string;
|
|
507
|
+
nonce?: string;
|
|
508
|
+
}
|
|
509
|
+
interface DeckViewerEmbed extends DeckViewerParts {
|
|
510
|
+
embed: DeckRenderable;
|
|
511
|
+
embedHtml: string;
|
|
512
|
+
}
|
|
513
|
+
//#endregion
|
|
514
|
+
//#region src/server/external-embed.d.ts
|
|
515
|
+
interface DeckExternalEmbedContext<E extends Env = any> {
|
|
516
|
+
c: Context<E>;
|
|
517
|
+
deck: CompiledDeck;
|
|
518
|
+
slug: string;
|
|
519
|
+
mountPath: string;
|
|
520
|
+
}
|
|
521
|
+
type DeckExternalEmbedViewerOptions = Omit<DeckViewerEmbedOptions, "deck" | "mountPath" | "nonce">;
|
|
522
|
+
interface DeckExternalEmbedRenderInput<E extends Env = any> extends DeckExternalEmbedContext<E> {
|
|
523
|
+
viewer: DeckViewerEmbed;
|
|
524
|
+
document: ResolvedDeckDocument;
|
|
525
|
+
}
|
|
526
|
+
interface DeckExternalEmbedOptions<E extends Env = any> {
|
|
527
|
+
enabled?: boolean | ((input: DeckExternalEmbedContext<E>) => MaybePromise$1<boolean>);
|
|
528
|
+
frameAncestors?: string | string[] | ((input: DeckExternalEmbedContext<E>) => MaybePromise$1<string | string[] | undefined>);
|
|
529
|
+
document?: DeckDocumentPageOptions<E>;
|
|
530
|
+
viewer?: DeckExternalEmbedViewerOptions | ((input: DeckExternalEmbedContext<E>) => MaybePromise$1<DeckExternalEmbedViewerOptions>);
|
|
531
|
+
pageStyle?: string;
|
|
532
|
+
robots?: string | false;
|
|
533
|
+
render?(input: DeckExternalEmbedRenderInput<E>): MaybePromise$1<DeckRenderable>;
|
|
534
|
+
}
|
|
535
|
+
//#endregion
|
|
536
|
+
//#region src/server/router.d.ts
|
|
537
|
+
interface DecksRouterExtension<E extends Env = any> {
|
|
538
|
+
path: string;
|
|
539
|
+
router: Hono<E>;
|
|
540
|
+
}
|
|
541
|
+
interface DecksRouterOptions<E extends Env = any> {
|
|
542
|
+
source: DeckSource<E>;
|
|
543
|
+
/**
|
|
544
|
+
* Enables development-only deck behavior. When omitted, Vite and Wrangler
|
|
545
|
+
* development commands are detected from NODE_ENV. Explicit values and
|
|
546
|
+
* resolvers always take precedence.
|
|
547
|
+
*/
|
|
548
|
+
dev?: boolean | DeckDevResolver<E>;
|
|
549
|
+
extensions?: DecksRouterExtension<E>[];
|
|
550
|
+
liveReloadPath?(slug: string, mountPath: string): string | undefined;
|
|
551
|
+
style?: string;
|
|
552
|
+
components?: SlideComponentRegistry | Record<string, SlideComponentInput>;
|
|
553
|
+
clientEntry?: string;
|
|
554
|
+
clientEntryAsset?: string;
|
|
555
|
+
clientEntryAssetPath?: string;
|
|
556
|
+
document?: DeckDocumentOptions<E>;
|
|
557
|
+
pages?: DecksRouterPagesOptions<E>;
|
|
558
|
+
embed?: false | DeckExternalEmbedOptions<E>;
|
|
559
|
+
viewer?: DeckViewerOptions<E>;
|
|
560
|
+
presenter?: false | DecksRouterPresenterOptions<E>;
|
|
561
|
+
export?: false | DeckExportOptions<E>;
|
|
562
|
+
}
|
|
563
|
+
type DeckRouteSurface = "index" | "viewer" | "render" | "print" | "presentation" | "presenter";
|
|
564
|
+
interface DeckRouteSurfaceInput<E extends Env = any> {
|
|
565
|
+
c: Context<E>;
|
|
566
|
+
surface: DeckRouteSurface;
|
|
567
|
+
mountPath: string;
|
|
568
|
+
dev: boolean;
|
|
569
|
+
deck?: CompiledDeck;
|
|
570
|
+
slug?: string;
|
|
571
|
+
}
|
|
572
|
+
type DeckRouteEnabledResolver<E extends Env = any> = (input: DeckRouteSurfaceInput<E>) => MaybePromise$1<boolean>;
|
|
573
|
+
type DeckRouteEnabled<E extends Env = any> = boolean | DeckRouteEnabledResolver<E>;
|
|
574
|
+
interface DeckIndexPageInput<E extends Env = any> extends DeckRouteSurfaceInput<E> {
|
|
575
|
+
surface: "index";
|
|
576
|
+
decks: DeckEntry[];
|
|
577
|
+
}
|
|
578
|
+
interface DeckIndexRenderInput<E extends Env = any> extends DeckIndexPageInput<E> {
|
|
579
|
+
title: string;
|
|
580
|
+
document: ResolvedDeckDocument;
|
|
581
|
+
defaultContent: DeckRenderable;
|
|
582
|
+
}
|
|
583
|
+
interface DeckIndexPageOptions<E extends Env = any> {
|
|
584
|
+
enabled?: DeckRouteEnabled<E>;
|
|
585
|
+
title?: string | ((input: DeckIndexPageInput<E>) => MaybePromise$1<string>);
|
|
586
|
+
render?(input: DeckIndexRenderInput<E>): MaybePromise$1<DeckRenderable>;
|
|
587
|
+
}
|
|
588
|
+
interface DecksRouterPagesOptions<E extends Env = any> {
|
|
589
|
+
index?: false | DeckIndexPageOptions<E>;
|
|
590
|
+
viewer?: DeckRouteEnabled<E>;
|
|
591
|
+
render?: DeckRouteEnabled<E>;
|
|
592
|
+
print?: DeckRouteEnabled<E>;
|
|
593
|
+
presentation?: DeckRouteEnabled<E>;
|
|
594
|
+
presenter?: DeckRouteEnabled<E>;
|
|
595
|
+
}
|
|
596
|
+
/** Request data passed to the development-mode resolver. */
|
|
597
|
+
interface DeckDevResolverInput<E extends Env = any> {
|
|
598
|
+
c: Context<E>;
|
|
599
|
+
}
|
|
600
|
+
type DeckDevResolver<E extends Env = any> = (input: DeckDevResolverInput<E>) => MaybePromise$1<boolean>;
|
|
601
|
+
interface DecksRouterPresenterOptions<E extends Env = any> {
|
|
602
|
+
enabled?: boolean | DeckPresenterEnabledResolver<E>;
|
|
603
|
+
viewerControl?: boolean | DeckPresenterViewerControlOptions;
|
|
604
|
+
}
|
|
605
|
+
type DeckPresenterEnabledResolver<E extends Env = any> = (input: DeckPresenterEnabledInput<E>) => MaybePromise$1<boolean>;
|
|
606
|
+
interface DeckPresenterEnabledInput<E extends Env = any> {
|
|
607
|
+
c: Context<E>;
|
|
608
|
+
deck: CompiledDeck;
|
|
609
|
+
slug: string;
|
|
610
|
+
mountPath: string;
|
|
611
|
+
dev: boolean;
|
|
612
|
+
presenterPath: string;
|
|
613
|
+
presentationPath: string;
|
|
614
|
+
}
|
|
615
|
+
interface DeckPresenterViewerControlOptions {
|
|
616
|
+
key?: string;
|
|
617
|
+
label?: string;
|
|
618
|
+
icon?: DeckControlIconName;
|
|
619
|
+
className?: string;
|
|
620
|
+
attributes?: Record<string, string | boolean | undefined>;
|
|
621
|
+
placement?: "before" | "after";
|
|
622
|
+
}
|
|
623
|
+
//#endregion
|
|
624
|
+
//#region src/server/define-decks.d.ts
|
|
625
|
+
/** Per-mount overrides merged on top of generated defaults and app config. */
|
|
626
|
+
type DecksRouterOverrides<E extends Env = any> = Partial<Omit<DecksRouterOptions<E>, "components" | "clientEntryAsset">> & {
|
|
627
|
+
components?: SlideComponentRegistry | Record<string, SlideComponentInput>;
|
|
628
|
+
};
|
|
629
|
+
/** Runtime options that keep the configured kit on its single transformed source. */
|
|
630
|
+
type DecksRouterConfig<E extends Env = any> = Omit<DecksRouterOverrides<E>, "source">;
|
|
631
|
+
/** File-system settings consumed by the CLI. */
|
|
632
|
+
interface DecksBuildConfig {
|
|
633
|
+
/** Deck source directory. @default "decks" */
|
|
634
|
+
root?: string;
|
|
635
|
+
/** Generated module directory. @default "src/generated" */
|
|
636
|
+
outDir?: string;
|
|
637
|
+
/** Optional deterministic Open Graph metadata cache. */
|
|
638
|
+
ogpCacheFile?: string;
|
|
639
|
+
}
|
|
640
|
+
/** Shared configuration consumed by both the CLI and the generated runtime kit. */
|
|
641
|
+
interface DecksConfig<E extends Env = any> {
|
|
642
|
+
/** Public route where the configured router is mounted. */
|
|
643
|
+
mountPath: string;
|
|
644
|
+
build?: DecksBuildConfig;
|
|
645
|
+
source?(source: DeckSource<E>): DeckSource<E>;
|
|
646
|
+
router?: DecksRouterConfig<E>;
|
|
647
|
+
}
|
|
648
|
+
//#endregion
|
|
649
|
+
//#region src/node/config.d.ts
|
|
98
650
|
declare const DEFAULT_DECKS_CONFIG_FILE = "hono-decks.config.ts";
|
|
99
651
|
interface LoadedDecksConfig<E extends Env = any> {
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
652
|
+
path: string;
|
|
653
|
+
config: DecksConfig<E>;
|
|
654
|
+
root: string;
|
|
655
|
+
outDir: string;
|
|
656
|
+
ogpCacheFile?: string;
|
|
105
657
|
}
|
|
106
658
|
declare function loadDecksConfig<E extends Env = any>(input: {
|
|
107
|
-
|
|
108
|
-
|
|
659
|
+
cwd: string;
|
|
660
|
+
configFile?: string;
|
|
109
661
|
}): Promise<LoadedDecksConfig<E>>;
|
|
110
|
-
|
|
662
|
+
//#endregion
|
|
663
|
+
//#region src/server/middleware.d.ts
|
|
111
664
|
declare module "hono" {
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
665
|
+
interface ContextVariableMap {
|
|
666
|
+
slideDeck: SlideDeck;
|
|
667
|
+
slideHtml: string;
|
|
668
|
+
slideMarkdown: string;
|
|
669
|
+
}
|
|
117
670
|
}
|
|
118
671
|
type MaybePromise<T> = T | Promise<T>;
|
|
119
672
|
interface DeckMiddlewareOptions {
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
673
|
+
/** Static markdown, or a loader that can read from bindings/storage. */
|
|
674
|
+
markdown?: string | ((c: Context) => MaybePromise<string>);
|
|
675
|
+
/** When false, only parse/render and expose c.var.slideDeck / slideHtml, then call next(). */
|
|
676
|
+
respond?: boolean;
|
|
677
|
+
/** Page title used when respond=true. */
|
|
678
|
+
title?: string;
|
|
679
|
+
/** Extra CSS appended inside the generated deck page. */
|
|
680
|
+
style?: string;
|
|
128
681
|
}
|
|
129
682
|
declare function deckMiddleware(options?: DeckMiddlewareOptions): MiddlewareHandler;
|
|
130
683
|
declare function renderDeckPage(input: {
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
684
|
+
title: string;
|
|
685
|
+
slideHtml: string;
|
|
686
|
+
warnings?: string[];
|
|
687
|
+
style?: string;
|
|
135
688
|
}): string;
|
|
136
|
-
|
|
689
|
+
//#endregion
|
|
690
|
+
//#region src/parser/parser.d.ts
|
|
137
691
|
declare function parseDeck(markdown: string): SlideDeck;
|
|
138
|
-
|
|
692
|
+
//#endregion
|
|
693
|
+
//#region src/renderer/render.d.ts
|
|
139
694
|
declare function renderDeck(deck: SlideDeck): string;
|
|
140
695
|
declare function renderSlide(slide: Slide): string;
|
|
141
|
-
|
|
696
|
+
//#endregion
|
|
697
|
+
//#region src/compiler/compiler.d.ts
|
|
142
698
|
declare function compileMarkdown(input: CompileDeckInput): Promise<CompiledDeck>;
|
|
143
|
-
|
|
699
|
+
//#endregion
|
|
700
|
+
//#region src/runtime/preview-events.d.ts
|
|
144
701
|
type PreviewEventType = "ready" | "deck:updated" | "deck:error";
|
|
145
702
|
interface PreviewEvent {
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
703
|
+
type: PreviewEventType;
|
|
704
|
+
slug: string;
|
|
705
|
+
data?: unknown;
|
|
149
706
|
}
|
|
150
707
|
interface PreviewEventHub {
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
708
|
+
publish(event: PreviewEvent): void;
|
|
709
|
+
drain(slug: string): PreviewEvent[];
|
|
710
|
+
subscribe?(slug: string, listener: (event: PreviewEvent) => void): () => void;
|
|
154
711
|
}
|
|
155
712
|
declare function createPreviewEventHub(): PreviewEventHub;
|
|
156
|
-
|
|
713
|
+
//#endregion
|
|
714
|
+
//#region src/runtime/dev-runtime.d.ts
|
|
157
715
|
interface DevDeckRuntimeInput {
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
716
|
+
initialDecks: CompiledDeck[];
|
|
717
|
+
localDeckIO: LocalDeckIO;
|
|
718
|
+
compiler: DeckCompiler;
|
|
719
|
+
previewEvents?: PreviewEventHub;
|
|
720
|
+
mountPath?: string;
|
|
163
721
|
}
|
|
164
722
|
interface DevDeckRuntime {
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
723
|
+
source: DeckSource;
|
|
724
|
+
handleFileChange(event: DeckFileChange): Promise<void>;
|
|
725
|
+
start(): () => void;
|
|
168
726
|
}
|
|
169
727
|
declare function createDevDeckRuntime(input: DevDeckRuntimeInput): DevDeckRuntime;
|
|
170
|
-
|
|
728
|
+
//#endregion
|
|
729
|
+
//#region src/generator/manifest-generator.d.ts
|
|
171
730
|
interface BuildDeckManifestInput {
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
731
|
+
root: string;
|
|
732
|
+
paths: string[];
|
|
733
|
+
mountPath?: string;
|
|
734
|
+
readText(path: string): Promise<string>;
|
|
735
|
+
readBinary?(path: string): Promise<Uint8Array>;
|
|
177
736
|
}
|
|
178
737
|
declare function buildDeckManifest(input: BuildDeckManifestInput): Promise<DeckManifest>;
|
|
179
738
|
declare function emitDeckManifestModule(manifest: DeckManifest): string;
|
|
180
|
-
|
|
181
|
-
export { type ApplyDeckComponentRegistryInput, type ApplyDeckComponentRegistryResult, type BuildDeckManifestFromFileSystemInput, type BuildDeckManifestInput, CompileDeckInput, type CompileDecksInput, CompiledDeck, type CreateLocalDeckIOInput, type CreateLocalDevSlidesAppInput, DEFAULT_DECKS_CONFIG_FILE, DeckCompiler, type DeckComponentExport, DeckFileChange, DeckManifest, type DeckMiddlewareOptions, DeckSource, type DevDeckRuntime, type DevDeckRuntimeInput, type LoadedDecksConfig, LocalDeckIO, type LocalDevSlidesApp, type PreviewEvent, type PreviewEventHub, type PreviewEventType, type ResolvedDeckComponentExport, type ResolvedDeckFile, Slide, SlideDeck, type WriteDeckComponentRegistryModuleInput, type WriteDeckManifestModuleInput, type WriteDecksRouterModuleInput, applyDeckComponentRegistry, buildDeckManifest, buildDeckManifestFromFileSystem, compileDecks, compileMarkdown, createDevDeckRuntime, createLocalDeckIO, createLocalDevSlidesApp, createPreviewEventHub, deckMiddleware, emitDeckComponentRegistryModule, emitDeckManifestModule, loadDecksConfig, parseDeck, renderDeck, renderDeckPage, renderSlide, resolveDeckFiles, writeDeckComponentRegistryModule, writeDeckManifestModule, writeDecksRouterModule };
|
|
739
|
+
//#endregion
|
|
740
|
+
export { type ApplyDeckComponentRegistryInput, type ApplyDeckComponentRegistryResult, type AssetRef, type BuildDeckManifestFromFileSystemInput, type BuildDeckManifestInput, type CompileDeckInput, type CompileDecksInput, CompileError, type CompileWarning, type CompiledDeck, type CompiledSlide, type ComponentPlaceholder, type CreateLocalDeckIOInput, type CreateLocalDevSlidesAppInput, DEFAULT_DECKS_CONFIG_FILE, type DeckCompiler, type DeckComponentExport, type DeckEntry, type DeckFileChange, type DeckFileEntry, type DeckFrontmatter, type DeckManifest, type DeckMiddlewareOptions, type DeckRequestContext, type DeckSource, type DevDeckRuntime, type DevDeckRuntimeInput, type LoadedDecksConfig, type LocalDeckIO, type LocalDevSlidesApp, type PreviewEvent, type PreviewEventHub, type PreviewEventType, RenderError, type ResolvedDeckComponentExport, type ResolvedDeckFile, type Slide, type SlideBlock, type SlideDeck, type SlideFrontmatter, type SlideNode, type SlidePropValue, type WriteDeckComponentRegistryModuleInput, type WriteDeckManifestModuleInput, type WriteDecksRouterModuleInput, applyDeckComponentRegistry, buildDeckManifest, buildDeckManifestFromFileSystem, compileDecks, compileMarkdown, createDevDeckRuntime, createLocalDeckIO, createLocalDevSlidesApp, createPreviewEventHub, deckMiddleware, emitDeckComponentRegistryModule, emitDeckManifestModule, loadDecksConfig, parseDeck, renderDeck, renderDeckPage, renderSlide, resolveDeckFiles, writeDeckComponentRegistryModule, writeDeckManifestModule, writeDecksRouterModule };
|