Module: UI::NavigationMenuItemBehavior

Included in:
NavigationMenuItem, NavigationMenuItemComponent
Defined in:
app/behaviors/ui/navigation_menu_item_behavior.rb

Overview

ItemBehavior

Shared behavior for NavigationMenu Item component.

Instance Method Summary collapse

Instance Method Details

Returns combined CSS classes for the item



16
17
18
19
20
21
22
# File 'app/behaviors/ui/navigation_menu_item_behavior.rb', line 16

def navigation_menu_item_classes
  classes_value = respond_to?(:classes, true) ? classes : @classes
  TailwindMerge::Merger.new.merge([
    "group/navigation-menu-item relative",
    classes_value
  ].compact.join(" "))
end

Returns data attributes



25
26
27
28
29
30
31
32
33
34
35
36
# File 'app/behaviors/ui/navigation_menu_item_behavior.rb', line 25

def navigation_menu_item_data_attributes
  attributes_value = respond_to?(:attributes, true) ? attributes : @attributes
  base_data = {
    slot: "navigation-menu-item",
    "ui--navigation-menu-target": "item"
  }

  # Add value if provided (for controlled state)
  base_data[:value] = @value if defined?(@value) && @value

  (attributes_value&.fetch(:data, {}) || {}).merge(base_data)
end

Returns HTML attributes for the item



8
9
10
11
12
13
# File 'app/behaviors/ui/navigation_menu_item_behavior.rb', line 8

def navigation_menu_item_html_attributes
  {
    class: navigation_menu_item_classes,
    data: navigation_menu_item_data_attributes
  }
end