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