pptx-react-viewer 1.25.3 → 1.25.5

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.
Files changed (97) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/dist/{Model3DScene-IQLE5JLL.mjs → Model3DScene-XVYOISVJ.mjs} +2 -2
  3. package/dist/Model3DScene-XVYOISVJ.mjs.br +0 -0
  4. package/dist/Model3DScene-XVYOISVJ.mjs.gz +0 -0
  5. package/dist/{Model3DScene-F2GUSTZI.js → Model3DScene-Y5ABLO7K.js} +3 -3
  6. package/dist/Model3DScene-Y5ABLO7K.js.br +0 -0
  7. package/dist/Model3DScene-Y5ABLO7K.js.gz +0 -0
  8. package/dist/{SurfaceChart3DScene-JG26PJ7O.mjs → SurfaceChart3DScene-RXZADECL.mjs} +2 -2
  9. package/dist/SurfaceChart3DScene-RXZADECL.mjs.br +0 -0
  10. package/dist/SurfaceChart3DScene-RXZADECL.mjs.gz +0 -0
  11. package/dist/{SurfaceChart3DScene-4OMD7LWR.js → SurfaceChart3DScene-WMY5JTW4.js} +3 -3
  12. package/dist/{SurfaceChart3DScene-4OMD7LWR.js.br → SurfaceChart3DScene-WMY5JTW4.js.br} +0 -0
  13. package/dist/SurfaceChart3DScene-WMY5JTW4.js.gz +0 -0
  14. package/dist/{chunk-5G3SPYQE.js → chunk-7CSBUYRN.js} +849 -808
  15. package/dist/chunk-7CSBUYRN.js.br +0 -0
  16. package/dist/chunk-7CSBUYRN.js.gz +0 -0
  17. package/dist/{chunk-ZUJHFLOR.js → chunk-E55Q4AC7.js} +556 -476
  18. package/dist/chunk-E55Q4AC7.js.br +0 -0
  19. package/dist/chunk-E55Q4AC7.js.gz +0 -0
  20. package/dist/{chunk-NYBERTS7.mjs → chunk-F4WPQRZU.mjs} +96 -16
  21. package/dist/chunk-F4WPQRZU.mjs.br +0 -0
  22. package/dist/chunk-F4WPQRZU.mjs.gz +0 -0
  23. package/dist/{chunk-DAI4KM5W.mjs → chunk-FOMF7POV.mjs} +2285 -490
  24. package/dist/chunk-FOMF7POV.mjs.br +0 -0
  25. package/dist/chunk-FOMF7POV.mjs.gz +0 -0
  26. package/dist/{chunk-DVM75RMN.mjs → chunk-FVQDRA5N.mjs} +1100 -126
  27. package/dist/chunk-FVQDRA5N.mjs.br +0 -0
  28. package/dist/chunk-FVQDRA5N.mjs.gz +0 -0
  29. package/dist/{chunk-2V6BD4JQ.js → chunk-IPYAN574.js} +2288 -490
  30. package/dist/chunk-IPYAN574.js.br +0 -0
  31. package/dist/chunk-IPYAN574.js.gz +0 -0
  32. package/dist/{chunk-GNXWU7UG.mjs → chunk-L4ZADJOM.mjs} +48 -7
  33. package/dist/chunk-L4ZADJOM.mjs.br +0 -0
  34. package/dist/chunk-L4ZADJOM.mjs.gz +0 -0
  35. package/dist/{chunk-UXVFNGJH.js → chunk-TEN35NUX.js} +1133 -159
  36. package/dist/chunk-TEN35NUX.js.br +0 -0
  37. package/dist/chunk-TEN35NUX.js.gz +0 -0
  38. package/dist/{dist-ZA77P2O5.js → dist-755SJ3ZH.js} +574 -562
  39. package/dist/dist-755SJ3ZH.js.br +0 -0
  40. package/dist/dist-755SJ3ZH.js.gz +0 -0
  41. package/dist/dist-FFWP5NQZ.mjs +2 -0
  42. package/dist/dist-FFWP5NQZ.mjs.br +0 -0
  43. package/dist/dist-FFWP5NQZ.mjs.gz +0 -0
  44. package/dist/hooks-unstable.d.ts +350 -5
  45. package/dist/hooks-unstable.d.ts.map +1 -1
  46. package/dist/hooks-unstable.js +78 -78
  47. package/dist/hooks-unstable.js.br +0 -0
  48. package/dist/hooks-unstable.js.gz +0 -0
  49. package/dist/hooks-unstable.mjs +3 -3
  50. package/dist/hooks-unstable.mjs.br +0 -0
  51. package/dist/hooks-unstable.mjs.gz +0 -0
  52. package/dist/{index-DWvM1PBB.d.ts → index-J6IuHQ2_.d.ts} +21 -4
  53. package/dist/index-J6IuHQ2_.d.ts.map +1 -0
  54. package/dist/index.d.ts +330 -2
  55. package/dist/index.js +33 -33
  56. package/dist/index.js.br +0 -0
  57. package/dist/index.js.gz +0 -0
  58. package/dist/index.mjs +4 -4
  59. package/dist/index.mjs.br +0 -0
  60. package/dist/index.mjs.gz +0 -0
  61. package/dist/viewer/index.d.ts +330 -2
  62. package/dist/viewer/index.js +20 -20
  63. package/dist/viewer/index.js.br +0 -0
  64. package/dist/viewer/index.js.gz +0 -0
  65. package/dist/viewer/index.mjs +4 -4
  66. package/dist/viewer/index.mjs.br +0 -0
  67. package/dist/viewer/index.mjs.gz +0 -0
  68. package/package.json +1 -1
  69. package/dist/Model3DScene-F2GUSTZI.js.br +0 -0
  70. package/dist/Model3DScene-F2GUSTZI.js.gz +0 -0
  71. package/dist/Model3DScene-IQLE5JLL.mjs.br +0 -0
  72. package/dist/Model3DScene-IQLE5JLL.mjs.gz +0 -0
  73. package/dist/SurfaceChart3DScene-4OMD7LWR.js.gz +0 -0
  74. package/dist/SurfaceChart3DScene-JG26PJ7O.mjs.br +0 -0
  75. package/dist/SurfaceChart3DScene-JG26PJ7O.mjs.gz +0 -0
  76. package/dist/chunk-2V6BD4JQ.js.br +0 -0
  77. package/dist/chunk-2V6BD4JQ.js.gz +0 -0
  78. package/dist/chunk-5G3SPYQE.js.br +0 -0
  79. package/dist/chunk-5G3SPYQE.js.gz +0 -0
  80. package/dist/chunk-DAI4KM5W.mjs.br +0 -0
  81. package/dist/chunk-DAI4KM5W.mjs.gz +0 -0
  82. package/dist/chunk-DVM75RMN.mjs.br +0 -0
  83. package/dist/chunk-DVM75RMN.mjs.gz +0 -0
  84. package/dist/chunk-GNXWU7UG.mjs.br +0 -0
  85. package/dist/chunk-GNXWU7UG.mjs.gz +0 -0
  86. package/dist/chunk-NYBERTS7.mjs.br +0 -0
  87. package/dist/chunk-NYBERTS7.mjs.gz +0 -0
  88. package/dist/chunk-UXVFNGJH.js.br +0 -0
  89. package/dist/chunk-UXVFNGJH.js.gz +0 -0
  90. package/dist/chunk-ZUJHFLOR.js.br +0 -0
  91. package/dist/chunk-ZUJHFLOR.js.gz +0 -0
  92. package/dist/dist-E3IHM3OU.mjs +0 -2
  93. package/dist/dist-E3IHM3OU.mjs.br +0 -0
  94. package/dist/dist-E3IHM3OU.mjs.gz +0 -0
  95. package/dist/dist-ZA77P2O5.js.br +0 -0
  96. package/dist/dist-ZA77P2O5.js.gz +0 -0
  97. package/dist/index-DWvM1PBB.d.ts.map +0 -1
