pptx-vue-viewer 4.2.0 → 4.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.
Files changed (124) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/dist/{AiChatPanel-CMpvBPva.cjs → AiChatPanel-BIJ-bHQj.cjs} +1 -1
  3. package/dist/AiChatPanel-BIJ-bHQj.cjs.br +0 -0
  4. package/dist/AiChatPanel-BIJ-bHQj.cjs.gz +0 -0
  5. package/dist/{AiChatPanel-BAXxvQl4.js → AiChatPanel-U3EFn2Ng.js} +2 -2
  6. package/dist/AiChatPanel-U3EFn2Ng.js.br +0 -0
  7. package/dist/AiChatPanel-U3EFn2Ng.js.gz +0 -0
  8. package/dist/{dist-3uZ0g742.cjs → dist-0XJeILOd.cjs} +24804 -20069
  9. package/dist/dist-0XJeILOd.cjs.br +0 -0
  10. package/dist/dist-0XJeILOd.cjs.gz +0 -0
  11. package/dist/{dist-BgtJA5eT.js → dist-BV_7SUio.js} +29355 -24620
  12. package/dist/dist-BV_7SUio.js.br +0 -0
  13. package/dist/dist-BV_7SUio.js.gz +0 -0
  14. package/dist/gif-encoder-Bbb-HJnH.js +2 -0
  15. package/dist/gif-encoder-Bbb-HJnH.js.br +0 -0
  16. package/dist/gif-encoder-Bbb-HJnH.js.gz +0 -0
  17. package/dist/gif-encoder-CmBKDBC6.cjs +2 -0
  18. package/dist/gif-encoder-CmBKDBC6.cjs.br +0 -0
  19. package/dist/gif-encoder-CmBKDBC6.cjs.gz +0 -0
  20. package/dist/i18n/de.cjs +2 -2
  21. package/dist/i18n/de.cjs.br +0 -0
  22. package/dist/i18n/de.cjs.gz +0 -0
  23. package/dist/i18n/de.mjs +2 -2
  24. package/dist/i18n/de.mjs.br +0 -0
  25. package/dist/i18n/de.mjs.gz +0 -0
  26. package/dist/i18n/es.cjs +2 -2
  27. package/dist/i18n/es.cjs.br +0 -0
  28. package/dist/i18n/es.cjs.gz +0 -0
  29. package/dist/i18n/es.mjs +2 -2
  30. package/dist/i18n/es.mjs.br +0 -0
  31. package/dist/i18n/es.mjs.gz +0 -0
  32. package/dist/i18n/fr.cjs +2 -2
  33. package/dist/i18n/fr.cjs.br +0 -0
  34. package/dist/i18n/fr.cjs.gz +0 -0
  35. package/dist/i18n/fr.mjs +2 -2
  36. package/dist/i18n/fr.mjs.br +0 -0
  37. package/dist/i18n/fr.mjs.gz +0 -0
  38. package/dist/i18n/zh-CN.cjs +2 -2
  39. package/dist/i18n/zh-CN.cjs.br +0 -0
  40. package/dist/i18n/zh-CN.cjs.gz +0 -0
  41. package/dist/i18n/zh-CN.mjs +2 -2
  42. package/dist/i18n/zh-CN.mjs.br +0 -0
  43. package/dist/i18n/zh-CN.mjs.gz +0 -0
  44. package/dist/{i18n-BUjfZOiM.cjs → i18n-C5PLnqCs.cjs} +2 -2
  45. package/dist/i18n-C5PLnqCs.cjs.br +0 -0
  46. package/dist/i18n-C5PLnqCs.cjs.gz +0 -0
  47. package/dist/{i18n-cTdK-NvK.js → i18n-DOJnZmCW.js} +2 -2
  48. package/dist/i18n-DOJnZmCW.js.br +0 -0
  49. package/dist/i18n-DOJnZmCW.js.gz +0 -0
  50. package/dist/i18n.cjs +1 -1
  51. package/dist/i18n.cjs.br +0 -0
  52. package/dist/i18n.cjs.gz +0 -0
  53. package/dist/i18n.js +1 -1
  54. package/dist/i18n.js.br +1 -3
  55. package/dist/i18n.js.gz +0 -0
  56. package/dist/index.cjs +1 -1
  57. package/dist/index.cjs.br +0 -0
  58. package/dist/index.cjs.gz +0 -0
  59. package/dist/index.d.ts +236 -2
  60. package/dist/index.js +3 -3
  61. package/dist/index.js.br +0 -0
  62. package/dist/index.js.gz +0 -0
  63. package/dist/internals.cjs +1 -1
  64. package/dist/internals.cjs.br +0 -0
  65. package/dist/internals.cjs.gz +0 -0
  66. package/dist/internals.d.ts +305 -5
  67. package/dist/internals.js +2 -2
  68. package/dist/internals.js.br +0 -0
  69. package/dist/internals.js.gz +0 -0
  70. package/dist/pptx-vue-viewer.css +33 -12
  71. package/dist/pptx-vue-viewer.css.br +0 -0
  72. package/dist/pptx-vue-viewer.css.gz +0 -0
  73. package/dist/{useViewerSettingsDialog-2Agl6hEE.cjs → useViewerSettingsDialog-BYMmaXqc.cjs} +12150 -10925
  74. package/dist/useViewerSettingsDialog-BYMmaXqc.cjs.br +0 -0
  75. package/dist/useViewerSettingsDialog-BYMmaXqc.cjs.gz +0 -0
  76. package/dist/{useViewerSettingsDialog-csWTWDGr.js → useViewerSettingsDialog-DKWvCzGK.js} +11248 -10033
  77. package/dist/useViewerSettingsDialog-DKWvCzGK.js.br +0 -0
  78. package/dist/useViewerSettingsDialog-DKWvCzGK.js.gz +0 -0
  79. package/dist/viewer/index.cjs +1 -1
  80. package/dist/viewer/index.cjs.br +0 -0
  81. package/dist/viewer/index.cjs.gz +0 -0
  82. package/dist/viewer/index.d.ts +236 -2
  83. package/dist/viewer/index.js +3 -3
  84. package/dist/viewer/index.js.br +0 -0
  85. package/dist/viewer/index.js.gz +0 -0
  86. package/dist/{viewer-BCE1J1So.js → viewer-CDKF3LoJ.js} +10472 -10444
  87. package/dist/viewer-CDKF3LoJ.js.br +0 -0
  88. package/dist/viewer-CDKF3LoJ.js.gz +0 -0
  89. package/dist/{viewer-BF80DYuw.cjs → viewer-D4jitSRB.cjs} +578 -550
  90. package/dist/viewer-D4jitSRB.cjs.br +0 -0
  91. package/dist/viewer-D4jitSRB.cjs.gz +0 -0
  92. package/package.json +1 -1
  93. package/dist/AiChatPanel-BAXxvQl4.js.br +0 -0
  94. package/dist/AiChatPanel-BAXxvQl4.js.gz +0 -0
  95. package/dist/AiChatPanel-CMpvBPva.cjs.br +0 -0
  96. package/dist/AiChatPanel-CMpvBPva.cjs.gz +0 -0
  97. package/dist/canvas_emf-converter-CXU7lu1I.cjs +0 -1
  98. package/dist/canvas_emf-converter-CXU7lu1I.cjs.br +0 -0
  99. package/dist/canvas_emf-converter-CXU7lu1I.cjs.gz +0 -0
  100. package/dist/canvas_emf-converter-HimA9Y3J.js +0 -3
  101. package/dist/canvas_emf-converter-HimA9Y3J.js.br +0 -0
  102. package/dist/canvas_emf-converter-HimA9Y3J.js.gz +0 -0
  103. package/dist/dist-3uZ0g742.cjs.br +0 -0
  104. package/dist/dist-3uZ0g742.cjs.gz +0 -0
  105. package/dist/dist-BgtJA5eT.js.br +0 -0
  106. package/dist/dist-BgtJA5eT.js.gz +0 -0
  107. package/dist/gif-encoder-BAJa752-.js +0 -2
  108. package/dist/gif-encoder-BAJa752-.js.br +0 -0
  109. package/dist/gif-encoder-BAJa752-.js.gz +0 -0
  110. package/dist/gif-encoder-DkEWIbep.cjs +0 -2
  111. package/dist/gif-encoder-DkEWIbep.cjs.br +0 -0
  112. package/dist/gif-encoder-DkEWIbep.cjs.gz +0 -0
  113. package/dist/i18n-BUjfZOiM.cjs.br +0 -0
  114. package/dist/i18n-BUjfZOiM.cjs.gz +0 -0
  115. package/dist/i18n-cTdK-NvK.js.br +0 -0
  116. package/dist/i18n-cTdK-NvK.js.gz +0 -0
  117. package/dist/useViewerSettingsDialog-2Agl6hEE.cjs.br +0 -0
  118. package/dist/useViewerSettingsDialog-2Agl6hEE.cjs.gz +0 -0
  119. package/dist/useViewerSettingsDialog-csWTWDGr.js.br +0 -0
  120. package/dist/useViewerSettingsDialog-csWTWDGr.js.gz +0 -0
  121. package/dist/viewer-BCE1J1So.js.br +0 -0
  122. package/dist/viewer-BCE1J1So.js.gz +0 -0
  123. package/dist/viewer-BF80DYuw.cjs.br +0 -0
  124. package/dist/viewer-BF80DYuw.cjs.gz +0 -0
