pptx-vue-viewer 1.1.9 → 1.1.11

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 (161) hide show
  1. package/dist/index.cjs +1 -1
  2. package/dist/index.cjs.br +5 -3
  3. package/dist/index.cjs.gz +0 -0
  4. package/dist/index.js +6 -6
  5. package/dist/index.js.br +0 -0
  6. package/dist/index.js.gz +0 -0
  7. package/dist/pptx-vue-viewer.css +82 -0
  8. package/dist/pptx-vue-viewer.css.br +0 -0
  9. package/dist/pptx-vue-viewer.css.gz +0 -0
  10. package/dist/viewer/PowerPointViewer.vue.d.ts +5 -3
  11. package/dist/viewer/PowerPointViewer.vue.d.ts.map +1 -1
  12. package/dist/viewer/components/AccessibilityPanel.vue.d.ts +24 -0
  13. package/dist/viewer/components/AccessibilityPanel.vue.d.ts.map +1 -0
  14. package/dist/viewer/components/AlignToolbar.vue.d.ts +33 -0
  15. package/dist/viewer/components/AlignToolbar.vue.d.ts.map +1 -0
  16. package/dist/viewer/components/AutosaveIndicator.vue.d.ts +9 -0
  17. package/dist/viewer/components/AutosaveIndicator.vue.d.ts.map +1 -0
  18. package/dist/viewer/components/BroadcastDialog.vue.d.ts +26 -0
  19. package/dist/viewer/components/BroadcastDialog.vue.d.ts.map +1 -0
  20. package/dist/viewer/components/ChartRenderer.vue.d.ts +40 -0
  21. package/dist/viewer/components/ChartRenderer.vue.d.ts.map +1 -0
  22. package/dist/viewer/components/CollaborationCursors.vue.d.ts +45 -0
  23. package/dist/viewer/components/CollaborationCursors.vue.d.ts.map +1 -0
  24. package/dist/viewer/components/CommentsPanel.vue.d.ts +27 -0
  25. package/dist/viewer/components/CommentsPanel.vue.d.ts.map +1 -0
  26. package/dist/viewer/components/ContextMenu.vue.d.ts +38 -0
  27. package/dist/viewer/components/ContextMenu.vue.d.ts.map +1 -0
  28. package/dist/viewer/components/EditorToolbar.vue.d.ts +52 -0
  29. package/dist/viewer/components/EditorToolbar.vue.d.ts.map +1 -0
  30. package/dist/viewer/components/ElementRenderer.vue.d.ts +9 -6
  31. package/dist/viewer/components/ElementRenderer.vue.d.ts.map +1 -1
  32. package/dist/viewer/components/EquationRenderer.vue.d.ts +23 -0
  33. package/dist/viewer/components/EquationRenderer.vue.d.ts.map +1 -0
  34. package/dist/viewer/components/ExportMenu.vue.d.ts +17 -0
  35. package/dist/viewer/components/ExportMenu.vue.d.ts.map +1 -0
  36. package/dist/viewer/components/FindReplaceBar.vue.d.ts +32 -0
  37. package/dist/viewer/components/FindReplaceBar.vue.d.ts.map +1 -0
  38. package/dist/viewer/components/HyperlinkDialog.vue.d.ts +50 -0
  39. package/dist/viewer/components/HyperlinkDialog.vue.d.ts.map +1 -0
  40. package/dist/viewer/components/InkRenderer.vue.d.ts +23 -0
  41. package/dist/viewer/components/InkRenderer.vue.d.ts.map +1 -0
  42. package/dist/viewer/components/MobileBottomBar.vue.d.ts +26 -0
  43. package/dist/viewer/components/MobileBottomBar.vue.d.ts.map +1 -0
  44. package/dist/viewer/components/ModalDialog.vue.d.ts +43 -0
  45. package/dist/viewer/components/ModalDialog.vue.d.ts.map +1 -0
  46. package/dist/viewer/components/Model3DRenderer.vue.d.ts +19 -0
  47. package/dist/viewer/components/Model3DRenderer.vue.d.ts.map +1 -0
  48. package/dist/viewer/components/NotesPanel.vue.d.ts +33 -0
  49. package/dist/viewer/components/NotesPanel.vue.d.ts.map +1 -0
  50. package/dist/viewer/components/OleRenderer.vue.d.ts +23 -0
  51. package/dist/viewer/components/OleRenderer.vue.d.ts.map +1 -0
  52. package/dist/viewer/components/PresentationMode.vue.d.ts +37 -0
  53. package/dist/viewer/components/PresentationMode.vue.d.ts.map +1 -0
  54. package/dist/viewer/components/PropertiesDialog.vue.d.ts +32 -0
  55. package/dist/viewer/components/PropertiesDialog.vue.d.ts.map +1 -0
  56. package/dist/viewer/components/SelectionOverlay.vue.d.ts +30 -0
  57. package/dist/viewer/components/SelectionOverlay.vue.d.ts.map +1 -0
  58. package/dist/viewer/components/ShareDialog.vue.d.ts +33 -0
  59. package/dist/viewer/components/ShareDialog.vue.d.ts.map +1 -0
  60. package/dist/viewer/components/SignaturesPanel.vue.d.ts +18 -0
  61. package/dist/viewer/components/SignaturesPanel.vue.d.ts.map +1 -0
  62. package/dist/viewer/components/SlideCanvas.vue.d.ts +11 -1
  63. package/dist/viewer/components/SlideCanvas.vue.d.ts.map +1 -1
  64. package/dist/viewer/components/SlideSorter.vue.d.ts +20 -0
  65. package/dist/viewer/components/SlideSorter.vue.d.ts.map +1 -0
  66. package/dist/viewer/components/SlideStage.vue.d.ts +11 -1
  67. package/dist/viewer/components/SlideStage.vue.d.ts.map +1 -1
  68. package/dist/viewer/components/SlideTransitionPanel.vue.d.ts +21 -0
  69. package/dist/viewer/components/SlideTransitionPanel.vue.d.ts.map +1 -0
  70. package/dist/viewer/components/SlidesPaneControls.vue.d.ts +16 -0
  71. package/dist/viewer/components/SlidesPaneControls.vue.d.ts.map +1 -0
  72. package/dist/viewer/components/SmartArtRenderer.vue.d.ts +29 -0
  73. package/dist/viewer/components/SmartArtRenderer.vue.d.ts.map +1 -0
  74. package/dist/viewer/components/TableRenderer.vue.d.ts +30 -0
  75. package/dist/viewer/components/TableRenderer.vue.d.ts.map +1 -0
  76. package/dist/viewer/components/WordArtText.vue.d.ts +24 -0
  77. package/dist/viewer/components/WordArtText.vue.d.ts.map +1 -0
  78. package/dist/viewer/components/ZoomRenderer.vue.d.ts +24 -0
  79. package/dist/viewer/components/ZoomRenderer.vue.d.ts.map +1 -0
  80. package/dist/viewer/components/chart/ChartChrome.vue.d.ts +23 -0
  81. package/dist/viewer/components/chart/ChartChrome.vue.d.ts.map +1 -0
  82. package/dist/viewer/components/inspector/AnimationPanel.vue.d.ts +39 -0
  83. package/dist/viewer/components/inspector/AnimationPanel.vue.d.ts.map +1 -0
  84. package/dist/viewer/components/inspector/ArrangePanel.vue.d.ts +19 -0
  85. package/dist/viewer/components/inspector/ArrangePanel.vue.d.ts.map +1 -0
  86. package/dist/viewer/components/inspector/ChartPanel.vue.d.ts +26 -0
  87. package/dist/viewer/components/inspector/ChartPanel.vue.d.ts.map +1 -0
  88. package/dist/viewer/components/inspector/EffectsPanel.vue.d.ts +34 -0
  89. package/dist/viewer/components/inspector/EffectsPanel.vue.d.ts.map +1 -0
  90. package/dist/viewer/components/inspector/FillPanel.vue.d.ts +21 -0
  91. package/dist/viewer/components/inspector/FillPanel.vue.d.ts.map +1 -0
  92. package/dist/viewer/components/inspector/ImagePanel.vue.d.ts +27 -0
  93. package/dist/viewer/components/inspector/ImagePanel.vue.d.ts.map +1 -0
  94. package/dist/viewer/components/inspector/InspectorPane.vue.d.ts +23 -0
  95. package/dist/viewer/components/inspector/InspectorPane.vue.d.ts.map +1 -0
  96. package/dist/viewer/components/inspector/StrokePanel.vue.d.ts +23 -0
  97. package/dist/viewer/components/inspector/StrokePanel.vue.d.ts.map +1 -0
  98. package/dist/viewer/components/inspector/TablePanel.vue.d.ts +41 -0
  99. package/dist/viewer/components/inspector/TablePanel.vue.d.ts.map +1 -0
  100. package/dist/viewer/components/inspector/TextPanel.vue.d.ts +12 -0
  101. package/dist/viewer/components/inspector/TextPanel.vue.d.ts.map +1 -0
  102. package/dist/viewer/composables/element-style.d.ts.map +1 -1
  103. package/dist/viewer/composables/index.d.ts +3 -0
  104. package/dist/viewer/composables/index.d.ts.map +1 -1
  105. package/dist/viewer/composables/table-style.d.ts +36 -0
  106. package/dist/viewer/composables/table-style.d.ts.map +1 -0
  107. package/dist/viewer/composables/useAccessibility.d.ts +28 -0
  108. package/dist/viewer/composables/useAccessibility.d.ts.map +1 -0
  109. package/dist/viewer/composables/useAnimationPlayback.d.ts +63 -0
  110. package/dist/viewer/composables/useAnimationPlayback.d.ts.map +1 -0
  111. package/dist/viewer/composables/useAutosave.d.ts +63 -0
  112. package/dist/viewer/composables/useAutosave.d.ts.map +1 -0
  113. package/dist/viewer/composables/useCollaboration.d.ts +40 -0
  114. package/dist/viewer/composables/useCollaboration.d.ts.map +1 -0
  115. package/dist/viewer/composables/useComments.d.ts +60 -0
  116. package/dist/viewer/composables/useComments.d.ts.map +1 -0
  117. package/dist/viewer/composables/useEditorHistory.d.ts +25 -0
  118. package/dist/viewer/composables/useEditorHistory.d.ts.map +1 -0
  119. package/dist/viewer/composables/useEditorOperations.d.ts +82 -0
  120. package/dist/viewer/composables/useEditorOperations.d.ts.map +1 -0
  121. package/dist/viewer/composables/useEmbeddedFonts.d.ts +40 -0
  122. package/dist/viewer/composables/useEmbeddedFonts.d.ts.map +1 -0
  123. package/dist/viewer/composables/useExport.d.ts +34 -0
  124. package/dist/viewer/composables/useExport.d.ts.map +1 -0
  125. package/dist/viewer/composables/useFindReplace.d.ts +67 -0
  126. package/dist/viewer/composables/useFindReplace.d.ts.map +1 -0
  127. package/dist/viewer/composables/useIsMobile.d.ts +25 -0
  128. package/dist/viewer/composables/useIsMobile.d.ts.map +1 -0
  129. package/dist/viewer/composables/useLoadContent.d.ts +7 -1
  130. package/dist/viewer/composables/useLoadContent.d.ts.map +1 -1
  131. package/dist/viewer/composables/useSelection.d.ts +27 -0
  132. package/dist/viewer/composables/useSelection.d.ts.map +1 -0
  133. package/dist/viewer/composables/useSignatures.d.ts +40 -0
  134. package/dist/viewer/composables/useSignatures.d.ts.map +1 -0
  135. package/dist/viewer/composables/useSlideOperations.d.ts +38 -0
  136. package/dist/viewer/composables/useSlideOperations.d.ts.map +1 -0
  137. package/dist/viewer/composables/visual-3d.d.ts +78 -0
  138. package/dist/viewer/composables/visual-3d.d.ts.map +1 -0
  139. package/dist/viewer/index.cjs +2 -2
  140. package/dist/viewer/index.cjs.br +0 -0
  141. package/dist/viewer/index.cjs.gz +0 -0
  142. package/dist/viewer/index.d.ts +9 -0
  143. package/dist/viewer/index.d.ts.map +1 -1
  144. package/dist/viewer/index.js +2 -2
  145. package/dist/viewer/index.js.br +0 -0
  146. package/dist/viewer/index.js.gz +0 -0
  147. package/dist/viewer/types.d.ts +9 -2
  148. package/dist/viewer/types.d.ts.map +1 -1
  149. package/dist/viewer-E6C9jlVo.cjs +48726 -0
  150. package/dist/viewer-E6C9jlVo.cjs.br +0 -0
  151. package/dist/viewer-E6C9jlVo.cjs.gz +0 -0
  152. package/dist/viewer-QlecshSv.js +48526 -0
  153. package/dist/viewer-QlecshSv.js.br +0 -0
  154. package/dist/viewer-QlecshSv.js.gz +0 -0
  155. package/package.json +4 -3
  156. package/dist/viewer-DfpZaCMv.js +0 -25213
  157. package/dist/viewer-DfpZaCMv.js.br +0 -0
  158. package/dist/viewer-DfpZaCMv.js.gz +0 -0
  159. package/dist/viewer-wQu55LlZ.cjs +0 -25349
  160. package/dist/viewer-wQu55LlZ.cjs.br +0 -0
  161. package/dist/viewer-wQu55LlZ.cjs.gz +0 -0
