Module: UI::MenubarMenuBehavior

Included in:
MenubarMenu, MenubarMenuComponent
Defined in:
app/behaviors/ui/menubar_menu_behavior.rb

Overview

UI::MenubarMenuBehavior

Instance Method Summary collapse

Instance Method Details

Returns combined CSS classes for the menu wrapper



23
24
25
26
27
28
29
# File 'app/behaviors/ui/menubar_menu_behavior.rb', line 23

def menubar_menu_classes
  classes_value = respond_to?(:classes, true) ? classes : @classes
  TailwindMerge::Merger.new.merge([
    "relative",
    classes_value
  ].compact.join(" "))
end

Returns data attributes for Stimulus target



32
33
34
35
36
37
38
39
40
41
42
# File 'app/behaviors/ui/menubar_menu_behavior.rb', line 32

def menubar_menu_data_attributes
  attributes_value = respond_to?(:attributes, true) ? attributes : @attributes
  base_data = {
    "ui--menubar-target": "menu"
  }

  # Add value if provided (used to identify which menu is open)
  base_data[:"ui--menubar-value"] = @value if defined?(@value) && @value

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

Returns HTML attributes for the menu wrapper



15
16
17
18
19
20
# File 'app/behaviors/ui/menubar_menu_behavior.rb', line 15

def menubar_menu_html_attributes
  {
    class: menubar_menu_classes,
    data: menubar_menu_data_attributes
  }
end