diff --git a/assets/heroicons.exs b/assets/heroicons.exs index db4d275..4e9764b 100644 --- a/assets/heroicons.exs +++ b/assets/heroicons.exs @@ -50,35 +50,45 @@ defmodule Heroicons do """ use Phoenix.Component - defp svg(assigns, outline, solid, mini) do + defp svg(assigns) do case assigns do - %{mini: false, solid: false} -> svg_outline(assign(assigns, paths: outline)) - %{solid: true, mini: false} -> svg_solid(assign(assigns, paths: solid)) - %{mini: true, solid: false} -> svg_mini(assign(assigns, paths: mini)) + %{mini: false, solid: false} -> + ~H"<.svg_outline {@rest}><%%= {:safe, @paths[:outline]} %>" + %{solid: true, mini: false} -> + ~H"<.svg_solid {@rest}><%%= {:safe, @paths[:solid]} %>" + %{mini: true, solid: false} -> + ~H"<.svg_mini {@rest}><%%= {:safe, @paths[:mini]} %>" %{} -> raise ArgumentError, "expected either mini or solid, but got both." end end + + attr :rest, :global, default: %{"aria-hidden": "true", fill: "none", viewBox: "0 0 24 24", "stroke-width": "1.5", stroke: "currentColor"} + slot :inner_block, required: true defp svg_outline(assigns) do ~H""" -