hono-decks 0.2.0 → 0.2.2

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/node.d.ts CHANGED
@@ -1,181 +1,740 @@
1
- import { F as DeckKind, D as DeckManifest, az as LocalDeckIO, ab as DecksConfig, aA as SlideDeck, aB as Slide, aC as CompileDeckInput, C as CompiledDeck, b as DeckSource, aD as DeckFileChange, aE as DeckCompiler } from './define-decks-U4NxIs66.js';
2
- export { A as AssetRef, aF as CompileError, c as CompileWarning, a as CompiledSlide, d as ComponentPlaceholder, r as DeckEntry, aG as DeckFileEntry, y as DeckFrontmatter, L as DeckRequestContext, aH as RenderError, aI as SlideBlock, al as SlideFrontmatter, aJ as SlideNode, aK as SlidePropValue } from './define-decks-U4NxIs66.js';
3
- import { Hono, Env, Context, MiddlewareHandler } from 'hono';
4
- import './jsx-renderer-BO-N4tMZ.js';
5
- import 'hono/jsx';
6
- import 'hono/utils/html';
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
- slug: string;
10
- sourcePath: string;
11
- kind: DeckKind;
12
- assetPaths: string[];
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
- title?: string;
18
- description?: string;
19
- image?: string;
20
- siteName?: string;
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
- slug: string;
25
- sourcePath: string;
26
- modulePath: string;
27
- exportName: string;
256
+ slug: string;
257
+ sourcePath: string;
258
+ modulePath: string;
259
+ exportName: string;
28
260
  }
29
261
  interface ResolvedDeckComponentExport extends DeckComponentExport {
30
- internalName: string;
262
+ internalName: string;
31
263
  }
32
264
  interface ApplyDeckComponentRegistryInput {
33
- manifest: DeckManifest;
34
- components: DeckComponentExport[];
265
+ manifest: DeckManifest;
266
+ components: DeckComponentExport[];
35
267
  }
36
268
  interface ApplyDeckComponentRegistryResult {
37
- manifest: DeckManifest;
38
- components: ResolvedDeckComponentExport[];
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
- cwd: string;
45
- root: string;
46
- mountPath?: string;
277
+ cwd: string;
278
+ root: string;
279
+ mountPath?: string;
47
280
  }
48
281
  interface WriteDeckManifestModuleInput {
49
- manifest: DeckManifest;
50
- outFile: string;
282
+ manifest: DeckManifest;
283
+ outFile: string;
51
284
  }
52
285
  interface WriteDeckComponentRegistryModuleInput {
53
- components: ResolvedDeckComponentExport[];
54
- outFile: string;
286
+ components: ResolvedDeckComponentExport[];
287
+ outFile: string;
55
288
  }
56
289
  interface WriteDecksRouterModuleInput {
57
- manifestModulePath: string;
58
- componentRegistryModulePath?: string;
59
- outFile: string;
290
+ manifestModulePath: string;
291
+ componentRegistryModulePath?: string;
292
+ outFile: string;
60
293
  }
61
294
  interface CompileDecksInput extends BuildDeckManifestFromFileSystemInput {
62
- out: string;
63
- ogpCacheFile?: string;
64
- refreshOgp?: boolean;
65
- resolveOgp?(url: string): Promise<LinkCardOgpMetadata | undefined>;
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
- cwd: string;
75
- root: string;
76
- pathExists?(path: string): boolean;
77
- watchFileSystem?(path: string, options: {
78
- recursive: boolean;
79
- }, listener: (eventType: "rename" | "change", filename: string | null) => void): {
80
- close(): void;
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
- cwd: string;
87
- root: string;
88
- mountPath?: string;
89
- watchFileSystem?: CreateLocalDeckIOInput["watchFileSystem"];
321
+ cwd: string;
322
+ root: string;
323
+ mountPath?: string;
324
+ watchFileSystem?: CreateLocalDeckIOInput["watchFileSystem"];
90
325
  }
91
326
  interface LocalDevSlidesApp {
92
- app: Hono;
93
- localDeckIO: LocalDeckIO;
94
- stop(): void;
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
- path: string;
101
- config: DecksConfig<E>;
102
- root: string;
103
- outDir: string;
104
- ogpCacheFile?: string;
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
- cwd: string;
108
- configFile?: string;
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
- interface ContextVariableMap {
113
- slideDeck: SlideDeck;
114
- slideHtml: string;
115
- slideMarkdown: string;
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
- /** Static markdown, or a loader that can read from bindings/storage. */
121
- markdown?: string | ((c: Context) => MaybePromise<string>);
122
- /** When false, only parse/render and expose c.var.slideDeck / slideHtml, then call next(). */
123
- respond?: boolean;
124
- /** Page title used when respond=true. */
125
- title?: string;
126
- /** Extra CSS appended inside the generated deck page. */
127
- style?: string;
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
- title: string;
132
- slideHtml: string;
133
- warnings?: string[];
134
- style?: string;
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
- type: PreviewEventType;
147
- slug: string;
148
- data?: unknown;
703
+ type: PreviewEventType;
704
+ slug: string;
705
+ data?: unknown;
149
706
  }
150
707
  interface PreviewEventHub {
151
- publish(event: PreviewEvent): void;
152
- drain(slug: string): PreviewEvent[];
153
- subscribe?(slug: string, listener: (event: PreviewEvent) => void): () => void;
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
- initialDecks: CompiledDeck[];
159
- localDeckIO: LocalDeckIO;
160
- compiler: DeckCompiler;
161
- previewEvents?: PreviewEventHub;
162
- mountPath?: string;
716
+ initialDecks: CompiledDeck[];
717
+ localDeckIO: LocalDeckIO;
718
+ compiler: DeckCompiler;
719
+ previewEvents?: PreviewEventHub;
720
+ mountPath?: string;
163
721
  }
164
722
  interface DevDeckRuntime {
165
- source: DeckSource;
166
- handleFileChange(event: DeckFileChange): Promise<void>;
167
- start(): () => void;
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
- root: string;
173
- paths: string[];
174
- mountPath?: string;
175
- readText(path: string): Promise<string>;
176
- readBinary?(path: string): Promise<Uint8Array>;
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 };