pptx-svelte-viewer 4.4.0 → 4.5.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.
@@ -1187,6 +1187,7 @@ var n = {
1187
1187
  "pptx.compare.noDifferences": "No differences",
1188
1188
  "pptx.compare.summary": "{{added}} added, {{removed}} removed, {{changed}} changed",
1189
1189
  "pptx.compare.title": "Compare",
1190
+ "pptx.canvasContextMenu.ariaLabel": "Canvas context menu",
1190
1191
  "pptx.canvasContextMenu.formatBackground": "Format Background...",
1191
1192
  "pptx.canvasContextMenu.gridAndGuides": "Grid and Guides",
1192
1193
  "pptx.canvasContextMenu.layout": "Layout",
@@ -1467,6 +1468,15 @@ var n = {
1467
1468
  "pptx.slideSorter.contextMenu.hideSlides": "Hide Slides",
1468
1469
  "pptx.slideSorter.contextMenu.paste": "Paste",
1469
1470
  "pptx.slideSorter.contextMenu.showSlides": "Show Slides",
1471
+ "pptx.slidesPane.contextMenu.newSlide": "New Slide",
1472
+ "pptx.slidesPane.contextMenu.duplicate": "Duplicate Slide",
1473
+ "pptx.slidesPane.contextMenu.duplicateCount": "Duplicate {{count}} Slides",
1474
+ "pptx.slidesPane.contextMenu.delete": "Delete Slide",
1475
+ "pptx.slidesPane.contextMenu.deleteCount": "Delete {{count}} Slides",
1476
+ "pptx.slidesPane.contextMenu.layout": "Layout",
1477
+ "pptx.slidesPane.contextMenu.hide": "Hide Slide",
1478
+ "pptx.slidesPane.contextMenu.show": "Show Slide",
1479
+ "pptx.slidesPane.contextMenu.addSection": "Add Section",
1470
1480
  "pptx.smartart.cancel": "Cancel",
1471
1481
  "pptx.smartart.close": "Close",
1472
1482
  "pptx.smartart.insert": "Insert",
@@ -1805,6 +1805,15 @@ interface TextStyle {
1805
1805
  textInnerShadowOffsetX?: number;
1806
1806
  /** Text inner shadow vertical offset in px. */
1807
1807
  textInnerShadowOffsetY?: number;
1808
+ /**
1809
+ * Original inner-shadow colour-choice XML (`a:innerShdw`'s
1810
+ * `a:prstClr`/`a:schemeClr`/`a:srgbClr`/… child), preserved verbatim so an
1811
+ * authored preset or theme colour round-trips instead of always being
1812
+ * re-serialized as a resolved `a:srgbClr`. Mirrors {@link textGlowColorXml}.
1813
+ */
1814
+ textInnerShadowColorXml?: XmlObject;
1815
+ /** Theme colour slot the inner shadow colour resolved from, when it is `a:schemeClr`. */
1816
+ textInnerShadowColorRef?: PptxThemeColorRef;
1808
1817
  /** Preset shadow type from `a:prstShdw/@prst` (e.g. "shdw1"..."shdw20"). */
1809
1818
  textPresetShadowName?: string;
1810
1819
  /** Preset shadow colour as hex string. */
@@ -1817,6 +1826,18 @@ interface TextStyle {
1817
1826
  textPresetShadowDirection?: number;
1818
1827
  /** Text blur effect radius in px (`a:blur`). */
1819
1828
  textBlurRadius?: number;
1829
+ /**
1830
+ * Text soft-edge radius in px (`a:softEdge/@rad`).
1831
+ *
1832
+ * Feathers the glyph's own edges (a uniform blur of the alpha silhouette,
1833
+ * the same effect a shape's `a:softEdge` gives its fill), unrelated to
1834
+ * `a:blur` (which blurs the whole run, colour included) or a shadow. Never
1835
+ * parsed before this field existed, so `a:softEdge` on a run was silently
1836
+ * dropped: PowerPoint fades the glyphs to near-transparent at their
1837
+ * outline (COM-verified, `audit-text` slide 14's "SOFTEDGE" run), while
1838
+ * the viewer painted them fully crisp.
1839
+ */
1840
+ textSoftEdgeRadius?: number;
1820
1841
  /**
1821
1842
  * Raw `a:effectDag` XML node from `a:rPr`, preserved verbatim for
1822
1843
  * round-trip serialisation. Mirrors the shape-level
@@ -3449,6 +3470,15 @@ interface PptxChartHistogramOptions {
3449
3470
  intervalClosed?: 'l' | 'r';
3450
3471
  underflow?: number | 'auto';
3451
3472
  overflow?: number | 'auto';
3473
+ /**
3474
+ * `c:layoutPr/cx:aggregation` was authored instead of `cx:binning`: the
3475
+ * raw rows are CATEGORICAL (a Pareto chart's `clusteredColumn` series
3476
+ * counting occurrences of each authored category, COM-verified against
3477
+ * charts-com.pptx slide 31 / chartEx6.xml), not a numeric range to bin.
3478
+ * Mutually exclusive with `binSize`/`binCount`/`intervalClosed`, which
3479
+ * only apply to a true numeric-value histogram.
3480
+ */
3481
+ aggregateByCategory?: boolean;
3452
3482
  }
3453
3483
  /** Office 2016 ChartEx waterfall series layout options. */
3454
3484
  interface PptxChartWaterfallOptions {
@@ -4113,6 +4143,18 @@ interface PptxChartData {
4113
4143
  * the source" and callers should treat it as `true`. Surface only.
4114
4144
  */
4115
4145
  wireframe?: boolean;
4146
+ /**
4147
+ * Whether the surface chart is the 2-D "top view" projection
4148
+ * (`c:surfaceChart`, PowerPoint's "Contour" / "Wireframe Contour" types)
4149
+ * rather than the 3-D isometric one (`c:surface3DChart`, "3-D Surface" /
4150
+ * "3-D Surface (Wireframe)"). Both element names map to chart type
4151
+ * `"surface"`; this bit is the only thing that tells the renderer which
4152
+ * of the two projections PowerPoint actually drew, since a top-view
4153
+ * surface has no Z-axis at all (only category and series axes) while the
4154
+ * 3-D one draws all three. Surface only; `undefined` for every other
4155
+ * chart type.
4156
+ */
4157
+ surfaceTopView?: boolean;
4116
4158
  /**
4117
4159
  * Scatter presentation mode (`c:scatterChart/c:scatterStyle/@val`).
4118
4160
  *
@@ -12194,7 +12236,7 @@ interface ReflectionWrapperStyle {
12194
12236
  top: string;
12195
12237
  width: string;
12196
12238
  height: string;
12197
- /** Mirror (`scaleY(-1)`) composed with `@sx`/`@sy`/`@kx`/`@ky`/`@rot`. */
12239
+ /** `scale(@sx, @sy)` (the sign of `@sy` IS the mirror) composed with `@kx`/`@ky`/`@rot`. */
12198
12240
  transform: string;
12199
12241
  /** Anchor point for the transform above, from `@algn` (default `center top`). */
12200
12242
  transformOrigin: string;
@@ -15660,6 +15702,13 @@ declare class EditorSlidesController {
15660
15702
  constructor(editor: EditorState);
15661
15703
  /** Insert a blank slide after the current one. Returns its new index, or null when not editable. */
15662
15704
  insertSlideAfterCurrent(): number | null;
15705
+ /**
15706
+ * Insert a blank slide after `index` (the thumbnail context menu's New
15707
+ * Slide, and Enter on a focused thumbnail, both of which may target a slide
15708
+ * other than the currently active one). Returns the new index, or null
15709
+ * when not editable.
15710
+ */
15711
+ insertSlideAfter(index: number): number | null;
15663
15712
  /**
15664
15713
  * Insert a shared-catalogue template slide after the current one, as one
15665
15714
  * undoable step (Home > Slide Templates gallery). The caller (the gallery
@@ -15688,6 +15737,12 @@ declare class EditorSlidesController {
15688
15737
  deleteSlideAtIndex(index: number): number | null;
15689
15738
  /** Toggle the hidden flag on the slide at `index` (the sorter's context-menu target). */
15690
15739
  toggleSlideHidden(index: number): void;
15740
+ /** Duplicate every selected slide (the thumbnail context menu's multi-select bulk Duplicate). */
15741
+ duplicateSlides(indexes: readonly number[]): void;
15742
+ /** Delete every selected slide (the thumbnail context menu's multi-select bulk Delete). */
15743
+ deleteSlides(indexes: readonly number[]): void;
15744
+ /** Toggle hidden on every selected slide (the thumbnail context menu's multi-select bulk Hide/Show). */
15745
+ toggleSlidesHidden(indexes: readonly number[]): void;
15691
15746
  /**
15692
15747
  * The layouts available for the current slide (its master's layouts),
15693
15748
  * resolved via the core `getAvailableLayoutsForSlide` API. Empty when no
@@ -16168,6 +16223,12 @@ interface EditorControllerDeps {
16168
16223
  * model, so the cell under the pointer is the target.
16169
16224
  */
16170
16225
  onContextMenu?(x: number, y: number, cell: ContextMenuCellTarget | null): void;
16226
+ /**
16227
+ * Open the EMPTY-CANVAS context menu at viewport `x`/`y` (no element under
16228
+ * the cursor). Mutually exclusive with {@link onContextMenu}: opening one
16229
+ * closes the other.
16230
+ */
16231
+ onCanvasContextMenu?(x: number, y: number): void;
16171
16232
  getSnapToGrid?(): boolean;
16172
16233
  /**
16173
16234
  * Grid spacing in CSS px for snap-to-grid, derived from the deck's
@@ -16358,6 +16419,11 @@ interface StageContextMenu {
16358
16419
  y: number;
16359
16420
  cell: ContextMenuCellTarget | null;
16360
16421
  }
16422
+ /** Where the empty-canvas (no element hit) context menu opened. */
16423
+ interface StageCanvasContextMenu {
16424
+ x: number;
16425
+ y: number;
16426
+ }
16361
16427
 
16362
16428
  /**
16363
16429
  * Reactive Find & Replace panel state for the Home tab's Editing group.
@@ -17957,6 +18023,7 @@ interface ViewerStateBag {
17957
18023
  /** `Date.now()` timestamp of the last `enterPresenterView()` call; the presenter view's elapsed-time display. */
17958
18024
  readonly presenterStartedAt: number;
17959
18025
  stageContextMenu: StageContextMenu | null;
18026
+ stageCanvasContextMenu: StageCanvasContextMenu | null;
17960
18027
  readonly activeMobileSheet: MobileSheetKey;
17961
18028
  setActiveMobileSheet(next: MobileSheetKey): void;
17962
18029
  readonly notesExpanded: boolean;
@@ -1,5 +1,5 @@
1
- import { Qh as l, Zh as S } from "../transition-overlay-CfsPqlES.js";
2
- import { A as e, I as a, N as o, P as r, a as n, c as d, d as b, f as p, i as c, j as s, k as t, l as m, n as g, o as x, p as w, r as C, s as P, t as T, u as $ } from "../export-BUx-Kmlc.js";
1
+ import { ng as l, rg as S } from "../transition-overlay-BfpjfjU4.js";
2
+ import { A as e, I as a, N as o, P as r, a as v, c as d, d as b, f as p, i as c, j as s, k as t, l as g, n as m, o as x, p as w, r as C, s as P, t as T, u as $ } from "../export-Bln1wHMQ.js";
3
3
  var y = a, A = r, V = s, f = e, u = t, R = o;
4
4
  export {
5
5
  f as CollaborationCursors,
@@ -13,14 +13,14 @@ export {
13
13
  A as ViewerToolbar,
14
14
  $ as clampSlideIndex,
15
15
  w as createSvelteAiBridge,
16
- g as createViewerState,
17
- n as exportAllSlidesToSvg,
16
+ m as createViewerState,
17
+ v as exportAllSlidesToSvg,
18
18
  x as exportAllSlidesToSvgBlobs,
19
19
  P as exportSlideAsSvg,
20
20
  d as exportSlideToSvg,
21
- m as exportSlideToSvgBlob,
21
+ g as exportSlideToSvgBlob,
22
22
  b as fitScale,
23
23
  p as resolveNavigationKey,
24
- S as zoomInPercent,
25
- l as zoomOutPercent
24
+ l as zoomInPercent,
25
+ S as zoomOutPercent
26
26
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pptx-svelte-viewer",
3
- "version": "4.4.0",
3
+ "version": "4.5.0",
4
4
  "description": "Svelte 5 PowerPoint viewer and editor component: render, edit, present, and export PPTX slides in the browser.",
5
5
  "keywords": [
6
6
  "office",