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, #BuildActionsDropdown, #BuildBlock, #BuildBreadcrumbs, #BuildBulkActionsToolbar, #BuildColorModeSelector, #BuildDynaFrameContent, #BuildDynaFrameHost, #BuildEmptyCard, #BuildFrameNavigatorPanel, #BuildPageHeader, #BuildPanel, #BuildRowActionsDropdown, #BuildSkeletonTable, #BuildTabList, #BuildTableInfo, #BuildTablePagination, #BuildTableScopesBar, #BuildTableSearchBar, #method_missing, #respond_to_missing?

Constructor Details

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

Returns a new instance of 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-[var(--pu-radius-md)] hover:bg-[var(--pu-surface-alt)] group transition-colors",
    href: @href
  ) do
    render @icon.new(
      class: "text-[var(--pu-text-muted)] group-hover:text-[var(--pu-text)] w-8 h-8 mx-auto transition-colors"
    )
    div(class: "text-sm text-[var(--pu-text)] text-center mt-1") { @name }
  end
end