defmodule SaladUI.Breadcrumb do
@moduledoc false
use SaladUI, :component
@doc """
Renders a breadcrumb.
## Examples
<.breadcrumb>
<.breadcrumb_list>
<.breadcrumb_item>
<.breadcrumb_link href="/">Home
<.breadcrumb_separator />
<.breadcrumb_item>
<.breadcrumb_link href="">Components
<.breadcrumb_separator />
<.breadcrumb_item>
<.breadcrumb_page>Breadcrumb
"""
attr :class, :string, default: nil
attr :rest, :global
slot :inner_block, required: true
def breadcrumb(assigns) do
~H"""
"""
end
@doc """
Render breadcrumb list
"""
attr :class, :string, default: nil
attr :rest, :global
slot :inner_block, required: true
def breadcrumb_list(assigns) do
~H"""
{render_slot(@inner_block)}
"""
end
@doc """
Render breadcrumb item
"""
attr :class, :string, default: nil
attr :rest, :global
slot :inner_block, required: true
def breadcrumb_item(assigns) do
~H"""
{render_slot(@inner_block)}
"""
end
@doc """
Render breadcrumb link
"""
attr :class, :string, default: nil
attr :rest, :global, include: ~w(download href hreflang ping referrerpolicy rel target type)
slot :inner_block, required: true
def breadcrumb_link(assigns) do
~H"""
<.link
class={
classes([
"transition-colors hover:text-foreground",
@class
])
}
{@rest}
>
{render_slot(@inner_block)}
"""
end
@doc """
Render breadcrumb page number
"""
attr :class, :string, default: nil
attr :rest, :global
slot :inner_block, required: true
def breadcrumb_page(assigns) do
~H"""
{render_slot(@inner_block)}
"""
end
@doc """
Render a separator
"""
attr :class, :string, default: nil
attr :rest, :global
def breadcrumb_separator(assigns) do
~H"""
svg]:size-3.5",
@class
])
}
{@rest}
>
"""
end
@doc """
Render ellipsis
"""
attr :class, :string, default: nil
attr :rest, :global
def breadcrumb_ellipsis(assigns) do
~H"""
"""
end
end