Class: PhlexKit::NavigationMenu

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

Overview

Site navigation with hoverable panels, ported from shadcn/ui's NavigationMenu. Shares the phlex-kit--menubar controller in hover-open mode (data-hover-open). Compose NavigationMenu > NavigationMenuList > NavigationMenuItem > (NavigationMenuTrigger + NavigationMenuContent | NavigationMenuLink). .pk-navigation-menu* (navigation_menu.css).

Instance Method Summary collapse

Methods inherited from BaseComponent

#on

Constructor Details

#initialize(**attrs) ⇒ NavigationMenu

Returns a new instance of NavigationMenu.



8
9
10
# File 'app/components/phlex_kit/navigation_menu/navigation_menu.rb', line 8

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

Instance Method Details

#view_templateObject



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

def view_template(&)
  nav(**mix({
    class: "pk-navigation-menu",
    data: {
      controller: "phlex-kit--menubar",
      hover_open: true,
      action: "click@window->phlex-kit--menubar#onClickOutside keydown.esc->phlex-kit--menubar#close mouseleave->phlex-kit--menubar#closeSoon"
    }
  }, @attrs), &)
end