Sha256: e901d0d3da6ca5c6d943221af508b40c673b9cf05bfb58e65efd2f9790bb773f
Contents?: true
Size: 1.42 KB
Versions: 1
Compression:
Stored size: 1.42 KB
Contents
module GOVUKDesignSystemFormBuilder module Containers class Fieldset < Base include Traits::HTMLAttributes def initialize(builder, object_name = nil, attribute_name = nil, legend: {}, caption: {}, described_by: nil, **kwargs, &block) super(builder, object_name, attribute_name, &block) @legend = legend @caption = caption @described_by = described_by(described_by) @attribute_name = attribute_name @html_attributes = kwargs end def html tag.fieldset(**attributes(@html_attributes)) do safe_join([legend_element, (@block_content || yield)]) end end private def options { class: classes, aria: { describedby: @described_by } } end def classes [%(#{brand}-fieldset)] end def legend_element @legend_element ||= if @legend.nil? Elements::Null.new else Elements::Legend.new(@builder, @object_name, @attribute_name, **legend_options) end end def legend_options case @legend when Hash @legend.merge(caption: @caption) when Proc { content: @legend } else fail(ArgumentError, %(legend must be a Proc or Hash)) end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
govuk_design_system_formbuilder-2.3.0b1 | lib/govuk_design_system_formbuilder/containers/fieldset.rb |