pptx-react-viewer 2.18.0 → 2.19.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 (124) hide show
  1. package/CHANGELOG.md +701 -0
  2. package/dist/{AiChatPanel-UN5DHPZY.js → AiChatPanel-2GBJETOY.js} +24 -24
  3. package/dist/AiChatPanel-2GBJETOY.js.br +0 -0
  4. package/dist/AiChatPanel-2GBJETOY.js.gz +0 -0
  5. package/dist/{AiChatPanel-SSSBERWJ.mjs → AiChatPanel-FZUKTQPQ.mjs} +4 -4
  6. package/dist/AiChatPanel-FZUKTQPQ.mjs.br +0 -0
  7. package/dist/AiChatPanel-FZUKTQPQ.mjs.gz +0 -0
  8. package/dist/{Model3DScene-4RPYKC2I.js → Model3DScene-JHTI2AQ6.js} +2 -2
  9. package/dist/Model3DScene-JHTI2AQ6.js.br +0 -0
  10. package/dist/Model3DScene-JHTI2AQ6.js.gz +0 -0
  11. package/dist/{Model3DScene-LYEESYAI.mjs → Model3DScene-WRRQSYAZ.mjs} +1 -1
  12. package/dist/Model3DScene-WRRQSYAZ.mjs.br +0 -0
  13. package/dist/Model3DScene-WRRQSYAZ.mjs.gz +0 -0
  14. package/dist/{PowerPointViewer-Cf4YHjdF.d.ts → PowerPointViewer-DVFkeluD.d.ts} +2 -2
  15. package/dist/PowerPointViewer-DVFkeluD.d.ts.map +1 -0
  16. package/dist/{audience-content-store-CyS0oP6t.d.ts → audience-content-store-ChVOSdBh.d.ts} +2 -2
  17. package/dist/{audience-content-store-CyS0oP6t.d.ts.map → audience-content-store-ChVOSdBh.d.ts.map} +1 -1
  18. package/dist/{chunk-WVDM36ZM.js → chunk-7ARD2J6Y.js} +1096 -1033
  19. package/dist/chunk-7ARD2J6Y.js.br +0 -0
  20. package/dist/chunk-7ARD2J6Y.js.gz +0 -0
  21. package/dist/{chunk-QUB5OSKY.mjs → chunk-BO373PYH.mjs} +70 -115
  22. package/dist/chunk-BO373PYH.mjs.br +0 -0
  23. package/dist/chunk-BO373PYH.mjs.gz +0 -0
  24. package/dist/{chunk-ASKYZ5ZY.js → chunk-IRLOXBO7.js} +439 -484
  25. package/dist/chunk-IRLOXBO7.js.br +0 -0
  26. package/dist/chunk-IRLOXBO7.js.gz +0 -0
  27. package/dist/{chunk-RTUGI4HQ.js → chunk-MVKRI3CZ.js} +9 -0
  28. package/dist/chunk-MVKRI3CZ.js.br +0 -0
  29. package/dist/chunk-MVKRI3CZ.js.gz +0 -0
  30. package/dist/{chunk-BZOL6FXF.mjs → chunk-MWEBCWVD.mjs} +16 -2270
  31. package/dist/chunk-MWEBCWVD.mjs.br +0 -0
  32. package/dist/chunk-MWEBCWVD.mjs.gz +0 -0
  33. package/dist/{chunk-ICZDMFF2.js → chunk-NFFV3RDS.js} +1219 -1101
  34. package/dist/chunk-NFFV3RDS.js.br +0 -0
  35. package/dist/chunk-NFFV3RDS.js.gz +0 -0
  36. package/dist/{chunk-4LWGAVAP.js → chunk-OVPJT4EQ.js} +162 -2416
  37. package/dist/chunk-OVPJT4EQ.js.br +0 -0
  38. package/dist/chunk-OVPJT4EQ.js.gz +0 -0
  39. package/dist/{chunk-MAVLV56S.js → chunk-RPJ2BIQ7.js} +3 -3
  40. package/dist/chunk-RPJ2BIQ7.js.br +0 -0
  41. package/dist/chunk-RPJ2BIQ7.js.gz +0 -0
  42. package/dist/{chunk-SNL6LBRX.mjs → chunk-SQJBFMEX.mjs} +9 -0
  43. package/dist/chunk-SQJBFMEX.mjs.br +0 -0
  44. package/dist/chunk-SQJBFMEX.mjs.gz +0 -0
  45. package/dist/{chunk-GODW6RNR.mjs → chunk-XF3EOHY2.mjs} +1087 -1017
  46. package/dist/chunk-XF3EOHY2.mjs.br +0 -0
  47. package/dist/chunk-XF3EOHY2.mjs.gz +0 -0
  48. package/dist/{chunk-O7FTUUXP.mjs → chunk-YWJBD7KV.mjs} +210 -92
  49. package/dist/chunk-YWJBD7KV.mjs.br +0 -0
  50. package/dist/chunk-YWJBD7KV.mjs.gz +0 -0
  51. package/dist/{chunk-7XF6S4AM.mjs → chunk-ZMEYXAC6.mjs} +1 -1
  52. package/dist/chunk-ZMEYXAC6.mjs.br +0 -0
  53. package/dist/{chunk-7XF6S4AM.mjs.gz → chunk-ZMEYXAC6.mjs.gz} +0 -0
  54. package/dist/i18n.js +4 -4
  55. package/dist/i18n.js.br +0 -0
  56. package/dist/i18n.js.gz +0 -0
  57. package/dist/i18n.mjs +1 -1
  58. package/dist/i18n.mjs.br +0 -0
  59. package/dist/i18n.mjs.gz +0 -0
  60. package/dist/index.d.ts +38 -1
  61. package/dist/index.js +47 -47
  62. package/dist/index.js.br +0 -0
  63. package/dist/index.js.gz +0 -0
  64. package/dist/index.mjs +6 -6
  65. package/dist/index.mjs.br +0 -0
  66. package/dist/index.mjs.gz +0 -0
  67. package/dist/internals.d.ts +102 -15
  68. package/dist/internals.d.ts.map +1 -1
  69. package/dist/internals.js +79 -79
  70. package/dist/internals.js.br +0 -0
  71. package/dist/internals.js.gz +0 -0
  72. package/dist/internals.mjs +4 -4
  73. package/dist/internals.mjs.br +0 -0
  74. package/dist/internals.mjs.gz +0 -0
  75. package/dist/{types-C_CTI-QE.d.ts → types-TCH6icpi.d.ts} +23 -1
  76. package/dist/{types-C_CTI-QE.d.ts.map → types-TCH6icpi.d.ts.map} +1 -1
  77. package/dist/{useViewerBuildingBlocks-DItilDbP.d.ts → useViewerBuildingBlocks-BKb0qs1j.d.ts} +20 -4
  78. package/dist/{useViewerBuildingBlocks-DItilDbP.d.ts.map → useViewerBuildingBlocks-BKb0qs1j.d.ts.map} +1 -1
  79. package/dist/viewer/index.d.ts +38 -1
  80. package/dist/viewer/index.js +27 -27
  81. package/dist/viewer/index.js.br +0 -0
  82. package/dist/viewer/index.js.gz +0 -0
  83. package/dist/viewer/index.mjs +6 -6
  84. package/dist/viewer/index.mjs.br +0 -0
  85. package/dist/viewer/index.mjs.gz +0 -0
  86. package/package.json +1 -1
  87. package/dist/AiChatPanel-SSSBERWJ.mjs.br +0 -0
  88. package/dist/AiChatPanel-SSSBERWJ.mjs.gz +0 -0
  89. package/dist/AiChatPanel-UN5DHPZY.js.br +0 -0
  90. package/dist/AiChatPanel-UN5DHPZY.js.gz +0 -0
  91. package/dist/Model3DScene-4RPYKC2I.js.br +0 -0
  92. package/dist/Model3DScene-4RPYKC2I.js.gz +0 -0
  93. package/dist/Model3DScene-LYEESYAI.mjs.br +0 -0
  94. package/dist/Model3DScene-LYEESYAI.mjs.gz +0 -0
  95. package/dist/PowerPointViewer-Cf4YHjdF.d.ts.map +0 -1
  96. package/dist/SurfaceChart3DScene-ACPKCWLJ.js +0 -78
  97. package/dist/SurfaceChart3DScene-ACPKCWLJ.js.br +0 -0
  98. package/dist/SurfaceChart3DScene-ACPKCWLJ.js.gz +0 -0
  99. package/dist/SurfaceChart3DScene-JR62SOYO.mjs +0 -76
  100. package/dist/SurfaceChart3DScene-JR62SOYO.mjs.br +0 -0
  101. package/dist/SurfaceChart3DScene-JR62SOYO.mjs.gz +0 -0
  102. package/dist/chunk-4LWGAVAP.js.br +0 -0
  103. package/dist/chunk-4LWGAVAP.js.gz +0 -0
  104. package/dist/chunk-7XF6S4AM.mjs.br +0 -0
  105. package/dist/chunk-ASKYZ5ZY.js.br +0 -0
  106. package/dist/chunk-ASKYZ5ZY.js.gz +0 -0
  107. package/dist/chunk-BZOL6FXF.mjs.br +0 -0
  108. package/dist/chunk-BZOL6FXF.mjs.gz +0 -0
  109. package/dist/chunk-GODW6RNR.mjs.br +0 -0
  110. package/dist/chunk-GODW6RNR.mjs.gz +0 -0
  111. package/dist/chunk-ICZDMFF2.js.br +0 -0
  112. package/dist/chunk-ICZDMFF2.js.gz +0 -0
  113. package/dist/chunk-MAVLV56S.js.br +0 -0
  114. package/dist/chunk-MAVLV56S.js.gz +0 -0
  115. package/dist/chunk-O7FTUUXP.mjs.br +0 -0
  116. package/dist/chunk-O7FTUUXP.mjs.gz +0 -0
  117. package/dist/chunk-QUB5OSKY.mjs.br +0 -0
  118. package/dist/chunk-QUB5OSKY.mjs.gz +0 -0
  119. package/dist/chunk-RTUGI4HQ.js.br +0 -0
  120. package/dist/chunk-RTUGI4HQ.js.gz +0 -0
  121. package/dist/chunk-SNL6LBRX.mjs.br +0 -0
  122. package/dist/chunk-SNL6LBRX.mjs.gz +0 -0
  123. package/dist/chunk-WVDM36ZM.js.br +0 -0
  124. package/dist/chunk-WVDM36ZM.js.gz +0 -0
