Enable universal navigation

This commit is contained in:
Claudio Ortolina
2026-02-26 15:10:40 +00:00
parent be3a3bbb1c
commit a76ae7169f
4 changed files with 166 additions and 1 deletions
@@ -159,6 +159,45 @@ defmodule MusicLibraryWeb.SearchComponents do
"""
end
@doc """
Renders a search result item for navigation links.
## Examples
<.search_result_navigation label="Collection" icon="hero-circle-stack" />
"""
attr :label, :string, required: true
attr :icon, :string, required: true
attr :rest, :global, include: ~w(phx-click phx-value-path)
def search_result_navigation(assigns) do
~H"""
<div
class={[
"p-3 rounded-lg cursor-pointer transition-colors",
"hover:bg-zinc-50 dark:hover:bg-zinc-700",
"aria-selected:bg-zinc-200 dark:aria-selected:bg-zinc-700"
]}
role="option"
{@rest}
>
<div class="flex items-center space-x-3">
<div class="shrink-0 w-8 h-8 rounded-md bg-zinc-100 dark:bg-zinc-700 flex items-center justify-center">
<.icon name={@icon} class="h-4 w-4 text-zinc-500 dark:text-zinc-400" />
</div>
<div class="min-w-0 flex-1">
<p class="text-sm font-medium text-zinc-900 dark:text-zinc-100">
{@label}
</p>
</div>
<span class="text-xs text-zinc-400 dark:text-zinc-500">
{gettext("Go to →")}
</span>
</div>
</div>
"""
end
@doc """
Renders a search result group with a title and items.