defmodule PetalComponents.Typography do use Phoenix.Component @moduledoc """ Everything related to text. Headings, paragraphs and links """ # <.h1>Heading # <.h1 label="Heading" /> # <.h1 label="Heading" class="mb-10" color_class="text-blue-500" /> def h1(assigns) do ~H"""
<%= if assigns[:label] do %> <%= @label %> <% else %> <%= render_slot(@inner_block) %> <% end %>
""" end def h2(assigns) do ~H"""
<%= if assigns[:label] do %> <%= @label %> <% else %> <%= render_slot(@inner_block) %> <% end %>
""" end def h3(assigns) do ~H"""
<%= if assigns[:label] do %> <%= @label %> <% else %> <%= render_slot(@inner_block) %> <% end %>
""" end def h4(assigns) do ~H"""
<%= if assigns[:label] do %> <%= @label %> <% else %> <%= render_slot(@inner_block) %> <% end %>
""" end def h5(assigns) do ~H"""
<%= if assigns[:label] do %> <%= @label %> <% else %> <%= render_slot(@inner_block) %> <% end %>
""" end defp get_heading_classes(base_classes, assigns) do custom_classes = assigns[:class] || "" color_classes = assigns[:color_class] || "text-gray-900 dark:text-white" underline_classes = if assigns[:underline], do: " border-b border-gray-200 pb-2", else: "" margin_classes = if assigns[:no_margin], do: "", else: "mb-3" [base_classes, custom_classes, color_classes, underline_classes, margin_classes] |> Enum.join(" ") end def p(assigns) do ~H"""

<%= render_slot(@inner_block) %>

""" end def link(assigns) do assigns = assign_new(assigns, :variant, fn -> "primary" end) ~H""" <%= render_slot(@inner_block) %> """ end end