Dropdown action menu for table rows.
Provides a compact "⋮" trigger button that opens a floating menu with action items.
Uses position: fixed via the RowMenu JS hook to escape overflow-clip table
containers — a common DaisyUI issue when dropdowns are nested inside tables.
The menu is automatically positioned to stay within the viewport: it opens below the trigger by default, flips above if there's no space below, and aligns to the right edge of the trigger (shifting left if that would clip off-screen).
Works on mobile and desktop. On mobile the menu is full-width clamped to viewport.
Components
table_row_menu/1— wrapper with trigger button, accepts items as inner_blocktable_row_menu_link/1— navigation item (navigateorhref)table_row_menu_button/1— action item (phx-clickand other events)table_row_menu_divider/1— visual separator between groups
Example
<.table_row_menu id={"menu-#{user.uuid}"}>
<.table_row_menu_link
navigate={Routes.path("/admin/users/view/#{user.uuid}")}
icon="hero-eye"
label={gettext("View")}
/>
<.table_row_menu_link
navigate={Routes.path("/admin/users/edit/#{user.uuid}")}
icon="hero-pencil"
label={gettext("Edit")}
variant="secondary"
/>
<.table_row_menu_divider />
<.table_row_menu_button
phx-click="delete"
phx-value-id={user.uuid}
icon="hero-trash"
label={gettext("Delete")}
variant="error"
/>
</.table_row_menu>
Summary
Functions
Renders the dropdown trigger and menu container.
Renders an action button item inside the menu.
Renders a visual separator between menu item groups.
Renders a navigation link item inside the menu.