@@ -207,6 +207,13 @@ interface PptxShapeLocks {
207
207
  noAdjustHandles?: boolean;
208
208
  noChangeArrowheads?: boolean;
209
209
  noChangeShapeType?: boolean;
210
+ /**
211
+ * Text-box flag from `p:cNvSpPr/@txBox`. Not a lock in the strict sense,
212
+ * but it lives on the same non-visual-properties node as `a:spLocks`, so
213
+ * it is captured here to round-trip through the model. When `true` the
214
+ * shape is a plain text box (no fill/line by default).
215
+ */
216
+ txBox?: boolean;
210
217
  }
211
218
  /**
212
219
  * A drawing guide parsed from OOXML extension lists.
@@ -796,6 +803,15 @@ interface ShapeStyle {
796
803
  r: number;
797
804
  b: number;
798
805
  };
806
+ /** Raw tileRect LTRB values (0..1 fractions, may be negative) from
807
+ * `a:gradFill/a:tileRect`. Defines the rectangle the gradient tile occupies
808
+ * before any flip/tiling is applied. */
809
+ fillGradientTileRect?: {
810
+ l: number;
811
+ t: number;
812
+ r: number;
813
+ b: number;
814
+ };
799
815
  /** Gradient tile flip mode (`a:gradFill/@flip`).
800
816
  * `none` = no tiling flip (default), `x|y|xy` = mirror in the named axis. */
801
817
  fillGradientFlip?: 'none' | 'x' | 'y' | 'xy';
