pptx-svelte-viewer 3.2.0 → 3.2.2

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.
package/dist/index.d.ts CHANGED
@@ -1229,7 +1229,14 @@ interface ShapeStyle {
1229
1229
  * // => both satisfy the TextStyle interface
1230
1230
  * ```
1231
1231
  */
1232
+ /** 2D linear transform matrix `[a, b, c, d]` for inherited group orientation. */
1233
+ type TextOrientationMatrix = [number, number, number, number];
1232
1234
  interface TextStyle {
1235
+ /**
1236
+ * Combined rotation/flip matrix inherited from ancestor groups.
1237
+ * Used only to keep descendant text readable after nested group mirrors.
1238
+ */
1239
+ ancestorGroupTransform?: TextOrientationMatrix;
1233
1240
  /** Original `a:rPr` XML retained by projections that share the shape-text model. */
1234
1241
  runPropertiesXml?: XmlObject;
1235
1242
  /**
@@ -2166,6 +2173,16 @@ interface PlaceholderTextLevelStyle {
2166
2173
  lineSpacingExactPt?: number;
2167
2174
  spaceBefore?: number;
2168
2175
  spaceAfter?: number;
2176
+ /** Default tab interval in CSS pixels (`a:lvlXpPr/@defTabSz`). */
2177
+ defaultTabSize?: number;
2178
+ /** Whether East Asian line-breaking rules are enabled. */
2179
+ eaLineBreak?: boolean;
2180
+ /** Whether Latin line-breaking rules are enabled. */
2181
+ latinLineBreak?: boolean;
2182
+ /** Font vertical alignment within the text line. */
2183
+ fontAlignment?: string;
2184
+ /** Whether end punctuation may hang outside the text frame. */
2185
+ hangingPunctuation?: boolean;
2169
2186
  }
2170
2187
  //#endregion
2171
2188
  //#region src/core/types/chart-axis.d.ts
@@ -4241,10 +4258,15 @@ interface PptxSmartArtDrawingShape extends PptxCustomPathProperties {
4241
4258
  height: number;
4242
4259
  /** Rotation in degrees. */
4243
4260
  rotation?: number;
4261
+ /** Horizontal/vertical mirrors declared on the cached drawing transform. */
4262
+ flipHorizontal?: boolean;
4263
+ flipVertical?: boolean;
4244
4264
  /** Skew along the X axis in degrees. */
4245
4265
  skewX?: number;
4246
4266
  /** Skew along the Y axis in degrees. */
4247
4267
  skewY?: number;
4268
+ /** Preset-geometry adjustment values from `a:prstGeom/a:avLst`. */
4269
+ shapeAdjustments?: Record<string, number>;
4248
4270
  /**
4249
4271
  * The cached shape declares `a:noFill`. Renderers must leave it unpainted
4250
4272
  * rather than substituting a palette colour, because these shapes usually sit
@@ -4295,10 +4317,36 @@ interface PptxSmartArtDrawingShape extends PptxCustomPathProperties {
4295
4317
  text?: string;
4296
4318
  /** Standard rich-text segments projected from the associated SmartArt node. */
4297
4319
  textSegments?: TextSegment[];
4298
- /** Font size in points. */
4320
+ /** Font size in CSS pixels. */
4299
4321
  fontSize?: number;
4300
4322
  /** Font colour (hex). */
4301
4323
  fontColor?: string;
4324
+ /** Authored font family from the first styled run. */
4325
+ fontFamily?: string;
4326
+ /** Authored font weight (400 or 700). */
4327
+ fontWeight?: number;
4328
+ /** Authored font style. */
4329
+ fontStyle?: 'normal' | 'italic';
4330
+ /** Absolute line height in CSS pixels from `a:spcPts`. */
4331
+ lineHeight?: number;
4332
+ /** Relative line height from `a:spcPct`. */
4333
+ lineHeightRatio?: number;
4334
+ /** Absolute spacing after a paragraph in CSS pixels. */
4335
+ lineSpacingAfter?: number;
4336
+ /** Relative spacing after a paragraph. */
4337
+ lineSpacingAfterRatio?: number;
4338
+ /** Text-body insets in CSS pixels. */
4339
+ textInsetLeft?: number;
4340
+ textInsetTop?: number;
4341
+ textInsetRight?: number;
4342
+ textInsetBottom?: number;
4343
+ /** DiagramML text vertical anchor (`t`, `ctr`, or `b`). */
4344
+ textVerticalAnchor?: string;
4345
+ /** Independent DiagramML text-frame geometry from `dsp:txXfrm`. */
4346
+ textFrameX?: number;
4347
+ textFrameY?: number;
4348
+ textFrameWidth?: number;
4349
+ textFrameHeight?: number;
4302
4350
  }
4303
4351
  /**
4304
4352
  * Background / outline extracted from `dgm:bg` and `dgm:whole`.
@@ -5303,6 +5351,22 @@ interface MediaPptxElement extends PptxElementBase {
5303
5351
  posterFramePath?: string;
5304
5352
  /** Base64 data-URL for the poster frame image. */
5305
5353
  posterFrameData?: string;
5354
+ /** Poster source crop from the left edge as a 0..1 fraction. */
5355
+ cropLeft?: number;
5356
+ /** Poster source crop from the top edge as a 0..1 fraction. */
5357
+ cropTop?: number;
5358
+ /** Poster source crop from the right edge as a 0..1 fraction. */
5359
+ cropRight?: number;
5360
+ /** Poster source crop from the bottom edge as a 0..1 fraction. */
5361
+ cropBottom?: number;
5362
+ /** Poster stretch-target inset from the left frame edge. */
5363
+ fillRectLeft?: number;
5364
+ /** Poster stretch-target inset from the top frame edge. */
5365
+ fillRectTop?: number;
5366
+ /** Poster stretch-target inset from the right frame edge. */
5367
+ fillRectRight?: number;
5368
+ /** Poster stretch-target inset from the bottom frame edge. */
5369
+ fillRectBottom?: number;
5306
5370
  /** Whether media should play full-screen during presentation. */
5307
5371
  fullScreen?: boolean;
5308
5372
  /** Whether media should loop continuously. */
@@ -5567,6 +5631,8 @@ interface PptxNotesMaster {
5567
5631
  backgroundColor?: string;
5568
5632
  /** Background image data URL. */
5569
5633
  backgroundImage?: string;
5634
+ /** Crop, tiling and image effects authored on the background blip fill. */
5635
+ backgroundImageProperties?: PptxImageProperties;
5570
5636
  /** Placeholder shapes found on the notes master. */
5571
5637
  placeholders?: PptxPlaceholderFrame[];
5572
5638
  /** Editable elements on the notes master (header, footer, date, page number, slide image, notes body). */
@@ -5605,6 +5671,8 @@ interface PptxHandoutMaster {
5605
5671
  backgroundColor?: string;
5606
5672
  /** Background image data URL. */
5607
5673
  backgroundImage?: string;
5674
+ /** Crop, tiling and image effects authored on the background blip fill. */
5675
+ backgroundImageProperties?: PptxImageProperties;
5608
5676
  /** Placeholder shapes found on the handout master. */
5609
5677
  placeholders?: PptxPlaceholderFrame[];
5610
5678
  /** Editable elements on the handout master (header, footer, date, page number, slide placeholders). */
@@ -5639,6 +5707,8 @@ interface PptxSlideMaster {
5639
5707
  backgroundColor?: string;
5640
5708
  /** Background image data URL for the slide master. */
5641
5709
  backgroundImage?: string;
5710
+ /** Crop, tiling and image effects authored on the background blip fill. */
5711
+ backgroundImageProperties?: PptxImageProperties;
5642
5712
  /** Theme file path this master references. */
5643
5713
  themePath?: string;
5644
5714
  /** Layout paths associated with this master. */
@@ -5721,6 +5791,8 @@ interface PptxSlideLayout {
5721
5791
  backgroundColor?: string;
5722
5792
  /** Background image data URL for the layout. */
5723
5793
  backgroundImage?: string;
5794
+ /** Crop, tiling and image effects authored on the background blip fill. */
5795
+ backgroundImageProperties?: PptxImageProperties;
5724
5796
  /** Parsed element shapes on the layout. */
5725
5797
  elements?: PptxElement[];
5726
5798
  /** Placeholder shapes on the layout. */
@@ -5769,6 +5841,8 @@ interface PptxLayoutPreview {
5769
5841
  backgroundColor?: string;
5770
5842
  /** Background image data URL, when the layout or master declares one. */
5771
5843
  backgroundImage?: string;
5844
+ /** Crop, tiling and image effects authored on the resolved background image. */
5845
+ backgroundImageProperties?: PptxImageProperties;
5772
5846
  /** The layout's own artwork (pictures, shapes and static text). */
5773
5847
  elements: PptxElement[];
5774
5848
  /** Placeholder slots, drawn as outlined frames in the gallery. */
@@ -5821,6 +5895,8 @@ type PptxNativeAnimationKind = 'media';
5821
5895
  type PptxAnimationTarget = {
5822
5896
  type: 'shape';
5823
5897
  shapeId: string;
5898
+ /** Whether `p:spTgt/p:bg` limits the effect to the shape background. */
5899
+ backgroundOnly?: boolean;
5824
5900
  rawXml?: XmlObject;
5825
5901
  } | {
5826
5902
  type: 'slide';
@@ -5911,6 +5987,10 @@ interface PptxNativeAnimation {
5911
5987
  trigger?: PptxAnimationTrigger;
5912
5988
  /** Shape ID that triggers this animation when clicked (interactive sequence). */
5913
5989
  triggerShapeId?: string;
5990
+ /** Whether this effect belongs to an OOXML `interactiveSeq`. */
5991
+ interactiveSequence?: boolean;
5992
+ /** Whether `p:endSync/p:rtn[@val="all"]` makes that sequence replayable. */
5993
+ interactiveRestart?: boolean;
5914
5994
  /** Effect preset class (entr, exit, emph, path). */
5915
5995
  presetClass?: 'entr' | 'exit' | 'emph' | 'path';
5916
5996
  /** Effect preset sub-type identifier. */
@@ -5956,6 +6036,12 @@ interface PptxNativeAnimation {
5956
6036
  motionPathEditMode?: string;
5957
6037
  /** Comma-separated point-types string from `p:animMotion/@ptsTypes`. */
5958
6038
  motionPtsTypes?: string;
6039
+ /** Authored path rotation in degrees from `p:animMotion/@rAng`. */
6040
+ motionPathRotationAngle?: number;
6041
+ /** Motion-path rotation centre X in slide percentage units (`p:rCtr/@x`). */
6042
+ motionPathRotationCenterX?: number;
6043
+ /** Motion-path rotation centre Y in slide percentage units (`p:rCtr/@y`). */
6044
+ motionPathRotationCenterY?: number;
5959
6045
  /** Rotation angle in degrees for `p:animRot/@by` (converted from 60000ths). */
5960
6046
  rotationBy?: number;
5961
6047
  /** Starting rotation angle in degrees for `p:animRot/@from` (converted from 60000ths). */
@@ -5991,6 +6077,8 @@ interface PptxNativeAnimation {
5991
6077
  * instead). Absent when the behaviour carries no `p:attrNameLst`.
5992
6078
  */
5993
6079
  attrName?: string;
6080
+ /** Every generic `p:anim` sibling composed by the authored effect. */
6081
+ attributeAnimations?: PptxAttributeAnimation[];
5994
6082
  /** Repeat count (e.g. `2`, `Infinity` for indefinite). */
5995
6083
  repeatCount?: number;
5996
6084
  /** Whether the animation plays in reverse after completion. */
@@ -6080,6 +6168,14 @@ interface PptxNativeAnimation {
6080
6168
  * simultaneous effects at their true offsets instead of accumulating delays.
6081
6169
  */
6082
6170
  parGroupIndex?: number;
6171
+ /**
6172
+ * Absolute start offset of the enclosing effect-wrapper from its click group.
6173
+ *
6174
+ * Structural `p:par` wrappers can carry their own start conditions. Keeping
6175
+ * this offset separate from the effect's delay prevents playback from
6176
+ * replacing an authored absolute start with a duration-based approximation.
6177
+ */
6178
+ parGroupDelayMs?: number;
6083
6179
  /** Structured start conditions parsed from `p:stCondLst`. */
6084
6180
  startConditions?: AnimationCondition[];
6085
6181
  /** Structured end conditions parsed from `p:endCondLst`. */
@@ -6236,6 +6332,26 @@ interface PptxAnimationKeyframe {
6236
6332
  */
6237
6333
  fmla?: string;
6238
6334
  }
6335
+ /** One generic `p:anim` behaviour inside a composed PowerPoint effect. */
6336
+ interface PptxAttributeAnimation {
6337
+ /** Lowercased target attribute from `p:attrNameLst`. */
6338
+ attrName: string;
6339
+ /** Authored value stops from this behaviour's `p:tavLst`. */
6340
+ keyframes: PptxAnimationKeyframe[];
6341
+ /** Duration from this behaviour's nested `p:cTn/@dur`. */
6342
+ durationMs?: number;
6343
+ /** Start offset from this behaviour's nested `p:stCondLst`. */
6344
+ delayMs?: number;
6345
+ }
6346
+ /** Signed HSL channel deltas parsed from `p:animClr/p:by/p:hsl`. */
6347
+ interface PptxHslColorDelta {
6348
+ /** Hue offset in degrees. OOXML stores this in 60000ths of a degree. */
6349
+ hue: number;
6350
+ /** Saturation offset in percentage points. */
6351
+ saturation: number;
6352
+ /** Lightness offset in percentage points. */
6353
+ lightness: number;
6354
+ }
6239
6355
  /** Color animation data parsed from `p:animClr`. */
6240
6356
  interface PptxColorAnimation {
6241
6357
  /** Color interpolation space: "hsl" or "rgb". */
@@ -6255,15 +6371,27 @@ interface PptxColorAnimation {
6255
6371
  toColor?: string;
6256
6372
  /**
6257
6373
  * Color delta (for "by" animations) as hex string. For HSL colour-space
6258
- * animations the value encodes a delta over hue/sat/lum and is preserved
6259
- * verbatim from the source.
6374
+ * animations this retains the historical byte-packed compatibility value;
6375
+ * consumers should prefer {@link hslDelta}, which preserves signed values.
6260
6376
  */
6261
6377
  byColor?: string;
6378
+ /**
6379
+ * Typed HSL delta from `p:by/p:hsl`. This preserves signed values and their
6380
+ * OOXML units without forcing them through the legacy byte-packed `byColor`
6381
+ * representation.
6382
+ */
6383
+ hslDelta?: PptxHslColorDelta;
6262
6384
  /**
6263
6385
  * Target attribute from `p:attrNameLst` (e.g. "fillcolor", "style.color",
6264
6386
  * "stroke.color"). Used to determine which CSS property to animate.
6265
6387
  */
6266
6388
  targetAttribute?: string;
6389
+ /**
6390
+ * All sibling `p:animClr` behaviours authored for the same timing node.
6391
+ * The top-level fields continue to mirror the first behaviour for backwards
6392
+ * compatibility; this list is present only when there is more than one.
6393
+ */
6394
+ components?: readonly PptxColorAnimation[];
6267
6395
  }
6268
6396
  /** Text-level animation target from `p:txEl`. */
6269
6397
  interface PptxTextAnimationTarget {
@@ -6380,6 +6508,12 @@ interface PptxElementAnimation {
6380
6508
  motionPathEditMode?: string;
6381
6509
  /** Comma-separated point-types string for `p:animMotion/@ptsTypes`. */
6382
6510
  motionPtsTypes?: string;
6511
+ /** Authored path rotation in degrees from `p:animMotion/@rAng`. */
6512
+ motionPathRotationAngle?: number;
6513
+ /** Motion-path rotation centre X in slide percentage units (`p:rCtr/@x`). */
6514
+ motionPathRotationCenterX?: number;
6515
+ /** Motion-path rotation centre Y in slide percentage units (`p:rCtr/@y`). */
6516
+ motionPathRotationCenterY?: number;
6383
6517
  /** Sound relationship ID to play when animation triggers (`p:stSnd`). */
6384
6518
  soundRId?: string;
6385
6519
  /** Resolved sound file path from relationship. */
@@ -7407,6 +7541,8 @@ interface PptxSlide {
7407
7541
  elements: PptxElement[];
7408
7542
  backgroundColor?: string;
7409
7543
  backgroundImage?: string;
7544
+ /** Crop, tiling and image effects authored on the background blip fill. */
7545
+ backgroundImageProperties?: PptxImageProperties;
7410
7546
  backgroundGradient?: string;
7411
7547
  /**
7412
7548
  * Pattern fill on the slide background (`<a:pattFill>` inside `<p:bgPr>`).
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { $ as e, G as a, J as t, K as o, Q as i, W as r, X as n, Y as l, Z as S, a as d, at as m, c as p, ct as T, dt as v, et as P, ft as g, it as u, l as h, lt as c, mt as A, nt as C, o as N, ot as f, pt as k, q as D, rt as E, s as x, st as b, t as B, tt as I, u as O, ut as _ } from "./export-BXumpOE0.js";
1
+ import { $ as e, G as a, J as t, K as o, Q as i, W as r, X as n, Y as l, Z as S, a as d, at as m, c as p, ct as T, dt as v, et as P, ft as g, it as u, l as h, lt as c, mt as A, nt as C, o as N, ot as f, pt as k, q as D, rt as E, s as x, st as b, t as B, tt as I, u as O, ut as _ } from "./export-Cwm0F4Ug.js";
2
2
  import { i as R } from "./translator-Cvwv7iQG.js";
3
3
  import "./i18n.js";
4
4
  export {