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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hono-decks",
3
- "version": "0.2.0",
3
+ "version": "0.2.2",
4
4
  "description": "Slide decks for Hono and Cloudflare Workers",
5
5
  "keywords": [
6
6
  "cloudflare-workers",
@@ -59,7 +59,7 @@
59
59
  "access": "public"
60
60
  },
61
61
  "scripts": {
62
- "build": "tsup",
62
+ "build": "tsdown",
63
63
  "prepack": "bun run build",
64
64
  "decks:compile": "bun run build && node dist/bin.js compile",
65
65
  "typecheck": "bun run build && tsc --noEmit && tsc --noEmit -p tsconfig.worker.json",
@@ -73,7 +73,7 @@
73
73
  "remark-gfm": "^4.0.0",
74
74
  "remark-mdx": "^3.1.1",
75
75
  "remark-parse": "^11.0.0",
76
- "shiki": "^4.2.0",
76
+ "shiki": "^4.3.1",
77
77
  "unified": "^11.0.5"
78
78
  },
79
79
  "devDependencies": {
@@ -1,587 +0,0 @@
1
- import { Env, Context, Hono, MiddlewareHandler } from 'hono';
2
- import { M as MaybePromise, D as DeckRenderable, b as SlideComponentInput, a as SlideComponentRegistry } from './jsx-renderer-BO-N4tMZ.js';
3
-
4
- interface SlideDeck {
5
- slides: Slide[];
6
- warnings: string[];
7
- }
8
- interface Slide {
9
- index: number;
10
- title?: string;
11
- layout: string;
12
- className?: string;
13
- blocks: SlideBlock[];
14
- nodes: SlideNode[];
15
- raw: string;
16
- }
17
- type SlideNode = {
18
- type: "text";
19
- value: string;
20
- } | {
21
- type: "element";
22
- tag: string;
23
- props: Record<string, unknown>;
24
- children: SlideNode[];
25
- } | {
26
- type: "code";
27
- lang?: string;
28
- value: string;
29
- } | {
30
- type: "component";
31
- name: string;
32
- props: Record<string, unknown>;
33
- children: SlideNode[];
34
- source?: string;
35
- };
36
- type SlidePropValue = string | number | boolean;
37
- type TableAlign = "left" | "center" | "right" | undefined;
38
- type SlideBlock = {
39
- type: "heading";
40
- depth: 1 | 2 | 3;
41
- text: string;
42
- } | {
43
- type: "paragraph";
44
- text: string;
45
- } | {
46
- type: "list";
47
- ordered: boolean;
48
- items: string[];
49
- } | {
50
- type: "code";
51
- lang?: string;
52
- code: string;
53
- } | {
54
- type: "blockquote";
55
- text: string;
56
- } | {
57
- type: "image";
58
- alt: string;
59
- src: string;
60
- title?: string;
61
- } | {
62
- type: "component";
63
- name: string;
64
- props: Record<string, SlidePropValue>;
65
- raw: string;
66
- } | {
67
- type: "table";
68
- align: TableAlign[];
69
- header: string[];
70
- rows: string[][];
71
- };
72
-
73
- type DeckDocumentSurface = "index" | "viewer" | "render" | "print" | "presentation" | "presenter" | "embed";
74
- interface DeckDocumentRenderInput<E extends Env = any> {
75
- c: Context<E>;
76
- surface: DeckDocumentSurface;
77
- deck?: CompiledDeck;
78
- slug?: string;
79
- mountPath: string;
80
- title: string;
81
- }
82
- interface DeckDocumentPageOptions<E extends Env = any> {
83
- lang?: string | ((input: DeckDocumentRenderInput<E>) => MaybePromise<string | undefined>);
84
- nonce?: string | ((input: DeckDocumentRenderInput<E>) => MaybePromise<string | undefined>);
85
- head?: MaybePromise<DeckRenderable> | ((input: DeckDocumentRenderInput<E>) => MaybePromise<DeckRenderable>);
86
- }
87
- interface DeckDocumentOptions<E extends Env = any> extends DeckDocumentPageOptions<E> {
88
- surfaces?: Partial<Record<DeckDocumentSurface, DeckDocumentPageOptions<E>>>;
89
- }
90
- interface ResolvedDeckDocument {
91
- lang: string;
92
- nonce?: string;
93
- head: string;
94
- }
95
-
96
- type DeckKind = "directory" | "single-file";
97
- declare const SLIDE_TRANSITIONS: readonly ["none", "fade", "fade-out", "slide-left", "slide-right", "slide-up", "slide-down", "view-transition"];
98
- type SlideTransition = (typeof SLIDE_TRANSITIONS)[number];
99
- interface DeckFrontmatter {
100
- title?: string;
101
- description?: string;
102
- author?: string;
103
- tags?: string[];
104
- date?: string;
105
- theme?: string;
106
- transition?: SlideTransition;
107
- transitionDuration?: string;
108
- transitionEasing?: string;
109
- draft?: boolean;
110
- assets?: string | string[];
111
- presenter?: boolean;
112
- meta: Record<string, unknown>;
113
- }
114
- interface SlideFrontmatter {
115
- title?: string;
116
- layout?: string;
117
- className?: string;
118
- notes?: string;
119
- background?: string;
120
- transition?: SlideTransition;
121
- transitionDuration?: string;
122
- transitionEasing?: string;
123
- meta: Record<string, unknown>;
124
- }
125
- interface ComponentPlaceholder {
126
- id: string;
127
- name: string;
128
- props: Record<string, unknown>;
129
- source: string;
130
- }
131
- interface AssetRef {
132
- sourcePath: string;
133
- publicPath: string;
134
- type: "local" | "remote" | "r2" | "public";
135
- contentType?: string;
136
- cacheControl?: string | false;
137
- r2Key?: string;
138
- body?: BodyInit;
139
- }
140
- interface CompileWarning {
141
- code: string;
142
- message: string;
143
- slideIndex?: number;
144
- }
145
- interface CompiledSlide {
146
- index: number;
147
- meta: SlideFrontmatter;
148
- html: string;
149
- nodes?: SlideNode[];
150
- render?: (props?: {
151
- components?: Record<string, unknown>;
152
- }) => MaybePromise<DeckRenderable>;
153
- components: ComponentPlaceholder[];
154
- notes?: string;
155
- }
156
- interface CompiledDeck {
157
- slug: string;
158
- sourcePath: string;
159
- kind: DeckKind;
160
- meta: DeckFrontmatter;
161
- themeStyle?: string;
162
- themeSourcePath?: string;
163
- slides: CompiledSlide[];
164
- assets: AssetRef[];
165
- componentRegistry?: Record<string, SlideComponentInput>;
166
- warnings: CompileWarning[];
167
- }
168
- interface DeckEntry {
169
- slug: string;
170
- title?: string;
171
- description?: string;
172
- draft?: boolean;
173
- sourcePath: string;
174
- }
175
- interface DeckFileEntry {
176
- slug: string;
177
- sourcePath: string;
178
- kind: DeckKind;
179
- }
180
- interface DeckFileChange {
181
- type: "created" | "changed" | "deleted";
182
- path: string;
183
- slug?: string;
184
- }
185
- interface LocalDeckIO {
186
- listFiles(): Promise<DeckFileEntry[]>;
187
- readMarkdown(slug: string): Promise<string | null>;
188
- readAsset?(path: string): Promise<BodyInit | Uint8Array | null>;
189
- watch?(onFileChange: (event: DeckFileChange) => void): () => void;
190
- }
191
- type DeckRequestContext<E extends Env = any> = Context<E>;
192
- interface DeckSource<E extends Env = any> {
193
- listDecks<RequestEnv extends E>(c: Context<RequestEnv>): Promise<DeckEntry[]>;
194
- getCompiledDeck<RequestEnv extends E>(c: Context<RequestEnv>, slug: string): Promise<CompiledDeck | null>;
195
- getAsset?<RequestEnv extends E>(c: Context<RequestEnv>, slug: string, assetPath: string): Promise<Response | null>;
196
- }
197
- interface DeckManifest {
198
- decks: CompiledDeck[];
199
- }
200
- interface CompileDeckInput {
201
- slug: string;
202
- sourcePath: string;
203
- kind: DeckKind;
204
- markdown: string;
205
- }
206
- interface DeckCompiler {
207
- compileMarkdown(input: CompileDeckInput): Promise<CompiledDeck>;
208
- }
209
- declare class CompileError extends Error {
210
- readonly code: string;
211
- constructor(message: string, code: string);
212
- }
213
- declare class RenderError extends Error {
214
- readonly code: string;
215
- readonly cause?: unknown | undefined;
216
- constructor(message: string, code: string, cause?: unknown | undefined);
217
- }
218
-
219
- type DeckControlIconName = "deck-list" | "home" | "viewer" | "projection" | "presenter" | "previous" | "next" | "fullscreen" | "print" | "details" | "export-pdf" | "export-png";
220
- declare function renderControlIcon(name: DeckControlIconName, className?: string): DeckRenderable;
221
- declare function renderControlIconHtml(name: DeckControlIconName, className?: string): string;
222
- declare function controlIconLabel(name: DeckControlIconName): string;
223
-
224
- /** All public URLs for one deck. */
225
- interface DeckPaths {
226
- viewer: string;
227
- render: string;
228
- print: string;
229
- presentation: string;
230
- presenter: string;
231
- embed: string;
232
- exportPdf: string;
233
- exportPng: string;
234
- ogImage: string;
235
- assets: string;
236
- }
237
- /** Creates the canonical route map used by routers, controls, and app code. */
238
- declare function createDeckPaths(mountPath: string, slug: string): DeckPaths;
239
-
240
- interface DeckBrowserRunBinding {
241
- quickAction(action: "pdf" | "screenshot", input: Record<string, unknown>): MaybePromise<Response>;
242
- }
243
- interface DeckBrowserRunPdfOptions {
244
- filename?: string | ((deck: CompiledDeck) => string);
245
- request?: Record<string, unknown>;
246
- }
247
- interface DeckBrowserRunPngOptions {
248
- filename?: string | ((deck: CompiledDeck) => string);
249
- request?: Record<string, unknown>;
250
- }
251
- /** Request data passed to Browser Rendering binding and authorization resolvers. */
252
- interface DeckExportResolverInput<E extends Env = any> {
253
- c: Context<E>;
254
- deck: CompiledDeck;
255
- slug: string;
256
- mountPath: string;
257
- paths: DeckPaths;
258
- format: "pdf" | "png";
259
- }
260
- interface DeckExportOptions<E extends Env = any> {
261
- browser(input: DeckExportResolverInput<E>): MaybePromise<DeckBrowserRunBinding | null | undefined>;
262
- authorize?(input: DeckExportResolverInput<E>): MaybePromise<boolean>;
263
- pdf?: boolean | DeckBrowserRunPdfOptions;
264
- png?: boolean | DeckBrowserRunPngOptions;
265
- }
266
- interface DeckViewerExportPaths {
267
- pdf?: boolean;
268
- png?: boolean;
269
- }
270
-
271
- interface DeckViewerOptions<E extends Env = any> {
272
- controls?: false | DeckViewerControlsOptions;
273
- openGraph?: boolean | DeckViewerOpenGraphOptions;
274
- style?: string;
275
- head?: MaybePromise<DeckRenderable> | ((input: DeckViewerRenderInput<E>) => MaybePromise<DeckRenderable>);
276
- lang?: string | ((input: DeckViewerRenderInput<E>) => MaybePromise<string>);
277
- nonce?: string | ((input: DeckViewerRenderInput<E>) => MaybePromise<string | undefined>);
278
- render?(input: DeckViewerRenderInput<E>): MaybePromise<DeckRenderable>;
279
- }
280
- interface DeckViewerOpenGraphOptions {
281
- /** Public image URL. Defaults to `paths.ogImage` when Open Graph metadata is enabled. */
282
- imagePath?: string | ((input: DeckViewerOpenGraphInput) => MaybePromise<string | undefined>);
283
- }
284
- interface DeckViewerOpenGraphInput {
285
- deck: CompiledDeck;
286
- paths: DeckPaths;
287
- }
288
- type DeckViewerControlKey = "back" | "previous" | "position" | "next" | "fullscreen" | "print" | "exportPdf" | "exportPng";
289
- interface DeckViewerControlsOptions {
290
- className?: string;
291
- itemClassName?: string;
292
- attributes?: Record<string, string | boolean | undefined>;
293
- ariaLabel?: string;
294
- hidden?: DeckViewerControlKey[];
295
- labels?: Partial<Record<DeckViewerControlKey, string>>;
296
- before?: DeckViewerControlSlotItems;
297
- after?: DeckViewerControlSlotItems;
298
- items?: DeckViewerControlItem[] | DeckViewerControlsItemsResolver;
299
- renderItem?: DeckViewerControlItemRenderer;
300
- }
301
- type DeckViewerControlsItemsResolver = (defaults: DeckViewerControlDefaults, context: DeckViewerControlsContext) => DeckViewerControlItem[];
302
- type DeckViewerControlSlotItems = DeckViewerControlItem[] | ((context: DeckViewerControlsContext) => DeckViewerControlItem[]);
303
- interface DeckViewerControlRenderInput {
304
- context: DeckViewerControlsContext;
305
- }
306
- type DeckViewerControlItemRenderer = (item: Exclude<DeckViewerControlItem, null | false | undefined>, context: DeckViewerControlsContext, renderDefault: () => DeckRenderable) => DeckRenderable;
307
- interface DeckViewerControlDefaults {
308
- back: DeckViewerDefaultControlItem;
309
- previous: DeckViewerDefaultControlItem;
310
- position: DeckViewerDefaultControlItem;
311
- next: DeckViewerDefaultControlItem;
312
- fullscreen: DeckViewerDefaultControlItem;
313
- print: DeckViewerDefaultControlItem | null;
314
- exportPdf: DeckViewerDefaultControlItem | null;
315
- exportPng: DeckViewerDefaultControlItem | null;
316
- }
317
- interface DeckViewerAvailablePages {
318
- print: boolean;
319
- }
320
- interface DeckViewerControlsContext {
321
- slug: string;
322
- title: string;
323
- mountPath: string;
324
- meta: DeckPageMeta;
325
- slides: DeckTocItem[];
326
- }
327
- type DeckViewerControlItem = DeckViewerDefaultControlItem | DeckViewerLinkControlItem | DeckViewerRenderControlItem | null | false | undefined;
328
- interface DeckViewerDefaultControlItem {
329
- type: "default";
330
- key: DeckViewerControlKey;
331
- label?: string;
332
- className?: string;
333
- attributes?: Record<string, string | boolean | undefined>;
334
- }
335
- interface DeckViewerLinkControlItem {
336
- type: "link";
337
- key?: string;
338
- href: string;
339
- label: string;
340
- icon?: DeckControlIconName;
341
- download?: string;
342
- className?: string;
343
- attributes?: Record<string, string | boolean | undefined>;
344
- }
345
- interface DeckViewerRenderControlItem {
346
- type: "render";
347
- key?: string;
348
- render(input: DeckViewerControlRenderInput): DeckRenderable;
349
- }
350
- interface DeckTocItem {
351
- index: number;
352
- title?: string;
353
- label: string;
354
- }
355
- /** Metadata and complete public route map for a viewer page. */
356
- interface DeckPageMeta {
357
- title: string;
358
- description?: string;
359
- paths: DeckPaths;
360
- availablePages: DeckViewerAvailablePages;
361
- availableExports: DeckViewerExportPaths;
362
- imagePath?: string;
363
- }
364
- interface DeckViewerParts {
365
- slug: string;
366
- title: string;
367
- renderUrl: string;
368
- frame: DeckViewerPart;
369
- controls: DeckViewerPart | null;
370
- toc: DeckViewerPart;
371
- slides: DeckTocItem[];
372
- meta: DeckPageMeta;
373
- }
374
- /** One viewer part in both composable JSX form and pre-rendered HTML form. */
375
- interface DeckViewerPart {
376
- content: DeckRenderable;
377
- html: string;
378
- }
379
- interface DeckViewerRenderInput<E extends Env = any> extends DeckViewerParts {
380
- c: Context<E>;
381
- deck: CompiledDeck;
382
- mountPath: string;
383
- }
384
- interface DeckViewerEmbedOptions {
385
- deck: CompiledDeck;
386
- mountPath: string;
387
- viewerStateQuery?: string;
388
- controls?: false | DeckViewerControlsOptions;
389
- availablePages?: Partial<DeckViewerAvailablePages>;
390
- exportPaths?: DeckViewerExportPaths;
391
- style?: string;
392
- toc?: boolean;
393
- className?: string;
394
- nonce?: string;
395
- }
396
- interface DeckViewerEmbed extends DeckViewerParts {
397
- embed: DeckRenderable;
398
- embedHtml: string;
399
- }
400
- declare function createDeckViewerParts(input: {
401
- deck: CompiledDeck;
402
- mountPath: string;
403
- viewerStateQuery?: string;
404
- controls?: false | DeckViewerControlsOptions;
405
- openGraph?: boolean | DeckViewerOpenGraphOptions;
406
- availablePages?: Partial<DeckViewerAvailablePages>;
407
- exportPaths?: DeckViewerExportPaths;
408
- }): Promise<DeckViewerParts>;
409
- declare function createDeckViewerEmbed(input: DeckViewerEmbedOptions): Promise<DeckViewerEmbed>;
410
-
411
- interface DeckExternalEmbedContext<E extends Env = any> {
412
- c: Context<E>;
413
- deck: CompiledDeck;
414
- slug: string;
415
- mountPath: string;
416
- }
417
- type DeckExternalEmbedViewerOptions = Omit<DeckViewerEmbedOptions, "deck" | "mountPath" | "nonce">;
418
- interface DeckExternalEmbedRenderInput<E extends Env = any> extends DeckExternalEmbedContext<E> {
419
- viewer: DeckViewerEmbed;
420
- document: ResolvedDeckDocument;
421
- }
422
- interface DeckExternalEmbedOptions<E extends Env = any> {
423
- enabled?: boolean | ((input: DeckExternalEmbedContext<E>) => MaybePromise<boolean>);
424
- frameAncestors?: string | string[] | ((input: DeckExternalEmbedContext<E>) => MaybePromise<string | string[] | undefined>);
425
- document?: DeckDocumentPageOptions<E>;
426
- viewer?: DeckExternalEmbedViewerOptions | ((input: DeckExternalEmbedContext<E>) => MaybePromise<DeckExternalEmbedViewerOptions>);
427
- pageStyle?: string;
428
- robots?: string | false;
429
- render?(input: DeckExternalEmbedRenderInput<E>): MaybePromise<DeckRenderable>;
430
- }
431
-
432
- interface DecksRouterExtension<E extends Env = any> {
433
- path: string;
434
- router: Hono<E>;
435
- }
436
- interface DecksRouterOptions<E extends Env = any> {
437
- source: DeckSource<E>;
438
- /**
439
- * Enables development-only deck behavior. When omitted, Vite and Wrangler
440
- * development commands are detected from NODE_ENV. Explicit values and
441
- * resolvers always take precedence.
442
- */
443
- dev?: boolean | DeckDevResolver<E>;
444
- extensions?: DecksRouterExtension<E>[];
445
- liveReloadPath?(slug: string, mountPath: string): string | undefined;
446
- style?: string;
447
- components?: SlideComponentRegistry | Record<string, SlideComponentInput>;
448
- clientEntry?: string;
449
- clientEntryAsset?: string;
450
- clientEntryAssetPath?: string;
451
- document?: DeckDocumentOptions<E>;
452
- pages?: DecksRouterPagesOptions<E>;
453
- embed?: false | DeckExternalEmbedOptions<E>;
454
- viewer?: DeckViewerOptions<E>;
455
- presenter?: false | DecksRouterPresenterOptions<E>;
456
- export?: false | DeckExportOptions<E>;
457
- }
458
- type DeckRouteSurface = "index" | "viewer" | "render" | "print" | "presentation" | "presenter";
459
- interface DeckRouteSurfaceInput<E extends Env = any> {
460
- c: Context<E>;
461
- surface: DeckRouteSurface;
462
- mountPath: string;
463
- dev: boolean;
464
- deck?: CompiledDeck;
465
- slug?: string;
466
- }
467
- type DeckRouteEnabledResolver<E extends Env = any> = (input: DeckRouteSurfaceInput<E>) => MaybePromise<boolean>;
468
- type DeckRouteEnabled<E extends Env = any> = boolean | DeckRouteEnabledResolver<E>;
469
- interface DeckIndexPageInput<E extends Env = any> extends DeckRouteSurfaceInput<E> {
470
- surface: "index";
471
- decks: DeckEntry[];
472
- }
473
- interface DeckIndexRenderInput<E extends Env = any> extends DeckIndexPageInput<E> {
474
- title: string;
475
- document: ResolvedDeckDocument;
476
- defaultContent: DeckRenderable;
477
- }
478
- interface DeckIndexPageOptions<E extends Env = any> {
479
- enabled?: DeckRouteEnabled<E>;
480
- title?: string | ((input: DeckIndexPageInput<E>) => MaybePromise<string>);
481
- render?(input: DeckIndexRenderInput<E>): MaybePromise<DeckRenderable>;
482
- }
483
- interface DecksRouterPagesOptions<E extends Env = any> {
484
- index?: false | DeckIndexPageOptions<E>;
485
- viewer?: DeckRouteEnabled<E>;
486
- render?: DeckRouteEnabled<E>;
487
- print?: DeckRouteEnabled<E>;
488
- presentation?: DeckRouteEnabled<E>;
489
- presenter?: DeckRouteEnabled<E>;
490
- }
491
- /** Request data passed to the development-mode resolver. */
492
- interface DeckDevResolverInput<E extends Env = any> {
493
- c: Context<E>;
494
- }
495
- type DeckDevResolver<E extends Env = any> = (input: DeckDevResolverInput<E>) => MaybePromise<boolean>;
496
- interface DecksRouterPresenterOptions<E extends Env = any> {
497
- enabled?: boolean | DeckPresenterEnabledResolver<E>;
498
- viewerControl?: boolean | DeckPresenterViewerControlOptions;
499
- }
500
- type DeckPresenterEnabledResolver<E extends Env = any> = (input: DeckPresenterEnabledInput<E>) => MaybePromise<boolean>;
501
- interface DeckPresenterEnabledInput<E extends Env = any> {
502
- c: Context<E>;
503
- deck: CompiledDeck;
504
- slug: string;
505
- mountPath: string;
506
- dev: boolean;
507
- presenterPath: string;
508
- presentationPath: string;
509
- }
510
- interface DeckPresenterViewerControlOptions {
511
- key?: string;
512
- label?: string;
513
- icon?: DeckControlIconName;
514
- className?: string;
515
- attributes?: Record<string, string | boolean | undefined>;
516
- placement?: "before" | "after";
517
- }
518
- interface DeckContextVariables {
519
- deck: CompiledDeck;
520
- deckViewer: DeckViewerParts;
521
- deckToc: DeckTocItem[];
522
- deckMeta: DeckPageMeta;
523
- }
524
- interface DeckContextOptions<E extends Env = any> {
525
- source: DeckSource<E>;
526
- dev?: boolean | DeckDevResolver<E>;
527
- mountPath?: string;
528
- pages?: Pick<DecksRouterPagesOptions<E>, "print">;
529
- viewer?: Pick<DeckViewerOptions<E>, "controls" | "openGraph">;
530
- }
531
- declare function decksRouter<E extends Env = any>(options: DecksRouterOptions<E>): Hono<E>;
532
- declare function deckContext<E extends Env = any>(options: DeckContextOptions<E>): MiddlewareHandler<E & {
533
- Variables: DeckContextVariables;
534
- }>;
535
-
536
- type DecksOptions<E extends Env = any> = Omit<DecksRouterOptions<E>, "source"> & ({
537
- manifest: DeckManifest;
538
- decks?: never;
539
- } | {
540
- decks: CompiledDeck[];
541
- manifest?: never;
542
- });
543
- /** Per-mount overrides merged on top of generated defaults and app config. */
544
- type DecksRouterOverrides<E extends Env = any> = Partial<Omit<DecksRouterOptions<E>, "components" | "clientEntryAsset">> & {
545
- components?: SlideComponentRegistry | Record<string, SlideComponentInput>;
546
- };
547
- /** Runtime options that keep the configured kit on its single transformed source. */
548
- type DecksRouterConfig<E extends Env = any> = Omit<DecksRouterOverrides<E>, "source">;
549
- interface DefinedDecks<E extends Env = any> {
550
- source: DeckSource<E>;
551
- router(overrides?: DecksRouterOverrides<E>): Hono<E>;
552
- }
553
- /** File-system settings consumed by the CLI. */
554
- interface DecksBuildConfig {
555
- /** Deck source directory. @default "decks" */
556
- root?: string;
557
- /** Generated module directory. @default "src/generated" */
558
- outDir?: string;
559
- /** Optional deterministic Open Graph metadata cache. */
560
- ogpCacheFile?: string;
561
- }
562
- /** Shared configuration consumed by both the CLI and the generated runtime kit. */
563
- interface DecksConfig<E extends Env = any> {
564
- /** Public route where the configured router is mounted. */
565
- mountPath: string;
566
- build?: DecksBuildConfig;
567
- source?(source: DeckSource<E>): DeckSource<E>;
568
- router?: DecksRouterConfig<E>;
569
- }
570
- /** A generated deck collection configured for one application. */
571
- interface ConfiguredDecks<E extends Env = any> {
572
- mountPath: string;
573
- source: DeckSource<E>;
574
- router(overrides?: DecksRouterConfig<E>): Hono<E>;
575
- context(overrides?: Pick<DecksRouterOptions<E>, "dev" | "pages" | "viewer">): MiddlewareHandler<E & {
576
- Variables: DeckContextVariables;
577
- }>;
578
- paths(slug: string): DeckPaths;
579
- }
580
- declare function defineDecks<E extends Env = any>(options: DecksOptions<E>): DefinedDecks<E>;
581
- /** Defines the single configuration consumed by the CLI and runtime. */
582
- declare function defineDecksConfig<E extends Env = any>(config: DecksConfig<E>): DecksConfig<E>;
583
- /** Applies app configuration to generated decks and returns the primary runtime API. */
584
- declare function configureDecks<E extends Env = any>(defined: DefinedDecks<E>, config: DecksConfig<E>): ConfiguredDecks<E>;
585
- declare function mergeDecksRouterOptions<E extends Env = any>(base: DecksRouterOptions<E>, overrides: DecksRouterOverrides<E>): DecksRouterOptions<E>;
586
-
587
- export { type DeckViewerControlsOptions as $, type AssetRef as A, type DeckIndexPageOptions as B, type CompiledDeck as C, type DeckManifest as D, type DeckIndexRenderInput as E, type DeckKind as F, type DeckPageMeta as G, type DeckPaths as H, type DeckPresenterEnabledInput as I, type DeckPresenterEnabledResolver as J, type DeckPresenterViewerControlOptions as K, type DeckRequestContext as L, type DeckRouteEnabled as M, type DeckRouteEnabledResolver as N, type DeckRouteSurface as O, type DeckRouteSurfaceInput as P, type DeckTocItem as Q, type ResolvedDeckDocument as R, type DeckViewerAvailablePages as S, type DeckViewerControlDefaults as T, type DeckViewerControlItem as U, type DeckViewerControlItemRenderer as V, type DeckViewerControlKey as W, type DeckViewerControlRenderInput as X, type DeckViewerControlSlotItems as Y, type DeckViewerControlsContext as Z, type DeckViewerControlsItemsResolver as _, type CompiledSlide as a, type DeckViewerDefaultControlItem as a0, type DeckViewerEmbed as a1, type DeckViewerEmbedOptions as a2, type DeckViewerExportPaths as a3, type DeckViewerLinkControlItem as a4, type DeckViewerOptions as a5, type DeckViewerPart as a6, type DeckViewerParts as a7, type DeckViewerRenderControlItem as a8, type DeckViewerRenderInput as a9, type SlideDeck as aA, type Slide as aB, type CompileDeckInput as aC, type DeckFileChange as aD, type DeckCompiler as aE, CompileError as aF, type DeckFileEntry as aG, RenderError as aH, type SlideBlock as aI, type SlideNode as aJ, type SlidePropValue as aK, type DecksBuildConfig as aa, type DecksConfig as ab, type DecksOptions as ac, type DecksRouterConfig as ad, type DecksRouterExtension as ae, type DecksRouterOptions as af, type DecksRouterOverrides as ag, type DecksRouterPagesOptions as ah, type DecksRouterPresenterOptions as ai, type DefinedDecks as aj, SLIDE_TRANSITIONS as ak, type SlideFrontmatter as al, type SlideTransition as am, configureDecks as an, controlIconLabel as ao, createDeckPaths as ap, createDeckViewerEmbed as aq, createDeckViewerParts as ar, deckContext as as, decksRouter as at, defineDecks as au, defineDecksConfig as av, mergeDecksRouterOptions as aw, renderControlIcon as ax, renderControlIconHtml as ay, type LocalDeckIO as az, type DeckSource as b, type CompileWarning as c, type ComponentPlaceholder as d, type ConfiguredDecks as e, type DeckBrowserRunBinding as f, type DeckBrowserRunPdfOptions as g, type DeckBrowserRunPngOptions as h, type DeckContextOptions as i, type DeckContextVariables as j, type DeckControlIconName as k, type DeckDevResolver as l, type DeckDevResolverInput as m, type DeckDocumentOptions as n, type DeckDocumentPageOptions as o, type DeckDocumentRenderInput as p, type DeckDocumentSurface as q, type DeckEntry as r, type DeckExportOptions as s, type DeckExportResolverInput as t, type DeckExternalEmbedContext as u, type DeckExternalEmbedOptions as v, type DeckExternalEmbedRenderInput as w, type DeckExternalEmbedViewerOptions as x, type DeckFrontmatter as y, type DeckIndexPageInput as z };
@@ -1,20 +0,0 @@
1
- import { Child } from 'hono/jsx';
2
- import { HtmlEscapedString } from 'hono/utils/html';
3
-
4
- type MaybePromise<T> = T | Promise<T>;
5
- type DeckRenderable = Child | HtmlEscapedString;
6
- type SlideComponentProps = Record<string, unknown> & {
7
- children?: DeckRenderable;
8
- };
9
- type SlideComponent = (props: SlideComponentProps) => DeckRenderable;
10
- interface SlideComponentDefinition {
11
- component: SlideComponent;
12
- client?: boolean;
13
- clientId?: string;
14
- }
15
- type SlideComponentInput = SlideComponent | SlideComponentDefinition;
16
- type SlideComponentRegistry = Record<string, SlideComponentDefinition>;
17
- declare const builtInSlideComponents: SlideComponentRegistry;
18
- declare function defineSlideComponents(input: Record<string, SlideComponentInput>): SlideComponentRegistry;
19
-
20
- export { type DeckRenderable as D, type MaybePromise as M, type SlideComponent as S, type SlideComponentRegistry as a, type SlideComponentInput as b, type SlideComponentDefinition as c, type SlideComponentProps as d, builtInSlideComponents as e, defineSlideComponents as f };