pptx-vanilla-viewer 3.38.0 → 3.40.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.
package/dist/styles.css CHANGED
@@ -146,6 +146,9 @@
146
146
  * and clips text). Mirrors the React theme.css rule. */
147
147
  -webkit-text-size-adjust: none;
148
148
  text-size-adjust: none;
149
+ /* Own stacking context: the slide, selection handles and every overlay inside stay
150
+ * below whatever the host page stacks above the viewer (a drawer, a dialog). */
151
+ isolation: isolate;
149
152
  }
150
153
  .pptxv *, .pptxv *::before, .pptxv *::after { box-sizing: border-box; }
151
154
  .pptxv:focus { outline: none; }
@@ -1012,6 +1015,9 @@
1012
1015
  border-bottom: 1px solid var(--pptx-border);
1013
1016
  }
1014
1017
  .pptxv-inspector-tab {
1018
+ display: inline-flex;
1019
+ align-items: center;
1020
+ gap: 4px;
1015
1021
  padding: 4px 8px;
1016
1022
  border: none;
1017
1023
  border-radius: 4px;
@@ -1021,6 +1027,7 @@
1021
1027
  font-size: 11px;
1022
1028
  cursor: pointer;
1023
1029
  }
1030
+ .pptxv-inspector-tab svg { flex: none; width: 14px; height: 14px; }
1024
1031
  .pptxv-inspector-tab:hover { color: var(--pptx-foreground); background: var(--pptx-accent); }
