claude-presentation-master 3.8.5 → 3.8.7

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.
@@ -0,0 +1,17 @@
1
+ import {
2
+ applyExtends,
3
+ esm_default,
4
+ hideBin,
5
+ lib_default
6
+ } from "./chunk-4MOE77QU.mjs";
7
+ import "./chunk-HEBXNMVQ.mjs";
8
+
9
+ // node_modules/yargs/helpers/helpers.mjs
10
+ var applyExtends2 = (config, cwd, mergeExtends) => {
11
+ return applyExtends(config, cwd, mergeExtends, esm_default);
12
+ };
13
+ export {
14
+ lib_default as Parser,
15
+ applyExtends2 as applyExtends,
16
+ hideBin
17
+ };
package/dist/index.d.mts CHANGED
@@ -711,7 +711,10 @@ declare class SlideGeneratorV2 {
711
711
  private splitIntoSections;
712
712
  /**
713
713
  * Process section content into slides.
714
- * Tables become table slides. Lists become bullet slides.
714
+ * RULES:
715
+ * 1. Tables ALWAYS become table slides - NEVER extract to metrics
716
+ * 2. Empty sections are SKIPPED - no blank divider slides
717
+ * 3. Sections with minimal content are combined into statement slides
715
718
  */
716
719
  private processSectionContent;
717
720
  /**
@@ -720,9 +723,17 @@ declare class SlideGeneratorV2 {
720
723
  private createTableSlide;
721
724
  /**
722
725
  * Create bullet slides from list content.
723
- * NEVER truncate bullets. Split into multiple slides if needed.
726
+ * RULES:
727
+ * 1. NEVER truncate bullets
728
+ * 2. NEVER create slides with only 1-2 bullets (orphan slides)
729
+ * 3. If there are fewer than minBulletsToKeep bullets, combine them into a statement slide
724
730
  */
725
731
  private createBulletSlides;
732
+ /**
733
+ * Split bullets into chunks without creating orphan slides.
734
+ * If the last chunk would have fewer than minBullets, steal from previous chunk.
735
+ */
736
+ private splitBulletsWithoutOrphans;
726
737
  /**
727
738
  * Get complete text from a list item, including nested content.
728
739
  * NEVER truncate.
@@ -1285,18 +1296,57 @@ declare function initRenderer(): Promise<Renderer>;
1285
1296
  /**
1286
1297
  * Renderer V2 - Clean, Professional, No Garbage
1287
1298
  *
1288
- * Renders slides to HTML with:
1299
+ * Renders slides to HTML and PDF with:
1289
1300
  * - Tables as actual tables (not mangled metrics)
1290
1301
  * - Complete bullets (never truncated)
1291
1302
  * - Clean professional CSS (no random stock photos)
1292
- * - McKinsey/BCG style dark theme
1303
+ * - McKinsey/BCG consulting style (WHITE background, strong hierarchy)
1304
+ * - Automatic PDF generation alongside HTML
1293
1305
  */
1294
1306
 
1307
+ type ThemeStyle = 'mckinsey' | 'dark' | 'minimal' | 'corporate' | 'startup';
1295
1308
  declare class RendererV2 {
1309
+ private theme;
1310
+ private presentationType;
1311
+ /**
1312
+ * Create renderer with theme based on presentation type.
1313
+ * @param presentationType - The type of deck being created (determines theme)
1314
+ * @param themeOverride - Optional explicit theme override
1315
+ */
1316
+ constructor(presentationType?: PresentationType, themeOverride?: ThemeStyle);
1296
1317
  /**
1297
1318
  * Render slides to complete HTML document.
1298
1319
  */
1299
1320
  render(slides: SlideV2[], title?: string): string;
1321
+ /**
1322
+ * Render slides to both HTML and PDF files.
1323
+ * Always generates both formats for easy sharing.
1324
+ */
1325
+ renderToFiles(slides: SlideV2[], outputPath: string, title?: string): Promise<{
1326
+ htmlPath: string;
1327
+ pdfPath: string;
1328
+ }>;
1329
+ /**
1330
+ * Render slides directly to PDF using Puppeteer.
1331
+ * Creates a printable PDF with one slide per page.
1332
+ */
1333
+ renderToPDF(slides: SlideV2[], outputPath: string, title?: string): Promise<Uint8Array>;
1334
+ /**
1335
+ * Render HTML optimized for PDF printing (no reveal.js, static pages).
1336
+ */
1337
+ private renderForPrint;
1338
+ /**
1339
+ * McKinsey-style print HTML (white background, professional).
1340
+ */
1341
+ private getMcKinseyPrintHTML;
1342
+ /**
1343
+ * Dark theme print HTML (legacy).
1344
+ */
1345
+ private getDarkPrintHTML;
1346
+ /**
1347
+ * Render slide content (shared between HTML and PDF renderers).
1348
+ */
1349
+ private renderSlideContent;
1300
1350
  /**
1301
1351
  * Render a single slide.
1302
1352
  */
@@ -1346,11 +1396,32 @@ declare class RendererV2 {
1346
1396
  */
1347
1397
  private escapeHtml;
1348
1398
  /**
1349
- * Professional CSS - McKinsey/BCG style.
1399
+ * Professional CSS - McKinsey/BCG consulting style.
1350
1400
  */
1351
1401
  private getCSS;
1402
+ /**
1403
+ * McKinsey/BCG Consulting Style - WHITE background, professional hierarchy.
1404
+ */
1405
+ private getMcKinseyCSS;
1406
+ /**
1407
+ * Dark theme CSS (legacy).
1408
+ */
1409
+ private getDarkCSS;
1352
1410
  }
1353
- declare function createRendererV2(): RendererV2;
1411
+ /**
1412
+ * Create a renderer with theme matched to the presentation type.
1413
+ *
1414
+ * @param presentationType - Type of deck (consulting_deck, keynote, etc.)
1415
+ * @param themeOverride - Optional explicit theme to use instead of auto-mapping
1416
+ *
1417
+ * Theme mapping:
1418
+ * - consulting_deck, board_presentation, internal_update → McKinsey (white, professional)
1419
+ * - keynote, sales_pitch, technical → Dark (dramatic)
1420
+ * - training, workshop, all_hands → Minimal (clean, readable)
1421
+ * - product_demo, investor_pitch → Startup (modern dark)
1422
+ * - executive_briefing → Corporate (professional)
1423
+ */
1424
+ declare function createRendererV2(presentationType?: PresentationType, themeOverride?: ThemeStyle): RendererV2;
1354
1425
 
1355
1426
  /**
1356
1427
  * NanoBanana Pro Image Generation Provider
package/dist/index.d.ts CHANGED
@@ -711,7 +711,10 @@ declare class SlideGeneratorV2 {
711
711
  private splitIntoSections;
712
712
  /**
713
713
  * Process section content into slides.
714
- * Tables become table slides. Lists become bullet slides.
714
+ * RULES:
715
+ * 1. Tables ALWAYS become table slides - NEVER extract to metrics
716
+ * 2. Empty sections are SKIPPED - no blank divider slides
717
+ * 3. Sections with minimal content are combined into statement slides
715
718
  */
716
719
  private processSectionContent;
717
720
  /**
@@ -720,9 +723,17 @@ declare class SlideGeneratorV2 {
720
723
  private createTableSlide;
721
724
  /**
722
725
  * Create bullet slides from list content.
723
- * NEVER truncate bullets. Split into multiple slides if needed.
726
+ * RULES:
727
+ * 1. NEVER truncate bullets
728
+ * 2. NEVER create slides with only 1-2 bullets (orphan slides)
729
+ * 3. If there are fewer than minBulletsToKeep bullets, combine them into a statement slide
724
730
  */
725
731
  private createBulletSlides;
732
+ /**
733
+ * Split bullets into chunks without creating orphan slides.
734
+ * If the last chunk would have fewer than minBullets, steal from previous chunk.
735
+ */
736
+ private splitBulletsWithoutOrphans;
726
737
  /**
727
738
  * Get complete text from a list item, including nested content.
728
739
  * NEVER truncate.
@@ -1285,18 +1296,57 @@ declare function initRenderer(): Promise<Renderer>;
1285
1296
  /**
1286
1297
  * Renderer V2 - Clean, Professional, No Garbage
1287
1298
  *
1288
- * Renders slides to HTML with:
1299
+ * Renders slides to HTML and PDF with:
1289
1300
  * - Tables as actual tables (not mangled metrics)
1290
1301
  * - Complete bullets (never truncated)
1291
1302
  * - Clean professional CSS (no random stock photos)
1292
- * - McKinsey/BCG style dark theme
1303
+ * - McKinsey/BCG consulting style (WHITE background, strong hierarchy)
1304
+ * - Automatic PDF generation alongside HTML
1293
1305
  */
1294
1306
 
1307
+ type ThemeStyle = 'mckinsey' | 'dark' | 'minimal' | 'corporate' | 'startup';
1295
1308
  declare class RendererV2 {
1309
+ private theme;
1310
+ private presentationType;
1311
+ /**
1312
+ * Create renderer with theme based on presentation type.
1313
+ * @param presentationType - The type of deck being created (determines theme)
1314
+ * @param themeOverride - Optional explicit theme override
1315
+ */
1316
+ constructor(presentationType?: PresentationType, themeOverride?: ThemeStyle);
1296
1317
  /**
1297
1318
  * Render slides to complete HTML document.
1298
1319
  */
1299
1320
  render(slides: SlideV2[], title?: string): string;
1321
+ /**
1322
+ * Render slides to both HTML and PDF files.
1323
+ * Always generates both formats for easy sharing.
1324
+ */
1325
+ renderToFiles(slides: SlideV2[], outputPath: string, title?: string): Promise<{
1326
+ htmlPath: string;
1327
+ pdfPath: string;
1328
+ }>;
1329
+ /**
1330
+ * Render slides directly to PDF using Puppeteer.
1331
+ * Creates a printable PDF with one slide per page.
1332
+ */
1333
+ renderToPDF(slides: SlideV2[], outputPath: string, title?: string): Promise<Uint8Array>;
1334
+ /**
1335
+ * Render HTML optimized for PDF printing (no reveal.js, static pages).
1336
+ */
1337
+ private renderForPrint;
1338
+ /**
1339
+ * McKinsey-style print HTML (white background, professional).
1340
+ */
1341
+ private getMcKinseyPrintHTML;
1342
+ /**
1343
+ * Dark theme print HTML (legacy).
1344
+ */
1345
+ private getDarkPrintHTML;
1346
+ /**
1347
+ * Render slide content (shared between HTML and PDF renderers).
1348
+ */
1349
+ private renderSlideContent;
1300
1350
  /**
1301
1351
  * Render a single slide.
1302
1352
  */
@@ -1346,11 +1396,32 @@ declare class RendererV2 {
1346
1396
  */
1347
1397
  private escapeHtml;
1348
1398
  /**
1349
- * Professional CSS - McKinsey/BCG style.
1399
+ * Professional CSS - McKinsey/BCG consulting style.
1350
1400
  */
1351
1401
  private getCSS;
1402
+ /**
1403
+ * McKinsey/BCG Consulting Style - WHITE background, professional hierarchy.
1404
+ */
1405
+ private getMcKinseyCSS;
1406
+ /**
1407
+ * Dark theme CSS (legacy).
1408
+ */
1409
+ private getDarkCSS;
1352
1410
  }
1353
- declare function createRendererV2(): RendererV2;
1411
+ /**
1412
+ * Create a renderer with theme matched to the presentation type.
1413
+ *
1414
+ * @param presentationType - Type of deck (consulting_deck, keynote, etc.)
1415
+ * @param themeOverride - Optional explicit theme to use instead of auto-mapping
1416
+ *
1417
+ * Theme mapping:
1418
+ * - consulting_deck, board_presentation, internal_update → McKinsey (white, professional)
1419
+ * - keynote, sales_pitch, technical → Dark (dramatic)
1420
+ * - training, workshop, all_hands → Minimal (clean, readable)
1421
+ * - product_demo, investor_pitch → Startup (modern dark)
1422
+ * - executive_briefing → Corporate (professional)
1423
+ */
1424
+ declare function createRendererV2(presentationType?: PresentationType, themeOverride?: ThemeStyle): RendererV2;
1354
1425
 
1355
1426
  /**
1356
1427
  * NanoBanana Pro Image Generation Provider