@vectoriox/iox-builder 1.4.77 → 1.4.79

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.
@@ -1631,22 +1631,30 @@ class InteractionEngineService {
1631
1631
  * trigger fires. Called for ALL entrance-type actions regardless of trigger so
1632
1632
  * that a click-triggered fadeIn on a menu overlay also starts it hidden.
1633
1633
  *
1634
- * In production also sets pointer-events:none. In builder mode pointer-events
1635
- * are left as-is so wheel events still reach the Lenis scroll container;
1636
- * the data-iox-hidden guard in render.directive.ts prevents overlay selection.
1634
+ * In builder mode only opacity:0 is applied — transforms on canvas elements
1635
+ * inside iox-page-component's scale() transform break Lenis scroll. The transform
1636
+ * jump at animation t=0 is invisible because the element is already opacity:0.
1637
+ * In production the full keyframe is applied + pointer-events:none.
1637
1638
  */
1638
1639
  applyPreState(element, action) {
1639
1640
  const { keyframes } = this.buildAnimation(action);
1640
1641
  if (!keyframes.length)
1641
1642
  return;
1642
1643
  const first = keyframes[0];
1643
- for (const [prop, val] of Object.entries(first)) {
1644
- element.style[prop] = String(val);
1644
+ if (this.isBuilderMode()) {
1645
+ // No transforms — inline transforms on children inside iox-page-component's
1646
+ // scale() break Lenis scroll. pointer-events:none lets wheel events and
1647
+ // hover fall through to visible elements underneath.
1648
+ element.style.setProperty('opacity', '0');
1649
+ element.style.setProperty('pointer-events', 'none');
1645
1650
  }
1646
- element.setAttribute('data-iox-hidden', '');
1647
- if (!this.isBuilderMode()) {
1651
+ else {
1652
+ for (const [prop, val] of Object.entries(first)) {
1653
+ element.style[prop] = String(val);
1654
+ }
1648
1655
  element.style.setProperty('pointer-events', 'none');
1649
1656
  }
1657
+ element.setAttribute('data-iox-hidden', '');
1650
1658
  this.preStatedElements.add(element);
1651
1659
  }
1652
1660
  clearInlineAnimationStyles(element) {