Class: ShadcnPhlexcomponents::DropdownMenuSubTrigger

Inherits:
Base
  • Object
show all
Defined in:
lib/shadcn_phlexcomponents/components/dropdown_menu_sub.rb

Constant Summary

Constants inherited from Base

Base::SANITIZER_ALLOWED_ATTRIBUTES, Base::SANITIZER_ALLOWED_TAGS, Base::TAILWIND_MERGER

Instance Method Summary collapse

Methods inherited from Base

#before_template, #convert_collection_hash_to_struct, #find_as_child, #icon, #item_disabled?, #merge_default_attributes, #merged_as_child_attributes, #nokogiri_attributes_to_hash, #overlay, #sanitize_as_child

Constructor Details

#initialize(aria_id: nil, **attributes) ⇒ DropdownMenuSubTrigger

Returns a new instance of DropdownMenuSubTrigger.



45
46
47
48
# File 'lib/shadcn_phlexcomponents/components/dropdown_menu_sub.rb', line 45

def initialize(aria_id: nil, **attributes)
  @aria_id = aria_id
  super(**attributes)
end

Instance Method Details

#default_attributesObject



50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# File 'lib/shadcn_phlexcomponents/components/dropdown_menu_sub.rb', line 50

def default_attributes
  {
    id: "#{@aria_id}-trigger",
    role: "menuitem",
    aria: {
      haspopup: "menu",
      expanded: false,
      controls: "#{@aria_id}-content",
    },
    tabindex: -1,
    data: {
      state: "closed",
      dropdown_menu_sub_target: "trigger",
      dropdown_menu_target: "item",
      action: <<~HEREDOC,
        focus->dropdown-menu#onItemFocus
        blur->dropdown-menu#onItemBlur
        keydown.up->dropdown-menu#focusItem:prevent
        keydown.down->dropdown-menu#focusItem:prevent
        mouseover->dropdown-menu#focusItem
        mouseover->dropdown-menu-sub#open
        click->dropdown-menu-sub#open
        keydown.right->dropdown-menu-sub#open:prevent
        keydown.space->dropdown-menu-sub#open:prevent
        keydown.enter->dropdown-menu-sub#open:prevent
        keydown.left->dropdown-menu-sub#closeParentSubMenu
      HEREDOC
    },
  }
end

#view_templateObject



81
82
83
84
85
86
87
# File 'lib/shadcn_phlexcomponents/components/dropdown_menu_sub.rb', line 81

def view_template(&)
  div(**@attributes) do
    yield

    icon("chevron-right", class: "ml-auto size-4")
  end
end