pptx-vanilla-viewer 0.7.0 → 0.8.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.
@@ -0,0 +1 @@
1
+ 'use strict';var three=require('three'),OrbitControls_js=require('three/examples/jsm/controls/OrbitControls.js');var M=4,P=.86;function Q(o,i,e){let t=i.split(/\s+/u).filter(Boolean);if(t.length===0)return [];let a=[],s=t[0];for(let r=1;r<t.length;r++){let c=`${s} ${t[r]}`;o.measureText(c).width<=e?s=c:(a.push(s),s=t[r]);}return a.push(s),a}function _(o,i,e,t,a){if(typeof document>"u"||!o.trim()||t<=0||a<=0)return null;let s=t*P,r=a*P,c=document.createElement("canvas");c.width=Math.max(8,Math.round(s*M)),c.height=Math.max(8,Math.round(r*M));let n=c.getContext("2d");if(!n)return null;let d="system-ui, -apple-system, Segoe UI, Roboto, sans-serif",p=c.width*.94,u=Math.max(6,e)*M,f=[];for(let l=0;l<12;l++){n.font=`600 ${u}px ${d}`,f=Q(n,o,p);let g=u*1.2;if(f.length*g<=c.height*.96||u<=6*M)break;u*=.88;}n.clearRect(0,0,c.width,c.height),n.fillStyle=i,n.textAlign="center",n.textBaseline="middle",n.font=`600 ${u}px ${d}`;let x=u*1.2,w=f.length*x,y=c.height/2-w/2+x/2;for(let l=0;l<f.length;l++)n.fillText(f[l],c.width/2,y+l*x);let h=new three.CanvasTexture(c);return h.colorSpace=three.SRGBColorSpace,h.minFilter=three.LinearFilter,h.magFilter=three.LinearFilter,h.flipY=false,h.premultiplyAlpha=false,h.wrapT=three.RepeatWrapping,h.repeat.set(1,-1),h.offset.set(0,1),h.needsUpdate=true,{texture:h,worldWidth:s,worldHeight:r}}function ee(o){let i=new three.Shape;o.outline.forEach((t,a)=>{a===0?i.moveTo(t.x,t.y):i.lineTo(t.x,t.y);}),i.closePath();let e=o.bevel>0;return new three.ExtrudeGeometry(i,{depth:o.depth,bevelEnabled:e,bevelThickness:o.bevel,bevelSize:o.bevel,bevelSegments:2,curveSegments:o.rounded?24:1,steps:1})}function te(o,i,e){let t=ee(e),a=new three.MeshStandardMaterial({color:new three.Color(e.fill),metalness:.12,roughness:.52,transparent:e.opacity<1,opacity:e.opacity}),s=new three.Mesh(t,a);if(s.position.set(e.position.x,e.position.y,e.position.z),s.rotation.set(e.rotation.x,e.rotation.y,e.rotation.z),o.add(s),i.push(t,a),e.strokeWidth>0){let r=new three.EdgesGeometry(t,30),c=new three.LineBasicMaterial({color:new three.Color(e.stroke)}),n=new three.LineSegments(r,c);n.position.copy(s.position),n.rotation.copy(s.rotation),o.add(n),i.push(r,c);}return t}function ne(o,i,e){if(!e.text)return;let t=_(e.text,e.textColor,e.fontSize,e.halfWidth*2,e.halfHeight*2);if(!t)return;let a=new three.PlaneGeometry(t.worldWidth,t.worldHeight),s=new three.MeshBasicMaterial({map:t.texture,transparent:true,depthWrite:false}),r=new three.Mesh(a,s),c=new three.Euler(e.rotation.x,e.rotation.y,e.rotation.z),n=new three.Vector3(0,0,e.depth+e.bevel+.4).applyEuler(c);r.position.set(e.position.x+n.x,e.position.y+n.y,e.position.z+n.z),r.rotation.copy(c),o.add(r),i.push(a,s,t.texture);}function oe(o,i,e){for(let t of e.connectors){if(t.points.length<2)continue;let a=new three.BufferGeometry().setFromPoints(t.points.map(r=>new three.Vector3(r.x,r.y,r.z))),s=new three.LineBasicMaterial({color:new three.Color(t.color),transparent:true,opacity:.7});o.add(new three.Line(a,s)),i.push(a,s);}}function ie(o){let i=new three.Group,e=[];for(let t of o.meshes)te(i,e,t),ne(i,e,t);return oe(i,e,o),{group:i,dispose(){for(let t of e)t.dispose();}}}var T=42;function ae(o){let i=1/0,e=1/0,t=1/0,a=-1/0,s=-1/0,r=-1/0,c=(n,d,p,u)=>{i=Math.min(i,n-u),e=Math.min(e,d-u),t=Math.min(t,p-u),a=Math.max(a,n+u),s=Math.max(s,d+u),r=Math.max(r,p+u);};for(let n of o.meshes){let d=Math.max(n.halfWidth,n.halfHeight)+n.depth+n.bevel;c(n.position.x,n.position.y,n.position.z,d);}for(let n of o.connectors)for(let d of n.points)c(d.x,d.y,d.z,1);return Number.isFinite(i)?{cx:(i+a)/2,cy:(e+s)/2,cz:(t+r)/2,radius:.5*Math.hypot(a-i,s-e,r-t)||1}:{cx:0,cy:0,cz:0,radius:Math.max(o.bounds.width,o.bounds.height)/2||1}}function se(o,i){let e=T*Math.PI/180,t=2*Math.atan(Math.tan(e/2)*i),a=Math.min(e,t);return o/Math.sin(a/2)*1.1}function le(o,i,e,t,a={}){let s=new three.WebGLRenderer({canvas:o,antialias:true,alpha:!a.background});s.setPixelRatio(Math.min(typeof window>"u"?1:window.devicePixelRatio||1,a.maxPixelRatio??2)),s.setSize(e,t,false);let r=new three.Scene;a.background&&(r.background=new three.Color(a.background));let{cx:c,cy:n,cz:d,radius:p}=ae(i),u=e/Math.max(1,t),f=se(p,u),x=new three.PerspectiveCamera(T,u,.1,f*8+p*4);x.position.set(c+p*.25,n+p*.3,d+f),x.lookAt(c,n,d),r.add(new three.AmbientLight(16777215,.62));let w=new three.DirectionalLight(16777215,.95);w.position.set(c+p,n+p*1.4,d+f),r.add(w);let y=new three.DirectionalLight(16777215,.3);y.position.set(c-p,n-p*.6,d+f*.6),r.add(y);let h=ie(i);r.add(h.group);let l=null,g=m=>{m&&!l?(l=new OrbitControls_js.OrbitControls(x,o),l.enablePan=false,l.target.set(c,n,d),l.minDistance=f*.4,l.maxDistance=f*3,l.update()):!m&&l&&(l.dispose(),l=null),l&&(l.autoRotate=!!a.autoRotate,l.autoRotateSpeed=1.2);};g(!!a.interactive);let v=0,S=false,k=()=>{S||(v=requestAnimationFrame(k),l?.update(),s.render(r,x));};return v=requestAnimationFrame(k),{resize(m,z){x.aspect=m/Math.max(1,z),x.updateProjectionMatrix(),s.setSize(m,z,false);},setInteractive(m){g(m);},dispose(){S=true,cancelAnimationFrame(v),l?.dispose(),h.dispose(),s.dispose();}}}exports.mountSmartArt3D=le;
@@ -0,0 +1 @@
1
+ import {WebGLRenderer,Scene,Color,PerspectiveCamera,AmbientLight,DirectionalLight,Group,MeshStandardMaterial,Mesh,EdgesGeometry,LineBasicMaterial,LineSegments,PlaneGeometry,MeshBasicMaterial,Euler,Vector3,BufferGeometry,Line,Shape,ExtrudeGeometry,CanvasTexture,SRGBColorSpace,LinearFilter,RepeatWrapping}from'three';import {OrbitControls}from'three/examples/jsm/controls/OrbitControls.js';var M=4,P=.86;function Q(o,i,e){let t=i.split(/\s+/u).filter(Boolean);if(t.length===0)return [];let a=[],s=t[0];for(let r=1;r<t.length;r++){let c=`${s} ${t[r]}`;o.measureText(c).width<=e?s=c:(a.push(s),s=t[r]);}return a.push(s),a}function _(o,i,e,t,a){if(typeof document>"u"||!o.trim()||t<=0||a<=0)return null;let s=t*P,r=a*P,c=document.createElement("canvas");c.width=Math.max(8,Math.round(s*M)),c.height=Math.max(8,Math.round(r*M));let n=c.getContext("2d");if(!n)return null;let d="system-ui, -apple-system, Segoe UI, Roboto, sans-serif",p=c.width*.94,u=Math.max(6,e)*M,f=[];for(let l=0;l<12;l++){n.font=`600 ${u}px ${d}`,f=Q(n,o,p);let g=u*1.2;if(f.length*g<=c.height*.96||u<=6*M)break;u*=.88;}n.clearRect(0,0,c.width,c.height),n.fillStyle=i,n.textAlign="center",n.textBaseline="middle",n.font=`600 ${u}px ${d}`;let x=u*1.2,w=f.length*x,y=c.height/2-w/2+x/2;for(let l=0;l<f.length;l++)n.fillText(f[l],c.width/2,y+l*x);let h=new CanvasTexture(c);return h.colorSpace=SRGBColorSpace,h.minFilter=LinearFilter,h.magFilter=LinearFilter,h.flipY=false,h.premultiplyAlpha=false,h.wrapT=RepeatWrapping,h.repeat.set(1,-1),h.offset.set(0,1),h.needsUpdate=true,{texture:h,worldWidth:s,worldHeight:r}}function ee(o){let i=new Shape;o.outline.forEach((t,a)=>{a===0?i.moveTo(t.x,t.y):i.lineTo(t.x,t.y);}),i.closePath();let e=o.bevel>0;return new ExtrudeGeometry(i,{depth:o.depth,bevelEnabled:e,bevelThickness:o.bevel,bevelSize:o.bevel,bevelSegments:2,curveSegments:o.rounded?24:1,steps:1})}function te(o,i,e){let t=ee(e),a=new MeshStandardMaterial({color:new Color(e.fill),metalness:.12,roughness:.52,transparent:e.opacity<1,opacity:e.opacity}),s=new Mesh(t,a);if(s.position.set(e.position.x,e.position.y,e.position.z),s.rotation.set(e.rotation.x,e.rotation.y,e.rotation.z),o.add(s),i.push(t,a),e.strokeWidth>0){let r=new EdgesGeometry(t,30),c=new LineBasicMaterial({color:new Color(e.stroke)}),n=new LineSegments(r,c);n.position.copy(s.position),n.rotation.copy(s.rotation),o.add(n),i.push(r,c);}return t}function ne(o,i,e){if(!e.text)return;let t=_(e.text,e.textColor,e.fontSize,e.halfWidth*2,e.halfHeight*2);if(!t)return;let a=new PlaneGeometry(t.worldWidth,t.worldHeight),s=new MeshBasicMaterial({map:t.texture,transparent:true,depthWrite:false}),r=new Mesh(a,s),c=new Euler(e.rotation.x,e.rotation.y,e.rotation.z),n=new Vector3(0,0,e.depth+e.bevel+.4).applyEuler(c);r.position.set(e.position.x+n.x,e.position.y+n.y,e.position.z+n.z),r.rotation.copy(c),o.add(r),i.push(a,s,t.texture);}function oe(o,i,e){for(let t of e.connectors){if(t.points.length<2)continue;let a=new BufferGeometry().setFromPoints(t.points.map(r=>new Vector3(r.x,r.y,r.z))),s=new LineBasicMaterial({color:new Color(t.color),transparent:true,opacity:.7});o.add(new Line(a,s)),i.push(a,s);}}function ie(o){let i=new Group,e=[];for(let t of o.meshes)te(i,e,t),ne(i,e,t);return oe(i,e,o),{group:i,dispose(){for(let t of e)t.dispose();}}}var T=42;function ae(o){let i=1/0,e=1/0,t=1/0,a=-1/0,s=-1/0,r=-1/0,c=(n,d,p,u)=>{i=Math.min(i,n-u),e=Math.min(e,d-u),t=Math.min(t,p-u),a=Math.max(a,n+u),s=Math.max(s,d+u),r=Math.max(r,p+u);};for(let n of o.meshes){let d=Math.max(n.halfWidth,n.halfHeight)+n.depth+n.bevel;c(n.position.x,n.position.y,n.position.z,d);}for(let n of o.connectors)for(let d of n.points)c(d.x,d.y,d.z,1);return Number.isFinite(i)?{cx:(i+a)/2,cy:(e+s)/2,cz:(t+r)/2,radius:.5*Math.hypot(a-i,s-e,r-t)||1}:{cx:0,cy:0,cz:0,radius:Math.max(o.bounds.width,o.bounds.height)/2||1}}function se(o,i){let e=T*Math.PI/180,t=2*Math.atan(Math.tan(e/2)*i),a=Math.min(e,t);return o/Math.sin(a/2)*1.1}function le(o,i,e,t,a={}){let s=new WebGLRenderer({canvas:o,antialias:true,alpha:!a.background});s.setPixelRatio(Math.min(typeof window>"u"?1:window.devicePixelRatio||1,a.maxPixelRatio??2)),s.setSize(e,t,false);let r=new Scene;a.background&&(r.background=new Color(a.background));let{cx:c,cy:n,cz:d,radius:p}=ae(i),u=e/Math.max(1,t),f=se(p,u),x=new PerspectiveCamera(T,u,.1,f*8+p*4);x.position.set(c+p*.25,n+p*.3,d+f),x.lookAt(c,n,d),r.add(new AmbientLight(16777215,.62));let w=new DirectionalLight(16777215,.95);w.position.set(c+p,n+p*1.4,d+f),r.add(w);let y=new DirectionalLight(16777215,.3);y.position.set(c-p,n-p*.6,d+f*.6),r.add(y);let h=ie(i);r.add(h.group);let l=null,g=m=>{m&&!l?(l=new OrbitControls(x,o),l.enablePan=false,l.target.set(c,n,d),l.minDistance=f*.4,l.maxDistance=f*3,l.update()):!m&&l&&(l.dispose(),l=null),l&&(l.autoRotate=!!a.autoRotate,l.autoRotateSpeed=1.2);};g(!!a.interactive);let v=0,S=false,k=()=>{S||(v=requestAnimationFrame(k),l?.update(),s.render(r,x));};return v=requestAnimationFrame(k),{resize(m,z){x.aspect=m/Math.max(1,z),x.updateProjectionMatrix(),s.setSize(m,z,false);},setInteractive(m){g(m);},dispose(){S=true,cancelAnimationFrame(v),l?.dispose(),h.dispose(),s.dispose();}}}export{le as mountSmartArt3D};
package/dist/styles.css CHANGED
@@ -37,6 +37,14 @@
37
37
  .pptxv *, .pptxv *::before, .pptxv *::after { box-sizing: border-box; }
