pptx-angular-viewer 4.6.0 → 4.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.
Files changed (25) hide show
  1. package/CHANGELOG.md +84 -0
  2. package/fesm2022/pptx-angular-viewer-chart-3d-view-scene-CM71j9A9.mjs +1703 -0
  3. package/fesm2022/pptx-angular-viewer-chart-3d-view-scene-CM71j9A9.mjs.map +1 -0
  4. package/fesm2022/{pptx-angular-viewer-chat-history-idb-NpaCpp0C.mjs → pptx-angular-viewer-chat-history-idb-7dyn_ZbD.mjs} +2 -2
  5. package/fesm2022/{pptx-angular-viewer-chat-history-idb-NpaCpp0C.mjs.map → pptx-angular-viewer-chat-history-idb-7dyn_ZbD.mjs.map} +1 -1
  6. package/fesm2022/{pptx-angular-viewer-pptx-angular-viewer-C2z1kMFI.mjs → pptx-angular-viewer-pptx-angular-viewer-Cf08ueRA.mjs} +11005 -2545
  7. package/fesm2022/{pptx-angular-viewer-pptx-angular-viewer-C2z1kMFI.mjs.map → pptx-angular-viewer-pptx-angular-viewer-Cf08ueRA.mjs.map} +1 -1
  8. package/fesm2022/pptx-angular-viewer-view-scene-Bn9SJZk9.mjs +862 -0
  9. package/fesm2022/pptx-angular-viewer-view-scene-Bn9SJZk9.mjs.map +1 -0
  10. package/fesm2022/pptx-angular-viewer.mjs +1 -1
  11. package/i18n/de.cjs +134 -117
  12. package/i18n/de.mjs +134 -117
  13. package/i18n/es.cjs +134 -117
  14. package/i18n/es.mjs +134 -117
  15. package/i18n/fr.cjs +134 -117
  16. package/i18n/fr.mjs +134 -117
  17. package/i18n/zh-CN.cjs +111 -99
  18. package/i18n/zh-CN.mjs +111 -99
  19. package/package.json +2 -2
  20. package/types/pptx-angular-viewer.d.ts +774 -116
  21. package/types/pptx-angular-viewer.d.ts.map +1 -1
  22. package/fesm2022/pptx-angular-viewer-chart-3d-view-scene-BvVx5_I3.mjs +0 -470
  23. package/fesm2022/pptx-angular-viewer-chart-3d-view-scene-BvVx5_I3.mjs.map +0 -1
  24. package/fesm2022/pptx-angular-viewer-view-scene-C5oUG9yl.mjs +0 -235
  25. package/fesm2022/pptx-angular-viewer-view-scene-C5oUG9yl.mjs.map +0 -1
@@ -1,5 +1,5 @@
1
1
  import * as pptx_viewer_core from 'pptx-viewer-core';
2
- import { PptxThemePreset, PptxElement, PptxSlide, ShapeStyle, PptxTextWarpPreset, XmlObject, PptxChartSeries, PptxChartLegendTextStyle, PptxChartMarkerSymbol, PptxChartDataPointPicture, PptxChartData, PptxChartDataLabelPosition, PptxChartType, PptxElementAnimation, PptxAnimationPreset, PptxAnimationSequence, PptxAnimationTrigger, PptxAnimationTimingCurve, PptxAnimationRepeatMode, PptxAnimationDirection, PptxAfterAnimationAction, ParsedTableStyleMap, PptxThemeColorScheme, PptxThemeFontScheme, TablePptxElement, PptxSection, OlePptxElement, TextSegment, TextStyle, PptxTransitionType, PptxSlideTransition, PptxBar3DShape, SmartArtLayoutType, SmartArtColorScheme, PptxSmartArtChrome, PptxSmartArtDrawingShape, SmartArtStyle, PptxSmartArtData, PptxThemeColorRef, PlaceholderDefaults, PptxEmbeddedFont, SmartArtLayout, AccessibilityIssueSeverity, AccessibilityIssue, AccessibilityIssueType, AccessibilityCheckOptions, ElementActionType, InkPptxElement, PptxComment, PptxChartBarDirection, ImagePptxElement, MasterViewTab, PptxHeaderFooter, PptxPresentationProperties, PptxViewProperties, PptxCustomShow, PptxCoreProperties, PptxAppProperties, PptxCustomProperty, PptxTagCollection, PptxSlideMaster, PptxNotesMaster, PptxHandoutMaster, PptxSlideSize, PptxSaveFormat, MediaPptxElement, PptxTheme, PptxHandler, PptxData, PptxHandlerSaveOptions, PptxModernCommentAuthor, PptxCommentMention, PptxThemeOption, ParsedSignature, PptxLayoutPreview, PptxTableCell, PptxTableCellStyle, PptxTableRow, PptxTableData, SvgExportOptions, PptxLayoutOption, PptxGridSpacing, ChartPptxElement, RenderedNode, RenderedCircleNode, RenderedPolygonNode, RenderedRectNode, SmartArtLayoutResult, Model3DPptxElement, ZoomPptxElement, SmartArtPptxElement, PptxAnimationTimelineAnchor, MaterialPresetType, Text3DStyle, BevelPresetType, PptxChartDataLabelOptions, PptxChartAxisType, PptxChartAxisFormatting, PptxChartMarker, PptxChartDataPoint, PptxChartTrendline, PptxChartErrBars, PptxTextStyleLevels, SignatureStatus, ElementAction, PptxImageEffects, MediaBookmark, ColorMapAliasKey, ChartAxisEdit, ChartDataPointLabelEdit, PptxChartLegendPosition, PptxChartStyle, ChartAxisTitleStyleEdit, ChartGridlineStyleEdit, PptxSmartArtNode, PptxSmartArtNodeStyle, MediaCaptionTrack, PptxMediaType } from 'pptx-viewer-core';
2
+ import { PptxThemePreset, PptxElement, PptxSlide, ShapeStyle, PptxTextWarpPreset, XmlObject, PptxChartSeries, PptxChartLegendTextStyle, PptxChartMarkerSymbol, PptxChartDataPointPicture, PptxChartData, PptxChartDataLabelPosition, PptxChartType, PptxElementAnimation, PptxAnimationPreset, PptxAnimationSequence, PptxAnimationTrigger, PptxAnimationTimingCurve, PptxAnimationRepeatMode, PptxAnimationDirection, PptxAfterAnimationAction, ParsedTableStyleMap, PptxThemeColorScheme, PptxThemeFontScheme, TablePptxElement, PptxSection, OlePptxElement, TextSegment, TextStyle, PptxTransitionType, PptxSlideTransition, PptxBar3DShape, SmartArtLayoutType, PptxSmartArtDrawingShape, SmartArtColorScheme, PptxSmartArtChrome, SmartArtStyle, PptxSmartArtData, PptxThemeColorRef, PlaceholderDefaults, PptxEmbeddedFont, SmartArtLayout, AccessibilityIssueSeverity, AccessibilityIssue, AccessibilityIssueType, AccessibilityCheckOptions, ElementActionType, InkPptxElement, PptxComment, PptxChartBarDirection, ImagePptxElement, MasterViewTab, PptxHeaderFooter, PptxPresentationProperties, PptxViewProperties, PptxCustomShow, PptxCoreProperties, PptxAppProperties, PptxCustomProperty, PptxTagCollection, PptxSlideMaster, PptxNotesMaster, PptxHandoutMaster, PptxSlideSize, PptxSaveFormat, MediaPptxElement, PptxTheme, PptxHandler, PptxData, PptxHandlerSaveOptions, PptxModernCommentAuthor, PptxCommentMention, PptxThemeOption, ParsedSignature, PptxLayoutPreview, PptxTableCell, PptxTableCellStyle, PptxTableRow, PptxTableData, SvgExportOptions, PptxLayoutOption, PptxGridSpacing, ChartPptxElement, RenderedNode, RenderedCircleNode, RenderedPolygonNode, RenderedRectNode, SmartArtLayoutResult, Model3DPptxElement, ZoomPptxElement, SmartArtPptxElement, PptxAnimationTimelineAnchor, MaterialPresetType, Text3DStyle, BevelPresetType, PptxChartDataLabelOptions, PptxChartAxisType, PptxChartAxisFormatting, PptxChartMarker, PptxChartDataPoint, PptxChartTrendline, PptxChartErrBars, PptxTextStyleLevels, SignatureStatus, ElementAction, PptxImageEffects, MediaBookmark, ColorMapAliasKey, ChartAxisEdit, ChartDataPointLabelEdit, PptxChartLegendPosition, PptxChartStyle, ChartAxisTitleStyleEdit, ChartGridlineStyleEdit, PptxSmartArtNode, PptxSmartArtNodeStyle, MediaCaptionTrack, PptxMediaType } from 'pptx-viewer-core';
3
3
  export { GroupResult, SWITCHABLE_LAYOUT_TYPES, UngroupResult, addSmartArtNode, addSmartArtNodeAsChild, chartDataChangeType, chartDataUpdatePoint, demoteSmartArtNode, formatAutoNumberMarker as formatAutoNumber, groupElements, promoteSmartArtNode, removeSmartArtNode, reorderSmartArtNode, switchSmartArtLayout, ungroupElements, updateSmartArtNodeText } from 'pptx-viewer-core';
4
4
  import { Doc } from 'yjs';
5
5
  import * as _angular_core from '@angular/core';
@@ -1264,7 +1264,34 @@ interface ChartSvgPatternDef {
1264
1264
  height: number;
1265
1265
  preserveAspectRatio?: string;
1266
1266
  }
1267
- type ChartSvgDef = ChartSvgPatternDef;
1267
+ /** One `<stop>` of a gradient def (`offset` 0..1). */
1268
+ interface ChartSvgGradientStop {
1269
+ offset: number;
1270
+ color: string;
1271
+ opacity?: number;
1272
+ }
1273
+ /**
1274
+ * A chart gradient fill (`c:spPr/a:gradFill`, see `chart-gradient-defs.ts`),
1275
+ * in `objectBoundingBox` units: a linear gradient's vector runs x1,y1 to
1276
+ * x2,y2; a radial one centres on cx,cy with radius r.
1277
+ */
1278
+ type ChartSvgGradientDef = {
1279
+ kind: 'linearGradient';
1280
+ id: string;
1281
+ x1: number;
1282
+ y1: number;
1283
+ x2: number;
1284
+ y2: number;
1285
+ stops: ChartSvgGradientStop[];
1286
+ } | {
1287
+ kind: 'radialGradient';
1288
+ id: string;
1289
+ cx: number;
1290
+ cy: number;
1291
+ r: number;
1292
+ stops: ChartSvgGradientStop[];
1293
+ };
1294
+ type ChartSvgDef = ChartSvgPatternDef | ChartSvgGradientDef;
1268
1295
 
1269
1296
  /**
1270
1297
  * Chart title rich text: per-run render spans and the flat-text-edit
@@ -2498,6 +2525,35 @@ declare function applyAnimationPreset(animations: PptxElementAnimation[], elemen
2498
2525
  /** Return `animations` without the entry for `elementId`. */
2499
2526
  declare function removeElementAnimation(animations: PptxElementAnimation[], elementId: string): PptxElementAnimation[];
2500
2527
 
2528
+ /**
2529
+ * `animation-bookmark-trigger`: the "On bookmark" trigger picker every
2530
+ * binding's animation panel shows.
2531
+ *
2532
+ * An effect with `trigger: 'onMediaBookmark'` waits for a media element on the
2533
+ * slide to reach one of its bookmarks (`MediaPptxElement.bookmarks`). The
2534
+ * picker is a single `<select>` whose options are every (media element,
2535
+ * bookmark) pair on the slide; each option's value packs both halves so a
2536
+ * binding only ever maps {@link listMediaBookmarkOptions} onto `<option>`s and
2537
+ * hands the chosen value back to {@link setTriggerBookmark}.
2538
+ *
2539
+ * @module render/animation-bookmark-trigger
2540
+ */
2541
+
2542
+ /** One entry of the bookmark `<select>`. */
2543
+ interface MediaBookmarkOption {
2544
+ /** Opaque `<option value>`: pass it back to {@link setTriggerBookmark}. */
2545
+ value: string;
2546
+ /** The media element the bookmark belongs to. */
2547
+ mediaId: string;
2548
+ /** The bookmark's name. */
2549
+ bookmarkName: string;
2550
+ /**
2551
+ * Display text: the bookmark name, prefixed with the media element's name
2552
+ * when the slide has more than one media element with bookmarks.
2553
+ */
2554
+ label: string;
2555
+ }
2556
+
2501
2557
  /**
2502
2558
  * `animation-sound-authoring` — pure decision logic for the animation panel's
2503
2559
  * effect sound picker (`p:stSnd`).
@@ -4068,6 +4124,51 @@ interface ElementBulletPatch {
4068
4124
  textStyle?: TextStyle;
4069
4125
  }
4070
4126
 
4127
+ /**
4128
+ * East Asian line breaking the browser cannot be asked for in CSS: PowerPoint's
4129
+ * hanging punctuation (`a:pPr/@hangingPunct`) and its kinsoku switch
4130
+ * (`a:pPr/@eaLnBrk`).
4131
+ *
4132
+ * Ground truth (PowerPoint COM, Slide.Export of 20pt Yu Gothic paragraphs in
4133
+ * boxes a fraction of an em too narrow for the next character):
4134
+ *
4135
+ * - `hangingPunct="1"` keeps an overflowing `、` `。` `,` `.` on the line,
4136
+ * drawn past the right margin. NOTHING else hangs: closing brackets
4137
+ * (`)` `」` `』` `】` `〉` `》`), `!` `?` `:` `・`, the prolonged-sound
4138
+ * mark and small kana all wrap exactly as with `hangingPunct="0"`, pulling
4139
+ * the preceding character down with them.
4140
+ * - `eaLnBrk="0"` switches the kinsoku rules off: a line may then start with
4141
+ * `」`, `。`, `、` or a small kana, i.e. East Asian text breaks between any
4142
+ * two characters. Latin words still break only between words.
4143
+ *
4144
+ * Only Safari implements CSS `hanging-punctuation`, and CSS `line-break:
4145
+ * anywhere` / `word-break: break-all` also split Latin words, so both are done
4146
+ * in the run text instead, as pieces every binding already renders:
4147
+ *
4148
+ * - A hanging character becomes a zero-inline-size `inline-block` (so the
4149
+ * line breaker never counts it), glued to the character before it with a
4150
+ * WORD JOINER (so it cannot be pushed to the next line on its own), and
4151
+ * followed by an ordinary space whose `word-spacing` makes it exactly the
4152
+ * punctuation's own advance. Mid-line that space restores the advance, so
4153
+ * nothing moves; at a line end it is trailing white space, which CSS hangs
4154
+ * or collapses, so the punctuation paints past the margin, as in PowerPoint.
4155
+ * (A negative margin does not work: Chromium decides a break before
4156
+ * applying an inline's end margin.)
4157
+ * - With kinsoku off, a ZERO WIDTH SPACE between two East Asian characters
4158
+ * is a break opportunity no kinsoku rule can veto (UAX #14 LB8 outranks the
4159
+ * "no break before closing punctuation" rules).
4160
+ *
4161
+ * @module text-east-asian-breaks
4162
+ */
4163
+
4164
+ /** Which of the two behaviours a paragraph asks for. */
4165
+ interface EastAsianBreakOptions {
4166
+ /** `a:pPr/@hangingPunct="1"`. */
4167
+ hangingPunctuation: boolean;
4168
+ /** `a:pPr/@eaLnBrk="0"`: break between any two East Asian characters. */
4169
+ breakAnywhere: boolean;
4170
+ }
4171
+
4071
4172
  /**
4072
4173
  * Per-run facts a rendered paragraph carries besides its text and CSS: the
4073
4174
  * run's HYPERLINK and its inline EQUATION (framework-agnostic).
@@ -4298,6 +4399,8 @@ interface ParagraphRun {
4298
4399
  * `paragraph-run-build.ts`).
4299
4400
  */
