pptx-vanilla-viewer 3.6.0 → 3.8.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.
@@ -1 +1 @@
1
- 'use strict';var chunkQKFFUGWO_cjs=require('./chunk-QKFFUGWO.cjs'),chunkOQDW73SM_cjs=require('./chunk-OQDW73SM.cjs');require('./chunk-B5PFHICE.cjs');Object.defineProperty(exports,"playTransitionOverlay",{enumerable:true,get:function(){return chunkQKFFUGWO_cjs.d}});Object.defineProperty(exports,"CINEMATIC_TRANSITION_KEYFRAMES",{enumerable:true,get:function(){return chunkOQDW73SM_cjs.Vh}});Object.defineProperty(exports,"DEFAULT_MORPH_DURATION_MS",{enumerable:true,get:function(){return chunkOQDW73SM_cjs.pd}});Object.defineProperty(exports,"DEFAULT_TRANSITION_DURATION_MS",{enumerable:true,get:function(){return chunkOQDW73SM_cjs.od}});Object.defineProperty(exports,"EASE",{enumerable:true,get:function(){return chunkOQDW73SM_cjs.rd}});Object.defineProperty(exports,"INSTANT",{enumerable:true,get:function(){return chunkOQDW73SM_cjs.nd}});Object.defineProperty(exports,"P14_TRANSITION_KEYFRAMES",{enumerable:true,get:function(){return chunkOQDW73SM_cjs.Rh}});Object.defineProperty(exports,"P14_TRANSITION_KEYFRAMES_2",{enumerable:true,get:function(){return chunkOQDW73SM_cjs.Sh}});Object.defineProperty(exports,"P14_TRANSITION_KEYFRAMES_ALL",{enumerable:true,get:function(){return chunkOQDW73SM_cjs.Th}});Object.defineProperty(exports,"RANDOM_ELIGIBLE_TYPES",{enumerable:true,get:function(){return chunkOQDW73SM_cjs.md}});Object.defineProperty(exports,"SLIDE_TRANSITION_KEYFRAMES",{enumerable:true,get:function(){return chunkOQDW73SM_cjs.Xh}});Object.defineProperty(exports,"SLIDE_TRANSITION_KEYFRAMES_CSS",{enumerable:true,get:function(){return chunkOQDW73SM_cjs.Yh}});Object.defineProperty(exports,"TRANSITION_SPEED_DURATION_MS",{enumerable:true,get:function(){return chunkOQDW73SM_cjs.qd}});Object.defineProperty(exports,"WHEEL_SPOKE_COUNTS",{enumerable:true,get:function(){return chunkOQDW73SM_cjs.sd}});Object.defineProperty(exports,"getCinematicTransitionAnimations",{enumerable:true,get:function(){return chunkOQDW73SM_cjs.Uh}});Object.defineProperty(exports,"getP14TransitionAnimations",{enumerable:true,get:function(){return chunkOQDW73SM_cjs.Zh}});Object.defineProperty(exports,"getSlideTransitionAnimations",{enumerable:true,get:function(){return chunkOQDW73SM_cjs._h}});Object.defineProperty(exports,"resolveDirection",{enumerable:true,get:function(){return chunkOQDW73SM_cjs.jd}});Object.defineProperty(exports,"resolveDirection8",{enumerable:true,get:function(){return chunkOQDW73SM_cjs.kd}});Object.defineProperty(exports,"resolveOrientation",{enumerable:true,get:function(){return chunkOQDW73SM_cjs.ld}});Object.defineProperty(exports,"resolveSlideTransition",{enumerable:true,get:function(){return chunkOQDW73SM_cjs.$h}});Object.defineProperty(exports,"resolveTransitionDurationMs",{enumerable:true,get:function(){return chunkOQDW73SM_cjs.ai}});Object.defineProperty(exports,"resolveWheelSpokeCount",{enumerable:true,get:function(){return chunkOQDW73SM_cjs.td}});
1
+ 'use strict';var chunkNK7KOKX2_cjs=require('./chunk-NK7KOKX2.cjs'),chunkQ4GMEOAI_cjs=require('./chunk-Q4GMEOAI.cjs');require('./chunk-B5PFHICE.cjs');Object.defineProperty(exports,"playTransitionOverlay",{enumerable:true,get:function(){return chunkNK7KOKX2_cjs.d}});Object.defineProperty(exports,"CINEMATIC_TRANSITION_KEYFRAMES",{enumerable:true,get:function(){return chunkQ4GMEOAI_cjs._h}});Object.defineProperty(exports,"DEFAULT_MORPH_DURATION_MS",{enumerable:true,get:function(){return chunkQ4GMEOAI_cjs.zd}});Object.defineProperty(exports,"DEFAULT_TRANSITION_DURATION_MS",{enumerable:true,get:function(){return chunkQ4GMEOAI_cjs.yd}});Object.defineProperty(exports,"EASE",{enumerable:true,get:function(){return chunkQ4GMEOAI_cjs.Bd}});Object.defineProperty(exports,"INSTANT",{enumerable:true,get:function(){return chunkQ4GMEOAI_cjs.xd}});Object.defineProperty(exports,"P14_TRANSITION_KEYFRAMES",{enumerable:true,get:function(){return chunkQ4GMEOAI_cjs.Wh}});Object.defineProperty(exports,"P14_TRANSITION_KEYFRAMES_2",{enumerable:true,get:function(){return chunkQ4GMEOAI_cjs.Xh}});Object.defineProperty(exports,"P14_TRANSITION_KEYFRAMES_ALL",{enumerable:true,get:function(){return chunkQ4GMEOAI_cjs.Yh}});Object.defineProperty(exports,"RANDOM_ELIGIBLE_TYPES",{enumerable:true,get:function(){return chunkQ4GMEOAI_cjs.wd}});Object.defineProperty(exports,"SLIDE_TRANSITION_KEYFRAMES",{enumerable:true,get:function(){return chunkQ4GMEOAI_cjs.ai}});Object.defineProperty(exports,"SLIDE_TRANSITION_KEYFRAMES_CSS",{enumerable:true,get:function(){return chunkQ4GMEOAI_cjs.bi}});Object.defineProperty(exports,"TRANSITION_SPEED_DURATION_MS",{enumerable:true,get:function(){return chunkQ4GMEOAI_cjs.Ad}});Object.defineProperty(exports,"WHEEL_SPOKE_COUNTS",{enumerable:true,get:function(){return chunkQ4GMEOAI_cjs.Cd}});Object.defineProperty(exports,"getCinematicTransitionAnimations",{enumerable:true,get:function(){return chunkQ4GMEOAI_cjs.Zh}});Object.defineProperty(exports,"getP14TransitionAnimations",{enumerable:true,get:function(){return chunkQ4GMEOAI_cjs.ci}});Object.defineProperty(exports,"getSlideTransitionAnimations",{enumerable:true,get:function(){return chunkQ4GMEOAI_cjs.di}});Object.defineProperty(exports,"resolveDirection",{enumerable:true,get:function(){return chunkQ4GMEOAI_cjs.td}});Object.defineProperty(exports,"resolveDirection8",{enumerable:true,get:function(){return chunkQ4GMEOAI_cjs.ud}});Object.defineProperty(exports,"resolveOrientation",{enumerable:true,get:function(){return chunkQ4GMEOAI_cjs.vd}});Object.defineProperty(exports,"resolveSlideTransition",{enumerable:true,get:function(){return chunkQ4GMEOAI_cjs.ei}});Object.defineProperty(exports,"resolveTransitionDurationMs",{enumerable:true,get:function(){return chunkQ4GMEOAI_cjs.fi}});Object.defineProperty(exports,"resolveWheelSpokeCount",{enumerable:true,get:function(){return chunkQ4GMEOAI_cjs.Dd}});
@@ -1,2 +1,2 @@
1
- import { A as DEFAULT_TRANSITION_DURATION_MS, Et as ResolvedDirection8, Fn as resolveOrientation, G as INSTANT, Gt as TRANSITION_SPEED_DURATION_MS, Ht as SlideTransitionAnimations, In as resolveSlideTransition, Ln as resolveTransitionDurationMs, Mt as SLIDE_TRANSITION_KEYFRAMES_CSS, Nn as resolveDirection, Pn as resolveDirection8, Rn as resolveWheelSpokeCount, Sn as getP14TransitionAnimations, Tt as ResolvedDirection, bt as RANDOM_ELIGIBLE_TYPES, dt as P14_TRANSITION_KEYFRAMES_ALL, j as EASE, jt as SLIDE_TRANSITION_KEYFRAMES, k as DEFAULT_MORPH_DURATION_MS, lt as P14_TRANSITION_KEYFRAMES, mn as WHEEL_SPOKE_COUNTS, n as playTransitionOverlay, p as CINEMATIC_TRANSITION_KEYFRAMES, t as TransitionOverlayParams, ut as P14_TRANSITION_KEYFRAMES_2, wn as getSlideTransitionAnimations, xn as getCinematicTransitionAnimations } from "./transition-overlay-C2lOs9rM.js";
1
+ import { Bn as resolveTransitionDurationMs, Ct as RANDOM_ELIGIBLE_TYPES, Dn as getSlideTransitionAnimations, Ft as SLIDE_TRANSITION_KEYFRAMES_CSS, Gt as SlideTransitionAnimations, In as resolveDirection, J as INSTANT, Jt as TRANSITION_SPEED_DURATION_MS, Ln as resolveDirection8, M as DEFAULT_TRANSITION_DURATION_MS, N as EASE, Ot as ResolvedDirection, Pt as SLIDE_TRANSITION_KEYFRAMES, Rn as resolveOrientation, Tn as getP14TransitionAnimations, Vn as resolveWheelSpokeCount, _n as WHEEL_SPOKE_COUNTS, ft as P14_TRANSITION_KEYFRAMES, j as DEFAULT_MORPH_DURATION_MS, kt as ResolvedDirection8, mt as P14_TRANSITION_KEYFRAMES_ALL, n as playTransitionOverlay, p as CINEMATIC_TRANSITION_KEYFRAMES, pt as P14_TRANSITION_KEYFRAMES_2, t as TransitionOverlayParams, wn as getCinematicTransitionAnimations, zn as resolveSlideTransition } from "./transition-overlay-DB7RDVkV.js";
2
2
  export { CINEMATIC_TRANSITION_KEYFRAMES, DEFAULT_MORPH_DURATION_MS, DEFAULT_TRANSITION_DURATION_MS, EASE, INSTANT, P14_TRANSITION_KEYFRAMES, P14_TRANSITION_KEYFRAMES_2, P14_TRANSITION_KEYFRAMES_ALL, RANDOM_ELIGIBLE_TYPES, type ResolvedDirection, type ResolvedDirection8, SLIDE_TRANSITION_KEYFRAMES, SLIDE_TRANSITION_KEYFRAMES_CSS, type SlideTransitionAnimations, TRANSITION_SPEED_DURATION_MS, type TransitionOverlayParams, WHEEL_SPOKE_COUNTS, getCinematicTransitionAnimations, getP14TransitionAnimations, getSlideTransitionAnimations, playTransitionOverlay, resolveDirection, resolveDirection8, resolveOrientation, resolveSlideTransition, resolveTransitionDurationMs, resolveWheelSpokeCount };
