11defmodule PetalComponents.Breadcrumbs do
22 use Phoenix.Component
3- alias PetalComponents.Link
3+ alias PetalComponents . { Icon , Link }
44
55 attr ( :separator , :string , default: "slash" , values: [ "slash" , "chevron" ] )
66 attr ( :class , :string , default: "" , doc: "Parent div CSS class" )
@@ -15,6 +15,7 @@ defmodule PetalComponents.Breadcrumbs do
1515 # link_class="!text-blue-500 text-sm font-semibold"
1616 # links={[
1717 # %{ label: "Link 1", to: "/" },
18+ # %{ to: "/", icon: :home, icon_class="text-blue-500" },
1819 # %{ label: "Link 1", to: "/", link_type: "patch|a|redirect" }
1920 # ]}
2021 # />
@@ -31,7 +32,14 @@ defmodule PetalComponents.Breadcrumbs do
3132 to = { link . to }
3233 class = { get_breadcrumb_classes ( @ link_class ) }
3334 >
34- <%= link . label %>
35+ < div class = "flex items-center gap-2 " >
36+ <%= if link [ :icon ] do %>
37+ < Icon . icon name = { link [ :icon ] } class = { get_icon_classes ( link [ :icon_class ] ) } />
38+ <% end %>
39+ <%= if link [ :label ] do %>
40+ <%= link . label %>
41+ <% end %>
42+ </ div >
3543 </ Link . a >
3644 <% end %>
3745 </ div >
@@ -54,4 +62,7 @@ defmodule PetalComponents.Breadcrumbs do
5462
5563 defp get_breadcrumb_classes ( user_classes ) ,
5664 do: "pc-breadcrumb #{ user_classes } "
65+
66+ defp get_icon_classes ( icon_classes ) ,
67+ do: "pc-breadcrumb-icon #{ icon_classes } "
5768end
0 commit comments