defmodule Shino.UI.Helpers do @moduledoc false use Phoenix.Component @doc false def mc(nil), do: nil def mc(classes) when is_list(classes) do classes |> List.flatten() |> Enum.reject(&(&1 == nil)) |> Enum.join(" ") end @doc false def ms(nil), do: nil def ms(styles) when is_list(styles), do: Enum.join(styles, " ") @doc false def assign_default_global(assigns, key, default) when is_map(assigns) and is_map(default) do assign(assigns, key, Map.merge(default, assigns[key])) end @doc """ Renders an icon. """ attr :name, :string, required: true attr :class, :any, default: nil attr :rest, :global def icon(%{name: "tabler-x"} = assigns) do ~H""" """ end def icon(%{name: "tabler-menu-2"} = assigns) do ~H""" """ end def icon(%{name: "tabler-chevron-right"} = assigns) do ~H""" """ end def icon(%{name: "tabler-chevron-left"} = assigns) do ~H""" """ end def icon(%{name: "tabler-dots"} = assigns) do ~H""" """ end def icon(%{name: "loader-circle"} = assigns) do ~H""" """ end end