Sha256: ce5aa70bd2ecfbbcbdf844b2f660764ac964876e6e443813c06c6cb0b39de9b1
Contents?: true
Size: 1.43 KB
Versions: 23
Compression:
Stored size: 1.43 KB
Contents
module GOVUKDesignSystemFormBuilder module Elements class Hint < Base using PrefixableArray include Traits::Localisation include Traits::HTMLAttributes include Traits::HTMLClasses def initialize(builder, object_name, attribute_name, value: nil, text: nil, content: nil, radio: false, checkbox: false, **kwargs) super(builder, object_name, attribute_name) @value = value @radio = radio @checkbox = checkbox @html_attributes = kwargs if content @raw = capture { content.call } else @text = retrieve_text(text) end end def active? [@text, @raw].any?(&:present?) end def html return unless active? tag.div(**attributes(@html_attributes)) { hint_body } end def hint_id return unless active? build_id('hint') end private def options { class: classes, id: hint_id } end def hint_body @raw || @text end def retrieve_text(supplied) supplied.presence || localised_text(:hint) end def classes %w(hint).prefix(brand).push(radio_class, checkbox_class).compact end def radio_class @radio ? %(#{brand}-radios__hint) : nil end def checkbox_class @checkbox ? %(#{brand}-checkboxes__hint) : nil end end end end
Version data entries
23 entries across 23 versions & 2 rubygems