Class: ShadcnPhlexcomponents::DropdownMenuItem
- Defined in:
- lib/shadcn_phlexcomponents/components/dropdown_menu.rb
Direct Known Subclasses
Constant Summary
Constants inherited from Base
Base::SANITIZER_ALLOWED_ATTRIBUTES, Base::SANITIZER_ALLOWED_TAGS, Base::TAILWIND_MERGER
Instance Method Summary collapse
- #default_attributes ⇒ Object
-
#initialize(as_child: false, variant: :default, disabled: false, **attributes) ⇒ DropdownMenuItem
constructor
A new instance of DropdownMenuItem.
- #view_template ⇒ Object
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(as_child: false, variant: :default, disabled: false, **attributes) ⇒ DropdownMenuItem
Returns a new instance of DropdownMenuItem.
199 200 201 202 203 204 |
# File 'lib/shadcn_phlexcomponents/components/dropdown_menu.rb', line 199 def initialize(as_child: false, variant: :default, disabled: false, **attributes) @variant = variant @as_child = as_child @disabled = disabled super(**attributes) end |
Instance Method Details
#default_attributes ⇒ Object
221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 |
# File 'lib/shadcn_phlexcomponents/components/dropdown_menu.rb', line 221 def default_attributes { role: "menuitem", tabindex: -1, data: { variant: @variant, disabled: @disabled, dropdown_menu_target: "item", action: <<~HEREDOC, click->dropdown-menu#select mouseover->dropdown-menu#focusItem keydown.up->dropdown-menu#focusItem:prevent keydown.down->dropdown-menu#focusItem:prevent focus->dropdown-menu#onItemFocus blur->dropdown-menu#onItemBlur keydown.enter->dropdown-menu#select:prevent keydown.space->dropdown-menu#select:prevent mouseout->dropdown-menu#focusContent HEREDOC }, } end |
#view_template ⇒ Object
206 207 208 209 210 211 212 213 214 215 216 217 218 219 |
# File 'lib/shadcn_phlexcomponents/components/dropdown_menu.rb', line 206 def view_template(&) if @as_child content = capture(&) element = find_as_child(content.to_s) vanish(&) merged_attributes = merged_as_child_attributes(element, @attributes) send(element.name, **merged_attributes) do sanitize_as_child(element.children.to_s) end else div(**@attributes, &) end end |