Binary file
Binary file
@@ -1,4 +1,4 @@
1
- import { ThemePresets, PptxMarkdownConverter } from './chunk-GODW6RNR.mjs';
1
+ import { ThemePresets, PptxMarkdownConverter } from './chunk-XF3EOHY2.mjs';
2
2
  import { __export } from './chunk-XGB3TDIC.mjs';
3
3
  import * as mcp from 'pptx-viewer-mcp';
4
4
  import * as mcpSchemas from 'pptx-viewer-mcp/schemas';
Binary file
package/dist/i18n.js CHANGED
@@ -1,19 +1,19 @@
1
1
  'use strict';
2
2
 
3
- var chunkRTUGI4HQ_js = require('./chunk-RTUGI4HQ.js');
3
+ var chunkMVKRI3CZ_js = require('./chunk-MVKRI3CZ.js');
4
4
  require('./chunk-4VNS5WPM.js');
5
5
 
6
6
 
7
7
 
8
8
  Object.defineProperty(exports, "LOCALE_CATALOG", {
9
9
  enumerable: true,
10
- get: function () { return chunkRTUGI4HQ_js.LOCALE_CATALOG; }
10
+ get: function () { return chunkMVKRI3CZ_js.LOCALE_CATALOG; }
11
11
  });
12
12
  Object.defineProperty(exports, "keyToLabel", {
13
13
  enumerable: true,
14
- get: function () { return chunkRTUGI4HQ_js.keyToLabel; }
14
+ get: function () { return chunkMVKRI3CZ_js.keyToLabel; }
15
15
  });
