pptx-vanilla-viewer 0.16.0 → 0.17.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
@@ -1778,6 +1778,88 @@
1778
1778
  @media (max-width: 767px) { .pptxv-parity-dialog { top: auto; bottom: 0; width: 100%; max-height: 88dvh; transform: translateX(-50%); border-radius: 16px 16px 0 0; } }
1779
1779
 
1780
1780
 
1781
+ /* ── Dialog shell override: the Options dialog is wider than parity dialogs ── */
1782
+ .pptxv-options-dialog { width: min(56rem, calc(100vw - 32px)); height: min(620px, 88vh); }
1783
+ .pptxv-options-dialog .pptxv-parity-body { flex: 1; min-height: 0; padding: 0; gap: 0; }
1784
+ .pptxv-options-body { display: flex; flex: 1; min-height: 0; }
1785
+ .pptxv-options-nav { display: flex; flex-direction: column; gap: 2px; flex: none; width: 172px; overflow-y: auto; padding: 8px; border-right: 1px solid var(--pptx-border); }
1786
+ .pptxv-options-nav button { padding: 8px 10px; border: 0; border-radius: 4px; background: transparent; color: var(--pptx-foreground); font: inherit; font-size: 12px; text-align: left; cursor: pointer; white-space: nowrap; }
1787
+ .pptxv-options-nav button:hover { background: var(--pptx-accent); color: var(--pptx-accent-foreground); }
1788
+ .pptxv-options-nav button.is-active { background: color-mix(in srgb, var(--pptx-primary) 14%, transparent); color: var(--pptx-primary); font-weight: 600; }
1789
+ .pptxv-options-pane { flex: 1; min-width: 0; overflow-y: auto; padding: 14px 18px; font-size: 12px; }
1790
+ .pptxv-options-headline { margin: 0 0 12px; font-size: 12px; font-weight: 600; }
1791
+
1792
+ /* ── Sections + control rows ── */
1793
+ .pptxv-options-section { margin: 0 0 16px; }
1794
+ .pptxv-options-section > h3 { margin: 0 0 4px; padding-bottom: 3px; border-bottom: 1px solid var(--pptx-border); color: var(--pptx-muted-foreground); font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
1795
+ .pptxv-options-section-desc { margin: 0 0 8px; color: var(--pptx-muted-foreground); font-size: 11px; }
1796
+ .pptxv-options-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 28px; padding: 2px 0; }
1797
+ .pptxv-options-row.is-indent { padding-left: 22px; }
1798
+ label.pptxv-options-row { cursor: pointer; }
1799
+ .pptxv-options-row-label { display: inline-flex; align-items: center; gap: 5px; min-width: 0; }
1800
+ .pptxv-options-info { display: inline-grid; place-items: center; width: 13px; height: 13px; flex: none; border: 1px solid currentcolor; border-radius: 50%; color: var(--pptx-primary); font-size: 9px; font-style: normal; cursor: help; opacity: .75; }
1801
+ .pptxv-options-row select, .pptxv-options-row input[type='text'], .pptxv-options-row input[type='number'] { max-width: 55%; padding: 5px 7px; border: 1px solid var(--pptx-border); border-radius: 4px; background: var(--pptx-muted); color: inherit; font: inherit; font-size: 12px; }
1802
+ .pptxv-options-row input[type='number'] { width: 72px; text-align: right; }
1803
+ .pptxv-options-row input[type='text'] { width: 180px; }
1804
+ .pptxv-options-row input[type='checkbox'] { flex: none; width: 15px; height: 15px; accent-color: var(--pptx-primary); }
1805
+ .pptxv-options-unit { color: var(--pptx-muted-foreground); font-size: 11px; }
1806
+ .pptxv-options-number { display: inline-flex; align-items: center; gap: 6px; }
1807
+ .pptxv-options-action { padding: 6px 11px; border: 1px solid var(--pptx-border); border-radius: 4px; background: var(--pptx-muted); color: inherit; font: inherit; font-size: 12px; cursor: pointer; }
1808
+ .pptxv-options-action:hover:not(:disabled) { background: var(--pptx-accent); color: var(--pptx-accent-foreground); }
1809
+ .pptxv-options-action:disabled { opacity: .45; cursor: default; }
1810
+
1811
+ /* ── Customize Ribbon pane ── */
1812
+ .pptxv-options-ribbon-list { display: flex; flex-direction: column; gap: 2px; padding: 6px; border: 1px solid var(--pptx-border); border-radius: 6px; }
1813
+ .pptxv-options-ribbon-list .pptxv-parity-check.is-locked { opacity: .55; cursor: not-allowed; }
1814
+
1815
+ /* ── Quick Access pane ── */
1816
+ .pptxv-options-qa { display: flex; align-items: stretch; gap: 10px; }
1817
+ .pptxv-options-qa-col { flex: 1; min-width: 0; }
1818
+ .pptxv-options-qa-title { margin: 0 0 4px; color: var(--pptx-muted-foreground); font-size: 11px; font-weight: 600; }
1819
+ .pptxv-options-qa-list { display: flex; flex-direction: column; gap: 2px; height: 190px; overflow-y: auto; padding: 4px; border: 1px solid var(--pptx-border); border-radius: 6px; }
1820
+ .pptxv-options-qa-list button { padding: 6px 8px; border: 0; border-radius: 4px; background: transparent; color: var(--pptx-foreground); font: inherit; font-size: 12px; text-align: left; cursor: pointer; }
1821
+ .pptxv-options-qa-list button:hover { background: var(--pptx-accent); color: var(--pptx-accent-foreground); }
1822
+ .pptxv-options-qa-list button.is-selected { background: color-mix(in srgb, var(--pptx-primary) 16%, transparent); color: var(--pptx-primary); }
1823
+ .pptxv-options-qa-arrows { display: flex; flex-direction: column; justify-content: center; gap: 6px; }
1824
+
1825
+ /* ── Add-ins pane ── */
1826
+ .pptxv-options-addins-head { display: grid; grid-template-columns: 1fr auto auto; gap: 8px; padding: 0 8px 4px; border-bottom: 1px solid var(--pptx-border); color: var(--pptx-muted-foreground); font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
1827
+ .pptxv-options-addins h4 { margin: 12px 0 4px; font-size: 11px; }
1828
+ .pptxv-options-addins table { width: 100%; border-collapse: collapse; text-align: left; }
1829
+ .pptxv-options-addins td { padding: 5px 8px; border-bottom: 1px solid color-mix(in srgb, var(--pptx-border) 55%, transparent); font-size: 11px; }
1830
+ .pptxv-options-addins td:nth-child(2) { color: var(--pptx-muted-foreground); font-family: ui-monospace, monospace; font-size: 10px; }
1831
+ .pptxv-options-addins td:nth-child(3) { color: var(--pptx-muted-foreground); }
1832
+ .pptxv-options-addins tr { cursor: pointer; }
1833
+ .pptxv-options-addins tr:hover { background: var(--pptx-accent); }
1834
+ .pptxv-options-addins tr.is-selected { background: color-mix(in srgb, var(--pptx-primary) 12%, transparent); }
1835
+ .pptxv-options-addins-empty { padding: 4px 8px; color: var(--pptx-muted-foreground); font-style: italic; }
1836
+ .pptxv-options-addins-detail { margin-top: 10px; padding: 10px; border: 1px solid var(--pptx-border); border-radius: 6px; background: var(--pptx-muted); }
1837
+ .pptxv-options-addins-detail p { margin: 0 0 4px; font-size: 11px; }
1838
+ .pptxv-options-addins-detail p:last-child { margin: 0; color: var(--pptx-muted-foreground); font-family: ui-monospace, monospace; font-size: 10px; }
1839
+
1840
+ /* ── Title-bar Quick Access strip ── */
1841
+ .pptxv-qat { display: inline-flex; align-items: center; gap: 2px; }
1842
+ .pptxv-qat[hidden] { display: none; }
1843
+ .pptxv-qat .pptxv-btn-label { padding-left: 4px; font-size: 11px; white-space: nowrap; }
1844
+ .pptxv-qat .pptxv-btn-pill { width: auto; padding: 0 6px; }
1845
+
1846
+ /* ── End of slide show (black slide) + in-show context menu ── */
1847
+ .pptxv-endshow { position: absolute; inset: 0; z-index: 60; display: grid; place-items: center; border: 0; background: #000; color: #e5e7eb; font-size: 13px; cursor: pointer; }
1848
+ .pptxv-showmenu { position: absolute; z-index: 65; display: flex; flex-direction: column; min-width: 160px; padding: 4px; border: 1px solid var(--pptx-border); border-radius: 6px; background: var(--pptx-card); color: var(--pptx-card-foreground); box-shadow: 0 10px 28px rgb(0 0 0 / .35); }
1849
+ .pptxv-showmenu button { padding: 7px 10px; border: 0; border-radius: 4px; background: transparent; color: inherit; font: inherit; font-size: 12px; text-align: left; cursor: pointer; }
1850
+ .pptxv-showmenu button:hover { background: var(--pptx-accent); color: var(--pptx-accent-foreground); }
1851
+
1852
+ /* ── Option-driven viewer root classes ── */
1853
+ .pptxv.pptxv-reduced-motion *, .pptxv.pptxv-reduced-motion *::before, .pptxv.pptxv-reduced-motion *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; }
1854
+ .pptxv.pptxv-no-hw-accel * { will-change: auto !important; backface-visibility: visible !important; perspective: none !important; }
1855
+ .pptxv.pptxv-compat-display .pptxv-stage-wrap { box-shadow: none; }
1856
+ .pptxv.pptxv-compat-display .pptxv-stage { image-rendering: crisp-edges; text-rendering: optimizeSpeed; }
1857
+ .pptxv.pptxv-no-show-popup .pptxv-presentation-touch-prev,
1858
+ .pptxv.pptxv-no-show-popup .pptxv-presentation-touch-next,
1859
+ .pptxv.pptxv-no-show-popup .pptxv-presentation-touch-counter { display: none !important; }
1860
+ @media (max-width: 767px) { .pptxv-options-body { flex-direction: column; } .pptxv-options-nav { flex-direction: row; width: 100%; overflow-x: auto; border-right: 0; border-bottom: 1px solid var(--pptx-border); } }
1861
+
1862
+
1781
1863
  .pptxv-animation-timeline {
1782
1864
  display: grid;
1783
1865
  gap: 6px;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "pptx-vanilla-viewer",
3
- "version": "0.16.0",
4
- "description": "Zero-framework PowerPoint viewer: render PPTX slides in the browser with plain DOM, no React/Vue/Angular required.",
3
+ "version": "0.17.0",
4
+ "description": "Zero-framework PowerPoint viewer and editor: render, edit, present, and export PPTX slides with plain DOM, no React/Vue/Angular required.",
5
5
  "keywords": [
6
6
  "javascript",
7
7
  "office",