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
package/dist/index.d.ts CHANGED
@@ -206,6 +206,13 @@ interface PptxShapeLocks {
206
206
  noAdjustHandles?: boolean;
207
207
  noChangeArrowheads?: boolean;
208
208
  noChangeShapeType?: boolean;
209
+ /**
210
+ * Text-box flag from `p:cNvSpPr/@txBox`. Not a lock in the strict sense,
211
+ * but it lives on the same non-visual-properties node as `a:spLocks`, so
212
+ * it is captured here to round-trip through the model. When `true` the
213
+ * shape is a plain text box (no fill/line by default).
214
+ */
215
+ txBox?: boolean;
209
216
  }
210
217
  /**
211
218
  * A drawing guide parsed from OOXML extension lists.
@@ -795,6 +802,15 @@ interface ShapeStyle {
795
802
  r: number;
796
803
  b: number;
797
804
  };
805
+ /** Raw tileRect LTRB values (0..1 fractions, may be negative) from
806
+ * `a:gradFill/a:tileRect`. Defines the rectangle the gradient tile occupies
807
+ * before any flip/tiling is applied. */
808
+ fillGradientTileRect?: {
809
+ l: number;
810
+ t: number;
811
+ r: number;
812
+ b: number;
813
+ };
798
814
  /** Gradient tile flip mode (`a:gradFill/@flip`).
799
815
  * `none` = no tiling flip (default), `x|y|xy` = mirror in the named axis. */
800
816
  fillGradientFlip?: 'none' | 'x' | 'y' | 'xy';
