code constant

String const code

Implementation

static const String code = r'''
function bindMobileMenus() {
  document.querySelectorAll('.arcane-mobile-menu-trigger, [aria-label*="Menu"]').forEach(function(trigger) {
    if (trigger.dataset.arcaneInteractive === 'true') return;
    trigger.dataset.arcaneInteractive = 'true';

    trigger.addEventListener('click', function() {
      var overlay = document.querySelector('.arcane-mobile-menu-overlay');
      var menu = document.querySelector('.arcane-mobile-menu');

      if (overlay && menu) {
        var isOpen = overlay.style.display === 'flex';

        if (isOpen) {
          overlay.style.opacity = '0';
          menu.style.transform = 'translateX(-100%)';
          setTimeout(function() {
            overlay.style.display = 'none';
            document.body.style.overflow = '';
          }, 200);
        } else {
          document.body.style.overflow = 'hidden';
          overlay.style.display = 'flex';
          requestAnimationFrame(function() {
            overlay.style.opacity = '1';
            menu.style.transform = 'translateX(0)';
          });
        }
      }
    });
  });

  var overlay = document.querySelector('.arcane-mobile-menu-overlay');
  if (overlay && !overlay.dataset.arcaneInteractive) {
    overlay.dataset.arcaneInteractive = 'true';

    overlay.addEventListener('click', function(e) {
      var menu = overlay.querySelector('.arcane-mobile-menu');
      if (e.target === overlay) {
        overlay.style.opacity = '0';
        if (menu) menu.style.transform = 'translateX(-100%)';
        setTimeout(function() {
          overlay.style.display = 'none';
          document.body.style.overflow = '';
        }, 200);
      }
    });

    var closeBtn = overlay.querySelector('.arcane-mobile-menu-close');
    if (closeBtn) {
      closeBtn.addEventListener('click', function() {
        var menu = overlay.querySelector('.arcane-mobile-menu');
        overlay.style.opacity = '0';
        if (menu) menu.style.transform = 'translateX(-100%)';
        setTimeout(function() {
          overlay.style.display = 'none';
          document.body.style.overflow = '';
        }, 200);
      });
    }
  }
}
''';