code constant

String const code

Implementation

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

    var menus = menubar.querySelectorAll('.arcane-menubar-menu');
    var activeMenu = null;

    function setMenuOpen(menu, open) {
      var state = open ? 'open' : 'closed';
      var trigger = menu.querySelector('.arcane-menubar-trigger');
      var content = menu.querySelector('.arcane-menubar-content');
      menu.setAttribute('data-state', state);
      menu.classList.toggle('open', open);
      if (trigger) {
        trigger.setAttribute('aria-expanded', open ? 'true' : 'false');
        trigger.setAttribute('data-state', state);
      }
      if (content) {
        content.setAttribute('data-state', state);
        content.hidden = !open;
        if (!open) {
          content.querySelectorAll('.arcane-menubar-item.submenu-trigger').forEach(function(sub) {
            sub.setAttribute('aria-expanded', 'false');
          });
        }
      }
    }

    function closeAll() {
      menus.forEach(function(menu) { setMenuOpen(menu, false); });
      activeMenu = null;
    }

    function openMenu(menu) {
      closeAll();
      setMenuOpen(menu, true);
      activeMenu = menu;
    }

    menus.forEach(function(menu) {
      var trigger = menu.querySelector('.arcane-menubar-trigger');
      var content = menu.querySelector('.arcane-menubar-content');
      if (!trigger || !content) return;

      trigger.addEventListener('click', function(e) {
        e.stopPropagation();
        if (activeMenu === menu) {
          closeAll();
        } else {
          openMenu(menu);
        }
      });

      menu.addEventListener('mouseenter', function() {
        if (activeMenu && activeMenu !== menu) openMenu(menu);
      });

      content.querySelectorAll('.arcane-menubar-item.submenu-trigger').forEach(function(sub) {
        sub.addEventListener('click', function(e) {
          if (e.target.closest('.arcane-menubar-submenu')) return;
          e.stopPropagation();
          var expanded = sub.getAttribute('aria-expanded') === 'true';
          sub.setAttribute('aria-expanded', expanded ? 'false' : 'true');
        });
        sub.addEventListener('keydown', function(e) {
          if (e.target !== sub) return;
          if (e.key === 'Enter' || e.key === ' ' || e.key === 'ArrowRight') {
            e.preventDefault();
            sub.setAttribute('aria-expanded', 'true');
          } else if (e.key === 'ArrowLeft') {
            sub.setAttribute('aria-expanded', 'false');
          }
        });
      });

      content.querySelectorAll('.arcane-menubar-item:not(.disabled):not(.submenu-trigger)').forEach(function(item) {
        item.addEventListener('click', function() { closeAll(); });
      });
    });

    document.addEventListener('click', function(e) {
      if (activeMenu && !menubar.contains(e.target)) closeAll();
    });

    document.addEventListener('keydown', function(e) {
      if (e.key !== 'Escape' || !activeMenu) return;
      var trigger = activeMenu.querySelector('.arcane-menubar-trigger');
      closeAll();
      if (trigger) trigger.focus();
    });
  });
}
''';