@heliguy-xyz/splat-viewer 1.0.0-rc.3 → 1.0.0-rc.5

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.
@@ -1 +1 @@
1
- {"version":3,"file":"FlyCameraScript.d.ts","sourceRoot":"","sources":["../../src/web-component/FlyCameraScript.ts"],"names":[],"mappings":"AAsEA,wBAAgB,uBAAuB,IAAI,IAAI,CA0X9C"}
1
+ {"version":3,"file":"FlyCameraScript.d.ts","sourceRoot":"","sources":["../../src/web-component/FlyCameraScript.ts"],"names":[],"mappings":"AAsEA,wBAAgB,uBAAuB,IAAI,IAAI,CAua9C"}
@@ -136,6 +136,11 @@ export declare class SplatViewerCore implements SplatViewerCoreInterface {
136
136
  private _setupOrbitCamera;
137
137
  private _setupStats;
138
138
  private _setupResolution;
139
+ /**
140
+ * Force recalculation of canvas resolution based on current DOM size.
141
+ * Useful when container layout changes are not captured by the observer.
142
+ */
143
+ updateCanvasResolution(): void;
139
144
  }
140
145
  export default SplatViewerCore;
141
146
  //# sourceMappingURL=SplatViewerCore.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SplatViewerCore.d.ts","sourceRoot":"","sources":["../../src/web-component/SplatViewerCore.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EACV,eAAe,EACf,UAAU,EACV,SAAS,EACT,eAAe,EACf,cAAc,EACd,WAAW,EACX,UAAU,EACV,SAAS,EACT,SAAS,EACT,aAAa,EAEb,qBAAqB,EAErB,gBAAgB,EAChB,aAAa,EACb,wBAAwB,EACxB,sBAAsB,EACtB,iBAAiB,EAEjB,aAAa,EACb,OAAO,EACR,MAAM,SAAS,CAAA;AAGhB,qBAAa,eAAgB,YAAW,wBAAwB;IACvD,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAAO;IACvC,GAAG,EAAE,qBAAqB,GAAG,IAAI,CAAO;IACxC,QAAQ,EAAE;QACf,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAAA;QAC/B,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAAA;QAC9B,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAAA;KAC/B,CAIA;IACM,WAAW,EAAE,OAAO,CAAQ;IAC5B,SAAS,EAAE,OAAO,CAAO;IACzB,SAAS,EAAE,OAAO,CAAQ;IAC1B,QAAQ,EAAE,OAAO,CAAQ;IACzB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAO;IAElC,OAAO,CAAC,MAAM,CAAiC;IAC/C,OAAO,CAAC,IAAI,CAAmB;IAC/B,OAAO,CAAC,kBAAkB,CAAiC;IAC3D,OAAO,CAAC,aAAa,CAA4B;IACjD,OAAO,CAAC,MAAM,CAA+B;IAC7C,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,eAAe,CAA8B;IACrD,OAAO,CAAC,cAAc,CAA4B;IAClD,OAAO,CAAC,cAAc,CAAC,CAA4B;IACnD,OAAO,CAAC,QAAQ,CAAC,CAAyB;IAC1C,OAAO,CAAC,eAAe,CAAC,CAAY;IACpC,OAAO,CAAC,SAAS,CAAC,CAA8B;IAChD,OAAO,CAAC,qBAAqB,CAAuB;IACpD,OAAO,CAAC,qBAAqB,CAAY;IAGzC,OAAO,CAAC,aAAa,CAA4B;IAGjD,OAAO,CAAC,gBAAgB,CAA+B;IAGvD,OAAO,CAAC,mBAAmB,CAAkC;IAG7D,OAAO,CAAC,eAAe,CAAoD;gBAE/D,OAAO,GAAE,sBAA2B;IAmBzC,IAAI,CAAC,MAAM,EAAE,iBAAiB,GAAG,eAAe;IAyE1C,IAAI,CACf,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,EAC5B,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,UAAU,CAAC;IAwNf,KAAK,CAAC,MAAM,CAAC,EAAE,gBAAgB,GAAG,IAAI;IAgD7C;;OAEG;IACH,OAAO,CAAC,eAAe;IAyBvB;;OAEG;IACH,OAAO,CAAC,cAAc;IAYtB;;;;;OAKG;IACU,QAAQ,CACnB,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,EAC5B,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,SAAS,CAAC;IAQrB;;;OAGG;IACI,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAUzC;;;OAGG;IACI,SAAS,IAAI,SAAS,EAAE;IAQ/B;;;;OAIG;IACI,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa;IAUpD;;;OAGG;IACI,gBAAgB,IAAI,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;IAQxD;;;OAGG;IACI,aAAa,IAAI,aAAa;IAqBrC;;;;OAIG;IACI,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI;IA0BrE;;;;OAIG;IACI,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,IAAI;IAsBjE;;;;OAIG;IACI,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,IAAI;IAsBjE;;;;OAIG;IACI,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAsB3D;;;;OAIG;IACI,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa;IAsBxD;;;OAGG;IACI,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAsB1C,KAAK,IAAI,IAAI;IA6Bb,OAAO,IAAI,IAAI;IA6Df,SAAS,IAAI,SAAS;IA2CtB,EAAE,CAAC,CAAC,SAAS,iBAAiB,EACnC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAChB,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,GAC3B,IAAI;IAOA,GAAG,CAAC,CAAC,SAAS,iBAAiB,EACpC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAChB,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,GAC3B,IAAI;IAUA,IAAI,CAAC,CAAC,SAAS,iBAAiB,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAajD,iBAAiB,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI;IAe1C,eAAe,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAoBtC,WAAW,IAAI,IAAI;IA2BnB,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAQrC,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAK/B,YAAY,IAAI,MAAM;IAMhB,gBAAgB,CAC3B,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC;IAKT,kBAAkB,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI;IAKpC,kBAAkB,IAAI,GAAG;IAKnB,sBAAsB,CACjC,WAAW,EAAE,GAAG,EAChB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC;IAKT,aAAa,IAAI,UAAU;IAI3B,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,IAAI;IAI1D,kBAAkB,IAAI,eAAe,GAAG,IAAI;IAI5C,iBAAiB,IAAI,cAAc,GAAG,IAAI;IAIjD,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,cAAc;IAetB,OAAO,CAAC,iBAAiB;IA6FzB,OAAO,CAAC,WAAW;IAkDnB,OAAO,CAAC,gBAAgB;CAuGzB;AAED,eAAe,eAAe,CAAA"}
