defmodule Moon.Design.Tag do @moduledoc false use Moon.StatelessComponent alias Moon.Design.Tag.Utils @doc "Size of tag" prop(size, :string, default: "xs", values: ~w(2xs xs sm)) @doc "Tailwind classes for customization" prop(class, :css_class) @doc "Letter case" prop(is_uppercase, :boolean, default: true) @doc "Tag content" slot(default) @doc "Left icon" slot(left_icon) @doc "Right icon" slot(right_icon) @doc "Data-testid attribute for DOM element" prop(testid, :string) @doc "Id attribute for DOM element" prop(id, :string) def render(assigns) do ~F"""
<#slot {@left_icon} /> <#slot /> <#slot {@right_icon} />
""" end end