16
16
  Object.defineProperty(exports, "translationsEn", {
17
17
  enumerable: true,
18
- get: function () { return chunkRTUGI4HQ_js.translationsEn; }
18
+ get: function () { return chunkMVKRI3CZ_js.translationsEn; }
19
19
  });
package/dist/i18n.js.br CHANGED
Binary file
package/dist/i18n.js.gz CHANGED
Binary file
package/dist/i18n.mjs CHANGED
@@ -1,2 +1,2 @@
1
- export { LOCALE_CATALOG, keyToLabel, translationsEn } from './chunk-SNL6LBRX.mjs';
1
+ export { LOCALE_CATALOG, keyToLabel, translationsEn } from './chunk-SQJBFMEX.mjs';
2
2
  import './chunk-XGB3TDIC.mjs';
package/dist/i18n.mjs.br CHANGED
Binary file
package/dist/i18n.mjs.gz CHANGED
Binary file
package/dist/index.d.ts CHANGED
@@ -203,11 +203,18 @@ interface XmlObject {
203
203
  [child: string]: XmlObject | XmlObject[] | string | undefined;
204
204
  }
205
205
  /**
206
- * Shape lock attributes from `p:cNvSpPr / a:spLocks`.
206
+ * Lock attributes from an element's non-visual properties node.
207
207
  *
208
208
  * When a flag is `true` the corresponding user interaction is disabled
209
209
  * in the editor (e.g. `noRotation` prevents free rotation of the shape).
210
210
  *
211
+ * One bag covers every family, but the families are NOT interchangeable in
212
+ * the file: `a:spLocks` (`CT_ShapeLocking`), `a:picLocks`, `a:cxnSpLocks`,
213
+ * `a:grpSpLocks` (`CT_GroupLocking`) and `a:graphicFrameLocks`
214
+ * (`CT_GraphicalObjectFrameLocking`) each declare their own attribute subset.
215
+ * `runtime/shape-lock-containers` holds that table and is what decides which
216
+ * of these fields may be written for a given element.
217
+ *
211
218
  * @example
212
219
  * ```ts
213
220
  * const locks: PptxShapeLocks = { noMove: true, noResize: true };
@@ -226,6 +233,14 @@ interface PptxShapeLocks {
226
233
  noAdjustHandles?: boolean;
227
234
  noChangeArrowheads?: boolean;
228
235
  noChangeShapeType?: boolean;
236
+ /**
237
+ * `a:graphicFrameLocks/@noDrilldown`: forbids selecting the individual
238
+ * parts inside a graphic frame (a chart series, a SmartArt node). Declared
239
+ * ONLY by `CT_GraphicalObjectFrameLocking`, so it is written for tables,
240
+ * charts, SmartArt, OLE objects and graphic-frame media, and never onto
241
+ * `a:spLocks` / `a:picLocks` / `a:cxnSpLocks` / `a:grpSpLocks`.
242
+ */
243
+ noDrilldown?: boolean;
229
244
  /**
230
245
  * Text-box flag from `p:cNvSpPr/@txBox`. Not a lock in the strict sense,
231
246
  * but it lives on the same non-visual-properties node as `a:spLocks`, so
@@ -10030,6 +10045,28 @@ interface PowerPointViewerProps {
10030
10045
  onOpenFile?: () => void;
10031
10046
  /** Whether editing actions are enabled */
10032
10047
  canEdit?: boolean;
10048
+ /**
10049
+ * Recovery autosave: after an edit the deck is re-serialised (always as a
10050
+ * plain, unencrypted package, because recovery has no password) and stashed
10051
+ * in the shared IndexedDB store keyed by {@link filePath}. It is a crash-
10052
+ * safety net and never replaces the user's real Save: the document stays
10053
+ * dirty. On load, a newer snapshot is offered back through a recovery prompt.
10054
+ *
10055
+ * **The prop is a policy ceiling; the title-bar AutoSave toggle is the user's
10056
+ * preference inside it.** `false` turns autosave off and makes the toggle
10057
+ * inert (a user cannot switch on what the application forbade). `true` or
10058
+ * omitted permits it, and the toggle decides, defaulting to on. Identical in
10059
+ * all five bindings; see `resolveAutosaveActivation` in `pptx-viewer-shared`.
10060
+ *
10061
+ * @default true
10062
+ */
10063
+ autosave?: boolean;
10064
+ /**
10065
+ * Recovery cadence in milliseconds. An explicit value is a host policy and is
10066
+ * honoured as given; omit it to follow the user's File > Options > Save >
10067
+ * "Save AutoRecover information every N minutes" (two minutes by default).
10068
+ */
10069
+ autosaveIntervalMs?: number;
10033
10070
  /** Optional class name */
10034
10071
  className?: string;