@@ -813,6 +829,20 @@ interface ShapeStyle {
813
829
  * round-trip serialisation. See {@link fillColorXml} for the rationale.
814
830
  */
815
831
  strokeColorXml?: XmlObject;
832
+ /**
833
+ * Kind of fill painted on the outline (`a:ln` child). Distinguishes a solid
834
+ * outline from a gradient/pattern/none outline so save can emit the correct
835
+ * single line fill instead of collapsing every outline to `a:solidFill`
836
+ * (which, alongside a preserved `a:gradFill`/`a:pattFill`, produces an
837
+ * invalid dual-fill `<a:ln>`).
838
+ */
839
+ strokeFillMode?: 'solid' | 'gradient' | 'pattern' | 'none';
840
+ /** Raw `a:ln/a:gradFill` XML preserved for round-trip when the outline is
841
+ * gradient-filled. Re-emitted verbatim as the line's single fill on save. */
842
+ strokeGradientXml?: XmlObject;
843
+ /** Raw `a:ln/a:pattFill` XML preserved for round-trip when the outline is
844
+ * pattern-filled. Re-emitted verbatim as the line's single fill on save. */
845
+ strokePatternXml?: XmlObject;
816
846
  strokeWidth?: number;
817
847
  strokeOpacity?: number;
818
848
  strokeDash?: StrokeDashType;
@@ -1121,6 +1151,13 @@ interface TextStyle {
1121
1151
  kerning?: number;
1122
1152
  /** Text highlight colour as hex string (`a:highlight`). */
1123
1153
  highlightColor?: string;
1154
+ /**
1155
+ * Raw colour-choice XML preserved from `a:highlight` so a themed highlight
1156
+ * (`a:schemeClr` / `a:sysClr` / `a:prstClr`) re-emits with its original
1157
+ * identity rather than being flattened to `<a:srgbClr/>` on save. On save we
1158
+ * re-emit verbatim when the resolved {@link highlightColor} still matches.
1159
+ */
1160
+ highlightColorXml?: XmlObject;
1124
1161
  /** Text-level gradient fill CSS string (from `a:rPr > a:gradFill`). */
1125
1162
  textFillGradient?: string;
1126
1163
  /** Structured gradient stops for text fill round-trip serialization. */
@@ -1232,10 +1269,36 @@ interface TextStyle {
1232
1269
  eastAsiaFont?: string;
1233
1270
  /** Complex Script font family from `a:cs`. */
1234
1271
  complexScriptFont?: string;
1272
+ /**
1273
+ * Theme-font token (`+mj-lt` / `+mn-lt` / ...) authored on `a:latin`, when
1274
+ * present. {@link fontFamily} holds the resolved concrete face for
1275
+ * rendering; this preserves the token linkage so the writer re-emits the
1276
+ * token rather than the flattened face (see #84).
1277
+ */
1278
+ latinFontThemeToken?: string;
1279
+ /** Theme-font token authored on `a:ea` (e.g. `+mn-ea`), when present. */
1280
+ eastAsiaFontThemeToken?: string;
1281
+ /** Theme-font token authored on `a:cs` (e.g. `+mn-cs`), when present. */
1282
+ complexScriptFontThemeToken?: string;
1283
+ /**
1284
+ * Automatic per-script fallback face resolved from the theme's
1285
+ * `<a:font script="...">` overrides for a run whose text is dominantly
1286
+ * CJK / Arabic / Hebrew / Thai (see #83). A rendering hint only: it is not
1287
+ * serialised back on save, so it never disturbs the round-trip typefaces.
1288
+ */
1289
+ scriptFallbackFont?: string;
1235
1290
  /** Text language from `a:rPr/@lang`. */
1236
1291
  language?: string;
1237
1292
  /** Hyperlink mouse-over target from `a:hlinkMouseOver`. */
1238
1293
  hyperlinkMouseOver?: string;
1294
+ /**
1295
+ * Raw `a:snd` (embedded WAV audio) child of `a:hlinkClick`, preserved
1296
+ * verbatim (carries `@r:embed` + `@name`). Round-tripped on save so the
1297
+ * click sound survives instead of being dropped.
1298
+ */
1299
+ hyperlinkSoundXml?: XmlObject;
1300
+ /** Raw `a:snd` child of `a:hlinkMouseOver`, preserved verbatim for round-trip. */
1301
+ hyperlinkMouseOverSoundXml?: XmlObject;
1239
1302
  /** Hyperlink invalidUrl attribute (`a:hlinkClick/@invalidUrl`). */
1240
1303
  hyperlinkInvalidUrl?: string;
1241
1304
  /** Hyperlink target frame (`a:hlinkClick/@tgtFrame`). */
@@ -1579,6 +1642,15 @@ interface TextSegment {
1579
1642
  * on the first segment of a paragraph.
1580
1643
  */
1581
1644
  endParaRunProperties?: Record<string, unknown>;
1645
+ /**
1646
+ * Per-paragraph properties (alignment, spacing, margins, indent, tab stops,
1647
+ * rtl) authored on this paragraph's own `a:pPr` (#69). Only meaningful on
1648
+ * the first segment of a paragraph. When present, the writer emits these
1649
+ * per paragraph instead of collapsing one shape-level pPr onto every
1650
+ * paragraph. Only the paragraph-geometry keys of {@link TextStyle} are
1651
+ * populated; unrelated fields fall back to the shape-level style.
1652
+ */
1653
+ paragraphProperties?: TextStyle;
1582
1654
  /**
1583
1655
  * Phonetic annotation text from `a:ruby > a:rt` (e.g. furigana, pinyin).
1584
1656
  * When present, the renderer should wrap the base text with an HTML `<ruby>` tag.
@@ -2224,6 +2296,18 @@ interface PptxChartSeries {
2224
2296
  marker?: PptxChartMarker;
2225
2297
  dataLabels?: PptxChartDataLabel[];
2226
2298
  explosion?: number;
2299
+ /**
2300
+ * Series-level `c:invertIfNegative`: when true, bar/column data points with a
2301
+ * negative value are drawn with an inverted (lightened) fill. A per-point
2302
+ * `c:dPt/c:invertIfNegative` overrides this for that point. Absent when the
2303
+ * source XML omits the flag.
2304
+ */
2305
+ invertIfNegative?: boolean;
2306
+ /**
2307
+ * Whether this line/scatter series is drawn with bezier smoothing
2308
+ * (`c:ser/c:smooth/@val`). Absent when the source XML omits `c:smooth`.
2309
+ */
2310
+ smooth?: boolean;
2227
2311
  /** Axis ID this series is plotted against (links to PptxChartAxisFormatting.axisId). */
2228
2312
  axisId?: number;
2229
2313
  /**
@@ -2490,6 +2574,33 @@ interface PptxChartData {
2490
2574
  style?: PptxChartStyle;
2491
2575
  /** Grouping mode for bar/area/line charts: 'clustered' | 'stacked' | 'percentStacked' */
2492
2576
  grouping?: 'clustered' | 'stacked' | 'percentStacked';
2577
+ /**
2578
+ * Whether the first (or only) series varies its point colours
2579
+ * (`c:varyColors/@val`). Pie/doughnut default this on; single-series
2580
+ * bar/column honour it by giving each point a distinct palette colour.
2581
+ * Absent when the source XML omits `c:varyColors`.
2582
+ */
2583
+ varyColors?: boolean;
2584
+ /**
2585
+ * Pie/doughnut start angle in degrees clockwise from 12 o'clock
2586
+ * (`c:firstSliceAng/@val`, 0 through 360). Absent uses the default 0.
2587
+ */
2588
+ firstSliceAngle?: number;
2589
+ /**
2590
+ * Doughnut hole diameter as a percentage of the outer diameter
2591
+ * (`c:holeSize/@val`, 10 through 90). Absent uses the renderer default.
2592
+ */
2593
+ doughnutHoleSize?: number;
2594
+ /**
2595
+ * Bar/column gap between category clusters as a percentage of bar width
2596
+ * (`c:gapWidth/@val`, 0 through 500). Absent uses the renderer default.
2597
+ */
2598
+ barGapWidth?: number;
2599
+ /**
2600
+ * Clustered bar/column overlap between series within a category as a
2601
+ * percentage (`c:overlap/@val`, -100 through 100). Absent uses 0.
2602
+ */
2603
+ barOverlap?: number;
2493
2604
  /** Internal: path to the chart XML part in the PPTX archive (for round-trip save). */
2494
2605
  chartPartPath?: string;
2495
2606
  /** Internal: relationship ID linking the graphic frame to the chart part. */
@@ -3297,6 +3408,18 @@ interface PptxSmartArtColorTransform extends PptxSmartArtDefinitionMetadata {
3297
3408
  fillColors: string[];
3298
3409
  /** Ordered resolved line colors for rendering. */
3299
3410
  lineColors: string[];
3411
+ /** Ordered resolved text-fill colors (primary styleLbl `txFillClrLst`). */
3412
+ textFillColors?: string[];
3413
+ /** Ordered resolved text-line colors (primary styleLbl `txLinClrLst`). */
3414
+ textLineColors?: string[];
3415
+ /** Ordered resolved effect colors (primary styleLbl `effectClrLst`). */
3416
+ effectColors?: string[];
3417
+ /** Ordered resolved text-effect colors (primary styleLbl `txEffectClrLst`). */
3418
+ textEffectColors?: string[];
3419
+ /** Fill-list span/cycle + hue-direction interpolation of the primary styleLbl. */
3420
+ fillInterpolation?: PptxSmartArtColorListMetadata;
3421
+ /** Line-list span/cycle + hue-direction interpolation of the primary styleLbl. */
3422
+ lineInterpolation?: PptxSmartArtColorListMetadata;
3300
3423
  /** Ordered CT_CTStyleLabel metadata. */
3301
3424
  labels?: PptxSmartArtColorStyleLabel[];
3302
3425
  }
@@ -3417,6 +3540,40 @@ interface PptxSmartArtDrawingShape extends PptxCustomPathProperties {
3417
3540
  skewY?: number;
3418
3541
  /** Solid fill colour (hex). */
3419
3542
  fillColor?: string;
3543
+ /**
3544
+ * Gradient fill stops when the cached shape uses `a:gradFill`. Positions are
3545
+ * 0..100 (percent). Renderers emit an SVG/CSS gradient instead of a flat box.
3546
+ */
3547
+ fillGradientStops?: Array<{
3548
+ color: string;
3549
+ position: number;
3550
+ opacity?: number;
3551
+ }>;
3552
+ /** Gradient geometry type (`linear` for `a:lin`, `radial` for `a:path`). */
3553
+ fillGradientType?: 'linear' | 'radial';
3554
+ /** Linear gradient angle in degrees (0..360). */
3555
+ fillGradientAngle?: number;
3556
+ /** Pattern fill preset name from `a:pattFill/@prst` (e.g. "pct50", "cross"). */
3557
+ fillPatternPreset?: string;
3558
+ /** Pattern fill foreground colour (hex) from `a:pattFill/a:fgClr`. */
3559
+ fillPatternForegroundColor?: string;
3560
+ /** Pattern fill background colour (hex) from `a:pattFill/a:bgClr`. */
3561
+ fillPatternBackgroundColor?: string;
3562
+ /**
3563
+ * Relationship id of a picture (blip) fill's embedded image, from
3564
+ * `a:blipFill/a:blip/@r:embed`. The image bytes are resolved separately; see
3565
+ * {@link fillImageUrl}.
3566
+ */
3567
+ fillBlipEmbedId?: string;
3568
+ /**
3569
+ * Resolved data-URI/URL for a picture (blip) fill, when the embedded image
3570
+ * part could be resolved. Absent when only {@link fillBlipEmbedId} is known.
3571
+ */
3572
+ fillImageUrl?: string;
3573
+ /** Whether the cached shape carries an outer-shadow effect (`a:effectLst`). */
3574
+ hasShadow?: boolean;
3575
+ /** Resolved outer-shadow colour (hex), when present. */
3576
+ shadowColor?: string;
3420
3577
  /** Stroke colour (hex). */
3421
3578
  strokeColor?: string;
3422
3579
  /** Stroke width in points. */
@@ -3451,6 +3608,40 @@ interface PptxSmartArtChrome {
3451
3608
  /** Outline stroke width in points. */
3452
3609
  outlineWidth?: number;
3453
3610
  }
3611
+ /**
3612
+ * Presentation layout variables from `dgm:prSet/dgm:presLayoutVars` (data model)
3613
+ * or `dgm:varLst` (layout definition defaults).
3614
+ *
3615
+ * These drive how the DiagramML layout interpreter arranges points: flow
3616
+ * direction, hierarchy branch style, org-chart mode, and child count limits.
3617
+ * The fallback layout engine can consult them for direction/org-chart hints.
3618
+ *
3619
+ * @example
3620
+ * ```ts
3621
+ * const vars: PptxSmartArtPresLayoutVars = { direction: "rev", orgChart: true };
3622
+ * // => satisfies PptxSmartArtPresLayoutVars
3623
+ * ```
3624
+ */
3625
+ interface PptxSmartArtPresLayoutVars {
3626
+ /** Flow direction (`dgm:dir`): "norm" (default) or "rev" (reversed/RTL). */
3627
+ direction?: 'norm' | 'rev';
3628
+ /** Hierarchy branch style (`dgm:hierBranch`): std/init/l/r/hang. */
3629
+ hierarchyBranch?: 'std' | 'init' | 'l' | 'r' | 'hang';
3630
+ /** Org-chart mode enabled (`dgm:orgChart`). */
3631
+ orgChart?: boolean;
3632
+ /** Maximum children per node (`dgm:chMax`, -1 = unbounded). */
3633
+ childMax?: number;
3634
+ /** Preferred children per node (`dgm:chPref`, -1 = unbounded). */
3635
+ childPreferred?: number;
3636
+ /** Whether bullets are enabled (`dgm:bulletEnabled`). */
3637
+ bulletEnabled?: boolean;
3638
+ /** Animation-by-level setting (`dgm:animLvl`). */
3639
+ animationLevel?: string;
3640
+ /** Animate-one setting (`dgm:animOne`). */
3641
+ animateOne?: string;
3642
+ /** Allowed resize handles (`dgm:resizeHandles`). */
3643
+ resizeHandles?: string;
3644
+ }
3454
3645
  /**
3455
3646
  * Complete parsed SmartArt data for a {@link SmartArtPptxElement}.
3456
3647
  *
@@ -3492,6 +3683,12 @@ interface PptxSmartArtData {
3492
3683
  quickStyle?: PptxSmartArtQuickStyle;
3493
3684
  /** Editable metadata from the related DiagramML layout definition. */
3494
3685
  layoutDefinition?: PptxSmartArtLayoutDefinition;
3686
+ /**
3687
+ * Presentation layout variables (direction, hierarchy branch, org-chart,
3688
+ * child limits, bullets) from `dgm:presLayoutVars` / layout `dgm:varLst`.
3689
+ * Consulted by the fallback layout engine for direction/org-chart hints.
3690
+ */
3691
+ presLayoutVars?: PptxSmartArtPresLayoutVars;
3495
3692
  /** Relationship ID for the diagram data part (for round-trip save). */
3496
3693
  dataRelId?: string;
3497
3694
  /** Relationship ID for the diagram layout part. */
@@ -3764,12 +3961,50 @@ interface PptxTableData {
3764
3961
  * ```
3765
3962
  */
3766
3963
  interface ParsedTableStyleFill {
3767
- /** Theme colour key (e.g. `accent1`, `dk1`). */
3964
+ /**
3965
+ * Theme colour key (e.g. `accent1`, `dk1`). Empty string when the fill is a
3966
+ * non-scheme fill (explicit sRGB, gradient, pattern, or none) that carries
3967
+ * no theme colour reference; the renderer then resolves {@link color},
3968
+ * {@link gradient}, {@link pattern}, or {@link noFill} instead.
3969
+ */
3768
3970
  schemeColor: string;
3769
3971
  /** Tint value (0-100 000). */
3770
3972
  tint?: number;
3771
3973
  /** Shade value (0-100 000). */
3772
3974
  shade?: number;
3975
+ /** Explicit sRGB hex colour (e.g. `#FF8800`) from `a:srgbClr`. */
3976
+ color?: string;
3977
+ /** The fill was `a:noFill`: renders transparent and clears lower layers. */
3978
+ noFill?: boolean;
3979
+ /** Gradient fill parsed from `a:gradFill`. */
3980
+ gradient?: ParsedTableStyleGradient;
3981
+ /** Preset pattern fill parsed from `a:pattFill`. */
3982
+ pattern?: ParsedTableStylePattern;
3983
+ }
3984
+ /** A single colour stop within a {@link ParsedTableStyleGradient}. */
3985
+ interface ParsedTableStyleGradientStop {
3986
+ /** Stop position as a percentage (0-100). */
3987
+ position: number;
3988
+ /** Stop colour (scheme or explicit sRGB). */
3989
+ fill: ParsedTableStyleFill;
3990
+ }
3991
+ /** A gradient fill parsed from a table style section's `a:gradFill`. */
3992
+ interface ParsedTableStyleGradient {
3993
+ /** Ordered colour stops. */
3994
+ stops: ParsedTableStyleGradientStop[];
3995
+ /** Linear gradient angle in degrees (from `a:lin@ang`, 60000ths -> deg). */
3996
+ angle?: number;
3997
+ /** Gradient family: linear (`a:lin`) or radial (`a:path`). */
3998
+ type: 'linear' | 'radial';
3999
+ }
4000
+ /** A preset pattern fill parsed from a table style section's `a:pattFill`. */
4001
+ interface ParsedTableStylePattern {
4002
+ /** OOXML preset name (e.g. `ltDnDiag`) from `a:pattFill@prst`. */
4003
+ preset: string;
4004
+ /** Foreground colour (`a:fgClr`). */
4005
+ foreground?: ParsedTableStyleFill;
4006
+ /** Background colour (`a:bgClr`). */
4007
+ background?: ParsedTableStyleFill;
3773
4008
  }
3774
4009
  /**
3775
4010
  * A single entry in the parsed table style map.
@@ -3796,12 +4031,67 @@ interface ParsedTableStyleText {
3796
4031
  bold?: boolean;
3797
4032
  /** Font italic. */
3798
4033
  italic?: boolean;
4034
+ /** Font underline (from `a:tcTxStyle@u`, any value other than `none`). */
4035
+ underline?: boolean;
3799
4036
  /** Font colour as theme scheme key. */
3800
4037
  fontSchemeColor?: string;
3801
4038
  /** Font colour tint (0-100 000). */
3802
4039
  fontTint?: number;
3803
4040
  /** Font colour shade (0-100 000). */
3804
4041
  fontShade?: number;
4042
+ /** Explicit sRGB hex font colour (e.g. `#FF0000`) from `a:srgbClr`. */
4043
+ fontColor?: string;
4044
+ /** Typeface from `a:font@typeface` (latin font). */
4045
+ fontFace?: string;
4046
+ /** Font-collection index from `a:fontRef@idx` (`minor`, `major`, `none`). */
4047
+ fontRefIdx?: string;
4048
+ }
4049
+ /**
4050
+ * A single border side within a table style's `a:tcStyle/a:tcBdr`.
4051
+ *
4052
+ * Corresponds to one of `a:left`, `a:right`, `a:top`, `a:bottom`,
4053
+ * `a:insideH`, `a:insideV`, `a:tl2br`, `a:bl2tr` (each a
4054
+ * `CT_ThemeableLineStyle` wrapping an `a:ln`).
4055
+ *
4056
+ * @example
4057
+ * ```ts
4058
+ * const side: ParsedTableStyleBorder = {
4059
+ * width: 1,
4060
+ * dash: 'solid',
4061
+ * fill: { schemeColor: 'lt1' },
4062
+ * };
4063
+ * // => satisfies ParsedTableStyleBorder
4064
+ * ```
4065
+ */
4066
+ interface ParsedTableStyleBorder {
4067
+ /** Line width in px (converted from the `a:ln@w` EMU value). */
4068
+ width?: number;
4069
+ /** OOXML `a:prstDash@val` (e.g. `solid`, `dash`, `sysDot`). */
4070
+ dash?: string;
4071
+ /** Border colour as a theme scheme fill (from `a:ln/a:solidFill/a:schemeClr`). */
4072
+ fill?: ParsedTableStyleFill;
4073
+ /** Explicit hex colour when the line used `a:srgbClr` (e.g. `#808080`). */
4074
+ color?: string;
4075
+ /** The line was `a:noFill` — an explicit "no border" that clears lower layers. */
4076
+ noFill?: boolean;
4077
+ }
4078
+ /**
4079
+ * The set of border sides parsed from a table style section's
4080
+ * `a:tcStyle/a:tcBdr` element.
4081
+ */
4082
+ interface ParsedTableStyleBorders {
4083
+ left?: ParsedTableStyleBorder;
4084
+ right?: ParsedTableStyleBorder;
4085
+ top?: ParsedTableStyleBorder;
4086
+ bottom?: ParsedTableStyleBorder;
4087
+ /** Interior horizontal borders between rows in the region. */
4088
+ insideH?: ParsedTableStyleBorder;
4089
+ /** Interior vertical borders between columns in the region. */
4090
+ insideV?: ParsedTableStyleBorder;
4091
+ /** Top-left to bottom-right diagonal. */
4092
+ tl2br?: ParsedTableStyleBorder;
4093
+ /** Bottom-left to top-right diagonal. */
4094
+ bl2tr?: ParsedTableStyleBorder;
3805
4095
  }
3806
4096
  /**
3807
4097
  * Table background style (CT_TableBackgroundStyle, ECMA-376 §21.1.3.7).
@@ -3837,6 +4127,24 @@ interface ParsedTableStyleEntry {
3837
4127
  swCellFill?: ParsedTableStyleFill;
3838
4128
  neCellFill?: ParsedTableStyleFill;
3839
4129
  nwCellFill?: ParsedTableStyleFill;
4130
+ /**
4131
+ * Per-role border styling from `a:tcStyle/a:tcBdr`. These supply the
4132
+ * gridlines/edges a styled table inherits from its table style when the
4133
+ * cells carry no explicit per-cell `a:lnX` overrides.
4134
+ */
4135
+ wholeTblBorders?: ParsedTableStyleBorders;
4136
+ firstRowBorders?: ParsedTableStyleBorders;
4137
+ lastRowBorders?: ParsedTableStyleBorders;
4138
+ firstColBorders?: ParsedTableStyleBorders;
4139
+ lastColBorders?: ParsedTableStyleBorders;
4140
+ band1HBorders?: ParsedTableStyleBorders;
4141
+ band2HBorders?: ParsedTableStyleBorders;
4142
+ band1VBorders?: ParsedTableStyleBorders;
4143
+ band2VBorders?: ParsedTableStyleBorders;
4144
+ seCellBorders?: ParsedTableStyleBorders;
4145
+ swCellBorders?: ParsedTableStyleBorders;
4146
+ neCellBorders?: ParsedTableStyleBorders;
4147
+ nwCellBorders?: ParsedTableStyleBorders;
3840
4148
  /** Per-role text styling from a:tcTxStyle. */
3841
4149
  wholeTblText?: ParsedTableStyleText;
3842
4150
  firstRowText?: ParsedTableStyleText;
@@ -4634,10 +4942,30 @@ interface PptxNativeAnimation {
4634
4942
  presetClass?: 'entr' | 'exit' | 'emph' | 'path';
4635
4943
  /** Effect preset sub-type identifier. */
4636
4944
  presetId?: number;
4945
+ /**
4946
+ * Effect preset direction/variant code from `p:cTn/@presetSubtype`
4947
+ * (ECMA-376 CT_TLCommonTimeNodeData). For Fly In/Out this encodes the
4948
+ * edge/corner the object travels from as a bitmask (1=top, 2=right,
4949
+ * 4=bottom, 8=left; corners combine bits). Absent means the preset default.
4950
+ */
4951
+ presetSubtype?: number;
4637
4952
  /** Duration in milliseconds. */
4638
4953
  durationMs?: number;
4639
4954
  /** Delay in milliseconds. */
4640
4955
  delayMs?: number;
4956
+ /**
4957
+ * Acceleration fraction in the range 0..1, parsed from `p:cTn/@accel`
4958
+ * (ST_PositiveFixedPercentage, stored as 1000ths of a percent). A non-zero
4959
+ * value means the effect eases in (starts slow). Absent means no easing-in.
4960
+ */
4961
+ accel?: number;
4962
+ /**
4963
+ * Deceleration fraction in the range 0..1, parsed from `p:cTn/@decel`.
4964
+ * A non-zero value means the effect eases out (ends slow). Absent means no
4965
+ * easing-out. When both {@link accel} and {@link decel} are set, the effect
4966
+ * eases in and out.
4967
+ */
4968
+ decel?: number;
4641
4969
  /** Trigger delay in milliseconds (for afterDelay). */
4642
4970
  triggerDelayMs?: number;
4643
4971
  /** SVG path string for motion path animations (`p:animMotion/@path`). */
@@ -5509,7 +5837,7 @@ interface PptxTheme {
5509
5837
  * // => "morph" — one of 40+ transition effects
5510
5838
  * ```
5511
5839
  */
5512
- type PptxTransitionType = 'none' | 'cut' | 'fade' | 'push' | 'wipe' | 'split' | 'randomBar' | 'blinds' | 'checker' | 'circle' | 'comb' | 'cover' | 'diamond' | 'dissolve' | 'plus' | 'pull' | 'random' | 'strips' | 'uncover' | 'wedge' | 'wheel' | 'zoom' | 'newsflash' | 'morph' | 'conveyor' | 'doors' | 'ferris' | 'flash' | 'flythrough' | 'gallery' | 'glitter' | 'honeycomb' | 'pan' | 'prism' | 'reveal' | 'ripple' | 'shred' | 'switch' | 'vortex' | 'warp' | 'wheelReverse' | 'window' | 'cube' | 'flip' | 'rotate' | 'orbit';
5840
+ type PptxTransitionType = 'none' | 'cut' | 'fade' | 'push' | 'wipe' | 'split' | 'randomBar' | 'blinds' | 'checker' | 'circle' | 'comb' | 'cover' | 'diamond' | 'dissolve' | 'plus' | 'pull' | 'random' | 'strips' | 'uncover' | 'wedge' | 'wheel' | 'zoom' | 'newsflash' | 'morph' | 'conveyor' | 'doors' | 'ferris' | 'flash' | 'flythrough' | 'gallery' | 'glitter' | 'honeycomb' | 'pan' | 'prism' | 'reveal' | 'ripple' | 'shred' | 'switch' | 'vortex' | 'warp' | 'wheelReverse' | 'window' | 'cube' | 'flip' | 'rotate' | 'orbit' | 'fallOver' | 'drape' | 'curtains' | 'wind' | 'prestige' | 'fracture' | 'crush' | 'peelOff' | 'pageCurlDouble' | 'pageCurlSingle' | 'airplane' | 'origami';
5513
5841
  /** Split orientation from OOXML `@_orient`. */
5514
5842
  type PptxSplitOrientation = 'horz' | 'vert';
5515
5843
  /** Schema-defined `ST_TransitionSpeed` values. */
@@ -1,76 +1,76 @@
1
1
  'use strict';
2
2
 
3
3
  require('../chunk-IKBO6CZC.js');
4
- var chunk5G3SPYQE_js = require('../chunk-5G3SPYQE.js');
5
- var chunkZUJHFLOR_js = require('../chunk-ZUJHFLOR.js');
6
- require('../chunk-UXVFNGJH.js');
4
+ var chunk7CSBUYRN_js = require('../chunk-7CSBUYRN.js');
5
+ var chunkE55Q4AC7_js = require('../chunk-E55Q4AC7.js');
6
+ require('../chunk-TEN35NUX.js');
7
7
  require('../chunk-2EFVXYNA.js');
8
- require('../chunk-2V6BD4JQ.js');
8
+ require('../chunk-IPYAN574.js');
9
9
  require('../chunk-QGM4M3NI.js');
10
10
 
11
11
 
12
12
 
13
13
  Object.defineProperty(exports, "CollaborationProvider", {
14
14
  enumerable: true,
15
- get: function () { return chunk5G3SPYQE_js.CollaborationProvider; }
15
+ get: function () { return chunk7CSBUYRN_js.CollaborationProvider; }
16
16
  });
17
17
  Object.defineProperty(exports, "CollaborationStatusIndicator", {
18
18
  enumerable: true,
19
- get: function () { return chunk5G3SPYQE_js.CollaborationStatusIndicator; }
19
+ get: function () { return chunk7CSBUYRN_js.CollaborationStatusIndicator; }
20
20
  });
21
21
  Object.defineProperty(exports, "PowerPointViewer", {
22
22
  enumerable: true,
23
- get: function () { return chunk5G3SPYQE_js.PowerPointViewer; }
23
+ get: function () { return chunk7CSBUYRN_js.PowerPointViewer; }
24
24
  });
25
25
  Object.defineProperty(exports, "RemoteUserCursors", {
26
26
  enumerable: true,
27
- get: function () { return chunk5G3SPYQE_js.RemoteUserCursors; }
27
+ get: function () { return chunk7CSBUYRN_js.RemoteUserCursors; }
28
28
  });
29
29
  Object.defineProperty(exports, "UserAvatarBar", {
30
30
  enumerable: true,
31
- get: function () { return chunk5G3SPYQE_js.UserAvatarBar; }
31
+ get: function () { return chunk7CSBUYRN_js.UserAvatarBar; }
32
32
  });
33
33
  Object.defineProperty(exports, "clearAudienceContent", {
34
34
  enumerable: true,
35
- get: function () { return chunkZUJHFLOR_js.clearAudienceContent; }
35
+ get: function () { return chunkE55Q4AC7_js.clearAudienceContent; }
36
36
  });
37
37
  Object.defineProperty(exports, "getAnimationInitialStyle", {
38
38
  enumerable: true,
39
- get: function () { return chunkZUJHFLOR_js.getAnimationInitialStyle; }
39
+ get: function () { return chunkE55Q4AC7_js.getAnimationInitialStyle; }
40
40
  });
41
41
  Object.defineProperty(exports, "isAudienceTab", {
42
42
  enumerable: true,
43
- get: function () { return chunkZUJHFLOR_js.isAudienceTab; }
43
+ get: function () { return chunkE55Q4AC7_js.isAudienceTab; }
44
44
  });
45
45
  Object.defineProperty(exports, "loadAudienceContent", {
46
46
  enumerable: true,
47
- get: function () { return chunkZUJHFLOR_js.loadAudienceContent; }
47
+ get: function () { return chunkE55Q4AC7_js.loadAudienceContent; }
48
48
  });
49
49
  Object.defineProperty(exports, "parseAudienceNonce", {
50
50
  enumerable: true,
51
- get: function () { return chunkZUJHFLOR_js.parseAudienceNonce; }
51
+ get: function () { return chunkE55Q4AC7_js.parseAudienceNonce; }
52
52
  });
53
53
  Object.defineProperty(exports, "storeAudienceContent", {
54
54
  enumerable: true,
55
- get: function () { return chunkZUJHFLOR_js.storeAudienceContent; }
55
+ get: function () { return chunkE55Q4AC7_js.storeAudienceContent; }
56
56
  });
57
57
  Object.defineProperty(exports, "useCollaborativeHistory", {
58
58
  enumerable: true,
59
- get: function () { return chunkZUJHFLOR_js.useCollaborativeHistory; }
59
+ get: function () { return chunkE55Q4AC7_js.useCollaborativeHistory; }
60
60
  });
61
61
  Object.defineProperty(exports, "useCollaborativeState", {
62
62
  enumerable: true,
63
- get: function () { return chunkZUJHFLOR_js.useCollaborativeState; }
63
+ get: function () { return chunkE55Q4AC7_js.useCollaborativeState; }
64
64
  });
65
65
  Object.defineProperty(exports, "usePresenceTracking", {
66
66
  enumerable: true,
67
- get: function () { return chunkZUJHFLOR_js.usePresenceTracking; }
67
+ get: function () { return chunkE55Q4AC7_js.usePresenceTracking; }
68
68
  });
69
69
  Object.defineProperty(exports, "useThemeSwitching", {
70
70
  enumerable: true,
71
- get: function () { return chunkZUJHFLOR_js.useThemeSwitching; }
71
+ get: function () { return chunkE55Q4AC7_js.useThemeSwitching; }
72
72
  });
73
73
  Object.defineProperty(exports, "useYjsProvider", {
74
74
  enumerable: true,
75
- get: function () { return chunkZUJHFLOR_js.useYjsProvider; }
75
+ get: function () { return chunkE55Q4AC7_js.useYjsProvider; }
76
76
  });
Binary file
Binary file
@@ -1,7 +1,7 @@
1
1
  import '../chunk-T5U6P2JH.mjs';
2
- export { CollaborationProvider, CollaborationStatusIndicator, PowerPointViewer, RemoteUserCursors, UserAvatarBar } from '../chunk-GNXWU7UG.mjs';
3
- export { clearAudienceContent, getAnimationInitialStyle, isAudienceTab, loadAudienceContent, parseAudienceNonce, storeAudienceContent, useCollaborativeHistory, useCollaborativeState, usePresenceTracking, useThemeSwitching, useYjsProvider } from '../chunk-NYBERTS7.mjs';
4
- import '../chunk-DVM75RMN.mjs';
2
+ export { CollaborationProvider, CollaborationStatusIndicator, PowerPointViewer, RemoteUserCursors, UserAvatarBar } from '../chunk-L4ZADJOM.mjs';
3
+ export { clearAudienceContent, getAnimationInitialStyle, isAudienceTab, loadAudienceContent, parseAudienceNonce, storeAudienceContent, useCollaborativeHistory, useCollaborativeState, usePresenceTracking, useThemeSwitching, useYjsProvider } from '../chunk-F4WPQRZU.mjs';
4
+ import '../chunk-FVQDRA5N.mjs';
5
5
  import '../chunk-M3SIFXWD.mjs';
6
- import '../chunk-DAI4KM5W.mjs';
6
+ import '../chunk-FOMF7POV.mjs';
7
7
  import '../chunk-6DZX6EAA.mjs';
Binary file
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pptx-react-viewer",
3
- "version": "1.25.3",
3
+ "version": "1.25.5",
4
4
  "description": "React PowerPoint viewer and editor component: render, edit, and export PPTX slides in the browser.",
5
5
  "keywords": [
6
6
  "editor",
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file