class Primer::Alpha::ActionMenu
def initialize(
-
system_arguments
(Hash
) -- <%= link_to_system_arguments_docs %>. -
overlay_arguments
(Hash
) -- Arguments to pass to the underlying <%= link_to_component(Primer::Alpha::Overlay) %> -
form_arguments
(Hash
) -- Allows an `ActionMenu` to act as a select list in multi- and single-select modes. Pass the `builder:` and `name:` options to this hash. `builder:` should be an instance of `ActionView::Helpers::FormBuilder`, which are created by the standard Rails `#form_with` and `#form_for` helpers. The `name:` option is the desired name of the field that will be included in the params sent to the server on form submission. -
select_variant
(Symbol
) -- <%= one_of(Primer::Alpha::ActionMenu::SELECT_VARIANT_OPTIONS) %> -
dynamic_label_prefix
(String
) -- If provided, the prefix is prepended to the dynamic label and displayed in the show button. -
dynamic_label
(Boolean
) -- Whether or not to display the text of the currently selected item in the show button. -
preload
(Boolean
) -- When true, and src is present, loads the `include-fragment` on trigger hover. -
src
(String
) -- Used with an `include-fragment` element to load menu content from the given source URL. -
size
(Symbol
) -- <%= one_of(Primer::Alpha::Overlay::SIZE_OPTIONS) %>. -
anchor_side
(Symbol
) -- <%= one_of(Primer::Alpha::Overlay::ANCHOR_SIDE_OPTIONS) %>. -
anchor_align
(Symbol
) -- <%= one_of(Primer::Alpha::Overlay::ANCHOR_ALIGN_OPTIONS) %>. -
menu_id
(String
) -- Id of the menu.
def initialize( menu_id: self.class.generate_id, anchor_align: Primer::Alpha::Overlay::DEFAULT_ANCHOR_ALIGN, anchor_side: Primer::Alpha::Overlay::DEFAULT_ANCHOR_SIDE, size: Primer::Alpha::Overlay::DEFAULT_SIZE, src: nil, preload: DEFAULT_PRELOAD, dynamic_label: false, dynamic_label_prefix: nil, select_variant: DEFAULT_SELECT_VARIANT, form_arguments: {}, overlay_arguments: {}, **system_arguments ) @menu_id = menu_id @src = src @preload = fetch_or_fallback_boolean(preload, DEFAULT_PRELOAD) @system_arguments = deny_tag_argument(**system_arguments) @system_arguments[:preload] = true if @src.present? && preload? @select_variant = fetch_or_fallback(SELECT_VARIANT_OPTIONS, select_variant, DEFAULT_SELECT_VARIANT) @system_arguments[:tag] = :"action-menu" @system_arguments[:"data-select-variant"] = select_variant @system_arguments[:"data-dynamic-label"] = "" if dynamic_label @system_arguments[:"data-dynamic-label-prefix"] = dynamic_label_prefix if dynamic_label_prefix.present? overlay_arguments[:data] = merge_data( overlay_arguments, data: { target: "action-menu.overlay" } ) @overlay = Primer::Alpha::Overlay.new( id: "#{@menu_id}-overlay", title: "Menu", visually_hide_title: true, anchor_align: anchor_align, anchor_side: anchor_side, size: size, **overlay_arguments ) @list = Primer::Alpha::ActionMenu::List.new( menu_id: @menu_id, select_variant: select_variant, form_arguments: form_arguments ) end