Current section

Files

Jump to
sigma_kit lib components flair.ex
Raw

lib/components/flair.ex

defmodule SigmaKit.Components.Flair do
use Phoenix.LiveComponent
attr :success, :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 = %{success: true}) when assigns.label != nil do
~H"""
<span class="inline-flex items-center bg-green-100 text-green-800 text-xs font-medium px-2.5 py-0.5 rounded-full">
<span class="w-2 h-2 me-1 bg-green-500 rounded-full"></span> {@label}
</span>
"""
end
def indicator(assigns = %{danger: true}) when assigns.label != nil do
~H"""
<span class="inline-flex items-center bg-red-100 text-red-800 text-xs font-medium px-2.5 py-0.5 rounded-full">
<span class="w-2 h-2 me-1 bg-red-500 rounded-full"></span> {@label}
</span>
"""
end
def indicator(assigns = %{info: true}) when assigns.label != nil do
~H"""
<span class="inline-flex items-center bg-blue-100 text-blue-800 text-xs font-medium px-2.5 py-0.5 rounded-full">
<span class="w-2 h-2 me-1 bg-blue-500 rounded-full"></span> {@label}
</span>
"""
end
def indicator(assigns = %{warning: true}) when assigns.label != nil do
~H"""
<span class="inline-flex items-center bg-yellow-100 text-yellow-800 text-xs font-medium px-2.5 py-0.5 rounded-full">
<span class="w-2 h-2 me-1 bg-yellow-500 rounded-full"></span> {@label}
</span>
"""
end
def indicator(assigns) when assigns.label != nil do
~H"""
<span class="inline-flex items-center bg-gray-200 text-gray-800 text-xs font-medium px-2.5 py-0.5 rounded-full">
<span class="w-2 h-2 me-1 bg-gray-500 rounded-full"></span> {@label}
</span>
"""
end
def indicator(assigns = %{success: true}) when assigns.label == nil do
~H"""
<span class="flex w-3 h-3 me-3 bg-green-500 rounded-full"></span>
"""
end
def indicator(assigns = %{danger: true}) when assigns.label == nil do
~H"""
<span class="flex w-3 h-3 me-3 bg-red-500 rounded-full"></span>
"""
end
def indicator(assigns = %{info: true}) when assigns.label == nil do
~H"""
<span class="flex w-3 h-3 me-3 bg-blue-600 rounded-full"></span>
"""
end
def indicator(assigns = %{warning: true}) when assigns.label == nil do
~H"""
<span class="flex w-3 h-3 me-3 bg-yellow-300 rounded-full"></span>
"""
end
def indicator(assigns) do
~H"""
<span class="flex w-3 h-3 me-3 bg-gray-200 rounded-full"></span>
"""
end
end