defmodule SigmaKit.Components.Flair do use Phoenix.LiveComponent attr :success, :boolean, default: false attr :primary, :boolean, default: false attr :secondary, :boolean, default: false attr :danger, :boolean, default: false attr :warning, :boolean, default: false attr :info, :boolean, default: false attr :label, :string, default: nil def indicator(assigns = %{primary: true}) when assigns.label != nil do ~H""" {@label} """ end def indicator(assigns = %{secondary: true}) when assigns.label != nil do ~H""" {@label} """ end def indicator(assigns = %{success: true}) when assigns.label != nil do ~H""" {@label} """ end def indicator(assigns = %{danger: true}) when assigns.label != nil do ~H""" {@label} """ end def indicator(assigns = %{info: true}) when assigns.label != nil do ~H""" {@label} """ end def indicator(assigns = %{warning: true}) when assigns.label != nil do ~H""" {@label} """ end def indicator(assigns) when assigns.label != nil do ~H""" {@label} """ end def indicator(assigns = %{success: true}) when assigns.label == nil do ~H""" """ end def indicator(assigns = %{danger: true}) when assigns.label == nil do ~H""" """ end def indicator(assigns = %{info: true}) when assigns.label == nil do ~H""" """ end def indicator(assigns = %{warning: true}) when assigns.label == nil do ~H""" """ end def indicator(assigns = %{primary: true}) when assigns.label == nil do ~H""" """ end def indicator(assigns = %{secondary: true}) when assigns.label == nil do ~H""" """ end def indicator(assigns = %{warning: true}) when assigns.label == nil do ~H""" """ end def indicator(assigns) do ~H""" """ end attr :loader, :string, default: "medium" attr :loading, :boolean, default: true slot :inner_block def loader(assigns) do ~H""" <.loader_glyph :if={@loading} loader={@loader} /> {if !@loading, do: render_slot(@inner_block)} """ end attr :loader, :string, default: "medium" defp loader_glyph(%{loader: "none"} = assigns) do ~H"""
""" end defp loader_glyph(%{loader: "medium"} = assigns) do ~H"""