pptx-svelte-viewer 3.8.0 → 3.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/{AiChatPanel-ByiDm0_K.js → AiChatPanel-yqg_BJme.js} +1 -1
  3. package/dist/{export-yk0mo1AN.js → export-zAcr-4rr.js} +31869 -29511
  4. package/dist/i18n.js +1 -1
  5. package/dist/index.d.ts +150 -23
  6. package/dist/index.js +2 -2
  7. package/dist/pptx-svelte-viewer.css +1 -1
  8. package/dist/{translator-Bb6pIYyq.js → translator-Cxn32Y3A.js} +52 -4
  9. package/dist/viewer/ai/ai-bridge.d.ts +25 -1
  10. package/dist/viewer/ai/ai-bridge.d.ts.map +1 -1
  11. package/dist/viewer/collab/collaboration-deps.d.ts +8 -1
  12. package/dist/viewer/collab/collaboration-deps.d.ts.map +1 -1
  13. package/dist/viewer/collab/collaboration.svelte.d.ts.map +1 -1
  14. package/dist/viewer/components/chart-drag.svelte.d.ts.map +1 -1
  15. package/dist/viewer/editor/editor-document-lifecycle.d.ts.map +1 -1
  16. package/dist/viewer/editor/editor-document-state.d.ts +7 -2
  17. package/dist/viewer/editor/editor-document-state.d.ts.map +1 -1
  18. package/dist/viewer/editor/editor-state.svelte.d.ts +14 -1
  19. package/dist/viewer/editor/editor-state.svelte.d.ts.map +1 -1
  20. package/dist/viewer/index.d.ts +234 -23
  21. package/dist/viewer/index.js +1 -1
  22. package/dist/viewer/state/create-viewer-state-ai.svelte.d.ts.map +1 -1
  23. package/dist/viewer/state/create-viewer-state-collab.svelte.d.ts.map +1 -1
  24. package/dist/viewer/state/create-viewer-state.svelte.d.ts.map +1 -1
  25. package/dist/viewer/state/inspector-deck.d.ts +12 -1
  26. package/dist/viewer/state/inspector-deck.d.ts.map +1 -1
  27. package/dist/viewer/state/presentation-loader.svelte.d.ts +8 -0
  28. package/dist/viewer/state/presentation-loader.svelte.d.ts.map +1 -1
  29. package/package.json +2 -2
