pptx-viewer-mcp 2.2.0 → 2.3.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(),
@@ -179,6 +211,32 @@ var BatchUpdateElementsSchema = zod.z.object({
179
211
  opacity: zod.z.number().min(0).max(1).optional(),
180
212
  hidden: zod.z.boolean().optional()
181
213
  });
214
+ var ThemeColorRefSchema2 = zod.z.object({
215
+ scheme: zod.z.enum([
216
+ "dk1",
217
+ "lt1",
218
+ "dk2",
219
+ "lt2",
220
+ "accent1",
221
+ "accent2",
222
+ "accent3",
223
+ "accent4",
224
+ "accent5",
225
+ "accent6",
226
+ "hlink",
227
+ "folHlink",
228
+ "bg1",
229
+ "tx1",
230
+ "bg2",
231
+ "tx2",
232
+ "phClr"
233
+ ]),
234
+ lumMod: zod.z.number().optional().describe("Multiply HSL luminance (0..1)"),
235
+ lumOff: zod.z.number().optional().describe("Add to HSL luminance after lumMod (0..1)"),
236
+ tint: zod.z.number().optional().describe("Blend towards white (0..1)"),
237
+ shade: zod.z.number().optional().describe("Blend towards black (0..1)"),
238
+ alpha: zod.z.number().optional().describe("Opacity fraction, 1 = opaque")
239
+ });
182
240
  var UpdateTableCellsSchema = zod.z.object({
183
241
  filePath: zod.z.string().describe("Path to the PPTX file"),
184
242
  slideIndex: zod.z.number().int().min(0),
@@ -205,6 +263,14 @@ var UpdateElementStyleSchema = zod.z.object({
205
263
  slideIndex: zod.z.number().int().min(0),
206
264
  elementId: zod.z.string(),
207
265
  fillColor: zod.z.string().optional(),
266
+ /**
267
+ * A theme colour for the fill (e.g. `{ scheme: 'accent1', lumMod: 0.8 }`
268
+ * for "Accent 1, Lighter 80%"). When set, the shape saves as
269
+ * `<a:schemeClr>` and keeps following the theme after a later theme
270
+ * change, instead of freezing today's resolved hex. Setting `fillColor`
271
+ * without this clears any previously-set fill theme colour.
272
+ */
273
+ fillThemeColor: ThemeColorRefSchema2.optional(),
208
274
  fillMode: zod.z.string().optional(),
209
275
  fillGradientStops: zod.z.array(
210
276
  zod.z.object({
@@ -217,6 +283,8 @@ var UpdateElementStyleSchema = zod.z.object({
217
283
  fillGradientType: zod.z.string().optional(),
218
284
  fillOpacity: zod.z.number().optional(),
219
285
  strokeColor: zod.z.string().optional(),
286
+ /** A theme colour for the outline; see `fillThemeColor` above. */
287
+ strokeThemeColor: ThemeColorRefSchema2.optional(),
220
288
  strokeWidth: zod.z.number().optional(),
221
289
  strokeDash: zod.z.string().optional(),
222
290
  strokeOpacity: zod.z.number().optional(),
@@ -263,6 +331,116 @@ var ManageCommentsSchema = zod.z.object({
263
331
  resolved: zod.z.boolean().optional(),
264
332
  includeResolved: zod.z.boolean().optional()
265
333
  });
334
+ var TABLE_STYLE_SECTIONS = [
335
+ "wholeTbl",
336
+ "band1H",
337
+ "band2H",
338
+ "band1V",
339
+ "band2V",
340
+ "lastCol",
341
+ "firstCol",
342
+ "lastRow",
343
+ "seCell",
344
+ "swCell",
345
+ "firstRow",
346
+ "neCell",
347
+ "nwCell"
348
+ ];
349
+ var TableStyleSimpleColorSchema = zod.z.object({
350
+ schemeColor: zod.z.string().describe('Theme colour key (e.g. "accent1"), or "" for a non-scheme fill'),
351
+ tint: zod.z.number().optional().describe("0-100000"),
352
+ shade: zod.z.number().optional().describe("0-100000"),
353
+ color: zod.z.string().optional().describe('Explicit hex colour, e.g. "#FF8800"')
354
+ });
355
+ var TableStyleFillSchema = zod.z.object({
356
+ schemeColor: zod.z.string(),
357
+ tint: zod.z.number().optional(),
358
+ shade: zod.z.number().optional(),
359
+ color: zod.z.string().optional(),
360
+ noFill: zod.z.boolean().optional(),
361
+ gradient: zod.z.object({
362
+ type: zod.z.enum(["linear", "radial"]),
363
+ angle: zod.z.number().optional(),
364
+ stops: zod.z.array(zod.z.object({ position: zod.z.number(), fill: TableStyleSimpleColorSchema }))
365
+ }).optional(),
366
+ pattern: zod.z.object({
367
+ preset: zod.z.string(),
368
+ foreground: TableStyleSimpleColorSchema.optional(),
369
+ background: TableStyleSimpleColorSchema.optional()
370
+ }).optional(),
371
+ image: zod.z.object({ path: zod.z.string().optional(), data: zod.z.string().optional() }).optional()
372
+ });
373
+ var TableStyleTextSchema = zod.z.object({
374
+ bold: zod.z.boolean().optional(),
375
+ italic: zod.z.boolean().optional(),
376
+ underline: zod.z.boolean().optional(),
377
+ fontSchemeColor: zod.z.string().optional(),
378
+ fontTint: zod.z.number().optional(),
379
+ fontShade: zod.z.number().optional(),
380
+ fontColor: zod.z.string().optional(),
381
+ fontFace: zod.z.string().optional(),
382
+ fontRefIdx: zod.z.string().optional()
383
+ });
384
+ var TableStyleBorderSideSchema = zod.z.object({
385
+ width: zod.z.number().optional(),
386
+ dash: zod.z.string().optional(),
387
+ fill: TableStyleSimpleColorSchema.optional(),
388
+ color: zod.z.string().optional(),
389
+ noFill: zod.z.boolean().optional()
390
+ });
391
+ var TableStyleBordersSchema = zod.z.object({
392
+ left: TableStyleBorderSideSchema.optional(),
393
+ right: TableStyleBorderSideSchema.optional(),
394
+ top: TableStyleBorderSideSchema.optional(),
395
+ bottom: TableStyleBorderSideSchema.optional(),
396
+ insideH: TableStyleBorderSideSchema.optional(),
397
+ insideV: TableStyleBorderSideSchema.optional(),
398
+ tl2br: TableStyleBorderSideSchema.optional(),
399
+ tr2bl: TableStyleBorderSideSchema.optional()
400
+ });
401
+ var TableStyleCell3DSchema = zod.z.object({
402
+ bevelWidth: zod.z.number().optional(),
403
+ bevelHeight: zod.z.number().optional(),
404
+ bevelPreset: zod.z.string().optional(),
405
+ material: zod.z.string().optional(),
406
+ lightRig: zod.z.string().optional(),
407
+ lightRigDirection: zod.z.string().optional()
408
+ });
409
+ var SetTableStyleSectionSchema = zod.z.object({
410
+ filePath: zod.z.string().describe("Path to the PPTX file"),
411
+ styleId: zod.z.string().describe('Table style GUID, e.g. "{5C22544A-7EE6-4342-B048-85BDC9FD1C3A}"'),
412
+ section: zod.z.enum(TABLE_STYLE_SECTIONS).describe("Which of the 13 CT_TableStyle parts to patch"),
413
+ styleName: zod.z.string().optional().describe("Rename the style"),
414
+ fill: TableStyleFillSchema.optional(),
415
+ text: TableStyleTextSchema.optional(),
416
+ borders: TableStyleBordersSchema.optional(),
417
+ cell3D: TableStyleCell3DSchema.optional()
418
+ });
419
+ var CreateTableStyleSchema = zod.z.object({
420
+ filePath: zod.z.string().describe("Path to the PPTX file"),
421
+ styleName: zod.z.string().describe("Display name for the new style"),
422
+ basedOnStyleId: zod.z.string().optional().describe("Deep-clone every section from this existing style GUID as the starting point"),
423
+ setAsDefault: zod.z.boolean().optional().describe("Repoint ppt/tableStyles.xml's default style at the new one")
424
+ });
425
+ var DeleteTableStyleSchema = zod.z.object({
426
+ filePath: zod.z.string().describe("Path to the PPTX file"),
427
+ styleId: zod.z.string().describe("Table style GUID to remove"),
428
+ force: zod.z.boolean().optional().describe("Delete even though a table on this deck still references the style")
429
+ });
430
+ var AssignTableStyleSchema = zod.z.object({
431
+ filePath: zod.z.string().describe("Path to the PPTX file"),
432
+ slideIndex: zod.z.number().int().min(0),
433
+ elementId: zod.z.string().describe("Table element ID"),
434
+ styleId: zod.z.string().optional().describe(
435
+ "Table style GUID to assign. Defaults to the presentation's current default table style when omitted."
436
+ ),
437
+ bandedRows: zod.z.boolean().optional(),
438
+ bandedColumns: zod.z.boolean().optional(),
439
+ firstRowHeader: zod.z.boolean().optional(),
440
+ lastRow: zod.z.boolean().optional(),
441
+ firstCol: zod.z.boolean().optional(),
442
+ lastCol: zod.z.boolean().optional()
443
+ });
266
444
  var GetThemeInfoSchema = zod.z.object({
267
445
  filePath: zod.z.string().describe("Path to the PPTX file")
268
446
  });
@@ -292,6 +470,139 @@ var UpdateThemeFontsSchema = zod.z.object({
292
470
  majorFont: zod.z.string().optional().describe("Heading (major) font family"),
293
471
  minorFont: zod.z.string().optional().describe("Body (minor) font family")
294
472
  });
473
+ var MarkerSymbolSchema = zod.z.enum([
474
+ "circle",
475
+ "dash",
476
+ "diamond",
477
+ "dot",
478
+ "none",
479
+ "picture",
480
+ "plus",
481
+ "square",
482
+ "star",
483
+ "triangle",
484
+ "x",
485
+ "auto"
486
+ ]);
487
+ var DataLabelPositionSchema = zod.z.enum([
488
+ "bestFit",
489
+ "b",
490
+ "ctr",
491
+ "inBase",
492
+ "inEnd",
493
+ "l",
494
+ "outEnd",
495
+ "r",
496
+ "t"
497
+ ]);
498
+ var FormatChartDataPointSchema = zod.z.object({
499
+ filePath: zod.z.string().describe("Path to the PPTX file"),
500
+ slideIndex: zod.z.number().int().min(0).describe("Zero-based slide index"),
501
+ elementId: zod.z.string().describe("Chart element ID"),
502
+ seriesIndex: zod.z.number().int().min(0).describe("Zero-based series index"),
503
+ pointIndex: zod.z.number().int().min(0).describe("Zero-based data point (category) index"),
504
+ fillColor: zod.z.string().optional().describe("Fill colour (hex) for this point only"),
505
+ strokeColor: zod.z.string().optional().describe("Outline colour (hex) for this point only"),
506
+ strokeWidth: zod.z.number().optional().describe("Outline width in points"),
507
+ strokeDashStyle: zod.z.string().optional().describe("Outline dash style, e.g. solid, dash, dashDot, sysDot"),
508
+ clearStyle: zod.z.boolean().optional().describe("Remove all per-point shape formatting"),
509
+ explosion: zod.z.number().nullable().optional().describe("Pie/doughnut slice pull-out distance 0-100; null clears it"),
510
+ marker: zod.z.object({
511
+ symbol: MarkerSymbolSchema.optional(),
512
+ size: zod.z.number().optional(),
513
+ fillColor: zod.z.string().optional()
514
+ }).nullable().optional().describe("Per-point marker override (line/scatter/bubble); null clears it")
515
+ });
516
+ var FormatChartDataLabelSchema = zod.z.object({
517
+ filePath: zod.z.string().describe("Path to the PPTX file"),
518
+ slideIndex: zod.z.number().int().min(0).describe("Zero-based slide index"),
519
+ elementId: zod.z.string().describe("Chart element ID"),
520
+ seriesIndex: zod.z.number().int().min(0).describe("Zero-based series index"),
521
+ pointIndex: zod.z.number().int().min(0).describe("Zero-based data point (category) index"),
522
+ remove: zod.z.boolean().optional().describe("Remove the per-point label override entirely"),
523
+ showValue: zod.z.boolean().optional(),
524
+ showCategory: zod.z.boolean().optional(),
525
+ showSeriesName: zod.z.boolean().optional(),
526
+ showPercent: zod.z.boolean().optional(),
527
+ showLegendKey: zod.z.boolean().optional(),
528
+ position: DataLabelPositionSchema.optional(),
529
+ text: zod.z.string().optional().describe("Custom label text override; '' clears it"),
530
+ spPr: zod.z.object({
531
+ fillColor: zod.z.string().optional(),
532
+ strokeColor: zod.z.string().optional(),
533
+ strokeWidth: zod.z.number().optional(),
534
+ strokeDashStyle: zod.z.string().optional()
535
+ }).nullable().optional().describe("This label's own fill/line formatting; null removes it"),
536
+ txPr: zod.z.object({
537
+ fontFamily: zod.z.string().optional(),
538
+ fontSize: zod.z.number().optional(),
539
+ bold: zod.z.boolean().optional(),
540
+ italic: zod.z.boolean().optional(),
541
+ color: zod.z.string().optional()
542
+ }).nullable().optional().describe("This label's own font; null removes it")
543
+ });
544
+ var FormatChartSeriesSchema = zod.z.object({
545
+ filePath: zod.z.string().describe("Path to the PPTX file"),
546
+ slideIndex: zod.z.number().int().min(0).describe("Zero-based slide index"),
547
+ elementId: zod.z.string().describe("Chart element ID"),
548
+ seriesIndex: zod.z.number().int().min(0).describe("Zero-based series index"),
549
+ marker: zod.z.object({
550
+ symbol: MarkerSymbolSchema.optional(),
551
+ size: zod.z.number().optional(),
552
+ fillColor: zod.z.string().optional(),
553
+ strokeColor: zod.z.string().optional(),
554
+ strokeWidth: zod.z.number().optional(),
555
+ strokeDashStyle: zod.z.string().optional()
556
+ }).nullable().optional().describe("Series marker (line/scatter/bubble/radar); null removes it"),
557
+ trendline: zod.z.object({
558
+ trendlineType: zod.z.enum([
559
+ "linear",
560
+ "exponential",
561
+ "logarithmic",
562
+ "polynomial",
563
+ "power",
564
+ "movingAvg"
565
+ ]),
566
+ color: zod.z.string().optional(),
567
+ lineWidth: zod.z.number().optional().describe("Trendline width in points"),
568
+ lineDashStyle: zod.z.string().optional(),
569
+ order: zod.z.number().optional().describe("Polynomial order, 2-6"),
570
+ period: zod.z.number().optional().describe("Moving-average period"),
571
+ displayEq: zod.z.boolean().optional(),
572
+ displayRSq: zod.z.boolean().optional()
573
+ }).nullable().optional().describe("Series trendline; null removes it"),
574
+ errorBars: zod.z.object({
575
+ direction: zod.z.enum(["x", "y"]),
576
+ barType: zod.z.enum(["both", "minus", "plus"]),
577
+ valType: zod.z.enum(["cust", "fixedVal", "percentage", "stdDev", "stdErr"]),
578
+ val: zod.z.number().optional(),
579
+ customPlus: zod.z.array(zod.z.number()).optional(),
580
+ customMinus: zod.z.array(zod.z.number()).optional(),
581
+ noEndCap: zod.z.boolean().optional(),
582
+ color: zod.z.string().optional(),
583
+ width: zod.z.number().optional().describe("Error-bar line width in points"),
584
+ dashStyle: zod.z.string().optional()
585
+ }).nullable().optional().describe("Series error bars; null removes them")
586
+ });
587
+ var SetChartHelperLineSchema = zod.z.object({
588
+ filePath: zod.z.string().describe("Path to the PPTX file"),
589
+ slideIndex: zod.z.number().int().min(0).describe("Zero-based slide index"),
590
+ elementId: zod.z.string().describe("Chart element ID"),
591
+ line: zod.z.enum(["dropLines", "hiLowLines"]).describe("Which helper line to set"),
592
+ style: zod.z.object({
593
+ color: zod.z.string().optional(),
594
+ width: zod.z.number().optional(),
595
+ dashStyle: zod.z.string().optional()
596
+ }).nullable().describe("Line colour/width/dash; {} shows the line with defaults, null removes it")
597
+ });
598
+ var SetChartColorMapOverrideSchema = 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
+ overrides: zod.z.record(zod.z.string(), zod.z.string()).nullable().describe(
603
+ 'Theme colour role remap (bg1/tx1/bg2/tx2/accent1-6/hlink/folHlink -> role), e.g. { "accent1": "accent2" }; null removes the override'
604
+ )
605
+ });
295
606
  var UpdateChartSchema = zod.z.object({
296
607
  filePath: zod.z.string().describe("Path to the PPTX file"),
297
608
  slideIndex: zod.z.number().int().min(0).describe("Zero-based slide index"),
@@ -564,18 +875,24 @@ exports.ApplyLayoutSchema = ApplyLayoutSchema;
564
875
  exports.ApplyTemplateSchema = ApplyTemplateSchema;
565
876
  exports.ApplyThemePresetSchema = ApplyThemePresetSchema;
566
877
  exports.ArrangeElementsSchema = ArrangeElementsSchema;
878
+ exports.AssignTableStyleSchema = AssignTableStyleSchema;
567
879
  exports.BatchUpdateElementsSchema = BatchUpdateElementsSchema;
568
880
  exports.CloneElementSchema = CloneElementSchema;
569
881
  exports.ConvertToMarkdownSchema = ConvertToMarkdownSchema;
570
882
  exports.CreateChartSchema = CreateChartSchema;
883
+ exports.CreateTableStyleSchema = CreateTableStyleSchema;
571
884
  exports.DeleteElementsSchema = DeleteElementsSchema;
572
885
  exports.DeleteSlidesSchema = DeleteSlidesSchema;
886
+ exports.DeleteTableStyleSchema = DeleteTableStyleSchema;
573
887
  exports.DuplicateSlideSchema = DuplicateSlideSchema;
574
888
  exports.ExportSlideSvgSchema = ExportSlideSvgSchema;
575
889
  exports.ExportToJsonSchema = ExportToJsonSchema;
576
890
  exports.ExportToSvgSchema = ExportToSvgSchema;
577
891
  exports.FindPlaceholdersSchema = FindPlaceholdersSchema;
578
892
  exports.FindTextSchema = FindTextSchema;
893
+ exports.FormatChartDataLabelSchema = FormatChartDataLabelSchema;
894
+ exports.FormatChartDataPointSchema = FormatChartDataPointSchema;
895
+ exports.FormatChartSeriesSchema = FormatChartSeriesSchema;
579
896
  exports.GetLayoutsSchema = GetLayoutsSchema;
580
897
  exports.GetMetadataSchema = GetMetadataSchema;
581
898
  exports.GetPresentationPropertiesSchema = GetPresentationPropertiesSchema;
@@ -597,9 +914,17 @@ exports.RepairPresentationSchema = RepairPresentationSchema;
597
914
  exports.ReplaceGeometrySchema = ReplaceGeometrySchema;
598
915
  exports.ReplaceTextSchema = ReplaceTextSchema;
599
916
  exports.SetCanvasSizeSchema = SetCanvasSizeSchema;
917
+ exports.SetChartColorMapOverrideSchema = SetChartColorMapOverrideSchema;
918
+ exports.SetChartHelperLineSchema = SetChartHelperLineSchema;
600
919
  exports.SetElementAnimationSchema = SetElementAnimationSchema;
601
920
  exports.SetElementLockSchema = SetElementLockSchema;
602
921
  exports.SetSlideTransitionSchema = SetSlideTransitionSchema;
922
+ exports.SetTableStyleSectionSchema = SetTableStyleSectionSchema;
923
+ exports.TABLE_STYLE_SECTIONS = TABLE_STYLE_SECTIONS;
924
+ exports.TableStyleBordersSchema = TableStyleBordersSchema;
925
+ exports.TableStyleCell3DSchema = TableStyleCell3DSchema;
926
+ exports.TableStyleFillSchema = TableStyleFillSchema;
927
+ exports.TableStyleTextSchema = TableStyleTextSchema;
603
928
  exports.UngroupElementsSchema = UngroupElementsSchema;
604
929
  exports.UpdateChartSchema = UpdateChartSchema;
605
930
  exports.UpdateChartSeriesDataSchema = UpdateChartSeriesDataSchema;