1
+ {"version":3,"file":"SplatViewerCore.d.ts","sourceRoot":"","sources":["../../src/web-component/SplatViewerCore.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,7 @@ export declare class SplatViewerElement extends HTMLElement {
14
14
  private _config;
15
15
  private _isInitialized;
16
16
  private _isDestroyed;
17
+ private _hostResizeObserver;
17
18
  get src(): string | null;
18
19
  get width(): string | null;
19
20
  get height(): string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"SplatViewerElement.d.ts","sourceRoot":"","sources":["../../src/web-component/SplatViewerElement.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SplatViewerElement.d.ts","sourceRoot":"","sources":["../../src/web-component/SplatViewerElement.ts"],"names":[],"mappings":"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"}
@@ -104573,7 +104573,11 @@ function registerFlyCameraScript() {
104573
104573
  : { x: 0, y: 0, z: 0 };
104574
104574
  this.emitFlyEvent?.('fly-camera-move', {
104575
104575
  position: { x: pos.x, y: pos.y, z: pos.z },
104576
- velocity: { x: this._velocity.x, y: this._velocity.y, z: this._velocity.z },
104576
+ velocity: {
104577
+ x: this._velocity.x,
104578
+ y: this._velocity.y,
104579
+ z: this._velocity.z,
104580
+ },
104577
104581
  });
104578
104582
  this._lastMoveEmitTime = now;
104579
104583
  }
@@ -104604,7 +104608,8 @@ function registerFlyCameraScript() {
104604
104608
  document.addEventListener('mousemove', this._onMouseMove);
104605
104609
  document.addEventListener('pointerlockchange', this._onPointerLockChange);
104606
104610
  const canvas = this.app.graphicsDevice.canvas;
104607
- this._onClickToLock = this._onClickToLock || (() => this._requestPointerLock());
104611
+ this._onClickToLock =
104612
+ this._onClickToLock || (() => this._requestPointerLock());
104608
104613
  canvas.addEventListener('mousedown', this._onClickToLock);
104609
104614
  };
104610
104615
  FlyCamera.prototype.deactivate = function () {
@@ -104654,7 +104659,11 @@ function registerFlyCameraScript() {
104654
104659
  return {
104655
104660
  position: { x: pos.x, y: pos.y, z: pos.z },
104656
104661
  rotation: { pitch: this._pitch, yaw: this._yaw },
104657
- velocity: { x: this._velocity.x, y: this._velocity.y, z: this._velocity.z },
104662
+ velocity: {
104663
+ x: this._velocity.x,
104664
+ y: this._velocity.y,
104665
+ z: this._velocity.z,
104666
+ },
104658
104667
  isMoving: Math.abs(this._velocity.x) +
104659
104668
  Math.abs(this._velocity.y) +
104660
104669
  Math.abs(this._velocity.z) >
@@ -104662,17 +104671,47 @@ function registerFlyCameraScript() {
104662
104671
  };
104663
104672
  };
104664
104673
  FlyCamera.prototype._handleKeyDown = function (e) {
104665
- this._pressed.add(e.code);
104674
+ const keys = [];
104675
+ if (e.code) {
104676
+ keys.push(e.code);
104677
+ }
104678
+ if (e.key) {
104679
+ keys.push(e.key);
104680
+ if (e.key.length === 1) {
104681
+ // Allow matching against both `KeyW` style codes and plain characters
104682
+ keys.push(`Key${e.key.toUpperCase()}`);
104683
+ keys.push(e.key.toUpperCase());
104684
+ keys.push(e.key.toLowerCase());
104685
+ }
104686
+ }
104687
+ for (const k of keys) {
104688
+ this._pressed.add(k);
104689
+ }
104666
104690
  };
104667
104691
  FlyCamera.prototype._handleKeyUp = function (e) {
104668
- this._pressed.delete(e.code);
104692
+ const keys = [];
104693
+ if (e.code) {
104694
+ keys.push(e.code);
104695
+ }
104696
+ if (e.key) {
104697
+ keys.push(e.key);
104698
+ if (e.key.length === 1) {
104699
+ keys.push(`Key${e.key.toUpperCase()}`);
104700
+ keys.push(e.key.toUpperCase());
104701
+ keys.push(e.key.toLowerCase());
104702
+ }
104703
+ }
104704
+ for (const k of keys) {
104705
+ this._pressed.delete(k);
104706
+ }
104669
104707
  };
104670
104708
  FlyCamera.prototype._handleMouseMove = function (e) {
104671
104709
  if (!this._isPointerLocked || !this._isActive)
104672
104710
  return;
104711
+ // Invert horizontal (yaw) rotation: moving mouse right rotates view left, and vice versa
104673
104712
  const dx = e.movementX * this.lookSensitivity;
104674
104713
  const dy = e.movementY * this.lookSensitivity * (this.invertY ? 1 : -1);
104675
- this._yaw = (this._yaw + dx) % 360;
104714
+ this._yaw = (this._yaw - dx) % 360;
104676
104715
  this._pitch = Math.max(-89, Math.min(89, this._pitch + dy));
104677
104716
  };
104678
104717
  FlyCamera.prototype._handlePointerLockChange = function () {
@@ -104695,15 +104734,19 @@ function registerFlyCameraScript() {
104695
104734
  }
104696
104735
  }
104697
104736
  };
104698
- FlyCamera.prototype._updateVelocity = function (dt) {
104737
+ FlyCamera.prototype._updateVelocity = function (_dt) {
104699
104738
  // Input direction (local space)
104700
104739
  const kb = this.keyBindings;
104701
- const forward = this._pressed.has(kb.forward) ? 1 : 0;
104702
- const backward = this._pressed.has(kb.backward) ? 1 : 0;
104703
- const left = this._pressed.has(kb.left) ? 1 : 0;
104704
- const right = this._pressed.has(kb.right) ? 1 : 0;
104705
- const up = this._pressed.has(kb.up) ? 1 : 0;
104706
- const down = this._pressed.has(kb.down) ? 1 : 0;
104740
+ const isPressed = (binding, fallbacks) => {
104741
+ const all = [binding, ...fallbacks].filter(Boolean);
104742
+ return all.some(k => this._pressed.has(k));
104743
+ };
104744
+ const forward = isPressed(kb.forward, ['KeyW', 'w', 'W']) ? 1 : 0;
104745
+ const backward = isPressed(kb.backward, ['KeyS', 's', 'S']) ? 1 : 0;
104746
+ const left = isPressed(kb.left, ['KeyA', 'a', 'A']) ? 1 : 0;
104747
+ const right = isPressed(kb.right, ['KeyD', 'd', 'D']) ? 1 : 0;
104748
+ const up = isPressed(kb.up, ['KeyE', 'e', 'E']) ? 1 : 0;
104749
+ const down = isPressed(kb.down, ['KeyQ', 'q', 'Q']) ? 1 : 0;
104707
104750
  const inputZ = forward - backward;
104708
104751
  const inputX = right - left;
104709
104752
  const inputY = up - down;
@@ -104711,17 +104754,25 @@ function registerFlyCameraScript() {
104711
104754
  const planarLen = Math.hypot(inputX, inputZ);
104712
104755
  const nx = planarLen > 0 ? inputX / planarLen : 0;
104713
104756
  const nz = planarLen > 0 ? inputZ / planarLen : 0;
104714
- // Effective speed with modifiers
104715
- const speed = this._getEffectiveSpeed();
104716
- // Compute direction vectors from current yaw/pitch
104717
- const yawRad = (this._yaw * Math.PI) / 180;
104718
- const pitchRad = (this._pitch * Math.PI) / 180;
104719
- // Forward vector (normalized)
104720
- const fwd = new Vec3(Math.cos(pitchRad) * Math.sin(yawRad), Math.sin(pitchRad), Math.cos(pitchRad) * Math.cos(yawRad));
104721
- // Right vector (perpendicular to yaw on horizontal plane)
104722
- const rightVec = new Vec3(Math.sin(yawRad - Math.PI / 2), 0, Math.cos(yawRad - Math.PI / 2));
104723
- // Up vector (world up)
104724
- const upVec = Vec3.UP.clone();
104757
+ // Effective speed with modifiers (scaled x2 as requested)
104758
+ const speed = this._getEffectiveSpeed() * 2;
104759
+ // Compute direction vectors from the camera entity so movement matches look direction
104760
+ const entity = this.entity;
104761
+ const fwd = entity?.forward && entity.forward.clone
104762
+ ? entity.forward.clone()
104763
+ : entity?.forward
104764
+ ? new Vec3(entity.forward.x, entity.forward.y, entity.forward.z)
104765
+ : new Vec3(0, 0, -1);
104766
+ const rightVec = entity?.right && entity.right.clone
104767
+ ? entity.right.clone()
104768
+ : entity?.right
104769
+ ? new Vec3(entity.right.x, entity.right.y, entity.right.z)
104770
+ : new Vec3(1, 0, 0);
104771
+ const upVec = entity?.up && entity.up.clone
104772
+ ? entity.up.clone()
104773
+ : entity?.up
104774
+ ? new Vec3(entity.up.x, entity.up.y, entity.up.z)
104775
+ : Vec3.UP.clone();
104725
104776
  // Target velocity in world space
104726
104777
  const target = new Vec3(0, 0, 0);
104727
104778
  target.add(fwd.mulScalar(nz * speed));
@@ -104756,7 +104807,9 @@ function registerFlyCameraScript() {
104756
104807
  }
104757
104808
  };
104758
104809
  FlyCamera.prototype._applyConstraints = function () {
104759
- if (!this.enableCollision && this.minHeight == null && this.maxHeight == null) {
104810
+ if (!this.enableCollision &&
104811
+ this.minHeight == null &&
104812
+ this.maxHeight == null) {
104760
104813
  return;
104761
104814
  }
104762
104815
  const pos = this.entity.getPosition
@@ -140030,7 +140083,7 @@ class SplatViewerCore {
140030
140083
  this.focus(result.entity);
140031
140084
  setTimeout(() => {
140032
140085
  const info = this.debugInfo();
140033
- console.log(info);
140086
+ // no-op
140034
140087
  if (!info.boundsRadius) {
140035
140088
  this.focus(result.entity);
140036
140089
  }
@@ -140826,6 +140879,7 @@ class SplatViewerCore {
140826
140879
  if (!this.app)
140827
140880
  return;
140828
140881
  const canvas = this.app.graphicsDevice.canvas;
140882
+ // debug removed
140829
140883
  // Ensure canvas and its parent fill available space by default (non-destructive)
140830
140884
  if (!canvas.style.display)
140831
140885
  canvas.style.display = 'block';
@@ -140839,18 +140893,22 @@ class SplatViewerCore {
140839
140893
  ps.width = '100%';
140840
140894
  if (!ps.height)
140841
140895
  ps.height = '100%';
140896
+ // debug removed
140842
140897
  }
140843
140898
  // Helper: apply resolution and notify dependents
140844
140899
  const applyResolution = (width, height) => {
140845
140900
  if (canvas.width === width && canvas.height === height)
140846
140901
  return;
140902
+ // track previous size if needed in future
140847
140903
  canvas.width = width;
140848
140904
  canvas.height = height;
140849
140905
  this.app.resizeCanvas(width, height);
140906
+ // debug removed
140850
140907
  if (this._orbit &&
140851
140908
  this._orbit.navigationCube &&
140852
140909
  typeof this._orbit.navigationCube.onCanvasResize === 'function') {
140853
140910
  this._orbit.navigationCube.onCanvasResize();
140911
+ // debug removed
140854
140912
  }
140855
140913
  };
140856
140914
  // Fallback: compute from CSS box * devicePixelRatio
@@ -140859,6 +140917,7 @@ class SplatViewerCore {
140859
140917
  const pixelRatio = window.devicePixelRatio || 1;
140860
140918
  const width = Math.floor(rect.width * pixelRatio);
140861
140919
  const height = Math.floor(rect.height * pixelRatio);
140920
+ // debug removed
140862
140921
  applyResolution(width, height);
140863
140922
  };
140864
140923
  // Prefer ResizeObserver entry data (devicePixelContentBoxSize when available)
@@ -140869,6 +140928,7 @@ class SplatViewerCore {
140869
140928
  if (dpcb && dpcb.length > 0) {
140870
140929
  width = Math.ceil(dpcb[0].inlineSize);
140871
140930
  height = Math.ceil(dpcb[0].blockSize);
140931
+ // debug removed
140872
140932
  }
140873
140933
  else {
140874
140934
  const cbs = entry.contentBoxSize;
@@ -140876,6 +140936,7 @@ class SplatViewerCore {
140876
140936
  const pixelRatio = window.devicePixelRatio || 1;
140877
140937
  width = Math.ceil(cbs[0].inlineSize * pixelRatio);
140878
140938
  height = Math.ceil(cbs[0].blockSize * pixelRatio);
140939
+ // debug removed
140879
140940
  }
140880
140941
  }
140881
140942
  if (width !== null && height !== null) {
@@ -140887,6 +140948,7 @@ class SplatViewerCore {
140887
140948
  };
140888
140949
  // Initial resolution setup
140889
140950
  updateResolution();
140951
+ // debug removed
140890
140952
  // Set up resize observer for automatic resolution updates
140891
140953
  if (window.ResizeObserver) {
140892
140954
  this._resizeObserver = new ResizeObserver((entries) => {
@@ -140915,16 +140977,53 @@ class SplatViewerCore {
140915
140977
  }
140916
140978
  });
140917
140979
  // Observe both the canvas and its parent container for resize events
140918
- this._resizeObserver.observe(canvas);
140980
+ try {
140981
+ // Prefer device-pixel-content-box for pixel-perfect canvas sizing
140982
+ ;
140983
+ this._resizeObserver.observe(canvas, {
140984
+ box: 'device-pixel-content-box',
140985
+ });
140986
+ }
140987
+ catch {
140988
+ this._resizeObserver.observe(canvas);
140989
+ }
140990
+ // debug removed
140919
140991
  if (canvas.parentElement) {
140920
140992
  this._resizeObserver.observe(canvas.parentElement);
140993
+ // debug removed
140921
140994
  }
140922
140995
  }
140923
140996
  // Additionally listen to window resize to handle viewport changes
140924
140997
  // (e.g., when resizing dev tools). This mirrors superSplat behavior
140925
140998
  // and ensures the canvas always matches the available space.
140926
- window.addEventListener('resize', updateResolution);
140927
- this._resizeHandler = updateResolution;
140999
+ const onWindowResize = () => {
141000
+ updateResolution();
141001
+ };
141002
+ window.addEventListener('resize', onWindowResize);
141003
+ this._resizeHandler = onWindowResize;
141004
+ }
141005
+ /**
141006
+ * Force recalculation of canvas resolution based on current DOM size.
141007
+ * Useful when container layout changes are not captured by the observer.
141008
+ */
141009
+ updateCanvasResolution() {
141010
+ if (!this.app)
141011
+ return;
141012
+ const canvas = this.app.graphicsDevice.canvas;
141013
+ const rect = canvas.getBoundingClientRect();
141014
+ const pixelRatio = window.devicePixelRatio || 1;
141015
+ const width = Math.floor(rect.width * pixelRatio);
141016
+ const height = Math.floor(rect.height * pixelRatio);
141017
+ if (canvas.width !== width || canvas.height !== height) {
141018
+ canvas.width = width;
141019
+ canvas.height = height;
141020
+ this.app.resizeCanvas(width, height);
141021
+ if (this._orbit &&
141022
+ this._orbit.navigationCube &&
141023
+ typeof this._orbit.navigationCube.onCanvasResize === 'function') {
141024
+ this._orbit.navigationCube.onCanvasResize();
141025
+ }
141026
+ }
140928
141027
  }
140929
141028
  }
140930
141029
 
@@ -140955,6 +141054,7 @@ class SplatViewerElement extends HTMLElement {
140955
141054
  this._config = { ...DEFAULT_CONFIG };
140956
141055
  this._isInitialized = false;
140957
141056
  this._isDestroyed = false;
141057
+ this._hostResizeObserver = null;
140958
141058
  }
140959
141059
  // Observed attributes that trigger attributeChangedCallback
140960
141060
  static get observedAttributes() {
@@ -141302,6 +141402,22 @@ class SplatViewerElement extends HTMLElement {
141302
141402
  this._canvas.setAttribute('role', 'img');
141303
141403
  this._canvas.setAttribute('aria-label', '3D Splat Viewer');
141304
141404
  this.appendChild(this._canvas);
141405
+ // Observe host element for size changes and force canvas resolution update
141406
+ try {
141407
+ if (window.ResizeObserver) {
141408
+ this._hostResizeObserver = new ResizeObserver(() => {
141409
+ // Force resolution update in core to sync canvas with host/container
141410
+ try {
141411
+ this._core?.updateCanvasResolution();
141412
+ }
141413
+ catch { }
141414
+ });
141415
+ this._hostResizeObserver.observe(this);
141416
+ if (this.parentElement)
141417
+ this._hostResizeObserver.observe(this.parentElement);
141418
+ }
141419
+ }
141420
+ catch { }
141305
141421
  // Update configuration from attributes
141306
141422
  this._updateConfigFromAttributes();
141307
141423
  // Initialize the core viewer
@@ -141358,6 +141474,11 @@ class SplatViewerElement extends HTMLElement {
141358
141474
  return;
141359
141475
  }
141360
141476
  try {
141477
+ // Disconnect host resize observer
141478
+ if (this._hostResizeObserver) {
141479
+ this._hostResizeObserver.disconnect();
141480
+ this._hostResizeObserver = null;
141481
+ }
141361
141482
  // Clean up core
141362
141483
  if (this._core) {
141363
141484
  this._core.destroy();
@@ -141477,7 +141598,6 @@ class SplatViewerElement extends HTMLElement {
141477
141598
  return;
141478
141599
  }
141479
141600
  // Stats handling will be implemented when we add stats functionality
141480
- console.log('Stats change requested:', this.enableStats);
141481
141601
  }
141482
141602
  /**
141483
141603
  * Set up event listeners for the core viewer