code constant

String const code

Implementation

static const String code = r'''
function bindDrawers() {
  document.querySelectorAll('.arcane-drawer-overlay').forEach(function(overlay) {
    if (overlay.dataset.arcaneInteractive === 'true') return;
    overlay.dataset.arcaneInteractive = 'true';

    var drawer = overlay.querySelector('.arcane-drawer');
    var closeBtn = overlay.querySelector('.arcane-drawer-close');

    function closeDrawer() {
      overlay.style.opacity = '0';
      if (drawer) {
        var position = drawer.dataset.position || 'right';
        if (position === 'left') {
          drawer.style.transform = 'translateX(-100%)';
        } else if (position === 'right') {
          drawer.style.transform = 'translateX(100%)';
        } else if (position === 'top') {
          drawer.style.transform = 'translateY(-100%)';
        } else if (position === 'bottom') {
          drawer.style.transform = 'translateY(100%)';
        }
      }
      setTimeout(function() {
        overlay.style.display = 'none';
        document.body.style.overflow = '';
      }, 200);
    }

    if (closeBtn) {
      closeBtn.addEventListener('click', closeDrawer);
    }

    overlay.addEventListener('click', function(e) {
      if (e.target === overlay) {
        closeDrawer();
      }
    });
  });

  document.querySelectorAll('button').forEach(function(btn) {
    var text = (btn.textContent || '').toLowerCase();
    if (text.includes('open drawer') || text.includes('show drawer')) {
      if (btn.dataset.arcaneDrawerBound) return;
      btn.dataset.arcaneDrawerBound = 'true';

      btn.addEventListener('click', function() {
        var overlay = document.querySelector('.arcane-drawer-overlay');
        if (overlay) {
          document.body.style.overflow = 'hidden';
          overlay.style.display = 'flex';
          requestAnimationFrame(function() {
            overlay.style.opacity = '1';
            var drawer = overlay.querySelector('.arcane-drawer');
            if (drawer) {
              drawer.style.transform = 'translateX(0)';
            }
          });
        }
      });
    }
  });
}
''';