1025
1032
  .pptxv-inspector-tab.is-active { background: var(--pptx-primary); color: var(--pptx-primary-foreground, #fff); }
1026
1033
  /* Below this width, matches isDensePanelCompact()/MOBILE_BREAKPOINT (768) in
@@ -2815,8 +2822,8 @@
2815
2822
  .pptxv-mobile-toolbar-ai .pptxv-ai-toggle.is-active { color: var(--pptx-primary); background: transparent; }
2816
2823
  .pptxv-mobile-share { min-width: 44px; background: var(--pptx-primary); color: var(--pptx-primary-foreground); }
2817
2824
  .pptxv-mobile-actions { display: contents; }
2818
- .pptxv-mobile-actions > pptx-ui-mobile-bar { position: relative; z-index: 50; flex: none; }
2819
- .pptxv-mobile-sheet-host { position: absolute; z-index: 48; inset: 0 0 56px; display: flex; align-items: end; }
2825
+ .pptxv-mobile-actions > pptx-ui-mobile-bar { position: relative; z-index: 70; flex: none; }
2826
+ .pptxv-mobile-sheet-host { position: absolute; z-index: 69; inset: 0 0 56px; display: flex; align-items: end; }
2820
2827
  .pptxv-mobile-sheet-host[hidden] { display: none; }
2821
2828
  .pptxv-mobile-sheet-backdrop { position: absolute; inset: 0; width: 100%; border: 0; background: rgb(0 0 0 / 40%); }
2822
2829
  .pptxv-mobile-sheet { position: relative; display: flex; flex-direction: column; width: 100%; max-height: min(70dvh, 620px); border: 1px solid var(--pptx-border); border-bottom: 0; border-radius: 16px 16px 0 0; background: var(--pptx-background); box-shadow: 0 -12px 36px rgb(0 0 0 / 35%); transition: transform 150ms ease-out; }
@@ -2833,14 +2840,24 @@
2833
2840
  .pptxv-mobile-comment-actions { display: flex; flex-wrap: wrap; gap: 6px; }
2834
2841
  .pptxv-mobile-comment-actions button, .pptxv-mobile-comment-add button { min-height: 44px !important; padding: 6px 10px; border: 1px solid var(--pptx-border); border-radius: var(--pptx-radius); background: var(--pptx-muted); color: var(--pptx-foreground); }
2835
2842
  .pptxv-mobile-comment-add { display: grid; gap: 6px; padding-top: 10px; }
2836
- .pptxv-mobile-slide-list button { display: flex; align-items: center; gap: 10px; min-height: 44px; padding: 6px; border: 1px solid var(--pptx-border); border-radius: 8px; background: var(--pptx-muted); color: inherit; text-align: left; }
2843
+ .pptxv-mobile-slide-list button { flex: none; display: flex; align-items: center; gap: 10px; min-height: 44px; padding: 6px; border: 1px solid var(--pptx-border); border-radius: 8px; background: var(--pptx-muted); color: inherit; text-align: left; }
2837
2844
  .pptxv-mobile-slide-list button.is-active { border-color: var(--pptx-primary); color: var(--pptx-primary); }
2838
2845
  .pptxv-mobile-slide-num { min-width: 18px; color: var(--pptx-muted-foreground); font-size: 11px; text-align: right; }
2839
2846
  .pptxv-mobile-slide-list button.is-active .pptxv-mobile-slide-num { color: var(--pptx-primary); }
2840
2847
  /* The thumbnail is a scaled stage: it must clip and never stretch. */
2841
- .pptxv-mobile-slide-frame { display: block; flex: none; overflow: hidden; border: 1px solid var(--pptx-border); border-radius: 4px; background: #fff; }
2848
+ .pptxv-mobile-slide-frame { position: relative; display: block; flex: none; overflow: hidden; border: 1px solid var(--pptx-border); border-radius: 4px; background: #fff; }
2842
2849
  .pptxv-mobile-slide-title { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
2843
- .pptxv-mobile-sheet .pptxv-inspector { display: flex; width: 100%; max-height: 55dvh; border: 0; }
2850
+ /* Sheet children take the whole row: the body is a wrapping flex row, so a bare grid or
2851
+ column would shrink to its content (the half-width comment box) instead of filling it. */
2852
+ .pptxv-mobile-sheet-body > :is(.pptxv-mobile-comment, .pptxv-mobile-comment-add, .pptxv-mobile-slide-list, pptx-ui-mobile-insert, .pptxv-inspector) { flex: 1 1 100%; min-width: 0; }
2853
+ .pptxv-mobile-comment-add > button, .pptxv-mobile-comment-actions > button { flex: 1 1 0; }
2854
+ .pptxv-mobile-comment-add > button { width: 100%; }
2855
+ /* The Format sheet is one column. The inspector is a block on desktop (tab strip over the
2856
+ panes); a flex row here laid the strip and the properties side by side and clipped them. */
2857
+ .pptxv-mobile-sheet .pptxv-inspector { display: block; width: 100%; max-height: 55dvh; overflow-x: hidden; border: 0; background: transparent; }
2858
+ .pptxv-mobile-sheet .pptxv-inspector-tabs { position: sticky; top: 0; z-index: 2; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4px; margin: 0 0 8px; padding: 0 0 8px; background: var(--pptx-background); }
2859
+ .pptxv-mobile-sheet .pptxv-inspector-tab { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-width: 0; padding: 0 6px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; }
2860
+ .pptxv-mobile-sheet .pptxv-inspector-body, .pptxv-mobile-sheet .pptxv-inspector-section { min-width: 0; max-width: 100%; }
2844
2861
  .pptxv.pptxv-presenting .pptxv-mobile-toolbar,
2845
2862
  .pptxv.pptxv-presenting .pptxv-mobile-actions > pptx-ui-mobile-bar,
2846
2863
  .pptxv.pptxv-presenting .pptxv-mobile-sheet-host { display: none; }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pptx-vanilla-viewer",
3
- "version": "3.38.0",
3
+ "version": "3.40.0",
4
4
  "description": "pptx-viewer for vanilla JS: a zero-framework PowerPoint viewer and editor to render, edit, present, and export PPTX slides with plain DOM, no React/Vue/Angular required.",
5
5
  "keywords": [
6
6
  "javascript",
@@ -107,8 +107,8 @@
107
107
  "jspdf": "^4.2.1",
108
108
  "jszip": "^3.10.2",
109
109
  "lucide": "^1.54.0",
110
- "ooxml-core": "^1.14.0",
111
- "ooxml-ui": "^1.14.0",
110
+ "ooxml-core": "^1.16.0",
111
+ "ooxml-ui": "^1.16.0",
112
112
  "opentype.js": "^2.0.0"
113
113
  },
114
114
  "devDependencies": {