package/dist/index.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const e = require("./viewer-wQu55LlZ.cjs");
2
+ const e = require("./viewer-E6C9jlVo.cjs");
3
3
  let r = require("clsx"), t = require("tailwind-merge");
4
4
  exports.ElementRenderer = e.ElementRenderer_default, exports.PowerPointViewer = e.PowerPointViewer_default, exports.SlideCanvas = e.SlideCanvas_default, exports.SlideStage = e.SlideStage_default, exports.cn = function(...e) {
5
5
  return (0, t.twMerge)((0, r.clsx)(e));
package/dist/index.cjs.br CHANGED
@@ -1,4 +1,6 @@
1
- �`�v�K�������4C7��G��{�^�r1
2
- n�����͞��� ��$k����5Z\�S]򳝘�{\%���j����؆iM�#&�,ױ)|~�Q+Dr9�˽�a�N!̘��(G��l��a��펴�㊵��!���τ�\}-A_]ܐY�}��� ��RB�=�)���t�;�7�ڰ#4��������GvuO��R{��%mҧ$��������$%L�;�iў� $w���a��+�3P�
1
+ �`�v,2mFd7�wy3j[�2��%k�!�W_�U:��mc��B�۝�6����3��8���dm6���F q
2
+ K~��c*��GWk�?�-Ƕt6�=FLF�Y�cS���B��\
3
+ ؗ{�c�Jg��v��Xin����#fz�ݣ[�qey�ɐ���A♐r����\ܐY�}��� ��RB�=�)���^ݝ�� mؑ� �Wt����
4
+ ����Woz��Ԟh͒�I�╽�D\o���$)a2�)w\�� $w���a��+�3P�
3
5
  d
4
- �%Gu g�&����5�QHߡ7��$,�
6
+ �%Gu+�:ar�?'kp���Co4E9HX�
package/dist/index.cjs.gz CHANGED
Binary file
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
- import { C as a, S as s, T as e, a as r, d as i, f as t, i as o, p as m, r as n, t as d, w as f } from "./viewer-DfpZaCMv.js";
2
- import { clsx as l } from "clsx";
3
- import { twMerge as p } from "tailwind-merge";
4
- function w(...a) {
5
- return p(l(a));
1
+ import { C as a, F as s, N as e, P as r, R as i, S as o, a as t, o as m, s as n, t as l, w } from "./viewer-QlecshSv.js";
2
+ import { clsx as d } from "clsx";
3
+ import { twMerge as f } from "tailwind-merge";
4
+ function p(...a) {
5
+ return f(d(a));
6
6
  }
7
- export { r as ElementRenderer, d as PowerPointViewer, n as SlideCanvas, o as SlideStage, w as cn, s as defaultCssVars, a as defaultRadius, f as defaultThemeColors, i as provideViewerTheme, e as themeToCssVars, t as useThemeStyle, m as useViewerTheme };
7
+ export { n as ElementRenderer, l as PowerPointViewer, t as SlideCanvas, m as SlideStage, p as cn, e as defaultCssVars, r as defaultRadius, s as defaultThemeColors, o as provideViewerTheme, i as themeToCssVars, a as useThemeStyle, w as useViewerTheme };
package/dist/index.js.br CHANGED
Binary file
package/dist/index.js.gz CHANGED
Binary file
@@ -177,6 +177,16 @@
177
177
  background: #1e293b;
178
178
  }
179
179
 
180
+ /*
181
+ * In editor mode the slide surface must own all pointer/touch gestures so a
182
+ * finger drag/resize/rotate isn't stolen by the browser for panning or
183
+ * pinch-zoom. View-only mode keeps default touch behaviour so the slide can
184
+ * still be scrolled.
185
+ */
186
+ .pptx-vue-main.is-editable .pptx-vue-stage {
187
+ touch-action: none;
188
+ }
189
+
180
190
  /* ── Canvas ─────────────────────────────────────────────────────────── */
181
191
  .pptx-vue-canvas-viewport {
182
192
  width: 100%;
@@ -198,3 +208,75 @@
198
208
  font-size: 0.75rem;
199
209
  background: rgba(99, 102, 241, 0.06);
200
210
  }
211
+
212
+ /* ── Mobile / coarse-pointer ─────────────────────────────────────────── */
213
+ /*
214
+ * On small screens and touch devices the toolbar buttons are too small to tap
215
+ * reliably and the toolbar overflows. Below we (1) grow the nav/zoom buttons to
216
+ * ≥44px touch targets, (2) let the toolbar wrap / scroll horizontally instead
217
+ * of overflowing, and (3) collapse the side panels so the slide canvas gets the
218
+ * available width. Horizontal swipe navigation is wired up in the component
219
+ * (touchstart/touchend on <main>) for non-editing mode; the dedicated mobile
220
+ * bottom bar and the large ‹ › buttons remain the always-available fallback.
221
+ */
222
+ @media (max-width: 640px), (pointer: coarse) {
223
+ .pptx-vue-toolbar {
224
+ flex-wrap: wrap;
225
+ gap: 0.5rem;
226
+ row-gap: 0.5rem;
227
+ padding: 0.5rem;
228
+ }
229
+
230
+ .pptx-vue-zoom {
231
+ flex: 1 1 100%;
232
+ flex-wrap: wrap;
233
+ overflow-x: auto;
234
+ -webkit-overflow-scrolling: touch;
235
+ scrollbar-width: thin;
236
+ padding-bottom: 0.15rem;
237
+ }
238
+
239
+ .pptx-vue-nav button,
240
+ .pptx-vue-zoom button {
241
+ min-width: 44px;
242
+ min-height: 44px;
243
+ height: auto;
244
+ padding: 0 0.65rem;
245
+ font-size: 1.1rem;
246
+ flex: 0 0 auto;
247
+ }
248
+
249
+ /* Emphasise the prev/next controls — primary on-screen navigation. */
250
+ .pptx-vue-nav button {
251
+ font-size: 1.5rem;
252
+ font-weight: 600;
253
+ }
254
+
255
+ /* Shrink the slide thumbnails rail to a slim horizontal strip. */
256
+ .pptx-vue-thumbnails {
257
+ flex-direction: row;
258
+ width: auto;
259
+ max-width: 100%;
260
+ overflow-x: auto;
261
+ overflow-y: hidden;
262
+ border-right: none;
263
+ border-bottom: 1px solid var(--pptx-border);
264
+ padding: 0.5rem;
265
+ }
266
+
267
+ .pptx-vue-thumbnails .pptx-vue-thumb {
268
+ flex: 0 0 4.5rem;
269
+ width: 4.5rem;
270
+ }
271
+
272
+ /* Stack the body vertically so the canvas spans the full width. */
273
+ .pptx-vue-body {
274
+ flex-direction: column;
275
+ }
276
+
277
+ /* Give the canvas the bulk of the vertical space. */
278
+ .pptx-vue-main {
279
+ flex: 1 1 auto;
280
+ min-height: 50vh;
281
+ }
282
+ }
Binary file
Binary file
@@ -1,15 +1,17 @@
1
- import { PowerPointViewerExpose, PowerPointViewerProps } from './types';
1
+ import { CollaborationConfig, PowerPointViewerExpose, PowerPointViewerProps } from './types';
2
2
  declare const __VLS_export: import('vue').DefineComponent<PowerPointViewerProps, PowerPointViewerExpose, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
3
3
  "dirty-change": (isDirty: boolean) => any;
4
4
  "content-change": (content: Uint8Array<ArrayBufferLike>) => any;
5
+ autosave: (content: Uint8Array<ArrayBufferLike>) => any;
5
6
  "active-slide-change": (slideIndex: number) => any;
6
- "start-collaboration": (config: import('pptx-viewer-shared').CollaborationConfig) => any;
7
+ "start-collaboration": (config: CollaborationConfig) => any;
7
8
  "stop-collaboration": () => any;
8
9
  }, string, import('vue').PublicProps, Readonly<PowerPointViewerProps> & Readonly<{
9
10
  "onDirty-change"?: ((isDirty: boolean) => any) | undefined;
10
11
  "onContent-change"?: ((content: Uint8Array<ArrayBufferLike>) => any) | undefined;
12
+ onAutosave?: ((content: Uint8Array<ArrayBufferLike>) => any) | undefined;
11
13
  "onActive-slide-change"?: ((slideIndex: number) => any) | undefined;
12
- "onStart-collaboration"?: ((config: import('pptx-viewer-shared').CollaborationConfig) => any) | undefined;
14
+ "onStart-collaboration"?: ((config: CollaborationConfig) => any) | undefined;
13
15
  "onStop-collaboration"?: (() => any) | undefined;
14
16
  }>, {
15
17
  canEdit: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"PowerPointViewer.vue.d.ts","sourceRoot":"","sources":["../../src/viewer/PowerPointViewer.vue"],"names":[],"mappings":"AAuLA,OAAO,KAAK,EAAyB,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AA+QpG,QAAA,MAAM,YAAY;;;;;;;;;;;;;;6EAKhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
1
+ {"version":3,"file":"PowerPointViewer.vue.d.ts","sourceRoot":"","sources":["../../src/viewer/PowerPointViewer.vue"],"names":[],"mappings":"AAswCA,OAAO,KAAK,EACX,mBAAmB,EAEnB,sBAAsB,EACtB,qBAAqB,EACrB,MAAM,SAAS,CAAC;AAm7DjB,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;6EAKhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
@@ -0,0 +1,24 @@
1
+ import { AccessibilityIssue } from 'pptx-viewer-core';
2
+ /**
3
+ * AccessibilityPanel — lists accessibility issues for the current
4
+ * presentation, grouped by severity (errors first, then warnings, then tips).
5
+ *
6
+ * Each issue shows a human-readable type label, its message, and which slide
7
+ * it lives on. Clicking an issue emits `select-slide` with the issue's
8
+ * zero-based slide index so the host editor can jump to that slide. When there
9
+ * are no issues a clean empty state is shown instead.
10
+ *
11
+ * Purely presentational: the caller supplies the already-computed issue list
12
+ * (see the `useAccessibility` composable).
13
+ */
14
+ type __VLS_Props = {
15
+ issues: AccessibilityIssue[];
16
+ };
17
+ declare const __VLS_export: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
18
+ "select-slide": (index: number) => any;
19
+ }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
20
+ "onSelect-slide"?: ((index: number) => any) | undefined;
21
+ }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
22
+ declare const _default: typeof __VLS_export;
23
+ export default _default;
24
+ //# sourceMappingURL=AccessibilityPanel.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AccessibilityPanel.vue.d.ts","sourceRoot":"","sources":["../../../src/viewer/components/AccessibilityPanel.vue"],"names":[],"mappings":"AA8QA,OAAO,KAAK,EACX,kBAAkB,EAGlB,MAAM,kBAAkB,CAAC;AAG1B;;;;;;;;;;;GAWG;AACH,KAAK,WAAW,GAAG;IAClB,MAAM,EAAE,kBAAkB,EAAE,CAAC;CAC7B,CAAC;AAmNF,QAAA,MAAM,YAAY;;;;kFAGhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
@@ -0,0 +1,33 @@
1
+ import { AlignEdge, DistributeAxis } from 'pptx-viewer-shared';
2
+ /**
3
+ * AlignToolbar — a compact, purely presentational button row for the editor's
4
+ * align / distribute / group operations.
5
+ *
6
+ * It owns no state and performs no geometry: every button emits an intent and
7
+ * the host (PowerPointViewer) applies it against the current selection. Group
8
+ * is disabled until two or more elements are selected; Ungroup is disabled
9
+ * unless a single group element is selected — both gated by props.
10
+ *
11
+ * Icons are inline SVG glyphs (no external icon dependency) so the toolbar is
12
+ * self-contained. Styling is scoped with the `pptx-vue-` class prefix.
13
+ */
14
+ type __VLS_Props = {
15
+ /** Whether the current selection can be grouped (≥ 2 elements). */
16
+ canGroup: boolean;
17
+ /** Whether the current selection can be ungrouped (a group is selected). */
18
+ canUngroup: boolean;
19
+ };
20
+ declare const __VLS_export: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
21
+ distribute: (axis: DistributeAxis) => any;
22
+ group: () => any;
23
+ align: (edge: AlignEdge) => any;
24
+ ungroup: () => any;
25
+ }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
26
+ onDistribute?: ((axis: DistributeAxis) => any) | undefined;
27
+ onGroup?: (() => any) | undefined;
28
+ onAlign?: ((edge: AlignEdge) => any) | undefined;
29
+ onUngroup?: (() => any) | undefined;
30
+ }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
31
+ declare const _default: typeof __VLS_export;
32
+ export default _default;
33
+ //# sourceMappingURL=AlignToolbar.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AlignToolbar.vue.d.ts","sourceRoot":"","sources":["../../../src/viewer/components/AlignToolbar.vue"],"names":[],"mappings":"AA8OA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpE;;;;;;;;;;;GAWG;AACH,KAAK,WAAW,GAAG;IAClB,mEAAmE;IACnE,QAAQ,EAAE,OAAO,CAAC;IAClB,4EAA4E;IAC5E,UAAU,EAAE,OAAO,CAAC;CACpB,CAAC;AAqTF,QAAA,MAAM,YAAY;;;;;;;;;;kFAGhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
@@ -0,0 +1,9 @@
1
+ import { AutosaveStatus } from '../composables/useAutosave';
2
+ type __VLS_Props = {
3
+ status: AutosaveStatus;
4
+ isDirty: boolean;
5
+ };
6
+ declare const __VLS_export: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
7
+ declare const _default: typeof __VLS_export;
8
+ export default _default;
9
+ //# sourceMappingURL=AutosaveIndicator.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AutosaveIndicator.vue.d.ts","sourceRoot":"","sources":["../../../src/viewer/components/AutosaveIndicator.vue"],"names":[],"mappings":"AAiIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEjE,KAAK,WAAW,GAAG;IAClB,MAAM,EAAE,cAAc,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;CACjB,CAAC;AAuFF,QAAA,MAAM,YAAY,kSAEhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
@@ -0,0 +1,26 @@
1
+ interface BroadcastDefaults {
2
+ roomId?: string;
3
+ serverUrl?: string;
4
+ }
5
+ interface BroadcastConfig {
6
+ roomId: string;
7
+ serverUrl: string;
8
+ }
9
+ type __VLS_Props = {
10
+ open: boolean;
11
+ defaults?: BroadcastDefaults;
12
+ active?: boolean;
13
+ viewerUrl?: string;
14
+ };
15
+ declare const __VLS_export: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
16
+ start: (config: BroadcastConfig) => any;
17
+ stop: () => any;
18
+ close: () => any;
19
+ }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
20
+ onStart?: ((config: BroadcastConfig) => any) | undefined;
21
+ onStop?: (() => any) | undefined;
22
+ onClose?: (() => any) | undefined;
23
+ }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
24
+ declare const _default: typeof __VLS_export;
25
+ export default _default;
26
+ //# sourceMappingURL=BroadcastDialog.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BroadcastDialog.vue.d.ts","sourceRoot":"","sources":["../../../src/viewer/components/BroadcastDialog.vue"],"names":[],"mappings":"AA4UA,UAAU,iBAAiB;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,eAAe;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CAClB;AAED,KAAK,WAAW,GAAG;IAClB,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IAC7B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAsQF,QAAA,MAAM,YAAY;;;;;;;;kFAGhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
@@ -0,0 +1,40 @@
1
+ import { PptxElement } from 'pptx-viewer-core';
2
+ /**
3
+ * ChartRenderer — Vue port of the React chart renderer (`viewer/utils/chart.tsx`
4
+ * and friends). Renders a PPTX chart element as an inline SVG.
5
+ *
6
+ * Implemented chart types (faithful subset):
7
+ * - bar / column (clustered) — React `chart-bar.tsx`
8
+ * - stacked + 100%-stacked bar — React `chart-stacked-bar.tsx`
9
+ * - line / line3D — React `chart-area-line.tsx`
10
+ * - area / area3D — React `chart-area-line.tsx`
11
+ * - pie / doughnut / pie3D — React `chart-pie.tsx`
12
+ * - chrome (title, axes, gridlines, legend, data labels) — `chart-chrome.tsx`
13
+ *
14
+ * Everything else renders a labelled placeholder box `Chart: <type>`.
15
+ * Deferred types (see the dispatch below):
16
+ * // TODO(vue): port radar (React chart-radar.tsx)
17
+ * // TODO(vue): port scatter (React chart-scatter-bubble.tsx)
18
+ * // TODO(vue): port bubble (React chart-scatter-bubble.tsx)
19
+ * // TODO(vue): port stock (React chart-stock.tsx)
20
+ * // TODO(vue): port surface (React chart-surface-treemap.tsx)
21
+ * // TODO(vue): port treemap (React chart-surface-treemap.tsx)
22
+ * // TODO(vue): port sunburst (React chart-sunburst-funnel.tsx)
23
+ * // TODO(vue): port funnel (React chart-sunburst-funnel.tsx)
24
+ * // TODO(vue): port waterfall (React chart-waterfall-combo.tsx)
25
+ * // TODO(vue): port combo (React chart-waterfall-combo.tsx)
26
+ * // TODO(vue): port regionMap (React chart-map.tsx)
27
+ * // TODO(vue): port boxWhisker (React chart-bar.tsx)
28
+ * // TODO(vue): port histogram (React chart-bar.tsx)
29
+ * // TODO(vue): port trendlines + overlay lines (React chart-overlays/-trendlines)
30
+ * // TODO(vue): port secondary axes + data tables + log/display-unit axes
31
+ */
32
+ type __VLS_Props = {
33
+ element: PptxElement;
34
+ zIndex: number;
35
+ mediaDataUrls?: Map<string, string>;
36
+ };
37
+ declare const __VLS_export: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
38
+ declare const _default: typeof __VLS_export;
39
+ export default _default;
40
+ //# sourceMappingURL=ChartRenderer.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChartRenderer.vue.d.ts","sourceRoot":"","sources":["../../../src/viewer/components/ChartRenderer.vue"],"names":[],"mappings":"AAqpBA,OAAO,KAAK,EAAgC,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAiBlF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,KAAK,WAAW,GAAG;IAClB,OAAO,EAAE,WAAW,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACpC,CAAC;AAssBF,QAAA,MAAM,YAAY,kSAEhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * CollaborationCursors — presentational overlay that renders remote
3
+ * collaborators' cursors above the slide canvas.
4
+ *
5
+ * This component is purely visual: it owns no network/Yjs logic. The
6
+ * integrator supplies a reactive list of {@link RemoteCursor} entries (via the
7
+ * collaboration composable) and the current `zoom`. Each entry is drawn as an
8
+ * absolutely-positioned pointer SVG plus a name-label chip in the user's
9
+ * colour, placed at `(x * zoom, y * zoom)`.
10
+ *
11
+ * `x`/`y` are *unscaled* slide coordinates (px); this component multiplies by
12
+ * `zoom` so it can be mounted inside the scaled slide-stage host (like a
13
+ * selection overlay) while still receiving raw slide-space coordinates.
14
+ *
15
+ * The overlay sets `pointer-events: none` so it never intercepts canvas input.
16
+ */
17
+ /** A single remote collaborator's cursor, in unscaled slide coordinates. */
18
+ export interface RemoteCursor {
19
+ /** Stable id for the remote client (awareness clientId or peer id). */
20
+ clientId: number | string;
21
+ /** Display name shown in the label chip. */
22
+ userName: string;
23
+ /** Cursor + chip colour (any CSS colour string). */
24
+ color: string;
25
+ /** Unscaled slide-space X coordinate (px). */
26
+ x: number;
27
+ /** Unscaled slide-space Y coordinate (px). */
28
+ y: number;
29
+ /** Optional ids of elements this user has selected. */
30
+ selectionIds?: string[];
31
+ }
32
+ declare const _default: typeof __VLS_export;
33
+ export default _default;
34
+ declare const __VLS_export: import('vue').DefineComponent<{
35
+ /** Remote collaborators to render, in unscaled slide coordinates. */
36
+ cursors: RemoteCursor[];
37
+ /** Current canvas zoom factor; cursor positions scale by this. */
38
+ zoom: number;
39
+ }, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{
40
+ /** Remote collaborators to render, in unscaled slide coordinates. */
41
+ cursors: RemoteCursor[];
42
+ /** Current canvas zoom factor; cursor positions scale by this. */
43
+ zoom: number;
44
+ }> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
45
+ //# sourceMappingURL=CollaborationCursors.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CollaborationCursors.vue.d.ts","sourceRoot":"","sources":["../../../src/viewer/components/CollaborationCursors.vue"],"names":[],"mappings":"AA0IA;;;;;;;;;;;;;;;GAeG;AAEH,4EAA4E;AAC5E,MAAM,WAAW,YAAY;IAC5B,uEAAuE;IACvE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,4CAA4C;IAC5C,QAAQ,EAAE,MAAM,CAAC;IACjB,oDAAoD;IACpD,KAAK,EAAE,MAAM,CAAC;IACd,8CAA8C;IAC9C,CAAC,EAAE,MAAM,CAAC;IACV,8CAA8C;IAC9C,CAAC,EAAE,MAAM,CAAC;IACV,uDAAuD;IACvD,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;wBACoB,OAAO,YAAY;AAAxC,wBAAyC;AACzC,QAAA,MAAM,YAAY;IAEjB,qEAAqE;aAC5D,YAAY,EAAE;IACvB,kEAAkE;UAC5D,MAAM;;IAHZ,qEAAqE;aAC5D,YAAY,EAAE;IACvB,kEAAkE;UAC5D,MAAM;iGAsFT,CAAC"}
@@ -0,0 +1,27 @@
1
+ import { PptxComment } from 'pptx-viewer-core';
2
+ /**
3
+ * CommentsPanel — side panel listing the active slide's comments.
4
+ *
5
+ * Presentational only: it renders the supplied `comments` (already filtered to
6
+ * the active slide by the host) and surfaces add / remove / resolve intents via
7
+ * emits. The host owns state and commits history-aware comment-array writes.
8
+ *
9
+ * Timestamps are formatted with the core `formatCommentTimestamp` helper so the
10
+ * Vue binding matches the React/Angular formatting exactly.
11
+ */
12
+ type __VLS_Props = {
13
+ comments: PptxComment[];
14
+ authorName: string;
15
+ };
16
+ declare const __VLS_export: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
17
+ add: (text: string) => any;
18
+ remove: (id: string) => any;
19
+ resolve: (id: string) => any;
20
+ }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
21
+ onAdd?: ((text: string) => any) | undefined;
22
+ onRemove?: ((id: string) => any) | undefined;
23
+ onResolve?: ((id: string) => any) | undefined;
24
+ }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
25
+ declare const _default: typeof __VLS_export;
26
+ export default _default;
27
+ //# sourceMappingURL=CommentsPanel.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommentsPanel.vue.d.ts","sourceRoot":"","sources":["../../../src/viewer/components/CommentsPanel.vue"],"names":[],"mappings":"AA0QA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAIpD;;;;;;;;;GASG;AACH,KAAK,WAAW,GAAG;IAClB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;CACnB,CAAC;AAmMF,QAAA,MAAM,YAAY;;;;;;;;kFAGhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * ContextMenu — generic right-click menu for the Vue editor.
3
+ *
4
+ * Vue port of the React `ContextMenu` component (see
5
+ * `packages/react/src/viewer/components/ContextMenu.tsx`), generalised into a
6
+ * data-driven menu: the caller supplies the item list and maps `select(id)`
7
+ * back to editor operations.
8
+ */
9
+ export interface ContextMenuItem {
10
+ /** Stable id emitted via `select`. Ignored for separators. */
11
+ id: string;
12
+ /** Visible label. */
13
+ label: string;
14
+ /** When true the item is shown greyed-out and is non-interactive. */
15
+ disabled?: boolean;
16
+ /** When true the entry renders as a divider instead of a button. */
17
+ separator?: boolean;
18
+ }
19
+ declare const _default: typeof __VLS_export;
20
+ export default _default;
21
+ declare const __VLS_export: import('vue').DefineComponent<{
22
+ open: boolean;
23
+ x: number;
24
+ y: number;
25
+ items: ContextMenuItem[];
26
+ }, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
27
+ select: (id: string) => any;
28
+ close: () => any;
29
+ }, string, import('vue').PublicProps, Readonly<{
30
+ open: boolean;
31
+ x: number;
32
+ y: number;
33
+ items: ContextMenuItem[];
34
+ }> & Readonly<{
35
+ onSelect?: ((id: string) => any) | undefined;
36
+ onClose?: (() => any) | undefined;
37
+ }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
38
+ //# sourceMappingURL=ContextMenu.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContextMenu.vue.d.ts","sourceRoot":"","sources":["../../../src/viewer/components/ContextMenu.vue"],"names":[],"mappings":"AA2OA;;;;;;;GAOG;AACH,MAAM,WAAW,eAAe;IAC/B,8DAA8D;IAC9D,EAAE,EAAE,MAAM,CAAC;IACX,qBAAqB;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,qEAAqE;IACrE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oEAAoE;IACpE,SAAS,CAAC,EAAE,OAAO,CAAC;CACpB;wBACoB,OAAO,YAAY;AAAxC,wBAAyC;AACzC,QAAA,MAAM,YAAY;UAEX,OAAO;OACV,MAAM;OACN,MAAM;WACF,eAAe,EAAE;;;;;UAHlB,OAAO;OACV,MAAM;OACN,MAAM;WACF,eAAe,EAAE;;;;kFA2NrB,CAAC"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * EditorToolbar — Vue port of a viewer-first subset of React's `Toolbar.tsx`.
3
+ *
4
+ * A compact, self-contained editing ribbon. It contains no business logic:
5
+ * every button maps to a typed emit that the parent (`PowerPointViewer.vue`)
6
+ * wires into history / editor-operation handlers. The component only reflects
7
+ * enablement state via its props (`canUndo`, `canRedo`, `hasSelection`) and
8
+ * displays the current zoom level (`zoomPercent`).
9
+ *
10
+ * Icons are minimal inline SVG / unicode glyphs — no external icon dependency
11
+ * (React uses lucide; the Vue port stays dependency-free here).
12
+ */
13
+ /** Shape presets offered by the Insert group. Mirrors React's `newShapeType`. */
14
+ export type ShapePreset = 'rect' | 'ellipse' | 'roundRect' | 'triangle';
15
+ interface Props {
16
+ /** Whether an undo step is available (disables the Undo button when false). */
17
+ canUndo: boolean;
18
+ /** Whether a redo step is available (disables the Redo button when false). */
19
+ canRedo: boolean;
20
+ /** Current zoom level, as a whole percentage (e.g. `100`). */
21
+ zoomPercent: number;
22
+ /** Whether one or more elements are selected (gates the selection actions). */
23
+ hasSelection: boolean;
24
+ }
25
+ declare const __VLS_export: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
26
+ "zoom-in": () => any;
27
+ "zoom-out": () => any;
28
+ undo: () => any;
29
+ redo: () => any;
30
+ "zoom-reset": () => any;
31
+ "add-text": () => any;
32
+ "add-shape": (preset: ShapePreset) => any;
33
+ "delete-selected": () => any;
34
+ "duplicate-selected": () => any;
35
+ "bring-forward": () => any;
36
+ "send-backward": () => any;
37
+ }, string, import('vue').PublicProps, Readonly<Props> & Readonly<{
38
+ "onZoom-in"?: (() => any) | undefined;
39
+ "onZoom-out"?: (() => any) | undefined;
40
+ onUndo?: (() => any) | undefined;
41
+ onRedo?: (() => any) | undefined;
42
+ "onZoom-reset"?: (() => any) | undefined;
43
+ "onAdd-text"?: (() => any) | undefined;
44
+ "onAdd-shape"?: ((preset: ShapePreset) => any) | undefined;
45
+ "onDelete-selected"?: (() => any) | undefined;
46
+ "onDuplicate-selected"?: (() => any) | undefined;
47
+ "onBring-forward"?: (() => any) | undefined;
48
+ "onSend-backward"?: (() => any) | undefined;
49
+ }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
50
+ declare const _default: typeof __VLS_export;
51
+ export default _default;
52
+ //# sourceMappingURL=EditorToolbar.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EditorToolbar.vue.d.ts","sourceRoot":"","sources":["../../../src/viewer/components/EditorToolbar.vue"],"names":[],"mappings":"AA0WA;;;;;;;;;;;GAWG;AAEH,iFAAiF;AACjF,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,SAAS,GAAG,WAAW,GAAG,UAAU,CAAC;AAExE,UAAU,KAAK;IACd,+EAA+E;IAC/E,OAAO,EAAE,OAAO,CAAC;IACjB,8EAA8E;IAC9E,OAAO,EAAE,OAAO,CAAC;IACjB,8DAA8D;IAC9D,WAAW,EAAE,MAAM,CAAC;IACpB,+EAA+E;IAC/E,YAAY,EAAE,OAAO,CAAC;CACtB;AA4aD,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;kFAGhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
@@ -2,16 +2,19 @@ import { PptxElement } from 'pptx-viewer-core';
2
2
  /**
3
3
  * ElementRenderer — Vue port of the React `ElementRenderer.tsx`.
4
4
  *
5
- * Renders a single slide element by its `type` discriminant. This is the
6
- * viewer-first subset:
7
- * - `text` / `shape` → positioned box with fill/stroke + rich text
5
+ * Renders a single slide element by its `type` discriminant. Each non-trivial
6
+ * type delegates to a dedicated renderer component:
7
+ * - `text` / `shape` → positioned box with fill/stroke/effects + rich text
8
8
  * - `picture` / `image` → `<img>`
9
9
  * - `media` → poster frame (`<img>`) — playback TODO
10
10
  * - `group` → recursive children
11
- * - everything else labelled placeholder (TODO, see PORTING.md)
11
+ * - `connector` `ConnectorRenderer` (SVG)
12
+ * - `table` / `chart` → `TableRenderer` / `ChartRenderer`
13
+ * - `smartArt` → `SmartArtRenderer`
14
+ * - `ink` / `ole` / `model3d` / `zoom` → dedicated renderers
15
+ * - anything else → labelled placeholder (TODO, see PORTING.md)
12
16
  *
13
- * Interaction (selection, resize handles, inline editing), connectors,
14
- * charts, tables, SmartArt, ink, OLE, and 3D are not yet ported.
17
+ * Interaction (selection, resize handles, inline editing) is not yet ported.
15
18
  */
