diff --git a/sources/lib/components/station_ui/html/card.ex b/sources/lib/components/station_ui/html/card.ex index 530d52d..e76eac6 100644 --- a/sources/lib/components/station_ui/html/card.ex +++ b/sources/lib/components/station_ui/html/card.ex @@ -46,7 +46,7 @@ defmodule StationUI.HTML.Card do ### Horizontal Card - <.card_horizontal> + <.card direction="horizontal"> <:header> - + """ @base_classes "@container min-w-[200px] w-full h-full" @@ -91,45 +91,6 @@ defmodule StationUI.HTML.Card do @base_content_classes "grid gap-0.5 @[350px]:gap-1 @[425px]:gap-2 p-2 @[425px]:px-4 @[625px]:px-6 @[625px]:py-3 @[850px]:px-8 @[850px]:py-4" defp base_content_classes, do: @base_content_classes - attr :class, :any, default: "" - - slot :header - - slot :content, required: true do - attr :class, :string - end - - def card(assigns) do - ~H""" -
-
-
- {render_slot(header)} -
- <.content_card slot={@content} /> -
-
- """ - end - - attr :slot, :any, required: true - - defp content_card(assigns) do - class = - case assigns.slot do - [%{class: class} | _] -> class - _ -> "bg-white" - end - - assigns = assign(assigns, :class, class) - - ~H""" -
- {render_slot(@slot)} -
- """ - end - @base_horizontal_classes "@container min-w-[200px] w-full h-full" defp base_horizontal_classes, do: @base_horizontal_classes @@ -140,29 +101,44 @@ defmodule StationUI.HTML.Card do defp base_horizontal_content_classes, do: @base_horizontal_content_classes attr :class, :any, default: "" - slot :inner_block, required: true + attr :direction, :string + slot :header - slot :content do + slot :content, required: true do attr :class, :string end - def card_horizontal(assigns) do + def card(%{direction: "horizontal"} = assigns) do ~H"""
{render_slot(header)}
- <.content_card_horizontal slot={@content} /> + <.content_card slot={@content} direction="horizontal" /> +
+
+ """ + end + + def card(assigns) do + ~H""" +
+
+
+ {render_slot(header)} +
+ <.content_card slot={@content} />
""" end attr :slot, :any, required: true + attr :direction, :string, default: "" - defp content_card_horizontal(assigns) do + defp content_card(assigns) do class = case assigns.slot do [%{class: class} | _] -> class @@ -171,8 +147,14 @@ defmodule StationUI.HTML.Card do assigns = assign(assigns, :class, class) + content_class = + case assigns do + %{direction: "horizontal"} -> [base_horizontal_content_classes() | List.wrap(class)] + _ -> [base_content_classes() | List.wrap(class)] + end + ~H""" -
+
{render_slot(@slot)}
"""