pptx-angular-viewer 3.2.3 → 3.4.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, PptxSlide, PptxElement, ShapeStyle, PptxTextWarpPreset, XmlObject, PptxChartLegendTextStyle, PptxChartSeries, PptxChartData, 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, PptxEmbeddedFont, SmartArtLayout, AccessibilityIssueSeverity, AccessibilityIssue, AccessibilityIssueType, AccessibilityCheckOptions, ElementActionType, InkPptxElement, PptxComment, PptxChartBarDirection, PptxTheme, PptxHandler, PptxData, PptxHeaderFooter, PptxCustomShow, PptxSlideMaster, PptxNotesMaster, PptxHandoutMaster, PptxPresentationProperties, PptxViewProperties, PptxCoreProperties, PptxAppProperties, PptxThemeOption, PptxCustomProperty, PptxTagCollection, ParsedSignature, PptxSaveFormat, PptxTableCell, PptxTableCellStyle, PptxTableRow, PptxTableData, MasterViewTab, SvgExportOptions, PptxGridSpacing, RenderedNode, RenderedCircleNode, RenderedPolygonNode, RenderedRectNode, SmartArtLayoutResult, Model3DPptxElement, ZoomPptxElement, ChartPptxElement, MediaPptxElement, SmartArtPptxElement, PptxAnimationTimelineAnchor, MaterialPresetType, Text3DStyle, BevelPresetType, 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, PptxSlide, PptxElement, 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, PlaceholderDefaults, PptxEmbeddedFont, SmartArtLayout, AccessibilityIssueSeverity, AccessibilityIssue, AccessibilityIssueType, AccessibilityCheckOptions, ElementActionType, InkPptxElement, PptxComment, PptxChartBarDirection, MediaPptxElement, PptxTheme, PptxHandler, PptxData, PptxHeaderFooter, PptxCustomShow, PptxSlideMaster, PptxNotesMaster, PptxHandoutMaster, PptxPresentationProperties, PptxViewProperties, PptxCoreProperties, PptxAppProperties, PptxThemeOption, PptxCustomProperty, PptxTagCollection, ParsedSignature, PptxSaveFormat, PptxTableCell, PptxTableCellStyle, PptxTableRow, PptxTableData, MasterViewTab, SvgExportOptions, PptxGridSpacing, RenderedNode, RenderedCircleNode, RenderedPolygonNode, RenderedRectNode, SmartArtLayoutResult, Model3DPptxElement, ZoomPptxElement, ChartPptxElement, SmartArtPptxElement, PptxAnimationTimelineAnchor, MaterialPresetType, Text3DStyle, BevelPresetType, 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';
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 * as _angular_core from '@angular/core';
5
5
  import { Signal, WritableSignal, OnDestroy, OnInit, AfterViewInit, OnChanges, SimpleChanges, InjectionToken, Provider } from '@angular/core';
@@ -1068,51 +1068,11 @@ interface EquationTemplate {
1068
1068
  }
1069
1069
 
1070
1070
  /**
1071
- * chart-view-model.ts - framework-agnostic SVG-primitive chart engine.
1071
+ * chart-view-model-scale.ts: palette, value-range and axis-value helpers of
1072
+ * the chart engine. Split out of `chart-view-model.ts`, which re-exports
1073
+ * everything here; see that module's header for the palette caveat.
1072
1074
  *
1073
- * A single `buildChartViewModel(element)` projects a chart `PptxElement` into a
1074
- * `ChartViewModel` of pure `SvgPrimitive` descriptors (rect / path / polyline /
1075
- * circle / line / polygon / text). Each binding (React / Vue / Angular) iterates
1076
- * that descriptor list to emit its own SVG; only the EMISSION is per-framework;
1077
- * all geometry / data / palette / layout math lives here.
1078
- *
1079
- * Originally extracted from the Angular `chart-renderer-helpers.ts`, which was
1080
- * itself ported from the React `viewer/utils/chart-*.tsx` renderers. Sibling
1081
- * modules (`chart-combo-stock`, `chart-surface-treemap`, `chart-waterfall-map`,
1082
- * `chart-overlays`) build the advanced chart kinds and overlays on top of the
1083
- * primitives and helpers defined here.
1084
- *
1085
- * Note: this engine's palette helpers (`seriesColor(series, index, palette)`,
1086
- * `paletteColor(index, palette)`) and `DEFAULT_PALETTE` (Office accent set)
1087
- * deliberately differ from the style-id-aware variants in `chart-helpers.ts`
1088
- * (`seriesColor(series, index, styleId?, palette?)`, `DEFAULT_CHART_PALETTE`,
1089
- * tailwind set). They are NOT re-exported through the barrel to avoid name
1090
- * collisions; consume them from this module directly.
1091
- *
1092
- * Supported chart kinds (viewer-first):
1093
- * bar / column (clustered, stacked, percentStacked) -> bar rects
1094
- * line / line3D -> polyline + dots
1095
- * area / area3D -> polygon fill + polyline
1096
- * pie / doughnut / pie3D / ofPie -> arc paths
1097
- * scatter -> circle dots
1098
- * bubble -> circle dots sized by each series' own c:bubbleSize
1099
- * radar / radar3D -> polar polygons + spokes
1100
- * combo / stock / surface / treemap / waterfall / regionMap -> sibling modules
1101
- * funnel / sunburst / histogram / boxWhisker -> sibling modules
1102
- *
1103
- * Supported chart kinds (viewer-first):
1104
- * bar / column (clustered, stacked, percentStacked) -> bar rects
1105
- * line / line3D -> polyline + dots
1106
- * area / area3D -> polygon fill + polyline
1107
- * pie / doughnut / pie3D / ofPie -> arc paths
1108
- * scatter -> circle dots
1109
- * bubble -> circle dots sized by each series' own c:bubbleSize
1110
- * radar / radar3D -> polar polygons + spokes
1111
- *
1112
- * Deferred (fallback box rendered instead):
1113
- * bar3D (complex 3-D shading), secondary axes.
1114
- *
1115
- * @module chart-view-model
1075
+ * @module chart-view-model-scale
1116
1076
  */
1117
1077
 
1118
1078
  /**
@@ -1185,6 +1145,16 @@ declare function formatAxisValue(val: number, formatCode?: string): string;
1185
1145
  * to just the value when neither is.
1186
1146
  */
1187
1147
  declare function buildMarkTooltip(seriesName: string | undefined, categoryLabel: string | undefined, value: number, numberFormat?: string): string;
1148
+
1149
+ /**
1150
+ * chart-view-model-types.ts: the framework-neutral descriptor types of the
1151
+ * chart engine (plot layout, interactive part refs, SVG primitives, legend
1152
+ * entries and the `ChartViewModel` every binding projects into its own SVG).
1153
+ * Split out of `chart-view-model.ts`, which re-exports everything here.
1154
+ *
1155
+ * @module chart-view-model-types
1156
+ */
1157
+
1188
1158
  /** Bounding-box of the chart's usable plot area in SVG coordinates. */
1189
1159
  interface PlotLayout {
1190
1160
  svgWidth: number;
@@ -1207,7 +1177,6 @@ interface PlotLayoutOptions {
1207
1177
  hasDataTable?: boolean;
1208
1178
  dataTableRowCount?: number;
1209
1179
  }
1210
- declare function computePlotLayout(elementWidth: number, elementHeight: number, chartData: PptxChartData, hasAxes: boolean, options?: PlotLayoutOptions): PlotLayout;
1211
1180
  /**
1212
1181
  * Reference to an interactive chart sub-part, carried by the primitives that
1213
1182
  * represent data marks (bars, dots, slices, series lines). Bindings use it to
@@ -1405,6 +1374,77 @@ interface ChartViewModel {
1405
1374
  */
1406
1375
  userShapes?: SvgPrimitive[];
1407
1376
  }
1377
+
1378
+ /**
1379
+ * chart-view-model-bars.ts: bar / column rectangle and line-point geometry of
1380
+ * the chart engine. Split out of `chart-view-model.ts`, which re-exports
1381
+ * everything here.
1382
+ *
1383
+ * @module chart-view-model-bars
1384
+ */
1385
+
1386
+ interface BarRect {
1387
+ x: number;
1388
+ y: number;
1389
+ w: number;
1390
+ h: number;
1391
+ fill: string;
1392
+ /** Source series index, carried so plot builders can tag interactive parts. */
1393
+ seriesIndex?: number;
1394
+ /** Source category index, carried so plot builders can tag interactive parts. */
1395
+ pointIndex?: number;
1396
+ }
1397
+ declare function computeBarRects(series: ReadonlyArray<PptxChartSeries>, catCount: number, layout: PlotLayout, range: ValueRange, colorPalette: readonly string[] | undefined): BarRect[];
1398
+ declare function computeStackedBarRects(series: ReadonlyArray<PptxChartSeries>, catCount: number, layout: PlotLayout, range: ValueRange, colorPalette: readonly string[] | undefined): BarRect[];
1399
+ interface LinePoint {
1400
+ x: number;
1401
+ y: number;
1402
+ }
1403
+ declare function computeLinePoints(values: ReadonlyArray<number>, catCount: number, layout: PlotLayout, range: ValueRange): LinePoint[];
1404
+ declare function linePointsToSvgString(points: ReadonlyArray<LinePoint>): string;
1405
+
1406
+ /**
1407
+ * chart-view-model-build.ts: `buildChartViewModel` and the post-passes every
1408
+ * chart kind's view-model goes through (legend entries, area fills, user-shape
1409
+ * overlay, manual layouts). Split out of `chart-view-model.ts`, which
1410
+ * re-exports everything here.
1411
+ *
1412
+ * @module chart-view-model-build
1413
+ */
1414
+
1415
+ declare function buildChartViewModel(element: PptxElement): ChartViewModel;
1416
+
1417
+ /**
1418
+ * chart-view-model-kinds.ts: the supported chart kinds, their preserveAspectRatio
1419
+ * and the chart-type to kind resolver. Split out of `chart-view-model.ts`,
1420
+ * which re-exports everything here.
1421
+ *
1422
+ * @module chart-view-model-kinds
1423
+ */
1424
+ type SupportedChartKind = 'bar' | 'line' | 'area' | 'pie' | 'doughnut' | 'scatter' | 'bubble' | 'radar' | 'combo' | 'stock' | 'surface' | 'treemap' | 'waterfall' | 'regionMap' | 'funnel' | 'sunburst' | 'histogram' | 'boxWhisker';
1425
+ /**
1426
+ * The `preserveAspectRatio` a chart kind's `<svg>` must carry.
1427
+ *
1428
+ * Cartesian charts stretch to fill the element box (`none`); the kinds whose
1429
+ * geometry is round or laid out on a fixed-ratio canvas (pie, doughnut, radar,
1430
+ * and the region map's 1000x500 world outline) keep their proportions instead.
1431
+ *
1432
+ * A pure decision function because all five bindings need the same answer and
1433
+ * four of them had written their own copy of the `kind === 'pie' || ...` chain;
1434
+ * one of the copies (React's) disagreed with the rest.
1435
+ */
1436
+ declare function chartPreserveAspectRatio(kind: SupportedChartKind | 'unsupported'): 'none' | 'xMidYMid meet';
1437
+ declare function resolveChartKind(chartType: string): SupportedChartKind | 'unsupported';
1438
+
1439
+ /**
1440
+ * chart-view-model-layout.ts: plot-area layout and chart chrome (gridlines,
1441
+ * axis / category labels, legend placement) of the chart engine. Split out of
1442
+ * `chart-view-model.ts`, which re-exports everything here.
1443
+ *
1444
+ * @module chart-view-model-layout
1445
+ */
1446
+
1447
+ declare function computePlotLayout(elementWidth: number, elementHeight: number, chartData: PptxChartData, hasAxes: boolean, options?: PlotLayoutOptions): PlotLayout;
1408
1448
  declare const GRIDLINE_COLOR = "#e2e8f0";
