Sha256: 28706a8bca82ec8aaf2065db3b2b5eaad5a3723240759ba6fd35ad7bf8bc6165
Contents?: true
Size: 1.5 KB
Versions: 1
Compression:
Stored size: 1.5 KB
Contents
module GOVUKDesignSystemFormBuilder module Containers class Fieldset < Base LEGEND_SIZES = %w(xl l m s).freeze def initialize(builder, object_name = nil, attribute_name = nil, legend: {}, described_by: nil) super(builder, object_name, attribute_name) @legend = legend_defaults.merge(legend) @described_by = described_by(described_by) @attribute_name = attribute_name end def html content_tag('fieldset', class: fieldset_classes, aria: { describedby: @described_by }) do safe_join([build_legend, yield]) end end private def legend_defaults { text: nil, tag: config.default_legend_tag, size: config.default_legend_size } end def build_legend if legend_text.present? content_tag('legend', class: legend_classes) do tag.send(@legend.dig(:tag), legend_text, class: legend_heading_classes) end end end def legend_text [@legend.dig(:text), localised_text('fieldset')].compact.first end def fieldset_classes %w(govuk-fieldset) end def legend_classes size = @legend.dig(:size) fail "invalid size '#{size}', must be #{LEGEND_SIZES.join(', ')}" unless size.in?(LEGEND_SIZES) ["govuk-fieldset__legend", "govuk-fieldset__legend--#{size}"] end def legend_heading_classes %(govuk-fieldset__heading) end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
govuk_design_system_formbuilder-1.1.0.beta.1 | lib/govuk_design_system_formbuilder/containers/fieldset.rb |