lib/moon/design/dropdown/footer.ex

defmodule Moon.Design.Dropdown.Footer do
  @moduledoc "Optional dropdown header"

  use Moon.StatelessComponent, slot: "footer"

  alias Moon.Design.Button.IconButton
  alias Moon.Design.Button
  alias Moon.Icon

  @doc "Data-testid attribute for HTML tag"
  prop(testid, :string)
  @doc "Id attribute for HTML tag"
  prop(id, :string)
  @doc "Additional Taiilwind classes"
  prop(class, :css_class)

  @doc "Inner content of the component"
  slot(default)

  def render(assigns) do
    ~F"""
    <div data-testid={@testid} {=@id} class={merge(["h-14 p-3 bg-heles", @class])}>
      <#slot>
        <div class="flex flex-row justify-between items-center">
          <div class="flex flex-row gap-1 items-center">
            <IconButton
              size="sm"
              class="bg-heles active:transform-none cursor-default"
              hover_bg_class="group-hover:bg-transparent"
            ><Icon name="arrows_up" class="text-bulma moon-text-16" /></IconButton>
            <IconButton
              size="sm"
              class="bg-heles active:transform-none cursor-default"
              hover_bg_class="group-hover:bg-transparent"
            ><Icon name="arrows_down" class="text-bulma moon-text-16" /></IconButton>
            <span class="text-trunks text-moon-12 ps-1">to navigate</span>
          </div>
          <div class="flex flex-row gap-1 items-center">
            <IconButton
              size="sm"
              class="bg-heles active:transform-none cursor-default"
              hover_bg_class="group-hover:bg-transparent"
            ><Icon name="arrows_reply" class="scale-y-[-1] text-bulma moon-text-16" /></IconButton>
            <span class="text-trunks text-moon-12 ps-1">to select</span>
          </div>
          <div class="flex flex-row gap-1 items-center">
            <Button
              size="sm"
              class="w-8 p-1 font-normal text-moon-12 bg-heles text-bulma active:transform-none cursor-default"
              hover_bg_class="group-hover:bg-transparent"
            >esc</Button>
            <span class="text-trunks text-moon-12 ps-1">to close</span>
          </div>
        </div>
      </#slot>
    </div>
    """
  end
end