package/dist/index.d.ts CHANGED
@@ -472,6 +472,11 @@ declare type AnimationApplyGroup = 'entrance' | 'emphasis' | 'exit' | 'motionPat
472
472
  declare interface AnimationCondition {
473
473
  /** Event that triggers the condition. */
474
474
  event?: AnimationConditionEvent;
475
+ /**
476
+ * The media element/bookmark this condition fires for, when
477
+ * {@link event} is `onMediaBookmark`. See {@link PptxMediaBookmarkTarget}.
478
+ */
479
+ bookmarkTarget?: PptxMediaBookmarkTarget;
475
480
  /** Delay in milliseconds (from `@_delay`). "indefinite" is represented as -1. */
476
481
  delay?: number;
477
482
  /** Target time node ID reference (from `@_tn`). */
@@ -490,7 +495,7 @@ declare interface AnimationCondition {
490
495
  * These map directly to OOXML condition event attribute values
491
496
  * (ISO/IEC 29500-1 S19.5.28 CT_TLTimeCondition).
492
497
  */
493
- declare type AnimationConditionEvent = 'onBegin' | 'onEnd' | 'begin' | 'end' | 'onClick' | 'onMouseOver' | 'onMouseOut' | 'onNext' | 'onPrev' | 'onStopAudio' | 'onDblClick';
498
+ declare type AnimationConditionEvent = 'onBegin' | 'onEnd' | 'begin' | 'end' | 'onClick' | 'onMouseOver' | 'onMouseOut' | 'onNext' | 'onPrev' | 'onStopAudio' | 'onDblClick' | 'onMediaBookmark';
494
499
 
495
500
  declare interface AnimationInput {
496
501
  preset: PptxAnimationPreset;
@@ -647,6 +652,18 @@ declare interface BulletInfo {
647
652
  /** When true, `<a:buSzTx/>` was specified — inherit the bullet size from
648
653
  * the run text font size. */
649
654
  sizeInherit?: boolean;
655
+ /**
656
+ * True when this bullet resolution came from the paragraph's OWN `a:pPr`
657
+ * rather than the shape's `a:lstStyle`, an inherited placeholder, or the
658
+ * master's `a:defPPr` / `p:txStyles`. `resolveParagraphBulletInfo` walks
659
+ * that cascade and returns the first match, so without this flag a
660
+ * writer that re-emits every resolved `BulletInfo` in full pins an
661
+ * inherited bullet (e.g. a master `buFont="Arial"` / `buChar="•"`) onto
662
+ * every paragraph's own `a:pPr` the moment the slide is rewritten. The
663
+ * save path only writes the bullet group when this is `true`, mirroring
664
+ * how `paragraphProperties` gates every other per-paragraph field.
665
+ */
666
+ ownedByParagraph?: boolean;
650
667
  }
651
668
 
652
669
  /** Canvas dimensions in pixels. */
@@ -1023,6 +1040,20 @@ declare interface ContentPartInkStroke {
1023
1040
  * NAMES differ.
1024
1041
  */
1025
1042
  tiltEncoding?: 'vector' | 'azimuthAltitude';
1043
+ /**
1044
+ * Per-point timestamps (milliseconds), decoded from the source InkML
1045
+ * trace's `T` channel when it declared one.
1046
+ *
1047
+ * Absent for the overwhelming majority of real decks: PowerPoint's own
1048
+ * SaveAs output declares only `X`/`Y` and has no per-point time channel at
1049
+ * all (see `contentpart-real-ink-roundtrip.test.ts`'s fixture), so this is
1050
+ * populated only for InkML sources that genuinely author one (a captured
1051
+ * digitizer session, OneNote, a Surface Hub export). When present, ink
1052
+ * replay ("watch the ink get drawn") uses each stroke's own first/last
1053
+ * timestamp to time its reveal instead of the fixed per-stroke cascade; see
1054
+ * `pptx-viewer-shared`'s `render/ink-replay-timeline.ts`.
1055
+ */
1056
+ pointTimestamps?: number[];
1026
1057
  }
1027
1058
 
1028
1059
  /**
@@ -2378,6 +2409,14 @@ declare interface ParsedTableStyleFill {
2378
2409
  tint?: number;
2379
2410
  /** Shade value (0-100 000). */
2380
2411
  shade?: number;
2412
+ /**
2413
+ * Alpha (opacity) value (0-100 000, where 100 000 is fully opaque) from an
2414
+ * `a:alpha` child of `a:schemeClr`/`a:srgbClr`. Several built-in table
2415
+ * styles (e.g. "Light Style 1/3", "Themed Style 1/2") band their rows with
2416
+ * a partially transparent tint of the theme colour rather than a tint/shade
2417
+ * blend.
2418
+ */
2419
+ alpha?: number;
2381
2420
  /** Explicit sRGB hex colour (e.g. `#FF8800`) from `a:srgbClr`. */
2382
2421
  color?: string;
2383
2422
  /** The fill was `a:noFill`: renders transparent and clears lower layers. */
@@ -2527,6 +2566,24 @@ declare interface PicturePptxElement extends PptxElementBase, PptxShapePropertie
2527
2566
  */
2528
2567
  declare interface PlaceholderTextLevelStyle {
2529
2568
  fontFamily?: string;
2569
+ /**
2570
+ * The RAW `a:defRPr/a:latin/@typeface` string (verbatim: a theme alias
2571
+ * such as `+mj-lt`/`+mn-lt`, or a literal face name) {@link fontFamily}
2572
+ * was resolved from. Master/layout text styles are parsed once and
2573
+ * cached, so `fontFamily` is a resolved-for-display snapshot; re-emitting
2574
+ * it as the literal name on every save (the master-level analogue of
2575
+ * `colorChoiceXml` below) flattens the theme alias the moment ANYTHING
2576
+ * about the deck is rewritten, even when this level was never touched.
2577
+ * Absent when the level declares no `a:latin`.
2578
+ */
2579
+ fontTypefaceXml?: string;
2580
+ /**
2581
+ * Snapshot of {@link fontFamily} exactly as parsed, before any edit. The
2582
+ * save path diffs the live value against this: unchanged means re-emit
2583
+ * {@link fontTypefaceXml} verbatim (preserve the alias); different means
2584
+ * a genuine edit, so the new literal name is written instead.
2585
+ */
2586
+ resolvedFontFamily?: string;
2530
2587
  fontSize?: number;
2531
2588
  bold?: boolean;
2532
2589
  italic?: boolean;
@@ -2576,8 +2633,32 @@ declare interface PlaceholderTextLevelStyle {
2576
2633
  tabStops?: TextStyle['tabStops'];
2577
2634
  lineSpacing?: number;
2578
2635
  lineSpacingExactPt?: number;
2636
+ /**
2637
+ * Space before the paragraph in px, resolved from EITHER `a:spcPts`
2638
+ * (absolute) or `a:spcPct` (a percentage of this level's own `a:defRPr`
2639
+ * font size) - the OOXML source is not distinguishable from this field
2640
+ * alone. See {@link spaceBeforePercent} / {@link resolvedSpaceBefore}.
2641
+ */
2579
2642
  spaceBefore?: number;
2580
2643
  spaceAfter?: number;
2644
+ /**
2645
+ * Snapshot of {@link spaceBefore} / {@link spaceAfter} exactly as parsed.
2646
+ * Diffed the same way as {@link resolvedFontFamily}: unchanged means the
2647
+ * writer re-emits the ORIGINAL form (`a:spcPct` when
2648
+ * {@link spaceBeforePercent} / {@link spaceAfterPercent} is set); a value
2649
+ * that has since moved away from the snapshot is a genuine edit and is
2650
+ * always written as `a:spcPts`, since an editor works in absolute units.
2651
+ */
2652
+ resolvedSpaceBefore?: number;
2653
+ resolvedSpaceAfter?: number;
2654
+ /**
2655
+ * The raw `a:spcPct` fraction (e.g. `0.2` for 20%) {@link spaceBefore} /
2656
+ * {@link spaceAfter} was resolved from, when the source used percentage
2657
+ * spacing rather than `a:spcPts`. Absent when the source used `a:spcPts`
2658
+ * (or authored no spacing at all).
2659
+ */
2660
+ spaceBeforePercent?: number;
2661
+ spaceAfterPercent?: number;
2581
2662
  /** Default tab interval in CSS pixels (`a:lvlXpPr/@defTabSz`). */
2582
2663
  defaultTabSize?: number;
2583
2664
  /** Whether East Asian line-breaking rules are enabled. */
@@ -3705,6 +3786,17 @@ declare interface PptxAttributeAnimation {
3705
3786
  * IS consulted regardless of this field's value. Absent means `lin`.
3706
3787
  */
3707
3788
  calcMode?: 'discrete' | 'lin' | 'fmla';
3789
+ /**
3790
+ * `p:anim/@_p14:bounceEnd` (Office 2010 `p14` extension attribute,
3791
+ * MS-OI29500), normalized to a 0-1 fraction of this behaviour's own
3792
+ * duration. PowerPoint's Fly In "Bounce End" effect option writes this on
3793
+ * the position-ramp `p:anim` node(s): the fraction of the duration at
3794
+ * which the primary travel completes, with the remainder spent bouncing
3795
+ * and settling at the final value. Mirrored verbatim by PowerPoint onto
3796
+ * the enclosing `p:cTn/@_p14:presetBounceEnd`. Absent for every animation
3797
+ * that doesn't use this effect option (the overwhelming majority).
3798
+ */
3799
+ bounceEnd?: number;
3708
3800
  }
3709
3801
 
3710
3802
  declare interface PptxAudioCdPosition {
@@ -7375,7 +7467,12 @@ declare interface PptxHeaderFooter {
7375
7467
  hasDateTime?: boolean;
7376
7468
  dateTimeText?: string;
7377
7469
  dateTimeAuto?: boolean;
7378
- /** OOXML date format pattern (e.g. "M/d/yyyy", "dddd, MMMM dd, yyyy"). */
7470
+ /**
7471
+ * The master date placeholder's own `a:fld/@type` (e.g. "datetime2"), NOT a
7472
+ * format pattern. It is one of the predefined OOXML datetime field types
7473
+ * (`datetime1`-`datetime13`); the display pattern for each is resolved by
7474
+ * `resolveFieldDateText` in `packages/shared/src/render/text-field-substitution.ts`.
7475
+ */
7379
7476
  dateFormat?: string;
7380
7477
  hasSlideNumber?: boolean;
7381
7478
  }
@@ -7876,6 +7973,19 @@ declare interface PptxMasterTextStyles {
7876
7973
  otherStyle?: PptxTextStyleLevels;
7877
7974
  }
7878
7975
 
7976
+ /**
7977
+ * `p14:bmkTgt` (Office 2010 `p14` extension, MS-OI29500): names the specific
7978
+ * media element and bookmark an `evt="onMediaBookmark"` condition fires for.
7979
+ * `bookmarkName` matches a `p14:bmk/@_name` on that media element's own
7980
+ * `p14:bmkLst` (see `MediaBookmark.label` in `core/types/elements.ts`).
7981
+ */
7982
+ declare interface PptxMediaBookmarkTarget {
7983
+ /** `p14:bmkTgt/@_spid`: the media element's shape id. */
7984
+ shapeId: string;
7985
+ /** `p14:bmkTgt/@_bmkName`: the bookmark's name. */
7986
+ bookmarkName: string;
7987
+ }
7988
+
7879
7989
  declare type PptxMediaReferenceKind = 'audioCd' | 'wavAudioFile' | 'audioFile' | 'videoFile' | 'quickTimeFile';
7880
7990
 
7881
7991
  /**
@@ -9675,6 +9785,18 @@ declare interface PptxSmartArtLayoutDefinition {
9675
9785
  rootNode: PptxSmartArtLayoutNode;
9676
9786
  /** Original definition retained for constraint evaluation and foreign rules. */
9677
9787
  rawXml?: XmlObject;
9788
+ /**
9789
+ * The un-parsed layout-definition part text (starting at `<dgm:layoutDef>`,
9790
+ * XML declaration included). `rawXml` above loses the document order of
9791
+ * differently-named siblings (the package-wide `fast-xml-parser`
9792
+ * configuration groups children into one array per tag), which the
9793
+ * per-point DiagramML engine (`core/utils/smartart-engine/`) needs to
9794
+ * execute a `layoutNode` body's `forEach`/`choose`/`constrLst` statements
9795
+ * in their real declared sequence - see that package's `ordered-xml.ts`.
9796
+ * `undefined` when the part could not be read (matches `rawXml`'s own
9797
+ * optionality); the engine falls back to the legacy interpreter then.
9798
+ */
9799
+ rawXmlText?: string;
9678
9800
  }
9679
9801
 
9680
9802
  /** Identity and ordering metadata from DiagramML CT_LayoutNode. */
@@ -10642,6 +10764,20 @@ declare interface PptxTableData {
10642
10764
  * present when there is at least one effect.
10643
10765
  */
10644
10766
  tableEffects?: ParsedTableStyleEffect[];
10767
+ /**
10768
+ * Table-cell-context default text size in points, resolved from the
10769
+ * slide's master `p:otherStyle` (ECMA-376 §19.3.1.42 CT_TextListStyle,
10770
+ * §19.3.1.52 for `p:txStyles`). PowerPoint sizes a table cell's text off
10771
+ * this master default (commonly 18pt) whenever neither the run nor the
10772
+ * (size-less) table style provides one; without it, cell text without an
10773
+ * explicit `a:rPr@sz` fell back to the browser's own default font size
10774
+ * (16px / 12pt) instead. A render-only hint: it is not part of any
10775
+ * individual cell's parsed style and is never written back on save, so
10776
+ * resaving an unstyled cell does not bake in an explicit size that was
10777
+ * never authored. `undefined` when no master/otherStyle size resolves
10778
+ * (renderers should leave the browser default in place in that case).
10779
+ */
10780
+ defaultCellFontSize?: number;
10645
10781
  }
10646
10782
 
10647
10783
  /**
@@ -11636,6 +11772,11 @@ export declare interface RibbonProps {
11636
11772
  onOpenSettings?: () => void;
11637
11773
  onRunAccessibilityCheck: () => void;
11638
11774
  onToggleSlideSorter: () => void;
11775
+ /**
11776
+ * View > Normal: leave whichever alternate view (slide sorter, reading,
11777
+ * outline, master) is open and return to the ordinary editing canvas.
11778
+ */
11779
+ onGoToNormalView?: () => void;
11639
11780
  /** Open the windowed Reading View (NOT the fullscreen slide show). */
11640
11781
  onOpenReadingView: () => void;
11641
11782
  /** Enter PowerPoint's Outline view: the deck as editable indented text. */
@@ -12623,6 +12764,10 @@ declare interface SummaryZoomTarget extends PptxImageProperties {
12623
12764
  offsetFactorY?: number;
12624
12765
  scaleFactorX?: number;
12625
12766
  scaleFactorY?: number;
12767
+ /** This tile's own `zmPr/@returnToParent`; see {@link ZoomPptxElement.returnToParent}. */
12768
+ returnToParent?: boolean;
12769
+ /** This tile's own `zmPr/@transitionDur` in milliseconds; see {@link ZoomPptxElement.transitionDurationMs}. */
12770
+ transitionDurationMs?: number;
12626
12771
  rawXml?: XmlObject;
12627
12772
  }
12628
12773
 
@@ -12873,6 +13018,23 @@ declare interface TextSegment {
12873
13018
  fieldParagraphPropertiesXml?: XmlObject;
12874
13019
  /** Raw OMML XML node for equation segments (from `a14:m` / `m:oMathPara`). */
12875
13020
  equationXml?: Record<string, unknown>;
13021
+ /**
13022
+ * The ORIGINAL top-level paragraph child that carried this equation,
13023
+ * captured verbatim at parse time and keyed by its own tag: `{ 'a14:m':
13024
+ * ... }`, `{ 'm:oMathPara': ... }`, `{ 'm:oMath': ... }`, or `{
13025
+ * 'mc:AlternateContent': ... }` for an equation authored behind a
13026
+ * Choice/Fallback switch. `equationXml` above is the resolved math content
13027
+ * used for rendering (unwrapped one level for `a14:m`/`mc:AlternateContent`
13028
+ * sources); this field exists solely so the writer can re-emit an UNTOUCHED
13029
+ * equation byte-for-byte, Choice and Fallback both, instead of collapsing
13030
+ * it to a bare math element PowerPoint's own writer never produces.
13031
+ * `undefined` for a freshly inserted or edited equation, which the writer
13032
+ * instead reconstructs from `equationXml` (always `{ 'm:oMathPara': ... }`
13033
+ * or `{ 'm:oMath': ... }` for those cases). Any code that replaces
13034
+ * `equationXml` on an existing segment must drop this field, or the writer
13035
+ * would keep re-emitting the equation's OLD XML instead of the edit.
13036
+ */
13037
+ equationSourceXml?: Record<string, unknown>;
12876
13038
  /**
12877
13039
  * Optional equation number for numbered equations (e.g. "(1)", "(2.3)").
12878
13040
  * When present, the equation is rendered centered with the number right-aligned.
@@ -13036,6 +13198,32 @@ declare interface TextStyle {
13036
13198
  * @see element-paragraph-geometry.ts
13037
13199
  */
13038
13200
  resolvedParagraphGeometry?: TextStyle;
13201
+ /**
13202
+ * Snapshot of the ELEMENT-scope `a:bodyPr` properties (vertical anchor,
13203
+ * text direction, columns, overflow, autofit, body insets, text wrap, and
13204
+ * the boolean/rotation attributes) as the load pipeline resolved them.
13205
+ *
13206
+ * A shape's own `a:bodyPr` is parsed first, then whatever it left
13207
+ * `undefined` is back-filled from the placeholder / layout / master
13208
+ * defaults (`applyPlaceholderBodyDefaults`), and a placeholder shape with
13209
+ * no `a:bodyPr` of its own has the INHERITED one parsed as if it were its
13210
+ * own. None of those three sources is distinguishable at
13211
+ * `element.textStyle` once the cascade finishes, so a writer that
13212
+ * re-emits every defined field turns an inherited anchor, inset, autofit
13213
+ * mode or `rtlCol` into a value pinned on the slide forever (and an
13214
+ * inherited `a:normAutofit` with no scale gets written back as
13215
+ * `a:spAutoFit`, flipping AutoSize from "shrink text" to "resize shape").
13216
+ *
13217
+ * Present only on an `element.textStyle` that came from a parsed deck.
13218
+ * The save path diffs the live style against this snapshot: a field that
13219
+ * still matches is an inheritance artefact and the writer leaves the
13220
+ * underlying `a:bodyPr` attribute untouched (whatever it already is,
13221
+ * present or absent); a field that differs was authored or has since
13222
+ * been edited and is written out.
13223
+ *
13224
+ * @see element-body-properties.ts
13225
+ */
13226
+ resolvedBodyProperties?: TextStyle;
13039
13227
  fontFamily?: string;
13040
13228
  fontSize?: number;
13041
13229
  /** When true, some form of autofit is in effect; see {@link autoFitMode} for which. */
@@ -13218,6 +13406,16 @@ declare interface TextStyle {
13218
13406
  align: 'l' | 'ctr' | 'r' | 'dec';
13219
13407
  leader?: 'none' | 'dot' | 'hyphen' | 'underscore';
13220
13408
  }>;
13409
+ /**
13410
+ * True when the paragraph's own `a:pPr` authored an EMPTY `<a:tabLst/>`
13411
+ * (explicitly "no tab stops", overriding whatever the cascade would
13412
+ * otherwise supply) rather than omitting the element entirely (inherit).
13413
+ * fast-xml-parser gives a childless element as the empty string, so
13414
+ * `tabLst` and no-`tabLst` are otherwise indistinguishable once `tabStops`
13415
+ * comes back empty either way. Paragraph-scope only; not part of the
13416
+ * element-level geometry cascade.
13417
+ */
13418
+ tabStopsExplicitEmpty?: boolean;
13221
13419
  /** Body text wrapping mode from `a:bodyPr/@wrap`. */
13222
13420
  textWrap?: 'square' | 'none';
13223
13421
  /** Preset text warp type from `a:bodyPr/a:prstTxWarp`. */
@@ -13260,6 +13458,20 @@ declare interface TextStyle {
13260
13458
  * serialised back on save, so it never disturbs the round-trip typefaces.
13261
13459
  */
13262
13460
  scriptFallbackFont?: string;
13461
+ /**
13462
+ * Set alongside {@link scriptFallbackFont} when the resolved {@link fontFamily}
13463
+ * came only from the paragraph/list-style/theme CASCADE (the run's own
13464
+ * `a:rPr` authored no `a:latin`/`a:ea`/`a:cs` of its own). A run always
13465
+ * inherits SOME font this way (typically the theme's `+mn-lt`), so without
13466
+ * this flag `fontFamily` was indistinguishable from a run that genuinely
13467
+ * chose that font itself, and the renderer never applied the theme's
13468
+ * per-script override (see #83): `+mn-lt` names only the LATIN member of
13469
+ * the font scheme and was never meant to cover text in a different
13470
+ * dominant script. An explicit `a:latin`/`a:ea`/`a:cs` authored on the run
13471
+ * itself still always wins; only the cascade default yields to the
13472
+ * script-specific override.
13473
+ */
13474
+ fontFamilyIsCascadeDefault?: boolean;
13263
13475
  /** Text language from `a:rPr/@lang`. */
13264
13476
  language?: string;
13265
13477
  /** Hyperlink mouse-over target from `a:hlinkMouseOver`. */
@@ -14060,6 +14272,28 @@ declare interface ZoomPptxElement extends PptxElementBase, PptxImageProperties {
14060
14272
  summaryTargets?: SummaryZoomTarget[];
14061
14273
  /** Layout mode authored on the Summary Zoom container. */
14062
14274
  summaryLayout?: 'grid' | 'fixed';
14275
+ /**
14276
+ * `zmPr/@returnToParent` (MS-PPTX `CT_ZoomObjectProperties`, shared by all
14277
+ * three Zoom kinds): whether continuing forward from the destination slide
14278
+ * during a live show returns to this Zoom's origin slide instead of
14279
+ * advancing linearly through the deck. OOXML default is `true` when the
14280
+ * attribute is present but this codebase leaves it `undefined` when the
14281
+ * source XML omits it, so a round-trip never fabricates the attribute.
14282
+ * For `zoomType: 'summary'`, this mirrors the first tile's own value; see
14283
+ * {@link SummaryZoomTarget.returnToParent} for the per-tile value.
14284
+ */
14285
+ returnToParent?: boolean;
14286
+ /**
14287
+ * `zmPr/@transitionDur` (MS-PPTX `CT_ZoomObjectProperties`): the
14288
+ * zoom-transition length in milliseconds. PowerPoint's own writer emits a
14289
+ * unitless decimal-millisecond value for every OOXML `ST_UniversalTimeOffset`
14290
+ * this codebase has observed (see the media-trim/-fade parsers), so this
14291
+ * follows the same convention rather than the full TIMEOFFSET grammar's
14292
+ * unit suffixes. Undefined uses the destination slide's own transition.
14293
+ * For `zoomType: 'summary'`, this mirrors the first tile's own value; see
14294
+ * {@link SummaryZoomTarget.transitionDurationMs} for the per-tile value.
14295
+ */
14296
+ transitionDurationMs?: number;
14063
14297
  }
14064
14298
 
14065
14299
  export { }
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
- import { $l as a, $s as s, Al as e, Ap as o, C as l, Dp as r, Ep as i, H as t, Hu as n, Nc as p, Op as d, Ql as S, Qn as m, S as w, Si as b, Uu as u, Vl as c, Vs as C, Wl as f, Xs as v, Xt as V, Xu as g, Yt as j, Zs as x, as as A, bf as E, dl as R, dp as X, ep as k, it as D, kp as H, mf as M, nc as O, vi as P, w as Q, x as T, xd as $ } from "./useViewerSettingsDialog-csWTWDGr.js";
2
- import { A as y, E as B, M as F, T as I, a as N, c as U, i as W, j as Y, k as Z, l as h, n as q, r as z, s as G, t as J, w as K } from "./viewer-BCE1J1So.js";
3
- export { m as AUDIENCE_HASH, h as CollaborationCursors, Z as CollaborationStatusIndicator, V as ElementRenderer, G as FollowModeBar, P as PPTX_OPEN_ACCEPT, b as PRESENTATION_OPEN_EXTENSIONS, N as PowerPointViewer, U as RemoteSelectionOverlay, I as RibbonToolbar, K as SlideCanvas, j as SlideStage, A as clearAudienceContent, B as cn, C as createImageElementFromFile, v as defaultCssVars, x as defaultRadius, s as defaultThemeColors, O as describeCollaborationShellState, T as exportAllSlidesToSvg, w as exportAllSlidesToSvgBlobs, l as exportSlideToSvg, Q as exportSlideToSvgBlob, p as forgetSessionDeck, R as getSessionTabId, e as isAudienceTab, c as isLegacyBinaryPresentation, f as isSupportedPresentationFile, S as loadAudienceContent, a as loadSessionDeck, n as parseAudienceNonce, u as parsePresentationSessionId, g as presentationBaseName, y as provideViewerTheme, $ as rememberSessionDeck, t as renderToCanvas, M as restoreSessionDeck, E as savedPresentationFileName, k as storeAudienceContent, X as themeToCssVars, D as useCollaboration, J as useCollaborativeHistory, q as useCollaborativeState, z as usePresenceTracking, Y as useThemeStyle, F as useViewerTheme, W as useYjsProvider, i as vermilionDarkColors, r as vermilionDarkTheme, d as vermilionLightColors, H as vermilionLightTheme, o as vermilionRadius };
1
+ import { $l as a, Ap as s, C as e, Cd as o, Gl as r, Gu as i, H as l, Hl as t, Hs as n, Mp as p, Op as S, Pc as u, Qn as w, Qs as c, Qu as d, S as m, Sf as C, Si as b, Wu as f, Xt as j, Yt as g, Zs as v, ec as H, eu as M, fl as P, gf as Q, it as R, jl as k, jp as x, kp as A, np as E, os as G, pp as O, rc as T, vi as V, w as y, x as B } from "./useViewerSettingsDialog-DKWvCzGK.js";
2
+ import { A as D, E as F, M as I, T as W, a as X, c as Y, i as Z, j as $, k as h, l as q, n as z, r as J, s as K, t as L, w as N } from "./viewer-CDKF3LoJ.js";
3
+ export { w as AUDIENCE_HASH, q as CollaborationCursors, h as CollaborationStatusIndicator, j as ElementRenderer, K as FollowModeBar, V as PPTX_OPEN_ACCEPT, b as PRESENTATION_OPEN_EXTENSIONS, X as PowerPointViewer, Y as RemoteSelectionOverlay, W as RibbonToolbar, N as SlideCanvas, g as SlideStage, G as clearAudienceContent, F as cn, n as createImageElementFromFile, v as defaultCssVars, c as defaultRadius, H as defaultThemeColors, T as describeCollaborationShellState, B as exportAllSlidesToSvg, m as exportAllSlidesToSvgBlobs, e as exportSlideToSvg, y as exportSlideToSvgBlob, u as forgetSessionDeck, P as getSessionTabId, k as isAudienceTab, t as isLegacyBinaryPresentation, r as isSupportedPresentationFile, a as loadAudienceContent, M as loadSessionDeck, f as parseAudienceNonce, i as parsePresentationSessionId, d as presentationBaseName, D as provideViewerTheme, o as rememberSessionDeck, l as renderToCanvas, Q as restoreSessionDeck, C as savedPresentationFileName, E as storeAudienceContent, O as themeToCssVars, R as useCollaboration, L as useCollaborativeHistory, z as useCollaborativeState, J as usePresenceTracking, $ as useThemeStyle, I as useViewerTheme, Z as useYjsProvider, S as vermilionDarkColors, A as vermilionDarkTheme, s as vermilionLightColors, x as vermilionLightTheme, p as vermilionRadius };
package/dist/index.js.br CHANGED
Binary file
package/dist/index.js.gz CHANGED
Binary file
@@ -1,3 +1,3 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const e = require("./useViewerSettingsDialog-2Agl6hEE.cjs");
2
+ const e = require("./useViewerSettingsDialog-BYMmaXqc.cjs");
3
3
  exports.CINEMATIC_TRANSITION_KEYFRAMES = e.CINEMATIC_TRANSITION_KEYFRAMES, exports.DEFAULT_MAX_VERSIONS = e.DEFAULT_MAX_VERSIONS, exports.DEFAULT_MORPH_DURATION_MS = e.DEFAULT_MORPH_DURATION_MS, exports.DEFAULT_RENDERING_3D_FLAGS = e.DEFAULT_RENDERING_3D_FLAGS, exports.DEFAULT_TRANSITION_DURATION_MS = e.DEFAULT_TRANSITION_DURATION_MS, exports.EASE = e.EASE, exports.ERASER_RADIUS = e.ERASER_RADIUS, exports.FragmentedTransitionLayer = e.FragmentedTransitionLayer_default, exports.HIGHLIGHTER_OPACITY = e.HIGHLIGHTER_OPACITY, exports.HIGHLIGHTER_WIDTH = e.HIGHLIGHTER_WIDTH, exports.INSTANT = e.INSTANT, exports.MOBILE_BREAKPOINT = e.MOBILE_BREAKPOINT, exports.MOBILE_LANDSCAPE_MAX_HEIGHT = e.MOBILE_LANDSCAPE_MAX_HEIGHT, exports.MorphExtraLayers = e.MorphExtraLayers_default, exports.NUDGE_LARGE = e.NUDGE_LARGE, exports.NUDGE_SMALL = e.NUDGE_SMALL, exports.P14_TRANSITION_KEYFRAMES = e.P14_TRANSITION_KEYFRAMES, exports.P14_TRANSITION_KEYFRAMES_2 = e.P14_TRANSITION_KEYFRAMES_2, exports.P14_TRANSITION_KEYFRAMES_ALL = e.P14_TRANSITION_KEYFRAMES_ALL, exports.PEN_WIDTH = e.PEN_WIDTH, exports.PresentationTransitionOverlay = e.PresentationTransitionOverlay_default, exports.RANDOM_ELIGIBLE_TYPES = e.RANDOM_ELIGIBLE_TYPES, exports.RIBBON_ALIGN = e.RIBBON_ALIGN, exports.Rendering3DFlagsKey = e.Rendering3DFlagsKey, exports.SHORTCUT_CATALOG = e.SHORTCUT_CATALOG, exports.SHORTCUT_GROUP_LABEL_KEYS = e.SHORTCUT_GROUP_LABEL_KEYS, exports.SLIDE_TRANSITION_KEYFRAMES = e.SLIDE_TRANSITION_KEYFRAMES, exports.SLIDE_TRANSITION_KEYFRAMES_CSS = e.SLIDE_TRANSITION_KEYFRAMES_CSS, exports.SMARTART_COLOR_SCHEMES = e.SMARTART_COLOR_SCHEMES, exports.SMARTART_STYLE_OPTIONS = e.SMARTART_STYLE_OPTIONS, exports.TABLET_BREAKPOINT = e.TABLET_BREAKPOINT, exports.TRANSITION_SPEED_DURATION_MS = e.TRANSITION_SPEED_DURATION_MS, exports.TableSelectionKey = e.TableSelectionKey, exports.WHEEL_SPOKE_COUNTS = e.WHEEL_SPOKE_COUNTS, exports.buildClickGroups = e.buildClickGroups, exports.computeCellSelection = e.computeCellSelection, exports.computeDocumentStatistics = e.computeDocumentStatistics, exports.computeElapsed = e.computeElapsed, exports.countWords = e.countWords, exports.createStroke = e.createStroke, exports.eraseStrokesAtPoint = e.eraseStrokesAtPoint, exports.formatRehearseMs = e.formatRehearseMs, exports.generateCommentId = e.generateCommentId, exports.getCinematicTransitionAnimations = e.getCinematicTransitionAnimations, exports.getP14TransitionAnimations = e.getP14TransitionAnimations, exports.getSlideTransitionAnimations = e.getSlideTransitionAnimations, exports.groupShortcutCatalog = e.groupShortcutCatalog, exports.injectTableSelection = e.injectTableSelection, exports.inlineEditorRect = e.inlineEditorRect, exports.isMobileViewport = e.isMobileViewport, exports.nodeIdsInRenderOrder = e.nodeIdsInRenderOrder, exports.parseSignaturesFromBuffer = e.parseSignaturesFromBuffer, exports.provideTableSelection = e.provideTableSelection, exports.resolveDirection = e.resolveDirection, exports.resolveDirection8 = e.resolveDirection8, exports.resolveOrientation = e.resolveOrientation, exports.resolveShortcutAction = e.resolveShortcutAction, exports.resolveSlideTransition = e.resolveSlideTransition, exports.resolveTransitionDurationMs = e.resolveTransitionDurationMs, exports.resolveWheelSpokeCount = e.resolveWheelSpokeCount, exports.smartArtLayoutLabel = e.smartArtLayoutLabel, exports.textNodeIdsInRenderOrder = e.textNodeIdsInRenderOrder, exports.toShapePreset = e.toShapePreset, exports.useAccessibility = e.useAccessibility, exports.useAlignGroup = e.useAlignGroup, exports.useAnimationPlayback = e.useAnimationPlayback, exports.useAutosave = e.useAutosave, exports.useChartEditing = e.useChartEditing, exports.useCollaboration = e.useCollaboration, exports.useCollaborationWiring = e.useCollaborationWiring, exports.useColorChangeImage = e.useColorChangeImage, exports.useComments = e.useComments, exports.useCommentsWiring = e.useCommentsWiring, exports.useContextMenu = e.useContextMenu, exports.useCustomShows = e.useCustomShows, exports.useCustomShowsWiring = e.useCustomShowsWiring, exports.useDebouncedCallback = e.useDebouncedCallback, exports.useDocumentPropertiesDialog = e.useDocumentPropertiesDialog, exports.useDocumentStatistics = e.useDocumentStatistics, exports.useEditorHistory = e.useEditorHistory, exports.useEditorKeyboard = e.useEditorKeyboard, exports.useEditorOperations = e.useEditorOperations, exports.useElementDrag = e.useElementDrag, exports.useElementInsertion = e.useElementInsertion, exports.useEmbeddedFonts = e.useEmbeddedFonts, exports.useExport = e.useExport, exports.useExportProgress = e.useExportProgress, exports.useExportWiring = e.useExportWiring, exports.useFindReplace = e.useFindReplace, exports.useFontEmbedding = e.useFontEmbedding, exports.useFormatPainter = e.useFormatPainter, exports.useHeaderFooterDialog = e.useHeaderFooterDialog, exports.useInkDrawing = e.useInkDrawing, exports.useInlineEditing = e.useInlineEditing, exports.useInsertElementDialogs = e.useInsertElementDialogs, exports.useIsMobile = e.useIsMobile, exports.useKeyboardInsets = e.useKeyboardInsets, exports.useKeyboardShortcuts = e.useKeyboardShortcuts, exports.useLoadContent = e.useLoadContent, exports.useMasterViewState = e.useMasterViewState, exports.useMediaExport = e.useMediaExport, exports.useMobileChrome = e.useMobileChrome, exports.useModel3dScene = e.useModel3dScene, exports.useMorphTransitionOverlay = e.useMorphTransitionOverlay, exports.useMultiSelectOps = e.useMultiSelectOps, exports.usePasswordProtection = e.usePasswordProtection, exports.usePresentationAnnotations = e.usePresentationAnnotations, exports.usePresentationModeWiring = e.usePresentationModeWiring, exports.usePrint = e.usePrint, exports.useRehearseTimings = e.useRehearseTimings, exports.useRendering3DFlags = e.useRendering3DFlags, exports.useRibbonActions = e.useRibbonActions, exports.useRibbonProps = e.useRibbonProps, exports.useRibbonUiState = e.useRibbonUiState, exports.useSectionOperations = e.useSectionOperations, exports.useSelectionPaneWiring = e.useSelectionPaneWiring, exports.useSheetDismissDrag = e.useSheetDismissDrag, exports.useSignatureWorkflow = e.useSignatureWorkflow, exports.useSignatures = e.useSignatures, exports.useSlideMutations = e.useSlideMutations, exports.useSlideOperations = e.useSlideOperations, exports.useSlideShowSettings = e.useSlideShowSettings, exports.useSlideTemplateInsertion = e.useSlideTemplateInsertion, exports.useSmartArtEditing = e.useSmartArtEditing, exports.useSmartArtFocus = e.useSmartArtFocus, exports.useSmartArtHoverRect = e.useSmartArtHoverRect, exports.useSmartArtInlineEditState = e.useSmartArtInlineEditState, exports.useSmartArtNodeEditContext = e.useSmartArtNodeEditContext, exports.useTableCellEditingContext = e.useTableCellEditingContext, exports.useTableCellSelection = e.useTableCellSelection, exports.useThemeEditing = e.useThemeEditing, exports.useToolbarAutoHide = e.useToolbarAutoHide, exports.useToolbarVisibility = e.useToolbarVisibility, exports.useTouchGestures = e.useTouchGestures, exports.useVersionHistory = e.useVersionHistory, exports.useVersionHistoryWiring = e.useVersionHistoryWiring, exports.useViewerSettingsDialog = e.useViewerSettingsDialog;
Binary file
Binary file