defmodule LivebookWeb.Icons do import Phoenix.HTML.Tag import Phoenix.LiveView.Helpers @doc """ Returns icon svg tag. """ def svg(name, attrs \\ []) def svg(:play, attrs) do assigns = %{attrs: heroicon_svg_attrs(attrs)} ~L""" <%= tag(:svg, @attrs) %> """ end def svg(:plus, attrs) do assigns = %{attrs: heroicon_svg_attrs(attrs)} ~L""" <%= tag(:svg, @attrs) %> """ end def svg(:trash, attrs) do assigns = %{attrs: heroicon_svg_attrs(attrs)} ~L""" <%= tag(:svg, @attrs) %> """ end def svg(:chip, attrs) do assigns = %{attrs: heroicon_svg_attrs(attrs)} ~L""" <%= tag(:svg, @attrs) %> """ end def svg(:information_circle, attrs) do assigns = %{attrs: heroicon_svg_attrs(attrs)} ~L""" <%= tag(:svg, @attrs) %> """ end def svg(:exclamation_circle, attrs) do assigns = %{attrs: heroicon_svg_attrs(attrs)} ~L""" <%= tag(:svg, @attrs) %> """ end def svg(:question_mark_circle, attrs) do assigns = %{attrs: heroicon_svg_attrs(attrs)} ~L""" <%= tag(:svg, @attrs) %> """ end def svg(:pencil, attrs) do assigns = %{attrs: heroicon_svg_attrs(attrs)} ~L""" <%= tag(:svg, @attrs) %> """ end def svg(:folder, attrs) do assigns = %{attrs: heroicon_svg_attrs(attrs)} ~L""" <%= tag(:svg, @attrs) %> """ end def svg(:document_text, attrs) do assigns = %{attrs: heroicon_svg_attrs(attrs)} ~L""" <%= tag(:svg, @attrs) %> """ end def svg(:check_circle, attrs) do assigns = %{attrs: heroicon_svg_attrs(attrs)} ~L""" <%= tag(:svg, @attrs) %> """ end def svg(:dots_circle_horizontal, attrs) do assigns = %{attrs: heroicon_svg_attrs(attrs)} ~L""" <%= tag(:svg, @attrs) %> """ end def svg(:home, attrs) do assigns = %{attrs: heroicon_svg_attrs(attrs)} ~L""" <%= tag(:svg, @attrs) %> """ end def svg(:stop, attrs) do assigns = %{attrs: heroicon_svg_attrs(attrs)} ~L""" <%= tag(:svg, @attrs) %> """ end def svg(:chevron_up, attrs) do assigns = %{attrs: heroicon_svg_attrs(attrs)} ~L""" <%= tag(:svg, @attrs) %> """ end def svg(:chevron_down, attrs) do assigns = %{attrs: heroicon_svg_attrs(attrs)} ~L""" <%= tag(:svg, @attrs) %> """ end def svg(:adjustments, attrs) do assigns = %{attrs: heroicon_svg_attrs(attrs)} ~L""" <%= tag(:svg, @attrs) %> """ end # https://heroicons.com defp heroicon_svg_attrs(attrs) do heroicon_svg_attrs = [ xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor" ] Keyword.merge(attrs, heroicon_svg_attrs) end end