pptx-viewer-mcp 2.2.0 → 2.4.0

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.
@@ -63,6 +63,32 @@ var ConvertToMarkdownSchema = zod.z.object({
63
63
  var AccessibilityCheckSchema = zod.z.object({
64
64
  filePath: zod.z.string().describe("Path to the PPTX file")
65
65
  });
66
+ var ThemeColorRefSchema = zod.z.object({
67
+ scheme: zod.z.enum([
68
+ "dk1",
69
+ "lt1",
70
+ "dk2",
71
+ "lt2",
72
+ "accent1",
73
+ "accent2",
74
+ "accent3",
75
+ "accent4",
76
+ "accent5",
77
+ "accent6",
78
+ "hlink",
79
+ "folHlink",
80
+ "bg1",
81
+ "tx1",
82
+ "bg2",
83
+ "tx2",
84
+ "phClr"
85
+ ]),
86
+ lumMod: zod.z.number().optional().describe("Multiply HSL luminance (0..1)"),
87
+ lumOff: zod.z.number().optional().describe("Add to HSL luminance after lumMod (0..1)"),
88
+ tint: zod.z.number().optional().describe("Blend towards white (0..1)"),
89
+ shade: zod.z.number().optional().describe("Blend towards black (0..1)"),
90
+ alpha: zod.z.number().optional().describe("Opacity fraction, 1 = opaque")
91
+ });
66
92
  var AddElementSchema = zod.z.object({
67
93
  filePath: zod.z.string().describe("Path to the PPTX file"),
68
94
  slideIndex: zod.z.number().int().min(0).describe("Zero-based slide index"),
@@ -107,6 +133,12 @@ var UpdateElementSchema = zod.z.object({
107
133
  fontSize: zod.z.number().optional(),
108
134
  fontFamily: zod.z.string().optional(),
109
135
  fontColor: zod.z.string().optional(),
136
+ /**
137
+ * A theme colour for the run text. Wins on save; resolves `fontColor`
138
+ * immediately when `fontColor` was not also given. Passing `fontColor`
139
+ * alone clears a previously-set text theme colour.
140
+ */
141
+ fontThemeColor: ThemeColorRefSchema.optional(),
110
142
  bold: zod.z.boolean().optional(),
111
143
  italic: zod.z.boolean().optional(),
112
144
  underline: zod.z.boolean().optional(),
@@ -117,7 +149,13 @@ var UpdateElementSchema = zod.z.object({
117
149
  opacity: zod.z.number().min(0).max(1).optional(),
118
150
  hidden: zod.z.boolean().optional(),
119
151
  flipH: zod.z.boolean().optional(),
120
- flipV: zod.z.boolean().optional()
152
+ flipV: zod.z.boolean().optional(),
153
+ altText: zod.z.string().optional().describe(
154
+ "Accessibility description (p:cNvPr/@descr) for image, picture, table, chart, smartArt, ole, media, text, shape and connector elements"
155
+ ),
156
+ title: zod.z.string().optional().describe(
157
+ "Accessibility title (p:cNvPr/@title) for table, chart, smartArt, ole, media, text, shape and connector elements (not pictures)"
158
+ )
121
159
  });
122
160
  var RenameElementSchema = zod.z.object({
123
161
  filePath: zod.z.string().describe("Path to the PPTX file"),
@@ -179,6 +217,32 @@ var BatchUpdateElementsSchema = zod.z.object({
179
217
  opacity: zod.z.number().min(0).max(1).optional(),
180
218
  hidden: zod.z.boolean().optional()
181
219
  });
220
+ var ThemeColorRefSchema2 = zod.z.object({
221
+ scheme: zod.z.enum([
222
+ "dk1",
223
+ "lt1",
224
+ "dk2",
225
+ "lt2",
226
+ "accent1",
227
+ "accent2",
228
+ "accent3",
229
+ "accent4",
230
+ "accent5",
231
+ "accent6",
232
+ "hlink",
233
+ "folHlink",
234
+ "bg1",
235
+ "tx1",
236
+ "bg2",
237
+ "tx2",
238
+ "phClr"
239
+ ]),
240
+ lumMod: zod.z.number().optional().describe("Multiply HSL luminance (0..1)"),
241
+ lumOff: zod.z.number().optional().describe("Add to HSL luminance after lumMod (0..1)"),
242
+ tint: zod.z.number().optional().describe("Blend towards white (0..1)"),
243
+ shade: zod.z.number().optional().describe("Blend towards black (0..1)"),
244
+ alpha: zod.z.number().optional().describe("Opacity fraction, 1 = opaque")
245
+ });
182
246
  var UpdateTableCellsSchema = zod.z.object({
183
247
  filePath: zod.z.string().describe("Path to the PPTX file"),
184
248
  slideIndex: zod.z.number().int().min(0),
@@ -205,6 +269,14 @@ var UpdateElementStyleSchema = zod.z.object({
205
269
  slideIndex: zod.z.number().int().min(0),
206
270
  elementId: zod.z.string(),
207
271
  fillColor: zod.z.string().optional(),
272
+ /**
273
+ * A theme colour for the fill (e.g. `{ scheme: 'accent1', lumMod: 0.8 }`
274
+ * for "Accent 1, Lighter 80%"). When set, the shape saves as
275
+ * `<a:schemeClr>` and keeps following the theme after a later theme
276
+ * change, instead of freezing today's resolved hex. Setting `fillColor`
277
+ * without this clears any previously-set fill theme colour.
278
+ */
279
+ fillThemeColor: ThemeColorRefSchema2.optional(),
208
280
  fillMode: zod.z.string().optional(),
209
281
  fillGradientStops: zod.z.array(
210
282
  zod.z.object({
@@ -217,6 +289,8 @@ var UpdateElementStyleSchema = zod.z.object({
217
289
  fillGradientType: zod.z.string().optional(),
218
290
  fillOpacity: zod.z.number().optional(),
219
291
  strokeColor: zod.z.string().optional(),
292
+ /** A theme colour for the outline; see `fillThemeColor` above. */
293
+ strokeThemeColor: ThemeColorRefSchema2.optional(),
220
294
  strokeWidth: zod.z.number().optional(),
221
295
  strokeDash: zod.z.string().optional(),
222
296
  strokeOpacity: zod.z.number().optional(),
@@ -236,7 +310,12 @@ var UpdateElementStyleSchema = zod.z.object({
236
310
  brightness: zod.z.number().optional(),
237
311
  contrast: zod.z.number().optional(),
238
312
  grayscale: zod.z.boolean().optional(),
239
- altText: zod.z.string().optional()
313
+ altText: zod.z.string().optional().describe(
314
+ "Accessibility description (p:cNvPr/@descr) for image, picture, table, chart, smartArt, ole, media, text, shape and connector elements"
315
+ ),
316
+ title: zod.z.string().optional().describe(
317
+ "Accessibility title (p:cNvPr/@title) for table, chart, smartArt, ole, media, text, shape and connector elements (not pictures)"
318
+ )
240
319
  });
241
320
  var FindTextSchema = zod.z.object({
242
321
  filePath: zod.z.string().describe("Path to the PPTX file"),
@@ -263,6 +342,116 @@ var ManageCommentsSchema = zod.z.object({
263
342
  resolved: zod.z.boolean().optional(),
264
343
  includeResolved: zod.z.boolean().optional()
265
344
  });
345
+ var TABLE_STYLE_SECTIONS = [
346
+ "wholeTbl",
347
+ "band1H",
348
+ "band2H",
349
+ "band1V",
350
+ "band2V",
351
+ "lastCol",
352
+ "firstCol",
353
+ "lastRow",
354
+ "seCell",
355
+ "swCell",
356
+ "firstRow",
357
+ "neCell",
358
+ "nwCell"
359
+ ];
360
+ var TableStyleSimpleColorSchema = zod.z.object({
361
+ schemeColor: zod.z.string().describe('Theme colour key (e.g. "accent1"), or "" for a non-scheme fill'),
362
+ tint: zod.z.number().optional().describe("0-100000"),
363
+ shade: zod.z.number().optional().describe("0-100000"),
364
+ color: zod.z.string().optional().describe('Explicit hex colour, e.g. "#FF8800"')
365
+ });
366
+ var TableStyleFillSchema = zod.z.object({
367
+ schemeColor: zod.z.string(),
368
+ tint: zod.z.number().optional(),
369
+ shade: zod.z.number().optional(),
370
+ color: zod.z.string().optional(),
371
+ noFill: zod.z.boolean().optional(),
372
+ gradient: zod.z.object({
373
+ type: zod.z.enum(["linear", "radial"]),
374
+ angle: zod.z.number().optional(),
375
+ stops: zod.z.array(zod.z.object({ position: zod.z.number(), fill: TableStyleSimpleColorSchema }))
376
+ }).optional(),
377
+ pattern: zod.z.object({
378
+ preset: zod.z.string(),
379
+ foreground: TableStyleSimpleColorSchema.optional(),
380
+ background: TableStyleSimpleColorSchema.optional()
381
+ }).optional(),
382
+ image: zod.z.object({ path: zod.z.string().optional(), data: zod.z.string().optional() }).optional()
383
+ });
384
+ var TableStyleTextSchema = zod.z.object({
385
+ bold: zod.z.boolean().optional(),
386
+ italic: zod.z.boolean().optional(),
387
+ underline: zod.z.boolean().optional(),
388
+ fontSchemeColor: zod.z.string().optional(),
389
+ fontTint: zod.z.number().optional(),
390
+ fontShade: zod.z.number().optional(),
391
+ fontColor: zod.z.string().optional(),
392
+ fontFace: zod.z.string().optional(),
393
+ fontRefIdx: zod.z.string().optional()
394
+ });
395
+ var TableStyleBorderSideSchema = zod.z.object({
396
+ width: zod.z.number().optional(),
397
+ dash: zod.z.string().optional(),
398
+ fill: TableStyleSimpleColorSchema.optional(),
399
+ color: zod.z.string().optional(),
400
+ noFill: zod.z.boolean().optional()
401
+ });
402
+ var TableStyleBordersSchema = zod.z.object({
403
+ left: TableStyleBorderSideSchema.optional(),
404
+ right: TableStyleBorderSideSchema.optional(),
405
+ top: TableStyleBorderSideSchema.optional(),
406
+ bottom: TableStyleBorderSideSchema.optional(),
407
+ insideH: TableStyleBorderSideSchema.optional(),
408
+ insideV: TableStyleBorderSideSchema.optional(),
409
+ tl2br: TableStyleBorderSideSchema.optional(),
410
+ tr2bl: TableStyleBorderSideSchema.optional()
411
+ });
412
+ var TableStyleCell3DSchema = zod.z.object({
413
+ bevelWidth: zod.z.number().optional(),
414
+ bevelHeight: zod.z.number().optional(),
415
+ bevelPreset: zod.z.string().optional(),
416
+ material: zod.z.string().optional(),
417
+ lightRig: zod.z.string().optional(),
418
+ lightRigDirection: zod.z.string().optional()
419
+ });
420
+ var SetTableStyleSectionSchema = zod.z.object({
421
+ filePath: zod.z.string().describe("Path to the PPTX file"),
422
+ styleId: zod.z.string().describe('Table style GUID, e.g. "{5C22544A-7EE6-4342-B048-85BDC9FD1C3A}"'),
423
+ section: zod.z.enum(TABLE_STYLE_SECTIONS).describe("Which of the 13 CT_TableStyle parts to patch"),
424
+ styleName: zod.z.string().optional().describe("Rename the style"),
425
+ fill: TableStyleFillSchema.optional(),
426
+ text: TableStyleTextSchema.optional(),
427
+ borders: TableStyleBordersSchema.optional(),
428
+ cell3D: TableStyleCell3DSchema.optional()
429
+ });
430
+ var CreateTableStyleSchema = zod.z.object({
431
+ filePath: zod.z.string().describe("Path to the PPTX file"),
432
+ styleName: zod.z.string().describe("Display name for the new style"),
433
+ basedOnStyleId: zod.z.string().optional().describe("Deep-clone every section from this existing style GUID as the starting point"),
434
+ setAsDefault: zod.z.boolean().optional().describe("Repoint ppt/tableStyles.xml's default style at the new one")
435
+ });
436
+ var DeleteTableStyleSchema = zod.z.object({
437
+ filePath: zod.z.string().describe("Path to the PPTX file"),
438
+ styleId: zod.z.string().describe("Table style GUID to remove"),
439
+ force: zod.z.boolean().optional().describe("Delete even though a table on this deck still references the style")
440
+ });
441
+ var AssignTableStyleSchema = zod.z.object({
442
+ filePath: zod.z.string().describe("Path to the PPTX file"),
443
+ slideIndex: zod.z.number().int().min(0),
444
+ elementId: zod.z.string().describe("Table element ID"),
445
+ styleId: zod.z.string().optional().describe(
446
+ "Table style GUID to assign. Defaults to the presentation's current default table style when omitted."
447
+ ),
448
+ bandedRows: zod.z.boolean().optional(),
449
+ bandedColumns: zod.z.boolean().optional(),
450
+ firstRowHeader: zod.z.boolean().optional(),
451
+ lastRow: zod.z.boolean().optional(),
452
+ firstCol: zod.z.boolean().optional(),
453
+ lastCol: zod.z.boolean().optional()
454
+ });
266
455
  var GetThemeInfoSchema = zod.z.object({
267
456
  filePath: zod.z.string().describe("Path to the PPTX file")
268
457
  });
@@ -292,6 +481,139 @@ var UpdateThemeFontsSchema = zod.z.object({
292
481
  majorFont: zod.z.string().optional().describe("Heading (major) font family"),
293
482
  minorFont: zod.z.string().optional().describe("Body (minor) font family")
294
483
  });
484
+ var MarkerSymbolSchema = zod.z.enum([
485
+ "circle",
486
+ "dash",
487
+ "diamond",
488
+ "dot",
489
+ "none",
490
+ "picture",
491
+ "plus",
492
+ "square",
493
+ "star",
494
+ "triangle",
495
+ "x",
496
+ "auto"
497
+ ]);
498
+ var DataLabelPositionSchema = zod.z.enum([
499
+ "bestFit",
500
+ "b",
501
+ "ctr",
502
+ "inBase",
503
+ "inEnd",
504
+ "l",
505
+ "outEnd",
506
+ "r",
507
+ "t"
508
+ ]);
509
+ var FormatChartDataPointSchema = zod.z.object({
510
+ filePath: zod.z.string().describe("Path to the PPTX file"),
511
+ slideIndex: zod.z.number().int().min(0).describe("Zero-based slide index"),
512
+ elementId: zod.z.string().describe("Chart element ID"),
513
+ seriesIndex: zod.z.number().int().min(0).describe("Zero-based series index"),
514
+ pointIndex: zod.z.number().int().min(0).describe("Zero-based data point (category) index"),
515
+ fillColor: zod.z.string().optional().describe("Fill colour (hex) for this point only"),
516
+ strokeColor: zod.z.string().optional().describe("Outline colour (hex) for this point only"),
517
+ strokeWidth: zod.z.number().optional().describe("Outline width in points"),
518
+ strokeDashStyle: zod.z.string().optional().describe("Outline dash style, e.g. solid, dash, dashDot, sysDot"),
519
+ clearStyle: zod.z.boolean().optional().describe("Remove all per-point shape formatting"),
520
+ explosion: zod.z.number().nullable().optional().describe("Pie/doughnut slice pull-out distance 0-100; null clears it"),
521
+ marker: zod.z.object({
522
+ symbol: MarkerSymbolSchema.optional(),
523
+ size: zod.z.number().optional(),
524
+ fillColor: zod.z.string().optional()
525
+ }).nullable().optional().describe("Per-point marker override (line/scatter/bubble); null clears it")
526
+ });
527
+ var FormatChartDataLabelSchema = zod.z.object({
528
+ filePath: zod.z.string().describe("Path to the PPTX file"),
529
+ slideIndex: zod.z.number().int().min(0).describe("Zero-based slide index"),
530
+ elementId: zod.z.string().describe("Chart element ID"),
531
+ seriesIndex: zod.z.number().int().min(0).describe("Zero-based series index"),
532
+ pointIndex: zod.z.number().int().min(0).describe("Zero-based data point (category) index"),
533
+ remove: zod.z.boolean().optional().describe("Remove the per-point label override entirely"),
534
+ showValue: zod.z.boolean().optional(),
535
+ showCategory: zod.z.boolean().optional(),
536
+ showSeriesName: zod.z.boolean().optional(),
537
+ showPercent: zod.z.boolean().optional(),
538
+ showLegendKey: zod.z.boolean().optional(),
539
+ position: DataLabelPositionSchema.optional(),
540
+ text: zod.z.string().optional().describe("Custom label text override; '' clears it"),
541
+ spPr: zod.z.object({
542
+ fillColor: zod.z.string().optional(),
543
+ strokeColor: zod.z.string().optional(),
544
+ strokeWidth: zod.z.number().optional(),
545
+ strokeDashStyle: zod.z.string().optional()
546
+ }).nullable().optional().describe("This label's own fill/line formatting; null removes it"),
547
+ txPr: zod.z.object({
548
+ fontFamily: zod.z.string().optional(),
549
+ fontSize: zod.z.number().optional(),
550
+ bold: zod.z.boolean().optional(),
551
+ italic: zod.z.boolean().optional(),
552
+ color: zod.z.string().optional()
553
+ }).nullable().optional().describe("This label's own font; null removes it")
554
+ });
555
+ var FormatChartSeriesSchema = zod.z.object({
556
+ filePath: zod.z.string().describe("Path to the PPTX file"),
557
+ slideIndex: zod.z.number().int().min(0).describe("Zero-based slide index"),
558
+ elementId: zod.z.string().describe("Chart element ID"),
559
+ seriesIndex: zod.z.number().int().min(0).describe("Zero-based series index"),
560
+ marker: zod.z.object({
561
+ symbol: MarkerSymbolSchema.optional(),
562
+ size: zod.z.number().optional(),
563
+ fillColor: zod.z.string().optional(),
564
+ strokeColor: zod.z.string().optional(),
565
+ strokeWidth: zod.z.number().optional(),
566
+ strokeDashStyle: zod.z.string().optional()
567
+ }).nullable().optional().describe("Series marker (line/scatter/bubble/radar); null removes it"),
568
+ trendline: zod.z.object({
569
+ trendlineType: zod.z.enum([
570
+ "linear",
571
+ "exponential",
572
+ "logarithmic",
573
+ "polynomial",
574
+ "power",
575
+ "movingAvg"
576
+ ]),
577
+ color: zod.z.string().optional(),
578
+ lineWidth: zod.z.number().optional().describe("Trendline width in points"),
579
+ lineDashStyle: zod.z.string().optional(),
580
+ order: zod.z.number().optional().describe("Polynomial order, 2-6"),
581
+ period: zod.z.number().optional().describe("Moving-average period"),
582
+ displayEq: zod.z.boolean().optional(),
583
+ displayRSq: zod.z.boolean().optional()
584
+ }).nullable().optional().describe("Series trendline; null removes it"),
585
+ errorBars: zod.z.object({
586
+ direction: zod.z.enum(["x", "y"]),
587
+ barType: zod.z.enum(["both", "minus", "plus"]),
588
+ valType: zod.z.enum(["cust", "fixedVal", "percentage", "stdDev", "stdErr"]),
589
+ val: zod.z.number().optional(),
590
+ customPlus: zod.z.array(zod.z.number()).optional(),
591
+ customMinus: zod.z.array(zod.z.number()).optional(),
592
+ noEndCap: zod.z.boolean().optional(),
593
+ color: zod.z.string().optional(),
594
+ width: zod.z.number().optional().describe("Error-bar line width in points"),
595
+ dashStyle: zod.z.string().optional()
596
+ }).nullable().optional().describe("Series error bars; null removes them")
597
+ });
598
+ var SetChartHelperLineSchema = zod.z.object({
599
+ filePath: zod.z.string().describe("Path to the PPTX file"),
600
+ slideIndex: zod.z.number().int().min(0).describe("Zero-based slide index"),
601
+ elementId: zod.z.string().describe("Chart element ID"),
602
+ line: zod.z.enum(["dropLines", "hiLowLines"]).describe("Which helper line to set"),
603
+ style: zod.z.object({
604
+ color: zod.z.string().optional(),
605
+ width: zod.z.number().optional(),
606
+ dashStyle: zod.z.string().optional()
607
+ }).nullable().describe("Line colour/width/dash; {} shows the line with defaults, null removes it")
608
+ });
609
+ var SetChartColorMapOverrideSchema = zod.z.object({
610
+ filePath: zod.z.string().describe("Path to the PPTX file"),
611
+ slideIndex: zod.z.number().int().min(0).describe("Zero-based slide index"),
612
+ elementId: zod.z.string().describe("Chart element ID"),
613
+ overrides: zod.z.record(zod.z.string(), zod.z.string()).nullable().describe(
614
+ 'Theme colour role remap (bg1/tx1/bg2/tx2/accent1-6/hlink/folHlink -> role), e.g. { "accent1": "accent2" }; null removes the override'
615
+ )
616
+ });
295
617
  var UpdateChartSchema = zod.z.object({
296
618
  filePath: zod.z.string().describe("Path to the PPTX file"),
297
619
  slideIndex: zod.z.number().int().min(0).describe("Zero-based slide index"),
@@ -564,18 +886,24 @@ exports.ApplyLayoutSchema = ApplyLayoutSchema;
564
886
  exports.ApplyTemplateSchema = ApplyTemplateSchema;
565
887
  exports.ApplyThemePresetSchema = ApplyThemePresetSchema;
566
888
  exports.ArrangeElementsSchema = ArrangeElementsSchema;
889
+ exports.AssignTableStyleSchema = AssignTableStyleSchema;
567
890
  exports.BatchUpdateElementsSchema = BatchUpdateElementsSchema;
568
891
  exports.CloneElementSchema = CloneElementSchema;
569
892
  exports.ConvertToMarkdownSchema = ConvertToMarkdownSchema;
570
893
  exports.CreateChartSchema = CreateChartSchema;
894
+ exports.CreateTableStyleSchema = CreateTableStyleSchema;
571
895
  exports.DeleteElementsSchema = DeleteElementsSchema;
572
896
  exports.DeleteSlidesSchema = DeleteSlidesSchema;
897
+ exports.DeleteTableStyleSchema = DeleteTableStyleSchema;
573
898
  exports.DuplicateSlideSchema = DuplicateSlideSchema;
574
899
  exports.ExportSlideSvgSchema = ExportSlideSvgSchema;
575
900
  exports.ExportToJsonSchema = ExportToJsonSchema;
576
901
  exports.ExportToSvgSchema = ExportToSvgSchema;
577
902
  exports.FindPlaceholdersSchema = FindPlaceholdersSchema;
578
903
  exports.FindTextSchema = FindTextSchema;
904
+ exports.FormatChartDataLabelSchema = FormatChartDataLabelSchema;
905
+ exports.FormatChartDataPointSchema = FormatChartDataPointSchema;
906
+ exports.FormatChartSeriesSchema = FormatChartSeriesSchema;
579
907
  exports.GetLayoutsSchema = GetLayoutsSchema;
580
908
  exports.GetMetadataSchema = GetMetadataSchema;
581
909
  exports.GetPresentationPropertiesSchema = GetPresentationPropertiesSchema;
@@ -597,9 +925,17 @@ exports.RepairPresentationSchema = RepairPresentationSchema;
597
925
  exports.ReplaceGeometrySchema = ReplaceGeometrySchema;
598
926
  exports.ReplaceTextSchema = ReplaceTextSchema;
599
927
  exports.SetCanvasSizeSchema = SetCanvasSizeSchema;
928
+ exports.SetChartColorMapOverrideSchema = SetChartColorMapOverrideSchema;
929
+ exports.SetChartHelperLineSchema = SetChartHelperLineSchema;
600
930
  exports.SetElementAnimationSchema = SetElementAnimationSchema;
601
931
  exports.SetElementLockSchema = SetElementLockSchema;
602
932
  exports.SetSlideTransitionSchema = SetSlideTransitionSchema;
933
+ exports.SetTableStyleSectionSchema = SetTableStyleSectionSchema;
934
+ exports.TABLE_STYLE_SECTIONS = TABLE_STYLE_SECTIONS;
935
+ exports.TableStyleBordersSchema = TableStyleBordersSchema;
936
+ exports.TableStyleCell3DSchema = TableStyleCell3DSchema;
937
+ exports.TableStyleFillSchema = TableStyleFillSchema;
938
+ exports.TableStyleTextSchema = TableStyleTextSchema;
603
939
  exports.UngroupElementsSchema = UngroupElementsSchema;
604
940
  exports.UpdateChartSchema = UpdateChartSchema;
605
941
  exports.UpdateChartSeriesDataSchema = UpdateChartSeriesDataSchema;