package/dist/internals.js CHANGED
@@ -1 +1 @@
1
- export{d as playTransitionOverlay}from'./chunk-6FHDGBUS.js';export{Vh as CINEMATIC_TRANSITION_KEYFRAMES,pd as DEFAULT_MORPH_DURATION_MS,od as DEFAULT_TRANSITION_DURATION_MS,rd as EASE,nd as INSTANT,Rh as P14_TRANSITION_KEYFRAMES,Sh as P14_TRANSITION_KEYFRAMES_2,Th as P14_TRANSITION_KEYFRAMES_ALL,md as RANDOM_ELIGIBLE_TYPES,Xh as SLIDE_TRANSITION_KEYFRAMES,Yh as SLIDE_TRANSITION_KEYFRAMES_CSS,qd as TRANSITION_SPEED_DURATION_MS,sd as WHEEL_SPOKE_COUNTS,Uh as getCinematicTransitionAnimations,Zh as getP14TransitionAnimations,_h as getSlideTransitionAnimations,jd as resolveDirection,kd as resolveDirection8,ld as resolveOrientation,$h as resolveSlideTransition,ai as resolveTransitionDurationMs,td as resolveWheelSpokeCount}from'./chunk-F3LDPYKE.js';import'./chunk-62D2TNHX.js';
1
+ export{d as playTransitionOverlay}from'./chunk-DO3P32RM.js';export{_h as CINEMATIC_TRANSITION_KEYFRAMES,zd as DEFAULT_MORPH_DURATION_MS,yd as DEFAULT_TRANSITION_DURATION_MS,Bd as EASE,xd as INSTANT,Wh as P14_TRANSITION_KEYFRAMES,Xh as P14_TRANSITION_KEYFRAMES_2,Yh as P14_TRANSITION_KEYFRAMES_ALL,wd as RANDOM_ELIGIBLE_TYPES,ai as SLIDE_TRANSITION_KEYFRAMES,bi as SLIDE_TRANSITION_KEYFRAMES_CSS,Ad as TRANSITION_SPEED_DURATION_MS,Cd as WHEEL_SPOKE_COUNTS,Zh as getCinematicTransitionAnimations,ci as getP14TransitionAnimations,di as getSlideTransitionAnimations,td as resolveDirection,ud as resolveDirection8,vd as resolveOrientation,ei as resolveSlideTransition,fi as resolveTransitionDurationMs,Dd as resolveWheelSpokeCount}from'./chunk-DXLLCHZP.js';import'./chunk-62D2TNHX.js';
@@ -2,7 +2,7 @@ import "fast-xml-parser";
2
2
  import "jszip";
3
3
  import { Doc } from "yjs";
4
4
  import "opentype.js";
5
- //#region ../core/dist/text-operations-Ceqe6q6P.d.ts
5
+ //#region ../core/dist/text-operations-CDPmF5Pl.d.ts
6
6
  //#region src/core/types/actions.d.ts
7
7
  /**
8
8
  * Action types: hyperlinks, slide jumps, macros, and action buttons.
@@ -1362,6 +1362,27 @@ interface ShapeStyle {
1362
1362
  * `authored-shape-style.ts`'s `effectIsPurelyStyleMatrix`.
1363
1363
  */
1364
1364
  inheritedEffectStyle?: ShapeStyle;
1365
+ /**
1366
+ * Set by a style-matrix pick (the Shape Styles gallery): the shape's own
1367
+ * `spPr` fill, outline and effects were replaced by `<p:style>`, so the
1368
+ * writer clears whatever the retained `spPr` still authored before it
1369
+ * writes the (now reference-owned) style. Never parsed; editor state only.
1370
+ */
1371
+ styleMatrixReset?: boolean;
1372
+ }
1373
+ /**
1374
+ * The result of resolving a `<p:style>` block against the loaded theme.
1375
+ *
1376
+ * `shapeStyle` is exactly what the load pipeline would have produced for a
1377
+ * shape whose `spPr` authors nothing and whose `<p:style>` is `styleXml`:
1378
+ * the flat fill/outline/effect values a renderer needs, the reference indices
1379
+ * and colours the writer re-emits, and the inheritance baselines that tell the
1380
+ * writer to leave `spPr` empty while the flat values still agree with them.
1381
+ */
1382
+ interface ResolvedStyleMatrix {
1383
+ shapeStyle: ShapeStyle;
1384
+ /** The text colour `<a:fontRef>` names, resolved to hex. */
1385
+ fontColor?: string;
1365
1386
  }
1366
1387
  //#endregion
1367
1388
  //#region src/core/types/text.d.ts