1409
1449
  declare const AXIS_LABEL_COLOR = "#64748b";
1410
1450
  declare const ZERO_LINE_COLOR = "#94a3b8";
@@ -1415,7 +1455,12 @@ declare const ZERO_LINE_COLOR = "#94a3b8";
1415
1455
  * Exported for the transposed (horizontal-bar) axis builder.
1416
1456
  */
1417
1457
  declare function axisTickValues(range: ValueRange): number[];
1418
- declare function buildGridlinesAndLabels(range: ValueRange, layout: PlotLayout): {
1458
+ declare function buildGridlinesAndLabels(range: ValueRange, layout: PlotLayout,
1459
+ /**
1460
+ * `false` keeps the tick labels but draws no gridlines: a value axis whose
1461
+ * `c:majorGridlines` is absent (see `shouldRenderMajorGridlines`).
1462
+ */
1463
+ showMajorGridlines?: boolean): {
1419
1464
  gridlines: SvgLine[];
1420
1465
  axisLabels: SvgText[];
1421
1466
  };
@@ -1427,25 +1472,80 @@ declare function buildLegend(series: ReadonlyArray<PptxChartSeries>, colorPalett
1427
1472
  legendY: number;
1428
1473
  legendAnchor: 'start' | 'middle' | 'end';
1429
1474
  };
1430
- interface BarRect {
1431
- x: number;
1432
- y: number;
1433
- w: number;
1434
- h: number;
1435
- fill: string;
1436
- /** Source series index, carried so plot builders can tag interactive parts. */
1437
- seriesIndex?: number;
1438
- /** Source category index, carried so plot builders can tag interactive parts. */
1439
- pointIndex?: number;
1440
- }
1441
- declare function computeBarRects(series: ReadonlyArray<PptxChartSeries>, catCount: number, layout: PlotLayout, range: ValueRange, colorPalette: readonly string[] | undefined): BarRect[];
1442
- declare function computeStackedBarRects(series: ReadonlyArray<PptxChartSeries>, catCount: number, layout: PlotLayout, range: ValueRange, colorPalette: readonly string[] | undefined): BarRect[];
1443
- interface LinePoint {
1444
- x: number;
1445
- y: number;
1475
+
1476
+ /**
1477
+ * chart-manual-layout.ts: pure conversion of `c:layout/c:manualLayout`
1478
+ * (CT_ManualLayout) into pixel rectangles for the chart engine.
1479
+ *
1480
+ * Core parses a chart's manual title / plot-area / legend placement into
1481
+ * `chartData.layouts` (see `PptxChartLayouts`), but until now the view-model
1482
+ * never read it, so a chart whose author dragged the legend into a corner or
1483
+ * shrank the plot area rendered with the automatic layout in every binding.
1484
+ *
1485
+ * ECMA-376 21.2.2.95 (manualLayout) semantics, all values fractions of the
1486
+ * chart (element) width / height:
1487
+ *
1488
+ * - `xMode` / `yMode` `edge`: `x` / `y` is the absolute position of the
1489
+ * element's left / top edge. `factor` (the default when absent): `x` / `y`
1490
+ * is an offset from the element's automatic position.
1491
+ * - `wMode` / `hMode` `factor` (the default): `w` / `h` is the element's
1492
+ * width / height. `edge`: `w` / `h` is the position of its right / bottom
1493
+ * edge, so the size is `edge - left`.
1494
+ *
1495
+ * Every field falls back to the automatic value on its own: PowerPoint
1496
+ * commonly writes only `x`/`y` for a moved title or legend, and only that
1497
+ * pair should override.
1498
+ */
1499
+
1500
+ /** The chart frame the fractions are measured against. */
1501
+ interface ChartFrameSize {
1502
+ width: number;
1503
+ height: number;
1446
1504
  }
1447
- declare function computeLinePoints(values: ReadonlyArray<number>, catCount: number, layout: PlotLayout, range: ValueRange): LinePoint[];
1448
- declare function linePointsToSvgString(points: ReadonlyArray<LinePoint>): string;
1505
+
1506
+ /**
1507
+ * chart-view-model-manual.ts: the `c:manualLayout` post-pass for the chart
1508
+ * title and legend.
1509
+ *
1510
+ * The plot area's manual layout is honoured where the plot rect is computed
1511
+ * (`computePlotLayout`, `computePieLayout`), which every kind's builder goes
1512
+ * through. Title and legend anchors, however, are stamped by each builder
1513
+ * (cartesian, combo, pie, radar, surface, ...) from its own defaults, so the
1514
+ * manual placement is applied once here, after the builder has produced its
1515
+ * automatic anchor: that automatic anchor is what a `factor`-mode offset is
1516
+ * relative to.
1517
+ *
1518
+ * @module chart-view-model-manual
1519
+ */
1520
+
1521
+ /**
1522
+ * Re-anchor a finished view-model's title and legend from
1523
+ * `chartData.layouts`. Returns the view-model unchanged when the chart
1524
+ * declares no manual title / legend layout, or the region is not shown.
1525
+ *
1526
+ * @param frame - The chart element's box; manual layouts are fractions of it.
1527
+ */
1528
+ declare function withManualLayouts(vm: ChartViewModel, chartData: Pick<PptxChartData, 'layouts'>, frame: ChartFrameSize): ChartViewModel;
1529
+
1530
+ /**
1531
+ * chart-view-model-pie.ts: the fallback (unsupported / empty) and pie /
1532
+ * doughnut view-model builders. Split out of `chart-view-model.ts`, which
1533
+ * re-exports `buildFallbackViewModel`.
1534
+ *
1535
+ * @module chart-view-model-pie
1536
+ */
1537
+
1538
+ declare function buildFallbackViewModel(width: number, height: number, label: string): ChartViewModel;
1539
+ declare function buildPieViewModel(element: PptxElement, chartData: PptxChartData, categoryLabels: ReadonlyArray<string>, isDoughnut: boolean): ChartViewModel;
1540
+
1541
+ /**
1542
+ * chart-view-model-points.ts: pie / doughnut, scatter, bubble and radar
1543
+ * geometry of the chart engine. Split out of `chart-view-model.ts`, which
1544
+ * re-exports everything here.
1545
+ *
1546
+ * @module chart-view-model-points
1547
+ */
1548
+
1449
1549
  interface PieSliceGeometry {
1450
1550
  d: string;
1451
1551
  midAngle: number;
@@ -1508,22 +1608,21 @@ interface RadarPoint {
1508
1608
  declare function computeRadarPoints(values: ReadonlyArray<number>, maxVal: number, radius: number, cx: number, cy: number, catCount: number): RadarPoint[];
1509
1609
  /** Points string for a radar gridline ring at radius `rr`. */
1510
1610
  declare function radarRingPoints(cx: number, cy: number, rr: number, catCount: number): string;
1511
- type SupportedChartKind = 'bar' | 'line' | 'area' | 'pie' | 'doughnut' | 'scatter' | 'bubble' | 'radar' | 'combo' | 'stock' | 'surface' | 'treemap' | 'waterfall' | 'regionMap' | 'funnel' | 'sunburst' | 'histogram' | 'boxWhisker';
1611
+
1512
1612
  /**
1513
- * The `preserveAspectRatio` a chart kind's `<svg>` must carry.
1613
+ * chart-view-model-radar.ts: the radar / spider view-model builder. Split out
1614
+ * of `chart-view-model.ts`.
1514
1615
  *
1515
- * Cartesian charts stretch to fill the element box (`none`); the kinds whose
1516
- * geometry is round or laid out on a fixed-ratio canvas (pie, doughnut, radar,
1517
- * and the region map's 1000x500 world outline) keep their proportions instead.
1518
- *
1519
- * A pure decision function because all five bindings need the same answer and
1520
- * four of them had written their own copy of the `kind === 'pie' || ...` chain;
1521
- * one of the copies (React's) disagreed with the rest.
1616
+ * @module chart-view-model-radar
1522
1617
  */
1523
- declare function chartPreserveAspectRatio(kind: SupportedChartKind | 'unsupported'): 'none' | 'xMidYMid meet';
1524
- declare function resolveChartKind(chartType: string): SupportedChartKind | 'unsupported';
1525
- declare function buildChartViewModel(element: PptxElement): ChartViewModel;
1526
- declare function buildFallbackViewModel(width: number, height: number, label: string): ChartViewModel;
1618
+
1619
+ /**
1620
+ * Build the view-model for a radar / spider chart. Polar, so it has no
1621
+ * cartesian gridlines/axes; ring + spoke geometry and the data polygons all
1622
+ * live in `primitives`, perimeter category labels in `categoryLabels`.
1623
+ * Mirrors React's `renderRadarChart` (chart-radar.tsx).
1624
+ */
1625
+ declare function buildRadarViewModel(element: PptxElement, chartData: PptxChartData, categoryLabels: ReadonlyArray<string>): ChartViewModel;
1527
1626
 
1528
1627
  /** One positioned legend entry: swatch origin + colour + label + resolved text style. */
1529
1628
  interface ChartLegendLayoutItem {
@@ -1560,8 +1659,13 @@ type ChartDisplayUnitsValue = '' | 'hundreds' | 'thousands' | 'tenThousands' | '
1560
1659
  type ChartTickLabelPosition = 'nextTo' | 'high' | 'low' | 'none';
1561
1660
  /** Data-label content flags (chart-level `c:show*`). */
1562
1661
  type ChartDataLabelContentKey = 'showValue' | 'showCategory' | 'showSeriesName' | 'showPercent' | 'showLegendKey';
1563
- /** Data-label position values (empty string = type default). */
1564
- type ChartDataLabelPositionValue = '' | 'ctr' | 'inEnd' | 'inBase' | 'outEnd' | 'bestFit';
1662
+ /**
1663
+ * Data-label position values (empty string = type default). The non-empty
1664
+ * members are exactly the nine `c:dLblPos` schema values core models as
1665
+ * {@link PptxChartDataLabelPosition}; the select used to offer five of them,
1666
+ * so a line/scatter chart's "Above" / "Left" labels could not be authored.
1667
+ */
1668
+ type ChartDataLabelPositionValue = '' | PptxChartDataLabelPosition;
1565
1669
  /** Trendline regression types (empty string = none). */
1566
1670
  type ChartTrendlineValue = '' | 'linear' | 'exponential' | 'logarithmic' | 'polynomial' | 'power' | 'movingAvg';
1567
1671
  /** Error-bar value calculation types (empty string = none). */
@@ -2543,9 +2647,16 @@ interface InlineEditRect {
2543
2647
  * return a `Map` keyed by element `id` describing the *new* position(s) for the
2544
2648
  * elements that need to move. Elements that already sit on the target edge (or
2545
2649
  * the two outer-most elements during distribution) are still included with
2546
- * their unchanged coordinate so callers can apply the whole map uniformly the
2650
+ * their unchanged coordinate so callers can apply the whole map uniformly; the
2547
2651
  * map only ever contains the axis that the operation touches.
2548
2652
  *
2653
+ * The reference box the selection is aligned against is either the union of
2654
+ * the selected boxes (PowerPoint's "Align Selected Objects") or the slide
2655
+ * itself ("Align to Slide"). PowerPoint defaults to the slide whenever a
2656
+ * single object is selected, which is why a one-element selection is not a
2657
+ * no-op once a `slideSize` is supplied: Align Center on a lone title is one
2658
+ * of the commonest arrange gestures there is.
2659
+ *
2549
2660
  * The helpers are deliberately framework-agnostic: no DOM, no Vue reactivity,
2550
2661
  * no side effects. The host wires them into the editor by feeding the current
2551
2662
  * selection in and applying the returned `Map` via its element-transform
@@ -2555,6 +2666,31 @@ interface InlineEditRect {
2555
2666
  type AlignEdge = 'left' | 'centerH' | 'right' | 'top' | 'middle' | 'bottom';
2556
2667
  /** Axis along which {@link distributeElements} evenly spaces a selection. */
2557
2668
  type DistributeAxis = 'horizontal' | 'vertical';
2669
+ /**
2670
+ * What a selection is aligned / distributed against.
2671
+ *
2672
+ * - `'selection'`: the union bounding box of the selected elements
2673
+ * (PowerPoint's "Align Selected Objects"). Needs at least two elements.
2674
+ * - `'slide'`: the slide bounds (`0, 0, slideSize.width, slideSize.height`),
2675
+ * PowerPoint's "Align to Slide". Works for any non-empty selection.
2676
+ */
2677
+ type AlignReference = 'selection' | 'slide';
2678
+ /** Slide dimensions in the same (pixel) units as the element boxes. */
2679
+ interface AlignSlideSize {
2680
+ width: number;
2681
+ height: number;
2682
+ }
2683
+ /** Optional reference selection for {@link alignElements} and friends. */
2684
+ interface AlignOptions {
2685
+ /**
2686
+ * Explicit reference. When omitted, `'slide'` is assumed for a single
2687
+ * element (PowerPoint's default) and `'selection'` otherwise. Either way
2688
+ * the slide is only used when `slideSize` is supplied.
2689
+ */
2690
+ reference?: AlignReference;
2691
+ /** Slide bounds; required for the slide to act as the reference. */
2692
+ slideSize?: AlignSlideSize;
2693
+ }
2558
2694
  /** New position for a single element. Only the affected axis is populated. */
2559
2695
  interface ElementPosition {
2560
2696
  x?: number;
@@ -2572,31 +2708,24 @@ interface BoundingBoxElement {
2572
2708
  width: number;
2573
2709
  height: number;
2574
2710
  }
2575
- /** Horizontal or vertical alignment mode (alias of {@link AlignEdge}). */
2711
+ /** Alias of {@link AlignEdge}. */
2576
2712
  type AlignMode = AlignEdge;
2577
- /** Axis along which to distribute spacing evenly (alias of {@link DistributeAxis}). */
2713
+ /** Alias of {@link DistributeAxis}. */
2578
2714
  type DistributeMode = DistributeAxis;
2579
- /** An axis-aligned bounding box with a stable element id (alias of {@link BoundingBoxElement}). */
2715
+ /** Alias of {@link BoundingBoxElement}. */
2580
2716
  type AlignBox = BoundingBoxElement;
2581
- /** The partial position update for a single element (alias of {@link ElementPosition}). */
2717
+ /** Alias of {@link ElementPosition}. */
2582
2718
  type PositionUpdate = ElementPosition;
2583
2719
  /**
2584
- * Compute new positions to align every box to the group bounding box, emitting
2585
- * an entry **only** for boxes that actually move.
2586
- *
2587
- * Behaves like {@link alignElements} but filters out elements already sitting
2588
- * on the target edge/centre. Returns an empty map for fewer than two boxes.
2720
+ * {@link alignElements} (slide reference included) filtered to the boxes that
2721
+ * actually move.
2589
2722
  */
2590
- declare function computeAlign(boxes: readonly AlignBox[], mode: AlignMode): Map<string, PositionUpdate>;
2723
+ declare function computeAlign(boxes: readonly AlignBox[], mode: AlignMode, options?: AlignOptions): Map<string, PositionUpdate>;
2591
2724
  /**
2592
- * Compute new positions to distribute boxes with equal gaps along an axis,
2593
- * emitting an entry **only** for boxes that actually move.
2594
- *
2595
- * Behaves like {@link distributeElements} but filters out elements whose
2596
- * leading edge does not change. Returns an empty map for fewer than three
2597
- * boxes.
2725
+ * {@link distributeElements} (slide reference included) filtered to the boxes
2726
+ * that actually move.
2598
2727
  */
2599
- declare function computeDistribute(boxes: readonly AlignBox[], mode: DistributeMode): Map<string, PositionUpdate>;
2728
+ declare function computeDistribute(boxes: readonly AlignBox[], mode: DistributeMode, options?: AlignOptions): Map<string, PositionUpdate>;
2600
2729
 
2601
2730
  /** The eight resize handles, named by compass direction. */
2602
2731
  type ResizeHandleId = 'nw' | 'n' | 'ne' | 'e' | 'se' | 's' | 'sw' | 'w';
@@ -3724,6 +3853,14 @@ interface MarkerShape {
3724
3853
  markerWidth: number;
3725
3854
  /** Suggested `markerHeight` (perpendicular: arrow *width*, from `@w`). */
3726
3855
  markerHeight: number;
3856
+ /**
3857
+ * True for a stroke-only (open, unfilled) marker path, i.e. the `'arrow'`
3858
+ * open chevron. A binding should render this path with `fill="none"` and
3859
+ * `stroke={strokeColor}` instead of the default solid `fill={strokeColor}`
3860
+ * it uses for every other shape; a chevron rendered with a solid fill draws
3861
+ * as a filled wedge, indistinguishable from `'triangle'`.
3862
+ */
3863
+ strokeOnly?: boolean;
3727
3864
  }
3728
3865
 
3729
3866
  /**
@@ -4808,10 +4945,14 @@ declare function strokeColorOf(el: PptxElement): string;
4808
4945
  */
4809
4946
  declare function textColorOf(el: PptxElement): string;
4810
4947
  /**
4811
- * Returns the font size (in points) from the element's textStyle,
4812
- * or DEFAULT_FONT_SIZE when absent.
4948
+ * Returns the font size (in points) from the element's textStyle.
4949
+ *
4950
+ * Falls back, in order, to: the deck's presentation-level default text style
4951
+ * (`p:defaultTextStyle`, passed as `presentationDefault` when the caller has
4952
+ * one), then `DEFAULT_FONT_SIZE` (18pt, matching PowerPoint's own
4953
+ * `a:lvl1pPr/a:defRPr@sz="1800"` when neither is available).
4813
4954
  */
4814
- declare function fontSizeOf(el: PptxElement): number;
4955
+ declare function fontSizeOf(el: PptxElement, presentationDefault?: PlaceholderDefaults): number;
4815
4956
  /** Returns whether the element's text is bold (false when absent). */
4816
4957
  declare function isBold(el: PptxElement): boolean;
4817
4958
  /** Returns whether the element's text is italic (false when absent). */
@@ -4849,11 +4990,12 @@ interface TextStyleChanges {
4849
4990
  declare function textStylePatch(el: PptxElement, changes: TextStyleChanges): Partial<PptxElement>;
4850
4991
 
4851
4992
  /**
4852
- * effects-helpers.ts: Pure (no framework) helpers for the effects panel.
4993
+ * effects-shadow-helpers.ts: Pure (no framework) outer/inner shadow helpers
4994
+ * for the effects panel.
4853
4995
  *
4854
- * Readers extract effect values from a PptxElement (with sensible defaults),
4855
- * and patch-builders produce shallow-merge-ready Partial<PptxElement> objects
4856
- * for the binding's element-update path. Shared across React, Vue, and Angular.
4996
+ * Split out of `effects-helpers.ts` (glow/reflection/soft-edge stay there) to
4997
+ * keep both files under this repo's 300-LOC-per-file budget; `EffectsState`
4998
+ * still composes both halves into one shape for the panel.
4857
4999
  */
4858
5000
 
4859
5001
  /** Editable outer shadow state. */
@@ -4866,6 +5008,12 @@ interface OuterShadowState {
4866
5008
  angle: number;
4867
5009
  /** Distance in px. */
4868
5010
  distance: number;
5011
+ /**
5012
+ * Whether the shadow rotates along with the shape (`a:outerShdw@rotWithShape`).
5013
+ * Defaults `true`, matching PowerPoint's own default when the attribute is
5014
+ * absent.
5015
+ */
5016
+ rotateWithShape: boolean;
4869
5017
  }
4870
5018
  /** Editable inner shadow state. */
4871
5019
  interface InnerShadowState {
@@ -4876,6 +5024,34 @@ interface InnerShadowState {
4876
5024
  offsetX: number;
4877
5025
  offsetY: number;
4878
5026
  }
5027
+ /** Enable outer shadow with current or default values. */
5028
+ declare function enableOuterShadowPatch(el: PptxElement, state: OuterShadowState): Partial<PptxElement>;
5029
+ /** Disable outer shadow by setting transparent. */
5030
+ declare function disableOuterShadowPatch(el: PptxElement): Partial<PptxElement>;
5031
+ /**
5032
+ * Update a single outer-shadow field. Re-derives offsetX/Y from angle+distance
5033
+ * when either is changed to keep the coordinate pair consistent.
5034
+ */
5035
+ declare function updateOuterShadowPatch(el: PptxElement, changes: Partial<OuterShadowState>): Partial<PptxElement>;
5036
+ /** Enable inner shadow with current or default values. */
5037
+ declare function enableInnerShadowPatch(el: PptxElement, state: InnerShadowState): Partial<PptxElement>;
5038
+ /** Disable inner shadow. */
5039
+ declare function disableInnerShadowPatch(el: PptxElement): Partial<PptxElement>;
5040
+ /** Update a single inner-shadow field. */
5041
+ declare function updateInnerShadowPatch(el: PptxElement, changes: Partial<InnerShadowState>): Partial<PptxElement>;
5042
+
5043
+ /**
5044
+ * effects-helpers.ts: Pure (no framework) helpers for the effects panel.
5045
+ *
5046
+ * Readers extract effect values from a PptxElement (with sensible defaults),
5047
+ * and patch-builders produce shallow-merge-ready Partial<PptxElement> objects
5048
+ * for the binding's element-update path. Shared across React, Vue, and Angular.
5049
+ *
5050
+ * Outer/inner shadow are split into `effects-shadow-helpers.ts` to keep this
5051
+ * file under the 300-LOC budget; both are re-exported here so a consumer can
5052
+ * still import everything from one module.
5053
+ */
5054
+
4879
5055
  /** Editable glow state. */
4880
5056
  interface GlowState {
4881
5057
  enabled: boolean;
@@ -4911,21 +5087,6 @@ interface EffectsState {
4911
5087
  * a shape-property element.
4912
5088
  */
4913
5089
  declare function effectsStateOf(el: PptxElement): EffectsState;
4914
- /** Enable outer shadow with current or default values. */
4915
- declare function enableOuterShadowPatch(el: PptxElement, state: OuterShadowState): Partial<PptxElement>;
4916
- /** Disable outer shadow by setting transparent. */
4917
- declare function disableOuterShadowPatch(el: PptxElement): Partial<PptxElement>;
4918
- /**
4919
- * Update a single outer-shadow field. Re-derives offsetX/Y from angle+distance
4920
- * when either is changed to keep the coordinate pair consistent.
4921
- */
4922
- declare function updateOuterShadowPatch(el: PptxElement, changes: Partial<OuterShadowState>): Partial<PptxElement>;
4923
- /** Enable inner shadow with current or default values. */
4924
- declare function enableInnerShadowPatch(el: PptxElement, state: InnerShadowState): Partial<PptxElement>;
4925
- /** Disable inner shadow. */
4926
- declare function disableInnerShadowPatch(el: PptxElement): Partial<PptxElement>;
4927
- /** Update a single inner-shadow field. */
4928
- declare function updateInnerShadowPatch(el: PptxElement, changes: Partial<InnerShadowState>): Partial<PptxElement>;
4929
5090
  /** Enable glow with current or default values. */
4930
5091
  declare function enableGlowPatch(el: PptxElement, state: GlowState): Partial<PptxElement>;
4931
5092
  /** Disable glow. */
@@ -5348,6 +5509,16 @@ declare function buildBroadcastViewerUrl(roomId: string, serverUrl: string, loca
5348
5509
  origin: string;
5349
5510
  pathname: string;
5350
5511
  }): string;
5512
+ /**
5513
+ * Build a shareable join URL for a (non-broadcast) collaboration session.
5514
+ * Identical shape to {@link buildBroadcastViewerUrl}, but under the `room=`
5515
+ * query key Angular's Share dialog uses. Returns just the room id when no
5516
+ * `origin`/`pathname` are available (e.g. non-browser environments).
5517
+ */
5518
+ declare function buildShareUrl(roomId: string, serverUrl: string, location?: {
5519
+ origin: string;
5520
+ pathname: string;
5521
+ }): string;
5351
5522
  /** Whether the runtime exposes a usable async clipboard write API. */
5352
5523
  declare function canUseClipboard(nav: Navigator | undefined): boolean;
5353
5524
 
@@ -6786,7 +6957,14 @@ interface DeckSaveIntent {
6786
6957
  purpose?: DeckSavePurpose;
6787
6958
  }
6788
6959
 
6789
- /** Framework-neutral viewer preferences surfaced by Settings dialogs. */
6960
+ /**
6961
+ * Framework-neutral viewer preferences surfaced by Settings dialogs.
6962
+ *
6963
+ * Every field is a boolean toggle on purpose: the bindings iterate
6964
+ * `keyof ViewerPreferences` and hand each value to a `(key, boolean)` setter,
6965
+ * so the deck-authored view properties (grid spacing is a number) live on the
6966
+ * extending {@link DeckViewPreferences} instead.
6967
+ */
6790
6968
  interface ViewerPreferences {
6791
6969
  autoSave: boolean;
6792
6970
  spellCheck: boolean;
@@ -6810,6 +6988,13 @@ interface ShowOrderCustomShow {
6810
6988
  readonly slideRIds?: readonly string[];
6811
6989
  readonly slideIds?: readonly string[];
6812
6990
  }
6991
+ /** A `p:showPr/p:sldRg` custom range, resolved to 0-based deck indexes. */
6992
+ interface AuthoredSlideRange {
6993
+ /** First slide of the range, 0-based, inclusive. */
6994
+ readonly fromIndex: number;
6995
+ /** Last slide of the range, 0-based, inclusive. */
6996
+ readonly toIndex: number;
6997
+ }
6813
6998
 
6814
6999
  /** Everything a binding needs to mark one tile. Inert when the slide is visible. */
6815
7000
  interface HiddenSlideCue {
@@ -7321,6 +7506,64 @@ interface ViewerOptionsStore {
7321
7506
  batch(write: () => void): void;
7322
7507
  }
7323
7508
 
7509
+ /**
7510
+ * Data-driven placeholder icon primitives for `ole` (embedded object)
7511
+ * elements: the Excel grid, Word document, PDF, Visio diagram, MathType
7512
+ * `f(x)`, and generic linked-objects glyphs.
7513
+ *
7514
+ * Extracted from the identical `rect`/`line`/`text` builders + `ICONS` table
7515
+ * that Svelte's `render/ole-view.ts` and Vanilla's
7516
+ * `render/elements/ole-icons.ts` both hand-rolled byte-for-byte (down to the
7517
+ * shape coordinates). Every binding's OLE renderer maps `OleIconShape[]` onto
7518
+ * its own `<rect>`/`<line>`/`<text>` (or `createSvgEl`) primitives; only the
7519
+ * DOM/JSX emission stays per binding.
7520
+ */
7521
+
7522
+ /** One primitive of a data-driven placeholder icon. */
7523
+ interface OleIconShape {
7524
+ tag: 'rect' | 'line' | 'text';
7525
+ attrs: Record<string, string | number>;
7526
+ /** Text content, only present when `tag === 'text'`. */
7527
+ text?: string;
7528
+ }
7529
+
7530
+ /**
7531
+ * Cross-slide ("play across slides") audio registration.
7532
+ *
7533
+ * PowerPoint keeps background audio marked `playAcrossSlides` playing when
7534
+ * the show advances, but a slide-local `<audio>` dies with its slide's DOM.
7535
+ * {@link registerCrossSlideAudio} hands the track to the shared
7536
+ * `media-persistent-audio` manager (a hidden document-level element that
7537
+ * survives slide unmount) at the moment presentation-mode autoplay would
7538
+ * have started the slide-local copy.
7539
+ *
7540
+ * Vue, Angular, Svelte and Vanilla each carried a byte-identical copy of this
7541
+ * function; this is the one copy, sitting next to {@link mediaPlaybackAttributes}
7542
+ * in `media-playback.ts` as the task that named it expected, split into its
7543
+ * own sibling module purely to keep `media-playback.ts` under the file-size
7544
+ * cap.
7545
+ */
7546
+
7547
+ /**
7548
+ * Register a `playAcrossSlides` audio element with the shared persistent-audio
7549
+ * manager, using the same resolved source, loop, volume and trim start the
7550
+ * slide-local element would have used. Returns true when the persistent
7551
+ * (document-level) element owns playback, in which case the slide-local media
7552
+ * node must stay silent or the track doubles. Idempotent per element id
7553
+ * (the manager no-ops a re-register), so re-entering the owning slide does not
7554
+ * restart the track.
7555
+ */
7556
+ declare function registerCrossSlideAudio(element: MediaPptxElement, src: string | undefined): boolean;
7557
+
7558
+ /** Grouping needs an editable deck and at least two selected elements. */
7559
+ declare function canGroupSelection(canEdit: boolean, selectedCount: number): boolean;
7560
+ /** Ungrouping needs an editable deck and a selection that IS a group. */
7561
+ declare function canUngroupSelection(canEdit: boolean, element: PptxElement | null): boolean;
7562
+ /** An outline width only exists on an element that carries shape properties. */
7563
+ declare function canSetStrokeWidth(canEdit: boolean, element: PptxElement | null): boolean;
7564
+ /** The stroke width to show for a selection, defaulted for a shape without one. */
7565
+ declare function strokeWidthOf(element: PptxElement | null): number;
7566
+
7324
7567
  /**
7325
7568
  * Minimal GIF89a encoder (pure JS, no external dependency) plus pure
7326
7569
  * frame-planning helpers — shared by the React, Vue, and Angular bindings.
@@ -7909,6 +8152,121 @@ interface PptxAiChatStore {
7909
8152
  }): Promise<void>;
7910
8153
  }
7911
8154
 
8155
+ /** One tool invocation captured with its full technical detail. */
8156
+ interface AiLogToolCall {
8157
+ toolName: string;
8158
+ toolCallId: string;
8159
+ state: string;
8160
+ input: unknown;
8161
+ output: unknown;
8162
+ errorText?: string;
8163
+ }
8164
+ /** One message: its role, concatenated prose, and any tool calls it made. */
8165
+ interface AiLogMessage {
8166
+ role: string;
8167
+ text: string;
8168
+ toolCalls: AiLogToolCall[];
8169
+ }
8170
+ /** One chat conversation in export form. */
8171
+ interface AiLogChat {
8172
+ id: string;
8173
+ title: string;
8174
+ deckId?: string;
8175
+ createdAt: number;
8176
+ updatedAt: number;
8177
+ createdAtIso: string;
8178
+ updatedAtIso: string;
8179
+ messageCount: number;
8180
+ messages: AiLogMessage[];
8181
+ }
8182
+ /** Top-level detailed export document. */
8183
+ interface AiLogExport {
8184
+ format: 'pptx-ai-chat-log';
8185
+ version: 1;
8186
+ exportedAt: string;
8187
+ /** Whether tool inputs/outputs are included (see `detailed` option). */
8188
+ detailed: boolean;
8189
+ chatCount: number;
8190
+ chats: AiLogChat[];
8191
+ }
8192
+ /** Options controlling how the export document is built. */
8193
+ interface BuildChatLogOptions {
8194
+ /** Include tool-call inputs/outputs. Default `true`. When false, tool calls
8195
+ * still list name + state but omit the (potentially large) payloads. */
8196
+ detailed?: boolean;
8197
+ /** Epoch ms stamped as `exportedAt`. Default `Date.now()`. */
8198
+ now?: number;
8199
+ }
8200
+ /** Build the detailed export document from already-loaded chats (pure). */
8201
+ declare function buildChatLogExport(chats: readonly PptxAiStoredChat[], options?: BuildChatLogOptions): AiLogExport;
8202
+ /** Render the same detailed export as a human-readable Markdown transcript. */
8203
+ declare function buildChatLogMarkdown(doc: AiLogExport): string;
8204
+ /** Load every stored chat (newest first) in full detail from a store. */
8205
+ declare function collectStoredChats(store?: PptxAiChatStore): Promise<PptxAiStoredChat[]>;
8206
+ /** File format to export. */
8207
+ type AiLogFormat = 'json' | 'markdown';
8208
+ /** Metadata controlling {@link exportAiChatLogs}'s output. */
8209
+ interface ExportAiChatLogsMeta {
8210
+ /** `'json'` (default) or `'markdown'`. */
8211
+ format?: AiLogFormat;
8212
+ /** Include tool inputs/outputs. Default `true`. */
8213
+ detailed?: boolean;
8214
+ /** Epoch ms for the filename + `exportedAt`. Default `Date.now()`. */
8215
+ now?: number;
8216
+ }
8217
+
8218
+ /**
8219
+ * Pure helpers that turn the live canvas selection into AI "focused targets"
8220
+ * (the slides / elements the assistant should scope its work to) and into the
8221
+ * short chip labels shown in the AI panel.
8222
+ *
8223
+ * Shared by each binding's AI bridge (so `getFocusedTargets` reflects live
8224
+ * selection) and by the panel's focus chips / canvas highlight overlay, so all
8225
+ * five agree on what "the current focus" is and on the two-table merge
8226
+ * shortcut.
8227
+ */
8228
+
8229
+ /** The selection inputs the focus derivation reads. */
8230
+ interface FocusSelectionInput {
8231
+ activeSlideIndex: number;
8232
+ selectedElementIds: readonly string[];
8233
+ selectedElementId: string | null;
8234
+ }
8235
+ /** One element ring to draw on the canvas: an explicit pick or a live-tool focus. */
8236
+ interface AiCanvasHighlight {
8237
+ slideIndex: number;
8238
+ elementId: string;
8239
+ /** `pick` = persistent user pick; `active` = transient AI-is-working ring. */
8240
+ variant: 'pick' | 'active';
8241
+ }
8242
+ /**
8243
+ * Derive focused targets from the live selection: one `element` target per
8244
+ * selected element on the active slide, or a single whole-`slide` target when
8245
+ * nothing is selected. Order and multiplicity are preserved (multi-select and
8246
+ * tables included) so callers can detect e.g. "exactly two tables".
8247
+ */
8248
+ declare function computeFocusTargets(input: FocusSelectionInput): PptxAiFocusedTarget[];
8249
+ /** A renderable focus chip. `title` carries the full element id for hover. */
8250
+ interface FocusChip {
8251
+ key: string;
8252
+ label: string;
8253
+ title: string;
8254
+ }
8255
+ /**
8256
+ * Build display chips for the given targets. Slide targets read `Slide N`;
8257
+ * element targets read `<Type> <n>` (a friendly short label, full id on hover),
8258
+ * or `<Type> (missing)` when the element is no longer on the slide.
8259
+ */
8260
+ declare function focusTargetChips(targets: readonly PptxAiFocusedTarget[], slides: readonly PptxSlide[]): FocusChip[];
8261
+ /** Whether the focus is exactly two table elements (drives the merge action). */
8262
+ declare function isTwoTableFocus(targets: readonly PptxAiFocusedTarget[], slides: readonly PptxSlide[]): false | {
8263
+ slideIndex: number;
8264
+ elementIdA: string;
8265
+ elementIdB: string;
8266
+ };
8267
+ /** Build the directive that fires `merge_tables` without a confirmation round-trip. */
8268
+ declare function mergeTablesDirective(slideIndex: number, elementIdA: string, elementIdB: string): string;
8269
+
7912
8270
  /**
7913
8271
  * Framework-agnostic helpers that flatten an AI SDK `UIMessage` into the small
7914
8272
  * set of parts a chat panel actually renders: assistant/user text and tool-call
@@ -8032,56 +8390,6 @@ declare class AccessibilityService {
8032
8390
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<AccessibilityService>;
8033
8391
  }
8034
8392
 
8035
- /**
8036
- * Pure helpers that turn the live canvas selection into AI "focused targets"
8037
- * (the slides / elements the assistant should scope its work to) and into the
8038
- * short chip labels shown in the AI panel. Angular replica of React's
8039
- * `hooks/ai/focus-targets.ts`; kept in-binding (rather than in shared) because
8040
- * it is a tiny pure helper and the shared package is consumed read-only here.
8041
- *
8042
- * Shared by {@link AiPanelStore} (so `getFocusedTargets` reflects live
8043
- * selection) and by the focus-chip bar, so both agree on "the current focus".
8044
- */
8045
-
8046
- /** The selection inputs the focus derivation reads. */
8047
- interface FocusSelectionInput {
8048
- activeSlideIndex: number;
8049
- selectedElementIds: readonly string[];
8050
- selectedElementId: string | null;
8051
- }
8052
- /** One element ring to draw on the canvas: an explicit pick or a live-tool focus. */
8053
- interface AiCanvasHighlight {
8054
- slideIndex: number;
8055
- elementId: string;
8056
- /** `pick` = persistent user pick; `active` = transient AI-is-working ring. */
8057
- variant: 'pick' | 'active';
8058
- }
8059
- /**
8060
- * Derive focused targets from the live selection: one `element` target per
8061
- * selected element on the active slide, or a single whole-`slide` target when
8062
- * nothing is selected. Order and multiplicity are preserved (multi-select and
8063
- * tables included) so callers can detect e.g. "exactly two tables".
8064
- */
8065
- declare function computeFocusTargets(input: FocusSelectionInput): PptxAiFocusedTarget[];
8066
- /** A renderable focus chip. `title` carries the full element id for hover. */
8067
- interface FocusChip {
8068
- key: string;
8069
- label: string;
8070
- title: string;
8071
- }
8072
- /**
8073
- * Build display chips for the given targets. Slide targets read `Slide N`;
8074
- * element targets read `<Type> <n>` (a friendly short label, full id on hover),
8075
- * or `<Type> (missing)` when the element is no longer on the slide.
8076
- */
8077
- declare function focusTargetChips(targets: readonly PptxAiFocusedTarget[], slides: readonly PptxSlide[]): FocusChip[];
8078
- /** Whether the focus is exactly two table elements (drives the merge action). */
8079
- declare function isTwoTableFocus(targets: readonly PptxAiFocusedTarget[], slides: readonly PptxSlide[]): false | {
8080
- slideIndex: number;
8081
- elementIdA: string;
8082
- elementIdB: string;
8083
- };
8084
-
8085
8393
  /** Live selection accessors the store reads to derive the follow-selection focus. */
8086
8394
  interface AiPanelSelectionAccessors {
8087
8395
  activeSlideIndex(): number;
@@ -8688,7 +8996,6 @@ declare class EditorStateService {
8688
8996
  selectAll(slideIndex: number): void;
8689
8997
  isSelected(id: string): boolean;
8690
8998
  moveSelectedBy(slideIndex: number, dx: number, dy: number): void;
8691
- nudgeSelected(slideIndex: number, dirX: number, dirY: number): void;
8692
8999
  setPosition(slideIndex: number, id: string, x: number, y: number): void;
8693
9000
  resize(slideIndex: number, id: string, width: number, height: number): void;
8694
9001
  updateElement(slideIndex: number, id: string, patch: Partial<PptxElement>): void;
@@ -10659,17 +10966,6 @@ declare class ViewerOptionsService {
10659
10966
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<ViewerOptionsService>;
10660
10967
  }
10661
10968
 
10662
- /**
10663
- * presentation-annotations-helpers.ts: Pure geometry helpers for presentation
10664
- * ink annotations (pen, highlighter, eraser, laser).
10665
- *
10666
- * Ported from React:
10667
- * packages/react/src/viewer/components/PresentationAnnotationOverlay.tsx
10668
- * packages/react/src/viewer/hooks/usePresentationAnnotations.ts
10669
- *
10670
- * No Angular dependencies; all functions are pure so they can be unit-tested
10671
- * without TestBed.
10672
- */
10673
10969
  /** A single {x, y} coordinate in slide-space pixels. */
10674
10970
  interface AnnotationPoint {
10675
10971
  x: number;
@@ -11044,6 +11340,7 @@ declare class PowerPointViewerComponent implements PowerPointViewerAPI {
11044
11340
  protected readonly loader: LoadContentService;
11045
11341
  protected readonly editor: EditorStateService;
11046
11342
  private readonly fonts;
11343
+ private readonly googleWebfonts;
11047
11344
  protected readonly collab: CollaborationService;
11048
11345
  protected readonly accessibility: AccessibilityService;
11049
11346
  protected readonly autosave: AutosaveService;
@@ -11065,6 +11362,13 @@ declare class PowerPointViewerComponent implements PowerPointViewerAPI {
11065
11362
  protected readonly xport: ViewerExportService;
11066
11363
  protected readonly findReplace: ViewerFindReplaceService;
11067
11364
  protected readonly customShowsCtl: ViewerCustomShowsService;
11365
+ /**
11366
+ * The `p:showPr/p:sldRg` slide-range restriction, when the deck is authored
11367
+ * to open into a range (`showSlidesMode === 'range'`) rather than the whole
11368
+ * deck or a custom show. Fed to the presentation overlay's navigator
11369
+ * alongside `activeCustomShow` so a running show honours it.
11370
+ */
11371
+ protected readonly presentationAuthoredRange: _angular_core.Signal<AuthoredSlideRange | null>;
11068
11372
  protected readonly session: ViewerCollaborationSessionService;
11069
11373
  protected readonly formatPainter: ViewerFormatPainterService;
11070
11374
  private readonly keyboard;
@@ -11221,7 +11525,7 @@ declare class PowerPointViewerComponent implements PowerPointViewerAPI {
11221
11525
  /** Flip the AutoSave preference, unless the host forbade autosave outright. */
11222
11526
  protected toggleAutosave(): void;
11223
11527
  /** Active drawing tool (from the ribbon Draw tab). */
11224
- protected readonly activeDrawTool: _angular_core.WritableSignal<"select" | "pen" | "highlighter" | "eraser" | "freeform">;
11528
+ protected readonly activeDrawTool: _angular_core.WritableSignal<"pen" | "highlighter" | "eraser" | "select" | "freeform">;
11225
11529
  /** Active ink stroke colour. */
11226
11530
  protected readonly activeDrawColor: _angular_core.WritableSignal<string>;
11227
11531
  /** Active ink stroke width in stage pixels. */
@@ -11760,6 +12064,29 @@ declare class FieldContextService {
11760
12064
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<FieldContextService>;
11761
12065
  }
11762
12066
 
12067
+ /** DOM id of the managed `<link>` element (binding-specific, like the style ids). */
12068
+ declare const GOOGLE_WEBFONTS_LINK_ID = "pptx-angular-google-fonts";
12069
+ declare class GoogleWebfontsService {
12070
+ private linkEl;
12071
+ /** Tags in-flight resolutions; only the newest `sync` may apply its result. */
12072
+ private syncToken;
12073
+ constructor();
12074
+ /**
12075
+ * Resolve which referenced families need a Google Fonts fetch for this
12076
+ * deck and sync the managed `<link>` element once the resolution settles.
12077
+ * Pass empty slides / fonts (e.g. before a load) to remove it.
12078
+ */
12079
+ sync(slides: readonly PptxSlide[], embeddedFonts: readonly PptxEmbeddedFont[]): void;
12080
+ /**
12081
+ * Remove the injected `<link>` element and invalidate in-flight resolutions.
12082
+ * Called automatically on destroy; safe to call manually.
12083
+ */
12084
+ dispose(): void;
12085
+ private removeLinkElement;
12086
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<GoogleWebfontsService, never>;
12087
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<GoogleWebfontsService>;
12088
+ }
12089
+
11763
12090
  /**
11764
12091
  * Opt-in flag for the Three.js interactive line3D-chart renderer (Angular).
11765
12092
  *
@@ -12033,7 +12360,7 @@ declare class ZoomTargetService {
12033
12360
  * `PowerPointViewerComponent`'s children (ribbon, slide canvas, inspector,
12034
12361
  * dialogs, ...) rely on via `inject()`.
12035
12362
  */
12036
- declare const POWER_POINT_VIEWER_PROVIDERS: readonly [typeof LoadContentService, typeof ExportService, typeof EditorStateService, typeof ChartPartSelectionService, typeof TableSelectionService, typeof EmbeddedFontsService, 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 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];
12363
+ declare const POWER_POINT_VIEWER_PROVIDERS: readonly [typeof LoadContentService, 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 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];
12037
12364
 
12038
12365
  /** Lifecycle of the AI session bootstrap. */
12039
12366
  type AiChatInitState = 'checking' | 'unavailable' | 'ready' | 'error';
@@ -12298,69 +12625,10 @@ declare class AiHistoryMenuComponent {
12298
12625
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<AiHistoryMenuComponent, "pptx-ai-history-menu", never, { "canClear": { "alias": "canClear"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
12299
12626
  }
12300
12627
 
12301
- /** One tool invocation captured with its full technical detail. */
12302
- interface AiLogToolCall {
12303
- toolName: string;
12304
- toolCallId: string;
12305
- state: string;
12306
- input: unknown;
12307
- output: unknown;
12308
- errorText?: string;
12309
- }
12310
- /** One message: its role, concatenated prose, and any tool calls it made. */
12311
- interface AiLogMessage {
12312
- role: string;
12313
- text: string;
12314
- toolCalls: AiLogToolCall[];
12315
- }
12316
- /** One chat conversation in export form. */
12317
- interface AiLogChat {
12318
- id: string;
12319
- title: string;
12320
- deckId?: string;
12321
- createdAt: number;
12322
- updatedAt: number;
12323
- createdAtIso: string;
12324
- updatedAtIso: string;
12325
- messageCount: number;
12326
- messages: AiLogMessage[];
12327
- }
12328
- /** Top-level detailed export document. */
12329
- interface AiLogExport {
12330
- format: 'pptx-ai-chat-log';
12331
- version: 1;
12332
- exportedAt: string;
12333
- /** Whether tool inputs/outputs are included (see `detailed` option). */
12334
- detailed: boolean;
12335
- chatCount: number;
12336
- chats: AiLogChat[];
12337
- }
12338
- /** Options controlling how the export document is built. */
12339
- interface BuildChatLogOptions {
12340
- /** Include tool-call inputs/outputs. Default `true`. When false, tool calls
12341
- * still list name + state but omit the (potentially large) payloads. */
12342
- detailed?: boolean;
12343
- /** Epoch ms stamped as `exportedAt`. Default `Date.now()`. */
12344
- now?: number;
12345
- }
12346
- /** Build the detailed export document from already-loaded chats (pure). */
12347
- declare function buildChatLogExport(chats: readonly PptxAiStoredChat[], options?: BuildChatLogOptions): AiLogExport;
12348
- /** Render the same detailed export as a human-readable Markdown transcript. */
12349
- declare function buildChatLogMarkdown(doc: AiLogExport): string;
12350
- /** Load every stored chat (newest first) in full detail from a store. */
12351
- declare function collectStoredChats(store: PptxAiChatStore): Promise<PptxAiStoredChat[]>;
12352
- /** File format to download. */
12353
- type AiLogFormat = 'json' | 'markdown';
12354
12628
  /** Options for {@link exportAiChatLogs}. */
12355
- interface ExportAiChatLogsOptions {
12629
+ interface ExportAiChatLogsOptions extends ExportAiChatLogsMeta {
12356
12630
  /** Store to read from. Defaults to the shared `createChatHistoryStore()`. */
12357
12631
  store?: PptxAiChatStore;
12358
- /** `'json'` (default) or `'markdown'`. */
12359
- format?: AiLogFormat;
12360
- /** Include tool inputs/outputs. Default `true`. */
12361
- detailed?: boolean;
12362
- /** Epoch ms for the filename + `exportedAt`. Default `Date.now()`. */
12363
- now?: number;
12364
12632
  }
12365
12633
  /**
12366
12634
  * Read all stored chats and trigger a browser download of the detailed log.
@@ -13019,7 +13287,7 @@ declare class SlideCanvasComponent implements SlideContext {
13019
13287
  */
13020
13288
  readonly aiPickMode: _angular_core.InputSignal<boolean>;
13021
13289
  /** Active draw tool. When not 'select', pointer gestures draw ink strokes. */
13022
- readonly drawTool: _angular_core.InputSignal<"select" | "pen" | "highlighter" | "eraser" | "freeform">;
13290
+ readonly drawTool: _angular_core.InputSignal<"pen" | "highlighter" | "eraser" | "select" | "freeform">;
13023
13291
  /** Active ink stroke colour (CSS colour string). */
13024
13292
  readonly drawColor: _angular_core.InputSignal<string>;
13025
13293
  /** Active ink stroke width in stage pixels. */
@@ -13900,6 +14168,18 @@ declare class ElementRendererComponent {
13900
14168
  readonly isImageLike: _angular_core.Signal<boolean>;
13901
14169
  readonly paragraphs: _angular_core.Signal<Paragraph[]>;
13902
14170
  readonly hasText: _angular_core.Signal<boolean>;
14171
+ /**
14172
+ * An empty inherited placeholder's greyed-out hint ("Click to add title"),
14173
+ * or null when it should not be shown. `editable` is only ever set true on
14174
+ * the live editing canvas (Present Mode leaves it at its `false` default,
14175
+ * and the thumbnail rail passes it explicitly false), matching shared's
14176
+ * `'edit'`-only surface: PowerPoint never prints, presents or thumbnails
14177
+ * this authoring hint.
14178
+ */
14179
+ readonly placeholderPrompt: _angular_core.Signal<{
14180
+ text: string;
14181
+ style: StyleMap;
14182
+ } | null>;
13903
14183
  readonly placeholderLabel: _angular_core.Signal<any>;
13904
14184
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ElementRendererComponent, never>;
13905
14185
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<ElementRendererComponent, "pptx-element-renderer", never, { "element": { "alias": "element"; "required": true; "isSignal": true; }; "mediaDataUrls": { "alias": "mediaDataUrls"; "required": false; "isSignal": true; }; "zIndex": { "alias": "zIndex"; "required": false; "isSignal": true; }; "obstacles": { "alias": "obstacles"; "required": false; "isSignal": true; }; "canvasWidth": { "alias": "canvasWidth"; "required": false; "isSignal": true; }; "canvasHeight": { "alias": "canvasHeight"; "required": false; "isSignal": true; }; "interactive": { "alias": "interactive"; "required": false; "isSignal": true; }; "marked": { "alias": "marked"; "required": false; "isSignal": true; }; "exposeElementId": { "alias": "exposeElementId"; "required": false; "isSignal": true; }; "presenting": { "alias": "presenting"; "required": false; "isSignal": true; }; "editable": { "alias": "editable"; "required": false; "isSignal": true; }; "fieldContext": { "alias": "fieldContext"; "required": false; "isSignal": true; }; "slideElements": { "alias": "slideElements"; "required": false; "isSignal": true; }; "editTemplateMode": { "alias": "editTemplateMode"; "required": false; "isSignal": true; }; "parentGroupFill": { "alias": "parentGroupFill"; "required": false; "isSignal": true; }; "editingElementId": { "alias": "editingElementId"; "required": false; "isSignal": true; }; }, { "cellCommit": "cellCommit"; "tableChange": "tableChange"; }, never, never, true, never>;
@@ -14695,6 +14975,14 @@ declare class OleRendererComponent {
14695
14975
  readonly ariaLabel: _angular_core.Signal<string>;
14696
14976
  /** Border + background style for the placeholder box. */
14697
14977
  readonly placeholderStyle: _angular_core.Signal<StyleMap>;
14978
+ /**
14979
+ * Data-driven `rect`/`line`/`text` primitives for the placeholder icon,
14980
+ * shared with every other binding's OLE renderer so the icon glyphs
14981
+ * (Excel grid, Word lines, PDF box, Visio diagram, MathType `f(x)`,
14982
+ * generic linked-object) cannot drift apart. The template maps each
14983
+ * primitive onto its own SVG element.
14984
+ */
14985
+ readonly iconShapes: _angular_core.Signal<OleIconShape[]>;
14698
14986
  /**
14699
14987
  * Download / Open action model derived from the recovered embedded payload.
14700
14988
  * When the input is not an OLE element, every action is disabled.
@@ -14718,6 +15006,13 @@ declare class OleRendererComponent {
14718
15006
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<OleRendererComponent, "pptx-ole-renderer", never, { "element": { "alias": "element"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
14719
15007
  }
14720
15008
 
15009
+ /**
15010
+ * Pure helpers for `Model3DRendererComponent`.
15011
+ *
15012
+ * All functions are framework-agnostic (no Angular dependency) so they can be
15013
+ * unit-tested without TestBed, following the same pattern as
15014
+ * `connector-path.ts`.
15015
+ */
14721
15016
  /** Narrowed view-model derived from a `Model3DPptxElement`. */
14722
15017
  interface Model3DViewModel {
14723
15018
  /** Resolved model element, or undefined when the element is not a model3d. */
@@ -14738,14 +15033,12 @@ declare function buildModel3DViewModel(element: PptxElement): Model3DViewModel;
14738
15033
  declare function buildModel3DContainerStyle(element: PptxElement, zIndex: number): StyleMap;
14739
15034
  /**
14740
15035
  * Derive an object (blob) URL for the GLTF/GLB loader from the element's
14741
- * base64 `modelData` data URL.
14742
- *
14743
- * Reuses the core `parseDataUrlToBytes` helper (no hand-rolled base64) and
14744
- * wraps the bytes in a `Blob` typed with `modelMimeType` (falling back to
14745
- * `model/gltf-binary`). Returns `undefined` when the element is not a model3d,
14746
- * has no `modelData`, or the data URL cannot be parsed: the caller then shows
14747
- * the poster fallback. The returned URL is owned by the caller, which must
14748
- * `URL.revokeObjectURL` it on teardown.
15036
+ * base64 `modelData` data URL. Delegates to shared's `modelDataToBlobUrl`
15037
+ * (reuses core's `parseDataUrlToBytes`, no hand-rolled base64); this wrapper
15038
+ * only narrows `element` to `Model3DPptxElement` first. Returns `undefined`
15039
+ * when the element is not a model3d, has no `modelData`, or the data URL
15040
+ * cannot be parsed: the caller then shows the poster fallback. The returned
15041
+ * URL is owned by the caller, which must `URL.revokeObjectURL` it on teardown.
14749
15042
  */
14750
15043
  declare function deriveModel3DBlobUrl(element: PptxElement): string | undefined;
14751
15044
 
@@ -15188,6 +15481,15 @@ declare class PresentationAnnotationsService {
15188
15481
  * Exported separately so they can be unit-tested without TestBed.
15189
15482
  */
15190
15483
 
15484
+ /**
15485
+ * The `p:showPr/p:sldRg` range restriction, when the deck is authored to open
15486
+ * into a slide range (`p:showPr/@showSlidesMode == 'range'`). Every navigation
15487
+ * helper below forwards it to `resolveShowSlideIndexes` alongside
15488
+ * {@link ActiveShow}, so a range restriction is applied the same way a custom
15489
+ * show's membership is: as a filter on the show's slide order, not a
15490
+ * pre-filtered slide array.
15491
+ */
15492
+ type AuthoredRange = AuthoredSlideRange | null | undefined;
15191
15493
  /**
15192
15494
  * The running custom show, when one is active. Every navigation helper below
15193
15495
  * takes it and forwards it to `resolveShowSlideIndexes`, because "which slide
@@ -15254,13 +15556,13 @@ declare function clampIndex(index: number, count: number): number;
15254
15556
  * slides. Kept as a named export because the overlay's tests and the navigator
15255
15557
  * read better in terms of "next visible slide" than raw index lists.
15256
15558
  */
15257
- declare function nextVisibleIndex(current: number, slides: readonly PptxSlide[], activeShow?: ActiveShow): number;
15559
+ declare function nextVisibleIndex(current: number, slides: readonly PptxSlide[], activeShow?: ActiveShow, authoredRange?: AuthoredRange): number;
15258
15560
  /**
15259
15561
  * Return the previous visible (non-hidden) slide index before `current`.
15260
15562
  * Returns `current` when no earlier visible slide exists: PowerPoint never
15261
15563
  * wraps backward off the first slide.
15262
15564
  */
15263
- declare function prevVisibleIndex(current: number, slides: readonly PptxSlide[], activeShow?: ActiveShow): number;
15565
+ declare function prevVisibleIndex(current: number, slides: readonly PptxSlide[], activeShow?: ActiveShow, authoredRange?: AuthoredRange): number;
15264
15566
  /**
15265
15567
  * Compute the zoom level that fits a canvas of `canvasW × canvasH` pixels
15266
15568
  * into a viewport of `vw × vh` pixels, preserving aspect ratio.
@@ -15276,11 +15578,11 @@ declare function fitZoom(canvasW: number, canvasH: number, vw: number, vh: numbe
15276
15578
  * the last slide ends the show. Callers use this to tell "there is a next
15277
15579
  * slide" from "we just wrapped".
15278
15580
  */
15279
- declare function hasVisibleSlideAfter(current: number, slides: readonly PptxSlide[], activeShow?: ActiveShow): boolean;
15581
+ declare function hasVisibleSlideAfter(current: number, slides: readonly PptxSlide[], activeShow?: ActiveShow, authoredRange?: AuthoredRange): boolean;
15280
15582
  /** The show's first visible slide (Home), or 0 for an empty deck. */
15281
- declare function firstVisibleIndex(slides: readonly PptxSlide[], activeShow?: ActiveShow): number;
15583
+ declare function firstVisibleIndex(slides: readonly PptxSlide[], activeShow?: ActiveShow, authoredRange?: AuthoredRange): number;
15282
15584
  /** The show's last visible slide (End), or 0 for an empty deck. */
15283
- declare function lastVisibleIndex(slides: readonly PptxSlide[], activeShow?: ActiveShow): number;
15585
+ declare function lastVisibleIndex(slides: readonly PptxSlide[], activeShow?: ActiveShow, authoredRange?: AuthoredRange): number;
15284
15586
  /**
15285
15587
  * Style record centring the scaled slide stage in the viewport.
15286
15588
  *
@@ -15314,6 +15616,13 @@ interface ShowNavigatorDeps {
15314
15616
  * space never has to be translated.
15315
15617
  */
15316
15618
  activeCustomShow?: () => ActiveShow;
15619
+ /**
15620
+ * The `p:showPr/p:sldRg` slide-range restriction, when the deck is authored
15621
+ * to open into a range rather than the whole deck or a custom show. Applied
15622
+ * the same way `activeCustomShow` is: a filter on the navigable order, not a
15623
+ * pre-filtered slide array.
15624
+ */
15625
+ authoredRange?: () => AuthoredRange;
15317
15626
  /** The slide at the CURRENT index (a computed over `currentIndex`). */
15318
15627
  currentSlide: () => PptxSlide | undefined;
15319
15628
  showWithAnimation: () => boolean | undefined;
@@ -15330,6 +15639,12 @@ interface ShowNavigatorDeps {
15330
15639
  * the show immediately instead. Undefined means the PowerPoint default.
15331
15640
  */
15332
15641
  endWithBlackSlide?: () => boolean | undefined;
15642
+ /**
15643
+ * Set Up Slide Show > "Loop continuously until 'Esc'". When true, running
15644
+ * past the last slide wraps back to the show's first slide instead of
15645
+ * raising the end-of-show screen (or exiting, per `endWithBlackSlide`).
15646
+ */
15647
+ loopContinuously?: () => boolean | undefined;
15333
15648
  }
15334
15649
  declare class PresentationShowNavigator {
15335
15650
  private readonly deps;
@@ -15520,6 +15835,15 @@ declare class PresentationOverlayComponent implements OnInit {
15520
15835
  * hidden slides inside a show are still skipped.
15521
15836
  */
15522
15837
  readonly activeCustomShow: _angular_core.InputSignal<ShowOrderCustomShow | null>;
15838
+ /**
15839
+ * The `p:showPr/p:sldRg` slide-range restriction, when the deck is authored
15840
+ * to open into a range (`p:showPr/@showSlidesMode == 'range'`) rather than
15841
+ * the whole deck or a custom show. Applied the same way `activeCustomShow`
15842
+ * is: a filter on the navigable order, not a pre-filtered slide array.
15843
+ */
15844
+ readonly authoredRange: _angular_core.InputSignal<AuthoredSlideRange | null>;
15845
+ /** Set Up Slide Show > "Loop continuously until 'Esc'". */
15846
+ readonly loopContinuously: _angular_core.InputSignal<boolean>;
15523
15847
  readonly showWithAnimation: _angular_core.InputSignal<boolean | undefined>;
15524
15848
  /**
15525
15849
  * Whether authored slide timings (`p:transition/@advTm`) advance the show on
@@ -15732,7 +16056,7 @@ declare class PresentationOverlayComponent implements OnInit {
15732
16056
  private runChromeAction;
15733
16057
  private emitClosed;
15734
16058
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<PresentationOverlayComponent, never>;
15735
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<PresentationOverlayComponent, "pptx-presentation-overlay", never, { "slides": { "alias": "slides"; "required": true; "isSignal": true; }; "canvasSize": { "alias": "canvasSize"; "required": true; "isSignal": true; }; "mediaDataUrls": { "alias": "mediaDataUrls"; "required": false; "isSignal": true; }; "startIndex": { "alias": "startIndex"; "required": false; "isSignal": true; }; "activeCustomShow": { "alias": "activeCustomShow"; "required": false; "isSignal": true; }; "showWithAnimation": { "alias": "showWithAnimation"; "required": false; "isSignal": true; }; "useTimings": { "alias": "useTimings"; "required": false; "isSignal": true; }; "subtitlesVisible": { "alias": "subtitlesVisible"; "required": false; "isSignal": true; }; "sessionEnded": { "alias": "sessionEnded"; "required": false; "isSignal": true; }; "endWithBlackSlide": { "alias": "endWithBlackSlide"; "required": false; "isSignal": true; }; "presenterMode": { "alias": "presenterMode"; "required": false; "isSignal": true; }; "showMenuOnRightClick": { "alias": "showMenuOnRightClick"; "required": false; "isSignal": true; }; "showPopupToolbar": { "alias": "showPopupToolbar"; "required": false; "isSignal": true; }; }, { "indexChange": "indexChange"; "closed": "closed"; "subtitlesChange": "subtitlesChange"; "presenterViewToggle": "presenterViewToggle"; "annotationsExit": "annotationsExit"; }, never, never, true, never>;
16059
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<PresentationOverlayComponent, "pptx-presentation-overlay", never, { "slides": { "alias": "slides"; "required": true; "isSignal": true; }; "canvasSize": { "alias": "canvasSize"; "required": true; "isSignal": true; }; "mediaDataUrls": { "alias": "mediaDataUrls"; "required": false; "isSignal": true; }; "startIndex": { "alias": "startIndex"; "required": false; "isSignal": true; }; "activeCustomShow": { "alias": "activeCustomShow"; "required": false; "isSignal": true; }; "authoredRange": { "alias": "authoredRange"; "required": false; "isSignal": true; }; "loopContinuously": { "alias": "loopContinuously"; "required": false; "isSignal": true; }; "showWithAnimation": { "alias": "showWithAnimation"; "required": false; "isSignal": true; }; "useTimings": { "alias": "useTimings"; "required": false; "isSignal": true; }; "subtitlesVisible": { "alias": "subtitlesVisible"; "required": false; "isSignal": true; }; "sessionEnded": { "alias": "sessionEnded"; "required": false; "isSignal": true; }; "endWithBlackSlide": { "alias": "endWithBlackSlide"; "required": false; "isSignal": true; }; "presenterMode": { "alias": "presenterMode"; "required": false; "isSignal": true; }; "showMenuOnRightClick": { "alias": "showMenuOnRightClick"; "required": false; "isSignal": true; }; "showPopupToolbar": { "alias": "showPopupToolbar"; "required": false; "isSignal": true; }; }, { "indexChange": "indexChange"; "closed": "closed"; "subtitlesChange": "subtitlesChange"; "presenterViewToggle": "presenterViewToggle"; "annotationsExit": "annotationsExit"; }, never, never, true, never>;
15736
16060
  }
15737
16061
 
15738
16062
  /**
@@ -16387,6 +16711,11 @@ declare class EffectsPanelComponent {
16387
16711
  protected readonly elementKey: _angular_core.Signal<string>;
16388
16712
  protected onOuterShadowToggle(event: Event): void;
16389
16713
  protected onOuterShadowField(field: 'color' | 'opacity' | 'blur' | 'angle' | 'distance', event: Event): void;
16714
+ /**
16715
+ * `a:outerShdw@rotWithShape`: whether the shadow rotates along with the
16716
+ * shape. PowerPoint defaults to `true` when the attribute is absent.
16717
+ */
16718
+ protected onOuterShadowRotateWithShapeToggle(event: Event): void;
16390
16719
  protected onInnerShadowToggle(event: Event): void;
16391
16720
  protected onInnerShadowField(field: 'color' | 'opacity' | 'blur' | 'offsetX' | 'offsetY', event: Event): void;
16392
16721
  protected onGlowToggle(event: Event): void;
@@ -16851,6 +17180,13 @@ declare class ChartDisplayOptionsComponent {
16851
17180
  readonly elementChange: _angular_core.OutputEmitterRef<ChartPptxElement>;
16852
17181
  protected readonly legendPositions: readonly ChartOption<string>[];
16853
17182
  protected readonly style: _angular_core.Signal<pptx_viewer_core.PptxChartStyle>;
17183
+ /**
17184
+ * Read from the primary value axis's `majorGridlines`, matching what the
17185
+ * cartesian renderer actually draws; `style.hasGridlines` alone is a legacy
17186
+ * field the renderer never reads, so wiring the checkbox straight to it
17187
+ * silently did nothing (see `chart-gridlines-toggle.ts` in shared).
17188
+ */
17189
+ protected readonly gridlinesShown: _angular_core.Signal<boolean>;
16854
17190
  protected onToggleTitle(event: Event): void;
16855
17191
  protected onToggleLegend(event: Event): void;
16856
17192
  protected onLegendPosition(event: Event): void;
@@ -18433,12 +18769,12 @@ declare class PropertiesDialogComponent {
18433
18769
  * share-helpers.ts: Share dialog helpers for the Angular viewer.
18434
18770
  *
18435
18771
  * The shared subset (ShareFormFields / ShareDefaults / seedShareFields /
18436
- * canStartShare) is re-exported from `pptx-viewer-shared` (`render/share-form`).
18437
- * Two helpers stay local because they diverge from the shared builders:
18438
- * - `buildCollaborationConfig` validates with `canStartShare` (non-blank room)
18439
- * and emits a config WITHOUT `role`/`sessionIntent`, unlike the shared
18440
- * `buildShareConfig` (which is `buildCreateCollaborationConfig`).
18441
- * - `buildShareUrl` is Angular-only (no other binding builds a share link).
18772
+ * canStartShare / buildShareUrl) is re-exported from `pptx-viewer-shared`
18773
+ * (`render/share-form`, `render/broadcast-helpers`). One helper stays local
18774
+ * because it diverges from the shared builders: `buildCollaborationConfig`
18775
+ * validates with `canStartShare` (non-blank room) and emits a config WITHOUT
18776
+ * `role`/`sessionIntent`, unlike the shared `buildShareConfig` (which is
18777
+ * `buildCreateCollaborationConfig`).
18442
18778
  *
18443
18779
  * No `any`; all regexes use the `/u` flag; no `String.prototype.replaceAll`,
18444
18780
  * no regex named-capture-groups (ng-packagr lib-target constraints).
@@ -18450,14 +18786,6 @@ declare class PropertiesDialogComponent {
18450
18786
  * `transport: 'webrtc'`; otherwise the default websocket transport is used.
18451
18787
  */
18452
18788
  declare function buildCollaborationConfig(fields: ShareFormFields): CollaborationConfig | null;
18453
- /**
18454
- * Build a shareable join URL for a session. Returns just the room id when no
18455
- * `origin`/`pathname` are available (e.g. non-browser environments).
18456
- */
18457
- declare function buildShareUrl(roomId: string, serverUrl: string, location?: {
18458
- origin: string;
18459
- pathname: string;
18460
- }): string;
18461
18789
 
18462
18790
  declare class ShareDialogComponent {
18463
18791
  /** Whether the dialog is visible. */
@@ -19113,7 +19441,7 @@ declare class AccountPageComponent {
19113
19441
  readonly accountAuth: _angular_core.InputSignal<AccountAuthConfig | undefined>;
19114
19442
  private readonly translate;
19115
19443
  protected readonly swatches: readonly string[];
19116
- protected readonly version = "3.2.2";
19444
+ protected readonly version = "3.3.0";
19117
19445
  protected readonly profile: _angular_core.WritableSignal<ViewerProfile>;
19118
19446
  protected readonly initial: _angular_core.Signal<string>;
19119
19447
  protected readonly usage: _angular_core.WritableSignal<LocalStorageUsageSummary | null>;
@@ -21065,7 +21393,7 @@ declare class RibbonFontControlsComponent {
21065
21393
  * grouping and de-duplication now come from `pptx-viewer-shared`.
21066
21394
  */
21067
21395
  protected readonly fontGroups: _angular_core.Signal<FontCatalogGroup[]>;
21068
- protected readonly fontSizes: number[];
21396
+ protected readonly fontSizes: readonly number[];
21069
21397
  protected readonly fontColorPresets: string[];
21070
21398
  protected readonly highlightColorPresets: string[];
21071
21399
  protected readonly charSpacingOptions: {
@@ -21404,14 +21732,6 @@ declare class RibbonReviewSectionComponent {
21404
21732
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<RibbonReviewSectionComponent, "pptx-ribbon-review-section", never, { "spellCheckEnabled": { "alias": "spellCheckEnabled"; "required": false; "isSignal": true; }; "canEdit": { "alias": "canEdit"; "required": false; "isSignal": true; }; }, { "comments": "comments"; "spellCheckChange": "spellCheckChange"; "a11y": "a11y"; "openCompare": "openCompare"; "language": "language"; "link": "link"; }, never, never, true, never>;
21405
21733
  }
21406
21734
 
21407
- /** Grouping needs an editable deck and at least two selected elements. */
21408
- declare function canGroupSelection(canEdit: boolean, selectedCount: number): boolean;
21409
- /** Ungrouping needs an editable deck and a selection that IS a group. */
21410
- declare function canUngroupSelection(canEdit: boolean, element: PptxElement | null): boolean;
21411
- /** An outline width only exists on an element that carries shape properties. */
21412
- declare function canSetStrokeWidth(canEdit: boolean, element: PptxElement | null): boolean;
21413
- /** The stroke width to show for a selection, defaulted for a shape without one. */
21414
- declare function strokeWidthOf(element: PptxElement | null): number;
21415
21735
  declare class RibbonShapeExtrasComponent {
21416
21736
  protected readonly editor: EditorStateService;
21417
21737
  readonly slideIndex: _angular_core.InputSignal<number>;
@@ -21773,19 +22093,6 @@ declare function asMediaElement(el: PptxElement): MediaPptxElement | undefined;
21773
22093
  * Mirrors React's `element.mediaData ?? mediaDataUrls.get(mediaPath)`.
21774
22094
  */
21775
22095
  declare function resolveMediaSrc(el: MediaPptxElement, mediaDataUrls: Map<string, string>): string | undefined;
21776
- /**
21777
- * Register a `playAcrossSlides` audio element with the shared persistent-audio
21778
- * manager, using the same resolved source, loop, volume and trim start the
21779
- * slide-local element would have used. PowerPoint keeps such background audio
21780
- * playing when the show advances, but the slide-local `<audio>` dies with its
21781
- * slide's DOM; the manager's hidden document-level element survives it.
21782
- *
21783
- * Returns true when the persistent element owns playback, in which case the
21784
- * slide-local media node must stay silent or the track doubles. Idempotent per
21785
- * element id (the manager no-ops a re-register), so re-entering the owning
21786
- * slide does not restart the track.
21787
- */
21788
- declare function registerCrossSlideAudio(element: MediaPptxElement, src: string | undefined): boolean;
21789
22096
  /**
21790
22097
  * Build a media-fragment URI component (`#t=start,end`) for trimmed media.
21791
22098
  * Times are stored in milliseconds; the fragment uses seconds. Mirrors React's
@@ -22385,6 +22692,6 @@ declare function thumbnailHeight(canvasW: number, canvasH: number, thumbW: numbe
22385
22692
  */
22386
22693
  declare function gridColumns(containerW: number, thumbW: number, gap: number, maxCols: number): number;
22387
22694
 
22388
- export { AFTER_ANIMATION_VALUES, ALIGN_OPTIONS, ANIMATION_PRESET_CATEGORIES, AUDIENCE_HASH, AUDIENCE_NONCE_KEY, AVATAR_COLOR_SWATCHES, AXIS_LABEL_COLOR, AccessibilityPanelComponent, AccessibilityService, 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, 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_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, 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, GRIDLINE_COLOR, GradientPickerComponent, HANDOUT_OPTIONS, HeaderFooterDialogComponent, HyperlinkDialogComponent, 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, 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, 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, SHORTCUT_REFERENCE_ITEMS, SLIDE_TRANSITION_KEYFRAMES, 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, 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, ViewerCompareService, ViewerCustomShowsService, ViewerDialogsService, ViewerDocumentPropertiesService, ViewerExportService, ViewerExtraDialogsComponent, ViewerFileIOService, ViewerFindReplaceService, ViewerFormatPainterService, ViewerInspectorPanelService, ViewerKeyboardService, ViewerMobileSheetService, ViewerPresentationModeService, ViewerThemeGalleryService, ViewerTouchGesturesService, ViewerZoomService, WEBM_MIME_CANDIDATES, 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, 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, buildMarkTooltip, buildModel3DContainerStyle, buildModel3DViewModel, buildOleActionModel, buildOleInfoRows, buildPatternFillCss, buildPrintHtmlDocument as buildPrintDocument, buildPropertiesPatch, buildRegionMapViewModel, buildSaveSlides, buildShareUrl, buildSmartArtInsertElement, buildSmartArtNodes, buildStockViewModel, buildSurfaceViewModel, buildTableViewModel, buildTreemapViewModel, buildTrimFragment, buildWaterfallViewModel, buildZeroLine, buildZoomContainerStyle, buildZoomViewModel, bulletIndentPx, canAddTopLevelNode, 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, createSwipeDismissDrag, createWebrtcBundle, createWebsocketBundle, cssObjectToStyleMap, currentColorScheme, currentLayout, currentStyle, defaultCssVars, defaultRadius, defaultThemeColors, deleteElementsByIds, deleteVersion as deleteRecoveryVersion, demoteNode, deriveModel3DBlobUrl, derivePresenceList, 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, formatPropertyDate, formatTime, fpsToFrameIntervalMs, generateBroadcastRoomId, generateCommentId, generateCustomShowId, generatePressureCircles, generateTicks, getClrChangeParams, getContainerStyle, getDuotoneFilterDef, getEffectSoundState, getImageSrc, getLocalStorageUsageSummary, getOleAriaLabel, getOleBadgeLabel, getOleDisplayName, getOleDownloadFileName, getOleTypeColor, getOleTypeLabel, getPasswordStrength, getPatternSvg, getPlaceholderStyle, getVersions as getRecoveryVersions, getResolvedShapeClipPath, getResolvedShapeClipPathFor, getSessionTabId, getShapeFillStrokeStyle, getSlideBackgroundStyle, getSlideTransitionAnimations, getSmartArtNodeBounds, getSpeechRecognitionCtor, getTextBlockStyle, getTextWarp, getTouchDistance, getWarpCategory, getWarpPath, gradientStateFromStyle, gradientStateOf, gradientStatePatch, 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, 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, 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, resolveFontVariant, resolveHyperlinkHref, resolveInteractiveElementId, resolveMediaSrc, resolveOleType, resolveParagraphBullet, resolvePresenterNotes, resolveProfileInitial, resolveRegionCode, resolveSlideAutoAdvanceMs, resolvePalette as resolveSmartArtPalette, resolveThemeCatalogEntry, resolveTransitionDuration, 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, 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, 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, worstStatus, zoomTargetSlideIndex };
22389
- export type { AccessibilityIssueGroup, AccountAuthConfig, ActionDescriptor, ActiveShow, AiCanvasHighlight, AiChatInitState, AiHistoryInitDeps, AiLogChat, AiLogExport, AiLogFormat, AiLogMessage, AiPanelSelectionAccessors, AlignBox, AlignMode, AnimationClickGroup, AnimationGroup, AnimationPresetCategory, AnimationPresetEntry, AnimationPresetPick, AnnotationInkInsert, AnnotationStroke, AttachTouchGesturesConfig, AwarenessLike, BarRect, Box, BridgeDeps, BroadcastConfig, BroadcastDefaults, CSSProperties, CanvasSize, CellCoord, CellParagraph, CellTextRun, ChartPartRef, ChartPartSelection, ChartValueDrag, ChartViewModel, ClassValue, ClrChangeParams, CollaborationConfig, CollaborationRole, RouterRect as ConnectorObstacle, RouterPoint as ConnectorPoint, ConnectorRouting, CopiedFormat, CornerHandleBox, CustomShow, CustomThemeEdit, DestroyableYDoc, DiagonalBorderInfo, DistributeMode, DocumentProperties, DrawingViewBox, DuotoneFilterDef, EffectSoundState, EffectsState, EmbeddedFontStyles, EquationTemplate, EyedropperResult, FindOptions, FindResult, FocusChip, FocusSelectionInput, GifFrame, GifFramePlan, GifPlanOptions, GlowState, GradientState, GradientStop$1 as GradientStop, HandleBox, HandoutSlidesPerPage, HyperlinkDraft, InkPoint, InkStroke, 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, ResolvedFontVariant, ResolvedOleType, RulerUnit, 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, ViewerMode, ViewerProfile, ViewerSettings, ViewerTheme, ViewerThemeColors, ZoomTranslate, ZoomViewModel };
22695
+ export { AFTER_ANIMATION_VALUES, ALIGN_OPTIONS, ANIMATION_PRESET_CATEGORIES, AUDIENCE_HASH, AUDIENCE_NONCE_KEY, AVATAR_COLOR_SWATCHES, AXIS_LABEL_COLOR, AccessibilityPanelComponent, AccessibilityService, 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, 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_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, 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, 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, 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, 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, SHORTCUT_REFERENCE_ITEMS, SLIDE_TRANSITION_KEYFRAMES, 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, 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, ViewerCompareService, ViewerCustomShowsService, ViewerDialogsService, ViewerDocumentPropertiesService, ViewerExportService, ViewerExtraDialogsComponent, ViewerFileIOService, ViewerFindReplaceService, ViewerFormatPainterService, ViewerInspectorPanelService, ViewerKeyboardService, ViewerMobileSheetService, ViewerPresentationModeService, ViewerThemeGalleryService, ViewerTouchGesturesService, ViewerZoomService, WEBM_MIME_CANDIDATES, 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, 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, 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, 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, createSwipeDismissDrag, createWebrtcBundle, createWebsocketBundle, cssObjectToStyleMap, currentColorScheme, currentLayout, currentStyle, defaultCssVars, defaultRadius, defaultThemeColors, deleteElementsByIds, deleteVersion as deleteRecoveryVersion, demoteNode, deriveModel3DBlobUrl, derivePresenceList, 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, formatPropertyDate, formatTime, fpsToFrameIntervalMs, generateBroadcastRoomId, generateCommentId, generateCustomShowId, generatePressureCircles, generateTicks, getClrChangeParams, getContainerStyle, getDuotoneFilterDef, getEffectSoundState, getImageSrc, getLocalStorageUsageSummary, getOleAriaLabel, getOleBadgeLabel, getOleDisplayName, getOleDownloadFileName, getOleTypeColor, getOleTypeLabel, getPasswordStrength, getPatternSvg, getPlaceholderStyle, getVersions as getRecoveryVersions, getResolvedShapeClipPath, getResolvedShapeClipPathFor, getSessionTabId, getShapeFillStrokeStyle, getSlideBackgroundStyle, getSlideTransitionAnimations, getSmartArtNodeBounds, getSpeechRecognitionCtor, getTextBlockStyle, getTextWarp, getTouchDistance, getWarpCategory, getWarpPath, gradientStateFromStyle, gradientStateOf, gradientStatePatch, 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, 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, resolveFontVariant, resolveHyperlinkHref, resolveInteractiveElementId, resolveMediaSrc, resolveOleType, resolveParagraphBullet, resolvePresenterNotes, resolveProfileInitial, resolveRegionCode, resolveSlideAutoAdvanceMs, resolvePalette as resolveSmartArtPalette, resolveThemeCatalogEntry, resolveTransitionDuration, 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, 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, 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 };
22696
+ 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, CSSProperties, CanvasSize, CellCoord, CellParagraph, CellTextRun, ChartPartRef, ChartPartSelection, ChartValueDrag, ChartViewModel, ClassValue, ClrChangeParams, CollaborationConfig, CollaborationRole, RouterRect as ConnectorObstacle, RouterPoint as ConnectorPoint, ConnectorRouting, CopiedFormat, CornerHandleBox, CustomShow, CustomThemeEdit, DestroyableYDoc, DiagonalBorderInfo, DistributeMode, DocumentProperties, DrawingViewBox, DuotoneFilterDef, EffectSoundState, EffectsState, EmbeddedFontStyles, EquationTemplate, EyedropperResult, FindOptions, FindResult, FocusChip, FocusSelectionInput, GifFrame, GifFramePlan, GifPlanOptions, GlowState, GradientState, GradientStop$1 as GradientStop, HandleBox, HandoutSlidesPerPage, HyperlinkDraft, InkPoint, InkStroke, 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, ResolvedFontVariant, ResolvedOleType, RulerUnit, 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, ViewerMode, ViewerProfile, ViewerSettings, ViewerTheme, ViewerThemeColors, ZoomTranslate, ZoomViewModel };
22390
22697
  //# sourceMappingURL=pptx-angular-viewer.d.ts.map