Module: UI::NavigationMenuBehavior

Included in:
NavigationMenu, NavigationMenuComponent
Defined in:
app/behaviors/ui/navigation_menu_behavior.rb

Overview

UI::NavigationMenuBehavior

Instance Method Summary collapse

Instance Method Details

Returns combined CSS classes for the navigation menu



47
48
49
50
51
52
53
# File 'app/behaviors/ui/navigation_menu_behavior.rb', line 47

def navigation_menu_classes
  classes_value = respond_to?(:classes, true) ? classes : @classes
  TailwindMerge::Merger.new.merge([
    "group/navigation-menu relative flex max-w-max flex-1 items-center justify-center",
    classes_value
  ].compact.join(" "))
end

Returns data attributes for Stimulus controller



56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# File 'app/behaviors/ui/navigation_menu_behavior.rb', line 56

def navigation_menu_data_attributes
  attributes_value = respond_to?(:attributes, true) ? attributes : @attributes
  viewport_value = defined?(@viewport) ? @viewport : true
  delay_value = defined?(@delay_duration) ? @delay_duration : 200
  skip_delay_value = defined?(@skip_delay_duration) ? @skip_delay_duration : 300

  base_data = {
    controller: "ui--navigation-menu",
    "ui--navigation-menu-viewport-value": viewport_value,
    "ui--navigation-menu-delay-duration-value": delay_value,
    "ui--navigation-menu-skip-delay-duration-value": skip_delay_value
  }

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

Returns HTML attributes for the navigation menu container



39
40
41
42
43
44
# File 'app/behaviors/ui/navigation_menu_behavior.rb', line 39

def navigation_menu_html_attributes
  {
    class: navigation_menu_classes,
    data: navigation_menu_data_attributes
  }
end