Module: UI::DropdownMenuSubTriggerBehavior
- Included in:
- DropdownMenuSubTrigger, DropdownMenuSubTriggerComponent
- Defined in:
- app/behaviors/ui/dropdown_menu_sub_trigger_behavior.rb
Overview
DropdownMenuSubTriggerBehavior
Shared behavior for DropdownMenuSubTrigger component across ERB, ViewComponent, and Phlex implementations.
Instance Method Summary collapse
-
#dropdown_menu_sub_trigger_classes ⇒ Object
Returns combined CSS classes for the submenu trigger.
-
#dropdown_menu_sub_trigger_data_attributes ⇒ Object
Returns data attributes for Stimulus.
-
#dropdown_menu_sub_trigger_html_attributes ⇒ Object
Returns HTML attributes for the submenu trigger.
Instance Method Details
#dropdown_menu_sub_trigger_classes ⇒ Object
Returns combined CSS classes for the submenu trigger
18 19 20 21 22 23 |
# File 'app/behaviors/ui/dropdown_menu_sub_trigger_behavior.rb', line 18 def classes_value = respond_to?(:classes, true) ? classes : @classes base_classes = "hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden data-[state=open]:bg-accent data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset=true]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4" TailwindMerge::Merger.new.merge([base_classes, classes_value].compact.join(" ")) end |
#dropdown_menu_sub_trigger_data_attributes ⇒ Object
Returns data attributes for Stimulus
26 27 28 29 30 31 32 33 34 |
# File 'app/behaviors/ui/dropdown_menu_sub_trigger_behavior.rb', line 26 def attributes_value = respond_to?(:attributes, true) ? attributes : @attributes (attributes_value&.fetch(:data, {}) || {}).merge({ "ui--dropdown-target": "item", action: "mouseenter->ui--dropdown#openSubmenu mouseleave->ui--dropdown#closeSubmenu", inset: @inset, state: "closed" }) end |
#dropdown_menu_sub_trigger_html_attributes ⇒ Object
Returns HTML attributes for the submenu trigger
8 9 10 11 12 13 14 15 |
# File 'app/behaviors/ui/dropdown_menu_sub_trigger_behavior.rb', line 8 def { class: , data: , role: "menuitem", tabindex: "-1" } end |