pptx-angular-viewer 1.18.0 → 1.26.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 { PptxSlide, PptxElement, ShapeStyle, PptxTextWarpPreset, XmlObject, PptxChartSeries, PptxChartData, PptxElementAnimation, PptxAnimationPreset, PptxAnimationDirection, PptxAnimationRepeatMode, PptxAnimationSequence, PptxAnimationTimingCurve, PptxAnimationTrigger, TablePptxElement, OlePptxElement, TextSegment, TextStyle, PptxTransitionType, SmartArtColorScheme, PptxSmartArtChrome, PptxSmartArtDrawingShape, SmartArtStyle, PptxSmartArtData, PptxEmbeddedFont, SmartArtLayout, AccessibilityIssueSeverity, AccessibilityIssue, AccessibilityIssueType, AccessibilityCheckOptions, InkPptxElement, PptxComment, PptxChartType, PptxTheme, PptxSlideMaster, PptxNotesMaster, PptxHandoutMaster, PptxCoreProperties, PptxCustomProperty, PptxHeaderFooter, ParsedSignature, PptxTableCell, PptxTableCellStyle, PptxTableRow, PptxTableData, PptxCustomShow, PptxPresentationProperties, PptxThemePreset, MasterViewTab, Model3DPptxElement, ZoomPptxElement, PptxSlideTransition, ChartPptxElement, SmartArtPptxElement, PptxChartDataLabelOptions, PptxChartAxisType, PptxChartAxisFormatting, PptxChartDataPoint, PptxChartTrendline, PptxChartErrBars, SignatureStatus, ChartAxisEdit, ChartDataPointLabelEdit, PptxChartLegendPosition, PptxChartStyle, ChartAxisTitleStyleEdit, ChartGridlineStyleEdit, PptxChartMarkerSymbol, PptxSmartArtNode, SmartArtLayoutType, PptxSmartArtNodeStyle, MediaCaptionTrack, MediaPptxElement, PptxMediaType } from 'pptx-viewer-core';
2
+ import { PptxSlide, PptxElement, ShapeStyle, PptxTextWarpPreset, XmlObject, PptxChartSeries, PptxChartData, PptxElementAnimation, PptxAnimationPreset, PptxAnimationDirection, PptxAnimationRepeatMode, PptxAnimationSequence, PptxAnimationTimingCurve, PptxAnimationTrigger, TablePptxElement, PptxSection, OlePptxElement, TextSegment, TextStyle, PptxTransitionType, SmartArtColorScheme, PptxSmartArtChrome, PptxSmartArtDrawingShape, SmartArtStyle, PptxSmartArtData, PptxEmbeddedFont, SmartArtLayout, AccessibilityIssueSeverity, AccessibilityIssue, AccessibilityIssueType, AccessibilityCheckOptions, InkPptxElement, PptxComment, PptxChartType, PptxHeaderFooter, PptxTheme, PptxSlideMaster, PptxNotesMaster, PptxHandoutMaster, PptxPresentationProperties, PptxCoreProperties, PptxCustomProperty, ParsedSignature, PptxSaveFormat, PptxTableCell, PptxTableCellStyle, PptxTableRow, PptxTableData, PptxCustomShow, PptxThemePreset, PptxThemeColorScheme, PptxThemeFontScheme, MasterViewTab, Model3DPptxElement, ZoomPptxElement, PptxSlideTransition, ChartPptxElement, MediaPptxElement, SmartArtPptxElement, PptxChartDataLabelOptions, PptxChartAxisType, PptxChartAxisFormatting, PptxChartDataPoint, PptxChartTrendline, PptxChartErrBars, SvgExportOptions, PptxData, SignatureStatus, ElementActionType, ElementAction, PptxImageEffects, MediaBookmark, ColorMapAliasKey, ChartAxisEdit, ChartDataPointLabelEdit, PptxChartLegendPosition, PptxChartStyle, ChartAxisTitleStyleEdit, ChartGridlineStyleEdit, PptxChartMarkerSymbol, PptxSmartArtNode, SmartArtLayoutType, PptxSmartArtNodeStyle, MediaCaptionTrack, PptxMediaType } from 'pptx-viewer-core';
3
3
  export { SWITCHABLE_LAYOUT_TYPES, addSmartArtNode, addSmartArtNodeAsChild, chartDataAddCategory, chartDataAddSeries, chartDataChangeType, chartDataRemoveCategory, chartDataRemoveSeries, chartDataUpdatePoint, demoteSmartArtNode, promoteSmartArtNode, removeSmartArtNode, reorderSmartArtNode, switchSmartArtLayout, updateSmartArtNodeText } from 'pptx-viewer-core';
4
4
  import * as _angular_core from '@angular/core';
5
5
  import { Signal, WritableSignal, OnDestroy, OnInit, OnChanges, SimpleChanges, InjectionToken, Provider } from '@angular/core';
@@ -674,6 +674,8 @@ interface ValueRange {
674
674
  logScale?: boolean;
675
675
  /** Logarithmic base (e.g. 10, 2, Math.E). Only meaningful when logScale is true. */
676
676
  logBase?: number;
677
+ /** Whether values increase from top to bottom. */
678
+ reverseOrder?: boolean;
677
679
  }
678
680
  /** Compute a Y-axis range that always includes zero. */
679
681
  declare function computeValueRange(series: ReadonlyArray<PptxChartSeries>): ValueRange;