10035
10072
  /**
package/dist/index.js CHANGED
@@ -1,176 +1,176 @@
1
1
  'use strict';
2
2
 
3
- var chunkICZDMFF2_js = require('./chunk-ICZDMFF2.js');
4
- require('./chunk-MAVLV56S.js');
5
- var chunkASKYZ5ZY_js = require('./chunk-ASKYZ5ZY.js');
6
- var chunk4LWGAVAP_js = require('./chunk-4LWGAVAP.js');
7
- var chunkRTUGI4HQ_js = require('./chunk-RTUGI4HQ.js');
8
- var chunkWVDM36ZM_js = require('./chunk-WVDM36ZM.js');
3
+ var chunkNFFV3RDS_js = require('./chunk-NFFV3RDS.js');
4
+ require('./chunk-RPJ2BIQ7.js');
5
+ var chunkIRLOXBO7_js = require('./chunk-IRLOXBO7.js');
6
+ var chunkOVPJT4EQ_js = require('./chunk-OVPJT4EQ.js');
7
+ var chunkMVKRI3CZ_js = require('./chunk-MVKRI3CZ.js');
8
+ var chunk7ARD2J6Y_js = require('./chunk-7ARD2J6Y.js');
9
9
  require('./chunk-4VNS5WPM.js');
10
10
 
11
11
 
12
12
 
13
13
  Object.defineProperty(exports, "PowerPointViewer", {
14
14
  enumerable: true,
15
- get: function () { return chunkICZDMFF2_js.PowerPointViewer; }
15
+ get: function () { return chunkNFFV3RDS_js.PowerPointViewer; }
16
16
  });
17
17
  Object.defineProperty(exports, "SlideCanvas", {
18
18
  enumerable: true,
19
- get: function () { return chunkICZDMFF2_js.SlideCanvas; }
19
+ get: function () { return chunkNFFV3RDS_js.SlideCanvas; }
20
20
  });
21
21
  Object.defineProperty(exports, "SlideTemplateGalleryDialog", {
22
22
  enumerable: true,
23
- get: function () { return chunkICZDMFF2_js.SlideTemplateGalleryDialog; }
23
+ get: function () { return chunkNFFV3RDS_js.SlideTemplateGalleryDialog; }
24
24
  });
25
25
  Object.defineProperty(exports, "SlideTemplatePreview", {
26
26
  enumerable: true,
27
- get: function () { return chunkICZDMFF2_js.SlideTemplatePreview; }
27
+ get: function () { return chunkNFFV3RDS_js.SlideTemplatePreview; }
28
28
  });
29
29
  Object.defineProperty(exports, "Toolbar", {
30
30
  enumerable: true,
31
- get: function () { return chunkICZDMFF2_js.Toolbar; }
31
+ get: function () { return chunkNFFV3RDS_js.Toolbar; }
32
32
  });
33
33
  Object.defineProperty(exports, "ViewerThemeProvider", {
34
34
  enumerable: true,
35
- get: function () { return chunkICZDMFF2_js.ViewerThemeProvider; }
35
+ get: function () { return chunkNFFV3RDS_js.ViewerThemeProvider; }
36
36
  });
37
37
  Object.defineProperty(exports, "useViewerTheme", {
38
38
  enumerable: true,
39
- get: function () { return chunkICZDMFF2_js.useViewerTheme; }
39
+ get: function () { return chunkNFFV3RDS_js.useViewerTheme; }
40
40
  });
41
41
  Object.defineProperty(exports, "renderToCanvas", {
42
42
  enumerable: true,
43
- get: function () { return chunkASKYZ5ZY_js.renderToCanvas; }
43
+ get: function () { return chunkIRLOXBO7_js.renderToCanvas; }
44
44
  });
45
45
  Object.defineProperty(exports, "useViewerBuildingBlocks", {
46
46
  enumerable: true,
47
- get: function () { return chunkASKYZ5ZY_js.useViewerBuildingBlocks; }
47
+ get: function () { return chunkIRLOXBO7_js.useViewerBuildingBlocks; }
48
48
  });
49
49
  Object.defineProperty(exports, "getAnimationInitialStyle", {
50
50
  enumerable: true,
51
- get: function () { return chunk4LWGAVAP_js.getAnimationInitialStyle; }
51
+ get: function () { return chunkOVPJT4EQ_js.getAnimationInitialStyle; }
52
52
  });
53
53
  Object.defineProperty(exports, "LOCALE_CATALOG", {
54
54
  enumerable: true,
55
- get: function () { return chunkRTUGI4HQ_js.LOCALE_CATALOG; }
55
+ get: function () { return chunkMVKRI3CZ_js.LOCALE_CATALOG; }
56
56
  });
57
57
  Object.defineProperty(exports, "AVATAR_COLOR_SWATCHES", {
58
58
  enumerable: true,
59
- get: function () { return chunkWVDM36ZM_js.AVATAR_COLOR_SWATCHES; }
59
+ get: function () { return chunk7ARD2J6Y_js.AVATAR_COLOR_SWATCHES; }
60
60
  });
61
61
  Object.defineProperty(exports, "DEFAULT_VIEWER_PROFILE", {
62
62
  enumerable: true,
63
- get: function () { return chunkWVDM36ZM_js.DEFAULT_VIEWER_PROFILE; }
63
+ get: function () { return chunk7ARD2J6Y_js.DEFAULT_VIEWER_PROFILE; }
64
64
  });
65
65
  Object.defineProperty(exports, "PPTX_OPEN_ACCEPT", {
66
66
  enumerable: true,
67
- get: function () { return chunkWVDM36ZM_js.PPTX_OPEN_ACCEPT; }
67
+ get: function () { return chunk7ARD2J6Y_js.PPTX_OPEN_ACCEPT; }
68
68
  });
69
69
  Object.defineProperty(exports, "PRESENTATION_OPEN_EXTENSIONS", {
70
70
  enumerable: true,
71
- get: function () { return chunkWVDM36ZM_js.PRESENTATION_OPEN_EXTENSIONS; }
71
+ get: function () { return chunk7ARD2J6Y_js.PRESENTATION_OPEN_EXTENSIONS; }
72
72
  });
73
73
  Object.defineProperty(exports, "SLIDE_TEMPLATES", {
74
74
  enumerable: true,
75
- get: function () { return chunkWVDM36ZM_js.SLIDE_TEMPLATES; }
75
+ get: function () { return chunk7ARD2J6Y_js.SLIDE_TEMPLATES; }
76
76
  });
77
77
  Object.defineProperty(exports, "THEME_CATALOG", {
78
78
  enumerable: true,
79
- get: function () { return chunkWVDM36ZM_js.THEME_CATALOG; }
79
+ get: function () { return chunk7ARD2J6Y_js.THEME_CATALOG; }
80
80
  });
81
81
  Object.defineProperty(exports, "VIEWER_PREFS_STORAGE_KEY", {
82
82
  enumerable: true,
83
- get: function () { return chunkWVDM36ZM_js.VIEWER_PREFS_STORAGE_KEY; }
83
+ get: function () { return chunk7ARD2J6Y_js.VIEWER_PREFS_STORAGE_KEY; }
84
84
  });
85
85
  Object.defineProperty(exports, "buildSlideTemplateContent", {
86
86
  enumerable: true,
87
- get: function () { return chunkWVDM36ZM_js.buildSlideTemplateContent; }
87
+ get: function () { return chunk7ARD2J6Y_js.buildSlideTemplateContent; }
88
88
  });
89
89
  Object.defineProperty(exports, "buildSlideTemplateSlide", {
90
90
  enumerable: true,
91
- get: function () { return chunkWVDM36ZM_js.buildSlideTemplateSlide; }
91
+ get: function () { return chunk7ARD2J6Y_js.buildSlideTemplateSlide; }
92
92
  });
93
93
  Object.defineProperty(exports, "clearAllLocalViewerData", {
94
94
  enumerable: true,
95
- get: function () { return chunkWVDM36ZM_js.clearAllLocalViewerData; }
95
+ get: function () { return chunk7ARD2J6Y_js.clearAllLocalViewerData; }
96
96
  });
97
97
  Object.defineProperty(exports, "clearStoredViewerPrefs", {
98
98
  enumerable: true,
99
- get: function () { return chunkWVDM36ZM_js.clearStoredViewerPrefs; }
99
+ get: function () { return chunk7ARD2J6Y_js.clearStoredViewerPrefs; }
100
100
  });
101
101
  Object.defineProperty(exports, "defaultCssVars", {
102
102
  enumerable: true,
103
- get: function () { return chunkWVDM36ZM_js.defaultCssVars; }
103
+ get: function () { return chunk7ARD2J6Y_js.defaultCssVars; }
104
104
  });
105
105
  Object.defineProperty(exports, "defaultRadius", {
106
106
  enumerable: true,
107
- get: function () { return chunkWVDM36ZM_js.defaultRadius; }
107
+ get: function () { return chunk7ARD2J6Y_js.defaultRadius; }
108
108
  });
109
109
  Object.defineProperty(exports, "defaultThemeColors", {
110
110
  enumerable: true,
111
- get: function () { return chunkWVDM36ZM_js.defaultThemeColors; }
111
+ get: function () { return chunk7ARD2J6Y_js.defaultThemeColors; }
112
112
  });
113
113
  Object.defineProperty(exports, "getLocalStorageUsageSummary", {
114
114
  enumerable: true,
115
- get: function () { return chunkWVDM36ZM_js.getLocalStorageUsageSummary; }
115
+ get: function () { return chunk7ARD2J6Y_js.getLocalStorageUsageSummary; }
116
116
  });
117
117
  Object.defineProperty(exports, "isLegacyBinaryPresentation", {
118
118
  enumerable: true,
119
- get: function () { return chunkWVDM36ZM_js.isLegacyBinaryPresentation; }
119
+ get: function () { return chunk7ARD2J6Y_js.isLegacyBinaryPresentation; }
120
120
  });
121
121
  Object.defineProperty(exports, "isSupportedPresentationFile", {
122
122
  enumerable: true,
123
- get: function () { return chunkWVDM36ZM_js.isSupportedPresentationFile; }
123
+ get: function () { return chunk7ARD2J6Y_js.isSupportedPresentationFile; }
124
124
  });
125
125
  Object.defineProperty(exports, "presentationBaseName", {
126
126
  enumerable: true,
127
- get: function () { return chunkWVDM36ZM_js.presentationBaseName; }
127
+ get: function () { return chunk7ARD2J6Y_js.presentationBaseName; }
128
128
  });
129
129
  Object.defineProperty(exports, "readStoredViewerPrefs", {
130
130
  enumerable: true,
131
- get: function () { return chunkWVDM36ZM_js.readStoredViewerPrefs; }
131
+ get: function () { return chunk7ARD2J6Y_js.readStoredViewerPrefs; }
132
132
  });
133
133
  Object.defineProperty(exports, "resolveProfileInitial", {
134
134
  enumerable: true,
135
- get: function () { return chunkWVDM36ZM_js.resolveProfileInitial; }
135
+ get: function () { return chunk7ARD2J6Y_js.resolveProfileInitial; }
136
136
  });
137
137
  Object.defineProperty(exports, "resolveThemeCatalogEntry", {
138
138
  enumerable: true,
139
- get: function () { return chunkWVDM36ZM_js.resolveThemeCatalogEntry; }
139
+ get: function () { return chunk7ARD2J6Y_js.resolveThemeCatalogEntry; }
140
140
  });
141
141
  Object.defineProperty(exports, "saveViewerProfile", {
142
142
  enumerable: true,
143
- get: function () { return chunkWVDM36ZM_js.saveViewerProfile; }
143
+ get: function () { return chunk7ARD2J6Y_js.saveViewerProfile; }
144
144
  });
145
145
  Object.defineProperty(exports, "savedPresentationFileName", {
146
146
  enumerable: true,
147
- get: function () { return chunkWVDM36ZM_js.savedPresentationFileName; }
147
+ get: function () { return chunk7ARD2J6Y_js.savedPresentationFileName; }
148
148
  });
149
149
  Object.defineProperty(exports, "themeToCssVars", {
150
150
  enumerable: true,
151
- get: function () { return chunkWVDM36ZM_js.themeToCssVars; }
151
+ get: function () { return chunk7ARD2J6Y_js.themeToCssVars; }
152
152
  });
153
153
  Object.defineProperty(exports, "vermilionDarkColors", {
154
154
  enumerable: true,
155
- get: function () { return chunkWVDM36ZM_js.vermilionDarkColors; }
155
+ get: function () { return chunk7ARD2J6Y_js.vermilionDarkColors; }
156
156
  });
157
157
  Object.defineProperty(exports, "vermilionDarkTheme", {
158
158
  enumerable: true,
159
- get: function () { return chunkWVDM36ZM_js.vermilionDarkTheme; }
159
+ get: function () { return chunk7ARD2J6Y_js.vermilionDarkTheme; }
160
160
  });
161
161
  Object.defineProperty(exports, "vermilionLightColors", {
162
162
  enumerable: true,
163
- get: function () { return chunkWVDM36ZM_js.vermilionLightColors; }
163
+ get: function () { return chunk7ARD2J6Y_js.vermilionLightColors; }
164
164
  });
165
165
  Object.defineProperty(exports, "vermilionLightTheme", {
166
166
  enumerable: true,
167
- get: function () { return chunkWVDM36ZM_js.vermilionLightTheme; }
167
+ get: function () { return chunk7ARD2J6Y_js.vermilionLightTheme; }
168
168
  });
169
169
  Object.defineProperty(exports, "vermilionRadius", {
170
170
  enumerable: true,
171
- get: function () { return chunkWVDM36ZM_js.vermilionRadius; }
171
+ get: function () { return chunk7ARD2J6Y_js.vermilionRadius; }
172
172
  });
173
173
  Object.defineProperty(exports, "writeStoredViewerPrefs", {
174
174
  enumerable: true,
175
- get: function () { return chunkWVDM36ZM_js.writeStoredViewerPrefs; }
175
+ get: function () { return chunk7ARD2J6Y_js.writeStoredViewerPrefs; }
176
176
  });
package/dist/index.js.br CHANGED
Binary file
package/dist/index.js.gz CHANGED
Binary file
package/dist/index.mjs CHANGED
@@ -1,7 +1,7 @@
1
- export { PowerPointViewer, SlideCanvas, SlideTemplateGalleryDialog, SlideTemplatePreview, Toolbar, ViewerThemeProvider, useViewerTheme } from './chunk-O7FTUUXP.mjs';
2
- import './chunk-7XF6S4AM.mjs';
3
- export { renderToCanvas, useViewerBuildingBlocks } from './chunk-QUB5OSKY.mjs';
4
- export { getAnimationInitialStyle } from './chunk-BZOL6FXF.mjs';
5
- export { LOCALE_CATALOG } from './chunk-SNL6LBRX.mjs';
6
- export { AVATAR_COLOR_SWATCHES, DEFAULT_VIEWER_PROFILE, PPTX_OPEN_ACCEPT, PRESENTATION_OPEN_EXTENSIONS, SLIDE_TEMPLATES, THEME_CATALOG, VIEWER_PREFS_STORAGE_KEY, buildSlideTemplateContent, buildSlideTemplateSlide, clearAllLocalViewerData, clearStoredViewerPrefs, defaultCssVars, defaultRadius, defaultThemeColors, getLocalStorageUsageSummary, isLegacyBinaryPresentation, isSupportedPresentationFile, presentationBaseName, readStoredViewerPrefs, resolveProfileInitial, resolveThemeCatalogEntry, saveViewerProfile, savedPresentationFileName, themeToCssVars, vermilionDarkColors, vermilionDarkTheme, vermilionLightColors, vermilionLightTheme, vermilionRadius, writeStoredViewerPrefs } from './chunk-GODW6RNR.mjs';
1
+ export { PowerPointViewer, SlideCanvas, SlideTemplateGalleryDialog, SlideTemplatePreview, Toolbar, ViewerThemeProvider, useViewerTheme } from './chunk-YWJBD7KV.mjs';
2
+ import './chunk-ZMEYXAC6.mjs';
3
+ export { renderToCanvas, useViewerBuildingBlocks } from './chunk-BO373PYH.mjs';
4
+ export { getAnimationInitialStyle } from './chunk-MWEBCWVD.mjs';
5
+ export { LOCALE_CATALOG } from './chunk-SQJBFMEX.mjs';
6
+ export { AVATAR_COLOR_SWATCHES, DEFAULT_VIEWER_PROFILE, PPTX_OPEN_ACCEPT, PRESENTATION_OPEN_EXTENSIONS, SLIDE_TEMPLATES, THEME_CATALOG, VIEWER_PREFS_STORAGE_KEY, buildSlideTemplateContent, buildSlideTemplateSlide, clearAllLocalViewerData, clearStoredViewerPrefs, defaultCssVars, defaultRadius, defaultThemeColors, getLocalStorageUsageSummary, isLegacyBinaryPresentation, isSupportedPresentationFile, presentationBaseName, readStoredViewerPrefs, resolveProfileInitial, resolveThemeCatalogEntry, saveViewerProfile, savedPresentationFileName, themeToCssVars, vermilionDarkColors, vermilionDarkTheme, vermilionLightColors, vermilionLightTheme, vermilionRadius, writeStoredViewerPrefs } from './chunk-XF3EOHY2.mjs';
7
7
  import './chunk-XGB3TDIC.mjs';
package/dist/index.mjs.br CHANGED
Binary file
package/dist/index.mjs.gz CHANGED
Binary file
@@ -183,11 +183,18 @@ interface XmlObject {
183
183
  [child: string]: XmlObject | XmlObject[] | string | undefined;
184
184
  }
185
185
  /**
186
- * Shape lock attributes from `p:cNvSpPr / a:spLocks`.
186
+ * Lock attributes from an element's non-visual properties node.
187
187
  *
188
188
  * When a flag is `true` the corresponding user interaction is disabled
189
189
  * in the editor (e.g. `noRotation` prevents free rotation of the shape).
190
190
  *
191
+ * One bag covers every family, but the families are NOT interchangeable in
192
+ * the file: `a:spLocks` (`CT_ShapeLocking`), `a:picLocks`, `a:cxnSpLocks`,
193
+ * `a:grpSpLocks` (`CT_GroupLocking`) and `a:graphicFrameLocks`
194
+ * (`CT_GraphicalObjectFrameLocking`) each declare their own attribute subset.
195
+ * `runtime/shape-lock-containers` holds that table and is what decides which
196
+ * of these fields may be written for a given element.
197
+ *
191
198
  * @example
192
199
  * ```ts
193
200
  * const locks: PptxShapeLocks = { noMove: true, noResize: true };
@@ -206,6 +213,14 @@ interface PptxShapeLocks {
206
213
  noAdjustHandles?: boolean;
207
214
  noChangeArrowheads?: boolean;
208
215
  noChangeShapeType?: boolean;
216
+ /**
217
+ * `a:graphicFrameLocks/@noDrilldown`: forbids selecting the individual
218
+ * parts inside a graphic frame (a chart series, a SmartArt node). Declared
219
+ * ONLY by `CT_GraphicalObjectFrameLocking`, so it is written for tables,
220
+ * charts, SmartArt, OLE objects and graphic-frame media, and never onto
221
+ * `a:spLocks` / `a:picLocks` / `a:cxnSpLocks` / `a:grpSpLocks`.
222
+ */
223
+ noDrilldown?: boolean;
209
224
  /**
210
225
  * Text-box flag from `p:cNvSpPr/@txBox`. Not a lock in the strict sense,
211
226
  * but it lives on the same non-visual-properties node as `a:spLocks`, so
@@ -9490,6 +9505,31 @@ interface FontEmbeddingDescriptor {
9490
9505
  /** Present only when `interactive` is false. */
