defmodule DaisyUIComponents.Badge do @moduledoc """ Badge component https://daisyui.com/components/badge/ """ use DaisyUIComponents.Component @doc """ Renders a badge. ## Examples <.badge>Default <.badge primary class="gap-2">Primary """ attr :class, :string, default: nil attr :color, :string, values: colors() ++ ["neutral"] attr :ghost, :boolean, default: false attr :outline, :boolean, default: false attr :size, :string, values: sizes() attr :rest, :global slot :inner_block def badge(assigns) do assigns = assign(assigns, :class, [ "badge", badge_color(assigns[:color]), add_class_from_bool(assigns[:ghost], "badge-ghost"), add_class_from_bool(assigns[:outline], "badge-outline"), badge_size(assigns[:size]), assigns.class ]) ~H"""
<%= render_slot(@inner_block) %>
""" end # Color defp badge_color("neutral"), do: "badge-neutral" defp badge_color("primary"), do: "badge-primary" defp badge_color("secondary"), do: "badge-secondary" defp badge_color("accent"), do: "badge-accent" defp badge_color("info"), do: "badge-info" defp badge_color("success"), do: "badge-success" defp badge_color("warning"), do: "badge-warning" defp badge_color("error"), do: "badge-error" defp badge_color(_color), do: nil # Size defp badge_size("xs"), do: "badge-xs" defp badge_size("sm"), do: "badge-sm" defp badge_size("md"), do: "badge-md" defp badge_size("lg"), do: "badge-lg" defp badge_size(_size), do: nil end