Module: Shadcn::Rails::Helpers::ComponentHelper

Extended by:
ActiveSupport::Concern
Defined in:
lib/shadcn/rails/helpers/component_helper.rb

Overview

Helper methods for rendering shadcn components

Instance Method Summary collapse

Instance Method Details

#shadcn(name, **args, &block) ⇒ Object

Render a shadcn component by name This allows for cleaner ERB syntax

Examples:

<%= shadcn :button, variant: :primary do %>
  Click me
<% end %>

Parameters:

  • name (Symbol, String)

    Component name (e.g., :button, :card)

  • args (Hash)

    Component arguments

  • block (Proc)

    Optional block for component content



22
23
24
25
# File 'lib/shadcn/rails/helpers/component_helper.rb', line 22

def shadcn(name, **args, &block)
  component_class = Shadcn::Rails.component_for(name)
  render(component_class.new(**args), &block)
end

#shadcn_alert(**args, &block) ⇒ Object



50
51
52
# File 'lib/shadcn/rails/helpers/component_helper.rb', line 50

def shadcn_alert(**args, &block)
  render(Shadcn::AlertComponent.new(**args), &block)
end

#shadcn_badge(**args, &block) ⇒ Object



46
47
48
# File 'lib/shadcn/rails/helpers/component_helper.rb', line 46

def shadcn_badge(**args, &block)
  render(Shadcn::BadgeComponent.new(**args), &block)
end

#shadcn_button(**args, &block) ⇒ Object

Shorthand helpers for common components These provide a more Rails-like API



30
31
32
# File 'lib/shadcn/rails/helpers/component_helper.rb', line 30

def shadcn_button(**args, &block)
  render(Shadcn::ButtonComponent.new(**args), &block)
end

#shadcn_card(**args, &block) ⇒ Object



34
35
36
# File 'lib/shadcn/rails/helpers/component_helper.rb', line 34

def shadcn_card(**args, &block)
  render(Shadcn::CardComponent.new(**args), &block)
end

#shadcn_dialog(**args, &block) ⇒ Object



54
55
56
# File 'lib/shadcn/rails/helpers/component_helper.rb', line 54

def shadcn_dialog(**args, &block)
  render(Shadcn::DialogComponent.new(**args), &block)
end

#shadcn_input(**args) ⇒ Object



38
39
40
# File 'lib/shadcn/rails/helpers/component_helper.rb', line 38

def shadcn_input(**args)
  render(Shadcn::InputComponent.new(**args))
end

#shadcn_label(**args, &block) ⇒ Object



42
43
44
# File 'lib/shadcn/rails/helpers/component_helper.rb', line 42

def shadcn_label(**args, &block)
  render(Shadcn::LabelComponent.new(**args), &block)
end