Class: StimulusPlumbers::Form::Fields::Label

Inherits:
Plumber::Base show all
Defined in:
lib/stimulus_plumbers/form/fields/label.rb

Constant Summary

Constants included from Plumber::HtmlOptions

Plumber::HtmlOptions::STIMULUS_SPACEJOIN_KEYS

Instance Attribute Summary

Attributes inherited from Plumber::Base

#template

Instance Method Summary collapse

Methods inherited from Plumber::Base

#initialize, #theme

Methods included from Plumber::HtmlOptions

#merge_data_options, #merge_html_options, #merge_string_option, #normalize_part

Constructor Details

This class inherits a constructor from StimulusPlumbers::Plumber::Base

Instance Method Details

#render(text:, for_id:, required: false, hidden: false) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
# File 'lib/stimulus_plumbers/form/fields/label.rb', line 7

def render(text:, for_id:, required: false, hidden: false)
  klass = theme.resolve(:form_label, required: required, hidden: hidden).fetch(:classes, "")

  inner = text.dup.html_safe
  if required
    mark_klass = theme.resolve(:form_required_mark).fetch(:classes, "")
    inner += template.(:span, "*", "aria-hidden": "true", class: mark_klass.presence)
  end

  template.(:label, inner, for: for_id, class: klass.presence)
end