pptx-angular-viewer 4.1.6 → 4.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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, PptxChartData, PptxChartDataLabelPosition, PptxChartType, PptxElementAnimation, PptxAnimationPreset, PptxAnimationSequence, PptxAnimationTrigger, PptxAnimationTimingCurve, PptxAnimationRepeatMode, PptxAnimationDirection, PptxAfterAnimationAction, ParsedTableStyleMap, PptxThemeColorScheme, PptxThemeFontScheme, TablePptxElement, PptxSection, OlePptxElement, TextSegment, TextStyle, PptxTransitionType, PptxSlideTransition, 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, PptxTableCell, PptxTableCellStyle, PptxTableRow, PptxTableData, SvgExportOptions, PptxGridSpacing, ChartPptxElement, RenderedNode, RenderedCircleNode, RenderedPolygonNode, RenderedRectNode, SmartArtLayoutResult, Model3DPptxElement, ZoomPptxElement, SmartArtPptxElement, PptxAnimationTimelineAnchor, MaterialPresetType, Text3DStyle, BevelPresetType, PptxBar3DShape, PptxChartDataLabelOptions, PptxChartAxisType, PptxChartAxisFormatting, PptxChartMarker, PptxChartDataPoint, PptxChartTrendline, PptxChartErrBars, PptxTextStyleLevels, SignatureStatus, ElementAction, PptxImageEffects, MediaBookmark, ColorMapAliasKey, ChartAxisEdit, ChartDataPointLabelEdit, PptxChartLegendPosition, PptxChartStyle, ChartAxisTitleStyleEdit, PptxChartMarkerSymbol, ChartGridlineStyleEdit, PptxSmartArtNode, PptxSmartArtNodeStyle, PptxLayoutPreview, 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, 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, PptxTableCell, PptxTableCellStyle, PptxTableRow, PptxTableData, SvgExportOptions, 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, PptxLayoutPreview, 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';
@@ -930,13 +930,31 @@ declare function buildWarpPath(preset: PptxTextWarpPreset, width: number, height
930
930
  */
931
931
  declare const getWarpPath: typeof buildWarpPath;
932
932
 
933
+ /**
934
+ * Affine / piecewise-affine fallback for a WordArt envelope glyph whose
935
+ * outline is not obtainable (no font file and no DOM canvas to trace the
936
+ * browser's own rendering with, e.g. server-side rendering or a test
937
+ * environment). With an outline available, `text-warp-glyph-outline.ts`
938
+ * warps it exactly instead and none of this runs.
939
+ *
940
+ * The glyph renders as an SVG `<text>` at its unwarped layout position, with
941
+ * a full `matrix(a b c d e f)` least-squares fit of the envelope mapping
942
+ * (`text-warp-envelope-map.ts`) over its ink box. When one affine misses the
943
+ * mapping by more than {@link SLICE_TOLERANCE_FRACTION} of the shape box
944
+ * height anywhere inside the glyph box
945
+ * (a wide glyph on a strongly curved envelope), the glyph is split into up
946
+ * to {@link MAX_ENVELOPE_GLYPH_SLICES} vertical bands, each clipped to its
947
+ * own x-range (in the same pre-transform layout space `x`/`y` are in) and
948
+ * carrying its own fit, so the pieces tile the glyph.
949
+ */
950
+
933
951
  /** One rendered piece of a glyph: clipped to its own x-band, its own affine fit. */
934
952
  interface EnvelopeGlyphSlice {
935
953
  /** Left edge of this slice's clip rect, in the glyph's own (pre-transform) x. */
936
954
  clipX0: number;
937
955
  /** Right edge of this slice's clip rect, in the glyph's own (pre-transform) x. */
938
956
  clipX1: number;
939
- /** Same `matrix(1 b 0 d 0 f)` form as {@link glyphEnvelopeMatrix}, fit to this slice's own edges. */
957
+ /** SVG `matrix(a b c d e f)` fit of the envelope mapping over this slice. */
940
958
  transform: string;
941
959
  }
942
960
 
@@ -1057,6 +1075,8 @@ interface SvgPath {
1057
1075
  fill: string;
1058
1076
  stroke?: string;
1059
1077
  strokeWidth?: number;
1078
+ /** SVG `stroke-dasharray`, e.g. a trendline's own `c:spPr/a:ln/a:prstDash`. */
1079
+ dashArray?: string;
1060
1080
  opacity?: number;
1061
1081
  part?: ChartPartRef;
1062
1082
  /**
@@ -1539,6 +1559,71 @@ interface ChartViewModel {
1539
1559
  defs?: ChartSvgDef[];
1540
1560
  }
1541
1561
 
1562
+ /**
1563
+ * chart-datapoint-style.ts: framework-agnostic resolution of per-data-point
1564
+ * formatting overrides (`c:dPt`).
1565
+ *
1566
+ * A chart series may override the appearance of individual data points: a
1567
+ * per-point fill colour, or (for pie/doughnut) a slice "explosion" pull-out
1568
+ * distance. These helpers resolve the effective value for a given point index,
1569
+ * falling back to the series-level default, so every binding (React/Vue/Angular)
1570
+ * can render edited per-point formatting identically without re-implementing the
1571
+ * lookup.
1572
+ *
1573
+ * @module chart-datapoint-style
1574
+ */
1575
+
1576
+ /** Minimal shape props subset needed to resolve a point fill. */
1577
+ interface PointShapeProps {
1578
+ fillColor?: string;
1579
+ }
1580
+ /** Minimal marker shape consumed here (mirrors `PptxChartMarker`). */
1581
+ interface ChartMarkerLike {
1582
+ symbol?: PptxChartMarkerSymbol;
1583
+ size?: number;
1584
+ spPr?: PointShapeProps;
1585
+ }
1586
+ /** Minimal data-point shape consumed here (mirrors `PptxChartDataPoint`). */
1587
+ interface ChartDataPointLike {
1588
+ idx: number;
1589
+ spPr?: PointShapeProps;
1590
+ explosion?: number;
1591
+ marker?: ChartMarkerLike;
1592
+ picture?: PptxChartDataPointPicture;
1593
+ /**
1594
+ * A picture fill implied by a bare `c:dPt/c:spPr/a:blipFill` with no
1595
+ * sibling `c:pictureOptions` (mirrors `PptxChartDataPoint.impliedPicture`).
1596
+ * {@link resolveActiveDataPointPicture} falls back to this only when
1597
+ * {@link picture} did not resolve an image of its own.
1598
+ */
1599
+ impliedPicture?: PptxChartDataPointPicture;
1600
+ }
1601
+ /** Minimal series shape consumed here (mirrors `PptxChartSeries`). */
1602
+ interface ChartSeriesLike {
1603
+ color?: string;
1604
+ marker?: ChartMarkerLike;
1605
+ dataPoints?: ChartDataPointLike[];
1606
+ /**
1607
+ * This series' `c:ser/c:idx/@val` (mirrors `PptxChartSeries.idx`). Used to
1608
+ * key the automatic marker-symbol cycle so a chart with non-sequential or
1609
+ * gapped indices (a deleted/filtered series) still lands on the same shape
1610
+ * PowerPoint does; falls back to the caller-supplied array position when
1611
+ * absent.
1612
+ */
1613
+ idx?: number;
1614
+ /**
1615
+ * Series-level picture-fill flags (`c:ser/c:pictureOptions`): paints every
1616
+ * point in the series with one picture unless a `c:dPt` resolves its own
1617
+ * (see {@link resolveActiveDataPointPicture}).
1618
+ */
1619
+ picture?: PptxChartDataPointPicture;
1620
+ /**
1621
+ * A picture fill implied by a bare `c:ser/c:spPr/a:blipFill` with no
1622
+ * sibling `c:pictureOptions` (mirrors `PptxChartSeries.impliedPicture`).
1623
+ */
1624
+ impliedPicture?: PptxChartDataPointPicture;
1625
+ }
1626
+
1542
1627
  /**
1543
1628
  * chart-legend-build.ts: builds the base `LegendEntry[]` (colour + label +
1544
1629
  * optional line-style swatch) and the legend's anchor position for a chart
@@ -1767,6 +1852,20 @@ interface ScatterDot {
1767
1852
  cx: number;
1768
1853
  cy: number;
1769
1854
  }
1855
+ /**
1856
+ * X values a scatter / bubble series is plotted against.
1857
+ *
1858
+ * The series' own `c:xVal` wins. Only when it has none does the chart-level
1859
+ * category list stand in, which is all the engine used to have and is why every
1860
+ * series in a multi-series scatter was plotted against series 1's x axis.
1861
+ *
1862
+ * Lives here (not `chart-cartesian-plots.ts`, its original home) so
1863
+ * `chart-scatter-x-axis.ts` can share it without a circular import: that
1864
+ * module builds the X axis's own nice min/max/major-unit scale, and
1865
+ * `chart-cartesian-plots.ts` / `chart-cartesian-bubbles.ts` need that same
1866
+ * scale to place their points on it.
1867
+ */
1868
+ declare function seriesXValues(chartData: PptxChartData, series: PptxChartSeries): ReadonlyArray<number> | undefined;
1770
1869
  /**
1771
1870
  * The x extent a scatter / bubble plot is drawn against.
1772
1871
  *
@@ -1784,7 +1883,7 @@ interface ScatterXDomain {
1784
1883
  * series declares a finite x value, in which case callers fall back to
1785
1884
  * positioning points by index.
1786
1885
  */
1787
- declare function computeScatterXDomain(seriesXValues: ReadonlyArray<ReadonlyArray<number> | undefined>): ScatterXDomain | undefined;
1886
+ declare function computeScatterXDomain(perSeriesXValues: ReadonlyArray<ReadonlyArray<number> | undefined>): ScatterXDomain | undefined;
1788
1887
  declare function computeScatterDots(values: ReadonlyArray<number>, maxXIndex: number, layout: PlotLayout, range: ValueRange, xValues?: ReadonlyArray<number>, xDomain?: ScatterXDomain): ScatterDot[];
1789
1888
  /** `c:bubbleScale` / `c:sizeRepresents` inputs to {@link computeBubbleRadius}. */
1790
1889
  interface BubbleRadiusOptions {
@@ -1917,11 +2016,12 @@ declare function buildComboViewModel(element: PptxElement, chartData: PptxChartD
1917
2016
  * series[0] → bar/column rectangles (one per category)
1918
2017
  * series[1…N] → line + dots (one polyline + N circles per series)
1919
2018
  *
1920
- * Stock charts (HLC / OHLC candlesticks):
1921
- * 3-series HLC → series: High, Low, Close
1922
- * 4-series OHLC → series: Open, High, Low, Close
1923
- * Per candle: a vertical wick line (high–low) + a body rect (open–close).
1924
- * Body is green when close ≥ open, red otherwise.
2019
+ * Stock charts (HLC / OHLC):
2020
+ * 3-series HLC → series: High, Low, Close. A vertical hi-lo wick, no body,
2021
+ * plus a short close tick (PowerPoint has no `c:upDownBars` on HLC).
2022
+ * 4-series OHLC → series: Open, High, Low, Close. The wick plus a candle
2023
+ * body from open to close, filled from `c:upDownBars` (see
2024
+ * `chart-stock-candles.ts`; never a hardcoded up/down colour).
1925
2025
  *
1926
2026
  * @module chart-combo-stock
1927
2027
  */
@@ -1933,15 +2033,9 @@ declare function buildComboViewModel(element: PptxElement, chartData: PptxChartD
1933
2033
  * 3-series: series[0] = High, series[1] = Low, series[2] = Close
1934
2034
  * 4-series: series[0] = Open, series[1] = High, series[2] = Low, series[3] = Close
1935
2035
  *
1936
- * Per data point the builder emits:
1937
- * - An `SvgLine` for the high-to-low wick (vertical).
1938
- * - An `SvgRect` for the open-to-close candle body.
1939
- *
1940
- * Candle body is green (#22c55e) when close ≥ open, red (#ef4444) otherwise.
1941
- * When no open series is present the close value is used as the open (HLC
1942
- * mode), causing all candles to show as a coloured body between close and the
1943
- * previously computed running close – but for simplicity, with no open we set
1944
- * open = low value, matching PowerPoint's own HLC rendering heuristic.
2036
+ * The wick/tick/body geometry itself lives in `chart-stock-candles.ts`
2037
+ * (shared with the price portion of a volume+stock combo); this builder only
2038
+ * resolves the series slots, axes, legend and overlay depth around it.
1945
2039
  *
1946
2040
  * @param element - The chart element providing width/height.
1947
2041
  * @param chartData - Parsed chart data including series and style.
@@ -2147,6 +2241,15 @@ interface ErrorBarRenderOptions {
2147
2241
  seriesRanges?: ReadonlyArray<ValueRange | undefined>;
2148
2242
  /** Per-series category mapping mode for mixed bar/line charts. */
2149
2243
  seriesModes?: ReadonlyArray<'line' | 'bar' | undefined>;
2244
+ /**
2245
+ * A scatter/bubble chart's own nice-scaled X-axis range (see
2246
+ * `chart-scatter-x-axis.ts`), shared across every series so an X error bar
2247
+ * anchors to the SAME domain the plotted points use. Without it each
2248
+ * series fell back to its own tight per-series min/max (`numericXRange`),
2249
+ * which drifted from the chart-wide domain the dots share once that
2250
+ * domain gained the automatic scale's headroom/rounding.
2251
+ */
2252
+ scatterXRange?: ValueRange;
2150
2253
  }
2151
2254
  /** Build X- and Y-direction ChartML error-bar primitives for cartesian series. */
2152
2255
  declare function computeErrorBarPrimitives(chartData: PptxChartData, catCount: number, layout: PlotLayout, range: ValueRange, mode?: 'line' | 'bar', options?: ErrorBarRenderOptions): SvgPrimitive[];
@@ -2207,8 +2310,16 @@ declare function computeRSquared(xVals: number[], yVals: number[], evalFn: (x: n
2207
2310
  * `chartData`. Returns an empty array when no series declares a trendline.
2208
2311
  *
2209
2312
  * Each trendline produces:
2210
- * - one `SvgPath` (dashed polyline in the series / trendline colour), and
2211
- * - optionally one `SvgText` with the equation / R-squared label at the last point.
2313
+ * - one `SvgPath` (dashed polyline in the series / trendline colour,
2314
+ * honouring the trendline's own `c:spPr` dash style and width), and
2315
+ * - optionally one `SvgText` per label line (the equation, then R-squared
2316
+ * on its OWN line below it, matching PowerPoint's own two-line label
2317
+ * rather than one line joined with a separator).
2318
+ *
2319
+ * A scatter chart's series fits (and draws) against its own real `c:xVal`
2320
+ * data; every other cartesian kind fits against the category position
2321
+ * (1-based, Excel's own convention), never a bare 0-based array index. See
2322
+ * `chart-overlays-trendline-fit.ts`.
2212
2323
  *
2213
2324
  * @param chartData Full parsed chart data.
2214
2325
  * @param catCount Number of categories (x-slots), e.g. `chartData.categories.length || 1`.
@@ -4290,13 +4401,21 @@ type NotesParagraphCommand = 'bullet' | 'numbered' | 'indent' | 'outdent';
4290
4401
  * Pure string logic: resolves OOXML field runs (slide number, date/time,
4291
4402
  * header/footer, document properties, slide title) into their display text.
4292
4403
  * Extracted from the React `viewer/utils/text-field-substitution` module so
4293
- * every binding substitutes identically.
4404
+ * every binding substitutes identically. The locale-aware datetime engine
4405
+ * lives in `text-field-datetime.ts`.
4294
4406
  */
4295
4407
  /** Context for substituting field placeholders (slide number, date/time, header/footer, etc.). */
4296
4408
  interface FieldSubstitutionContext {
4297
4409
  slideNumber?: number;
4298
4410
  dateTimeText?: string;
4299
- /** OOXML date-format pattern from header/footer settings (e.g. "M/d/yyyy"). */
4411
+ /**
4412
+ * The deck's master date-field default TYPE (`a:fld/@type` on the slide
4413
+ * master's `dt` placeholder, e.g. "datetime2"; see `header-footer-parts.ts`).
4414
+ * This is a field TYPE, not a format pattern, and is used ONLY as a
4415
+ * fallback for a field authored with the generic, unnumbered `datetime`
4416
+ * type - a field that already names its own `datetime1`-`datetime13` type
4417
+ * always uses that type, never this one (see `substituteFieldText`).
4418
+ */
4300
4419
  dateFormat?: string;
4301
4420
  /** Footer text from PptxHeaderFooter settings. */
4302
4421
  footerText?: string;
@@ -5728,6 +5847,725 @@ declare const P14_TRANSITION_KEYFRAMES_ALL = "\n/* \u2500\u2500 Conveyor (transl
5728
5847
  */
5729
5848
  declare function getP14TransitionAnimations(type: PptxTransitionType, durationMs: number, direction: string | undefined, orient?: string | undefined, pattern?: string | undefined): SlideTransitionAnimations | undefined;
5730
5849
 
5850
+ /**
5851
+ * Three.js SmartArt renderer - pure model types (phase 1: extruded layouts).
5852
+ *
5853
+ * These describe a framework-agnostic, three.js-agnostic 3D scene derived from
5854
+ * the 2D {@link SmartArtLayoutResult}. The pure model is built by
5855
+ * `buildSmartArt3DModel` (no `three` import, fully testable) and consumed by the
5856
+ * vanilla-three scene builder under `pptx-viewer-shared/smartart-3d`, which is
5857
+ * shared verbatim by the React, Vue, and Angular bindings.
5858
+ *
5859
+ * Coordinate convention: world space is y-up, centred on the origin, with the
5860
+ * front face of every extruded block facing +z. Layout (SVG) space is y-down
5861
+ * with the origin at the top-left; the model builder performs the flip.
5862
+ */
5863
+ /** A point in the world's XZ-agnostic 2D outline space (y-up). */
5864
+ interface Point2 {
5865
+ x: number;
5866
+ y: number;
5867
+ }
5868
+ /** A world-space position (y-up). */
5869
+ interface Vec3 {
5870
+ x: number;
5871
+ y: number;
5872
+ z: number;
5873
+ }
5874
+ /**
5875
+ * A single extruded shape (one SmartArt node) in the 3D scene.
5876
+ *
5877
+ * The {@link outline} is a closed polygon centred on the mesh's own origin
5878
+ * (y-up); the scene builder extrudes it by {@link depth} along +z and positions
5879
+ * the result at {@link position}.
5880
+ */
5881
+ interface SmartArt3DMesh {
5882
+ id: string;
5883
+ /** Closed 2D outline to extrude, centred on the mesh origin (y-up). */
5884
+ outline: Point2[];
5885
+ /**
5886
+ * Additional closed loops cut out of {@link outline} as holes (e.g. a
5887
+ * compound custom-geometry shape), in the same mesh-local space. Empty for
5888
+ * the common single-loop case.
5889
+ */
5890
+ holes?: Point2[][];
5891
+ /** Hint that the outline approximates a circle (drives tessellation). */
5892
+ rounded: boolean;
5893
+ /** Extrusion depth along +z, in layout pixels. */
5894
+ depth: number;
5895
+ /** Bevel size; 0 disables bevelling. */
5896
+ bevel: number;
5897
+ /**
5898
+ * True when this mesh should render as a flat, unlit, zero-depth face
5899
+ * (`ShapeGeometry`) rather than an extruded/bevelled solid
5900
+ * (`ExtrudeGeometry`), matching a PowerPoint flat SmartArt quick style.
5901
+ */
5902
+ flat?: boolean;
5903
+ /** Fill colour, `#rrggbb`. Ignored (nothing painted) when {@link fillNone}. */
5904
+ fill: string;
5905
+ /**
5906
+ * The source shape declared `a:noFill`: paint nothing, but the mesh may
5907
+ * still carry a {@link textBlock} (SmartArt commonly stacks an unfilled
5908
+ * label shape over a painted one).
5909
+ */
5910
+ fillNone?: boolean;
5911
+ /** Resolved data-URI/URL of a picture fill, when the source shape has one (not yet textured). */
5912
+ imageUrl?: string;
5913
+ /** Edge/stroke colour, `#rrggbb`. */
5914
+ stroke: string;
5915
+ /** Stroke width in layout pixels (0 = no visible edge line). */
5916
+ strokeWidth: number;
5917
+ /** Mesh opacity, 0..1. */
5918
+ opacity: number;
5919
+ /** World-space centre of the mesh (y-up, z = 0 base plane). */
5920
+ position: Vec3;
5921
+ /**
5922
+ * Euler rotation (radians, XYZ order) applied to the mesh. `{0,0,0}` for the
5923
+ * extruded (phase 1) layout and the flat drawing-shape model (rotation is
5924
+ * baked into {@link outline} there); spatial layouts (e.g. the cycle
5925
+ * carousel) rotate blocks to face along the arrangement.
5926
+ */
5927
+ rotation: Vec3;
5928
+ /** Text label drawn on the front (+z) face (single string; legacy consumers). */
5929
+ text: string;
5930
+ /**
5931
+ * Pre-laid-out multi-line text matching the 2D SVG projection. Preferred
5932
+ * over {@link text} when present.
5933
+ */
5934
+ textBlock?: SmartArt3DTextBlock;
5935
+ /** Text colour, `#rrggbb`. */
5936
+ textColor: string;
5937
+ /** Font size in layout pixels. */
5938
+ fontSize: number;
5939
+ /** Half-width of the footprint (for sizing the text plane). */
5940
+ halfWidth: number;
5941
+ /** Half-height of the footprint. */
5942
+ halfHeight: number;
5943
+ }
5944
+ /**
5945
+ * A multi-line text label, pre-laid-out to match the 2D SVG projection
5946
+ * (`centeredSvgTextLines`), for the renderer to draw onto a texture/plane
5947
+ * rather than re-wrapping text itself.
5948
+ */
5949
+ interface SmartArt3DTextBlock {
5950
+ /** One entry per line; `dy` is the line's offset from the block centre (y-up, layout px). */
5951
+ lines: Array<{
5952
+ text: string;
5953
+ dy: number;
5954
+ }>;
5955
+ /** World-space centre of the text block. */
5956
+ x: number;
5957
+ y: number;
5958
+ z: number;
5959
+ /** Available width/height for the block, in layout pixels. */
5960
+ maxWidth: number;
5961
+ maxHeight: number;
5962
+ /** Text colour, `#rrggbb`. */
5963
+ color: string;
5964
+ /** Font size in layout pixels. */
5965
+ fontSize: number;
5966
+ fontFamily?: string;
5967
+ fontWeight?: number;
5968
+ fontStyle?: 'normal' | 'italic';
5969
+ }
5970
+ /** A connector poly-line drawn between meshes on the base plane. */
5971
+ interface SmartArt3DConnector {
5972
+ id: string;
5973
+ /** World-space points (y-up). */
5974
+ points: Vec3[];
5975
+ /** Line colour, `#rrggbb`. */
5976
+ color: string;
5977
+ /** Line width in layout pixels. */
5978
+ width: number;
5979
+ }
5980
+ /** Camera-framing bounds of the whole model, in layout pixels. */
5981
+ interface SmartArt3DBounds {
5982
+ width: number;
5983
+ height: number;
5984
+ }
5985
+ /** The layout family the model was built from (drives the spatial transform). */
5986
+ type SmartArt3DFamily = 'list' | 'process' | 'cycle' | 'hierarchy' | 'matrix' | 'radial' | 'pyramid' | 'venn' | 'funnel' | 'target';
5987
+ /**
5988
+ * Which PowerPoint quick-style family this model was built for, so the scene
5989
+ * builder can pick the right camera/shading/geometry pipeline: `'flat'`
5990
+ * (unlit, zero-depth, orthographic matching the 2D viewBox), `'bevel'`
5991
+ * (per-shape `orthographicFront` camera + `shape3d` bevel/material, not yet
5992
+ * built by any model builder), or `'scene'` (one whole-diagram camera from
5993
+ * the quick style, not yet built). Undefined for the legacy layout-engine
5994
+ * model (`buildSmartArt3DModel`), which predates this distinction.
5995
+ */
5996
+ type SmartArt3DStyleCategory = 'flat' | 'bevel' | 'scene';
5997
+ /** The complete pure 3D model for one SmartArt element. */
5998
+ interface SmartArt3DModel {
5999
+ meshes: SmartArt3DMesh[];
6000
+ connectors: SmartArt3DConnector[];
6001
+ bounds: SmartArt3DBounds;
6002
+ /** Layout family, used to choose a spatial arrangement. */
6003
+ family?: SmartArt3DFamily;
6004
+ /** Optional background chrome colour, `#rrggbb`. */
6005
+ background?: string;
6006
+ /** See {@link SmartArt3DStyleCategory}. */
6007
+ styleCategory?: SmartArt3DStyleCategory;
6008
+ }
6009
+
6010
+ /**
6011
+ * Pure surface-chart 3D geometry helpers (framework- and three-agnostic).
6012
+ *
6013
+ * The hosted surface scene ({@link createSurfaceChart3DScene}) feeds these
6014
+ * the `three` module `<pptx-three-view>` loaded, so the library stays an
6015
+ * optional import while the grid maths (plane subdivision -> height/colour displacement,
6016
+ * world-space label anchors) lives here as small, separately testable units.
6017
+ */
6018
+
6019
+ /** The `c:view3D` fields the camera placement cares about. */
6020
+ interface SurfaceCameraView3D {
6021
+ /** X-axis rotation in degrees (-90...90); PowerPoint's "elevation". */
6022
+ rotX?: number;
6023
+ /** Y-axis rotation in degrees (0...360); PowerPoint's "rotation". */
6024
+ rotY?: number;
6025
+ }
6026
+
6027
+ /** The `c:view3D` fields a cartesian 3D scene's camera placement cares about. */
6028
+ interface CartesianCameraView3D {
6029
+ /** X-axis rotation in degrees (-90...90); PowerPoint's "elevation". */
6030
+ rotX?: number;
6031
+ /** Y-axis rotation in degrees (0...360); PowerPoint's "rotation". */
6032
+ rotY?: number;
6033
+ /** Perspective angle in degrees (0...240, `c:view3D/c:perspective`). Ignored when `rAngAx` is set. */
6034
+ rperspective?: number;
6035
+ /** Chart depth as a percentage of base width (`c:view3D/@depthPercent`). */
6036
+ depthPercent?: number;
6037
+ /** Right-angle axes (`c:view3D/@rAngAx`): PowerPoint renders near-orthographically. */
6038
+ rAngAx?: boolean;
6039
+ }
6040
+
6041
+ /** One path vertex, positioned in true 3D world space. */
6042
+ interface CartesianLine3DVertex {
6043
+ seriesIndex: number;
6044
+ categoryIndex: number;
6045
+ value: number;
6046
+ position: readonly [number, number, number];
6047
+ }
6048
+ /** One series' full 3D path: its depth plane + ordered (by category) vertices. */
6049
+ interface CartesianLine3DSeriesPath {
6050
+ seriesIndex: number;
6051
+ color: string;
6052
+ vertices: CartesianLine3DVertex[];
6053
+ /** World Z this series' depth plane sits at. */
6054
+ depthZ: number;
6055
+ /** World Y for value = 0 on this plane (area3D ribbon baseline / floor). */
6056
+ baselineY: number;
6057
+ }
6058
+
6059
+ /**
6060
+ * Floor/side-wall/back-wall backdrop planes for an interactive 3D chart scene.
6061
+ *
6062
+ * `c:floor`, `c:sideWall`, and `c:backWall` are parsed onto `PptxChartData`
6063
+ * but, before this module, only the flat SVG isometric renderer painted
6064
+ * them; a WebGL scene showed a fixed grey `GridHelper` regardless of what
6065
+ * was authored. Each authored surface becomes one semi-transparent plane
6066
+ * mesh so the interactive view agrees with the SVG one. A surface with no
6067
+ * authored fill colour gets no plane, so an untouched chart's WebGL scene is
6068
+ * unchanged.
6069
+ *
6070
+ * Shared by every interactive chart scene that has a category/series grid to
6071
+ * wall in: the surface chart ({@link ./surface-chart-3d-scene.ts}) and the
6072
+ * cartesian bar3D scene ({@link ./bar-chart-3d-scene.ts}), and (pending
6073
+ * follow-up) line3D/area3D. Each caller passes its OWN grid extent (a
6074
+ * cartesian chart's depth axis is scaled by `c:view3D/@depthPercent`, unlike
6075
+ * the surface chart's 1:1 row spacing), so this module never recomputes an
6076
+ * extent that could disagree with the caller's own mesh layout.
6077
+ *
6078
+ * @module surface-chart-3d-walls
6079
+ */
6080
+
6081
+ /** `c:floor`/`c:sideWall`/`c:backWall` fill colours (`#RRGGBB`), when authored. */
6082
+ interface SurfaceWallColors {
6083
+ floor?: string;
6084
+ sideWall?: string;
6085
+ backWall?: string;
6086
+ }
6087
+
6088
+ /**
6089
+ * Shared point/series data-shaping for the interactive `line3D` and `area3D`
6090
+ * true-3D scenes ({@link ./line-chart-3d-data.ts}, {@link ./area-chart-3d-data.ts}).
6091
+ *
6092
+ * Both chart kinds share IDENTICAL per-series depth-plane geometry (see
6093
+ * {@link ./cartesian-line-chart-3d-layout.ts}): the only difference is
6094
+ * presentation, line3D draws a tube along each series' path, area3D
6095
+ * additionally fills a ribbon from that path down to its baseline. Colour
6096
+ * resolution (`seriesColor` / `resolveDataPointFill`) and value-range maths
6097
+ * (`computeValueRange`) are the SAME functions the flat SVG oblique-projection
6098
+ * engine uses ({@link ./chart-cartesian-line-area.ts}), so a chart's true-3D
6099
+ * and 2D-fallback presentations always agree on colour and scale (mirrors
6100
+ * {@link ./bar-chart-3d-data.ts}).
6101
+ *
6102
+ * @module cartesian-line-chart-3d-data
6103
+ */
6104
+
6105
+ /** Inputs the interactive line3D/area3D scene needs to mount. */
6106
+ interface CartesianLine3DSceneOptions {
6107
+ cols: number;
6108
+ rows: number;
6109
+ series: CartesianLine3DSeriesPath[];
6110
+ categoryLabels: ReadonlyArray<string>;
6111
+ seriesNames: ReadonlyArray<string>;
6112
+ numberFormats?: ReadonlyArray<string | undefined>;
6113
+ width: number;
6114
+ height: number;
6115
+ /** Authored `c:view3D` driving the initial camera + depth extent. */
6116
+ view3D?: CartesianCameraView3D;
6117
+ /** Authored `c:floor`/`c:sideWall`/`c:backWall` fill colours, when set. */
6118
+ wallColors?: SurfaceWallColors;
6119
+ /** Active font-style emphasis override (bold/italic/underline/size/colour) for the axis labels. */
6120
+ textStyle?: TextStyleAnimationDescriptor;
6121
+ }
6122
+
6123
+ /**
6124
+ * `area3D`-specific entry point onto the shared cartesian line/area 3D data
6125
+ * shaping ({@link ./cartesian-line-chart-3d-data.ts}).
6126
+ *
6127
+ * @module area-chart-3d-data
6128
+ */
6129
+
6130
+ type AreaChart3DSceneOptions = CartesianLine3DSceneOptions;
6131
+
6132
+ /**
6133
+ * Box-mesh layout maths for the interactive `bar3D` scene
6134
+ * ({@link ./bar-chart-3d-data.ts}). Split out of that module to stay under the
6135
+ * repo's ~300-LOC file cap.
6136
+ *
6137
+ * Clustered layout gives every series its own depth ("Z") plane, side by
6138
+ * side along the series axis, matching PowerPoint's real 3-D Column chart.
6139
+ * Stacked/percentStacked keeps every series coplanar (one Z plane) and
6140
+ * stacks segments vertically, matching the flat engine's
6141
+ * `chart-bar3d-series-depth.ts` semantics (a stacked 3D column has no
6142
+ * per-series depth stagger; only clustered does).
6143
+ *
6144
+ * @module bar-chart-3d-layout
6145
+ */
6146
+
6147
+ /** One box mesh: world-space center + size (width=X, height=Y, depth=Z). */
6148
+ interface BarChart3DBox {
6149
+ seriesIndex: number;
6150
+ categoryIndex: number;
6151
+ value: number;
6152
+ color: string;
6153
+ center: readonly [number, number, number];
6154
+ size: readonly [number, number, number];
6155
+ /** See {@link CartesianChart3DPoint.shape}. */
6156
+ shape?: PptxBar3DShape;
6157
+ /**
6158
+ * `coneToMax` / `pyramidToMax` only: the mesh's top radius as a fraction
6159
+ * (0-1) of its base radius, so the geometry looks like a slice of one
6160
+ * imaginary cone/pyramid whose apex sits exactly at the value-axis
6161
+ * maximum: `0` (a full point) when this box's value equals the axis max,
6162
+ * approaching `1` (nearly cylindrical) as the value approaches zero.
6163
+ */
6164
+ coneToMaxTopRadiusFactor?: number;
6165
+ }
6166
+
6167
+ /**
6168
+ * bar-chart-3d-materials.ts: turns {@link resolveBarBoxFaceFills}'s (or, for a
6169
+ * round shape, {@link resolveBarRoundFaceFills}'s) pure per-face fill
6170
+ * descriptors into the actual `THREE.Material`(s) for one bar3D mesh, loading
6171
+ * `c:pictureOptions` picture-fill textures asynchronously.
6172
+ *
6173
+ * A mesh with no picture fill anywhere keeps the pre-existing single uniform
6174
+ * `MeshPhongMaterial` (no behaviour change, no texture-loader overhead) - see
6175
+ * {@link resolveBarBoxFaceFills}/{@link resolveBarRoundFaceFills}'s own "all
6176
+ * plain colour" fast path. Once a picture is resolved for at least one face,
6177
+ * this always builds a face-material array (a 6-entry array in three's own
6178
+ * `BoxGeometry` per-face order, `+x,-x,+y,-y,+z,-z`, for a `box`; a 3-entry
6179
+ * array in `CylinderGeometry`/`ConeGeometry`'s own material-group order,
6180
+ * lateral surface/top cap/bottom cap, for a round shape), even for faces that
6181
+ * stay plain-coloured, since a `THREE.Mesh` cannot mix a single material with
6182
+ * a per-face array on the same geometry.
6183
+ *
6184
+ * Texture loads are async: every picture-targeted face mounts with a plain
6185
+ * white `MeshPhongMaterial` (so the box is never invisible/black while
6186
+ * loading) and swaps in `material.map` once the image decodes. The scene's
6187
+ * own render loop is continuous (`requestAnimationFrame` every frame, not
6188
+ * on-demand), so the swapped-in texture appears on the very next frame with
6189
+ * no extra "re-render" plumbing needed here.
6190
+ *
6191
+ * @module bar-chart-3d-materials
6192
+ */
6193
+
6194
+ /** `c:ser`/`c:dPt` picture-fill inputs threaded into the interactive bar3D scene. */
6195
+ interface BarBoxPictureContext {
6196
+ series: ReadonlyArray<ChartSeriesLike>;
6197
+ }
6198
+
6199
+ /**
6200
+ * Adapts a `bar3D` chart's `PptxChartData` into the box-mesh layout the
6201
+ * interactive 3D scene ({@link ./bar-chart-3d-scene.ts}, `createBarChart3DScene`)
6202
+ * needs to mount: one {@link BarChart3DBox} per (series, category) data point,
6203
+ * positioned in true 3D space (category = X, value = Y, series = Z/depth for
6204
+ * the default vertical `c:barDir val="col"`; a horizontal `val="bar"` chart
6205
+ * remaps every box center into value = X, category = Y, series unchanged on
6206
+ * Z, see `layoutBarChart3D`'s `horizontal` flag and `BarChart3DSceneOptions
6207
+ * .horizontal`).
6208
+ *
6209
+ * Colour resolution (`seriesColor` / `resolveDataPointFill`) and value-range
6210
+ * maths (`computeValueRange` / `computeStackedValueRange`) are the SAME
6211
+ * functions the flat SVG oblique-projection engine uses
6212
+ * ({@link ./chart-cartesian-bars.ts}), so a bar3D chart's true-3D and 2D-
6213
+ * fallback presentations always agree on colour and scale: one set of chart
6214
+ * maths, two presentations (mirrors {@link ./surface-chart-3d-data.ts}).
6215
+ *
6216
+ * Clustered layout gives every series its own depth ("Z") plane, side by
6217
+ * side along the series axis, matching PowerPoint's real 3-D Column chart.
6218
+ * Stacked/percentStacked keeps every series coplanar (one Z plane) and
6219
+ * stacks segments vertically, matching the flat engine's
6220
+ * `chart-bar3d-series-depth.ts` semantics (a stacked 3D column has no
6221
+ * per-series depth stagger; only clustered does).
6222
+ *
6223
+ * @module bar-chart-3d-data
6224
+ */
6225
+
6226
+ /** Inputs the interactive bar3D scene needs to mount. */
6227
+ interface BarChart3DSceneOptions {
6228
+ cols: number;
6229
+ rows: number;
6230
+ boxes: BarChart3DBox[];
6231
+ categoryLabels: ReadonlyArray<string>;
6232
+ seriesNames: ReadonlyArray<string>;
6233
+ numberFormats?: ReadonlyArray<string | undefined>;
6234
+ grouping: 'clustered' | 'stacked' | 'percentStacked';
6235
+ width: number;
6236
+ height: number;
6237
+ /** Authored `c:view3D` driving the initial camera + depth extent. */
6238
+ view3D?: CartesianCameraView3D;
6239
+ /** Authored `c:floor`/`c:sideWall`/`c:backWall` fill colours, when set. */
6240
+ wallColors?: SurfaceWallColors;
6241
+ /**
6242
+ * `c:barDir val="bar"`: a horizontal 3-D Bar chart. Box centers are already
6243
+ * remapped into the horizontal frame (see `layoutBarChart3D`); the scene
6244
+ * mounter uses this flag only to rotate every box mesh `-Math.PI / 2` about
6245
+ * Z so non-box shapes (cylinder/cone/pyramid) keep a true cross-section.
6246
+ */
6247
+ horizontal?: boolean;
6248
+ /** Active font-style emphasis override (bold/italic/underline/size/colour) for the axis labels. */
6249
+ textStyle?: TextStyleAnimationDescriptor;
6250
+ /**
6251
+ * `c:ser`/`c:dPt` picture-fill inputs for `c:pictureOptions` face
6252
+ * targeting (see `bar-chart-3d-face-fill.ts`). Always populated by
6253
+ * {@link buildBarChart3DData} (the chart's own series list); a hand-built
6254
+ * `BarChart3DSceneOptions` fixture may omit it, which keeps every box a
6255
+ * single uniform coloured material (the pre-existing behaviour).
6256
+ */
6257
+ picture?: BarBoxPictureContext;
6258
+ }
6259
+
6260
+ /**
6261
+ * chart-3d-projection.ts: resolve a chart's `c:view3D` into the projection
6262
+ * PowerPoint actually draws it with.
6263
+ *
6264
+ * PowerPoint's 3D charts use ONE of two fundamentally different projections,
6265
+ * picked by `c:view3D/@rAngAx` ("right angle axes"):
6266
+ *
6267
+ * - `rAngAx=1` (bar3D's own default, verified against `gt/chart-01.webp`):
6268
+ * an OBLIQUE (cavalier-style) parallel projection. The front-facing plot
6269
+ * (axes, gridlines, front face of every mark) is drawn perfectly flat and
6270
+ * undistorted, exactly like the 2D chart; only each mark's own depth
6271
+ * ("thickness") recedes along a fixed screen-space direction set by
6272
+ * `rotX`/`rotY`. This is the SAME depth vector the flat 2D fallback already
6273
+ * computes (`chart-3d-depth.ts#computeDepthVector`); this module exposes it
6274
+ * as a unitless per-world-Z shear so a true WebGL scene's camera can
6275
+ * reproduce it exactly instead of hand-drawn 2D parallelograms.
6276
+ * - `rAngAx=0` (line3D/area3D/pie3D/surface's own default, verified against
6277
+ * `gt/chart-10.webp` and `gt/chart-16.webp`, which both show a genuine
6278
+ * receding 3-axis box: category/series gridlines converge, unlike the
6279
+ * orthogonal bar3D case): a real PERSPECTIVE camera, elevation `rotX`,
6280
+ * azimuth `rotY`, field of view from `c:view3D/c:perspective`.
6281
+ *
6282
+ * Absent `rAngAx` defaults to PowerPoint's own per-chart-type default:
6283
+ * `true` for `bar3D`, `false` for everything else. `pie3D`'s own rotX/rotY
6284
+ * defaults (30/0, "tilt" with no azimuth) differ from every other 3D chart
6285
+ * type's (15/20), matching PowerPoint's Insert Chart gallery defaults.
6286
+ *
6287
+ * @module chart-3d-projection
6288
+ */
6289
+
6290
+ /** `rAngAx=1`: flat front faces, marks recede along a fixed screen-space shear. */
6291
+ interface Chart3DObliqueProjection {
6292
+ mode: 'oblique';
6293
+ /** World-X screen shift per world unit of depth (receding into the scene). */
6294
+ shearX: number;
6295
+ /** World-Y screen shift per world unit of depth. */
6296
+ shearY: number;
6297
+ rotXDeg: number;
6298
+ rotYDeg: number;
6299
+ }
6300
+ /** `rAngAx=0`: a real perspective camera framing the whole 3D grid. */
6301
+ interface Chart3DPerspectiveProjection {
6302
+ mode: 'perspective';
6303
+ /** Elevation in degrees (`c:view3D/@rotX`, -90..90). */
6304
+ rotXDeg: number;
6305
+ /** Azimuth in degrees (`c:view3D/@rotY`, 0..360). */
6306
+ rotYDeg: number;
6307
+ /** Resolved vertical field of view in degrees. */
6308
+ fovDeg: number;
6309
+ }
6310
+ type Chart3DProjection = Chart3DObliqueProjection | Chart3DPerspectiveProjection;
6311
+
6312
+ /**
6313
+ * `line3D`-specific entry point onto the shared cartesian line/area 3D data
6314
+ * shaping ({@link ./cartesian-line-chart-3d-data.ts}).
6315
+ *
6316
+ * @module line-chart-3d-data
6317
+ */
6318
+
6319
+ type LineChart3DSceneOptions = CartesianLine3DSceneOptions;
6320
+
6321
+ /**
6322
+ * Pure geometry helpers for an interactive 3D `pie3D` chart scene, three-agnostic
6323
+ * so the wedge-angle / explosion / camera maths is unit-testable without
6324
+ * mocking WebGL.
6325
+ *
6326
+ * A pie chart has no category/series grid to speak of, so this module does NOT
6327
+ * reuse {@link ./cartesian-chart-3d-geom.ts} wholesale; it reuses only the
6328
+ * generic piece of that module that fits (the sphere camera placement,
6329
+ * {@link computeSphericalCameraPlacement}) and supplies pie-appropriate
6330
+ * siblings for the rest: a fixed disc radius, a thickness driven by the
6331
+ * authored `c:view3D/@hPercent` (height as a percentage of chart width - the
6332
+ * ECMA-376 field pie3D actually authors for its "puck" thickness, distinct
6333
+ * from `depthPercent` which only applies to cartesian 3D kinds), and per-slice
6334
+ * wedge angles that mirror the flat SVG engine's `computePieSlices` angle
6335
+ * bookkeeping (see `./chart-view-model.ts`) so the true-3D and 2D-fallback
6336
+ * presentations always agree on slice proportions, start angle, and explosion
6337
+ * direction.
6338
+ *
6339
+ * @module pie-chart-3d-geom
6340
+ */
6341
+
6342
+ /** The `c:view3D` fields a pie3D scene's camera + wedge thickness care about. */
6343
+ interface PieChart3DView3D extends CartesianCameraView3D {
6344
+ /** Pie "puck" height as a percentage of chart width (`c:view3D/@hPercent`). */
6345
+ hPercent?: number;
6346
+ }
6347
+ /** One pie3D wedge's angle range + explosion pull-out direction. */
6348
+ interface PieChart3DSliceAngle {
6349
+ pointIndex: number;
6350
+ value: number;
6351
+ /**
6352
+ * Arc start angle in radians, in the SAME convention `computePieSlices`
6353
+ * uses (`-PI/2` = 12 o'clock, increasing clockwise-on-screen), passed
6354
+ * straight through to `THREE.CylinderGeometry`'s `thetaStart`. A
6355
+ * documented approximation of PowerPoint's own pie3D orientation, not a
6356
+ * claimed pixel-exact camera-frame match (mirrors this module's other
6357
+ * `c:view3D` maths).
6358
+ */
6359
+ startAngle: number;
6360
+ /** Arc sweep in radians (`CylinderGeometry`'s `thetaLength`). */
6361
+ thetaLength: number;
6362
+ /** World-space [x, z] offset applied to the wedge centre for `c:explosion` pull-out. */
6363
+ explodeOffset: readonly [number, number];
6364
+ }
6365
+
6366
+ /**
6367
+ * Adapts a `pie3D` chart's `PptxChartData` into the wedge-mesh layout the
6368
+ * interactive 3D scene ({@link ./pie-chart-3d-scene.ts}, `createPieChart3DScene`)
6369
+ * needs to mount: one {@link PieChart3DWedge} per data point, positioned
6370
+ * around a shared centre in true 3D space.
6371
+ *
6372
+ * Colour resolution (`resolveVaryColorFill` / `paletteColor`) and explosion
6373
+ * resolution (`resolveDataPointExplosion`) are the SAME functions the flat
6374
+ * SVG oblique-projection pie3D engine uses (`buildPieViewModel` in
6375
+ * `./chart-view-model.ts`), so a pie3D chart's true-3D and 2D-fallback
6376
+ * presentations always agree on colour, value, and pull-out distance: one set
6377
+ * of chart maths, two presentations (mirrors {@link ./bar-chart-3d-data.ts}).
6378
+ *
6379
+ * @module pie-chart-3d-data
6380
+ */
6381
+
6382
+ /** One resolved wedge mesh: angle range, explosion offset, colour, and tooltip data. */
6383
+ interface PieChart3DWedge extends PieChart3DSliceAngle {
6384
+ color: string;
6385
+ }
6386
+ /** Inputs the interactive pie3D scene needs to mount. */
6387
+ interface PieChart3DSceneOptions {
6388
+ wedges: PieChart3DWedge[];
6389
+ categoryLabels: ReadonlyArray<string>;
6390
+ seriesName: string | undefined;
6391
+ numberFormat: string | undefined;
6392
+ outerRadius: number;
6393
+ thickness: number;
6394
+ width: number;
6395
+ height: number;
6396
+ /** Authored `c:view3D` driving the initial camera + wedge thickness. */
6397
+ view3D?: PieChart3DView3D;
6398
+ /**
6399
+ * Series 0's raw values, `c:explosion` percentages (index-aligned with
6400
+ * `wedges`), and `c:firstSliceAng` - everything
6401
+ * `computePieChart3DSliceAngles` needs to recompute every wedge's angle
6402
+ * from a live-dragged value, so a value drag can renormalise the WHOLE
6403
+ * disc locally (rebuilding wedge geometry in the scene) rather than only
6404
+ * the dragged wedge.
6405
+ */
6406
+ values: ReadonlyArray<number>;
6407
+ explosions: ReadonlyArray<number>;
6408
+ firstSliceAngleDeg: number | undefined;
6409
+ }
6410
+
6411
+ /** A value drag on a chart mark, in progress (`move`) or finished (`commit`). */
6412
+ interface ThreeViewDragDetail {
6413
+ part: ChartPartRef;
6414
+ value: number;
6415
+ phase: 'move' | 'commit';
6416
+ }
6417
+ /** Everything `<pptx-three-view>` can show; `kind` picks the lazily-loaded scene module. */
6418
+ type ThreeViewSpec = {
6419
+ kind: 'chart';
6420
+ spec: Chart3DSpec;
6421
+ } | {
6422
+ kind: 'smartart';
6423
+ spec: SmartArt3DModel;
6424
+ };
6425
+
6426
+ /**
6427
+ * three.js 3D surface-chart scene for `<pptx-three-view>` (framework-agnostic).
6428
+ *
6429
+ * Builds an interactive surface chart as a `<pptx-three-view>` scene: a
6430
+ * colour-displaced surface mesh (with optional wireframe), grid floor,
6431
+ * lights, an isometric camera, and DOM axis labels re-projected to screen
6432
+ * after each frame. Raycasts pointer moves against the mesh for a native
6433
+ * hover tooltip (see {@link ./surface-chart-3d-hit-test.ts}) and clicks/drags
6434
+ * for selection and value editing (see
6435
+ * {@link ./surface-chart-3d-interaction-wiring.ts}).
6436
+ *
6437
+ * @module surface-chart-3d-scene
6438
+ */
6439
+
6440
+ /** Inputs describing the surface to render and its container size. */
6441
+ interface SurfaceChart3DSceneOptions {
6442
+ cols: number;
6443
+ rows: number;
6444
+ /** Normalised heights, row-major, length rows*cols, each in [0, 1]. */
6445
+ heightMap: Float32Array;
6446
+ /** Flat RGB triplets, length rows*cols*3, each channel in [0, 1]. */
6447
+ colorMap: Float32Array;
6448
+ /** Draw wireframe grid lines over the surface. */
6449
+ wireframe: boolean;
6450
+ categoryLabels: ReadonlyArray<string>;
6451
+ seriesNames: ReadonlyArray<string>;
6452
+ width: number;
6453
+ height: number;
6454
+ /** Device pixel-ratio cap. Default `2`. */
6455
+ maxPixelRatio?: number;
6456
+ /** Authored `c:view3D` rotation (`rotX`/`rotY`) driving the initial camera. */
6457
+ view3D?: SurfaceCameraView3D;
6458
+ /** Authored `c:floor`/`c:sideWall`/`c:backWall` fill colours, when set. */
6459
+ surfaceColors?: SurfaceWallColors;
6460
+ /**
6461
+ * Raw (un-normalised) values, row-major, length rows*cols. Feeds the
6462
+ * pointer-raycast hover tooltip (see {@link buildSurfaceHoverTooltip}); a
6463
+ * caller that omits it gets a mesh with no hover tooltip.
6464
+ */
6465
+ values?: Float32Array;
6466
+ /** Per-series number-format codes, aligned to `seriesNames`. */
6467
+ numberFormats?: ReadonlyArray<string | undefined>;
6468
+ /** Active font-style emphasis override (bold/italic/underline/size/colour) for the axis labels. */
6469
+ textStyle?: TextStyleAnimationDescriptor;
6470
+ }
6471
+
6472
+ /**
6473
+ * The pure, three-free description of a 3D chart that `<pptx-three-view>`
6474
+ * mounts (`kind: 'chart'`). Built from a chart element by
6475
+ * `buildChart3DSpecForElement`; consumed by `chart-3d-view-scene.ts`.
6476
+ *
6477
+ * The spec is deliberately built ON TOP of the existing flat 2D chart engine
6478
+ * (`buildChartViewModel`) rather than beside it: for a `bar3D` chart with
6479
+ * PowerPoint's own default `c:view3D/@rAngAx=1` (an oblique, not perspective,
6480
+ * projection - see `chart-3d-projection.ts`), the flat 2D fallback's plot
6481
+ * (gridlines, axis ticks, title, legend) is ALREADY pixel-correct and
6482
+ * perfectly undistorted (verified against `gt/chart-01.webp`), and its
6483
+ * `bar` cartesian layout already gets category/series positioning, gap
6484
+ * width and stacking exactly right. This spec reuses that chrome and those
6485
+ * front-face rectangles directly; `chart-3d-view-scene.ts` only has to draw
6486
+ * REAL boxes (instead of flat 2D parallelograms) behind the SAME chrome.
6487
+ *
6488
+ * @module chart-3d-spec
6489
+ */
6490
+
6491
+ /**
6492
+ * One `bar3D` box: front-face rectangle in the flat 2D view-model's own SVG
6493
+ * pixel space (already gap-width/clustering/stacking-correct), extruded
6494
+ * backward in world Z by `depthMagnitude`.
6495
+ */
6496
+ interface Chart3DBarBox {
6497
+ x: number;
6498
+ y: number;
6499
+ w: number;
6500
+ h: number;
6501
+ color: string;
6502
+ seriesIndex: number;
6503
+ categoryIndex: number;
6504
+ /** The point's authored value (hover tooltip, drag start). */
6505
+ value: number;
6506
+ shape: PptxBar3DShape | undefined;
6507
+ /**
6508
+ * World-Z extrusion depth (SVG px units), the SAME quantity the flat 2D
6509
+ * fallback's `chart-3d-depth.ts#computeDepthVector` uses for its
6510
+ * `magnitude`. Every box in a supported (`clustered` / `stacked` /
6511
+ * `percentStacked`) grouping shares one chart-wide depth: those groupings
6512
+ * keep every series COPLANAR (one Z plane), matching PowerPoint's own
6513
+ * `gt/chart-01.webp` (no visible per-series depth separation). `standard`
6514
+ * grouping (each series its own full depth ROW, see `gt/chart-04.webp`)
6515
+ * is NOT yet modelled; see the chart track's progress log.
6516
+ */
6517
+ depthMagnitude: number;
6518
+ }
6519
+ interface Chart3DBarGeometry {
6520
+ kind: 'bar';
6521
+ boxes: readonly Chart3DBarBox[];
6522
+ }
6523
+ /** `null` until a chart type/grouping's oblique geometry is implemented; the scene then uses {@link Chart3DSpec.perspective}. */
6524
+ type Chart3DGeometry = Chart3DBarGeometry | null;
6525
+ /**
6526
+ * The perspective scene a chart falls back to when the oblique geometry does
6527
+ * not cover it yet (line/area/pie/surface, and bar3D's `standard` grouping,
6528
+ * horizontal bars and round shapes). Each is a hosted scene module from the
6529
+ * pre-`<pptx-three-view>` renderer, now drawn through the shared renderer.
6530
+ */
6531
+ type Chart3DPerspectiveScene = {
6532
+ kind: 'bar';
6533
+ options: BarChart3DSceneOptions;
6534
+ } | {
6535
+ kind: 'line';
6536
+ options: LineChart3DSceneOptions;
6537
+ } | {
6538
+ kind: 'area';
6539
+ options: AreaChart3DSceneOptions;
6540
+ } | {
6541
+ kind: 'pie';
6542
+ options: PieChart3DSceneOptions;
6543
+ } | {
6544
+ kind: 'surface';
6545
+ options: SurfaceChart3DSceneOptions;
6546
+ };
6547
+ interface Chart3DSpec {
6548
+ /** The chart element the spec was built from (identity drives remounts). */
6549
+ element: PptxElement;
6550
+ width: number;
6551
+ height: number;
6552
+ chartType: string;
6553
+ projection: Chart3DProjection;
6554
+ /**
6555
+ * The full flat 2D view-model, reused for chrome (title, legend, axis
6556
+ * ticks, gridlines, area/plot fill). The scene draws these via
6557
+ * `chart-view-model-dom.ts`'s piece renderers and skips `vm.primitives`/
6558
+ * `vm.dataLabels` (the flat oblique bars/extrusion), replacing them with
6559
+ * real WebGL geometry from `geometry`.
6560
+ */
6561
+ vm: ChartViewModel;
6562
+ geometry: Chart3DGeometry;
6563
+ /** Category labels (authored, or 1..n when the chart has none). */
6564
+ categoryLabels: readonly string[];
6565
+ /** The perspective scene used when `geometry` is `null`; `null` when neither applies (the 2D fallback stays). */
6566
+ perspective: Chart3DPerspectiveScene | null;
6567
+ }
6568
+
5731
6569
  /**
5732
6570
  * smartart-accessibility.ts: framework-agnostic accessibility metadata for the
5733
6571
  * SmartArt renderer, shared across the React, Vue, and Angular bindings.
@@ -7484,6 +8322,20 @@ interface InkStrokeView {
7484
8322
  * existed.
7485
8323
  */
7486
8324
  nibMarks: NibMark[] | null;
8325
+ /**
8326
+ * CSS `mix-blend-mode` this stroke should paint with: `'multiply'` for a
8327
+ * highlighter-style stroke, so overlapping highlighter strokes darken
8328
+ * where they cross (and a highlighter stroke darkens whatever slide
8329
+ * content sits underneath it) the way a real highlighter pen does, instead
8330
+ * of plain alpha compositing. `'normal'` for every other stroke. A binding
8331
+ * applies this as an inline `mix-blend-mode` style on the stroke's own
8332
+ * `<path>`/`<g>` (not on the element's outer `<svg>`): setting it on the
8333
+ * container instead would blend the whole element's already-composited
8334
+ * output against the backdrop as one unit, so strokes sharing that
8335
+ * container would still alpha-composite (not multiply) against each
8336
+ * other.
8337
+ */
8338
+ blendMode: 'normal' | 'multiply';
7487
8339
  }
7488
8340
 
7489
8341
  /**
@@ -8870,6 +9722,16 @@ interface PrintHtmlDocumentOptions {
8870
9722
  */
8871
9723
  declare function buildPrintHtmlDocument(options: PrintHtmlDocumentOptions): string;
8872
9724
 
9725
+ /** The six opt-in interactive-3D scene flags every binding exposes as host props. */
9726
+ interface Rendering3DFlags {
9727
+ smartArt3D: boolean;
9728
+ surfaceChart3D: boolean;
9729
+ barChart3D: boolean;
9730
+ lineChart3D: boolean;
9731
+ areaChart3D: boolean;
9732
+ pieChart3D: boolean;
9733
+ }
9734
+
8873
9735
  /**
8874
9736
  * Control/section/tab descriptor types for the File > Options schema, plus
8875
9737
  * the terse constructors the tab-definition modules build panes with.
@@ -9381,6 +10243,19 @@ interface RasterizeElementTilesResult {
9381
10243
  tiles: RasterizedTile[];
9382
10244
  }
9383
10245
 
10246
+ /** Public DOM shape used by all bindings; the element is not a native select. */
10247
+ interface PptxUiSelectElement extends HTMLElement {
10248
+ value: string;
10249
+ disabled: boolean;
10250
+ readonly options: HTMLOptionElement[];
10251
+ selectedIndex: number;
10252
+ }
10253
+ declare global {
10254
+ interface HTMLElementTagNameMap {
10255
+ 'pptx-ui-select': PptxUiSelectElement;
10256
+ }
10257
+ }
10258
+
9384
10259
  /**
9385
10260
  * `slide-transition-cinematic`: animation resolver + `@keyframes` for the
9386
10261
  * Office 2013+ (`p15` namespace) "cinematic" slide-transition family: the 3-D
@@ -13444,12 +14319,7 @@ declare class PowerPointViewerComponent implements PowerPointViewerAPI {
13444
14319
  protected readonly autosaveRecovery: AutosaveRecoveryService;
13445
14320
  protected readonly print: PrintService;
13446
14321
  protected readonly mobile: IsMobileService;
13447
- private readonly smartArt3DSvc;
13448
- private readonly surfaceChart3DSvc;
13449
- private readonly barChart3DSvc;
13450
- private readonly lineChart3DSvc;
13451
- private readonly areaChart3DSvc;
13452
- private readonly pieChart3DSvc;
14322
+ private readonly rendering3D;
13453
14323
  private readonly zoomTarget;
13454
14324
  protected readonly presenterWindow: PresenterWindowService;
13455
14325
  private readonly destroyRef;
@@ -13637,7 +14507,7 @@ declare class PowerPointViewerComponent implements PowerPointViewerAPI {
13637
14507
  /** Flip the AutoSave preference, unless the host forbade autosave outright. */
13638
14508
  protected toggleAutosave(): void;
13639
14509
  /** Active drawing tool (from the ribbon Draw tab). */
13640
- protected readonly activeDrawTool: _angular_core.WritableSignal<"pen" | "highlighter" | "eraser" | "select" | "freeform">;
14510
+ protected readonly activeDrawTool: _angular_core.WritableSignal<"select" | "pen" | "highlighter" | "eraser" | "freeform">;
13641
14511
  /** Active ink stroke colour. */
13642
14512
  protected readonly activeDrawColor: _angular_core.WritableSignal<string>;
13643
14513
  /** Active ink stroke width in stage pixels. */
@@ -13736,6 +14606,12 @@ declare class PowerPointViewerComponent implements PowerPointViewerAPI {
13736
14606
  protected onOpenSlideSize(): void;
13737
14607
  protected openMasterView(): void;
13738
14608
  protected closeMasterView(): void;
14609
+ /**
14610
+ * View > Normal: leave whichever alternate view (slide sorter, reading,
14611
+ * outline, master) is currently open and return to the ordinary editing
14612
+ * canvas. The ribbon's "Normal" pill had no handler at all before this.
14613
+ */
14614
+ protected goToNormalView(): void;
13739
14615
  protected selectMasterTab(tab: MasterViewTab): void;
13740
14616
  /**
13741
14617
  * `ppaction://customshow?id=<id>[&return=true]` clicked during a running
@@ -14018,38 +14894,6 @@ declare class PowerPointViewerComponent implements PowerPointViewerAPI {
14018
14894
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<PowerPointViewerComponent, "pptx-viewer", never, { "content": { "alias": "content"; "required": false; "isSignal": true; }; "fontsInput": { "alias": "fonts"; "required": false; "isSignal": true; }; "canEditInput": { "alias": "canEdit"; "required": false; "isSignal": true; }; "class": { "alias": "class"; "required": false; "isSignal": true; }; "theme": { "alias": "theme"; "required": false; "isSignal": true; }; "defaultThemeKey": { "alias": "defaultThemeKey"; "required": false; "isSignal": true; }; "availableThemes": { "alias": "availableThemes"; "required": false; "isSignal": true; }; "onThemeChange": { "alias": "onThemeChange"; "required": false; "isSignal": true; }; "defaultLocale": { "alias": "defaultLocale"; "required": false; "isSignal": true; }; "availableLocales": { "alias": "availableLocales"; "required": false; "isSignal": true; }; "onLocaleChange": { "alias": "onLocaleChange"; "required": false; "isSignal": true; }; "accountAuth": { "alias": "accountAuth"; "required": false; "isSignal": true; }; "filePath": { "alias": "filePath"; "required": false; "isSignal": true; }; "fileName": { "alias": "fileName"; "required": false; "isSignal": true; }; "fitPadding": { "alias": "fitPadding"; "required": false; "isSignal": true; }; "maxFitScale": { "alias": "maxFitScale"; "required": false; "isSignal": true; }; "autosaveInput": { "alias": "autosave"; "required": false; "isSignal": true; }; "autosaveIntervalMs": { "alias": "autosaveIntervalMs"; "required": false; "isSignal": true; }; "collaboration": { "alias": "collaboration"; "required": false; "isSignal": true; }; "authorName": { "alias": "authorName"; "required": false; "isSignal": true; }; "shareDefaults": { "alias": "shareDefaults"; "required": false; "isSignal": true; }; "onOpenFile": { "alias": "onOpenFile"; "required": false; "isSignal": true; }; "smartArt3D": { "alias": "smartArt3D"; "required": false; "isSignal": true; }; "surfaceChart3D": { "alias": "surfaceChart3D"; "required": false; "isSignal": true; }; "barChart3D": { "alias": "barChart3D"; "required": false; "isSignal": true; }; "lineChart3D": { "alias": "lineChart3D"; "required": false; "isSignal": true; }; "areaChart3D": { "alias": "areaChart3D"; "required": false; "isSignal": true; }; "pieChart3D": { "alias": "pieChart3D"; "required": false; "isSignal": true; }; "hiddenActions": { "alias": "hiddenActions"; "required": false; "isSignal": true; }; "ai": { "alias": "ai"; "required": false; "isSignal": true; }; }, { "activeSlideChange": "activeSlideChange"; "dirtyChange": "dirtyChange"; "contentChange": "contentChange"; "propertiesChange": "propertiesChange"; "modeChange": "modeChange"; "zoomChange": "zoomChange"; "selectionChange": "selectionChange"; "slideCountChange": "slideCountChange"; "startCollaboration": "startCollaboration"; "stopCollaboration": "stopCollaboration"; }, never, never, true, never>;
14019
14895
  }
14020
14896
 
14021
- /**
14022
- * Opt-in flag for the Three.js interactive area3D-chart renderer (Angular).
14023
- *
14024
- * Provided by `PowerPointViewerComponent`, which syncs it from the
14025
- * `areaChart3D` input; `ChartElementViewComponent` injects it (optionally)
14026
- * to choose the WebGL ribbon scene (camera orbit/zoom via OrbitControls)
14027
- * over the flat SVG oblique-projection illusion for `area3D` charts. Mirrors
14028
- * `BarChart3DService`, the established shape for this opt-in pattern.
14029
- */
14030
- declare class AreaChart3DService {
14031
- /** `true` when an area3D chart should render via the Three.js scene. */
14032
- readonly enabled: _angular_core.WritableSignal<boolean>;
14033
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<AreaChart3DService, never>;
14034
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<any>;
14035
- }
14036
-
14037
- /**
14038
- * Opt-in flag for the Three.js interactive bar3D-chart renderer (Angular).
14039
- *
14040
- * Provided by `PowerPointViewerComponent`, which syncs it from the
14041
- * `barChart3D` input; `ChartElementViewComponent` injects it (optionally)
14042
- * to choose the WebGL box-mesh scene (camera orbit/zoom via OrbitControls)
14043
- * over the flat SVG oblique-projection illusion for `bar3D` charts. Mirrors
14044
- * `SurfaceChart3DService`, the established shape for this opt-in pattern.
14045
- */
14046
- declare class BarChart3DService {
14047
- /** `true` when a bar3D chart should render via the Three.js scene. */
14048
- readonly enabled: _angular_core.WritableSignal<boolean>;
14049
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<BarChart3DService, never>;
14050
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<any>;
14051
- }
14052
-
14053
14897
  /** A selected chart sub-part, scoped to the chart element that owns it. */
14054
14898
  interface ChartPartSelection {
14055
14899
  elementId: string;
@@ -14199,66 +15043,19 @@ declare class GoogleWebfontsService {
14199
15043
  }
14200
15044
 
14201
15045
  /**
14202
- * Opt-in flag for the Three.js interactive line3D-chart renderer (Angular).
15046
+ * The host's opt-in 3D rendering flags (`smartArt3D`, `surfaceChart3D`,
15047
+ * `barChart3D`, `lineChart3D`, `areaChart3D`, `pieChart3D`), already narrowed
15048
+ * by the viewer user's Options > Advanced > "Disable 3D rendering" override
15049
+ * (see `resolve3DRenderingFlags`).
14203
15050
  *
14204
- * Provided by `PowerPointViewerComponent`, which syncs it from the
14205
- * `lineChart3D` input; `ChartElementViewComponent` injects it (optionally)
14206
- * to choose the WebGL tube-path scene (camera orbit/zoom via OrbitControls)
14207
- * over the flat SVG oblique-projection illusion for `line3D` charts. Mirrors
14208
- * `BarChart3DService`, the established shape for this opt-in pattern.
15051
+ * Provided by `PowerPointViewerComponent`, which syncs it from its six
15052
+ * inputs. ONE service replaces the six per-kind ones; every chart / SmartArt
15053
+ * element hands the flags to `resolveChartThreeViewSpec` /
15054
+ * `resolveSmartArtThreeViewSpec`. Mirrors React's `Rendering3DFlagsContext`.
14209
15055
  */
14210
- declare class LineChart3DService {
14211
- /** `true` when a line3D chart should render via the Three.js scene. */
14212
- readonly enabled: _angular_core.WritableSignal<boolean>;
14213
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<LineChart3DService, never>;
14214
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<any>;
14215
- }
14216
-
14217
- /**
14218
- * Opt-in flag for the Three.js interactive pie3D-chart renderer (Angular).
14219
- *
14220
- * Provided by `PowerPointViewerComponent`, which syncs it from the
14221
- * `pieChart3D` input; `ChartElementViewComponent` injects it (optionally)
14222
- * to choose the WebGL wedge-mesh scene (camera orbit/zoom via OrbitControls)
14223
- * over the flat SVG oblique-projection illusion for `pie3D` charts. Mirrors
14224
- * `BarChart3DService`, the established shape for this opt-in pattern.
14225
- */
14226
- declare class PieChart3DService {
14227
- /** `true` when a pie3D chart should render via the Three.js scene. */
14228
- readonly enabled: _angular_core.WritableSignal<boolean>;
14229
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<PieChart3DService, never>;
14230
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<any>;
14231
- }
14232
-
14233
- /**
14234
- * Opt-in flag for the Three.js SmartArt renderer (Angular).
14235
- *
14236
- * Provided by `PowerPointViewerComponent`, which syncs it from the `smartArt3D`
14237
- * input; the element dispatcher injects it (optionally) to choose the WebGL
14238
- * renderer over the SVG one. Mirrors the React `SmartArt3DContext` and the Vue
14239
- * `SmartArt3DKey` provide/inject. Scoped to the viewer subtree, so renderers
14240
- * used outside the viewer (thumbnails, export) fall back to `false`.
14241
- */
14242
- declare class SmartArt3DService {
14243
- /** `true` when SmartArt should render via the Three.js scene. */
14244
- readonly enabled: _angular_core.WritableSignal<boolean>;
14245
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<SmartArt3DService, never>;
14246
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<any>;
14247
- }
14248
-
14249
- /**
14250
- * Opt-in flag for the Three.js interactive surface-chart renderer (Angular).
14251
- *
14252
- * Provided by `PowerPointViewerComponent`, which syncs it from the
14253
- * `surfaceChart3D` input; `ChartElementViewComponent` injects it (optionally)
14254
- * to choose the WebGL scene (camera orbit/zoom via OrbitControls) over the
14255
- * static SVG isometric projection for `surface`/`surface3D` charts. Mirrors
14256
- * `SmartArt3DService`, the established shape for this opt-in pattern.
14257
- */
14258
- declare class SurfaceChart3DService {
14259
- /** `true` when a surface chart should render via the Three.js scene. */
14260
- readonly enabled: _angular_core.WritableSignal<boolean>;
14261
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<SurfaceChart3DService, never>;
15056
+ declare class Rendering3DService {
15057
+ readonly flags: _angular_core.WritableSignal<Rendering3DFlags>;
15058
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<Rendering3DService, never>;
14262
15059
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<any>;
14263
15060
  }
14264
15061
 
@@ -14343,6 +15140,15 @@ interface KeyboardHost {
14343
15140
  readonly goPrev?: () => void;
14344
15141
  /** Go forward one slide. */
14345
15142
  readonly goNext?: () => void;
15143
+ /**
15144
+ * An inline text or table-cell editor is open. Needed so the text-command
15145
+ * chords (alignment, font-size ladder, format painter, hyperlink, clear
15146
+ * formatting) can survive `mapEditorKey`'s typing gate exactly as they do in
15147
+ * the other four bindings, instead of only ever firing off a selection.
15148
+ */
15149
+ readonly isEditingText?: () => boolean;
15150
+ /** The single selected element, the target of every text/format command. */
15151
+ readonly selectedElement?: () => PptxElement | null;
14346
15152
  }
14347
15153
  declare class ViewerKeyboardService {
14348
15154
  private readonly editor;
@@ -14350,10 +15156,19 @@ declare class ViewerKeyboardService {
14350
15156
  private readonly formatPainter;
14351
15157
  private readonly findReplace;
14352
15158
  private readonly presentationMode;
15159
+ private readonly docProperties;
15160
+ private readonly canvasEditing;
14353
15161
  private host;
14354
15162
  /** Wire the host accessors (called once from the component constructor). */
14355
15163
  bind(host: KeyboardHost): void;
14356
15164
  handleKeyDown(event: KeyboardEvent): void;
15165
+ private applyTextPatch;
15166
+ /** Ctrl+Shift+V: apply the copied format to the current selection (no click needed). */
15167
+ private pasteFormat;
15168
+ /** Ctrl+K, gated on a selection exactly like the ribbon's hyperlink button. */
15169
+ private openHyperlink;
15170
+ /** Tab / Shift+Tab: move the selection to the next/previous element in z-order. */
15171
+ private cycleSelection;
14357
15172
  /**
14358
15173
  * Ctrl/Cmd+F toggles the find bar. Angular has shipped the bar since the
14359
15174
  * find-replace port but had no shortcut for it at all, because the chord was
@@ -14472,7 +15287,7 @@ declare class ZoomTargetService {
14472
15287
  * `PowerPointViewerComponent`'s children (ribbon, slide canvas, inspector,
14473
15288
  * dialogs, ...) rely on via `inject()`.
14474
15289
  */
14475
- 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 SmartArt3DService, typeof SurfaceChart3DService, typeof BarChart3DService, typeof LineChart3DService, typeof AreaChart3DService, typeof PieChart3DService, 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 ViewerPresentationModeService, typeof ViewerThemeGalleryService, typeof ViewerTouchGesturesService, typeof ViewerZoomService];
15290
+ 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 ViewerPresentationModeService, typeof ViewerThemeGalleryService, typeof ViewerTouchGesturesService, typeof ViewerZoomService];
14476
15291
 
14477
15292
  /** Lifecycle of the AI session bootstrap. */
14478
15293
  type AiChatInitState = 'checking' | 'unavailable' | 'ready' | 'error';
@@ -15014,6 +15829,7 @@ declare class RibbonComponent {
15014
15829
  /** Overflow menu: opens the font-embedding dialog. */
15015
15830
  readonly fontEmbedding: _angular_core.OutputEmitterRef<void>;
15016
15831
  readonly link: _angular_core.OutputEmitterRef<void>;
15832
+ readonly goToNormalView: _angular_core.OutputEmitterRef<void>;
15017
15833
  readonly openSorter: _angular_core.OutputEmitterRef<void>;
15018
15834
  /** View tab > Reading View: the deck full-window, not the slide show. */
15019
15835
  readonly openReadingView: _angular_core.OutputEmitterRef<void>;
@@ -15095,7 +15911,7 @@ declare class RibbonComponent {
15095
15911
  /** Forward the Review proofing toggle to the viewer-owned live state. */
15096
15912
  protected setSpellCheck(enabled: boolean): void;
15097
15913
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<RibbonComponent, never>;
15098
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<RibbonComponent, "pptx-ribbon", never, { "slideIndex": { "alias": "slideIndex"; "required": false; "isSignal": true; }; "slideCount": { "alias": "slideCount"; "required": false; "isSignal": true; }; "canEdit": { "alias": "canEdit"; "required": false; "isSignal": true; }; "selectedElement": { "alias": "selectedElement"; "required": false; "isSignal": true; }; "zoomPercent": { "alias": "zoomPercent"; "required": false; "isSignal": true; }; "formatPainterActive": { "alias": "formatPainterActive"; "required": false; "isSignal": true; }; "canActivateFormatPainter": { "alias": "canActivateFormatPainter"; "required": false; "isSignal": true; }; "exporting": { "alias": "exporting"; "required": false; "isSignal": true; }; "hasMacros": { "alias": "hasMacros"; "required": false; "isSignal": true; }; "showGrid": { "alias": "showGrid"; "required": false; "isSignal": true; }; "showRulers": { "alias": "showRulers"; "required": false; "isSignal": true; }; "showGuides": { "alias": "showGuides"; "required": false; "isSignal": true; }; "snapToGrid": { "alias": "snapToGrid"; "required": false; "isSignal": true; }; "snapToShape": { "alias": "snapToShape"; "required": false; "isSignal": true; }; "eyedropperActive": { "alias": "eyedropperActive"; "required": false; "isSignal": true; }; "themeGalleryOpen": { "alias": "themeGalleryOpen"; "required": false; "isSignal": true; }; "sidebarCollapsed": { "alias": "sidebarCollapsed"; "required": false; "isSignal": true; }; "inspectorOpen": { "alias": "inspectorOpen"; "required": false; "isSignal": true; }; "commentsOpen": { "alias": "commentsOpen"; "required": false; "isSignal": true; }; "commentCount": { "alias": "commentCount"; "required": false; "isSignal": true; }; "findOpen": { "alias": "findOpen"; "required": false; "isSignal": true; }; "collabConnected": { "alias": "collabConnected"; "required": false; "isSignal": true; }; "connectedCount": { "alias": "connectedCount"; "required": false; "isSignal": true; }; "spellCheckEnabled": { "alias": "spellCheckEnabled"; "required": false; "isSignal": true; }; "showSubtitles": { "alias": "showSubtitles"; "required": false; "isSignal": true; }; "hiddenActions": { "alias": "hiddenActions"; "required": false; "isSignal": true; }; "aiEnabled": { "alias": "aiEnabled"; "required": false; "isSignal": true; }; "aiPanelOpen": { "alias": "aiPanelOpen"; "required": false; "isSignal": true; }; "accountAuth": { "alias": "accountAuth"; "required": false; "isSignal": true; }; "activeSlideHidden": { "alias": "activeSlideHidden"; "required": false; "isSignal": true; }; }, { "prev": "prev"; "next": "next"; "zoomIn": "zoomIn"; "zoomOut": "zoomOut"; "zoomReset": "zoomReset"; "find": "find"; "present": "present"; "presenter": "presenter"; "record": "record"; "presentFromBeginning": "presentFromBeginning"; "rehearseTimings": "rehearseTimings"; "toggleSubtitles": "toggleSubtitles"; "openSubtitleSettings": "openSubtitleSettings"; "recordFromBeginning": "recordFromBeginning"; "recordFromCurrent": "recordFromCurrent"; "spellCheckChange": "spellCheckChange"; "share": "share"; "broadcast": "broadcast"; "openFile": "openFile"; "openRecentFile": "openRecentFile"; "createPresentation": "createPresentation"; "save": "save"; "savePpsx": "savePpsx"; "savePptm": "savePptm"; "savePpt": "savePpt"; "toggleSidebar": "toggleSidebar"; "toggleAiPanel": "toggleAiPanel"; "signatures": "signatures"; "info": "info"; "print": "print"; "comments": "comments"; "a11y": "a11y"; "shortcuts": "shortcuts"; "versionHistory": "versionHistory"; "passwordProtection": "passwordProtection"; "fontEmbedding": "fontEmbedding"; "link": "link"; "openSorter": "openSorter"; "openReadingView": "openReadingView"; "openOutlineView": "openOutlineView"; "openMasterView": "openMasterView"; "toggleNotes": "toggleNotes"; "toggleFormatPainter": "toggleFormatPainter"; "exportPng": "exportPng"; "exportPdf": "exportPdf"; "exportGif": "exportGif"; "exportVideo": "exportVideo"; "exportJson": "exportJson"; "copySlideAsImage": "copySlideAsImage"; "replace": "replace"; "toggleInspector": "toggleInspector"; "openAnimationPanel": "openAnimationPanel"; "drawToolChange": "drawToolChange"; "toggleThemeGallery": "toggleThemeGallery"; "editTheme": "editTheme"; "openSlideSize": "openSlideSize"; "toggleGrid": "toggleGrid"; "toggleRulers": "toggleRulers"; "toggleGuides": "toggleGuides"; "toggleSelectionPane": "toggleSelectionPane"; "openCustomShows": "openCustomShows"; "toggleSnapToGrid": "toggleSnapToGrid"; "toggleSnapToShape": "toggleSnapToShape"; "addGuide": "addGuide"; "zoomToFit": "zoomToFit"; "toggleEyedropper": "toggleEyedropper"; "openSmartArtDialog": "openSmartArtDialog"; "openTemplateGallery": "openTemplateGallery"; "openEquationDialog": "openEquationDialog"; "openSetUpSlideShow": "openSetUpSlideShow"; "toggleHideSlide": "toggleHideSlide"; "openCompare": "openCompare"; "openPassword": "openPassword"; "openFontEmbedding": "openFontEmbedding"; "openVersionHistory": "openVersionHistory"; "openShortcuts": "openShortcuts"; "openSettings": "openSettings"; }, never, never, true, never>;
15914
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<RibbonComponent, "pptx-ribbon", never, { "slideIndex": { "alias": "slideIndex"; "required": false; "isSignal": true; }; "slideCount": { "alias": "slideCount"; "required": false; "isSignal": true; }; "canEdit": { "alias": "canEdit"; "required": false; "isSignal": true; }; "selectedElement": { "alias": "selectedElement"; "required": false; "isSignal": true; }; "zoomPercent": { "alias": "zoomPercent"; "required": false; "isSignal": true; }; "formatPainterActive": { "alias": "formatPainterActive"; "required": false; "isSignal": true; }; "canActivateFormatPainter": { "alias": "canActivateFormatPainter"; "required": false; "isSignal": true; }; "exporting": { "alias": "exporting"; "required": false; "isSignal": true; }; "hasMacros": { "alias": "hasMacros"; "required": false; "isSignal": true; }; "showGrid": { "alias": "showGrid"; "required": false; "isSignal": true; }; "showRulers": { "alias": "showRulers"; "required": false; "isSignal": true; }; "showGuides": { "alias": "showGuides"; "required": false; "isSignal": true; }; "snapToGrid": { "alias": "snapToGrid"; "required": false; "isSignal": true; }; "snapToShape": { "alias": "snapToShape"; "required": false; "isSignal": true; }; "eyedropperActive": { "alias": "eyedropperActive"; "required": false; "isSignal": true; }; "themeGalleryOpen": { "alias": "themeGalleryOpen"; "required": false; "isSignal": true; }; "sidebarCollapsed": { "alias": "sidebarCollapsed"; "required": false; "isSignal": true; }; "inspectorOpen": { "alias": "inspectorOpen"; "required": false; "isSignal": true; }; "commentsOpen": { "alias": "commentsOpen"; "required": false; "isSignal": true; }; "commentCount": { "alias": "commentCount"; "required": false; "isSignal": true; }; "findOpen": { "alias": "findOpen"; "required": false; "isSignal": true; }; "collabConnected": { "alias": "collabConnected"; "required": false; "isSignal": true; }; "connectedCount": { "alias": "connectedCount"; "required": false; "isSignal": true; }; "spellCheckEnabled": { "alias": "spellCheckEnabled"; "required": false; "isSignal": true; }; "showSubtitles": { "alias": "showSubtitles"; "required": false; "isSignal": true; }; "hiddenActions": { "alias": "hiddenActions"; "required": false; "isSignal": true; }; "aiEnabled": { "alias": "aiEnabled"; "required": false; "isSignal": true; }; "aiPanelOpen": { "alias": "aiPanelOpen"; "required": false; "isSignal": true; }; "accountAuth": { "alias": "accountAuth"; "required": false; "isSignal": true; }; "activeSlideHidden": { "alias": "activeSlideHidden"; "required": false; "isSignal": true; }; }, { "prev": "prev"; "next": "next"; "zoomIn": "zoomIn"; "zoomOut": "zoomOut"; "zoomReset": "zoomReset"; "find": "find"; "present": "present"; "presenter": "presenter"; "record": "record"; "presentFromBeginning": "presentFromBeginning"; "rehearseTimings": "rehearseTimings"; "toggleSubtitles": "toggleSubtitles"; "openSubtitleSettings": "openSubtitleSettings"; "recordFromBeginning": "recordFromBeginning"; "recordFromCurrent": "recordFromCurrent"; "spellCheckChange": "spellCheckChange"; "share": "share"; "broadcast": "broadcast"; "openFile": "openFile"; "openRecentFile": "openRecentFile"; "createPresentation": "createPresentation"; "save": "save"; "savePpsx": "savePpsx"; "savePptm": "savePptm"; "savePpt": "savePpt"; "toggleSidebar": "toggleSidebar"; "toggleAiPanel": "toggleAiPanel"; "signatures": "signatures"; "info": "info"; "print": "print"; "comments": "comments"; "a11y": "a11y"; "shortcuts": "shortcuts"; "versionHistory": "versionHistory"; "passwordProtection": "passwordProtection"; "fontEmbedding": "fontEmbedding"; "link": "link"; "goToNormalView": "goToNormalView"; "openSorter": "openSorter"; "openReadingView": "openReadingView"; "openOutlineView": "openOutlineView"; "openMasterView": "openMasterView"; "toggleNotes": "toggleNotes"; "toggleFormatPainter": "toggleFormatPainter"; "exportPng": "exportPng"; "exportPdf": "exportPdf"; "exportGif": "exportGif"; "exportVideo": "exportVideo"; "exportJson": "exportJson"; "copySlideAsImage": "copySlideAsImage"; "replace": "replace"; "toggleInspector": "toggleInspector"; "openAnimationPanel": "openAnimationPanel"; "drawToolChange": "drawToolChange"; "toggleThemeGallery": "toggleThemeGallery"; "editTheme": "editTheme"; "openSlideSize": "openSlideSize"; "toggleGrid": "toggleGrid"; "toggleRulers": "toggleRulers"; "toggleGuides": "toggleGuides"; "toggleSelectionPane": "toggleSelectionPane"; "openCustomShows": "openCustomShows"; "toggleSnapToGrid": "toggleSnapToGrid"; "toggleSnapToShape": "toggleSnapToShape"; "addGuide": "addGuide"; "zoomToFit": "zoomToFit"; "toggleEyedropper": "toggleEyedropper"; "openSmartArtDialog": "openSmartArtDialog"; "openTemplateGallery": "openTemplateGallery"; "openEquationDialog": "openEquationDialog"; "openSetUpSlideShow": "openSetUpSlideShow"; "toggleHideSlide": "toggleHideSlide"; "openCompare": "openCompare"; "openPassword": "openPassword"; "openFontEmbedding": "openFontEmbedding"; "openVersionHistory": "openVersionHistory"; "openShortcuts": "openShortcuts"; "openSettings": "openSettings"; }, never, never, true, never>;
15099
15915
  }
15100
15916
 
15101
15917
  /** The eight resize-handle positions around a selection box. */
@@ -15554,7 +16370,7 @@ declare class SlideCanvasComponent implements SlideContext {
15554
16370
  */
15555
16371
  readonly aiPickMode: _angular_core.InputSignal<boolean>;
15556
16372
  /** Active draw tool. When not 'select', pointer gestures draw ink strokes. */
15557
- readonly drawTool: _angular_core.InputSignal<"pen" | "highlighter" | "eraser" | "select" | "freeform">;
16373
+ readonly drawTool: _angular_core.InputSignal<"select" | "pen" | "highlighter" | "eraser" | "freeform">;
15558
16374
  /** Active ink stroke colour (CSS colour string). */
15559
16375
  readonly drawColor: _angular_core.InputSignal<string>;
15560
16376
  /** Active ink stroke width in stage pixels. */
@@ -16005,7 +16821,7 @@ declare class ElementRendererComponent {
16005
16821
  * Host opt-in to the Three.js SmartArt renderer. Optional so renderers used
16006
16822
  * outside the viewer subtree (thumbnails, export) default to the SVG one.
16007
16823
  */
16008
- private readonly smartArt3DService;
16824
+ private readonly rendering3D;
16009
16825
  /**
16010
16826
  * Native-animation playback, present only inside a running presentation.
16011
16827
  * Optional so the editor/thumbnails/export render with no animation state.
@@ -16388,16 +17204,8 @@ declare class ChartElementViewComponent {
16388
17204
  private readonly partSelection;
16389
17205
  /** The hosting canvas's slide, for resolving template (master/layout) charts. */
16390
17206
  private readonly slideContext;
16391
- /** Viewer-scoped opt-in flag for the interactive 3D surface-chart renderer. */
16392
- private readonly surfaceChart3DSvc;
16393
- /** Viewer-scoped opt-in flag for the interactive 3D bar3D-chart renderer. */
16394
- private readonly barChart3DSvc;
16395
- /** Viewer-scoped opt-in flag for the interactive 3D line3D-chart renderer. */
16396
- private readonly lineChart3DSvc;
16397
- /** Viewer-scoped opt-in flag for the interactive 3D area3D-chart renderer. */
16398
- private readonly areaChart3DSvc;
16399
- /** Viewer-scoped opt-in flag for the interactive 3D pie3D-chart renderer. */
16400
- private readonly pieChart3DSvc;
17207
+ /** Viewer-scoped resolved 3D flags (host opt-ins ANDed with Options > Advanced). */
17208
+ private readonly rendering3D;
16401
17209
  private readonly injector;
16402
17210
  private readonly wrapper;
16403
17211
  private readonly titleEditor;
@@ -16417,42 +17225,12 @@ declare class ChartElementViewComponent {
16417
17225
  protected readonly titleDraft: _angular_core.WritableSignal<string | null>;
16418
17226
  private readonly chartData;
16419
17227
  /**
16420
- * Opt-in interactive 3D surface scene (camera orbit/zoom via OrbitControls).
16421
- * Click-to-select only: the grid is a single mesh with no per-cell geometry
16422
- * to drag a value against, so value-drag editing stays SVG-only (see the
16423
- * shared `SurfaceChart3DInteraction` doc comment).
16424
- */
16425
- protected readonly use3D: _angular_core.Signal<boolean>;
16426
- protected readonly isSurfaceKind: _angular_core.Signal<boolean>;
16427
- /**
16428
- * Opt-in interactive 3D bar scene (real box meshes, camera orbit/zoom via
16429
- * OrbitControls). Clustered boxes are click-to-select AND drag-to-value
16430
- * (`onChartPart3DSelect`/`onChart3DValueDragCommit` below); stacked/
16431
- * percentStacked boxes are select-only. `chartType` is checked directly
16432
- * (NOT via `resolveChartKind`, which folds `bar`/`bar3D` onto the same
16433
- * 'bar' kind), so a plain 2-D bar chart never mounts the 3D scene.
16434
- */
16435
- protected readonly use3DBar: _angular_core.Signal<boolean>;
16436
- protected readonly isBar3DKind: _angular_core.Signal<boolean>;
16437
- /**
16438
- * Opt-in interactive 3D line/area scenes (tube path / ribbon meshes, camera
16439
- * orbit/zoom via OrbitControls). Point markers are click-to-select AND
16440
- * drag-to-value, same as the bar scene above.
16441
- */
16442
- protected readonly use3DLine: _angular_core.Signal<boolean>;
16443
- protected readonly isLine3DKind: _angular_core.Signal<boolean>;
16444
- protected readonly use3DArea: _angular_core.Signal<boolean>;
16445
- protected readonly isArea3DKind: _angular_core.Signal<boolean>;
16446
- /**
16447
- * Opt-in interactive 3D pie scene (real wedge meshes, camera orbit/zoom via
16448
- * OrbitControls). Click-to-select only: a pie/doughnut slice has no single
16449
- * value axis to drag along (see the shared `PieChart3DInteraction` doc
16450
- * comment). `chartType` is checked directly (NOT via `resolveChartKind`,
16451
- * which folds `pie`/`pie3D`/`doughnut` onto the same 'pie' kind), so a
16452
- * plain 2-D pie or doughnut chart never mounts the 3D scene.
16453
- */
16454
- protected readonly use3DPie: _angular_core.Signal<boolean>;
16455
- protected readonly isPie3DKind: _angular_core.Signal<boolean>;
17228
+ * Opt-in 3D scene (`<pptx-three-view>`): `null` unless the host opted this
17229
+ * raw `c:chartType` into 3D (see `resolveChartThreeViewSpec`). Built from
17230
+ * the COMMITTED element, not the drag preview, so a value drag on a 3D
17231
+ * mark never remounts the scene under the pointer.
17232
+ */
17233
+ protected readonly threeSpec: _angular_core.Signal<ThreeViewSpec | null>;
16456
17234
  /** Whether this chart element is currently selected in the editor. */
16457
17235
  private readonly isSelected;
16458
17236
  /** Direct part editing is active: selected + editable + a commit channel. */
@@ -16467,12 +17245,11 @@ declare class ChartElementViewComponent {
16467
17245
  */
16468
17246
  protected readonly renderedElement: _angular_core.Signal<PptxElement>;
16469
17247
  protected readonly dragBadge: _angular_core.Signal<string>;
16470
- /** The part selected for THIS chart, or null. Also fed to the 3D chart
16471
- * renderers so an external selection change (inspector, keyboard) re-applies
16472
- * the mesh highlight in the mounted scene. */
17248
+ /** The part selected for THIS chart, or null. Also fed to the 3D scene so
17249
+ * an external selection change (inspector, keyboard) re-applies its
17250
+ * highlight. */
16473
17251
  protected readonly selectedPart: _angular_core.Signal<ChartPartRef | null>;
16474
- /** Active font-style emphasis override for a 3D chart scene's own axis
16475
- * labels (bar3D/line3D/area3D/surface3D; pie3D draws none). */
17252
+ /** Active font-style emphasis override for the 3D scene's own labels. */
16476
17253
  protected readonly chartTextStyle: _angular_core.Signal<TextStyleAnimationDescriptor | undefined>;
16477
17254
  constructor();
16478
17255
  protected onPointerDown(event: PointerEvent): void;
@@ -16482,33 +17259,16 @@ declare class ChartElementViewComponent {
16482
17259
  protected onEscape(): void;
16483
17260
  private endDrag;
16484
17261
  /**
16485
- * A 3D scene's own click-to-select fired (or empty space, clearing). Routes
16486
- * to the SAME `ChartPartSelectionService` the 2D `onPointerDown` above uses,
16487
- * so the inspector reacts identically to a 3D mark. Gated on `canEdit()`
16488
- * exactly like the 2D path: every read-only mount of this same chart
16489
- * element (thumbnail rail, export) shares the one injected service
16490
- * instance, so an un-gated write here would fight the canvas copy's
16491
- * selection (see the constructor's `clearForElement` effect comment).
17262
+ * A 3D mark's click / value drag goes through the shared
17263
+ * `applyChart3DSelect` / `applyChart3DDrag` onto the SAME
17264
+ * `ChartPartSelectionService`, drag badge and commit channel the 2D marks
17265
+ * above use, so the inspector and undo history react identically. Gated on
17266
+ * `canEdit()` like the 2D path: every read-only mount of this chart
17267
+ * (thumbnail rail, export) shares the one injected selection service.
16492
17268
  */
17269
+ private chart3DBridge;
16493
17270
  protected onChartPart3DSelect(part: ChartPartRef | null): void;
16494
- /**
16495
- * Live value while dragging a 3D mark. Only drives the floating badge
16496
- * (`dragValue`/`dragBadge`, shared with the 2D drag UI): unlike the 2D SVG
16497
- * drag, previewing the new value in the mesh itself would require
16498
- * re-mounting the WebGL scene on every pointer-move, which would tear down
16499
- * the in-flight pointer capture the shared scene's own drag state machine
16500
- * relies on.
16501
- */
16502
- protected onChart3DValueDragPreview(event: {
16503
- part: ChartPartRef;
16504
- value: number;
16505
- }): void;
16506
- /** Final value from a 3D mark drag: commits through the same channel the
16507
- * 2D value-drag / mark-drag paths use above. */
16508
- protected onChart3DValueDragCommit(event: {
16509
- part: ChartPartRef;
16510
- value: number;
16511
- }): void;
17271
+ protected onChart3DValueDrag(detail: ThreeViewDragDetail): void;
16512
17272
  protected onDblClick(event: MouseEvent): void;
16513
17273
  protected onTitleInput(event: Event): void;
16514
17274
  protected onTitleKeydown(event: KeyboardEvent): void;
@@ -19333,7 +20093,7 @@ declare class TableCellAdvancedFillComponent {
19333
20093
  /** Optional: absent in a standalone unit test with no viewer-level DI tree. */
19334
20094
  private readonly recentColors;
19335
20095
  protected readonly fillModes: {
19336
- value: "image" | "none" | "solid" | "gradient" | "pattern";
20096
+ value: "image" | "pattern" | "none" | "solid" | "gradient";
19337
20097
  i18nKey: string;
19338
20098
  }[];
19339
20099
  protected readonly gradientTypes: {
@@ -19344,7 +20104,7 @@ declare class TableCellAdvancedFillComponent {
19344
20104
  protected readonly patternPreset: _angular_core.Signal<string>;
19345
20105
  /**
19346
20106
  * Offered presets, widened to include the current one when it sits outside
19347
- * the offered slice (the fallback preset does), so the `<select>` cannot show
20107
+ * the offered slice (the fallback preset does), so the `<pptx-ui-select>` cannot show
19348
20108
  * a value the cell does not have and then commit it on the next change.
19349
20109
  */
19350
20110
  protected readonly patterns: _angular_core.Signal<readonly string[]>;
@@ -19354,7 +20114,7 @@ declare class TableCellAdvancedFillComponent {
19354
20114
  key: 'marginTop' | 'marginBottom' | 'marginLeft' | 'marginRight';
19355
20115
  label: string;
19356
20116
  }>;
19357
- protected readonly fillMode: _angular_core.Signal<"image" | "none" | "solid" | "gradient" | "pattern">;
20117
+ protected readonly fillMode: _angular_core.Signal<"image" | "pattern" | "none" | "solid" | "gradient">;
19358
20118
  protected readonly gradType: _angular_core.Signal<"linear" | "radial">;
19359
20119
  protected readonly stops: _angular_core.Signal<GradientStop[]>;
19360
20120
  protected marginValue(key: 'marginTop' | 'marginBottom' | 'marginLeft' | 'marginRight'): number;
@@ -19519,7 +20279,7 @@ declare class ChartDisplayOptionsComponent {
19519
20279
  protected readonly legendPositions: readonly ChartOption<string>[];
19520
20280
  protected readonly bar3DShapeOptions: readonly ChartSubtypeOption<PptxBar3DShape>[];
19521
20281
  protected readonly radarStyleOptions: readonly ChartSubtypeOption<NonNullable<"marker" | "standard" | "filled" | undefined>>[];
19522
- protected readonly surfaceWireframeOptions: readonly ChartSubtypeOption<"true" | "false">[];
20282
+ protected readonly surfaceWireframeOptions: readonly ChartSubtypeOption<"false" | "true">[];
19523
20283
  protected readonly style: _angular_core.Signal<pptx_viewer_core.PptxChartStyle>;
19524
20284
  protected readonly chartData: _angular_core.Signal<PptxChartData | undefined>;
19525
20285
  protected readonly isBar3D: _angular_core.Signal<boolean>;
@@ -19936,7 +20696,7 @@ declare class AnimationAuthorPanelComponent {
19936
20696
  private emit;
19937
20697
  protected onPreview(): void;
19938
20698
  /**
19939
- * Every `<select>` in the panel commits through here. The field name picks the
20699
+ * Every `<pptx-ui-select>` in the panel commits through here. The field name picks the
19940
20700
  * shared patch builder out of {@link ANIMATION_SELECT_SETTERS}; see that
19941
20701
  * module for why there is one handler rather than seven.
19942
20702
  */
@@ -20831,7 +21591,7 @@ declare class ActionSettingsPanelComponent {
20831
21591
  protected actionFor(trigger: Trigger): ElementAction | undefined;
20832
21592
  /** The action type this trigger's controls should render right now. */
20833
21593
  protected typeFor(trigger: Trigger): ElementActionType;
20834
- /** `data.customShows`, for the `customShow` type's target `<select>`. */
21594
+ /** `data.customShows`, for the `customShow` type's target `<pptx-ui-select>`. */
20835
21595
  private readonly loader;
20836
21596
  protected readonly customShows: _angular_core.Signal<readonly PptxCustomShow[]>;
20837
21597
  private update;
@@ -21374,7 +22134,7 @@ declare class ViewerExtraDialogsComponent {
21374
22134
  protected readonly editor: EditorStateService;
21375
22135
  protected readonly loader: LoadContentService;
21376
22136
  private readonly fonts;
21377
- private readonly smartArt3D;
22137
+ private readonly rendering3D;
21378
22138
  private readonly collab;
21379
22139
  /** Real runtime availability for the Options > Add-ins pane; see {@link resolveViewerExtraAddinStatus}. */
21380
22140
  protected readonly addinStatus: _angular_core.Signal<ViewerAddinStatus>;
@@ -21889,7 +22649,7 @@ declare class AccountPageComponent {
21889
22649
  readonly accountAuth: _angular_core.InputSignal<AccountAuthConfig | undefined>;
21890
22650
  private readonly translate;
21891
22651
  protected readonly swatches: readonly string[];
21892
- protected readonly version = "4.1.5";
22652
+ protected readonly version = "4.2.0";
21893
22653
  protected readonly profile: _angular_core.WritableSignal<ViewerProfile>;
21894
22654
  protected readonly initial: _angular_core.Signal<string>;
21895
22655
  protected readonly usage: _angular_core.WritableSignal<LocalStorageUsageSummary | null>;
@@ -22702,9 +23462,9 @@ declare function resolvePresenterNotes(slide: PptxSlide | undefined): PresenterN
22702
23462
  * repo's per-file line budget.
22703
23463
  *
22704
23464
  * Unlike `TextWarpPathDef` (a shared-baseline SVG `<textPath>`), glyph HEIGHT
22705
- * varies with horizontal position here: each glyph carries its own `matrix`
22706
- * transform, computed by `buildGlyphEnvelope` (`pptx-viewer-shared`) from the
22707
- * preset's top/bottom envelope curves sampled across the glyph's own width.
23465
+ * varies with horizontal position here: each glyph carries its own warped
23466
+ * outline path (or, without one, an affine `matrix`), computed once for the
23467
+ * whole block by `buildGlyphEnvelopeBlock` (`pptx-viewer-shared`).
22708
23468
  */
22709
23469
 
22710
23470
  /** One glyph of an envelope-warped (inflate/deflate/can) line. */
@@ -22712,7 +23472,7 @@ interface WarpGlyph {
22712
23472
  readonly char: string;
22713
23473
  readonly x: number;
22714
23474
  readonly y: number;
22715
- /** SVG `matrix(1 b 0 d 0 f)` mapping the nominal band onto the envelope curve. */
23475
+ /** SVG `matrix(a b c d e f)` fit of the envelope mapping over the glyph (fallback only). */
22716
23476
  readonly transform: string;
22717
23477
  readonly fill: string;
22718
23478
  readonly fontWeight: 400 | 700;
@@ -22721,7 +23481,7 @@ interface WarpGlyph {
22721
23481
  readonly fontSize: number;
22722
23482
  /**
22723
23483
  * Present only when this glyph needed more than one rendered piece (see
22724
- * `chooseGlyphSliceCount` in pptx-viewer-shared): a very wide glyph on a
23484
+ * `fitGlyphEnvelopeAffine` in pptx-viewer-shared): a very wide glyph on a
22725
23485
  * strongly-curved envelope, where `transform` alone misses how much the
22726
23486
  * curve bends within the glyph's own width. Absent for an ordinary
22727
23487
  * caption, in which case the template renders exactly one `<text>` with
@@ -22736,11 +23496,11 @@ interface WarpGlyph {
22736
23496
  readonly clipIdPrefix: string;
22737
23497
  /**
22738
23498
  * A warped SVG path `d` for this glyph's ACTUAL outline (see
22739
- * `buildWarpedGlyphOutlinePathD` in pptx-viewer-shared), present only when
22740
- * a real font file was obtainable for this glyph's family/style. When set,
22741
- * the template renders `<path d [fill]>` instead of `<text transform>` /
22742
- * `slices`: exact, since every outline point is already mapped through the
22743
- * envelope curve at its OWN x.
23499
+ * `buildWarpedGlyphOutlinePathD` in pptx-viewer-shared), present whenever
23500
+ * an outline was obtainable (a font file, or a glyph traced from the
23501
+ * browser's own rendering). When set, the template renders
23502
+ * `<path d [fill]>` instead of `<text transform>` / `slices`: exact, since
23503
+ * every outline point is already mapped through the envelope.
22744
23504
  */
22745
23505
  readonly outlinePath?: string;
22746
23506
  }
@@ -23302,21 +24062,20 @@ declare function boolFromEvent(event: Event): boolean;
23302
24062
  declare function numFromEvent(event: Event): number | null | undefined;
23303
24063
 
23304
24064
  /**
23305
- * SmartArt3DRendererComponent: Angular Three.js SmartArt renderer.
23306
- *
23307
- * Builds the pure 3D model from the shared layout engine (no `three` import),
23308
- * then lazily imports the vanilla scene runtime from the vendored
23309
- * `pptx-viewer-shared/smartart-3d` and mounts it on a canvas. `three` is an
23310
- * optional peer dependency: when it is missing, the diagram has no geometry, or
23311
- * the scene errors, the component falls back to the SVG SmartArt renderer.
24065
+ * SmartArt3DRendererComponent: Angular 3D SmartArt view on the shared
24066
+ * `<pptx-three-view>`. The spec (`resolveSmartArtThreeViewSpec`) and the whole
24067
+ * scene live in the shared package; this component projects the SVG
24068
+ * `<pptx-smart-art-renderer>` as the element's fallback (shown while the scene
24069
+ * loads, and kept when `three` is missing or the scene fails). A diagram with
24070
+ * nothing to draw renders the plain SVG. Mirrors React's `SmartArt3DView.tsx`.
23312
24071
  *
23313
- * When `canEdit` is true and the 3D scene is active, an invisible
23314
- * `<pptx-smart-art-renderer>` overlay is stacked over the canvas. Double-clicking
24072
+ * When `canEdit` is true, an invisible `<pptx-smart-art-renderer>` overlay is
24073
+ * stacked over the scene. Double-clicking
23315
24074
  * on the overlay uses `document.elementsFromPoint` to locate the `<g>` bearing
23316
24075
  * `data-smartart-node-id`, then opens an inline textarea editor over that node
23317
24076
  * (same commit path as the SVG renderer: `EditorStateService.updateElement`).
23318
24077
  */
23319
- declare class SmartArt3DRendererComponent implements OnDestroy {
24078
+ declare class SmartArt3DRendererComponent {
23320
24079
  readonly element: _angular_core.InputSignal<PptxElement>;
23321
24080
  readonly zIndex: _angular_core.InputSignal<number>;
23322
24081
  /** When true and the 3D scene is active, enables inline node text editing. */
@@ -23337,18 +24096,16 @@ declare class SmartArt3DRendererComponent implements OnDestroy {
23337
24096
  * animation playback. Mirrors `ChartElementViewComponent`'s `textStyle`
23338
24097
  * threading for the 3D chart scenes: a canvas-texture caption has no DOM
23339
24098
  * text node the CSS-injection path (`buildTextStyleOverrideCss`) can reach,
23340
- * so the scene's own `setTextStyle` handle method is the only way in.
24099
+ * so the scene's own text style is the only way in.
23341
24100
  */
23342
24101
  readonly textStyle: _angular_core.InputSignal<TextStyleAnimationDescriptor | undefined>;
23343
- private readonly canvas;
23344
24102
  private readonly containerEl;
23345
24103
  private readonly nodeEditor3d;
23346
- /** `true` until the 3D scene is known to be mountable; renders the SVG fallback. */
23347
- readonly useFallback: _angular_core.WritableSignal<boolean>;
23348
- private readonly mountFn;
23349
- /** The live mounted handle, or `null` while unmounted. A signal so
23350
- * `setTextStyle` re-applies as soon as it (or the input) changes. */
23351
- private readonly handle;
24104
+ private readonly rendering3D;
24105
+ /** The scene spec, or `null` (flag off, or nothing to draw): render the plain SVG. */
24106
+ protected readonly spec: _angular_core.Signal<ThreeViewSpec | null>;
24107
+ /** `true` when no 3D scene applies; renders the SVG renderer on its own. */
24108
+ readonly useFallback: _angular_core.Signal<boolean>;
23352
24109
  protected readonly editState: _angular_core.WritableSignal<InlineEditState | null>;
23353
24110
  /** Live draft text, updated on every input event. */
23354
24111
  protected draftText: string;
@@ -23365,9 +24122,7 @@ declare class SmartArt3DRendererComponent implements OnDestroy {
23365
24122
  */
23366
24123
  readonly hitTargetStyle: _angular_core.Signal<CssStyleMap | undefined>;
23367
24124
  private readonly smartArtData;
23368
- private readonly model;
23369
24125
  constructor();
23370
- private loadScene;
23371
24126
  /**
23372
24127
  * Locate the SmartArt node at the click position using `elementsFromPoint`
23373
24128
  * (which includes pointer-events:none SVG elements) and open the inline editor.
@@ -23382,7 +24137,6 @@ declare class SmartArt3DRendererComponent implements OnDestroy {
23382
24137
  /** Discard the current edit without committing. */
23383
24138
  cancelEdit(): void;
23384
24139
  private applyCommit;
23385
- ngOnDestroy(): void;
23386
24140
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SmartArt3DRendererComponent, never>;
23387
24141
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<SmartArt3DRendererComponent, "pptx-smart-art-3d-renderer", never, { "element": { "alias": "element"; "required": true; "isSignal": true; }; "zIndex": { "alias": "zIndex"; "required": false; "isSignal": true; }; "canEdit": { "alias": "canEdit"; "required": false; "isSignal": true; }; "markElement": { "alias": "markElement"; "required": false; "isSignal": true; }; "editable": { "alias": "editable"; "required": false; "isSignal": true; }; "presenting": { "alias": "presenting"; "required": false; "isSignal": true; }; "textStyle": { "alias": "textStyle"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
23388
24142
  }
@@ -23856,11 +24610,6 @@ interface BackstageAction {
23856
24610
  };
23857
24611
  }
23858
24612
  declare class RibbonFileSectionComponent {
23859
- protected readonly searchClasses: {
23860
- readonly box: "mt-8 flex h-10 w-full max-w-[540px] items-center gap-2 border border-input bg-card px-3 text-muted-foreground focus-within:border-ring";
23861
- readonly icon: "size-4 shrink-0";
23862
- readonly input: "h-full min-w-0 flex-1 border-0 bg-transparent text-[13px] text-card-foreground outline-none placeholder:text-muted-foreground";
23863
- };
23864
24613
  readonly fileName: _angular_core.InputSignal<string | undefined>;
23865
24614
  readonly slideCount: _angular_core.InputSignal<number>;
23866
24615
  readonly exporting: _angular_core.InputSignal<boolean>;
@@ -24461,6 +25210,11 @@ declare class RibbonViewSectionComponent {
24461
25210
  /** Whether dragging snaps to other shapes' edges (active-state styling). */
24462
25211
  readonly snapToShape: _angular_core.InputSignal<boolean>;
24463
25212
  readonly eyedropperActive: _angular_core.InputSignal<boolean>;
25213
+ /**
25214
+ * View > Normal: leave whichever alternate view (slide sorter, reading,
25215
+ * outline, master) is open and return to the ordinary editing canvas.
25216
+ */
25217
+ readonly goToNormalView: _angular_core.OutputEmitterRef<void>;
24464
25218
  readonly openSorter: _angular_core.OutputEmitterRef<void>;
24465
25219
  /** Enter Reading View: the deck full-window, NOT the fullscreen slide show. */
24466
25220
  readonly openReadingView: _angular_core.OutputEmitterRef<void>;
@@ -24477,7 +25231,7 @@ declare class RibbonViewSectionComponent {
24477
25231
  readonly zoomToFit: _angular_core.OutputEmitterRef<void>;
24478
25232
  readonly toggleEyedropper: _angular_core.OutputEmitterRef<void>;
24479
25233
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<RibbonViewSectionComponent, never>;
24480
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<RibbonViewSectionComponent, "pptx-ribbon-view-section", never, { "canEdit": { "alias": "canEdit"; "required": false; "isSignal": true; }; "showGrid": { "alias": "showGrid"; "required": false; "isSignal": true; }; "showRulers": { "alias": "showRulers"; "required": false; "isSignal": true; }; "showGuides": { "alias": "showGuides"; "required": false; "isSignal": true; }; "snapToGrid": { "alias": "snapToGrid"; "required": false; "isSignal": true; }; "snapToShape": { "alias": "snapToShape"; "required": false; "isSignal": true; }; "eyedropperActive": { "alias": "eyedropperActive"; "required": false; "isSignal": true; }; }, { "openSorter": "openSorter"; "openReadingView": "openReadingView"; "openOutlineView": "openOutlineView"; "openMasterView": "openMasterView"; "toggleGrid": "toggleGrid"; "toggleRulers": "toggleRulers"; "toggleGuides": "toggleGuides"; "toggleSelectionPane": "toggleSelectionPane"; "toggleSnapToGrid": "toggleSnapToGrid"; "toggleSnapToShape": "toggleSnapToShape"; "addGuide": "addGuide"; "zoomToFit": "zoomToFit"; "toggleEyedropper": "toggleEyedropper"; }, never, never, true, never>;
25234
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<RibbonViewSectionComponent, "pptx-ribbon-view-section", never, { "canEdit": { "alias": "canEdit"; "required": false; "isSignal": true; }; "showGrid": { "alias": "showGrid"; "required": false; "isSignal": true; }; "showRulers": { "alias": "showRulers"; "required": false; "isSignal": true; }; "showGuides": { "alias": "showGuides"; "required": false; "isSignal": true; }; "snapToGrid": { "alias": "snapToGrid"; "required": false; "isSignal": true; }; "snapToShape": { "alias": "snapToShape"; "required": false; "isSignal": true; }; "eyedropperActive": { "alias": "eyedropperActive"; "required": false; "isSignal": true; }; }, { "goToNormalView": "goToNormalView"; "openSorter": "openSorter"; "openReadingView": "openReadingView"; "openOutlineView": "openOutlineView"; "openMasterView": "openMasterView"; "toggleGrid": "toggleGrid"; "toggleRulers": "toggleRulers"; "toggleGuides": "toggleGuides"; "toggleSelectionPane": "toggleSelectionPane"; "toggleSnapToGrid": "toggleSnapToGrid"; "toggleSnapToShape": "toggleSnapToShape"; "addGuide": "addGuide"; "zoomToFit": "zoomToFit"; "toggleEyedropper": "toggleEyedropper"; }, never, never, true, never>;
24481
25235
  }
24482
25236
 
24483
25237
  /**
@@ -24813,6 +25567,19 @@ declare class MediaRendererComponent {
24813
25567
  /** The live `<video>`/`<audio>` node (only one is mounted at a time). */
24814
25568
  private readonly mediaElRef;
24815
25569
  constructor();
25570
+ /** Whether the mounted `<video>`/`<audio>` is currently playing. */
25571
+ private readonly isPlaying;
25572
+ /**
25573
+ * Whether this media element should render the `fullScrn` full-slide
25574
+ * overlay layout right now (issue wave item 10). The trigger is shared so
25575
+ * all five bindings agree on when it fires; only the style application and
25576
+ * play/pause wiring are per-binding.
25577
+ */
25578
+ readonly fullscreenActive: _angular_core.Signal<boolean>;
25579
+ /** Aria label for the full-slide overlay's stop/close button. */
25580
+ readonly stopFullscreenAria: _angular_core.Signal<string>;
25581
+ /** Pauses the mounted media, dropping the overlay back to inline. */
25582
+ stopFullscreen(): void;
24816
25583
  /**
24817
25584
  * Whether to paint the browser's native transport.
24818
25585
  *
@@ -25208,31 +25975,6 @@ declare class TitleBarSearchComponent {
25208
25975
  /** The user asked to search slide CONTENT rather than commands. */
25209
25976
  readonly toggleFindReplace: _angular_core.OutputEmitterRef<void>;
25210
25977
  private readonly translate;
25211
- protected readonly tb: {
25212
- readonly container: "flex items-center gap-1 h-9 px-2 border-b border-border/60 bg-secondary/80 text-[11px] select-none max-md:hidden";
25213
- readonly logo: "flex items-center justify-center w-5 h-5 rounded-sm bg-[#c43e1c] text-white text-[10px] font-bold shrink-0";
25214
- readonly autosaveGroup: "flex items-center gap-1.5 pl-1.5 pr-0.5 shrink-0";
25215
- readonly autosaveLabel: "text-[11px] text-muted-foreground whitespace-nowrap";
25216
- readonly toggleTrack: "relative inline-flex items-center w-7 h-3.5 rounded-full transition-colors cursor-pointer disabled:opacity-40 disabled:cursor-not-allowed";
25217
- readonly toggleTrackOn: "bg-primary";
25218
- readonly toggleTrackOff: "bg-muted-foreground/40";
25219
- readonly toggleKnob: "absolute w-2.5 h-2.5 rounded-full bg-white shadow-sm transition-transform";
25220
- readonly toggleKnobOn: "translate-x-[15px]";
25221
- readonly toggleKnobOff: "translate-x-0.5";
25222
- readonly quickButton: "p-1 rounded-sm transition-colors hover:bg-accent/60 text-muted-foreground disabled:opacity-40 disabled:cursor-not-allowed active:scale-90 active:opacity-70";
25223
- readonly separator: "w-px h-4 bg-border/60 mx-1 shrink-0";
25224
- readonly fileGroup: "flex items-baseline gap-1.5 px-1 min-w-0 shrink";
25225
- readonly fileName: "text-[12px] font-medium text-foreground whitespace-nowrap overflow-hidden text-ellipsis max-w-[240px]";
25226
- readonly statusDot: "text-muted-foreground/70";
25227
- readonly statusText: "text-[11px] text-muted-foreground whitespace-nowrap";
25228
- readonly statusError: "text-red-400";
25229
- readonly statusSaving: "text-yellow-500";
25230
- readonly searchWrap: "flex-1 flex justify-center min-w-0 px-2";
25231
- readonly searchBox: "flex items-center gap-2 w-full max-w-md px-3 py-[3px] rounded-md bg-background/70 border border-border/60 text-muted-foreground hover:bg-background hover:text-foreground focus-within:border-ring transition-colors";
25232
- readonly searchIcon: "w-3 h-3 shrink-0";
25233
- readonly searchLabel: "text-[11px] truncate";
25234
- readonly rightSpacer: "flex items-center justify-end gap-1 shrink-0";
25235
- };
25236
25978
  protected readonly searchQuery: _angular_core.WritableSignal<string>;
25237
25979
  protected readonly searchFocused: _angular_core.WritableSignal<boolean>;
25238
25980
  protected readonly commandResults: _angular_core.Signal<CommandSearchEntry[]>;
@@ -25300,6 +26042,6 @@ declare function thumbnailHeight(canvasW: number, canvasH: number, thumbW: numbe
25300
26042
  */
25301
26043
  declare function gridColumns(containerW: number, thumbW: number, gap: number, maxCols: number): number;
25302
26044
 
25303
- 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, BroadcastDialogComponent, 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, EFFECT_SOUND_CATALOGUE, 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, 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, RULER_FONT_SIZE, RULER_THICKNESS, ReadingViewOverlayComponent, RemoteSelectionOverlayComponent, 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, SmartArt3DService, 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, 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_THEME, VersionHistoryPanelComponent, ViewerCanvasEditingService, ViewerCollabCursorService, ViewerCollaborationSessionService, ViewerCollaborationShellService, ViewerCompareService, ViewerCustomShowsService, 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, 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, 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, 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, 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 };
26045
+ 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, BroadcastDialogComponent, 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, EFFECT_SOUND_CATALOGUE, 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, 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, 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, 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_THEME, VersionHistoryPanelComponent, ViewerCanvasEditingService, ViewerCollabCursorService, ViewerCollaborationSessionService, ViewerCollaborationShellService, ViewerCompareService, ViewerCustomShowsService, 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, 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, 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, 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 };
25304
26046
  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, 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, 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, LegendEntry, LinePoint, LinearFit, LocalIdentity, LocalStorageUsageSummary, LocaleCatalogEntry, MobileSheetKey, Model3DViewModel, MotionPathColumn, MotionPathEntry, NodeEditBox, NotesSegmentViewModel, ObjectUrlFactory, OleActionModel, OleInfoRow, 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, ResolvedDirection, ResolvedDirection8, ResolvedFontVariant, ResolvedOleType, RulerUnit, SanitizedPresence, SavedPresentationFormat, ScatterDot, ScatterXDomain, SelectionBox, SessionDeck, ShapeStyleChanges, ShareDefaults$1 as ShareDefaults, ShareFormFields, 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, ViewerMode, ViewerProfile, ViewerSettings, ViewerTheme, ViewerThemeColors, ViewportFitOptions, ViewportFitPadding, ZoomTranslate, ZoomViewModel };
25305
26047
  //# sourceMappingURL=pptx-angular-viewer.d.ts.map