UPDATE:
It's still a huge issue but I've shamelessly patched it.
Since Elementor's editor is iframing the final page which is being edited, your code for some reason stops working but just for the heck of it I tried wrapping the, get this, iframe in #smooth-wrapper and #smooth-content and it worked. I guess your JS is somehow breaking out of the iframe???
Since I have access to the Editor page, which is the parent of the iframe, I waited for it to generate the iframe and then did the wrapping.
Here is the code if someone needs to patch it until the issue is fixed (I also noticed that console warnings and errors are now doubled but everything else's running fine).
jQuery(document).ready(function($) {
"use strict";
function patchGSAPElementorConflict() {
var i = 0;
var checkIfIframeIsLoaded = setInterval(function() {
if ( $( '#elementor-preview-iframe' ).hasClass( 'iframe-loaded' ) ) {
// addClass (below) performed successfully, exit!
window.clearInterval(checkIfIframeIsLoaded);
} else if (++i === 50) {
// Still no target to addClass to after 15 seconds, something's wrong with page load, exit!
window.clearInterval(checkIfIframeIsLoaded);
} else {
/**
* Target found
*/
// #1 Adding the class to use to clearInterval
// #2 Making the iframe fullheight (wrapping it with #smooth-wrapper below would colapse it otherwise)
$( '#elementor-preview-iframe' ).addClass( 'iframe-loaded' ).css( 'min-height', '100vh' );
// wrapping the iframe with smooth-wrapper and smooth-content
$( '#elementor-preview-iframe' ).wrap( '<div id="smooth-wrapper" class="pushable-content"></div>' );
$( '#smooth-wrapper' ).wrap( '<div id="smooth-content"></div>' );
}
}, 300);
}
window.onload = () => {
patchGSAPElementorConflict();
};
});