16
19
  type __VLS_Props = {
17
20
  element: PptxElement;
@@ -1 +1 @@
1
- {"version":3,"file":"ElementRenderer.vue.d.ts","sourceRoot":"","sources":["../../../src/viewer/components/ElementRenderer.vue"],"names":[],"mappings":"AAmNA,OAAO,KAAK,EAAE,WAAW,EAAe,MAAM,kBAAkB,CAAC;AAajE;;;;;;;;;;;;;GAaG;AACH,KAAK,WAAW,GAAG;IAClB,OAAO,EAAE,WAAW,CAAC;IACrB,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,MAAM,EAAE,MAAM,CAAC;CACf,CAAC;AAqQF,QAAA,MAAM,YAAY,kSAEhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
1
+ {"version":3,"file":"ElementRenderer.vue.d.ts","sourceRoot":"","sources":["../../../src/viewer/components/ElementRenderer.vue"],"names":[],"mappings":"AA2UA,OAAO,KAAK,EAAE,WAAW,EAAe,MAAM,kBAAkB,CAAC;AAuBjE;;;;;;;;;;;;;;;;GAgBG;AACH,KAAK,WAAW,GAAG;IAClB,OAAO,EAAE,WAAW,CAAC;IACrB,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,MAAM,EAAE,MAAM,CAAC;CACf,CAAC;AA0cF,QAAA,MAAM,YAAY,kSAEhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
@@ -0,0 +1,23 @@
1
+ import { PptxElement } from 'pptx-viewer-core';
2
+ /**
3
+ * EquationRenderer — renders an element's math equation(s) as inline MathML.
4
+ *
5
+ * Vue port of the React equation rendering path
6
+ * (`text-segment-helpers.tsx#renderEquationSegment`). Equations live on text
7
+ * elements as {@link TextSegment} entries whose `equationXml` field holds the
8
+ * parsed OMML (`m:oMathPara` / `m:oMath`) tree. Each such segment is converted
9
+ * to MathML via {@link convertOmmlToMathMl}, sanitised, and injected with
10
+ * `v-html` — MathML is namespaced HTML, so browsers render `<math>` natively.
11
+ *
12
+ * The wrapper uses {@link getContainerStyle} for absolute positioning, matching
13
+ * every other element renderer.
14
+ */
15
+ type __VLS_Props = {
16
+ element: PptxElement;
17
+ mediaDataUrls?: Map<string, string>;
18
+ zIndex: number;
19
+ };
20
+ declare const __VLS_export: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
21
+ declare const _default: typeof __VLS_export;
22
+ export default _default;
23
+ //# sourceMappingURL=EquationRenderer.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EquationRenderer.vue.d.ts","sourceRoot":"","sources":["../../../src/viewer/components/EquationRenderer.vue"],"names":[],"mappings":"AAoJA,OAAO,KAAK,EAAE,WAAW,EAAe,MAAM,kBAAkB,CAAC;AASjE;;;;;;;;;;;;GAYG;AACH,KAAK,WAAW,GAAG;IAClB,OAAO,EAAE,WAAW,CAAC;IACrB,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,MAAM,EAAE,MAAM,CAAC;CACf,CAAC;AAsIF,QAAA,MAAM,YAAY,kSAEhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * ExportMenu — a small dropdown offering PNG (current slide) and PDF exports.
3
+ * Emits intent; the host runs the actual export via `useExport`.
4
+ */
5
+ type __VLS_Props = {
6
+ exporting: boolean;
7
+ };
8
+ declare const __VLS_export: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
9
+ "export-png": () => any;
10
+ "export-pdf": () => any;
11
+ }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
12
+ "onExport-png"?: (() => any) | undefined;
13
+ "onExport-pdf"?: (() => any) | undefined;
14
+ }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
15
+ declare const _default: typeof __VLS_export;
16
+ export default _default;
17
+ //# sourceMappingURL=ExportMenu.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExportMenu.vue.d.ts","sourceRoot":"","sources":["../../../src/viewer/components/ExportMenu.vue"],"names":[],"mappings":"AAwFA;;;GAGG;AACH,KAAK,WAAW,GAAG;IAAE,SAAS,EAAE,OAAO,CAAA;CAAE,CAAC;AAiG1C,QAAA,MAAM,YAAY;;;;;;kFAGhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
@@ -0,0 +1,32 @@
1
+ type __VLS_Props = {
2
+ matchCount: number;
3
+ currentIndex: number;
4
+ };
5
+ type __VLS_ModelProps = {
6
+ 'query'?: string;
7
+ 'replacement'?: string;
8
+ 'matchCase'?: boolean;
9
+ };
10
+ type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
11
+ declare const __VLS_export: import('vue').DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
12
+ replace: () => any;
13
+ next: () => any;
14
+ close: () => any;
15
+ prev: () => any;
16
+ "replace-all": () => any;
17
+ "update:query": (value: string) => any;
18
+ "update:replacement": (value: string) => any;
19
+ "update:matchCase": (value: boolean) => any;
20
+ }, string, import('vue').PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
21
+ onReplace?: (() => any) | undefined;
22
+ onNext?: (() => any) | undefined;
23
+ onClose?: (() => any) | undefined;
24
+ onPrev?: (() => any) | undefined;
25
+ "onReplace-all"?: (() => any) | undefined;
26
+ "onUpdate:query"?: ((value: string) => any) | undefined;
27
+ "onUpdate:replacement"?: ((value: string) => any) | undefined;
28
+ "onUpdate:matchCase"?: ((value: boolean) => any) | undefined;
29
+ }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
30
+ declare const _default: typeof __VLS_export;
31
+ export default _default;
32
+ //# sourceMappingURL=FindReplaceBar.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FindReplaceBar.vue.d.ts","sourceRoot":"","sources":["../../../src/viewer/components/FindReplaceBar.vue"],"names":[],"mappings":"AAqNA,KAAK,WAAW,GAAG;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACrB,CAAC;AAgCF,KAAK,gBAAgB,GAAG;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAOF,KAAK,iBAAiB,GAAG,WAAW,GAAG,gBAAgB,CAAC;AAwKxD,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;kFAGhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}