defmodule PhoenixDuskmoon.Component.LeftMenu do @moduledoc """ Render left menu. """ use PhoenixDuskmoon.Component, :html @doc """ Generates left menu ## Example <.dm_left_menu class="w-[200px] bg-[rgba(255,255,255,.7)] text-[14px]" active="actionbar" > <:title class="text-[#A1A7C4]">Phx WebComponents <:menu>actionbar <:menu>appbar """ @doc type: :component attr(:id, :any, default: false, doc: """ html attribute id """ ) attr(:class, :any, default: "", doc: """ html attribute class """ ) attr(:active, :string, default: "", doc: """ actvie menu id """ ) slot(:title, required: false, doc: """ Render menu title. """ ) do attr(:class, :any) end slot(:menu, required: false, doc: """ Render menu """ ) do attr(:class, :any) end def dm_left_menu(assigns) do ~H""" """ end @doc """ Generates left menu Group ## Example <.dm_left_menu_group active={"mdi"}> <:title>Icons <:menu id="mdi" to={~p"/icons/mdi"}>MD Icon <:menu id="bsi" to={~p"/icons/bsi"}>BS Icon """ @doc type: :component attr(:id, :any, default: false, doc: """ html attribute id """ ) attr(:class, :any, default: "", doc: """ html attribute class """ ) attr(:active, :string, default: "", doc: """ actvie menu id """ ) slot(:title, required: true, doc: """ Render menu title. """ ) do attr(:class, :any) end slot(:menu, required: false, doc: """ Render menu """ ) do attr(:id, :string) attr(:class, :any) attr(:to, :string) end def dm_left_menu_group(assigns) do assigns = assigns |> assign_new(:title, fn -> nil end) ~H"""