9491
9506
  disabledReasonKey?: string;
9492
9507
  }
9508
+ /** Everything a binding needs to render the recovery dialog, and nothing else. */
9509
+ interface AutosaveRecoveryPrompt {
9510
+ /** IndexedDB key the snapshot is stored under (the deck's file path/name). */
9511
+ readonly filePath: string;
9512
+ /** When the snapshot was written (epoch ms). */
9513
+ readonly timestamp: number;
9514
+ /** Snapshot size in bytes. */
9515
+ readonly size: number;
9516
+ /** Whole minutes since it was written, floored at 0. */
9517
+ readonly ageMinutes: number;
9518
+ readonly titleKey: string;
9519
+ readonly messageKey: string;
9520
+ /** `size` is pre-formatted here because byte units are not translated. */
9521
+ readonly messageParams: {
9522
+ readonly file: string;
9523
+ readonly size: string;
9524
+ };
9525
+ /** Relative age, reusing the existing autosave age keys. */
9526
+ readonly ageKey: string;
9527
+ readonly ageParams: {
9528
+ readonly count: number;
9529
+ };
9530
+ readonly restoreKey: string;
9531
+ readonly discardKey: string;
9532
+ }
9493
9533
  //#endregion
9494
9534
  //#region src/render/master-view.d.ts