@@ -1550,8 +1571,16 @@ interface TextStyle {
1550
1571
  textOutlineWidth?: number;
1551
1572
  /** Text outline colour as hex string (`a:rPr > a:ln > a:solidFill`). */
1552
1573
  textOutlineColor?: string;
1574
+ /** Text outline dash preset (`a:rPr > a:ln > a:prstDash/@val`), e.g. `dash`; absent for solid. */
1575
+ textOutlineDash?: string;
1553
1576
  /** When true, the text body has no fill (`a:rPr > a:noFill`), producing hollow/outline-only text. */
1554
1577
  textFillNone?: boolean;
1578
+ /**
1579
+ * When true, the run authored an EMPTY `<a:effectLst/>`: an explicit "no
1580
+ * effects" override that blocks an inherited shadow or glow. Kept so a
1581
+ * rewrite re-emits it instead of letting the inherited effect return.
1582
+ */
1583
+ textEffectsExplicitNone?: boolean;
1555
1584
  /** Superscript/subscript baseline shift as percentage (`a:rPr/@baseline`). Positive = super, negative = sub. */
1556
1585
  baseline?: number;
1557
1586
  /** Character spacing in hundredths of a point (`a:rPr/@spc`). */
@@ -1585,6 +1614,25 @@ interface TextStyle {
1585
1614
  textFillPatternForeground?: string;
1586
1615
  /** Text-level pattern background colour. */
1587
1616
  textFillPatternBackground?: string;
1617
+ /**
1618
+ * Raw `a:rPr > a:blipFill` XML, preserved verbatim for round-trip
1619
+ * serialization AND as the input to the image resolution pass that fills
1620
+ * in {@link textFillBlipUrl} (parsing a run's fill happens synchronously,
1621
+ * with no zip/relationship access at that point; resolving the blip to a
1622
+ * displayable URL needs both, so it happens in a later async pass over
1623
+ * the slide's parsed elements, mirroring how a shape's OWN image fill is
1624
+ * resolved). A picture-filled text run (`a:rPr > a:blipFill`) was
1625
+ * documented as handled ("Handles gradient fills, pattern fills, and
1626
+ * image fills on text runs") but never actually parsed, so it silently
1627
+ * fell through to the run's plain `color` and rendered solid black
1628
+ * (COM-verified: `audit-text` slide 13's "PICTURE FILL" run shows the
1629
+ * fill image through the glyphs in PowerPoint).
1630
+ */
1631
+ textFillBlipXml?: XmlObject;
1632
+ /** Resolved displayable URL for {@link textFillBlipXml}, or the archive-relative path when unresolved (lazy decode). */
1633
+ textFillBlipUrl?: string;
1634
+ /** Tiling mode for {@link textFillBlipUrl} (`a:blipFill/a:tile` present -> 'tile', else 'stretch'). */
1635
+ textFillBlipMode?: 'stretch' | 'tile';
1588
1636
  hyperlink?: string;
1589
1637
  /** Relationship ID for the hyperlink (`a:hlinkClick/@r:id`) — preserved for round-trip serialization. */
1590
1638
  hyperlinkRId?: string;
@@ -1670,6 +1718,13 @@ interface TextStyle {
1670
1718
  position: number;
1671
1719
  align: 'l' | 'ctr' | 'r' | 'dec';
1672
1720
  leader?: 'none' | 'dot' | 'hyphen' | 'underscore';
1721
+ /**
1722
+ * True when the source spelled out the schema-default `@algn="l"`, so the
1723
+ * writer re-emits it instead of treating it as an omitted default.
1724
+ */
1725
+ alignAuthored?: boolean;
1726
+ /** True when the source spelled out the schema-default `@leader="none"`. */
1727
+ leaderAuthored?: boolean;
1673
1728
  }>;
1674
1729
  /**
1675
1730
  * True when the paragraph's own `a:pPr` authored an EMPTY `<a:tabLst/>`
@@ -2033,6 +2088,19 @@ interface TextStyle {
2033
2088
  * convention used for {@link bulletInfo} / {@link endParaRunProperties}).
2034
2089
  */
2035
2090
  paragraphDefaultRunPropertiesXml?: XmlObject;
2091
+ /**
2092
+ * The bullet colour / size / typeface children (`a:buClrTx`, `a:buClr`,
2093
+ * `a:buSzTx`, `a:buSzPct`, `a:buSzPts`, `a:buFontTx`, `a:buFont`) a
2094
+ * paragraph authored in its own `<a:pPr>` WITHOUT a bullet type
2095
+ * (`a:buNone` / `a:buChar` / `a:buAutoNum` / `a:buBlip`), captured
2096
+ * verbatim in source order. Such a paragraph restyles an inherited bullet
2097
+ * rather than declaring one, so its {@link BulletInfo} resolves from the
2098
+ * cascade and is (correctly) not written back; without this capture the
2099
+ * paragraph's own override vanished on every rewrite.
2100
+ *
2101
+ * Only meaningful on a paragraph's own authored properties.
2102
+ */
2103
+ paragraphBulletPropertiesXml?: XmlObject;
2036
2104
  }
2037
2105
  /**
2038
2106
  * Structured bullet metadata attached to the first {@link TextSegment}
@@ -2289,6 +2357,22 @@ interface TextSegment {
2289
2357
  * Used by the renderer to apply font family, colour, etc. to the `<rt>` element.
2290
2358
  */
2291
2359
  rubyStyle?: TextStyle;
2360
+ /**
2361
+ * The parsed `a:rubyPr` node, kept verbatim so its attributes (`hps`,
2362
+ * `hpsRaise`, `hpsBaseText`, `lid`, ...) round-trip exactly; only an
2363
+ * edited {@link rubyAlignment} is written over it on save.
2364
+ */
2365
+ rubyPropertiesXml?: XmlObject;
2366
+ /**
2367
+ * What each of a ruby run's two base-side `a:rPr`s authored on its own:
2368
+ * `outer` is the containing `a:r`'s, `base` the `a:rubyBase` run's. The
2369
+ * flat {@link style} merges both for rendering; these let the writer give
2370
+ * each `a:rPr` back only its own properties (plus any later edit).
2371
+ */
2372
+ rubyRunAuthoredStyles?: {
2373
+ outer?: TextStyle;
2374
+ base?: TextStyle;
2375
+ };
2292
2376
  }
2293
2377
  //#endregion
2294
2378
  //#region src/core/types/element-base.d.ts
@@ -3301,6 +3385,26 @@ type PptxChartMarkerSymbol = 'circle' | 'dash' | 'diamond' | 'dot' | 'none' | 'p
3301
3385
  */
3302
3386
  type PptxChartScatterStyle = 'none' | 'line' | 'lineMarker' | 'marker' | 'smooth' | 'smoothMarker';
3303
3387
  /** Shape properties extracted from c:spPr for chart formatting. */