38
38
  .pptxv:focus { outline: none; }
39
39
  .pptxv:focus-visible { outline: 2px solid var(--pptx-ring); outline-offset: -2px; }
40
+ .pptxv :is(button, a, input, select, textarea, [tabindex]):focus-visible { outline: 2px solid var(--pptx-ring) !important; outline-offset: 2px; }
41
+ .pptxv :is(button, [role='button']) { min-width: 24px; min-height: 24px; touch-action: manipulation; }
42
+ @media (prefers-reduced-motion: reduce) {
43
+ .pptxv *, .pptxv *::before, .pptxv *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; }
44
+ }
45
+ @media (forced-colors: active) {
46
+ .pptxv :is(button, a, input, select, textarea, [tabindex]):focus-visible { outline-color: Highlight; }
47
+ }
40
48
 
41
49
  /* Ribbon shell layout (primary row + nav row + tab bar + groups) lives in
42
50
  * ribbon-css.ts; .pptxv-btn below is the shared icon-button primitive used by
@@ -686,6 +694,8 @@
686
694
  padding: 6px 8px;
687
695
  }
688
696
  .pptxv-ribbon-tab-content[hidden] { display: none; }
697
+ .pptxv-record-dot { width: 12px; height: 12px; margin: 7px; border-radius: 50%; background: #ef4444; }
698
+ .pptxv-shortcut-help { align-self: center; padding: 5px 8px; color: var(--pptx-muted-foreground); font-size: 11px; }
689
699
  .pptxv-ribbon-insert-content {
690
700
  flex-wrap: nowrap;
691
701
  overflow-x: auto;
@@ -1015,6 +1025,7 @@
1015
1025
  background: var(--pptx-card);
1016
1026
  color: var(--pptx-card-foreground);
1017
1027
  box-shadow: 0 12px 36px rgb(0 0 0 / 0.35);
1028
+ overscroll-behavior: contain;
1018
1029
  }
1019
1030
  .pptxv-modal-panel:focus { outline: none; }
1020
1031
  .pptxv-modal-header {
@@ -1051,6 +1062,9 @@
1051
1062
  }
1052
1063
  .pptxv-modal-section { display: flex; flex-direction: column; gap: 12px; }
1053
1064
  .pptxv-modal-section[hidden] { display: none; }
1065
+ .pptxv-share-tabs { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; padding: 4px; border-radius: 8px; background: var(--pptx-muted); }
1066
+ .pptxv-share-tabs button { border: 0; border-radius: 6px; background: transparent; color: var(--pptx-muted-foreground); padding: 6px 10px; font: 500 12px/1.2 inherit; cursor: pointer; }
1067
+ .pptxv-share-tabs button[aria-selected='true'] { background: var(--pptx-background); color: var(--pptx-foreground); box-shadow: 0 1px 2px rgb(0 0 0 / 0.18); }
1054
1068
  .pptxv-modal-desc { margin: 0; font-size: 13px; line-height: 1.5; color: var(--pptx-muted-foreground); }
1055
1069
  .pptxv-modal-hint { margin: 4px 0 0; font-size: 11px; color: var(--pptx-muted-foreground); }
1056
1070
  .pptxv-modal-hint[hidden] { display: none; }
@@ -1294,3 +1308,53 @@
1294
1308
  .pptxv.pptxv-presenting .pptxv-mobile-sheet-host { display: none; }
1295
1309
  }
1296
1310
 
1311
+
1312
+ .pptxv-master-sidebar {
1313
+ display: flex;
1314
+ flex: none;
1315
+ flex-direction: column;
1316
+ width: 224px;
1317
+ min-height: 0;
1318
+ border-right: 1px solid var(--pptx-border);
1319
+ background: color-mix(in srgb, var(--pptx-card) 92%, transparent);
1320
+ }
1321
+ .pptxv-master-sidebar[hidden] { display: none; }
1322
+ .pptxv-master-header { display: flex; align-items: center; justify-content: space-between; padding: 8px 12px; }
1323
+ .pptxv-master-title { color: var(--pptx-muted-foreground); font-size: 10px; letter-spacing: 0.07em; text-transform: uppercase; }
1324
+ .pptxv-master-collapse { width: 24px; height: 24px; border: 0; border-radius: 4px; background: transparent; color: var(--pptx-muted-foreground); cursor: pointer; font-size: 20px; line-height: 1; }
1325
+ .pptxv-master-collapse:hover { background: var(--pptx-accent); color: var(--pptx-accent-foreground); }
1326
+ .pptxv-master-collapse:focus-visible, .pptxv-master-tab:focus-visible, .pptxv-master-count:focus-visible, .pptxv-master-thumb:focus-visible { outline: 2px solid var(--pptx-ring); outline-offset: -2px; }
1327
+ .pptxv-master-tabs { display: flex; padding: 0 4px; border-bottom: 1px solid var(--pptx-border); }
1328
+ .pptxv-master-tab { flex: 1; padding: 6px 2px; border: 0; border-bottom: 2px solid transparent; background: transparent; color: var(--pptx-muted-foreground); cursor: pointer; font: inherit; font-size: 10px; }
1329
+ .pptxv-master-tab.is-active { border-bottom-color: #f59e0b; color: #f59e0b; font-weight: 600; }
1330
+ .pptxv-master-body { display: flex; flex: 1; flex-direction: column; gap: 8px; min-height: 0; overflow-y: auto; padding: 6px; }
1331
+ .pptxv-master-thumb { display: flex; flex-direction: column; gap: 4px; padding: 5px; border: 1px solid transparent; border-radius: 5px; background: transparent; color: var(--pptx-foreground); cursor: pointer; text-align: left; }
1332
+ .pptxv-master-thumb.is-layout { margin-left: 14px; }
1333
+ .pptxv-master-thumb:hover { background: var(--pptx-accent); }
1334
+ .pptxv-master-thumb.is-active { border-color: var(--pptx-primary); background: color-mix(in srgb, var(--pptx-primary) 10%, transparent); }
1335
+ .pptxv-master-thumb-name { overflow: hidden; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
1336
+ .pptxv-master-thumb-frame { position: relative; display: block; overflow: hidden; border: 1px solid var(--pptx-border); border-radius: 3px; background: #fff; }
1337
+ .pptxv-master-card { padding: 8px; border: 1px solid var(--pptx-border); border-radius: 6px; background: color-mix(in srgb, var(--pptx-muted) 55%, transparent); }
1338
+ .pptxv-master-card-label { margin-bottom: 6px; color: var(--pptx-muted-foreground); font-size: 10px; }
1339
+ .pptxv-master-background { width: 100%; height: 32px; border: 1px solid var(--pptx-border); border-radius: 4px; }
1340
+ .pptxv-master-placeholder { display: flex; align-items: center; gap: 7px; margin-top: 4px; padding: 5px 6px; border-radius: 4px; background: color-mix(in srgb, var(--pptx-background) 65%, transparent); font-size: 10px; }
1341
+ .pptxv-master-dot { width: 8px; height: 8px; flex: none; border-radius: 50%; background: rgb(34 197 94 / 0.65); }
1342
+ .pptxv-master-dot.is-handout { background: rgb(168 85 247 / 0.65); }
1343
+ .pptxv-master-empty { padding: 16px 8px; color: var(--pptx-muted-foreground); font-size: 11px; text-align: center; }
1344
+ .pptxv-master-counts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 4px; }
1345
+ .pptxv-master-count { padding: 6px; border: 0; border-radius: 4px; background: var(--pptx-accent); color: var(--pptx-muted-foreground); cursor: pointer; font: inherit; font-size: 11px; }
1346
+ .pptxv-master-count.is-active { background: var(--pptx-primary); color: var(--pptx-primary-foreground); }
1347
+ .pptxv-master-page { position: relative; overflow: hidden; border: 1px solid #d1d5db; border-radius: 4px; background: #fff; box-shadow: 0 8px 24px rgb(0 0 0 / 0.18); }
1348
+ .pptxv-master-canvas-empty { display: grid; width: 100%; height: 100%; place-items: center; color: var(--pptx-muted-foreground); }
1349
+ .pptxv-notes-region { position: absolute; display: flex; overflow: hidden; align-items: center; justify-content: center; border: 1px dashed rgb(156 163 175 / 0.45); color: rgb(107 114 128 / 0.8); font-size: 10px; text-align: center; }
1350
+ .pptxv-notes-region.is-sldImg { border-color: rgb(59 130 246 / 0.55); background: rgb(59 130 246 / 0.05); color: rgb(59 130 246 / 0.75); }
1351
+ .pptxv-notes-region.is-body { border-color: rgb(34 197 94 / 0.55); background: rgb(34 197 94 / 0.05); color: rgb(34 197 94 / 0.75); }
1352
+ .pptxv-handout-slot { position: absolute; display: flex; overflow: hidden; align-items: center; justify-content: center; border: 1px dashed rgb(96 165 250 / 0.55); background: rgb(239 246 255 / 0.35); color: rgb(96 165 250 / 0.7); font-size: 10px; font-weight: 500; }
1353
+ .pptxv-handout-corner { position: absolute; padding: 1px 4px; border-color: rgb(209 213 219 / 0.5); border-style: dashed; color: rgb(107 114 128 / 0.55); font-size: 8px; }
1354
+ .pptxv-handout-corner.is-top-left { top: 0; left: 0; border-right-width: 1px; border-bottom-width: 1px; }
1355
+ .pptxv-handout-corner.is-top-right { top: 0; right: 0; border-bottom-width: 1px; border-left-width: 1px; }
1356
+ .pptxv-handout-corner.is-bottom-left { bottom: 0; left: 0; border-top-width: 1px; border-right-width: 1px; }
1357
+ .pptxv-handout-corner.is-bottom-right { right: 0; bottom: 0; border-top-width: 1px; border-left-width: 1px; }
1358
+ @media (max-width: 767px), (max-width: 1023px) and (max-height: 520px) { .pptxv-master-sidebar { display: none; } }
1359
+ .pptxv.pptxv-presenting .pptxv-master-sidebar { display: none; }
1360
+
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pptx-vanilla-viewer",
3
- "version": "0.7.0",
3
+ "version": "0.8.0",
4
4
  "description": "Zero-framework PowerPoint viewer: render PPTX slides in the browser with plain DOM, no React/Vue/Angular required.",
5
5
  "keywords": [
6
6
  "javascript",