9495
9535
  /** Which part the master view is currently pointed at. */
@@ -10420,9 +10460,25 @@ interface UseAutosaveInput {
10420
10460
  filePath: string | undefined;
10421
10461
  /** Serialise current editor state to a Uint8Array. */
10422
10462
  serializeSlides: () => Promise<Uint8Array | null>;
10423
- /** Autosave interval in seconds (default 120). */
10463
+ /**
10464
+ * Autosave interval in seconds.
10465
+ *
10466
+ * @deprecated Pass {@link intervalMs} instead. Seconds cannot express the
10467
+ * short cadence a host may legitimately ask for, and the shared clamp it went
10468
+ * through raised anything under 10s back to 10s, so an explicit host policy
10469
+ * was silently overruled. Ignored when `intervalMs` is given.
10470
+ */
10424
10471
  intervalSeconds?: number;
10425
- /** Whether autosave is enabled. */
10472
+ /**
10473
+ * Autosave interval in milliseconds, already resolved by the shared
10474
+ * `resolveAutosaveIntervalMs` (host prop > File > Options > Save AutoRecover
10475
+ * cadence > 120s default). Wins over {@link intervalSeconds}.
10476
+ */
10477
+ intervalMs?: number;
10478
+ /**
10479
+ * Whether autosave is enabled: the resolved `active` from the shared
10480
+ * `resolveAutosaveActivation`, NOT the raw title-bar toggle.
10481
+ */
10426
10482
  enabled?: boolean;
10427
10483
  /**
10428
10484
  * The values a snapshot is built from, read fresh on each tick.
@@ -12612,9 +12668,26 @@ interface UseRecoveryDetectionInput {
12612
12668
  loading: boolean;
12613
12669
  error: string | null;
12614
12670
  slideCount: number;
12615
- openVersionHistory: () => void;
12671
+ /**
12672
+ * Whether the host permits autosave (the shared `resolveAutosaveActivation`
12673
+ * ceiling). A host that passed `autosave={false}` is never offered snapshots
12674
+ * an earlier configuration left behind. Defaults to true.
12675
+ */
12676
+ autosaveAllowed?: boolean;
12677
+ /** Load the recovered bytes into the viewer. */
12678
+ onRestore?: (bytes: Uint8Array) => void;
12679
+ /** Legacy behaviour: also open the Version History panel when one is found. */
12680
+ openVersionHistory?: () => void;
12681
+ }
12682
+ interface UseRecoveryDetectionResult {
12683
+ /** What the dialog should say, or null when there is nothing to offer. */
12684
+ prompt: AutosaveRecoveryPrompt | null;
12685
+ /** Accept: load the snapshot and close. */
12686
+ restore: () => void;
12687
+ /** Decline: drop the snapshot and close. */
12688
+ discard: () => void;
12616
12689
  }
