Class: Plutonium::UI::NavGridMenu::Item

Inherits:
Component::Base show all
Defined in:
lib/plutonium/ui/nav_grid_menu.rb

Overview

A grid-based navigation menu item component that represents a single clickable item within a NavGridMenu. Each item consists of an icon and label that links to a specific URL.

Examples:

Basic usage

render Plutonium::UI::NavGridMenu::Item.new(
  name: "Dashboard",
  icon: "chart",
  href: "/dashboard"
)

Instance Method Summary collapse

Methods included from Component::Behaviour

#around_template

Methods included from Component::Tokens

#classes, #tokens

Methods included from Component::Kit

#BuildActionButton, #BuildBlock, #BuildBreadcrumbs, #BuildColorModeSelector, #BuildDynaFrameContent, #BuildDynaFrameHost, #BuildEmptyCard, #BuildFrameNavigatorPanel, #BuildPageHeader, #BuildPanel, #BuildSkeletonTable, #BuildTabList, #BuildTableInfo, #BuildTablePagination, #BuildTableScopesBar, #BuildTableSearchBar, #method_missing, #respond_to_missing?

Constructor Details

#initialize(name:, icon:, href:) ⇒ Item



27
28
29
30
31
# File 'lib/plutonium/ui/nav_grid_menu.rb', line 27

def initialize(name:, icon:, href:)
  @name = name
  @icon = icon
  @href = href
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class Plutonium::UI::Component::Kit

Instance Method Details

#view_templateObject



33
34
35
36
37
38
39
40
41
42
43
# File 'lib/plutonium/ui/nav_grid_menu.rb', line 33

def view_template
  a(
    class: "block p-4 rounded-lg hover:bg-gray-100 dark:hover:bg-gray-600 group",
    href: @href
  ) do
    render @icon.new(
      class: "text-gray-400 group-hover:text-gray-500 dark:text-gray-200 dark:group-hover:text-gray-400 w-8 h-8 mx-auto"
    )
    div(class: "text-sm text-gray-900 dark:text-white text-center") { @name }
  end
end