defmodule PhoenixDuskmoon.Component.Dropdown do @moduledoc """ Dropdown menu component for action menus and navigation. ## Examples <.dm_dropdown> <:trigger> <.dm_btn variant="ghost">Menu <:content>
  • Profile
  • Settings
  • Logout
  • <.dm_dropdown position="right" color="primary"> <:trigger> <.dm_btn variant="primary"> Actions <.dm_mdi class="ml-1">chevron-down <:content>
  • Edit
  • Duplicate
  • Delete
  • ## Attributes * `position` - Dropdown position: left, right, top, bottom (default: left) * `color` - Dropdown color: primary, secondary, accent, info, success, warning, error (default: primary) * `open` - Force dropdown to be open * `class` - Additional CSS classes * `dropdown_class` - Additional CSS classes for dropdown element ## Slots * `:trigger` - Element that triggers the dropdown (required) * `:content` - Dropdown menu content (required) """ use Phoenix.Component @doc type: :component attr(:position, :string, default: "left", values: ["left", "right", "top", "bottom"]) attr(:color, :string, default: "primary", values: ["primary", "secondary", "accent", "info", "success", "warning", "error"] ) attr(:open, :boolean, default: false) attr(:class, :string, default: nil) attr(:dropdown_class, :string, default: nil) attr(:rest, :global) slot :trigger, required: true do attr(:class, :string) end slot :content, required: true do attr(:class, :string) end def dm_dropdown(assigns) do ~H"""
    {render_slot(trigger)}
    """ end end