4300
4401
  underlineWordPieces?: ScriptFontPiece[];
4402
+ /** The advance-carrying space after a hanging `、`/`。` (`text-east-asian-breaks`). */
4403
+ hangingSpace?: true;
4301
4404
  /**
4302
4405
  * `a:reflection` mirrored-sibling wrapper style for this run (the text-run
4303
4406
  * counterpart of a shape/picture's `ComputedEffectStyle.reflection`), or
@@ -4381,6 +4484,12 @@ interface RenderParagraph {
4381
4484
  * break rules, rendered differently in the other four bindings.
4382
4485
  */
4383
4486
  paragraphStyle?: RunStyle;
4487
+ /**
4488
+ * `@hangingPunct` / `@eaLnBrk="0"` as resolved for this paragraph. The runs
4489
+ * above already carry their pieces; React, which rebuilds each segment's
4490
+ * pieces inside one span, re-applies `splitEastAsianBreaks` from this.
4491
+ */
4492
+ eastAsianBreaks?: EastAsianBreakOptions;
4384
4493
  }
4385
4494
 
4386
4495
  /** Current editor payload. Missing segments explicitly denotes plain-text fallback. */
@@ -5918,6 +6027,92 @@ declare const P14_TRANSITION_KEYFRAMES_ALL = "\n/* \u2500\u2500 Conveyor (transl
5918
6027
  */
5919
6028
  declare function getP14TransitionAnimations(type: PptxTransitionType, durationMs: number, direction: string | undefined, orient?: string | undefined, pattern?: string | undefined): SlideTransitionAnimations | undefined;
5920
6029
 
6030
+ /**
6031
+ * Pure model types for the lit (bevel / scene quick style) SmartArt 3D path.
6032
+ *
6033
+ * Split out of `smartart-3d-types.ts` to keep both under the repo's LOC
6034
+ * budget. Every length is in layout pixels (the drawing's own EMU / 9525),
6035
+ * every angle in degrees, and every point in the mesh-local, y-up space the
6036
+ * mesh's `outline` uses.
6037
+ *
6038
+ * @module render/smartart-3d-solid-types
6039
+ */
6040
+ /** A point in mesh-local 2D space (y-up). */
6041
+ interface SolidPoint2 {
6042
+ x: number;
6043
+ y: number;
6044
+ }
6045
+ /** One `a:bevelT` / `a:bevelB`, in layout pixels. */
6046
+ interface SmartArt3DBevel {
6047
+ /** Inset of the bevel from the outline (`@w`). */
6048
+ width: number;
6049
+ /** Relief of the bevel (`@h`). */
6050
+ height: number;
6051
+ /** `@prst` profile token (`circle` when absent, per ECMA-376). */
6052
+ profile: string;
6053
+ }
6054
+ /** A shape's resolved `a:sp3d`, in layout pixels. */
6055
+ interface SmartArt3DSolid {
6056
+ bevelTop?: SmartArt3DBevel;
6057
+ bevelBottom?: SmartArt3DBevel;
6058
+ /** Extrusion depth behind the front face (`@extrusionH`). */
6059
+ extrusion: number;
6060
+ /** Side-wall colour (`a:extrusionClr`), `#rrggbb`; the fill colour when absent. */
6061
+ extrusionColor?: string;
6062
+ /** Contour rim width around the whole solid (`@contourW`). */
6063
+ contourWidth: number;
6064
+ /** Contour colour (`a:contourClr`), `#rrggbb`. */
6065
+ contourColor?: string;
6066
+ /** `@prstMaterial` token. */
6067
+ material: string;
6068
+ }
6069
+ /** One gradient stop, `offset` in 0..1. */
6070
+ interface SmartArt3DGradientStop {
6071
+ offset: number;
6072
+ color: string;
6073
+ }
6074
+ /**
6075
+ * A shape's gradient fill, in mesh-local space: linear from `from` to `to`,
6076
+ * or radial around `from` with the distance to `to` as its radius.
6077
+ */
6078
+ interface SmartArt3DGradient {
6079
+ kind: 'linear' | 'radial';
6080
+ from: SolidPoint2;
6081
+ to: SolidPoint2;
6082
+ stops: SmartArt3DGradientStop[];
6083
+ }
6084
+ /** The light rig (`a:lightRig`) a lit SmartArt scene is shaded with. */
6085
+ interface SmartArt3DLighting {
6086
+ /** `@rig` token, e.g. `threePt`, `flat`, `morning`. */
6087
+ rig: string;
6088
+ /** `@dir` token, e.g. `t`, `tl`. */
6089
+ direction: string;
6090
+ /** Rig revolution about the view axis (`a:rot/@rev`), degrees. */
6091
+ revDeg: number;
6092
+ }
6093
+ /**
6094
+ * The whole-diagram camera of a scene quick style (`dgm:styleDef/dgm:scene3d`).
6095
+ *
6096
+ * The diagram is rotated about its own centre by `latDeg` (about x), `lonDeg`
6097
+ * (about y) and `revDeg` (roll about the view axis), then projected either in
6098
+ * parallel or through a pinhole placed `distance` layout px away, and
6099
+ * finally scaled by `zoom`.
6100
+ */
6101
+ interface SmartArt3DCamera {
6102
+ projection: 'orthographic' | 'perspective';
6103
+ latDeg: number;
6104
+ lonDeg: number;
6105
+ revDeg: number;
6106
+ /**
6107
+ * Camera distance from the diagram centre in layout px (`perspective`
6108
+ * only). Absolute, like PowerPoint's: a larger diagram shows stronger
6109
+ * perspective under the same preset.
6110
+ */
6111
+ distance: number;
6112
+ /** `a:camera/@zoom` as a fraction (1 = 100%). */
6113
+ zoom: number;
6114
+ }
6115
+
5921
6116
  /**
5922
6117
  * Three.js SmartArt renderer - pure model types (phase 1: extruded layouts).
5923
6118
  *
@@ -5931,6 +6126,7 @@ declare function getP14TransitionAnimations(type: PptxTransitionType, durationMs
5931
6126
  * front face of every extruded block facing +z. Layout (SVG) space is y-down
5932
6127
  * with the origin at the top-left; the model builder performs the flip.
5933
6128
  */
6129
+
5934
6130
  /** A point in the world's XZ-agnostic 2D outline space (y-up). */
5935
6131
  interface Point2 {
5936
6132
  x: number;
@@ -6011,6 +6207,13 @@ interface SmartArt3DMesh {
6011
6207
  halfWidth: number;
6012
6208
  /** Half-height of the footprint. */
6013
6209
  halfHeight: number;
6210
+ /**
6211
+ * Lit solid (bevel / extrusion / contour) from the cached shape's `a:sp3d`,
6212
+ * for the `'bevel'` and `'scene'` style categories. Absent: a flat face.
6213
+ */
6214
+ solid?: SmartArt3DSolid;
6215
+ /** Gradient fill to paint instead of {@link fill}, when the shape has one. */
6216
+ gradient?: SmartArt3DGradient;
6014
6217
  }
6015
6218
  /**
6016
6219
  * A multi-line text label, pre-laid-out to match the 2D SVG projection
@@ -6037,6 +6240,14 @@ interface SmartArt3DTextBlock {
6037
6240
  fontFamily?: string;
6038
6241
  fontWeight?: number;
6039
6242
  fontStyle?: 'normal' | 'italic';
6243
+ /**
6244
+ * The label's own extrusion (`a:bodyPr/a:sp3d`, e.g. Bird's Eye Scene),
6245
+ * in layout px toward the viewer: the letters stand this far off the
6246
+ * shape face, and their sides are drawn in {@link extrusionColor} (the
6247
+ * text colour when absent).
6248
+ */
6249
+ extrusion?: number;
6250
+ extrusionColor?: string;
6040
6251
  }
6041
6252
  /** A connector poly-line drawn between meshes on the base plane. */
