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
-
#navigation_menu_item_classes ⇒ Object
Returns combined CSS classes for the item.
-
#navigation_menu_item_data_attributes ⇒ Object
Returns data attributes.
-
#navigation_menu_item_html_attributes ⇒ Object
Returns HTML attributes for the item.
Instance Method Details
#navigation_menu_item_classes ⇒ Object
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 classes_value = respond_to?(:classes, true) ? classes : @classes TailwindMerge::Merger.new.merge([ "group/navigation-menu-item relative", classes_value ].compact.join(" ")) end |
#navigation_menu_item_data_attributes ⇒ Object
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 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 |
#navigation_menu_item_html_attributes ⇒ Object
Returns HTML attributes for the item
8 9 10 11 12 13 |
# File 'app/behaviors/ui/navigation_menu_item_behavior.rb', line 8 def { class: , data: } end |