3388
+ /**
3389
+ * A render-ready gradient fill from a chart `c:spPr/a:gradFill` (chart area,
3390
+ * plot area or series). Positions are 0..100; a linear gradient's `angle` is
3391
+ * in degrees clockwise from left-to-right (`a:lin/@ang`); a radial (`a:path`)
3392
+ * gradient centres on `focalPoint` (0..1 fractions of the box), the middle
3393
+ * when absent.
3394
+ */
3395
+ interface PptxChartGradientFill {
3396
+ type: 'linear' | 'radial';
3397
+ stops: Array<{
3398
+ color: string;
3399
+ position: number;
3400
+ opacity?: number;
3401
+ }>;
3402
+ angle?: number;
3403
+ focalPoint?: {
3404
+ x: number;
3405
+ y: number;
3406
+ };
3407
+ }
3304
3408
  interface PptxChartShapeProps {
3305
3409
  fillColor?: string;
3306
3410
  strokeColor?: string;
@@ -3626,6 +3730,12 @@ interface PptxChartSeries {
3626
3730
  */
3627
3731
  idx?: number;
3628
3732
  values: number[];
3733
+ /**
3734
+ * Series gradient fill (`c:ser/c:spPr/a:gradFill`), painted on every mark
3735
+ * of the series that has no per-point override. Render-only: the series'
3736
+ * own `c:spPr` round-trips untouched.
3737
+ */
3738
+ gradientFill?: PptxChartGradientFill;
3629
3739
  /**
3630
3740
  * Per-series x values from `c:ser/c:xVal` (scatter and bubble series only).
3631
3741
  *
@@ -3800,6 +3910,12 @@ interface PptxChartFilteredSeries {
3800
3910
  * and `c:dLblPos`.
3801
3911
  */
3802
3912
  interface PptxChartDataLabelOptions {
3913
+ /** Label box fill/outline (`c:dLbls/c:spPr`), see `chart-data-label-box.ts`. */
3914
+ labelShape?: PptxChartShapeProps;
3915
+ /** Callout geometry of the label box (`c15:spPr/a:prstGeom/@prst`, e.g. `wedgeRectCallout`). */
3916
+ calloutShape?: string;
3917
+ /** The chart15 extension's `c15:showLeaderLines`, which wins for a moved label's leader line. */
3918
+ extLeaderLines?: boolean;
3803
3919
  /** Show the numeric value (`c:showVal`). */
3804
3920
  showValue?: boolean;
3805
3921
  /** Show the category name (`c:showCatName`). */
@@ -3925,6 +4041,10 @@ interface PptxChartStyle {
3925
4041
  chartAreaFill?: string;
3926
4042
  /** Plot-area fill from `c:plotArea/c:spPr`. See {@link chartAreaFill}. */
3927
4043
  plotAreaFill?: string;
4044
+ /** Chart-area gradient (`c:chartSpace/c:spPr/a:gradFill`); wins over {@link chartAreaFill}. */
4045
+ chartAreaGradient?: PptxChartGradientFill;
4046
+ /** Plot-area gradient (`c:plotArea/c:spPr/a:gradFill`); wins over {@link plotAreaFill}. */
4047
+ plotAreaGradient?: PptxChartGradientFill;
3928
4048
  /** Whether data labels are shown. */
3929
4049
  hasDataLabels?: boolean;
3930
4050
  /** Chart-level data-label content/position options (when `hasDataLabels`). */
@@ -4164,6 +4284,14 @@ interface PptxChartData {
4164
4284
  style?: PptxChartStyle;
4165
4285
  /** Grouping mode for bar/area/line charts: 'clustered' | 'stacked' | 'percentStacked' */
4166
4286
  grouping?: 'clustered' | 'stacked' | 'percentStacked';
4287
+ /**
4288
+ * The source `c:grouping` was `standard`, which {@link grouping} folds into
4289
+ * `'clustered'` (a 2D bar chart draws the two the same). A 3D chart draws
4290
+ * `standard` differently: each series on its own depth row. The writer
4291
+ * emits `standard` again while `grouping` is still `'clustered'`, so the
4292
+ * chart round-trips unchanged.
4293
+ */
4294
+ groupingStandard?: boolean;
4167
4295
  /**
4168
4296
  * Whether the first (or only) series varies its point colours
4169
4297
  * (`c:varyColors/@val`). Pie/doughnut default this on; single-series
@@ -5561,6 +5689,14 @@ interface PptxSmartArtNode {
5561
5689
  * quick-style variation) applied to every other node.
5562
5690
  */
5563
5691
  coherent3DOff?: boolean;
5692
+ /**
5693
+ * The layout variables PowerPoint recorded for each presentation node
5694
+ * this point drives (`dgm:prSet/@presName` -> `dgm:presLayoutVars`
5695
+ * variable -> `@val`), e.g. `{ hierRoot1: { hierBranch: 'l' } }` for an
5696
+ * org-chart manager set to "Left Hanging". Read-only: the presentation
5697
+ * points themselves round-trip verbatim.
5698
+ */
5699
+ presLayoutVarsByName?: Record<string, Record<string, string>>;
5564
5700
  /**
5565
5701
  * Per-run text + run-properties for the node's first paragraph, captured at
5566
5702
  * parse time. When the joined run text still equals {@link text} (the node
@@ -5630,6 +5766,16 @@ interface PptxSmartArtQuickStyleLabel {
5630
5766
  name: string;
5631
5767
  /** Theme-resolved `dgm:style` refs for this label's role, when available. */
5632
5768
  resolvedStyle?: PptxSmartArtResolvedStyleRef;
5769
+ /**
5770
+ * The label's own `dgm:scene3d` (per-shape camera + light rig). PowerPoint
5771
+ * copies it onto a shape's cached `a:scene3d` unless it is the default
5772
+ * front camera with a `threePt` light (see `applySmartArtQuickStyle3d`).
5773
+ */
5774
+ scene3d?: Pptx3DScene;
5775
+ /** The label's own `dgm:sp3d` (bevel / extrusion / contour / material); absent when empty. */
5776
+ shape3d?: Pptx3DShape;
5777
+ /** The label's `dgm:txPr/a:sp3d` label-text extrusion (Bird's Eye Scene). */
5778
+ text3d?: Text3DStyle;
5633
5779
  }
5634
5780
  /** CT_CTStyleLabel metadata from a color-transform definition. */
5635
5781
  interface PptxSmartArtColorStyleLabel {
@@ -5697,9 +5843,10 @@ interface PptxSmartArtQuickStyle extends PptxSmartArtDefinitionMetadata {
5697
5843
  * for the "Scene" quick styles (Brick, Flat, Metallic, Sunset, Bird's Eye
5698
5844
  * Scene). One camera renders the whole diagram; per-shape `a:scene3d` is
5699
5845
  * absent for those styles (see `PptxSmartArtDrawingShape.scene3d`). Each
5700
- * `dgm:styleLbl` also carries its own per-label `dgm:scene3d`/`dgm:sp3d`,
5701
- * but PowerPoint bakes those fully resolved onto each cached shape's own
5702
- * `dsp:spPr/a:sp3d`, so only the diagram-level scene is exposed here.
5846
+ * `dgm:styleLbl` also carries its own per-label `dgm:scene3d`/`dgm:sp3d`
5847
+ * ({@link PptxSmartArtQuickStyleLabel.scene3d} / `shape3d` / `text3d`),
5848
+ * which PowerPoint bakes onto each cached shape; they are re-applied when a
5849
+ * structural edit regenerates the shapes.
5703
5850
  */
5704
5851
  scene3d?: Pptx3DScene;
5705
5852
  }
@@ -5830,6 +5977,11 @@ interface PptxSmartArtDrawingShape extends PptxCustomPathProperties {
5830
5977
  fillNone?: boolean;
5831
5978
  /** Solid fill colour (hex). */
5832
5979
  fillColor?: string;
5980
+ /**
5981
+ * Opacity (0..1) of the solid fill, from the colour's `a:alpha` (Basic Venn
5982
+ * paints its circles at 50% so overlaps blend). Absent when opaque.
5983
+ */
5984
+ fillOpacity?: number;
5833
5985
  /**
5834
5986
  * Gradient fill stops when the cached shape uses `a:gradFill`. Positions are
5835
5987
  * 0..100 (percent). Renderers emit an SVG/CSS gradient instead of a flat box.
@@ -7803,7 +7955,15 @@ type PptxAnimationTimingCurve = 'ease' | 'ease-in' | 'ease-out' | 'linear';
7803
7955
  /** Repeat mode for animations. */
7804
7956
  type PptxAnimationRepeatMode = 'untilNextClick' | 'untilEndOfSlide';
7805
7957
  /** Animation trigger type from OOXML `p:cTn`. */
7806
- type PptxAnimationTrigger = 'onClick' | 'onShapeClick' | 'onHover' | 'afterPrevious' | 'withPrevious' | 'afterDelay';
7958
+ type PptxAnimationTrigger = 'onClick' | 'onShapeClick' | 'onHover' | 'afterPrevious' | 'withPrevious' | 'afterDelay' |
7959
+ /**
7960
+ * Starts when a media element's playback reaches a named bookmark
7961
+ * (PowerPoint's "Trigger > On Bookmark"). The media element is
7962
+ * {@link PptxElementAnimation.triggerShapeId} and the bookmark
7963
+ * {@link PptxElementAnimation.triggerBookmark}; saved as an interactive
7964
+ * sequence gated on `p:cond evt="onMediaBookmark"` with a `p14:bmkTgt`.
7965
+ */
7966
+ 'onMediaBookmark';
7807
7967
  /**
7808
7968
  * Native animation kind. The historic shape-targeted preset animations are
7809
7969
  * implicitly the default kind (`undefined`). Media animations (`p:audio`,
@@ -7956,8 +8116,13 @@ interface PptxNativeAnimation {
7956
8116
  target?: PptxAnimationTarget;
7957
8117
  /** Trigger type. */
7958
8118
  trigger?: PptxAnimationTrigger;
7959
- /** Shape ID that triggers this animation when clicked (interactive sequence). */
8119
+ /**
8120
+ * Shape ID that triggers this animation: the clicked shape of an
8121
+ * interactive sequence, or the media element of an `onMediaBookmark` one.
8122
+ */
7960
8123
  triggerShapeId?: string;
8124
+ /** Bookmark name an `onMediaBookmark` interactive sequence waits for. */
8125
+ triggerBookmark?: string;
7961
8126
  /** Whether this effect belongs to an OOXML `interactiveSeq`. */
7962
8127
  interactiveSequence?: boolean;
7963
8128
  /** Whether `p:endSync/p:rtn[@val="all"]` makes that sequence replayable. */
@@ -8456,12 +8621,15 @@ interface PptxAttributeAnimation {
8456
8621
  /**
8457
8622
  * `p:anim/@_p14:bounceEnd` (Office 2010 `p14` extension attribute,
8458
8623
  * MS-OI29500), normalized to a 0-1 fraction of this behaviour's own
8459
- * duration. PowerPoint's Fly In "Bounce End" effect option writes this on
8460
- * the position-ramp `p:anim` node(s): the fraction of the duration at
8461
- * which the primary travel completes, with the remainder spent bouncing
8462
- * and settling at the final value. Mirrored verbatim by PowerPoint onto
8463
- * the enclosing `p:cTn/@_p14:presetBounceEnd`. Absent for every animation
8464
- * that doesn't use this effect option (the overwhelming majority).
8624
+ * duration. PowerPoint's "Bounce End" effect option (COM:
8625
+ * `Effect.Timing.BounceEnd` + `BounceEndIntensity`) writes this on the
8626
+ * position-ramp `p:anim` node(s): the share of the duration spent
8627
+ * BOUNCING at the end. Measured from PowerPoint's own CreateVideo frames,
8628
+ * the travel completes at `1 - bounceEnd` and the rest is a damped
8629
+ * oscillation about the final value (see shared's `animation-bounce-end`).
8630
+ * Mirrored verbatim by PowerPoint onto the enclosing
8631
+ * `p:cTn/@_p14:presetBounceEnd`. Absent for every animation that doesn't
8632
+ * use this effect option (the overwhelming majority).
8465
8633
  */
8466
8634
  bounceEnd?: number;
8467
8635
  }
@@ -8639,9 +8807,24 @@ interface PptxElementAnimation {
8639
8807
  durationMs?: number;
8640
8808
  delayMs?: number;
8641
8809
  order?: number;
8810
+ /**
8811
+ * The {@link order} the loader derived from the slide's `p:timing` tree for
8812
+ * an entry whose `pptx:editorMeta` record authored no `@order`. The tree
8813
+ * already expresses that position (and every load re-derives it), so the
8814
+ * writer omits `@order` while `order` still equals this value; a reorder
8815
+ * changes `order` and the attribute is written again. Load-time bookkeeping
8816
+ * only; never set it by hand.
8817
+ */
8818
+ orderFromTimeline?: number;
8642
8819
  trigger?: PptxAnimationTrigger;
8643
- /** Shape ID that triggers this animation when clicked (interactive sequence). */
8820
+ /**
8821
+ * Shape ID that triggers this animation: the shape clicked for
8822
+ * `onShapeClick`, or the media element whose bookmark fires it for
8823
+ * `onMediaBookmark`.
8824
+ */
8644
8825
  triggerShapeId?: string;
8826
+ /** Bookmark name (`p14:bmk/@name`) an `onMediaBookmark` trigger waits for. */
8827
+ triggerBookmark?: string;
8645
8828
  timingCurve?: PptxAnimationTimingCurve;
8646
8829
  repeatCount?: number;
8647
8830
  repeatMode?: PptxAnimationRepeatMode;
@@ -10407,7 +10590,7 @@ interface PptxEmbeddedFont {
10407
10590
  originalPartBytes?: Uint8Array;
10408
10591
  }
10409
10592
  //#endregion
10410
- //#region ../core/dist/index-CRVpXD8D.d.ts
10593
+ //#region ../core/dist/index-Dzh1gMIm.d.ts
10411
10594
  //#region src/core/types/theme-presets.d.ts
10412
10595
  /**
10413
10596
  * A complete theme preset that can be applied to a presentation.
@@ -11218,6 +11401,8 @@ interface IPptxHandlerRuntime {
11218
11401
  updateThemeColorScheme(colorScheme: PptxThemeColorScheme): Promise<void>;
11219
11402
  updateThemeFontScheme(fontScheme: PptxThemeFontScheme): Promise<void>;
11220
11403
  updateThemeName(name: string): Promise<void>;
11404
+ /** Resolve a `<p:style>` node against the loaded theme (see PptxHandlerRuntimeStyleMatrixResolve). */
11405
+ resolveStyleMatrixReferences(styleXml: XmlObject): ResolvedStyleMatrix;
11221
11406
  applyTheme(colorScheme: PptxThemeColorScheme, fontScheme: PptxThemeFontScheme, themeName?: string): Promise<void>;
11222
11407
  load(data: ArrayBuffer, options?: PptxHandlerLoadOptions): Promise<PptxData>;
11223
11408
  getChartDataForGraphicFrame(slidePath: string, graphicFrame: XmlObject | undefined): Promise<PptxChartData | undefined>;
@@ -11513,6 +11698,14 @@ declare class PptxHandlerCore {
11513
11698
  * @param name - New display name for the theme.
11514
11699
  */
11515
11700
  updateThemeName(name: string): Promise<void>;
11701
+ /**
11702
+ * Resolve a `<p:style>` block (`a:lnRef` / `a:fillRef` / `a:effectRef` /
11703
+ * `a:fontRef`) against the loaded theme, exactly as the load path would for
11704
+ * a shape whose `spPr` authors nothing. Apply the returned `shapeStyle` to a
11705
+ * shape and it renders like PowerPoint's Shape Styles entry and saves as a
11706
+ * bare `<p:style>` with an empty `spPr`, which is what PowerPoint writes.
11707
+ */
11708
+ resolveStyleMatrixReferences(styleXml: XmlObject): ResolvedStyleMatrix;
11516
11709
  /**
11517
11710
  * Apply a complete theme in one call (colour scheme + font scheme + optional name).
11518
11711
  *
@@ -11910,6 +12103,8 @@ interface AccessibilityIssue {
11910
12103
  message: string;
11911
12104
  suggestion: string;
11912
12105
  }
12106
+ /** Supported merge shape operations (matching PowerPoint's Merge Shapes menu). */
12107
+ type MergeShapeOperation = 'union' | 'intersect' | 'subtract' | 'fragment' | 'combine';
11913
12108
  //#endregion
11914
12109
  //#region ../shared/dist/index-BbHsvey8.d.ts
11915
12110
  //#region src/theme/types.d.ts
@@ -12615,6 +12810,15 @@ interface PictureBulletMarker {
12615
12810
  imageRelId?: string;
12616
12811
  }
12617
12812
  //#endregion
12813
+ //#region src/render/text-east-asian-breaks.d.ts
12814
+ /** Which of the two behaviours a paragraph asks for. */
12815
+ interface EastAsianBreakOptions {
12816
+ /** `a:pPr/@hangingPunct="1"`. */
12817
+ hangingPunctuation: boolean;
12818
+ /** `a:pPr/@eaLnBrk="0"`: break between any two East Asian characters. */
12819
+ breakAnywhere: boolean;
12820
+ }
12821
+ //#endregion
12618
12822
  //#region src/render/text-run-meta.d.ts
12619
12823
  /** A run's resolved hyperlink target. */
12620
12824
  interface RunHyperlink {
@@ -12788,6 +12992,8 @@ interface ParagraphRun {
12788
12992
  * `paragraph-run-build.ts`).
12789
12993
  */
12790
12994
  underlineWordPieces?: ScriptFontPiece[];
12995
+ /** The advance-carrying space after a hanging `、`/`。` (`text-east-asian-breaks`). */
12996
+ hangingSpace?: true;
12791
12997
  /**
12792
12998
  * `a:reflection` mirrored-sibling wrapper style for this run (the text-run
12793
12999
  * counterpart of a shape/picture's `ComputedEffectStyle.reflection`), or
@@ -12871,6 +13077,12 @@ interface RenderParagraph {
12871
13077
  * break rules, rendered differently in the other four bindings.
12872
13078
  */
12873
13079
  paragraphStyle?: RunStyle;
13080
+ /**
13081
+ * `@hangingPunct` / `@eaLnBrk="0"` as resolved for this paragraph. The runs
13082
+ * above already carry their pieces; React, which rebuilds each segment's
13083
+ * pieces inside one span, re-applies `splitEastAsianBreaks` from this.
13084
+ */
13085
+ eastAsianBreaks?: EastAsianBreakOptions;
12874
13086
  }
12875
13087
  //#endregion
12876
13088
  //#region src/render/inline-list-types.d.ts
@@ -13520,8 +13732,12 @@ declare function loadPresentationDeck(sessionId: string): Promise<Uint8Array | n
13520
13732
  type PresentationBlackout = PresentationSnapshot['blackout'];
13521
13733
  /** A logical editor command produced by one key press. */
13522
13734
  type EditorKeyActionName = 'undo' | 'redo' | 'copy' | 'cut' | 'paste' | 'duplicate' | 'delete' | 'selectAll' | 'group' | 'ungroup' | 'nudge' | 'prevSlide' | 'nextSlide' | 'escape' | 'find' | 'findReplace' | 'toggleShortcuts' | 'alignLeft' | 'alignCenter' | 'alignRight' | 'alignJustify' | 'increaseFontSize' | 'decreaseFontSize' | 'copyFormat' | 'pasteFormat' | 'newSlide' | 'hyperlink' | 'clearFormatting' | 'cycleSelectionNext' | 'cycleSelectionPrev' | 'pasteSpecial';
13735
+ //#endregion
13736
+ //#region src/render/merge-shapes/merge-shapes-menu.d.ts
13737
+ /** The right-click command id for each operation. */
13738
+ type MergeShapesCommandId = 'merge-union' | 'merge-combine' | 'merge-fragment' | 'merge-intersect' | 'merge-subtract';
13523
13739
  /** Every command a canvas context menu can offer, in no particular order. */
13524
- type ContextMenuCommandId = 'copy' | 'cut' | 'paste' | 'duplicate' | 'edit-text' | 'bring-forward' | 'send-backward' | 'bring-front' | 'send-back' | 'ai-ask' | 'ai-fix' | 'comment' | 'hyperlink' | 'table-insert-row-above' | 'table-insert-row-below' | 'table-delete-row' | 'table-insert-col-left' | 'table-insert-col-right' | 'table-delete-col' | 'table-merge-selected' | 'table-merge-right' | 'table-merge-down' | 'table-split' | 'group' | 'ungroup' | 'save-as-picture' | 'edit-alt-text' | 'size-and-position' | 'format-shape' | 'delete';
13740
+ type ContextMenuCommandId = 'copy' | 'cut' | 'paste' | 'duplicate' | 'edit-text' | 'edit-points' | 'bring-forward' | 'send-backward' | 'bring-front' | 'send-back' | 'ai-ask' | 'ai-fix' | 'comment' | 'hyperlink' | 'table-insert-row-above' | 'table-insert-row-below' | 'table-delete-row' | 'table-insert-col-left' | 'table-insert-col-right' | 'table-delete-col' | 'table-merge-selected' | 'table-merge-right' | 'table-merge-down' | 'table-split' | 'group' | 'ungroup' | 'crop' | MergeShapesCommandId | 'save-as-picture' | 'edit-alt-text' | 'size-and-position' | 'format-shape' | 'delete';
13525
13741
  //#endregion
13526
13742
  //#region src/render/canvas-context-menu-commands.d.ts
13527
13743
  /**
@@ -13760,7 +13976,7 @@ interface AccountAuthConfig {
13760
13976
  * whole control cluster (zoom in/out/fit, prev/next) rather than each button
13761
13977
  * in it, matching how hosts actually want to hide/keep them as a unit.
13762
13978
  */
13763
- type ToolbarButtonId = 'share' | 'broadcast' | 'export' | 'undo' | 'redo' | 'record' | 'notes' | 'fullscreen' | 'zoom' | 'navigation';
13979
+ type ToolbarButtonId = 'share' | 'broadcast' | 'export' | 'undo' | 'redo' | 'record' | 'notes' | 'fullscreen' | 'zoom' | 'navigation' | 'mergeShapes' | 'crop';
13764
13980
  /** A top-level ribbon tab. `record` intentionally shares its id with the quick-access Record button above: both surface the same recording feature, so hiding one hides the other. */
13765
13981
  type ToolbarTabId = 'file' | 'home' | 'insert' | 'draw' | 'design' | 'transitions' | 'animations' | 'slideShow' | 'record' | 'review' | 'view' | 'help';
13766
13982
  type ToolbarActionId = ToolbarButtonId | ToolbarTabId;
@@ -13966,6 +14182,12 @@ interface PrintSettings {
13966
14182
  */
13967
14183
  scaleToFit?: boolean;
13968
14184
  }
14185
+ /** Every command the Edit Points right-click menu can offer. */
14186
+ type EditPointsCommandId = 'add-point' | 'delete-point' | 'delete-segment' | 'open-path' | 'close-path' | 'smooth-point' | 'straight-point' | 'corner-point' | 'straight-segment' | 'curved-segment' | 'exit';
14187
+ //#endregion
14188
+ //#region src/render/edit-points/freeform-tool-geometry.d.ts
14189
+ /** The two click-to-place drawing tools. */
14190
+ type FreeformToolKind = 'freeformShape' | 'curve';
13969
14191
  //#endregion
13970
14192
  //#region src/render/options/viewer-options-controls.d.ts
13971
14193
  /**
@@ -14036,6 +14258,11 @@ interface ContextMenuCustomization {
14036
14258
  hiddenElementCommands?: readonly ContextMenuCommandId[];
14037
14259
  /** Entries to remove from the empty-canvas menu. */
14038
14260
  hiddenCanvasCommands?: readonly CanvasContextMenuCommandId[];
14261
+ /**
14262
+ * Entries to remove from the Edit Points menu (right-click a vertex or a
14263
+ * segment while editing a shape's points).
14264
+ */
14265
+ hiddenEditPointsCommands?: readonly EditPointsCommandId[];
14039
14266
  /** Remove the element context menu entirely. */
14040
14267
  disableElementMenu?: boolean;
14041
14268
  /** Remove the empty-canvas context menu entirely. */
@@ -14065,7 +14292,12 @@ interface KeyboardCustomization {
14065
14292
  */
14066
14293
  type ViewerPanelId = 'statusBar' | 'slidesPane' | 'inspector' | 'notes' | 'quickAccessToolbar' | 'titleBar';
14067
14294
  /** Feature areas that can be switched off as a whole. */
14068
- type ViewerFeatureId = 'ai' | 'collaboration' | 'comments' | 'presentMode';
14295
+ type ViewerFeatureId = 'ai' | 'collaboration' | 'comments' | 'presentMode' | 'editPoints';
14296
+ /**
14297
+ * The click-to-place drawing tools of Insert > Shapes > Lines: Freeform:
14298
+ * Shape and Curve.
14299
+ */
14300
+ type ViewerDrawingToolId = FreeformToolKind;
14069
14301
  /** Dialogs (and the entry points that open them) a host can remove. */
14070
14302
  type ViewerDialogId = 'options' | 'share' | 'broadcast' | 'print' | 'export';
14071
14303
  /** Export formats offered by the File > Export page. */
@@ -14088,6 +14320,8 @@ interface ViewerCustomization {
14088
14320
  hiddenDialogs?: readonly ViewerDialogId[];
14089
14321
  /** Export formats to remove from File > Export. */
14090
14322
  hiddenExportFormats?: readonly ViewerExportFormatId[];
14323
+ /** Drawing tools to remove from the Insert > Shapes gallery. */
14324
+ hiddenDrawingTools?: readonly ViewerDrawingToolId[];
14091
14325
  }
14092
14326
  //#endregion
14093
14327
  //#region src/render/options/viewer-options-constraints.d.ts
@@ -14153,17 +14387,17 @@ interface ViewerOptionsStore {
14153
14387
  //#endregion
14154
14388
  //#region src/render/customization/customization-catalog.d.ts
14155
14389
  declare const RIBBON_TAB_IDS: readonly ToolbarTabId[];
14156
- declare const TOOLBAR_BUTTON_IDS: readonly ["share", "broadcast", "export", "undo", "redo", "record", "notes", "fullscreen", "zoom", "navigation"];
14390
+ declare const TOOLBAR_BUTTON_IDS: readonly ["share", "broadcast", "export", "undo", "redo", "record", "notes", "fullscreen", "zoom", "navigation", "mergeShapes", "crop"];
14157
14391
  declare const OPTIONS_PAGE_IDS: readonly OptionsPageId[];
14158
14392
  declare const OPTIONS_SECTION_IDS: readonly OptionsSectionId[];
14159
14393
  declare const OPTIONS_SETTING_IDS: readonly OptionsSettingId[];
14160
14394
  declare const BACKSTAGE_PAGE_IDS: readonly BackstagePage[];
14161
14395
  declare const BACKSTAGE_CARD_IDS: readonly BackstageCardId[];
14162
- declare const ELEMENT_CONTEXT_MENU_COMMAND_IDS: readonly ["copy", "cut", "paste", "duplicate", "edit-text", "bring-forward", "send-backward", "bring-front", "send-back", "ai-ask", "ai-fix", "comment", "hyperlink", "table-insert-row-above", "table-insert-row-below", "table-delete-row", "table-insert-col-left", "table-insert-col-right", "table-delete-col", "table-merge-selected", "table-merge-right", "table-merge-down", "table-split", "group", "ungroup", "save-as-picture", "edit-alt-text", "size-and-position", "format-shape", "delete"];
14396
+ declare const ELEMENT_CONTEXT_MENU_COMMAND_IDS: readonly ["copy", "cut", "paste", "duplicate", "edit-text", "edit-points", "bring-forward", "send-backward", "bring-front", "send-back", "ai-ask", "ai-fix", "comment", "hyperlink", "table-insert-row-above", "table-insert-row-below", "table-delete-row", "table-insert-col-left", "table-insert-col-right", "table-delete-col", "table-merge-selected", "table-merge-right", "table-merge-down", "table-split", "group", "ungroup", "crop", "merge-union", "merge-combine", "merge-fragment", "merge-intersect", "merge-subtract", "save-as-picture", "edit-alt-text", "size-and-position", "format-shape", "delete"];
14163
14397
  declare const CANVAS_CONTEXT_MENU_COMMAND_IDS: readonly ["paste", "layout", "reset-slide", "format-background", "grid-and-guides", "ruler"];
14164
14398
  declare const EDITOR_SHORTCUT_ACTION_IDS: readonly ["undo", "redo", "copy", "cut", "paste", "duplicate", "delete", "selectAll", "group", "ungroup", "nudge", "prevSlide", "nextSlide", "escape", "find", "findReplace", "toggleShortcuts", "alignLeft", "alignCenter", "alignRight", "alignJustify", "increaseFontSize", "decreaseFontSize", "copyFormat", "pasteFormat", "newSlide", "hyperlink", "clearFormatting", "cycleSelectionNext", "cycleSelectionPrev", "pasteSpecial"];
14165
14399
  declare const VIEWER_PANEL_IDS: readonly ["statusBar", "slidesPane", "inspector", "notes", "quickAccessToolbar", "titleBar"];
14166
- declare const VIEWER_FEATURE_IDS: readonly ["ai", "collaboration", "comments", "presentMode"];
14400
+ declare const VIEWER_FEATURE_IDS: readonly ["ai", "collaboration", "comments", "presentMode", "editPoints"];
14167
14401
  declare const VIEWER_DIALOG_IDS: readonly ["options", "share", "broadcast", "print", "export"];
14168
14402
  declare const VIEWER_EXPORT_FORMAT_IDS: readonly ["pdf", "png", "video", "gif", "json", "copyImage"];
14169
14403
  //#endregion
@@ -14197,6 +14431,8 @@ interface ResolvedCustomization {
14197
14431
  hiddenBackstageCards: ReadonlySet<BackstageCardId>;
14198
14432
  hiddenElementCommands: ReadonlySet<ContextMenuCommandId>;
14199
14433
  hiddenCanvasCommands: ReadonlySet<CanvasContextMenuCommandId>;
14434
+ hiddenEditPointsCommands: ReadonlySet<EditPointsCommandId>;
14435
+ hiddenDrawingTools: ReadonlySet<ViewerDrawingToolId>;
14200
14436
  elementMenuEnabled: boolean;
14201
14437
  canvasMenuEnabled: boolean;
14202
14438
  hiddenPanels: ReadonlySet<ViewerPanelId>;
@@ -14354,6 +14590,31 @@ interface ViewportFitOptions {
14354
14590
  maxFitScale?: number | null;
14355
14591
  }
14356
14592
  //#endregion
14593
+ //#region src/render/picture-crop/crop-geometry.d.ts
14594
+ /** An axis-aligned rectangle in slide pixels. */
14595
+ interface CropRect {
14596
+ x: number;
14597
+ y: number;
14598
+ width: number;
14599
+ height: number;
14600
+ }
14601
+ /** The four `a:srcRect` insets as fractions of the image (negative pads). */
14602
+ interface CropInsets {
14603
+ cropLeft: number;
14604
+ cropTop: number;
14605
+ cropRight: number;
14606
+ cropBottom: number;
14607
+ }
14608
+ /** What a crop edit writes back onto the picture element. */
14609
+ type CropElementUpdate = CropInsets & CropRect;
14610
+ /** The snapshot a crop session restores on cancel. */
14611
+ interface CropSession {
14612
+ elementId: string;
14613
+ original: CropElementUpdate;
14614
+ /** Insets the picture did not carry at all (no `a:srcRect` opinion). */
14615
+ absentInsets: readonly (keyof CropInsets)[];
14616
+ }
14617
+ //#endregion
14357
14618
  //#region src/web-components/select-value.d.ts
14358
14619
  /** Public DOM shape used by all bindings; the element is not a native select. */
14359
14620
  interface PptxUiSelectElement extends HTMLElement {
@@ -14413,5 +14674,5 @@ interface TransitionOverlayParams {
14413
14674
  */
14414
14675
  declare function playTransitionOverlay(params: TransitionOverlayParams): () => void;
14415
14676
  //#endregion
14416
- export { MobileSheetKey as $, PptxSaveFormat as $n, ShapeStyle as $r, VIEWER_PANEL_IDS as $t, DEFAULT_TRANSITION_DURATION_MS as A, parsePresentationSessionId as An, PptxImageEffects as Ar, RunProgramNotice as At, ExternalCollaborationSession as B, savedPresentationFileName as Bn, PptxSmartArtData as Br, SlideSizeRescaleMode as Bt, CollaborationTransport as C, getSessionTabId as Cn, PptxCustomShow as Cr, RemoteCursor as Ct, ContextMenuCustomization as D, loadPresentationDeck as Dn, PptxEmbeddedFont as Dr, RibbonCustomization as Dt, ContextMenuCommandId as E, isSupportedPresentationFile as En, PptxElementAnimation as Er, ResolvedDirection8 as Et, ElementAnimationState as F, resolveOrientation as Fn, PptxPresentationProperties as Fr, SessionDeck as Ft, INSTANT as G, defaultRadius as Gn, PptxTextStyleLevels as Gr, TRANSITION_SPEED_DURATION_MS as Gt, FieldSubstitutionContext as H, ViewerTheme as Hn, PptxTableCellStyle as Hr, SlideTransitionAnimations as Ht, ElementClipboardPayload as I, resolveSlideTransition as In, PptxSection as Ir, ShapePresetType as It, InlineTextSelection as J, vermilionDarkTheme as Jn, PptxThemeColorScheme as Jr, ToolbarButtonId as Jt, InlineListReadResult as K, defaultThemeColors as Kn, PptxTheme as Kr, TextAdvancedChanges as Kt, ElementUpdate as L, resolveTransitionDurationMs as Ln, PptxSlide as Lr, ShareDefaults as Lt, EDITOR_SHORTCUT_ACTION_IDS as M, rememberSessionDeck as Mn, PptxModernCommentAuthor as Mr, SLIDE_TRANSITION_KEYFRAMES_CSS as Mt, ELEMENT_CONTEXT_MENU_COMMAND_IDS as N, resolveDirection as Nn, PptxModifyVerifier as Nr, SanitizedPresence as Nt, CssStyleMap as O, loadSessionDeck as On, PptxHandoutMaster as Or, RibbonTransitionDraft as Ot, EditorKeyActionName as P, resolveDirection8 as Pn, PptxNotesMaster as Pr, SavedPresentationFormat as Pt, MasterViewCrudActionId as Q, PptxHandlerSaveOptions as Qn, PptxViewProperties as Qr, VIEWER_FEATURE_IDS as Qt, ElementUpdateOptions as R, resolveWheelSpokeCount as Rn, PptxSlideMaster as Rr, ShortcutChord as Rt, CollaborationShellState as S, getP14TransitionAnimations as Sn, PptxCustomProperty as Sr, ReadOnlyRecommendation as St, ConnectionStatus as T, isLegacyBinaryPresentation as Tn, PptxElement as Tr, ResolvedDirection as Tt, GradientState as U, ViewerThemeColors as Un, PptxTableData as Ur, StrokeToInkElementOpts as Ut, ExternalCollaborationSnapshot as V, ThemeCatalogEntry as Vn, PptxSmartArtNodeStyle as Vr, SlideTemplateId as Vt, Guide as W, defaultCssVars as Wn, PptxTagCollection as Wr, TOOLBAR_BUTTON_IDS as Wt, KeyboardCustomization as X, AccessibilityIssue as Xn, PptxThemeOption as Xr, VIEWER_DIALOG_IDS as Xt, InsertChartKind as Y, vermilionLightTheme as Yn, PptxThemeFontScheme as Yr, ToolbarTabId as Yt, MasterViewCrudAction as Z, PptxHandler as Zn, PptxTransitionType as Zr, VIEWER_EXPORT_FORMAT_IDS as Zt, ChartPartRef as _, canInteractWithElement as _n, PptxComment as _r, PresentationPointerTool as _t, AnimationGroup as a, TextStyle as ai, ViewerFeatureId as an, OlePptxElement as ar, OptionsPageId as at, CollaborationLivePatcher as b, forgetSessionDeck as bn, PptxCompatibilityWarning as br, RANDOM_ELIGIBLE_TYPES as bt, BACKSTAGE_PAGE_IDS as c, ViewerOptionPrimitive as cn, PptxAnimationDirection as cr, OptionsSettingValues as ct, BackstagePage as d, ViewerQuickAccessOptions as dn, PptxAnimationSequence as dr, P14_TRANSITION_KEYFRAMES_ALL as dt, SmartArtColorScheme as ei, ViewerCustomization as en, SvgExportOptions as er, ModifyPasswordCheckResult as et, CANVAS_CONTEXT_MENU_COMMAND_IDS as f, ViewportFitOptions as fn, PptxAnimationTimelineAnchor as fr, PPTX_OPEN_ACCEPT as ft, ChangeCaseMode as g, buildInlineTextCommitPatch as gn, PptxChartData as gr, PresentationBlackout as gt, CanvasSize as h, ZoomNavigationTarget as hn, PptxAppProperties as hr, PowerPointViewerAPI as ht, AlignEdge as i, TextSegment as ii, ViewerExportFormatId as in, OleObjectType as ir, OptionsCustomization as it, EASE as j, presentationBaseName as jn, PptxLayoutPreview as jr, SLIDE_TRANSITION_KEYFRAMES as jt, DEFAULT_MORPH_DURATION_MS as k, overlayInlineTextSnapshot as kn, PptxHeaderFooter as kr, RulerUnit as kt, BackstageCardId as l, ViewerOptionsStore as ln, PptxAnimationPreset as lr, P14_TRANSITION_KEYFRAMES as lt, CanvasContextMenuCommandId as m, WHEEL_SPOKE_COUNTS as mn, PptxAnimationTrigger as mr, PasteSpecialFormat as mt, playTransitionOverlay as n, SmartArtLayoutType as ni, ViewerCustomizationController as nn, MasterViewTab as nr, OPTIONS_SECTION_IDS as nt, AutosaveRecord as o, XmlObject as oi, ViewerFontSource as on, ParsedTableStyleMap as or, OptionsSectionId as ot, CINEMATIC_TRANSITION_KEYFRAMES as p, ViewportFitPadding as pn, PptxAnimationTimingCurve as pr, PRESENTATION_OPEN_EXTENSIONS as pt, InlineTextEditSnapshot as q, themeToCssVars as qn, PptxThemeColorRef as qr, ToolbarActionId as qt, AccountAuthConfig as r, TablePptxElement as ri, ViewerDialogId as rn, MediaPptxElement as rr, OPTIONS_SETTING_IDS as rt, BACKSTAGE_CARD_IDS as s, ViewerMode as sn, PptxAfterAnimationAction as sr, OptionsSettingId as st, TransitionOverlayParams as t, SmartArtLayout as ti, ViewerCustomizationApi as tn, ElementAction as tr, OPTIONS_PAGE_IDS as tt, BackstageCustomization as u, ViewerPanelId as un, PptxAnimationRepeatMode as ur, P14_TRANSITION_KEYFRAMES_2 as ut, CollabLoadOrigin as v, createImageElementFromFile as vn, PptxCommentAuthor as vr, PresentationSnapshot as vt, CompatibilityWarningToast as w, getSlideTransitionAnimations as wn, PptxData as wr, ResolvedCustomization as wt, CollaborationRole as x, getCinematicTransitionAnimations as xn, PptxCoreProperties as xr, RIBBON_TAB_IDS as xt, CollaborationConfig as y, describeCollaborationShellState as yn, PptxCommentMention as yr, PrintSettings as yt, ExternalCollaborationAwareness as z, restoreSessionDeck as zn, PptxSlideTransition as zr, SlideSizeEmu as zt };
14417
- //# sourceMappingURL=transition-overlay-C2lOs9rM.d.ts.map
14677
+ export { KeyboardCustomization as $, AccessibilityIssue as $n, PptxThemeFontScheme as $r, VIEWER_DIALOG_IDS as $t, CssStyleMap as A, loadPresentationDeck as An, PptxElementAnimation as Ar, RibbonCustomization as At, ElementUpdateOptions as B, resolveTransitionDurationMs as Bn, PptxSection as Br, ShareDefaults as Bt, CollaborationTransport as C, forgetSessionDeck as Cn, PptxCommentMention as Cr, RANDOM_ELIGIBLE_TYPES as Ct, ContextMenuCustomization as D, getSlideTransitionAnimations as Dn, PptxCustomShow as Dr, ResolvedCustomization as Dt, ContextMenuCommandId as E, getSessionTabId as En, PptxCustomProperty as Er, RemoteCursor as Et, ELEMENT_CONTEXT_MENU_COMMAND_IDS as F, rememberSessionDeck as Fn, PptxLayoutPreview as Fr, SLIDE_TRANSITION_KEYFRAMES_CSS as Ft, FreeformToolKind as G, ViewerTheme as Gn, PptxSmartArtNodeStyle as Gr, SlideTransitionAnimations as Gt, ExternalCollaborationSession as H, restoreSessionDeck as Hn, PptxSlideMaster as Hr, SlideSizeEmu as Ht, EditorKeyActionName as I, resolveDirection as In, PptxModernCommentAuthor as Ir, SanitizedPresence as It, INSTANT as J, defaultRadius as Jn, PptxTagCollection as Jr, TRANSITION_SPEED_DURATION_MS as Jt, GradientState as K, ViewerThemeColors as Kn, PptxTableCellStyle as Kr, StrokeToInkElementOpts as Kt, ElementAnimationState as L, resolveDirection8 as Ln, PptxModifyVerifier as Lr, SavedPresentationFormat as Lt, DEFAULT_TRANSITION_DURATION_MS as M, overlayInlineTextSnapshot as Mn, PptxHandoutMaster as Mr, RulerUnit as Mt, EASE as N, parsePresentationSessionId as Nn, PptxHeaderFooter as Nr, RunProgramNotice as Nt, CropElementUpdate as O, isLegacyBinaryPresentation as On, PptxData as Or, ResolvedDirection as Ot, EDITOR_SHORTCUT_ACTION_IDS as P, presentationBaseName as Pn, PptxImageEffects as Pr, SLIDE_TRANSITION_KEYFRAMES as Pt, InsertChartKind as Q, vermilionLightTheme as Qn, PptxThemeColorScheme as Qr, ToolbarTabId as Qt, ElementClipboardPayload as R, resolveOrientation as Rn, PptxNotesMaster as Rr, SessionDeck as Rt, CollaborationShellState as S, describeCollaborationShellState as Sn, PptxCommentAuthor as Sr, PrintSettings as St, ConnectionStatus as T, getP14TransitionAnimations as Tn, PptxCoreProperties as Tr, ReadOnlyRecommendation as Tt, ExternalCollaborationSnapshot as U, savedPresentationFileName as Un, PptxSlideTransition as Ur, SlideSizeRescaleMode as Ut, ExternalCollaborationAwareness as V, resolveWheelSpokeCount as Vn, PptxSlide as Vr, ShortcutChord as Vt, FieldSubstitutionContext as W, ThemeCatalogEntry as Wn, PptxSmartArtData as Wr, SlideTemplateId as Wt, InlineTextEditSnapshot as X, themeToCssVars as Xn, PptxTheme as Xr, ToolbarActionId as Xt, InlineListReadResult as Y, defaultThemeColors as Yn, PptxTextStyleLevels as Yr, TextAdvancedChanges as Yt, InlineTextSelection as Z, vermilionDarkTheme as Zn, PptxThemeColorRef as Zr, ToolbarButtonId as Zt, ChartPartRef as _, WHEEL_SPOKE_COUNTS as _n, PptxAnimationTimingCurve as _r, PasteSpecialFormat as _t, AnimationGroup as a, SmartArtLayout as ai, ViewerCustomizationController as an, ElementAction as ar, OPTIONS_SECTION_IDS as at, CollaborationLivePatcher as b, canInteractWithElement as bn, PptxChartData as br, PresentationPointerTool as bt, BACKSTAGE_PAGE_IDS as c, TextSegment as ci, ViewerFeatureId as cn, OleObjectType as cr, OptionsPageId as ct, BackstagePage as d, ViewerOptionPrimitive as dn, PptxAfterAnimationAction as dr, OptionsSettingValues as dt, PptxThemeOption as ei, VIEWER_EXPORT_FORMAT_IDS as en, MergeShapeOperation as er, MasterViewCrudAction as et, CANVAS_CONTEXT_MENU_COMMAND_IDS as f, ViewerOptionsStore as fn, PptxAnimationDirection as fr, P14_TRANSITION_KEYFRAMES as ft, ChangeCaseMode as g, ViewportFitPadding as gn, PptxAnimationTimelineAnchor as gr, PRESENTATION_OPEN_EXTENSIONS as gt, CanvasSize as h, ViewportFitOptions as hn, PptxAnimationSequence as hr, PPTX_OPEN_ACCEPT as ht, AlignEdge as i, SmartArtColorScheme as ii, ViewerCustomizationApi as in, SvgExportOptions as ir, OPTIONS_PAGE_IDS as it, DEFAULT_MORPH_DURATION_MS as j, loadSessionDeck as jn, PptxEmbeddedFont as jr, RibbonTransitionDraft as jt, CropSession as k, isSupportedPresentationFile as kn, PptxElement as kr, ResolvedDirection8 as kt, BackstageCardId as l, TextStyle as li, ViewerFontSource as ln, OlePptxElement as lr, OptionsSectionId as lt, CanvasContextMenuCommandId as m, ViewerQuickAccessOptions as mn, PptxAnimationRepeatMode as mr, P14_TRANSITION_KEYFRAMES_ALL as mt, playTransitionOverlay as n, PptxViewProperties as ni, VIEWER_PANEL_IDS as nn, PptxHandlerSaveOptions as nr, MobileSheetKey as nt, AutosaveRecord as o, SmartArtLayoutType as oi, ViewerDialogId as on, MasterViewTab as or, OPTIONS_SETTING_IDS as ot, CINEMATIC_TRANSITION_KEYFRAMES as p, ViewerPanelId as pn, PptxAnimationPreset as pr, P14_TRANSITION_KEYFRAMES_2 as pt, Guide as q, defaultCssVars as qn, PptxTableData as qr, TOOLBAR_BUTTON_IDS as qt, AccountAuthConfig as r, ShapeStyle as ri, ViewerCustomization as rn, PptxSaveFormat as rr, ModifyPasswordCheckResult as rt, BACKSTAGE_CARD_IDS as s, TablePptxElement as si, ViewerExportFormatId as sn, MediaPptxElement as sr, OptionsCustomization as st, TransitionOverlayParams as t, PptxTransitionType as ti, VIEWER_FEATURE_IDS as tn, PptxHandler as tr, MasterViewCrudActionId as tt, BackstageCustomization as u, XmlObject as ui, ViewerMode as un, ParsedTableStyleMap as ur, OptionsSettingId as ut, CollabLoadOrigin as v, ZoomNavigationTarget as vn, PptxAnimationTrigger as vr, PowerPointViewerAPI as vt, CompatibilityWarningToast as w, getCinematicTransitionAnimations as wn, PptxCompatibilityWarning as wr, RIBBON_TAB_IDS as wt, CollaborationRole as x, createImageElementFromFile as xn, PptxComment as xr, PresentationSnapshot as xt, CollaborationConfig as y, buildInlineTextCommitPatch as yn, PptxAppProperties as yr, PresentationBlackout as yt, ElementUpdate as z, resolveSlideTransition as zn, PptxPresentationProperties as zr, ShapePresetType as zt };
14678
+ //# sourceMappingURL=transition-overlay-DB7RDVkV.d.ts.map