Class: PhlexKit::Menubar

Inherits:
BaseComponent show all
Defined in:
app/components/phlex_kit/menubar/menubar.rb

Overview

Desktop-style menu bar, ported from shadcn/ui's Menubar (Radix replaced by the phlex-kit--menubar controller: click opens a menu, hover switches between open menus, Escape/outside closes). Compose Menubar > MenubarMenu > (MenubarTrigger + MenubarContent > MenubarItem/MenubarSeparator). NavigationMenu shares the controller in hover mode. .pk-menubar* (menubar.css).

Instance Method Summary collapse

Methods inherited from BaseComponent

#on

Constructor Details

#initialize(**attrs) ⇒ Menubar

Returns a new instance of Menubar.



9
10
11
# File 'app/components/phlex_kit/menubar/menubar.rb', line 9

def initialize(**attrs)
  @attrs = attrs
end

Instance Method Details

#view_templateObject



13
14
15
16
17
18
19
20
21
22
# File 'app/components/phlex_kit/menubar/menubar.rb', line 13

def view_template(&)
  div(**mix({
    class: "pk-menubar",
    role: "menubar",
    data: {
      controller: "phlex-kit--menubar",
      action: "click@window->phlex-kit--menubar#onClickOutside keydown->phlex-kit--menubar#onKeydown"
    }
  }, @attrs), &)
end