Module: UI::MenubarItemBehavior
- Included in:
- MenubarItem, MenubarItemComponent
- Defined in:
- app/behaviors/ui/menubar_item_behavior.rb
Overview
MenubarItemBehavior
Shared behavior for MenubarItem component across ERB, ViewComponent, and Phlex implementations.
Instance Method Summary collapse
-
#menubar_item_classes ⇒ Object
Returns combined CSS classes for the item.
-
#menubar_item_data_attributes ⇒ Object
Returns data attributes for the item.
-
#menubar_item_html_attributes ⇒ Object
Returns HTML attributes for the menu item.
Instance Method Details
#menubar_item_classes ⇒ Object
Returns combined CSS classes for the item
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'app/behaviors/ui/menubar_item_behavior.rb', line 23 def classes_value = respond_to?(:classes, true) ? classes : @classes variant_classes = variant_class inset_class = inset? ? "pl-8" : "" TailwindMerge::Merger.new.merge([ "focus:bg-accent focus:text-accent-foreground", "relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm", "outline-hidden select-none whitespace-nowrap", "data-[disabled]:pointer-events-none data-[disabled]:opacity-50", "[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", variant_classes, inset_class, classes_value ].compact.join(" ")) end |
#menubar_item_data_attributes ⇒ Object
Returns data attributes for the item
41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'app/behaviors/ui/menubar_item_behavior.rb', line 41 def attributes_value = respond_to?(:attributes, true) ? attributes : @attributes base_data = { "ui--menubar-target": "item", action: "click->ui--menubar#selectItem mouseenter->ui--menubar#trackHoveredItem" } # Add variant if destructive base_data[:variant] = "destructive" if destructive? (attributes_value&.fetch(:data, {}) || {}).merge(base_data) end |
#menubar_item_html_attributes ⇒ Object
Returns HTML attributes for the menu item
8 9 10 11 12 13 14 15 16 17 18 19 20 |
# File 'app/behaviors/ui/menubar_item_behavior.rb', line 8 def attrs = { class: , data: , role: "menuitem", tabindex: "-1" } # Add disabled attribute if specified attrs[:"data-disabled"] = "" if disabled? attrs end |