@@ -812,6 +828,20 @@ interface ShapeStyle {
812
828
  * round-trip serialisation. See {@link fillColorXml} for the rationale.
813
829
  */
814
830
  strokeColorXml?: XmlObject;
831
+ /**
832
+ * Kind of fill painted on the outline (`a:ln` child). Distinguishes a solid
833
+ * outline from a gradient/pattern/none outline so save can emit the correct
834
+ * single line fill instead of collapsing every outline to `a:solidFill`
835
+ * (which, alongside a preserved `a:gradFill`/`a:pattFill`, produces an
836
+ * invalid dual-fill `<a:ln>`).
837
+ */
838
+ strokeFillMode?: 'solid' | 'gradient' | 'pattern' | 'none';
839
+ /** Raw `a:ln/a:gradFill` XML preserved for round-trip when the outline is
840
+ * gradient-filled. Re-emitted verbatim as the line's single fill on save. */
841
+ strokeGradientXml?: XmlObject;
842
+ /** Raw `a:ln/a:pattFill` XML preserved for round-trip when the outline is
843
+ * pattern-filled. Re-emitted verbatim as the line's single fill on save. */
844
+ strokePatternXml?: XmlObject;
815
845
  strokeWidth?: number;
816
846
  strokeOpacity?: number;
817
847
  strokeDash?: StrokeDashType;
@@ -1120,6 +1150,13 @@ interface TextStyle {
1120
1150
  kerning?: number;
1121
1151
  /** Text highlight colour as hex string (`a:highlight`). */
1122
1152
  highlightColor?: string;
1153
+ /**
1154
+ * Raw colour-choice XML preserved from `a:highlight` so a themed highlight
1155
+ * (`a:schemeClr` / `a:sysClr` / `a:prstClr`) re-emits with its original
1156
+ * identity rather than being flattened to `<a:srgbClr/>` on save. On save we
1157
+ * re-emit verbatim when the resolved {@link highlightColor} still matches.
1158
+ */
1159
+ highlightColorXml?: XmlObject;
1123
1160
  /** Text-level gradient fill CSS string (from `a:rPr > a:gradFill`). */
1124
1161
  textFillGradient?: string;
1125
1162
  /** Structured gradient stops for text fill round-trip serialization. */
@@ -1231,10 +1268,36 @@ interface TextStyle {
1231
1268
  eastAsiaFont?: string;
1232
1269
  /** Complex Script font family from `a:cs`. */
1233
1270
  complexScriptFont?: string;
1271
+ /**
1272
+ * Theme-font token (`+mj-lt` / `+mn-lt` / ...) authored on `a:latin`, when
1273
+ * present. {@link fontFamily} holds the resolved concrete face for
1274
+ * rendering; this preserves the token linkage so the writer re-emits the
1275
+ * token rather than the flattened face (see #84).
1276
+ */
1277
+ latinFontThemeToken?: string;
1278
+ /** Theme-font token authored on `a:ea` (e.g. `+mn-ea`), when present. */
1279
+ eastAsiaFontThemeToken?: string;
1280
+ /** Theme-font token authored on `a:cs` (e.g. `+mn-cs`), when present. */
1281
+ complexScriptFontThemeToken?: string;
1282
+ /**
1283
+ * Automatic per-script fallback face resolved from the theme's
1284
+ * `<a:font script="...">` overrides for a run whose text is dominantly
1285
+ * CJK / Arabic / Hebrew / Thai (see #83). A rendering hint only: it is not
1286
+ * serialised back on save, so it never disturbs the round-trip typefaces.
1287
+ */
1288
+ scriptFallbackFont?: string;
1234
1289
  /** Text language from `a:rPr/@lang`. */
1235
1290
  language?: string;
1236
1291
  /** Hyperlink mouse-over target from `a:hlinkMouseOver`. */
1237
1292
  hyperlinkMouseOver?: string;
1293
+ /**
1294
+ * Raw `a:snd` (embedded WAV audio) child of `a:hlinkClick`, preserved
1295
+ * verbatim (carries `@r:embed` + `@name`). Round-tripped on save so the
1296
+ * click sound survives instead of being dropped.
1297
+ */
1298
+ hyperlinkSoundXml?: XmlObject;
1299
+ /** Raw `a:snd` child of `a:hlinkMouseOver`, preserved verbatim for round-trip. */
1300
+ hyperlinkMouseOverSoundXml?: XmlObject;
1238
1301
  /** Hyperlink invalidUrl attribute (`a:hlinkClick/@invalidUrl`). */
1239
1302
  hyperlinkInvalidUrl?: string;
1240
1303
  /** Hyperlink target frame (`a:hlinkClick/@tgtFrame`). */
@@ -1578,6 +1641,15 @@ interface TextSegment {
1578
1641
  * on the first segment of a paragraph.
1579
1642
  */
1580
1643
  endParaRunProperties?: Record<string, unknown>;
1644
+ /**
1645
+ * Per-paragraph properties (alignment, spacing, margins, indent, tab stops,
1646
+ * rtl) authored on this paragraph's own `a:pPr` (#69). Only meaningful on
1647
+ * the first segment of a paragraph. When present, the writer emits these
1648
+ * per paragraph instead of collapsing one shape-level pPr onto every
1649
+ * paragraph. Only the paragraph-geometry keys of {@link TextStyle} are
1650
+ * populated; unrelated fields fall back to the shape-level style.
1651
+ */
1652
+ paragraphProperties?: TextStyle;
1581
1653
  /**
1582
1654
  * Phonetic annotation text from `a:ruby > a:rt` (e.g. furigana, pinyin).
1583
1655
  * When present, the renderer should wrap the base text with an HTML `<ruby>` tag.
@@ -2182,6 +2254,18 @@ interface PptxChartSeries {
2182
2254
  marker?: PptxChartMarker;
2183
2255
  dataLabels?: PptxChartDataLabel[];
2184
2256
  explosion?: number;
2257
+ /**
2258
+ * Series-level `c:invertIfNegative`: when true, bar/column data points with a
2259
+ * negative value are drawn with an inverted (lightened) fill. A per-point
2260
+ * `c:dPt/c:invertIfNegative` overrides this for that point. Absent when the
2261
+ * source XML omits the flag.
2262
+ */
2263
+ invertIfNegative?: boolean;
2264
+ /**
2265
+ * Whether this line/scatter series is drawn with bezier smoothing
2266
+ * (`c:ser/c:smooth/@val`). Absent when the source XML omits `c:smooth`.
2267
+ */
2268
+ smooth?: boolean;
2185
2269
  /** Axis ID this series is plotted against (links to PptxChartAxisFormatting.axisId). */
2186
2270
  axisId?: number;
2187
2271
  /**
@@ -2448,6 +2532,33 @@ interface PptxChartData {
2448
2532
  style?: PptxChartStyle;
2449
2533
  /** Grouping mode for bar/area/line charts: 'clustered' | 'stacked' | 'percentStacked' */
2450
2534
  grouping?: 'clustered' | 'stacked' | 'percentStacked';
2535
+ /**
2536
+ * Whether the first (or only) series varies its point colours
2537
+ * (`c:varyColors/@val`). Pie/doughnut default this on; single-series
2538
+ * bar/column honour it by giving each point a distinct palette colour.
2539
+ * Absent when the source XML omits `c:varyColors`.
2540
+ */
2541
+ varyColors?: boolean;
2542
+ /**
2543
+ * Pie/doughnut start angle in degrees clockwise from 12 o'clock
2544
+ * (`c:firstSliceAng/@val`, 0 through 360). Absent uses the default 0.
2545
+ */
2546
+ firstSliceAngle?: number;
2547
+ /**
2548
+ * Doughnut hole diameter as a percentage of the outer diameter
2549
+ * (`c:holeSize/@val`, 10 through 90). Absent uses the renderer default.
2550
+ */
2551
+ doughnutHoleSize?: number;
2552
+ /**
2553
+ * Bar/column gap between category clusters as a percentage of bar width
2554
+ * (`c:gapWidth/@val`, 0 through 500). Absent uses the renderer default.
2555
+ */
2556
+ barGapWidth?: number;
2557
+ /**
2558
+ * Clustered bar/column overlap between series within a category as a
2559
+ * percentage (`c:overlap/@val`, -100 through 100). Absent uses 0.
2560
+ */
2561
+ barOverlap?: number;
2451
2562
  /** Internal: path to the chart XML part in the PPTX archive (for round-trip save). */
2452
2563
  chartPartPath?: string;
2453
2564
  /** Internal: relationship ID linking the graphic frame to the chart part. */
@@ -3255,6 +3366,18 @@ interface PptxSmartArtColorTransform extends PptxSmartArtDefinitionMetadata {
3255
3366
  fillColors: string[];
3256
3367
  /** Ordered resolved line colors for rendering. */
3257
3368
  lineColors: string[];
3369
+ /** Ordered resolved text-fill colors (primary styleLbl `txFillClrLst`). */
3370
+ textFillColors?: string[];
3371
+ /** Ordered resolved text-line colors (primary styleLbl `txLinClrLst`). */
3372
+ textLineColors?: string[];
3373
+ /** Ordered resolved effect colors (primary styleLbl `effectClrLst`). */
3374
+ effectColors?: string[];
3375
+ /** Ordered resolved text-effect colors (primary styleLbl `txEffectClrLst`). */
3376
+ textEffectColors?: string[];
3377
+ /** Fill-list span/cycle + hue-direction interpolation of the primary styleLbl. */
3378
+ fillInterpolation?: PptxSmartArtColorListMetadata;
3379
+ /** Line-list span/cycle + hue-direction interpolation of the primary styleLbl. */
3380
+ lineInterpolation?: PptxSmartArtColorListMetadata;
3258
3381
  /** Ordered CT_CTStyleLabel metadata. */
3259
3382
  labels?: PptxSmartArtColorStyleLabel[];
3260
3383
  }
@@ -3375,6 +3498,40 @@ interface PptxSmartArtDrawingShape extends PptxCustomPathProperties {
3375
3498
  skewY?: number;
3376
3499
  /** Solid fill colour (hex). */
3377
3500
  fillColor?: string;
3501
+ /**
3502
+ * Gradient fill stops when the cached shape uses `a:gradFill`. Positions are
3503
+ * 0..100 (percent). Renderers emit an SVG/CSS gradient instead of a flat box.
3504
+ */
3505
+ fillGradientStops?: Array<{
3506
+ color: string;
3507
+ position: number;
3508
+ opacity?: number;
3509
+ }>;
3510
+ /** Gradient geometry type (`linear` for `a:lin`, `radial` for `a:path`). */
3511
+ fillGradientType?: 'linear' | 'radial';
3512
+ /** Linear gradient angle in degrees (0..360). */
3513
+ fillGradientAngle?: number;
3514
+ /** Pattern fill preset name from `a:pattFill/@prst` (e.g. "pct50", "cross"). */
3515
+ fillPatternPreset?: string;
3516
+ /** Pattern fill foreground colour (hex) from `a:pattFill/a:fgClr`. */
3517
+ fillPatternForegroundColor?: string;
3518
+ /** Pattern fill background colour (hex) from `a:pattFill/a:bgClr`. */
3519
+ fillPatternBackgroundColor?: string;
3520
+ /**
3521
+ * Relationship id of a picture (blip) fill's embedded image, from
3522
+ * `a:blipFill/a:blip/@r:embed`. The image bytes are resolved separately; see
3523
+ * {@link fillImageUrl}.
3524
+ */
3525
+ fillBlipEmbedId?: string;
3526
+ /**
3527
+ * Resolved data-URI/URL for a picture (blip) fill, when the embedded image
3528
+ * part could be resolved. Absent when only {@link fillBlipEmbedId} is known.
3529
+ */
3530
+ fillImageUrl?: string;
3531
+ /** Whether the cached shape carries an outer-shadow effect (`a:effectLst`). */
3532
+ hasShadow?: boolean;
3533
+ /** Resolved outer-shadow colour (hex), when present. */
3534
+ shadowColor?: string;
3378
3535
  /** Stroke colour (hex). */
3379
3536
  strokeColor?: string;
3380
3537
  /** Stroke width in points. */
@@ -3409,6 +3566,40 @@ interface PptxSmartArtChrome {
3409
3566
  /** Outline stroke width in points. */
3410
3567
  outlineWidth?: number;
3411
3568
  }
3569
+ /**
3570
+ * Presentation layout variables from `dgm:prSet/dgm:presLayoutVars` (data model)
3571
+ * or `dgm:varLst` (layout definition defaults).
3572
+ *
3573
+ * These drive how the DiagramML layout interpreter arranges points: flow
3574
+ * direction, hierarchy branch style, org-chart mode, and child count limits.
3575
+ * The fallback layout engine can consult them for direction/org-chart hints.
3576
+ *
3577
+ * @example
3578
+ * ```ts
3579
+ * const vars: PptxSmartArtPresLayoutVars = { direction: "rev", orgChart: true };
3580
+ * // => satisfies PptxSmartArtPresLayoutVars
3581
+ * ```
3582
+ */
3583
+ interface PptxSmartArtPresLayoutVars {
3584
+ /** Flow direction (`dgm:dir`): "norm" (default) or "rev" (reversed/RTL). */
3585
+ direction?: 'norm' | 'rev';
3586
+ /** Hierarchy branch style (`dgm:hierBranch`): std/init/l/r/hang. */
3587
+ hierarchyBranch?: 'std' | 'init' | 'l' | 'r' | 'hang';
3588
+ /** Org-chart mode enabled (`dgm:orgChart`). */
3589
+ orgChart?: boolean;
3590
+ /** Maximum children per node (`dgm:chMax`, -1 = unbounded). */
3591
+ childMax?: number;
3592
+ /** Preferred children per node (`dgm:chPref`, -1 = unbounded). */
3593
+ childPreferred?: number;
3594
+ /** Whether bullets are enabled (`dgm:bulletEnabled`). */
3595
+ bulletEnabled?: boolean;
3596
+ /** Animation-by-level setting (`dgm:animLvl`). */
3597
+ animationLevel?: string;
3598
+ /** Animate-one setting (`dgm:animOne`). */
3599
+ animateOne?: string;
3600
+ /** Allowed resize handles (`dgm:resizeHandles`). */
3601
+ resizeHandles?: string;
3602
+ }
3412
3603
  /**
3413
3604
  * Complete parsed SmartArt data for a {@link SmartArtPptxElement}.
3414
3605
  *
@@ -3450,6 +3641,12 @@ interface PptxSmartArtData {
3450
3641
  quickStyle?: PptxSmartArtQuickStyle;
3451
3642
  /** Editable metadata from the related DiagramML layout definition. */
3452
3643
  layoutDefinition?: PptxSmartArtLayoutDefinition;
3644
+ /**
3645
+ * Presentation layout variables (direction, hierarchy branch, org-chart,
3646
+ * child limits, bullets) from `dgm:presLayoutVars` / layout `dgm:varLst`.
3647
+ * Consulted by the fallback layout engine for direction/org-chart hints.
3648
+ */
3649
+ presLayoutVars?: PptxSmartArtPresLayoutVars;
3453
3650
  /** Relationship ID for the diagram data part (for round-trip save). */
3454
3651
  dataRelId?: string;
3455
3652
  /** Relationship ID for the diagram layout part. */
@@ -3722,12 +3919,50 @@ interface PptxTableData {
3722
3919
  * ```
3723
3920
  */
3724
3921
  interface ParsedTableStyleFill {
3725
- /** Theme colour key (e.g. `accent1`, `dk1`). */
3922
+ /**
3923
+ * Theme colour key (e.g. `accent1`, `dk1`). Empty string when the fill is a
3924
+ * non-scheme fill (explicit sRGB, gradient, pattern, or none) that carries
3925
+ * no theme colour reference; the renderer then resolves {@link color},
3926
+ * {@link gradient}, {@link pattern}, or {@link noFill} instead.
3927
+ */
3726
3928
  schemeColor: string;
3727
3929
  /** Tint value (0-100 000). */
3728
3930
  tint?: number;
3729
3931
  /** Shade value (0-100 000). */
3730
3932
  shade?: number;
3933
+ /** Explicit sRGB hex colour (e.g. `#FF8800`) from `a:srgbClr`. */
3934
+ color?: string;
3935
+ /** The fill was `a:noFill`: renders transparent and clears lower layers. */
3936
+ noFill?: boolean;
3937
+ /** Gradient fill parsed from `a:gradFill`. */
3938
+ gradient?: ParsedTableStyleGradient;
3939
+ /** Preset pattern fill parsed from `a:pattFill`. */
3940
+ pattern?: ParsedTableStylePattern;
3941
+ }
3942
+ /** A single colour stop within a {@link ParsedTableStyleGradient}. */
3943
+ interface ParsedTableStyleGradientStop {
3944
+ /** Stop position as a percentage (0-100). */
3945
+ position: number;
3946
+ /** Stop colour (scheme or explicit sRGB). */
3947
+ fill: ParsedTableStyleFill;
3948
+ }
3949
+ /** A gradient fill parsed from a table style section's `a:gradFill`. */
3950
+ interface ParsedTableStyleGradient {
3951
+ /** Ordered colour stops. */
3952
+ stops: ParsedTableStyleGradientStop[];
3953
+ /** Linear gradient angle in degrees (from `a:lin@ang`, 60000ths -> deg). */
3954
+ angle?: number;
3955
+ /** Gradient family: linear (`a:lin`) or radial (`a:path`). */
3956
+ type: 'linear' | 'radial';
3957
+ }
3958
+ /** A preset pattern fill parsed from a table style section's `a:pattFill`. */
3959
+ interface ParsedTableStylePattern {
3960
+ /** OOXML preset name (e.g. `ltDnDiag`) from `a:pattFill@prst`. */
3961
+ preset: string;
3962
+ /** Foreground colour (`a:fgClr`). */
3963
+ foreground?: ParsedTableStyleFill;
3964
+ /** Background colour (`a:bgClr`). */
3965
+ background?: ParsedTableStyleFill;
3731
3966
  }
3732
3967
  /**
3733
3968
  * A single entry in the parsed table style map.
@@ -3754,12 +3989,67 @@ interface ParsedTableStyleText {
3754
3989
  bold?: boolean;
3755
3990
  /** Font italic. */
3756
3991
  italic?: boolean;
3992
+ /** Font underline (from `a:tcTxStyle@u`, any value other than `none`). */
3993
+ underline?: boolean;
3757
3994
  /** Font colour as theme scheme key. */
3758
3995
  fontSchemeColor?: string;
3759
3996
  /** Font colour tint (0-100 000). */
3760
3997
  fontTint?: number;
3761
3998
  /** Font colour shade (0-100 000). */
3762
3999
  fontShade?: number;
4000
+ /** Explicit sRGB hex font colour (e.g. `#FF0000`) from `a:srgbClr`. */
4001
+ fontColor?: string;
4002
+ /** Typeface from `a:font@typeface` (latin font). */
4003
+ fontFace?: string;
4004
+ /** Font-collection index from `a:fontRef@idx` (`minor`, `major`, `none`). */
4005
+ fontRefIdx?: string;
4006
+ }
4007
+ /**
4008
+ * A single border side within a table style's `a:tcStyle/a:tcBdr`.
4009
+ *
4010
+ * Corresponds to one of `a:left`, `a:right`, `a:top`, `a:bottom`,
4011
+ * `a:insideH`, `a:insideV`, `a:tl2br`, `a:bl2tr` (each a
4012
+ * `CT_ThemeableLineStyle` wrapping an `a:ln`).
4013
+ *
4014
+ * @example
4015
+ * ```ts
4016
+ * const side: ParsedTableStyleBorder = {
4017
+ * width: 1,
4018
+ * dash: 'solid',
4019
+ * fill: { schemeColor: 'lt1' },
4020
+ * };
4021
+ * // => satisfies ParsedTableStyleBorder
4022
+ * ```
4023
+ */
4024
+ interface ParsedTableStyleBorder {
4025
+ /** Line width in px (converted from the `a:ln@w` EMU value). */
4026
+ width?: number;
4027
+ /** OOXML `a:prstDash@val` (e.g. `solid`, `dash`, `sysDot`). */
4028
+ dash?: string;
4029
+ /** Border colour as a theme scheme fill (from `a:ln/a:solidFill/a:schemeClr`). */
4030
+ fill?: ParsedTableStyleFill;
4031
+ /** Explicit hex colour when the line used `a:srgbClr` (e.g. `#808080`). */
4032
+ color?: string;
4033
+ /** The line was `a:noFill` — an explicit "no border" that clears lower layers. */
4034
+ noFill?: boolean;
4035
+ }
4036
+ /**
4037
+ * The set of border sides parsed from a table style section's
4038
+ * `a:tcStyle/a:tcBdr` element.
4039
+ */
4040
+ interface ParsedTableStyleBorders {
4041
+ left?: ParsedTableStyleBorder;
4042
+ right?: ParsedTableStyleBorder;
4043
+ top?: ParsedTableStyleBorder;
4044
+ bottom?: ParsedTableStyleBorder;
4045
+ /** Interior horizontal borders between rows in the region. */
4046
+ insideH?: ParsedTableStyleBorder;
4047
+ /** Interior vertical borders between columns in the region. */
4048
+ insideV?: ParsedTableStyleBorder;
4049
+ /** Top-left to bottom-right diagonal. */
4050
+ tl2br?: ParsedTableStyleBorder;
4051
+ /** Bottom-left to top-right diagonal. */
4052
+ bl2tr?: ParsedTableStyleBorder;
3763
4053
  }
3764
4054
  /**
3765
4055
  * Table background style (CT_TableBackgroundStyle, ECMA-376 §21.1.3.7).
@@ -3795,6 +4085,24 @@ interface ParsedTableStyleEntry {
3795
4085
  swCellFill?: ParsedTableStyleFill;
3796
4086
  neCellFill?: ParsedTableStyleFill;
3797
4087
  nwCellFill?: ParsedTableStyleFill;
4088
+ /**
4089
+ * Per-role border styling from `a:tcStyle/a:tcBdr`. These supply the
4090
+ * gridlines/edges a styled table inherits from its table style when the
4091
+ * cells carry no explicit per-cell `a:lnX` overrides.
4092
+ */
4093
+ wholeTblBorders?: ParsedTableStyleBorders;
4094
+ firstRowBorders?: ParsedTableStyleBorders;
4095
+ lastRowBorders?: ParsedTableStyleBorders;
4096
+ firstColBorders?: ParsedTableStyleBorders;
4097
+ lastColBorders?: ParsedTableStyleBorders;
4098
+ band1HBorders?: ParsedTableStyleBorders;
4099
+ band2HBorders?: ParsedTableStyleBorders;
4100
+ band1VBorders?: ParsedTableStyleBorders;
4101
+ band2VBorders?: ParsedTableStyleBorders;
4102
+ seCellBorders?: ParsedTableStyleBorders;
4103
+ swCellBorders?: ParsedTableStyleBorders;
4104
+ neCellBorders?: ParsedTableStyleBorders;
4105
+ nwCellBorders?: ParsedTableStyleBorders;
3798
4106
  /** Per-role text styling from a:tcTxStyle. */
3799
4107
  wholeTblText?: ParsedTableStyleText;
3800
4108
  firstRowText?: ParsedTableStyleText;
@@ -4403,10 +4711,30 @@ interface PptxNativeAnimation {
4403
4711
  presetClass?: 'entr' | 'exit' | 'emph' | 'path';
4404
4712
  /** Effect preset sub-type identifier. */
4405
4713
  presetId?: number;
4714
+ /**
4715
+ * Effect preset direction/variant code from `p:cTn/@presetSubtype`
4716
+ * (ECMA-376 CT_TLCommonTimeNodeData). For Fly In/Out this encodes the
4717
+ * edge/corner the object travels from as a bitmask (1=top, 2=right,
4718
+ * 4=bottom, 8=left; corners combine bits). Absent means the preset default.
4719
+ */
4720
+ presetSubtype?: number;
4406
4721
  /** Duration in milliseconds. */
4407
4722
  durationMs?: number;
4408
4723
  /** Delay in milliseconds. */
4409
4724
  delayMs?: number;
4725
+ /**
4726
+ * Acceleration fraction in the range 0..1, parsed from `p:cTn/@accel`
4727
+ * (ST_PositiveFixedPercentage, stored as 1000ths of a percent). A non-zero
4728
+ * value means the effect eases in (starts slow). Absent means no easing-in.
4729
+ */
4730
+ accel?: number;
4731
+ /**
4732
+ * Deceleration fraction in the range 0..1, parsed from `p:cTn/@decel`.
4733
+ * A non-zero value means the effect eases out (ends slow). Absent means no
4734
+ * easing-out. When both {@link accel} and {@link decel} are set, the effect
4735
+ * eases in and out.
4736
+ */
4737
+ decel?: number;
4410
4738
  /** Trigger delay in milliseconds (for afterDelay). */
4411
4739
  triggerDelayMs?: number;
4412
4740
  /** SVG path string for motion path animations (`p:animMotion/@path`). */
@@ -5051,7 +5379,7 @@ interface PptxTheme {
5051
5379
  * // => "morph" — one of 40+ transition effects
5052
5380
  * ```
5053
5381
  */
5054
- 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';
5382
+ 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';
5055
5383
  /** Split orientation from OOXML `@_orient`. */
5056
5384
  type PptxSplitOrientation = 'horz' | 'vert';
5057
5385
  /** Schema-defined `ST_TransitionSpeed` values. */
package/dist/index.js CHANGED
@@ -1,129 +1,129 @@
1
1
  'use strict';
2
2
 
3
- var chunk5G3SPYQE_js = require('./chunk-5G3SPYQE.js');
4
- var chunkZUJHFLOR_js = require('./chunk-ZUJHFLOR.js');
5
- var chunkUXVFNGJH_js = require('./chunk-UXVFNGJH.js');
3
+ var chunk7CSBUYRN_js = require('./chunk-7CSBUYRN.js');
4
+ var chunkE55Q4AC7_js = require('./chunk-E55Q4AC7.js');
5
+ var chunkTEN35NUX_js = require('./chunk-TEN35NUX.js');
6
6
  var chunk2EFVXYNA_js = require('./chunk-2EFVXYNA.js');
7
- require('./chunk-2V6BD4JQ.js');
7
+ require('./chunk-IPYAN574.js');
8
8
  require('./chunk-QGM4M3NI.js');
9
9
 
10
10
 
11
11
 
12
12
  Object.defineProperty(exports, "PowerPointViewer", {
13
13
  enumerable: true,
14
- get: function () { return chunk5G3SPYQE_js.PowerPointViewer; }
14
+ get: function () { return chunk7CSBUYRN_js.PowerPointViewer; }
15
15
  });
16
16
  Object.defineProperty(exports, "SlideCanvas", {
17
17
  enumerable: true,
18
- get: function () { return chunk5G3SPYQE_js.SlideCanvas; }
18
+ get: function () { return chunk7CSBUYRN_js.SlideCanvas; }
19
19
  });
20
20
  Object.defineProperty(exports, "Toolbar", {
21
21
  enumerable: true,
22
- get: function () { return chunk5G3SPYQE_js.Toolbar; }
22
+ get: function () { return chunk7CSBUYRN_js.Toolbar; }
23
23
  });
24
24
  Object.defineProperty(exports, "ViewerThemeProvider", {
25
25
  enumerable: true,
26
- get: function () { return chunk5G3SPYQE_js.ViewerThemeProvider; }
26
+ get: function () { return chunk7CSBUYRN_js.ViewerThemeProvider; }
27
27
  });
28
28
  Object.defineProperty(exports, "useViewerTheme", {
29
29
  enumerable: true,
30
- get: function () { return chunk5G3SPYQE_js.useViewerTheme; }
30
+ get: function () { return chunk7CSBUYRN_js.useViewerTheme; }
31
31
  });
32
32
  Object.defineProperty(exports, "getAnimationInitialStyle", {
33
33
  enumerable: true,
34
- get: function () { return chunkZUJHFLOR_js.getAnimationInitialStyle; }
34
+ get: function () { return chunkE55Q4AC7_js.getAnimationInitialStyle; }
35
35
  });
36
36
  Object.defineProperty(exports, "renderToCanvas", {
37
37
  enumerable: true,
38
- get: function () { return chunkZUJHFLOR_js.renderToCanvas; }
38
+ get: function () { return chunkE55Q4AC7_js.renderToCanvas; }
39
39
  });
40
40
  Object.defineProperty(exports, "useViewerBuildingBlocks", {
41
41
  enumerable: true,
42
- get: function () { return chunkZUJHFLOR_js.useViewerBuildingBlocks; }
42
+ get: function () { return chunkE55Q4AC7_js.useViewerBuildingBlocks; }
43
43
  });
44
44
  Object.defineProperty(exports, "AVATAR_COLOR_SWATCHES", {
45
45
  enumerable: true,
46
- get: function () { return chunkUXVFNGJH_js.AVATAR_COLOR_SWATCHES; }
46
+ get: function () { return chunkTEN35NUX_js.AVATAR_COLOR_SWATCHES; }
47
47
  });
48
48
  Object.defineProperty(exports, "DEFAULT_VIEWER_PROFILE", {
49
49
  enumerable: true,
50
- get: function () { return chunkUXVFNGJH_js.DEFAULT_VIEWER_PROFILE; }
50
+ get: function () { return chunkTEN35NUX_js.DEFAULT_VIEWER_PROFILE; }
51
51
  });
52
52
  Object.defineProperty(exports, "THEME_CATALOG", {
53
53
  enumerable: true,
54
- get: function () { return chunkUXVFNGJH_js.THEME_CATALOG; }
54
+ get: function () { return chunkTEN35NUX_js.THEME_CATALOG; }
55
55
  });
56
56
  Object.defineProperty(exports, "VIEWER_PREFS_STORAGE_KEY", {
57
57
  enumerable: true,
58
- get: function () { return chunkUXVFNGJH_js.VIEWER_PREFS_STORAGE_KEY; }
58
+ get: function () { return chunkTEN35NUX_js.VIEWER_PREFS_STORAGE_KEY; }
59
59
  });
60
60
  Object.defineProperty(exports, "clearAllLocalViewerData", {
61
61
  enumerable: true,
62
- get: function () { return chunkUXVFNGJH_js.clearAllLocalViewerData; }
62
+ get: function () { return chunkTEN35NUX_js.clearAllLocalViewerData; }
63
63
  });
64
64
  Object.defineProperty(exports, "clearStoredViewerPrefs", {
65
65
  enumerable: true,
66
- get: function () { return chunkUXVFNGJH_js.clearStoredViewerPrefs; }
66
+ get: function () { return chunkTEN35NUX_js.clearStoredViewerPrefs; }
67
67
  });
68
68
  Object.defineProperty(exports, "defaultCssVars", {
69
69
  enumerable: true,
70
- get: function () { return chunkUXVFNGJH_js.defaultCssVars; }
70
+ get: function () { return chunkTEN35NUX_js.defaultCssVars; }
71
71
  });
72
72
  Object.defineProperty(exports, "defaultRadius", {
73
73
  enumerable: true,
74
- get: function () { return chunkUXVFNGJH_js.defaultRadius; }
74
+ get: function () { return chunkTEN35NUX_js.defaultRadius; }
75
75
  });
76
76
  Object.defineProperty(exports, "defaultThemeColors", {
77
77
  enumerable: true,
78
- get: function () { return chunkUXVFNGJH_js.defaultThemeColors; }
78
+ get: function () { return chunkTEN35NUX_js.defaultThemeColors; }
79
79
  });
80
80
  Object.defineProperty(exports, "getLocalStorageUsageSummary", {
81
81
  enumerable: true,
82
- get: function () { return chunkUXVFNGJH_js.getLocalStorageUsageSummary; }
82
+ get: function () { return chunkTEN35NUX_js.getLocalStorageUsageSummary; }
83
83
  });
84
84
  Object.defineProperty(exports, "readStoredViewerPrefs", {
85
85
  enumerable: true,
86
- get: function () { return chunkUXVFNGJH_js.readStoredViewerPrefs; }
86
+ get: function () { return chunkTEN35NUX_js.readStoredViewerPrefs; }
87
87
  });
88
88
  Object.defineProperty(exports, "resolveProfileInitial", {
89
89
  enumerable: true,
90
- get: function () { return chunkUXVFNGJH_js.resolveProfileInitial; }
90
+ get: function () { return chunkTEN35NUX_js.resolveProfileInitial; }
91
91
  });
92
92
  Object.defineProperty(exports, "resolveThemeCatalogEntry", {
93
93
  enumerable: true,
94
- get: function () { return chunkUXVFNGJH_js.resolveThemeCatalogEntry; }
94
+ get: function () { return chunkTEN35NUX_js.resolveThemeCatalogEntry; }
95
95
  });
96
96
  Object.defineProperty(exports, "saveViewerProfile", {
97
97
  enumerable: true,
98
- get: function () { return chunkUXVFNGJH_js.saveViewerProfile; }
98
+ get: function () { return chunkTEN35NUX_js.saveViewerProfile; }
99
99
  });
100
100
  Object.defineProperty(exports, "themeToCssVars", {
101
101
  enumerable: true,
102
- get: function () { return chunkUXVFNGJH_js.themeToCssVars; }
102
+ get: function () { return chunkTEN35NUX_js.themeToCssVars; }
103
103
  });
104
104
  Object.defineProperty(exports, "vermilionDarkColors", {
105
105
  enumerable: true,
106
- get: function () { return chunkUXVFNGJH_js.vermilionDarkColors; }
106
+ get: function () { return chunkTEN35NUX_js.vermilionDarkColors; }
107
107
  });
108
108
  Object.defineProperty(exports, "vermilionDarkTheme", {
109
109
  enumerable: true,
110
- get: function () { return chunkUXVFNGJH_js.vermilionDarkTheme; }
110
+ get: function () { return chunkTEN35NUX_js.vermilionDarkTheme; }
111
111
  });
112
112
  Object.defineProperty(exports, "vermilionLightColors", {
113
113
  enumerable: true,
114
- get: function () { return chunkUXVFNGJH_js.vermilionLightColors; }
114
+ get: function () { return chunkTEN35NUX_js.vermilionLightColors; }
115
115
  });
116
116
  Object.defineProperty(exports, "vermilionLightTheme", {
117
117
  enumerable: true,
118
- get: function () { return chunkUXVFNGJH_js.vermilionLightTheme; }
118
+ get: function () { return chunkTEN35NUX_js.vermilionLightTheme; }
119
119
  });
120
120
  Object.defineProperty(exports, "vermilionRadius", {
121
121
  enumerable: true,
122
- get: function () { return chunkUXVFNGJH_js.vermilionRadius; }
122
+ get: function () { return chunkTEN35NUX_js.vermilionRadius; }
123
123
  });
124
124
  Object.defineProperty(exports, "writeStoredViewerPrefs", {
125
125
  enumerable: true,
126
- get: function () { return chunkUXVFNGJH_js.writeStoredViewerPrefs; }
126
+ get: function () { return chunkTEN35NUX_js.writeStoredViewerPrefs; }
127
127
  });
128
128
  Object.defineProperty(exports, "LOCALE_CATALOG", {
129
129
  enumerable: true,
package/dist/index.js.br CHANGED
Binary file
package/dist/index.js.gz CHANGED
Binary file
package/dist/index.mjs CHANGED
@@ -1,6 +1,6 @@
1
- export { PowerPointViewer, SlideCanvas, Toolbar, ViewerThemeProvider, useViewerTheme } from './chunk-GNXWU7UG.mjs';
2
- export { getAnimationInitialStyle, renderToCanvas, useViewerBuildingBlocks } from './chunk-NYBERTS7.mjs';
3
- export { AVATAR_COLOR_SWATCHES, DEFAULT_VIEWER_PROFILE, THEME_CATALOG, VIEWER_PREFS_STORAGE_KEY, clearAllLocalViewerData, clearStoredViewerPrefs, defaultCssVars, defaultRadius, defaultThemeColors, getLocalStorageUsageSummary, readStoredViewerPrefs, resolveProfileInitial, resolveThemeCatalogEntry, saveViewerProfile, themeToCssVars, vermilionDarkColors, vermilionDarkTheme, vermilionLightColors, vermilionLightTheme, vermilionRadius, writeStoredViewerPrefs } from './chunk-DVM75RMN.mjs';
1
+ export { PowerPointViewer, SlideCanvas, Toolbar, ViewerThemeProvider, useViewerTheme } from './chunk-L4ZADJOM.mjs';
2
+ export { getAnimationInitialStyle, renderToCanvas, useViewerBuildingBlocks } from './chunk-F4WPQRZU.mjs';
3
+ export { AVATAR_COLOR_SWATCHES, DEFAULT_VIEWER_PROFILE, THEME_CATALOG, VIEWER_PREFS_STORAGE_KEY, clearAllLocalViewerData, clearStoredViewerPrefs, defaultCssVars, defaultRadius, defaultThemeColors, getLocalStorageUsageSummary, readStoredViewerPrefs, resolveProfileInitial, resolveThemeCatalogEntry, saveViewerProfile, themeToCssVars, vermilionDarkColors, vermilionDarkTheme, vermilionLightColors, vermilionLightTheme, vermilionRadius, writeStoredViewerPrefs } from './chunk-FVQDRA5N.mjs';
4
4
  export { LOCALE_CATALOG } from './chunk-M3SIFXWD.mjs';
5
- import './chunk-DAI4KM5W.mjs';
5
+ import './chunk-FOMF7POV.mjs';
6
6
  import './chunk-6DZX6EAA.mjs';
package/dist/index.mjs.br CHANGED
Binary file
package/dist/index.mjs.gz CHANGED
Binary file