@@ -802,6 +804,7 @@ interface SvgText {
802
804
  fill: string;
803
805
  textAnchor: 'start' | 'middle' | 'end';
804
806
  fontWeight?: 'normal' | 'bold';
807
+ fontFamily?: string;
805
808
  dominantBaseline?: string;
806
809
  opacity?: number;
807
810
  /** Optional SVG transform (e.g. `rotate(-90, x, y)` for a vertical axis title). */
@@ -919,7 +922,7 @@ interface ScatterDot {
919
922
  cx: number;
920
923
  cy: number;
921
924
  }
922
- declare function computeScatterDots(values: ReadonlyArray<number>, maxXIndex: number, layout: PlotLayout, range: ValueRange): ScatterDot[];
925
+ declare function computeScatterDots(values: ReadonlyArray<number>, maxXIndex: number, layout: PlotLayout, range: ValueRange, xValues?: ReadonlyArray<number>): ScatterDot[];
923
926
  /**
924
927
  * Radius of a bubble given its size value, the max size in the chart, and a
925
928
  * median radius derived from the plot area. Mirrors `renderBubbleChart` in
@@ -942,6 +945,9 @@ declare function resolveChartKind(chartType: string): SupportedChartKind | 'unsu
942
945
  declare function buildChartViewModel(element: PptxElement): ChartViewModel;
943
946
  declare function buildFallbackViewModel(width: number, height: number, label: string): ChartViewModel;
944
947
 
948
+ /** Build a bar + line combo chart, including independently scaled secondary series. */
949
+ declare function buildComboViewModel(element: PptxElement, chartData: PptxChartData, categoryLabels: ReadonlyArray<string>): ChartViewModel;
950
+
945
951
  /**
946
952
  * View-model builders for combo and stock chart kinds.
947
953
  *
@@ -967,23 +973,6 @@ declare function buildFallbackViewModel(width: number, height: number, label: st
967
973
  * @module chart-combo-stock
968
974
  */
969
975
 
970
- /**
971
- * Build a `ChartViewModel` for a combo chart (bar + line overlay).
972
- *
973
- * Convention (mirrors the React renderer):
974
- * - `chartData.series[0]` → rendered as clustered bar columns
975
- * - `chartData.series[1…N]` → rendered as line series with dot markers
976
- *
977
- * A single shared value-axis range is computed across ALL series so that the
978
- * bar and line series share the same Y scale. The category-axis tick style is
979
- * "bar" (evenly spaced groups with no extra edge padding).
980
- *
981
- * @param element - The chart element providing width/height.
982
- * @param chartData - Parsed chart data including series and style.
983
- * @param categoryLabels - Ordered category axis labels.
984
- * @returns A fully assembled `ChartViewModel` ready for the template.
985
- */
986
- declare function buildComboViewModel(element: PptxElement, chartData: PptxChartData, categoryLabels: ReadonlyArray<string>): ChartViewModel;
987
976
  /**
988
977
  * Build a `ChartViewModel` for a stock (HLC / OHLC) candlestick chart.
989
978
  *
@@ -1092,6 +1081,19 @@ declare function normalizeValue(value: number, min: number, max: number): number
1092
1081
  */
1093
1082
  declare function buildRegionMapViewModel(element: PptxElement, chartData: PptxChartData, categoryLabels: ReadonlyArray<string>): ChartViewModel;
1094
1083
 
1084
+ interface ErrorBarRenderOptions {
1085
+ /** Source point indexes in display order after category/date-axis filtering. */
1086
+ sourceIndices?: ReadonlyArray<number>;
1087
+ /** Exact display X positions for reordered category/date points. */
1088
+ xPositions?: ReadonlyArray<number>;
1089
+ /** Per-series Y ranges, used by secondary-axis combo series. */
1090
+ seriesRanges?: ReadonlyArray<ValueRange | undefined>;
1091
+ /** Per-series category mapping mode for mixed bar/line charts. */
1092
+ seriesModes?: ReadonlyArray<'line' | 'bar' | undefined>;
1093
+ }
1094
+ /** Build X- and Y-direction ChartML error-bar primitives for cartesian series. */
1095
+ declare function computeErrorBarPrimitives(chartData: PptxChartData, catCount: number, layout: PlotLayout, range: ValueRange, mode?: 'line' | 'bar', options?: ErrorBarRenderOptions): SvgPrimitive[];
1096
+
1095
1097
  /**
1096
1098
  * chart-overlays.ts — chart overlay depth for Angular pptx-angular-viewer.
1097
1099
  *
@@ -1152,21 +1154,6 @@ declare function computeRSquared(xVals: number[], yVals: number[], evalFn: (x: n
1152
1154
  * @param colorPalette Optional resolved palette (same as passed to `seriesColor`).
1153
1155
  */
1154
1156
  declare function computeTrendlinePrimitives(chartData: PptxChartData, catCount: number, layout: PlotLayout, range: ValueRange, mode?: 'line' | 'bar', colorPalette?: readonly string[]): SvgPrimitive[];
1155
- /**
1156
- * Build `SvgPrimitive[]` for all Y-direction error bars in `chartData`.
1157
- * Produces stem + cap `SvgLine` pairs for each data point.
1158
- * X-direction error bars are intentionally skipped (not supported in PPTX
1159
- * bar/line charts displayed here).
1160
- *
1161
- * Mirrors `renderErrorBars` in chart-overlay-lines.tsx (React).
1162
- *
1163
- * @param chartData Full parsed chart data.
1164
- * @param catCount Number of categories.
1165
- * @param layout Plot-area bounding box.
1166
- * @param range Value-axis range.
1167
- * @param mode `'bar'` or `'line'` — controls x-pixel mapping.
1168
- */
1169
- declare function computeErrorBarPrimitives(chartData: PptxChartData, catCount: number, layout: PlotLayout, range: ValueRange, mode?: 'line' | 'bar'): SvgPrimitive[];
1170
1157
  /**
1171
1158
  * Build `SvgText[]` for the X and Y axis titles.
1172
1159
  *
@@ -1671,8 +1658,6 @@ declare function ungroupElements(elements: readonly PptxElement[], groupId: stri
1671
1658
  * framework's CSS type).
1672
1659
  *
1673
1660
  * Precedence (highest first): image fill -> gradient -> pattern -> solid colour.
1674
- * Pattern fills currently approximate to their background colour (the SVG
1675
- * pattern preset renderer is a separate concern).
1676
1661
  */
1677
1662
 
1678
1663
  /** Default slide stage colour when a slide carries no usable background. */
@@ -1956,6 +1941,35 @@ declare class EditorHistory<T> {
1956
1941
  clear(): void;
1957
1942
  }
1958
1943
 
1944
+ /**
1945
+ * section-operations: Pure array-transformation functions for slide sections.
1946
+ *
1947
+ * Framework-agnostic (no framework imports). Each transform takes the current
1948
+ * `sections` and `slides` arrays and returns a NEW `{ sections, slides }` pair;
1949
+ * the inputs are never mutated. The React `useSectionOperations` hook and the
1950
+ * Vue `useSectionOperations` composable both wire their reactive state through
1951
+ * these transforms so the immutable section algorithms live in one place.
1952
+ *
1953
+ * Section ids are OOXML GUID-like strings. `addSection` generates one via the
1954
+ * supplied `idGenerator` (default {@link generateSectionId}), keeping the
1955
+ * transform overridable yet self-contained, matching the neighbouring shared
1956
+ * editor modules.
1957
+ */
1958
+
1959
+ /** Minimum section metadata needed to build sidebar groups. */
1960
+ interface SectionGroupDescriptor {
1961
+ id: string;
1962
+ name: string;
1963
+ collapsed?: boolean;
1964
+ color?: string;
1965
+ }
1966
+ /** A declared section paired with its slides, or the trailing ungrouped slides. */
1967
+ interface SectionSlideGroup<TSection extends SectionGroupDescriptor = PptxSection> {
1968
+ section: TSection | undefined;
1969
+ slides: PptxSlide[];
1970
+ slideIndexes: number[];
1971
+ }
1972
+
1959
1973
  /**
1960
1974
  * ole-actions.ts - framework-agnostic helpers for the OLE download/open UI.
1961
1975
  *
@@ -2122,6 +2136,15 @@ interface ParagraphBulletResult {
2122
2136
  fontFamily?: string;
2123
2137
  sizePts?: number;
2124
2138
  sizePercent?: number;
2139
+ picture?: PictureBulletMarker;
2140
+ }
2141
+ /** Framework-neutral picture-bullet source, sizing, and accessible fallback. */
2142
+ interface PictureBulletMarker {
2143
+ src?: string;
2144
+ sizePx: number;
2145
+ fallbackMarker: string;
2146
+ accessibleLabel: string;
2147
+ imageRelId?: string;
2125
2148
  }
2126
2149
  /**
2127
2150
  * Resolve the bullet marker for the first segment of a paragraph.
@@ -2132,7 +2155,7 @@ interface ParagraphBulletResult {
2132
2155
  * bullets the 1-based sequence index is `autoNumStartAt` (default 1) plus the
2133
2156
  * 0-based `paragraphIndex`.
2134
2157
  */
2135
- declare function resolveParagraphBullet(firstSegment: TextSegment | undefined): ParagraphBulletResult | undefined;
2158
+ declare function resolveParagraphBullet(firstSegment: TextSegment | undefined, baseFontSize?: number): ParagraphBulletResult | undefined;
2136
2159
  /**
2137
2160
  * Return the left-indent in pixels for the given 0-based list nesting level
2138
2161
  * (OOXML `a:p/@lvl`). `undefined`/negative is treated as level 0. Used as a
@@ -3835,6 +3858,35 @@ interface InsertChartTypeOption {
3835
3858
  label: string;
3836
3859
  }
3837
3860
 
3861
+ type MediaTrimHandle = 'start' | 'end';
3862
+ interface MediaTimelineGeometry {
3863
+ startPercent: number;
3864
+ endPercent: number;
3865
+ playheadPercent: number;
3866
+ }
3867
+ interface MediaTrimRange {
3868
+ trimStartMs: number;
3869
+ trimEndMs: number;
3870
+ }
3871
+
3872
+ interface SummaryZoomTileView {
3873
+ key: string;
3874
+ sectionId: string;
3875
+ targetSlideIndex: number;
3876
+ label: string;
3877
+ slideLabel: string;
3878
+ imageSrc?: string;
3879
+ backgroundColor: string;
3880
+ style: Record<string, string>;
3881
+ ariaLabel: string;
3882
+ }
3883
+ interface SummaryZoomView {
3884
+ layout: 'grid' | 'fixed';
3885
+ containerStyle: Record<string, string>;
3886
+ tiles: SummaryZoomTileView[];
3887
+ ariaLabel: string;
3888
+ }
3889
+
3838
3890
  /**
3839
3891
  * Command-search data for the PowerPoint-style "Tell me what you want to do"
3840
3892
  * search bar. Provides searchable command entries grouped by category, each
@@ -3852,6 +3904,113 @@ interface CommandSearchEntry {
3852
3904
  category: 'format' | 'insert' | 'view' | 'slideShow' | 'design' | 'arrange';
3853
3905
  }
3854
3906
 
3907
+ type BackstagePage = 'home' | 'new' | 'open' | 'info' | 'save' | 'saveAs' | 'print' | 'share' | 'export' | 'close' | 'account' | 'options';
3908
+ interface BackstageRecentFile {
3909
+ key: string;
3910
+ name: string;
3911
+ location: string;
3912
+ timestamp: number;
3913
+ size: number;
3914
+ }
3915
+ interface BackstageTemplate {
3916
+ id: string;
3917
+ name: string;
3918
+ description: string;
3919
+ preview: string;
3920
+ }
3921
+ declare function formatBackstageDate(timestamp: number, now?: number): string;
3922
+ declare function formatBackstageSize(bytes: number): string;
3923
+
3924
+ /** Framework-neutral virtual-list range used by every thumbnail sidebar. */
3925
+ interface VirtualizedRange {
3926
+ startIndex: number;
3927
+ endIndex: number;
3928
+ totalHeight: number;
3929
+ offsetY: number;
3930
+ visibleRange: {
3931
+ start: number;
3932
+ end: number;
3933
+ };
3934
+ }
3935
+
3936
+ /** Framework-neutral viewer preferences surfaced by Settings dialogs. */
3937
+ interface ViewerPreferences {
3938
+ autoSave: boolean;
3939
+ spellCheck: boolean;
3940
+ showGrid: boolean;
3941
+ showRulers: boolean;
3942
+ snapToGrid: boolean;
3943
+ reducedMotion: boolean;
3944
+ }
3945
+ type ViewerSettings = ViewerPreferences;
3946
+ interface ShortcutReferenceItem {
3947
+ actionKey: string;
3948
+ shortcut: string;
3949
+ }
3950
+ declare const SHORTCUT_REFERENCE_ITEMS: readonly ShortcutReferenceItem[];
3951
+ interface ViewerPreferenceToggle {
3952
+ key: keyof ViewerPreferences;
3953
+ labelKey: string;
3954
+ }
3955
+
3956
+ interface SpeechAlternative {
3957
+ readonly transcript: string;
3958
+ readonly confidence: number;
3959
+ }
3960
+ interface SpeechResult {
3961
+ readonly isFinal: boolean;
3962
+ readonly length: number;
3963
+ readonly [index: number]: SpeechAlternative;
3964
+ }
3965
+ interface SpeechResultList {
3966
+ readonly length: number;
3967
+ readonly [index: number]: SpeechResult;
3968
+ }
3969
+ interface SpeechRecognitionEventLite {
3970
+ readonly resultIndex: number;
3971
+ readonly results: SpeechResultList;
3972
+ }
3973
+ interface SpeechRecognitionLite extends EventTarget {
3974
+ continuous: boolean;
3975
+ interimResults: boolean;
3976
+ lang: string;
3977
+ onresult: ((event: SpeechRecognitionEventLite) => void) | null;
3978
+ onerror: ((event: Event) => void) | null;
3979
+ onend: (() => void) | null;
3980
+ start(): void;
3981
+ stop(): void;
3982
+ }
3983
+ type SpeechRecognitionCtor = new () => SpeechRecognitionLite;
3984
+ type SpeechSupportState = 'unknown' | 'supported' | 'unsupported';
3985
+ declare function mergeCaptionResults(resultIndex: number, results: SpeechResultList): string;
3986
+ declare function getSpeechRecognitionCtor(): SpeechRecognitionCtor | null;
3987
+ declare function captionDisplayText(supportState: SpeechSupportState, captionText: string, fallbackNotSupported: string, fallbackListening: string): string;
3988
+
3989
+ /**
3990
+ * Toolbar action / ribbon-tab visibility: a single, framework-agnostic
3991
+ * catalogue of every top-level toolbar button and ribbon tab a host app can
3992
+ * independently hide. Each binding exposes a `hiddenActions?: ToolbarActionId[]`
3993
+ * prop, threads it down to the relevant render sites, and gates them with
3994
+ * `isActionHidden`. Default (`undefined` / `[]`) hides nothing, matching
3995
+ * today's always-visible behaviour.
3996
+ *
3997
+ * `TOOLBAR_TABS` is also the canonical ribbon-tab list/order, replacing the
3998
+ * copy hand-duplicated in each binding (React's `TOOLBAR_SECTIONS`, Vue's
3999
+ * `ribbon-constants.ts`, Angular's `RIBBON_TABS`, etc.) so the tab set can't
4000
+ * drift between bindings. Per-tab icons stay in each binding (icon libraries
4001
+ * differ per framework); only id + i18n key + order are shared here.
4002
+ */
4003
+ /**
4004
+ * A single toolbar button/control that can be hidden independently of the
4005
+ * ribbon tab it may also appear inside. `zoom` and `navigation` each cover a
4006
+ * whole control cluster (zoom in/out/fit, prev/next) rather than each button
4007
+ * in it, matching how hosts actually want to hide/keep them as a unit.
4008
+ */
4009
+ type ToolbarButtonId = 'share' | 'broadcast' | 'export' | 'undo' | 'redo' | 'record' | 'notes' | 'fullscreen' | 'zoom' | 'navigation';
4010
+ /** A top-level ribbon tab. `record` intentionally shares its id with the quick-access Record button above: both surface the same recording feature, so hiding one hides the other. */
4011
+ type ToolbarTabId = 'file' | 'home' | 'insert' | 'draw' | 'design' | 'transitions' | 'animations' | 'slideShow' | 'record' | 'review' | 'view' | 'help';
4012
+ type ToolbarActionId = ToolbarButtonId | ToolbarTabId;
4013
+
3855
4014
  /**
3856
4015
  * Minimal GIF89a encoder (pure JS, no external dependency) plus pure
3857
4016
  * frame-planning helpers — shared by the React, Vue, and Angular bindings.
@@ -4405,7 +4564,17 @@ declare class CollaborationService {
4405
4564
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<CollaborationService>;
4406
4565
  }
4407
4566
 
4567
+ interface EditorSectionOperations {
4568
+ add(afterSlideIndex: number, name: string): void;
4569
+ rename(sectionId: string, name: string): void;
4570
+ delete(sectionId: string): void;
4571
+ move(sectionId: string, direction: 'up' | 'down'): void;
4572
+ moveSlides(slideIndexes: number[], targetSectionId: string): void;
4573
+ toggle(sectionId: string): void;
4574
+ }
4575
+
4408
4576
  declare class EditorStateService {
4577
+ private readonly loader;
4409
4578
  /**
4410
4579
  * Optional: `inject()` requires an active Angular injection context, which
4411
4580
  * plain `new EditorStateService()` calls (used throughout this service's
@@ -4422,6 +4591,10 @@ declare class EditorStateService {
4422
4591
  private t;
4423
4592
  /** The editable slide deck (a clone of the loaded presentation). */
4424
4593
  readonly slides: _angular_core.WritableSignal<readonly PptxSlide[]>;
4594
+ readonly sections: _angular_core.WritableSignal<readonly PptxSection[]>;
4595
+ readonly headerFooter: _angular_core.WritableSignal<PptxHeaderFooter>;
4596
+ readonly sectionGroups: _angular_core.Signal<SectionSlideGroup<PptxSection>[]>;
4597
+ readonly sectionOps: EditorSectionOperations;
4425
4598
  /** Ids of the currently selected elements (on the active slide). */
4426
4599
  readonly selectedIds: _angular_core.WritableSignal<readonly string[]>;
4427
4600
  /** Whether the deck has unsaved edits. */
@@ -4455,7 +4628,7 @@ declare class EditorStateService {
4455
4628
  * elements move into {@link templateElementsBySlideId}, rendered as a separate
4456
4629
  * layer and re-merged on save.
4457
4630
  */
4458
- setSlides(slides: readonly PptxSlide[]): void;
4631
+ setSlides(slides: readonly PptxSlide[], sections?: readonly PptxSection[], headerFooter?: PptxHeaderFooter): void;
4459
4632
  /** Current editable (template-free) slides as a fresh (cloned) array. */
4460
4633
  snapshot(): readonly PptxSlide[];
4461
4634
  /**
@@ -4475,6 +4648,8 @@ declare class EditorStateService {
4475
4648
  private captureSnapshot;
4476
4649
  /** Restore both the deck and the template store from a snapshot. */
4477
4650
  private restoreSnapshot;
4651
+ /** Replace presentation-level header/footer settings as one undoable edit. */
4652
+ updateHeaderFooter(next: PptxHeaderFooter): void;
4478
4653
  /** The template (master/layout) elements separated out of a slide, by id. */
4479
4654
  private templatesForSlide;
4480
4655
  /** Replace a slide's template-element list (drops the entry when empty). */
@@ -4545,6 +4720,8 @@ declare class EditorStateService {
4545
4720
  duplicateSlide(index: number): void;
4546
4721
  /** Reorder a slide from `from` to `to` (records history). */
4547
4722
  moveSlide(from: number, to: number): void;
4723
+ addSection(afterSlideIndex: number): void;
4724
+ private commitSections;
4548
4725
  private renumber;
4549
4726
  private zOrder;
4550
4727
  private commit;
@@ -4696,6 +4873,10 @@ declare class LoadContentService {
4696
4873
  readonly notesMaster: _angular_core.WritableSignal<PptxNotesMaster | undefined>;
4697
4874
  /** Handout master, including its editable element tree. */
4698
4875
  readonly handoutMaster: _angular_core.WritableSignal<PptxHandoutMaster | undefined>;
4876
+ readonly sections: _angular_core.WritableSignal<PptxSection[]>;
4877
+ readonly presentationProperties: _angular_core.WritableSignal<PptxPresentationProperties>;
4878
+ /** Whether the loaded package contains a VBA project. */
4879
+ readonly hasMacros: _angular_core.WritableSignal<boolean>;
4699
4880
  /** Archive-path → displayable URL map for media + poster frames. */
4700
4881
  readonly mediaDataUrls: _angular_core.WritableSignal<Map<string, string>>;
4701
4882
  /** Embedded font data (name + binary) extracted from the presentation. */
@@ -4730,7 +4911,7 @@ declare class LoadContentService {
4730
4911
  * Serialise an explicit set of slides back to `.pptx` bytes (e.g. the
4731
4912
  * editor's edited deck) using the loaded presentation's handler.
4732
4913
  */
4733
- saveSlides(slides: readonly PptxSlide[]): Promise<Uint8Array>;
4914
+ saveSlides(slides: readonly PptxSlide[], outputFormat?: PptxSaveFormat, sections?: readonly PptxSection[]): Promise<Uint8Array>;
4734
4915
  /** Parse the supplied `.pptx` bytes into the reactive signals. */
4735
4916
  load(raw: Uint8Array | ArrayBuffer | null | undefined): Promise<void>;
4736
4917
  private disposeHandler;
@@ -4853,13 +5034,16 @@ declare class PrintService {
4853
5034
  * 2. Build the printable HTML (capturing slides as needed).
4854
5035
  * 3. Open a print window and trigger `window.print()`.
4855
5036
  *
4856
- * The outline path needs no rasterisation. All other modes call
4857
- * `captureSlide` once per slide (sequentially) and skip slides that fail.
5037
+ * Outline and full-page slides need no rasterisation. Notes and handouts
5038
+ * call `captureSlide` sequentially and skip slides that fail.
4858
5039
  *
4859
5040
  * @returns `true` if a print window was opened, `false` if blocked (popup
4860
5041
  * blocker) or there was nothing to print.
4861
5042
  */
4862
- print(rawSettings: PrintSettings, slides: PptxSlide[], activeSlideIndex: number, captureSlide: CaptureSlideFn): Promise<boolean>;
5043
+ print(rawSettings: PrintSettings, slides: PptxSlide[], activeSlideIndex: number, captureSlide: CaptureSlideFn, slideSize?: Readonly<{
5044
+ width: number;
5045
+ height: number;
5046
+ }>): Promise<boolean>;
4863
5047
  /**
4864
5048
  * Open a print window, write the document, focus, and trigger printing.
4865
5049
  * Returns `false` if the popup was blocked.
@@ -5544,6 +5728,10 @@ declare class ViewerDialogsService {
5544
5728
  readonly showVersionHistory: _angular_core.WritableSignal<boolean>;
5545
5729
  /** Keyboard-shortcuts help overlay visibility. */
5546
5730
  readonly showShortcuts: _angular_core.WritableSignal<boolean>;
5731
+ /** Viewer/editor preferences dialog visibility. */
5732
+ readonly showSettings: _angular_core.WritableSignal<boolean>;
5733
+ /** Presentation header/footer editor visibility. */
5734
+ readonly showHeaderFooter: _angular_core.WritableSignal<boolean>;
5547
5735
  /** Keep-annotations dialog visibility. */
5548
5736
  readonly showKeepAnnotations: _angular_core.WritableSignal<boolean>;
5549
5737
  /** Total ink annotation stroke count carried into the prompt. */
@@ -5625,6 +5813,8 @@ declare class ViewerExportService {
5625
5813
  private requireHost;
5626
5814
  /** Export the current slide as a PNG download. */
5627
5815
  exportPng(): Promise<void>;
5816
+ /** Copy the current slide to the system clipboard as a PNG image. */
5817
+ copySlideAsImage(): Promise<void>;
5628
5818
  /**
5629
5819
  * Export every slide to a multi-page PDF. Each slide is made the live stage,
5630
5820
  * given a render tick to settle, captured to a canvas, then the original
@@ -5635,16 +5825,13 @@ declare class ViewerExportService {
5635
5825
  exportGif(): Promise<void>;
5636
5826
  /** Export every slide as a WebM video (3s per slide) via MediaRecorder. */
5637
5827
  exportVideo(): Promise<void>;
5638
- /** Run a print job for the chosen settings, rasterising each slide off the live stage. */
5639
5828
  onPrint(settings: PrintSettings): Promise<void>;
5640
- /** User pressed Cancel: abort the loop and close the modal. */
5641
5829
  onCancelExport(): void;
5642
5830
  /**
5643
5831
  * Open the progress modal and arm a fresh `AbortController` for an export.
5644
5832
  * Returns the controller whose `signal` the capture loop checks per slide.
5645
5833
  */
5646
5834
  private beginExport;
5647
- /** Tear down the progress modal + export-in-flight state. */
5648
5835
  private endExport;
5649
5836
  /**
5650
5837
  * Render every slide to a canvas (each made the live stage in turn), reporting
@@ -5663,6 +5850,7 @@ interface FileIOHost {
5663
5850
  readonly content: () => Uint8Array | ArrayBuffer | null;
5664
5851
  readonly onOpenFile: () => (() => void) | undefined;
5665
5852
  readonly slides: () => readonly PptxSlide[];
5853
+ readonly sections: () => readonly PptxSection[];
5666
5854
  readonly templateElementsBySlideId: () => TemplateElementsBySlideId;
5667
5855
  readonly emitContentChange: (bytes: Uint8Array) => void;
5668
5856
  }
@@ -5693,7 +5881,12 @@ declare class ViewerFileIOService {
5693
5881
  * Surfaced on the mobile toolbar so saving is reachable without the desktop
5694
5882
  * ribbon's File tab.
5695
5883
  */
5884
+ saveAs(format: PptxSaveFormat): Promise<void>;
5696
5885
  saveAsPptx(): Promise<void>;
5886
+ saveAsPpsx(): Promise<void>;
5887
+ saveAsPptm(): Promise<void>;
5888
+ /** Bundle the presentation and its usage notes in a shareable ZIP archive. */
5889
+ packageForSharing(): Promise<void>;
5697
5890
  /**
5698
5891
  * File ▸ Open: host override (`onOpenFile` input) takes precedence; otherwise
5699
5892
  * a built-in native picker loads the chosen presentation in place.
@@ -6004,6 +6197,8 @@ declare class ViewerPresentationModeService {
6004
6197
  readonly rehearsalStartedAt: _angular_core.WritableSignal<number | null>;
6005
6198
  readonly slideStartedAt: _angular_core.WritableSignal<number | null>;
6006
6199
  readonly recordedTimings: _angular_core.WritableSignal<Record<number, number>>;
6200
+ /** Live subtitle preference shared by the ribbon and presentation overlay. */
6201
+ readonly subtitlesVisible: _angular_core.WritableSignal<boolean>;
6007
6202
  private pauseStartedAt;
6008
6203
  private pausedOnSlideMs;
6009
6204
  private host;
@@ -6016,7 +6211,12 @@ declare class ViewerPresentationModeService {
6016
6211
  * mounts as a result of `presenting` flipping true.
6017
6212
  */
6018
6213
  present(): void;
6019
- startRehearsal(): void;
6214
+ presentFromBeginning(): void;
6215
+ presentFromCurrent(): void;
6216
+ toggleSubtitles(): void;
6217
+ startRehearsalFromBeginning(): void;
6218
+ startRehearsalFromCurrent(): void;
6219
+ private startRehearsal;
6020
6220
  /**
6021
6221
  * Map a presentation-overlay index back to the full-deck `activeSlideIndex`.
6022
6222
  * The overlay's index is relative to the (possibly custom-show-filtered)
@@ -6062,6 +6262,7 @@ declare class ViewerThemeGalleryService {
6062
6262
  * baseline.
6063
6263
  */
6064
6264
  applyThemePreset(preset: PptxThemePreset): void;
6265
+ applyCustomTheme(colorScheme: PptxThemeColorScheme, fontScheme: PptxThemeFontScheme, name: string): void;
6065
6266
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ViewerThemeGalleryService, never>;
6066
6267
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<ViewerThemeGalleryService>;
6067
6268
  }
@@ -6150,6 +6351,12 @@ declare class PowerPointViewerComponent {
6150
6351
  * back to the SVG SmartArt renderer. Default `false`.
6151
6352
  */
6152
6353
  readonly smartArt3D: _angular_core.InputSignal<boolean>;
6354
+ /**
6355
+ * Toolbar buttons and ribbon tabs the host wants hidden (share, broadcast,
6356
+ * export, undo, redo, record, notes, fullscreen, zoom, navigation, or any
6357
+ * ribbon tab id). Default `[]` hides nothing, matching prior behaviour.
6358
+ */
6359
+ readonly hiddenActions: _angular_core.InputSignal<ToolbarActionId[]>;
6153
6360
  /** Fired when the active slide changes. */
6154
6361
  readonly activeSlideChange: _angular_core.OutputEmitterRef<number>;
6155
6362
  /** Fired when the unsaved-changes flag toggles. */
@@ -6261,6 +6468,19 @@ declare class PowerPointViewerComponent {
6261
6468
  protected readonly showGuides: _angular_core.WritableSignal<boolean>;
6262
6469
  /** Whether snap-to-grid is active on the editor canvas. */
6263
6470
  protected readonly snapToGrid: _angular_core.WritableSignal<boolean>;
6471
+ /** Whether elements snap to nearby element edges and centres. */
6472
+ protected readonly snapToShape: _angular_core.WritableSignal<boolean>;
6473
+ /** Monotonic command consumed by the active canvas to add a ruler guide. */
6474
+ protected readonly guideCommand: _angular_core.WritableSignal<{
6475
+ id: number;
6476
+ axis: "x" | "y";
6477
+ } | null>;
6478
+ /** Whether browser spell-check is active in the inline text editor. */
6479
+ protected readonly spellCheck: _angular_core.WritableSignal<boolean>;
6480
+ /** User override that suppresses viewer animations and transitions. */
6481
+ protected readonly reducedMotion: _angular_core.WritableSignal<boolean>;
6482
+ /** Snapshot consumed by the settings dialog. */
6483
+ protected readonly viewerSettings: _angular_core.Signal<ViewerPreferences>;
6264
6484
  /** Whether the Insert SmartArt gallery dialog is open. */
6265
6485
  protected readonly showSmartArtInsert: _angular_core.WritableSignal<boolean>;
6266
6486
  /**
@@ -6287,6 +6507,8 @@ declare class PowerPointViewerComponent {
6287
6507
  protected updateHandoutMaster(master: PptxHandoutMaster): void;
6288
6508
  goTo(index: number): void;
6289
6509
  goPrev(): void;
6510
+ protected onCreatePresentation(templateId: string): void;
6511
+ protected onOpenRecentFile(key: string): void;
6290
6512
  goNext(): void;
6291
6513
  /** Undo the last editing action. No-op when nothing to undo. */
6292
6514
  undo(): void;
@@ -6368,8 +6590,11 @@ declare class PowerPointViewerComponent {
6368
6590
  private serializeForAutosave;
6369
6591
  /** Review ▸ Compare: pick a `.pptx` and diff it against the current deck. */
6370
6592
  protected onOpenCompare(): void;
6593
+ protected addGuide(axis: 'x' | 'y'): void;
6371
6594
  /** Swap the deck for a restored version-history snapshot. */
6372
6595
  protected onRestoreVersion(bytes: Uint8Array): void;
6596
+ /** Apply Settings dialog changes to the live editor state. */
6597
+ protected onSettingsChange(settings: ViewerSettings): void;
6373
6598
  /**
6374
6599
  * Mobile "Format" slot: surface the inspector for the current selection. The
6375
6600
  * inspector renders inline (below the canvas) whenever an element is selected
@@ -6405,7 +6630,7 @@ declare class PowerPointViewerComponent {
6405
6630
  /** Resolve the live slide-stage element within `<main>`. */
6406
6631
  private stageElement;
6407
6632
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<PowerPointViewerComponent, never>;
6408
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<PowerPointViewerComponent, "pptx-viewer", never, { "content": { "alias": "content"; "required": false; "isSignal": true; }; "fontsInput": { "alias": "fonts"; "required": false; "isSignal": true; }; "canEdit": { "alias": "canEdit"; "required": false; "isSignal": true; }; "class": { "alias": "class"; "required": false; "isSignal": true; }; "theme": { "alias": "theme"; "required": false; "isSignal": true; }; "filePath": { "alias": "filePath"; "required": false; "isSignal": true; }; "fileName": { "alias": "fileName"; "required": false; "isSignal": true; }; "collaboration": { "alias": "collaboration"; "required": false; "isSignal": true; }; "authorName": { "alias": "authorName"; "required": false; "isSignal": true; }; "shareDefaults": { "alias": "shareDefaults"; "required": false; "isSignal": true; }; "onOpenFile": { "alias": "onOpenFile"; "required": false; "isSignal": true; }; "smartArt3D": { "alias": "smartArt3D"; "required": false; "isSignal": true; }; }, { "activeSlideChange": "activeSlideChange"; "dirtyChange": "dirtyChange"; "contentChange": "contentChange"; "propertiesChange": "propertiesChange"; "modeChange": "modeChange"; "zoomChange": "zoomChange"; "selectionChange": "selectionChange"; "slideCountChange": "slideCountChange"; "startCollaboration": "startCollaboration"; "stopCollaboration": "stopCollaboration"; }, never, never, true, never>;
6633
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<PowerPointViewerComponent, "pptx-viewer", never, { "content": { "alias": "content"; "required": false; "isSignal": true; }; "fontsInput": { "alias": "fonts"; "required": false; "isSignal": true; }; "canEdit": { "alias": "canEdit"; "required": false; "isSignal": true; }; "class": { "alias": "class"; "required": false; "isSignal": true; }; "theme": { "alias": "theme"; "required": false; "isSignal": true; }; "filePath": { "alias": "filePath"; "required": false; "isSignal": true; }; "fileName": { "alias": "fileName"; "required": false; "isSignal": true; }; "collaboration": { "alias": "collaboration"; "required": false; "isSignal": true; }; "authorName": { "alias": "authorName"; "required": false; "isSignal": true; }; "shareDefaults": { "alias": "shareDefaults"; "required": false; "isSignal": true; }; "onOpenFile": { "alias": "onOpenFile"; "required": false; "isSignal": true; }; "smartArt3D": { "alias": "smartArt3D"; "required": false; "isSignal": true; }; "hiddenActions": { "alias": "hiddenActions"; "required": false; "isSignal": true; }; }, { "activeSlideChange": "activeSlideChange"; "dirtyChange": "dirtyChange"; "contentChange": "contentChange"; "propertiesChange": "propertiesChange"; "modeChange": "modeChange"; "zoomChange": "zoomChange"; "selectionChange": "selectionChange"; "slideCountChange": "slideCountChange"; "startCollaboration": "startCollaboration"; "stopCollaboration": "stopCollaboration"; }, never, never, true, never>;
6409
6634
  }
6410
6635
 
6411
6636
  /** The eight resize-handle positions around a selection box. */
@@ -6495,6 +6720,8 @@ declare class RulerGuidesService {
6495
6720
  private requireHost;
6496
6721
  /** True while an existing or just-created guide is being dragged. */
6497
6722
  isDragging(): boolean;
6723
+ /** Add a centered guide from the View ribbon without starting a drag gesture. */
6724
+ addGuide(axis: RulerGuide['axis']): void;
6498
6725
  /** Begin dragging an existing guide. Called from the guide handle pointerdown. */
6499
6726
  onGuidePointerDown(event: PointerEvent, id: string, axis: RulerGuide['axis']): void;
6500
6727
  /** Remove a guide (called on guide handle double-click). */
@@ -6591,6 +6818,15 @@ declare class SlideCanvasComponent implements SlideContext {
6591
6818
  * Combines with edge-alignment snapping.
6592
6819
  */
6593
6820
  readonly snapToGrid: _angular_core.InputSignal<boolean>;
6821
+ /** Whether moving elements snap to other element edges and centres. */
6822
+ readonly snapToShape: _angular_core.InputSignal<boolean>;
6823
+ /** Imperative toolbar request to add a centered user guide. */
6824
+ readonly guideCommand: _angular_core.InputSignal<{
6825
+ id: number;
6826
+ axis: "x" | "y";
6827
+ } | null>;
6828
+ /** Whether the inline text editor uses the browser spell checker. */
6829
+ readonly spellCheck: _angular_core.InputSignal<boolean>;
6594
6830
  /**
6595
6831
  * When true, snap elements to user-created ruler guides during move.
6596
6832
  */
@@ -6733,6 +6969,7 @@ declare class SlideCanvasComponent implements SlideContext {
6733
6969
  private seededEditId;
6734
6970
  /** Last-tap timestamp + element id, for synthetic double-tap detection on touch. */
6735
6971
  private lastTap;
6972
+ private lastGuideCommandId;
6736
6973
  constructor();
6737
6974
  readonly elements: _angular_core.Signal<PptxElement[]>;
6738
6975
  /**
@@ -6846,32 +7083,8 @@ declare class SlideCanvasComponent implements SlideContext {
6846
7083
  readonly vRulerTicks: _angular_core.Signal<readonly RulerTick[]>;
6847
7084
  readonly stageStyle: _angular_core.Signal<StyleMap>;
6848
7085
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SlideCanvasComponent, never>;
6849
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<SlideCanvasComponent, "pptx-slide-canvas", never, { "slide": { "alias": "slide"; "required": false; "isSignal": true; }; "canvasSize": { "alias": "canvasSize"; "required": true; "isSignal": true; }; "mediaDataUrls": { "alias": "mediaDataUrls"; "required": false; "isSignal": true; }; "zoom": { "alias": "zoom"; "required": false; "isSignal": true; }; "editable": { "alias": "editable"; "required": false; "isSignal": true; }; "showGrid": { "alias": "showGrid"; "required": false; "isSignal": true; }; "showRulers": { "alias": "showRulers"; "required": false; "isSignal": true; }; "showGuides": { "alias": "showGuides"; "required": false; "isSignal": true; }; "snapToGrid": { "alias": "snapToGrid"; "required": false; "isSignal": true; }; "snapToGuides": { "alias": "snapToGuides"; "required": false; "isSignal": true; }; "autoFit": { "alias": "autoFit"; "required": false; "isSignal": true; }; "interactive": { "alias": "interactive"; "required": false; "isSignal": true; }; "presenting": { "alias": "presenting"; "required": false; "isSignal": true; }; "selectedIds": { "alias": "selectedIds"; "required": false; "isSignal": true; }; "editingId": { "alias": "editingId"; "required": false; "isSignal": true; }; "editTemplateMode": { "alias": "editTemplateMode"; "required": false; "isSignal": true; }; "templateElements": { "alias": "templateElements"; "required": false; "isSignal": true; }; "drawTool": { "alias": "drawTool"; "required": false; "isSignal": true; }; "drawColor": { "alias": "drawColor"; "required": false; "isSignal": true; }; "drawWidth": { "alias": "drawWidth"; "required": false; "isSignal": true; }; }, { "elementSelect": "elementSelect"; "backgroundClick": "backgroundClick"; "transformStart": "transformStart"; "transformUpdate": "transformUpdate"; "contextMenu": "contextMenu"; "textEditStart": "textEditStart"; "textCommit": "textCommit"; "textCancel": "textCancel"; "textFormat": "textFormat"; "rotateUpdate": "rotateUpdate"; "marqueeSelect": "marqueeSelect"; "inkStrokeComplete": "inkStrokeComplete"; "eraserHit": "eraserHit"; "cellCommit": "cellCommit"; "tableChange": "tableChange"; }, never, never, true, never>;
6850
- }
6851
-
6852
- /**
6853
- * Pure (Angular-free) helpers for the `<a:clrChange>` colour-change image
6854
- * effect. Kept out of the component so they can be unit-tested without TestBed
6855
- * or a DOM, mirroring `model3d-renderer-helpers.ts`.
6856
- */
6857
- /** Parsed `<a:clrChange>` parameters needed to drive the chroma-key. */
6858
- interface ClrChangeParams {
6859
- clrFrom: string;
6860
- clrTo: string;
6861
- /** Whether the target colour becomes fully transparent (alpha = 0). */
6862
- clrToTransparent: boolean;
6863
- /** Match tolerance percentage (0-100). */
6864
- tolerance: number;
7086
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SlideCanvasComponent, "pptx-slide-canvas", never, { "slide": { "alias": "slide"; "required": false; "isSignal": true; }; "canvasSize": { "alias": "canvasSize"; "required": true; "isSignal": true; }; "mediaDataUrls": { "alias": "mediaDataUrls"; "required": false; "isSignal": true; }; "zoom": { "alias": "zoom"; "required": false; "isSignal": true; }; "editable": { "alias": "editable"; "required": false; "isSignal": true; }; "showGrid": { "alias": "showGrid"; "required": false; "isSignal": true; }; "showRulers": { "alias": "showRulers"; "required": false; "isSignal": true; }; "showGuides": { "alias": "showGuides"; "required": false; "isSignal": true; }; "snapToGrid": { "alias": "snapToGrid"; "required": false; "isSignal": true; }; "snapToShape": { "alias": "snapToShape"; "required": false; "isSignal": true; }; "guideCommand": { "alias": "guideCommand"; "required": false; "isSignal": true; }; "spellCheck": { "alias": "spellCheck"; "required": false; "isSignal": true; }; "snapToGuides": { "alias": "snapToGuides"; "required": false; "isSignal": true; }; "autoFit": { "alias": "autoFit"; "required": false; "isSignal": true; }; "interactive": { "alias": "interactive"; "required": false; "isSignal": true; }; "presenting": { "alias": "presenting"; "required": false; "isSignal": true; }; "selectedIds": { "alias": "selectedIds"; "required": false; "isSignal": true; }; "editingId": { "alias": "editingId"; "required": false; "isSignal": true; }; "editTemplateMode": { "alias": "editTemplateMode"; "required": false; "isSignal": true; }; "templateElements": { "alias": "templateElements"; "required": false; "isSignal": true; }; "drawTool": { "alias": "drawTool"; "required": false; "isSignal": true; }; "drawColor": { "alias": "drawColor"; "required": false; "isSignal": true; }; "drawWidth": { "alias": "drawWidth"; "required": false; "isSignal": true; }; }, { "elementSelect": "elementSelect"; "backgroundClick": "backgroundClick"; "transformStart": "transformStart"; "transformUpdate": "transformUpdate"; "contextMenu": "contextMenu"; "textEditStart": "textEditStart"; "textCommit": "textCommit"; "textCancel": "textCancel"; "textFormat": "textFormat"; "rotateUpdate": "rotateUpdate"; "marqueeSelect": "marqueeSelect"; "inkStrokeComplete": "inkStrokeComplete"; "eraserHit": "eraserHit"; "cellCommit": "cellCommit"; "tableChange": "tableChange"; }, never, never, true, never>;
6865
7087
  }
6866
- /**
6867
- * Extract the colour-change effect from an element, or `undefined` when the
6868
- * element carries no `imageEffects.clrChange` (or its `clrFrom` is empty).
6869
- *
6870
- * `clrFrom` is the source colour that must be present for the effect to do
6871
- * anything, so a blank `clrFrom` is treated as "no effect" (matching React,
6872
- * where the `clrChange` branch only fires when a valid effect object exists).
6873
- */
6874
- declare function getClrChangeParams(el: PptxElement): ClrChangeParams | undefined;
6875
7088
 
6876
7089
  /**
6877
7090
  * Text-warp (WordArt) descriptor resolver for the Angular viewer.
@@ -7002,6 +7215,8 @@ interface Paragraph {
7002
7215
  runs: TextRun[];
7003
7216
  /** Bullet / number marker text, when this paragraph is a list item. */
7004
7217
  bulletMarker?: string;
7218
+ /** Resolved picture marker, or metadata for its accessible glyph fallback. */
7219
+ bulletPicture?: PictureBulletMarker;
7005
7220
  /** `[ngStyle]` map for the bullet marker (colour / font). */
7006
7221
  bulletStyle: StyleMap;
7007
7222
  /** Left indent in px derived from the paragraph outline level. */
@@ -7095,14 +7310,6 @@ declare class ElementRendererComponent {
7095
7310
  readonly containerStyle: _angular_core.Signal<StyleMap>;
7096
7311
  readonly shapeContainerStyle: _angular_core.Signal<StyleMap>;
7097
7312
  readonly textStyle: _angular_core.Signal<StyleMap>;
7098
- readonly imageSrc: _angular_core.Signal<string | undefined>;
7099
- /**
7100
- * Parsed `<a:clrChange>` colour-change effect for this element, or
7101
- * `undefined` when it carries none. When present the image / media branch
7102
- * renders via {@link ColorChangedImageComponent} (offscreen-canvas chroma
7103
- * key) instead of a plain `<img>`.
7104
- */
7105
- readonly clrChangeParams: _angular_core.Signal<ClrChangeParams | undefined>;
7106
7313
  /** Text-warp (WordArt) descriptor for the element, if any. */
7107
7314
  readonly textWarp: _angular_core.Signal<pptx_angular_viewer.TextWarpDef | undefined>;
7108
7315
  /** Only the SVG-textPath warp variant (for the `<svg>` overlay branch). */
@@ -8005,7 +8212,7 @@ interface ZoomViewModel {
8005
8212
  /** Zero-based target slide index. */
8006
8213
  readonly targetSlideIndex: number;
8007
8214
  /** Zoom type string used as the badge label source and data attribute. */
8008
- readonly zoomType: 'slide' | 'section';
8215
+ readonly zoomType: 'slide' | 'section' | 'summary';
8009
8216
  /** Optional section identifier for section zooms. */
8010
8217
  readonly targetSectionId: string | undefined;
8011
8218
  /** Human-readable badge text ("Slide Zoom" / "Section Zoom"). */
@@ -8089,6 +8296,7 @@ declare class ZoomRendererComponent {
8089
8296
  */
8090
8297
  private readonly zoomTarget;
8091
8298
  readonly vm: _angular_core.Signal<ZoomViewModel>;
8299
+ readonly summaryView: _angular_core.Signal<SummaryZoomView | undefined>;
8092
8300
  /**
8093
8301
  * Zoom-navigation context, present only inside a running presentation (the
8094
8302
  * overlay provides it). `null` in the editor tree, where the tile stays
@@ -8099,6 +8307,7 @@ declare class ZoomRendererComponent {
8099
8307
  protected readonly interactive: _angular_core.Signal<boolean>;
8100
8308
  /** Navigate to the zoom target; no-op when the tile is not interactive. */
8101
8309
  private activate;
8310
+ protected activateSummary(event: Event, target: number): void;
8102
8311
  protected onClick(event: MouseEvent): void;
8103
8312
  protected onKeydown(event: KeyboardEvent): void;
8104
8313
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ZoomRendererComponent, never>;
@@ -8109,6 +8318,7 @@ declare class AnimationPlaybackService {
8109
8318
  private readonly destroyRef;
8110
8319
  /** The current slide's animations, in document/timeline order. */
8111
8320
  private readonly animations;
8321
+ private readonly showWithAnimation;
8112
8322
  /**
8113
8323
  * Externally-controlled playback step (e.g. derived from a parent click
8114
8324
  * counter). `undefined` means there is no external driver. The internal
@@ -8147,7 +8357,7 @@ declare class AnimationPlaybackService {
8147
8357
  private rafHandle;
8148
8358
  constructor();
8149
8359
  /** Feed the current slide's animation list. Resets manual control. */
8150
- setAnimations(animations: readonly PptxElementAnimation[] | undefined): void;
8360
+ setAnimations(animations: readonly PptxElementAnimation[] | undefined, showWithAnimation?: boolean): void;
8151
8361
  /** Update the external playback index (parent-driven build counter). */
8152
8362
  setExternalIndex(index: number | undefined): void;
8153
8363
  /**
@@ -8358,8 +8568,11 @@ declare class PresentationOverlayComponent implements OnInit {
8358
8568
  readonly canvasSize: _angular_core.InputSignal<CanvasSize>;
8359
8569
  readonly mediaDataUrls: _angular_core.InputSignal<Map<string, string>>;
8360
8570
  readonly startIndex: _angular_core.InputSignal<number>;
8571
+ readonly showWithAnimation: _angular_core.InputSignal<boolean | undefined>;
8572
+ readonly subtitlesVisible: _angular_core.InputSignal<boolean>;
8361
8573
  readonly indexChange: _angular_core.OutputEmitterRef<number>;
8362
8574
  readonly closed: _angular_core.OutputEmitterRef<void>;
8575
+ readonly subtitlesChange: _angular_core.OutputEmitterRef<boolean>;
8363
8576
  /**
8364
8577
  * Fired just before `closed` when the show carries ink annotations, so the
8365
8578
  * host can offer the keep/discard prompt (mirrors React's exit flow).
@@ -8386,8 +8599,6 @@ declare class PresentationOverlayComponent implements OnInit {
8386
8599
  * target slide on click. Descendants resolve this same instance.
8387
8600
  */
8388
8601
  private readonly zoomNavigation;
8389
- /** Whether the live-caption bar is shown. */
8390
- protected readonly subtitlesVisible: _angular_core.WritableSignal<boolean>;
8391
8602
  /** The slide stage root; animation styles are applied to its elements. */
8392
8603
  private readonly stageRef;
8393
8604
  /**
@@ -8492,7 +8703,7 @@ declare class PresentationOverlayComponent implements OnInit {
8492
8703
  private goToSlide;
8493
8704
  private emitClosed;
8494
8705
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<PresentationOverlayComponent, never>;
8495
- 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; }; }, { "indexChange": "indexChange"; "closed": "closed"; "annotationsExit": "annotationsExit"; }, never, never, true, never>;
8706
+ 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; }; "showWithAnimation": { "alias": "showWithAnimation"; "required": false; "isSignal": true; }; "subtitlesVisible": { "alias": "subtitlesVisible"; "required": false; "isSignal": true; }; }, { "indexChange": "indexChange"; "closed": "closed"; "subtitlesChange": "subtitlesChange"; "annotationsExit": "annotationsExit"; }, never, never, true, never>;
8496
8707
  }
8497
8708
 
8498
8709
  /**
@@ -8594,6 +8805,8 @@ declare class InspectorPanelComponent {
8594
8805
  readonly element: _angular_core.InputSignal<PptxElement>;
8595
8806
  /** Zero-based index of the active slide. */
8596
8807
  readonly slideIndex: _angular_core.InputSignal<number>;
8808
+ /** Whether mutation controls in the inspector are enabled. */
8809
+ readonly canEdit: _angular_core.InputSignal<boolean>;
8597
8810
  protected readonly editor: EditorStateService;
8598
8811
  /** Reactive viewport / pointer flags (drives the bottom-sheet layout). */
8599
8812
  protected readonly mobile: IsMobileService;
@@ -8644,6 +8857,8 @@ declare class InspectorPanelComponent {
8644
8857
  protected readonly tableEl: _angular_core.Signal<TablePptxElement | undefined>;
8645
8858
  /** The selected element narrowed to a chart, or undefined. */
8646
8859
  protected readonly chartEl: _angular_core.Signal<ChartPptxElement | undefined>;
8860
+ protected readonly imageEl: _angular_core.Signal<PptxElement | undefined>;
8861
+ protected readonly mediaEl: _angular_core.Signal<MediaPptxElement | undefined>;
8647
8862
  /** The selected element narrowed to SmartArt, or undefined. */
8648
8863
  protected readonly smartArtEl: _angular_core.Signal<SmartArtPptxElement | undefined>;
8649
8864
  /** The selected SmartArt element's data model, or undefined. */
@@ -8663,6 +8878,7 @@ declare class InspectorPanelComponent {
8663
8878
  protected onElementReplace(updated: PptxElement): void;
8664
8879
  /** The active slide's element-animation list (animations live on the slide). */
8665
8880
  protected readonly slideAnimations: _angular_core.Signal<readonly PptxElementAnimation[]>;
8881
+ protected readonly slideElements: _angular_core.Signal<readonly PptxElement[]>;
8666
8882
  /** Commit an updated slide-level animation list as one history entry. */
8667
8883
  protected onAnimationsChange(animations: PptxElementAnimation[]): void;
8668
8884
  protected onPositionChange(event: Event, axis: 'x' | 'y'): void;
@@ -8677,7 +8893,7 @@ declare class InspectorPanelComponent {
8677
8893
  protected onItalicToggle(): void;
8678
8894
  protected onUnderlineToggle(): void;
8679
8895
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<InspectorPanelComponent, never>;
8680
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<InspectorPanelComponent, "pptx-inspector-panel", never, { "element": { "alias": "element"; "required": true; "isSignal": true; }; "slideIndex": { "alias": "slideIndex"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
8896
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<InspectorPanelComponent, "pptx-inspector-panel", never, { "element": { "alias": "element"; "required": true; "isSignal": true; }; "slideIndex": { "alias": "slideIndex"; "required": true; "isSignal": true; }; "canEdit": { "alias": "canEdit"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
8681
8897
  }
8682
8898
 
8683
8899
  declare class GradientPickerComponent {
@@ -8748,7 +8964,7 @@ declare class TextAdvancedPanelComponent {
8748
8964
  protected readonly elementKey: _angular_core.Signal<string>;
8749
8965
  /** Exposed option arrays for the template. */
8750
8966
  protected readonly alignOptions: [NonNullable<"center" | "left" | "right" | "justify" | "justLow" | "dist" | "thaiDist" | undefined>, string][];
8751
- protected readonly vAlignOptions: [NonNullable<"top" | "middle" | "bottom" | undefined>, string][];
8967
+ protected readonly vAlignOptions: [NonNullable<"top" | "bottom" | "middle" | undefined>, string][];
8752
8968
  protected readonly textDirectionOptions: [NonNullable<"eaVert" | "wordArtVert" | "wordArtVertRtl" | "mongolianVert" | "horizontal" | "vertical" | "vertical270" | undefined>, string][];
8753
8969
  protected alignLabel(align: NonNullable<TextStyle['align']>): string;
8754
8970
  protected onAlignChange(align: NonNullable<TextStyle['align']>): void;
@@ -9280,6 +9496,8 @@ declare class AnimationAuthorPanelComponent {
9280
9496
  * emits the entire array.
9281
9497
  */
9282
9498
  readonly animations: _angular_core.InputSignal<readonly PptxElementAnimation[]>;
9499
+ /** Every element on the active slide, including elements with no animation. */
9500
+ readonly slideElements: _angular_core.InputSignal<readonly PptxElement[]>;
9283
9501
  /**
9284
9502
  * Whether editing controls are enabled. When `false` all selects/inputs are
9285
9503
  * disabled. Defaults to `true`.
@@ -9356,21 +9574,13 @@ declare class AnimationAuthorPanelComponent {
9356
9574
  /** Human-readable order label (1-based, e.g. "2 of 4"). */
9357
9575
  protected readonly orderLabel: _angular_core.Signal<any>;
9358
9576
  /**
9359
- * Elements on the slide excluding the selected element, used to populate
9360
- * the trigger-shape selector. The slide's elements are not available in this
9361
- * component's inputs, so the orchestrator must pass them in via
9362
- * `[animations]` indirectly; here we surface only what we have access to.
9363
- *
9364
- * NOTE: The trigger-shape dropdown is limited to element ids because this
9365
- * panel does not receive the full slide element list. The orchestrator can
9366
- * replace this with a richer element label by wrapping the component or
9367
- * projecting content. This matches the React implementation which used
9368
- * `activeSlide.elements`.
9577
+ * Every other element on the active slide, including elements that do not
9578
+ * yet have an animation entry. Used by the on-shape-click trigger picker.
9369
9579
  */
9370
- protected readonly otherElements: _angular_core.Signal<{
9371
- id: string;
9372
- }[]>;
9580
+ protected readonly otherElements: _angular_core.Signal<PptxElement[]>;
9581
+ protected elementLabel(element: PptxElement): string;
9373
9582
  private emit;
9583
+ protected onPreview(): void;
9374
9584
  protected onEntranceChange(event: Event): void;
9375
9585
  protected onExitChange(event: Event): void;
9376
9586
  protected onEmphasisChange(event: Event): void;
@@ -9387,21 +9597,22 @@ declare class AnimationAuthorPanelComponent {
9387
9597
  protected onMoveDown(): void;
9388
9598
  protected onRemove(): void;
9389
9599
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AnimationAuthorPanelComponent, never>;
9390
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<AnimationAuthorPanelComponent, "pptx-animation-author-panel", never, { "element": { "alias": "element"; "required": true; "isSignal": true; }; "slideIndex": { "alias": "slideIndex"; "required": true; "isSignal": true; }; "animations": { "alias": "animations"; "required": true; "isSignal": true; }; "canEdit": { "alias": "canEdit"; "required": false; "isSignal": true; }; }, { "animationsChange": "animationsChange"; }, never, never, true, never>;
9600
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AnimationAuthorPanelComponent, "pptx-animation-author-panel", never, { "element": { "alias": "element"; "required": true; "isSignal": true; }; "slideIndex": { "alias": "slideIndex"; "required": true; "isSignal": true; }; "animations": { "alias": "animations"; "required": true; "isSignal": true; }; "slideElements": { "alias": "slideElements"; "required": false; "isSignal": true; }; "canEdit": { "alias": "canEdit"; "required": false; "isSignal": true; }; }, { "animationsChange": "animationsChange"; }, never, never, true, never>;
9391
9601
  }
9392
9602
 
9393
9603
  /** Descriptor for a single menu row. */
9394
- interface MenuRow {
9604
+ interface MobileMenuRow {
9395
9605
  key: string;
9396
9606
  labelKey: string;
9397
9607
  sublabelKey?: string;
9398
- /** SVG path data (24 × 24 view-box). */
9608
+ /** SVG path data (24 x 24 view-box). */
9399
9609
  svgPath: string;
9400
9610
  disabled?: boolean;
9401
9611
  active?: boolean;
9402
9612
  danger?: boolean;
9403
9613
  emit: () => void;
9404
9614
  }
9615
+
9405
9616
  declare class MobileMenuSheetComponent {
9406
9617
  /** Whether the sheet is visible. */
9407
9618
  readonly open: _angular_core.InputSignal<boolean>;
@@ -9413,6 +9624,8 @@ declare class MobileMenuSheetComponent {
9413
9624
  readonly showNotes: _angular_core.InputSignal<boolean>;
9414
9625
  /** Whether editor-only actions (find-replace etc.) are available. */
9415
9626
  readonly canEdit: _angular_core.InputSignal<boolean>;
9627
+ /** Toolbar buttons the host wants hidden ('notes' drops the row, 'export' drops all four export rows). */
9628
+ readonly hiddenActions: _angular_core.InputSignal<ToolbarActionId[]>;
9416
9629
  /** Sheet dismissed (backdrop tap, swipe, or Escape). */
9417
9630
  readonly closed: _angular_core.OutputEmitterRef<void>;
9418
9631
  /** Open the find-in-slides bar. */
@@ -9439,14 +9652,14 @@ declare class MobileMenuSheetComponent {
9439
9652
  readonly exportVideo: _angular_core.OutputEmitterRef<void>;
9440
9653
  /** Open the print dialog. */
9441
9654
  readonly print: _angular_core.OutputEmitterRef<void>;
9442
- readonly rows: _angular_core.Signal<MenuRow[]>;
9655
+ readonly rows: _angular_core.Signal<MobileMenuRow[]>;
9443
9656
  /**
9444
9657
  * Emit the row's action and close the sheet so the user returns to the
9445
9658
  * presentation immediately.
9446
9659
  */
9447
- onRowClick(row: MenuRow): void;
9660
+ onRowClick(row: MobileMenuRow): void;
9448
9661
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<MobileMenuSheetComponent, never>;
9449
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<MobileMenuSheetComponent, "pptx-mobile-menu-sheet", never, { "open": { "alias": "open"; "required": false; "isSignal": true; }; "slideCount": { "alias": "slideCount"; "required": false; "isSignal": true; }; "exporting": { "alias": "exporting"; "required": false; "isSignal": true; }; "showNotes": { "alias": "showNotes"; "required": false; "isSignal": true; }; "canEdit": { "alias": "canEdit"; "required": false; "isSignal": true; }; }, { "closed": "closed"; "openFind": "openFind"; "openSorter": "openSorter"; "toggleNotes": "toggleNotes"; "insertText": "insertText"; "present": "present"; "openFile": "openFile"; "savePptx": "savePptx"; "exportPng": "exportPng"; "exportPdf": "exportPdf"; "exportGif": "exportGif"; "exportVideo": "exportVideo"; "print": "print"; }, never, never, true, never>;
9662
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<MobileMenuSheetComponent, "pptx-mobile-menu-sheet", never, { "open": { "alias": "open"; "required": false; "isSignal": true; }; "slideCount": { "alias": "slideCount"; "required": false; "isSignal": true; }; "exporting": { "alias": "exporting"; "required": false; "isSignal": true; }; "showNotes": { "alias": "showNotes"; "required": false; "isSignal": true; }; "canEdit": { "alias": "canEdit"; "required": false; "isSignal": true; }; "hiddenActions": { "alias": "hiddenActions"; "required": false; "isSignal": true; }; }, { "closed": "closed"; "openFind": "openFind"; "openSorter": "openSorter"; "toggleNotes": "toggleNotes"; "insertText": "insertText"; "present": "present"; "openFile": "openFile"; "savePptx": "savePptx"; "exportPng": "exportPng"; "exportPdf": "exportPdf"; "exportGif": "exportGif"; "exportVideo": "exportVideo"; "print": "print"; }, never, never, true, never>;
9450
9663
  }
9451
9664
 
9452
9665
  declare class MobileSlidesSheetComponent {
@@ -9509,6 +9722,22 @@ declare class MobileSheetComponent {
9509
9722
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<MobileSheetComponent, "pptx-mobile-sheet", never, { "open": { "alias": "open"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "heightFraction": { "alias": "heightFraction"; "required": false; "isSignal": true; }; "fullScreen": { "alias": "fullScreen"; "required": false; "isSignal": true; }; }, { "closed": "closed"; }, never, ["*"], true, never>;
9510
9723
  }
9511
9724
 
9725
+ /**
9726
+ * toolbar-visibility.ts: thin per-component wrapper around the shared
9727
+ * `isActionHidden` helper (see `pptx-viewer-shared`'s `render/toolbar-actions`)
9728
+ * so templates can gate a button/tab with a single `toolbar.isHidden('id')`
9729
+ * call instead of repeating `isActionHidden(id, hiddenActions())` everywhere.
9730
+ *
9731
+ * Mirrors how other pure shared helpers are consumed in this package: assigned
9732
+ * straight onto the component as a `protected readonly` field (see
9733
+ * `ribbon-file-section.component.ts`'s `protected readonly date = formatBackstageDate;`).
9734
+ */
9735
+
9736
+ interface ToolbarVisibility {
9737
+ /** True when `id` is present in the host's `hiddenActions` list. */
9738
+ isHidden(id: ToolbarActionId): boolean;
9739
+ }
9740
+
9512
9741
  declare class MobileToolbarComponent {
9513
9742
  /** Whether the undo action is available. */
9514
9743
  readonly canUndo: _angular_core.InputSignal<boolean>;
@@ -9520,6 +9749,8 @@ declare class MobileToolbarComponent {
9520
9749
  readonly canEdit: _angular_core.InputSignal<boolean>;
9521
9750
  /** Whether the mobile-menu sheet is currently open (highlights the button). */
9522
9751
  readonly menuOpen: _angular_core.InputSignal<boolean>;
9752
+ /** Toolbar buttons the host wants hidden (gates Undo/Redo independently). */
9753
+ readonly hiddenActions: _angular_core.InputSignal<ToolbarActionId[]>;
9523
9754
  /** User tapped the Menu (hamburger) button. */
9524
9755
  readonly toggleMenu: _angular_core.OutputEmitterRef<void>;
9525
9756
  /** User tapped Undo. */
@@ -9530,8 +9761,9 @@ declare class MobileToolbarComponent {
9530
9761
  readonly save: _angular_core.OutputEmitterRef<void>;
9531
9762
  /** User tapped Present. */
9532
9763
  readonly present: _angular_core.OutputEmitterRef<void>;
9764
+ protected readonly toolbar: ToolbarVisibility;
9533
9765
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<MobileToolbarComponent, never>;
9534
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<MobileToolbarComponent, "pptx-mobile-toolbar", never, { "canUndo": { "alias": "canUndo"; "required": false; "isSignal": true; }; "canRedo": { "alias": "canRedo"; "required": false; "isSignal": true; }; "canPresent": { "alias": "canPresent"; "required": false; "isSignal": true; }; "canEdit": { "alias": "canEdit"; "required": false; "isSignal": true; }; "menuOpen": { "alias": "menuOpen"; "required": false; "isSignal": true; }; }, { "toggleMenu": "toggleMenu"; "undo": "undo"; "redo": "redo"; "save": "save"; "present": "present"; }, never, never, true, never>;
9766
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<MobileToolbarComponent, "pptx-mobile-toolbar", never, { "canUndo": { "alias": "canUndo"; "required": false; "isSignal": true; }; "canRedo": { "alias": "canRedo"; "required": false; "isSignal": true; }; "canPresent": { "alias": "canPresent"; "required": false; "isSignal": true; }; "canEdit": { "alias": "canEdit"; "required": false; "isSignal": true; }; "menuOpen": { "alias": "menuOpen"; "required": false; "isSignal": true; }; "hiddenActions": { "alias": "hiddenActions"; "required": false; "isSignal": true; }; }, { "toggleMenu": "toggleMenu"; "undo": "undo"; "redo": "redo"; "save": "save"; "present": "present"; }, never, never, true, never>;
9535
9767
  }
9536
9768
 
9537
9769
  declare class NotesPanelComponent {
@@ -9613,17 +9845,35 @@ declare class SlidesPanelComponent {
9613
9845
  /** Emits the zero-based index of the card the user clicked. */
9614
9846
  readonly select: _angular_core.OutputEmitterRef<number>;
9615
9847
  protected readonly editor: EditorStateService;
9848
+ private readonly translate;
9849
+ private readonly scrollViewport;
9850
+ private readonly scrollTop;
9851
+ private readonly viewportHeight;
9616
9852
  /** Zoom level that fits the full canvas width into THUMB_W pixels. */
9617
9853
  readonly thumbZoom: _angular_core.Signal<number>;
9618
9854
  /** Pixel height of the clipping box (aspect-correct). */
9619
9855
  readonly thumbH: _angular_core.Signal<number>;
9620
9856
  /** ngStyle object for the thumbnail clipping box. */
9621
9857
  readonly clipStyle: _angular_core.Signal<Record<string, string>>;
9858
+ readonly itemHeight: _angular_core.Signal<number>;
9859
+ readonly shouldVirtualize: _angular_core.Signal<boolean>;
9860
+ readonly virtualRange: _angular_core.Signal<VirtualizedRange>;
9861
+ readonly renderedSlides: _angular_core.Signal<{
9862
+ slide: pptx_viewer_core.PptxSlide;
9863
+ index: number;
9864
+ section: pptx_viewer_core.PptxSection | undefined;
9865
+ sectionStart: boolean;
9866
+ }[]>;
9867
+ constructor();
9868
+ onScroll(): void;
9869
+ private syncViewport;
9622
9870
  onDuplicate(index: number): void;
9623
9871
  onDelete(index: number): void;
9624
9872
  onMoveUp(index: number): void;
9625
9873
  onMoveDown(index: number): void;
9626
9874
  onAddSlide(): void;
9875
+ onRenameSection(sectionId: string, currentName: string): void;
9876
+ sectionIndex(sectionId: string): number;
9627
9877
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SlidesPanelComponent, never>;
9628
9878
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<SlidesPanelComponent, "pptx-slides-panel", never, { "canvasSize": { "alias": "canvasSize"; "required": true; "isSignal": true; }; "mediaDataUrls": { "alias": "mediaDataUrls"; "required": false; "isSignal": true; }; "activeIndex": { "alias": "activeIndex"; "required": false; "isSignal": true; }; }, { "select": "select"; }, never, never, true, never>;
9629
9879
  }
@@ -9657,6 +9907,8 @@ declare class StatusBarComponent {
9657
9907
  readonly sorterActive: _angular_core.InputSignal<boolean>;
9658
9908
  /** True when the presentation overlay is open (active-state styling). */
9659
9909
  readonly presenting: _angular_core.InputSignal<boolean>;
9910
+ /** Toolbar buttons the host wants hidden (notes/fullscreen/zoom independently). */
9911
+ readonly hiddenActions: _angular_core.InputSignal<ToolbarActionId[]>;
9660
9912
  readonly toggleNotes: _angular_core.OutputEmitterRef<void>;
9661
9913
  readonly normalView: _angular_core.OutputEmitterRef<void>;
9662
9914
  readonly openSorter: _angular_core.OutputEmitterRef<void>;
@@ -9665,6 +9917,7 @@ declare class StatusBarComponent {
9665
9917
  readonly zoomOut: _angular_core.OutputEmitterRef<void>;
9666
9918
  readonly zoomReset: _angular_core.OutputEmitterRef<void>;
9667
9919
  private readonly translate;
9920
+ protected readonly toolbar: ToolbarVisibility;
9668
9921
  /** "Normal" is active when neither the sorter nor the slideshow is showing. */
9669
9922
  protected isNormal(): boolean;
9670
9923
  protected min(a: number, b: number): number;
@@ -9679,7 +9932,7 @@ declare class StatusBarComponent {
9679
9932
  /** Relative age label for a saved timestamp ("just now" / "N min ago"). */
9680
9933
  private formatAutosaveAge;
9681
9934
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<StatusBarComponent, never>;
9682
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<StatusBarComponent, "pptx-status-bar", never, { "slideIndex": { "alias": "slideIndex"; "required": false; "isSignal": true; }; "slideCount": { "alias": "slideCount"; "required": false; "isSignal": true; }; "canEdit": { "alias": "canEdit"; "required": false; "isSignal": true; }; "dirty": { "alias": "dirty"; "required": false; "isSignal": true; }; "autosaveStatus": { "alias": "autosaveStatus"; "required": false; "isSignal": true; }; "notesOpen": { "alias": "notesOpen"; "required": false; "isSignal": true; }; "zoomPercent": { "alias": "zoomPercent"; "required": false; "isSignal": true; }; "sorterActive": { "alias": "sorterActive"; "required": false; "isSignal": true; }; "presenting": { "alias": "presenting"; "required": false; "isSignal": true; }; }, { "toggleNotes": "toggleNotes"; "normalView": "normalView"; "openSorter": "openSorter"; "slideShow": "slideShow"; "zoomIn": "zoomIn"; "zoomOut": "zoomOut"; "zoomReset": "zoomReset"; }, never, never, true, never>;
9935
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<StatusBarComponent, "pptx-status-bar", never, { "slideIndex": { "alias": "slideIndex"; "required": false; "isSignal": true; }; "slideCount": { "alias": "slideCount"; "required": false; "isSignal": true; }; "canEdit": { "alias": "canEdit"; "required": false; "isSignal": true; }; "dirty": { "alias": "dirty"; "required": false; "isSignal": true; }; "autosaveStatus": { "alias": "autosaveStatus"; "required": false; "isSignal": true; }; "notesOpen": { "alias": "notesOpen"; "required": false; "isSignal": true; }; "zoomPercent": { "alias": "zoomPercent"; "required": false; "isSignal": true; }; "sorterActive": { "alias": "sorterActive"; "required": false; "isSignal": true; }; "presenting": { "alias": "presenting"; "required": false; "isSignal": true; }; "hiddenActions": { "alias": "hiddenActions"; "required": false; "isSignal": true; }; }, { "toggleNotes": "toggleNotes"; "normalView": "normalView"; "openSorter": "openSorter"; "slideShow": "slideShow"; "zoomIn": "zoomIn"; "zoomOut": "zoomOut"; "zoomReset": "zoomReset"; }, never, never, true, never>;
9683
9936
  }
9684
9937
 
9685
9938
  declare class EditorContextMenuComponent {
@@ -9734,6 +9987,13 @@ declare class EditorContextMenuComponent {
9734
9987
  }
9735
9988
 
9736
9989
  declare class ExportService {
9990
+ private static readonly PRESENTATION_MIME;
9991
+ /** Build a resolution-independent SVG string directly from slide data. */
9992
+ exportSlideToSvg(slide: PptxSlide, width: number, height: number, options?: SvgExportOptions): string;
9993
+ /** Build an SVG Blob directly from slide data. */
9994
+ exportSlideToSvgBlob(slide: PptxSlide, width: number, height: number, options?: SvgExportOptions): Blob;
9995
+ /** Build SVG strings for all selected slides in a parsed presentation. */
9996
+ exportAllSlidesToSvg(data: PptxData, options?: SvgExportOptions): string[];
9737
9997
  /**
9738
9998
  * Trigger a browser download of serialized `.pptx` bytes.
9739
9999
  *
@@ -9741,6 +10001,8 @@ declare class ExportService {
9741
10001
  * @param fileName - Suggested download file name (unsafe chars are stripped).
9742
10002
  */
9743
10003
  savePptx(bytes: Uint8Array, fileName: string): void;
10004
+ /** Download serialized presentation bytes using the matching package MIME type. */
10005
+ savePresentation(bytes: Uint8Array, fileName: string, format: PptxSaveFormat): void;
9744
10006
  /**
9745
10007
  * Rasterize a single DOM element to PNG and trigger a browser download.
9746
10008
  *
@@ -9749,6 +10011,8 @@ declare class ExportService {
9749
10011
  * @param scale - Device-pixel ratio multiplier (default 2 for sharp output).
9750
10012
  */
9751
10013
  exportElementToPng(el: HTMLElement, fileName: string, scale?: number): Promise<void>;
10014
+ /** Rasterize an element and copy it to the system clipboard as a PNG image. */
10015
+ copyElementAsPng(el: HTMLElement, scale?: number): Promise<void>;
9752
10016
  /**
9753
10017
  * Rasterize a single element to a canvas (passthrough to html2canvas-pro).
9754
10018
  * Capture each slide's canvas *while that slide is the live DOM*: the
@@ -10158,6 +10422,220 @@ declare class AnimationPanelComponent {
10158
10422
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<AnimationPanelComponent, "pptx-animation-panel", never, { "groups": { "alias": "groups"; "required": true; "isSignal": true; }; "step": { "alias": "step"; "required": false; "isSignal": true; }; "isPlaying": { "alias": "isPlaying"; "required": false; "isSignal": true; }; }, { "playRequested": "playRequested"; "pauseRequested": "pauseRequested"; "stepRequested": "stepRequested"; "resetRequested": "resetRequested"; "seek": "seek"; }, never, never, true, never>;
10159
10423
  }
10160
10424
 
10425
+ declare class ActionSettingsPanelComponent {
10426
+ readonly element: _angular_core.InputSignal<PptxElement>;
10427
+ readonly slideCount: _angular_core.InputSignal<number>;
10428
+ readonly patch: _angular_core.OutputEmitterRef<Partial<PptxElement>>;
10429
+ protected readonly triggers: readonly ["click", "hover"];
10430
+ protected readonly actionTypes: readonly {
10431
+ value: ElementActionType;
10432
+ key: string;
10433
+ }[];
10434
+ private readonly clickAction;
10435
+ private readonly hoverAction;
10436
+ protected actionFor(trigger: 'click' | 'hover'): ElementAction | undefined;
10437
+ private update;
10438
+ protected onType(event: Event, trigger: 'click' | 'hover'): void;
10439
+ protected onUrl(event: Event, trigger: 'click' | 'hover'): void;
10440
+ protected onSlide(event: Event, trigger: 'click' | 'hover'): void;
10441
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ActionSettingsPanelComponent, never>;
10442
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ActionSettingsPanelComponent, "pptx-action-settings-panel", never, { "element": { "alias": "element"; "required": true; "isSignal": true; }; "slideCount": { "alias": "slideCount"; "required": false; "isSignal": true; }; }, { "patch": "patch"; }, never, never, true, never>;
10443
+ }
10444
+
10445
+ type ImageElement = PptxElement & {
10446
+ altText?: string;
10447
+ imageEffects?: PptxImageEffects;
10448
+ };
10449
+ declare class ImagePropertiesPanelComponent {
10450
+ readonly element: _angular_core.InputSignal<PptxElement>;
10451
+ readonly patch: _angular_core.OutputEmitterRef<Partial<PptxElement>>;
10452
+ protected readonly image: _angular_core.Signal<ImageElement>;
10453
+ protected readonly effects: _angular_core.Signal<PptxImageEffects>;
10454
+ protected readonly artisticEffects: readonly [readonly ["none", "pptx.image.effectNone", ""], readonly ["blur", "pptx.image.effectBlur", "blur(4px)"], readonly ["grayscale", "pptx.image.effectGrayscale", "grayscale(100%)"], readonly ["sepia", "pptx.image.effectSepia", "sepia(100%)"], readonly ["pencilSketch", "pptx.image.effectPencilSketch", "grayscale(100%) contrast(150%) brightness(80%)"], readonly ["lineDrawing", "pptx.image.effectLineDrawing", "grayscale(100%) contrast(150%)"], readonly ["watercolorSponge", "pptx.image.effectWatercolor", "saturate(150%) blur(1px)"], readonly ["paintStrokes", "pptx.image.effectPaintStrokes", "blur(3px) saturate(140%)"], readonly ["glow_edges", "pptx.image.effectGlowEdges", "contrast(180%) invert(5%) brightness(110%)"], readonly ["glowDiffused", "pptx.image.effectGlowDiffused", "blur(3px) brightness(120%)"], readonly ["cement", "pptx.image.effectCement", "contrast(200%) brightness(60%)"], readonly ["photocopy", "pptx.image.effectPhotocopy", "grayscale(100%) contrast(200%) brightness(120%)"], readonly ["filmGrain", "pptx.image.effectFilmGrain", "contrast(110%) brightness(105%)"], readonly ["mosaic", "pptx.image.effectMosaic", "blur(8px) contrast(105%)"], readonly ["chalkSketch", "pptx.image.effectChalk", "grayscale(80%) contrast(140%) brightness(110%)"], readonly ["marker", "pptx.image.effectMarker", "contrast(130%) saturate(130%)"], readonly ["cutout", "pptx.image.effectCutout", "contrast(300%) brightness(120%)"], readonly ["pastelsSmooth", "pptx.image.effectPastels", "blur(4px) saturate(120%)"], readonly ["paint", "pptx.image.effectPaint", "blur(3px) saturate(160%) contrast(110%)"], readonly ["plasticWrap", "pptx.image.effectPlasticWrap", "contrast(150%) brightness(115%) saturate(80%)"], readonly ["lightScreen", "pptx.image.effectLightScreen", "brightness(130%) contrast(80%)"], readonly ["sharpen", "pptx.image.effectSharpen", "contrast(160%) brightness(105%)"], readonly ["texturizer", "pptx.image.effectTexturizer", "contrast(110%) brightness(105%)"], readonly ["crisscrossEtching", "pptx.image.effectCrisscross", "grayscale(60%) contrast(120%)"]];
10455
+ protected readonly sliders: readonly [{
10456
+ readonly key: "brightness";
10457
+ readonly label: "pptx.imageAdjustments.brightness";
10458
+ readonly min: -100;
10459
+ readonly max: 100;
10460
+ }, {
10461
+ readonly key: "contrast";
10462
+ readonly label: "pptx.imageAdjustments.contrast";
10463
+ readonly min: -100;
10464
+ readonly max: 100;
10465
+ }, {
10466
+ readonly key: "saturation";
10467
+ readonly label: "pptx.image.saturation";
10468
+ readonly min: -100;
10469
+ readonly max: 100;
10470
+ }, {
10471
+ readonly key: "alphaModFix";
10472
+ readonly label: "pptx.imageAdjustments.transparency";
10473
+ readonly min: 0;
10474
+ readonly max: 100;
10475
+ }, {
10476
+ readonly key: "biLevel";
10477
+ readonly label: "pptx.imageAdjustments.biLevelThreshold";
10478
+ readonly min: 0;
10479
+ readonly max: 100;
10480
+ }];
10481
+ static supports(element: PptxElement): boolean;
10482
+ protected effectValue(key: keyof PptxImageEffects): number;
10483
+ private updateEffects;
10484
+ protected onAltText(event: Event): void;
10485
+ protected onEffectNumber(key: keyof PptxImageEffects, event: Event): void;
10486
+ protected onGrayscale(event: Event): void;
10487
+ protected onArtistic(event: Event): void;
10488
+ protected onDuotone(event: Event, key: 'color1' | 'color2'): void;
10489
+ protected clearDuotone(): void;
10490
+ protected reset(): void;
10491
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ImagePropertiesPanelComponent, never>;
10492
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ImagePropertiesPanelComponent, "pptx-image-properties-panel", never, { "element": { "alias": "element"; "required": true; "isSignal": true; }; }, { "patch": "patch"; }, never, never, true, never>;
10493
+ }
10494
+
10495
+ declare class MediaPropertiesPanelComponent {
10496
+ readonly element: _angular_core.InputSignal<MediaPptxElement>;
10497
+ readonly canEdit: _angular_core.InputSignal<boolean>;
10498
+ readonly patch: _angular_core.OutputEmitterRef<Partial<PptxElement>>;
10499
+ private readonly loader;
10500
+ protected readonly media: _angular_core.Signal<MediaPptxElement>;
10501
+ protected readonly mediaDataUrls: _angular_core.Signal<Map<any, any>>;
10502
+ protected readonly speeds: readonly [0.25, 0.5, 0.75, 1, 1.25, 1.5, 2, 3, 4];
10503
+ protected readonly volumePercent: _angular_core.Signal<number>;
10504
+ protected readonly toggles: _angular_core.Signal<readonly [{
10505
+ readonly key: "autoPlay";
10506
+ readonly label: "pptx.media.startAutomatically";
10507
+ readonly value: boolean;
10508
+ }, {
10509
+ readonly key: "loop";
10510
+ readonly label: "pptx.media.loop";
10511
+ readonly value: boolean;
10512
+ }, {
10513
+ readonly key: "playAcrossSlides";
10514
+ readonly label: "pptx.media.playAcrossSlides";
10515
+ readonly value: boolean;
10516
+ }, {
10517
+ readonly key: "fullScreen";
10518
+ readonly label: "pptx.media.fullScreen";
10519
+ readonly value: boolean;
10520
+ }, {
10521
+ readonly key: "hideWhenNotPlaying";
10522
+ readonly label: "pptx.media.hideWhenNotPlaying";
10523
+ readonly value: boolean;
10524
+ }]>;
10525
+ protected numberPatch(key: keyof MediaPptxElement, event: Event): void;
10526
+ protected volumeChange(event: Event): void;
10527
+ protected booleanPatch(key: keyof MediaPptxElement, event: Event): void;
10528
+ protected addBookmark(): void;
10529
+ protected removeBookmark(index: number): void;
10530
+ protected updateBookmark(index: number, key: keyof MediaBookmark, event: Event): void;
10531
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<MediaPropertiesPanelComponent, never>;
10532
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<MediaPropertiesPanelComponent, "pptx-media-properties-panel", never, { "element": { "alias": "element"; "required": true; "isSignal": true; }; "canEdit": { "alias": "canEdit"; "required": false; "isSignal": true; }; }, { "patch": "patch"; }, never, never, true, never>;
10533
+ }
10534
+
10535
+ declare class HeaderFooterDialogComponent {
10536
+ readonly open: _angular_core.InputSignal<boolean>;
10537
+ readonly value: _angular_core.InputSignal<PptxHeaderFooter>;
10538
+ readonly save: _angular_core.OutputEmitterRef<PptxHeaderFooter>;
10539
+ readonly close: _angular_core.OutputEmitterRef<void>;
10540
+ protected readonly draft: _angular_core.WritableSignal<PptxHeaderFooter>;
10541
+ constructor();
10542
+ protected setFlag(key: keyof PptxHeaderFooter, event: Event): void;
10543
+ protected setText(key: keyof PptxHeaderFooter, event: Event): void;
10544
+ protected apply(): void;
10545
+ protected closeFromBackdrop(event: MouseEvent): void;
10546
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<HeaderFooterDialogComponent, never>;
10547
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<HeaderFooterDialogComponent, "pptx-header-footer-dialog", never, { "open": { "alias": "open"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "save": "save"; "close": "close"; }, never, never, true, never>;
10548
+ }
10549
+
10550
+ declare class MediaPreviewComponent {
10551
+ readonly element: _angular_core.InputSignal<MediaPptxElement>;
10552
+ readonly mediaDataUrls: _angular_core.InputSignal<Map<string, string>>;
10553
+ readonly canEdit: _angular_core.InputSignal<boolean>;
10554
+ readonly patch: _angular_core.OutputEmitterRef<Partial<PptxElement>>;
10555
+ private readonly mediaEl;
10556
+ protected readonly currentTime: _angular_core.WritableSignal<number>;
10557
+ protected readonly liveDuration: _angular_core.WritableSignal<number>;
10558
+ protected readonly isPlaying: _angular_core.WritableSignal<boolean>;
10559
+ protected readonly source: _angular_core.Signal<string | undefined>;
10560
+ protected readonly duration: _angular_core.Signal<number>;
10561
+ protected readonly timeLabel: _angular_core.Signal<string>;
10562
+ protected readonly durationLabel: _angular_core.Signal<string>;
10563
+ private readonly liveWidth;
10564
+ private readonly liveHeight;
10565
+ protected readonly resolution: _angular_core.Signal<string | undefined>;
10566
+ protected readonly fileName: _angular_core.Signal<string>;
10567
+ protected syncTime(): void;
10568
+ protected syncDuration(): void;
10569
+ protected togglePlay(): void;
10570
+ protected seekTo(time: number): void;
10571
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<MediaPreviewComponent, never>;
10572
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<MediaPreviewComponent, "pptx-media-preview", never, { "element": { "alias": "element"; "required": true; "isSignal": true; }; "mediaDataUrls": { "alias": "mediaDataUrls"; "required": false; "isSignal": true; }; "canEdit": { "alias": "canEdit"; "required": false; "isSignal": true; }; }, { "patch": "patch"; }, never, never, true, never>;
10573
+ }
10574
+
10575
+ declare class MediaTrimTimelineComponent {
10576
+ readonly duration: _angular_core.InputSignal<number>;
10577
+ readonly trimStartMs: _angular_core.InputSignal<number>;
10578
+ readonly trimEndMs: _angular_core.InputSignal<number>;
10579
+ readonly currentTime: _angular_core.InputSignal<number>;
10580
+ readonly bookmarks: _angular_core.InputSignal<MediaBookmark[]>;
10581
+ readonly canEdit: _angular_core.InputSignal<boolean>;
10582
+ readonly trimChange: _angular_core.OutputEmitterRef<MediaTrimRange>;
10583
+ readonly seek: _angular_core.OutputEmitterRef<number>;
10584
+ private readonly bar;
10585
+ private readonly dragging;
10586
+ protected readonly geometry: _angular_core.Signal<MediaTimelineGeometry>;
10587
+ protected readonly startLabel: _angular_core.Signal<string>;
10588
+ protected readonly endLabel: _angular_core.Signal<string>;
10589
+ protected beginDrag(handle: MediaTrimHandle, event: PointerEvent): void;
10590
+ protected continueDrag(event: PointerEvent): void;
10591
+ protected endDrag(): void;
10592
+ protected seekFromClick(event: MouseEvent): void;
10593
+ protected seekBookmark(bookmark: MediaBookmark, event: MouseEvent): void;
10594
+ protected bookmarkPercent(bookmark: MediaBookmark): number;
10595
+ private timeFromPointer;
10596
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<MediaTrimTimelineComponent, never>;
10597
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<MediaTrimTimelineComponent, "pptx-media-trim-timeline", never, { "duration": { "alias": "duration"; "required": true; "isSignal": true; }; "trimStartMs": { "alias": "trimStartMs"; "required": false; "isSignal": true; }; "trimEndMs": { "alias": "trimEndMs"; "required": false; "isSignal": true; }; "currentTime": { "alias": "currentTime"; "required": false; "isSignal": true; }; "bookmarks": { "alias": "bookmarks"; "required": false; "isSignal": true; }; "canEdit": { "alias": "canEdit"; "required": false; "isSignal": true; }; }, { "trimChange": "trimChange"; "seek": "seek"; }, never, never, true, never>;
10598
+ }
10599
+
10600
+ declare class SlideThemeOverridePanelComponent {
10601
+ readonly slide: _angular_core.InputSignal<PptxSlide>;
10602
+ readonly theme: _angular_core.InputSignal<PptxTheme | undefined>;
10603
+ readonly patch: _angular_core.OutputEmitterRef<Partial<PptxSlide>>;
10604
+ protected readonly aliases: readonly ["bg1", "tx1", "bg2", "tx2", "accent1", "accent2", "accent3", "accent4", "accent5", "accent6", "hlink", "folHlink"];
10605
+ protected readonly slots: readonly ["dk1", "lt1", "dk2", "lt2", "accent1", "accent2", "accent3", "accent4", "accent5", "accent6", "hlink", "folHlink"];
10606
+ protected readonly labels: Record<"accent1" | "accent2" | "accent3" | "accent4" | "accent5" | "accent6" | "hlink" | "folHlink" | "tx1" | "tx2" | "bg1" | "bg2", string>;
10607
+ protected readonly active: _angular_core.Signal<boolean>;
10608
+ protected current(alias: ColorMapAliasKey): string;
10609
+ protected slotColor(slot: string): string | undefined;
10610
+ private emitOverride;
10611
+ protected toggle(event: Event): void;
10612
+ protected change(alias: ColorMapAliasKey, event: Event): void;
10613
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SlideThemeOverridePanelComponent, never>;
10614
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SlideThemeOverridePanelComponent, "pptx-slide-theme-override-panel", never, { "slide": { "alias": "slide"; "required": true; "isSignal": true; }; "theme": { "alias": "theme"; "required": false; "isSignal": true; }; }, { "patch": "patch"; }, never, never, true, never>;
10615
+ }
10616
+
10617
+ interface CustomThemeEdit {
10618
+ colorScheme: PptxThemeColorScheme;
10619
+ fontScheme: PptxThemeFontScheme;
10620
+ name: string;
10621
+ }
10622
+ declare class ThemeEditorFieldsComponent {
10623
+ readonly theme: _angular_core.InputSignal<PptxTheme | undefined>;
10624
+ readonly applyTheme: _angular_core.OutputEmitterRef<CustomThemeEdit>;
10625
+ readonly slots: Array<keyof PptxThemeColorScheme>;
10626
+ readonly colors: _angular_core.WritableSignal<PptxThemeColorScheme>;
10627
+ readonly name: _angular_core.WritableSignal<string>;
10628
+ readonly majorFont: _angular_core.WritableSignal<string>;
10629
+ readonly minorFont: _angular_core.WritableSignal<string>;
10630
+ ngOnInit(): void;
10631
+ protected value(event: Event): string;
10632
+ protected color(slot: keyof PptxThemeColorScheme): string;
10633
+ protected setColor(slot: keyof PptxThemeColorScheme, event: Event): void;
10634
+ protected apply(): void;
10635
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ThemeEditorFieldsComponent, never>;
10636
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ThemeEditorFieldsComponent, "pptx-theme-editor-fields", never, { "theme": { "alias": "theme"; "required": false; "isSignal": true; }; }, { "applyTheme": "applyTheme"; }, never, never, true, never>;
10637
+ }
10638
+
10161
10639
  /** A positioned cursor view-model used by the template. */
10162
10640
  interface PositionedCursor {
10163
10641
  clientId: number | string;
@@ -10460,8 +10938,12 @@ declare class ViewerExtraDialogsComponent {
10460
10938
  readonly filePath: _angular_core.InputSignal<string | undefined>;
10461
10939
  /** Custom shows offered in the set-up-slide-show "show slides" fieldset. */
10462
10940
  readonly customShows: _angular_core.InputSignal<PptxCustomShow[]>;
10941
+ /** Live viewer preferences surfaced by the settings dialog. */
10942
+ readonly settings: _angular_core.InputSignal<ViewerPreferences>;
10463
10943
  /** Fired with a restored `.pptx` version's bytes; the host swaps the deck. */
10464
10944
  readonly restoreContent: _angular_core.OutputEmitterRef<Uint8Array<ArrayBufferLike>>;
10945
+ /** Fired whenever a settings toggle changes. */
10946
+ readonly settingsChange: _angular_core.OutputEmitterRef<ViewerPreferences>;
10465
10947
  protected readonly svc: ViewerDialogsService;
10466
10948
  protected readonly compare: ViewerCompareService;
10467
10949
  protected readonly editor: EditorStateService;
@@ -10496,7 +10978,7 @@ declare class ViewerExtraDialogsComponent {
10496
10978
  /** Clear any save password. */
10497
10979
  onRemovePassword(): void;
10498
10980
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ViewerExtraDialogsComponent, never>;
10499
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<ViewerExtraDialogsComponent, "pptx-viewer-extra-dialogs", never, { "activeSlideIndex": { "alias": "activeSlideIndex"; "required": false; "isSignal": true; }; "selectedElementId": { "alias": "selectedElementId"; "required": false; "isSignal": true; }; "filePath": { "alias": "filePath"; "required": false; "isSignal": true; }; "customShows": { "alias": "customShows"; "required": false; "isSignal": true; }; }, { "restoreContent": "restoreContent"; }, never, never, true, never>;
10981
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ViewerExtraDialogsComponent, "pptx-viewer-extra-dialogs", never, { "activeSlideIndex": { "alias": "activeSlideIndex"; "required": false; "isSignal": true; }; "selectedElementId": { "alias": "selectedElementId"; "required": false; "isSignal": true; }; "filePath": { "alias": "filePath"; "required": false; "isSignal": true; }; "customShows": { "alias": "customShows"; "required": false; "isSignal": true; }; "settings": { "alias": "settings"; "required": true; "isSignal": true; }; }, { "restoreContent": "restoreContent"; "settingsChange": "settingsChange"; }, never, never, true, never>;
10500
10982
  }
10501
10983
 
10502
10984
  declare class EquationEditorDialogComponent {
@@ -10577,7 +11059,7 @@ declare class SetUpSlideShowDialogComponent {
10577
11059
  readonly close: _angular_core.OutputEmitterRef<void>;
10578
11060
  /** Working copy of the properties; seeded from `properties` on open. */
10579
11061
  readonly draft: _angular_core.WritableSignal<PptxPresentationProperties>;
10580
- readonly showType: _angular_core.Signal<"presented" | "browsed" | "kiosk">;
11062
+ readonly showType: _angular_core.Signal<"kiosk" | "presented" | "browsed">;
10581
11063
  readonly showSlidesMode: _angular_core.Signal<"range" | "all" | "customShow">;
10582
11064
  constructor();
10583
11065
  /** Merge a partial patch into the current draft. */
@@ -10882,11 +11364,24 @@ declare class ShortcutPanelComponent {
10882
11364
  /** Fired when the Close button is clicked. */
10883
11365
  readonly close: _angular_core.OutputEmitterRef<void>;
10884
11366
  /** Static shortcut reference rows. */
10885
- protected readonly items: pptx_angular_viewer.ShortcutReferenceItem[];
11367
+ protected readonly items: readonly pptx_angular_viewer.ShortcutReferenceItem[];
10886
11368
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ShortcutPanelComponent, never>;
10887
11369
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<ShortcutPanelComponent, "pptx-shortcut-panel", never, { "open": { "alias": "open"; "required": false; "isSignal": true; }; }, { "close": "close"; }, never, never, true, never>;
10888
11370
  }
10889
11371
 
11372
+ declare class SettingsDialogComponent {
11373
+ readonly open: _angular_core.InputSignal<boolean>;
11374
+ readonly settings: _angular_core.InputSignal<ViewerPreferences>;
11375
+ readonly settingsChange: _angular_core.OutputEmitterRef<ViewerPreferences>;
11376
+ readonly close: _angular_core.OutputEmitterRef<void>;
11377
+ protected readonly activeTab: _angular_core.WritableSignal<"general" | "shortcuts">;
11378
+ protected readonly specs: readonly ViewerPreferenceToggle[];
11379
+ protected readonly shortcuts: readonly pptx_angular_viewer.ShortcutReferenceItem[];
11380
+ protected toggle(key: keyof ViewerSettings): void;
11381
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SettingsDialogComponent, never>;
11382
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SettingsDialogComponent, "pptx-settings-dialog", never, { "open": { "alias": "open"; "required": false; "isSignal": true; }; "settings": { "alias": "settings"; "required": true; "isSignal": true; }; }, { "settingsChange": "settingsChange"; "close": "close"; }, never, never, true, never>;
11383
+ }
11384
+
10890
11385
  declare class KeepAnnotationsDialogComponent {
10891
11386
  /** Whether the dialog is visible. */
10892
11387
  readonly open: _angular_core.InputSignal<boolean>;
@@ -12397,12 +12892,22 @@ declare class RibbonDrawSectionComponent {
12397
12892
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<RibbonDrawSectionComponent, "pptx-ribbon-draw-section", never, { "activeTool": { "alias": "activeTool"; "required": false; "isSignal": true; }; "drawingColor": { "alias": "drawingColor"; "required": false; "isSignal": true; }; "drawingWidth": { "alias": "drawingWidth"; "required": false; "isSignal": true; }; }, { "drawToolChange": "drawToolChange"; }, never, never, true, never>;
12398
12893
  }
12399
12894
 
12400
- /** Ribbon tab identifiers (mirrors React `TOOLBAR_SECTIONS`). */
12401
- type RibbonTab = 'file' | 'home' | 'insert' | 'text' | 'draw' | 'arrange' | 'design' | 'transitions' | 'animations' | 'slideShow' | 'record' | 'review' | 'view' | 'help';
12402
- interface TabDef {
12403
- id: RibbonTab;
12404
- labelKey: string;
12405
- }
12895
+ /**
12896
+ * ribbon-types.ts: shared ribbon-tab id type used by {@link RibbonComponent},
12897
+ * {@link RibbonTabListComponent}, and {@link RibbonContentComponent}. Kept in
12898
+ * its own file (rather than declared in one of those components) so none of
12899
+ * them has to import a type from a sibling that also imports it, mirroring
12900
+ * the Svelte binding's `ribbon/ribbon-types.ts`.
12901
+ */
12902
+
12903
+ /**
12904
+ * Ribbon tab identifiers. Includes 'text' and 'arrange' on top of the shared
12905
+ * {@link ToolbarTabId} catalogue: two extra content-only tabs that don't get
12906
+ * their own tab-bar button (no `TOOLBAR_TABS` entry) but are still reachable
12907
+ * as `@switch` cases.
12908
+ */
12909
+ type RibbonTab = ToolbarTabId | 'text' | 'arrange';
12910
+
12406
12911
  declare class RibbonComponent {
12407
12912
  readonly slideIndex: _angular_core.InputSignal<number>;
12408
12913
  readonly slideCount: _angular_core.InputSignal<number>;
@@ -12413,6 +12918,7 @@ declare class RibbonComponent {
12413
12918
  readonly formatPainterActive: _angular_core.InputSignal<boolean>;
12414
12919
  readonly canActivateFormatPainter: _angular_core.InputSignal<boolean>;
12415
12920
  readonly exporting: _angular_core.InputSignal<boolean>;
12921
+ readonly hasMacros: _angular_core.InputSignal<boolean>;
12416
12922
  /** Current visibility state of the grid overlay (for active-state styling). */
12417
12923
  readonly showGrid: _angular_core.InputSignal<boolean>;
12418
12924
  /** Current visibility state of rulers (for active-state styling). */
@@ -12421,6 +12927,7 @@ declare class RibbonComponent {
12421
12927
  readonly showGuides: _angular_core.InputSignal<boolean>;
12422
12928
  /** Current state of snap-to-grid (for active-state styling). */
12423
12929
  readonly snapToGrid: _angular_core.InputSignal<boolean>;
12930
+ readonly snapToShape: _angular_core.InputSignal<boolean>;
12424
12931
  /** Current state of eyedropper tool (for active-state styling). */
12425
12932
  readonly eyedropperActive: _angular_core.InputSignal<boolean>;
12426
12933
  /** Current visibility state of the theme gallery overlay (for active-state styling). */
@@ -12439,6 +12946,11 @@ declare class RibbonComponent {
12439
12946
  readonly collabConnected: _angular_core.InputSignal<boolean>;
12440
12947
  /** Connected collaborator count (Share button label). */
12441
12948
  readonly connectedCount: _angular_core.InputSignal<number>;
12949
+ /** Current live proofing state shown by the Review ribbon command. */
12950
+ readonly spellCheckEnabled: _angular_core.InputSignal<boolean>;
12951
+ readonly showSubtitles: _angular_core.InputSignal<boolean>;
12952
+ /** Toolbar buttons/tabs the host wants hidden. Default `[]` hides nothing. */
12953
+ readonly hiddenActions: _angular_core.InputSignal<ToolbarActionId[]>;
12442
12954
  readonly prev: _angular_core.OutputEmitterRef<void>;
12443
12955
  readonly next: _angular_core.OutputEmitterRef<void>;
12444
12956
  readonly zoomIn: _angular_core.OutputEmitterRef<void>;
@@ -12449,11 +12961,23 @@ declare class RibbonComponent {
12449
12961
  readonly presenter: _angular_core.OutputEmitterRef<void>;
12450
12962
  /** Emitted by the tab-row Record button (starts a slide-show run-through). */
12451
12963
  readonly record: _angular_core.OutputEmitterRef<void>;
12964
+ readonly presentFromBeginning: _angular_core.OutputEmitterRef<void>;
12965
+ readonly rehearseTimings: _angular_core.OutputEmitterRef<void>;
12966
+ readonly toggleSubtitles: _angular_core.OutputEmitterRef<void>;
12967
+ readonly openSubtitleSettings: _angular_core.OutputEmitterRef<void>;
12968
+ readonly recordFromBeginning: _angular_core.OutputEmitterRef<void>;
12969
+ readonly recordFromCurrent: _angular_core.OutputEmitterRef<void>;
12970
+ readonly spellCheckChange: _angular_core.OutputEmitterRef<boolean>;
12452
12971
  readonly share: _angular_core.OutputEmitterRef<void>;
12453
12972
  readonly broadcast: _angular_core.OutputEmitterRef<void>;
12454
12973
  readonly openFile: _angular_core.OutputEmitterRef<void>;
12974
+ readonly openRecentFile: _angular_core.OutputEmitterRef<string>;
12975
+ readonly createPresentation: _angular_core.OutputEmitterRef<string>;
12455
12976
  /** Emitted when the user clicks "Save" in the File tab (saves as .pptx). */
12456
12977
  readonly save: _angular_core.OutputEmitterRef<void>;
12978
+ readonly savePpsx: _angular_core.OutputEmitterRef<void>;
12979
+ readonly savePptm: _angular_core.OutputEmitterRef<void>;
12980
+ readonly packageForSharing: _angular_core.OutputEmitterRef<void>;
12457
12981
  /** Emitted when the user toggles the slides panel from the top bar. */
12458
12982
  readonly toggleSidebar: _angular_core.OutputEmitterRef<void>;
12459
12983
  /** Emitted when the user opens the Digital Signatures panel from the File tab. */
@@ -12471,23 +12995,13 @@ declare class RibbonComponent {
12471
12995
  readonly exportPdf: _angular_core.OutputEmitterRef<void>;
12472
12996
  readonly exportGif: _angular_core.OutputEmitterRef<void>;
12473
12997
  readonly exportVideo: _angular_core.OutputEmitterRef<void>;
12998
+ readonly copySlideAsImage: _angular_core.OutputEmitterRef<void>;
12474
12999
  readonly replace: _angular_core.OutputEmitterRef<void>;
12475
- /**
12476
- * Emitted by Design / Transitions / Animations tabs when the user wants to
12477
- * open the right-docked Inspector panel (Format Background, Transitions full
12478
- * options, Animation Panel). The parent component decides what to show.
12479
- */
13000
+ /** Design/Transitions/Animations tabs want the right-docked Inspector panel opened. */
12480
13001
  readonly toggleInspector: _angular_core.OutputEmitterRef<void>;
12481
- /**
12482
- * Emitted whenever the Draw tab tool state changes (tool / colour / width).
12483
- * The parent may connect this to an annotation / ink layer when available.
12484
- * Currently UI-only; no freehand-draw back-end exists in the Angular port.
12485
- */
13002
+ /** Draw tab tool state changed (tool/colour/width); UI-only, no ink back-end yet. */
12486
13003
  readonly drawToolChange: _angular_core.OutputEmitterRef<DrawToolState>;
12487
- /**
12488
- * Emitted when the user clicks "Browse Themes" in the Design tab.
12489
- * The parent toggles the theme-gallery overlay.
12490
- */
13004
+ /** Emitted when the user clicks "Browse Themes" in the Design tab. */
12491
13005
  readonly toggleThemeGallery: _angular_core.OutputEmitterRef<void>;
12492
13006
  /** Emitted when the user toggles the grid overlay in the View tab. */
12493
13007
  readonly toggleGrid: _angular_core.OutputEmitterRef<void>;
@@ -12501,13 +13015,12 @@ declare class RibbonComponent {
12501
13015
  readonly openCustomShows: _angular_core.OutputEmitterRef<void>;
12502
13016
  /** Emitted when the user toggles snap-to-grid in the View tab. */
12503
13017
  readonly toggleSnapToGrid: _angular_core.OutputEmitterRef<void>;
13018
+ readonly toggleSnapToShape: _angular_core.OutputEmitterRef<void>;
13019
+ readonly addGuide: _angular_core.OutputEmitterRef<"x" | "y">;
13020
+ readonly zoomToFit: _angular_core.OutputEmitterRef<void>;
12504
13021
  /** Emitted when the user activates the eyedropper in the View tab. */
12505
13022
  readonly toggleEyedropper: _angular_core.OutputEmitterRef<void>;
12506
- /**
12507
- * Emitted when the user clicks "SmartArt" in the Insert tab. The host opens
12508
- * the Insert SmartArt gallery dialog and performs the actual insert, so the
12509
- * ribbon stays free of the dialog state and node-building logic.
12510
- */
13023
+ /** "SmartArt" in the Insert tab; the host opens the gallery dialog and does the insert. */
12511
13024
  readonly openSmartArtDialog: _angular_core.OutputEmitterRef<void>;
12512
13025
  /** Emitted when the user clicks "Equation" in the Insert tab (opens the editor). */
12513
13026
  readonly openEquationDialog: _angular_core.OutputEmitterRef<void>;
@@ -12523,43 +13036,30 @@ declare class RibbonComponent {
12523
13036
  readonly openVersionHistory: _angular_core.OutputEmitterRef<void>;
12524
13037
  /** Emitted when the user clicks "Shortcuts" in the Help tab. */
12525
13038
  readonly openShortcuts: _angular_core.OutputEmitterRef<void>;
13039
+ /** Emitted when the user opens viewer preferences from the Help tab. */
13040
+ readonly openSettings: _angular_core.OutputEmitterRef<void>;
12526
13041
  /** Emitted when a shape is inserted from the Drawing group. */
12527
13042
  readonly shapeInsert: _angular_core.OutputEmitterRef<string>;
12528
13043
  /** Emitted when the user reorders an element layer (up/down). */
12529
13044
  readonly moveLayer: _angular_core.OutputEmitterRef<string>;
12530
13045
  /** Emitted when the user moves an element to front/back. */
12531
13046
  readonly moveLayerToEdge: _angular_core.OutputEmitterRef<string>;
12532
- protected readonly tabs: readonly TabDef[];
12533
- /** Shared class tokens for the tab-row Record button. */
12534
- protected readonly tra: {
12535
- readonly record: "inline-flex items-center gap-1.5 px-2.5 py-1 mr-1 rounded-sm text-[11px] font-medium text-foreground hover:bg-accent/60 transition-colors whitespace-nowrap";
12536
- readonly recordDot: "w-2 h-2 rounded-full bg-red-600 shrink-0";
12537
- };
12538
13047
  protected readonly activeTab: _angular_core.WritableSignal<RibbonTab>;
12539
13048
  /** Ribbon content expanded (true) vs collapsed to just the tab bar (false). */
12540
13049
  protected readonly ribbonExpanded: _angular_core.WritableSignal<boolean>;
12541
- /** The chart type currently chosen in the Insert tab dropdown. */
12542
- protected readonly newChartType: _angular_core.WritableSignal<PptxChartType>;
12543
- /** Active drawing tool (UI state only; no ink back-end yet). */
12544
- protected readonly activeTool: _angular_core.WritableSignal<DrawTool>;
12545
- /** Drawing pen colour (UI state only). */
12546
- protected readonly drawingColor: _angular_core.WritableSignal<string>;
12547
- /** Drawing stroke width in pixels (UI state only). */
12548
- protected readonly drawingWidth: _angular_core.WritableSignal<number>;
12549
- /** The transition type currently selected in the ribbon gallery. */
12550
- protected readonly selectedTransition: _angular_core.WritableSignal<PptxTransitionType>;
12551
- /** Transition duration in seconds (round-trips through the UI input). */
12552
- protected readonly transitionDurationSec: _angular_core.WritableSignal<number>;
12553
- /** Sync the draw-tool signals with a Draw-tab change and re-broadcast it. */
12554
- protected onDrawChange(state: DrawToolState): void;
13050
+ /** Route both File Options and Review Language to the real Settings dialog. */
13051
+ protected requestSettings(): void;
13052
+ /** Forward the Review proofing toggle to the viewer-owned live state. */
13053
+ protected setSpellCheck(enabled: boolean): void;
12555
13054
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<RibbonComponent, never>;
12556
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<RibbonComponent, "pptx-ribbon", never, { "slideIndex": { "alias": "slideIndex"; "required": false; "isSignal": true; }; "slideCount": { "alias": "slideCount"; "required": false; "isSignal": true; }; "canEdit": { "alias": "canEdit"; "required": false; "isSignal": true; }; "selectedElement": { "alias": "selectedElement"; "required": false; "isSignal": true; }; "zoomPercent": { "alias": "zoomPercent"; "required": false; "isSignal": true; }; "formatPainterActive": { "alias": "formatPainterActive"; "required": false; "isSignal": true; }; "canActivateFormatPainter": { "alias": "canActivateFormatPainter"; "required": false; "isSignal": true; }; "exporting": { "alias": "exporting"; "required": false; "isSignal": true; }; "showGrid": { "alias": "showGrid"; "required": false; "isSignal": true; }; "showRulers": { "alias": "showRulers"; "required": false; "isSignal": true; }; "showGuides": { "alias": "showGuides"; "required": false; "isSignal": true; }; "snapToGrid": { "alias": "snapToGrid"; "required": false; "isSignal": true; }; "eyedropperActive": { "alias": "eyedropperActive"; "required": false; "isSignal": true; }; "themeGalleryOpen": { "alias": "themeGalleryOpen"; "required": false; "isSignal": true; }; "sidebarCollapsed": { "alias": "sidebarCollapsed"; "required": false; "isSignal": true; }; "inspectorOpen": { "alias": "inspectorOpen"; "required": false; "isSignal": true; }; "commentsOpen": { "alias": "commentsOpen"; "required": false; "isSignal": true; }; "commentCount": { "alias": "commentCount"; "required": false; "isSignal": true; }; "findOpen": { "alias": "findOpen"; "required": false; "isSignal": true; }; "collabConnected": { "alias": "collabConnected"; "required": false; "isSignal": true; }; "connectedCount": { "alias": "connectedCount"; "required": false; "isSignal": true; }; }, { "prev": "prev"; "next": "next"; "zoomIn": "zoomIn"; "zoomOut": "zoomOut"; "zoomReset": "zoomReset"; "find": "find"; "present": "present"; "presenter": "presenter"; "record": "record"; "share": "share"; "broadcast": "broadcast"; "openFile": "openFile"; "save": "save"; "toggleSidebar": "toggleSidebar"; "signatures": "signatures"; "info": "info"; "print": "print"; "comments": "comments"; "a11y": "a11y"; "link": "link"; "openSorter": "openSorter"; "openMasterView": "openMasterView"; "toggleNotes": "toggleNotes"; "toggleFormatPainter": "toggleFormatPainter"; "exportPng": "exportPng"; "exportPdf": "exportPdf"; "exportGif": "exportGif"; "exportVideo": "exportVideo"; "replace": "replace"; "toggleInspector": "toggleInspector"; "drawToolChange": "drawToolChange"; "toggleThemeGallery": "toggleThemeGallery"; "toggleGrid": "toggleGrid"; "toggleRulers": "toggleRulers"; "toggleGuides": "toggleGuides"; "toggleSelectionPane": "toggleSelectionPane"; "openCustomShows": "openCustomShows"; "toggleSnapToGrid": "toggleSnapToGrid"; "toggleEyedropper": "toggleEyedropper"; "openSmartArtDialog": "openSmartArtDialog"; "openEquationDialog": "openEquationDialog"; "openSetUpSlideShow": "openSetUpSlideShow"; "openCompare": "openCompare"; "openPassword": "openPassword"; "openFontEmbedding": "openFontEmbedding"; "openVersionHistory": "openVersionHistory"; "openShortcuts": "openShortcuts"; "shapeInsert": "shapeInsert"; "moveLayer": "moveLayer"; "moveLayerToEdge": "moveLayerToEdge"; }, never, never, true, never>;
13055
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<RibbonComponent, "pptx-ribbon", never, { "slideIndex": { "alias": "slideIndex"; "required": false; "isSignal": true; }; "slideCount": { "alias": "slideCount"; "required": false; "isSignal": true; }; "canEdit": { "alias": "canEdit"; "required": false; "isSignal": true; }; "selectedElement": { "alias": "selectedElement"; "required": false; "isSignal": true; }; "zoomPercent": { "alias": "zoomPercent"; "required": false; "isSignal": true; }; "formatPainterActive": { "alias": "formatPainterActive"; "required": false; "isSignal": true; }; "canActivateFormatPainter": { "alias": "canActivateFormatPainter"; "required": false; "isSignal": true; }; "exporting": { "alias": "exporting"; "required": false; "isSignal": true; }; "hasMacros": { "alias": "hasMacros"; "required": false; "isSignal": true; }; "showGrid": { "alias": "showGrid"; "required": false; "isSignal": true; }; "showRulers": { "alias": "showRulers"; "required": false; "isSignal": true; }; "showGuides": { "alias": "showGuides"; "required": false; "isSignal": true; }; "snapToGrid": { "alias": "snapToGrid"; "required": false; "isSignal": true; }; "snapToShape": { "alias": "snapToShape"; "required": false; "isSignal": true; }; "eyedropperActive": { "alias": "eyedropperActive"; "required": false; "isSignal": true; }; "themeGalleryOpen": { "alias": "themeGalleryOpen"; "required": false; "isSignal": true; }; "sidebarCollapsed": { "alias": "sidebarCollapsed"; "required": false; "isSignal": true; }; "inspectorOpen": { "alias": "inspectorOpen"; "required": false; "isSignal": true; }; "commentsOpen": { "alias": "commentsOpen"; "required": false; "isSignal": true; }; "commentCount": { "alias": "commentCount"; "required": false; "isSignal": true; }; "findOpen": { "alias": "findOpen"; "required": false; "isSignal": true; }; "collabConnected": { "alias": "collabConnected"; "required": false; "isSignal": true; }; "connectedCount": { "alias": "connectedCount"; "required": false; "isSignal": true; }; "spellCheckEnabled": { "alias": "spellCheckEnabled"; "required": false; "isSignal": true; }; "showSubtitles": { "alias": "showSubtitles"; "required": false; "isSignal": true; }; "hiddenActions": { "alias": "hiddenActions"; "required": false; "isSignal": true; }; }, { "prev": "prev"; "next": "next"; "zoomIn": "zoomIn"; "zoomOut": "zoomOut"; "zoomReset": "zoomReset"; "find": "find"; "present": "present"; "presenter": "presenter"; "record": "record"; "presentFromBeginning": "presentFromBeginning"; "rehearseTimings": "rehearseTimings"; "toggleSubtitles": "toggleSubtitles"; "openSubtitleSettings": "openSubtitleSettings"; "recordFromBeginning": "recordFromBeginning"; "recordFromCurrent": "recordFromCurrent"; "spellCheckChange": "spellCheckChange"; "share": "share"; "broadcast": "broadcast"; "openFile": "openFile"; "openRecentFile": "openRecentFile"; "createPresentation": "createPresentation"; "save": "save"; "savePpsx": "savePpsx"; "savePptm": "savePptm"; "packageForSharing": "packageForSharing"; "toggleSidebar": "toggleSidebar"; "signatures": "signatures"; "info": "info"; "print": "print"; "comments": "comments"; "a11y": "a11y"; "link": "link"; "openSorter": "openSorter"; "openMasterView": "openMasterView"; "toggleNotes": "toggleNotes"; "toggleFormatPainter": "toggleFormatPainter"; "exportPng": "exportPng"; "exportPdf": "exportPdf"; "exportGif": "exportGif"; "exportVideo": "exportVideo"; "copySlideAsImage": "copySlideAsImage"; "replace": "replace"; "toggleInspector": "toggleInspector"; "drawToolChange": "drawToolChange"; "toggleThemeGallery": "toggleThemeGallery"; "toggleGrid": "toggleGrid"; "toggleRulers": "toggleRulers"; "toggleGuides": "toggleGuides"; "toggleSelectionPane": "toggleSelectionPane"; "openCustomShows": "openCustomShows"; "toggleSnapToGrid": "toggleSnapToGrid"; "toggleSnapToShape": "toggleSnapToShape"; "addGuide": "addGuide"; "zoomToFit": "zoomToFit"; "toggleEyedropper": "toggleEyedropper"; "openSmartArtDialog": "openSmartArtDialog"; "openEquationDialog": "openEquationDialog"; "openSetUpSlideShow": "openSetUpSlideShow"; "openCompare": "openCompare"; "openPassword": "openPassword"; "openFontEmbedding": "openFontEmbedding"; "openVersionHistory": "openVersionHistory"; "openShortcuts": "openShortcuts"; "openSettings": "openSettings"; "shapeInsert": "shapeInsert"; "moveLayer": "moveLayer"; "moveLayerToEdge": "moveLayerToEdge"; }, never, never, true, never>;
12557
13056
  }
12558
13057
 
12559
13058
  declare class RibbonAnimationsSectionComponent {
12560
13059
  private readonly editor;
12561
13060
  readonly slideIndex: _angular_core.InputSignal<number>;
12562
13061
  readonly selectedElement: _angular_core.InputSignal<PptxElement | null>;
13062
+ readonly canEdit: _angular_core.InputSignal<boolean>;
12563
13063
  readonly present: _angular_core.OutputEmitterRef<void>;
12564
13064
  readonly toggleInspector: _angular_core.OutputEmitterRef<void>;
12565
13065
  protected readonly entrancePresets: readonly {
@@ -12578,6 +13078,7 @@ declare class RibbonAnimationsSectionComponent {
12578
13078
  labelKey: string;
12579
13079
  }[];
12580
13080
  protected hasSel(): boolean;
13081
+ protected canAuthor(): boolean;
12581
13082
  /**
12582
13083
  * Add an animation preset to the selected element on the active slide.
12583
13084
  * Delegates to the immutable helpers in animation-author-helpers.ts and
@@ -12587,7 +13088,7 @@ declare class RibbonAnimationsSectionComponent {
12587
13088
  /** Remove all animations from the selected element. */
12588
13089
  protected removeAnim(): void;
12589
13090
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<RibbonAnimationsSectionComponent, never>;
12590
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<RibbonAnimationsSectionComponent, "pptx-ribbon-animations-section", never, { "slideIndex": { "alias": "slideIndex"; "required": false; "isSignal": true; }; "selectedElement": { "alias": "selectedElement"; "required": false; "isSignal": true; }; }, { "present": "present"; "toggleInspector": "toggleInspector"; }, never, never, true, never>;
13091
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<RibbonAnimationsSectionComponent, "pptx-ribbon-animations-section", never, { "slideIndex": { "alias": "slideIndex"; "required": false; "isSignal": true; }; "selectedElement": { "alias": "selectedElement"; "required": false; "isSignal": true; }; "canEdit": { "alias": "canEdit"; "required": false; "isSignal": true; }; }, { "present": "present"; "toggleInspector": "toggleInspector"; }, never, never, true, never>;
12591
13092
  }
12592
13093
 
12593
13094
  declare class RibbonArrangeSectionComponent {
@@ -12650,15 +13151,34 @@ declare class RibbonEditingSectionComponent {
12650
13151
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<RibbonEditingSectionComponent, "pptx-ribbon-editing-section", never, {}, { "toggleFindReplace": "toggleFindReplace"; "selectAll": "selectAll"; }, never, never, true, never>;
12651
13152
  }
12652
13153
 
13154
+ interface BackstageAction {
13155
+ title: string;
13156
+ body: string;
13157
+ icon: string;
13158
+ event: {
13159
+ emit: () => void;
13160
+ };
13161
+ }
12653
13162
  declare class RibbonFileSectionComponent {
13163
+ readonly fileName: _angular_core.InputSignal<string | undefined>;
12654
13164
  readonly slideCount: _angular_core.InputSignal<number>;
12655
13165
  readonly exporting: _angular_core.InputSignal<boolean>;
13166
+ readonly hasMacros: _angular_core.InputSignal<boolean>;
13167
+ /** Toolbar buttons the host wants hidden (drops the Export nav entry/page). */
13168
+ readonly hiddenActions: _angular_core.InputSignal<ToolbarActionId[]>;
13169
+ readonly close: _angular_core.OutputEmitterRef<void>;
13170
+ readonly createPresentation: _angular_core.OutputEmitterRef<string>;
12656
13171
  readonly openFile: _angular_core.OutputEmitterRef<void>;
13172
+ readonly openRecentFile: _angular_core.OutputEmitterRef<string>;
12657
13173
  readonly save: _angular_core.OutputEmitterRef<void>;
13174
+ readonly savePpsx: _angular_core.OutputEmitterRef<void>;
13175
+ readonly savePptm: _angular_core.OutputEmitterRef<void>;
13176
+ readonly packageForSharing: _angular_core.OutputEmitterRef<void>;
12658
13177
  readonly exportPng: _angular_core.OutputEmitterRef<void>;
12659
13178
  readonly exportPdf: _angular_core.OutputEmitterRef<void>;
12660
13179
  readonly exportGif: _angular_core.OutputEmitterRef<void>;
12661
13180
  readonly exportVideo: _angular_core.OutputEmitterRef<void>;
13181
+ readonly copySlideAsImage: _angular_core.OutputEmitterRef<void>;
12662
13182
  readonly print: _angular_core.OutputEmitterRef<void>;
12663
13183
  readonly info: _angular_core.OutputEmitterRef<void>;
12664
13184
  readonly signatures: _angular_core.OutputEmitterRef<void>;
@@ -12666,8 +13186,38 @@ declare class RibbonFileSectionComponent {
12666
13186
  readonly openPassword: _angular_core.OutputEmitterRef<void>;
12667
13187
  readonly openFontEmbedding: _angular_core.OutputEmitterRef<void>;
12668
13188
  readonly openVersionHistory: _angular_core.OutputEmitterRef<void>;
13189
+ readonly share: _angular_core.OutputEmitterRef<void>;
13190
+ readonly options: _angular_core.OutputEmitterRef<void>;
13191
+ protected readonly templates: readonly BackstageTemplate[];
13192
+ protected readonly mainNav: _angular_core.Signal<readonly {
13193
+ id: BackstagePage;
13194
+ label: string;
13195
+ group?: "footer";
13196
+ }[]>;
13197
+ protected readonly footerNav: {
13198
+ id: BackstagePage;
13199
+ label: string;
13200
+ group?: "footer";
13201
+ }[];
13202
+ protected readonly page: _angular_core.WritableSignal<BackstagePage>;
13203
+ protected readonly query: _angular_core.WritableSignal<string>;
13204
+ protected readonly recent: _angular_core.WritableSignal<BackstageRecentFile[]>;
13205
+ protected readonly title: _angular_core.Signal<string>;
13206
+ protected readonly visibleRecent: _angular_core.Signal<BackstageRecentFile[]>;
13207
+ protected readonly date: typeof formatBackstageDate;
13208
+ protected readonly size: typeof formatBackstageSize;
13209
+ protected readonly actions: _angular_core.Signal<BackstageAction[]>;
13210
+ constructor();
13211
+ protected selectPage(id: BackstagePage): void;
13212
+ protected run(event: {
13213
+ emit: () => void;
13214
+ }): void;
13215
+ protected create(templateId: string): void;
13216
+ protected openRecent(key: string): void;
13217
+ private action;
13218
+ private pageActions;
12669
13219
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<RibbonFileSectionComponent, never>;
12670
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<RibbonFileSectionComponent, "pptx-ribbon-file-section", never, { "slideCount": { "alias": "slideCount"; "required": false; "isSignal": true; }; "exporting": { "alias": "exporting"; "required": false; "isSignal": true; }; }, { "openFile": "openFile"; "save": "save"; "exportPng": "exportPng"; "exportPdf": "exportPdf"; "exportGif": "exportGif"; "exportVideo": "exportVideo"; "print": "print"; "info": "info"; "signatures": "signatures"; "replace": "replace"; "openPassword": "openPassword"; "openFontEmbedding": "openFontEmbedding"; "openVersionHistory": "openVersionHistory"; }, never, never, true, never>;
13220
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<RibbonFileSectionComponent, "pptx-ribbon-file-section", never, { "fileName": { "alias": "fileName"; "required": false; "isSignal": true; }; "slideCount": { "alias": "slideCount"; "required": false; "isSignal": true; }; "exporting": { "alias": "exporting"; "required": false; "isSignal": true; }; "hasMacros": { "alias": "hasMacros"; "required": false; "isSignal": true; }; "hiddenActions": { "alias": "hiddenActions"; "required": false; "isSignal": true; }; }, { "close": "close"; "createPresentation": "createPresentation"; "openFile": "openFile"; "openRecentFile": "openRecentFile"; "save": "save"; "savePpsx": "savePpsx"; "savePptm": "savePptm"; "packageForSharing": "packageForSharing"; "exportPng": "exportPng"; "exportPdf": "exportPdf"; "exportGif": "exportGif"; "exportVideo": "exportVideo"; "copySlideAsImage": "copySlideAsImage"; "print": "print"; "info": "info"; "signatures": "signatures"; "replace": "replace"; "openPassword": "openPassword"; "openFontEmbedding": "openFontEmbedding"; "openVersionHistory": "openVersionHistory"; "share": "share"; "options": "options"; }, never, never, true, never>;
12671
13221
  }
12672
13222
 
12673
13223
  declare class RibbonFontControlsComponent {
@@ -12724,14 +13274,13 @@ declare class RibbonHomeSectionComponent {
12724
13274
  readonly findReplace: _angular_core.OutputEmitterRef<void>;
12725
13275
  readonly applyLayout: _angular_core.OutputEmitterRef<string>;
12726
13276
  readonly resetSlide: _angular_core.OutputEmitterRef<void>;
12727
- readonly addSection: _angular_core.OutputEmitterRef<void>;
12728
13277
  protected hasSel(): boolean;
12729
13278
  protected copy(): void;
12730
13279
  protected cut(): void;
12731
13280
  protected paste(): void;
12732
13281
  protected onSelectAll(): void;
12733
13282
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<RibbonHomeSectionComponent, never>;
12734
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<RibbonHomeSectionComponent, "pptx-ribbon-home-section", never, { "slideIndex": { "alias": "slideIndex"; "required": false; "isSignal": true; }; "selectedElement": { "alias": "selectedElement"; "required": false; "isSignal": true; }; "formatPainterActive": { "alias": "formatPainterActive"; "required": false; "isSignal": true; }; "canActivateFormatPainter": { "alias": "canActivateFormatPainter"; "required": false; "isSignal": true; }; }, { "toggleFormatPainter": "toggleFormatPainter"; "findReplace": "findReplace"; "applyLayout": "applyLayout"; "resetSlide": "resetSlide"; "addSection": "addSection"; }, never, never, true, never>;
13283
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<RibbonHomeSectionComponent, "pptx-ribbon-home-section", never, { "slideIndex": { "alias": "slideIndex"; "required": false; "isSignal": true; }; "selectedElement": { "alias": "selectedElement"; "required": false; "isSignal": true; }; "formatPainterActive": { "alias": "formatPainterActive"; "required": false; "isSignal": true; }; "canActivateFormatPainter": { "alias": "canActivateFormatPainter"; "required": false; "isSignal": true; }; }, { "toggleFormatPainter": "toggleFormatPainter"; "findReplace": "findReplace"; "applyLayout": "applyLayout"; "resetSlide": "resetSlide"; }, never, never, true, never>;
12735
13284
  }
12736
13285
 
12737
13286
  declare class RibbonInsertFieldsComponent {
@@ -12834,6 +13383,8 @@ declare class RibbonPrimaryRowComponent {
12834
13383
  readonly inspectorOpen: _angular_core.InputSignal<boolean>;
12835
13384
  readonly commentsOpen: _angular_core.InputSignal<boolean>;
12836
13385
  readonly commentCount: _angular_core.InputSignal<number>;
13386
+ /** Toolbar buttons the host wants hidden (gates Broadcast + the export overflow items). */
13387
+ readonly hiddenActions: _angular_core.InputSignal<ToolbarActionId[]>;
12837
13388
  readonly toggleSidebar: _angular_core.OutputEmitterRef<void>;
12838
13389
  readonly toggleComments: _angular_core.OutputEmitterRef<void>;
12839
13390
  readonly present: _angular_core.OutputEmitterRef<void>;
@@ -12851,39 +13402,50 @@ declare class RibbonPrimaryRowComponent {
12851
13402
  readonly save: _angular_core.OutputEmitterRef<void>;
12852
13403
  protected readonly presentMenuOpen: _angular_core.WritableSignal<boolean>;
12853
13404
  protected readonly overflowOpen: _angular_core.WritableSignal<boolean>;
12854
- /** Overflow menu items (mirrors React's File/overflow actions that exist here). */
12855
- protected readonly overflowItems: ReadonlyArray<{
13405
+ protected readonly toolbar: ToolbarVisibility;
13406
+ protected readonly overflowItems: _angular_core.Signal<readonly {
12856
13407
  key: string;
12857
13408
  labelKey: string;
12858
13409
  needsSlides?: boolean;
12859
- }>;
13410
+ }[]>;
12860
13411
  protected onOverflow(key: string): void;
12861
13412
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<RibbonPrimaryRowComponent, never>;
12862
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<RibbonPrimaryRowComponent, "pptx-ribbon-primary-row", never, { "slideCount": { "alias": "slideCount"; "required": false; "isSignal": true; }; "sidebarCollapsed": { "alias": "sidebarCollapsed"; "required": false; "isSignal": true; }; "inspectorOpen": { "alias": "inspectorOpen"; "required": false; "isSignal": true; }; "commentsOpen": { "alias": "commentsOpen"; "required": false; "isSignal": true; }; "commentCount": { "alias": "commentCount"; "required": false; "isSignal": true; }; }, { "toggleSidebar": "toggleSidebar"; "toggleComments": "toggleComments"; "present": "present"; "presenter": "presenter"; "broadcast": "broadcast"; "openCustomShows": "openCustomShows"; "toggleInspector": "toggleInspector"; "exportPng": "exportPng"; "exportPdf": "exportPdf"; "exportGif": "exportGif"; "exportVideo": "exportVideo"; "print": "print"; "info": "info"; "a11y": "a11y"; "save": "save"; }, never, never, true, never>;
13413
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<RibbonPrimaryRowComponent, "pptx-ribbon-primary-row", never, { "slideCount": { "alias": "slideCount"; "required": false; "isSignal": true; }; "sidebarCollapsed": { "alias": "sidebarCollapsed"; "required": false; "isSignal": true; }; "inspectorOpen": { "alias": "inspectorOpen"; "required": false; "isSignal": true; }; "commentsOpen": { "alias": "commentsOpen"; "required": false; "isSignal": true; }; "commentCount": { "alias": "commentCount"; "required": false; "isSignal": true; }; "hiddenActions": { "alias": "hiddenActions"; "required": false; "isSignal": true; }; }, { "toggleSidebar": "toggleSidebar"; "toggleComments": "toggleComments"; "present": "present"; "presenter": "presenter"; "broadcast": "broadcast"; "openCustomShows": "openCustomShows"; "toggleInspector": "toggleInspector"; "exportPng": "exportPng"; "exportPdf": "exportPdf"; "exportGif": "exportGif"; "exportVideo": "exportVideo"; "print": "print"; "info": "info"; "a11y": "a11y"; "save": "save"; }, never, never, true, never>;
12863
13414
  }
12864
13415
 
12865
13416
  declare class RibbonReviewSectionComponent {
12866
13417
  private readonly editor;
13418
+ readonly spellCheckEnabled: _angular_core.InputSignal<boolean>;
13419
+ readonly canEdit: _angular_core.InputSignal<boolean>;
12867
13420
  readonly comments: _angular_core.OutputEmitterRef<void>;
12868
- readonly spelling: _angular_core.OutputEmitterRef<void>;
13421
+ readonly spellCheckChange: _angular_core.OutputEmitterRef<boolean>;
12869
13422
  readonly a11y: _angular_core.OutputEmitterRef<void>;
12870
13423
  readonly openCompare: _angular_core.OutputEmitterRef<void>;
12871
13424
  readonly language: _angular_core.OutputEmitterRef<void>;
12872
13425
  readonly link: _angular_core.OutputEmitterRef<void>;
12873
13426
  protected hasSel(): boolean;
12874
13427
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<RibbonReviewSectionComponent, never>;
12875
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<RibbonReviewSectionComponent, "pptx-ribbon-review-section", never, {}, { "comments": "comments"; "spelling": "spelling"; "a11y": "a11y"; "openCompare": "openCompare"; "language": "language"; "link": "link"; }, never, never, true, never>;
13428
+ 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>;
12876
13429
  }
12877
13430
 
12878
13431
  declare class RibbonSlideshowSectionComponent {
12879
13432
  readonly slideCount: _angular_core.InputSignal<number>;
12880
- readonly present: _angular_core.OutputEmitterRef<void>;
13433
+ readonly showSubtitles: _angular_core.InputSignal<boolean>;
13434
+ /** Toolbar buttons the host wants hidden (gates Broadcast). */
13435
+ readonly hiddenActions: _angular_core.InputSignal<ToolbarActionId[]>;
13436
+ readonly presentFromBeginning: _angular_core.OutputEmitterRef<void>;
13437
+ readonly presentFromCurrent: _angular_core.OutputEmitterRef<void>;
12881
13438
  readonly presenter: _angular_core.OutputEmitterRef<void>;
12882
13439
  readonly broadcast: _angular_core.OutputEmitterRef<void>;
12883
13440
  readonly openCustomShows: _angular_core.OutputEmitterRef<void>;
12884
13441
  readonly openSetUpSlideShow: _angular_core.OutputEmitterRef<void>;
13442
+ readonly rehearseTimings: _angular_core.OutputEmitterRef<void>;
13443
+ readonly record: _angular_core.OutputEmitterRef<void>;
13444
+ readonly toggleSubtitles: _angular_core.OutputEmitterRef<void>;
13445
+ readonly openSubtitleSettings: _angular_core.OutputEmitterRef<void>;
13446
+ protected readonly toolbar: ToolbarVisibility;
12885
13447
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<RibbonSlideshowSectionComponent, never>;
12886
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<RibbonSlideshowSectionComponent, "pptx-ribbon-slideshow-section", never, { "slideCount": { "alias": "slideCount"; "required": false; "isSignal": true; }; }, { "present": "present"; "presenter": "presenter"; "broadcast": "broadcast"; "openCustomShows": "openCustomShows"; "openSetUpSlideShow": "openSetUpSlideShow"; }, never, never, true, never>;
13448
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<RibbonSlideshowSectionComponent, "pptx-ribbon-slideshow-section", never, { "slideCount": { "alias": "slideCount"; "required": false; "isSignal": true; }; "showSubtitles": { "alias": "showSubtitles"; "required": false; "isSignal": true; }; "hiddenActions": { "alias": "hiddenActions"; "required": false; "isSignal": true; }; }, { "presentFromBeginning": "presentFromBeginning"; "presentFromCurrent": "presentFromCurrent"; "presenter": "presenter"; "broadcast": "broadcast"; "openCustomShows": "openCustomShows"; "openSetUpSlideShow": "openSetUpSlideShow"; "rehearseTimings": "rehearseTimings"; "record": "record"; "toggleSubtitles": "toggleSubtitles"; "openSubtitleSettings": "openSubtitleSettings"; }, never, never, true, never>;
12887
13449
  }
12888
13450
 
12889
13451
  /** The selection's text style, or null when the element carries no text props. */
@@ -12930,6 +13492,7 @@ declare class RibbonViewSectionComponent {
12930
13492
  readonly showRulers: _angular_core.InputSignal<boolean>;
12931
13493
  readonly showGuides: _angular_core.InputSignal<boolean>;
12932
13494
  readonly snapToGrid: _angular_core.InputSignal<boolean>;
13495
+ readonly snapToShape: _angular_core.InputSignal<boolean>;
12933
13496
  readonly eyedropperActive: _angular_core.InputSignal<boolean>;
12934
13497
  readonly openSorter: _angular_core.OutputEmitterRef<void>;
12935
13498
  readonly toggleNotes: _angular_core.OutputEmitterRef<void>;
@@ -12941,9 +13504,12 @@ declare class RibbonViewSectionComponent {
12941
13504
  readonly toggleGuides: _angular_core.OutputEmitterRef<void>;
12942
13505
  readonly toggleSelectionPane: _angular_core.OutputEmitterRef<void>;
12943
13506
  readonly toggleSnapToGrid: _angular_core.OutputEmitterRef<void>;
13507
+ readonly toggleSnapToShape: _angular_core.OutputEmitterRef<void>;
13508
+ readonly addGuide: _angular_core.OutputEmitterRef<"x" | "y">;
13509
+ readonly zoomToFit: _angular_core.OutputEmitterRef<void>;
12944
13510
  readonly toggleEyedropper: _angular_core.OutputEmitterRef<void>;
12945
13511
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<RibbonViewSectionComponent, never>;
12946
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<RibbonViewSectionComponent, "pptx-ribbon-view-section", never, { "canEdit": { "alias": "canEdit"; "required": false; "isSignal": true; }; "showGrid": { "alias": "showGrid"; "required": false; "isSignal": true; }; "showRulers": { "alias": "showRulers"; "required": false; "isSignal": true; }; "showGuides": { "alias": "showGuides"; "required": false; "isSignal": true; }; "snapToGrid": { "alias": "snapToGrid"; "required": false; "isSignal": true; }; "eyedropperActive": { "alias": "eyedropperActive"; "required": false; "isSignal": true; }; }, { "openSorter": "openSorter"; "toggleNotes": "toggleNotes"; "print": "print"; "openShortcuts": "openShortcuts"; "openMasterView": "openMasterView"; "toggleGrid": "toggleGrid"; "toggleRulers": "toggleRulers"; "toggleGuides": "toggleGuides"; "toggleSelectionPane": "toggleSelectionPane"; "toggleSnapToGrid": "toggleSnapToGrid"; "toggleEyedropper": "toggleEyedropper"; }, never, never, true, never>;
13512
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<RibbonViewSectionComponent, "pptx-ribbon-view-section", never, { "canEdit": { "alias": "canEdit"; "required": false; "isSignal": true; }; "showGrid": { "alias": "showGrid"; "required": false; "isSignal": true; }; "showRulers": { "alias": "showRulers"; "required": false; "isSignal": true; }; "showGuides": { "alias": "showGuides"; "required": false; "isSignal": true; }; "snapToGrid": { "alias": "snapToGrid"; "required": false; "isSignal": true; }; "snapToShape": { "alias": "snapToShape"; "required": false; "isSignal": true; }; "eyedropperActive": { "alias": "eyedropperActive"; "required": false; "isSignal": true; }; }, { "openSorter": "openSorter"; "toggleNotes": "toggleNotes"; "print": "print"; "openShortcuts": "openShortcuts"; "openMasterView": "openMasterView"; "toggleGrid": "toggleGrid"; "toggleRulers": "toggleRulers"; "toggleGuides": "toggleGuides"; "toggleSelectionPane": "toggleSelectionPane"; "toggleSnapToGrid": "toggleSnapToGrid"; "toggleSnapToShape": "toggleSnapToShape"; "addGuide": "addGuide"; "zoomToFit": "zoomToFit"; "toggleEyedropper": "toggleEyedropper"; }, never, never, true, never>;
12947
13513
  }
12948
13514
 
12949
13515
  /**
@@ -13013,95 +13579,6 @@ declare function prevVisibleIndex(current: number, slides: readonly PptxSlide[])
13013
13579
  */
13014
13580
  declare function fitZoom(canvasW: number, canvasH: number, vw: number, vh: number): number;
13015
13581
 
13016
- /**
13017
- * presentation-subtitle-helpers.ts: Pure helpers for the subtitle/caption bar.
13018
- *
13019
- * Isolates all text-segment logic so it can be unit-tested without DOM or
13020
- * Angular dependencies.
13021
- *
13022
- * Ported from React:
13023
- * packages/react/src/viewer/components/PresentationSubtitleBar.tsx
13024
- */
13025
- /**
13026
- * A single speech recognition alternative (best-guess transcript + confidence).
13027
- * Matches the shape of the Web Speech API `SpeechRecognitionAlternative`.
13028
- */
13029
- interface SpeechAlternative {
13030
- readonly transcript: string;
13031
- readonly confidence: number;
13032
- }
13033
- /**
13034
- * One result from the recognition engine: array of alternatives plus a
13035
- * `isFinal` flag that indicates whether this result is stable (true) or
13036
- * still being refined (false, i.e. interim).
13037
- */
13038
- interface SpeechResult {
13039
- readonly isFinal: boolean;
13040
- readonly length: number;
13041
- readonly [index: number]: SpeechAlternative;
13042
- }
13043
- /**
13044
- * The list of all results accumulated in a recognition session.
13045
- */
13046
- interface SpeechResultList {
13047
- readonly length: number;
13048
- readonly [index: number]: SpeechResult;
13049
- }
13050
- /**
13051
- * Subset of `SpeechRecognitionEvent`: just what we need.
13052
- */
13053
- interface SpeechRecognitionEventLite {
13054
- readonly resultIndex: number;
13055
- readonly results: SpeechResultList;
13056
- }
13057
- /**
13058
- * Structural interface matching the Web Speech API `SpeechRecognition` object.
13059
- * Kept minimal so we only depend on what we actually use.
13060
- */
13061
- interface SpeechRecognitionLite extends EventTarget {
13062
- continuous: boolean;
13063
- interimResults: boolean;
13064
- lang: string;
13065
- onresult: ((event: SpeechRecognitionEventLite) => void) | null;
13066
- onerror: ((event: Event) => void) | null;
13067
- onend: (() => void) | null;
13068
- start: () => void;
13069
- stop: () => void;
13070
- }
13071
- /** Constructor signature for the speech recognition object. */
13072
- type SpeechRecognitionCtor = new () => SpeechRecognitionLite;
13073
- /**
13074
- * Merge the results from a `SpeechRecognitionEventLite` (starting at
13075
- * `resultIndex`) into a single caption string.
13076
- *
13077
- * Final results form the stable prefix; interim results form the unstable
13078
- * suffix. Both are joined and the combined string is trimmed.
13079
- *
13080
- * @param event The recognition event from `onresult`.
13081
- * @param resultIndex `event.resultIndex`: the first new result index.
13082
- * @param results `event.results`: the full results list.
13083
- * @returns The merged caption string, or `''` if nothing recognised.
13084
- */
13085
- declare function mergeCaptionResults(resultIndex: number, results: SpeechResultList): string;
13086
- /**
13087
- * Attempt to obtain the `SpeechRecognition` constructor from `globalThis`
13088
- * (browser `window`). Returns `null` when unavailable (SSR / unsupported
13089
- * browsers / Firefox without the flag enabled).
13090
- *
13091
- * Checks both the standard and the webkit-prefixed name.
13092
- */
13093
- declare function getSpeechRecognitionCtor(): SpeechRecognitionCtor | null;
13094
- /** Possible support states for the Web Speech API in this environment. */
13095
- type SpeechSupportState = 'unknown' | 'supported' | 'unsupported';
13096
- /**
13097
- * Compute the text to display in the caption bar.
13098
- *
13099
- * - When the API is unsupported, returns `fallbackNotSupported`.
13100
- * - When supported but no text has been captured yet, returns `fallbackListening`.
13101
- * - Otherwise returns the captured text.
13102
- */
13103
- declare function captionDisplayText(supportState: SpeechSupportState, captionText: string, fallbackNotSupported: string, fallbackListening: string): string;
13104
-
13105
13582
  /**
13106
13583
  * touch-gestures.ts: thin Angular adapter over the framework-agnostic
13107
13584
  * `createTouchGestureRecognizer` from `pptx-viewer-shared`.
@@ -13174,21 +13651,6 @@ interface SwipeDismissDrag {
13174
13651
  */
13175
13652
  declare function createSwipeDismissDrag(onDismiss: () => void): SwipeDismissDrag;
13176
13653
 
13177
- /**
13178
- * shortcut-reference.ts: Keyboard shortcut cheat-sheet data.
13179
- *
13180
- * Angular copy of the React constant `SHORTCUT_REFERENCE_ITEMS` from
13181
- * `packages/react/src/viewer/constants/toolbar.ts`. Kept as a tiny, purely
13182
- * declarative data module so the `pptx-shortcut-panel` component stays thin.
13183
- * Entries are copied verbatim from the React source and must stay in sync.
13184
- */
13185
- /** A single row in the keyboard-shortcut reference list. */
13186
- interface ShortcutReferenceItem {
13187
- actionKey: string;
13188
- shortcut: string;
13189
- }
13190
- declare const SHORTCUT_REFERENCE_ITEMS: ShortcutReferenceItem[];
13191
-
13192
13654
  /**
13193
13655
  * collaboration-providers.ts: transport factories for the Angular
13194
13656
  * collaboration service.
@@ -13299,6 +13761,30 @@ declare class WriteBackScheduler {
13299
13761
  cancel(): void;
13300
13762
  }
13301
13763
 
13764
+ /**
13765
+ * Pure (Angular-free) helpers for the `<a:clrChange>` colour-change image
13766
+ * effect. Kept out of the component so they can be unit-tested without TestBed
13767
+ * or a DOM, mirroring `model3d-renderer-helpers.ts`.
13768
+ */
13769
+ /** Parsed `<a:clrChange>` parameters needed to drive the chroma-key. */
13770
+ interface ClrChangeParams {
13771
+ clrFrom: string;
13772
+ clrTo: string;
13773
+ /** Whether the target colour becomes fully transparent (alpha = 0). */
13774
+ clrToTransparent: boolean;
13775
+ /** Match tolerance percentage (0-100). */
13776
+ tolerance: number;
13777
+ }
13778
+ /**
13779
+ * Extract the colour-change effect from an element, or `undefined` when the
13780
+ * element carries no `imageEffects.clrChange` (or its `clrFrom` is empty).
13781
+ *
13782
+ * `clrFrom` is the source colour that must be present for the effect to do
13783
+ * anything, so a blank `clrFrom` is treated as "no effect" (matching React,
13784
+ * where the `clrChange` branch only fires when a valid effect object exists).
13785
+ */
13786
+ declare function getClrChangeParams(el: PptxElement): ClrChangeParams | undefined;
13787
+
13302
13788
  /**
13303
13789
  * Pure helpers for {@link MediaRendererComponent}, mirroring React's
13304
13790
  * `media-render.tsx` / `media-persistent-audio.tsx`. Kept TestBed-free so the
@@ -13660,18 +14146,21 @@ declare class ThemeGalleryComponent {
13660
14146
  * Matches `PptxTheme.name`.
13661
14147
  */
13662
14148
  readonly activeName: _angular_core.InputSignal<string | undefined>;
14149
+ readonly theme: _angular_core.InputSignal<PptxTheme | undefined>;
13663
14150
  /** Emitted when the user confirms a selection. */
13664
14151
  readonly applyTheme: _angular_core.OutputEmitterRef<PptxThemePreset>;
14152
+ readonly applyCustomTheme: _angular_core.OutputEmitterRef<CustomThemeEdit>;
13665
14153
  /** Emitted when the user cancels (backdrop click, Close button, Cancel button). */
13666
14154
  readonly close: _angular_core.OutputEmitterRef<void>;
13667
14155
  protected readonly presets: readonly PptxThemePreset[];
13668
14156
  /** The currently highlighted (not yet applied) preset, or null. */
13669
14157
  protected readonly selected: _angular_core.WritableSignal<PptxThemePreset | null>;
14158
+ protected readonly customizing: _angular_core.WritableSignal<boolean>;
13670
14159
  protected selectPreset(preset: PptxThemePreset): void;
13671
14160
  protected applySelected(): void;
13672
14161
  protected onBackdropClick(event: MouseEvent): void;
13673
14162
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ThemeGalleryComponent, never>;
13674
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<ThemeGalleryComponent, "pptx-theme-gallery", never, { "open": { "alias": "open"; "required": false; "isSignal": true; }; "activeName": { "alias": "activeName"; "required": false; "isSignal": true; }; }, { "applyTheme": "applyTheme"; "close": "close"; }, never, never, true, never>;
14163
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ThemeGalleryComponent, "pptx-theme-gallery", never, { "open": { "alias": "open"; "required": false; "isSignal": true; }; "activeName": { "alias": "activeName"; "required": false; "isSignal": true; }; "theme": { "alias": "theme"; "required": false; "isSignal": true; }; }, { "applyTheme": "applyTheme"; "applyCustomTheme": "applyCustomTheme"; "close": "close"; }, never, never, true, never>;
13675
14164
  }
13676
14165
 
13677
14166
  /**
@@ -13716,6 +14205,8 @@ declare class TitleBarComponent {
13716
14205
  readonly redoLabel: _angular_core.InputSignal<string | undefined>;
13717
14206
  /** Whether the Find & Replace panel is open (search-button active state). */
13718
14207
  readonly findReplaceOpen: _angular_core.InputSignal<boolean>;
14208
+ /** Toolbar buttons the host wants hidden (gates Undo/Redo independently). */
14209
+ readonly hiddenActions: _angular_core.InputSignal<ToolbarActionId[]>;
13719
14210
  readonly toggleAutosave: _angular_core.OutputEmitterRef<void>;
13720
14211
  readonly save: _angular_core.OutputEmitterRef<void>;
13721
14212
  readonly undo: _angular_core.OutputEmitterRef<void>;
@@ -13749,6 +14240,7 @@ declare class TitleBarComponent {
13749
14240
  readonly rightSpacer: "flex items-center justify-end gap-1 shrink-0";
13750
14241
  };
13751
14242
  protected readonly defaultFileKey = "pptx.titleBar.defaultFileName";
14243
+ protected readonly toolbar: ToolbarVisibility;
13752
14244
  protected readonly searchQuery: _angular_core.WritableSignal<string>;
13753
14245
  protected readonly searchFocused: _angular_core.WritableSignal<boolean>;
13754
14246
  protected readonly commandResults: _angular_core.Signal<CommandSearchEntry[]>;
@@ -13761,7 +14253,7 @@ declare class TitleBarComponent {
13761
14253
  protected onSearchBlur(): void;
13762
14254
  protected onSearchKeyDown(event: KeyboardEvent): void;
13763
14255
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<TitleBarComponent, never>;
13764
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<TitleBarComponent, "pptx-title-bar", never, { "canEdit": { "alias": "canEdit"; "required": false; "isSignal": true; }; "fileName": { "alias": "fileName"; "required": false; "isSignal": true; }; "isDirty": { "alias": "isDirty"; "required": false; "isSignal": true; }; "autosaveStatus": { "alias": "autosaveStatus"; "required": false; "isSignal": true; }; "autosaveEnabled": { "alias": "autosaveEnabled"; "required": false; "isSignal": true; }; "canUndo": { "alias": "canUndo"; "required": false; "isSignal": true; }; "canRedo": { "alias": "canRedo"; "required": false; "isSignal": true; }; "undoLabel": { "alias": "undoLabel"; "required": false; "isSignal": true; }; "redoLabel": { "alias": "redoLabel"; "required": false; "isSignal": true; }; "findReplaceOpen": { "alias": "findReplaceOpen"; "required": false; "isSignal": true; }; }, { "toggleAutosave": "toggleAutosave"; "save": "save"; "undo": "undo"; "redo": "redo"; "toggleFindReplace": "toggleFindReplace"; "commandSearch": "commandSearch"; }, never, never, true, never>;
14256
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TitleBarComponent, "pptx-title-bar", never, { "canEdit": { "alias": "canEdit"; "required": false; "isSignal": true; }; "fileName": { "alias": "fileName"; "required": false; "isSignal": true; }; "isDirty": { "alias": "isDirty"; "required": false; "isSignal": true; }; "autosaveStatus": { "alias": "autosaveStatus"; "required": false; "isSignal": true; }; "autosaveEnabled": { "alias": "autosaveEnabled"; "required": false; "isSignal": true; }; "canUndo": { "alias": "canUndo"; "required": false; "isSignal": true; }; "canRedo": { "alias": "canRedo"; "required": false; "isSignal": true; }; "undoLabel": { "alias": "undoLabel"; "required": false; "isSignal": true; }; "redoLabel": { "alias": "redoLabel"; "required": false; "isSignal": true; }; "findReplaceOpen": { "alias": "findReplaceOpen"; "required": false; "isSignal": true; }; "hiddenActions": { "alias": "hiddenActions"; "required": false; "isSignal": true; }; }, { "toggleAutosave": "toggleAutosave"; "save": "save"; "undo": "undo"; "redo": "redo"; "toggleFindReplace": "toggleFindReplace"; "commandSearch": "commandSearch"; }, never, never, true, never>;
13765
14257
  }
13766
14258
 
13767
14259
  /**
@@ -13871,5 +14363,5 @@ declare const SEQUENCE_OPTIONS: ReadonlyArray<{
13871
14363
  labelKey: string;
13872
14364
  }>;
13873
14365
 
13874
- export { ALIGN_OPTIONS, AUDIENCE_HASH, AUDIENCE_NONCE_KEY, AccessibilityPanelComponent, AccessibilityService, AdvancedChartEditorComponent, AnimationAuthorPanelComponent, AnimationPanelComponent, AnimationPlaybackService, AutosaveService, BroadcastDialogComponent, CHART_EDITOR_STYLES, CURSOR_PALETTE, CanvasFitService, ChartAxisOptionsComponent, ChartAxisStyleOptionsComponent, ChartComboTypeOptionsComponent, ChartDataEditorComponent, ChartDataLabelOptionsComponent, ChartDatapointOptionsComponent, ChartDisplayOptionsComponent, ChartElementViewComponent, ChartErrorBarOptionsComponent, ChartMarkerOptionsComponent, ChartPartSelectionService, ChartPrimitivesComponent, ChartRendererComponent, ChartTrendlineOptionsComponent, CollaborationCursorsComponent, CollaborationService, ColorChangedImageComponent, CommentsPanelComponent, CommentsService, ComparePanelComponent, ConnectorRendererComponent, ConnectorTextOverlayComponent, CustomShowsComponent, DATA_TABLE_HEADER_H, DATA_TABLE_KEY_W, DATA_TABLE_PADDING, DATA_TABLE_ROW_H, 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_PRINT_SETTINGS, DEFAULT_SLIDE_BACKGROUND, DEFAULT_STROKE_COLOR, DEFAULT_STYLE, DEFAULT_TABLE_ROW_HEIGHT, DEFAULT_TEXT_COLOR, DIRECTIONAL_PRESETS, DIRECTION_OPTIONS, 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, GradientPickerComponent, HANDOUT_OPTIONS, HyperlinkDialogComponent, InkDrawingService, InkRendererComponent, InsertSmartArtDialogComponent, InspectorPanelComponent, IsMobileService, KeepAnnotationsDialogComponent, LONG_PRESS_DURATION_MS, LONG_PRESS_MOVE_TOLERANCE_PX, LoadContentService, LocalPresencePublisher, MAX_ZOOM_SCALE, MIN_ZOOM_SCALE, MediaRendererComponent, MobileBottomBarComponent, MobileMenuSheetComponent, MobilePresenterViewComponent, MobileSheetComponent, MobileSlidesSheetComponent, MobileToolbarComponent, ModalDialogComponent, Model3DRendererComponent, NotesPanelComponent, NotesToolbarComponent, OleRendererComponent, PRESENTER_CHANNEL_NAME, PRESENTER_MSG_ORIGIN, PasswordProtectionDialogComponent, PasswordStrengthMeterComponent, PowerPointViewerComponent, PresentationAnnotationOverlayComponent, PresentationAnnotationsService, PresentationOverlayComponent, PresentationSubtitleBarComponent, PresentationTransitionOverlayComponent, PresenterViewComponent, PresenterWindowService, PrintDialogComponent, PrintService, PrintSettingsPanelComponent, PropertiesDialogComponent, REPEAT_MODE_OPTIONS, RESIZE_HANDLES, RULER_THICKNESS, RemoteSelectionOverlayComponent, RibbonAnimationsSectionComponent, RibbonArrangeSectionComponent, RibbonColorPopoverComponent, RibbonComponent, RibbonDesignSectionComponent, RibbonDrawSectionComponent, RibbonDrawingGroupComponent, RibbonEditingSectionComponent, RibbonFileSectionComponent, RibbonFontControlsComponent, RibbonHomeSectionComponent, RibbonInsertFieldsComponent, RibbonInsertSectionComponent, RibbonParagraphControlsComponent, RibbonPrimaryRowComponent, RibbonReviewSectionComponent, RibbonSlideshowSectionComponent, RibbonTransitionsSectionComponent, RibbonViewSectionComponent, RulerGuidesService, SEQUENCE_OPTIONS, SEVERITY_GROUPS, SEVERITY_LABELS, SHORTCUT_REFERENCE_ITEMS, SLIDE_PX_PER_INCH, 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, ShareDialogComponent, ShortcutPanelComponent, ShowOptionsFieldsetComponent, ShowSlidesFieldsetComponent, SignatureStrippedDialogComponent, SignaturesPanelComponent, SignaturesService, SlideCanvasComponent, SlideDiffChangesComponent, SlideDiffRowComponent, SlideDiffThumbnailsComponent, SlideSorterOverlayComponent, SlidesPanelComponent, SmartArt3DRendererComponent, SmartArt3DService, SmartArtPreviewComponent, SmartArtPropertiesComponent, SmartArtRendererComponent, StatusBarComponent, TABLE_STRUCTURE_TOGGLES, TEXT_DIRECTION_OPTIONS, TIMING_CURVE_OPTIONS, TRIGGER_OPTIONS, TYPE_LABELS, TableCellAdvancedFillComponent, TableCellFormattingComponent, TableDataEditorComponent, TablePropertiesComponent, TableRendererComponent, TableResizeOverlayComponent, TableSelectionService, TextAdvancedPanelComponent, ThemeGalleryComponent, TitleBarComponent, 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, ZoomNavigationService, ZoomRendererComponent, ZoomTargetService, addCategory, addCommentToList, addGradientStopPatch, addItem, addSeries, addSubItem, advanceStep, alignPatch, animationFor, annotationMapToInkInserts, applyAcceptedDiff, applyAnimationPreset, applyFindReplacements, applyFormatToElement, applyMove, applyResize, applyTableStylePreset, asMediaElement, assignUserColor, attachTouchGestures, beginNodeEdit, boolFromEvent, bringForward, bringToFront, buildBarActions, buildBroadcastConfig, buildBroadcastViewerUrl, buildCategoryLabels, buildCellParagraphs, buildChartViewModel, buildChromeStyle, buildClearHyperlinkPatch, buildClickGroups, buildColStyles, buildCollaborationConfig, buildComboViewModel, buildCssGradientFromShapeStyle, buildDuotoneFilter, buildDuotoneFilterId, buildEmbeddedFontStyles, buildEquationElement, buildEquationSegment, buildFallbackViewModel, buildFontFaceRule, buildGradientFillCss, buildGridlinesAndLabels, buildHyperlinkPatch, buildInkContainerStyle, buildInkStrokes, buildLegend, 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, canRemoveTopLevelNode, canStartBroadcast, canStartShare, canUseClipboard, captionDisplayText, cellRunStyle, cellStyleToStyleMap, cellTdStyle, changeCountLabel, changeIcon, characterSpacingPatch, checkFontAvailable, clampCursorPosition, clampGifDimensions, clampIndex, clampNotesFontSize, clampScale, clampStep, clearAudienceContent, cn, collectAccessibilityIssues, collectElementText, collectSlideText, collectUsedFontFamilies, columnWidthStyle, commitNodeText, computeAlign, computeAxisTitlePrimitives, computeBarRects, computeBubbleRadius, computeCornerHandle, computeDataTablePrimitives, computeDistribute, computeDrawingViewBox, computeErrorBarPrimitives, computeHandleBoxes, computeHandoutLayout, computeIsMobile, computeIsTablet, computeLinePoints, computeLinearRegression, computePageCount, computePieLayout, computePieSlicePath, computePieSlices, computePlotLayout, computeRSquared, computeRadarPoints, computeScatterDots, computeSelectionBoxes, computeSingleSelected, computeSlideIndices, computeSnap, computeStackedBarRects, computeStackedValueRange, computeTextLines, computeTimerProgress, computeTrendlinePrimitives, computeValueRange, convertOmmlToMathMl, copyFormatFromElement, countAccessibilityIssues, countAnnotationStrokes, 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, estimatePageCount, evenColumnWidths, evenRowHeights, exitPresentationFullscreen, extractPathPoints, eyedropperAvailable, fillColorOf, findInSlides, findOwningSlideIndex, findSlideIndexByElementId, fitPolynomial, fitZoom, fontMimeForFormat, fontSizeOf, formatAutoNumber, formatAxisValue, formatBytes, formatCursorLabel, formatElapsed, formatFileSize, formatPropertyDate, formatTime, fpsToFrameIntervalMs, generateBroadcastRoomId, generateCommentId, generateCustomShowId, generatePressureCircles, generateRulerTicks, getClrChangeParams, getContainerStyle, getDuotoneFilterDef, getImageSrc, getOleAriaLabel, getOleBadgeLabel, getOleDisplayName, getOleDownloadFileName, getOleTypeColor, getOleTypeLabel, getPasswordStrength, getPatternSvg, getPlaceholderStyle, getVersions as getRecoveryVersions, getResolvedShapeClipPath, getResolvedShapeClipPathFor, getShapeFillStrokeStyle, getSlideBackgroundStyle, getSlideTransitionAnimations, getSmartArtNodeBounds, getSpeechRecognitionCtor, getTextBlockStyle, getTextWarp, getTouchDistance, getWarpCategory, getWarpPath, gradientStateFromStyle, gradientStateOf, gradientStatePatch, gridColumns, groupElements, groupIssuesBySeverity, hasAnimation, hasCopyableFormat, hasExistingLink, hasExitedFullscreen, hasGradientFill, hasPressureVariation, headerLabel, inkViewBox, insertColumn, insertRow, interpolateWidth, isAudienceTab, isBold, isBrowserOpenableMime, isChildNode, isElementInteractive, isInjectableUrl, isItalic, isPpactionUrl, isPresenterMessage, isSigned, isTextElement, isUnderline, isUrlSafe, isValidRoomId, isViewportBackgroundPressTarget, isZoomActivationKey, issueTrackKey, issueTypeLabel, keyToLabel, latexToMathml, linePointsToSvgString, lineSpacingPatch, loadAudienceContent, mergeCaptionResults, mergeDown, mergeRight, mergeSelection, moveElementBy, moveNodeDown, moveNodeUp, msToFrameDelayCs, narrowToCircle, narrowToPolygon, narrowToRect, newChartElement, newEquationElement, 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, pendingElementStyles, pickColorByClickFallback, pickSupportedMimeType, planGifFrames, planVideoSegments, pointsToSvgPathD, presenceToCursors, presetByLayout, presetsForCategory, pressuresToWidths, prevVisibleIndex, projectDrawingShapes, promoteNode, provideViewerTheme, radarAngle, radarRingPoints, recordWebm, redistributeColumnWidth, removeAnimation, removeCategory, removeColumn, removeCommentFromList, removeElementAnimation, removeGradientStopPatch, removeNode, removeRow, removeSeries, renderToCanvas, reorderAnimationDown, reorderAnimationUp, replaceInSlides, replaceMatch, requestPresentationFullscreen, resizeElement, resolveCaptionTracks, resolveChartKind, resolveFontVariant, resolveHyperlinkHref, resolveInteractiveElementId, resolveMediaSrc, resolveOleType, resolveParagraphBullet, resolvePresenterNotes, resolveRegionCode, resolvePalette as resolveSmartArtPalette, resolveTransitionDuration, revealedElementStyles, routeOrthogonalConnector, rowStyle, sampleColorFromSlide, sanitizeColor, sanitizeSlideIndex, sanitizeUserName, scanAvailableFonts, searchSlides, seedBroadcastFields, seedHyperlinkDraft, seedPropertiesDraft, seedShareFields, segmentFrameCount, selectValue, sendBackward, sendToBack, sequentialColorScale, serializeWriteBack, seriesColor, setAnimationEmphasis, setAnimationEntrance, setAnimationExit, setAxis, setAxisLogScale, setAxisTitleStyle, setCategoryLabel, setCellText, setColorScheme, setDataLabels, setDataPointExplosion, setDataPointFill, setDataPointLabel, setDelay, setDirection, setDuration, setElementPosition, setGridlineStyle, setLayout, setLegend, setNodeStyle, setNodeText, setRepeatCount, setRepeatMode, setSequence, setSeriesChartType, setSeriesColor, setSeriesErrorBars, setSeriesMarker, setSeriesName, setSeriesTrendline, setSeriesValue, setStyle, setTimingCurve, setTitle, setTrigger, setTriggerShapeId, shapeStylePatch, sheetAfterNavigate, shouldUseSvgWarp, showDirectionPicker, showsTemplateAffordance, signatureCountLabel, signatureKey, signatureTimestamp, signerName, statusLabel as slideDiffStatusLabel, slideNumberOf, smartArtNodes, paletteColour as smartArtPaletteColour, snapToGridStep, splitCursorCell, splitMergedCell, statusKind, statusLabel$1 as statusLabel, storeAudienceContent, stringFromEvent, strokeColorOf, strokeToInkElement, styleShadowFilter, textAdvancedPatch, textAdvancedStateFromStyle, textAdvancedStateOf, textColorOf, textDirectionPatch, textStyleOf, textStylePatch, themeStyle, themeToCssVars, thumbnailHeight, thumbnailZoom, toggleCommentResolvedInList, toggleNodeBold, toggleNodeItalic, toggleSheet, topLevelNodeCount, transformSelectedTextCase, translationsEn, ungroupElements, updateElementById, updateGlowPatch, updateGradientStopPatch, updateInnerShadowPatch, updateOuterShadowPatch, updateReflectionPatch, vAlignPatch, validatePassword, validatePrintSettings, validateRoomId, valueToY, vermilionDarkColors, vermilionDarkTheme, vermilionLightColors, vermilionLightTheme, vermilionRadius, waypointsToPathD, worstStatus, zoomTargetSlideIndex };
13875
- export type { AccessibilityIssueGroup, ActionDescriptor, AlignBox, AlignMode, AnimationClickGroup, AnimationGroup, AnnotationInkInsert, AnnotationStroke, AttachTouchGesturesConfig, AwarenessLike, BarRect, Box, 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, DestroyableYDoc, DiagonalBorderInfo, DistributeMode, DocumentProperties, DrawingViewBox, DuotoneFilterDef, EffectsState, EmbeddedFontStyles, EquationTemplate, EyedropperResult, FindOptions, FindResult, GifFrame, GifFramePlan, GifPlanOptions, GlowState, GradientState, GradientStop$1 as GradientStop, GroupResult, HandleBox, HandoutSlidesPerPage, HyperlinkDraft, InkPoint, InkStroke, InlineEditState, InnerShadowState, LegendEntry, LinePoint, LinearFit, LocalIdentity, MobileSheetKey, Model3DViewModel, NodeEditBox, NotesSegmentViewModel, ObjectUrlFactory, OleActionModel, OleInfoRow, OuterShadowState, OverallSignatureStatus, PartitionedSlides, PathPoint, PieSliceGeometry, PlotLayout, PlotLayoutOptions, PositionUpdate, PowerPointViewerAPI, PresentationTool, PresenterExitMessage, PresenterMessage, PresenterNotes, PresenterSlideChangeMessage, PressureCircle, PrintColorMode, PrintHtmlDocumentOptions as PrintDocumentOptions, PrintOrientation, PrintSettings, PrintSlideRange, PrintWhat, PropertiesDraft, ProviderBundle, ProviderLike, RadarPoint, RecordWebmOptions, RecoveryVersion, ReflectionState, RemoteCursor, SanitizedPresence as RemotePresence, RenderedShape, ReplaceResult, ResizeHandle, ResolvedCaptionTrack, ResolvedFontVariant, ResolvedOleType, RulerTick, ScatterDot, SelectionBox, ShapeStyleChanges, ShareDefaults, ShareFormFields, ShortcutReferenceItem, SignatureStatusKind, SlideTransitionAnimations, SmartArtInsertEvent, SmartArtNodeBounds, SnapBox, SnapGuide, SnapResult, SoftEdgeState, SpeechAlternative, SpeechRecognitionCtor, SpeechRecognitionEventLite, SpeechRecognitionLite, SpeechResult, SpeechResultList, SpeechSupportState, StrokeToInkElementOpts, StyleMap, SupportedChartKind, SvgAreaGradient, SvgCircle, SvgLine, SvgPath, SvgPolygon, SvgPolyline, SvgPrimitive, SvgRect, SvgText, SwipeDismissDrag, TableBooleanFlag, TableCellSelection, TableCellViewModel, TableRowViewModel, TemplateElementsBySlideId, TextAdvancedChanges, TextAdvancedState, TextStyleChanges, TextWarpCssDef, TextWarpDef, TextWarpPathDef, TimerProgress, TouchGestureCallbacks, TranslationKey, UngroupResult, ValueRange, VideoPlanOptions, VideoSegmentPlan, ViewerMode, ViewerTheme, ViewerThemeColors, ZoomViewModel };
14366
+ export { ALIGN_OPTIONS, AUDIENCE_HASH, AUDIENCE_NONCE_KEY, AccessibilityPanelComponent, AccessibilityService, ActionSettingsPanelComponent, AdvancedChartEditorComponent, AnimationAuthorPanelComponent, AnimationPanelComponent, AnimationPlaybackService, AutosaveService, BroadcastDialogComponent, CHART_EDITOR_STYLES, CURSOR_PALETTE, CanvasFitService, ChartAxisOptionsComponent, ChartAxisStyleOptionsComponent, ChartComboTypeOptionsComponent, ChartDataEditorComponent, ChartDataLabelOptionsComponent, ChartDatapointOptionsComponent, ChartDisplayOptionsComponent, ChartElementViewComponent, ChartErrorBarOptionsComponent, ChartMarkerOptionsComponent, ChartPartSelectionService, ChartPrimitivesComponent, ChartRendererComponent, ChartTrendlineOptionsComponent, CollaborationCursorsComponent, CollaborationService, ColorChangedImageComponent, CommentsPanelComponent, CommentsService, ComparePanelComponent, ConnectorRendererComponent, ConnectorTextOverlayComponent, CustomShowsComponent, DATA_TABLE_HEADER_H, DATA_TABLE_KEY_W, DATA_TABLE_PADDING, DATA_TABLE_ROW_H, 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_PRINT_SETTINGS, DEFAULT_SLIDE_BACKGROUND, DEFAULT_STROKE_COLOR, DEFAULT_STYLE, DEFAULT_TABLE_ROW_HEIGHT, DEFAULT_TEXT_COLOR, DIRECTIONAL_PRESETS, DIRECTION_OPTIONS, 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, GradientPickerComponent, HANDOUT_OPTIONS, HeaderFooterDialogComponent, HyperlinkDialogComponent, ImagePropertiesPanelComponent, InkDrawingService, InkRendererComponent, InsertSmartArtDialogComponent, InspectorPanelComponent, IsMobileService, KeepAnnotationsDialogComponent, LONG_PRESS_DURATION_MS, LONG_PRESS_MOVE_TOLERANCE_PX, LoadContentService, LocalPresencePublisher, MAX_ZOOM_SCALE, MIN_ZOOM_SCALE, MediaPreviewComponent, MediaPropertiesPanelComponent, MediaRendererComponent, MediaTrimTimelineComponent, MobileBottomBarComponent, MobileMenuSheetComponent, MobilePresenterViewComponent, MobileSheetComponent, MobileSlidesSheetComponent, MobileToolbarComponent, ModalDialogComponent, Model3DRendererComponent, NotesPanelComponent, NotesToolbarComponent, OleRendererComponent, PRESENTER_CHANNEL_NAME, PRESENTER_MSG_ORIGIN, PasswordProtectionDialogComponent, PasswordStrengthMeterComponent, PowerPointViewerComponent, PresentationAnnotationOverlayComponent, PresentationAnnotationsService, PresentationOverlayComponent, PresentationSubtitleBarComponent, PresentationTransitionOverlayComponent, PresenterViewComponent, PresenterWindowService, PrintDialogComponent, PrintService, PrintSettingsPanelComponent, PropertiesDialogComponent, REPEAT_MODE_OPTIONS, RESIZE_HANDLES, RULER_THICKNESS, RemoteSelectionOverlayComponent, RibbonAnimationsSectionComponent, RibbonArrangeSectionComponent, RibbonColorPopoverComponent, RibbonComponent, RibbonDesignSectionComponent, RibbonDrawSectionComponent, RibbonDrawingGroupComponent, RibbonEditingSectionComponent, RibbonFileSectionComponent, RibbonFontControlsComponent, RibbonHomeSectionComponent, RibbonInsertFieldsComponent, RibbonInsertSectionComponent, RibbonParagraphControlsComponent, RibbonPrimaryRowComponent, RibbonReviewSectionComponent, RibbonSlideshowSectionComponent, RibbonTransitionsSectionComponent, RibbonViewSectionComponent, RulerGuidesService, SEQUENCE_OPTIONS, SEVERITY_GROUPS, SEVERITY_LABELS, SHORTCUT_REFERENCE_ITEMS, SLIDE_PX_PER_INCH, 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, SettingsDialogComponent, ShareDialogComponent, ShortcutPanelComponent, ShowOptionsFieldsetComponent, ShowSlidesFieldsetComponent, SignatureStrippedDialogComponent, SignaturesPanelComponent, SignaturesService, SlideCanvasComponent, SlideDiffChangesComponent, SlideDiffRowComponent, SlideDiffThumbnailsComponent, SlideSorterOverlayComponent, SlideThemeOverridePanelComponent, SlidesPanelComponent, SmartArt3DRendererComponent, SmartArt3DService, SmartArtPreviewComponent, SmartArtPropertiesComponent, SmartArtRendererComponent, StatusBarComponent, TABLE_STRUCTURE_TOGGLES, TEXT_DIRECTION_OPTIONS, TIMING_CURVE_OPTIONS, TRIGGER_OPTIONS, TYPE_LABELS, TableCellAdvancedFillComponent, TableCellFormattingComponent, TableDataEditorComponent, TablePropertiesComponent, TableRendererComponent, TableResizeOverlayComponent, TableSelectionService, TextAdvancedPanelComponent, ThemeEditorFieldsComponent, ThemeGalleryComponent, TitleBarComponent, 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, ZoomNavigationService, ZoomRendererComponent, ZoomTargetService, addCategory, addCommentToList, addGradientStopPatch, addItem, addSeries, addSubItem, advanceStep, alignPatch, animationFor, annotationMapToInkInserts, applyAcceptedDiff, applyAnimationPreset, applyFindReplacements, applyFormatToElement, applyMove, applyResize, applyTableStylePreset, asMediaElement, assignUserColor, attachTouchGestures, beginNodeEdit, boolFromEvent, bringForward, bringToFront, buildBarActions, buildBroadcastConfig, buildBroadcastViewerUrl, buildCategoryLabels, buildCellParagraphs, buildChartViewModel, buildChromeStyle, buildClearHyperlinkPatch, buildClickGroups, buildColStyles, buildCollaborationConfig, buildComboViewModel, buildCssGradientFromShapeStyle, buildDuotoneFilter, buildDuotoneFilterId, buildEmbeddedFontStyles, buildEquationElement, buildEquationSegment, buildFallbackViewModel, buildFontFaceRule, buildGradientFillCss, buildGridlinesAndLabels, buildHyperlinkPatch, buildInkContainerStyle, buildInkStrokes, buildLegend, 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, canRemoveTopLevelNode, canStartBroadcast, canStartShare, canUseClipboard, captionDisplayText, cellRunStyle, cellStyleToStyleMap, cellTdStyle, changeCountLabel, changeIcon, characterSpacingPatch, checkFontAvailable, clampCursorPosition, clampGifDimensions, clampIndex, clampNotesFontSize, clampScale, clampStep, clearAudienceContent, cn, collectAccessibilityIssues, collectElementText, collectSlideText, collectUsedFontFamilies, columnWidthStyle, commitNodeText, computeAlign, computeAxisTitlePrimitives, computeBarRects, computeBubbleRadius, computeCornerHandle, computeDataTablePrimitives, computeDistribute, computeDrawingViewBox, computeErrorBarPrimitives, computeHandleBoxes, computeHandoutLayout, computeIsMobile, computeIsTablet, computeLinePoints, computeLinearRegression, computePageCount, computePieLayout, computePieSlicePath, computePieSlices, computePlotLayout, computeRSquared, computeRadarPoints, computeScatterDots, computeSelectionBoxes, computeSingleSelected, computeSlideIndices, computeSnap, computeStackedBarRects, computeStackedValueRange, computeTextLines, computeTimerProgress, computeTrendlinePrimitives, computeValueRange, convertOmmlToMathMl, copyFormatFromElement, countAccessibilityIssues, countAnnotationStrokes, 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, estimatePageCount, evenColumnWidths, evenRowHeights, exitPresentationFullscreen, extractPathPoints, eyedropperAvailable, fillColorOf, findInSlides, findOwningSlideIndex, findSlideIndexByElementId, fitPolynomial, fitZoom, fontMimeForFormat, fontSizeOf, formatAutoNumber, formatAxisValue, formatBytes, formatCursorLabel, formatElapsed, formatFileSize, formatPropertyDate, formatTime, fpsToFrameIntervalMs, generateBroadcastRoomId, generateCommentId, generateCustomShowId, generatePressureCircles, generateRulerTicks, getClrChangeParams, getContainerStyle, getDuotoneFilterDef, getImageSrc, getOleAriaLabel, getOleBadgeLabel, getOleDisplayName, getOleDownloadFileName, getOleTypeColor, getOleTypeLabel, getPasswordStrength, getPatternSvg, getPlaceholderStyle, getVersions as getRecoveryVersions, getResolvedShapeClipPath, getResolvedShapeClipPathFor, getShapeFillStrokeStyle, getSlideBackgroundStyle, getSlideTransitionAnimations, getSmartArtNodeBounds, getSpeechRecognitionCtor, getTextBlockStyle, getTextWarp, getTouchDistance, getWarpCategory, getWarpPath, gradientStateFromStyle, gradientStateOf, gradientStatePatch, gridColumns, groupElements, groupIssuesBySeverity, hasAnimation, hasCopyableFormat, hasExistingLink, hasExitedFullscreen, hasGradientFill, hasPressureVariation, headerLabel, inkViewBox, insertColumn, insertRow, interpolateWidth, isAudienceTab, isBold, isBrowserOpenableMime, isChildNode, isElementInteractive, isInjectableUrl, isItalic, isPpactionUrl, isPresenterMessage, isSigned, isTextElement, isUnderline, isUrlSafe, isValidRoomId, isViewportBackgroundPressTarget, isZoomActivationKey, issueTrackKey, issueTypeLabel, keyToLabel, latexToMathml, linePointsToSvgString, lineSpacingPatch, loadAudienceContent, mergeCaptionResults, mergeDown, mergeRight, mergeSelection, moveElementBy, moveNodeDown, moveNodeUp, msToFrameDelayCs, narrowToCircle, narrowToPolygon, narrowToRect, newChartElement, newEquationElement, 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, pendingElementStyles, pickColorByClickFallback, pickSupportedMimeType, planGifFrames, planVideoSegments, pointsToSvgPathD, presenceToCursors, presetByLayout, presetsForCategory, pressuresToWidths, prevVisibleIndex, projectDrawingShapes, promoteNode, provideViewerTheme, radarAngle, radarRingPoints, recordWebm, redistributeColumnWidth, removeAnimation, removeCategory, removeColumn, removeCommentFromList, removeElementAnimation, removeGradientStopPatch, removeNode, removeRow, removeSeries, renderToCanvas, reorderAnimationDown, reorderAnimationUp, replaceInSlides, replaceMatch, requestPresentationFullscreen, resizeElement, resolveCaptionTracks, resolveChartKind, resolveFontVariant, resolveHyperlinkHref, resolveInteractiveElementId, resolveMediaSrc, resolveOleType, resolveParagraphBullet, resolvePresenterNotes, resolveRegionCode, resolvePalette as resolveSmartArtPalette, resolveTransitionDuration, revealedElementStyles, routeOrthogonalConnector, rowStyle, sampleColorFromSlide, sanitizeColor, sanitizeSlideIndex, sanitizeUserName, scanAvailableFonts, searchSlides, seedBroadcastFields, seedHyperlinkDraft, seedPropertiesDraft, seedShareFields, segmentFrameCount, selectValue, sendBackward, sendToBack, sequentialColorScale, serializeWriteBack, seriesColor, setAnimationEmphasis, setAnimationEntrance, setAnimationExit, setAxis, setAxisLogScale, setAxisTitleStyle, setCategoryLabel, setCellText, setColorScheme, setDataLabels, setDataPointExplosion, setDataPointFill, setDataPointLabel, setDelay, setDirection, setDuration, setElementPosition, setGridlineStyle, setLayout, setLegend, setNodeStyle, setNodeText, setRepeatCount, setRepeatMode, setSequence, setSeriesChartType, setSeriesColor, setSeriesErrorBars, setSeriesMarker, setSeriesName, setSeriesTrendline, setSeriesValue, setStyle, setTimingCurve, setTitle, setTrigger, setTriggerShapeId, shapeStylePatch, sheetAfterNavigate, shouldUseSvgWarp, showDirectionPicker, showsTemplateAffordance, signatureCountLabel, signatureKey, signatureTimestamp, signerName, statusLabel as slideDiffStatusLabel, slideNumberOf, smartArtNodes, paletteColour as smartArtPaletteColour, snapToGridStep, splitCursorCell, splitMergedCell, statusKind, statusLabel$1 as statusLabel, storeAudienceContent, stringFromEvent, strokeColorOf, strokeToInkElement, styleShadowFilter, textAdvancedPatch, textAdvancedStateFromStyle, textAdvancedStateOf, textColorOf, textDirectionPatch, textStyleOf, textStylePatch, themeStyle, themeToCssVars, thumbnailHeight, thumbnailZoom, toggleCommentResolvedInList, toggleNodeBold, toggleNodeItalic, toggleSheet, topLevelNodeCount, transformSelectedTextCase, translationsEn, ungroupElements, updateElementById, updateGlowPatch, updateGradientStopPatch, updateInnerShadowPatch, updateOuterShadowPatch, updateReflectionPatch, vAlignPatch, validatePassword, validatePrintSettings, validateRoomId, valueToY, vermilionDarkColors, vermilionDarkTheme, vermilionLightColors, vermilionLightTheme, vermilionRadius, waypointsToPathD, worstStatus, zoomTargetSlideIndex };
14367
+ export type { AccessibilityIssueGroup, ActionDescriptor, AlignBox, AlignMode, AnimationClickGroup, AnimationGroup, AnnotationInkInsert, AnnotationStroke, AttachTouchGesturesConfig, AwarenessLike, BarRect, Box, 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, EffectsState, EmbeddedFontStyles, EquationTemplate, EyedropperResult, FindOptions, FindResult, GifFrame, GifFramePlan, GifPlanOptions, GlowState, GradientState, GradientStop$1 as GradientStop, GroupResult, HandleBox, HandoutSlidesPerPage, HyperlinkDraft, InkPoint, InkStroke, InlineEditState, InnerShadowState, LegendEntry, LinePoint, LinearFit, LocalIdentity, MobileSheetKey, Model3DViewModel, NodeEditBox, NotesSegmentViewModel, ObjectUrlFactory, OleActionModel, OleInfoRow, OuterShadowState, OverallSignatureStatus, PartitionedSlides, PathPoint, PieSliceGeometry, PlotLayout, PlotLayoutOptions, PositionUpdate, PowerPointViewerAPI, PresentationTool, PresenterExitMessage, PresenterMessage, PresenterNotes, PresenterSlideChangeMessage, PressureCircle, PrintColorMode, PrintHtmlDocumentOptions as PrintDocumentOptions, PrintOrientation, PrintSettings, PrintSlideRange, PrintWhat, PropertiesDraft, ProviderBundle, ProviderLike, RadarPoint, RecordWebmOptions, RecoveryVersion, ReflectionState, RemoteCursor, SanitizedPresence as RemotePresence, RenderedShape, ReplaceResult, ResizeHandle, ResolvedCaptionTrack, ResolvedFontVariant, ResolvedOleType, RulerTick, ScatterDot, SelectionBox, ShapeStyleChanges, ShareDefaults, ShareFormFields, ShortcutReferenceItem, SignatureStatusKind, SlideTransitionAnimations, SmartArtInsertEvent, SmartArtNodeBounds, SnapBox, SnapGuide, SnapResult, SoftEdgeState, SpeechAlternative, SpeechRecognitionCtor, SpeechRecognitionEventLite, SpeechRecognitionLite, SpeechResult, SpeechResultList, SpeechSupportState, StrokeToInkElementOpts, StyleMap, SupportedChartKind, SvgAreaGradient, SvgCircle, SvgLine, SvgPath, SvgPolygon, SvgPolyline, SvgPrimitive, SvgRect, SvgText, SwipeDismissDrag, TableBooleanFlag, TableCellSelection, TableCellViewModel, TableRowViewModel, TemplateElementsBySlideId, TextAdvancedChanges, TextAdvancedState, TextStyleChanges, TextWarpCssDef, TextWarpDef, TextWarpPathDef, TimerProgress, ToolbarActionId, TouchGestureCallbacks, TranslationKey, UngroupResult, ValueRange, VideoPlanOptions, VideoSegmentPlan, ViewerMode, ViewerSettings, ViewerTheme, ViewerThemeColors, ZoomViewModel };