Sha256: e75b5afca3fb00554a38ea1d39403a2986af76a9c7b4f1a3b4451ae52f520b9e
Contents?: true
Size: 1.85 KB
Versions: 11
Compression:
Stored size: 1.85 KB
Contents
module GOVUKDesignSystemFormBuilder module Elements module Radios class FieldsetRadioButton < Base include Traits::Hint include Traits::Conditional def initialize(builder, object_name, attribute_name, value, label:, hint_text:, link_errors:, &block) super(builder, object_name, attribute_name) @value = value @label = label @hint_text = hint_text @link_errors = has_errors? && link_errors if block_given? @conditional_content = wrap_conditional(block) @conditional_id = conditional_id end end def html safe_join( [ content_tag('div', class: 'govuk-radios__item') do safe_join( [ input, label_element.html, hint_element.html, ] ) end, @conditional_content ] ) end private def label_element @label_element ||= Elements::Label.new(@builder, @object_name, @attribute_name, radio: true, value: @value, **@label, link_errors: @link_errors) end def hint_element @hint_element ||= Elements::Hint.new(@builder, @object_name, @attribute_name, @hint_text, @value, radio: true) end def input @builder.radio_button( @attribute_name, @value, id: field_id(link_errors: @link_errors), aria: { describedby: hint_id }, data: { 'aria-controls' => @conditional_id }, class: %w(govuk-radios__input) ) end def conditional_classes %w(govuk-radios__conditional govuk-radios__conditional--hidden) end end end end end
Version data entries
11 entries across 11 versions & 1 rubygems