12617
- declare function useRecoveryDetection(input: UseRecoveryDetectionInput): void;
12690
+ declare function useRecoveryDetection(input: UseRecoveryDetectionInput): UseRecoveryDetectionResult;
12618
12691
  //#endregion
12619
12692
  //#region src/viewer/hooks/usePresentationSetup.d.ts
12620
12693
  interface UsePresentationSetupInput {
@@ -12734,15 +12807,18 @@ declare function useIOHandlers(input: UseIOHandlersInput): IOHandlersResult;
12734
12807
  interface UseContentLifecycleInput {
12735
12808
  content: ArrayBuffer | Uint8Array | null;
12736
12809
  filePath: string | undefined;
12737
- /** AutoSave toggle state; when false the recovery autosave timer is off. */
12810
+ /**
12811
+ * Whether autosave actually runs: the resolved `active` from the shared
12812
+ * `resolveAutosaveActivation` (host `autosave` prop as a ceiling, title-bar
12813
+ * toggle as the preference inside it), not the raw toggle.
12814
+ */
12738
12815
  autosaveEnabled?: boolean;
12739
12816
  /**
12740
- * AutoRecover cadence in seconds, from
12741
- * `resolveAutosaveIntervalSeconds(File > Options > Save)`. React was the only
12742
- * binding that never passed one (vanilla, svelte and angular all resolve it),
12743
- * so the option's number field moved and the timer kept its 120s default.
12817
+ * The resolved cadence in milliseconds, from the shared
12818
+ * `resolveAutosaveIntervalMs` (host `autosaveIntervalMs` prop > File >
12819
+ * Options > Save AutoRecover cadence > 120s default).
12744
12820
  */
12745
- autosaveIntervalSeconds?: number;
12821
+ autosaveIntervalMs?: number;
12746
12822
  /**
12747
12823
  * File > Fonts > "Embed fonts in the file". Forwarded to `useSerialize`, so
12748
12824
  * turning it off actually strips the embedded font data on the next save.
@@ -12798,13 +12874,22 @@ interface UseViewerIntegrationInput {
12798
12874
  gridSpacingPx: number;
12799
12875
  content: ArrayBuffer | Uint8Array | null;
12800
12876
  filePath: string | undefined;
12801
- /** AutoSave toggle state from the title bar. */
12877
+ /**
12878
+ * Whether autosave actually runs: the shared `resolveAutosaveActivation`
12879
+ * verdict (host `autosave` prop as a ceiling, title-bar toggle inside it).
12880
+ */
12802
12881
  autosaveEnabled: boolean;
12803
12882
  /**
12804
- * AutoRecover cadence in seconds, resolved from File > Options > Save.
12805
- * Optional: omitting it keeps `useAutosave`'s 120s default.
12883
+ * Whether the host permits autosave at all. Only the recovery prompt needs
12884
+ * this separately from `autosaveEnabled`: a user who merely switched the
12885
+ * toggle off should still be offered a snapshot from before the crash.
12886
+ */
12887
+ autosaveAllowed?: boolean;
12888
+ /**
12889
+ * The resolved cadence in milliseconds (shared `resolveAutosaveIntervalMs`).
12890
+ * Optional: omitting it keeps the shared 120s AutoRecover default.
12806
12891
  */
12807
- autosaveIntervalSeconds?: number;
12892
+ autosaveIntervalMs?: number;
12808
12893
  canEdit: boolean;
12809
12894
  mode: ViewerState['mode'];
12810
12895
  slides: PptxSlide[];
@@ -12835,6 +12920,8 @@ interface ViewerIntegrationResult {
12835
12920
  handleEnterPresenterView: AnnotationHandlersResult['handleEnterPresenterView'];
12836
12921
  handleEnterRehearsalMode: AnnotationHandlersResult['handleEnterRehearsalMode'];
12837
12922
  autosaveStatus: AutosaveStatus;
12923
+ /** The crash-recovery prompt (shared descriptor) plus its accept/decline actions. */
12924
+ recovery: UseRecoveryDetectionResult;
12838
12925
  isEncryptedDialogOpen: boolean;
12839
12926
  setIsEncryptedDialogOpen: Dispatch<SetStateAction<boolean>>;
12840
12927
  /** The loaded core handler, exposed for the AI bridge (`getHandler`). */