6042
6253
  interface SmartArt3DConnector {
@@ -6059,10 +6270,11 @@ type SmartArt3DFamily = 'list' | 'process' | 'cycle' | 'hierarchy' | 'matrix' |
6059
6270
  * Which PowerPoint quick-style family this model was built for, so the scene
6060
6271
  * builder can pick the right camera/shading/geometry pipeline: `'flat'`
6061
6272
  * (unlit, zero-depth, orthographic matching the 2D viewBox), `'bevel'`
6062
- * (per-shape `orthographicFront` camera + `shape3d` bevel/material, not yet
6063
- * built by any model builder), or `'scene'` (one whole-diagram camera from
6064
- * the quick style, not yet built). Undefined for the legacy layout-engine
6065
- * model (`buildSmartArt3DModel`), which predates this distinction.
6273
+ * (per-shape `orthographicFront` camera + lit `a:sp3d` bevel/material), or
6274
+ * `'scene'` (one whole-diagram camera from the quick style, lit extruded
6275
+ * solids). See `resolveSmartArt3DStylePath`. Undefined for the legacy
6276
+ * layout-engine model (`buildSmartArt3DModel`), which predates this
6277
+ * distinction.
6066
6278
  */
6067
6279
  type SmartArt3DStyleCategory = 'flat' | 'bevel' | 'scene';
6068
6280
  /** The complete pure 3D model for one SmartArt element. */
@@ -6076,6 +6288,10 @@ interface SmartArt3DModel {
6076
6288
  background?: string;
6077
6289
  /** See {@link SmartArt3DStyleCategory}. */
6078
6290
  styleCategory?: SmartArt3DStyleCategory;
6291
+ /** Whole-diagram camera (`'scene'` only). */
6292
+ camera?: SmartArt3DCamera;
6293
+ /** Light rig the lit solids are shaded with (`'bevel'` / `'scene'`). */
6294
+ lighting?: SmartArt3DLighting;
6079
6295
  }
6080
6296
 
6081
6297
  /**
@@ -6328,6 +6544,267 @@ interface BarChart3DSceneOptions {
6328
6544
  picture?: BarBoxPictureContext;
6329
6545
  }
6330
6546
 
6547
+ /**
6548
+ * Axis labels for the right-angle-axes 3D bar chart
6549
+ * (`chart-3d-oblique-layout.ts`), placed where PowerPoint puts them: off the
6550
+ * FRONT edges of the box, not off the back wall.
6551
+ *
6552
+ * - Value labels: along the front edge of the wall that carries the value
6553
+ * gridlines (left edge for columns, bottom edge for a horizontal chart).
6554
+ * - Category labels: centred on each category along the other front edge.
6555
+ * - `standard` grouping: one series label per depth row, off the right end of
6556
+ * the floor (columns only; PowerPoint's horizontal standard bar has no row
6557
+ * axis labels in its default layout).
6558
+ *
6559
+ * @module chart-3d-oblique-labels
6560
+ */
6561
+
6562
+ /** One label, in chart px. */
6563
+ interface ObliqueLabel {
6564
+ role: 'value' | 'category' | 'series';
6565
+ text: string;
6566
+ x: number;
6567
+ y: number;
6568
+ anchor: 'start' | 'middle' | 'end';
6569
+ /** `central` centres the text on `y`. */
6570
+ baseline: 'central' | 'hanging';
6571
+ fontSize: number;
6572
+ }
6573
+
6574
+ /**
6575
+ * World-space types of the right-angle-axes 3D bar chart layout
6576
+ * (`chart-3d-oblique-layout.ts`).
6577
+ *
6578
+ * @module chart-3d-oblique-types
6579
+ */
6580
+
6581
+ /** One bar as a world-space box. */
6582
+ interface ObliqueBar {
6583
+ x: number;
6584
+ y: number;
6585
+ z: number;
6586
+ /** Extent along world X / Y / Z. */
6587
+ w: number;
6588
+ h: number;
6589
+ d: number;
6590
+ color: string;
6591
+ seriesIndex: number;
6592
+ categoryIndex: number;
6593
+ value: number;
6594
+ /** Resolved `c:shape` (per-series `c:ser/c:shape`, else the chart's). */
6595
+ shape: PptxBar3DShape;
6596
+ /** Cross-section radius at the bar's baseline / value end, as a fraction of the full footprint. */
6597
+ taper: ObliqueTaper;
6598
+ }
6599
+ /** How a shaped bar narrows along the value axis (1 = full footprint, 0 = a point). */
6600
+ interface ObliqueTaper {
6601
+ bottom: number;
6602
+ top: number;
6603
+ }
6604
+ /** A gridline segment in world space. */
6605
+ interface ObliqueGridline {
6606
+ from: readonly [number, number, number];
6607
+ to: readonly [number, number, number];
6608
+ }
6609
+ interface ObliqueChartLayout {
6610
+ horizontal: boolean;
6611
+ grouping: 'clustered' | 'stacked' | 'percentStacked' | 'standard';
6612
+ /** Chart px of world (0, 0, 0): the front-bottom-left corner of the floor. */
6613
+ origin: {
6614
+ x: number;
6615
+ y: number;
6616
+ };
6617
+ /** Screen shift per world unit of depth: `(sin rotY, -sin rotX)`. */
6618
+ shear: {
6619
+ x: number;
6620
+ y: number;
6621
+ };
6622
+ box: {
6623
+ w: number;
6624
+ h: number;
6625
+ d: number;
6626
+ };
6627
+ range: {
6628
+ min: number;
6629
+ max: number;
6630
+ majorUnit: number;
6631
+ };
6632
+ /** Chart px per value unit along the value axis. */
6633
+ valueScale: number;
6634
+ bars: ObliqueBar[];
6635
+ gridlines: ObliqueGridline[];
6636
+ labels: ObliqueLabel[];
6637
+ }
6638
+
6639
+ /**
6640
+ * Axis labels for the perspective 3D chart layout (`chart-3d-persp-layout.ts`),
6641
+ * placed where PowerPoint puts them (offsets measured on `gt/chart-10,11`):
6642
+ *
6643
+ * - Value labels: right-aligned 8pt left of the box's front-left edge.
6644
+ * - Category labels: centred below the front floor edge, 9pt left and 17pt
6645
+ * down from their point on it.
6646
+ * - Series (depth-row) labels: left-aligned off the right floor edge, 9pt right
6647
+ * and 4pt up from their row's centre on it.
6648
+ *
6649
+ * @module chart-3d-persp-labels
6650
+ */
6651
+
6652
+ /** One label, in chart px. */
6653
+ interface PerspLabel {
6654
+ role: 'value' | 'category' | 'series';
6655
+ text: string;
6656
+ x: number;
6657
+ y: number;
6658
+ anchor: 'start' | 'middle' | 'end';
6659
+ fontSize: number;
6660
+ }
6661
+
6662
+ /**
6663
+ * PowerPoint's perspective 3D chart camera (`c:view3D/@rAngAx=0`: line3D,
6664
+ * area3D, surface3D), as a pure projection plus its three.js camera.
6665
+ *
6666
+ * Fitted to PowerPoint's own exports of the three-d-parity deck: the ends and
6667
+ * corners of every wall gridline in `gt/chart-10..12,16` were traced and a
6668
+ * camera fitted to them (0.4-2pt RMS per chart):
6669
+ *
6670
+ * - The plot is a box `w x h x d` (x categories, y values, z depth away from
6671
+ * the viewer). It is yawed by `rotY` about its vertical centre line, then
6672
+ * pitched toward the viewer by `0.92 * rotX` (the fitted pitch was
6673
+ * 13.6-14.0 degrees for every `rotX = 15` chart).
6674
+ * - The camera looks at the box centre from `diagonal / (2 tan(fov / 2))`
6675
+ * away, `fov` being `c:view3D/c:perspective` in degrees (default 30): the
6676
+ * box's bounding sphere just fills the field of view. The fitted distances
6677
+ * were 1.8-1.9 box diagonals.
6678
+ *
6679
+ * A box point `(x, y, z)` (origin at the front-bottom-left corner) lands at
6680
+ * chart px `(cx + f X / Z, cy - f Y / Z)`, `(X, Y, Z)` being the point in
6681
+ * camera space; {@link fitPerspView} picks `f`, `cx`, `cy` so the box fills a
6682
+ * target rect.
6683
+ *
6684
+ * @module chart-3d-persp-view
6685
+ */
6686
+
6687
+ interface PerspBox {
6688
+ w: number;
6689
+ h: number;
6690
+ d: number;
6691
+ }
6692
+ interface PerspCamera {
6693
+ box: PerspBox;
6694
+ /** Yaw (`rotY`) in radians: positive brings the box's right end toward the viewer. */
6695
+ yaw: number;
6696
+ /** Pitch in radians: positive tips the top of the box away (the viewer looks down). */
6697
+ pitch: number;
6698
+ /** Camera distance from the box centre, world units. */
6699
+ dist: number;
6700
+ }
6701
+ interface PerspView extends PerspCamera {
6702
+ /** Focal length: chart px per world unit at unit depth. */
6703
+ focal: number;
6704
+ /** Chart px of the box centre. */
6705
+ cx: number;
6706
+ cy: number;
6707
+ }
6708
+
6709
+ /**
6710
+ * PowerPoint's perspective 3D chart layout (`c:view3D/@rAngAx=0`) for the
6711
+ * cartesian families (line3D, area3D, surface3D): the plot box, the camera
6712
+ * that frames it (`chart-3d-persp-view.ts`), the value axis, where each
6713
+ * category and depth row sits, and the wall gridlines.
6714
+ *
6715
+ * Calibrated against `gt/chart-10..13,16`:
6716
+ *
6717
+ * - The box is 1 unit wide (categories), `boxHeight` tall and one category
6718
+ * slot deep per depth row: a mark (area slab, line ribbon) is
6719
+ * `slot / (1 + gapWidth)` deep and each row `mark * (1 + gapDepth)`, which
6720
+ * with the 150/150 defaults is exactly one slot (fitted: 0.94-1.04).
6721
+ * `standard` grouping (and line3D) gives each series a row, series 1 in
6722
+ * front; stacked groupings share one row. A surface spans the whole floor.
6723
+ * - Categories sit at the slot centres (`c:crossBetween="between"`) or on the
6724
+ * slot edges, first and last on the walls (`midCat`, area and surface's
6725
+ * default).
6726
+ * - The value axis has no headroom (data topping out at 35 gets 0..35).
6727
+ * - The box fills a plot rect calibrated from the same exports, centred and
6728
+ * floor-aligned; walls carry gridlines only, the floor its two outer edges.
6729
+ *
6730
+ * @module chart-3d-persp-layout
6731
+ */
6732
+
6733
+ type PerspKind = 'line' | 'area' | 'surface' | 'bar';
6734
+ type PerspGrouping = 'standard' | 'clustered' | 'stacked' | 'percentStacked';
6735
+ /** A gridline segment in box space. */
6736
+ interface PerspGridline {
6737
+ from: readonly [number, number, number];
6738
+ to: readonly [number, number, number];
6739
+ }
6740
+ interface PerspChartLayout {
6741
+ kind: PerspKind;
6742
+ grouping: PerspGrouping;
6743
+ view: PerspView;
6744
+ range: {
6745
+ min: number;
6746
+ max: number;
6747
+ majorUnit: number;
6748
+ };
6749
+ /** Box units per value unit. */
6750
+ valueScale: number;
6751
+ /** Box x of each category. */
6752
+ categoryX: number[];
6753
+ /** Number of depth rows and each row's depth. */
6754
+ rows: number;
6755
+ rowDepth: number;
6756
+ /** Depth of a slab or ribbon, centred in its row. */
6757
+ markDepth: number;
6758
+ /** Series colours, by series index. */
6759
+ colors: string[];
6760
+ gridlines: PerspGridline[];
6761
+ labels: PerspLabel[];
6762
+ }
6763
+
6764
+ /**
6765
+ * PowerPoint's 3-D Pie (`c:pie3DChart`) as a disc in the perspective chart
6766
+ * camera (`chart-3d-persp-view.ts`), fitted to `gt/chart-14,15`:
6767
+ *
6768
+ * - The pie is a puck of radius 1 and thickness `0.23` (box `2 x 0.23 x 2`,
6769
+ * scaled by `c:view3D/@hPercent`), pitched `0.91 * rotX` toward the viewer
6770
+ * (27.2 degrees fitted for rotX 30) and seen from `1.38` box diagonals: a
6771
+ * closer camera than the cartesian charts use, so the front of the pie is
6772
+ * visibly larger than the back.
6773
+ * - The first slice starts at 12 o'clock (plus `c:firstSliceAng`) and slices
6774
+ * run clockwise seen from above.
6775
+ * - The unexploded puck fits the plot rect; exploding shrinks the radius by
6776
+ * `1 / (1 + explosion)` and moves each slice out along its bisector by its
6777
+ * own explosion, so an exploded pie keeps the same footprint.
6778
+ *
6779
+ * @module chart-3d-pie-layout
6780
+ */
6781
+
6782
+ interface PieSlice {
6783
+ pointIndex: number;
6784
+ value: number;
6785
+ color: string;
6786
+ /** Clockwise from 12 o'clock, radians. */
6787
+ startAngle: number;
6788
+ endAngle: number;
6789
+ /** Box-space offset of the exploded slice. */
6790
+ offset: {
6791
+ x: number;
6792
+ z: number;
6793
+ };
6794
+ }
6795
+ interface PieChartLayout {
6796
+ view: PerspView;
6797
+ /** Box-space centre of the pie's top face (its bottom face sits on y = 0). */
6798
+ center: {
6799
+ x: number;
6800
+ y: number;
6801
+ z: number;
6802
+ };
6803
+ radius: number;
6804
+ thickness: number;
6805
+ slices: PieSlice[];
6806
+ }
6807
+
6331
6808
  /**
6332
6809
  * chart-3d-projection.ts: resolve a chart's `c:view3D` into the projection
6333
6810
  * PowerPoint actually draws it with.
@@ -6560,43 +7037,29 @@ interface SurfaceChart3DSceneOptions {
6560
7037
  */
6561
7038
 
6562
7039
  /**
6563
- * One `bar3D` box: front-face rectangle in the flat 2D view-model's own SVG
6564
- * pixel space (already gap-width/clustering/stacking-correct), extruded
6565
- * backward in world Z by `depthMagnitude`.
7040
+ * A right-angle-axes `bar3D` chart laid out as a real box in world space
7041
+ * (walls, gridlines, bars, axis labels); see `chart-3d-oblique-layout.ts`.
6566
7042
  */
6567
- interface Chart3DBarBox {
6568
- x: number;
6569
- y: number;
6570
- w: number;
6571
- h: number;
6572
- color: string;
6573
- seriesIndex: number;
6574
- categoryIndex: number;
6575
- /** The point's authored value (hover tooltip, drag start). */
6576
- value: number;
6577
- shape: PptxBar3DShape | undefined;
6578
- /**
6579
- * World-Z extrusion depth (SVG px units), the SAME quantity the flat 2D
6580
- * fallback's `chart-3d-depth.ts#computeDepthVector` uses for its
6581
- * `magnitude`. Every box in a supported (`clustered` / `stacked` /
6582
- * `percentStacked`) grouping shares one chart-wide depth: those groupings
6583
- * keep every series COPLANAR (one Z plane), matching PowerPoint's own
6584
- * `gt/chart-01.webp` (no visible per-series depth separation). `standard`
6585
- * grouping (each series its own full depth ROW, see `gt/chart-04.webp`)
6586
- * is NOT yet modelled; see the chart track's progress log.
6587
- */
6588
- depthMagnitude: number;
7043
+ interface Chart3DObliqueGeometry {
7044
+ kind: 'oblique';
7045
+ layout: ObliqueChartLayout;
6589
7046
  }
6590
- interface Chart3DBarGeometry {
6591
- kind: 'bar';
6592
- boxes: readonly Chart3DBarBox[];
7047
+ /** A perspective (`rAngAx=0`) line / area chart on PowerPoint's box (`chart-3d-persp-layout.ts`). */
7048
+ interface Chart3DPerspGeometry {
7049
+ kind: 'perspective';
7050
+ layout: PerspChartLayout;
7051
+ }
7052
+ /** A 3-D Pie on PowerPoint's fitted perspective camera (`chart-3d-pie-layout.ts`). */
7053
+ interface Chart3DPieGeometry {
7054
+ kind: 'pie';
7055
+ layout: PieChartLayout;
6593
7056
  }
6594
- /** `null` until a chart type/grouping's oblique geometry is implemented; the scene then uses {@link Chart3DSpec.perspective}. */
6595
- type Chart3DGeometry = Chart3DBarGeometry | null;
7057
+ /** `null` until a chart type's geometry is implemented; the scene then uses {@link Chart3DSpec.perspective}. */
7058
+ type Chart3DGeometry = Chart3DObliqueGeometry | Chart3DPerspGeometry | Chart3DPieGeometry | null;
6596
7059
  /**
6597
7060
  * The perspective scene a chart falls back to when the oblique geometry does
6598
- * not cover it yet (line/area/pie/surface, and bar3D's `standard` grouping,
6599
- * horizontal bars and round shapes). Each is a hosted scene module from the
7061
+ * not cover it (line/area/pie/surface, and a bar3D chart without right-angle
7062
+ * axes). Each is a hosted scene module from the
6600
7063
  * pre-`<pptx-three-view>` renderer, now drawn through the shared renderer.
6601
7064
  */
6602
7065
  type Chart3DPerspectiveScene = {
@@ -6705,6 +7168,61 @@ declare function canAddTopLevelNode(layout: SmartArtLayoutType | undefined, topL
6705
7168
  /** Whether removing a top-level node keeps the count at or above the min. */
6706
7169
  declare function canRemoveTopLevelNode(layout: SmartArtLayoutType | undefined, topLevelCount: number): boolean;
6707
7170
 
7171
+ /**
7172
+ * SVG gradient paint servers for cached SmartArt drawing shapes (`a:gradFill`).
7173
+ * Split out of `smartart-drawing.ts`.
7174
+ *
7175
+ * @module render/smartart-drawing-gradient
7176
+ */
7177
+
7178
+ /** One stop of a cached shape's gradient fill, ready to place as an SVG `<stop>`. */
7179
+ interface RenderedGradientStop {
7180
+ /** Percentage offset, e.g. `"37%"`. */
7181
+ offset: string;
7182
+ color: string;
7183
+ opacity?: number;
7184
+ }
7185
+ /**
7186
+ * A gradient paint server for a cached shape, in SVG terms.
7187
+ *
7188
+ * The OOXML angle is already converted to the axis endpoints here, because a
7189
+ * gradient is not expressible as a plain `fill` string: the binding has to emit
7190
+ * a `<defs>` entry and reference it. Keeping the geometry on this side means the
7191
+ * conversion happens once instead of once per binding.
7192
+ */
7193
+ interface RenderedGradient {
7194
+ /** Element id to emit and reference; unique within the diagram. */
7195
+ id: string;
7196
+ kind: 'linear' | 'radial';
7197
+ /** Axis endpoints as percentages (`kind === 'linear'`). */
7198
+ x1?: string;
7199
+ y1?: string;
7200
+ x2?: string;
7201
+ y2?: string;
7202
+ /** Centre and radius as percentages (`kind === 'radial'`). */
7203
+ cx?: string;
7204
+ cy?: string;
7205
+ r?: string;
7206
+ stops: RenderedGradientStop[];
7207
+ }
7208
+
7209
+ /**
7210
+ * The SVG `viewBox` that fits a SmartArt drawing's cached shapes. Split out of
7211
+ * `smartart-drawing.ts`.
7212
+ *
7213
+ * @module render/smartart-drawing-viewbox
7214
+ */
7215
+
7216
+ /** SVG `viewBox` bounding-box derived from all drawing shapes. */
7217
+ interface DrawingViewBox {
7218
+ minX: number;
7219
+ minY: number;
7220
+ width: number;
7221
+ height: number;
7222
+ }
7223
+ /** Compute the SVG viewBox that fits all drawing shapes, rebasing to (0, 0). */
7224
+ declare function computeDrawingViewBox(shapes: readonly PptxSmartArtDrawingShape[]): DrawingViewBox;
7225
+
6708
7226
  /**
6709
7227
  * Line layout for centred SVG labels (SmartArt nodes and cached shapes).
6710
7228
  *
@@ -6737,6 +7255,7 @@ interface SvgTextLine {
6737
7255
 
6738
7256
  /** Built-in named colour palettes (mirrors the Vue/React `PALETTES`). */
6739
7257
  declare const PALETTES: Record<SmartArtColorScheme, string[]>;
7258
+
6740
7259
  declare const DEFAULT_PALETTE: string[];
6741
7260
  /** Pick a colour from `palette`, wrapping `index` around its length. */
6742
7261
  declare function paletteColour(index: number, palette: string[]): string;
@@ -6757,36 +7276,6 @@ declare function buildChromeStyle(chrome: PptxSmartArtChrome | undefined): CssSt
6757
7276
  * primitive cannot leave four bindings behind.
6758
7277
  */
6759
7278
  type RenderedShapeKind = 'image' | 'ellipse' | 'path' | 'rect';
6760
- /** One stop of a cached shape's gradient fill, ready to place as an SVG `<stop>`. */
6761
- interface RenderedGradientStop {
6762
- /** Percentage offset, e.g. `"37%"`. */
6763
- offset: string;
6764
- color: string;
6765
- opacity?: number;
6766
- }
6767
- /**
6768
- * A gradient paint server for a cached shape, in SVG terms.
6769
- *
6770
- * The OOXML angle is already converted to the axis endpoints here, because a
6771
- * gradient is not expressible as a plain `fill` string: the binding has to emit
6772
- * a `<defs>` entry and reference it. Keeping the geometry on this side means the
6773
- * conversion happens once instead of once per binding.
6774
- */
6775
- interface RenderedGradient {
6776
- /** Element id to emit and reference; unique within the diagram. */
6777
- id: string;
6778
- kind: 'linear' | 'radial';
6779
- /** Axis endpoints as percentages (`kind === 'linear'`). */
6780
- x1?: string;
6781
- y1?: string;
6782
- x2?: string;
6783
- y2?: string;
6784
- /** Centre and radius as percentages (`kind === 'radial'`). */
6785
- cx?: string;
6786
- cy?: string;
6787
- r?: string;
6788
- stops: RenderedGradientStop[];
6789
- }
6790
7279
  /** Projected view-model for a single pre-computed drawing shape. */
6791
7280
  interface RenderedShape {
6792
7281
  key: string;
@@ -6809,6 +7298,11 @@ interface RenderedShape {
6809
7298
  cy: number;
6810
7299
  /** Paint for the body, or `'none'` when the shape declares `a:noFill`. */
6811
7300
  fill: string;
7301
+ /**
7302
+ * Opacity (0..1) to paint a solid {@link fill} at, from the cached colour's
7303
+ * `a:alpha`; absent when opaque. Maps onto SVG `fill-opacity`.
7304
+ */
7305
+ fillOpacity?: number;
6812
7306
  stroke: string;
6813
7307
  strokeWidth: number;
6814
7308
  transform: string | undefined;
@@ -6836,15 +7330,6 @@ interface RenderedShape {
6836
7330
  fontWeight?: number;
6837
7331
  fontStyle?: 'normal' | 'italic';
6838
7332
  }
6839
- /** SVG `viewBox` bounding-box derived from all drawing shapes. */
6840
- interface DrawingViewBox {
6841
- minX: number;
6842
- minY: number;
6843
- width: number;
6844
- height: number;
6845
- }
6846
- /** Compute the SVG viewBox that fits all drawing shapes, rebasing to (0, 0). */
6847
- declare function computeDrawingViewBox(shapes: readonly PptxSmartArtDrawingShape[]): DrawingViewBox;
6848
7333
  /**
6849
7334
  * Project raw `PptxSmartArtDrawingShape`s into `RenderedShape` view-models,
6850
7335
  * rebasing positions relative to the viewBox origin.
@@ -7857,6 +8342,18 @@ interface OutlineRow {
7857
8342
  /** A logical editor command produced by one key press. */
7858
8343
  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';
7859
8344
 
8345
+ /**
8346
+ * The Merge Shapes menu as data: one entry per operation with its i18n key and
8347
+ * the context-menu command id it answers to, so the ribbon dropdown and the
8348
+ * right-click entries in all five bindings list the same operations in the
8349
+ * same order under the same names.
8350
+ *
8351
+ * @module render/merge-shapes/merge-shapes-menu
8352
+ */
8353
+
8354
+ /** The right-click command id for each operation. */
8355
+ type MergeShapesCommandId = 'merge-union' | 'merge-combine' | 'merge-fragment' | 'merge-intersect' | 'merge-subtract';
8356
+
7860
8357
  /**
7861
8358
  * The one definition of what the canvas context menu contains.
7862
8359
  *
@@ -7881,7 +8378,7 @@ type EditorKeyActionName = 'undo' | 'redo' | 'copy' | 'cut' | 'paste' | 'duplica
7881
8378
  */
7882
8379
 
7883
8380
  /** Every command a canvas context menu can offer, in no particular order. */
7884
- 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';
8381
+ 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';
7885
8382
  /** One rendered entry: a command, plus how it is presented. */
7886
8383
  interface ContextMenuEntry {
7887
8384
  id: ContextMenuCommandId;
@@ -9586,7 +10083,7 @@ declare function saveViewerProfile(profile: ViewerProfile): void;
9586
10083
  * whole control cluster (zoom in/out/fit, prev/next) rather than each button
9587
10084
  * in it, matching how hosts actually want to hide/keep them as a unit.
9588
10085
  */
9589
- type ToolbarButtonId = 'share' | 'broadcast' | 'export' | 'undo' | 'redo' | 'record' | 'notes' | 'fullscreen' | 'zoom' | 'navigation';
10086
+ type ToolbarButtonId = 'share' | 'broadcast' | 'export' | 'undo' | 'redo' | 'record' | 'notes' | 'fullscreen' | 'zoom' | 'navigation' | 'mergeShapes' | 'crop';
9590
10087
  /** 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. */
9591
10088
  type ToolbarTabId = 'file' | 'home' | 'insert' | 'draw' | 'design' | 'transitions' | 'animations' | 'slideShow' | 'record' | 'review' | 'view' | 'help';
9592
10089
  type ToolbarActionId = ToolbarButtonId | ToolbarTabId;
@@ -9906,6 +10403,30 @@ interface Rendering3DFlags {
9906
10403
  pieChart3D: boolean;
9907
10404
  }
9908
10405
 
10406
+ /** Every command the Edit Points right-click menu can offer. */
10407
+ type EditPointsCommandId = 'add-point' | 'delete-point' | 'delete-segment' | 'open-path' | 'close-path' | 'smooth-point' | 'straight-point' | 'corner-point' | 'straight-segment' | 'curved-segment' | 'exit';
10408
+
10409
+ /**
10410
+ * Geometry for PowerPoint's Insert > Shapes > Lines drawing tools that build
10411
+ * an `a:custGeom` freeform from clicks:
10412
+ *
10413
+ * - **Freeform: Shape** (`freeformShape`): each click places a corner; a drag
10414
+ * between clicks adds a freehand run (simplified, then drawn as short
10415
+ * straight segments, as PowerPoint stores it);
10416
+ * - **Curve** (`curve`): each click places a point the outline passes
10417
+ * through smoothly (a Catmull-Rom spline, emitted as cubic Beziers).
10418
+ *
10419
+ * Both close when the user clicks back on the start point, and otherwise stay
10420
+ * open. The element box, EMU path space and serialisation are the same as an
10421
+ * Edit Points commit (`editGeometryToElementPatch`), so a drawn freeform is
10422
+ * byte-for-byte the kind of shape Edit Points produces.
10423
+ *
10424
+ * @module render/edit-points/freeform-tool-geometry
10425
+ */
10426
+
10427
+ /** The two click-to-place drawing tools. */
10428
+ type FreeformToolKind = 'freeformShape' | 'curve';
10429
+
9909
10430
  /**
9910
10431
  * Control/section/tab descriptor types for the File > Options schema, plus
9911
10432
  * the terse constructors the tab-definition modules build panes with.
@@ -10049,6 +10570,11 @@ interface ContextMenuCustomization {
10049
10570
  hiddenElementCommands?: readonly ContextMenuCommandId[];
10050
10571
  /** Entries to remove from the empty-canvas menu. */
10051
10572
  hiddenCanvasCommands?: readonly CanvasContextMenuCommandId[];
10573
+ /**
10574
+ * Entries to remove from the Edit Points menu (right-click a vertex or a
10575
+ * segment while editing a shape's points).
10576
+ */
10577
+ hiddenEditPointsCommands?: readonly EditPointsCommandId[];
10052
10578
  /** Remove the element context menu entirely. */
10053
10579
  disableElementMenu?: boolean;
10054
10580
  /** Remove the empty-canvas context menu entirely. */
@@ -10078,7 +10604,12 @@ interface KeyboardCustomization {
10078
10604
  */
10079
10605
  type ViewerPanelId = 'statusBar' | 'slidesPane' | 'inspector' | 'notes' | 'quickAccessToolbar' | 'titleBar';
10080
10606
  /** Feature areas that can be switched off as a whole. */
10081
- type ViewerFeatureId = 'ai' | 'collaboration' | 'comments' | 'presentMode';
10607
+ type ViewerFeatureId = 'ai' | 'collaboration' | 'comments' | 'presentMode' | 'editPoints';
10608
+ /**
10609
+ * The click-to-place drawing tools of Insert > Shapes > Lines: Freeform:
10610
+ * Shape and Curve.
10611
+ */
10612
+ type ViewerDrawingToolId = FreeformToolKind;
10082
10613
  /** Dialogs (and the entry points that open them) a host can remove. */
10083
10614
  type ViewerDialogId = 'options' | 'share' | 'broadcast' | 'print' | 'export';
10084
10615
  /** Export formats offered by the File > Export page. */
@@ -10101,6 +10632,8 @@ interface ViewerCustomization {
10101
10632
  hiddenDialogs?: readonly ViewerDialogId[];
10102
10633
  /** Export formats to remove from File > Export. */
10103
10634
  hiddenExportFormats?: readonly ViewerExportFormatId[];
10635
+ /** Drawing tools to remove from the Insert > Shapes gallery. */
10636
+ hiddenDrawingTools?: readonly ViewerDrawingToolId[];
10104
10637
  }
10105
10638
 
10106
10639
  /**
@@ -10175,17 +10708,17 @@ interface ViewerOptionsStore {
10175
10708
  }
10176
10709
 
10177
10710
  declare const RIBBON_TAB_IDS: readonly ToolbarTabId[];
10178
- declare const TOOLBAR_BUTTON_IDS: readonly ["share", "broadcast", "export", "undo", "redo", "record", "notes", "fullscreen", "zoom", "navigation"];
10711
+ declare const TOOLBAR_BUTTON_IDS: readonly ["share", "broadcast", "export", "undo", "redo", "record", "notes", "fullscreen", "zoom", "navigation", "mergeShapes", "crop"];
10179
10712
  declare const OPTIONS_PAGE_IDS: readonly OptionsPageId[];
10180
10713
  declare const OPTIONS_SECTION_IDS: readonly OptionsSectionId[];
10181
10714
  declare const OPTIONS_SETTING_IDS: readonly OptionsSettingId[];
10182
10715
  declare const BACKSTAGE_PAGE_IDS: readonly BackstagePage[];
10183
10716
  declare const BACKSTAGE_CARD_IDS: readonly BackstageCardId[];
10184
- 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"];
10717
+ 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"];
10185
10718
  declare const CANVAS_CONTEXT_MENU_COMMAND_IDS: readonly ["paste", "layout", "reset-slide", "format-background", "grid-and-guides", "ruler"];
10186
10719
  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"];
10187
10720
  declare const VIEWER_PANEL_IDS: readonly ["statusBar", "slidesPane", "inspector", "notes", "quickAccessToolbar", "titleBar"];
10188
- declare const VIEWER_FEATURE_IDS: readonly ["ai", "collaboration", "comments", "presentMode"];
10721
+ declare const VIEWER_FEATURE_IDS: readonly ["ai", "collaboration", "comments", "presentMode", "editPoints"];
10189
10722
  declare const VIEWER_DIALOG_IDS: readonly ["options", "share", "broadcast", "print", "export"];
10190
10723
  declare const VIEWER_EXPORT_FORMAT_IDS: readonly ["pdf", "png", "video", "gif", "json", "copyImage"];
10191
10724
 
@@ -10214,6 +10747,7 @@ interface ResolvedKeyboardCustomization {
10214
10747
  * - switching off `collaboration` removes the Share and Broadcast dialogs;
10215
10748
  * - switching off `comments` removes the Add Comment menu entry;
10216
10749
  * - switching off `presentMode` removes the Slide Show tab;
10750
+ * - switching off `editPoints` removes the Edit Points menu entry;
10217
10751
  * - hiding a dialog removes every entry point that opens it (toolbar button,
10218
10752
  * File tab page, action card);
10219
10753
  * - hiding every export format removes the Export page and button.
@@ -10233,6 +10767,8 @@ interface ResolvedCustomization {
10233
10767
  hiddenBackstageCards: ReadonlySet<BackstageCardId>;
10234
10768
  hiddenElementCommands: ReadonlySet<ContextMenuCommandId>;
10235
10769
  hiddenCanvasCommands: ReadonlySet<CanvasContextMenuCommandId>;
10770
+ hiddenEditPointsCommands: ReadonlySet<EditPointsCommandId>;
10771
+ hiddenDrawingTools: ReadonlySet<ViewerDrawingToolId>;
10236
10772
  elementMenuEnabled: boolean;
10237
10773
  canvasMenuEnabled: boolean;
10238
10774
  hiddenPanels: ReadonlySet<ViewerPanelId>;
@@ -10496,6 +11032,64 @@ interface ViewportFitOptions {
10496
11032
  maxFitScale?: number | null;
10497
11033
  }
10498
11034
 
11035
+ /**
11036
+ * The geometry of PowerPoint's on-canvas picture crop.
11037
+ *
11038
+ * In crop mode two rectangles matter: the FRAME (the element's box, what stays
11039
+ * visible) and the IMAGE (the whole bitmap, cropped-away parts included).
11040
+ * `a:srcRect` ties them together: each inset is the fraction of the image cut
11041
+ * off that side, so `image = frame` grown by those fractions. Dragging a black
11042
+ * crop handle moves a frame edge while the image stays put; dragging inside the
11043
+ * frame pans the image while the frame stays put. Both reduce to "new frame,
11044
+ * new image, recompute the insets", which is all this module does.
11045
+ *
11046
+ * Everything here is in the element's own (unrotated) axes; a binding with a
11047
+ * rotated picture converts pointer deltas with {@link toElementAxes} first.
11048
+ *
11049
+ * @module render/picture-crop/crop-geometry
11050
+ */
11051
+
11052
+ /** An axis-aligned rectangle in slide pixels. */
11053
+ interface CropRect {
11054
+ x: number;
11055
+ y: number;
11056
+ width: number;
11057
+ height: number;
11058
+ }
11059
+ /** The four `a:srcRect` insets as fractions of the image (negative pads). */
11060
+ interface CropInsets {
11061
+ cropLeft: number;
11062
+ cropTop: number;
11063
+ cropRight: number;
11064
+ cropBottom: number;
11065
+ }
11066
+ /** What a crop edit writes back onto the picture element. */
11067
+ type CropElementUpdate = CropInsets & CropRect;
11068
+
11069
+ /**
11070
+ * Crop mode's lifecycle, shared so every binding enters, commits and cancels
11071
+ * it the same way:
11072
+ *
11073
+ * - Enter: the Crop ribbon button, the picture context menu's Crop entry.
11074
+ * Only a croppable picture ({@link canCropElement}) enters.
11075
+ * - While in crop mode, handle and pan drags update the picture LIVE (so the
11076
+ * renderer shows the new `a:srcRect` as it changes) without recording undo.
11077
+ * - Enter, a click outside the picture, selecting something else, or pressing
11078
+ * the Crop button again COMMITS: one undo step from the snapshot taken on
11079
+ * entry to the current state (none when nothing changed).
11080
+ * - Escape CANCELS: the snapshot is written back and no undo step is left.
11081
+ *
11082
+ * @module render/picture-crop/crop-session
11083
+ */
11084
+
11085
+ /** The snapshot a crop session restores on cancel. */
11086
+ interface CropSession {
11087
+ elementId: string;
11088
+ original: CropElementUpdate;
11089
+ /** Insets the picture did not carry at all (no `a:srcRect` opinion). */
11090
+ absentInsets: readonly (keyof CropInsets)[];
11091
+ }
11092
+
10499
11093
  /**
10500
11094
  * Minimal GIF89a encoder (pure JS, no external dependency) plus pure
10501
11095
  * frame-planning helpers — shared by the React, Vue, and Angular bindings.
@@ -12121,7 +12715,8 @@ declare class EditorStateService {
12121
12715
  /**
12122
12716
  * Apply a live transform during a gesture WITHOUT recording history (the
12123
12717
  * gesture's snapshot was taken in {@link beginTransform}). Accepts any subset
12124
- * of x/y/width/height. Routes by id: template (master/layout) elements mutate
12718
+ * of x/y/width/height (plus a picture's crop insets, for crop mode's live
12719
+ * handle drags). Routes by id: template (master/layout) elements mutate
12125
12720
  * the template store, normal elements mutate the slide.
12126
12721
  */
12127
12722
  applyTransform(slideIndex: number, id: string, box: {
@@ -12130,6 +12725,10 @@ declare class EditorStateService {
12130
12725
  width?: number;
12131
12726
  height?: number;
12132
12727
  rotation?: number;
12728
+ cropLeft?: number;
12729
+ cropTop?: number;
12730
+ cropRight?: number;
12731
+ cropBottom?: number;
12133
12732
  }): void;
12134
12733
  /**
12135
12734
  * Recompute the endpoints of every connector bound to one of `movedIds` and
@@ -12677,6 +13276,26 @@ declare class MobileBottomBarComponent {
12677
13276
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<MobileBottomBarComponent, "pptx-mobile-bottom-bar", never, { "slideCount": { "alias": "slideCount"; "required": false; "isSignal": true; }; "commentCount": { "alias": "commentCount"; "required": false; "isSignal": true; }; "activeSheet": { "alias": "activeSheet"; "required": false; "isSignal": true; }; }, { "openSlides": "openSlides"; "insert": "insert"; "openFormat": "openFormat"; "openComments": "openComments"; "notes": "notes"; }, never, never, true, never>;
12678
13277
  }
12679
13278
 
13279
+ declare class OutlineAuthoringService {
13280
+ private readonly editor;
13281
+ /** The shape in Edit Points mode, or null. */
13282
+ readonly editPointsElementId: _angular_core.WritableSignal<string | null>;
13283
+ /** The armed click-to-place drawing tool, or null. */
13284
+ readonly activeFreeformTool: _angular_core.WritableSignal<FreeformToolKind | null>;
13285
+ /**
13286
+ * The canvas selection with the Edit Points shape removed, so its resize
13287
+ * and rotate handles do not sit on top of its vertex handles.
13288
+ */
13289
+ readonly canvasSelectedIds: _angular_core.Signal<readonly string[]>;
13290
+ /** Enter Edit Points on `element` when its outline may be edited. */
13291
+ startEditPoints(element: PptxElement | null | undefined): void;
13292
+ exitEditPoints(): void;
13293
+ /** Arm a drawing tool (null disarms). */
13294
+ armFreeformTool(tool: FreeformToolKind | null): void;
13295
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<OutlineAuthoringService, never>;
13296
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<any>;
13297
+ }
13298
+
12680
13299
  /** The deck after an outline edit, plus the slide the editor should land on. */
12681
13300
  interface OutlineCommit {
12682
13301
  slides: PptxSlide[];
@@ -15019,6 +15638,7 @@ declare class PowerPointViewerComponent extends ViewerCustomizationHandle implem
15019
15638
  protected readonly fileIO: ViewerFileIOService;
15020
15639
  protected readonly themeGallery: ViewerThemeGalleryService;
15021
15640
  protected readonly canvasEditing: ViewerCanvasEditingService;
15641
+ protected readonly outlineAuthoring: OutlineAuthoringService;
15022
15642
  /** Shared AI panel scope + on-canvas highlight store (pick mode, tool focus). */
15023
15643
  protected readonly aiPanelStore: AiPanelStore;
15024
15644
  protected readonly collabCursor: ViewerCollabCursorService;
@@ -15748,6 +16368,46 @@ declare class GoogleWebfontsService {
15748
16368
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<any>;
15749
16369
  }
15750
16370
 
16371
+ /** A live crop session and the slide its picture sits on. */
16372
+ interface PictureCropState {
16373
+ slideIndex: number;
16374
+ session: CropSession;
16375
+ }
16376
+ declare class PictureCropService {
16377
+ private readonly editor;
16378
+ /** The live session, or null outside crop mode. */
16379
+ readonly state: _angular_core.WritableSignal<PictureCropState | null>;
16380
+ /** Id of the picture in crop mode, or null. */
16381
+ readonly activeElementId: _angular_core.Signal<string | null>;
16382
+ /** Whether `id` is the picture currently in crop mode. */
16383
+ isCropping(id: string | null | undefined): boolean;
16384
+ /**
16385
+ * Enter crop mode on `element` (a croppable picture) on slide `slideIndex`.
16386
+ * A session on another picture is committed first. Returns whether crop
16387
+ * mode is now active on `element`.
16388
+ */
16389
+ enter(slideIndex: number, element: PptxElement | null | undefined): boolean;
16390
+ /** The ribbon Crop button: enter, or commit when already cropping. */
16391
+ toggle(slideIndex: number, element: PptxElement | null | undefined): void;
16392
+ /** Apply a live handle / pan update WITHOUT recording history. */
16393
+ applyLive(update: CropElementUpdate): void;
16394
+ /** End the session, leaving one undo step when the crop changed anything. */
16395
+ commit(): void;
16396
+ /** Commit, but only while `session` is still the live one. */
16397
+ commitSession(session: CropSession | null | undefined): void;
16398
+ /** Escape: restore the snapshot and leave no history. */
16399
+ cancel(): void;
16400
+ /**
16401
+ * Crop mode's own keys (Enter commits, Escape cancels). Returns true when
16402
+ * the key was consumed, so the caller skips its normal handling for it
16403
+ * (an Escape that cancels a crop must not also deselect or close chrome).
16404
+ */
16405
+ handleKeyDown(event: KeyboardEvent): boolean;
16406
+ private elementOf;
16407
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<PictureCropService, never>;
16408
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<any>;
16409
+ }
16410
+
15751
16411
  /**
15752
16412
  * The host's opt-in 3D rendering flags (`smartArt3D`, `surfaceChart3D`,
15753
16413
  * `barChart3D`, `lineChart3D`, `areaChart3D`, `pieChart3D`), already narrowed
@@ -15865,6 +16525,7 @@ declare class ViewerKeyboardService {
15865
16525
  private readonly docProperties;
15866
16526
  private readonly canvasEditing;
15867
16527
  private readonly customization;
16528
+ private readonly crop;
15868
16529
  private host;
15869
16530
  /** Wire the host accessors (called once from the component constructor). */
15870
16531
  bind(host: KeyboardHost): void;
@@ -15994,7 +16655,7 @@ declare class ZoomTargetService {
15994
16655
  * `PowerPointViewerComponent`'s children (ribbon, slide canvas, inspector,
15995
16656
  * dialogs, ...) rely on via `inject()`.
15996
16657
  */
15997
- declare const POWER_POINT_VIEWER_PROVIDERS: readonly [typeof LoadContentService, typeof LoadNoticesService, typeof ExportService, typeof EditorStateService, typeof ChartPartSelectionService, typeof TableSelectionService, typeof EmbeddedFontsService, typeof GoogleWebfontsService, typeof CollaborationService, typeof CustomFontsService, typeof AccessibilityService, typeof AutosaveService, typeof AutosaveRecoveryService, typeof PrintService, typeof IsMobileService, typeof Rendering3DService, typeof FieldContextService, typeof RecentColorsService, typeof ZoomTargetService, typeof AiPanelStore, typeof ViewerDialogsService, typeof ViewerCompareService, typeof ViewerExportService, typeof ViewerFindReplaceService, typeof ViewerCustomShowsService, typeof ViewerCollaborationSessionService, typeof ViewerCanvasEditingService, typeof ViewerCollabCursorService, typeof ViewerDocumentPropertiesService, typeof ViewerFileIOService, typeof ViewerFormatPainterService, typeof ViewerInspectorPanelService, typeof ViewerKeyboardService, typeof ViewerMobileSheetService, typeof ViewerOptionsService, typeof ViewerCustomizationService, typeof ViewerPresentationModeService, typeof ViewerThemeGalleryService, typeof ViewerTouchGesturesService, typeof ViewerZoomService];
16658
+ declare const POWER_POINT_VIEWER_PROVIDERS: readonly [typeof LoadContentService, typeof LoadNoticesService, typeof ExportService, typeof EditorStateService, typeof ChartPartSelectionService, typeof TableSelectionService, typeof EmbeddedFontsService, typeof GoogleWebfontsService, typeof CollaborationService, typeof CustomFontsService, typeof AccessibilityService, typeof AutosaveService, typeof AutosaveRecoveryService, typeof PrintService, typeof IsMobileService, typeof Rendering3DService, typeof FieldContextService, typeof RecentColorsService, typeof ZoomTargetService, typeof AiPanelStore, typeof ViewerDialogsService, typeof ViewerCompareService, typeof ViewerExportService, typeof ViewerFindReplaceService, typeof ViewerCustomShowsService, typeof ViewerCollaborationSessionService, typeof ViewerCanvasEditingService, typeof ViewerCollabCursorService, typeof ViewerDocumentPropertiesService, typeof ViewerFileIOService, typeof ViewerFormatPainterService, typeof ViewerInspectorPanelService, typeof ViewerKeyboardService, typeof ViewerMobileSheetService, typeof ViewerOptionsService, typeof ViewerCustomizationService, typeof ViewerPresentationModeService, typeof ViewerThemeGalleryService, typeof ViewerTouchGesturesService, typeof ViewerZoomService, typeof OutlineAuthoringService, typeof PictureCropService];
15998
16659
 
15999
16660
  /** Lifecycle of the AI session bootstrap. */
16000
16661
  type AiChatInitState = 'checking' | 'unavailable' | 'ready' | 'error';
@@ -17287,6 +17948,13 @@ declare class SlideCanvasComponent implements SlideContext {
17287
17948
  private elementById;
17288
17949
  /** The single selected element itself (not just its box), or null. */
17289
17950
  private readonly singleSelectedElement;
17951
+ private readonly pictureCrop;
17952
+ /**
17953
+ * The picture in crop mode, when it is this editable canvas's single
17954
+ * selection. Drives the crop overlay and hides the normal resize / rotate /
17955
+ * adjust handles for it (the overlay also swallows its move-drag).
17956
+ */
17957
+ readonly cropElement: _angular_core.Signal<PptxElement | null>;
17290
17958
  /**
17291
17959
  * The single selected element when (and only when) it is a chart: gates
17292
17960
  * the "Chart Elements"/"Chart Styles"/"Chart Filters" quick-action overlay,
@@ -21422,6 +22090,8 @@ declare class AnimationAuthorPanelComponent {
21422
22090
  protected readonly elementKey: _angular_core.Signal<string>;
21423
22091
  /** The animation entry for the currently selected element, if any. */
21424
22092
  protected readonly current: _angular_core.Signal<PptxElementAnimation | undefined>;
22093
+ /** Unset curve shows as `linear`: that is what the writer saves and PowerPoint plays. */
22094
+ protected readonly currentTimingCurve: _angular_core.Signal<pptx_viewer_core.PptxAnimationTimingCurve>;
21425
22095
  /** True when the element has at least one effect (entrance/exit/emphasis). */
21426
22096
  protected readonly currentHasAnimation: _angular_core.Signal<boolean>;
21427
22097
  /** True when the active preset exposes a direction picker. */
@@ -21444,6 +22114,10 @@ declare class AnimationAuthorPanelComponent {
21444
22114
  * yet have an animation entry. Used by the on-shape-click trigger picker.
21445
22115
  */
21446
22116
  protected readonly otherElements: _angular_core.Signal<PptxElement[]>;
22117
+ /** Every media bookmark on the slide, for the "On bookmark" trigger picker. */
22118
+ protected readonly bookmarkOptions: _angular_core.Signal<MediaBookmarkOption[]>;
22119
+ protected readonly selectedBookmark: _angular_core.Signal<string>;
22120
+ protected onTriggerBookmarkChange(event: Event): void;
21447
22121
  protected elementLabel(element: PptxElement): string;
21448
22122
  private emit;
21449
22123
  protected onPreview(): void;
@@ -21924,10 +22598,7 @@ declare class EditorContextMenuComponent {
21924
22598
  readonly y: _angular_core.InputSignal<number>;
21925
22599
  /** Zero-based index of the slide being edited. */
21926
22600
  readonly slideIndex: _angular_core.InputSignal<number>;
21927
- /**
21928
- * Whether to show the "Ask AI about this" / "Fix with AI" items. Gated by the
21929
- * host on the `ai` config + a single selected element.
21930
- */
22601
+ /** Show "Ask AI about this" / "Fix with AI" (host: `ai` config + one selection). */
21931
22602
  readonly showAiActions: _angular_core.InputSignal<boolean>;
21932
22603
  /** Emitted when the menu should close (Escape or outside click). */
21933
22604
  readonly closed: _angular_core.OutputEmitterRef<void>;
@@ -21935,23 +22606,13 @@ declare class EditorContextMenuComponent {
21935
22606
  readonly askAi: _angular_core.OutputEmitterRef<void>;
21936
22607
  /** "Fix with AI": open the assistant with a prefilled fix directive. */
21937
22608
  readonly fixAi: _angular_core.OutputEmitterRef<void>;
21938
- /**
21939
- * "Edit Hyperlink": the dialog lives at viewer level (it needs the selected
21940
- * element and the document-properties service), so the menu asks for it
21941
- * rather than owning it.
21942
- */
22609
+ /** "Edit Hyperlink": the dialog lives at viewer level, so the menu asks for it. */
21943
22610
  readonly editHyperlink: _angular_core.OutputEmitterRef<void>;
21944
22611
  /** "Add Comment": open the right-docked comments panel, as React does. */
21945
22612
  readonly addComment: _angular_core.OutputEmitterRef<void>;
21946
- /**
21947
- * "Edit Text": the host owns the same inline-text-edit entry point a
21948
- * double-click uses, so the menu just asks for it on the current element.
21949
- */
22613
+ /** "Edit Text": the host owns the inline-text-edit entry point a double-click uses. */
21950
22614
  readonly editText: _angular_core.OutputEmitterRef<void>;
21951
- /**
21952
- * "Save as Picture": the host owns the DOM lookup + html2canvas fallback
21953
- * driver this needs, so the menu asks for it on the current element.
21954
- */
22615
+ /** "Save as Picture": the host owns the DOM lookup + html2canvas driver it needs. */
21955
22616
  readonly saveAsPicture: _angular_core.OutputEmitterRef<void>;
21956
22617
  protected readonly editor: EditorStateService;
21957
22618
  private readonly tableSelection;
@@ -21959,23 +22620,17 @@ declare class EditorContextMenuComponent {
21959
22620
  protected readonly position: ClampedMenuPosition;
21960
22621
  private readonly inspectorPanel;
21961
22622
  private readonly customization;
21962
- /**
21963
- * The table element + cell selection the menu should act on, or null when the
21964
- * current selection is not a single table with a selected cell. Drives the
21965
- * table row/column/merge section of the menu.
21966
- */
22623
+ private readonly outline;
22624
+ private readonly crop;
22625
+ private readonly translate;
22626
+ /** The single table + selected cell the table commands act on, or null. */
21967
22627
  protected readonly tableCtx: _angular_core.Signal<{
21968
22628
  element: TablePptxElement;
21969
22629
  sel: TableCellSelection;
21970
22630
  } | null>;
21971
22631
  /** The single selected element, or null on an empty or multi selection. */
21972
22632
  private readonly selectedElement;
21973
- /**
21974
- * Lock-only half of Group/Ungroup gating (`a:spLocks`/`a:grpSpLocks`
21975
- * `@noGrp`), independent of selection count, mirroring the guard
21976
- * `EditorStateService.groupSelected`/`ungroupSelected` already enforce on
21977
- * the commands themselves (`group-lock-guard.ts`).
21978
- */
22633
+ /** Lock-only Group/Ungroup gating (`@noGrp`); see `group-lock-guard.ts`. */
21979
22634
  private readonly selectionGroupable;
21980
22635
  /** The menu, as the shared command list builds it for this right-click. */
21981
22636
  protected readonly entries: _angular_core.Signal<ContextMenuEntry[]>;
@@ -23486,7 +24141,7 @@ declare class AccountPageComponent {
23486
24141
  readonly accountAuth: _angular_core.InputSignal<AccountAuthConfig | undefined>;
23487
24142
  private readonly translate;
23488
24143
  protected readonly swatches: readonly string[];
23489
- protected readonly version = "4.5.0";
24144
+ protected readonly version = "4.7.0";
23490
24145
  protected readonly profile: _angular_core.WritableSignal<ViewerProfile>;
23491
24146
  protected readonly initial: _angular_core.Signal<string>;
23492
24147
  protected readonly usage: _angular_core.WritableSignal<LocalStorageUsageSummary | null>;
@@ -25351,13 +26006,16 @@ declare class RibbonArrangeSectionComponent {
25351
26006
  readonly canEdit: _angular_core.InputSignal<boolean>;
25352
26007
  readonly formatPainterActive: _angular_core.InputSignal<boolean>;
25353
26008
  readonly canActivateFormatPainter: _angular_core.InputSignal<boolean>;
26009
+ /** Toolbar buttons the host hides (gates Merge Shapes and Crop). */
26010
+ readonly hiddenActions: _angular_core.InputSignal<ToolbarActionId[]>;
26011
+ protected readonly toolbar: ToolbarVisibility;
25354
26012
  readonly toggleFormatPainter: _angular_core.OutputEmitterRef<void>;
25355
26013
  protected hasSel(): boolean;
25356
26014
  protected canDistribute(): boolean;
25357
26015
  /** Toggle horizontal/vertical flip on each selected element. */
25358
26016
  protected flipSelected(axis: 'horizontal' | 'vertical'): void;
25359
26017
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<RibbonArrangeSectionComponent, never>;
25360
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<RibbonArrangeSectionComponent, "pptx-ribbon-arrange-section", never, { "slideIndex": { "alias": "slideIndex"; "required": false; "isSignal": true; }; "selectedElement": { "alias": "selectedElement"; "required": false; "isSignal": true; }; "canEdit": { "alias": "canEdit"; "required": false; "isSignal": true; }; "formatPainterActive": { "alias": "formatPainterActive"; "required": false; "isSignal": true; }; "canActivateFormatPainter": { "alias": "canActivateFormatPainter"; "required": false; "isSignal": true; }; }, { "toggleFormatPainter": "toggleFormatPainter"; }, never, never, true, never>;
26018
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<RibbonArrangeSectionComponent, "pptx-ribbon-arrange-section", never, { "slideIndex": { "alias": "slideIndex"; "required": false; "isSignal": true; }; "selectedElement": { "alias": "selectedElement"; "required": false; "isSignal": true; }; "canEdit": { "alias": "canEdit"; "required": false; "isSignal": true; }; "formatPainterActive": { "alias": "formatPainterActive"; "required": false; "isSignal": true; }; "canActivateFormatPainter": { "alias": "canActivateFormatPainter"; "required": false; "isSignal": true; }; "hiddenActions": { "alias": "hiddenActions"; "required": false; "isSignal": true; }; }, { "toggleFormatPainter": "toggleFormatPainter"; }, never, never, true, never>;
25361
26019
  }
25362
26020
 
25363
26021
  declare class RibbonColorPopoverComponent {
@@ -26845,5 +27503,5 @@ declare function thumbnailHeight(canvasW: number, canvasH: number, thumbW: numbe
26845
27503
  declare function gridColumns(containerW: number, thumbW: number, gap: number, maxCols: number): number;
26846
27504
 
26847
27505
  export { AFTER_ANIMATION_VALUES, ALIGN_OPTIONS, ANIMATION_PRESET_CATEGORIES, AUDIENCE_HASH, AUDIENCE_NONCE_KEY, AVATAR_COLOR_SWATCHES, AXIS_LABEL_COLOR, AccessibilityPanelComponent, AccessibilityService, AccessibilityTextPanelComponent, AccountPageComponent, ActionSettingsPanelComponent, AdvancedChartEditorComponent, AiChangeOverlayComponent, AiChatPanelComponent, AiChatService, AiComposerComponent, AiFocusBarComponent, AiFocusHighlightOverlayComponent, AiHistoryMenuComponent, AiHistoryService, AiMessageListComponent, AiPanelStore, AiProposalCardComponent, AiSettingsSectionComponent, AiToolCallCardComponent, AnimationAuthorPanelComponent, AnimationPanelComponent, AnimationPlaybackService, AutosaveRecoveryDialogComponent, AutosaveService, BACKSTAGE_CARD_IDS, BACKSTAGE_PAGE_IDS, BroadcastDialogComponent, CANVAS_CONTEXT_MENU_COMMAND_IDS, CHART_EDITOR_STYLES, CINEMATIC_TRANSITION_KEYFRAMES, CURSOR_PALETTE, CanvasFitService, ChartAxisOptionsComponent, ChartAxisStyleOptionsComponent, ChartComboTypeOptionsComponent, ChartDataEditorComponent, ChartDataLabelOptionsComponent, ChartDatapointMarkerOptionsComponent, ChartDatapointOptionsComponent, ChartDisplayOptionsComponent, ChartElementViewComponent, ChartErrorBarOptionsComponent, ChartMarkerOptionsComponent, ChartPartSelectionService, ChartPrimitivesComponent, ChartRendererComponent, ChartTrendlineOptionsComponent, ChartTypeSelectorComponent, CollaborationCursorsComponent, CollaborationService, ColorChangedImageComponent, CommentMarkersOverlayComponent, CommentsPanelComponent, CommentsService, ComparePanelComponent, ConnectorRendererComponent, ConnectorTextOverlayComponent, CustomShowsComponent, DEFAULT_BOUNDS, DEFAULT_BROADCAST_SERVER_URL, DEFAULT_CANVAS_HEIGHT, DEFAULT_CANVAS_WIDTH, DEFAULT_COLOR_SCHEME, DEFAULT_FILL_COLOR, DEFAULT_LAYOUT, DEFAULT_MORPH_DURATION_MS, DEFAULT_PALETTE$1 as DEFAULT_PALETTE, DEFAULT_PATTERN_FILL_PRESET, DEFAULT_PRINT_SETTINGS, DEFAULT_SLIDE_BACKGROUND, DEFAULT_STROKE_COLOR, DEFAULT_STYLE, DEFAULT_TABLE_ROW_HEIGHT, DEFAULT_TEXT_COLOR, DEFAULT_VIEWER_PROFILE, DIRECTIONAL_PRESETS, DIRECTION_OPTIONS, DocumentPropertiesCardComponent, EASE, EDITOR_SHORTCUT_ACTION_IDS, EFFECT_SOUND_CATALOGUE, ELEMENT_CONTEXT_MENU_COMMAND_IDS, EMBEDDED_FONTS_STYLE_ID, EMPHASIS_PRESETS, ENTRANCE_PRESETS, TEMPLATES as EQUATION_TEMPLATES, EXIT_PRESETS, EditorContextMenuComponent, EditorHistory, EditorStateService, EditorToolbarComponent, EffectsPanelComponent, ElementRendererComponent, EmbeddedFontsService, EncryptedFileDialogComponent, EquationEditorDialogComponent, EquationRendererComponent, EquationTemplateGalleryComponent, ExportProgressModalComponent, ExportService, FieldContextService, FindBarComponent, FindReplaceBarComponent, FollowModeBarComponent, FontEmbeddingListComponent, FontEmbeddingPanelComponent, GALLERY_THEME_PRESETS, GOOGLE_WEBFONTS_LINK_ID, GRIDLINE_COLOR, GoogleWebfontsService, GradientPickerComponent, HANDOUT_OPTIONS, HeaderFooterDialogComponent, HyperlinkDialogComponent, INSTANT, ImagePropertiesPanelComponent, InkDrawingService, InkRendererComponent, InsertSmartArtDialogComponent, InspectorPaneHeaderComponent, InspectorPanelComponent, IsMobileService, KeepAnnotationsDialogComponent, LOCALE_CATALOG, LONG_PRESS_DURATION_MS, LONG_PRESS_MOVE_TOLERANCE_PX, LoadContentService, LocalPresencePublisher, MAX_ZOOM_SCALE, MIN_ZOOM_SCALE, MOTION_PATH_COLUMNS, MediaPreviewComponent, MediaPropertiesPanelComponent, MediaRendererComponent, MediaTrimTimelineComponent, MobileBottomBarComponent, MobileMenuSheetComponent, MobilePresenterViewComponent, MobileSheetComponent, MobileSlidesSheetComponent, MobileToolbarComponent, ModalDialogComponent, Model3DRendererComponent, NotesHandoutCardComponent, NotesPanelComponent, NotesToolbarComponent, OPTIONS_PAGE_IDS, OPTIONS_SECTION_IDS, OPTIONS_SETTING_IDS, OleRendererComponent, OutlineViewOverlayComponent, P14_TRANSITION_KEYFRAMES, P14_TRANSITION_KEYFRAMES_2, P14_TRANSITION_KEYFRAMES_ALL, POWER_POINT_VIEWER_PROVIDERS, PPTX_OPEN_ACCEPT, PRESENTATION_OPEN_EXTENSIONS, PRESENTER_CHANNEL_NAME, PRESENTER_MSG_ORIGIN, PRESENTER_TIMER_SEGMENT_MS, PX_PER_CM, PX_PER_INCH, PasswordProtectionDialogComponent, PasswordStrengthMeterComponent, PowerPointViewerComponent, PresentToolbarAutoHide, PresentationAnnotationOverlayComponent, PresentationAnnotationsService, PresentationOverlayComponent, PresentationPropertiesPanelComponent, PresentationSettingsCardComponent, PresentationSubtitleBarComponent, PresentationToolbarComponent, PresentationTransitionOverlayComponent, PresenterViewComponent, PresenterWindowService, PrintDialogComponent, PrintService, PrintSettingsPanelComponent, PropertiesDialogComponent, RANDOM_ELIGIBLE_TYPES, REPEAT_MODE_OPTIONS, RESIZE_HANDLES, RIBBON_TAB_IDS, RULER_FONT_SIZE, RULER_THICKNESS, ReadingViewOverlayComponent, RemoteSelectionOverlayComponent, Rendering3DService, RibbonAnimationGalleryComponent, RibbonAnimationsSectionComponent, RibbonArrangeSectionComponent, RibbonColorPopoverComponent, RibbonComponent, RibbonDesignSectionComponent, RibbonDrawSectionComponent, RibbonDrawingGroupComponent, RibbonEditingSectionComponent, RibbonFileSectionComponent, RibbonFontControlsComponent, RibbonHomeSectionComponent, RibbonHyperlinkButtonComponent, RibbonInsertFieldsComponent, RibbonInsertSectionComponent, RibbonMotionPathGalleryComponent, RibbonParagraphControlsComponent, RibbonPrimaryRowComponent, RibbonReviewSectionComponent, RibbonShapeExtrasComponent, RibbonSlideshowSectionComponent, RibbonTransitionsSectionComponent, RibbonViewSectionComponent, RulerGuidesService, SEQUENCE_OPTIONS, SEVERITY_GROUPS, SEVERITY_LABELS, DEFAULT_TRANSITION_DURATION_MS as SHARED_DEFAULT_TRANSITION_DURATION_MS, SHORTCUT_REFERENCE_ITEMS, SLIDE_TRANSITION_KEYFRAMES, SLIDE_TRANSITION_KEYFRAMES_CSS, DEFAULT_PALETTE as SMARTART_DEFAULT_PALETTE, PALETTES as SMARTART_PALETTES, SMART_ART_COLOR_SCHEMES, SMART_ART_STYLE_OPTIONS, SUB_ITEM_LABEL, SVG_WARP_PRESETS, SWIPE_MAX_VERTICAL_PX, SWIPE_THRESHOLD_PX, SelectionPaneComponent, SetUpSlideShowDialogComponent, SettingsAppearanceTabComponent, SettingsDialogComponent, SettingsLanguageTabComponent, ShareDialogComponent, ShortcutPanelComponent, ShowOptionsFieldsetComponent, ShowSlidesFieldsetComponent, SignatureStrippedDialogComponent, SignaturesPanelComponent, SignaturesService, SlideBackgroundCardComponent, SlideCanvasComponent, SlideDefaultInspectorComponent, SlideDiffChangesComponent, SlideDiffRowComponent, SlideDiffThumbnailsComponent, SlideSizeCardComponent, SlideSorterOverlayComponent, SlideThemeOverridePanelComponent, SlideTransitionCardComponent, SlidesPanelComponent, SmartArt3DRendererComponent, SmartArtPreviewComponent, SmartArtPropertiesComponent, SmartArtRendererComponent, StatusBarComponent, TABLE_STRUCTURE_TOGGLES, TEXT_3D_BOTTOM_BEVEL_KEYS, TEXT_3D_TOP_BEVEL_KEYS, TEXT_DIRECTION_OPTIONS, THEME_CATALOG, TIMING_CURVE_OPTIONS, TOOLBAR_BUTTON_IDS, TRANSITION_SPEED_DURATION_MS, TRIGGER_OPTIONS, TYPE_LABELS, TableCellAdvancedFillComponent, TableCellFormattingComponent, TableDataEditorComponent, TablePropertiesComponent, TableRendererComponent, TableResizeOverlayComponent, TableSelectionService, TagsCardComponent, Text3DBevelSectionComponent, Text3DPanelComponent, TextAdvancedPanelComponent, ThemeEditorFieldsComponent, ThemeGalleryComponent, ThemeSelectorCardComponent, TitleBarComponent, TitleBarSearchComponent, TransitionDirectionPickerComponent, TransitionPreviewComponent, VALIGN_OPTIONS, VIEWER_DIALOG_IDS, VIEWER_EXPORT_FORMAT_IDS, VIEWER_FEATURE_IDS, VIEWER_PANEL_IDS, VIEWER_THEME, VersionHistoryPanelComponent, ViewerCanvasEditingService, ViewerCollabCursorService, ViewerCollaborationSessionService, ViewerCollaborationShellService, ViewerCompareService, ViewerCustomShowsService, ViewerCustomizationHandle, ViewerCustomizationService, ViewerDialogsService, ViewerDocumentPropertiesService, ViewerExportService, ViewerExtraDialogsComponent, ViewerFileIOService, ViewerFindReplaceService, ViewerFormatPainterService, ViewerInspectorPanelService, ViewerKeyboardService, ViewerMobileSheetService, ViewerPresentationModeService, ViewerThemeGalleryService, ViewerTouchGesturesService, ViewerZoomService, WEBM_MIME_CANDIDATES, WHEEL_SPOKE_COUNTS, WriteBackScheduler, ZERO_LINE_COLOR, ZoomNavigationService, ZoomRendererComponent, ZoomTargetService, addCategory, addCommentToList, addGradientStopPatch, addItem, addSeries, addSubItem, advanceStep, affordanceElements, aiToggleVisible, alignPatch, animationFor, animationPresetLabelKey, annotationMapToInkInserts, applyAcceptedDiff, applyAnimationPreset, applyFindReplacements, applyFormatToElement, applyMove, applyResize, asMediaElement, assignUserColor, attachShowVisibilityPause, attachTouchGestures, axisTickValues, beginDrawingNodeEdit, beginNodeEdit, bevelSizePatch, boolFromEvent, bringForward, bringToFront, buildBarActions, buildBroadcastConfig, buildBroadcastViewerUrl, buildCategoryLabels, buildCellParagraphs, buildChartViewModel, buildChatLogExport, buildChatLogMarkdown, buildChromeStyle, buildClearHyperlinkPatch, buildClickGroups, buildColStyles, buildCollaborationConfig, buildComboViewModel, buildCssGradientFromShapeStyle, buildDuotoneFilter, buildDuotoneFilterId, buildEmbeddedFontStyles, buildEquationElement, buildEquationSegment, buildFallbackViewModel, buildFontFaceRule, buildGradientFillCss, buildGridlinesAndLabels, buildHyperlinkPatch, buildInkContainerStyle, buildInkStrokes, buildLegend, buildLiveInkStrokeView, buildMarkTooltip, buildModel3DContainerStyle, buildModel3DViewModel, buildOleActionModel, buildOleInfoRows, buildPatternFillCss, buildPieViewModel, buildPrintHtmlDocument as buildPrintDocument, buildPropertiesPatch, buildRadarViewModel, buildRegionMapViewModel, buildSaveSlides, buildShareUrl, buildSmartArtInsertElement, buildSmartArtNodes, buildStockViewModel, buildSurfaceViewModel, buildTableViewModel, buildTreemapViewModel, buildTrimFragment, buildWaterfallViewModel, buildZeroLine, buildZoomContainerStyle, buildZoomViewModel, bulletIndentPx, canAddTopLevelNode, canEditSmartArtNodes, canGroupSelection, canRemoveTopLevelNode, canSetStrokeWidth, canStartBroadcast, canStartShare, canUngroupSelection, canUseClipboard, captionDisplayText, cellRunStyle, cellStyleToStyleMap, cellTdStyle, changeCountLabel, changeIcon, characterSpacingPatch, chartPreserveAspectRatio, checkFontAvailable, clampCursorPosition, clampGifDimensions, clampIndex, clampNotesFontSize, clampScale, clampStep, clearAllLocalViewerData, clearAudienceContent, cn, collectAccessibilityIssues, collectElementText, collectSlideText, collectStoredChats, collectUsedFontFamilies, columnWidthStyle, commitNodeText, computeAlign, computeAxisTitlePrimitives, computeBarRects, computeBubbleRadius, computeCornerHandle, computeDistribute, computeDrawingViewBox, computeErrorBarPrimitives, computeFocusTargets, computeGridSpacingPx, computeHandleBoxes, computeHandoutLayout, computeIsMobile, computeIsTablet, computeLinePoints, computeLinearRegression, computePageCount, computePieLayout, computePieSlicePath, computePieSlices, computePlotLayout, computeRSquared, computeRadarPoints, computeResizeHandleBoxes, computeRotateHandleBox, computeScatterDots, computeScatterXDomain, computeSelectionBoxes, computeSingleSelected, computeSlideIndices, computeSnap, computeStackedBarRects, computeStackedValueRange, computeTrendlinePrimitives, computeValueRange, convertOmmlToMathMl, copyFormatFromElement, countAccessibilityIssues, countAnnotationStrokes, createAngularAiBridge, createCustomShow, createImageElementFromFile, createSwipeDismissDrag, createWebrtcBundle, createWebsocketBundle, cssObjectToStyleMap, currentColorScheme, currentLayout, currentStyle, defaultCssVars, defaultRadius, defaultThemeColors, deleteElementsByIds, deleteVersion as deleteRecoveryVersion, demoteNode, deriveModel3DBlobUrl, derivePresenceList, describeCollaborationShellState, describeSmartArtBounds, disableGlowPatch, disableInnerShadowPatch, disableOuterShadowPatch, disableReflectionPatch, disableSoftEdgePatch, duplicateElementById, durationOf, effectsStateOf, enableGlowPatch, enableInnerShadowPatch, enableOuterShadowPatch, enableReflectionPatch, enableSoftEdgePatch, encodeGif, endShowMediaCleanup, estimatePageCount, exitPresentationFullscreen, exportAiChatLogs, extractPathPoints, eyedropperAvailable, fillColorOf, findInSlides, findOwningSlideIndex, findSlideIndexByElementId, firstVisibleIndex, fitPolynomial, fitZoom, focusTargetChips, fontMimeForFormat, fontSizeOf, forgetSessionDeck, formatAxisValue, formatBytes, formatCursorLabel, formatElapsed, formatFileSize, formatInlineListStyle, formatPropertyDate, formatTime, fpsToFrameIntervalMs, generateBroadcastRoomId, generateCommentId, generateCustomShowId, generatePressureCircles, generateTicks, getCinematicTransitionAnimations, getClrChangeParams, getContainerStyle, getDuotoneFilterDef, getEffectSoundAsset, getEffectSoundState, getImageSrc, getLocalStorageUsageSummary, getOleAriaLabel, getOleBadgeLabel, getOleDisplayName, getOleDownloadFileName, getOleTypeColor, getOleTypeLabel, getP14TransitionAnimations, getPasswordStrength, getPatternSvg, getPlaceholderStyle, getVersions as getRecoveryVersions, getResolvedShapeClipPath, getResolvedShapeClipPathFor, getSessionTabId, getShapeFillStrokeStyle, getSlideBackgroundStyle, getSlideTransitionAnimations, getSmartArtNodeBounds, getSpeechRecognitionCtor, getTextBlockStyle, getTextWarp, getTouchDistance, getWarpCategory, getWarpPath, gradientStateFromStyle, gradientStateOf, gradientStatePatch, gradientStopColorCommitPatch, gridColumns, groupIssuesBySeverity, hasAnimation, hasCopyableFormat, hasExistingLink, hasExitedFullscreen, hasGradientFill, hasPressureVariation, hasVisibleSlideAfter, headerLabel, imageDimensions, injectResolvedCustomization, inkViewBox, insertTableElementColumn as insertColumn, insertTableElementRow as insertRow, interpolateWidth, isAudienceTab, isBold, isBrowserOpenableMime, isChildNode, isElementInteractive, isInjectableUrl, isItalic, isLegacyBinaryPresentation, isPpactionUrl, isPresenterMessage, isSigned, isSupportedPresentationFile, isTextElement, isTwoTableFocus, isUnderline, isUrlSafe, isValidRoomId, isViewportBackgroundPressTarget, isZoomActivationKey, issueTrackKey, issueTypeLabel, keyToLabel, lastVisibleIndex, latexToMathml, layoutConnectorPaints, layoutNodeLabels, linePointsToSvgString, lineSpacingPatch, loadAudienceContent, loadSessionDeck, mediaFallbackFor, mediaSurfaceFor, mergeCaptionResults, mergeDown, mergeRight, mergeSelection, mergeTablesDirective, moveElementBy, moveNodeDown, moveNodeUp, msToFrameDelayCs, narrowToCircle, narrowToPolygon, narrowToRect, newChartElement, newEquationElement, newPresetShapeElement, newShapeElement, newSmartArtElement, newTableElement, newTextElement, nextVisibleIndex, nodeBold, nodeEditBox, nodeFillColor, nodeFontColor, nodeIdFromKey, nodeItalic, nodeStyle, normalizeFontFormat, normalizeSlidesPerPage, normalizeValue, numFromEvent, oleActionsVisibleFor, ommlToMathml, ooxmlDashToCssBorderStyle, openNativeEyeDropper, overallStatus, paletteColor, parseAudienceNonce, parseNodeTextarea, partitionSlides, patchChartData, patchChartStyle, patchTableData, patchTextStyle, patternPresetOptions, pendingElementStyles, pickColorByClickFallback, pickFile, pickSupportedMimeType, planGifFrames, planVideoSegments, pointFromPointerEvent, pointsToSvgPathD, presenceToCursors, presentationBaseName, presentationStageStyle, presenterTimerProgress, presetByLayout, presetsForCategory, pressuresToWidths, prevVisibleIndex, projectDrawingShapes, promoteNode, provideViewerTheme, radarAngle, radarRingPoints, readAsDataUrl, recordWebm, registerCrossSlideAudio, rememberSessionDeck, removeAnimation, removeCategory, removeTableElementColumn as removeColumn, removeCommentFromList, removeElementAnimation, removeGradientStopPatch, removeNode, removeTableElementRow as removeRow, removeSeries, renderToCanvas, reorderAnimationDown, reorderAnimationUp, replaceInSlides, replaceMatch, requestPresentationFullscreen, resizeElement, resolveCaptionTracks, resolveChartKind, resolveDirection, resolveDirection8, resolveFontVariant, resolveHyperlinkHref, resolveInteractiveElementId, resolveLegendAnchorPosition, resolveMediaSrc, resolveOleType, resolveOrientation, resolveParagraphBullet, resolvePresenterNotes, resolveProfileInitial, resolveRegionCode, resolveRibbonCanGroup, resolveSlideAutoAdvanceMs, resolveSlideTransition, resolvePalette as resolveSmartArtPalette, resolveThemeCatalogEntry, resolveTransitionDuration, resolveTransitionDurationMs, resolveWheelSpokeCount, restoreSessionDeck, revealedElementStyles, routeOrthogonalConnector, rowStyle, rulerDragToGuidePosition, rulerHighlight, rulerStripTicks, sampleColorFromSlide, sanitizeColor, sanitizeSlideIndex, sanitizeUserName, saveViewerProfile, savedPresentationFileName, scanAvailableFonts, searchSlides, seedBroadcastFields, seedHyperlinkDraft, seedPropertiesDraft, seedShareFields, segmentFrameCount, selectValue, sendBackward, sendToBack, sequentialColorScale, serializeWriteBack, seriesColor, seriesXValues, setAfterAnimation, setAfterAnimationColor, setAnimationEmphasis, setAnimationEntrance, setAnimationExit, setAxis, setAxisLogScale, setAxisTitleStyle, setCategoryLabel, setCellText, setColorScheme, setDataLabels, setDataPointExplosion, setDataPointFill, setDataPointLabel, setDataPointMarker, setDelay, setDirection, setDuration, setEffectSound, setEffectStockSound, setElementPosition, setGridlineStyle, setLayout, setLegend, setNodeStyle, setNodeText, setRepeatCount, setRepeatMode, setSequence, setSeriesChartType, setSeriesColor, setSeriesErrorBars, setSeriesMarker, setSeriesName, setSeriesTrendline, setSeriesValue, setStyle, setTimingCurve, setTitle, setTrigger, setTriggerShapeId, shapeStylePatch, sheetAfterNavigate, shouldBlockClickAdvance, shouldUseSvgWarp, showDirectionPicker, showsTemplateAffordance, signatureCountLabel, signatureKey, signatureTimestamp, signerName, statusLabel as slideDiffStatusLabel, slideNumberOf, slidesWithReappliedLayout, smartArtNodes, paletteColour as smartArtPaletteColour, snapToGridStep, splitCursorCell, splitMergedCell, statusKind, statusLabel$1 as statusLabel, storeAudienceContent, stringFromEvent, strokeColorOf, strokeToInkElement, strokeWidthOf, styleShadowFilter, surfaceColor, textAdvancedPatch, textAdvancedStateFromStyle, textAdvancedStateOf, textColorOf, textDirectionPatch, textFontSizePatch, textStyleOf, textStylePatch, themeStyle, themeToCssVars, thumbnailHeight, thumbnailZoom, toggleCommentResolvedInList, toggleNodeBold, toggleNodeItalic, toggleSheet, topLevelNodeCount, transformSelectedTextCase, translationsEn, updateElementById, updateGlowPatch, updateGradientStopPatch, updateInnerShadowPatch, updateOuterShadowPatch, updateReflectionPatch, vAlignPatch, validatePassword, validatePrintSettings, validateRoomId, valueToY, vermilionDarkColors, vermilionDarkTheme, vermilionLightColors, vermilionLightTheme, vermilionRadius, waypointsToPathD, withManualLayouts, worstStatus, zoomTargetSlideIndex };
26848
- export type { AccessibilityIssueGroup, AccountAuthConfig, ActionDescriptor, ActiveShow, AiCanvasHighlight, AiChatInitState, AiHistoryInitDeps, AiLogChat, AiLogExport, AiLogFormat, AiLogMessage, AiPanelSelectionAccessors, AlignBox, AlignMode, AnimationClickGroup, AnimationGroup, AnimationPresetCategory, AnimationPresetEntry, AnimationPresetPick, AnnotationInkInsert, AnnotationStroke, AttachTouchGesturesConfig, AuthoredRange, AwarenessLike, BackstageCustomization, BarRect, Box, BridgeDeps, BroadcastConfig, BroadcastDefaults, BubbleRadiusOptions, CSSProperties, CanvasSize, CellCoord, CellParagraph, CellTextRun, ChartPartRef, ChartPartSelection, ChartSvgDef, ChartSvgPatternDef, ChartValueDrag, ChartViewModel, ClassValue, ClrChangeParams, CollaborationConfig, CollaborationRole, CollaborationShellState, ConnectionStatus, RouterRect as ConnectorObstacle, RouterPoint as ConnectorPoint, ConnectorRouting, ContextMenuCustomization, CopiedFormat, CornerHandleBox, CustomShow, CustomThemeEdit, DeckSaveState, DestroyableYDoc, DiagonalBorderInfo, DistributeMode, DocumentProperties, DrawingViewBox, DuotoneFilterDef, EffectSoundState, EffectsState, ElementUpdate, ElementUpdateOptions, EmbeddedFontStyles, EquationTemplate, ExternalCollaborationAwareness, ExternalCollaborationSession, ExternalCollaborationSnapshot, EyedropperResult, FindOptions, FindResult, FocusChip, FocusSelectionInput, GifFrame, GifFramePlan, GifPlanOptions, GlowState, GradientState, GradientStop$1 as GradientStop, HandleBox, HandoutSlidesPerPage, HyperlinkDraft, InkPoint, InkStroke, InkStrokeView, InlineEditState, InnerShadowState, KeyboardCustomization, LegendEntry, LinePoint, LinearFit, LocalIdentity, LocalStorageUsageSummary, LocaleCatalogEntry, MobileSheetKey, Model3DViewModel, MotionPathColumn, MotionPathEntry, NodeEditBox, NotesSegmentViewModel, ObjectUrlFactory, OleActionModel, OleInfoRow, OptionsCustomization, OptionsPageId, OptionsSectionId, OptionsSettingId, OptionsSettingValues, OuterShadowState, OutlineCommit, OverallSignatureStatus, PartitionedSlides, PathPoint, PieSliceGeometry, PieSliceOptions, PlotLayout, PlotLayoutOptions, PositionUpdate, PowerPointViewerAPI, PptxAiBridge, PptxAiConfig, PptxAiConnection, PptxAiContextStrategy, PptxAiElementUpdate, PptxAiToolName, PptxAiUIMessage, PptxAiWritePolicy, PresentToolbarAction, PresentationTool, PresenterExitMessage, PresenterMessage, PresenterNotes, PresenterSlideChangeMessage, PresenterTimerProgress, PressureCircle, PrintColorMode, PrintHtmlDocumentOptions as PrintDocumentOptions, PrintOrientation, PrintSettings, PrintSlideRange, PrintWhat, PropertiesDraft, ProposalView, ProviderBundle, ProviderLike, RadarPoint, RecordWebmOptions, RecoveryVersion, ReflectionState, RemoteCursor, SanitizedPresence as RemotePresence, RenderedShape, ReplaceResult, ResizeHandle, ResolvedCaptionTrack, ResolvedCustomization, ResolvedDirection, ResolvedDirection8, ResolvedFontVariant, ResolvedOleType, RibbonCustomization, RulerUnit, SanitizedPresence, SavedPresentationFormat, ScatterDot, ScatterXDomain, SelectionBox, SessionDeck, ShapeStyleChanges, ShareDefaults$1 as ShareDefaults, ShareFormFields, ShortcutChord, ShortcutReferenceItem, SignatureStatusKind, SlideInspectorTab, SlideTransitionAnimations, SmartArtInsertEvent, SmartArtNodeBounds, SnapBox, SnapGuide, SnapResult, SoftEdgeState, SpeechAlternative, SpeechRecognitionCtor, SpeechRecognitionEventLite, SpeechRecognitionLite, SpeechResult, SpeechResultList, SpeechSupportState, StagedProposal, StrokeToInkElementOpts, StyleMap, SupportedChartKind, SvgAreaGradient, SvgCircle, SvgLine, SvgPath, SvgPolygon, SvgPolyline, SvgPrimitive, SvgRect, SvgText, SwipeDismissDrag, TableBooleanFlag, TableCellSelection, TableCellViewModel, TableRowViewModel, TemplateElementsBySlideId, Text3DBevelKeys, TextAdvancedChanges, TextAdvancedState, TextStyleChanges, TextWarpCssDef, TextWarpDef, TextWarpPathDef, ThemeCatalogEntry, Tick, ToolbarActionId, TouchGestureCallbacks, TranslationKey, ValueRange, VideoPlanOptions, VideoSegmentPlan, ViewerCollaborationShellOptions, ViewerCustomization, ViewerCustomizationApi, ViewerDialogId, ViewerExportFormatId, ViewerFeatureId, ViewerMode, ViewerPanelId, ViewerProfile, ViewerSettings, ViewerTheme, ViewerThemeColors, ViewportFitOptions, ViewportFitPadding, ZoomTranslate, ZoomViewModel };
27506
+ export type { AccessibilityIssueGroup, AccountAuthConfig, ActionDescriptor, ActiveShow, AiCanvasHighlight, AiChatInitState, AiHistoryInitDeps, AiLogChat, AiLogExport, AiLogFormat, AiLogMessage, AiPanelSelectionAccessors, AlignBox, AlignMode, AnimationClickGroup, AnimationGroup, AnimationPresetCategory, AnimationPresetEntry, AnimationPresetPick, AnnotationInkInsert, AnnotationStroke, AttachTouchGesturesConfig, AuthoredRange, AwarenessLike, BackstageCustomization, BarRect, Box, BridgeDeps, BroadcastConfig, BroadcastDefaults, BubbleRadiusOptions, CSSProperties, CanvasSize, CellCoord, CellParagraph, CellTextRun, ChartPartRef, ChartPartSelection, ChartSvgDef, ChartSvgGradientDef, ChartSvgGradientStop, ChartSvgPatternDef, ChartValueDrag, ChartViewModel, ClassValue, ClrChangeParams, CollaborationConfig, CollaborationRole, CollaborationShellState, ConnectionStatus, RouterRect as ConnectorObstacle, RouterPoint as ConnectorPoint, ConnectorRouting, ContextMenuCustomization, CopiedFormat, CornerHandleBox, CustomShow, CustomThemeEdit, DeckSaveState, DestroyableYDoc, DiagonalBorderInfo, DistributeMode, DocumentProperties, DrawingViewBox, DuotoneFilterDef, EffectSoundState, EffectsState, ElementUpdate, ElementUpdateOptions, EmbeddedFontStyles, EquationTemplate, ExternalCollaborationAwareness, ExternalCollaborationSession, ExternalCollaborationSnapshot, EyedropperResult, FindOptions, FindResult, FocusChip, FocusSelectionInput, GifFrame, GifFramePlan, GifPlanOptions, GlowState, GradientState, GradientStop$1 as GradientStop, HandleBox, HandoutSlidesPerPage, HyperlinkDraft, InkPoint, InkStroke, InkStrokeView, InlineEditState, InnerShadowState, KeyboardCustomization, LegendEntry, LinePoint, LinearFit, LocalIdentity, LocalStorageUsageSummary, LocaleCatalogEntry, MobileSheetKey, Model3DViewModel, MotionPathColumn, MotionPathEntry, NodeEditBox, NotesSegmentViewModel, ObjectUrlFactory, OleActionModel, OleInfoRow, OptionsCustomization, OptionsPageId, OptionsSectionId, OptionsSettingId, OptionsSettingValues, OuterShadowState, OutlineCommit, OverallSignatureStatus, PartitionedSlides, PathPoint, PieSliceGeometry, PieSliceOptions, PlotLayout, PlotLayoutOptions, PositionUpdate, PowerPointViewerAPI, PptxAiBridge, PptxAiConfig, PptxAiConnection, PptxAiContextStrategy, PptxAiElementUpdate, PptxAiToolName, PptxAiUIMessage, PptxAiWritePolicy, PresentToolbarAction, PresentationTool, PresenterExitMessage, PresenterMessage, PresenterNotes, PresenterSlideChangeMessage, PresenterTimerProgress, PressureCircle, PrintColorMode, PrintHtmlDocumentOptions as PrintDocumentOptions, PrintOrientation, PrintSettings, PrintSlideRange, PrintWhat, PropertiesDraft, ProposalView, ProviderBundle, ProviderLike, RadarPoint, RecordWebmOptions, RecoveryVersion, ReflectionState, RemoteCursor, SanitizedPresence as RemotePresence, RenderedShape, ReplaceResult, ResizeHandle, ResolvedCaptionTrack, ResolvedCustomization, ResolvedDirection, ResolvedDirection8, ResolvedFontVariant, ResolvedOleType, RibbonCustomization, RulerUnit, SanitizedPresence, SavedPresentationFormat, ScatterDot, ScatterXDomain, SelectionBox, SessionDeck, ShapeStyleChanges, ShareDefaults$1 as ShareDefaults, ShareFormFields, ShortcutChord, ShortcutReferenceItem, SignatureStatusKind, SlideInspectorTab, SlideTransitionAnimations, SmartArtInsertEvent, SmartArtNodeBounds, SnapBox, SnapGuide, SnapResult, SoftEdgeState, SpeechAlternative, SpeechRecognitionCtor, SpeechRecognitionEventLite, SpeechRecognitionLite, SpeechResult, SpeechResultList, SpeechSupportState, StagedProposal, StrokeToInkElementOpts, StyleMap, SupportedChartKind, SvgAreaGradient, SvgCircle, SvgLine, SvgPath, SvgPolygon, SvgPolyline, SvgPrimitive, SvgRect, SvgText, SwipeDismissDrag, TableBooleanFlag, TableCellSelection, TableCellViewModel, TableRowViewModel, TemplateElementsBySlideId, Text3DBevelKeys, TextAdvancedChanges, TextAdvancedState, TextStyleChanges, TextWarpCssDef, TextWarpDef, TextWarpPathDef, ThemeCatalogEntry, Tick, ToolbarActionId, TouchGestureCallbacks, TranslationKey, ValueRange, VideoPlanOptions, VideoSegmentPlan, ViewerCollaborationShellOptions, ViewerCustomization, ViewerCustomizationApi, ViewerDialogId, ViewerExportFormatId, ViewerFeatureId, ViewerMode, ViewerPanelId, ViewerProfile, ViewerSettings, ViewerTheme, ViewerThemeColors, ViewportFitOptions, ViewportFitPadding, ZoomTranslate, ZoomViewModel };
26849
27507
  //# sourceMappingURL=pptx-angular-viewer.d.ts.map