@@ -2394,7 +2394,38 @@ interface PptxChartDataPointPicture {
2394
2394
  //#region src/core/types/chart-pivot-format.d.ts
2395
2395
  interface PptxChartPivotFormat {
2396
2396
  index: number;
2397
+ /**
2398
+ * Typed projection of `spPr` (fill/stroke colour, stroke width, dash
2399
+ * style). When the parser is given a colour resolver (the normal case: the
2400
+ * runtime always supplies one), both a literal `a:srgbClr` and an
2401
+ * `a:schemeClr` theme reference (with its `lumMod`/`lumOff`/`tint`/`shade`
2402
+ * modifiers) resolve to a hex colour here, the same theme +
2403
+ * `c:clrMapOvr` chain the rest of chart parsing uses. Without a resolver
2404
+ * (e.g. a hand-built `PptxChartPivotFormat` with no theme to resolve
2405
+ * against), only the literal case resolves. Either way the authored node
2406
+ * is byte-preserved through {@link shapePropertiesXml} until this field is
2407
+ * set to something that no longer matches what re-parses off the current
2408
+ * XML; setting it then re-derives `shapePropertiesXml` on save (merged
2409
+ * onto whatever was already authored, keeping an unrelated schemeClr
2410
+ * reference alive when the colour itself is unchanged) unless
2411
+ * `shapePropertiesXml` is set explicitly, which wins.
2412
+ */
2413
+ shapeProperties?: PptxChartShapeProps;
2414
+ /**
2415
+ * Typed projection of `txPr`'s `a:p/a:pPr/a:defRPr` (size/bold/italic/
2416
+ * colour/family), the same shape a legend entry or data-table's text
2417
+ * override models. Colour resolution mirrors {@link shapeProperties}
2418
+ * (theme-resolved `schemeClr` when a colour resolver is supplied, literal
2419
+ * `srgbClr` otherwise). See {@link txPrXml} for the raw fallback.
2420
+ */
2421
+ textStyle?: PptxChartLegendTextStyle;
2422
+ /**
2423
+ * Typed projection of `marker` (symbol/size/spPr). See {@link markerXml}
2424
+ * for the raw fallback.
2425
+ */
2426
+ marker?: PptxChartMarker;
2397
2427
  shapePropertiesXml?: XmlObject | null;
2428
+ txPrXml?: XmlObject | null;
2398
2429
  markerXml?: XmlObject | null;
2399
2430
  dataLabelXml?: XmlObject | null;
2400
2431
  extensionListXml?: XmlObject | null;
@@ -2587,20 +2618,6 @@ interface PptxChartTitleRun {
2587
2618
  }
2588
2619
  //#endregion
2589
2620
  //#region src/core/types/chart-user-shapes.d.ts
2590
- /**
2591
- * Types for chart drawing-overlay shapes (`c:userShapes`).
2592
- *
2593
- * A chart's `c:userShapes` element carries an `r:id` that references a
2594
- * separate drawing part (`ppt/drawings/drawingN.xml`) whose root is a
2595
- * `c:userShapes` element populated with `cdr:relSizeAnchor` /
2596
- * `cdr:absSizeAnchor` wrappers around `sp` / `pic` / `cxnSp` shapes drawn on
2597
- * top of the chart plot. These interfaces describe the parsed, renderable
2598
- * overlay model. The raw reference is preserved separately on
2599
- * {@link PptxChartData.userShapesXml} for verbatim round-trip save; this model
2600
- * is render-only.
2601
- *
2602
- * @module pptx-types/chart-user-shapes
2603
- */
2604
2621
  /** A single paragraph of overlay-shape text with light formatting. */
2605
2622
  interface PptxChartUserShapeParagraph {
2606
2623
  /** Joined run text of the paragraph. */
@@ -2616,6 +2633,80 @@ interface PptxChartUserShapeParagraph {
2616
2633
  /** Paragraph alignment (`a:pPr/@algn`): left / centre / right. */
2617
2634
  align?: 'l' | 'ctr' | 'r';
2618
2635
  }
2636
+ /**
2637
+ * The DrawingML 2D group transform (`a:xfrm` inside `cdr:grpSpPr`) that
2638
+ * anchors a `grpSp`'s own box ({@link off}/{@link ext}) and establishes the
2639
+ * coordinate space its children are expressed in ({@link chOff}/{@link
2640
+ * chExt}), all in EMU. A child's position within the group is mapped into
2641
+ * the group's own box via
2642
+ * `frac = (child.off - chOff) / chExt`, then applied to the enclosing
2643
+ * anchor's box; see `flattenChartUserShapes` in
2644
+ * `chart-user-shapes-parser.ts`.
2645
+ */
2646
+ interface PptxChartUserShapeGroupTransform {
2647
+ /** The group's own position in its parent's coordinate space, in EMU. */
2648
+ off: {
2649
+ x: number;
2650
+ y: number;
2651
+ };
2652
+ /** The group's own size in its parent's coordinate space, in EMU. */
2653
+ ext: {
2654
+ cx: number;
2655
+ cy: number;
2656
+ };
2657
+ /** Origin of the child coordinate space (`a:chOff`), in EMU. */
2658
+ chOff: {
2659
+ x: number;
2660
+ y: number;
2661
+ };
2662
+ /** Size of the child coordinate space (`a:chExt`), in EMU. */
2663
+ chExt: {
2664
+ cx: number;
2665
+ cy: number;
2666
+ };
2667
+ }
2668
+ /**
2669
+ * One shape grouped inside a `cdr:grpSp` (or a nested `cdr:grpSp` itself).
2670
+ * Unlike a top-level {@link PptxChartUserShape}, a group child has no
2671
+ * drawing anchor of its own: its position is expressed in its parent
2672
+ * group's child coordinate space via {@link off}/{@link ext} (EMU, read
2673
+ * from the child's own `a:xfrm`), not as a chart-relative fraction.
2674
+ */
2675
+ interface PptxChartUserShapeGroupChild {
2676
+ /** Shape kind, same vocabulary as {@link PptxChartUserShape.kind}. */
2677
+ kind: 'sp' | 'cxnSp' | 'pic' | 'grpSp' | 'graphicFrame';
2678
+ /** Position within the parent group's child coordinate space, in EMU. */
2679
+ off: {
2680
+ x: number;
2681
+ y: number;
2682
+ };
2683
+ /** Size within the parent group's child coordinate space, in EMU. */
2684
+ ext: {
2685
+ cx: number;
2686
+ cy: number;
2687
+ };
2688
+ /** Preset geometry name (`a:prstGeom/@prst`), defaulting to `"rect"`. */
2689
+ prst?: string;
2690
+ /** Resolved solid-fill hex colour, when present. */
2691
+ fill?: string;
2692
+ /** Resolved line/stroke hex colour, when present. */
2693
+ stroke?: string;
2694
+ /** Line width in points (`a:ln/@w` divided by 12700), when present. */
2695
+ strokeWidth?: number;
2696
+ /** Text paragraphs of the shape's `txBody`, when present. */
2697
+ paragraphs?: PptxChartUserShapeParagraph[];
2698
+ /**
2699
+ * Verbatim source XML of a `pic`/`graphicFrame` child, or of this node
2700
+ * itself when `kind === 'grpSp'` and the nested group is untouched since
2701
+ * parse. See {@link PptxChartUserShape.rawXml}'s doc for the same
2702
+ * contract one level up.
2703
+ */
2704
+ rawXml?: XmlObject;
2705
+ /** Present when `kind === 'grpSp'`: this nested group's own transform. */
2706
+ transform?: PptxChartUserShapeGroupTransform;
2707
+ /** Present when `kind === 'grpSp'`: this nested group's own children. */
2708
+ children?: PptxChartUserShapeGroupChild[];
2709
+ }
2619
2710
  /**
2620
2711
  * A parsed chart-overlay shape positioned by a drawing anchor.
2621
2712
  *
@@ -2626,12 +2717,13 @@ interface PptxChartUserShapeParagraph {
2626
2717
  interface PptxChartUserShape {
2627
2718
  /**
2628
2719
  * Shape kind: text/preset shape, connector, picture, a group of the
2629
- * above (`grpSp`, flattened: each grouped child becomes its own entry
2630
- * reusing the anchor's own bounding box, an approximation since the
2631
- * group's internal chOff/chExt transform is not applied), or a bare
2632
- * placeholder for a `graphicFrame` anchor child (deep content such as a
2633
- * nested chart or table is out of scope; it only keeps the anchor's
2634
- * space accounted for instead of the whole overlay disappearing).
2720
+ * above (`grpSp`, with its own {@link transform} and {@link children},
2721
+ * nested arbitrarily; use `flattenChartUserShapes` from
2722
+ * `chart-user-shapes-parser.ts` to get a flat, render-ready leaf list
2723
+ * with the group transform already applied), or a bare placeholder for
2724
+ * a `graphicFrame` anchor child (deep content such as a nested chart or
2725
+ * table is out of scope; it only keeps the anchor's space accounted for
2726
+ * instead of the whole overlay disappearing).
2635
2727
  */
2636
2728
  kind: 'sp' | 'cxnSp' | 'pic' | 'grpSp' | 'graphicFrame';
2637
2729
  /** Anchor kind that positioned the shape. */
@@ -2661,6 +2753,26 @@ interface PptxChartUserShape {
2661
2753
  strokeWidth?: number;
2662
2754
  /** Text paragraphs of the shape's `txBody`, when present. */
2663
2755
  paragraphs?: PptxChartUserShapeParagraph[];
2756
+ /**
2757
+ * Verbatim source XML of a `pic` or `graphicFrame` anchor child (the
2758
+ * `cdr:pic` / `cdr:graphicFrame` node itself, not the enclosing anchor),
2759
+ * or of the `cdr:grpSp` node itself when `kind === 'grpSp'` and the
2760
+ * group is untouched since parse (byte-identical passthrough). None of
2761
+ * these three kinds have a reconstructable typed representation that is
2762
+ * guaranteed lossless (a picture's blip reference, a nested chart/table's
2763
+ * graphic content, or a group's exact child ordering/ids), so the
2764
+ * serializer re-emits this verbatim when present instead of a lossy
2765
+ * rebuild. Editing a shape inside a group (via the SDK's path-based
2766
+ * overlay operations) clears the group's `rawXml` so the serializer
2767
+ * regenerates it from {@link transform}/{@link children} instead. Absent
2768
+ * for `sp`/`cxnSp`, which round-trip losslessly through their typed
2769
+ * fields above.
2770
+ */
2771
+ rawXml?: XmlObject;
2772
+ /** Present when `kind === 'grpSp'`: the group's own transform. */
2773
+ transform?: PptxChartUserShapeGroupTransform;
2774
+ /** Present when `kind === 'grpSp'`: the grouped children, nested arbitrarily. */
2775
+ children?: PptxChartUserShapeGroupChild[];
2664
2776
  }
2665
2777
  //#endregion
2666
2778
  //#region src/core/types/chart.d.ts
@@ -5813,6 +5925,21 @@ interface PptxAccessibilityProperties {
5813
5925
  */
5814
5926
  isDecorative?: boolean;
5815
5927
  }
5928
+ /**
5929
+ * Accessibility description/title from `p:cNvPr/@descr` / `@title` on a
5930
+ * plain shape, text box or connector (`p:sp` / `p:cxnSp`). The same pair of
5931
+ * attributes already round-trips for a graphic frame (see
5932
+ * {@link TablePptxElement.altText}) and, `descr` only, for a picture
5933
+ * ({@link PptxImageProperties.altText}); this mixin extends it to the three
5934
+ * element kinds whose PowerPoint Alt Text pane data was previously dropped
5935
+ * on load because neither field existed on the model.
5936
+ */
5937
+ interface PptxNonVisualDescription {
5938
+ /** `p:cNvPr/@descr`. */
5939
+ altText?: string;
5940
+ /** `p:cNvPr/@title`. */
5941
+ title?: string;
5942
+ }
5816
5943
  /**
5817
5944
  * `a:cNvPicPr/@preferRelativeResize` (issue G13), a picture-only non-visual
5818
5945
  * property distinct from `a:picLocks`.
@@ -5845,7 +5972,7 @@ interface PptxPictureNonVisualProperties {
5845
5972
  * // => satisfies TextPptxElement
5846
5973
  * ```
5847
5974
  */
5848
- interface TextPptxElement extends PptxElementBase, PptxTextProperties, PptxShapeProperties {
5975
+ interface TextPptxElement extends PptxElementBase, PptxTextProperties, PptxShapeProperties, PptxNonVisualDescription {
5849
5976
  type: 'text';
5850
5977
  }
5851
5978
  /**
@@ -5863,7 +5990,7 @@ interface TextPptxElement extends PptxElementBase, PptxTextProperties, PptxShape
5863
5990
  * // => satisfies ShapePptxElement
5864
5991
  * ```
5865
5992
  */
5866
- interface ShapePptxElement extends PptxElementBase, PptxTextProperties, PptxShapeProperties, PptxCustomPathProperties, PptxAccessibilityProperties {
5993
+ interface ShapePptxElement extends PptxElementBase, PptxTextProperties, PptxShapeProperties, PptxCustomPathProperties, PptxAccessibilityProperties, PptxNonVisualDescription {
5867
5994
  type: 'shape';
5868
5995
  }
5869
5996
  /**
@@ -5885,7 +6012,7 @@ interface ShapePptxElement extends PptxElementBase, PptxTextProperties, PptxShap
5885
6012
  * // => satisfies ConnectorPptxElement
5886
6013
  * ```
5887
6014
  */
5888
- interface ConnectorPptxElement extends PptxElementBase, PptxTextProperties, PptxShapeProperties {
6015
+ interface ConnectorPptxElement extends PptxElementBase, PptxTextProperties, PptxShapeProperties, PptxNonVisualDescription {
5889
6016
  type: 'connector';
5890
6017
  }
5891
6018
  /**
@@ -10894,6 +11021,23 @@ interface CollaborationConfig {
10894
11021
  //#region src/render/animation-authoring.d.ts
10895
11022
  /** One of the three animation buckets a preset can occupy on an element. */
10896
11023
  type AnimationGroup = 'entrance' | 'emphasis' | 'exit';
11024
+ //#endregion
11025
+ //#region src/render/animation-text-style-resolve.d.ts
11026
+ /**
11027
+ * Framework-neutral text-style override a font-style emphasis effect applies
11028
+ * on top of its target's own authored per-run bold/italic/underline/size/
11029
+ * colour. Every binding maps this onto its own text container so it OVERRIDES
11030
+ * the runs' inline styles (the runs carry explicit inline styles of their
11031
+ * own, so plain CSS inheritance cannot reach them).
11032
+ */
11033
+ interface TextStyleAnimationDescriptor {
11034
+ bold?: boolean;
11035
+ italic?: boolean;
11036
+ underline?: boolean;
11037
+ /** Relative multiplier against each run's own authored font size. */
11038
+ fontScale?: number;
11039
+ color?: string;
11040
+ }
10897
11041
  /**
10898
11042
  * Normalized staged-reveal mode for a chart graphic frame, derived from the
10899
11043
  * OOXML `a:bldChart/@bld` (or `p:bldOleChart/@bld`) token:
@@ -11034,6 +11178,18 @@ interface ElementAnimationState {
11034
11178
  * `stroke: inherit`. Absent/false means no active stroke-colour animation.
11035
11179
  */
11036
11180
  animatesStroke?: boolean;
11181
+ /**
11182
+ * Active discrete font-style / colour / size override (see
11183
+ * {@link TimelineStep.textStyle}) a font-style emphasis effect currently
11184
+ * applies to this element's text, OVERRIDING the runs' own inline
11185
+ * bold/italic/underline/size/colour. `animation-playback-engine.ts` writes
11186
+ * this on step start and again on cleanup (held in full when the effect's
11187
+ * `p:cTn/@fill` holds its end state, otherwise reverted); a text renderer
11188
+ * maps it onto its run markup via `buildTextStyleOverrideCss`
11189
+ * (`animation-text-style-css.ts`). Absent means no font-style emphasis
11190
+ * effect is currently active on this element.
11191
+ */
11192
+ textStyle?: TextStyleAnimationDescriptor;
11037
11193
  }
11038
11194
  //#endregion
11039
11195
  //#region src/render/table-merge.d.ts
@@ -11699,6 +11855,8 @@ interface MasterViewCrudAction {
11699
11855
  /** i18n key explaining why the button is disabled, set only when it is. */
11700
11856
  disabledReasonKey?: string;
11701
11857
  }
11858
+ /** The save options `PptxHandler.save` accepts (format, docProps, masters, ...). */
11859
+ type DeckSaveOptions = NonNullable<Parameters<PptxHandler['save']>[1]>;
11702
11860
  /**
11703
11861
  * Why the deck is being serialised, which is a separate question from whether
11704
11862
  * the user protected it.
@@ -11759,6 +11917,7 @@ interface DeckSaveIntent {
11759
11917
  passwordProtected?: boolean;
11760
11918
  purpose?: DeckSavePurpose;
11761
11919
  }
11920
+ type TableStyleSaveOptions = Pick<DeckSaveOptions, 'tableStyles' | 'tableStylesDefaultId' | 'tableStylesToDelete'>;
11762
11921
  //#endregion
11763
11922
  //#region src/render/viewer-preferences.d.ts
11764
11923
  /**
@@ -13780,6 +13939,14 @@ interface EditorStateDeps {
13780
13939
  * case core re-emits the load-time dimensions verbatim.
13781
13940
  */
13782
13941
  getSlideSize?: () => PptxSlideSize | undefined;
13942
+ /**
13943
+ * The `tableStyles`/`tableStylesDefaultId`/`tableStylesToDelete` save
13944
+ * options (see `pptx-viewer-shared`'s `tableStyleSaveOptions`). Table style
13945
+ * DEFINITION edits live on the loader (like slide size), not the undo
13946
+ * stack, so they reach the save through this dep the same way. Optional
13947
+ * for out-of-tree mounts and the unit tests.
13948
+ */
13949
+ getTableStyleOptions?: () => TableStyleSaveOptions;
13783
13950
  /**
13784
13951
  * Adopt a fresh handler in place of the loaded one. Master-view CRUD
13785
13952
  * (`masterCrud`) rebuilds the package through core and comes back with a
@@ -13951,6 +14118,11 @@ declare class EditorState {
13951
14118
  * same way the handler does.
13952
14119
  */
13953
14120
  getSlideSize(): PptxSlideSize | undefined;
14121
+ /**
14122
+ * The table style save options the next save should forward, or `{}` to
14123
+ * leave `ppt/tableStyles.xml` alone. See {@link EditorStateDeps.getTableStyleOptions}.
14124
+ */
14125
+ getTableStyleOptions(): TableStyleSaveOptions;
13954
14126
  /** Adopt a freshly loaded deck as the working document (see `loadEditorDocument`). */
13955
14127
  setSlides(...args: LoadDocumentArgs): void;
13956
14128
  /** Adopt a remote (collaboration) snapshot; see `applyRemoteEditorSlides`. */
@@ -14454,6 +14626,18 @@ interface SvelteAiBridgeDeps {
14454
14626
  getAppProperties(): PptxAppProperties | undefined;
14455
14627
  /** Custom document-property list (editor-tracked, undoable). */
14456
14628
  getCustomProperties(): PptxCustomProperty[];
14629
+ /**
14630
+ * `ppt/viewProps.xml` (grid/snap/guides toggles), loader-tracked. Included
14631
+ * so the deck tools' `getDeckData`/`applyDeckData` seam sees the same
14632
+ * fields the main Save/Export path persists (`saveEditorDocument`).
14633
+ */
14634
+ getViewProperties(): PptxViewProperties | undefined;
14635
+ /** Parsed `ppt/tableStyles.xml` map, loader-tracked. */
14636
+ getTableStyleMap(): ParsedTableStyleMap | undefined;
14637
+ /** `<a:tblStyleLst @def>` default style GUID, loader-tracked. */
14638
+ getTableStylesDefaultId(): string | undefined;
14639
+ /** `ppt/tags/*.xml` name/value metadata (editor-tracked, undoable). */
14640
+ getTagCollections(): PptxTagCollection[];
14457
14641
  /** Resize the slide canvas (loader value + editor history entry). */
14458
14642
  setCanvasSize(size: {
14459
14643
  width: number;
@@ -14468,6 +14652,18 @@ interface SvelteAiBridgeDeps {
14468
14652
  * core / app / custom together, so the bridge fans all three through here.
14469
14653
  */
14470
14654
  setDocumentProperties(core: PptxCoreProperties, app: PptxAppProperties, custom: PptxCustomProperty[]): void;
14655
+ /** Replace the view properties (grid/snap/guides toggles). Not undo-tracked, like the manual toggle. */
14656
+ setViewProperties(props: PptxViewProperties | undefined): void;
14657
+ /** Replace the table style map. Not undo-tracked, like the manual table style editor. */
14658
+ setTableStyleMap(map: ParsedTableStyleMap | undefined): void;
14659
+ /**
14660
+ * Replace the default table style GUID. No manual UI sets this in the
14661
+ * Svelte binding yet (a pre-existing gap, not introduced by this seam), so
14662
+ * this is not undo-tracked, like `setTableStyleMap`.
14663
+ */
14664
+ setTableStylesDefaultId(id: string | undefined): void;
14665
+ /** Replace the tag collections as one undoable edit. */
14666
+ setTagCollections(tags: PptxTagCollection[]): void;
14471
14667
  }
14472
14668
  /** Build the AI bridge that exposes the live Svelte viewer to the AI core. */
14473
14669
  declare function createSvelteAiBridge(deps: SvelteAiBridgeDeps): PptxAiBridge;
@@ -14568,6 +14764,14 @@ declare class PresentationLoader {
14568
14764
  presentationTheme: PptxTheme | undefined;
14569
14765
  /** Parsed presentation table-style definitions keyed by style id. */
14570
14766
  tableStyleMap: ParsedTableStyleMap | undefined;
14767
+ /** `ppt/tableStyles.xml`'s `<a:tblStyleLst @def>` default style GUID. */
14768
+ tableStylesDefaultId: string | undefined;
14769
+ /**
14770
+ * Style GUIDs deleted from `tableStyleMap` via the table style editor,
14771
+ * pending removal from `ppt/tableStyles.xml` on the next save. See
14772
+ * `tableStyleSaveOptions` / `applyTableStyleDelete` in `pptx-viewer-shared`.
14773
+ */
14774
+ tableStylesToDelete: string[];
14571
14775
  /** True while a load is in flight. */
14572
14776
  loading: boolean;
14573
14777
  /** Error message from the last failed load, or null. */
@@ -14696,6 +14900,13 @@ interface CollaborationDeps {
14696
14900
  getConfig: () => CollaborationConfig | undefined;
14697
14901
  /** Return the loaded source bytes for elected-writer (role 'owner') write-back. */
14698
14902
  getSourceBytes?: () => Uint8Array | null;
14903
+ /**
14904
+ * Session-level save options (view properties, table styles, tags, deck
14905
+ * properties, ...), built the same way as the Save/Export path
14906
+ * (`buildDeckSaveOptions`). Without this the elected-writer write-back
14907
+ * dropped every session-level edit outside `slides`.
14908
+ */
14909
+ getSaveOptions?: () => PptxHandlerSaveOptions;
14699
14910
  /** Slide canvas width/height (unscaled px), used to clamp incoming cursor coordinates. */
14700
14911
  getCanvasWidth?: () => number | undefined;
14701
14912
  getCanvasHeight?: () => number | undefined;
@@ -1,4 +1,4 @@
1
- import { A as e, M as a, c as s, d as t, f as i, gt as l, ht as S, i as n, j as o, l as v, m as d, n as p, o as b, p as g, r as c, s as x, t as m, u as w } from "../export-yk0mo1AN.js";
1
+ import { A as e, M as a, c as s, d as t, f as i, gt as l, ht as S, i as n, j as o, l as v, m as d, n as p, o as b, p as g, r as c, s as x, t as m, u as w } from "../export-zAcr-4rr.js";
2
2
  var T = a, A = o, P = e;
3
3
  export {
4
4
  m as PowerPointViewer,
@@ -1 +1 @@
1
- {"version":3,"file":"create-viewer-state-ai.svelte.d.ts","sourceRoot":"","sources":["../../../src/viewer/state/create-viewer-state-ai.svelte.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAG1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEzD,MAAM,WAAW,aAAa;IAC7B,MAAM,EAAE,kBAAkB,CAAC;IAC3B,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,EAAE,uBAAuB,CAAC;IAChC,OAAO,EAAE,wBAAwB,CAAC;IAClC,sEAAsE;IACtE,WAAW,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC;CACrC;AAED,MAAM,WAAW,SAAS;IACzB,sEAAsE;IACtE,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,6EAA6E;IAC7E,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAC;IAClC,0EAA0E;IAC1E,SAAS,EAAE,OAAO,CAAC;IACnB,4EAA4E;IAC5E,QAAQ,CAAC,gBAAgB,EAAE,SAAS,iBAAiB,EAAE,CAAC;CACxD;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,aAAa,GAAG,SAAS,CAmG3D"}
1
+ {"version":3,"file":"create-viewer-state-ai.svelte.d.ts","sourceRoot":"","sources":["../../../src/viewer/state/create-viewer-state-ai.svelte.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAG1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEzD,MAAM,WAAW,aAAa;IAC7B,MAAM,EAAE,kBAAkB,CAAC;IAC3B,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,EAAE,uBAAuB,CAAC;IAChC,OAAO,EAAE,wBAAwB,CAAC;IAClC,sEAAsE;IACtE,WAAW,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC;CACrC;AAED,MAAM,WAAW,SAAS;IACzB,sEAAsE;IACtE,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,6EAA6E;IAC7E,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAC;IAClC,0EAA0E;IAC1E,SAAS,EAAE,OAAO,CAAC;IACnB,4EAA4E;IAC5E,QAAQ,CAAC,gBAAgB,EAAE,SAAS,iBAAiB,EAAE,CAAC;CACxD;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,aAAa,GAAG,SAAS,CAwH3D"}
@@ -1 +1 @@
1
- {"version":3,"file":"create-viewer-state-collab.svelte.d.ts","sourceRoot":"","sources":["../../../src/viewer/state/create-viewer-state-collab.svelte.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAGjE,OAAO,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;AAE/E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEzD,MAAM,WAAW,iBAAiB;IACjC,MAAM,EAAE,kBAAkB,CAAC;IAC3B,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,EAAE,wBAAwB,CAAC;IAClC;;;;OAIG;IACH,WAAW,IAAI,OAAO,CAAC;IACvB;;;;OAIG;IACH,yBAAyB,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;CACrD;AAED,MAAM,WAAW,aAAa;IAC7B,MAAM,EAAE,uBAAuB,CAAC;IAChC,OAAO,EAAE,yBAAyB,CAAC;IACnC,WAAW,EAAE,kBAAkB,CAAC;IAChC,gBAAgB,EAAE,0BAA0B,CAAC;IAC7C;;;;OAIG;IACH,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC;;;;OAIG;IACH,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;IACrC,0DAA0D;IAC1D,QAAQ,CAAC,uBAAuB,EAAE,OAAO,CAAC;IAC1C,QAAQ,CAAC,sBAAsB,EAAE,sBAAsB,GAAG,SAAS,CAAC;IACpE,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAC3C;;;;;OAKG;IACH,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,oBAAoB,EAAE,OAAO,CAAC;IACvC,qBAAqB,IAAI,IAAI,CAAC;CAC9B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,iBAAiB,GAAG,aAAa,CAgJvE"}
1
+ {"version":3,"file":"create-viewer-state-collab.svelte.d.ts","sourceRoot":"","sources":["../../../src/viewer/state/create-viewer-state-collab.svelte.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAOjE,OAAO,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;AAE/E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEzD,MAAM,WAAW,iBAAiB;IACjC,MAAM,EAAE,kBAAkB,CAAC;IAC3B,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,EAAE,wBAAwB,CAAC;IAClC;;;;OAIG;IACH,WAAW,IAAI,OAAO,CAAC;IACvB;;;;OAIG;IACH,yBAAyB,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;CACrD;AAED,MAAM,WAAW,aAAa;IAC7B,MAAM,EAAE,uBAAuB,CAAC;IAChC,OAAO,EAAE,yBAAyB,CAAC;IACnC,WAAW,EAAE,kBAAkB,CAAC;IAChC,gBAAgB,EAAE,0BAA0B,CAAC;IAC7C;;;;OAIG;IACH,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC;;;;OAIG;IACH,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;IACrC,0DAA0D;IAC1D,QAAQ,CAAC,uBAAuB,EAAE,OAAO,CAAC;IAC1C,QAAQ,CAAC,sBAAsB,EAAE,sBAAsB,GAAG,SAAS,CAAC;IACpE,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAC3C;;;;;OAKG;IACH,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,oBAAoB,EAAE,OAAO,CAAC;IACvC,qBAAqB,IAAI,IAAI,CAAC;CAC9B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,iBAAiB,GAAG,aAAa,CA0KvE"}
@@ -1 +1 @@
1
- {"version":3,"file":"create-viewer-state.svelte.d.ts","sourceRoot":"","sources":["../../../src/viewer/state/create-viewer-state.svelte.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAc5F;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,GAAG,cAAc,CAkZnF"}
1
+ {"version":3,"file":"create-viewer-state.svelte.d.ts","sourceRoot":"","sources":["../../../src/viewer/state/create-viewer-state.svelte.ts"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAc5F;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,GAAG,cAAc,CA0ZnF"}
@@ -1,4 +1,4 @@
1
- import { PptxAppProperties, PptxCoreProperties, PptxCustomProperty, PptxPresentationProperties, PptxThemeOption } from 'pptx-viewer-core';
1
+ import { ParsedTableStyleMap, PptxAppProperties, PptxCoreProperties, PptxCustomProperty, PptxPresentationProperties, PptxThemeOption } from 'pptx-viewer-core';
2
2
  import { CanvasSize, SlideSizeEmu, SlideSizeRescaleMode } from 'pptx-viewer-shared';
3
3
  import { EditorState } from '../editor/editor-state.svelte';
4
4
  import { PresentationLoader } from './presentation-loader.svelte';
@@ -55,6 +55,17 @@ export interface InspectorDeckActions {
55
55
  setTemplateBackground(path: string, backgroundColor: string): void;
56
56
  /** Read a layout/master's current background colour. */
57
57
  getTemplateBackgroundColor(path: string): string | undefined;
58
+ /**
59
+ * The deck's parsed `ppt/tableStyles.xml` map, for the table properties
60
+ * panel's "Edit style...". Reached via `useInspectorDeck()` context rather
61
+ * than prop-drilled, so `TableSection`/`TableStyleEditor` need no chain of
62
+ * intermediate props through `InspectorPanel`'s ancestors.
63
+ */
64
+ readonly tableStyleMap: ParsedTableStyleMap | undefined;
65
+ /** Commit a full replacement style map (section edit, create, or delete already applied). */
66
+ updateTableStyleMap(nextMap: ParsedTableStyleMap): void;
67
+ /** Record a styleId for save-time removal from `ppt/tableStyles.xml`. */
68
+ deleteTableStyle(styleId: string): void;
58
69
  }
59
70
  export interface InspectorDeckDeps {
60
71
  loader: PresentationLoader;
@@ -1 +1 @@
1
- {"version":3,"file":"inspector-deck.d.ts","sourceRoot":"","sources":["../../../src/viewer/state/inspector-deck.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,0BAA0B,EAC1B,eAAe,EACf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AASzF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAEvE;;;;;;;;;;GAUG;AACH,MAAM,WAAW,oBAAoB;IACpC,6EAA6E;IAC7E,QAAQ,CAAC,YAAY,EAAE,eAAe,EAAE,CAAC;IACzC,6DAA6D;IAC7D,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,4DAA4D;IAC5D,QAAQ,CAAC,eAAe,EAAE,UAAU,GAAG,SAAS,CAAC;IACjD,kEAAkE;IAClE,QAAQ,CAAC,SAAS,EAAE,YAAY,GAAG,SAAS,CAAC;IAC7C,gGAAgG;IAChG,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,gFAAgF;IAChF,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,iBAAiB,EAAE,OAAO,GAAG,IAAI,CAAC;IACtE,4EAA4E;IAC5E,gBAAgB,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;IACzC;;;;;;;;;OASG;IACH,eAAe,CAAC,IAAI,EAAE,YAAY,EAAE,WAAW,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAC9E,uEAAuE;IACvE,4BAA4B,CAAC,KAAK,EAAE,OAAO,CAAC,0BAA0B,CAAC,GAAG,IAAI,CAAC;IAC/E,6DAA6D;IAC7D,oBAAoB,CAAC,KAAK,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAC;IAC/D,4DAA4D;IAC5D,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC;IAC7D,iDAAiD;IACjD,sBAAsB,CAAC,IAAI,EAAE,kBAAkB,EAAE,GAAG,IAAI,CAAC;IACzD;;;;OAIG;IACH,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IACnE,wDAAwD;IACxD,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CAC7D;AAED,MAAM,WAAW,iBAAiB;IACjC,MAAM,EAAE,kBAAkB,CAAC;IAC3B,MAAM,EAAE,WAAW,CAAC;CACpB;AAED,6EAA6E;AAC7E,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,iBAAiB,GAAG,oBAAoB,CAiIxF;AAED;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,eAAuC,CAAC;AAE/E,+EAA+E;AAC/E,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,oBAAoB,GAAG,IAAI,CAErE;AAED,iFAAiF;AACjF,wBAAgB,gBAAgB,IAAI,oBAAoB,GAAG,SAAS,CAEnE"}
1
+ {"version":3,"file":"inspector-deck.d.ts","sourceRoot":"","sources":["../../../src/viewer/state/inspector-deck.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,0BAA0B,EAC1B,eAAe,EACf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAYzF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAEvE;;;;;;;;;;GAUG;AACH,MAAM,WAAW,oBAAoB;IACpC,6EAA6E;IAC7E,QAAQ,CAAC,YAAY,EAAE,eAAe,EAAE,CAAC;IACzC,6DAA6D;IAC7D,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,4DAA4D;IAC5D,QAAQ,CAAC,eAAe,EAAE,UAAU,GAAG,SAAS,CAAC;IACjD,kEAAkE;IAClE,QAAQ,CAAC,SAAS,EAAE,YAAY,GAAG,SAAS,CAAC;IAC7C,gGAAgG;IAChG,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,gFAAgF;IAChF,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,iBAAiB,EAAE,OAAO,GAAG,IAAI,CAAC;IACtE,4EAA4E;IAC5E,gBAAgB,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;IACzC;;;;;;;;;OASG;IACH,eAAe,CAAC,IAAI,EAAE,YAAY,EAAE,WAAW,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAC9E,uEAAuE;IACvE,4BAA4B,CAAC,KAAK,EAAE,OAAO,CAAC,0BAA0B,CAAC,GAAG,IAAI,CAAC;IAC/E,6DAA6D;IAC7D,oBAAoB,CAAC,KAAK,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAC;IAC/D,4DAA4D;IAC5D,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC;IAC7D,iDAAiD;IACjD,sBAAsB,CAAC,IAAI,EAAE,kBAAkB,EAAE,GAAG,IAAI,CAAC;IACzD;;;;OAIG;IACH,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IACnE,wDAAwD;IACxD,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAC7D;;;;;OAKG;IACH,QAAQ,CAAC,aAAa,EAAE,mBAAmB,GAAG,SAAS,CAAC;IACxD,6FAA6F;IAC7F,mBAAmB,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACxD,yEAAyE;IACzE,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxC;AAED,MAAM,WAAW,iBAAiB;IACjC,MAAM,EAAE,kBAAkB,CAAC;IAC3B,MAAM,EAAE,WAAW,CAAC;CACpB;AAED,6EAA6E;AAC7E,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,iBAAiB,GAAG,oBAAoB,CA+JxF;AAED;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,eAAuC,CAAC;AAE/E,+EAA+E;AAC/E,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,oBAAoB,GAAG,IAAI,CAErE;AAED,iFAAiF;AACjF,wBAAgB,gBAAgB,IAAI,oBAAoB,GAAG,SAAS,CAEnE"}
@@ -76,6 +76,14 @@ export declare class PresentationLoader {
76
76
  presentationTheme: PptxTheme | undefined;
77
77
  /** Parsed presentation table-style definitions keyed by style id. */
78
78
  tableStyleMap: ParsedTableStyleMap | undefined;
79
+ /** `ppt/tableStyles.xml`'s `<a:tblStyleLst @def>` default style GUID. */
80
+ tableStylesDefaultId: string | undefined;
81
+ /**
82
+ * Style GUIDs deleted from `tableStyleMap` via the table style editor,
83
+ * pending removal from `ppt/tableStyles.xml` on the next save. See
84
+ * `tableStyleSaveOptions` / `applyTableStyleDelete` in `pptx-viewer-shared`.
85
+ */
86
+ tableStylesToDelete: string[];
79
87
  /** True while a load is in flight. */
80
88
  loading: boolean;
81
89
  /** Error message from the last failed load, or null. */
@@ -1 +1 @@
1
- {"version":3,"file":"presentation-loader.svelte.d.ts","sourceRoot":"","sources":["../../../src/viewer/state/presentation-loader.svelte.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,wBAAwB,EACxB,iBAAiB,EACjB,gBAAgB,EAChB,sBAAsB,EACtB,uBAAuB,EACvB,kBAAkB,EAClB,eAAe,EACf,0BAA0B,EAC1B,cAAc,EACd,WAAW,EACX,SAAS,EACT,eAAe,EACf,iBAAiB,EACjB,oBAAoB,EACpB,SAAS,EACT,eAAe,EACf,kBAAkB,EAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAsB,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAWrF;;;;;;;;GAQG;AACH,qBAAa,kBAAkB;;IAC9B,8DAA8D;IAC9D,MAAM,cAA+B;IACrC,wEAAwE;IACxE,YAAY,oBAAqC;IACjD,WAAW,8BAAsD;IACjE,aAAa,gCAAwD;IACrE,QAAQ,gBAAiC;IACzC,YAAY,mBAAoC;IAChD,sBAAsB,6BAA8C;IACpE;;;;;;OAMG;IACH,cAAc,iCAAyD;IACvE,8EAA8E;IAC9E,cAAc,iCAAyD;IACvE;;;;;OAKG;IACH,qBAAqB,6BAA8C;IACnE,WAAW,mBAAoC;IAC/C,sHAAsH;IACtH,oBAAoB,4BAA6C;IACjE,+HAA+H;IAC/H,cAAc,sBAAuC;IACrD,cAAc,iCAAyD;IACvE,aAAa,gCAAwD;IACrE,gBAAgB,uBAAwC;IACxD,qFAAqF;IACrF,cAAc,sBAAuC;IACrD,aAAa,qBAAsC;IACnD,oBAAoB,UAAiB;IACrC,qBAAqB,SAAa;IAClC,mBAAmB,UAAiB;IACpC,yDAAyD;IACzD,SAAS,UAAiB;IAC1B,eAAe,yBAAiD;IAChE,4EAA4E;IAC5E,YAAY,oBAAqC;IACjD,mCAAmC;IACnC,UAAU,aAGP;IACH;;;;;;;;;OASG;IACH,SAAS,2BAAmD;IAC5D,qEAAqE;IACrE,aAAa,sBAA8C;IAC3D,4EAA4E;IAC5E,WAAW,mCAA2D;IACtE,iBAAiB,wBAAgD;IACjE,qEAAqE;IACrE,aAAa,kCAA0D;IACvE,sCAAsC;IACtC,OAAO,UAAiB;IACxB,wDAAwD;IACxD,KAAK,gBAA+B;IACpC,wEAAwE;IACxE,WAAW,UAAiB;IAC5B,4DAA4D;IAC5D,OAAO,qBAAwC;IAC/C,wEAAwE;IACxE,SAAS,SAAa;IAKtB;;;;OAIG;IACH,UAAU,EAAE,gBAAgB,CAAkB;IAE9C;;;;;;;;;OASG;IACH,cAAc,EAAE,MAAM,IAAI,CAAC,sBAAsB,EAAE,qBAAqB,CAAC,CAAc;IAEvF,yDAAyD;IACnD,IAAI,CAAC,GAAG,EAAE,UAAU,GAAG,WAAW,EAAE,MAAM,GAAE,gBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC;IA2G3F;;;;OAIG;IACH,YAAY,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI;IAQrC,qEAAqE;IACrE,OAAO,IAAI,IAAI;CAQf"}
1
+ {"version":3,"file":"presentation-loader.svelte.d.ts","sourceRoot":"","sources":["../../../src/viewer/state/presentation-loader.svelte.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,wBAAwB,EACxB,iBAAiB,EACjB,gBAAgB,EAChB,sBAAsB,EACtB,uBAAuB,EACvB,kBAAkB,EAClB,eAAe,EACf,0BAA0B,EAC1B,cAAc,EACd,WAAW,EACX,SAAS,EACT,eAAe,EACf,iBAAiB,EACjB,oBAAoB,EACpB,SAAS,EACT,eAAe,EACf,kBAAkB,EAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAsB,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAWrF;;;;;;;;GAQG;AACH,qBAAa,kBAAkB;;IAC9B,8DAA8D;IAC9D,MAAM,cAA+B;IACrC,wEAAwE;IACxE,YAAY,oBAAqC;IACjD,WAAW,8BAAsD;IACjE,aAAa,gCAAwD;IACrE,QAAQ,gBAAiC;IACzC,YAAY,mBAAoC;IAChD,sBAAsB,6BAA8C;IACpE;;;;;;OAMG;IACH,cAAc,iCAAyD;IACvE,8EAA8E;IAC9E,cAAc,iCAAyD;IACvE;;;;;OAKG;IACH,qBAAqB,6BAA8C;IACnE,WAAW,mBAAoC;IAC/C,sHAAsH;IACtH,oBAAoB,4BAA6C;IACjE,+HAA+H;IAC/H,cAAc,sBAAuC;IACrD,cAAc,iCAAyD;IACvE,aAAa,gCAAwD;IACrE,gBAAgB,uBAAwC;IACxD,qFAAqF;IACrF,cAAc,sBAAuC;IACrD,aAAa,qBAAsC;IACnD,oBAAoB,UAAiB;IACrC,qBAAqB,SAAa;IAClC,mBAAmB,UAAiB;IACpC,yDAAyD;IACzD,SAAS,UAAiB;IAC1B,eAAe,yBAAiD;IAChE,4EAA4E;IAC5E,YAAY,oBAAqC;IACjD,mCAAmC;IACnC,UAAU,aAGP;IACH;;;;;;;;;OASG;IACH,SAAS,2BAAmD;IAC5D,qEAAqE;IACrE,aAAa,sBAA8C;IAC3D,4EAA4E;IAC5E,WAAW,mCAA2D;IACtE,iBAAiB,wBAAgD;IACjE,qEAAqE;IACrE,aAAa,kCAA0D;IACvE,yEAAyE;IACzE,oBAAoB,qBAA6C;IACjE;;;;OAIG;IACH,mBAAmB,WAA4B;IAC/C,sCAAsC;IACtC,OAAO,UAAiB;IACxB,wDAAwD;IACxD,KAAK,gBAA+B;IACpC,wEAAwE;IACxE,WAAW,UAAiB;IAC5B,4DAA4D;IAC5D,OAAO,qBAAwC;IAC/C,wEAAwE;IACxE,SAAS,SAAa;IAKtB;;;;OAIG;IACH,UAAU,EAAE,gBAAgB,CAAkB;IAE9C;;;;;;;;;OASG;IACH,cAAc,EAAE,MAAM,IAAI,CAAC,sBAAsB,EAAE,qBAAqB,CAAC,CAAc;IAEvF,yDAAyD;IACnD,IAAI,CAAC,GAAG,EAAE,UAAU,GAAG,WAAW,EAAE,MAAM,GAAE,gBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC;IA6G3F;;;;OAIG;IACH,YAAY,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI;IAQrC,qEAAqE;IACrE,OAAO,IAAI,IAAI;CAQf"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pptx-svelte-viewer",
3
- "version": "3.8.0",
3
+ "version": "3.9.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",
@@ -70,7 +70,7 @@
70
70
  "html2canvas-pro": "^2.3.2",
71
71
  "jspdf": "^4.2.1",
72
72
  "jszip": "^3.10.1",
73
- "pptx-viewer-mcp": "^2.2.0"
73
+ "pptx-viewer-mcp": "^2.3.0"
74
74
  },
75
75
  "devDependencies": {
76
76
  "@ai-sdk/svelte": "^5.0.31",